hdf-eos5-5.1.14+dfsg.1/0000755000175000017500000000000012024724235015425 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/Makefile.am0000644000175000017500000000062012024715435017461 0ustar amckinstryamckinstry# Top-level Makefile for HDF-EOS5 # Include boilerplate include $(top_srcdir)/config/include.am # List of subdirectories. # Only build the testdrivers directory if configure detected that it's present. if TESTDRIVERS_CONDITIONAL TESTDRIVERS=testdrivers else TESTDRIVERS= endif if INSTALL_INCLUDE_CONDITIONAL INCLUDE=include else INCLUDE= endif SUBDIRS=gctp src $(INCLUDE) samples $(TESTDRIVERS) hdf-eos5-5.1.14+dfsg.1/doc/0000755000175000017500000000000012024715435016174 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/doc/README0000755000175000017500000004767012024715435017075 0ustar amckinstryamckinstry Copyright (C) 1996 Hughes and Applied Research Corporation Permission to use, modify, and distribute this software and its documentation for any purpose without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. #----------------------------------------------------------------------------- # filename: # README # # description: # Installation instructions for HDFEOS5 # # author: # Mike Sucher / Applied Research Corp. # # history: # 18-Jun-1996 MES Initial version # 10-Apr-1997 DaW Updated for Release B0 # 29-Oct-1997 DaW Updated for Release 2.1 # 23-Mar-1998 MEDS Updated for Release 2.2 # 16-Jun-1998 MEDS Updated for Release 2.3 # 27-Aug-1998 MEDS Updated for Release 2.4 # 9-Nov-2000 DaW Updated for Beta-2 Release 5.0 # 30-Oct-2002 Phuong Nguyen - Updated for Release 5.1.3 # 10-Oct-2007 Abe Taaheri - Updated for Release 5.1.11 # 10-Jun-2009 Abe Taaheri - Updated for Release 5.1.12 # 19-Aug-2010 Abe Taaheri - Updated for Release 5.1.13 # 14-Dec-2011 Abe Taaheri - Updated for Release 5.1.14 # #----------------------------------------------------------------------------- Contents ======== Installation Instructions Preliminary Unpacking the distribution file Starting the installation procedure User Account Setup File Cleanup Compiling and Linking with HDFEOS Notes Approved platforms Architecture type names Directory and file environment variables Other environment variables Copyright notice for cfortran.h Installation Instructions ========================= Preliminary ----------- Before installing HDFEOS, you must already have installed HDF5, version 1.8.8, on your host. The installation script will prompt for the paths to the HDF5 include and library directories.You also may need to install zlib-1.2.5, szip-2.1, and jpeg.v6b. Unpacking the distribution file ------------------------------- 1) Select a location for the HDFEOS5 directory tree. Installing HDFEOS5 alone requires a disk partition with at least 35 Mb of free space. 2) Copy the file HDF-EOS5.1.14.tar.Z to the target directory by typing the command: cp HDF-EOS5.1.14.tar.Z where is the full pathname of your target directory. 3) Set your default directory to the target directory by typing the command: cd 4) Uncompress this file and extract the contents by typing the command: zcat HDF-EOS5.1.14.tar.Z | tar xvf - This will create a subdirectory of the current directory called 'hdfeos5'. This is the top-level HDFEOS directory, which contains the full HDFEOS directory structure. Starting the installation procedure ----------------------------------- 1) Set your default directory to the top-level HDFEOS directory by typing the command: cd hdfeos5 You can install hdfeos5 using the INSTALL-HDFEOS (see steps 2, and 3). However, starting with version 1.14 we added INSTALL script and some other related scripts to the bin directory for more robust installation of hdfeos5 in supported platforms. The INSTALL script interactively can install zlib, szip, jpeg, and hdf5 in addition to the hdfeos5. So we recommend that users use this script, rather than the INSTALL-HDFEOS script (the INSTALL-HDFEOS is internally used by INSTALL script). By using INSTALL script you will also have a chance to install hdf4 and hdfeos while installing hdf5 and hdfeos5. To see INSTALL command options type: bin/INSTALL -h For a simple installation you may type just type: bin/INSTALL -log MyLogfile Please note that if you want to install zlib, jpeg, szip, hdf4, and hdfeos, you should also download relevant releases for these software from our ftp site, where you have downloaded the hdfeos5 distribution. If you use INSTALL script, please skip steps 2 and 3 below. For all platforms (supported and unsupported) you may also use auto configuration (as for HDF5) and make.As stated above we prefer that you use INSTALL script for all supported platforms instead of auto configuration and make. If you would like to install hdfeos5 using auto configuration, please read AUTOCONF_INSTALL in hdfeos5/doc directory 2) Select installation options.Please note that cuurent version of HDF-EOS5 is not supported in SGI since HDF5-1.8.8 does not support it. The following instruction concerning SGI are only for previous versions od HDF5 and HDF-EOS5. Currently, the only options are those specific to the SGI Power Challenge platform. On the SGI Power Challenge, the default is to build HDFEOS in 64-bit mode. The following table gives the option to specify the appropriate architecture to be built: binary format architecture ------------- ------------ --------------- new-style 32 bit sgi32 -sgi32 64 bit sgi64 Please note that the old-32-bit mode has been dropped as the default because it is no longer being supported by SGI, it is therefore recommended that all users migrate to new-style 32 bit or 64 bit mode. 3) Run the installation script. Please note that the installation script for this release of HDFEOS requires user interaction. Because of this, it should NOT be run as a background task. 3.0) (optional) If you wish to generate a log of this session, use the Unix 'script' command. This command runs a sub-shell that saves all terminal output to the specified file. To log the session, type: script where is the name of the log file. 3.1) To run the installation script, type the command: bin/INSTALL-HDFEOS where is the list of options determined in the previous step. The installation script will then run. It will output various startup messages, beginning with: HDFEOS installation starting at 3.2) Enter the full pathnames for the HDF5 library and include directory paths, when the script prompts for them. If there is an error in the supplied paths, the script will exit. NOTE: If the environment variables HDFLIB and/or HDFINC are set in your shell, the script will use these for the default values. If this is not the first run of the script, the default values will be taken from the values used for the last run of the script. In either of these cases, the installation script will prompt with: Current value of the HDF library directory is: Accept [y]/n: and/or Current value of the HDF include directory is: Accept [y]/n: Make sure to type 'n' and hit return, if the defaults do not point to the correct directories. The script will then prompt for the new values. 3.3) The installation script will finish with the following message: HDFEOS installation ending at 3.4) (optional - see 3.0) If you ran the Unix 'script' command to create a log file, then type 'exit' and hit return at the command prompt. This will exit the sub-shell stated by 'script' and save the log file. HINT: The log file generated by the script command may contain 'hard return' characters at the end of each line. These appear in some text editors as "^M". They can be removed with the following command: sed 's/.$//' > .new where is the name of the log file. User Account Setup ------------------ Once HDFEOS5 has been installed, the accounts of HDFEOS5 users must be set up to define environment variables needed to compile and run code with HDFEOS (see parts 2 and 3 of the Notes section, below). The type of setup depends on the user's login shell. 1A) C shell (csh) users: Edit the HDFEOS5 user's .cshrc file to include the following line: source /bin/$BRAND/hdfeos_env.csh where is the full path of the HDFEOS5 home directory, and $BRAND is an architecture-specific value for your host. Please refer to part 2 of the Notes section, below, to determine the correct value. The script hdfeos_env.csh sets up all the variables discussed in parts 2 and 3 of the Notes section, below, and it adds the HDFEOS bin directory to the user path. The environment variables will become available during all subsequent login sessions. To activate them for the current session, simply type one of the two lines listed above, at the Unix prompt. Note regarding path setup with hdfeos_env.csh ---------------------------------------------- The script hdfeos_env.csh also makes available a variable called hdfeos_path. This can be added to the user's path to ensure that it accesses the directories necessary for the compilers and other utilities used to generate executable programs. It is not added to the user path by default, because in many cases it adds unnecessary complexity to the user path. To add hdfeos_path to the user path, modify the HDFEOS user's .cshrc file to include the following: set my_path = ($path) # save path source /bin/$BRAND/hdfeos_env.csh # HDFEOS5 setup set path = ($my_path $hdfeos_path) # add hdfeos_path INSTEAD OF the line listed at the beginning of this step. Note that it is the user's responsibility to set up his or her own path so that it doesn't duplicate the directories set up in hdfeos_path. Please also note that the hdfeos_path is added AFTER the user's path. This way, the user's directories will be searched first when running Unix commands. 1B) Korn shell (ksh) users: Edit the HDFEOS5 user's .profile file to include the following line: . /bin/$BRAND/hdfeos_env.ksh where is the full path of the HDFEOS home directory, and $BRAND is an architecture-specific value for your host. Please refer to part 2 of the Notes section, below, to determine the correct value. The script hdfeos_env.ksh sets up all the variables discussed in part 2 and 3 of the Notes section, below, and it adds the HDFEOS bin directory to the user path. The environment variables will become available during all subsequent login sessions. To activate them for the current session, simply type one of the two lines listed above, at the Unix prompt. Note regarding path setup with hdfeos_env.ksh ---------------------------------------------- The script hdfeos_env.ksh also makes available a variable called hdfeos_path. This can be added to the user's path to ensure that it accesses the directories necessary for the compilers and other utilities used to generate executable programs. It is not added to the user path by default, because in many cases it adds unnecessary complexity to the user path. To add hdfeos_path to the user path, modify the HDFEOS user's .profile file to include the following: my_path="$PATH" # save path . /bin/$BRAND/hdfeos_env.ksh # HDFEOS5 setup PATH="$my_path:$hdfeos_path" ; export PATH # add hdfeos_path INSTEAD OF the line listed at the beginning of this step. Note that it is the user's responsibility to set up his or her own path so that it doesn't duplicate the directories set up in hdfeos_path. Please also note that the hdfeos_path is added AFTER the user's path. This way, the user's directories will be searched first when running Unix commands. 1C) Bourne shell (sh) users: Set up the required HDFEOS5 environment variables by appending the contents of the file /bin/$BRAND/hdfeos_env.ksh to the end of the HDFEOS5 user's .profile, where is the full path of the HDFEOS home directory, and $BRAND is an architecture-specific value for your host. Please refer to part 2 of the Notes section, below, to determine the correct value. The environment variables will become available during all subsequent login sessions. To activate them, log out and then log back in. File Cleanup ------------ Once HDFEOS has been built and tested, you can delete certain temporary files and directories to save some disk space. Note that once these files have been removed, you will need to unpack the original distribution file in order to re-do the installation. To remove these files: cd /bin rm -rf tmp cd /lib rm -rf tmp Compiling and Linking with HDFEOS --------------------------------- In order to compile and link programs with the HDFEOS you must access the HDFEOS include and library files. To do this be sure that your makefiles include something like the following: INCLUDE = -I. -I$(HDFEOS_INC) -I$(HDFINC) LIBRARY = -L. -L$(HDFEOS_LIB) -L$(HDFLIB) LDFLAGS = -lhe5_hdfeos -lGctp -lhdf5_hl -lhdf5 -lnsl -ljpeg -lz -lsz -lm (Sun platform) LDFLAGS = -lhe5_hdfeos -lGctp -lhdf5_hl -lhdf5 -ljpeg -lz -lsz -lm (others) The environment variables HDFEOS_INC, HDFEOS_LIB, HDFINC and HDFLIB are set up by the HDFEOS environment scripts (see User Setup, above). They refer to the include and library directories for HDFEOS and HDF, respectively. The INCLUDE macro should be included in all compilation statements. The LIBRARY an LDFLAGS macros should be included in all link statements. Notes ===== 1) Approved platforms HDFEOS5 was built and tested in a multi-platform environment. The list of approved platforms, which includes information about operating system and compiler versions, may be found in the HDFEOS User's Guide. 2) Architecture type names To track architecture dependencies, HDFEOS defines the environment variable $BRAND. Following is a list of valid values for this variable, which is referred to throughout this document: (we officially does not support some platforms startinfg with HDF-EOS5.1.12, such as dec, hp, ibm, sgi, and sun5.8 and sun5.9 ) $BRAND Architecture ====== ============ dec* DEC Alpha hp* HP 9000, HPUX-11 9000/785 ibm* IBM RS-6000 sgi* IRIX 5.3;6.2 sgi32* SGI Power Challenge (new-style 32-bit mode) sgi64* SGI Power Challenge (64-bit mode) sun5.X Sun: SunOS 5.x (5.8*,5.9*,5.10) linux Linux: Red Hat Enterprise linux32 64-bit linux platform in 32-bit mode linux64 64-bit linux platform in 64-bit mode macintosh Darwin6.8 macintel32 Darwin, Intel i386 32-bit mode macintel64 Darwin, Intel i386 64-bit mode Windows Windows XP: Microsoft Visual C++ 2008 cygwin i686 cygwin * These platforms are not officially supported anymore 3) Directory and file environment variables In order to use the HDFEOS libraries and utilities, a number of environment variables MUST be set up to point to HDFEOS directories and files. These variables are automatically set up in User Account Setup section of the installation instructions. They are listed here for reference: name value description ==== ===== =========== HDFEOS5_HOME /hdfeos top-level directory (where is the absolute directory path above hdfeos) HDFEOS5_BIN $HDFEOS5_HOME/bin/$BRAND executable files HDFEOS5_INC $HDFEOS5_HOME/include header files HDFEOS5_LIB $HDFEOS5_HOME/lib/$BRAND library files HDFEOS5_OBJ $HDFEOS5_HOME/obj/$BRAND object files HDFEOS5_SRC $HDFEOS5_HOME/src source files 4) Other environment variables In addition, the makefiles which are used to build the libraries require certain machine-specific environment variables. These set compilers, compilation flags and libraries, allowing a single set of makefiles to serve on multiple platforms. The User Account Setup section of the installation instructions explains how to set them up. They are listed here for reference: name description ==== =========== CC C compiler CFLAGS default C flags (optimize, ANSI) C_CFH C w/ cfortran.h callable from FORTRAN CFHFLAGS CFLAGS + C_CFH C_F77_CFH C w/ cfortran.h calling FORTRAN C_F77_LIB FORTRAN lib called by C main F77 FORTRAN compiler F77FLAGS common FORTRAN flags F77_CFH FORTRAN callable from C w/ cfortran.h F77_C_CFH FORTRAN calling C w/ cfortran.h CFH_F77 same as F77_C_CFH F77_C_LIB C lib called by FORTRAN main 5) Tools provided with this release For a complete list of the tools provided with this release of HDFEOS5, please refer to HDFEOS5 User's Guide. 6) Copyright notice for cfortran.h The majority of the HDFEOS functions are written in C. These C-based tools include the file cfortran.h, using it to generate machine-independent FORTRAN bindings. The cfortran.h facility includes the following notice which must accompany distributions that use it: THIS PACKAGE, I.E. CFORTRAN.H, THIS DOCUMENT, AND THE CFORTRAN.H EXAMPLE PROGRAMS ARE PROPERTY OF THE AUTHOR WHO RESERVES ALL RIGHTS. THIS PACKAGE AND THE CODE IT PRODUCES MAY BE FREELY DISTRIBUTED WITHOUT FEES, SUBJECT TO THE FOLLOWING RESTRICTIONS: - YOU MUST ACCOMPANY ANY COPIES OR DISTRIBUTION WITH THIS (UNALTERED) NOTICE. - YOU MAY NOT RECEIVE MONEY FOR THE DISTRIBUTION OR FOR ITS MEDIA (E.G. TAPE, DISK, COMPUTER, PAPER.) - YOU MAY NOT PREVENT OTHERS FROM COPYING IT FREELY. - YOU MAY NOT DISTRIBUTE MODIFIED VERSIONS WITHOUT CLEARLY DOCUMENTING YOUR CHANGES AND NOTIFYING THE AUTHOR. - YOU MAY NOT MISREPRESENTED THE ORIGIN OF THIS SOFTWARE, EITHER BY EXPLICIT CLAIM OR BY OMISSION. THE INTENT OF THE ABOVE TERMS IS TO ENSURE THAT THE CFORTRAN.H PACKAGE NOT BE USED FOR PROFIT MAKING ACTIVITIES UNLESS SOME ROYALTY ARRANGEMENT IS ENTERED INTO WITH ITS AUTHOR. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. THE AUTHOR IS NOT RESPONSIBLE FOR ANY SUPPORT OR SERVICE OF THE CFORTRAN.H PACKAGE. Burkhard Burow burow@vxdesy.cern.ch hdf-eos5-5.1.14+dfsg.1/doc/AUTOCONF_INSTALL0000644000175000017500000001435212024715435020530 0ustar amckinstryamckinstryInstalling HDF-EOS5 using Autoconf/Automake 1) Quick Start (here we assume hdfeos5 directory is inside a directory considered as , and that the brand is linux. You may replace it with another supported brand name if you are installing hdfeos5 in a different platform) To build HDF-EOS5 from /hdfeos5 and install the HDF-EOS5 library into /hdfeos5/lib/linux : $ cd /hdfeos5 $ ./configure --with-hdf5=/path/to/hdf5 --libdir=/hdfeos5/lib/linux $ make install 2) Configuration HDF-EOS5 uses the GNU autoconf system for configuration, which detects various features of the host system and creates the Makefiles. On most systems with HDF-EOS5 installed it should be sufficient to say: $ ./configure OR $ sh configure The configuration process can be controlled through environment variables and command-line switches. For a complete list of switches type: $ ./configure --help Configure must be re-run for each platform, and the source tree can only be configured for one platform at a time. In 64-bit machines one must set the desired compiler flag for the compilation mode before running ./configure. For example to install HDF-EOS5 in 32-bit mode in SGI one must set CC as: setenv CC "cc -n32" or to install HDF-EOS5 in 64-bit mode in SGI one must set CC as: setenv CC "cc -64" In a 64-bit linux the 32-bit flag is "-m32". So for 32-bit installation one must set CC as: setenv CC "gcc -m32" The same is applied to the FORTRAN compiler flag. 3) Building against HDF5 On systems without HDF5 installed, where HDF5 is not found automatically, or to link against a different version of the HDF5 library, the user must specify the path to HDF5. This can be done either by giving the path to configure directly: $ ./configure --with-hdf5=/path/to/hdf5 or by setting the environment variable CC to be the h5cc script installed with HDF5: $ H5CC=/path/to/hdf5/bin/h5cc $ ./configure 4) Building against ZLIB and SZLIB HDF-EOS5 does not require the zlib and szlib libraries to build, but some of the tests in the testdrivers directory require them. Their paths can be given to configure using the --with-zlib and --with-szlib switches: $ ./configure --with-zlib=/usr/local/zlib --with-szlib=/usr/local/szlib 5) Specifying install locations The location where the HDF-EOS5 library will be installed is controlled by the --libdir switch. To set the install location to /hdfeos5/lib/linux : $ ./configure --libdir=/hdfeos5/lib/linux HDF-EOS5 tradionally installs libraries into the hdfeos5/lib/* directories and does not install header files. Users who wish to install both libraries and header files should use the --enable-install-include switch to enable this feature and the --prefix switch to control where they are installed. To install into /usr/local/hdfeos5/include and /usr/local/hdfeos5/lib : $ ./configure --enable-install-include --prefix=/usr/local/hdfeos5 The default installation location if no flags are specified is a directory named hdfeos5 in the current directory, with libraries in hdfeos5/lib and include files in hdfeos5/include (if installing include files is enabled). 6) Building and Installing Once HDF-EOS5 has been configured, its makefiles can be used to build, test, and install. To build the library: $ make To run tests (if present): $ make check To install to the location specified during configure: $ make install These commands do not need to be run in order; if the library has not been built, 'make install' will build it before installing. However, configure must always have been run on the current system before running make. 7) The Testdrivers Directory The testdrivers directory contains test to verify that HDF-EOS5 has built correctly. Users who wish to run these tests should copy the testdrivers directory into the hdfeos5 directory before running configure. Configure will detect the presence of this directory and 'make check' will run all the tests it contains. 8) For More Information For more information about using autoconf and automake, see the documentation online at http://sources.redhat.com/autobook/autobook/autobook.html or HDF5's documentation. 9) Fortran compiler options This section explains what FCFLAGS is expected when you get errors. 1. -fno-second-underscore option Linkers may complain undefined references; e.g. undefined reference to `swrdfld__` Mostly, this error is caused by different name mangling methods. In the HDF-EOS library, Fortran API functions have one underscore; e.g. 'swrdfld_'. However, some Fortran compilers assumes external functions have two underscores like 'swrdfld__', which doesn't exist in the library. Other Fortran compilers may have different name mangling methods, and the user may need to read their documents to match the name mangling method. 2. Linking errors You may get some linking errors while Fortran testdrivers are built. Some systems may require additional libraries. Generally, h5cc can detect these additional libraries and pass them to the linker. That's the reason why you may not encounter linking errors while building the HDF-EOS5 library. To build Fortran testdrivers, however, pure Fortran compilers are used, which means there is no helper that can do what h5cc does. So, if you get some linking errors, you need to set additional libraries before executing configure script: $ LIBS= We got a problem under Solaris, and we had to set LIBS environment variable as the following: $ LIBS=-lnsl 10} Example 1. In 64-bit Linux machine for 32-bit installation: >setenv CC "/tools/pgs/ataaheri/TK5218D/TOOLKIT/hdf5/linux32/hdf5-1.8.8/bin/h5cc -Df2cFortran" >setenv FC "/usr/bin/g77 -fno-second-underscore" >setenv CFLAGS -m32 >setenv FCFLAGS -m32 >setenv LDFLAGS -m32 >./configure --libdir=/User_Home/hdfeos5_autoconfig/hdfeos/lib/linux32 --enable-install-include --prefix=/User_Home/hdfeos5_autoconfig/hdfeos --with-hdf5=/User_Home/TK5218D/TOOLKIT/hdf5/linux32/hdf5-1.8.8 --with-zlib=/User_Home/TK5218D/TOOLKIT/zlib/linux32/zlib-1.2.5 --with-szlib=/User_Home/TK5218D/TOOLKIT/szip/linux32/szip-2.1 --with-jpeg=/User_Home/TK5218D/TOOLKIT/jpeg/linux32/jpeg-6b >make >make check >make installhdf-eos5-5.1.14+dfsg.1/doc/Install_HDFEOS5_WIN.readme.txt0000755000175000017500000002230112024715435023432 0ustar amckinstryamckinstry#----------------------------------------------------------------------------- # filename: # Install_HDFEOS5_WIN.README # # description: # Installation instruction for HDFEOS5.1.14 on Windows xp # # author: # Phuong Nguyen/ L3 Communication, GSI. # Abe Taaheri/ Raytheon SSI # # history: # 02-Aug-1999 Second version # 11-OCT-1999 Third version( with Fortran support) # 06-Jul-2005 Version 5.1.9 # 19-Feb-2006 Version 5.1.10 # 27-Feb-2008 Version 5.1.11 # 15-jun-2009 Version 5.1.12 # 19-Aug-2010 Version 5.1.13 # 14-Dec-2011 Version 5.1.14 #----------------------------------------------------------------------------- The instructions which follow assume that you will be using the 'zip' files that we provide: hdfeos5_1_14b.zip (binary file for Windows xp) and hdfeos5_1_14.zip (source code file along with binaries). Also we have been using "Microsoft Visual Studio 2008" for our windows developement. Building from Binary Code Release (hdfeos5_1_14b.zip) =============================================== To install the HDFEOS with the prebuilt libraries, it is assumed that you have done the following: NOTE: THE FOLLOWING INTSTRUTIONS SHOULD BE FINE FOR WIN xp 1. Go to the ftp site ftp://edhs1.gsfc.nasa.gov/edhs/hdfeos5/latest_release/windows/, and download hdfeos5_1_14b.zip. 2. On your window, create a directory structure to unpack the source file. For example: F:\ (any drive) MyHDFEOS\ (any folder name) 3. Copy the hdfeos5_1_14b.zip to that directory and unpack it by running WinZip on it. This should create the following directories: hdfeos5, hdf5-1.8.8-win32, jpeg6b-vs2008, zlib125-dll, and szip21-vs2008-noenc (no- encoder) and szip21-vs2008-enc (with encoder) The libraries and include files for hdfeos5.1.14 are inside: F:\MyHDFEOS\hdfeos5\lib (Release versions of hdfeos and gctp libraries (hdfeos.lib, gctp.lib)) (Debug versions of hdfeos and gctp libraries (hdfeosd.lib, gctpd.lib)) F:\MyHDFEOS\hdfeos5\include ( HDFEOS5 include files ) Inside the directories hdf5-1.8.8-win32, jpeg6b-vs2008, zlib125-dll, and szip21-vs2008-noenc ( or szip21-vs2008-enc) You can find their include files and libraries (hdf5.lib, hdf5_hl.lib, zdll.lib, hdf5_fortran.lib, hdf5_hl_fortran.lib, libjpeg.lib and szlib.lib). 4. Run your "Microsoft Visual Studio 2008" application. If you are building an application that uses the HDFEOS5 library, you must already have installed hdf5-1.8.8 (or use HDF5 binary provided for your machine. Assumed you have installed HDF5-1.8.8 on F:\MyHDF\hdf5-1.8.8-win32\ To specify the header files and linking in the HDFEOS5 libraries: Select Tools->Options->Projects and Solutions->VC++Directories-> "Show directories for"->"Include files", add the following directories: $(VCInstallDir)include $(VCInstallDir)atlmfc\include $(WindowsSdkDir)\include $(FrameworkSDKDir)include F:\MyHDFEOS\jpeg6b-vs2008\include F:\MyHDFEOS\zlib125-dll\include F:\MyHDFEOS\szip21-vs2008-enc\include F:\MyHDF\hdf5-1.8.8-win32\include F:\MyHDFEOS\hdfeos5\include Select Tools->Options->Projects and Solutions->VC++Directories-> "Show directories for"->"Library files", add the following directories: F:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT $(VCInstallDir)lib $(VCInstallDir)atlmfc\lib $(VCInstallDir)atlmfc\lib\i386 $(WindowsSdkDir)\lib $(FrameworkSDKDir)lib $(VSInstallDir) $(VSInstallDir)lib F:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT F:\MyHDFEOS\jpeg6b-vs2008\lib F:\MyHDFEOS\zlib125-dll\lib F:\MyHDFEOS\szip21-vs2008-enc\lib F:\MyHDF\hdf5-1.8.8-win32\lib F:\MyHDFEOS\hdfeos5\lib\WIN NOTE: you may need H5_USE_16_API in C/C++->Preprocesssor(if you are using HDF5-1.8.X this may be required to map a few depricated hdf5 functions to their new formats). Please note that you may need some other include and lib directories, depending on your application. Please see Compile_WIN.readme.txt inside for more details. Building from Source Code Release (hdfeos5_1_14.zip) =============================================== STEP I: Preconditions To build the HDFEOS5, it is assumed that you have done the following: 1. Installed MicroSoft Developer Studio 2008 (or higher) 2. Installed jpeg, szip and zlib (see install_jpeg_zlib_szip.txt) 3. Installed HDF5 version 1.8.8. 4. Set up a directory structure to unpack the library. For example: F:\ (any drive) MyHDFEOS\ (any folder name) 5. Copy the source distribution archive to that directory and unpack it using the appropriate archiver options to create a directory hierarchy. Run WinZip on hdfeos5_1_14.zip. Exract 'hdfeos5' and 'hdfeos5_dev' directories into F:\MyHDFEOS5. The directory 'hdfeos5_dev' contains several files and directories for Windows, and the 'hdfeos5' directory hdfeos5 source code package. STEP II: Build HDFEOS5 library INSTRUCTIONS FOR INSTALLATION 1. Open F:\myHDFEOS5\hdfeos5_dev\hdfeos5.sln to begin building the Developer Studio project. 2. Select Tools->Options->Projects and Solutions->VC++Directories-> "Show directories for"->"Include files", add the following directories: $(VCInstallDir)include $(VCInstallDir)atlmfc\include $(WindowsSdkDir)\include $(FrameworkSDKDir)include F:\include F:\include F:\include F:\include F:\include F:\gctp\include where for example is F:\MyHDF\hdf5-1.8.8-win32 and can be F:\myHDFEOS5\hdfeos5 3. Select Tools->Options->Projects and Solutions->VC++Directories-> "Show directories for"->"Library files", add the following directories: F:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT $(VCInstallDir)lib $(VCInstallDir)atlmfc\lib $(VCInstallDir)atlmfc\lib\i386 $(WindowsSdkDir)\lib $(FrameworkSDKDir)lib $(VSInstallDir) $(VSInstallDir)lib F:\jpeg F:\lib F:\lib F:\lib F:\lib\WIN 4. Select hffeos5 in the "Solution Explorer" window the select Project->Properties, Select "General" under "Configuration Properties". In the selection window for "Configuration Type" select "Static Library(.lib)" option to create output as library. Select folder C/C++->Preprocesssor. Add the following to "Preprocessor definitions" if they are not there alraedy: WIN32;NDEBUG;_LIB;INTEL86;VISUAL_CPLUSPLUS;_CRT_SECURE_NO_WARNINGS; H5_USE_16_API 5. Now Select "Solution 'hdfeos5'" in the "Solution Explorer" windoW. Select "Build", then Select "Configuration Mangger". Select "Debug" in "Active Solution Configuration" window, check mark hdfeos5 and gctp build boxes and change Configuration to Debug for both projects. Select "Build" and "Build Solutions" to build the Debug version of the hdfeos5 and gctp tree. 6. Select "Build", then Select "Configuration Mangger". Select "Release" in "Active Solution Configuration" window, check mark hdfeos5 and gctp build boxes and change Configuration to Release for both projects. Select "Build" and "Build Solutions" to build the Release version of the hdfeos5 and gctp tree. Please note that you have a choice of building gctp and hdfeos5 separately. 7. Please check "Release" and "Debug" directories under F:\myHDFEOS5\hdfeos5_dev\hdfeos5 and F:\myHDFEOS5\hdfeos5_dev\gctp to make sure that libraries have been created sucessfully. 8. In command prompt window run the installation batch commands win32ins.bat in the directory F:\myHDFEOS5\hdfeos5_dev, Or double click on "F:\myHDFEOS5\hdfeos5_dev\win32ins.bat" file. This will copy *.lib files to F:\MyHDFEOS5\hdfeos5\lib directory and will remove some temporary files, debug and release directories, and all other lib directories under "F:\MyHDFEOS5\hdfeos5\lib" directory. 9. If you are building an application that uses the HDFEOS5 library, Please refer to the \hdfeos5_dev\compile_WIN_readme.txt file for more information on compiling an application with the HDFEOS5 libraries on Windows. MORE HELPFUL POINTERS ===================== Settings... details: If you create your own project, the necessary settings can be read from the hdfeos5.dsw file(as text), or from the Project Settings in the Developer Studio project settings dialog. Project Settings C/C++ Category PreProcessor Code Generation Use run-time Library These are all set to use Single-Threaded. or Single-Threaded debug. hdf-eos5-5.1.14+dfsg.1/doc/HDFEOS-DEFINITION.TXT0000755000175000017500000002123112024715435021175 0ustar amckinstryamckinstry Definition of HDF-EOS Doug Ilg and Larry Klein Abstract HDF-EOS is a software library designed to support EOS-specific data structures, namely Grid, Point, and Swath. The new data structures are constructed from standard HDF data objects, using EOS conventions, through the use of a software library [1,4]. A key feature of HDF-EOS files is that instrument-independent services, such as subsetting by geolocation, can be applied to the files across a wide variety of data products. The library is extensible and new data structures can be added. This document provides a basic specification of an HDF-EOS file, a generalized description of file contents and a discussion of certain limitations of the format. Definitions HDF-EOS is a software library that is an extension of National Center for Supercomputing Applications (NCSA) HDF. The library supports the construction of new data structures: Grid, Point and Swath. HDF-EOS File: An HDF-EOS file is any valid HDF file (i.e., any file created by the NCSA HDF library [1]), that contains a family of global attributes called "coremetadata.X", where ".X" is a sequence number beginning at 0 and running as high as 9. Optional data objects which may appear in an HDF-EOS file include another family of global attributes called "archivemetadata.X" and any number of Point, Swath, and/or Grid data structures. The existence of Point, Swath, or Grid structures in an HDF-EOS file implies the existence of another family of global attributes called "StructMetadata.X", which is automatically created, populated, and maintained by the HDF-EOS library. Note that all attribute names are case sensitive. Core Metadata: Core metadata represent information to which system-wide services, such as searching, will be applied. These metadata, which are defined in DID 311 [3], are contained in the "coremetadata.X" family of global attributes within an HDF-EOS file. The syntax of these metadata is compliant with the Object Description Language (ODL) [4]. Tools for formatting, accessing and writing core metadata are provided in the ECS Science Data Processing (SDP) Toolkit [2]. Archive Metadata: Archive metadata represent information that, by definition, will not be searchable. It contains whatever information the file creator considers necessary to be in file, but to which system-wide services will not be applied. These metadata are also accessed via SDP Toolkit [2] calls and are written in ODL [4] syntax into the "archivemetadata.X" family of global attribtes. Structural Metadata: Structural metadata describe the contents and structure of an HDF-EOS file. These metadata are present in the file only if the HDF-EOS library has been invoked to create a Grid, Point, or Swath structure. These metadata are stored in the "StructMetadata.X" family of global attributes and created and maintained by the HDF-EOS library. These metadata are not intended to be directly accessed by data producers or users. Therefore, all access to these metadata should be via appropriate function calls in the HDF-EOS library. General Limitations 1.) External element implementations of HDF or HDF-EOS files are not supported by the ECS. 2.) There is an absolute limit of two gigabytes on the size of a single HDF or HDF-EOS file [1]. 3.) Individual HDF and HDF-EOS character attributes are limited to 64 kilobytes in length. Hence the potential need for "families" of attributes [1]. 4.) The HDF-EOS library does not provide tools for creating, populating, or maintaining the "coremetadata" or "archivemetadata" families of attributes. Those tools appear in the SDP Toolkit [2, 3]. 5.) Any user-supplied names are case sensitive and may contain up to 64 characters. Commas (","), forward slashes ("/"), and colons (":") are the only invalid characters in names. Point Structure Point structures are implemented as a hierarchy of Vgroups containing several Vdatas. All Vgroups and Vdatas that are part of any Point structure carry the class "POINT". Each level of data within a Point structure is implemented as a single Vdata, with each data field being a named field in the Vdata. Hence, the following limitations apply: 1.) The reserved field names for special purpose geolocation fields are "Longitude", "Latitude", "Colatitude", and "Time" (case sensitive). These fields are subject to the following requirements: Field Name Data Type Format Longitude float32 or float64 Decimal degrees on the range [-180.0, 180.0] Latitude float32 or float64 Decimal degrees on the range [-90.0, 90.0] Colatitude float32 or float64 Decimal degrees on the range [0.0, 180.0] Time float64 TAI93 (seconds until(-)/since(+) midnight, 1/1/93) These fields may be one- or two-dimensional. 2.) Fields may only be one-dimensional. 3.) Up to 8 levels may exist in a Point structure. Swath Structure Swath structures are implemented as a hierarchy of Vgroups containing a number of Vdatas and/or SDSs. All Vgroups and Vdatas that are part of any Swath structure carry the class "SWATH". Each one-dimensional field is implemented as a named field within its own Vdata. One-dimensional fields that are the same length, and are specifically allowed by the calling program, are merged into "communal" Vdatas, with each data field occupying one field in the Vdata. Each multi-dimensional field is implemented as an SDS. Three-dimensional fields which share the same dimensionality, dimension sizes, and data type and which are specifically allowed by the calling program are merged into communal SDSs with three dimensions. Two-dimensional arrays are merged as if they were three-dimensional arrays with a first dimension of size 1. No merging is performed on fields with more than three dimensions, on fields with an unlimited dimension, or on compressed fields. Accordingly, the following limitations apply: 1.) The reserved field names for special purpose geolocation fields are "Longitude", "Latitude", "Colatitude", and "Time" (case sensitive). These fields are subject to the following requirements: Field Name Data Type Format Longitude float32 or float64 Decimal degrees on the range [-180.0, 180.0] Latitude float32 or float64 Decimal degrees on the range [-90.0, 90.0 Colatitude float32 or float64 Decimal degrees on the range [0.0, 180.0] Time float64 TAI93 (seconds until(-)/since(+) midnight, 1/1/93) These fields may be one- or two-dimensional. 2.) Non-reserved fields may have up to 8 dimensions. 3.) An "unlimited" dimension must be the first dimension (in C-order). 4.) For all multi-dimensional fields in scan- or profile-oriented Swaths, the dimension representing the "along track" dimension must precede the dimension representing the scan or profile dimension(s). 5.) Compression is selectable at the field level within a Swath. All HDF-supported compression methods are available through the HDF-EOS library. Specifying compression on a field prevents merging. Grid Structure Grid structures are implemented as a hierarchy of Vgroups containing several SDSs. All Vgroups that are part of any Grid structure carry the class "GRID". Each data field within a Grid structure is implemented as a single SDS. Merging is done the same way for Grid data fields as for multi-dimensional Swath data fields. Therefore, the following limitations apply: 1.) Fields may have from 2 to 8 dimensions. 2.) Compression is selectable at the field level within a Grid. All HDF5-supported compression methods are available through the HDF-EOS5 library. Specifying compression on a field prevents merging. References 1.) Introduction to HDF5; HDF5 User's Guide, Version 1.4.5, August, 2007; HDF5 Reference Manual, for HDF5 Version 1.6.6, August, 2007; See the The HDF Group site http://hdf.ncsa.uiuc.edu/HDF5/doc/index.html for documents on " HDF5 - A New Generation of HDF, The Hierarchical Data Format" 2.) SDP Toolkit Users Guide for the ECS Project , October, 2007 [333-EMD-001]. Documentation and software are available at http://edhs1.gsfc.nasa.gov/ 3.) Release B SDPS Database Design and Database Schema Specifications , May 1996 [311-CD-008-001]; Science Data Processing Segment (SDPS) Database Design and Database Schema Specifications for the ECS Project, December 1995, [311-CD-002-004]. 4.) Object Descriptor Language reference: Planetary Data Sytems Standard Reference, Version 3.2, July 1995, JPL, California. For more specific information on the use of the HDF-EOS5 library, please refer to the HDF-EOS5 User's Guide for the ECS Project , October , 2007 [175-EMD-001, Rev 05]. Referral: Refer comments to: Abe Taaheri EMD Project Abe_Taaheri@raytheon.com 301-925-0783 hdf-eos5-5.1.14+dfsg.1/doc/Building_EOS5.doc0000755000175000017500000011300012024715435021211 0ustar amckinstryamckinstryࡱ> FHEa `jbjb $.`ffff rK,RS4" ]f0K d Building and Testing HDF-EOS5 James Laird, January 2007 The Current Build System Users can build HDF-EOS5 and run its test suite on any supported system using its current system of Makefiles. This system can function alone or as one step of a larger install package. However, this distribution relies on precompiled copies of the libGctp library so it will fail on any platform that is not officially supported. To build HDF-EOS5 on a new platform, libGctp must be built by hand and the makefiles must be updated to detect the new platform and to find the appropriate library. This means that porting HDF-EOS5 to a new platform requires an effort by the package maintainer. Likewise, any significant changes to the platforms that HDF-EOS5 supports (a change in compilers or operating systems) may require maintenance work. More importantly from the users point of view, there are a number of platforms that HDF5 supports but HDF-EOS5 does not. Although tests exist for the HDF-EOS5 library, they are not automated and are not run daily. Since building the HDF-EOS5 library requires user input at several stages, it would be very difficult to automate building and testing the library. The test output can only be interpreted by a human--there is no way for a script to tell whether the tests have failed or succeeded except by textually examining the output. Building with Autotools To address these issues, The HDF Group (THG) has added autotools (autoconf, automake, libtool) support to HDF-EOS5. The autotools are collection of open-source projects designed to simplify the building and testing process, and are already used by HDF5. Using the autotools, HDF-EOS5 can be built on any platform that HDF5 supports with little or no effort by its maintainers or THG. HDF-EOS5 will include the source code for the libGctp library so users will not need to depend on the prebuilt binaries. The autotools will also completely automate the process so that HDF-EOS5 can use the same daily testing framework that HDF5 does. In addition, the autotools are constantly being improved, so HDF-EOS5s portability will improve along with HDF5s as the autotool developers add platform support. Automake is in general more flexible than HDF-EOS5s current build system, making it simple to add new make targets and allowing the user to specify a number of options (specifying the install directory, for instance). Many users are probably already familiar with the autotools. Both Build Systems at Once The autotools are more portable, easier to incoporate into automated test scripts, and more familiar to many users. HDF-EOS5s current build system works with EOS5s larger ClearCase install package and is familiar to current users. For the time being, the simplest solution seems to be to have both build systems present simultaneously so that users can use whichever is best for their situation. The burden of maintaining two separate systems should be fairly low, since HDF-EOS5s current system is only required to work on already-supported platforms and the autotools are already being used by HDF5. If maintenance becomes an issue, it may be worthwhile to revisit this design. Examples of Build To build and test HDF-EOS5 using autoconf and automake, the user should first copy the testdrivers directory into the hdfeos5 directory. If testdrivers is not present, HDF-EOS5 will still build but the tests will not be run. To install HDF-EOS5 in the simple case (corresponding to the current build script), the user types: ./configure --with-hdf5=/path/to/hdf5 --libdir=/path/to/hdfeos/lib/linux make install Where /path/to/hdfeos is the path to the hdfeos source and linux is the current system. The user can also run tests using make check. make check and make install can be invoked in any order once configure has been run. If there are any test errors, make check will fail. To run any make commands on a new system, the user needs to first run configure on that system. The build tree can only be configured for one system at a time. There are a number of other options available. For instance, the user can specify the path to HDF5 by setting the environment variable CC to the binary h5cc that is installed as part of HDF5: setenv CC /path/to/hdf5/bin/h5cc ./configure make make check make install By default, HDF-EOS5 only installs libraries, not include files. Users who want to install headers as well can configure with the option --enable-install-include . ./configure --enable-install-include This installs libraries into hdfeos5/lib and headers into hdfeos5/include, similar to how HDF5 is installed by default. Users can use the --prefix option to change this install location for HDF-EOS5, or set library and include directories independently: ./configure --enable-install-include --prefix=/usr/local/hdfeos5 make install ./configure --libdir=/home/install/hdfeos5/lib/sun --includedir=/home/install/hdfeos5/include/sun make install Paths to zlib and szlib (either or both of which may be used by HDF5 and HDF-EOS5) can be supplied using --with-zlib and --with-szlib: ./configure --with-zlib=/usr/local/zlib --with-szlib=/usr/local/szlib All of these options can be combined. The autotools will also honor the users setting of CFLAGS and support more options for advanced users (parallel make, separate include and bin install locations, etc.). To learn more about the autotools, see their online documentation at  HYPERLINK "http://sources.redhat.com/autobook/autobook/autobook.html" http://sources.redhat.com/autobook/autobook/autobook.html . For a list of valid configuration options, simply type: ./configure --help :S^ w W_`Թ h^h4hk*h40Jjh4U h\h4jh\h4U h4h4 h45h `h45h4h `h4CJ 89:STGH ] ^ w x x y gh $`a$gd4$a$gd4$a$gd4`h/<= $`a$gd4$a$gd4 ./*+rsKL`$a$gd4":p4/ =!"#$%]DyK :http://sources.redhat.com/autobook/autobook/autobook.htmlyK thttp://sources.redhat.com/autobook/autobook/autobook.html<@< NormalCJaJmH sH tH T@T ^ Heading 1$<@&5CJ KH OJQJaJ DA@D Default Paragraph FontRi@R  Table Normal4 l4a (k@(No List0U@0 \ Hyperlink>*B*`.!z z z `89:STGH]^wxxy g h  /<= ./*+rsKLb0000000000000000000000ʀ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ʀ00ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ0ʀ89:STGH]^wxxy g h  /<= ./*+rsKLbC8C8888080808C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08C08!!!!!!!!!!!!!!!!!!!C08C08C08C08C08C08`h```XOV+2 * 5 .MSgmy~>Deo#(?CES[`bqb@cA`@ @UnknownGTimes New Roman5Symbol3 Arial qhI3F 6  a4xBuilding and Testing HDF-EOS5 James Laird James Laird Oh+'0  8 D P\dlt|' Building and Testing HDF-EOS5 James LairdNormal James Laird11Microsoft Word 11.3@H@Y @` GPICTb HHb bHH7C,4 bb          O ckZo{kZo{sw{{wo{{^w{{so{{g9g9cg9cZwkZo{g9^O R^9ZNsZNsF1JRNsF1w^RVc9F1VZZcVJRs^cZRkZ{kZ{(wwwwo{s5g9BkZ^ZcV^Zwg9VV^VZg9VVkZ    /kZwo{w wo{wwkZw9kZV^^JRcNsRg9RsNsZRNsZZg9F1g9   ;ww wwwkZo{o{o{kZsww.cR^kZZcVVR^o{RcVo{g9sVcNscVVZkZ^Vo{NsRZg9Z^Z^ZVVVg9Z^Z ^ZZg9ZRNskZ^ZNsc= swwwswkZwswswDZZc^kZkZJRg9Zg9Ns^NskZZkZVg9VVRo{RZkZRo{ZZg9Ns^NskZcVkZ^Vcg9RVVRV^ZkZVZF1^ZRZZkZVNskZc^kZwww# NsZg9NsRVcVVc^   Mwwwwwwww swwwo{www?ckZZVZkZ^kZcRRZRZo{RRo{ZVkZRo{^ZZVZkZ^NsNskZZo{RZcZZVZZkZg9R^kZNscZg9ZkZNskZVkZNsZo{g9_wwswwswsswwwkZwwwkZo{o{o{kZsVkZ Nso{RVVVg9ZkZVZZF1kZg9RV^ZVZg9ZkZVo{VkZkZNs^Z^ZkZZR^o{RcVo{g9sVcNscZVVV^Vwqwswwo{wwwwwwwwwwswwwwwwCZNsg9RkZNsg9kZNscZNsNsRZg9R^R^o{ZRg9RVVZVVZJR^NskZVV^kZVRNskZ^Zg9R^^ZZVRZg9ZZ^Rcg9JR^/wswswwwwU#V^VVkZVZZkZNsNsVZg9ZkZNsZg9R^VZZRZkZNsg9^kZNskZVZ   IkZwwwkZo{kZswsssww kZRRNsRVVZg9RJRZNsccVo{g9RcNscg9ZVV^VwZNsg9RkZNskZkZ^ ZVV^kZkZZZRg9g9F1Qwwwswwws wwwo{o{o{o{kZsCZVcVVcF1kZVNsg9VNs^kZcNs^VkZZ^RVg9RcVo{kZZVg9cRVVc^Zg9Zg9F1ZNsg9RkZNsRJRVg9ckZcZsVcNsc'wwwww/Z^ZZkZNskZVcRVVc^o{VcZNskZZo{RRZkZZZ^kZJRNscZg9Ns^NsRkZNskZVg9kZ^NskZVNsg9^VVc^VVkZVMwwwswwswwswswVNskZ^o{NsRZZVVZg9kZkZZNskZJR^^Z^kZZ'o{Vg9ZkZkZo{^Vwg9R^kZ^VkZ^VV^NskZR^kZZkZZkZVZZF1kZZg9RVg9 7wkZo{s wwkZo{o{o{kZswGcVo{g9cZ^ZF1^RVZRcNscZZ^ZVZg9  SwwwwswwkZo{kZswwwww>ZwZRZ^cRg9^NsZ^kZo{Zg9RkZJR^cVo{g9RcNsckZo{JRVkZg9wJR^g9VkZ^VZg9V^g9BkZJR^ZVZVRKwwkZwww wwkZo{o{o{kZswwwDVZZ^VZVo{ZRo{Vc^R^^ZNscJR^cVo{g9sVcNsckZNskZVZkZ^^VkZ^JRZ^kZNsZ^g9Vg9Z^kZ^kZNsZNsc^ZwMwwwsswwwwwwwkZwCZVwZ^RR^kZ^ZZ^kZZ^Zg9ZV^g9ZNsNsRR^o{RNscVZg9^Z^Vcg9R^kZNskZVZkZR^g9^NsZ^g9Z^RVV Kwwwwwwswwwwww4ZVkZg9R^o{VRkZZkZF1ZRg9VR^NsNsVs^R^kZVZVZVRg9kZZkZVZckZRg9g9Zg9^kZNswR ^kZJR^RZNsRNs^3swwwwwwwwk.Nso{RZZkZZ^cc^^Z^JRkZc^NsRg9g9^kZg9^NskZRkZVNs^VNscg9R^Z^g9Z^g9  0o{w wwwwww5RsNsZRg9RVNs^NsZJRg9Zg9ZZR   _kZwww kZwwkZo{o{wwkZwkZwwwwwwws?kZZVZZkZ^ZZJR^Z^o{ZZ^ZwkZR^cVZc^Z^ZkZkZcV^RVZVZZ^ZV^g9Zg9ZF1kZV^g9NsZVkZwMwwww wkZo{o{o{kZskZwwwwsCV^g9BkZVV^g9Nsg9ZZkZZ^ZZkZg9g9ZcVo{g9sVcNsckZR^V^g9Zg9RZVkZ^cZkZRc^ZVZkZZZ^VVZ^kZNsMww wswwwwwwwwwCZRo{^cNsZ^RcJRZg9ZZo{NsRkZo{kZg9R^R^o{Ro{VcVVZg9JR^VcZRc^ZZRVZVkZ^VkZ^VZg9^Z^ZRg9wkZo{scVo{g9c   ]www wwkZo{o{o{kZswwwwswwkZo{s9cRNscJR^V^g9Zg9ZRZ^Vo{g9sVcNsccVVR^R^o{ZZVVVg9ZkZJRkZZF1kZg9RVg9cVZcZ^ZkZg9Z[wwwssw kZwkZwwkZo{o{o{kZswwwwwCVkZJRkZZZ^ZkZVZ^kZRkZg9Rg9o{g9ZNsNso{VNso{V^kZZkZkZcVo{cVZsVcNscVwo{kZJRckZ^Z^g9R^ZZ^kZNsa wswwwo{wwwwwwwwwwwwkZwcZZ^kZRJR^kZNscZNskZNskZVZ,^Z^kZZVkZkZNsZg9V^^Zg9ZZ^Z^VZZVJR^ZkZ^R^o{ZRNsVkZVZkZR^Ewwwww wwwo{o{o{o{kZsw%V^g9Zg9RZVwo{kZNsRZcZNskZZRg9Rg9V^g9ZNsNsRJR^ZkZZc^Zg9RVRkZcZsVcNsccVV^Z^g9R^ZVNsR 5wws wwwkZo{swKZVo{kZg9^NsNsckZVNsRVVkZVg9RVRVo{g9cZZ^Z  KwwwwwwwwwkZo{kZsw?kZVVZZo{^ZVwg9R^V^g9Zg9RZVkZ^NsVZg9Vg9kZg9F1o{Vco{NsRkZZkZ^ZwZZcVo{g9RcNscZYwwwwwwkZo{swwwwwwwwsZAVRo{ZZVkZkZo{NskZRZkZ^VRVcVkZJRcVo{g9cZVZJR^V^g9Zg9ZRZ^kZ^RZ^kZZVZZZNsg9RkZNskZ Qwww swwwwwkZo{kZswww Z^ZZkZg9Zw^g9BkZV4Zo{Vc^V^kZNsNskZZkZ^kZRkZNskZ^g9RVcVo{g9RcNscZc^kZ^Vg9R^o{RNsZRNskZwEwwwwwwwwswsDNsNsVo{VZg9RNskZR^g9ZVZV^VwNsNsV^g9VkZcRZVVZVkZRVwNscJR^^Z^ZZZZ^ZkZg9VV^NskZR^kZZkZKwswwwswwwwwwwwCZZ^ZVZkZZZ^ZkZg9Nscg9RVVNsVkZRo{kZ^RZZwkZZkZo{VNsVVc^kZVg9Vg9^Z^kZF1kZ^ZkZZRVRkZg9NskZ^VNs%swwww5NsNs^kZNskZVwZRg9R^V^g9Zg9ZF1               ՜.+,D՜.+,L hp  'NCSA x Building and Testing HDF-EOS5 Title 8@ _PID_HLINKS'A/:http://sources.redhat.com/autobook/autobook/autobook.html !"#$%&'()*+,./0123456789:;<>?@ABCDGRoot Entry FJn_IData 1Table WordDocument$.SummaryInformation(-LDocumentSummaryInformation8=CompObjX FMicrosoft Word DocumentNB6WWord.Document.8hdf-eos5-5.1.14+dfsg.1/doc/Compile_WIN.readme.txt0000755000175000017500000001066612024715435022312 0ustar amckinstryamckinstry COMPILING A PROGRAM: ------------------- Following are instructions for compiling an application program on the window xp using the hdfeos binaries that we provide or you build. Make sure that you already have all of the following libraries before you startto compile an application program: libjpeg.lib, zlib.lib (or zdll.lib), szlib.lib, hdf5.lib, hdf5_hl.lib, hdfeos5.lib, hdf5_fortran.lib, hdf5_hl_fortran.lib, gctp.lib. NOTE: The current versions that we're using: jpeg6b, zlib1.2.5, szip2.1, HDF5-1.8.8, HDFEOS5.1.14. If you want to use the latest versions of jpeg, zlib and szlib, go to The HDF Group website (http://www.hdfgroup.org/release4/obtain.html and http://www.hdfgroup.org/HDF5/release/obtain5.html) to download. C or Fortran program : --------------------- Using Microsoft "Visual C++ version 9.x (orlater)" for C program: Using Digitalt Visual Fortran version 9.x or later version for ==================== Using Microsoft Visual Studio 2008 ======================= Example: runing the hdfeos testdrivers: Open Microsoft Visual Studio 2008 and create a project (Visual C++ Project->Win32 Console Project). place a "testdriver" (for example /hdfeos/testdrivers/swath/testswath.c) in the "Source Files" directory (in the Solution Explorer Window) and the tutils.h in the "Haeder Files" directory of the project. Choose "Release" or "Debug" for the configuration setting (using Build->"Configuration Manager" or the one showing on the toolbar). Click on project name in the project tree. Select Project->Properties: Select "General" under "Configuration Properties". In the selection window for "Configuration Type" select "Application(.exe)" option to create output as executable. Select folder C/C++->Preprocesssor Add the following to "Preprocessor definitions": VISUAL_CPLUSPLUS, INTEL86, H5_USE_16_API (if you are using HDF5-1.8.X this may be required to map a few depricated hdf5 functions to their new formats) If the followings were not already there, then add them: WIN32,_CONSOLE For "Runtime Library" use "Multi-thread(/MT)" For "precompiled Headers" choose "Create Precompiled Headers(/yc)" For "Advanced"->"Compile As" choose "Compile as C Code (/TC)" Select "Linker" folder. Under "General" chose "output File" and specify the exectable and full path to it as "F:\MyHdfeos_bin\testswath.exe". Under "Input" put the followings for the "Additional Dependencies": Swath & Point: ============== wsock32.lib hdfeos5.lib hdf5_hl.lib hdf5.lib libjpeg.lib zdll.lib szlib.lib Grid ==== wsock32.lib hdfeos5.lib gctp.lib hdf5_hl.lib hdf5.lib libjpeg.lib zdll.lib szlib.lib The following libraries may (or may not) need to be included: kernel32.lib user32.lib gdi32.lib winspool.lib comdig32.lib advapi32lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib NOTE: hdfeos5.lib and gctp.lib are Release Versions. hdfeos5d.lib and gctpd.lib are Debug versions. Under "Advanced" type "main" for the "Entry Point" This completes settings for "Linker". Click "Apply' then "OK" to close Property setting window. Select Tools->Options->Projects and Solutions->VC++ Directories-> "Show directories for"->"Include files", add the following directories: $(VCInstallDir)include $(VCInstallDir)atlmfc\include $(WindowsSdkDir)\include $(FrameworkSDKDir)include F:\include F:\include F:\include F:\include F:\include Select Tools->Options->Projects and Solutions ->VC++Directories-> "Show directories for"->"Library files", add the following directories: $(VCInstallDir)lib $(VCInstallDir)atlmfc\lib $(VCInstallDir)atlmfc\lib\i386 $(WindowsSdkDir)\lib $(FrameworkSDKDir)lib $(VSInstallDir) $(VSInstallDir)lib F:\lib F:\lib F:\lib F:\lib F:\lib Click "OK" to close "Options" window. Select Build and then "Build ". To run the executable file, for example, testswath.exe Open MS-Dos, go to ../testdrivers/swath and run testswath.exe. NOTE: Before running testpoint.exe, you should copy all ".txt" files to release folder. hdf-eos5-5.1.14+dfsg.1/samples/0000755000175000017500000000000012024715435017073 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/samples/Makefile.am0000644000175000017500000002271712024715435021140 0ustar amckinstryamckinstry# samples Makefile.am # Sample programs for HDF-EOS5 # Boilerplate definitions file include $(top_srcdir)/config/include.am # Link against GCTP library and HDF-EOS5 INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/gctp/include LDADD=$(LIBHDFEOS5) $(LIBGCTP) # The sample programs to be built when the user types 'make check' check_PROGRAMS=he5_gd_datainfo he5_gd_defexternalfld he5_gd_definefields \ he5_gd_defunlimfld he5_gd_info he5_gd_rdexternaldata he5_gd_readdata \ he5_gd_writedata he5_gd_setup he5_gd_subset he5_gd_wrexternaldata he5_gd_wrunlimfld \ he5_pt_datainfo he5_pt_definelevels he5_pt_readattrs he5_pt_readdata \ he5_pt_setup he5_pt_updatelevels he5_pt_writeattrs he5_pt_writedata \ he5_sw_datainfo he5_sw_defexternalfld he5_sw_definefields \ he5_sw_defunlimfld he5_sw_info he5_sw_rdexternaldata he5_sw_readdata \ he5_sw_setup he5_sw_subset he5_sw_wrextendrd he5_sw_wrexternaldata \ he5_sw_writedata he5_sw_wrunlimfld he5_za_datainfo \ he5_za_defexternalfld he5_za_definefields he5_za_info \ he5_za_rdexternaldata he5_za_readdata he5_za_setup \ he5_za_wrexternaldata he5_za_writedata if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL check_PROGRAMS += \ he5_gd_definefieldsF_32 \ he5_gd_infoF_32 \ he5_gd_readdataF_32 \ he5_gd_setupF_32 \ he5_gd_subsetF_32 \ he5_gd_writedataF_32 \ he5_pt_datainfoF_32 \ he5_pt_definelevelsF_32 \ he5_pt_readattrsF_32 \ he5_pt_readdataF_32 \ he5_pt_setupF_32 \ he5_pt_updatelevelsF_32 \ he5_pt_writeattrsF_32 \ he5_pt_writedataF_32 \ he5_sw_defexternalfldF_32 \ he5_sw_definefieldsF_32 \ he5_sw_infoF_32 \ he5_sw_rdexternaldataF_32 \ he5_sw_readdataF_32 \ he5_sw_setupF_32 \ he5_sw_subsetF_32 \ he5_sw_wrexternaldataF_32 \ he5_sw_writedataF_32 \ he5_za_defexternalfldF_32 \ he5_za_definefieldsF_32 \ he5_za_infoF_32 \ he5_za_rdexternaldataF_32 \ he5_za_readdataF_32 \ he5_za_setupF_32 \ he5_za_wrexternaldataF_32 \ he5_za_writedataF_32 he5_gd_definefieldsF_32_SOURCES = he5_gd_definefieldsF_32.f he5_gd_infoF_32_SOURCES = he5_gd_infoF_32.f he5_gd_readdataF_32_SOURCES = he5_gd_readdataF_32.f he5_gd_setupF_32_SOURCES = he5_gd_setupF_32.f he5_gd_subsetF_32_SOURCES = he5_gd_subsetF_32.f he5_gd_writedataF_32_SOURCES = he5_gd_writedataF_32.f he5_pt_datainfoF_32_SOURCES = he5_pt_datainfoF_32.f he5_pt_definelevelsF_32_SOURCES = he5_pt_definelevelsF_32.f he5_pt_readattrsF_32_SOURCES = he5_pt_readattrsF_32.f he5_pt_readdataF_32_SOURCES = he5_pt_readdataF_32.f he5_pt_setupF_32_SOURCES = he5_pt_setupF_32.f he5_pt_updatelevelsF_32_SOURCES = he5_pt_updatelevelsF_32.f he5_pt_writeattrsF_32_SOURCES = he5_pt_writeattrsF_32.f he5_pt_writedataF_32_SOURCES = he5_pt_writedataF_32.f he5_sw_defexternalfldF_32_SOURCES = he5_sw_defexternalfldF_32.f if SZIP_ENCODER_CONDITIONAL he5_sw_definefieldsF_32_SOURCES = he5_sw_definefields_szipF_32.f else he5_sw_definefieldsF_32_SOURCES = he5_sw_definefieldsF_32.f endif he5_sw_infoF_32_SOURCES = he5_sw_infoF_32.f he5_sw_rdexternaldataF_32_SOURCES = he5_sw_rdexternaldataF_32.f he5_sw_readdataF_32_SOURCES = he5_sw_readdataF_32.f he5_sw_setupF_32_SOURCES = he5_sw_setupF_32.f he5_sw_subsetF_32_SOURCES = he5_sw_subsetF_32.f he5_sw_wrexternaldataF_32_SOURCES = he5_sw_wrexternaldataF_32.f he5_sw_writedataF_32_SOURCES = he5_sw_writedataF_32.f he5_za_defexternalfldF_32_SOURCES = he5_za_defexternalfldF_32.f he5_za_definefieldsF_32_SOURCES = he5_za_definefieldsF_32.f he5_za_infoF_32_SOURCES = he5_za_infoF_32.f he5_za_rdexternaldataF_32_SOURCES = he5_za_rdexternaldataF_32.f he5_za_readdataF_32_SOURCES = he5_za_readdataF_32.f he5_za_setupF_32_SOURCES = he5_za_setupF_32.f he5_za_wrexternaldataF_32_SOURCES = he5_za_wrexternaldataF_32.f he5_za_writedataF_32_SOURCES = he5_za_writedataF_32.f else check_PROGRAMS += \ he5_gd_definefieldsF_64 \ he5_gd_infoF_64 \ he5_gd_readdataF_64 \ he5_gd_setupF_64 \ he5_gd_subsetF_64 \ he5_gd_writedataF_64 \ he5_pt_datainfoF_64 \ he5_pt_definelevelsF_64 \ he5_pt_readattrsF_64 \ he5_pt_readdataF_64 \ he5_pt_setupF_64 \ he5_pt_updatelevelsF_64 \ he5_pt_writeattrsF_64 \ he5_pt_writedataF_64 \ he5_sw_defexternalfldF_64 \ he5_sw_definefieldsF_64 \ he5_sw_infoF_64 \ he5_sw_rdexternaldataF_64 \ he5_sw_readdataF_64 \ he5_sw_setupF_64 \ he5_sw_subsetF_64 \ he5_sw_wrexternaldataF_64 \ he5_sw_writedataF_64 \ he5_za_defexternalfldF_64 \ he5_za_definefieldsF_64 \ he5_za_infoF_64 \ he5_za_rdexternaldataF_64 \ he5_za_readdataF_64 \ he5_za_setupF_64 \ he5_za_wrexternaldataF_64 \ he5_za_writedataF_64 he5_gd_definefieldsF_64_SOURCES = he5_gd_definefieldsF_64.f he5_gd_infoF_64_SOURCES = he5_gd_infoF_64.f he5_gd_readdataF_64_SOURCES = he5_gd_readdataF_64.f he5_gd_setupF_64_SOURCES = he5_gd_setupF_64.f he5_gd_subsetF_64_SOURCES = he5_gd_subsetF_64.f he5_gd_writedataF_64_SOURCES = he5_gd_writedataF_64.f he5_pt_datainfoF_64_SOURCES = he5_pt_datainfoF_64.f he5_pt_definelevelsF_64_SOURCES = he5_pt_definelevelsF_64.f he5_pt_readattrsF_64_SOURCES = he5_pt_readattrsF_64.f he5_pt_readdataF_64_SOURCES = he5_pt_readdataF_64.f he5_pt_setupF_64_SOURCES = he5_pt_setupF_64.f he5_pt_updatelevelsF_64_SOURCES = he5_pt_updatelevelsF_64.f he5_pt_writeattrsF_64_SOURCES = he5_pt_writeattrsF_64.f he5_pt_writedataF_64_SOURCES = he5_pt_writedataF_64.f he5_sw_defexternalfldF_64_SOURCES = he5_sw_defexternalfldF_64.f if SZIP_ENCODER_CONDITIONAL he5_sw_definefieldsF_64_SOURCES = he5_sw_definefields_szipF_64.f else he5_sw_definefieldsF_64_SOURCES = he5_sw_definefieldsF_64.f endif he5_sw_infoF_64_SOURCES = he5_sw_infoF_64.f he5_sw_rdexternaldataF_64_SOURCES = he5_sw_rdexternaldataF_64.f he5_sw_readdataF_64_SOURCES = he5_sw_readdataF_64.f he5_sw_setupF_64_SOURCES = he5_sw_setupF_64.f he5_sw_subsetF_64_SOURCES = he5_sw_subsetF_64.f he5_sw_wrexternaldataF_64_SOURCES = he5_sw_wrexternaldataF_64.f he5_sw_writedataF_64_SOURCES = he5_sw_writedataF_64.f he5_za_defexternalfldF_64_SOURCES = he5_za_defexternalfldF_64.f he5_za_definefieldsF_64_SOURCES = he5_za_definefieldsF_64.f he5_za_infoF_64_SOURCES = he5_za_infoF_64.f he5_za_rdexternaldataF_64_SOURCES = he5_za_rdexternaldataF_64.f he5_za_readdataF_64_SOURCES = he5_za_readdataF_64.f he5_za_setupF_64_SOURCES = he5_za_setupF_64.f he5_za_wrexternaldataF_64_SOURCES = he5_za_wrexternaldataF_64.f he5_za_writedataF_64_SOURCES = he5_za_writedataF_64.f endif endif # Tests consist of several programs run in succession. Each of these # names is the name of such a "sequence" of tests. TEST_SEQUENCES=gd_write_test gd_unlim_test pt_write_test sw_write_test \ sw_unlim_test sw_extend_test za_write_test if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL TEST_SEQUENCES+=gd_write_test_32f pt_write_test_32f sw_write_test_32f za_write_test_32f else TEST_SEQUENCES+=gd_write_test_64f pt_write_test_64f sw_write_test_64f za_write_test_64f endif endif # 'make check' should run each of the test sequences above check-local: $(TEST_SEQUENCES) # Manually list the tests to be run in order for each test sequence. gd_write_test: $(check_PROGRAMS) ./he5_gd_setup ./he5_gd_definefields ./he5_gd_writedata ./he5_gd_readdata ./he5_gd_info ./he5_gd_datainfo ./he5_gd_subset gd_write_test_32f: $(check_PROGRAMS) ./he5_gd_setupF_32 ./he5_gd_definefieldsF_32 ./he5_gd_writedataF_32 ./he5_gd_readdataF_32 ./he5_gd_infoF_32 ./he5_gd_subsetF_32 gd_write_test_64f: $(check_PROGRAMS) ./he5_gd_setupF_64 ./he5_gd_definefieldsF_64 ./he5_gd_writedataF_64 ./he5_gd_readdataF_64 ./he5_gd_infoF_64 ./he5_gd_subsetF_64 gd_unlim_test: $(check_PROGRAMS) ./he5_gd_setup ./he5_gd_defunlimfld ./he5_gd_wrunlimfld pt_write_test: $(check_PROGRAMS) ./he5_pt_setup ./he5_pt_definelevels srcdir=$(srcdir) ./he5_pt_writedata ./he5_pt_writeattrs ./he5_pt_readdata ./he5_pt_readattrs ./he5_pt_updatelevels ./he5_pt_datainfo pt_write_test_32f: $(check_PROGRAMS) ./he5_pt_setupF_32 ./he5_pt_definelevelsF_32 srcdir=$(srcdir) ./he5_pt_writedataF_32 ./he5_pt_writeattrsF_32 ./he5_pt_readdataF_32 ./he5_pt_readattrsF_32 ./he5_pt_updatelevelsF_32 ./he5_pt_datainfoF_32 pt_write_test_64f: $(check_PROGRAMS) ./he5_pt_setupF_64 ./he5_pt_definelevelsF_64 srcdir=$(srcdir) ./he5_pt_writedataF_64 ./he5_pt_writeattrsF_64 ./he5_pt_readdataF_64 ./he5_pt_readattrsF_64 ./he5_pt_updatelevelsF_64 ./he5_pt_datainfoF_64 sw_write_test: $(check_PROGRAMS) ./he5_sw_setup ./he5_sw_definefields ./he5_sw_writedata ./he5_sw_readdata ./he5_sw_info ./he5_sw_datainfo ./he5_sw_subset sw_write_test_32f: $(check_PROGRAMS) ./he5_sw_setupF_32 ./he5_sw_definefieldsF_32 ./he5_sw_writedataF_32 ./he5_sw_readdataF_32 ./he5_sw_infoF_32 ./he5_sw_subsetF_32 sw_write_test_64f: $(check_PROGRAMS) ./he5_sw_setupF_64 ./he5_sw_definefieldsF_64 ./he5_sw_writedataF_64 ./he5_sw_readdataF_64 ./he5_sw_infoF_64 ./he5_sw_subsetF_64 sw_unlim_test: $(check_PROGRAMS) ./he5_sw_setup ./he5_sw_defunlimfld ./he5_sw_wrunlimfld ./he5_sw_subset sw_extend_test: $(check_PROGRAMS) ./he5_sw_setup ./he5_sw_definefields ./he5_sw_wrextendrd za_write_test: $(check_PROGRAMS) ./he5_za_setup ./he5_za_definefields ./he5_za_writedata ./he5_za_readdata ./he5_za_info ./he5_za_datainfo za_write_test_32f: $(check_PROGRAMS) ./he5_za_setupF_32 ./he5_za_definefieldsF_32 ./he5_za_writedataF_32 ./he5_za_readdataF_32 ./he5_za_infoF_32 za_write_test_64f: $(check_PROGRAMS) ./he5_za_setupF_64 ./he5_za_definefieldsF_64 ./he5_za_writedataF_64 ./he5_za_readdataF_64 ./he5_za_infoF_64 # This avoids any confusion between the names of the sequences and # files with the same names. .PHONY: $(TEST_SEQUENCES) hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_wrexternaldataF_64.f0000755000175000017500000000650512024715435024171 0ustar amckinstryamckinstryc c ---------------------------------------------------------------------------- c | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | c ---------------------------------------------------------------------------- c program he5_sw_wrexternaldataF_64 implicit none include 'hdfeos5.inc' integer i integer status integer he5_swopen integer he5_swattach integer he5_swwrfld integer he5_ehrdwrfile integer he5_swdetach integer he5_swclose integer swfid, swid integer data_out_1(100) integer data_out_2(100) integer data_out_3(100) integer data(60) integer*8 start(2) integer*8 stride(2) integer*8 count(2) integer*8 num_elements integer FAIL parameter (FAIL=-1) c.....Use this for writing (only) to an existing file integer WRITE_EXISTING_ONLY parameter (WRITE_EXISTING_ONLY=0) c.....Use this for reading (only) from an existing file integer READ_ONLY parameter (READ_ONLY=1) c.....Use this for creating and writing to a file integer WRITE_NEW parameter (WRITE_NEW=2) c Create the new data buffer c -------------------------- do 10 i=1,60 data(i) = 9999 10 continue c Open HDF-EOS swath file, "swath.he5" c ------------------------------------ swfid = he5_swopen("swath.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned from he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned from he5_swattach(): ',swid if (swid .NE. FAIL) then c Write new data to the external files c ------------------------------------ start(1) = 0 stride(1) = 1 count(1) = 60 status = he5_swwrfld(swid,"ExtData", 1 start,stride,count,data) write(*,*) 'Status returned from he5_swrdfld(): ',status num_elements = 100 status = he5_ehrdwrfile("extf1.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_1) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf2.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_2) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf3.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_3) write(*,*) 'Status returned from he5_ehrdwrfile: ',status write(*,*)'External file extf1.dat:' write(*,*) data_out_1 write(*,*) ' ' write(*,*)'External file extf2.dat:' write(*,*) data_out_2 write(*,*) ' ' write(*,*)'External file extf3.dat:' write(*,*) data_out_3 write(*,*) ' ' endif endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned from he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned from he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_wrunlimfld.c0000755000175000017500000000675612024715435022656 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will (1) open the "Grid.h5" HDF-EOS file, (2) attach to * the "UTMGrid", and (3) write data to the appendable "Vegetation" field. */ int main() { herr_t status = FAIL; int i, j; int rank = FAIL; hid_t gdfid = FAIL; hid_t GDid = FAIL; hid_t *ntype; hssize_t start[3]; hsize_t edge[3], dims[8] = {0,0,0,0,0,0,0,0}; float veg[200][120]; char buf1[256], buf2[256]; /* Fill veg array */ /* -------------- */ for (i = 0; i < 200; i++) for (j = 0; j < 120; j++) veg[i][j] = (float)(10+i); /* Open the HDF grid file "Grid.h5" */ /* ------------------------------- */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); if (gdfid != FAIL) { /* Attach the "UTMGrid" */ /* ------------------- */ GDid = HE5_GDattach(gdfid, "UTMGrid"); if (GDid != FAIL) { /* Write data to the appendable field */ /* ---------------------------------- */ start[0] = 0; start[1] = 0; edge[0] = 200; edge[1] = 120; status = HE5_GDwritefield(GDid, "Vegetation", start, NULL, edge, veg); printf("Status returned by HE5_GDwritefield(): %d\n", status); strcpy(buf1, ""); strcpy(buf2, ""); dims[0] = 0; dims[1] = 0; ntype = (hid_t *)calloc(1, sizeof(hid_t)); status = HE5_GDfieldinfo(GDid, "Vegetation", &rank, dims, ntype, buf1, buf2); printf("Status returned by HE5_GDfieldinfo(): %d\n", status); if (status != FAIL) { printf("\tThe dimension list: %s \n", buf1); printf("\tThe maximum dimension list: %s \n", buf2); printf("The sizes of dataset dimensions before appending: \n"); for (i = 0; i < rank; i++) printf("\t %lu \n", (unsigned long)dims[i]); } free(ntype); } /* Detach from "UTMGrid" */ /* -------------------- */ status = HE5_GDdetach(GDid); /* Attach the "UTMGrid" */ /* ------------------- */ GDid = HE5_GDattach(gdfid, "UTMGrid"); if (GDid != FAIL) { /* Write new data to the appendable field */ /* -------------------------------------- */ start[0] = 180; start[1] = 100; edge[0] = 100; edge[1] = 80; status = HE5_GDwritefield(GDid, "Vegetation", start, NULL, edge, veg); printf("Status returned by HE5_GDwritefield(): %d\n", status); strcpy(buf1, ""); strcpy(buf2, ""); dims[0] = 0; dims[1] = 0; ntype = (hid_t *)calloc(1, sizeof(hid_t)); status = HE5_GDfieldinfo(GDid, "Vegetation", &rank, dims, ntype, buf1, buf2); printf("Status returned by HE5_GDfieldinfo(): %d\n", status); if (status != FAIL) { printf("\tThe dimension list: %s \n", buf1); printf("\tThe maximum dimension list: %s \n", buf2); printf("The sizes of dataset dimensions after appending: \n"); for (i = 0; i < rank; i++) printf("\t %lu \n", (unsigned long)dims[i]); } free(ntype); } status = HE5_GDdetach(GDid); } status = HE5_GDclose(gdfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/hdfeos5.inc0000755000175000017500000003511312024715435021131 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 11, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines ! * ========================================================== ! * Contents: ! * HDFEOS5 data type tags ! * HDFEOS5 logical constants ! * HDFEOS5 file access tags ! * HDFEOS5/GCTP library codes ! * ! * =========================================================== ! HDFEOS5 DATA TYPE TAGS ! ======================= integer HE5T_NATIVE_INT integer HE5T_NATIVE_UINT integer HE5T_NATIVE_SHORT integer HE5T_NATIVE_USHORT integer HE5T_NATIVE_SCHAR integer HE5T_NATIVE_UCHAR integer HE5T_NATIVE_LONG integer HE5T_NATIVE_ULONG integer HE5T_NATIVE_LLONG integer HE5T_NATIVE_ULLONG integer HE5T_NATIVE_FLOAT integer HE5T_NATIVE_REAL integer HE5T_NATIVE_DOUBLE integer HE5T_NATIVE_LDOUBLE integer HE5T_NATIVE_INT8 integer HE5T_NATIVE_UINT8 integer HE5T_NATIVE_INT16 integer HE5T_NATIVE_UINT16 integer HE5T_NATIVE_INT32 integer HE5T_NATIVE_UINT32 integer HE5T_NATIVE_INT64 integer HE5T_NATIVE_UINT64 integer HE5T_NATIVE_B8 integer HE5T_NATIVE_B16 integer HE5T_NATIVE_B32 integer HE5T_NATIVE_B64 integer HE5T_NATIVE_HSIZE integer HE5T_NATIVE_HERR integer HE5T_NATIVE_HBOOL integer HE5T_STD_I8BE integer HE5T_STD_I8LE integer HE5T_STD_I16BE integer HE5T_STD_I16LE integer HE5T_STD_I32BE integer HE5T_STD_I32LE integer HE5T_STD_I64BE integer HE5T_STD_I64LE integer HE5T_STD_U8BE integer HE5T_STD_U8LE integer HE5T_STD_U16BE integer HE5T_STD_U16LE integer HE5T_STD_U32BE integer HE5T_STD_U32LE integer HE5T_STD_U64BE integer HE5T_STD_U64LE integer HE5T_STD_B8BE integer HE5T_STD_B8LE integer HE5T_STD_B16BE integer HE5T_STD_B16LE integer HE5T_STD_B32BE integer HE5T_STD_B32LE integer HE5T_STD_B64BE integer HE5T_STD_B64LE integer HE5T_IEEE_F32BE integer HE5T_IEEE_F32LE integer HE5T_IEEE_F64BE integer HE5T_IEEE_F64LE integer HE5T_NATIVE_CHAR integer HE5T_CHARSTRING parameter(HE5T_NATIVE_INT = 0) parameter(HE5T_NATIVE_UINT = 1) parameter(HE5T_NATIVE_SHORT = 2) parameter(HE5T_NATIVE_USHORT = 3) parameter(HE5T_NATIVE_SCHAR = 4) parameter(HE5T_NATIVE_UCHAR = 5) parameter(HE5T_NATIVE_LONG = 6) parameter(HE5T_NATIVE_ULONG = 7) parameter(HE5T_NATIVE_LLONG = 8) parameter(HE5T_NATIVE_ULLONG = 9) parameter(HE5T_NATIVE_FLOAT =10) parameter(HE5T_NATIVE_REAL =10) parameter(HE5T_NATIVE_DOUBLE =11) parameter(HE5T_NATIVE_LDOUBLE =12) parameter(HE5T_NATIVE_INT8 =13) parameter(HE5T_NATIVE_UINT8 =14) parameter(HE5T_NATIVE_INT16 =15) parameter(HE5T_NATIVE_UINT16 =16) parameter(HE5T_NATIVE_INT32 =17) parameter(HE5T_NATIVE_UINT32 =18) parameter(HE5T_NATIVE_INT64 =19) parameter(HE5T_NATIVE_UINT64 =20) parameter(HE5T_NATIVE_B8 =21) parameter(HE5T_NATIVE_B16 =22) parameter(HE5T_NATIVE_B32 =23) parameter(HE5T_NATIVE_B64 =24) parameter(HE5T_NATIVE_HSIZE =25) parameter(HE5T_NATIVE_HERR =26) parameter(HE5T_NATIVE_HBOOL =27) parameter(HE5T_STD_I8BE =28) parameter(HE5T_STD_I8LE =29) parameter(HE5T_STD_I16BE =30) parameter(HE5T_STD_I16LE =31) parameter(HE5T_STD_I32BE =32) parameter(HE5T_STD_I32LE =33) parameter(HE5T_STD_I64BE =34) parameter(HE5T_STD_I64LE =35) parameter(HE5T_STD_U8BE =36) parameter(HE5T_STD_U8LE =37) parameter(HE5T_STD_U16BE =38) parameter(HE5T_STD_U16LE =39) parameter(HE5T_STD_U32BE =40) parameter(HE5T_STD_U32LE =41) parameter(HE5T_STD_U64BE =42) parameter(HE5T_STD_U64LE =43) parameter(HE5T_STD_B8BE =44) parameter(HE5T_STD_B8LE =45) parameter(HE5T_STD_B16BE =46) parameter(HE5T_STD_B16LE =47) parameter(HE5T_STD_B32BE =48) parameter(HE5T_STD_B32LE =49) parameter(HE5T_STD_B64BE =50) parameter(HE5T_STD_B64LE =51) parameter(HE5T_IEEE_F32BE =52) parameter(HE5T_IEEE_F32LE =53) parameter(HE5T_IEEE_F64BE =54) parameter(HE5T_IEEE_F64LE =55) parameter(HE5T_NATIVE_CHAR =56) parameter(HE5T_CHARSTRING =57) integer HE5S_UNLIMITED_F parameter(HE5S_UNLIMITED_F = -1) ! HDFEOS5 FILE ACCESS TAGS ! ======================== integer HE5F_ACC_RDWR integer HE5F_ACC_RDONLY integer HE5F_ACC_TRUNC parameter(HE5F_ACC_RDWR = 100) parameter(HE5F_ACC_RDONLY = 101) parameter(HE5F_ACC_TRUNC = 102) ! TOOLKIT FILE ACCESS TAGS ! ======================== integer HDF4_ACC_RDONLY integer HDF4_ACC_RDWR integer HDF4_ACC_CREATE integer HDF5_ACC_RDONLY integer HDF5_ACC_RDWR integer HDF5_ACC_CREATE parameter(HDF4_ACC_RDONLY = 1) parameter(HDF4_ACC_RDWR = 3) parameter(HDF4_ACC_CREATE = 4) parameter(HDF5_ACC_RDONLY = 11) parameter(HDF5_ACC_RDWR = 13) parameter(HDF5_ACC_CREATE = 14) ! HDFEOS5 MERGE CODES ! ==================== integer HE5_HDFE_NOMERGE integer HE5_HDFE_AUTOMERGE parameter(HE5_HDFE_NOMERGE =0) parameter(HE5_HDFE_AUTOMERGE =1) ! HDFEOS5 XXentries CODES ! ======================= integer HE5_HDFE_NENTDIM integer HE5_HDFE_NENTMAP integer HE5_HDFE_NENTIMAP integer HE5_HDFE_NENTGFLD integer HE5_HDFE_NENTDFLD parameter(HE5_HDFE_NENTDIM =0) parameter(HE5_HDFE_NENTMAP =1) parameter(HE5_HDFE_NENTIMAP =2) parameter(HE5_HDFE_NENTGFLD =3) parameter(HE5_HDFE_NENTDFLD =4) ! HDFEOS5 ANGLE CONVERSION CODES ! ============================== integer HE5_HDFE_RAD_DEG integer HE5_HDFE_DEG_RAD integer HE5_HDFE_DMS_DEG integer HE5_HDFE_DEG_DMS integer HE5_HDFE_RAD_DMS integer HE5_HDFE_DMS_RAD parameter(HE5_HDFE_RAD_DEG =0) parameter(HE5_HDFE_DEG_RAD =1) parameter(HE5_HDFE_DMS_DEG =2) parameter(HE5_HDFE_DEG_DMS =3) parameter(HE5_HDFE_RAD_DMS =4) parameter(HE5_HDFE_DMS_RAD =5) ! HDFEOS5 SWATH SUBSET CODES ! ========================== integer HE5_HDFE_MIDPOINT integer HE5_HDFE_ENDPOINT integer HE5_HDFE_ANYPOINT integer HE5_HDFE_INTERNAL integer HE5_HDFE_EXTERNAL integer HE5_HDFE_NOPREVSUB parameter(HE5_HDFE_MIDPOINT =0) parameter(HE5_HDFE_ENDPOINT =1) parameter(HE5_HDFE_ANYPOINT =2) parameter(HE5_HDFE_INTERNAL =0) parameter(HE5_HDFE_EXTERNAL =1) parameter(HE5_HDFE_NOPREVSUB =-1) ! HDFEOS5 GRID ORIGIN CODES ! ========================= integer HE5_HDFE_GD_UL integer HE5_HDFE_GD_UR integer HE5_HDFE_GD_LL integer HE5_HDFE_GD_LR parameter(HE5_HDFE_GD_UL =0) parameter(HE5_HDFE_GD_UR =1) parameter(HE5_HDFE_GD_LL =2) parameter(HE5_HDFE_GD_LR =3) ! HDFEOS5 PIXEL REGISTRATION CODES ! ================================ integer HE5_HDFE_CENTER integer HE5_HDFE_CORNER parameter(HE5_HDFE_CENTER =0) parameter(HE5_HDFE_CORNER =1) ! HDFEOS5 GCTP PROJECTION CODES ! ============================= integer HE5_GCTP_GEO integer HE5_GCTP_UTM integer HE5_GCTP_SPCS integer HE5_GCTP_ALBERS integer HE5_GCTP_LAMCC integer HE5_GCTP_MERCAT integer HE5_GCTP_PS integer HE5_GCTP_POLYC integer HE5_GCTP_EQUIDC integer HE5_GCTP_TM integer HE5_GCTP_STEREO integer HE5_GCTP_LAMAZ integer HE5_GCTP_AZMEQD integer HE5_GCTP_GNOMON integer HE5_GCTP_ORTHO integer HE5_GCTP_GVNSP integer HE5_GCTP_SNSOID integer HE5_GCTP_EQRECT integer HE5_GCTP_MILLER integer HE5_GCTP_VGRINT integer HE5_GCTP_HOM integer HE5_GCTP_ROBIN integer HE5_GCTP_SOM integer HE5_GCTP_ALASKA integer HE5_GCTP_GOOD integer HE5_GCTP_MOLL integer HE5_GCTP_IMOLL integer HE5_GCTP_HAMMER integer HE5_GCTP_WAGIV integer HE5_GCTP_WAGVII integer HE5_GCTP_OBLEQA integer HE5_GCTP_ISINUS parameter(HE5_GCTP_GEO =0) parameter(HE5_GCTP_UTM =1) parameter(HE5_GCTP_SPCS =2) parameter(HE5_GCTP_ALBERS =3) parameter(HE5_GCTP_LAMCC =4) parameter(HE5_GCTP_MERCAT =5) parameter(HE5_GCTP_PS =6) parameter(HE5_GCTP_POLYC =7) parameter(HE5_GCTP_EQUIDC =8) parameter(HE5_GCTP_TM =9) parameter(HE5_GCTP_STEREO =10) parameter(HE5_GCTP_LAMAZ =11) parameter(HE5_GCTP_AZMEQD =12) parameter(HE5_GCTP_GNOMON =13) parameter(HE5_GCTP_ORTHO =14) parameter(HE5_GCTP_GVNSP =15) parameter(HE5_GCTP_SNSOID =16) parameter(HE5_GCTP_EQRECT =17) parameter(HE5_GCTP_MILLER =18) parameter(HE5_GCTP_VGRINT =19) parameter(HE5_GCTP_HOM =20) parameter(HE5_GCTP_ROBIN =21) parameter(HE5_GCTP_SOM =22) parameter(HE5_GCTP_ALASKA =23) parameter(HE5_GCTP_GOOD =24) parameter(HE5_GCTP_MOLL =25) parameter(HE5_GCTP_IMOLL =26) parameter(HE5_GCTP_HAMMER =27) parameter(HE5_GCTP_WAGIV =28) parameter(HE5_GCTP_WAGVII =29) parameter(HE5_GCTP_OBLEQA =30) parameter(HE5_GCTP_ISINUS =99) ! HDFEOS5 TILIND/COMPRESSION CODES ! ================================ integer HE5_HDFE_NOTILE integer HE5_HDFE_TILE integer HE5_HDFE_COMP_NONE integer HE5_HDFE_COMP_RLE integer HE5_HDFE_COMP_NBIT integer HE5_HDFE_COMP_SKPHUFF integer HE5_HDFE_COMP_DEFLATE integer HE5_HDFE_COMP_SZIP_CHIP integer HE5_HDFE_COMP_SZIP_K13 integer HE5_HDFE_COMP_SZIP_EC integer HE5_HDFE_COMP_SZIP_NN integer HE5_HDFE_COMP_SZIP_K13orEC integer HE5_HDFE_COMP_SZIP_K13orNN integer HE5_HDFE_COMP_SHUF_DEFLATE integer HE5_HDFE_COMP_SHUF_SZIP_CHIP integer HE5_HDFE_COMP_SHUF_SZIP_K13 integer HE5_HDFE_COMP_SHUF_SZIP_EC integer HE5_HDFE_COMP_SHUF_SZIP_NN integer HE5_HDFE_COMP_SHUF_SZIP_K13orEC integer HE5_HDFE_COMP_SHUF_SZIP_K13orNN parameter(HE5_HDFE_NOTILE =0) parameter(HE5_HDFE_TILE =1) parameter(HE5_HDFE_COMP_NONE =0) parameter(HE5_HDFE_COMP_RLE =1) parameter(HE5_HDFE_COMP_NBIT =2) parameter(HE5_HDFE_COMP_SKPHUFF =3) parameter(HE5_HDFE_COMP_DEFLATE =4) parameter(HE5_HDFE_COMP_SZIP_CHIP =5) parameter(HE5_HDFE_COMP_SZIP_K13 =6) parameter(HE5_HDFE_COMP_SZIP_EC =7) parameter(HE5_HDFE_COMP_SZIP_NN =8) parameter(HE5_HDFE_COMP_SZIP_K13orEC =9) parameter(HE5_HDFE_COMP_SZIP_K13orNN =10) parameter(HE5_HDFE_COMP_SHUF_DEFLATE =11) parameter(HE5_HDFE_COMP_SHUF_SZIP_CHIP =12) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13 =13) parameter(HE5_HDFE_COMP_SHUF_SZIP_EC =14) parameter(HE5_HDFE_COMP_SHUF_SZIP_NN =15) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orEC =16) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orNN =17) ! HDFEOS5 GROUP CODES ! =================== integer HE5_HDFE_GEOGROUP integer HE5_HDFE_DATAGROUP integer HE5_HDFE_ATTRGROUP integer HE5_HDFE_GRPATTRGROUP integer HE5_HDFE_LOCATTRGROUP integer HE5_HDFE_PROFGROUP integer HE5_HDFE_PROFGRPATTRGROUP integer HE5_HDFE_GEOGRPATTRGROUP parameter(HE5_HDFE_GEOGROUP =0) parameter(HE5_HDFE_DATAGROUP =1) parameter(HE5_HDFE_ATTRGROUP =2) parameter(HE5_HDFE_GRPATTRGROUP =3) parameter(HE5_HDFE_LOCATTRGROUP =4) parameter(HE5_HDFE_PROFGROUP =5) parameter(HE5_HDFE_PROFGRPATTRGROUP =6) parameter(HE5_HDFE_GEOGRPATTRGROUP =7) hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_readdimscaleF_32.f0000644000175000017500000001243712024715435023552 0ustar amckinstryamckinstry program he5_sw_readdimscaleF_32 implicit none include 'hdfeos5.inc' integer status integer i, j, jj integer he5_swopen integer he5_swattach integer he5_swwrfld integer he5_swwrattr integer he5_swwrgattr integer he5_ehwrglatt integer he5_swwrlattr integer he5_swdetach integer he5_swclose integer HE5_SWdscaleattrinfo, HE5_SWreaddscaleattr integer HE5_SWgetdimscale, HE5_SWinqdscaleattrs integer ntype integer swfid,swid1 real*4 datbuf_f(1) integer*4 datbuf_i(3) integer*4 nbands integer bands(3) integer*4 datbuf_i2(2) integer count(2) integer attr_int(25) real*4 attr_flt(25) real*8 attr_dbl(25) character attr_char(25) integer dimsize integer bufsize, nattr integer data(30) integer FAIL parameter (FAIL=-1) character*100 attrlist character*100 strbufsize character*15 attrname(10) integer numtype ! /* ! * Open the HDF swath file, "swath.he5". ! */ swfid = HE5_SWopen("swath.he5", HE5F_ACC_RDWR) ! /* ! * If the swath file cannot be found, HE5_SWopen will return -1 for the file ! * handle (swfid). We there check that this is not the case before ! * proceeding with the other routines. ! * ! * The HE5_SWattach routine returns the handle to the existing swath "Swath1", ! * SWid. If the swath is not found, HE5_SWattach returns -1 for the handle. ! */ if (swfid .ne. FAIL) then SWid1 = HE5_SWattach(swfid, "Swath1") ! /* the field Pollution has Time,YDim,XDim dimensions. ! xdim = 120 ! ydim = 200 ! Time dim is set to 10 ! */ if (SWid1 .eq. FAIL) then write(*,*) 'Error: Cannot attach to swath Swath1' status = HE5_SWclose(swfid) stop endif bufsize = HE5_SWgetdimscale(SWid1, "Spectra", "Bands", 1 dimsize, numtype, data) if (bufsize .eq. -1) then write(*,*) 'Error:Cannot get Dimension Scale size of Bands', 1 ' dimemnsion in field Spectra' status = HE5_SWdetach(SWid1) status = HE5_SWclose(swfid) stop else write(*,*) 'bufsize = ',bufsize write(*,*) 'dimsize = ',dimsize write(*,*) 'numtype = ',numtype write(*,*) 'Values are:' do i = 1,dimsize write(*,*) 'DimscaleValue[',i,'] = ',data(i) enddo endif nattr = HE5_SWinqdscaleattrs(SWid1, "Bands", attrlist, 1 strbufsize) if ( nattr .lt. 0 ) then write(*,*) 'Error: Cannot get Dimension Scale attribute', 1 ' list for Bands' status = HE5_SWdetach(SWid1) status = HE5_SWclose(swfid) stop endif write(*,*) ' ' write(*,*) 'Dimension scale for Bands Attribute:' attrname(1) = 'label' attrname(2) = 'unit' attrname(3) = 'format' attrname(4) = 'MissingValue' attrname(5) = 'IntValues' do j = 1,5 attr_char = '' count(1)= 0 count(2)= 0 status = HE5_SWdscaleattrinfo(SWid1,"Bands", attrname(j), 1 ntype, count) if( ntype .eq. 0) then status = HE5_SWreaddscaleattr(SWid1,"Bands", attrname(j), 1 attr_int) endif if( ntype .eq. 10) then status = HE5_SWreaddscaleattr(SWid1,"Bands", attrname(j), 1 attr_flt) endif if( ntype .eq. 11) then status = HE5_SWreaddscaleattr(SWid1,"Bands", attrname(j), 1 attr_dbl) endif if( ntype .eq. 57) then status = HE5_SWreaddscaleattr(SWid1,"Bands", attrname(j), 1 attr_char) endif write(*,*) ' ' write(*,*) 'Status returned by HE5_SWreaddscaleattr() :', 1 status write(*,*) 'Attribute Name: ',attrname(j) write(*,*) 'Number of attribute elements: ', count(1), 1 ' ',count(2) write(*,*) 'Data type of attribute: ', ntype if( ntype .eq. 0) then do jj = 1,count(1) write(*,*) 'Attrvalue[',jj,']: ', attr_int(jj) enddo endif if( ntype .eq. 10) then do jj = 1,count(1) write(*,*) 'Attrvalue[',jj,']: ',attr_flt(jj) enddo endif if( ntype .eq. 11) then do jj = 1,count(1) write(*,*) 'Attrvalue[',jj,']: ',attr_dbl(jj) enddo endif if( ntype .eq. 57) then write(*,*) 'Attrvalue: ', attr_char endif enddo endif status = HE5_SWdetach(SWid1) status = HE5_SWclose(swfid) stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_setup.c0000755000175000017500000001011712024715435021654 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* In this program we (1) open an HDF-EOS file, (2) create the swath */ /* interface within the file, and (3) define the swath field dimensions */ /* -------------------------------------------------------------------- */ int main() { herr_t status = FAIL; int i, j; hid_t swfid = FAIL; hid_t SWid = FAIL; long indx[12] = {0,1,3,6,7,8,11,12,14,24,32,39}; /* Open a new HDF-EOS swath file, "Swath.h5" */ /* ----------------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_TRUNC); printf("File ID returned by HE5_SWopen(): %d \n", swfid); /* Create the swath, "Swath1", within the file */ /* ------------------------------------------- */ SWid = HE5_SWcreate(swfid, "Swath1"); printf("Swath ID returned by HE5_SWcreate(): %d \n", SWid); /* Define dimensions and specify their sizes */ /* ----------------------------------------- */ status = HE5_SWdefdim(SWid, "GeoTrack", 20); printf("Status returned by HE5_SWdefdim(): %d \n", status); status = HE5_SWdefdim(SWid, "GeoXtrack", 10); printf("Status returned by HE5_SWdefdim(): %d \n", status); status = HE5_SWdefdim(SWid, "Res2tr", 40); printf("Status returned by HE5_SWdefdim(): %d \n", status); status = HE5_SWdefdim(SWid, "Res2xtr", 20); printf("Status returned by HE5_SWdefdim(): %d \n", status); status = HE5_SWdefdim(SWid, "Bands", 15); printf("Status returned by HE5_SWdefdim(): %d \n", status); status = HE5_SWdefdim(SWid, "IndxTrack", 12); printf("Status returned by HE5_SWdefdim(): %d \n", status); status = HE5_SWdefdim(SWid, "ProfDim", 4); printf("Status returned by HE5_SWdefdim(): %d \n", status); /* Define "External" Dimension */ /* --------------------------- */ status = HE5_SWdefdim(SWid, "ExtDim", 60); printf("Status returned by HE5_SWdefdim(): %d \n", status); /* Define Unlimited Dimension */ /* -------------------------- */ status = HE5_SWdefdim(SWid, "Unlim", H5S_UNLIMITED); printf("Status returned by HE5_SWdefdim(): %d \n", status); /* * Once the dimensions are defined, the relationship (mapping) between the * geolocation dimensions, such as track and cross track, and the data * dimensions, must be established. This is done through the HE5_SWdefdimmap * routine. It takes as input the swath id, the names of the dimensions * designating the geolocation and data dimensions, respectively, and the * offset and increment defining the relation. * * In the first example we relate the "GeoTrack" and "Res2tr" dimensions * with an offset of 0 and an increment of 2. Thus the ith element of * "Geotrack" corresponds to the 2 * ith element of "Res2tr". * * In the second example, the ith element of "GeoXtrack" corresponds to the * 2 * ith + 1 element of "Res2xtr". * * Note that there is no relationship between the geolocation dimensions * and the "Bands" dimension. */ /* Define Dimension Mapping */ /* ------------------------ */ status = HE5_SWdefdimmap(SWid, "GeoTrack", "Res2tr", 0, 2); printf("Status returned by HE5_SWdefdimmap(): %d \n", status); status = HE5_SWdefdimmap(SWid, "GeoXtrack", "Res2xtr", 1, 2); printf("Status returned by HE5_SWdefdimmap(): %d \n", status); /* Define Indexed Mapping */ /* ---------------------- */ status = HE5_SWdefidxmap(SWid, "IndxTrack", "Res2tr", indx); printf("Status returned by HE5_SWdefidxmap(): %d \n", status); /* Close the swath interface */ /* ------------------------- */ status = HE5_SWdetach(SWid); printf("Status returned by HE5_SWdetach(): %d \n", status); /* Close the swath file */ /* -------------------- */ status = HE5_SWclose(swfid); printf("Status returned by HE5_SWclose(): %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/external_2g.data0000755000175000017500000000062012024715435022141 0ustar amckinstryamckinstry''''''''''''''''''''      !"#$%&'()*+,-./01234hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_writedata.c0000755000175000017500000001655012024715435022501 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include typedef struct { double Time; float Conc[4]; char Spc[8]; } CmpData_1; typedef struct { char Label[8]; double Lon; double Lat; int Date; char Id[8]; } CmpData_2; typedef struct { double Time; float Rain; float Temp; char Id[8]; } CmpData_3; typedef struct { char Label[10]; int Date; int Weight; char Id[8]; } CmpData_4; typedef struct { double Time; double Lon; double Lat; float Rain; float Temp; char Id[8]; } CmpData_5; #define NAMEBUF_SIZE 100 int main() { FILE *fp; herr_t status = FAIL; int n, date, wgt, IntAttr = 9999; hid_t ptfid = FAIL, PTid = FAIL; hsize_t count[1]; size_t datasize = 0; float conc[4], rain, temp, flt = -7.5; double time, lon, lat; char spc[8], desc[16], id[ 2 ]; char namebuf[NAMEBUF_SIZE]; char *srcdir; CmpData_1 datbuf_1[20]; CmpData_2 datbuf_2[5]; CmpData_3 datbuf_3[25]; CmpData_4 datbuf_4[5]; CmpData_5 datbuf_5[30]; /* Open the HDF-EOS file, "Point.h5" */ /* --------------------------------- */ ptfid = HE5_PTopen("Point.h5", H5F_ACC_RDWR); /* Write to Simple Point */ /* --------------------- */ PTid = HE5_PTattach(ptfid, "Simple Point"); /* Open input data file */ /* -------------------- */ /* Set up path if the input file is in another directory */ srcdir = getenv("srcdir"); if(srcdir != NULL && (strlen(srcdir) + strlen("simple.txt") + 2) <= NAMEBUF_SIZE) { strcpy(namebuf, srcdir); strcat(namebuf, "/simple.txt"); } else { strcpy(namebuf, "simple.txt"); } fp = fopen(namebuf, "rb"); n = 0; while(fscanf(fp, "%lf %f %f %f %f %s", &time, &conc[0], &conc[1], &conc[2], &conc[3], spc) != -1) { datbuf_1[n].Time = time; datbuf_1[n].Conc[0] = conc[0]; datbuf_1[n].Conc[1] = conc[1]; datbuf_1[n].Conc[2] = conc[2]; datbuf_1[n].Conc[3] = conc[3]; memmove(datbuf_1[n].Spc, spc, sizeof(char)*strlen(spc)); datbuf_1[n].Spc[strlen(spc)] = 0; n++; } fclose(fp); datasize = (size_t)sizeof(CmpData_1); count[0] = n; status = HE5_PTwritelevel(PTid, 0, count, &datasize, datbuf_1); printf("Status returned by HE5_PTwritelevel() : %d \n", status); status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d \n", status); /* Write to Fixed Buoy Point */ /* ------------------------- */ PTid = HE5_PTattach(ptfid, "FixedBuoy Point"); /* Write First (0th) Level */ /* ----------------------- */ /* Set up path if the input file is in another directory */ srcdir = getenv("srcdir"); if(srcdir != NULL && (strlen(srcdir) + strlen("simple.txt") + 2) <= NAMEBUF_SIZE) { strcpy(namebuf, srcdir); strcat(namebuf, "/fixedBuoy0.txt"); } else { strcpy(namebuf, "fixedBuoy0.txt"); } fp = fopen(namebuf, "r"); n = 0; while(fscanf(fp, "%s %lf %lf %d %s", desc, &lon, &lat, &date, id) != -1) { strcpy(datbuf_2[n].Label, desc); datbuf_2[n].Lon = lon; datbuf_2[n].Lat = lat; datbuf_2[n].Date = date; memmove(datbuf_2[n].Id, id, sizeof(char)*strlen(id)); datbuf_2[n].Id[strlen(id)] = 0; n++; } fclose(fp); datasize = (size_t)sizeof(CmpData_2); count[0] = n; status = HE5_PTwritelevel(PTid, 0, count, &datasize, datbuf_2); printf("Status returned by HE5_PTwritelevel() : %d \n", status); /* Write Second (1th) Level */ /* ------------------------ */ /* Set up path if the input file is in another directory */ srcdir = getenv("srcdir"); if(srcdir != NULL && (strlen(srcdir) + strlen("simple.txt") + 2) <= NAMEBUF_SIZE) { strcpy(namebuf, srcdir); strcat(namebuf, "/fixedBuoy1.txt"); } else { strcpy(namebuf, "fixedBuoy1.txt"); } fp = fopen(namebuf, "r"); n = 0; while(fscanf(fp, "%lf %f %f %s", &time, &rain, &temp, id) != -1) { datbuf_3[n].Time = time; datbuf_3[n].Rain = rain; datbuf_3[n].Temp = temp; memmove(datbuf_3[n].Id, id, sizeof(char)*strlen(id)); datbuf_3[n].Id[strlen(id)] = 0; n++; } fclose(fp); datasize = (size_t)sizeof(CmpData_3); count[0] = n; status = HE5_PTwritelevel(PTid, 1, count, &datasize, datbuf_3); printf("Status returned by HE5_PTwritelevel() : %d \n", status); count[0] = 1; status = HE5_PTwriteattr(PTid, "GlobalAttr_Integer", H5T_NATIVE_INT, count, &IntAttr); printf("Status returned by HE5_PTwriteattr() : %d \n", status); status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d \n", status); /* Write to Floating Buoy Point */ /* ---------------------------- */ PTid = HE5_PTattach(ptfid, "FloatBuoy Point"); /* Write First (0th) Level */ /* ----------------------- */ /* Set up path if the input file is in another directory */ srcdir = getenv("srcdir"); if(srcdir != NULL && (strlen(srcdir) + strlen("simple.txt") + 2) <= NAMEBUF_SIZE) { strcpy(namebuf, srcdir); strcat(namebuf, "/floatBuoy0.txt"); } else { strcpy(namebuf, "floatBuoy0.txt"); } fp = fopen(namebuf, "r"); n = 0; while(fscanf(fp, "%s %d %d %s", desc, &date, &wgt, id) != -1) { strcpy(datbuf_4[n].Label, desc); datbuf_4[n].Date = date; datbuf_4[n].Weight = wgt; memmove(datbuf_4[n].Id, id, sizeof(char)*strlen(id)); datbuf_4[n].Id[strlen(id)] = 0; n++; } fclose(fp); datasize = (size_t)sizeof(CmpData_4); count[0] = n; status = HE5_PTwritelevel(PTid, 0, count, &datasize, datbuf_4); printf("Status returned by HE5_PTwritelevel() : %d \n", status); /* Write Second (1th) Level */ /* ------------------------ */ /* Set up path if the input file is in another directory */ srcdir = getenv("srcdir"); if(srcdir != NULL && (strlen(srcdir) + strlen("simple.txt") + 2) <= NAMEBUF_SIZE) { strcpy(namebuf, srcdir); strcat(namebuf, "/floatBuoy1.txt"); } else { strcpy(namebuf, "floatBuoy1.txt"); } fp = fopen(namebuf, "r"); n = 0; while(fscanf(fp, "%lf %lf %lf %f %f %s", &time, &lon, &lat, &rain, &temp, id) != -1) { datbuf_5[n].Time = time; datbuf_5[n].Lon = lon; datbuf_5[n].Lat = lat; datbuf_5[n].Rain = rain; datbuf_5[n].Temp = temp; memmove(datbuf_5[n].Id, id,sizeof(char)*strlen(id)); datbuf_5[n].Id[strlen(id)] = 0; n++; } fclose(fp); datasize = (size_t)sizeof(CmpData_5); count[0] = n; status = HE5_PTwritelevel(PTid, 1, count, &datasize, datbuf_5); printf("Status returned by HE5_PTwritelevel() : %d \n", status); count[0] = 1; status = HE5_PTwriteattr(PTid, "GlobalAttr", H5T_NATIVE_FLOAT, count, &flt); printf("Status returned by HE5_PTwriteattr() : %d \n", status); status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d \n", status); status = HE5_PTclose(ptfid); printf("Status returned by HE5_PTclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_infoF_32.f0000755000175000017500000001341712024715435022072 0ustar amckinstryamckinstryc In this program we retrieve (1) information about the c dimensions, (2) the dimension mappings c (geolocation relations), and (3) the swath fields program he5_sw_infoF_32 implicit none include 'hdfeos5.inc' integer i integer status integer swfid, swid integer he5_swopen integer he5_swattach integer he5_swfldinfo integer he5_swattrinfo integer he5_swmapinfo integer he5_swinqgfldalias integer he5_swinqdfldalias integer he5_swchunkinfo integer he5_swdetach integer he5_swclose integer rank(32) integer ntype(32) integer rk integer nt integer*4 he5_swinqdims integer*4 he5_swinqmaps integer*4 he5_swinqgflds integer*4 he5_swinqdflds integer*4 he5_swdiminfo integer*4 he5_swimapinfo integer*4 he5_swinqimaps integer*4 n integer*4 offset integer*4 incr integer*4 ndims integer*4 nmaps integer*4 nflds integer*4 dims(32) integer*4 off(32) integer*4 inc(32) integer*4 sizes(8) integer*4 indx(32) integer*4 dimsize integer*4 count character*72 dimname character*72 dimmap character*72 dimlist character*72 maxdimlst character*72 fieldlist integer*4 nfldalias integer*4 strbufsize character*72 fldaliases integer chunkrank integer*4 chunkdims(32) integer FAIL parameter (FAIL=-1) c Open the "swath.he5" file for "read only" access c ------------------------------------------------ swfid = he5_swopen("swath.he5", HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then c Attach the swath c ---------------- swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Inquire Dimensions c ------------------ ndims = he5_swinqdims(swid, dimname, dims) write(*,*) 'Dimension list: ', dimname do i = 1,ndims write(*,*) 'dim size: ', dims(i) enddo write(*,*) c Inquire Dimension Mappings c -------------------------- nmaps = he5_swinqmaps(swid, dimmap, off, inc) write(*,*) 'Dimension map: ', dimmap do i = 1,nmaps write(*,*) 'offset increment: ', off(i), inc(i) enddo write(*,*) c Inquire Indexed Dimension Mappings c ---------------------------------- nmaps = he5_swinqimaps(swid, dimmap, sizes) write(*,*) 'Index Dimension map: ', dimmap do i=1,nmaps write(*,*) 'sizes: ', sizes(i) enddo write(*,*) c Inquire Geolocation Fields c -------------------------- nflds = he5_swinqgflds(swid, fieldlist, rank, ntype) write(*,*) 'Geolocation fieldlist: ', fieldlist do i=1,nflds write(*,*) 'field rank & datatype: ',rank(i),ntype(i) enddo write(*,*) nfldalias = he5_swinqgfldalias(swid,fldaliases,strbufsize) write(*,*) 'Fields & aliases list: ',fldaliases write(*,*) 'Length of list is ',strbufsize c Inquire Data Fields c ------------------- nflds = he5_swinqdflds(swid, fieldlist, rank, ntype) write(*,*) 'Data Fieldlist: ', fieldlist do i=1,nflds write(*,*) 'field rank & datatype: ',rank(i),ntype(i) enddo write(*,*) nfldalias = he5_swinqdfldalias(swid,fldaliases,strbufsize) write(*,*) 'Fields & aliases list: ',fldaliases write(*,*) 'Length of list is ',strbufsize c Get info on "GeoTrack" dim c -------------------------- dimsize = he5_swdiminfo(swid, "GeoTrack") write(*,*) 'Size of GeoTrack: ', dimsize write(*,*) c Get info on "GeoTrack/Res2tr" mapping c ------------------------------------- status = he5_swmapinfo(swid,"GeoTrack","Res2tr", 1 offset,incr) write(*,*) 'Mapping Offset: ', offset write(*,*) 'Mapping Increment: ', incr write(*,*) c Get info on "IndxTrack/Res2tr" indexed mapping c ---------------------------------------------- n = he5_swimapinfo(swid, "IndxTrack", "Res2tr", indx) do i=1,n write(*,*) 'Index Mapping Entry ', i, indx(i) enddo write(*,*) c Get info on "Longitude" Field c ----------------------------- status = he5_swfldinfo(swid,"Longitude",rk,dims,nt, 1 dimlist,maxdimlst) write(*,*) 'Longitude Rank: ', rk write(*,*) 'Longitude NumberType: ', nt write(*,*) 'Longitude Dimlist: ', dimlist write(*,*) 'Longitude Max Dimlist: ', maxdimlst do i=1,rk write(*,*) 'Dimension ',i,dims(i) enddo status = he5_swattrinfo(swid,"GLOBAL_CHAR_ATTR",nt,count) write(*,*) 'GLOBAL_CHAR_ATTR NumberType: ', nt write(*,*) 'GLOBAL_CHAR_ATTR size: ', count status = he5_swchunkinfo(swid,"Spectra",chunkrank, 1 chunkdims) write(*,*) 'Spectra Chunking Rank: ', chunkrank do i=1,chunkrank write(*,*) 'Chunking Dimension ',i,chunkdims(i) enddo endif endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_wrexternaldata.c0000755000175000017500000000556612024715435023555 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define DIM 100 #define DIMTOT 60 int main() { FILE *in_1, *in_2, *in_3; herr_t status = FAIL; int i; int data_out_1[DIM]; int data_out_2[DIM]; int data_out_3[DIM]; int data[DIMTOT]; hid_t swfid = FAIL; hid_t SWid = FAIL; hssize_t start[2]; hsize_t count[2]; /* Create new data buffer */ /* ---------------------- */ for (i = 0; i < DIMTOT; i++) data[ i ] = 9999; /* Open the HDF-EOS swath file, "Swath.h5" */ /* --------------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); if (swfid != FAIL) { /* Attach the "Swath1" swath */ /* ------------------------- */ SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { /* Write new data to the external files */ /* ------------------------------------ */ start[0] = 0; count[0] = DIMTOT; status = HE5_SWwritefield(SWid, "ExtData", start, NULL, count, data); printf("Status returned by HE5_SWwritefield() : %d \n", status); /* Open the external data files */ /* ---------------------------- */ in_1 = fopen("external_1.data", "r"); in_2 = fopen("external_2.data", "r"); in_3 = fopen("external_3.data", "r"); /* Read data from external data files */ /* ---------------------------------- */ fread(data_out_1, sizeof(int), DIM, in_1); fread(data_out_2, sizeof(int), DIM, in_2); fread(data_out_3, sizeof(int), DIM, in_3); /* Close the external data files */ /* ----------------------------- */ fclose(in_1); fclose(in_2); fclose(in_3); /* Check the contents of external files */ /* ------------------------------------ */ printf(" \n"); printf("Reading data from 1st file: \n"); printf(" \n"); for (i = 0; i < DIM; i++) printf("%d ", data_out_1[i]); printf(" \n"); printf(" \n"); printf("Reading data from 2d file: \n"); printf(" \n"); for (i = 0; i < DIM; i++) printf("%d ", data_out_2[i]); printf(" \n"); printf(" \n"); printf("Reading data from 3d file: \n"); printf(" \n"); for (i = 0; i < DIM; i++) printf("%d ", data_out_3[i]); printf(" \n"); printf(" \n"); } } /* Detach from the swath */ /* --------------------- */ status = HE5_SWdetach(SWid); printf("Status returned by HE5_SWdetach() : %d \n", status); /* Close the file */ /* -------------- */ status = HE5_SWclose(swfid); printf("Status returned by HE5_SWclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_subsetF_64.f0000755000175000017500000000666112024715435022454 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" HDF-EOS file c (2) attach to the "Swath1" swath, and (3) subset data from c the "Spectra" field c ========================================================== program he5_sw_subsetF_64 implicit none include 'hdfeos5.inc' integer status integer i integer he5_swopen integer he5_swattach integer he5_swextper integer he5_swperinfo integer he5_swreginfo integer he5_swdefboxreg integer he5_swdeftmeper integer he5_swextreg integer he5_swdetach integer he5_swclose integer swfid integer swid integer rank integer ntype integer regionid integer periodid integer*8 dims(8) integer*8 size real*8 cornerlon(2) real*8 cornerlat(2) real*8 datbuf(40,20,15) real*8 tmebuf(20) real*8 t1 real*8 t2 integer FAIL parameter (FAIL=-1) c Open HDF-EOS swath file, "swath.he5" c ------------------------------------ swfid = he5_swopen("swath.he5",HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then cornerlon(1) = 3. cornerlat(1) = 5. cornerlon(2) = 7. cornerlat(2) = 12. c Define box region c ----------------- regionid = he5_swdefboxreg(swid,cornerlon, 1 cornerlat,HE5_HDFE_MIDPOINT) write(*,*) 'Region ID returned by he5_swdefboxreg(): ', 1 regionid write(*,*) regionid,swid status = he5_swreginfo(swid,regionid,"Spectra",ntype, 1 rank,dims,size) write(*,*) 'Status returned by he5_swreginfo(): ', 1 status write(*,*) dims(1), dims(2), dims(3), rank, ntype, size c Extract region data c ------------------- status = he5_swextreg(swid,regionid,"Spectra", 1 HE5_HDFE_INTERNAL,datbuf) write(*,*) 'Status returned by he5_swextreg(): ', 1 status c Time Subsetting c --------------- t1 = 352324870.2d0 t2 = 366098980.1d0 periodid = he5_swdeftmeper(swid,t1,t2,HE5_HDFE_MIDPOINT) write(*,*) 'Period ID returned by he5_swdeftmeper(): ', 1 periodid write(*,*) 'Time Subset: ', periodid,swid status = he5_swperinfo(swid,periodid,"Time",ntype,rank, 1 dims,size) write(*,*) 'Status returned by he5_swperinfo(): ', 1 status write(*,*) 'Time Subset: ', rank, dims(1), size c Extract Time data c ----------------- status = he5_swextper(swid,periodid,"Time", 1 HE5_HDFE_INTERNAL,tmebuf) write(*,*) 'Status returned by he5_swextper(): ', 1 status do 10 i=1,size/8 write(*,*) i, tmebuf(i) 10 continue endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status endif stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_subsetF_32.f0000755000175000017500000000672712024715435022452 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" HDF-EOS file, c (2) attach to the "Swath1" swath, and (3) subset data from c the "Spectra" field c ========================================================== program he5_sw_subsetF_32 implicit none include 'hdfeos5.inc' integer status integer i integer he5_swopen integer he5_swattach integer he5_swextper integer he5_swperinfo integer he5_swreginfo integer he5_swdefboxreg integer he5_swdeftmeper integer he5_swextreg integer he5_swdetach integer he5_swclose integer swfid integer swid integer rank integer ntype integer regionid integer periodid integer*4 dims(8) integer*4 size real*8 cornerlon(2) real*8 cornerlat(2) real*8 datbuf(40,20,15) real*8 tmebuf(20) real*8 t1 real*8 t2 integer FAIL parameter (FAIL=-1) c Open HDF-EOS swath file, "swath.he5" c ------------------------------------ swfid = he5_swopen("swath.he5",HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then cornerlon(1) = 3. cornerlat(1) = 5. cornerlon(2) = 7. cornerlat(2) = 12. c Define box region c ----------------- regionid = he5_swdefboxreg(swid,cornerlon, 1 cornerlat,HE5_HDFE_MIDPOINT) write(*,*) 'Region ID returned by he5_swdefboxreg(): ', 1 regionid write(*,*) regionid,swid status = he5_swreginfo(swid,regionid,"Spectra",ntype, 1 rank,dims,size) write(*,*) 'Status returned by he5_swreginfo(): ', 1 status write(*,*) dims(1), dims(2), dims(3), rank, ntype, size c Extract region data c ------------------- status = he5_swextreg(swid,regionid,"Spectra", 1 HE5_HDFE_INTERNAL,datbuf) write(*,*) 'Status returned by he5_swextreg(): ', 1 status c Time Subsetting c --------------- t1 = 35232487.2d0 t2 = 36609898.1d0 periodid = he5_swdeftmeper(swid,t1,t2,HE5_HDFE_MIDPOINT) write(*,*) 'Period ID returned by he5_swdeftmeper(): ', 1 periodid write(*,*) 'Time Subset: ', periodid,swid status = he5_swperinfo(swid,periodid,"Time",ntype,rank, 1 dims,size) write(*,*) 'Status returned by he5_swperinfo(): ', 1 status write(*,*) 'Time Subset: ', rank, dims(1), size c Extract Time data c ----------------- status = he5_swextper(swid,periodid,"Time", 1 HE5_HDFE_INTERNAL,tmebuf) write(*,*) 'Status returned by he5_swextper(): ', 1 status do 10 i=1,size/8 write(*,*) i, tmebuf(i) 10 continue endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status endif stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_datainfo.c0000755000175000017500000000630012024715435022261 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define FILENAME "ZA.he5" #define OBJECT "ZA1" int main(void) { herr_t status = FAIL; int fieldgroup = FAIL; hid_t fid = FAIL; hid_t ZAid = FAIL; hid_t datatype = FAIL; H5T_class_t classid = H5T_NO_CLASS; H5T_order_t order = H5T_ORDER_ERROR; size_t size = 0; /* Open the HDF-EOS ZA file */ /* ------------------------ */ fid = HE5_ZAopen(FILENAME, H5F_ACC_RDONLY); printf("File ID returned by HE5_ZAopen() : %d \n", fid); /* Attach to the "ZA1" za */ /* ---------------------- */ ZAid = HE5_ZAattach(fid, OBJECT); printf("ZA ID returned by HE5_ZAattach() : %d \n", ZAid); /* Inquire data type information for the "Spectra" field */ /* ----------------------------------------------------- */ fieldgroup = HE5_HDFE_DATAGROUP; status = HE5_ZAinqdatatype(ZAid, "Spectra", NULL, fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_ZAinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } /* Inquire data type information for the attributes */ /* ------------------------------------------------ */ fieldgroup = HE5_HDFE_ATTRGROUP; status = HE5_ZAinqdatatype(ZAid, NULL, "GlobalAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_ZAinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_GRPATTRGROUP; status = HE5_ZAinqdatatype(ZAid, NULL, "GroupAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_ZAinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_LOCATTRGROUP; status = HE5_ZAinqdatatype(ZAid, "Density", "LocalAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_ZAinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } /* Detach from the za */ /* ------------------ */ status = HE5_ZAdetach(ZAid); printf("Status returned by HE5_ZAdetach() : %d \n", status); /* Close the file */ /* -------------- */ status = HE5_ZAclose(fid); printf("Status returned by HE5_ZAclose() : %d \n", status); return(0); } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_wrunlimfld.c0000755000175000017500000001313312024715435022700 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* In this program we (1) open the "Swath.h5" HDF-EOS file, (2) attach to */ /* the "Swath1" swath, and (3) write data to the "Longitude", "Latitude", */ /* and (appendable) "Spectra" fields */ /* ----------------------------------------------------------------------- */ int main() { herr_t status = FAIL; int i, j, k; int track, xtrack; int rank = FAIL; hid_t swfid = FAIL; hid_t SWid = FAIL; hid_t *ntype; hssize_t start[3] = {0, 0, 0}; hsize_t count[3]; hsize_t dims[8] = {0, 0, 0, 0, 0, 0, 0, 0}; long attr[4] = {3, 5, 7, 11}; float lng[20][10], latcnt; float lat[20][10], loncnt; double plane[15][40][20]; double tme[20]; char dimlist[80]; char maxdimlist[80]; hvl_t buffer[4]; size_t datasize; /* Populate lon/lat data arrays */ /* ---------------------------- */ latcnt = 1.; loncnt = 1.; track = 0; xtrack = 0; while(track < 20) { while(xtrack < 10) { lat[track][xtrack] = latcnt; lng[track][xtrack] = loncnt; loncnt = loncnt + 1.; xtrack++; } latcnt = latcnt + 1.; loncnt = 1.; track++; xtrack = 0; } /* Popolate spectra data arrays */ /* ---------------------------- */ for (i = 0; i < 15; i++){ for (j = 0; j < 40; j++) for (k = 0; k < 20; k++) plane[i][j][k] = (double)(j*100 + i); } /* Allocate memory for and populate data buffer */ /* -------------------------------------------- */ datasize = 0; for (i = 0; i < 4; i++) { buffer[i].p = (hvl_t *)calloc( 25 *(i+1), sizeof(unsigned int)); buffer[i].len = 25 * (i+1); /* calculate the data buffer size (bytes) */ datasize += buffer[i].len * sizeof(unsigned int); for ( j = 0; j < 25 * (i+1); j++) ((unsigned int *)buffer[i].p)[j] = (i+1)*1000 + j; } /* Open the HDF swath file, "Swath.h5" */ /* ----------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); if (swfid != FAIL) { /* Attach the "Swath1" swath */ /* ------------------------- */ SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { count[0] = 20; count[1] = 10; /* Write "Longitute" field */ /* ----------------------- */ status = HE5_SWwritefield(SWid, "Longitude", start, NULL, count, lng); printf("status returned by HE5_SWwritefield(\"Longitude\"): %d\n", status); /* Write "Latitude" field */ /* ---------------------- */ status = HE5_SWwritefield(SWid, "Latitude", start, NULL, count, lat); printf("status returned by HE5_SWwritefield(\"Latitude\"): %d\n", status); /* Write "Time" field */ /* ------------------- */ for (i = 0; i < 20; i++) tme[i] = 34574087.3 + 84893.2*i; count[0] = 20; status = HE5_SWwritefield(SWid, "Time", start, NULL, count, tme); printf("status returned by HE5_SWwritefield(\"Time\"): %d\n", status); /* Write "Spectra" field 1st time */ /* -------------------------------- */ count[0] = 15; count[1] = 40; count[2] = 20; status = HE5_SWwritefield(SWid, "Spectra", start, NULL, count, plane); printf("status returned by HE5_SWwritefield(\"Spectra\"): %d\n", status); /* Retrieve information about "Spectra" field */ /* ------------------------------------------ */ ntype = (hid_t *)calloc(3,sizeof(hid_t)); status = HE5_SWfieldinfo(SWid, "Spectra", &rank, dims, ntype, dimlist, maxdimlist); printf("Number of elements after first write: \n"); for ( i = 0; i < rank; i++) printf("\t\t %lu\n",(unsigned long)dims[i]); printf("DimList string: %s \n", dimlist); printf("MaxdimList string: %s \n", maxdimlist); /* Write Spectra Field 2d time */ /* ----------------------------- */ start[0] = 10; start[1] = 50; start[2] = 30; count[0] = 15; count[1] = 40; count[2] = 20; status = HE5_SWwritefield(SWid, "Spectra", start, NULL, count, plane); printf("status returned by HE5_SWwritefield(\"Spectra\"): %d\n", status); /* Retrieve information about "Spectra" field */ /* ------------------------------------------ */ dims[0] = 0; dims[1] = 0; dims[2] = 0; status = HE5_SWfieldinfo(SWid, "Spectra", &rank, dims, ntype, dimlist, maxdimlist); printf("Number of elements after second write: \n"); for ( i = 0; i < rank; i++) { printf("\t\t %lu\n",(unsigned long)dims[i]); } printf("DimList string: %s \n", dimlist); printf("MaxdimList string: %s \n", maxdimlist); free(ntype); /* Write data to the profile */ /* ------------------------- */ start[0] = 0; count[0] = 4; status = HE5_PRwrite(SWid, "Profile-2000", start, NULL, count, datasize, buffer); printf("Status returned by HE5_PRwrite(\"Profile-2000\"): %d \n", status); /* Write User-defined Attribute */ /* ---------------------------- */ count[0] = 4; status = HE5_SWwriteattr(SWid, "TestAttr", H5T_NATIVE_INT, count, attr); printf("status returned by HE5_SWwriteattr(\"TestAttr\"): %d\n", status); } } status = HE5_SWdetach(SWid); status = HE5_SWclose(swfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/fixedBuoy1s.txt0000755000175000017500000000125012024715435022037 0ustar amckinstryamckinstry 83555918.7 0.7 24.21 A 84013712.3 0.7 20.35 A 84412971.8 3.6 20.41 A 84655020.8 3.2 21.79 A 84835587.2 3.6 20.38 A 84245234.1 1.7 24.52 I 84251741.0 1.4 20.98 I 84623981.3 4.0 23.91 I 85058206.4 1.3 22.98 I 83422000.0 1.1 21.63 P 83726878.2 2.7 23.83 P 83842994.7 4.3 22.63 P 84063571.3 2.8 20.84 P 84419483.0 1.8 22.01 P 84452408.0 3.4 23.20 P 84736992.5 4.6 23.61 P 84915081.1 5.1 20.10 P 84970587.0 1.1 24.63 P 85076367.6 2.7 22.62 P 85111729.5 1.0 22.01 P hdf-eos5-5.1.14+dfsg.1/samples/external_3g.data0000755000175000017500000000062012024715435022142 0ustar amckinstryamckinstry ''''''''''''''''''''''''''''''                       hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_readattrs.c0000755000175000017500000000725712024715435022512 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include int main() { herr_t status = FAIL; int i, attr; int attr1[5], attr2[5]; hid_t ptfid = FAIL, PTid = FAIL; hid_t *nt = (hid_t *)NULL; long nattr, strbufsize; hsize_t sz; char attrlist[256] ; /* Open the HDF-EOS file, "Point.h5" */ /* --------------------------------- */ ptfid = HE5_PTopen("Point.h5", H5F_ACC_RDONLY); printf("File ID returned by HE5_PTopen() : %d \n", ptfid); PTid = HE5_PTattach(ptfid, "FixedBuoy Point"); printf("Point ID returned by HE5_PTattach() : %d \n", PTid); nt = (hid_t *)calloc(1, sizeof(hid_t)); /* Global attributes */ /* ---------------- */ printf("Global Attribute: \n"); status = HE5_PTreadattr(PTid, "GlobalAttribute_int", &attr); printf("Status returned by HE5_PTreadattr() : %d \n", status); printf("Attribute value: %d\n", attr); nattr = HE5_PTinqattrs(PTid, NULL, &strbufsize); printf("Number of attributes: %li\n", nattr); printf("Size (in bytes) of attribute list: %li\n", strbufsize); nattr = HE5_PTinqattrs(PTid, attrlist, &strbufsize); printf("Attribute list: %s\n", attrlist); status = HE5_PTattrinfo(PTid, "GlobalAttr_Integer", nt, &sz); printf("Data type of attribute: %d\n", (int)*nt); printf("Number of attribute elements: %d\n", (int)sz); /* Group attributes */ /* ---------------- */ printf("\n"); printf("Group Attribute: \n"); status = HE5_PTreadgrpattr(PTid, "GroupAttribute", attr1); printf("Status returned by HE5_PTreadgrpattr() : %d \n", status); printf("Attribute values: \n"); for (i = 0; i < 5; i++) { printf("\t\t %d \n", attr1[i]); } nattr = HE5_PTinqgrpattrs(PTid, NULL, &strbufsize); printf("Number of attributes: %li\n", nattr); printf("Size (in bytes) of attribute list: %li\n", strbufsize); nattr = HE5_PTinqgrpattrs(PTid, attrlist, &strbufsize); printf("Attribute list: %s\n", attrlist); status = HE5_PTgrpattrinfo(PTid, "GroupAttribute", nt, &sz); printf("Data type of attribute: %d\n",(int)*nt); printf("Number of attribute elements: %d\n", (int)sz); /* Local attributes */ /* ---------------- */ printf("\n"); printf("Local Attribute: \n"); status = HE5_PTreadlocattr(PTid, "Observations", "LocalAttribute", attr2); printf("Status returned by HE5_PTreadlocattr() : %d \n", status); printf("Attribute values: \n"); for (i = 0; i < 5; i++) { printf("\t\t %d \n", attr2[i]); } nattr = HE5_PTinqlocattrs(PTid, "Observations", NULL, &strbufsize); printf("Number of attributes: %li\n", nattr); printf("Size (in bytes) of attribute list: %li\n", strbufsize); nattr = HE5_PTinqlocattrs(PTid, "Observations", attrlist, &strbufsize); printf("Attribute list: %s\n", attrlist); status = HE5_PTlocattrinfo(PTid, "Observations", "LocalAttribute", nt, &sz); printf("Data type of attribute: %d\n", (int)*nt); printf("Number of attribute elements: %d\n", (int)sz); free(nt); status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d \n", status); status = HE5_PTclose(ptfid); printf("Status returned by HE5_PTclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_readdimscale.c0000755000175000017500000001212412024715435023112 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will open an HDF-EOS file and attach to a * ZA structures within the file to read a dimension scales * and its attributes */ int main() { herr_t status = FAIL; hid_t zafid = FAIL; hid_t zaid1 = FAIL; int i,j; int bufsize; int *databuff; long nattr; long strbufsize; char *attrlist; size_t fldnmlen[HE5_HDFE_NAMBUFSIZE]; char *fldnm[HE5_HDFE_NAMBUFSIZE]; char *attrname = (char *)NULL; hid_t *ntype; hsize_t count = 0; void *attr; int *attr_int; float *attr_flt; char *attr_char; hsize_t dimsize; hid_t numtype; /* * Open the HDF ZA file, "Za.h5". */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDWR); /* * If the ZA file cannot be found, HE5_ZAopen will return -1 for the file * handle (zafid). We there check that this is not the case before * proceeding with the other routines. * * The HE5_ZAattach routine returns the handle to the existing ZA "Za1", * zaid. If the ZA is not found, HE5_ZAattach returns -1 for the handle. */ if (zafid != FAIL) { zaid1 = HE5_ZAattach(zafid, "ZA1"); /* the field Spectra has Bands dimensions. Bands dim is set to 15 */ if (zaid1 == FAIL) { printf("\t\tError: Cannot attach to ZA \"ZA1\"\n"); HE5_ZAclose(zafid); return -1; } bufsize = HE5_ZAgetdimscale(zaid1, "Spectra", "Bands", &dimsize, &numtype, NULL); if (bufsize == -1) { printf("\t\tError: Cannot get Dimension Scale size for Bands dimemnsion in field \"Spectra\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); return -1; } else { printf ("bufsize = %d \n",(int)bufsize); printf ("dimsize = %d \n",(int)dimsize); printf ("numtype = %d\n", (int)numtype); } databuff = (int *) malloc(bufsize); bufsize = HE5_ZAgetdimscale(zaid1, "Spectra", "Bands", &dimsize, &numtype, (void *)databuff); if (bufsize == -1) { printf("\t\tError: Cannot get Dimension Scale for Bands dimemnsion in field \"Spectra\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); free(databuff); return -1; } else { printf ("First 10 values are:\n"); for( i = 0; i < 10; i++) { printf ("DimscaleValue[%d] = %d\n",i,databuff[i]); } } nattr = HE5_ZAinqdscaleattrs(zaid1, "Bands", NULL, &strbufsize); if ( nattr < 0 ) { printf("\t\tError: Cannot get Dimension Scale attribute list for \"Bands\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); free(attrlist); return -1; } attrlist = (char *) calloc(strbufsize + 2, sizeof(char)); nattr = HE5_ZAinqdscaleattrs(zaid1, "Bands", attrlist, &strbufsize); if ( nattr < 0 ) { printf("\t\tError: Cannot get Dimension Scale attribute list for \"Bands\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); free(attrlist); return -1; } printf(" \n"); printf("Dimension scale for \"Bands\" Attribute: \n"); nattr = HE5_EHparsestr(attrlist, ',', fldnm, fldnmlen); if(nattr != FAIL) { for( i = 0; i < nattr; i++) { attrname = (char *)calloc(fldnmlen[i] + 1, sizeof(char)); memmove(attrname,fldnm[i],fldnmlen[i]); ntype = (hid_t *)calloc(1, sizeof(hid_t)); if(strcmp(attrname, "REFERENCE_LIST") ==0 ) continue; status = HE5_ZAdscaleattrinfo(zaid1,"Bands", attrname, ntype, &count); if( (int)*ntype == 0) { attr_int = (int *)malloc(count*sizeof(int)); attr = (void *) attr_int; } if( (int)*ntype == 10) { attr_flt = (float *)malloc(count*sizeof(float)); attr = (void *) attr_flt; } if( (int)*ntype == 57) { attr_char = (char *)malloc((count+1)*sizeof(char)); attr = (void *) attr_char; } status = HE5_ZAreaddscaleattr(zaid1,"Bands", attrname, attr); printf("\n"); printf("Status returned by HE5_ZAreaddscaleattr() : %d \n", status ); printf("\tAttribute Name: %s \n",attrname); printf("\tNumber of attribute elements: %lu \n", (unsigned long)count); printf("\tData type of attribute: %d \n", (int)*ntype); if( (int)*ntype == 0) { attr_int = (int *)attr; for (j = 0; j < count; j++) { printf("\tAttrvalue[%d]: %d \n", j,attr_int[j]); } } if( (int)*ntype == 10) { attr_flt = (float *)attr; for (j = 0; j < count; j++) { printf("\tAttrvalue[%d]: %f \n", j,attr_flt[j]); } } if( (int)*ntype == 57) { attr_char = (char *)attr; attr_char[count]='\0'; printf("\tAttrvalue: %s \n", attr_char); free(attr_char); } } } HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); return 0; } } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_setupF_32.f0000755000175000017500000000507112024715435022255 0ustar amckinstryamckinstry! In this program we (1) open an HDF-EOS file, (2) create the ! za interface, and (3) define the za field dimensions ! =========================================================== program he5_za_setupF_32 implicit none include 'hdfeos5.inc' integer status integer he5_zaopen integer he5_zacreate integer he5_zadefdim integer he5_zadetach integer he5_zaclose integer zafid, zaid integer*4 dtrack, extdata ! Open the HDF-EOS file, "za.he5" using "TRUNC" file access code ! -------------------------------------------------------------- zafid = he5_zaopen('za.he5',HE5F_ACC_TRUNC) write(*,*) 'File ID returned by he5_zaopen(): ',zafid ! Create the za, "ZA1", within the file ! ------------------------------------- zaid = he5_zacreate(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zacreate(): ',zaid ! Define Data dimensions ! ---------------------- dtrack = 20 status = he5_zadefdim(zaid, "MyTrack1", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 10 status = he5_zadefdim(zaid, "MyTrack2", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 40 status = he5_zadefdim(zaid, "Res2tr", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 20 status = he5_zadefdim(zaid, "Res2xtr", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 15 status = he5_zadefdim(zaid, "Bands", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 12 status = he5_zadefdim(zaid, "IndxTrack", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status ! Define "External" dimension ! --------------------------- extdata = 60 status = he5_zadefdim(zaid, "ExtDim", extdata) write(*,*) 'Status returned by he5_zadefdim(): ',status ! Define Unlimited (appendable) dimension ! --------------------------------------- status = he5_zadefdim(zaid, "Unlim", HE5S_UNLIMITED_F) write(*,*) 'Status returned by he5_zadefdim(): ',status ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the za file ! ----------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_writedimscaleF_32.f0000644000175000017500000003317212024715435023731 0ustar amckinstryamckinstry program he5_gd_writedimscaleF_32 implicit none include 'hdfeos5.inc' integer status integer i, j integer he5_gdopen integer he5_gdattach integer he5_gdwrfld integer he5_gdwrattr integer he5_gdwrgattr integer he5_ehwrglatt integer he5_gdwrlattr integer he5_gddetach integer he5_gdclose integer HE5_GDsetdimscale integer HE5_GDwritedscaleattr integer he5_gddeffld integer gdfid,gdid1,gdid2,gdid3 real*4 datbuf_f(1) integer*4 datbuf_i(3) real*4 veg1(120),veg2(200), temp1(100),temp2(100) real*4 geospecf(4) integer*4 nbands integer bands(3) integer*4 datbuf_i2(2) integer count(2) integer xdim, ydim, ntime integer data(10) integer FAIL parameter (FAIL=-1) ! /* ! * We first open the HDF-EOS grid file, "Grid.h5". Because this file ! * already exist and we wish to write to it, we use the H5F_ACC_RDWR access ! * code in the open statement. The HE5_GDopen routine returns the grid file ! * id, gdfid, which is used to identify the file in subsequent routines. ! */ do j=1,10 data(j)=(j+1)*2 enddo gdfid = HE5_GDopen("grid.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid ! /* ! * If the grid file cannot be found, HE5_GDopen will return -1 for the file ! * handle (gdfid). We there check that this is not the case before ! * proceeding with the other routines. ! * ! * The HE5_GDattach routine returns the handle to the existing grid "Grid1", ! * GDid. If the grid is not found, HE5_GDattach returns -1 for the handle. ! */ if (gdfid .ne. FAIL) then GDid1 = HE5_GDattach(gdfid, "UTMGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid1 ! /* the field Pollution has Time,YDim,XDim dimensions. ! * xdim = 120 ! * ydim = 200 ! * Time dim is set to 10 ! */ if (GDid1 .eq. -1) then write(*,*) 'Error: Cannot attach to grid UTMGrid. Stpped.' status = HE5_GDclose(gdfid) stop endif xdim = 120 ydim = 200 ntime = 10 status = HE5_GDsetdimscale(GDid1, "Pollution", "XDim", 1 xdim, HE5T_NATIVE_DOUBLE, veg1) write(*,*) 'Status returned by HE5_GDsetdimscale: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale for XDim', 1 ' dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif status = HE5_GDsetdimscale(GDid1, "Pollution", "Time", ntime, 1 HE5T_NATIVE_INT, data) write(*,*) 'Status returned by HE5_GDsetdimscale: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale for Time', 1 ' dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif status = HE5_GDsetdimscale(GDid1, "Vegetation", "XDim", xdim, 1 HE5T_NATIVE_DOUBLE, veg1) write(*,*) 'Status returned by HE5_GDsetdimscale: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale for XDim', 1 ' dimemnsion in field Vegetation' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif status = HE5_GDsetdimscale(GDid1, "Vegetation", "YDim", ydim, 1 HE5T_NATIVE_DOUBLE, veg2) write(*,*) 'Status returned by HE5_GDsetdimscale: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale for XDim', 1 ' dimemnsion in field Vegetation' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif count(1)= 12 status = HE5_GDwritedscaleattr(GDid1, "XDim", "label", 1 HE5T_NATIVE_CHAR, count, "X Dimension") write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale strs for XDim', 1 ' dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif count(1)= 6 status = HE5_GDwritedscaleattr(GDid1, "XDim", "unit", 1 HE5T_NATIVE_CHAR, count, "meters") write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale strs for XDim', 1 ' dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif count(1)= 4 status = HE5_GDwritedscaleattr(GDid1, "XDim", "format", 1 HE5T_NATIVE_CHAR, count, "F7.2") write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale strs for XDim', 1 ' dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif datbuf_f(1) = -999.0 count(1)= 1 status = HE5_GDwritedscaleattr(GDid1, "XDim", "MissingValue", 1 HE5T_NATIVE_FLOAT, count, datbuf_f) write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale strs for XDim', 1 ' dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif datbuf_i(1) = -999 datbuf_i(2) = 0 datbuf_i(3) = 999 count(1)= 3 status = HE5_GDwritedscaleattr(GDid1, "XDim", "IntValues", 1 HE5T_NATIVE_INT, count, datbuf_i) write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale strs for XDim', 1 ' dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif count(1)= 8 status = HE5_GDwritedscaleattr(GDid1, "Time", "label", 1 HE5T_NATIVE_CHAR, count, "Time Dim") write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale strs for', 1 ' Time dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif count(1)= 1 status = HE5_GDwritedscaleattr(GDid1, "Time", "unit", 1 HE5T_NATIVE_CHAR, count, "s") write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale strs for', 1 ' Time dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif count(1)= 4 status = HE5_GDwritedscaleattr(GDid1, "Time", "format", 1 HE5T_NATIVE_CHAR, count, "F2.3") write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale strs for', 1 ' Time dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif datbuf_i2(1) = -999 datbuf_i2(2) = 999 count(1) = 2 status = HE5_GDwritedscaleattr(GDid1, "Time", "MissingValue", 1 HE5T_NATIVE_INT, count, datbuf_i2) write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale strs for', 1 ' Time dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif status = HE5_GDdetach(GDid1) write(*,*) 'Status returned by he5_gddetach(): ',status ! ----------------------------------------------------------------- ! /* the field Spectra has Bands,YDim,XDim dimensions. ! xdim = 100 ! ydim = 100 ! Bands dim is set to 3 ! */ ! GDid2 = HE5_GDattach(gdfid, "PolarGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid2 if (GDid2 .eq. -1) then write(*,*) 'Error: Cannot attach to grid PolarGrid' status = HE5_GDclose(gdfid) stop endif ydim = 100 nbands = 3 status = HE5_GDsetdimscale(GDid2, "Spectra", "YDim", ydim, 1 HE5T_NATIVE_DOUBLE, temp1) write(*,*) 'Status returned by HE5_GDsetdimscale: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale for YDim', 1 ' dimemnsion in field Spectra' status = HE5_GDdetach(GDid2) status = HE5_GDclose(gdfid) stop endif bands(1) = 5 bands(2) = 8 bands(3) = 9 status = HE5_GDsetdimscale(GDid2, "Spectra", "Bands", 1 nbands, HE5T_NATIVE_INT, bands) write(*,*) 'Status returned by HE5_GDsetdimscale: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale for', 1 ' Bands dimemnsion in field Spectra' status = HE5_GDdetach(GDid2) status = HE5_GDclose(gdfid) stop endif count(1)= 5 status = HE5_GDwritedscaleattr(GDid2, "YDim", "Label", 1 HE5T_NATIVE_CHAR, count, "Y Dim") write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale strs for', 1 ' XDim dimemnsion in field Pollution' status = HE5_GDdetach(GDid2) status = HE5_GDclose(gdfid) stop endif count(1) = 4 status = HE5_GDwritedscaleattr(GDid2, "Bands", "Units", 1 HE5T_NATIVE_CHAR, count, "None") write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale strs for', 1 ' Time dimemnsion in field Pollution ' status = HE5_GDdetach(GDid2) status = HE5_GDclose(gdfid) stop endif status = HE5_GDdetach(GDid2) ! ----------------------------------------------------------------- xdim = 60 ydim = 40 GDid3 = HE5_GDattach(gdfid, "GEOGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',GDid3 if (GDid3 .eq. -1) then write(*,*) 'Error: Cannot attach to grid GEOGrid' status = HE5_GDclose(gdfid) stop endif ! Define Fields ! ------------- status = he5_gddeffld(gdid3, "GeoSpectra", "XDim,YDim", 1 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status status = HE5_GDsetdimscale(GDid3, "GeoSpectra", "YDim", 1 ydim, HE5T_NATIVE_DOUBLE, GeoSpecf) write(*,*) 'Status returned by HE5_GDsetdimscale: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale for', 1 ' YDim dimemnsion in field GeoSpectra' status = HE5_GDdetach(GDid3) status = HE5_GDclose(gdfid) stop endif count(1) = 15 status = HE5_GDwritedscaleattr(GDid3, "YDim", "Units", 1 HE5T_NATIVE_CHAR, count, "Decimal Degrees") write(*,*) 'Status returned by HE5_GDwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale strs for', 1 ' YDim dimemnsion in field GeoSpectra' status = HE5_GDdetach(GDid3) status = HE5_GDclose(gdfid) stop endif status = HE5_GDdetach(GDid3) write(*,*) 'Status returned by he5_gddetach(): ',status status = HE5_GDclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status endif stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_subset.c0000755000175000017500000000435412024715435021770 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will (1) open the "Grid.h5" HDF-EOS file, (2) attach to * the "PolarGrid", and (3) subset data from the "Temperature" field. */ int main() { herr_t status = FAIL; int rank = FAIL; int i; hid_t gdfid = FAIL; hid_t GDid = FAIL; hid_t regionID = FAIL; hid_t *ntype; long size; hsize_t dims[8]; float *datbuf; double cornerlon[2], cornerlat[2]; double upleft[2], lowright[2]; /* * Open the HDF-EOS grid file, "Grid.h5". */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); if (gdfid != FAIL) { GDid = HE5_GDattach(gdfid, "PolarGrid"); if (GDid != FAIL) { cornerlon[0] = 57.; cornerlat[0] = 23.; cornerlon[1] = 59.; cornerlat[1] = 35.; cornerlon[0] = 0.; cornerlat[0] = 90.; cornerlon[1] = 90.; cornerlat[1] = 0.; regionID = HE5_GDdefboxregion(GDid, cornerlon, cornerlat); printf("Region ID returned by HE5_GDdefboxregion() : %d \n", regionID); ntype = (hid_t *)calloc(1, sizeof(hid_t)); status = HE5_GDregioninfo(GDid, regionID, "Temperature", ntype,&rank, dims, &size, upleft, lowright); printf("Status returned by HE5_GDregioninfo() : %d \n", status); printf("Byte size of region data buffer: %d\n",(int)size); datbuf = (float *)malloc(size); status = HE5_GDextractregion(GDid, regionID, "Temperature", datbuf); printf("Status returned by HE5_GDextractregion() : %d \n", status); printf("First 20 values of data buffer: \n"); for (i = 0; i < 20; i++) printf("\t\t %f \n", datbuf[ i ]); free(datbuf); free(ntype); } } status = HE5_GDdetach(GDid); printf("Status returned by HE5_GDdetach() : %d \n", status); status = HE5_GDclose(gdfid); printf("Status returned by HE5_GDclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_wrexternaldata.c0000755000175000017500000000546412024715435023513 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define DIM 100 #define DIMTOT 60 int main() { FILE *in_1, *in_2, *in_3; herr_t status = FAIL; int i; int data_out_1[DIM]; int data_out_2[DIM]; int data_out_3[DIM]; int data[DIMTOT]; hid_t gdfid = FAIL; hid_t GDid = FAIL; hssize_t start[2]; hsize_t count[2]; /* Create new data buffer */ /* ---------------------- */ for (i = 0; i < DIMTOT; i++) data[ i ] = 9999; /* * Open the HDF grid file, "Grid.h5". */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); if (gdfid != FAIL) { /* * Attach the "UTMGrid". */ GDid = HE5_GDattach(gdfid, "UTMGrid"); if (GDid != FAIL) { /* Write new data to the external files */ /* ------------------------------------ */ start[0] = 0; count[0] = DIMTOT; status = HE5_GDwritefield(GDid, "ExtData", start, NULL, count, data); printf("Status returned by HE5_GDwritefield() : %d \n", status); /* Open the external data files */ /* ---------------------------- */ in_1 = fopen("external_1g.data", "r"); in_2 = fopen("external_2g.data", "r"); in_3 = fopen("external_3g.data", "r"); /* Read data from external data files */ /* ---------------------------------- */ fread(data_out_1, sizeof(int), DIM, in_1); fread(data_out_2, sizeof(int), DIM, in_2); fread(data_out_3, sizeof(int), DIM, in_3); /* Close the external data files */ /* ----------------------------- */ fclose(in_1); fclose(in_2); fclose(in_3); /* Check the contents of external files */ /* ------------------------------------ */ printf(" \n"); printf("Reading data from 1st file: \n"); printf(" \n"); for (i = 0; i < DIM; i++) printf("%d ", data_out_1[i]); printf(" \n"); printf(" \n"); printf("Reading data from 2d file: \n"); printf(" \n"); for (i = 0; i < DIM; i++) printf("%d ", data_out_2[i]); printf(" \n"); printf(" \n"); printf("Reading data from 3d file: \n"); printf(" \n"); for (i = 0; i < DIM; i++) printf("%d ", data_out_3[i]); printf(" \n"); printf(" \n"); } } /* Detach from the grid */ /* --------------------- */ status = HE5_GDdetach(GDid); printf("Status returned by HE5_GDdetach() : %d \n", status); /* Close the file */ /* -------------- */ status = HE5_GDclose(gdfid); printf("Status returned by HE5_GDclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_wrexternaldataF_32.f0000755000175000017500000000650512024715435024164 0ustar amckinstryamckinstryc c ---------------------------------------------------------------------------- c | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | c ---------------------------------------------------------------------------- c program he5_sw_wrexternaldataF_32 implicit none include 'hdfeos5.inc' integer i integer status integer he5_swopen integer he5_swattach integer he5_swwrfld integer he5_ehrdwrfile integer he5_swdetach integer he5_swclose integer swfid, swid integer data_out_1(100) integer data_out_2(100) integer data_out_3(100) integer data(60) integer*4 start(2) integer*4 stride(2) integer*4 count(2) integer*4 num_elements integer FAIL parameter (FAIL=-1) c.....Use this for writing (only) to an existing file integer WRITE_EXISTING_ONLY parameter (WRITE_EXISTING_ONLY=0) c.....Use this for reading (only) from an existing file integer READ_ONLY parameter (READ_ONLY=1) c.....Use this for creating and writing to a file integer WRITE_NEW parameter (WRITE_NEW=2) c Create the new data buffer c -------------------------- do 10 i=1,60 data(i) = 9999 10 continue c Open HDF-EOS swath file, "swath.he5" c ------------------------------------ swfid = he5_swopen("swath.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned from he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned from he5_swattach(): ',swid if (swid .NE. FAIL) then c Write new data to the external files c ------------------------------------ start(1) = 0 stride(1) = 1 count(1) = 60 status = he5_swwrfld(swid,"ExtData", 1 start,stride,count,data) write(*,*) 'Status returned from he5_swrdfld(): ',status num_elements = 100 status = he5_ehrdwrfile("extf1.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_1) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf2.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_2) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf3.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_3) write(*,*) 'Status returned from he5_ehrdwrfile: ',status write(*,*)'External file extf1.dat:' write(*,*) data_out_1 write(*,*) ' ' write(*,*)'External file extf2.dat:' write(*,*) data_out_2 write(*,*) ' ' write(*,*)'External file extf3.dat:' write(*,*) data_out_3 write(*,*) ' ' endif endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned from he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned from he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_defunlimfld.c0000755000175000017500000000754512024715435023020 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* In this program we (1) open the "Swath.h5" HDF-EOS file, */ /* (2) attach to the "Swath1" swath, and (3) define the swath */ /* fields, including appendable field "Spectra". */ /* ------------------------------------------------------------ */ #define RANK 3 int main() { herr_t status = FAIL; hid_t swfid = FAIL; hid_t SWid = FAIL; int comp_level[ 5 ] = { 0, 0, 0, 0, 0 }; int comp_code; hsize_t chunk_dims[ 3 ]; /* Open the file, "Swath.h5", using the H5F_ACC_RDWR access code */ /* ------------------------------------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); if (swfid != FAIL) { SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { /* * We define seven fields. The first three, "Time", "Longitude" * and "Latitude" are geolocation fields and thus we use the * geolocation dimensions "GeoTrack" and "GeoXtrack" in the field * definitions. * * The next four fields are data fields. Note that either * geolocation or data dimensions can be used. */ status = HE5_SWdefgeofield(SWid, "Time", "GeoTrack", NULL, H5T_NATIVE_DOUBLE, 0); printf("Status returned by HE5_SWdefgeofield(...\"Time\",...) : %d\n",status); status = HE5_SWdefgeofield(SWid, "Longitude", "GeoTrack,GeoXtrack", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefgeofield(...\"Longitude\",...) : %d\n",status); status = HE5_SWdefgeofield(SWid, "Latitude", "GeoTrack,GeoXtrack", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefgeofield(...\"Latitude\",...) : %d\n",status); status = HE5_SWdefdatafield(SWid, "Density", "GeoTrack", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefdatafield(...\"Density\",...) : %d\n",status); status = HE5_SWdefdatafield(SWid, "Temperature", "GeoTrack,GeoXtrack",NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefdatafield(...\"Temperature\",...) : %d\n",status); status = HE5_SWdefdatafield(SWid, "Pressure", "Res2tr,Res2xtr", NULL, H5T_NATIVE_DOUBLE, 0); printf("Status returned by HE5_SWdefdatafield(...\"Pressure\",...) : %d\n",status); /* Define Appendable Field */ /* ------------------------ */ /* ---------------------------------------- */ /* First, define chunking */ /* (the appendable dataset must be chunked) */ /* ---------------------------------------- */ chunk_dims[0] = 15; chunk_dims[1] = 40; chunk_dims[2] = 20; status = HE5_SWdefchunk(SWid, RANK, chunk_dims); printf("\tStatus returned by HE5_SWdefchunk() : %d\n",status); comp_code = 4; /*comp_code = 0;*/ comp_level[0] = 6; /*comp_level[0] = 0;*/ status = HE5_SWdefcomp(SWid,comp_code, comp_level); printf("\tStatus returned by HE5_SWdefcomp() : %d\n",status); status = HE5_SWdefdatafield(SWid, "Spectra", "Bands,Res2tr,Res2xtr", "Unlim,Unlim,Unlim", H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefdatafield(...\"Spectra\",...) : %d\n",status); /* Define Profile field */ /* -------------------- */ status = HE5_PRdefine(SWid, "Profile-2000", "ProfDim", NULL, H5T_NATIVE_UINT); printf("Status returned by HE5_PRdefine(...\"Profile-2000\",...) : %d\n",status); } } status = HE5_SWdetach(SWid); status = HE5_SWclose(swfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/README0000755000175000017500000003075512024715435017770 0ustar amckinstryamckinstry********************************************************************** * This directory provides sample programs for the user to run to * * check if the HDFEOS_5 library installed correctly. Below is a * * description of what routines are available and the order in * * which the routines should be run. * * Updated: 06/20/01 A.M. * * Aug 02 S.Z * ********************************************************************** Swath Demonstration Programs ---------------------------- A. C - programs ~~~~~~~~~~~~~~~ he5_sw_setup --- creates HDFEOS_5 swath file "Swath.h5"; sets a single swath structure "Swath1"; defines dimensions and the geolocation relations between them. he5_sw_definefields --- defines a number of fields within the swath. he5_sw_writedata --- writes data to the "Longitude", "Latitude", and "Spectra" fields; sets up global, group, and local attributes. he5_sw_readdata --- reads data from the "Longitude" field; reads global, group, and local attributes. he5_sw_info --- retrieves and displays information on the swath dimensions, geolocation relations, swath fields, and (global/group/local) attributes. he5_sw_datainfo --- retrieves data type information for a specified object (field, attribute). he5_sw_subset --- demonstrates subsetting on the "Spectra" field. he5_sw_defunlimfld --- same as 'he5_sw_definefields' but defines "Spectra" field as having unlimited dimension. he5_sw_wrunlimfld --- same as 'he5_sw_writedata' but writes data to the "Spectra" field twice. he5_sw_wrextendrd --- demonstrates usage of unlimited dimension for appendible field "Count". Sequence of calls: 1. he5_sw_setup he5_sw_definefields he5_sw_writedata he5_sw_readdata he5_sw_info he5_sw_datainfo he5_sw_subset 2. he5_sw_setup he5_sw_defunlimfld he5_sw_wrunlimfld he5_sw_subset 3. he5_sw_setup he5_sw_definefields he5_sw_wrextendrd Example of working with external data files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ he5_sw_setup --- creates HDFEOS_5 swath file "Swath.h5"; sets a single swath structure "Swath1"; defines dimensions (including dimension of external data set) and the geolocation relations between them. he5_sw_defexternalfld --- defines external field (data set) he5_sw_rdexternaldata --- reads data from external data file(s) to the external field he5_sw_wrexternaldata --- writes data to external field/data file(s) B. FORTRAN-77 programs ~~~~~~~~~~~~~~~~~~~~~~ he5_sw_setupF_64 --- see 'he5_sw_setup', creates "swath.h5" file. (he5_sw_setupF_32) he5_sw_definefieldsF_64 --- see 'he5_sw_definefields' (he5_sw_definefieldsF_32) he5_sw_writedataF_64 --- see 'he5_sw_writedata' (he5_sw_writedataF_32) he5_sw_readdataF_64 --- see 'he5_sw_readdata' (he5_sw_readdataF_32) he5_sw_infoF_64 --- see 'he5_sw_info' (he5_sw_infoF_32) he5_sw_subsetF_64 --- see 'he5_sw_subset' (he5_sw_subsetF_32) Sequence of calls: he5_sw_setupF_64 (...F_32) he5_sw_definefieldsF_64 (...F_32) he5_sw_writedataF_64 (...F_32) he5_sw_readdataF_64 (...F_32) he5_sw_infoF_64 (...F_32) he5_sw_subsetF_64 (...F_32) =========================================================================== Grid Demonstration Programs --------------------------- A. C - programs ~~~~~~~~~~~~~~~ he5_gd_setup --- creates HDFEOS_5 grid file "Grid.h5"; sets two grid structures. he5_gd_definefields --- defines fields within the two grids. he5_gd_writedata --- writes data to the fields within the two grids; sets up global, group, and local attributes. he5_gd_readdata --- reads data from the fields; reads global, group, and local attributes. he5_gd_info --- retrieves and displays information on the grid dimensions, projections, grid fields, and (global/group/local) attributes. he5_gd_datainfo --- retrieves data type information for a specified object (field, attribute). he5_gd_subset --- demonstrates subsetting on the "Temperature" field in the "PolarGrid" grid. he5_gd_defunlimfld --- defines "Vegetation" field having unlimited dimension. he5_gd_wrunlimfld --- sequentially writes data buffers of different size to the "Vegetation" field. Sequence of calls: 1. he5_gd_setup he5_gd_definefields he5_gd_writedata he5_gd_readdata he5_gd_info he5_gd_datainfo he5_gd_subset 2. he5_gd_setup he5_gd_defunlimfld he5_gd_wrunlimfld Example of working with external data files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ he5_gd_setup --- creates HDFEOS_5 grid file "Grid.h5"; sets two grid structures; defines dimensions (including dimension of external data set). he5_gd_defexternalfld --- defines external field (data set) he5_gd_rdexternaldata --- reads data from external data file(s) to the external field he5_gd_wrexternaldata --- writes data to external field/data file(s) B. FORTRAN-77 programs ~~~~~~~~~~~~~~~~~~~~~~ he5_gd_setupF_64 --- see 'he5_gd_setup'; creates "grid.h5" file. (he5_gd_setupF_32) he5_gd_definefieldsF_64 --- see 'he5_gd_definefields' (he5_gd_definefieldsF_32) he5_gd_writedataF_64 --- see 'he5_gd_writedata' (he5_gd_writedataF_32) he5_gd_readdataF_64 --- see 'he5_gd_readdata' (he5_gd_readdataF_32) he5_gd_infoF_64 --- see 'he5_gd_info' (he5_gd_infoF_32) he5_gd_subsetF_64 --- see 'he5_gd_subset' (he5_gd_subsetF_32) Sequence of calls: he5_gd_setupF_64 (...F_32) he5_gd_definefieldsF_64 (...F_32) he5_gd_writedataF_64 (...F_32) he5_gd_readdataF_64 (...F_32) he5_gd_infoF_64 (...F_32) he5_gd_subsetF_64 (...F_32) =========================================================================== Point Demonstration Programs ---------------------------- The sample codes described below use the following input data files (make sure these files are in the same directory with the sample codes) : fixedBuoy0.txt fixedBuoy1s.txt floatBuoy1.txt fixedBuoy1.txt floatBuoy0.txt simple.txt A. C - programs ~~~~~~~~~~~~~~~ he5_pt_setup --- creates HDFEOS_5 point file "Point.h5"; he5_pt_definelevels --- defines levels within the point. he5_pt_writedata --- writes data to the specified levels. he5_pt_writeattrs --- writes attributes. he5_pt_readdata --- reads data from a level. he5_pt_readattrs --- reads attributes. he5_pt_updatelevels --- updates level data. he5_pt_datainfo --- retrieves data type information for a specified object within point. Sequence of calls: he5_pt_setup he5_pt_definelevels he5_pt_writedata he5_pt_writeattrs he5_pt_readdata he5_pt_readattrs he5_pt_updatelevels he5_pt_datainfo B. FORTRAN-77 programs ~~~~~~~~~~~~~~~~~~~~~~ he5_pt_setupF_64 --- see 'he5_pt_setup'; creates "point.h5" file. (he5_pt_setupF_32) he5_pt_definelevelsF_64 --- see 'he5_pt_definelevels' (he5_pt_definelevelsF_32) he5_pt_writedataF_64 --- see 'he5_pt_writedata' (he5_pt_writedataF_32) he5_pt_writeattrsF_64 --- see 'he5_pt_writeattrs' (he5_pt_writeattrsF_32) he5_pt_readdataF_64 --- see 'he5_pt_readdata' (he5_pt_readdataF_32) he5_pt_readattrsF_64 --- see 'he5_pt_readattrs' (he5_pt_readattrsF_32) he5_pt_updatelevelsF_64 --- see 'he5_pt_updatelevels' (he5_pt_updatelevelsF_32) he5_pt_datainfoF_64 --- see 'he5_pt_datainfo' (he5_pt_datainfoF_32) Sequence of calls: he5_pt_setupF_64 (...F_32) he5_pt_definelevelsF_64 (...F_32) he5_pt_writedataF_64 (...F_32) he5_pt_writeattrsF_64 (...F_32) he5_pt_readdataF_64 (...F_32) he5_pt_readattrsF_64 (...F_32) he5_pt_updatelevelsF_64 (...F_32) he5_pt_datainfoF_64 (...F_32) ===================================================================== ZA Demonstration Programs ------------------------- A. C - programs ~~~~~~~~~~~~~~ he5_za_setup --- creates HDFEOS_5 za file "ZA.h5"; sets a single za structure "ZA1"; defines dimensions. he5_za_definefields --- defines a number of fields within the za. he5_za_writedata --- writes data to the "Spectra" field; sets up global, group, and local attributes. he5_za_readdata --- reads data from the "Spectra" field; reads global, group, and local attributes. he5_za_info --- retrieves and displays information on the za dimensions, and (global/group/local) attributes. he5_za_datainfo --- retrieves data type information for a specified object (field, attribute). Sequence of calls: he5_za_setup he5_za_definefields he5_za_writedata he5_za_readdata he5_za_info he5_za_datainfo Example of working with external data files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ he5_za_setup --- creates HDFEOS_5 za file "ZA.h5"; sets a single za structure "ZA1"; defines dimensions (including dimension of external data set). he5_za_defexternalfld --- defines external field (data set) he5_za_rdexternaldata --- reads data from external data file(s) to the external field he5_za_wrexternaldata --- writes data to external field/data file(s) B. FORTRAN-77 programs ~~~~~~~~~~~~~~~~~~~~~ he5_za_setupF_64 --- see 'he5_za_setup', creates "za.he5" file. (he5_za_setupF_32) he5_za_definefieldsF_64 --- see 'he5_za_definefields' (he5_za_definefieldsF_32) he5_za_writedataF_64 --- see 'he5_za_writedata' (he5_za_writedataF_32) he5_za_readdataF_64 --- see 'he5_za_readdata' (he5_za_readdataF_32) he5_za_infoF_64 --- see 'he5_za_info' (he5_za_infoF_32) Sequence of calls: he5_za_setupF_64 (...F_32) he5_za_definefieldsF_64 (...F_32) he5_za_writedataF_64 (...F_32) he5_za_readdataF_64 (...F_32) he5_za_infoF_64 (...F_32) ====================================================================================== hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_readdimscale.c0000644000175000017500000001220312024715435023124 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will open an HDF-EOS file and attach to a * swath structures within the file to read a dimension scales * and its attributes */ int main() { herr_t status = FAIL; hid_t swfid = FAIL; hid_t SWid1 = FAIL; int i,j; int bufsize; int *databuff; long nattr; long strbufsize; char *attrlist; size_t fldnmlen[HE5_HDFE_NAMBUFSIZE]; char *fldnm[HE5_HDFE_NAMBUFSIZE]; char *attrname = (char *)NULL; hid_t *ntype; hsize_t count = 0; void *attr; int *attr_int; float *attr_flt; char *attr_char; hsize_t dimsize; hid_t numtype; /* * Open the HDF swath file, "Swath.h5". */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); /* * If the swath file cannot be found, HE5_SWopen will return -1 for the file * handle (swfid). We there check that this is not the case before * proceeding with the other routines. * * The HE5_SWattach routine returns the handle to the existing swath "Swath1", * SWid. If the swath is not found, HE5_SWattach returns -1 for the handle. */ if (swfid != FAIL) { SWid1 = HE5_SWattach(swfid, "Swath1"); /* the field Spectra has Bands,Res2tr,Res2xtr dimensions. Bands dim is set to 15 */ if (SWid1 == FAIL) { printf("\t\tError: Cannot attach to swath \"Swath1\"\n"); HE5_SWclose(swfid); return -1; } bufsize = HE5_SWgetdimscale(SWid1, "Spectra", "Bands", &dimsize, &numtype, NULL); if (bufsize == -1) { printf("\t\tError: Cannot get Dimension Scale size for Bands dimemnsion in field \"Spectra\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); return -1; } else { printf ("bufsize = %d \n",(int)bufsize); printf ("dimsize = %d \n",(int)dimsize); printf ("numtype = %d\n", (int)numtype); } databuff = (int *) malloc(bufsize); bufsize = HE5_SWgetdimscale(SWid1, "Spectra", "Bands", &dimsize, &numtype, (void *)databuff); if (bufsize == -1) { printf("\t\tError: Cannot get Dimension Scale for Bands dimemnsion in field \"Spectra\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); free(databuff); return -1; } else { printf ("First 10 values are:\n"); for( i = 0; i < 10; i++) { printf ("DimscaleValue[%d] = %d\n",i,databuff[i]); } } nattr = HE5_SWinqdscaleattrs(SWid1, "Bands", NULL, &strbufsize); if ( nattr < 0 ) { printf("\t\tError: Cannot get Dimension Scale attribute list for \"Bands\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); free(attrlist); return -1; } attrlist = (char *) calloc(strbufsize + 2, sizeof(char)); nattr = HE5_SWinqdscaleattrs(SWid1, "Bands", attrlist, &strbufsize); if ( nattr < 0 ) { printf("\t\tError: Cannot get Dimension Scale attribute list for \"Bands\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); free(attrlist); return -1; } printf(" \n"); printf("Dimension scale for \"Bands\" Attribute: \n"); nattr = HE5_EHparsestr(attrlist, ',', fldnm, fldnmlen); if(nattr != FAIL) { for( i = 0; i < nattr; i++) { attrname = (char *)calloc(fldnmlen[i] + 1, sizeof(char)); memmove(attrname,fldnm[i],fldnmlen[i]); ntype = (hid_t *)calloc(1, sizeof(hid_t)); if(strcmp(attrname, "REFERENCE_LIST") ==0 ) continue; status = HE5_SWdscaleattrinfo(SWid1,"Bands", attrname, ntype, &count); if( (int)*ntype == 0) { attr_int = (int *)malloc(count*sizeof(int)); attr = (void *) attr_int; } if( (int)*ntype == 10) { attr_flt = (float *)malloc(count*sizeof(float)); attr = (void *) attr_flt; } if( (int)*ntype == 57) { attr_char = (char *)malloc((count+1)*sizeof(char)); attr = (void *) attr_char; } status = HE5_SWreaddscaleattr(SWid1,"Bands", attrname, attr); printf("\n"); printf("Status returned by HE5_SWreaddscaleattr() : %d \n", status ); printf("\tAttribute Name: %s \n",attrname); printf("\tNumber of attribute elements: %lu \n", (unsigned long)count); printf("\tData type of attribute: %d \n", (int)*ntype); if( (int)*ntype == 0) { attr_int = (int *)attr; for (j = 0; j < count; j++) { printf("\tAttrvalue[%d]: %d \n", j,attr_int[j]); } } if( (int)*ntype == 10) { attr_flt = (float *)attr; for (j = 0; j < count; j++) { printf("\tAttrvalue[%d]: %f \n", j,attr_flt[j]); } } if( (int)*ntype == 57) { attr_char = (char *)attr; attr_char[count]='\0'; printf("\tAttrvalue: %s \n", attr_char); free(attr_char); } } } HE5_SWdetach(SWid1); HE5_SWclose(swfid); return 0; } } hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_infoF_64.f0000755000175000017500000001421512024715435022035 0ustar amckinstryamckinstry program he5_gd_infoF_64 implicit none include 'hdfeos5.inc' integer status integer i,n integer he5_gdopen integer he5_gdattach integer he5_gdfldinfo integer he5_gdprojinfo integer he5_gdgridinfo integer he5_gdinqflds integer he5_gdtileinfo integer he5_gddetach integer he5_gdclose integer gdfid integer gdid1 integer gdid2 integer nflds integer rk(32) integer nt(32) integer spherecode integer projcode integer zonecode integer*8 he5_gddiminfo integer*8 he5_gdinqdims integer*8 he5_gdnentries integer*8 ndim integer*8 dims(32) integer*8 xdimsize integer*8 ydimsize integer*8 dimsize integer*8 strbufsize real*8 upleftpt(2) real*8 lowrightpt(2) real*8 projparm(13) character*72 dimname character*72 mxdimname character*72 fieldlist integer tilecode integer tilerank integer*8 tiledims(32) integer FAIL parameter (FAIL=-1) c Open HDF-EOS "grid.he5" file c ----------------------------- gdfid = he5_gdopen('grid.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid if (gdfid .ne. FAIL) then c Attach to the UTM and POLAR grids c --------------------------------- gdid1 = he5_gdattach(gdfid, 'UTMGrid') write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid1 gdid2 = he5_gdattach(gdfid, 'PolarGrid') write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid2 c Inquire dimensions c ------------------ ndim = he5_gdinqdims(gdid1, dimname, dims) write(*,*) 'Dimension list (UTMGrid): ',dimname do i=1,ndim write(*,*) 'dim size: ', dims(i) enddo ndim = he5_gdinqdims(gdid2, dimname, dims) write(*,*) 'Dimension list (PolarGrid): ',dimname do i=1,ndim write(*,*) 'dim size: ', dims(i) enddo c Get the sizes of certain dimensions c ----------------------------------- dimsize = he5_gddiminfo(gdid1, 'Time') write(*,*) 'Size of "Time" Array: ', dimsize dimsize = he5_gddiminfo(gdid2, 'Bands') write(*,*) 'Size of "Bands" Array: ', dimsize c Get grid parameters c ------------------- status = he5_gdgridinfo(gdid1,xdimsize,ydimsize, 1upleftpt,lowrightpt) write(*,*)'X dim size, Y dim size (UTMGrid): ', 1xdimsize,ydimsize write(*,*) 'Up left pt (UTMGrid): ', 1upleftpt(1),upleftpt(2) write(*,*) 'Low right pt (UTMGrid): ', 1lowrightpt(1),lowrightpt(2) status = he5_gdgridinfo(gdid2,xdimsize,ydimsize, 1upleftpt,lowrightpt) write(*,*) 'X dim size, Y dim size (PolarGrid): ', 1xdimsize,ydimsize write(*,*) 'Up left pt (PolarGrid): ', 1upleftpt(1),upleftpt(2) write(*,*) 'Low right pt (PolarGrid): ', 1lowrightpt(1),lowrightpt(2) c Get projection parameters c ------------------------- status = he5_gdprojinfo(gdid1,projcode,zonecode, 1 spherecode,projparm) write(*,*) 'projcode,zonecode (UTMGrid): ', 1 projcode,zonecode write(*,*) 'spherecode (UTMGrid): ', spherecode status = he5_gdprojinfo(gdid2,projcode,zonecode, 1 spherecode,projparm) write(*,*) 'projcode (PolarGrid): ', projcode write(*,*) 'spherecode (PolarGrid): ', spherecode do i=1,13 write(*,*) 'Projection Parameter: ',i,projparm(i) enddo c Get information about fields c ---------------------------- nflds = he5_gdinqflds(gdid1, fieldlist, rk, nt) if (nflds .ne. 0) then write(*,*) 'Data fields (UTMGrid): ', fieldlist do i=1,nflds write(*,*) 'rank type: ',rk(i),nt(i) enddo endif status = he5_gdtileinfo(gdid1,"Vegetation",tilecode,tilerank, 1 tiledims) write(*,*) 'Vegetation Tile Code: ', tilecode write(*,*) 'Vegetation Tile Rank: ', tilerank do i=1,tilerank write(*,*) 'Tile Dimension ',i,tiledims(i) enddo nflds = he5_gdinqflds(gdid2, fieldlist, rk, nt) if (nflds .ne. 0) then write(*,*) 'Data fields (PolarGrid): ',fieldlist do i=1,nflds write(*,*) 'rank type: ',rk(i),nt(i) enddo endif status = he5_gdfldinfo(gdid2,'Spectra',rk,dims,nt, 1 dimname,mxdimname) write(*,*) 'Spectra rank dims: ',rk(1) write(*,*) 'Spectra dim names: ',dimname write(*,*) 'Spectra max. dim names: ',mxdimname do i=1,rk(1) write(*,*) 'Spectra dims: ',i,dims(i) enddo c Get number of grid dimensions and dim. list length c -------------------------------------------------- n = he5_gdnentries(gdid1, HE5_HDFE_NENTDIM, strbufsize) write(*,*) 'Number of dimension entries (UTMGrid): ', n write(*,*) 'Length of Dimension List (UTMGrid): ', 1 strbufsize c Get number of data fields and field list length c ----------------------------------------------- n = he5_gdnentries(gdid1, HE5_HDFE_NENTDFLD, 1 strbufsize) write(*,*) 'Number of data fields (UTMGrid): ', n write(*,*) 'Length of Field List (UTMGrid): ', 1 strbufsize endif c Detach from the grids c --------------------- status = he5_gddetach(gdid1) write(*,*) 'Status returned by he5_gddetach(): ',status status = he5_gddetach(gdid2) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_readdata.c0000755000175000017500000001352612024715435022262 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include int main() { herr_t status = FAIL;/* return status variable */ hid_t ptfid = FAIL; /* HDFEOS Point file ID */ hid_t PTid = FAIL; /* Point structure ID */ int i, j; /* Loop indices */ int nflds = FAIL;/* Number of level fields */ int IntAttr; /* Integer attribute value */ long nattr; /* Number of attributes */ long strbufsize; /* Size of attribute list buffer */ hsize_t nrecs = 0; /* Number of records in a level */ size_t datasize = 0;/* Size (in bytes) of data to read */ HE5_CmpDTSinfo level; /* Level information data structure */ HE5_CmpDTSinfo inInfo; /* Input information data structure */ HE5_CmpDTSinfo inInfo2; /* Input information data structure */ /* User-defined structure to read level data to */ /* -------------------------------------------- */ typedef struct { double time; float con[4]; char spec[8]; } Sensor; Sensor s[50]; double s1[50]; /* Open the HDF-EOS file, "Point.h5" */ /* --------------------------------- */ ptfid = HE5_PTopen("Point.h5", H5F_ACC_RDONLY); printf("File ID returned by HE5_PTopen() : %d \n", ptfid); /* Read Simple Point */ /* ----------------- */ PTid = HE5_PTattach(ptfid, "Simple Point"); printf("Point ID returned by HE5_PTattach() : %d \n", PTid); /* Get level information */ /* --------------------- */ status = HE5_PTlevelinfo(PTid, 0, &level); printf("Status returned by HE5_PTlevelinfo() : %d \n", status); nflds = level.nfields; printf("Number of fields in level: %d \n", nflds); for (i = 0; i < nflds; i++) { printf("Field name: %s \n", level.fieldname[i]); printf("Field rank: %d \n", level.rank[i]); printf("Field type ID: %d \n", level.dtype[i]); for (j = 0; j < level.rank[i]; j++) printf("Field dims: %d \n", (int)level.dims[i][j]); printf("Field class: %d \n", level.dclass[i]); } /* Get the number of records in level */ /* ---------------------------------- */ nrecs = HE5_PTnrecs(PTid, 0); printf("Number of records in level: %lu \n", (unsigned long)nrecs); /* Set the data size */ /* ----------------- */ datasize = (size_t)sizeof(Sensor); /* Populate input information structure */ /* ------------------------------------ */ inInfo.nfields = nflds; inInfo.datasize = (size_t)sizeof(Sensor); inInfo.rank[0] = 1; inInfo.rank[1] = 1; inInfo.rank[2] = 1; inInfo.offset[0] = HOFFSET(Sensor, time); inInfo.offset[1] = HOFFSET(Sensor, con); inInfo.offset[2] = HOFFSET(Sensor, spec); inInfo.dtype[0] = H5T_NATIVE_DOUBLE; inInfo.dtype[1] = H5T_NATIVE_FLOAT; inInfo.dtype[2] = H5T_NATIVE_CHAR; inInfo.dclass[0] = H5T_NO_CLASS; inInfo.dclass[1] = H5T_NO_CLASS; inInfo.dclass[2] = H5T_NO_CLASS; inInfo.dims[0][0] = 1; inInfo.dims[1][0] = 4; inInfo.dims[2][0] = 8; inInfo.array[0] = 0; inInfo.array[1] = 1; inInfo.array[2] = 1; for( i = 0; i < nflds; i++) { inInfo.fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(inInfo.fieldname[i], level.fieldname[i]); } /* Read the level data */ /* ------------------- */ status = HE5_PTreadlevel(PTid, 0, &inInfo, &datasize, s); printf("Status returned by HE5_PTreadlevel() : %d \n", status); for (i = 0; i < nrecs; i++) printf("%lf %f %f %f %f %s\n", s[i].time, s[i].con[0], s[i].con[1], s[i].con[2], s[i].con[3], s[i].spec); /* Release memory */ /* -------------- */ for (i = 0; i < nflds; i++) if (inInfo.fieldname[i] != NULL) free(inInfo.fieldname[i]); /* Set the data size */ /* ----------------- */ datasize = (size_t)sizeof(double); /* Populate input information structure */ /* ------------------------------------ */ inInfo2.nfields = 1; inInfo2.datasize = (size_t)sizeof(double); inInfo2.rank[0] = 1; inInfo2.offset[0] = 0; inInfo2.dtype[0] = H5T_NATIVE_DOUBLE; inInfo2.dclass[0] = H5T_FLOAT; inInfo2.dims[0][0] = 1; inInfo2.array[0] = 0; inInfo2.fieldname[0] = (char *)calloc(64, sizeof(char)); strcpy(inInfo2.fieldname[0], level.fieldname[0]); /* Read the level data */ /* ------------------- */ status = HE5_PTreadlevel(PTid, 0, &inInfo2, &datasize, s1); printf("Status returned by HE5_PTreadlevel() : %d \n", status); for (i = 0; i < nrecs; i++) printf("%lf \n", s1[i]); /* Release memory */ /* -------------- */ if (inInfo2.fieldname[0] != NULL) free(inInfo2.fieldname[0]); for (i = 0; i < nflds; i++) if(level.fieldname[i] != NULL) free(level.fieldname[i]); status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d \n", status); PTid = HE5_PTattach(ptfid, "FixedBuoy Point"); printf("Point ID returned by HE5_PTattach() : %d \n", PTid); /* Read Fixed Buoy Point Attributes */ /* -------------------------------- */ nattr = HE5_PTinqattrs(PTid, NULL, &strbufsize); status = HE5_PTreadattr(PTid, "GlobalAttr_Integer", &IntAttr); printf("Status returned by HE5_PTreadattr() : %d \n", status); printf(" \n"); printf("Integer attribute value: %d\n", IntAttr); status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d \n", status); status = HE5_PTclose(ptfid); printf("Status returned by HE5_PTclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_writedimscale.c0000644000175000017500000000757712024715435023365 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will open an HDF-EOS file and attach to * a swath structures within the file to write a dimension scales */ int main() { herr_t status = FAIL; hid_t swfid = FAIL; hid_t SWid1 = FAIL; int data[15]={1,2,3,6,9,12,15,18,23,26,29,32, 33,34,35}; char label[16]; char unit[16]; char format[16]; int nbands; hsize_t count[3]; /* * We first open the HDF-EOS swath file, "Swath.h5". Because this file * already exist and we wish to write to it, we use the H5F_ACC_RDWR access * code in the open statement. The HE5_SWopen routine returns the swath file * id, swfid, which is used to identify the file in subsequent routines. */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); /* * If the swath file cannot be found, HE5_SWopen will return -1 for the file * handle (swfid). We there check that this is not the case before * proceeding with the other routines. * * The HE5_SWattach routine returns the handle to the existing swath "Swath1", * SWid1. If the swath is not found, HE5_SWattach returns -1 for the handle. */ if (swfid != FAIL) { SWid1 = HE5_SWattach(swfid, "Swath1"); /* the field Spectra has Bands,Res2tr,Res2xtr dimensions. xdim = 120; ydim = 200; Time dim is set to 10 */ if (SWid1 == -1) { printf("\t\tError: Cannot attach to swath \"Swath1\"\n"); HE5_SWclose(swfid); return -1; } nbands = 15; status = HE5_SWsetdimscale(SWid1, "Spectra", "Bands", nbands, H5T_NATIVE_INT, (void *)data); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale for Bands dimemnsion in field \"Spectra\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); return -1; } strcpy(label, "Bands Dim"); strcpy(unit, "None"); strcpy(format, "I2"); count[0]= 12; status = HE5_SWwritedscaleattr(SWid1, "Bands", "label", H5T_NATIVE_CHAR, count, label); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); return -1; } count[0]= 6; status = HE5_SWwritedscaleattr(SWid1, "Bands", "unit", H5T_NATIVE_CHAR, count, unit); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); return -1; } count[0]= 4; status = HE5_SWwritedscaleattr(SWid1, "Bands", "format", H5T_NATIVE_CHAR, count, format); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); return -1; } int datbuf_i1[1] = {-999}; count[0]= 1; status = HE5_SWwritedscaleattr(SWid1, "Bands", "MissingValue", H5T_NATIVE_INT, count, datbuf_i1); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); return -1; } int datbuf_i2[3] = {-999,0,999}; count[0]= 3; status = HE5_SWwritedscaleattr(SWid1, "Bands", "IntValues", H5T_NATIVE_INT, count, datbuf_i2); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_SWdetach(SWid1); HE5_SWclose(swfid); return -1; } HE5_SWdetach(SWid1); HE5_SWclose(swfid); return 0; } } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_setup.c0000755000175000017500000000470712024715435021645 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* In this program we (1) open an HDF-EOS file, (2) create the ZA */ /* interface within the file, and (3) define the za field dimensions */ /* ----------------------------------------------------------------- */ int main() { herr_t status = FAIL; hid_t zafid = FAIL; hid_t ZAid = FAIL; /* Open a new HDF-EOS za file, "ZA.he5" */ /* ----------------------------------- */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_TRUNC); printf("File ID returned by HE5_ZAopen(): %d \n", zafid); /* Create the ZA, "ZA1", within the file */ /* ------------------------------------- */ ZAid = HE5_ZAcreate(zafid, "ZA1"); printf("ZA ID returned by HE5_ZAcreate(): %d \n", ZAid); /* Define dimensions and specify their sizes */ /* ----------------------------------------- */ status = HE5_ZAdefdim(ZAid, "MyTrack1", 20); printf("Status returned by HE5_ZAdefdim(): %d \n", status); status = HE5_ZAdefdim(ZAid, "MyTrack2", 10); printf("Status returned by HE5_ZAdefdim(): %d \n", status); status = HE5_ZAdefdim(ZAid, "Res2tr", 40); printf("Status returned by HE5_ZAdefdim(): %d \n", status); status = HE5_ZAdefdim(ZAid, "Res2xtr", 20); printf("Status returned by HE5_ZAdefdim(): %d \n", status); status = HE5_ZAdefdim(ZAid, "Bands", 15); printf("Status returned by HE5_ZAdefdim(): %d \n", status); status = HE5_ZAdefdim(ZAid, "IndxTrack", 12); printf("Status returned by HE5_ZAdefdim(): %d \n", status); /* Define "External" Dimension */ /* --------------------------- */ status = HE5_ZAdefdim(ZAid, "ExtDim", 60); printf("Status returned by HE5_ZAdefdim(): %d \n", status); /* Define Unlimited Dimension */ /* -------------------------- */ status = HE5_ZAdefdim(ZAid, "Unlim", H5S_UNLIMITED); printf("Status returned by HE5_ZAdefdim(): %d \n", status); /* Close the za interface */ /* ---------------------- */ status = HE5_ZAdetach(ZAid); printf("Status returned by HE5_ZAdetach(): %d \n", status); /* Close the za file */ /* ----------------- */ status = HE5_ZAclose(zafid); printf("Status returned by HE5_ZAclose(): %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_datainfo.c0000755000175000017500000000553112024715435022246 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define FILENAME "Grid.h5" #define OBJECT "UTMGrid" #define FIELDNAME "Vegetation" int main(void) { herr_t status = FAIL; int fieldgroup = FAIL; hid_t fid = FAIL; hid_t GDid = FAIL; hid_t datatype = FAIL; H5T_class_t classid = H5T_NO_CLASS; H5T_order_t order = H5T_ORDER_ERROR; size_t size = 0; fid = HE5_GDopen(FILENAME, H5F_ACC_RDONLY); printf("File ID returned by HE5_GDopen() : %d \n", fid); GDid = HE5_GDattach(fid, OBJECT); printf("Grid ID returned by HE5_GDattach() : %d \n", GDid); fieldgroup = HE5_HDFE_DATAGROUP; status = HE5_GDinqdatatype(GDid, FIELDNAME, NULL, fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_GDinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", (int)datatype); printf("\tclass ID: %d \n", (int)classid); printf("\torder: %d \n", (int)order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_ATTRGROUP; status = HE5_GDinqdatatype(GDid, NULL, "GlobalAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_GDinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", (int)datatype); printf("\tclass ID: %d \n", (int)classid); printf("\torder: %d \n", (int)order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_GRPATTRGROUP; status = HE5_GDinqdatatype(GDid, NULL, "GroupAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_GDinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", (int)datatype); printf("\tclass ID: %d \n", (int)classid); printf("\torder: %d \n", (int)order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_LOCATTRGROUP; status = HE5_GDinqdatatype(GDid, FIELDNAME, "LocalAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_GDinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", (int)datatype); printf("\tclass ID: %d \n", (int)classid); printf("\torder: %d \n", (int)order); printf("\tsize: %d \n", (int)size); } status = HE5_GDdetach(GDid); printf("Status returned by HE5_GDdetach() : %d \n", status); status = HE5_GDclose(fid); printf("Status returned by HE5_GDclose() : %d \n", status); return(0); } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_readdataF_64.f0000755000175000017500000001005412024715435022703 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" file, (2) attach to c the "Swath1" swath, and (3) read data from the "Longitude" field c ================================================================ program he5_sw_readdataF_64 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swrdfld integer he5_swrdattr integer he5_prread integer he5_swdetach integer he5_swclose integer swfid, swid integer buffer_out(250) integer i,j,j1 integer element1(25) integer element2(50) integer element3(75) integer element4(100) real*4 lng(10,20) integer*4 attr(4) integer*8 start(2) integer*8 stride(2) integer*8 count(2) integer*8 len(4) character*4 charfield(10) integer FAIL parameter (FAIL=-1) c Open HDF-EOS swath file, "swath.he5" c ------------------------------------ swfid = he5_swopen("swath.he5",HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Read the entire Longitude field c ------------------------------- start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 count(1) = 10 count(2) = 20 status = he5_swrdfld(swid,"Longitude", 1 start,stride,count,lng) do i=1,20 do j=1,10 write(*,*)'i j Longitude ',i,j,lng(j,i) enddo enddo start(1) = 0 stride(1) = 1 count(1) = 10 status = he5_swrdfld(swid,"test_string", 1 start,stride,count,charfield) do i=1,10 write(*,*)'i = ',i,charfield(i) enddo c Read data from the Profile c -------------------------- start(1) = 0 stride(1) = 1 count(1) = 4 status = he5_prread(swid,"Profile-2000",start,stride,count, 1len,buffer_out) write(*,*) ' ' write(*,*) 'Status returned from he5_prread: ',status c Display the Profile data c ------------------------ do i=1,4 write(*,*) 'len(',i,'): ',len(i) enddo write(*,*) ' ' write(*,*) 'buffer_out: ' write(*,*) buffer_out write(*,*) ' ' j = 0 do i=1,25 element1(i) = buffer_out(i) j = j + 1 enddo write(*,*) '1st element: ' write(*,*) element1 write(*,*) ' ' j1 = j do i=1,50 element2(i) = buffer_out(j1 + i) j = j + 1 enddo write(*,*) '2nd element: ' write(*,*) element2 write(*,*) ' ' j1 = j do i=1,75 element3(i) = buffer_out(j1 + i) j = j + 1 enddo write(*,*) '3rd element: ' write(*,*) element3 write(*,*) ' ' j1 = j do i=1,100 element4(i) = buffer_out(j1 + i) j = j + 1 enddo write(*,*) '4th element: ' write(*,*) element4 write(*,*) ' ' c Read Attribute c -------------- status = he5_swrdattr(swid, "TestAttr", attr) do i=1,4 write(*,*) 'Attribute Element', i, ':', attr(i) enddo endif endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned from he5_swdetach: ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned from he5_swclose: ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_writeattrsF_32.f0000755000175000017500000000577412024715435023350 0ustar amckinstryamckinstry program he5_pt_writeattrsF_32 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptwriteattr integer he5_ptwritegrpattr integer he5_ptwritelocattr integer he5_ptdetach integer he5_ptclose integer attr,attr1(5) integer attr2(5) integer ntype integer*4 fortcount(8) real*4 flt character*80 attrname,levelname c Open the HDF point file, "point.he5" c ----------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Write attributes to "Fixed Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_int' ntype = HE5T_NATIVE_INT fortcount(1) = 1 attr = 9999 status = he5_ptwriteattr(ptid,attrname,ntype,fortcount, 1attr) write(*,*) 'Status returned by he5_ptwriteattr(): ',status attrname = 'GroupAttribute' ntype = HE5T_NATIVE_INT fortcount(1) = 5 attr1(1) = 1 attr1(2) = 2 attr1(3) = 3 attr1(4) = 4 attr1(5) = 5 status = he5_ptwritegrpattr(ptid,attrname,ntype,fortcount, 1attr1) write(*,*) 'Status returned by he5_ptwritegrpattr(): ',status levelname = 'Observations' attrname = 'LocalAttribute' ntype = HE5T_NATIVE_INT fortcount(1) = 5 attr2(1) = 10 attr2(2) = 20 attr2(3) = 30 attr2(4) = 40 attr2(5) = 50 status = he5_ptwritelocattr(ptid,levelname,attrname, 1ntype,fortcount,attr2) write(*,*) 'Status returned by he5_ptwritelocattr(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Write attributes to "Fixed Buoy Point" c -------------------------------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid attrname = 'GlobalAttribute_float' ntype = HE5T_NATIVE_FLOAT fortcount(1) = 1 flt = -7.5 status = he5_ptwriteattr(ptid,attrname, 1ntype,fortcount,flt) write(*,*) 'Status returned by he5_ptwriteattr(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_writedata.c0000755000175000017500000001067212024715435022467 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* In this program we (1) open the "ZA.he5" file, (2) attach to the */ /* "ZA1" za, and (3) write data to the "Spectra" fields. Also, set up */ /* the global, group, and local attributes */ /* ------------------------------------------------------------------ */ int main() { herr_t status = FAIL; int i, j, k; int attr1[4] = {1, 2, 3, 4}; /* global attribute */ int attr2[4] = {10, 20, 30, 40}; /* group attribute */ int attr3[4] = {100, 200, 300, 400}; /* local attribute */ hid_t zafid = FAIL; hid_t ZAid = FAIL; char attr4[7]; /* Global 'char' attribute */ long attr5[4] = {1111111L,2222222L,3333333L,4444444L};/* Global 'long' attribute */ double attr6[4] = {1.111111,2.222222,3.333333,4.444444};/* Global 'double' attribute */ hssize_t start[3]; hsize_t count[3]; double plane[15][40][20]; const char *charname[10] = { "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "BBBBBBBBBBBBBBBB", "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", "DDDDDDDDDDDDDDDDDDDD", "EEEEEEEE", "FFFFFFFFFFFFF", "GGGGGGGGGGGGG", "HHHHHHHHHH", "IIIIIII", "JJJJJJJJJJJJJ" }; /* Populate spectra data array. Value = 100*(track index)+(band index) */ /* ------------------------------------------------------------------- */ for (i = 0; i < 15; i++) { for (j = 0; j < 40; j++) for (k = 0; k < 20; k++) plane[i][j][k] = (double)(j*100 + i); } /* Open the HDF za file, "ZA.he5" */ /* ----------------------------- */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDWR); if (zafid != FAIL) { /* Attach the "ZA1" za */ /* ------------------- */ ZAid = HE5_ZAattach(zafid, "ZA1"); if (ZAid != FAIL) { /* Write Spectra Field */ /* ------------------- */ start[0] = 0; count[0] = 15; start[1] = 0; count[1] = 40; start[2] = 0; count[2] = 20; status = HE5_ZAwrite(ZAid, "Spectra", start, NULL, count, plane); printf("status returned by HE5_ZAwrite(\"Spectra\"): %d\n", status); start[0] = 0; count[0] = 10; status = HE5_ZAwrite(ZAid, "Test_string", start, NULL, count, charname); printf("status returned by HE5_ZAwrite(\"Test_string\"): %d\n", status); /* Write Global 'int' Attribute */ /* ---------------------------- */ count[0] = 4; status = HE5_ZAwriteattr(ZAid, "GlobalAttribute", H5T_NATIVE_INT, count, attr1); printf("status returned by HE5_ZAwriteattr(\"GlobalAttribute\"): %d\n", status); /* Write Global 'char' Attribute */ /* ----------------------------- */ strcpy(attr4,"ABCDEF"); count[0] = 6; status = HE5_ZAwriteattr(ZAid, "GLOBAL_CHAR_ATTR", H5T_NATIVE_CHAR, count, attr4); printf("status returned by HE5_ZAwriteattr(\"GLOBAL_CHAR_ATTR\"): %d\n", status); /* Write Global 'long' Attribute */ /* ----------------------------- */ count[0] = 4; status = HE5_ZAwriteattr(ZAid, "GLOBAL_LONG_ATTR", H5T_NATIVE_LONG, count, attr5); printf("status returned by HE5_ZAwriteattr(\"GLOBAL_LONG_ATTR\"): %d\n", status); /* Write Global 'double' Attribute */ /* ------------------------------- */ count[0] = 4; status = HE5_ZAwriteattr(ZAid, "GLOBAL_DOUBLE_ATTR", H5T_NATIVE_DOUBLE, count, attr6); printf("status returned by HE5_ZAwriteattr(\"GLOBAL_DOUBLE_ATTR\"): %d\n", status); /* Write Group Attribute */ /* --------------------- */ status = HE5_ZAwritegrpattr(ZAid, "GroupAttribute", H5T_NATIVE_INT, count, attr2); printf("status returned by HE5_ZAwritegrpattr(\"GroupAttribute\"): %d\n", status); /* Write Local Attribute */ /* --------------------- */ status = HE5_ZAwritelocattr(ZAid, "Density", "LocalAttribute", H5T_NATIVE_INT, count, attr3); printf("status returned by HE5_ZAwritelocattr(\"LocalAttribute\"):%d\n", status); } } status = HE5_ZAdetach(ZAid); status = HE5_ZAclose(zafid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_infoF_64.f0000755000175000017500000001372012024715435022074 0ustar amckinstryamckinstryc In this program we retrieve (1) information about the c dimensions, (2) the dimension mappings (geolocation relations), c and (3) the swath fields program he5_sw_infoF_64 implicit none include 'hdfeos5.inc' integer i integer status integer swfid, swid integer he5_swopen integer he5_swattach integer he5_swfldinfo integer he5_swattrinfo integer he5_swmapinfo integer he5_swchunkinfo integer he5_swdetach integer he5_swclose integer rank(32) integer ntype(32) integer rk integer nt integer*8 he5_swinqdims integer*8 he5_swinqmaps integer*8 he5_swinqgflds integer*8 he5_swinqdflds integer*8 he5_swdiminfo integer*8 he5_swimapinfo integer*8 he5_swinqimaps integer*8 he5_swinqgfldalias integer*8 offset integer*8 incr integer*8 ndims integer*8 nmaps integer*8 nflds integer*8 dims(32) integer*8 off(32) integer*8 inc(32) integer*8 sizes(8) integer*8 indx(32) integer*8 dimsize integer*8 n integer*8 count character*72 dimname character*72 dimmap character*72 dimlist character*72 maxdimlst character*72 fieldlist integer*8 nfldalias integer*8 strbufsize character*72 fldaliases integer chunkrank integer*8 chunkdims(32) integer FAIL parameter (FAIL=-1) c Open the "swath.he5" file for "read only" access c ------------------------------------------------ swfid = he5_swopen("swath.he5",HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then c Attach the swath c ---------------- swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Inquire Dimensions c ------------------ ndims = he5_swinqdims(swid, dimname, dims) write(*,*) 'Dimension list: ', dimname do i = 1,ndims write(*,*) 'dim size: ', dims(i) enddo write(*,*) c Inquire Dimension Mappings c -------------------------- nmaps = he5_swinqmaps(swid, dimmap, off, inc) write(*,*) 'Dimension map: ', dimmap do i = 1,nmaps write(*,*) 'offset increment: ', off(i), inc(i) enddo write(*,*) c Inquire Indexed Dimension Mappings c ---------------------------------- nmaps = he5_swinqimaps(swid, dimmap, sizes) write(*,*) 'Index Dimension map: ', dimmap do i=1,nmaps write(*,*) 'sizes: ', sizes(i) enddo write(*,*) c Inquire Geolocation Fields c -------------------------- nflds = he5_swinqgflds(swid, fieldlist, rank, ntype) write(*,*) 'Geolocation fieldlist: ', fieldlist do i=1,nflds write(*,*) 'field rank & datatype: ',rank(i),ntype(i) enddo write(*,*) c Inquire Data Fields c ------------------- nflds = he5_swinqdflds(swid, fieldlist, rank, ntype) write(*,*) 'Data Fieldlist: ', fieldlist do i=1,nflds write(*,*) 'field rank & datatype: ',rank(i),ntype(i) enddo write(*,*) nfldalias = he5_swinqgfldalias(swid,fldaliases,strbufsize) write(*,*) 'Fields & aliases list: ',fldaliases write(*,*) 'Length of list is ',strbufsize c Get info on "GeoTrack" dim c -------------------------- dimsize = he5_swdiminfo(swid, "GeoTrack") write(*,*) 'Size of GeoTrack: ', dimsize write(*,*) c Get info on "GeoTrack/Res2tr" mapping c ------------------------------------- status = he5_swmapinfo(swid,"GeoTrack","Res2tr", 1 offset,incr) write(*,*) 'Mapping Offset: ', offset write(*,*) 'Mapping Increment: ', incr write(*,*) c Get info on "IndxTrack/Res2tr" indexed mapping c ---------------------------------------------- n = he5_swimapinfo(swid, "IndxTrack", "Res2tr", indx) do i=1,n write(*,*) 'Index Mapping Entry ', i, indx(i) enddo write(*,*) c Get info on "Longitude" Field c ----------------------------- status = he5_swfldinfo(swid,"Longitude",rk,dims,nt, 1 dimlist,maxdimlst) write(*,*) 'Longitude Rank: ', rk write(*,*) 'Longitude NumberType: ', nt write(*,*) 'Longitude Dimlist: ', dimlist write(*,*) 'Longitude Max Dimlist: ', maxdimlst do i=1,rk write(*,*) 'Dimension ',i,dims(i) enddo status = he5_swfldinfo(swid,"test_string",rk,dims,nt, 1 dimlist,maxdimlst) write(*,*) 'test_string: Rank: ', rk write(*,*) 'test_string: NumberType: ', nt write(*,*) 'test_string: Dimlist: ', dimlist write(*,*) 'test_string: Max Dimlist: ', maxdimlst do i=1,rk write(*,*) 'Dimension ',i,dims(i) enddo status = he5_swattrinfo(swid,"GLOBAL_CHAR_ATTR",nt,count) write(*,*) 'GLOBAL_CHAR_ATTR NumberType: ', nt write(*,*) 'GLOBAL_CHAR_ATTR size: ', count status = he5_swchunkinfo(swid,"Spectra",chunkrank, 1 chunkdims) write(*,*) 'Spectra Chunking Rank: ', chunkrank do i=1,chunkrank write(*,*) 'Chunking Dimension ',i,chunkdims(i) enddo endif endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/makefile_me0000755000175000017500000001202312024715435021255 0ustar amckinstryamckinstry # # To use this makefile you must also type the sample C code name. # For example for he5_gd_setup.c "make -f makefile_me he5_gd_setup" # SHELL=/bin/sh F77LIBS_IRIX64 = $(HDFEOS5_LIB)/libhe5_hdfeos.a $(JPEGLIB)/libjpeg.a $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a $(ZLIBLIB)/libz.a $(SZIPLIB)/libsz.a F77LIBS_IRIX = $(HDFEOS5_LIB)/libhe5_hdfeos.a $(JPEGLIB)/libjpeg.a $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a $(ZLIBLIB)/libz.a $(SZIPLIB)/libsz.a /usr/lib/libmpc.a F77LIBS_SUN = $(HDFEOS5_LIB)/libhe5_hdfeos.a $(JPEGLIB)/libjpeg.a $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a $(ZLIBLIB)/libz.a $(SZIPLIB)/libsz.a /usr/lib/libnsl.a F77LIBS_HP = $(HDFEOS5_LIB)/libhe5_hdfeos.a $(JPEGLIB)/libjpeg.a $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a $(ZLIBLIB)/libz.a $(SZIPLIB)/libsz.a /lib/libm.a F77LIBS_HP11 = $(HDFEOS5_LIB)/libhe5_hdfeos.a $(JPEGLIB)/libjpeg.a $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a $(ZLIBLIB)/libz.a $(SZIPLIB)/libsz.a /usr/lib/libnsl.a /lib/libm.a F77LIBS = $(HDFEOS5_LIB)/libhe5_hdfeos.a $(JPEGLIB)/libjpeg.a $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a $(ZLIBLIB)/libz.a $(SZIPLIB)/libsz.a F77LIBS_linux = $(HDFEOS5_LIB)/libhe5_hdfeos.a $(JPEGLIB)/libjpeg.a $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a $(ZLIBLIB)/libz.a $(SZIPLIB)/libsz.a F77LIBS_MAC = $(HDFEOS5_LIB)/libhe5_hdfeos.a $(JPEGLIB)/libjpeg.a $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a $(ZLIBLIB)/libz.a $(SZIPLIB)/libsz.a IFLAG = -I$(JPEGINC) -I$(ZLIBINC) -I$(HDF5INC) -I$(HDFEOS5_INC) -I$(SZIPINC) LIBSH = -L$(HDFEOS5_LIB) -L$(JPEGLIB) -L$(ZLIBLIB) -L$(SZIPLIB) -L$(HDF5LIB) LIBSM_SUN = $(HDFEOS5_LIB)/libhe5_hdfeos.a -ljpeg $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a -lGctp -lz $(SZIPLIB)/libsz.a -lnsl -lm LIBSM_hp11 = $(HDFEOS5_LIB)/libhe5_hdfeos.a -ljpeg $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a -lGctp -lz $(SZIPLIB)/libsz.a -lnsl -lm LIBSM_linux = $(HDFEOS5_LIB)/libhe5_hdfeos.a -ljpeg $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a -lGctp -lz $(SZIPLIB)/libsz.a -lm LIBSM_MAC = $(HDFEOS5_LIB)/libhe5_hdfeos.a -ljpeg $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a -lGctp -lz $(SZIPLIB)/libsz.a -lm LIBSM = $(HDFEOS5_LIB)/libhe5_hdfeos.a -ljpeg $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a -lGctp -lz $(SZIPLIB)/libsz.a -lm HDFEOS5_SAMPLE_BIN = /tools/pgs/ataaheri/TK5216_f95/TOOLKIT/hdfeos5/samples HDFEOS5_SAMPLE_SRC = /tools/pgs/ataaheri/TK5216_f95/TOOLKIT/hdfeos5/samples # compile C to executable .c: @echo "USING LIBRARY IN $(HDFEOS5_LIB) TO COMPILE for $(BRAND)" \rm -f $(HDFEOS5_SAMPLE_BIN)/$@ @if [ $(BRAND) = "sun5" -o $(BRAND) = "sun4" -o $(BRAND) = "sun5.8" -o $(BRAND) = "sun5.9" -o $(BRAND) = "sun5.10" ] ; then \ $(CC) $(CFHFLAGS) -o $(HDFEOS5_SAMPLE_BIN)/$@.o $(IFLAG) -c $(HDFEOS5_SAMPLE_BIN)/$@.c; \ $(CC) $(CFHFLAGS) -o $(HDFEOS5_SAMPLE_BIN)/$@ $(HDFEOS5_SAMPLE_BIN)/$@.o $(IFLAG) -D$(HDFSYS) $(LIBSH) $(LIBSM_SUN) -lsocket ; \ elif [ $(BRAND) = "dec" ] ; then \ $(CC) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $< $(F77LIBS) -lm -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ elif [ $(BRAND) = "hp" ] ; then \ if [ `/bin/uname -r | cut -d. -f2` = "11" ]; then \ $(CC) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $< $(F77LIBS_HP11) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ else \ $(CC) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $(LIBSH) $< $(LIBSM) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ fi; \ elif [ $(BRAND) = "linux" ] || [ $(BRAND) = "linux32" ] || [ $(BRAND) = "linux64" ] ; then \ $(CC) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $(LIBSH) $< $(LIBSM_linux) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ elif [ $(BRAND) = "macintosh" ] ; then \ $(CC) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $(LIBSH) $< $(LIBSM_MAC) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ else \ $(CC) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $(LIBSH) $< $(LIBSM) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ fi ; # \rm -f $@.o .f: @echo "USING LIBRARY IN $(HDFEOS5_LIB) TO COMPILE for $(BRAND)" \rm -f $(HDFEOS5_SAMPLE_BIN)/$@ @if [ $(BRAND) = "sun5" -o $(BRAND) = "sun4" -o $(BRAND) = "sun5.8" -o $(BRAND) = "sun5.9" -o $(BRAND) = "sun5.10" ] ; then \ $(F77) $(CFHFLAGS) -o $(HDFEOS5_SAMPLE_BIN)/$@.o $(IFLAG) -c $(HDFEOS5_SAMPLE_BIN)/$@.f; \ $(F77) -o $(HDFEOS5_SAMPLE_BIN)/$@ $(HDFEOS5_SAMPLE_BIN)/$@.o $(IFLAG) -D$(HDFSYS) $(LIBSH) $(LIBSM_SUN) -lsocket ; \ elif [ $(BRAND) = "dec" ] ; then \ $(F77) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $< $(F77LIBS) -lm -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ elif [ $(BRAND) = "hp" ] ; then \ if [ `/bin/uname -r | cut -d. -f2` = "11" ]; then \ $(F77) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $< $(F77LIBS_HP11) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ else \ $(F77) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $(LIBSH) $< $(LIBSM) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ fi; \ elif [ $(BRAND) = "linux" ] || [ $(BRAND) = "linux32" ] || [ $(BRAND) = "linux64" ] ; then \ $(F77) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $(LIBSH) $< $(LIBSM_linux) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ elif [ $(BRAND) = "macintosh" ] ; then \ $(F77) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $(LIBSH) $< $(LIBSM_MAC) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ else \ $(F77) $(CFHFLAGS) $(IFLAG) -D$(HDFSYS) $(LIBSH) $< $(LIBSM) -o $(HDFEOS5_SAMPLE_BIN)/$@ ; \ fi ; # \rm -f $@.o hdf-eos5-5.1.14+dfsg.1/samples/he5_za_readdata.c0000755000175000017500000001145512024715435022250 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* ------------------------------------------------------------------- */ /* In this program we (1) open the "ZA.he5" HDF-EOS file, (2) attach to */ /* the "ZA1" za, and (3) read data from the "Spectra" field. Also, we */ /* read the global/group/local attributes */ /* ------------------------------------------------------------------- */ int main() { herr_t status = FAIL; int i, j, k; int attr1[4]; /* data buffer for global attribute */ int attr2[4]; /* .... for group attribute */ int attr3[4]; /* .... for local attribute */ hid_t zafid = FAIL; hid_t ZAid = FAIL; char attr4[7] = {0}; /* ... for global 'char' attribute */ long attr5[4]; /* ... for global 'long' attribute */ double attr6[4]; /* ... for global 'double' attribute */ hssize_t start[3]; hsize_t count[3]; double plane[15][40][20]; char *charname[10] = {0}; /* Populate spectra data array. Value = 100*(track index)+(band index) */ /* ------------------------------------------------------------------- */ for (i = 0; i < 15; i++) { for (j = 0; j < 40; j++) for (k = 0; k < 20; k++) plane[i][j][k] = (double)(j*100 + i); } /* Open the HDF-EOS za file, "ZA.he5" */ /* --------------------------------- */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDONLY); if (zafid != FAIL) { /* Attach the "ZA1" za */ /* ------------------- */ ZAid = HE5_ZAattach(zafid, "ZA1"); if (ZAid != FAIL) { /* Read the entire Spectra field */ /* ----------------------------- */ start[0] = 0; start[1] = 0; start[2] = 0; count[0] = 15; count[1] = 40; count[2] = 20; status = HE5_ZAread(ZAid, "Spectra", start, NULL, count, plane); printf("Status returned by HE5_ZAread() : %d \n", status); start[0] = 0; count[0] = 10; for (i = 0; i < 10; i++) charname[i] = (char *)malloc(95*sizeof(char)); status = HE5_ZAread(ZAid, "Test_string", start, NULL, count, charname); printf("Status returned by HE5_ZAread() : %d \n", status); /* Display Test_string data */ /* ---------------------- */ for (i = 0; i < 10; i++) printf("i = %d string = %s\n", i, charname[i]); for (i = 0; i < 10; i++) free(charname[i]); /* Read Global 'int' Attribute */ /* --------------------------- */ status = HE5_ZAreadattr(ZAid, "GlobalAttribute", attr1); printf("Status returned by HE5_ZAreadattr() : %d \n", status); printf("Global attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %d \n",attr1[i]); /* Read Group Attribute */ /* -------------------- */ status = HE5_ZAreadgrpattr(ZAid, "GroupAttribute", attr2); printf("Status returned by HE5_ZAreadgrpattr() : %d \n", status); printf("Group attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %d \n",attr2[i]); /* Read Local Attribute */ /* -------------------- */ status = HE5_ZAreadlocattr(ZAid, "Density", "LocalAttribute", attr3); printf("Status returned by HE5_ZAreadlocattr() : %d \n", status); printf("Local attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %d \n",attr3[i]); /* Read Global 'char' Attribute */ /* ---------------------------- */ status = HE5_ZAreadattr(ZAid, "GLOBAL_CHAR_ATTR", attr4); printf("Status returned by HE5_ZAreadattr() : %d \n", status); printf("Global attribute values:\n"); printf("\t\t %s \n",attr4); /* Read Global 'long' Attribute */ /* ---------------------------- */ status = HE5_ZAreadattr(ZAid, "GLOBAL_LONG_ATTR", attr5); printf("Status returned by HE5_ZAreadattr() : %d \n", status); printf("Global attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %li \n",attr5[i]); /* Read Global 'double' Attribute */ /* ------------------------------ */ status = HE5_ZAreadattr(ZAid, "GLOBAL_DOUBLE_ATTR", attr6); printf("Status returned by HE5_ZAreadattr() : %d \n", status); printf("Global attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %f \n",attr6[i]); } } status = HE5_ZAdetach(ZAid); status = HE5_ZAclose(zafid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_definelevels.c0000755000175000017500000002342512024715435023161 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* File name: he5_pt_definelevels.c */ /* -------------------------------- */ /* * In this example we will open the "Point.h5" HDF-EOS file * and define the point levels. */ int main() { herr_t status = FAIL; int i; hid_t ptfid = FAIL, PTid = FAIL; HE5_CmpDTSinfo *dtsinfo; typedef struct { double time; float concentr[4]; char spec[8]; } InputData1; typedef struct { char label[8]; double lon; double lat; int date; char id[8]; } InputData2; typedef struct { double time; float rain; float temp; char id[8]; } InputData3; typedef struct { char label[10]; int date; int weight; char id[8]; } InputData4; typedef struct { double time; double lon; double lat; float rain; float temp; char id[8]; } InputData5; /* * We first open the HDF-EOS point file, "Point.h5". Because this file * already exist and we wish to write to it, we use the H5F_ACC_RDWR access * code in the open statement. The PTopen routine returns the point file * id, ptfid, which is used to identify the file in subsequent routines. */ ptfid = HE5_PTopen("Point.h5", H5F_ACC_RDWR); if (ptfid != FAIL) { /* Simple Point */ /* ------------ */ PTid = HE5_PTattach(ptfid, "Simple Point"); dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data structure */ /* --------------------------- */ dtsinfo->nfields = 3; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->offset[0] = HOFFSET(InputData1, time); dtsinfo->offset[1] = HOFFSET(InputData1, concentr); dtsinfo->offset[2] = HOFFSET(InputData1, spec); dtsinfo->dtype[0] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[1] = H5T_NATIVE_FLOAT; dtsinfo->dtype[2] = H5T_NATIVE_CHAR; dtsinfo->array[0] = 0; dtsinfo->array[1] = 1; dtsinfo->array[2] = 1; for (i = 0; i < 3; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Time"); strcpy(dtsinfo->fieldname[1],"Concentration"); strcpy(dtsinfo->fieldname[2],"Species"); dtsinfo->dims[0][0] = 1; dtsinfo->dims[1][0] = 4; dtsinfo->dims[2][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData1); status = HE5_PTdeflevel(PTid, "Sensor", dtsinfo); printf("Status returned by HE5_PTdeflevel() : %d \n", status); for (i = 0; i < 3; i++) { free(dtsinfo->fieldname[i]); dtsinfo->fieldname[i] = NULL; } free(dtsinfo); HE5_PTdetach(PTid); /* Fixed Buoy Point */ /* ---------------- */ PTid = HE5_PTattach(ptfid, "FixedBuoy Point"); dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data struvcture */ /* ---------------------------- */ dtsinfo->nfields = 5; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->rank[3] = 1; dtsinfo->rank[4] = 1; dtsinfo->array[0] = 1; dtsinfo->array[1] = 0; dtsinfo->array[2] = 0; dtsinfo->array[3] = 0; dtsinfo->array[4] = 1; dtsinfo->offset[0] = HOFFSET(InputData2, label); dtsinfo->offset[1] = HOFFSET(InputData2, lon); dtsinfo->offset[2] = HOFFSET(InputData2, lat); dtsinfo->offset[3] = HOFFSET(InputData2, date); dtsinfo->offset[4] = HOFFSET(InputData2, id); dtsinfo->dtype[0] = H5T_NATIVE_CHAR; dtsinfo->dtype[1] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[2] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[3] = H5T_NATIVE_INT; dtsinfo->dtype[4] = H5T_NATIVE_CHAR; for (i = 0; i < 5; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Label"); strcpy(dtsinfo->fieldname[1],"Longitude"); strcpy(dtsinfo->fieldname[2],"Latitude"); strcpy(dtsinfo->fieldname[3],"DeployDate"); strcpy(dtsinfo->fieldname[4],"ID"); dtsinfo->dims[0][0] = 8; dtsinfo->dims[1][0] = 1; dtsinfo->dims[2][0] = 1; dtsinfo->dims[3][0] = 1; dtsinfo->dims[4][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData2); status = HE5_PTdeflevel(PTid, "Desc-Loc", dtsinfo); printf("Status returned by HE5_PTdeflevel() : %d \n", status); for (i = 0; i < 5; i++) free(dtsinfo->fieldname[i]); free(dtsinfo); dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data structure */ /* --------------------------- */ dtsinfo->nfields = 4; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->rank[3] = 1; dtsinfo->array[0] = 0; dtsinfo->array[1] = 0; dtsinfo->array[2] = 0; dtsinfo->array[3] = 1; dtsinfo->offset[0] = HOFFSET(InputData3, time); dtsinfo->offset[1] = HOFFSET(InputData3, rain); dtsinfo->offset[2] = HOFFSET(InputData3, temp); dtsinfo->offset[3] = HOFFSET(InputData3, id); dtsinfo->dtype[0] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[1] = H5T_NATIVE_FLOAT; dtsinfo->dtype[2] = H5T_NATIVE_FLOAT; dtsinfo->dtype[3] = H5T_NATIVE_CHAR; for (i = 0; i < 4; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Time"); strcpy(dtsinfo->fieldname[1],"Rainfall"); strcpy(dtsinfo->fieldname[2],"Temperature"); strcpy(dtsinfo->fieldname[3],"ID"); dtsinfo->dims[0][0] = 1; dtsinfo->dims[1][0] = 1; dtsinfo->dims[2][0] = 1; dtsinfo->dims[3][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData3); status = HE5_PTdeflevel(PTid, "Observations", dtsinfo); printf("Status returned by HE5_PTdeflevel() : %d \n", status); for (i = 0; i < 4; i++) free(dtsinfo->fieldname[i]); free(dtsinfo); status = HE5_PTdeflinkage(PTid, "Desc-Loc", "Observations", "ID"); printf("Status returned by HE5_PTdeflinkage() : %d \n", status); status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d\n", status); /* Floating Buoy Point */ /* ------------------- */ PTid = HE5_PTattach(ptfid, "FloatBuoy Point"); dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data structure */ /* --------------------------- */ dtsinfo->nfields = 4; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->rank[3] = 1; dtsinfo->array[0] = 1; dtsinfo->array[1] = 0; dtsinfo->array[2] = 0; dtsinfo->array[3] = 1; dtsinfo->offset[0] = HOFFSET(InputData4, label); dtsinfo->offset[1] = HOFFSET(InputData4, date); dtsinfo->offset[2] = HOFFSET(InputData4, weight); dtsinfo->offset[3] = HOFFSET(InputData4, id); dtsinfo->dtype[0] = H5T_NATIVE_CHAR; dtsinfo->dtype[1] = H5T_NATIVE_INT; dtsinfo->dtype[2] = H5T_NATIVE_INT; dtsinfo->dtype[3] = H5T_NATIVE_CHAR; for (i = 0; i < 4; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Label"); strcpy(dtsinfo->fieldname[1],"DeployDate"); strcpy(dtsinfo->fieldname[2],"Weight"); strcpy(dtsinfo->fieldname[3],"ID"); dtsinfo->dims[0][0] = 8; dtsinfo->dims[1][0] = 1; dtsinfo->dims[2][0] = 1; dtsinfo->dims[3][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData4); status = HE5_PTdeflevel(PTid, "Description",dtsinfo ); printf("Status returned by HE5_PTdeflevel() : %d \n", status); for (i = 0; i < 4; i++) free(dtsinfo->fieldname[i]); free(dtsinfo); /* Define Data Level */ dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data structure */ /* --------------------------- */ dtsinfo->nfields = 6; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->rank[3] = 1; dtsinfo->rank[4] = 1; dtsinfo->rank[5] = 1; dtsinfo->array[0] = 0; dtsinfo->array[1] = 0; dtsinfo->array[2] = 0; dtsinfo->array[3] = 0; dtsinfo->array[4] = 0; dtsinfo->array[5] = 1; dtsinfo->offset[0] = HOFFSET(InputData5, time); dtsinfo->offset[1] = HOFFSET(InputData5, lon); dtsinfo->offset[2] = HOFFSET(InputData5, lat); dtsinfo->offset[3] = HOFFSET(InputData5, rain); dtsinfo->offset[4] = HOFFSET(InputData5, temp); dtsinfo->offset[5] = HOFFSET(InputData5, id); dtsinfo->dtype[0] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[1] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[2] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[3] = H5T_NATIVE_FLOAT; dtsinfo->dtype[4] = H5T_NATIVE_FLOAT; dtsinfo->dtype[5] = H5T_NATIVE_CHAR; for (i = 0; i < 6; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Time"); strcpy(dtsinfo->fieldname[1],"Longitude"); strcpy(dtsinfo->fieldname[2],"Latitude"); strcpy(dtsinfo->fieldname[3],"Rainfall"); strcpy(dtsinfo->fieldname[4],"Temperature"); strcpy(dtsinfo->fieldname[5],"ID"); dtsinfo->dims[0][0] = 1; dtsinfo->dims[1][0] = 1; dtsinfo->dims[2][0] = 1; dtsinfo->dims[3][0] = 1; dtsinfo->dims[4][0] = 1; dtsinfo->dims[5][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData5); status = HE5_PTdeflevel(PTid, "Measurements", dtsinfo); printf("Status returned by HE5_PTdeflevel() : %d \n", status); for (i = 0; i < 6; i++) free(dtsinfo->fieldname[i]); free(dtsinfo); status = HE5_PTdeflinkage(PTid, "Description", "Measurements", "ID"); printf("Status returned by HE5_PTdeflinkage() : %d \n", status); HE5_PTdetach(PTid); HE5_PTclose(ptfid); } else { printf("File ID returned by HE5_PTopen() : %d \n", ptfid); } return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_definefieldsF_32.f0000755000175000017500000000653712024715435023526 0ustar amckinstryamckinstry program he5_gd_definefldsF_32 implicit none include 'hdfeos5.inc' integer status integer he5_gdopen integer he5_gddeffld integer he5_gdsetfill integer he5_gddeftle integer he5_gddefcomp integer he5_gdattach integer he5_gddetach integer he5_gdclose integer gdfid, gdid1, gdid2 integer tilecode, tilerank integer*4 tiledims(2) integer compparm(1) real*4 fillval1, fillval2 fillval1 = -7.0 fillval2 = -9999.0 c Open HDF-EOS file "grid.he5" c ---------------------------- gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid c Attach to the UTM grid c ---------------------- gdid1 = he5_gdattach(gdfid, "UTMGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid1 c Define Fields c ------------- status = he5_gdsetfill(gdid1,"Pollution", 1 HE5T_NATIVE_FLOAT,fillval1) write(*,*) 'Status returned by he5_gdsetfill(): ',status status = he5_gddeffld(gdid1,"Pollution", 1 "XDim,YDim,Time"," ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status tilerank = 2 tiledims(1) = 60 tiledims(2) = 100 compparm(1) = 6 status = he5_gddeftle(gdid1,HE5_HDFE_TILE,tilerank,tiledims) write(*,*) 'Status returned by he5_gddeftle(): ',status status = he5_gddefcomp(gdid1,HE5_HDFE_COMP_DEFLATE,compparm) write(*,*) 'Status returned by he5_gddefcomp(): ',status status = he5_gddeffld(gdid1, "Vegetation", "XDim,YDim", 1 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status c Attach to the POLAR grid c ------------------------ gdid2 = he5_gdattach(gdfid, "PolarGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid2 c Define Fields c ------------- status = he5_gddeffld(gdid2, "Temperature", "XDim,YDim", 1 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status c Set fill value for "Pressure" field c ----------------------------------- status = he5_gdsetfill(gdid2,"Pressure", 1 HE5T_NATIVE_FLOAT,fillval2) write(*,*) 'Status returned by he5_gdsetfill(): ',status status = he5_gddeffld(gdid2, "Pressure", "XDim,YDim", 1 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status c Define Fields c ------------- status = he5_gddeffld(gdid2, "Soil Dryness", "XDim,YDim", 1 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status status = he5_gddeffld(gdid2, "Spectra", "XDim,YDim,Bands", 1 " ", HE5T_NATIVE_DOUBLE, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status c Detach from the grids c --------------------- status = he5_gddetach(gdid1) write(*,*) 'Status returned by he5_gddetach(): ',status status = he5_gddetach(gdid2) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_defexternalfldF_32.f0000755000175000017500000000344012024715435024121 0ustar amckinstryamckinstryc c In this program we (1) open the "swath.he5" HDF-EOS file, c (2) attach to the "Swath1" swath, and (3) define the c external data field "ExtData". c program he5_sw_defexternalfldF_32 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swdefdfld integer he5_swdetach integer he5_swclose integer he5_swsetxdat integer swfid, swid integer*4 offset(3), size(3) integer FAIL parameter (FAIL=-1) c Open the HDF-EOS file, "swath.he5" using "READ/WRITE" access code c ---------------------------------------------------------------- swfid = he5_swopen("swath.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then offset(1) = 0 size(1) = 40 offset(2) = 40 size(2) = 80 offset(3) = 80 size(3) = 120 status = he5_swsetxdat(swid, "extf1.dat,extf2.dat,extf3.dat", 1offset, size) write(*,*) 'Status returned by he5_swsetxdat(): ',status status = he5_swdefdfld(swid, "ExtData", "ExtDim", 1" ", HE5T_NATIVE_INT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status endif endif c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_setupF_32.f0000755000175000017500000000431612024715435022267 0ustar amckinstryamckinstry program he5_pt_setupF_32 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid1, ptid2, ptid3 integer he5_ptopen integer he5_ptcreate integer he5_ptdetach integer he5_ptclose c --------------------------------------------------------------------------- c c We first open the HDF-EOS point file, "point.he5". Because this file c c does not already exist, we use the "TRUNC" file access code in the c c open statement. The PTopen routine returns the point file id, ptfid, c c which is used to identify the file in subsequent routines in the c c library. c c --------------------------------------------------------------------------- c c Open the HDF point file, "point.he5" c ----------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_TRUNC) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid ptid1 = he5_ptcreate(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptcreate(): ',ptid1 ptid2 = he5_ptcreate(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptcreate(): ',ptid2 ptid3 = he5_ptcreate(ptfid, "FloatBuoy Point") write(*,*) 'Point ID returned by he5_ptcreate(): ',ptid3 c --------------------------------------------------------------------------- c c We now close the point interface with the he5_ptdetach routine. c c This step is necessary to properly store the point information within c c the file. c c --------------------------------------------------------------------------- c status = he5_ptdetach(ptid1) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptdetach(ptid2) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptdetach(ptid3) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_setupF_32.f0000755000175000017500000001242112024715435022232 0ustar amckinstryamckinstryc In this code we open an HDF-EOS file and create UTM, c Polar Stereographic, and Geographic grids in the file c ===================================================== program he5_gd_setupF_32 implicit none include 'hdfeos5.inc' integer status, gdfid, i integer he5_gdcreate, he5_gdopen integer he5_gddefdim, he5_gddefproj integer he5_gddeforigin integer he5_gddetach, he5_gdclose integer gdid, gdid2, gdid3 integer zonecode, spherecode integer*4 xdim, ydim, dim real*8 uplft(2), lowrgt(2) real*8 projparm(16), he5_ehconvang c Open the HDF-EOS grid file, "grid.he5" c -------------------------------------- gdfid = he5_gdopen('grid.he5',HE5F_ACC_TRUNC) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid c Create UTM Grid c --------------- c --------------------------------------------------- c c Region is bounded by 54 E and 60 E longitudes and c c 20 N and 30 N latitudes. UTM Zone: 40. c c Use default spheriod (Clarke 1866: spherecode = 0) c c c c Grid into 120 bins along x-axis and 200 bins c c along y-axis (approx 3' by 3' bins). c c --------------------------------------------------- c zonecode = 40 spherecode = 0 c Upper Left and Lower Right points in meters c ------------------------------------------- uplft(1) = 210584.50041 uplft(2) = 3322395.95445 lowrgt(1) = 813931.10959 lowrgt(2) = 2214162.53278 xdim = 120 ydim = 200 c Define GCTP Projection Parameters c --------------------------------- do i=1,16 projparm(i) = 0.d0 enddo gdid = he5_gdcreate(gdfid, "UTMGrid", 1 xdim, ydim, uplft, lowrgt) write(*,*) 'Grid ID returned by he5_gdcreate(): ',gdid status = he5_gddefproj(gdid,HE5_GCTP_UTM, 1 zonecode,spherecode,projparm) write(*,*) 'Status returned by he5_gddefproj(): ',status c Define "Time" Dimension c ----------------------- dim = 10 status = he5_gddefdim(gdid, "Time", dim) write(*,*) 'Status returned by he5_gddefdim(): ',status c Create polar stereographic grid c ------------------------------- c --------------------------------------------------- c c Northern Hemisphere (True Scale at 90 N, 0 c c Longitude below pole). c c Use International 1967 spheriod (spherecode = 3) c c Grid into 100 bins along x-axis and y-axis. c c --------------------------------------------------- c xdim = 100 ydim = 100 spherecode = 3 c Set Longitude below pole & true scale in DDDMMMSSS.SSS format) c -------------------------------------------------------------- projparm(5) = 0.0 projparm(6) = 90000000.00 c Use default boundaries for Polar Stereographic (hemisphere) c ----------------------------------------------------------- uplft(1) = 0 uplft(2) = 0 lowrgt(1) = 0 lowrgt(2) = 0 zonecode = 0 gdid2 = he5_gdcreate(gdfid,"PolarGrid", 1 xdim,ydim,uplft,lowrgt) write(*,*) 'Grid ID returned by he5_gdcreate(): ',gdid2 status = he5_gddefproj(gdid2,HE5_GCTP_PS,zonecode, 1 spherecode,projparm) write(*,*) 'Status returned by he5_gddefproj(): ',status status = he5_gddeforigin(gdid2, HE5_HDFE_GD_LR) write(*,*) 'Status returned by he5_gddeforigin(): ',status c Define "Bands" Dimension c ------------------------ dim = 3 status = he5_gddefdim(gdid2, "Bands", dim) write(*,*) 'Status returned by he5_gddefdim(): ',status c Create geographic (linear scale) grid c ------------------------------------- c --------------------------------------------------- c c 0-15 degrees longitude, 20-30 degrees latitude c c --------------------------------------------------- c xdim = 60 ydim = 40 uplft(1) = he5_ehconvAng(0.d0, HE5_HDFE_DEG_DMS) uplft(2) = he5_ehconvAng(30.d0, HE5_HDFE_DEG_DMS) lowrgt(1) = he5_ehconvAng(15.d0, HE5_HDFE_DEG_DMS) lowrgt(2) = he5_ehconvAng(20.d0, HE5_HDFE_DEG_DMS) do i=1,16 projparm(i) = 0.d0 enddo zonecode = 0 spherecode = 0 gdid3 =he5_gdcreate(gdfid,"GEOGrid",xdim,ydim,uplft,lowrgt) write(*,*) 'Grid ID returned by he5_gdcreate(): ',gdid3 status=he5_gddefproj(gdid3,HE5_GCTP_GEO,zonecode,spherecode, 1projparm) write(*,*) 'Status returned by he5_gddefproj(): ',status c Detach from the created grids c ----------------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status status = he5_gddetach(gdid2) write(*,*) 'Status returned by he5_gddetach(): ',status status = he5_gddetach(gdid3) write(*,*) 'Status returned by he5_gddetach(): ',status c Finally, close the grid file c ---------------------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_writedata.c0000755000175000017500000002060312024715435022501 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* In this program we (1) open the "Swath.h5" file, (2) attach to the */ /* "Swath1" swath, and (3) write data to the "Longitude", "Latitude", and */ /* "Spectra" fields. Also, set up the global, group, and local attributes */ /* ----------------------------------------------------------------------- */ int main() { herr_t status = FAIL; int i, j, k; int track, xtrack; int attr1[4] = {1, 2, 3, 4}; /* global attribute */ int attr2[4] = {10, 20, 30, 40}; /* group attribute */ int attr3[4] = {100, 200, 300, 400}; /* local attribute */ hid_t swfid = FAIL; hid_t SWid = FAIL; char attr4[20]; /* Global 'char' attribute */ char attr8[20]; /* Global 'char' attribute */ char attr9[20]; /* Global 'char' attribute */ long attr5[4] = {1111111L,2222222L,3333333L,4444444L};/* Global 'long' attribute */ double attr6[4] = {1.111111,2.222222,3.333333,4.444444};/* Global 'double' attribute */ float attr7[4] = {1.111111,2.222222,3.333333,4.444444};/* Local 'float' attribute */ hssize_t start[3]; hsize_t count[3]; size_t datasize; float lng[20][10], latcnt; float lat[20][10], loncnt; double plane[15][40][20], tme[20]; hvl_t buffer[4];/* Data buffer for the profile */ const char *charname[10] = { "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "BBBBBBBBBBBBBBBB", "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", "DDDDDDDDDDDDDDDDDDDD", "EEEEEEEE", "FFFFFFFFFFFFF", "GGGGGGGGGGGGG", "HHHHHHHHHH", "IIIIIII", "JJJJJJJJJJJJJ" }; /* Populate lon/lat data arrays */ /* ---------------------------- */ latcnt = 1.; loncnt = 1.; track = 0 ; xtrack = 0 ; while(track < 20) { while(xtrack < 10) { lat[track][xtrack] = latcnt; lng[track][xtrack] = loncnt; loncnt = loncnt + 1.; xtrack++; } latcnt = latcnt + 1.; loncnt = 1.; track++; xtrack = 0; } /* Popolate spectra data array. Value = 100*(track index)+(band index) */ /* ------------------------------------------------------------------- */ for (i = 0; i < 15; i++) { for (j = 0; j < 40; j++) for (k = 0; k < 20; k++) plane[i][j][k] = (double)(j*100 + i); } /* Allocate memory for and populate data buffer */ /* -------------------------------------------- */ datasize = 0; for (i = 0; i < 4; i++) { buffer[i].p = (hvl_t *)calloc( 25 *(i+1), sizeof(unsigned int)); buffer[i].len = 25 * (i+1); /* calculate the data buffer size (bytes) */ datasize += buffer[i].len * sizeof(unsigned int); for ( j = 0; j < 25 * (i+1); j++) ((unsigned int *)buffer[i].p)[j] = (i+1)*1000 + j; } /* Open the HDF swath file, "Swath.h5" */ /* ----------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); if (swfid != FAIL) { /* Attach the "Swath1" swath */ /* ------------------------- */ SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { start[0] = 0; start[1] = 0; count[0] = 20; count[1] = 10; /* Write longitute field */ /* ---------------------- */ status = HE5_SWwritefield(SWid, "Longitude", start, NULL, count, lng); printf("status returned by HE5_SWwritefield(\"Longitude\"): %d\n", status); /* Write latitude field */ /* --------------------- */ status = HE5_SWwritefield(SWid, "Latitude", start, NULL, count, lat); printf("status returned by HE5_SWwritefield(\"Latitude\"): %d\n", status); /* Write Time Field */ /* ---------------- */ for (i = 0; i < 20; i++) tme[i] = 34574087.3 + 84893.2*i; start[0] = 0; count[0] = 20; status = HE5_SWwritefield(SWid, "Time", start, NULL, count, tme); printf("status returned by HE5_SWwritefield(\"Time\"): %d\n", status); start[0] = 0; count[0] = 10; status = HE5_SWwritefield(SWid, "Test_string", start, NULL, count, charname); printf("status returned by HE5_SWwritefield(\"Test_string\"): %d\n", status); /* Write Spectra Field */ /* ------------------- */ start[0] = 0; count[0] = 15; start[1] = 0; count[1] = 40; start[2] = 0; count[2] = 20; status = HE5_SWwritefield(SWid, "Spectra", start, NULL, count, plane); printf("status returned by HE5_SWwritefield(\"Spectra\"): %d\n", status); /* Write data to the profile */ /* ------------------------- */ start[0] = 0; count[0] = 4; status = HE5_PRwrite(SWid, "Profile-2000", start, NULL, count, datasize, buffer); printf("Status returned by HE5_PRwrite(\"Profile-2000\"): %d \n", status); /* Write Global 'int' Attribute */ /* ---------------------------- */ count[0] = 4; status = HE5_SWwriteattr(SWid, "GlobalAttribute", H5T_NATIVE_INT, count, attr1); printf("status returned by HE5_SWwriteattr(\"GlobalAttribute\"): %d\n", status); status = HE5_EHwriteglbattr(swfid, "GlobalAttribute_1", H5T_NATIVE_FLOAT, count, attr7); printf("status returned by HE5_EHwriteglbattr(\"GlobalAttribute_1\"): %d\n", status); strcpy(attr8,"AAAAAA"); count[0] = 6; status = HE5_EHwriteglbattr(swfid, "GlobalAttribute_2222", H5T_NATIVE_CHAR, count, attr8); printf("status returned by HE5_EHwriteglbattr(\"GlobalAttribute_2222\"): %d\n", status); /* Write Global 'char' Attribute */ /* ----------------------------- */ strcpy(attr4,"ABCDEFGH"); count[0] = 8; status = HE5_SWwriteattr(SWid, "GLOBAL_CHAR_ATTR", H5T_NATIVE_CHAR, count, attr4); printf("status returned by HE5_SWwriteattr(\"GLOBAL_CHAR_ATTR\"): %d\n", status); strcpy(attr9,"abc"); count[0] = 3; status = HE5_SWwriteattr(SWid, "GLOBAL_CHAR_ATTR_11", H5T_NATIVE_CHAR, count, attr9); printf("status returned by HE5_SWwriteattr(\"GLOBAL_CHAR_ATTR_11\"): %d\n", status); /* Write Global 'long' Attribute */ /* ----------------------------- */ count[0] = 4; status = HE5_SWwriteattr(SWid, "GLOBAL_LONG_ATTR", H5T_NATIVE_LONG, count, attr5); printf("status returned by HE5_SWwriteattr(\"GLOBAL_LONG_ATTR\"): %d\n", status); /* Write Global 'double' Attribute */ /* ------------------------------- */ count[0] = 4; status = HE5_SWwriteattr(SWid, "GLOBAL_DOUBLE_ATTR", H5T_NATIVE_DOUBLE, count, attr6); printf("status returned by HE5_SWwriteattr(\"GLOBAL_DOUBLE_ATTR\"): %d\n", status); status = HE5_EHwriteglbattr(swfid, "GLOBAL_DOUBLE_ATTR_1", H5T_NATIVE_DOUBLE, count, attr6); printf("status returned by HE5_EHwriteglbattr(\"GLOBAL_DOUBLE_ATTR_1\"): %d\n", status); /* Write Group Attribute */ /* --------------------- */ status = HE5_SWwritegrpattr(SWid, "GroupAttribute", H5T_NATIVE_INT, count, attr2); printf("status returned by HE5_SWwritegrpattr(\"GroupAttribute\"): %d\n", status); /* Write Local Attribute */ /* --------------------- */ strcpy(attr4,"ababababababababab"); count[0] = 18; status = HE5_SWwritelocattr(SWid, "Time", "LOCAL_CHAR_ATTR", H5T_NATIVE_CHAR, count, attr4); printf("status returned by HE5_SWwritelocattr(\"LOCAL_CHAR_ATTR\"): %d\n", status); count[0] = 4; status = HE5_SWwritelocattr(SWid, "Density", "LocalAttribute_1", H5T_NATIVE_INT, count, attr3); printf("status returned by HE5_SWwritelocattr(\"LocalAttribute_1\"):%d\n", status); /* Write Local Attribute */ /* --------------------- */ status = HE5_SWwritelocattr(SWid, "Longitude", "LocalAttribute_2", H5T_NATIVE_FLOAT, count, attr7); printf("status returned by HE5_SWwritelocattr(\"LocalAttribute_2\"):%d\n", status); } } status = HE5_SWdetach(SWid); status = HE5_SWclose(swfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_definefields_szipF_32.f0000644000175000017500000001162012024715435024614 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" HDF-EOS file, (2) c attach to the "Swath1" swath, and (3) define the swath fields c ============================================================= program he5_sw_definefieldsF_32 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swsetfill integer he5_swdefgfld integer he5_swdefdfld integer he5_prdefine integer he5_swdefchunk integer he5_swdefcomp integer he5_swdetach integer he5_swclose integer he5_szip_can_encode integer swfid, swid integer chunkrank integer canenc integer*4 chunkdims(3) integer compparm(1) integer FAIL parameter (FAIL=-1) c Open the HDF-EOS file, "swath.he5" using "READ/WRITE" access code c ----------------------------------------------------------------- swfid = he5_swopen("swath.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Define Geolocation and Data fields c ---------------------------------- c --------------------------------------------------------------- c We define six fields. The first three, "Time", "Longitude" c and "Latitude" are geolocation fields and thus we use the c geolocation dimensions "GeoTrack" and "GeoXtrack" in the field c definitions. We also must specify the data type using the c standard HDF data type codes. In this example the geolocation c are 4-byte (32 bit) floating point numbers. c c The next three fields are data fields. Note that either c geolocation or data dimensions can be used. c --------------------------------------------------------------- status = he5_swdefgfld(swid, "Time", "GeoTrack", 1 " ",HE5T_NATIVE_DOUBLE, 0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefgfld(swid, "Longitude", 1 "GeoXtrack,GeoTrack", 2 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefgfld(swid, "Latitude", 1 "GeoXtrack,GeoTrack", 2 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefdfld(swid, "Density", 1 "GeoTrack"," ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid, "Temperature", 1 "GeoXtrack,GeoTrack", 2 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid, "Pressure", 1 "Res2xtr,Res2tr", 2 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status chunkrank = 3 chunkdims(1) = 20 chunkdims(2) = 40 chunkdims(3) = 15 compparm(1) = 6 status = he5_swdefchunk(swid,chunkrank,chunkdims) write(*,*) 'Status returned by he5_swdefchunk(): ',status canenc = he5_szip_can_encode() if (canenc .ne. 0) then status = he5_swdefcomp(swid, 1 HE5_HDFE_COMP_SHUF_SZIP_K13orEC,compparm) write(*,*) 'Status returned by he5_swdefcomp(): ', 1 status else write(*,*) 'SZIP encoder is not available.' write(*,*) 'The data compression test is skipped.' endif status = he5_swdefdfld(swid, "Spectra", 1 "Res2xtr,Res2tr,Bands", 2 " ", HE5T_NATIVE_DOUBLE, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status c Define Profile Field c ----------------------- status = he5_prdefine(swid, "Profile-2000", 1 "ProfDim", " ", HE5T_NATIVE_INT) write(*,*) 'Status returned by he5_prdefine(): ',status c Define Appendable Field c ----------------------- c status = he5_swdefdfld(swid, "Count", "GeoTrack", c 1"Unlim", HE5T_NATIVE_INT, 0) endif endif c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_defunlimfld.c0000755000175000017500000000570712024715435022757 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will (1) open the "Grid.h5" HDF-EOS file, (2) attach to * the "Grid1" grid, and (3) define the grid appendable field. */ int main() { herr_t status = FAIL; int tilerank, compcode = 4; int compparm[5] = {0, 0, 0, 0, 0}; hid_t gdfid = FAIL; hid_t GDid1 = FAIL; hid_t GDid2 = FAIL; hsize_t tiledims[8]; float fillval1 = -7., fillval2 = -9999.; /* * We first open the HDF-EOS grid file, "Grid.h5". Because this file * already exist and we wish to write to it, we use the H5F_ACC_RDWR access * code in the open statement. The HE5_GDopen routine returns the grid file * id, gdfid, which is used to identify the file in subsequent routines. */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); /* * If the grid file cannot be found, HE5_GDopen will return -1 for the file * handle (gdfid). We there check that this is not the case before * proceeding with the other routines. * * The HE5_GDattach routine returns the handle to the existing grid "Grid1", * GDid. If the grid is not found, HE5_GDattach returns -1 for the handle. */ if (gdfid != FAIL) { GDid1 = HE5_GDattach(gdfid, "UTMGrid"); printf("Grid ID returned by HE5_GDattach(,\"UTMGrid\"): %d\n", GDid1); /* Define appendable field "Vegetation" */ tilerank = 2; tiledims[0] = 100; tiledims[1] = 60; compparm[0] = 6; status = HE5_GDdeftile(GDid1,HE5_HDFE_TILE,tilerank,tiledims); printf("Status returned by HE5_GDdeftile(): %d\n", status); status = HE5_GDdefcomp(GDid1,compcode, compparm); printf("Status returned by HE5_GDdefcomp(): %d\n", status); status = HE5_GDdeffield(GDid1, "Vegetation", "YDim,XDim","Unlim,Unlim",H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_GDdeffield(\"Vegetation\"): %d\n", status); GDid2 = HE5_GDattach(gdfid, "PolarGrid"); printf("Grid ID returned by HE5_GDattach(\"PolarGrid\"): %d\n", GDid2); status = HE5_GDdeffield(GDid2, "Temperature", "YDim,XDim", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_GDdeffield(\"Temperature\"): %d\n", status); status = HE5_GDdeffield(GDid2, "Pressure", "YDim,XDim", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_GDdeffield(\"Pressure\"): %d\n", status); status = HE5_GDsetfillvalue(GDid2, "Pressure", H5T_NATIVE_FLOAT, &fillval2); printf("Status returned by HE5_GDsetfillvalue(\"Pressure\'): %d\n", status); status = HE5_GDdetach(GDid1); status = HE5_GDdetach(GDid2); } status = HE5_GDclose(gdfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/fixedBuoy1.txt0000755000175000017500000000125012024715435021654 0ustar amckinstryamckinstry 83422000.0 1.1 21.63 P 83555918.7 0.7 24.21 A 83726878.2 2.7 23.83 P 83842994.7 4.3 22.63 P 84013712.3 0.7 20.35 A 84063571.3 2.8 20.84 P 84245234.1 1.7 24.52 I 84251741.0 1.4 20.98 I 84412971.8 3.6 20.41 A 84419483.0 1.8 22.01 P 84452408.0 3.4 23.20 P 84623981.3 4.0 23.91 I 84655020.8 3.2 21.79 A 84736992.5 4.6 23.61 P 84835587.2 3.6 20.38 A 84915081.1 5.1 20.10 P 84970587.0 1.1 24.63 P 85058206.4 1.3 22.98 I 85076367.6 2.7 22.62 P 85111729.5 1.0 22.01 P hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_setupF_64.f0000755000175000017500000001244412024715435022244 0ustar amckinstryamckinstryc In this code we open an HDF-EOS file and create UTM, Polar c Stereographic, and Geographic grids within the file c ========================================================= program he5_gd_setupF_64 implicit none include 'hdfeos5.inc' integer status, gdfid, i integer he5_gdcreate, he5_gdopen integer he5_gddefdim, he5_gddefproj integer he5_gddeforigin integer he5_gddetach, he5_gdclose integer gdid, gdid2, gdid3 integer zonecode, spherecode integer*8 xdim, ydim, dim real*8 uplft(2), lowrgt(2) real*8 projparm(16), he5_ehconvang c Open the HDF-EOS grid file, "grid.he5" c ------------------------------------- gdfid = he5_gdopen('grid.he5',HE5F_ACC_TRUNC) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid c Create UTM Grid c --------------- c --------------------------------------------------- c c Region is bounded by 54 E and 60 E longitudes and c c 20 N and 30 N latitudes. UTM Zone: 40. c c Use default spheriod (Clarke 1866: spherecode = 0) c c c c Grid into 120 bins along x-axis and 200 bins c c along y-axis (approx 3' by 3' bins). c c --------------------------------------------------- c zonecode = 40 spherecode = 0 c Upper Left and Lower Right points in meters c ------------------------------------------- uplft(1) = 210584.50041 uplft(2) = 3322395.95445 lowrgt(1) = 813931.10959 lowrgt(2) = 2214162.53278 xdim = 120 ydim = 200 c Define GCTP Projection Parameters c --------------------------------- do i=1,16 projparm(i) = 0.d0 enddo gdid = he5_gdcreate(gdfid, "UTMGrid", 1 xdim, ydim, uplft, lowrgt) write(*,*) 'Grid ID returned by he5_gdcreate(): ',gdid status = he5_gddefproj(gdid,HE5_GCTP_UTM, 1 zonecode,spherecode,projparm) write(*,*) 'Status returned by he5_gddefproj(): ',status c Define "Time" Dimension c ----------------------- dim = 10 status = he5_gddefdim(gdid, "Time", dim) write(*,*) 'Status returned by he5_gddefdim(): ',status c Create polar stereographic grid c ------------------------------- c --------------------------------------------------- c c Northern Hemisphere (True Scale at 90 N, 0 c c Longitude below pole). c c Use International 1967 spheriod (spherecode = 3) c c Grid into 100 bins along x-axis and y-axis. c c --------------------------------------------------- c xdim = 100 ydim = 100 spherecode = 3 c Set Longitude below pole & true scale in DDDMMMSSS.SSS format) c -------------------------------------------------------------- projparm(5) = 0.0 projparm(6) = 90000000.00 c Use default boundaries for Polar Stereographic (hemisphere) c ----------------------------------------------------------- uplft(1) = 0 uplft(2) = 0 lowrgt(1) = 0 lowrgt(2) = 0 zonecode = 0 gdid2 = he5_gdcreate(gdfid,"PolarGrid", 1 xdim,ydim,uplft,lowrgt) write(*,*) 'Grid ID returned by he5_gdcreate(): ',gdid2 status = he5_gddefproj(gdid2,HE5_GCTP_PS, 1 zonecode,spherecode,projparm) write(*,*) 'Status returned by he5_gddefproj(): ',status status = he5_gddeforigin(gdid2, HE5_HDFE_GD_LR) write(*,*) 'Status returned by he5_gddeforigin(): ',status c Define "Bands" Dimension c ------------------------ dim = 3 status = he5_gddefdim(gdid2, "Bands", dim) write(*,*) 'Status returned by he5_gddefdim(): ',status c Create geographic (linear scale) grid c ------------------------------------- c --------------------------------------------------- c c 0-15 degrees longitude, 20-30 degrees latitude c c --------------------------------------------------- c xdim = 60 ydim = 40 uplft(1) = he5_ehconvAng(0.d0, HE5_HDFE_DEG_DMS) uplft(2) = he5_ehconvAng(30.d0,HE5_HDFE_DEG_DMS) lowrgt(1) = he5_ehconvAng(15.d0,HE5_HDFE_DEG_DMS) lowrgt(2) = he5_ehconvAng(20.d0,HE5_HDFE_DEG_DMS) do i=1,16 projparm(i) = 0.d0 enddo zonecode = 0 spherecode = 0 gdid3 =he5_gdcreate(gdfid,"GEOGrid", 1 xdim,ydim,uplft,lowrgt) write(*,*) 'Grid ID returned by he5_gdcreate(): ',gdid3 status=he5_gddefproj(gdid3,HE5_GCTP_GEO, 1 zonecode,spherecode,projparm) write(*,*) 'Status returned by he5_gddefproj(): ',status c Detach from the created grids c ----------------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status status = he5_gddetach(gdid2) write(*,*) 'Status returned by he5_gddetach(): ',status status = he5_gddetach(gdid3) write(*,*) 'Status returned by he5_gddetach(): ',status c Finally, close the grid file c ---------------------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_writedataF_64.f0000755000175000017500000000434512024715435023111 0ustar amckinstryamckinstry! In this program we (1) open the "za.he5" file, (2) attach to ! the "ZA1" za, and (3) write data to the "Spectra" field program he5_za_writedataF_64 implicit none include 'hdfeos5.inc' integer status integer he5_zaopen integer he5_zaattach integer he5_zawrite integer he5_zawrattr integer he5_zadetach integer he5_zaclose integer zafid, zaid integer i, j , k integer*4 attr(4) integer*8 start(3) integer*8 stride(3) integer*8 count(3) real*8 plane(800) integer FAIL parameter (FAIL=-1) ! Open HDF-EOS file, "za.he5" ! --------------------------- zafid = he5_zaopen("za.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Write Spectra one plane at a time ! Value is 100 * track index + band index (0-based) ! ------------------------------------------------- start(1) = 0 start(2) = 0 count(1) = 20 count(2) = 40 count(3) = 1 stride(1) = 1 stride(2) = 1 stride(3) = 1 do i=1,15 start(3) = i - 1 do j=1,40 do k=1,20 plane((j-1)*20+k) = (j-1)*100 + i-1 enddo enddo status = he5_zawrite(zaid,"Spectra",start, 1 stride,count,plane) enddo write(*,*) 'Status returned by he5_zawrite(): ',status ! Write User defined Attribute ! ---------------------------- attr(1) = 3 attr(2) = 5 attr(3) = 7 attr(4) = 11 count(1) = 4 status = he5_zawrattr(zaid,"TestAttr",HE5T_NATIVE_INT, 1 count,attr) endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/floatBuoy1.txt0000755000175000017500000000273412024715435021672 0ustar amckinstryamckinstry 34532000.0 -56.795451 46.929101 3.5 22.74 A 34655930.8 -51.144523 39.393151 0.3 22.25 A 34761777.4 73.005232 4.068124 3.9 22.60 I 34924857.4 -51.289537 47.272357 0.6 24.23 A 35010197.1 -137.896588 -10.438813 3.1 23.24 P 35113965.3 70.943919 4.989471 3.7 21.05 I 35146430.0 -141.334164 -8.035026 0.9 23.16 P 35180802.9 -51.291848 47.940175 4.6 21.68 A 35286334.7 -141.921518 -9.133087 1.1 20.25 P 35359789.3 -139.960931 -11.797505 1.8 24.37 P 35510873.5 -56.995840 44.141150 3.7 23.12 A 35583198.0 73.083084 10.349487 3.0 24.63 I 35741969.4 -138.607937 -10.352329 4.3 24.05 P 35811504.6 -52.535794 38.967934 1.1 23.50 A 35890062.6 71.995167 6.438556 1.5 23.14 I 36015258.2 -51.100562 39.280490 1.9 20.31 A 36176650.2 -141.603094 -10.410025 2.9 21.33 P 36292709.9 -53.052534 44.477106 2.1 23.65 A 36307577.3 -53.937608 38.710016 5.0 20.06 A 36384294.9 -55.381183 41.246119 4.0 23.34 A 36576747.4 -141.588561 -9.158308 0.5 20.79 P 36725342.2 -51.199441 38.061798 2.4 20.01 A 36758333.4 -138.998487 -8.706307 0.3 22.07 P 36841499.9 72.256089 8.036737 3.9 24.41 I 37021357.5 -139.961167 -11.094212 0.6 23.02 P hdf-eos5-5.1.14+dfsg.1/samples/external_1.data0000755000175000017500000000062012024715435021771 0ustar amckinstryamckinstry''''''''''      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLhdf-eos5-5.1.14+dfsg.1/samples/he5_za_wrexternaldata.c0000755000175000017500000000551312024715435023526 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define DIM 100 #define DIMTOT 60 int main() { FILE *in_1, *in_2, *in_3; herr_t status = FAIL; int i; int data_out_1[DIM]; int data_out_2[DIM]; int data_out_3[DIM]; int data[DIMTOT]; hid_t zafid = FAIL; hid_t ZAid = FAIL; hssize_t start[2]; hsize_t count[2]; /* Create new data buffer */ /* ---------------------- */ for (i = 0; i < DIMTOT; i++) data[ i ] = 9999; /* Open the HDF-EOS za file, "ZA.he5" */ /* --------------------------------- */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDWR); if (zafid != FAIL) { /* Attach the "ZA1" za */ /* ------------------- */ ZAid = HE5_ZAattach(zafid, "ZA1"); if (ZAid != FAIL) { /* Write new data to the external files */ /* ------------------------------------ */ start[0] = 0; count[0] = DIMTOT; status = HE5_ZAwrite(ZAid, "ExtData", start, NULL, count, data); printf("Status returned by HE5_ZAwrite() : %d \n", status); /* Open the external data files */ /* ---------------------------- */ in_1 = fopen("external_1.data", "r"); in_2 = fopen("external_2.data", "r"); in_3 = fopen("external_3.data", "r"); /* Read data from external data files */ /* ---------------------------------- */ fread(data_out_1, sizeof(int), DIM, in_1); fread(data_out_2, sizeof(int), DIM, in_2); fread(data_out_3, sizeof(int), DIM, in_3); /* Close the external data files */ /* ----------------------------- */ fclose(in_1); fclose(in_2); fclose(in_3); /* Check the contents of external files */ /* ------------------------------------ */ printf(" \n"); printf("Reading data from 1st file: \n"); printf(" \n"); for (i = 0; i < DIM; i++) printf("%d ", data_out_1[i]); printf(" \n"); printf(" \n"); printf("Reading data from 2d file: \n"); printf(" \n"); for (i = 0; i < DIM; i++) printf("%d ", data_out_2[i]); printf(" \n"); printf(" \n"); printf("Reading data from 3d file: \n"); printf(" \n"); for (i = 0; i < DIM; i++) printf("%d ", data_out_3[i]); printf(" \n"); printf(" \n"); } } /* Detach from the za */ /* ------------------ */ status = HE5_ZAdetach(ZAid); printf("Status returned by HE5_ZAdetach() : %d \n", status); /* Close the file */ /* -------------- */ status = HE5_ZAclose(zafid); printf("Status returned by HE5_ZAclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_writedataF_64.f0000755000175000017500000001232412024715435023124 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" file, (2) attach to c the "Swath1" swath, and (3) write data to the "Longitude", c "Longitude" and "Spectra" fields program he5_sw_writedataF_64 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swwrfld integer he5_swwrattr integer he5_swwrlattr integer he5_swwrgattr integer he5_ehwrglatt integer he5_swdetach integer he5_swclose integer he5_prwrite integer swfid, SWid integer buffer(250) integer counter integer i, j , k integer itrack integer*4 attr(4) integer*8 track integer*8 start(3) integer*8 stride(3) integer*8 count(3) integer*8 len(4) integer*8 datasize character*10 attr4 character*100 attr5 character*4 charfield(10) real lng(10) real lat(10) real*8 plane(800) real*8 tme(73) integer FAIL parameter (FAIL=-1) c Set longitude values along the cross track c ------------------------------------------ do i=1,10 lng(i) = i-1.0 enddo data charfield/'aaaa','b b','cc ','dddd','ee e','ffff', 1 'gggg','hh ','i ','jjjj'/ c Open HDF-EOS file, "swath.he5" c ------------------------------ swfid = he5_swopen("swath.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then SWid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Write data starting at the beginning of each cross track c -------------------------------------------------------- start(1) = 0 stride(1) = 1 stride(2) = 1 count(1) = 10 count(2) = 1 c Loop through all the tracks, incrementing the track starting c position by one each time c ------------------------------------------------------------ do track = 1,20 start(2) = track - 1 status = he5_swwrfld(swid,"Longitude",start, 1 stride,count,lng) do itrack = 1,10 lat(itrack) = track enddo status = he5_swwrfld(swid,"Latitude",start, 1 stride,count,lat) enddo do i = 1,73 tme(i) = 345740878.3 + 848936.2*(i-1) enddo start(1) = 0 stride(1) = 1 count(1) = 73 status = he5_swwrfld(swid, "Time", start, stride, 1 count, tme) start(1) = 0 stride(1) = 1 count(1) = 10 status = he5_swwrfld(swid, "test_string", start, 1 stride, count, charfield) c Write Spectra one plane at a time c Value is 100 * track index + band index (0-based) c ------------------------------------------------- start(1) = 0 start(2) = 0 count(1) = 20 count(2) = 40 count(3) = 1 stride(3) = 1 do i=1,15 start(3) = i - 1 do j=1,40 do k=1,20 plane((j-1)*20+k) = (j-1)*100 + i-1 enddo enddo status = he5_swwrfld(swid,"Spectra",start, 1 stride,count,plane) enddo c Populate data buffer and write data to the Profile Field c -------------------------------------------------------- datasize = 0 counter = 0 do i=1,4 len(i) = i*25 datasize = datasize + len(i) do j=1,(25*i) counter = counter + 1 buffer(counter) = (i)*1000 + j - 1 enddo enddo start(1) = 0 count(1) = 4 stride(1) = 1 status = he5_prwrite(swid,"Profile-2000",start,stride,count, 1datasize,len,buffer) write(*,*) 'Status returned by he5_prwrite(): ',status c Write User defined Attribute c ---------------------------- attr(1) = 3 attr(2) = 5 attr(3) = 7 attr(4) = 11 count(1) = 4 status = he5_swwrattr(swid,"TestAttr",HE5T_NATIVE_INT, 1 count,attr) c Write Global Attribute c ---------------------- attr4 = "ABCDEFGH" count(1) = 8 status = he5_swwrattr(swid,"GLOBAL_CHAR_ATTR",HE5T_NATIVE_CHAR, 1 count,attr4) attr4 = "111" count(1) = 3 status = he5_swwrgattr(swid,"GLOBAL_CHAR_ATTR_1",HE5T_NATIVE_CHAR, 1 count,attr4) attr4 = "222222" count(1) = 6 status = he5_ehwrglatt(swfid,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR, 1 count,attr4) c Write Local Attribute c --------------------- attr5 = "abababababababababab" count(1) = 20 status = he5_swwrlattr(swid,"Density","LocalAttribute_0", 1 HE5T_NATIVE_CHAR,count,attr5) endif endif c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_setup.c0000755000175000017500000000266012024715435021652 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ /* File name: he5_pt_setup.c */ /* -------------------------- */ #include int main() { herr_t status = FAIL; hid_t ptfid = FAIL; hid_t PTid1 = FAIL; hid_t PTid2 = FAIL; hid_t PTid3 = FAIL; /* * We first open the HDF-EOS point file, "Point.h5". Because this file * does not already exist, we use the H5F_ACC_TRUNC access code in the * open statement. The PTopen routine returns the point file id, ptfid, * which is used to identify the file in subsequent routines in the * library. */ ptfid = HE5_PTopen("Point.h5", H5F_ACC_TRUNC); PTid1 = HE5_PTcreate(ptfid, "Simple Point"); PTid2 = HE5_PTcreate(ptfid, "FixedBuoy Point"); PTid3 = HE5_PTcreate(ptfid, "FloatBuoy Point"); /* * We now close the point interface with the HE5_PTdetach routine. This step * is necessary to properly store the point information within the file. */ status = HE5_PTdetach(PTid1); status = HE5_PTdetach(PTid2); status = HE5_PTdetach(PTid3); /* * Finally, we close the swath file using the PTclose routine. This will * release the point file handles established by PTopen. */ status = HE5_PTclose(ptfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/external_1g.data0000755000175000017500000000062012024715435022140 0ustar amckinstryamckinstry''''''''''      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLhdf-eos5-5.1.14+dfsg.1/samples/he5_za_defexternalfldF_32.f0000755000175000017500000000337712024715435024113 0ustar amckinstryamckinstry! ! In this program we (1) open the "za.he5" HDF-EOS file, ! (2) attach to the "ZA1" za, and (3) define the ! external data field "ExtData". ! program he5_za_defexternalfldF_32 implicit none include 'hdfeos5.inc' integer status integer he5_zaopen integer he5_zaattach integer he5_zadefine integer he5_zadetach integer he5_zaclose integer he5_zasetxdat integer zafid, zaid integer*4 offset(3), size(3) integer FAIL parameter (FAIL=-1) ! Open the HDF-EOS file, "za.he5" using "READ/WRITE" access code ! -------------------------------------------------------------- zafid = he5_zaopen("za.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then offset(1) = 0 size(1) = 40 offset(2) = 40 size(2) = 80 offset(3) = 80 size(3) = 120 status = he5_zasetxdat(zaid, "extf1.dat,extf2.dat,extf3.dat", 1offset, size) write(*,*) 'Status returned by he5_zasetxdat(): ',status status = he5_zadefine(zaid, "ExtData", "ExtDim", 1" ", HE5T_NATIVE_INT) write(*,*) 'Status returned by he5_zadefine(): ',status endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_subsetF_64.f0000755000175000017500000000472712024715435022416 0ustar amckinstryamckinstryc In this example we will (1) open the "grid.he5" HDF-EOS file, (2) attach to c the "PolarGrid" grid, and (3) subset data from the "Temperature" field. program he5_gd_subsetF_64 implicit none include 'hdfeos5.inc' integer status integer gdfid integer gdid integer rgid integer he5_gdopen integer he5_gdattach integer he5_gdreginfo integer he5_gddefboxreg integer he5_gdextreg integer he5_gddetach integer he5_gdclose integer rk,nt integer*8 dims(8) integer*8 size real*8 cornerlon(2) real*8 cornerlat(2) real*8 upleft(2) real*8 lowright(2) real*4 datbuf(100*100) integer FAIL parameter (FAIL=-1) c Open the HDF-EOS grid file, "grid.he5" c --------------------------------------- gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid if (gdfid .NE. FAIL) then c Attach to the POLAR grid c ------------------------ gdid = he5_gdattach(gdfid,"PolarGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid if (gdid .NE. FAIL) then cornerlon(1) = 0. cornerlat(1) = 90. cornerlon(2) = 90. cornerlat(2) = 0. c Define box region c ----------------- rgid = he5_gddefboxreg(gdid, 1 cornerlon,cornerlat) write(*,*) 'Region ID returned by he5_gddefboxreg(): ', 1 rgid c Get region information c ---------------------- status = he5_gdreginfo(gdid,rgid,"Temperature", 1 nt,rk, dims, size, upleft, lowright) write(*,*) dims(1), dims(2), rk, nt c Extract region c -------------- status = he5_gdextreg(gdid,rgid,"Temperature", 1 datbuf) write(*,*) 'Status returned by he5_gdextreg(): ',status endif c Detach from the grid c -------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status endif stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_readdataF_32.f0000755000175000017500000001153712024715435022677 0ustar amckinstryamckinstry program he5_pt_readdataF_32 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptreadlevel integer he5_ptlevelinfo integer he5_ptnrecs integer he5_ptnlevels integer he5_ptnfields integer he5_ptc2fort integer he5_ptinqattrs integer he5_ptreadattr integer he5_ptdetach integer he5_ptclose integer i integer nflds integer level integer arr_rank integer datatype integer dtype(3) integer attr integer nrecs integer nlevels integer*4 dimens(2) integer*4 datasize integer*4 rank_tt(3) integer*4 offset_tt(3) integer*4 dtype_tt(3) integer*4 dim_sizes_tt(3) integer*4 nattr integer*4 strbufsize character*80 levelname character*80 fieldname(3) character*80 attrname character*240 fieldlist character*240 attrlist character*8 spec(15) real*4 con(4,15) real*4 outcon(15,4) real*8 time(15) c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = he5_ptattach(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Get level information c --------------------- level = 0 status = he5_ptlevelinfo(ptid, level, levelname, rank_tt, 1fieldlist, dim_sizes_tt, datasize, offset_tt, dtype_tt) write(*,*) 'Status returned by he5_ptlevelinfo(): ',status c Get the number of records in level c ---------------------------------- level = 0 nrecs = he5_ptnrecs(ptid, level) print *,'Number of records in level: ', nrecs nlevels = he5_ptnlevels(ptid) print *,'Number of levels in Point data set: ', nlevels nflds = he5_ptnfields(ptid, level, fieldlist, strbufsize) print *,'Number of fields in level: ', nflds c Populate input information structure c ------------------------------------ dtype(1) = HE5T_NATIVE_DOUBLE dtype(2) = HE5T_NATIVE_FLOAT dtype(3) = HE5T_NATIVE_CHAR c Read the level data and print out c --------------------------------- fieldname(1) = 'Time' status = he5_ptreadlevel(ptid, 0, fieldname(1), 1dtype(1), time) write(*,*) 'Status returned by he5_ptreadlevel(): ',status write(*,*) 'time array: ' do i = 1,nrecs print *,time(i) end do fieldname(2) = 'Concentration' status = he5_ptreadlevel(ptid, 0, fieldname(2), 1dtype(2), con) write(*,*) 'Status returned by he5_ptreadlevel(): ',status c Convert 'C' array to Fortran order c ---------------------------------- dimens(1) = 15 dimens(2) = 4 arr_rank = 2 datatype = HE5T_NATIVE_FLOAT status = he5_ptc2fort(dimens, arr_rank, datatype, con, 1outcon) write(*,*) 'Status returned by he5_ptc2fort(): ',status write(*,*) 'outcon array: ' do i = 1,nrecs print *,outcon(i,1),outcon(i,2),outcon(i,3),outcon(i,4) end do fieldname(3) = 'Species' status = he5_ptreadlevel(ptid, 0, fieldname(3), 1dtype(3), spec) write(*,*) 'Status returned by he5_ptreadlevel(): ',status write(*,*) 'spec array: ' do i = 1,nrecs print *,spec(i) end do c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Read FixedBuoy Point c -------------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Global Attributes c ----------------- attrname = 'GlobalAttribute_int' print *,' ' print *,'Global Attribute: ' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) print *,'Number of attributes: ',nattr print *,'Attribute list: ',attrlist print *,'Size (in bytes) of attribute list: ',strbufsize status = he5_ptreadattr(ptid,attrname,attr) write(*,*) 'Status returned by he5_ptreadattr(): ',status print *,'Attribute value: ',attr c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_writeattrsF_64.f0000755000175000017500000000603012024715435023337 0ustar amckinstryamckinstry program he5_pt_writeattrsF_64 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptwriteattr integer he5_ptwritegrpattr integer he5_ptwritelocattr integer he5_ptdetach integer he5_ptclose integer attr,attr1(5) integer attr2(5) integer ntype integer*8 fortcount(8) real*4 flt character*80 attrname character*80 levelname c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Write attributes to "Fixed Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_int' ntype = HE5T_NATIVE_INT fortcount(1) = 1 attr = 9999 status = he5_ptwriteattr(ptid,attrname,ntype,fortcount, 1attr) write(*,*) 'Status returned by he5_ptwriteattr(): ',status attrname = 'GroupAttribute' ntype = HE5T_NATIVE_INT fortcount(1) = 5 attr1(1) = 1 attr1(2) = 2 attr1(3) = 3 attr1(4) = 4 attr1(5) = 5 status = he5_ptwritegrpattr(ptid,attrname,ntype,fortcount, 1attr1) write(*,*) 'Status returned by he5_ptwritegrpattr(): ',status levelname = 'Observations' attrname = 'LocalAttribute' ntype = HE5T_NATIVE_INT fortcount(1) = 5 attr2(1) = 10 attr2(2) = 20 attr2(3) = 30 attr2(4) = 40 attr2(5) = 50 status = he5_ptwritelocattr(ptid,levelname,attrname, 1ntype,fortcount,attr2) write(*,*) 'Status returned by he5_ptwritelocattr(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Write attributes to "Fixed Buoy Point" c -------------------------------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid attrname = 'GlobalAttribute_float' ntype = HE5T_NATIVE_FLOAT fortcount(1) = 1 flt = -7.5 status = he5_ptwriteattr(ptid,attrname, 1ntype,fortcount,flt) write(*,*) 'Status returned by he5_ptwriteattr(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_writedimscaleF_32.f0000755000175000017500000001304012024715435023744 0ustar amckinstryamckinstry program he5_za_writedimscaleF_32 implicit none include 'hdfeos5.inc' integer status integer i, j integer he5_zaopen integer he5_zaattach integer he5_zawrfld integer he5_zawrattr integer he5_zawrgattr integer he5_ehwrglatt integer he5_zawrlattr integer he5_zadetach integer he5_zaclose integer HE5_ZAsetdimscale integer HE5_ZAwritedscaleattr integer zafid,zaid1 integer*4 datbuf_i1(1) integer*4 datbuf_i(15) integer count(2) integer*4 nbands integer bands(3) integer*4 datbuf_i2(2) integer xdim, ydim, ntime integer data(15) integer FAIL parameter (FAIL=-1) ! /* ! * We first open the HDF-EOS zaath file, "za.he5". Because this file ! * already exist and we wish to write to it, we use the H5F_ACC_RDWR access ! * code in the open statement. The HE5_ZAopen routine returns the zaath file ! * id, zafid, which is used to identify the file in subsequent routines. ! */ nbands = 15 do j=1,nbands data(j)=(j+1)*2 enddo zafid = HE5_ZAopen("za.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_zaopen(): ',zafid ! /* ! * If the zaath file cannot be found, HE5_ZAopen will return -1 for the file ! * handle (zafid). We there check that this is not the case before ! * proceeding with the other routines. ! * ! * The HE5_ZAattach routine returns the handle to the existing zaath "ZA1", ! * ZAid. If the zaath is not found, HE5_ZAattach returns -1 for the handle. ! */ if (zafid .ne. FAIL) then ZAid1 = HE5_ZAattach(zafid, "ZA1") write(*,*) 'Za ID returned by he5_zaattach(): ',zaid1 ! /* the field Spectra has Bands,Res2tr,Res2xtr dimensions. ! xdim = 120; ! ydim = 200; ! Time dim is set to 10 ! */ if (ZAid1 .eq. -1) then write(*,*) 'Error: Cannot attach to zaath ZA1. Stpped.' status = HE5_ZAclose(zafid) stop endif status = HE5_ZAsetdimscale(ZAid1, "Spectra", "Bands", nbands, 1 HE5T_NATIVE_INT, data) write(*,*) 'Status returned by HE5_ZAsetdimscale: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale for Bands', 1 ' dimemnsion in field Vegetation' status = HE5_ZAdetach(ZAid1) status = HE5_ZAclose(zafid) stop endif count(1)= 12 status = HE5_ZAwritedscaleattr(ZAid1, "Bands", "label", 1 HE5T_NATIVE_CHAR, count, "Bands Dim") write(*,*) 'Status returned by HE5_ZAwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_ZAdetach(ZAid1) status = HE5_ZAclose(zafid) stop endif count(1)= 6 status = HE5_ZAwritedscaleattr(ZAid1, "Bands", "unit", 1 HE5T_NATIVE_CHAR, count, "None") write(*,*) 'Status returned by HE5_ZAwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_ZAdetach(ZAid1) status = HE5_ZAclose(zafid) stop endif count(1)= 4 status = HE5_ZAwritedscaleattr(ZAid1, "Bands", "format", 1 HE5T_NATIVE_CHAR, count, "I2") write(*,*) 'Status returned by HE5_ZAwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_ZAdetach(ZAid1) status = HE5_ZAclose(zafid) stop endif datbuf_i1(1) = -999 count(1)= 1 status = HE5_ZAwritedscaleattr(ZAid1, "Bands", "MissingValue", 1 HE5T_NATIVE_INT, count, datbuf_i1) write(*,*) 'Status returned by HE5_ZAwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_ZAdetach(ZAid1) status = HE5_ZAclose(zafid) stop endif datbuf_i(1) = -999 datbuf_i(2) = 0 datbuf_i(3) = 999 count(1)= 3 status = HE5_ZAwritedscaleattr(ZAid1, "Bands", "IntValues", 1 HE5T_NATIVE_INT, count, datbuf_i) write(*,*) 'Status returned by HE5_ZAwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_ZAdetach(ZAid1) status = HE5_ZAclose(zafid) stop endif status = HE5_ZAdetach(ZAid1) write(*,*) 'Status returned by he5_zadetach(): ',status status = HE5_ZAclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status endif stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_definefieldsF_64.f0000755000175000017500000000633212024715435023524 0ustar amckinstryamckinstry program he5_gd_definefieldsF_64 implicit none include 'hdfeos5.inc' integer status, he5_gddeffld, he5_gdsetfill integer he5_gdattach, he5_gddetach, he5_gdclose integer he5_gddeftle, he5_gddefcomp integer gdfid, gdid1, gdid2, he5_gdopen integer tilecode, tilerank integer*8 tiledims(2) integer compparm(1) real*4 fillval1, fillval2 fillval1 = -7.0 fillval2 = -9999.0 c Open HDF-EOS file "grid.he5" c ---------------------------- gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid c Attach to the UTM grid c ---------------------- gdid1 = he5_gdattach(gdfid, "UTMGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid1 c Define Fields c ------------- status = he5_gdsetfill(gdid1,"Pollution", 1HE5T_NATIVE_FLOAT,fillval1) write(*,*) 'Status returned by he5_gdsetfill(): ',status status = he5_gddeffld(gdid1, "Pollution", 1"XDim,YDim,Time"," ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status tilerank = 2 tiledims(1) = 60 tiledims(2) = 100 compparm(1) = 6 status = he5_gddeftle(gdid1,HE5_HDFE_TILE,tilerank,tiledims) write(*,*) 'Status returned by he5_gddeftle(): ',status status = he5_gddefcomp(gdid1,HE5_HDFE_COMP_DEFLATE,compparm) write(*,*) 'Status returned by he5_gddefcomp(): ',status status = he5_gddeffld(gdid1, "Vegetation", 1"XDim,YDim"," ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status c Attach to the POLAR grid c ------------------------ gdid2 = he5_gdattach(gdfid, "PolarGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid2 c Define Fields c ------------- status = he5_gddeffld(gdid2, "Temperature", 1"XDim,YDim"," ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status c Set fill value for "Pressure" field c ----------------------------------- status = he5_gdsetfill(gdid2,"Pressure", 1HE5T_NATIVE_FLOAT,fillval2) write(*,*) 'Status returned by he5_gdsetfill(): ',status status = he5_gddeffld(gdid2, "Pressure", 1"XDim,YDim"," ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status c Define Fields c ------------- status = he5_gddeffld(gdid2, "Soil Dryness", 1"XDim,YDim"," ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status status = he5_gddeffld(gdid2, "Spectra", 1"XDim,YDim,Bands"," ", HE5T_NATIVE_DOUBLE, 0) write(*,*) 'Status returned by he5_gddeffld(): ',status c Detach from the grids c --------------------- status = he5_gddetach(gdid1) write(*,*) 'Status returned by he5_gddetach(): ',status status = he5_gddetach(gdid2) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_writedata.c0000755000175000017500000000564112024715435022447 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will (1) open the "Grid.h5" HDF-EOS file, (2) attach to * the "UTMGrid", and (3) write data to the "Vegetation" field. We will * then attach to the "PolarGrid" and write to the "Temperature" field. */ int main() { herr_t status = FAIL; int i, j; int grpattr[3] = {3,7,11}; /* group attr */ hid_t gdfid = FAIL; hid_t GDid = FAIL; float flt = 3.1415; /* global attr */ float attr[4] = {1.1,2.2,3.3,4.4}; /* local attr */ float veg[200][120]; float temp[100][100]; hssize_t start[3]; hsize_t edge[3]; /* Fill veg array */ for (i = 0; i < 200; i++) for (j = 0; j < 120; j++) veg[i][j] = (float)(10+i); /* Fill temp array */ for (i = 0; i < 100; i++) for (j = 0; j < 100; j++) temp[i][j] = (float)(100*i+j); /* * Open the HDF grid file, "Grid.h5". */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); if (gdfid != FAIL) { /* * Attach the "UTMGrid". */ GDid = HE5_GDattach(gdfid, "UTMGrid"); if (GDid != FAIL) { /* Data Field "Vegetation" */ /* ---------------------- */ start[0] = 0; start[1] = 0; edge[0] = 200; edge[1] = 120; status = HE5_GDwritefield(GDid, "Vegetation", start, NULL, edge, veg); printf("Status returned by HE5_GDwritefield() : %d \n", status); /* Global attribute */ /* ---------------- */ edge[0] = 1; status = HE5_GDwriteattr(GDid, "GlobalAttribute", H5T_NATIVE_FLOAT, edge, &flt); printf("Status returned by HE5_GDwriteattr() : %d \n", status); /* Group attribute */ /* --------------- */ edge[0] = 3; status = HE5_GDwritegrpattr(GDid, "GroupAttribute", H5T_NATIVE_INT, edge, grpattr); printf("Status returned by HE5_GDwritegrpattr() : %d \n", status); /* Local attribute */ /* --------------- */ edge[0] = 4; status = HE5_GDwritelocattr(GDid, "Vegetation", "LocalAttribute", H5T_NATIVE_FLOAT, edge, attr); printf("Status returned by HE5_GDwritelocattr() : %d \n", status); } status = HE5_GDdetach(GDid); GDid = HE5_GDattach(gdfid, "PolarGrid"); if (GDid != FAIL) { /* Data field "Temperature" */ /* ----------------------- */ start[0] = 0; start[1] = 0; edge[0] = 100; edge[1] = 100; status = HE5_GDwritefield(GDid, "Temperature", start, NULL, edge, temp); printf("Status returned by HE5_GDwritefield() : %d \n", status); } status = HE5_GDdetach(GDid); } status = HE5_GDclose(gdfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_setupF_64.f0000755000175000017500000000436012024715435022273 0ustar amckinstryamckinstry program he5_pt_setupF_64 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid1 integer ptid2 integer ptid3 integer he5_ptopen integer he5_ptcreate integer he5_ptdetach integer he5_ptclose c --------------------------------------------------------------------------- c c We first open the HDF-EOS point file, "point.he5". Because this file c c does not already exist, we use the "TRUNC" file access code in the c c open statement. The PTopen routine returns the point file id, ptfid, c c which is used to identify the file in subsequent routines in the c c library. c c --------------------------------------------------------------------------- c c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_TRUNC) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid ptid1 = he5_ptcreate(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptcreate(): ',ptid1 ptid2 = he5_ptcreate(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptcreate(): ',ptid2 ptid3 = he5_ptcreate(ptfid, "FloatBuoy Point") write(*,*) 'Point ID returned by he5_ptcreate(): ',ptid3 c --------------------------------------------------------------------------- c c We now close the point interface with the he5_ptdetach routine. c c This step is necessary to properly store the point information within c c the file. c c --------------------------------------------------------------------------- c status = he5_ptdetach(ptid1) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptdetach(ptid2) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptdetach(ptid3) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_datainfoF_64.f0000755000175000017500000000550612024715435022723 0ustar amckinstryamckinstry program he5_pt_datainfoF_64 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptinqdatatype integer he5_ptdetach integer he5_ptclose integer dtype integer classid integer order integer fieldgroup integer*8 size character*1 null_char_0 character*80 fieldname character*80 attrname null_char_0 = '0' c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid fieldgroup = HE5_HDFE_DATAGROUP fieldname = 'Observations' status = he5_ptinqdatatype(ptid,fieldname,null_char_0,fieldgroup, 1dtype,classid,order,size) print *,'Status returned from he5_ptinqdatatype(): ',status print *,'dtype: ',dtype print *,'class ID: ',classid print *,'order: ',order print *,'size: ',size fieldgroup = HE5_HDFE_ATTRGROUP attrname = 'GlobalAttribute_int' status = he5_ptinqdatatype(ptid,null_char_0,attrname,fieldgroup, 1dtype,classid,order,size) print *,'Status returned from he5_ptinqdatatype(): ',status print *,'dtype: ',dtype print *,'class ID: ',classid print *,'order: ',order print *,'size: ',size fieldgroup = HE5_HDFE_GRPATTRGROUP attrname = 'GroupAttribute' status = he5_ptinqdatatype(ptid,null_char_0,attrname,fieldgroup, 1dtype,classid,order,size) print *,'Status returned from he5_ptinqdatatype(): ',status print *,'dtype: ',dtype print *,'class ID: ',classid print *,'order: ',order print *,'size: ',size fieldname = 'Observations' fieldgroup = HE5_HDFE_LOCATTRGROUP attrname = 'LocalAttribute' status = he5_ptinqdatatype(ptid,fieldname,attrname,fieldgroup, 1dtype,classid,order,size) print *,'Status returned from he5_ptinqdatatype(): ',status print *,'dtype: ',dtype print *,'class ID: ',classid print *,'order: ',order print *,'size: ',size c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_readdimscaleF_32.f0000755000175000017500000001242012024715435023526 0ustar amckinstryamckinstry program he5_za_readdimscaleF_32 implicit none include 'hdfeos5.inc' integer status integer i, j, jj integer he5_zaopen integer he5_zaattach integer he5_zawrfld integer he5_zawrattr integer he5_zawrgattr integer he5_ehwrglatt integer he5_zawrlattr integer he5_zadetach integer he5_zaclose integer HE5_ZAdscaleattrinfo, HE5_ZAreaddscaleattr integer HE5_ZAgetdimscale, HE5_ZAinqdscaleattrs integer ntype integer zafid,zaid1 real*4 datbuf_f(1) integer*4 datbuf_i(3) integer*4 nbands integer bands(3) integer*4 datbuf_i2(2) integer count(2) integer attr_int(25) real*4 attr_flt(25) real*8 attr_dbl(25) character attr_char(25) integer dimsize integer bufsize, nattr integer data(30) integer FAIL parameter (FAIL=-1) character*100 attrlist character*100 strbufsize character*15 attrname(10) integer numtype ! /* ! * Open the HDF zaath file, "za.he5". ! */ zafid = HE5_ZAopen("za.he5", HE5F_ACC_RDWR) ! /* ! * If the zaath file cannot be found, HE5_ZAopen will return -1 for the file ! * handle (zafid). We there check that this is not the case before ! * proceeding with the other routines. ! * ! * The HE5_ZAattach routine returns the handle to the existing zaath "ZA1", ! * ZAid. If the zaath is not found, HE5_ZAattach returns -1 for the handle. ! */ if (zafid .ne. FAIL) then ZAid1 = HE5_ZAattach(zafid, "ZA1") ! /* the field Pollution has Time,YDim,XDim dimensions. ! xdim = 120 ! ydim = 200 ! Time dim is set to 10 ! */ if (ZAid1 .eq. FAIL) then write(*,*) 'Error: Cannot attach to zaath ZA1' status = HE5_ZAclose(zafid) stop endif bufsize = HE5_ZAgetdimscale(ZAid1, "Spectra", "Bands", 1 dimsize, numtype, data) if (bufsize .eq. -1) then write(*,*) 'Error:Cannot get Dimension Scale size of Bands', 1 ' dimemnsion in field Spectra' status = HE5_ZAdetach(ZAid1) status = HE5_ZAclose(zafid) stop else write(*,*) 'bufsize = ',bufsize write(*,*) 'dimsize = ',dimsize write(*,*) 'numtype = ',numtype write(*,*) 'Values are:' do i = 1,dimsize write(*,*) 'DimscaleValue[',i,'] = ',data(i) enddo endif nattr = HE5_ZAinqdscaleattrs(ZAid1, "Bands", attrlist, 1 strbufsize) if ( nattr .lt. 0 ) then write(*,*) 'Error: Cannot get Dimension Scale attribute', 1 ' list for Bands' status = HE5_ZAdetach(ZAid1) status = HE5_ZAclose(zafid) stop endif write(*,*) ' ' write(*,*) 'Dimension scale for Bands Attribute:' attrname(1) = 'label' attrname(2) = 'unit' attrname(3) = 'format' attrname(4) = 'MissingValue' attrname(5) = 'IntValues' do j = 1,5 attr_char = '' count(1)= 0 count(2)= 0 status = HE5_ZAdscaleattrinfo(ZAid1,"Bands", attrname(j), 1 ntype, count) if( ntype .eq. 0) then status = HE5_ZAreaddscaleattr(ZAid1,"Bands", attrname(j), 1 attr_int) endif if( ntype .eq. 10) then status = HE5_ZAreaddscaleattr(ZAid1,"Bands", attrname(j), 1 attr_flt) endif if( ntype .eq. 11) then status = HE5_ZAreaddscaleattr(ZAid1,"Bands", attrname(j), 1 attr_dbl) endif if( ntype .eq. 57) then status = HE5_ZAreaddscaleattr(ZAid1,"Bands", attrname(j), 1 attr_char) endif write(*,*) ' ' write(*,*) 'Status returned by HE5_ZAreaddscaleattr() :', 1 status write(*,*) 'Attribute Name: ',attrname(j) write(*,*) 'Number of attribute elements: ', count(1), 1 ' ',count(2) write(*,*) 'Data type of attribute: ', ntype if( ntype .eq. 0) then do jj = 1,count(1) write(*,*) 'Attrvalue[',jj,']: ', attr_int(jj) enddo endif if( ntype .eq. 10) then do jj = 1,count(1) write(*,*) 'Attrvalue[',jj,']: ',attr_flt(jj) enddo endif if( ntype .eq. 11) then do jj = 1,count(1) write(*,*) 'Attrvalue[',jj,']: ',attr_dbl(jj) enddo endif if( ntype .eq. 57) then write(*,*) 'Attrvalue: ', attr_char endif enddo endif status = HE5_ZAdetach(ZAid1) status = HE5_ZAclose(zafid) stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_wrexternaldataF_32.f0000755000175000017500000000645212024715435024146 0ustar amckinstryamckinstry! ! ---------------------------------------------------------------------------- ! | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ! ---------------------------------------------------------------------------- ! program he5_za_wrexternaldataF_32 implicit none include 'hdfeos5.inc' integer i integer status integer he5_zaopen integer he5_zaattach integer he5_zawrite integer he5_ehrdwrfile integer he5_zadetach integer he5_zaclose integer zafid, zaid integer data_out_1(100) integer data_out_2(100) integer data_out_3(100) integer data(60) integer*4 start(2) integer*4 stride(2) integer*4 count(2) integer*4 num_elements integer FAIL parameter (FAIL=-1) !.....Use this for writing (only) to an existing file integer WRITE_EXISTING_ONLY parameter (WRITE_EXISTING_ONLY=0) !.....Use this for reading (only) from an existing file integer READ_ONLY parameter (READ_ONLY=1) !.....Use this for creating and writing to a file integer WRITE_NEW parameter (WRITE_NEW=2) ! Create the new data buffer ! -------------------------- do 10 i=1,60 data(i) = 9999 10 continue ! Open HDF-EOS za file, "za.he5" ! ------------------------------ zafid = he5_zaopen("za.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned from he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned from he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Write new data to the external files ! ------------------------------------ start(1) = 0 stride(1) = 1 count(1) = 60 status = he5_zawrite(zaid,"ExtData", 1 start,stride,count,data) write(*,*) 'Status returned from he5_zawrite(): ',status num_elements = 100 status = he5_ehrdwrfile("extf1.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_1) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf2.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_2) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf3.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_3) write(*,*) 'Status returned from he5_ehrdwrfile: ',status write(*,*)'External file extf1.dat:' write(*,*) data_out_1 write(*,*) ' ' write(*,*)'External file extf2.dat:' write(*,*) data_out_2 write(*,*) ' ' write(*,*)'External file extf3.dat:' write(*,*) data_out_3 write(*,*) ' ' endif endif ! Detach from za ! -------------- status = he5_zadetach(zaid) write(*,*) 'Status returned from he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned from he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_defexternalfldF_64.f0000755000175000017500000000337512024715435024116 0ustar amckinstryamckinstry! ! In this program we (1) open the "za.he5" HDF-EOS file, (2) ! attach to the "ZA1" za, and (3) define the external data ! field "ExtData". ! program he5_za_defexternalfldF_64 implicit none include 'hdfeos5.inc' integer status integer he5_zaopen integer he5_zaattach integer he5_zadefine integer he5_zadetach integer he5_zaclose integer he5_zasetxdat integer zafid, zaid integer*8 offset(3), size(3) integer FAIL parameter (FAIL=-1) ! Open the HDF-EOS file, "za.he5" using "READ/WRITE" access code ! -------------------------------------------------------------- zafid = he5_zaopen("za.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then offset(1) = 0 size(1) = 40 offset(2) = 40 size(2) = 80 offset(3) = 80 size(3) = 120 status = he5_zasetxdat(zaid, "extf1.dat,extf2.dat,extf3.dat", 1offset, size) write(*,*) 'Status returned by he5_zasetxdat(): ',status status = he5_zadefine(zaid, "ExtData", "ExtDim", 1" ", HE5T_NATIVE_INT) write(*,*) 'Status returned by he5_zadefine(): ',status endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_readdataF_64.f0000755000175000017500000000357612024715435022657 0ustar amckinstryamckinstry program he5_gd_readdataF_64 implicit none include 'hdfeos5.inc' integer status integer gdfid integer gdid integer he5_gdopen integer he5_gdattach integer he5_gdrdfld integer he5_gdrdattr integer he5_gddetach integer he5_gdclose integer*8 start(2) integer*8 stride(2) integer*8 count(2) real*4 f real*4 veg(120,200) integer FAIL parameter (FAIL=-1) c Open HDF-EOS "grid.he5" file c ----------------------------- gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdid if (gdfid .ne. FAIL) then c Attach to the UTM grid c ---------------------- gdid = he5_gdattach(gdfid, "UTMGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid if (gdid .ne. FAIL) then start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 count(1) = 120 count(2) = 200 c Read the data from "Vegetation" field c ------------------------------------- status = he5_gdrdfld(gdid,"Vegetation", 1 start,stride,count,veg) write(*,*) 'Status returned by he5_gdrdfld(): ',status c Read global attribute "float" c ----------------------------- status = he5_gdrdattr(gdid, "float", f) write(*,*) 'Status returned by he5_gdrdattr(): ',status write(*,*) 'global attribute value: ', f endif endif c Detach from the grid c -------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_info.c0000755000175000017500000001625512024715435021421 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will retrieve information about (1) dimensions, * (2) dimension mappings (geolocation relations), (3) grid fields, * and (4) (global/group/local) grid attributes. */ int main() { herr_t status = FAIL; int i, rank[32], tilerank; int projcode, zonecode, spherecode, tilecode; int ndim = FAIL, nflds = FAIL; hid_t gdfid = FAIL; hid_t GDid1 = FAIL; hid_t GDid2 = FAIL; hid_t *ntype; hid_t *ntype1; hsize_t Dims[32], dimsize, count = 0, tiledims[8]; long xdimsize, ydimsize, n, strbufsize; double upleftpt[2], lowrightpt[2], projparm[16]; char version[80]; char dimname[1024], fieldlist[1024]; char attrlist[80]; int level[ 5 ] = { 0, 0, 0, 0, 0 }; int code = 0; /* * Open the Grid File for read only access */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDONLY); if (gdfid != FAIL) { HE5_EHgetversion(gdfid,version); printf("Version: \"%s\" \n", version); /* Attach the grid */ GDid1 = HE5_GDattach(gdfid, "UTMGrid"); GDid2 = HE5_GDattach(gdfid, "PolarGrid"); ndim = HE5_GDinqdims(GDid1, dimname, Dims); printf("Dimension list (UTMGrid): %s\n", dimname); for (i = 0; i < ndim; i++) printf("dim size: %li \n", (long)Dims[i]); ndim = HE5_GDinqdims(GDid2, dimname, Dims); printf("Dimension list (PolarGrid): %s\n", dimname); for (i = 0; i < ndim; i++) printf("dim size: %li \n", (long)Dims[i]); dimsize = HE5_GDdiminfo(GDid1, "Time"); printf("Size of \"Time\" Array: %lu\n", (unsigned long)dimsize); dimsize = HE5_GDdiminfo(GDid2, "Bands"); printf("Size of \"Bands\" Array: %lu\n", (unsigned long)dimsize); status = HE5_GDgridinfo(GDid1, &xdimsize, &ydimsize,upleftpt, lowrightpt); printf("X dim size, Y dim size (UTMGrid): %li %li\n", xdimsize, ydimsize); printf("Up left pt (UTMGrid): %lf %lf\n", upleftpt[0], upleftpt[1]); printf("Low right pt (UTMGrid): %lf %lf\n", lowrightpt[0], lowrightpt[1]); status = HE5_GDgridinfo(GDid2, &xdimsize, &ydimsize, upleftpt, lowrightpt); printf("X dim size, Y dim size (PolarGrid): %li %li\n", xdimsize, ydimsize); printf("Up left pt (PolarGrid): %lf %lf\n", upleftpt[0], upleftpt[1]); printf("Low right pt (PolarGrid): %lf %lf\n", lowrightpt[0], lowrightpt[1]); status = HE5_GDprojinfo(GDid1, &projcode, &zonecode, &spherecode, NULL); printf("projcode , zonecode (UTMGrid): %d %d\n", projcode, zonecode); printf("spherecode (UTMGrid): %d\n", spherecode); status = HE5_GDprojinfo(GDid2, &projcode, NULL, &spherecode, projparm); printf("projcode (PolarGrid): %d\n", projcode); printf("spherecode (PolarGrid): %d\n", spherecode); for (i = 0; i < 13; i++) printf("Projection Parameter: %d %lf\n",i,projparm[i]); ntype1 = (hid_t *)calloc(10, sizeof(hid_t)); nflds = HE5_GDinqfields(GDid1, fieldlist, rank, ntype1); if (nflds != FAIL) { printf("Data fields (UTMGrid): %s\n", fieldlist); for (i = 0; i < nflds;i++) printf("Rank: %i Data type: %i\n",rank[i], (int)ntype1[i]); } nflds = HE5_GDinqfields(GDid2, fieldlist, rank, ntype1); if (nflds != FAIL) { printf("Data fields (PolarGrid): %s\n", fieldlist); for (i = 0; i < nflds;i++) printf("Rank: %i Data type: %i\n",rank[i],(int)ntype1[i]); } status = HE5_GDfieldinfo(GDid2, "Spectra", rank, Dims, ntype1, dimname, NULL); printf("Spectra rank: %d\n",rank[0]); printf("Spectra dimensions: \n"); for (i = 0; i < rank[0]; i++) printf(" %lu\n",(unsigned long)Dims[i]); printf("Spectra dimension list: \n"); printf(" %s\n", dimname); ntype = (hid_t *)calloc(10, sizeof(hid_t)); printf(" \n"); printf("Global Attributes \n"); status = HE5_GDattrinfo(GDid1, "GlobalAttribute", ntype, &count); printf("\tNumber of attribute elements: %lu \n", (unsigned long)count); printf("\tData type of attribute: %d \n", (int)*ntype); printf(" \n"); printf("Group Attributes \n"); status = HE5_GDgrpattrinfo(GDid1, "GroupAttribute", ntype, &count); printf("\tNumber of attribute elements: %lu \n", (unsigned long)count); printf("\tData type of attribute: %d \n", (int)*ntype); printf(" \n"); printf("Local Attributes \n"); status = HE5_GDlocattrinfo(GDid1, "Vegetation", "LocalAttribute", ntype, &count); printf("\tNumber of attribute elements: %lu \n", (unsigned long)count); printf("\tData type of attribute: %d \n", (int)*ntype); printf(" \n"); printf("Global Attributes \n"); n = HE5_GDinqattrs(GDid1, NULL, &strbufsize); printf("\tNumber of attributes: %li \n", n); printf("\tSize of attribute list: %li \n", strbufsize); n = HE5_GDinqattrs(GDid1, attrlist, &strbufsize); printf("\tAttribute list: %s \n", attrlist); printf(" \n"); printf("Group Attributes \n"); n = HE5_GDinqgrpattrs(GDid1, NULL, &strbufsize); printf("\tNumber of attributes: %li \n", n); printf("\tSize of attribute list: %li \n", strbufsize); n = HE5_GDinqgrpattrs(GDid1, attrlist, &strbufsize); printf("\tAttribute list: %s \n", attrlist); printf(" \n"); printf("Local Attributes \n"); n = HE5_GDinqlocattrs(GDid1, "Vegetation", NULL, &strbufsize); printf("\tNumber of attributes: %li \n", n); printf("\tSize of attribute list: %li \n", strbufsize); n = HE5_GDinqlocattrs(GDid1, "Vegetation", attrlist, &strbufsize); printf("\tAttribute list: %s \n", attrlist); free(ntype); free(ntype1); n = HE5_GDnentries(GDid1, HE5_HDFE_NENTDIM, &strbufsize); printf("Number of dimension entries (UTMGrid): %li \n", n); printf("Length of Dimension List (UTMGrid): %li \n", strbufsize); n = HE5_GDnentries(GDid1, HE5_HDFE_NENTDFLD, &strbufsize); printf("Number of data fields (UTMGrid): %li \n", n); printf("Length of Field List (UTMGrid): %li \n", strbufsize); status = HE5_GDtileinfo(GDid1,"Vegetation",&tilecode,&tilerank,tiledims); printf("\n"); printf("\t\t Vegetation tile code: %d\n", tilecode); printf("\t\t Vegetation tile rank: %d\n", tilerank); for (i = 0; i < tilerank; i++) printf("\t\t Vegetation tile dimension %d: %lu\n",i+1, (unsigned long)tiledims[i]); status = HE5_GDcompinfo(GDid1,"Vegetation",&code,level); printf("\t\t Compression scheme Compression level\n"); printf("\t\t %d, %d\n", code, level[0]); } status = HE5_GDdetach(GDid1); status = HE5_GDdetach(GDid2); status = HE5_GDclose(gdfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_rdexternaldata.c0000755000175000017500000000652012024715435023521 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define DIMIN 100 #define DIMOUT 60 int main() { FILE *in_1, *in_2, *in_3; herr_t status = FAIL; int i; int data_in_1[DIMIN]; int data_in_2[DIMIN]; int data_in_3[DIMIN]; int data_out[DIMOUT]; int nfiles = FAIL; hid_t swfid = FAIL; hid_t SWid = FAIL; size_t namelength = 48; off_t offset[3]; char filelist[256]; hssize_t start[2]; hsize_t count[2]; hsize_t size[3]; /* Create the external data sets */ /* ----------------------------- */ for (i = 0; i < DIMIN; i++) { data_in_1[i] = 1000 + i + 1; data_in_2[i] = 2000 + i + 1; data_in_3[i] = 3000 + i + 1; } /* Open the external data files */ /* ---------------------------- */ in_1 = fopen("external_1.data", "w"); in_2 = fopen("external_2.data", "w"); in_3 = fopen("external_3.data", "w"); /* Write data buffers to the external data files */ /* --------------------------------------------- */ fwrite(data_in_1, sizeof(int), DIMIN, in_1); fwrite(data_in_2, sizeof(int), DIMIN, in_2); fwrite(data_in_3, sizeof(int), DIMIN, in_3); /* Close the external data files */ /* ----------------------------- */ fclose(in_1); fclose(in_2); fclose(in_3); /* Open the HDF-EOS swath file, "Swath.h5" */ /* --------------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); if (swfid != FAIL) { /* Attach the "Swath1" swath */ /* ------------------------- */ SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { /* Read the external data field */ /* ---------------------------- */ start[0] = 0; count[0] = DIMOUT; status = HE5_SWreadfield(SWid, "ExtData", start, NULL, count, data_out); printf("Status returned by HE5_SWreadfield() : %d \n", status); /* Display external data set */ /* ------------------------- */ printf(" \n"); for (i = 0; i < DIMOUT; i++) printf("%d ", data_out[i]); /* Get the number of external files */ /* -------------------------------- */ nfiles = HE5_SWgetextdata(SWid, "ExtData", namelength, filelist, offset, size); printf(" \n"); printf(" \n"); printf("Number of external files returned by HE5_SWgetextdata() : %d \n", nfiles); if (nfiles > 0) { printf(" \n"); printf("External files: \"%s\" \n", filelist); printf(" \n"); printf("offsets: "); for (i = 0; i < nfiles; i++) printf("%d ", (int)offset[i]); printf(" \n"); printf("sizes: "); for (i = 0; i < nfiles; i++) printf("%lu ", (unsigned long)size[i]); printf(" \n"); printf(" \n"); } } } /* Detach from the swath */ /* --------------------- */ status = HE5_SWdetach(SWid); printf("Status returned by HE5_SWdetach() : %d \n", status); /* Close the file */ /* -------------- */ status = HE5_SWclose(swfid); printf("Status returned by HE5_SWclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_readdataF_32.f0000755000175000017500000000471212024715435022663 0ustar amckinstryamckinstry! In this program we (1) open the "za.he5" file, (2) attach to ! the "ZA1" za, and (3) read data from the "Spectra" field ! ============================================================ program he5_za_readdataF_32 implicit none include 'hdfeos5.inc' integer status integer he5_zaopen integer he5_zaattach integer he5_zaread integer he5_zardattr integer he5_zadetach integer he5_zaclose integer zafid, zaid integer i,j,k integer*4 attr(4) integer*4 start(3) integer*4 stride(3) integer*4 count(3) real*8 plane(800) integer FAIL parameter (FAIL=-1) ! Open HDF-EOS za file, "za.he5" ! ------------------------------ zafid = he5_zaopen("za.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Read the entire Spectra field ! ----------------------------- start(1) = 0 start(2) = 0 count(1) = 20 count(2) = 40 count(3) = 1 stride(1) = 1 stride(2) = 1 stride(3) = 1 do i=1,15 start(3) = i - 1 do j=1,40 do k=1,20 plane((j-1)*20+k) = (j-1)*100 + i-1 enddo enddo status = he5_zaread(zaid,"Spectra",start, 1 stride,count,plane) enddo ! Read Attribute ! -------------- status = he5_zardattr(zaid, "TestAttr", attr) do i=1,4 write(*,*) 'Attribute Element', i, ':', attr(i) enddo endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned from he5_zadetach: ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned from he5_zaclose: ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_setupF_32.f0000755000175000017500000001225612024715435022277 0ustar amckinstryamckinstryc In this program we (1) open an HDF-EOS file, (2) create the c swath interface, and (3) define the swath field dimensions c =========================================================== program he5_sw_setupF_32 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swcreate integer he5_swdefdim integer he5_swdefmap integer he5_swdefimap integer he5_swdetach integer he5_swclose integer swfid, swid integer*4 dtrack, extdata integer*4 offset, incr integer*4 indx(12) data indx /0,1,3,6,7,8,11,12,14,24,32,39/ c Open the HDF-EOS file, "swath.he5" using "TRUNC" file access code c ----------------------------------------------------------------- swfid = he5_swopen('swath.he5',HE5F_ACC_TRUNC) write(*,*) 'File ID returned by he5_swopen(): ',swfid c Create the swath, "Swath1", within the file c ------------------------------------------- swid = he5_swcreate(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swcreate(): ',swid c Define Geolocation and Data dimensions c -------------------------------------- c ---------------------------------------------------------------------- c Typically, many fields within a swath share the same dimension. The c swath interface therefore provides a way of defining dimensions that c will then be used to define swath fields. A dimension is defined with c a name and a size and is connected to the particular swath through the c swath id. In this example, we define the geo- location track and c cross track dimensions with size 20 and 10 respectively and two c dimensions corresponding to these but with twice the resolution. c Also, we define "Bands" and "unlimited" dimensions. c ---------------------------------------------------------------------- dtrack = 20 status = he5_swdefdim(swid, "GeoTrack", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 10 status = he5_swdefdim(swid, "GeoXtrack", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 40 status = he5_swdefdim(swid, "Res2tr", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 20 status = he5_swdefdim(swid, "Res2xtr", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 15 status = he5_swdefdim(swid, "Bands", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 12 status = he5_swdefdim(swid, "IndxTrack", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 4 status = he5_swdefdim(swid, "ProfDim", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status c Define "External" dimension c --------------------------- extdata = 60 status = he5_swdefdim(swid, "ExtDim", extdata) write(*,*) 'Status returned by he5_swdefdim(): ',status c Define Unlimited (appendable) dimension c --------------------------------------- status = he5_swdefdim(swid, "Unlim", HE5S_UNLIMITED_F) write(*,*) 'Status returned by he5_swdefdim(): ',status c ---------------------------------------------------------------------- c Once the dimensions are defined, the relationship (mapping)between the c geolocation dimensions, such as track and cross track, and the data c dimensions, must be established. This is done through the SWdefdimmap c routine. It takes as input the swath id, the names of the dimensions c designating the geolocation and data dimensions, respectively, and the c offset and increment defining the relation. c c In the first example we relate the "GeoTrack" and "Res2tr" dimensions c with an offset of 0 and an increment of 2. Thus the ith element of c "Geotrack" corresponds to the 2 * ith element of "Res2tr". c c In the second example, the ith element of "GeoXtrack" corresponds to c the 2 * ith + 1 element of "Res2xtr". c ----------------------------------------------------------------------- c Define dimension mappings c ------------------------- offset = 0 incr = 2 status = he5_swdefmap(swid, "GeoTrack", 1 "Res2tr", offset, incr) write(*,*) 'Status returned by he5_swdefmap(): ',status offset = 1 status = he5_swdefmap(swid, "GeoXtrack", 1 "Res2xtr", offset, incr) write(*,*) 'Status returned by he5_swdefmap(): ',status c Define indexed dimension mapping c -------------------------------- status = he5_swdefimap(swid, "IndxTrack", 1 "Res2tr", indx) write(*,*) 'Status returned by he5_swdefimap(): ',status c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the swath file c -------------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_definefieldsF_64.f0000755000175000017500000001150012024715435023554 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" HDF-EOS file, (2) c attach to the "Swath1" swath, and (3) define the swath fields c ============================================================= program he5_sw_definefieldsF_64 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swsetfill integer he5_swdefgfld integer he5_prdefine integer he5_swdefdfld integer he5_swdefchunk integer he5_swdefcomp integer he5_swdetach integer he5_swclose integer swfid, swid integer chunkrank integer*8 chunkdims(3) integer compparm(1) integer FAIL parameter (FAIL=-1) c Open the HDF-EOS file, "swath.he5" using "READ/WRITE" access code c ----------------------------------------------------------------- swfid = he5_swopen("swath.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Define Geolocation and Data fields c ---------------------------------- c --------------------------------------------------------------- c We define six fields. The first three, "Time", "Longitude" c and "Latitude" are geolocation fields and thus we use the c geolocation dimensions "GeoTrack" and "GeoXtrack" in the field c definitions. We also must specify the data type using the c standard HDF data type codes. In this example the geolocation c are 4-byte (32 bit) floating point numbers. c c The next three fields are data fields. Note that either c geolocation or data dimensions can be used. c --------------------------------------------------------------- status = he5_swdefgfld(swid, "Time", "GeoTrack", " ", 1 HE5T_NATIVE_DOUBLE, 0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefgfld(swid, "Longitude", 1 "GeoXtrack,GeoTrack"," ",HE5T_NATIVE_FLOAT,0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefgfld(swid,"Latitude", 1 "GeoXtrack,GeoTrack"," ",HE5T_NATIVE_FLOAT,0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swsetfill(swid,"test_string",HE5T_NATIVE_CHAR, 1 'missing') write(*,*) 'Status returned by he5_swsetfill(): ',status status = he5_swdefdfld(swid,"test_string","GeoXtrack", 1 " ",HE5T_NATIVE_CHAR,0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid,"Density","GeoTrack", 1 " ",HE5T_NATIVE_FLOAT,0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid,"Temperature", 1 "GeoXtrack,GeoTrack"," ",HE5T_NATIVE_FLOAT,0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid,"Pressure","Res2xtr,Res2tr", 1 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status chunkrank = 3 chunkdims(1) = 20 chunkdims(2) = 40 chunkdims(3) = 15 compparm(1) = 6 status = he5_swdefchunk(swid,chunkrank,chunkdims) write(*,*) 'Status returned by he5_swdefchunk(): ',status status = he5_swdefcomp(swid,HE5_HDFE_COMP_DEFLATE,compparm) write(*,*) 'Status returned by he5_swdefcomp(): ',status status = he5_swdefdfld(swid, "Spectra", 1 "Res2xtr,Res2tr,Bands"," ", 2 HE5T_NATIVE_DOUBLE,0) write(*,*) 'Status returned by he5_swdefdfld(): ',status c Define Profile Field c ----------------------- status = he5_prdefine(swid, "Profile-2000", 1 "ProfDim", " ", HE5T_NATIVE_INT) write(*,*) 'Status returned by he5_prdefine(): ',status c Define Appendable Field c ----------------------- c status = he5_swdefdfld(swid, "Count", "GeoTrack", c 1 "Unlim", HE5T_NATIVE_INT, 0) endif endif c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_writedataF_32.f0000755000175000017500000003060312024715435023111 0ustar amckinstryamckinstry program he5_pt_writedataF_32 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptwritelevel integer he5_ptfort2c integer he5_ptwrbckptr integer he5_ptwrfwdptr integer he5_ptwriteattr integer he5_ptdetach integer he5_ptclose integer i integer rank, datatype integer attr integer*4 n integer*4 count(1) integer*4 dimens(2) integer*4 fortcount(8),ntype real*4 flt character*80 fieldname,attrname c.....used by Simple Point real*8 time_tt real*8 time(15) real*4 concentration_tt(4) real*4 conc(15,4) real*4 outconc(4,15) character*8 spc_tt character*8 spc(15) c.....used by FixedBuoy Point - Level 0 character*8 desc_tt character*8 desc(3) real*8 lon_tt real*8 lon(3) real*8 lat_tt real*8 lat(3) integer*4 date_tt integer*4 date(3) character*8 id_tt character*8 id(3) c.....used by FixedBuoy Point - Level 1 real*8 time3_tt real*8 time3(20) real*4 rain_tt real*4 rain(20) real*4 temp_tt real*4 temp(20) character*8 id3_tt character*8 id3(20) c.....used by FloatBuoy Point - Level 0 character*8 desc4_tt character*8 desc4(3) integer*4 date4_tt integer*4 date4(3) integer*4 wgt_tt integer*4 wgt(3) character*8 id4_tt character*8 id4(3) c.....used by FloatBuoy Point - Level 1 real*8 time5_tt real*8 time5(25) real*8 lon5_tt real*8 lon5(25) real*8 lat5_tt real*8 lat5(25) real*4 rain5_tt real*4 rain5(25) real*4 temp5_tt real*4 temp5(25) character*8 id5_tt character*8 id5(25) c Open the HDF point file, "point.he5" c ----------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Do Simple Point c --------------- ptid = HE5_PTattach(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Read Simple Point c ----------------- open(unit=1, file='simple.txt', status='OLD') n = 0 do 10 i=1,1000 read(1, 110, end=100) time_tt, concentration_tt(1), 1 concentration_tt(2), 2 concentration_tt(3), 3 concentration_tt(4), 4 spc_tt time(i) = time_tt conc(i,1) = concentration_tt(1) conc(i,2) = concentration_tt(2) conc(i,3) = concentration_tt(3) conc(i,4) = concentration_tt(4) spc(i) = spc_tt n = n + 1 10 continue 100 close(unit=1) 110 format(F13.1,F6.2,F6.2,F6.2,F6.2,2X,A8) count(1) = n fieldname = 'Time' datatype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, time) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c.....Convert array to 'C' order dimens(1) = 15 dimens(2) = 4 rank = 2 datatype = HE5T_NATIVE_FLOAT status = he5_ptfort2c(dimens, rank, datatype, conc, 1outconc) write(*,*) 'Status returned by he5_ptfort2c(): ',status fieldname = 'Concentration' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, outconc) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Species' datatype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, spc) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Do FixedBuoy Point c ------------------ ptid = HE5_PTattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Read FixedBuoy Point c -------------------- open(unit=1, file='fixedBuoy0.txt', status='OLD') n = 0 do 20 i=1,1000 read(1, 210, end=200) desc_tt, lon_tt, lat_tt, date_tt, 1id_tt desc(i) = desc_tt lon(i) = lon_tt lat(i) = lat_tt date(i) = date_tt id(i) = id_tt n = n + 1 20 continue 200 close(unit=1) 210 format(A8,F13.7,F13.7,I7,1X,A8) count(1) = n fieldname = 'Label' datatype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, desc) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Longitude' datatype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, lon) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Latitude' datatype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, lat) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'DeployDate' datatype = HE5T_NATIVE_INT status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, date) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'ID' datatype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, id) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c Read FixedBuoy Point - Level 1 c ------------------------------ open(unit=1, file='fixedBuoy1.txt', status='OLD') n = 0 do 30 i=1,1000 read(1, 310, end=300) time3_tt, rain_tt, temp_tt, id3_tt time3(i) = time3_tt rain(i) = rain_tt temp(i) = temp_tt id3(i) = id3_tt n = n + 1 30 continue 300 close(unit=1) 310 format(F13.2,F8.1,F8.2,3X,A8) count(1) = n fieldname = 'Time' datatype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, time3) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Rainfall' datatype = HE5T_NATIVE_FLOAT status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, rain) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Temperature' datatype = HE5T_NATIVE_FLOAT status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, temp) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'ID' datatype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, id3) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c.....Write forward and backward pointers status = he5_ptwrbckptr(ptid,1) write(*,*) 'Status returned by he5_ptwrbckptr(): ',status status = he5_ptwrfwdptr(ptid,1) write(*,*) 'Status returned by he5_ptwrfwdptr(): ',status c Write attributes to "Fixed Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_int' ntype = HE5T_NATIVE_INT fortcount(1) = 1 attr = 9999 status = he5_ptwriteattr(ptid,attrname,ntype,fortcount, 1attr) write(*,*) 'Status returned by he5_ptwriteattr(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Do FloatBuoy Point c ------------------ ptid = HE5_PTattach(ptfid, "FloatBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Read FloatBuoy Point - Level 0 c ------------------------------ open(unit=1, file='floatBuoy0.txt', status='OLD') n = 0 do 40 i=1,1000 read(1, 410, end=400) desc4_tt, date4_tt, wgt_tt, id4_tt desc4(i) = desc4_tt date4(i) = date4_tt wgt(i) = wgt_tt id4(i) = id4_tt n = n + 1 40 continue 400 close(unit=1) 410 format(A8,I8,I7,2X,A8) count(1) = n fieldname = 'Label' datatype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, desc4) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'DeployDate' datatype = HE5T_NATIVE_INT status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, date4) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Weight' datatype = HE5T_NATIVE_INT status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, wgt) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'ID' datatype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, id4) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c Read FixedBuoy Point - Level 1 c ------------------------------ open(unit=1, file='floatBuoy1.txt', status='OLD') n = 0 do 50 i=1,1000 read(1, 510, end=500) time5_tt, lon5_tt, lat5_tt, 1rain5_tt,temp5_tt,id5_tt time5(i) = time5_tt lon5(i) = lon5_tt lat5(i) = lat5_tt rain5(i) = rain5_tt temp5(i) = temp5_tt id5(i) = id5_tt n = n + 1 50 continue 500 close(unit=1) 510 format(F13.1,F13.6,F13.6,F8.1,F8.2,3X,A8) count(1) = n fieldname = 'Time' datatype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, time5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Longitude' datatype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, lon5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Latitude' datatype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, lat5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Rainfall' datatype = HE5T_NATIVE_FLOAT status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, rain5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Temperature' datatype = HE5T_NATIVE_FLOAT status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, temp5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'ID' datatype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, id5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c.....Write forward and backward pointers status = he5_ptwrbckptr(ptid,1) write(*,*) 'Status returned by he5_ptwrbckptr(): ',status status = he5_ptwrfwdptr(ptid,1) write(*,*) 'Status returned by he5_ptwrfwdptr(): ',status c Write attributes to "Float Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_float' ntype = HE5T_NATIVE_FLOAT fortcount(1) = 1 flt = -7.5 status = he5_ptwriteattr(ptid,attrname, 1ntype,fortcount,flt) write(*,*) 'Status returned by he5_ptwriteattr(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_info.c0000755000175000017500000002454612024715435021462 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* In this program we retrieve information about (1) dimensions, (2) */ /* dimension mappings (geolocation relations), (3) swath fields, */ /* and (4) the global/group/local attributes */ /* ------------------------------------------------------------------- */ int main() { herr_t status = FAIL; int i, rk, *rank, rk1, chunk_rank; hid_t swfid = FAIL, SWid = FAIL; hid_t ntype[10]; hid_t dtype = FAIL; hid_t dtype_char = FAIL; hid_t dtype1 = FAIL; long ndims, strbufsize, nmaps, nflds, nattr; long *off, *inc, *indx, offset, incr; hsize_t *sizes, dimsize; hsize_t dim[8], *dims, dim1[8], chunk_dim[8]; hsize_t n, nelem = 0; char version[80] = {0}; char *dimname, *dimmap, *fieldlist; char dimlist[80], attrlist[80], dimlist1[80]; int level[ 5 ] = { 0, 0, 0, 0, 0 }; int code = 0; /* Open the Swath HDF-EOS File "Swath.h5" for reading only */ /* ------------------------------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDONLY); if (swfid != FAIL) { HE5_EHgetversion(swfid, version); printf("HDF-EOS library version: \"%s\" \n", version); /* Attach the swath "Swath1" */ /* ------------------------ */ SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { /* Inquire Dimensions */ /* ------------------ */ ndims = HE5_SWnentries(SWid, HE5_HDFE_NENTDIM, &strbufsize); dims = (hsize_t *) calloc(ndims, sizeof(hsize_t)); dimname = (char *) calloc(strbufsize + 1, 1); ndims = HE5_SWinqdims(SWid, dimname, dims); printf("Dimension list: %s\n", dimname); for (i = 0; i < ndims; i++) printf("dim size: %li\n", (long)dims[i]); free(dims); free(dimname); /* Inquire Dimension Mappings */ /* -------------------------- */ nmaps = HE5_SWnentries(SWid, HE5_HDFE_NENTMAP, &strbufsize); off = (long *)calloc(nmaps, sizeof(long)); inc = (long *)calloc(nmaps, sizeof(long)); dimmap = (char *)calloc(strbufsize + 1, 1); nmaps = HE5_SWinqmaps(SWid, dimmap, off, inc); printf("Dimension map: %s\n", dimmap); for (i = 0; i < nmaps; i++) printf("offset increment: %li %li\n", off[i], inc[i]); free(off); free(inc); free(dimmap); /* Inquire Indexed Dimension Mappings */ /* ---------------------------------- */ nmaps = HE5_SWnentries(SWid, HE5_HDFE_NENTIMAP, &strbufsize); sizes = (hsize_t *) calloc(nmaps, sizeof(hsize_t)); dimmap = (char *) calloc(strbufsize + 1, 1); nmaps = HE5_SWinqidxmaps(SWid, dimmap, sizes); printf("Index Dimension map: %s\n", dimmap); for (i = 0; i < nmaps; i++) printf("sizes: %lu\n", (unsigned long)sizes[i]); free(sizes); free(dimmap); /* Inquire Geolocation Fields */ /* -------------------------- */ nflds = HE5_SWnentries(SWid, HE5_HDFE_NENTGFLD, &strbufsize); rank = (int *)calloc(nflds, sizeof(int)); fieldlist = (char *) calloc(strbufsize + 1, 1); nflds = HE5_SWinqgeofields(SWid, fieldlist, rank, ntype); printf("geo fields: %s\n", fieldlist); for (i = 0; i < nflds; i++) printf("Rank: %d Data type: %d\n", rank[i], ntype[i]); free(rank); free(fieldlist); /* Inquire Data Fields */ /* ------------------- */ nflds = HE5_SWnentries(SWid, HE5_HDFE_NENTDFLD, &strbufsize); rank = (int *) calloc(nflds, sizeof(int)); fieldlist = (char *) calloc(strbufsize + 1, 1); nflds = HE5_SWinqdatafields(SWid, fieldlist, rank, ntype); printf("data fields: %s\n", fieldlist); for (i = 0; i < nflds; i++) printf("Rank: %d Data type: %d\n", rank[i], ntype[i]); free(rank); free(fieldlist); /* Get info on "GeoTrack" dim */ /* -------------------------- */ dimsize = HE5_SWdiminfo(SWid, "GeoTrack"); printf("Size of GeoTrack: %lu\n", (unsigned long)dimsize); dimsize = HE5_SWdiminfo(SWid, "Unlim"); printf("Size of Unlim: %li\n", (long)dimsize); /* Get info on "GeoTrack/Res2tr" mapping */ /* ------------------------------------- */ status = HE5_SWmapinfo(SWid, "GeoTrack", "Res2tr", &offset, &incr); printf("Mapping Offset: %li\n", offset); printf("Mapping Increment: %li\n", incr); /* Get info on "IndxTrack/Res2tr" indexed mapping */ /* ---------------------------------------------- */ dimsize = HE5_SWdiminfo(SWid, "IndxTrack"); indx = (long *) calloc(dimsize, sizeof(long)); n = HE5_SWidxmapinfo(SWid, "IndxTrack", "Res2tr", indx); for (i = 0; i < n; i++) printf("Index Mapping Entry %d: %li\n", i+1, indx[i]); free(indx); /* Get info on "Longitude" Field */ /* ----------------------------- */ status = HE5_SWfieldinfo(SWid, "Longitude", &rk, dim, &dtype, dimlist, NULL); printf("Longitude Rank: %d\n", rk); printf("Longitude NumberType: %d\n", dtype); printf("Longitude Dimension List: %s\n", dimlist); for (i = 0; i < rk; i++) printf("Dimension %d: %lu\n",i+1,(unsigned long)dim[i]); status = HE5_SWfieldinfo(SWid, "Test_string", &rk1, dim1, &dtype_char, dimlist1, NULL); printf("Test_string Rank: %d\n", rk1); printf("Test_string NumberType: %d\n", dtype_char); printf("Test_string Dimension List: %s\n", dimlist1); for (i = 0; i < rk1; i++) printf("Dimension %d: %lu\n",i+1,(unsigned long)dim1[i]); dtype1 = FAIL; /* Get info about Global Attributes */ /* -------------------------------- */ printf("Global Attribute:\n"); status = HE5_SWattrinfo(SWid,"GlobalAttribute",&dtype1, &nelem); printf("\t\t Data type: %d\n", dtype1); printf("\t\t Number of elements: %lu \n", (unsigned long)nelem); nelem = 0; status = HE5_SWattrinfo(SWid,"GLOBAL_CHAR_ATTR",&dtype1, &nelem); printf("\t\t Data type: %d\n", dtype1); printf("\t\t The size of string: %lu \n", (unsigned long)nelem); nelem = 0; status = HE5_SWattrinfo(SWid,"GLOBAL_DOUBLE_ATTR",&dtype1, &nelem); printf("\t\t Data type: %d\n", dtype1); printf("\t\t Number of elements: %lu \n", (unsigned long)nelem); nelem = 0; dtype1 = FAIL; /* Get info about Group Attributes */ /* ------------------------------- */ printf("Group Attribute:\n"); status = HE5_SWgrpattrinfo(SWid,"GroupAttribute",&dtype1,&nelem); printf("\t\t Data type: %d\n", dtype1); printf("\t\t Number of elements: %lu \n", (unsigned long)nelem); nelem = 777; dtype1 = FAIL; /* Get info about Local Attributes */ /* ------------------------------- */ printf("Local Attribute:\n"); status = HE5_SWlocattrinfo(SWid,"Density", "LocalAttribute_1",&dtype1,&nelem); printf("\t\t Data type: %d\n", dtype1); printf("\t\t Number of elements: %lu \n", (unsigned long)nelem); printf("Local Attribute:\n"); status = HE5_SWlocattrinfo(SWid,"Longitude", "LocalAttribute_2",&dtype1,&nelem); printf("\t\t Data type: %d\n", dtype1); printf("\t\t Number of elements: %lu \n", (unsigned long)nelem); nelem = 0; status = HE5_SWlocattrinfo(SWid,"Time", "LOCAL_CHAR_ATTR",&dtype1,&nelem); printf("\t\t Data type: %d\n", dtype1); printf("\t\t The size of string: %lu \n", (unsigned long)nelem); /* Inquire Global Attributes */ /* ------------------------- */ printf("Global Attributes:\n"); nattr = HE5_SWinqattrs(SWid, NULL, &strbufsize); printf("\t\t Number of attributes: %li \n", nattr); printf("\t\t String length of attribute list: %li \n", strbufsize); n = HE5_SWinqattrs(SWid, attrlist, &strbufsize); printf("\t\t Attribute list: %s \n", attrlist); /* Inquire Group Attributes */ /* ------------------------ */ strbufsize = 0; printf("\n"); printf("Group Attributes:\n"); nattr = HE5_SWinqgrpattrs(SWid, NULL, &strbufsize); printf("\t\t Number of attributes: %li \n", nattr); printf("\t\t String length of attribute list: %li \n", strbufsize); strcpy(attrlist,""); nattr = HE5_SWinqgrpattrs(SWid, attrlist, &strbufsize); printf("\t\t Attribute list: %s \n", attrlist); /* Inquire Local Attributes */ /* ------------------------ */ strbufsize = 0; printf("\n"); printf("Local Attributes:\n"); nattr = HE5_SWinqlocattrs(SWid, "Density", NULL, &strbufsize); printf("\t\t Number of attributes: %li \n", nattr); printf("\t\t String length of attribute list: %li \n", strbufsize); strcpy(attrlist,""); nattr = HE5_SWinqlocattrs(SWid, "Density", attrlist, &strbufsize); printf("\t\t Attribute list: %s \n", attrlist); nattr = HE5_SWinqlocattrs(SWid, "Longitude", NULL, &strbufsize); printf("\t\t Number of attributes: %li \n", nattr); printf("\t\t String length of attribute list: %li \n", strbufsize); strcpy(attrlist,""); nattr = HE5_SWinqlocattrs(SWid, "Longitude", attrlist, &strbufsize); printf("\t\t Attribute list: %s \n", attrlist); status = HE5_SWcompinfo(SWid,"Spectra",&code,level); printf("\n"); printf("\t\t Compression scheme Compression level\n"); printf("\t\t %d, %d\n", code, level[0]); status = HE5_SWchunkinfo(SWid,"Spectra",&chunk_rank,chunk_dim); printf("\n"); printf("\t\t Spectra chunk rank: %d\n", chunk_rank); for (i = 0; i < chunk_rank; i++) printf("\t\t Spectra chunk dimension %d: %lu\n",i+1, (unsigned long)chunk_dim[i]); } } status = HE5_SWdetach(SWid); status = HE5_SWclose(swfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_definelevelsF_64.f0000755000175000017500000001604112024715435023577 0ustar amckinstryamckinstry program he5_pt_definelevelsF_64 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptdeflevel integer he5_ptdeflinkage integer he5_ptdetach integer he5_ptclose integer rank_1(3) integer rank_2(5) integer rank_3(4) integer rank_4(4) integer rank_5(6) integer dtype_1(3) integer dtype_2(5) integer dtype_3(4) integer dtype_4(4) integer dtype_5(6) integer array_1(3) integer array_2(5) integer array_3(4) integer array_4(4) integer array_5(6) integer*8 dims_1(3,1) integer*8 dims_2(5,1) integer*8 dims_3(4,1) integer*8 dims_4(4,1) integer*8 dims_5(6,1) character*240 fieldlist1 character*240 fieldlist2 character*240 fieldlist3 character*240 fieldlist4 character*240 fieldlist5 character*80 levelname character*20 parent character*20 child character*20 linkfield c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = HE5_PTattach(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Populate input information structure c ------------------------------------ levelname = 'Sensor' rank_1(1) = 1 rank_1(2) = 1 rank_1(3) = 1 fieldlist1 = 'Time,Concentration,Species' dtype_1(1) = HE5T_NATIVE_DOUBLE dtype_1(2) = HE5T_NATIVE_FLOAT dtype_1(3) = HE5T_NATIVE_CHAR array_1(1) = 0 array_1(2) = 1 array_1(3) = 1 dims_1(1,1) = 1 dims_1(2,1) = 4 dims_1(3,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_1, fieldlist1, 1dims_1, dtype_1, array_1) write(*,*) 'Status returned by he5_ptdeflevel(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Read Fixed Buoy Point c --------------------- ptid = HE5_PTattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Populate input information structure c ------------------------------------ levelname = 'Desc-Loc' rank_2(1) = 1 rank_2(2) = 1 rank_2(3) = 1 rank_2(4) = 1 rank_2(5) = 1 fieldlist2 = 'Label,Longitude,Latitude,DeployDate,ID' dtype_2(1) = HE5T_NATIVE_CHAR dtype_2(2) = HE5T_NATIVE_DOUBLE dtype_2(3) = HE5T_NATIVE_DOUBLE dtype_2(4) = HE5T_NATIVE_INT dtype_2(5) = HE5T_NATIVE_CHAR array_2(1) = 1 array_2(2) = 0 array_2(3) = 0 array_2(4) = 0 array_2(5) = 1 dims_2(1,1) = 8 dims_2(2,1) = 1 dims_2(3,1) = 1 dims_2(4,1) = 1 dims_2(5,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_2, fieldlist2, 1dims_2, dtype_2, array_2) write(*,*) 'Status returned by he5_ptdeflevel(): ',status c Populate input information structure c ------------------------------------ levelname = 'Observations' rank_3(1) = 1 rank_3(2) = 1 rank_3(3) = 1 rank_3(4) = 1 fieldlist3 = 'Time,Rainfall,Temperature,ID' dtype_3(1) = HE5T_NATIVE_DOUBLE dtype_3(2) = HE5T_NATIVE_FLOAT dtype_3(3) = HE5T_NATIVE_FLOAT dtype_3(4) = HE5T_NATIVE_CHAR array_3(1) = 0 array_3(2) = 0 array_3(3) = 0 array_3(4) = 1 dims_3(1,1) = 1 dims_3(2,1) = 1 dims_3(3,1) = 1 dims_3(4,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_3, fieldlist3, 1dims_3, dtype_3, array_3) write(*,*) 'Status ID returned by he5_ptdeflevel(): ',status parent = 'Desc-Loc' child = 'Observations' linkfield = 'ID' status = he5_ptdeflinkage(ptid, parent, child, linkfield) write(*,*) 'Status ID returned by he5_ptdeflinkage(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Read Floating Buoy Point c --------------------- ptid = HE5_PTattach(ptfid, "FloatBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Populate input information structure c ------------------------------------ levelname = 'Description' rank_4(1) = 1 rank_4(2) = 1 rank_4(3) = 1 rank_4(4) = 1 fieldlist4 = 'Label,DeployDate,Weight,ID' dtype_4(1) = HE5T_NATIVE_CHAR dtype_4(2) = HE5T_NATIVE_INT dtype_4(3) = HE5T_NATIVE_INT dtype_4(4) = HE5T_NATIVE_CHAR array_4(1) = 1 array_4(2) = 0 array_4(3) = 0 array_4(4) = 1 dims_4(1,1) = 8 dims_4(2,1) = 1 dims_4(3,1) = 1 dims_4(4,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_4, fieldlist4, 1dims_4, dtype_4, array_4) write(*,*) 'Status returned by he5_ptdeflevel(): ',status c Populate input information structure c ------------------------------------ levelname = 'Measurements' rank_5(1) = 1 rank_5(2) = 1 rank_5(3) = 1 rank_5(4) = 1 rank_5(5) = 1 rank_5(6) = 1 fieldlist5 = 'Time,Longitude,Latitude,Rainfall,Temperature,ID' dtype_5(1) = HE5T_NATIVE_DOUBLE dtype_5(2) = HE5T_NATIVE_DOUBLE dtype_5(3) = HE5T_NATIVE_DOUBLE dtype_5(4) = HE5T_NATIVE_FLOAT dtype_5(5) = HE5T_NATIVE_FLOAT dtype_5(6) = HE5T_NATIVE_CHAR array_5(1) = 0 array_5(2) = 0 array_5(3) = 0 array_5(4) = 0 array_5(5) = 0 array_5(6) = 1 dims_5(1,1) = 1 dims_5(2,1) = 1 dims_5(3,1) = 1 dims_5(4,1) = 1 dims_5(5,1) = 1 dims_5(6,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_5, fieldlist5, 1dims_5, dtype_5, array_5) write(*,*) 'Status returned by he5_ptdeflevel(): ',status parent = 'Description' child = 'Measurements' linkfield = 'ID' status = he5_ptdeflinkage(ptid, parent, child, linkfield) write(*,*) 'Status ID returned by he5_ptdeflinkage(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_writedataF_32.f0000755000175000017500000000441412024715435023101 0ustar amckinstryamckinstry! In this program we (1) open the "za.he5" file, (2) attach to ! the "ZA1" za, and (3) write data to the "Spectra" fields program he5_za_writedataF_32 implicit none include 'hdfeos5.inc' integer status integer he5_zaopen integer he5_zaattach integer he5_zawrite integer he5_zawrattr integer he5_zadetach integer he5_zaclose integer zafid, zaid integer i, j, k integer*4 attr(4) integer*4 start(3) integer*4 stride(3) integer*4 count(3) real*8 plane(800) integer FAIL parameter (FAIL=-1) ! Open HDF-EOS file, "za.he5" ! --------------------------- zafid = he5_zaopen("za.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Write Spectra one plane at a time ! Value is 100 * track index + band index (0-based) ! ------------------------------------------------- start(1) = 0 start(2) = 0 count(1) = 20 count(2) = 40 count(3) = 1 stride(1) = 1 stride(2) = 1 stride(3) = 1 do i=1,15 start(3) = i - 1 do j=1,40 do k=1,20 plane((j-1)*20+k) = (j-1)*100 + i-1 enddo enddo status = he5_zawrite(zaid,"Spectra",start, 1 stride,count,plane) enddo write(*,*) 'Status returned by he5_zawrite(): ',status ! Write User defined Attribute ! ---------------------------- attr(1) = 3 attr(2) = 5 attr(3) = 7 attr(4) = 11 count(1) = 4 status = he5_zawrattr(zaid,"TestAttr",HE5T_NATIVE_INT, 1 count,attr) endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_infoF_32.f0000755000175000017500000000623012024715435022046 0ustar amckinstryamckinstry! In this program we retrieve (1) information about the ! dimensions, (2) the za fields program he5_za_infoF_32 implicit none include 'hdfeos5.inc' integer i integer status integer zafid, zaid integer he5_zaopen integer he5_zaattach integer he5_zainfo integer he5_zachunkinfo integer he5_zadetach integer he5_zaclose integer rank(32) integer ntype(32) integer rk integer nt integer*4 he5_zainqdims integer*4 he5_zainquire integer*4 he5_zadiminfo integer*4 ndims integer*4 nflds integer*4 dims(32) integer*4 dimsize character*72 dimname character*72 dimlist character*72 maxdimlst character*72 fieldlist integer chunkrank integer*4 chunkdims(32) integer FAIL parameter (FAIL=-1) ! Open the "za.he5" file for "read only" access ! --------------------------------------------- zafid = he5_zaopen("za.he5", HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then ! Attach the za ! ------------- zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Inquire Dimensions ! ------------------ ndims = he5_zainqdims(zaid, dimname, dims) write(*,*) 'Dimension list: ', dimname do i = 1,ndims write(*,*) 'dim size: ', dims(i) enddo write(*,*) ! Inquire Data Fields ! ------------------- nflds = he5_zainquire(zaid, fieldlist, rank, ntype) write(*,*) 'Data Fieldlist: ', fieldlist do i=1,nflds write(*,*) 'field rank & datatype: ',rank(i),ntype(i) enddo write(*,*) ! Get info on "MyTrack1" dim ! -------------------------- dimsize = he5_zadiminfo(zaid, "MyTrack1") write(*,*) 'Size of MyTrack1: ', dimsize write(*,*) ! Get info on "Spectra" Field ! --------------------------- status = he5_zainfo(zaid,"Spectra",rk,dims,nt, 1 dimlist,maxdimlst) write(*,*) 'Spectra Rank: ', rk write(*,*) 'Spectra NumberType: ', nt write(*,*) 'Spectra Dimlist: ', dimlist write(*,*) 'Spectra Max Dimlist: ', maxdimlst do i=1,rk write(*,*) 'Dimension ',i,dims(i) enddo status = he5_zachunkinfo(zaid,"Spectra",chunkrank, 1 chunkdims) write(*,*) 'Spectra Chunking Rank: ', chunkrank do i=1,chunkrank write(*,*) 'Chunking Dimension ',i,chunkdims(i) enddo endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_writedimscale.c0000644000175000017500000002176112024715435023315 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will open an HDF-EOS file and attach to UTM and Polar * Stereographic grid structures within the file to write a dimension scales */ int main() { herr_t status = FAIL; hid_t gdfid = FAIL; hid_t GDid1 = FAIL; hid_t GDid2 = FAIL; hid_t GDid3 = FAIL; int data[10]={3,6,9,12,15,18,23,26,29,32}; int bands[10]={12,14,18}; char label[16]; char unit[16]; char format[16]; long xdim, ydim; int ntime; hsize_t count[3]; /* * We first open the HDF-EOS grid file, "Grid.h5". Because this file * already exist and we wish to write to it, we use the H5F_ACC_RDWR access * code in the open statement. The HE5_GDopen routine returns the grid file * id, gdfid, which is used to identify the file in subsequent routines. */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); /* * If the grid file cannot be found, HE5_GDopen will return -1 for the file * handle (gdfid). We there check that this is not the case before * proceeding with the other routines. * * The HE5_GDattach routine returns the handle to the existing grid "Grid1", * GDid. If the grid is not found, HE5_GDattach returns -1 for the handle. */ if (gdfid != FAIL) { GDid1 = HE5_GDattach(gdfid, "UTMGrid"); /* the field Pollution has Time,YDim,XDim dimensions. xdim = 120; ydim = 200; Time dim is set to 10 */ if (GDid1 == -1) { printf("\t\tError: Cannot attach to grid \"UTMGrid\"\n"); HE5_GDclose(gdfid); return -1; } xdim = 120; ydim = 200; ntime = 10; status = HE5_GDsetdimscale(GDid1, "Pollution", "XDim", xdim, H5T_NATIVE_DOUBLE, NULL); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale for XDim dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } status = HE5_GDsetdimscale(GDid1, "Pollution", "Time", ntime, H5T_NATIVE_INT, data); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale for Time dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } status = HE5_GDsetdimscale(GDid1, "Vegetation", "XDim", xdim, H5T_NATIVE_DOUBLE, NULL); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale for XDim dimemnsion in field \"Vegetation\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } status = HE5_GDsetdimscale(GDid1, "Vegetation", "YDim", ydim, H5T_NATIVE_DOUBLE, NULL); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale for XDim dimemnsion in field \"Vegetation\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } strcpy(label, "X Dimension"); strcpy(unit, "meters"); strcpy(format, "F7.2"); count[0]= 12; status = HE5_GDwritedscaleattr(GDid1, "XDim", "label", H5T_NATIVE_CHAR, count, label); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for XDim dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } count[0]= 6; status = HE5_GDwritedscaleattr(GDid1, "XDim", "unit", H5T_NATIVE_CHAR, count, unit); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for XDim dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } count[0]= 4; status = HE5_GDwritedscaleattr(GDid1, "XDim", "format", H5T_NATIVE_CHAR, count, format); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for XDim dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } float datbuf_f[1] = {-999.0}; count[0]= 1; status = HE5_GDwritedscaleattr(GDid1, "XDim", "MissingValue", H5T_NATIVE_FLOAT, count, datbuf_f); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for XDim dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } int datbuf_i[3] = {-999,0,999}; count[0]= 3; status = HE5_GDwritedscaleattr(GDid1, "XDim", "IntValues", H5T_NATIVE_INT, count, datbuf_i); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for XDim dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } strcpy(label, "Time Dim"); strcpy(unit, "s"); strcpy(format, "F2.3"); count[0]= 8; status = HE5_GDwritedscaleattr(GDid1, "Time", "label", H5T_NATIVE_CHAR, count, label); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Time dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } count[0]= 1; status = HE5_GDwritedscaleattr(GDid1, "Time", "unit", H5T_NATIVE_CHAR, count, unit); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Time dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } count[0]= 4; status = HE5_GDwritedscaleattr(GDid1, "Time", "format", H5T_NATIVE_CHAR, count, format); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Time dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } int datbuf_i2[2] = {-999, +999}; count[0] = 2; status = HE5_GDwritedscaleattr(GDid1, "Time", "MissingValue", H5T_NATIVE_INT, count, datbuf_i2); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Time dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } HE5_GDdetach(GDid1); /* the field Spectra has Bands,YDim,XDim dimensions. xdim = 100; ydim = 100; Bands dim is set to 3 */ GDid2 = HE5_GDattach(gdfid, "PolarGrid"); if (GDid2 == -1) { printf("\t\tError: Cannot attach to grid \"PolarGrid\"\n"); HE5_GDclose(gdfid); return -1; } ydim = 100; int nbands = 3; status = HE5_GDsetdimscale(GDid2, "Spectra", "YDim", ydim, H5T_NATIVE_DOUBLE, NULL); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale for YDim dimemnsion in field \"Spectra\"\n"); HE5_GDdetach(GDid2); HE5_GDclose(gdfid); return -1; } status = HE5_GDsetdimscale(GDid2, "Spectra", "Bands", nbands, H5T_NATIVE_INT, bands); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale for Bands dimemnsion in field \"Spectra\"\n"); HE5_GDdetach(GDid2); HE5_GDclose(gdfid); return -1; } strcpy(label, "Y Dim"); strcpy(unit, "meters"); strcpy(format, "F7.2"); count[0]= 5; status = HE5_GDwritedscaleattr(GDid2, "YDim", "Label", H5T_NATIVE_CHAR, count, label); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for XDim dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid2); HE5_GDclose(gdfid); return -1; } strcpy(label, "Bands"); strcpy(unit, "None"); strcpy(format, "F7.2"); count[0] = 4; status = HE5_GDwritedscaleattr(GDid2, "Bands", "Units", H5T_NATIVE_CHAR, count, unit); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Time dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid2); HE5_GDclose(gdfid); return -1; } HE5_GDdetach(GDid2); /* the field GeoSpectra has YDim,XDim dimensions. xdim = 100; ydim = 100; Bands dim is set to 3 */ xdim = 60; ydim = 40; GDid3 = HE5_GDattach(gdfid, "GEOGrid"); if (GDid3 == -1) { printf("\t\tError: Cannot attach to grid \"GEOGrid\"\n"); HE5_GDclose(gdfid); return -1; } status = HE5_GDsetdimscale(GDid3, "GeoSpectra", "YDim", ydim, H5T_NATIVE_DOUBLE, NULL); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale for YDim dimemnsion in field \"GeoSpectra\"\n"); HE5_GDdetach(GDid3); HE5_GDclose(gdfid); return -1; } strcpy(label, "Y Dimension"); strcpy(unit, "Decimal Degrees"); strcpy(format, "F7.2"); count[0] = 15; status = HE5_GDwritedscaleattr(GDid3, "YDim", "Units", H5T_NATIVE_CHAR, count, unit); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for YDim dimemnsion in field \"GeoSpectra\"\n"); HE5_GDdetach(GDid3); HE5_GDclose(gdfid); return -1; } HE5_GDdetach(GDid3); HE5_GDclose(gdfid); return 0; } } hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_updatelevelsF_32.f0000755000175000017500000000413112024715435023617 0ustar amckinstryamckinstry program he5_pt_updatelevelsF_32 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer level integer he5_ptopen integer he5_ptattach integer he5_ptupdatelevel integer he5_ptdetach integer he5_ptclose integer dtype(3) integer*4 recs(32) integer*4 nrec real*4 conc_tt(4) real*8 time_tt character*8 spc_tt character*80 fieldname c Open the HDF point file, "point.he5" c ------------------------------------ ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = HE5_PTattach(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid dtype(1) = HE5T_NATIVE_DOUBLE dtype(2) = HE5T_NATIVE_FLOAT dtype(3) = HE5T_NATIVE_CHAR nrec = 1 recs(1) = 0 level = 0 fieldname = 'Concentration' conc_tt(1) = 1.11 conc_tt(2) = 2.22 conc_tt(3) = 3.33 conc_tt(4) = 4.44 status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(2), conc_tt) write(*,*) 'Status returned by he5_ptupdatelevel(): ',status fieldname = 'Time' time_tt = 13131313.0 status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(1), time_tt) write(*,*) 'Status returned by he5_ptupdatelevel(): ',status fieldname = 'Species' spc_tt = 'AM' status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(3), spc_tt) write(*,*) 'Status returned by he5_ptupdatelevel(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_definelevelsF_32.f0000755000175000017500000001607212024715435023576 0ustar amckinstryamckinstry program he5_pt_definelevelsF_32 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptdeflevel integer he5_ptdeflinkage integer he5_ptdetach integer he5_ptclose integer rank_1(3) integer rank_2(5) integer rank_3(4) integer rank_4(4) integer rank_5(6) integer dtype_1(3) integer dtype_2(5) integer dtype_3(4) integer dtype_4(4) integer dtype_5(6) integer array_1(3) integer array_2(5) integer array_3(4) integer array_4(4) integer array_5(6) integer*4 dims_1(3,1) integer*4 dims_2(5,1) integer*4 dims_3(4,1) integer*4 dims_4(4,1) integer*4 dims_5(6,1) character*240 fieldlist1 character*240 fieldlist2 character*240 fieldlist3 character*240 fieldlist4 character*240 fieldlist5 character*80 levelname character*20 parent character*20 child character*20 linkfield c Open the HDF point file, "point.he5" c ----------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = HE5_PTattach(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Populate input information structure c ------------------------------------ levelname = 'Sensor' rank_1(1) = 1 rank_1(2) = 1 rank_1(3) = 1 fieldlist1 = 'Time,Concentration,Species' dtype_1(1) = HE5T_NATIVE_DOUBLE dtype_1(2) = HE5T_NATIVE_FLOAT dtype_1(3) = HE5T_NATIVE_CHAR array_1(1) = 0 array_1(2) = 1 array_1(3) = 1 dims_1(1,1) = 1 dims_1(2,1) = 4 dims_1(3,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_1, fieldlist1, 1dims_1, dtype_1, array_1) write(*,*) 'Status returned by he5_ptdeflevel(): ',status c Close out the point interface c ----------------------------- status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Read Fixed Buoy Point c --------------------- ptid = HE5_PTattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Populate input information structure c ------------------------------------ levelname = 'Desc-Loc' rank_2(1) = 1 rank_2(2) = 1 rank_2(3) = 1 rank_2(4) = 1 rank_2(5) = 1 fieldlist2 = 'Label,Longitude,Latitude,DeployDate,ID' dtype_2(1) = HE5T_NATIVE_CHAR dtype_2(2) = HE5T_NATIVE_DOUBLE dtype_2(3) = HE5T_NATIVE_DOUBLE dtype_2(4) = HE5T_NATIVE_INT dtype_2(5) = HE5T_NATIVE_CHAR array_2(1) = 1 array_2(2) = 0 array_2(3) = 0 array_2(4) = 0 array_2(5) = 1 dims_2(1,1) = 8 dims_2(2,1) = 1 dims_2(3,1) = 1 dims_2(4,1) = 1 dims_2(5,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_2, fieldlist2, 1dims_2, dtype_2, array_2) write(*,*) 'Status returned by he5_ptdeflevel(): ',status c Populate input information structure c ------------------------------------ levelname = 'Observations' rank_3(1) = 1 rank_3(2) = 1 rank_3(3) = 1 rank_3(4) = 1 fieldlist3 = 'Time,Rainfall,Temperature,ID' dtype_3(1) = HE5T_NATIVE_DOUBLE dtype_3(2) = HE5T_NATIVE_FLOAT dtype_3(3) = HE5T_NATIVE_FLOAT dtype_3(4) = HE5T_NATIVE_CHAR array_3(1) = 0 array_3(2) = 0 array_3(3) = 0 array_3(4) = 1 dims_3(1,1) = 1 dims_3(2,1) = 1 dims_3(3,1) = 1 dims_3(4,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_3, fieldlist3, 1dims_3, dtype_3, array_3) write(*,*) 'Status ID returned by he5_ptdeflevel(): ',status parent = 'Desc-Loc' child = 'Observations' linkfield = 'ID' status = he5_ptdeflinkage(ptid, parent, child, linkfield) write(*,*) 'Status ID returned by he5_ptdeflinkage(): ',status c Close out the point interface c ----------------------------- status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Read Floating Buoy Point c --------------------- ptid = HE5_PTattach(ptfid, "FloatBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Populate input information structure c ------------------------------------ levelname = 'Description' rank_4(1) = 1 rank_4(2) = 1 rank_4(3) = 1 rank_4(4) = 1 fieldlist4 = 'Label,DeployDate,Weight,ID' dtype_4(1) = HE5T_NATIVE_CHAR dtype_4(2) = HE5T_NATIVE_INT dtype_4(3) = HE5T_NATIVE_INT dtype_4(4) = HE5T_NATIVE_CHAR array_4(1) = 1 array_4(2) = 0 array_4(3) = 0 array_4(4) = 1 dims_4(1,1) = 8 dims_4(2,1) = 1 dims_4(3,1) = 1 dims_4(4,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_4, fieldlist4, 1dims_4, dtype_4, array_4) write(*,*) 'Status returned by he5_ptdeflevel(): ',status c Populate input information structure c ------------------------------------ levelname = 'Measurements' rank_5(1) = 1 rank_5(2) = 1 rank_5(3) = 1 rank_5(4) = 1 rank_5(5) = 1 rank_5(6) = 1 fieldlist5 = 'Time,Longitude,Latitude,Rainfall,Temperature,ID' dtype_5(1) = HE5T_NATIVE_DOUBLE dtype_5(2) = HE5T_NATIVE_DOUBLE dtype_5(3) = HE5T_NATIVE_DOUBLE dtype_5(4) = HE5T_NATIVE_FLOAT dtype_5(5) = HE5T_NATIVE_FLOAT dtype_5(6) = HE5T_NATIVE_CHAR array_5(1) = 0 array_5(2) = 0 array_5(3) = 0 array_5(4) = 0 array_5(5) = 0 array_5(6) = 1 dims_5(1,1) = 1 dims_5(2,1) = 1 dims_5(3,1) = 1 dims_5(4,1) = 1 dims_5(5,1) = 1 dims_5(6,1) = 8 status = he5_ptdeflevel(ptid, levelname, rank_5, fieldlist5, 1dims_5, dtype_5, array_5) write(*,*) 'Status returned by he5_ptdeflevel(): ',status parent = 'Description' child = 'Measurements' linkfield = 'ID' status = he5_ptdeflinkage(ptid, parent, child, linkfield) write(*,*) 'Status ID returned by he5_ptdeflinkage(): ',status c Close out the point interface c ----------------------------- status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_subset.c0000755000175000017500000000637412024715435022033 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* In this program we (1) open the "Swath.h5" HDF-EOS file, (2) attach to */ /* the "Swath1", and (3) read data from the "Spectra" and "Time" fields */ /* ----------------------------------------------------------------------- */ int main() { herr_t status = FAIL; int i, j, rank = 0; hid_t swfid = FAIL, SWid = FAIL; hid_t regionID = FAIL, periodID = FAIL; hid_t *ntype; size_t size = 0; hsize_t dims[8]; double cornerlon[2], cornerlat[2]; double *datbuf, start_time, stop_time; /* Open the HDF-EOS swath file, "Swath.h5" */ /* --------------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); if (swfid != FAIL) { /* Attach to the "Swath1" swath */ /* ---------------------------- */ SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { cornerlon[0] = 3. ; cornerlat[0] = 5. ; cornerlon[1] = 7. ; cornerlat[1] = 12.; regionID = HE5_SWdefboxregion(SWid, cornerlon, cornerlat, HE5_HDFE_MIDPOINT); printf("\n"); printf("Region ID returned by HE5_SWdefboxregion() : %d \n", regionID); ntype = (hid_t *)calloc(1, sizeof(hid_t) ); status = HE5_SWregioninfo(SWid, regionID, "Longitude", ntype, &rank, dims, &size); printf("Status returned by HE5_SWregioninfo(\"Longitude\") : %d \n", status); status = HE5_SWregioninfo(SWid, regionID, "Spectra", ntype, &rank, dims, &size); printf("Status returned by HE5_SWregioninfo(\"Spectra\") : %d \n", status); datbuf = (double *) malloc(size); status = HE5_SWextractregion(SWid, regionID, "Spectra", HE5_HDFE_INTERNAL, datbuf); printf("Status returned by HE5_SWextractregion() : %d \n", status); printf("\n"); printf("==================== DATA ===================== \n"); printf("\n"); for (i = 0; i < size / sizeof(double); i++) printf("\t %lf \n", datbuf[i]); free(datbuf); /* Time Subsetting */ /* --------------- */ start_time = 35232487.2; stop_time = 36609898.1; periodID = HE5_SWdeftimeperiod(SWid, start_time, stop_time, HE5_HDFE_MIDPOINT); printf("\n"); printf("Period ID returned by HE5_SWdeftimeperiod() : %d \n", periodID); status = HE5_SWperiodinfo(SWid, periodID, "Time", ntype, &rank, dims, &size); printf("Status returned by HE5_SWperiodinfo() : %d \n", status); datbuf = (double *) malloc(size); status = HE5_SWextractperiod(SWid, periodID, "Time", HE5_HDFE_INTERNAL, datbuf); printf("Status returned by HE5_SWextractperiod() : %d \n", status); printf("\n"); printf("==================== DATA ===================== \n"); printf("\n"); for (i = 0; i < size / sizeof(double); i++) printf("\t\t %lf \n", datbuf[i]); free(datbuf); free(ntype); } } status = HE5_SWdetach(SWid); status = HE5_SWclose(swfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/Makefile.in0000644000175000017500000032645112024715435021153 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # samples Makefile.am # Sample programs for HDF-EOS5 SOURCES = he5_gd_datainfo.c he5_gd_defexternalfld.c he5_gd_definefields.c $(he5_gd_definefieldsF_32_SOURCES) $(he5_gd_definefieldsF_64_SOURCES) he5_gd_defunlimfld.c he5_gd_info.c $(he5_gd_infoF_32_SOURCES) $(he5_gd_infoF_64_SOURCES) he5_gd_rdexternaldata.c he5_gd_readdata.c $(he5_gd_readdataF_32_SOURCES) $(he5_gd_readdataF_64_SOURCES) he5_gd_setup.c $(he5_gd_setupF_32_SOURCES) $(he5_gd_setupF_64_SOURCES) he5_gd_subset.c $(he5_gd_subsetF_32_SOURCES) $(he5_gd_subsetF_64_SOURCES) he5_gd_wrexternaldata.c he5_gd_writedata.c $(he5_gd_writedataF_32_SOURCES) $(he5_gd_writedataF_64_SOURCES) he5_gd_wrunlimfld.c he5_pt_datainfo.c $(he5_pt_datainfoF_32_SOURCES) $(he5_pt_datainfoF_64_SOURCES) he5_pt_definelevels.c $(he5_pt_definelevelsF_32_SOURCES) $(he5_pt_definelevelsF_64_SOURCES) he5_pt_readattrs.c $(he5_pt_readattrsF_32_SOURCES) $(he5_pt_readattrsF_64_SOURCES) he5_pt_readdata.c $(he5_pt_readdataF_32_SOURCES) $(he5_pt_readdataF_64_SOURCES) he5_pt_setup.c $(he5_pt_setupF_32_SOURCES) $(he5_pt_setupF_64_SOURCES) he5_pt_updatelevels.c $(he5_pt_updatelevelsF_32_SOURCES) $(he5_pt_updatelevelsF_64_SOURCES) he5_pt_writeattrs.c $(he5_pt_writeattrsF_32_SOURCES) $(he5_pt_writeattrsF_64_SOURCES) he5_pt_writedata.c $(he5_pt_writedataF_32_SOURCES) $(he5_pt_writedataF_64_SOURCES) he5_sw_datainfo.c he5_sw_defexternalfld.c $(he5_sw_defexternalfldF_32_SOURCES) $(he5_sw_defexternalfldF_64_SOURCES) he5_sw_definefields.c $(he5_sw_definefieldsF_32_SOURCES) $(he5_sw_definefieldsF_64_SOURCES) he5_sw_defunlimfld.c he5_sw_info.c $(he5_sw_infoF_32_SOURCES) $(he5_sw_infoF_64_SOURCES) he5_sw_rdexternaldata.c $(he5_sw_rdexternaldataF_32_SOURCES) $(he5_sw_rdexternaldataF_64_SOURCES) he5_sw_readdata.c $(he5_sw_readdataF_32_SOURCES) $(he5_sw_readdataF_64_SOURCES) he5_sw_setup.c $(he5_sw_setupF_32_SOURCES) $(he5_sw_setupF_64_SOURCES) he5_sw_subset.c $(he5_sw_subsetF_32_SOURCES) $(he5_sw_subsetF_64_SOURCES) he5_sw_wrextendrd.c he5_sw_wrexternaldata.c $(he5_sw_wrexternaldataF_32_SOURCES) $(he5_sw_wrexternaldataF_64_SOURCES) he5_sw_writedata.c $(he5_sw_writedataF_32_SOURCES) $(he5_sw_writedataF_64_SOURCES) he5_sw_wrunlimfld.c he5_za_datainfo.c he5_za_defexternalfld.c $(he5_za_defexternalfldF_32_SOURCES) $(he5_za_defexternalfldF_64_SOURCES) he5_za_definefields.c $(he5_za_definefieldsF_32_SOURCES) $(he5_za_definefieldsF_64_SOURCES) he5_za_info.c $(he5_za_infoF_32_SOURCES) $(he5_za_infoF_64_SOURCES) he5_za_rdexternaldata.c $(he5_za_rdexternaldataF_32_SOURCES) $(he5_za_rdexternaldataF_64_SOURCES) he5_za_readdata.c $(he5_za_readdataF_32_SOURCES) $(he5_za_readdataF_64_SOURCES) he5_za_setup.c $(he5_za_setupF_32_SOURCES) $(he5_za_setupF_64_SOURCES) he5_za_wrexternaldata.c $(he5_za_wrexternaldataF_32_SOURCES) $(he5_za_wrexternaldataF_64_SOURCES) he5_za_writedata.c $(he5_za_writedataF_32_SOURCES) $(he5_za_writedataF_64_SOURCES) srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/include.am check_PROGRAMS = he5_gd_datainfo$(EXEEXT) \ he5_gd_defexternalfld$(EXEEXT) he5_gd_definefields$(EXEEXT) \ he5_gd_defunlimfld$(EXEEXT) he5_gd_info$(EXEEXT) \ he5_gd_rdexternaldata$(EXEEXT) he5_gd_readdata$(EXEEXT) \ he5_gd_writedata$(EXEEXT) he5_gd_setup$(EXEEXT) \ he5_gd_subset$(EXEEXT) he5_gd_wrexternaldata$(EXEEXT) \ he5_gd_wrunlimfld$(EXEEXT) he5_pt_datainfo$(EXEEXT) \ he5_pt_definelevels$(EXEEXT) he5_pt_readattrs$(EXEEXT) \ he5_pt_readdata$(EXEEXT) he5_pt_setup$(EXEEXT) \ he5_pt_updatelevels$(EXEEXT) he5_pt_writeattrs$(EXEEXT) \ he5_pt_writedata$(EXEEXT) he5_sw_datainfo$(EXEEXT) \ he5_sw_defexternalfld$(EXEEXT) he5_sw_definefields$(EXEEXT) \ he5_sw_defunlimfld$(EXEEXT) he5_sw_info$(EXEEXT) \ he5_sw_rdexternaldata$(EXEEXT) he5_sw_readdata$(EXEEXT) \ he5_sw_setup$(EXEEXT) he5_sw_subset$(EXEEXT) \ he5_sw_wrextendrd$(EXEEXT) he5_sw_wrexternaldata$(EXEEXT) \ he5_sw_writedata$(EXEEXT) he5_sw_wrunlimfld$(EXEEXT) \ he5_za_datainfo$(EXEEXT) he5_za_defexternalfld$(EXEEXT) \ he5_za_definefields$(EXEEXT) he5_za_info$(EXEEXT) \ he5_za_rdexternaldata$(EXEEXT) he5_za_readdata$(EXEEXT) \ he5_za_setup$(EXEEXT) he5_za_wrexternaldata$(EXEEXT) \ he5_za_writedata$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_1 = \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_definefieldsF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_infoF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_readdataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_setupF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_subsetF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_writedataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_datainfoF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_definelevelsF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_readattrsF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_readdataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_setupF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_updatelevelsF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_writeattrsF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_writedataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_defexternalfldF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_definefieldsF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_infoF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_rdexternaldataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_readdataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_setupF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_subsetF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_wrexternaldataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_writedataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_defexternalfldF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_definefieldsF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_infoF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_rdexternaldataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_readdataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_setupF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_wrexternaldataF_32 \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_writedataF_32 @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_2 = \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_definefieldsF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_infoF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_readdataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_setupF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_subsetF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_writedataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_datainfoF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_definelevelsF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_readattrsF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_readdataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_setupF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_updatelevelsF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_writeattrsF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_writedataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_defexternalfldF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_definefieldsF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_infoF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_rdexternaldataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_readdataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_setupF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_subsetF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_wrexternaldataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_writedataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_defexternalfldF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_definefieldsF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_infoF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_rdexternaldataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_readdataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_setupF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_wrexternaldataF_64 \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_writedataF_64 @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_3 = gd_write_test_32f pt_write_test_32f sw_write_test_32f za_write_test_32f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_4 = gd_write_test_64f pt_write_test_64f sw_write_test_64f za_write_test_64f subdir = samples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/HE5_config.h CONFIG_CLEAN_FILES = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_1 = he5_gd_definefieldsF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_infoF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_readdataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_setupF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_subsetF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_writedataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_datainfoF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_definelevelsF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_readattrsF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_readdataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_setupF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_updatelevelsF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_writeattrsF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_writedataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_defexternalfldF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_definefieldsF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_infoF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_rdexternaldataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_readdataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_setupF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_subsetF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_wrexternaldataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_writedataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_defexternalfldF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_definefieldsF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_infoF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_rdexternaldataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_readdataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_setupF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_wrexternaldataF_32$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_writedataF_32$(EXEEXT) @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_2 = he5_gd_definefieldsF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_infoF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_readdataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_setupF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_subsetF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_gd_writedataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_datainfoF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_definelevelsF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_readattrsF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_readdataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_setupF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_updatelevelsF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_writeattrsF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_pt_writedataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_defexternalfldF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_definefieldsF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_infoF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_rdexternaldataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_readdataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_setupF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_subsetF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_wrexternaldataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_sw_writedataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_defexternalfldF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_definefieldsF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_infoF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_rdexternaldataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_readdataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_setupF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_wrexternaldataF_64$(EXEEXT) \ @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@ he5_za_writedataF_64$(EXEEXT) he5_gd_datainfo_SOURCES = he5_gd_datainfo.c he5_gd_datainfo_OBJECTS = he5_gd_datainfo.$(OBJEXT) he5_gd_datainfo_LDADD = $(LDADD) am__DEPENDENCIES_1 = $(top_builddir)/src/libhe5_hdfeos.la am__DEPENDENCIES_2 = $(top_builddir)/gctp/src/libGctp.la he5_gd_datainfo_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_defexternalfld_SOURCES = he5_gd_defexternalfld.c he5_gd_defexternalfld_OBJECTS = he5_gd_defexternalfld.$(OBJEXT) he5_gd_defexternalfld_LDADD = $(LDADD) he5_gd_defexternalfld_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_definefields_SOURCES = he5_gd_definefields.c he5_gd_definefields_OBJECTS = he5_gd_definefields.$(OBJEXT) he5_gd_definefields_LDADD = $(LDADD) he5_gd_definefields_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_definefieldsF_32_SOURCES_DIST = he5_gd_definefieldsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_definefieldsF_32_OBJECTS = he5_gd_definefieldsF_32.$(OBJEXT) he5_gd_definefieldsF_32_OBJECTS = \ $(am_he5_gd_definefieldsF_32_OBJECTS) he5_gd_definefieldsF_32_LDADD = $(LDADD) he5_gd_definefieldsF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_definefieldsF_64_SOURCES_DIST = he5_gd_definefieldsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_definefieldsF_64_OBJECTS = he5_gd_definefieldsF_64.$(OBJEXT) he5_gd_definefieldsF_64_OBJECTS = \ $(am_he5_gd_definefieldsF_64_OBJECTS) he5_gd_definefieldsF_64_LDADD = $(LDADD) he5_gd_definefieldsF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_defunlimfld_SOURCES = he5_gd_defunlimfld.c he5_gd_defunlimfld_OBJECTS = he5_gd_defunlimfld.$(OBJEXT) he5_gd_defunlimfld_LDADD = $(LDADD) he5_gd_defunlimfld_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_info_SOURCES = he5_gd_info.c he5_gd_info_OBJECTS = he5_gd_info.$(OBJEXT) he5_gd_info_LDADD = $(LDADD) he5_gd_info_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__he5_gd_infoF_32_SOURCES_DIST = he5_gd_infoF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_infoF_32_OBJECTS = he5_gd_infoF_32.$(OBJEXT) he5_gd_infoF_32_OBJECTS = $(am_he5_gd_infoF_32_OBJECTS) he5_gd_infoF_32_LDADD = $(LDADD) he5_gd_infoF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_infoF_64_SOURCES_DIST = he5_gd_infoF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_infoF_64_OBJECTS = he5_gd_infoF_64.$(OBJEXT) he5_gd_infoF_64_OBJECTS = $(am_he5_gd_infoF_64_OBJECTS) he5_gd_infoF_64_LDADD = $(LDADD) he5_gd_infoF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_rdexternaldata_SOURCES = he5_gd_rdexternaldata.c he5_gd_rdexternaldata_OBJECTS = he5_gd_rdexternaldata.$(OBJEXT) he5_gd_rdexternaldata_LDADD = $(LDADD) he5_gd_rdexternaldata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_readdata_SOURCES = he5_gd_readdata.c he5_gd_readdata_OBJECTS = he5_gd_readdata.$(OBJEXT) he5_gd_readdata_LDADD = $(LDADD) he5_gd_readdata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_readdataF_32_SOURCES_DIST = he5_gd_readdataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_readdataF_32_OBJECTS = he5_gd_readdataF_32.$(OBJEXT) he5_gd_readdataF_32_OBJECTS = $(am_he5_gd_readdataF_32_OBJECTS) he5_gd_readdataF_32_LDADD = $(LDADD) he5_gd_readdataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_readdataF_64_SOURCES_DIST = he5_gd_readdataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_readdataF_64_OBJECTS = he5_gd_readdataF_64.$(OBJEXT) he5_gd_readdataF_64_OBJECTS = $(am_he5_gd_readdataF_64_OBJECTS) he5_gd_readdataF_64_LDADD = $(LDADD) he5_gd_readdataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_setup_SOURCES = he5_gd_setup.c he5_gd_setup_OBJECTS = he5_gd_setup.$(OBJEXT) he5_gd_setup_LDADD = $(LDADD) he5_gd_setup_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_setupF_32_SOURCES_DIST = he5_gd_setupF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_setupF_32_OBJECTS = he5_gd_setupF_32.$(OBJEXT) he5_gd_setupF_32_OBJECTS = $(am_he5_gd_setupF_32_OBJECTS) he5_gd_setupF_32_LDADD = $(LDADD) he5_gd_setupF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_setupF_64_SOURCES_DIST = he5_gd_setupF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_setupF_64_OBJECTS = he5_gd_setupF_64.$(OBJEXT) he5_gd_setupF_64_OBJECTS = $(am_he5_gd_setupF_64_OBJECTS) he5_gd_setupF_64_LDADD = $(LDADD) he5_gd_setupF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_subset_SOURCES = he5_gd_subset.c he5_gd_subset_OBJECTS = he5_gd_subset.$(OBJEXT) he5_gd_subset_LDADD = $(LDADD) he5_gd_subset_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_subsetF_32_SOURCES_DIST = he5_gd_subsetF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_subsetF_32_OBJECTS = he5_gd_subsetF_32.$(OBJEXT) he5_gd_subsetF_32_OBJECTS = $(am_he5_gd_subsetF_32_OBJECTS) he5_gd_subsetF_32_LDADD = $(LDADD) he5_gd_subsetF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_subsetF_64_SOURCES_DIST = he5_gd_subsetF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_subsetF_64_OBJECTS = he5_gd_subsetF_64.$(OBJEXT) he5_gd_subsetF_64_OBJECTS = $(am_he5_gd_subsetF_64_OBJECTS) he5_gd_subsetF_64_LDADD = $(LDADD) he5_gd_subsetF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_wrexternaldata_SOURCES = he5_gd_wrexternaldata.c he5_gd_wrexternaldata_OBJECTS = he5_gd_wrexternaldata.$(OBJEXT) he5_gd_wrexternaldata_LDADD = $(LDADD) he5_gd_wrexternaldata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_writedata_SOURCES = he5_gd_writedata.c he5_gd_writedata_OBJECTS = he5_gd_writedata.$(OBJEXT) he5_gd_writedata_LDADD = $(LDADD) he5_gd_writedata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_writedataF_32_SOURCES_DIST = he5_gd_writedataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_writedataF_32_OBJECTS = he5_gd_writedataF_32.$(OBJEXT) he5_gd_writedataF_32_OBJECTS = $(am_he5_gd_writedataF_32_OBJECTS) he5_gd_writedataF_32_LDADD = $(LDADD) he5_gd_writedataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_gd_writedataF_64_SOURCES_DIST = he5_gd_writedataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_gd_writedataF_64_OBJECTS = he5_gd_writedataF_64.$(OBJEXT) he5_gd_writedataF_64_OBJECTS = $(am_he5_gd_writedataF_64_OBJECTS) he5_gd_writedataF_64_LDADD = $(LDADD) he5_gd_writedataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_gd_wrunlimfld_SOURCES = he5_gd_wrunlimfld.c he5_gd_wrunlimfld_OBJECTS = he5_gd_wrunlimfld.$(OBJEXT) he5_gd_wrunlimfld_LDADD = $(LDADD) he5_gd_wrunlimfld_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_pt_datainfo_SOURCES = he5_pt_datainfo.c he5_pt_datainfo_OBJECTS = he5_pt_datainfo.$(OBJEXT) he5_pt_datainfo_LDADD = $(LDADD) he5_pt_datainfo_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_datainfoF_32_SOURCES_DIST = he5_pt_datainfoF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_datainfoF_32_OBJECTS = he5_pt_datainfoF_32.$(OBJEXT) he5_pt_datainfoF_32_OBJECTS = $(am_he5_pt_datainfoF_32_OBJECTS) he5_pt_datainfoF_32_LDADD = $(LDADD) he5_pt_datainfoF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_datainfoF_64_SOURCES_DIST = he5_pt_datainfoF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_datainfoF_64_OBJECTS = he5_pt_datainfoF_64.$(OBJEXT) he5_pt_datainfoF_64_OBJECTS = $(am_he5_pt_datainfoF_64_OBJECTS) he5_pt_datainfoF_64_LDADD = $(LDADD) he5_pt_datainfoF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_pt_definelevels_SOURCES = he5_pt_definelevels.c he5_pt_definelevels_OBJECTS = he5_pt_definelevels.$(OBJEXT) he5_pt_definelevels_LDADD = $(LDADD) he5_pt_definelevels_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_definelevelsF_32_SOURCES_DIST = he5_pt_definelevelsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_definelevelsF_32_OBJECTS = he5_pt_definelevelsF_32.$(OBJEXT) he5_pt_definelevelsF_32_OBJECTS = \ $(am_he5_pt_definelevelsF_32_OBJECTS) he5_pt_definelevelsF_32_LDADD = $(LDADD) he5_pt_definelevelsF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_definelevelsF_64_SOURCES_DIST = he5_pt_definelevelsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_definelevelsF_64_OBJECTS = he5_pt_definelevelsF_64.$(OBJEXT) he5_pt_definelevelsF_64_OBJECTS = \ $(am_he5_pt_definelevelsF_64_OBJECTS) he5_pt_definelevelsF_64_LDADD = $(LDADD) he5_pt_definelevelsF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_pt_readattrs_SOURCES = he5_pt_readattrs.c he5_pt_readattrs_OBJECTS = he5_pt_readattrs.$(OBJEXT) he5_pt_readattrs_LDADD = $(LDADD) he5_pt_readattrs_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_readattrsF_32_SOURCES_DIST = he5_pt_readattrsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_readattrsF_32_OBJECTS = he5_pt_readattrsF_32.$(OBJEXT) he5_pt_readattrsF_32_OBJECTS = $(am_he5_pt_readattrsF_32_OBJECTS) he5_pt_readattrsF_32_LDADD = $(LDADD) he5_pt_readattrsF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_readattrsF_64_SOURCES_DIST = he5_pt_readattrsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_readattrsF_64_OBJECTS = he5_pt_readattrsF_64.$(OBJEXT) he5_pt_readattrsF_64_OBJECTS = $(am_he5_pt_readattrsF_64_OBJECTS) he5_pt_readattrsF_64_LDADD = $(LDADD) he5_pt_readattrsF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_pt_readdata_SOURCES = he5_pt_readdata.c he5_pt_readdata_OBJECTS = he5_pt_readdata.$(OBJEXT) he5_pt_readdata_LDADD = $(LDADD) he5_pt_readdata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_readdataF_32_SOURCES_DIST = he5_pt_readdataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_readdataF_32_OBJECTS = he5_pt_readdataF_32.$(OBJEXT) he5_pt_readdataF_32_OBJECTS = $(am_he5_pt_readdataF_32_OBJECTS) he5_pt_readdataF_32_LDADD = $(LDADD) he5_pt_readdataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_readdataF_64_SOURCES_DIST = he5_pt_readdataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_readdataF_64_OBJECTS = he5_pt_readdataF_64.$(OBJEXT) he5_pt_readdataF_64_OBJECTS = $(am_he5_pt_readdataF_64_OBJECTS) he5_pt_readdataF_64_LDADD = $(LDADD) he5_pt_readdataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_pt_setup_SOURCES = he5_pt_setup.c he5_pt_setup_OBJECTS = he5_pt_setup.$(OBJEXT) he5_pt_setup_LDADD = $(LDADD) he5_pt_setup_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_setupF_32_SOURCES_DIST = he5_pt_setupF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_setupF_32_OBJECTS = he5_pt_setupF_32.$(OBJEXT) he5_pt_setupF_32_OBJECTS = $(am_he5_pt_setupF_32_OBJECTS) he5_pt_setupF_32_LDADD = $(LDADD) he5_pt_setupF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_setupF_64_SOURCES_DIST = he5_pt_setupF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_setupF_64_OBJECTS = he5_pt_setupF_64.$(OBJEXT) he5_pt_setupF_64_OBJECTS = $(am_he5_pt_setupF_64_OBJECTS) he5_pt_setupF_64_LDADD = $(LDADD) he5_pt_setupF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_pt_updatelevels_SOURCES = he5_pt_updatelevels.c he5_pt_updatelevels_OBJECTS = he5_pt_updatelevels.$(OBJEXT) he5_pt_updatelevels_LDADD = $(LDADD) he5_pt_updatelevels_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_updatelevelsF_32_SOURCES_DIST = he5_pt_updatelevelsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_updatelevelsF_32_OBJECTS = he5_pt_updatelevelsF_32.$(OBJEXT) he5_pt_updatelevelsF_32_OBJECTS = \ $(am_he5_pt_updatelevelsF_32_OBJECTS) he5_pt_updatelevelsF_32_LDADD = $(LDADD) he5_pt_updatelevelsF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_updatelevelsF_64_SOURCES_DIST = he5_pt_updatelevelsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_updatelevelsF_64_OBJECTS = he5_pt_updatelevelsF_64.$(OBJEXT) he5_pt_updatelevelsF_64_OBJECTS = \ $(am_he5_pt_updatelevelsF_64_OBJECTS) he5_pt_updatelevelsF_64_LDADD = $(LDADD) he5_pt_updatelevelsF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_pt_writeattrs_SOURCES = he5_pt_writeattrs.c he5_pt_writeattrs_OBJECTS = he5_pt_writeattrs.$(OBJEXT) he5_pt_writeattrs_LDADD = $(LDADD) he5_pt_writeattrs_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_writeattrsF_32_SOURCES_DIST = he5_pt_writeattrsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_writeattrsF_32_OBJECTS = he5_pt_writeattrsF_32.$(OBJEXT) he5_pt_writeattrsF_32_OBJECTS = $(am_he5_pt_writeattrsF_32_OBJECTS) he5_pt_writeattrsF_32_LDADD = $(LDADD) he5_pt_writeattrsF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_writeattrsF_64_SOURCES_DIST = he5_pt_writeattrsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_writeattrsF_64_OBJECTS = he5_pt_writeattrsF_64.$(OBJEXT) he5_pt_writeattrsF_64_OBJECTS = $(am_he5_pt_writeattrsF_64_OBJECTS) he5_pt_writeattrsF_64_LDADD = $(LDADD) he5_pt_writeattrsF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_pt_writedata_SOURCES = he5_pt_writedata.c he5_pt_writedata_OBJECTS = he5_pt_writedata.$(OBJEXT) he5_pt_writedata_LDADD = $(LDADD) he5_pt_writedata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_writedataF_32_SOURCES_DIST = he5_pt_writedataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_writedataF_32_OBJECTS = he5_pt_writedataF_32.$(OBJEXT) he5_pt_writedataF_32_OBJECTS = $(am_he5_pt_writedataF_32_OBJECTS) he5_pt_writedataF_32_LDADD = $(LDADD) he5_pt_writedataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_pt_writedataF_64_SOURCES_DIST = he5_pt_writedataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_pt_writedataF_64_OBJECTS = he5_pt_writedataF_64.$(OBJEXT) he5_pt_writedataF_64_OBJECTS = $(am_he5_pt_writedataF_64_OBJECTS) he5_pt_writedataF_64_LDADD = $(LDADD) he5_pt_writedataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_datainfo_SOURCES = he5_sw_datainfo.c he5_sw_datainfo_OBJECTS = he5_sw_datainfo.$(OBJEXT) he5_sw_datainfo_LDADD = $(LDADD) he5_sw_datainfo_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_defexternalfld_SOURCES = he5_sw_defexternalfld.c he5_sw_defexternalfld_OBJECTS = he5_sw_defexternalfld.$(OBJEXT) he5_sw_defexternalfld_LDADD = $(LDADD) he5_sw_defexternalfld_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_defexternalfldF_32_SOURCES_DIST = \ he5_sw_defexternalfldF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_defexternalfldF_32_OBJECTS = he5_sw_defexternalfldF_32.$(OBJEXT) he5_sw_defexternalfldF_32_OBJECTS = \ $(am_he5_sw_defexternalfldF_32_OBJECTS) he5_sw_defexternalfldF_32_LDADD = $(LDADD) he5_sw_defexternalfldF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_defexternalfldF_64_SOURCES_DIST = \ he5_sw_defexternalfldF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_defexternalfldF_64_OBJECTS = he5_sw_defexternalfldF_64.$(OBJEXT) he5_sw_defexternalfldF_64_OBJECTS = \ $(am_he5_sw_defexternalfldF_64_OBJECTS) he5_sw_defexternalfldF_64_LDADD = $(LDADD) he5_sw_defexternalfldF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_definefields_SOURCES = he5_sw_definefields.c he5_sw_definefields_OBJECTS = he5_sw_definefields.$(OBJEXT) he5_sw_definefields_LDADD = $(LDADD) he5_sw_definefields_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_definefieldsF_32_SOURCES_DIST = he5_sw_definefieldsF_32.f \ he5_sw_definefields_szipF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_FALSE@am_he5_sw_definefieldsF_32_OBJECTS = he5_sw_definefieldsF_32.$(OBJEXT) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_TRUE@am_he5_sw_definefieldsF_32_OBJECTS = he5_sw_definefields_szipF_32.$(OBJEXT) he5_sw_definefieldsF_32_OBJECTS = \ $(am_he5_sw_definefieldsF_32_OBJECTS) he5_sw_definefieldsF_32_LDADD = $(LDADD) he5_sw_definefieldsF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_definefieldsF_64_SOURCES_DIST = he5_sw_definefieldsF_64.f \ he5_sw_definefields_szipF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_FALSE@am_he5_sw_definefieldsF_64_OBJECTS = he5_sw_definefieldsF_64.$(OBJEXT) @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_TRUE@am_he5_sw_definefieldsF_64_OBJECTS = he5_sw_definefields_szipF_64.$(OBJEXT) he5_sw_definefieldsF_64_OBJECTS = \ $(am_he5_sw_definefieldsF_64_OBJECTS) he5_sw_definefieldsF_64_LDADD = $(LDADD) he5_sw_definefieldsF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_defunlimfld_SOURCES = he5_sw_defunlimfld.c he5_sw_defunlimfld_OBJECTS = he5_sw_defunlimfld.$(OBJEXT) he5_sw_defunlimfld_LDADD = $(LDADD) he5_sw_defunlimfld_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_info_SOURCES = he5_sw_info.c he5_sw_info_OBJECTS = he5_sw_info.$(OBJEXT) he5_sw_info_LDADD = $(LDADD) he5_sw_info_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__he5_sw_infoF_32_SOURCES_DIST = he5_sw_infoF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_infoF_32_OBJECTS = he5_sw_infoF_32.$(OBJEXT) he5_sw_infoF_32_OBJECTS = $(am_he5_sw_infoF_32_OBJECTS) he5_sw_infoF_32_LDADD = $(LDADD) he5_sw_infoF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_infoF_64_SOURCES_DIST = he5_sw_infoF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_infoF_64_OBJECTS = he5_sw_infoF_64.$(OBJEXT) he5_sw_infoF_64_OBJECTS = $(am_he5_sw_infoF_64_OBJECTS) he5_sw_infoF_64_LDADD = $(LDADD) he5_sw_infoF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_rdexternaldata_SOURCES = he5_sw_rdexternaldata.c he5_sw_rdexternaldata_OBJECTS = he5_sw_rdexternaldata.$(OBJEXT) he5_sw_rdexternaldata_LDADD = $(LDADD) he5_sw_rdexternaldata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_rdexternaldataF_32_SOURCES_DIST = \ he5_sw_rdexternaldataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_rdexternaldataF_32_OBJECTS = he5_sw_rdexternaldataF_32.$(OBJEXT) he5_sw_rdexternaldataF_32_OBJECTS = \ $(am_he5_sw_rdexternaldataF_32_OBJECTS) he5_sw_rdexternaldataF_32_LDADD = $(LDADD) he5_sw_rdexternaldataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_rdexternaldataF_64_SOURCES_DIST = \ he5_sw_rdexternaldataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_rdexternaldataF_64_OBJECTS = he5_sw_rdexternaldataF_64.$(OBJEXT) he5_sw_rdexternaldataF_64_OBJECTS = \ $(am_he5_sw_rdexternaldataF_64_OBJECTS) he5_sw_rdexternaldataF_64_LDADD = $(LDADD) he5_sw_rdexternaldataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_readdata_SOURCES = he5_sw_readdata.c he5_sw_readdata_OBJECTS = he5_sw_readdata.$(OBJEXT) he5_sw_readdata_LDADD = $(LDADD) he5_sw_readdata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_readdataF_32_SOURCES_DIST = he5_sw_readdataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_readdataF_32_OBJECTS = he5_sw_readdataF_32.$(OBJEXT) he5_sw_readdataF_32_OBJECTS = $(am_he5_sw_readdataF_32_OBJECTS) he5_sw_readdataF_32_LDADD = $(LDADD) he5_sw_readdataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_readdataF_64_SOURCES_DIST = he5_sw_readdataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_readdataF_64_OBJECTS = he5_sw_readdataF_64.$(OBJEXT) he5_sw_readdataF_64_OBJECTS = $(am_he5_sw_readdataF_64_OBJECTS) he5_sw_readdataF_64_LDADD = $(LDADD) he5_sw_readdataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_setup_SOURCES = he5_sw_setup.c he5_sw_setup_OBJECTS = he5_sw_setup.$(OBJEXT) he5_sw_setup_LDADD = $(LDADD) he5_sw_setup_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_setupF_32_SOURCES_DIST = he5_sw_setupF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_setupF_32_OBJECTS = he5_sw_setupF_32.$(OBJEXT) he5_sw_setupF_32_OBJECTS = $(am_he5_sw_setupF_32_OBJECTS) he5_sw_setupF_32_LDADD = $(LDADD) he5_sw_setupF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_setupF_64_SOURCES_DIST = he5_sw_setupF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_setupF_64_OBJECTS = he5_sw_setupF_64.$(OBJEXT) he5_sw_setupF_64_OBJECTS = $(am_he5_sw_setupF_64_OBJECTS) he5_sw_setupF_64_LDADD = $(LDADD) he5_sw_setupF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_subset_SOURCES = he5_sw_subset.c he5_sw_subset_OBJECTS = he5_sw_subset.$(OBJEXT) he5_sw_subset_LDADD = $(LDADD) he5_sw_subset_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_subsetF_32_SOURCES_DIST = he5_sw_subsetF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_subsetF_32_OBJECTS = he5_sw_subsetF_32.$(OBJEXT) he5_sw_subsetF_32_OBJECTS = $(am_he5_sw_subsetF_32_OBJECTS) he5_sw_subsetF_32_LDADD = $(LDADD) he5_sw_subsetF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_subsetF_64_SOURCES_DIST = he5_sw_subsetF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_subsetF_64_OBJECTS = he5_sw_subsetF_64.$(OBJEXT) he5_sw_subsetF_64_OBJECTS = $(am_he5_sw_subsetF_64_OBJECTS) he5_sw_subsetF_64_LDADD = $(LDADD) he5_sw_subsetF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_wrextendrd_SOURCES = he5_sw_wrextendrd.c he5_sw_wrextendrd_OBJECTS = he5_sw_wrextendrd.$(OBJEXT) he5_sw_wrextendrd_LDADD = $(LDADD) he5_sw_wrextendrd_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_wrexternaldata_SOURCES = he5_sw_wrexternaldata.c he5_sw_wrexternaldata_OBJECTS = he5_sw_wrexternaldata.$(OBJEXT) he5_sw_wrexternaldata_LDADD = $(LDADD) he5_sw_wrexternaldata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_wrexternaldataF_32_SOURCES_DIST = \ he5_sw_wrexternaldataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_wrexternaldataF_32_OBJECTS = he5_sw_wrexternaldataF_32.$(OBJEXT) he5_sw_wrexternaldataF_32_OBJECTS = \ $(am_he5_sw_wrexternaldataF_32_OBJECTS) he5_sw_wrexternaldataF_32_LDADD = $(LDADD) he5_sw_wrexternaldataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_wrexternaldataF_64_SOURCES_DIST = \ he5_sw_wrexternaldataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_wrexternaldataF_64_OBJECTS = he5_sw_wrexternaldataF_64.$(OBJEXT) he5_sw_wrexternaldataF_64_OBJECTS = \ $(am_he5_sw_wrexternaldataF_64_OBJECTS) he5_sw_wrexternaldataF_64_LDADD = $(LDADD) he5_sw_wrexternaldataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_writedata_SOURCES = he5_sw_writedata.c he5_sw_writedata_OBJECTS = he5_sw_writedata.$(OBJEXT) he5_sw_writedata_LDADD = $(LDADD) he5_sw_writedata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_writedataF_32_SOURCES_DIST = he5_sw_writedataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_writedataF_32_OBJECTS = he5_sw_writedataF_32.$(OBJEXT) he5_sw_writedataF_32_OBJECTS = $(am_he5_sw_writedataF_32_OBJECTS) he5_sw_writedataF_32_LDADD = $(LDADD) he5_sw_writedataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_sw_writedataF_64_SOURCES_DIST = he5_sw_writedataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_sw_writedataF_64_OBJECTS = he5_sw_writedataF_64.$(OBJEXT) he5_sw_writedataF_64_OBJECTS = $(am_he5_sw_writedataF_64_OBJECTS) he5_sw_writedataF_64_LDADD = $(LDADD) he5_sw_writedataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_sw_wrunlimfld_SOURCES = he5_sw_wrunlimfld.c he5_sw_wrunlimfld_OBJECTS = he5_sw_wrunlimfld.$(OBJEXT) he5_sw_wrunlimfld_LDADD = $(LDADD) he5_sw_wrunlimfld_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_za_datainfo_SOURCES = he5_za_datainfo.c he5_za_datainfo_OBJECTS = he5_za_datainfo.$(OBJEXT) he5_za_datainfo_LDADD = $(LDADD) he5_za_datainfo_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_za_defexternalfld_SOURCES = he5_za_defexternalfld.c he5_za_defexternalfld_OBJECTS = he5_za_defexternalfld.$(OBJEXT) he5_za_defexternalfld_LDADD = $(LDADD) he5_za_defexternalfld_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_defexternalfldF_32_SOURCES_DIST = \ he5_za_defexternalfldF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_defexternalfldF_32_OBJECTS = he5_za_defexternalfldF_32.$(OBJEXT) he5_za_defexternalfldF_32_OBJECTS = \ $(am_he5_za_defexternalfldF_32_OBJECTS) he5_za_defexternalfldF_32_LDADD = $(LDADD) he5_za_defexternalfldF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_defexternalfldF_64_SOURCES_DIST = \ he5_za_defexternalfldF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_defexternalfldF_64_OBJECTS = he5_za_defexternalfldF_64.$(OBJEXT) he5_za_defexternalfldF_64_OBJECTS = \ $(am_he5_za_defexternalfldF_64_OBJECTS) he5_za_defexternalfldF_64_LDADD = $(LDADD) he5_za_defexternalfldF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_za_definefields_SOURCES = he5_za_definefields.c he5_za_definefields_OBJECTS = he5_za_definefields.$(OBJEXT) he5_za_definefields_LDADD = $(LDADD) he5_za_definefields_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_definefieldsF_32_SOURCES_DIST = he5_za_definefieldsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_definefieldsF_32_OBJECTS = he5_za_definefieldsF_32.$(OBJEXT) he5_za_definefieldsF_32_OBJECTS = \ $(am_he5_za_definefieldsF_32_OBJECTS) he5_za_definefieldsF_32_LDADD = $(LDADD) he5_za_definefieldsF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_definefieldsF_64_SOURCES_DIST = he5_za_definefieldsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_definefieldsF_64_OBJECTS = he5_za_definefieldsF_64.$(OBJEXT) he5_za_definefieldsF_64_OBJECTS = \ $(am_he5_za_definefieldsF_64_OBJECTS) he5_za_definefieldsF_64_LDADD = $(LDADD) he5_za_definefieldsF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_za_info_SOURCES = he5_za_info.c he5_za_info_OBJECTS = he5_za_info.$(OBJEXT) he5_za_info_LDADD = $(LDADD) he5_za_info_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__he5_za_infoF_32_SOURCES_DIST = he5_za_infoF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_infoF_32_OBJECTS = he5_za_infoF_32.$(OBJEXT) he5_za_infoF_32_OBJECTS = $(am_he5_za_infoF_32_OBJECTS) he5_za_infoF_32_LDADD = $(LDADD) he5_za_infoF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_infoF_64_SOURCES_DIST = he5_za_infoF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_infoF_64_OBJECTS = he5_za_infoF_64.$(OBJEXT) he5_za_infoF_64_OBJECTS = $(am_he5_za_infoF_64_OBJECTS) he5_za_infoF_64_LDADD = $(LDADD) he5_za_infoF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_za_rdexternaldata_SOURCES = he5_za_rdexternaldata.c he5_za_rdexternaldata_OBJECTS = he5_za_rdexternaldata.$(OBJEXT) he5_za_rdexternaldata_LDADD = $(LDADD) he5_za_rdexternaldata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_rdexternaldataF_32_SOURCES_DIST = \ he5_za_rdexternaldataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_rdexternaldataF_32_OBJECTS = he5_za_rdexternaldataF_32.$(OBJEXT) he5_za_rdexternaldataF_32_OBJECTS = \ $(am_he5_za_rdexternaldataF_32_OBJECTS) he5_za_rdexternaldataF_32_LDADD = $(LDADD) he5_za_rdexternaldataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_rdexternaldataF_64_SOURCES_DIST = \ he5_za_rdexternaldataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_rdexternaldataF_64_OBJECTS = he5_za_rdexternaldataF_64.$(OBJEXT) he5_za_rdexternaldataF_64_OBJECTS = \ $(am_he5_za_rdexternaldataF_64_OBJECTS) he5_za_rdexternaldataF_64_LDADD = $(LDADD) he5_za_rdexternaldataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_za_readdata_SOURCES = he5_za_readdata.c he5_za_readdata_OBJECTS = he5_za_readdata.$(OBJEXT) he5_za_readdata_LDADD = $(LDADD) he5_za_readdata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_readdataF_32_SOURCES_DIST = he5_za_readdataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_readdataF_32_OBJECTS = he5_za_readdataF_32.$(OBJEXT) he5_za_readdataF_32_OBJECTS = $(am_he5_za_readdataF_32_OBJECTS) he5_za_readdataF_32_LDADD = $(LDADD) he5_za_readdataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_readdataF_64_SOURCES_DIST = he5_za_readdataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_readdataF_64_OBJECTS = he5_za_readdataF_64.$(OBJEXT) he5_za_readdataF_64_OBJECTS = $(am_he5_za_readdataF_64_OBJECTS) he5_za_readdataF_64_LDADD = $(LDADD) he5_za_readdataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_za_setup_SOURCES = he5_za_setup.c he5_za_setup_OBJECTS = he5_za_setup.$(OBJEXT) he5_za_setup_LDADD = $(LDADD) he5_za_setup_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_setupF_32_SOURCES_DIST = he5_za_setupF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_setupF_32_OBJECTS = he5_za_setupF_32.$(OBJEXT) he5_za_setupF_32_OBJECTS = $(am_he5_za_setupF_32_OBJECTS) he5_za_setupF_32_LDADD = $(LDADD) he5_za_setupF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_setupF_64_SOURCES_DIST = he5_za_setupF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_setupF_64_OBJECTS = he5_za_setupF_64.$(OBJEXT) he5_za_setupF_64_OBJECTS = $(am_he5_za_setupF_64_OBJECTS) he5_za_setupF_64_LDADD = $(LDADD) he5_za_setupF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_za_wrexternaldata_SOURCES = he5_za_wrexternaldata.c he5_za_wrexternaldata_OBJECTS = he5_za_wrexternaldata.$(OBJEXT) he5_za_wrexternaldata_LDADD = $(LDADD) he5_za_wrexternaldata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_wrexternaldataF_32_SOURCES_DIST = \ he5_za_wrexternaldataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_wrexternaldataF_32_OBJECTS = he5_za_wrexternaldataF_32.$(OBJEXT) he5_za_wrexternaldataF_32_OBJECTS = \ $(am_he5_za_wrexternaldataF_32_OBJECTS) he5_za_wrexternaldataF_32_LDADD = $(LDADD) he5_za_wrexternaldataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_wrexternaldataF_64_SOURCES_DIST = \ he5_za_wrexternaldataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_wrexternaldataF_64_OBJECTS = he5_za_wrexternaldataF_64.$(OBJEXT) he5_za_wrexternaldataF_64_OBJECTS = \ $(am_he5_za_wrexternaldataF_64_OBJECTS) he5_za_wrexternaldataF_64_LDADD = $(LDADD) he5_za_wrexternaldataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) he5_za_writedata_SOURCES = he5_za_writedata.c he5_za_writedata_OBJECTS = he5_za_writedata.$(OBJEXT) he5_za_writedata_LDADD = $(LDADD) he5_za_writedata_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_writedataF_32_SOURCES_DIST = he5_za_writedataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_writedataF_32_OBJECTS = he5_za_writedataF_32.$(OBJEXT) he5_za_writedataF_32_OBJECTS = $(am_he5_za_writedataF_32_OBJECTS) he5_za_writedataF_32_LDADD = $(LDADD) he5_za_writedataF_32_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am__he5_za_writedataF_64_SOURCES_DIST = he5_za_writedataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_he5_za_writedataF_64_OBJECTS = he5_za_writedataF_64.$(OBJEXT) he5_za_writedataF_64_OBJECTS = $(am_he5_za_writedataF_64_OBJECTS) he5_za_writedataF_64_LDADD = $(LDADD) he5_za_writedataF_64_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -DH5_USE_16_API LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -DH5_USE_16_API CCLD = $(CC) LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) -DH5_USE_16_API LTF77COMPILE = $(LIBTOOL) --mode=compile --tag=F77 $(F77) $(AM_FFLAGS) \ $(FFLAGS) -DH5_USE_16_API F77LD = $(F77) F77LINK = $(LIBTOOL) --mode=link --tag=F77 $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = he5_gd_datainfo.c he5_gd_defexternalfld.c \ he5_gd_definefields.c $(he5_gd_definefieldsF_32_SOURCES) \ $(he5_gd_definefieldsF_64_SOURCES) he5_gd_defunlimfld.c \ he5_gd_info.c $(he5_gd_infoF_32_SOURCES) \ $(he5_gd_infoF_64_SOURCES) he5_gd_rdexternaldata.c \ he5_gd_readdata.c $(he5_gd_readdataF_32_SOURCES) \ $(he5_gd_readdataF_64_SOURCES) he5_gd_setup.c \ $(he5_gd_setupF_32_SOURCES) $(he5_gd_setupF_64_SOURCES) \ he5_gd_subset.c $(he5_gd_subsetF_32_SOURCES) \ $(he5_gd_subsetF_64_SOURCES) he5_gd_wrexternaldata.c \ he5_gd_writedata.c $(he5_gd_writedataF_32_SOURCES) \ $(he5_gd_writedataF_64_SOURCES) he5_gd_wrunlimfld.c \ he5_pt_datainfo.c $(he5_pt_datainfoF_32_SOURCES) \ $(he5_pt_datainfoF_64_SOURCES) he5_pt_definelevels.c \ $(he5_pt_definelevelsF_32_SOURCES) \ $(he5_pt_definelevelsF_64_SOURCES) he5_pt_readattrs.c \ $(he5_pt_readattrsF_32_SOURCES) \ $(he5_pt_readattrsF_64_SOURCES) he5_pt_readdata.c \ $(he5_pt_readdataF_32_SOURCES) $(he5_pt_readdataF_64_SOURCES) \ he5_pt_setup.c $(he5_pt_setupF_32_SOURCES) \ $(he5_pt_setupF_64_SOURCES) he5_pt_updatelevels.c \ $(he5_pt_updatelevelsF_32_SOURCES) \ $(he5_pt_updatelevelsF_64_SOURCES) he5_pt_writeattrs.c \ $(he5_pt_writeattrsF_32_SOURCES) \ $(he5_pt_writeattrsF_64_SOURCES) he5_pt_writedata.c \ $(he5_pt_writedataF_32_SOURCES) \ $(he5_pt_writedataF_64_SOURCES) he5_sw_datainfo.c \ he5_sw_defexternalfld.c $(he5_sw_defexternalfldF_32_SOURCES) \ $(he5_sw_defexternalfldF_64_SOURCES) he5_sw_definefields.c \ $(he5_sw_definefieldsF_32_SOURCES) \ $(he5_sw_definefieldsF_64_SOURCES) he5_sw_defunlimfld.c \ he5_sw_info.c $(he5_sw_infoF_32_SOURCES) \ $(he5_sw_infoF_64_SOURCES) he5_sw_rdexternaldata.c \ $(he5_sw_rdexternaldataF_32_SOURCES) \ $(he5_sw_rdexternaldataF_64_SOURCES) he5_sw_readdata.c \ $(he5_sw_readdataF_32_SOURCES) $(he5_sw_readdataF_64_SOURCES) \ he5_sw_setup.c $(he5_sw_setupF_32_SOURCES) \ $(he5_sw_setupF_64_SOURCES) he5_sw_subset.c \ $(he5_sw_subsetF_32_SOURCES) $(he5_sw_subsetF_64_SOURCES) \ he5_sw_wrextendrd.c he5_sw_wrexternaldata.c \ $(he5_sw_wrexternaldataF_32_SOURCES) \ $(he5_sw_wrexternaldataF_64_SOURCES) he5_sw_writedata.c \ $(he5_sw_writedataF_32_SOURCES) \ $(he5_sw_writedataF_64_SOURCES) he5_sw_wrunlimfld.c \ he5_za_datainfo.c he5_za_defexternalfld.c \ $(he5_za_defexternalfldF_32_SOURCES) \ $(he5_za_defexternalfldF_64_SOURCES) he5_za_definefields.c \ $(he5_za_definefieldsF_32_SOURCES) \ $(he5_za_definefieldsF_64_SOURCES) he5_za_info.c \ $(he5_za_infoF_32_SOURCES) $(he5_za_infoF_64_SOURCES) \ he5_za_rdexternaldata.c $(he5_za_rdexternaldataF_32_SOURCES) \ $(he5_za_rdexternaldataF_64_SOURCES) he5_za_readdata.c \ $(he5_za_readdataF_32_SOURCES) $(he5_za_readdataF_64_SOURCES) \ he5_za_setup.c $(he5_za_setupF_32_SOURCES) \ $(he5_za_setupF_64_SOURCES) he5_za_wrexternaldata.c \ $(he5_za_wrexternaldataF_32_SOURCES) \ $(he5_za_wrexternaldataF_64_SOURCES) he5_za_writedata.c \ $(he5_za_writedataF_32_SOURCES) \ $(he5_za_writedataF_64_SOURCES) DIST_SOURCES = he5_gd_datainfo.c he5_gd_defexternalfld.c \ he5_gd_definefields.c \ $(am__he5_gd_definefieldsF_32_SOURCES_DIST) \ $(am__he5_gd_definefieldsF_64_SOURCES_DIST) \ he5_gd_defunlimfld.c he5_gd_info.c \ $(am__he5_gd_infoF_32_SOURCES_DIST) \ $(am__he5_gd_infoF_64_SOURCES_DIST) he5_gd_rdexternaldata.c \ he5_gd_readdata.c $(am__he5_gd_readdataF_32_SOURCES_DIST) \ $(am__he5_gd_readdataF_64_SOURCES_DIST) he5_gd_setup.c \ $(am__he5_gd_setupF_32_SOURCES_DIST) \ $(am__he5_gd_setupF_64_SOURCES_DIST) he5_gd_subset.c \ $(am__he5_gd_subsetF_32_SOURCES_DIST) \ $(am__he5_gd_subsetF_64_SOURCES_DIST) he5_gd_wrexternaldata.c \ he5_gd_writedata.c $(am__he5_gd_writedataF_32_SOURCES_DIST) \ $(am__he5_gd_writedataF_64_SOURCES_DIST) he5_gd_wrunlimfld.c \ he5_pt_datainfo.c $(am__he5_pt_datainfoF_32_SOURCES_DIST) \ $(am__he5_pt_datainfoF_64_SOURCES_DIST) he5_pt_definelevels.c \ $(am__he5_pt_definelevelsF_32_SOURCES_DIST) \ $(am__he5_pt_definelevelsF_64_SOURCES_DIST) he5_pt_readattrs.c \ $(am__he5_pt_readattrsF_32_SOURCES_DIST) \ $(am__he5_pt_readattrsF_64_SOURCES_DIST) he5_pt_readdata.c \ $(am__he5_pt_readdataF_32_SOURCES_DIST) \ $(am__he5_pt_readdataF_64_SOURCES_DIST) he5_pt_setup.c \ $(am__he5_pt_setupF_32_SOURCES_DIST) \ $(am__he5_pt_setupF_64_SOURCES_DIST) he5_pt_updatelevels.c \ $(am__he5_pt_updatelevelsF_32_SOURCES_DIST) \ $(am__he5_pt_updatelevelsF_64_SOURCES_DIST) \ he5_pt_writeattrs.c $(am__he5_pt_writeattrsF_32_SOURCES_DIST) \ $(am__he5_pt_writeattrsF_64_SOURCES_DIST) he5_pt_writedata.c \ $(am__he5_pt_writedataF_32_SOURCES_DIST) \ $(am__he5_pt_writedataF_64_SOURCES_DIST) he5_sw_datainfo.c \ he5_sw_defexternalfld.c \ $(am__he5_sw_defexternalfldF_32_SOURCES_DIST) \ $(am__he5_sw_defexternalfldF_64_SOURCES_DIST) \ he5_sw_definefields.c \ $(am__he5_sw_definefieldsF_32_SOURCES_DIST) \ $(am__he5_sw_definefieldsF_64_SOURCES_DIST) \ he5_sw_defunlimfld.c he5_sw_info.c \ $(am__he5_sw_infoF_32_SOURCES_DIST) \ $(am__he5_sw_infoF_64_SOURCES_DIST) he5_sw_rdexternaldata.c \ $(am__he5_sw_rdexternaldataF_32_SOURCES_DIST) \ $(am__he5_sw_rdexternaldataF_64_SOURCES_DIST) \ he5_sw_readdata.c $(am__he5_sw_readdataF_32_SOURCES_DIST) \ $(am__he5_sw_readdataF_64_SOURCES_DIST) he5_sw_setup.c \ $(am__he5_sw_setupF_32_SOURCES_DIST) \ $(am__he5_sw_setupF_64_SOURCES_DIST) he5_sw_subset.c \ $(am__he5_sw_subsetF_32_SOURCES_DIST) \ $(am__he5_sw_subsetF_64_SOURCES_DIST) he5_sw_wrextendrd.c \ he5_sw_wrexternaldata.c \ $(am__he5_sw_wrexternaldataF_32_SOURCES_DIST) \ $(am__he5_sw_wrexternaldataF_64_SOURCES_DIST) \ he5_sw_writedata.c $(am__he5_sw_writedataF_32_SOURCES_DIST) \ $(am__he5_sw_writedataF_64_SOURCES_DIST) he5_sw_wrunlimfld.c \ he5_za_datainfo.c he5_za_defexternalfld.c \ $(am__he5_za_defexternalfldF_32_SOURCES_DIST) \ $(am__he5_za_defexternalfldF_64_SOURCES_DIST) \ he5_za_definefields.c \ $(am__he5_za_definefieldsF_32_SOURCES_DIST) \ $(am__he5_za_definefieldsF_64_SOURCES_DIST) he5_za_info.c \ $(am__he5_za_infoF_32_SOURCES_DIST) \ $(am__he5_za_infoF_64_SOURCES_DIST) he5_za_rdexternaldata.c \ $(am__he5_za_rdexternaldataF_32_SOURCES_DIST) \ $(am__he5_za_rdexternaldataF_64_SOURCES_DIST) \ he5_za_readdata.c $(am__he5_za_readdataF_32_SOURCES_DIST) \ $(am__he5_za_readdataF_64_SOURCES_DIST) he5_za_setup.c \ $(am__he5_za_setupF_32_SOURCES_DIST) \ $(am__he5_za_setupF_64_SOURCES_DIST) he5_za_wrexternaldata.c \ $(am__he5_za_wrexternaldataF_32_SOURCES_DIST) \ $(am__he5_za_wrexternaldataF_64_SOURCES_DIST) \ he5_za_writedata.c $(am__he5_za_writedataF_32_SOURCES_DIST) \ $(am__he5_za_writedataF_64_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F2CFORTRAN_32PTR_CONDITIONAL_FALSE = @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@ F2CFORTRAN_32PTR_CONDITIONAL_TRUE = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@ F2CFORTRAN_90_CONDITIONAL_FALSE = @F2CFORTRAN_90_CONDITIONAL_FALSE@ F2CFORTRAN_90_CONDITIONAL_TRUE = @F2CFORTRAN_90_CONDITIONAL_TRUE@ F2CFORTRAN_CONDITIONAL_FALSE = @F2CFORTRAN_CONDITIONAL_FALSE@ F2CFORTRAN_CONDITIONAL_TRUE = @F2CFORTRAN_CONDITIONAL_TRUE@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SZIP_ENCODER_CONDITIONAL_FALSE = @SZIP_ENCODER_CONDITIONAL_FALSE@ SZIP_ENCODER_CONDITIONAL_TRUE = @SZIP_ENCODER_CONDITIONAL_TRUE@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la # Boilerplate definitions file # Link against GCTP library and HDF-EOS5 INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/gctp/include LDADD = $(LIBHDFEOS5) $(LIBGCTP) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_definefieldsF_32_SOURCES = he5_gd_definefieldsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_infoF_32_SOURCES = he5_gd_infoF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_readdataF_32_SOURCES = he5_gd_readdataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_setupF_32_SOURCES = he5_gd_setupF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_subsetF_32_SOURCES = he5_gd_subsetF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_writedataF_32_SOURCES = he5_gd_writedataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_datainfoF_32_SOURCES = he5_pt_datainfoF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_definelevelsF_32_SOURCES = he5_pt_definelevelsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_readattrsF_32_SOURCES = he5_pt_readattrsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_readdataF_32_SOURCES = he5_pt_readdataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_setupF_32_SOURCES = he5_pt_setupF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_updatelevelsF_32_SOURCES = he5_pt_updatelevelsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_writeattrsF_32_SOURCES = he5_pt_writeattrsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_writedataF_32_SOURCES = he5_pt_writedataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_defexternalfldF_32_SOURCES = he5_sw_defexternalfldF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_FALSE@he5_sw_definefieldsF_32_SOURCES = he5_sw_definefieldsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_TRUE@he5_sw_definefieldsF_32_SOURCES = he5_sw_definefields_szipF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_infoF_32_SOURCES = he5_sw_infoF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_rdexternaldataF_32_SOURCES = he5_sw_rdexternaldataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_readdataF_32_SOURCES = he5_sw_readdataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_setupF_32_SOURCES = he5_sw_setupF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_subsetF_32_SOURCES = he5_sw_subsetF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_wrexternaldataF_32_SOURCES = he5_sw_wrexternaldataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_writedataF_32_SOURCES = he5_sw_writedataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_defexternalfldF_32_SOURCES = he5_za_defexternalfldF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_definefieldsF_32_SOURCES = he5_za_definefieldsF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_infoF_32_SOURCES = he5_za_infoF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_rdexternaldataF_32_SOURCES = he5_za_rdexternaldataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_readdataF_32_SOURCES = he5_za_readdataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_setupF_32_SOURCES = he5_za_setupF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_wrexternaldataF_32_SOURCES = he5_za_wrexternaldataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_writedataF_32_SOURCES = he5_za_writedataF_32.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_definefieldsF_64_SOURCES = he5_gd_definefieldsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_infoF_64_SOURCES = he5_gd_infoF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_readdataF_64_SOURCES = he5_gd_readdataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_setupF_64_SOURCES = he5_gd_setupF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_subsetF_64_SOURCES = he5_gd_subsetF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_gd_writedataF_64_SOURCES = he5_gd_writedataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_datainfoF_64_SOURCES = he5_pt_datainfoF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_definelevelsF_64_SOURCES = he5_pt_definelevelsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_readattrsF_64_SOURCES = he5_pt_readattrsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_readdataF_64_SOURCES = he5_pt_readdataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_setupF_64_SOURCES = he5_pt_setupF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_updatelevelsF_64_SOURCES = he5_pt_updatelevelsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_writeattrsF_64_SOURCES = he5_pt_writeattrsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_pt_writedataF_64_SOURCES = he5_pt_writedataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_defexternalfldF_64_SOURCES = he5_sw_defexternalfldF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_FALSE@he5_sw_definefieldsF_64_SOURCES = he5_sw_definefieldsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_TRUE@he5_sw_definefieldsF_64_SOURCES = he5_sw_definefields_szipF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_infoF_64_SOURCES = he5_sw_infoF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_rdexternaldataF_64_SOURCES = he5_sw_rdexternaldataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_readdataF_64_SOURCES = he5_sw_readdataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_setupF_64_SOURCES = he5_sw_setupF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_subsetF_64_SOURCES = he5_sw_subsetF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_wrexternaldataF_64_SOURCES = he5_sw_wrexternaldataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_sw_writedataF_64_SOURCES = he5_sw_writedataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_defexternalfldF_64_SOURCES = he5_za_defexternalfldF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_definefieldsF_64_SOURCES = he5_za_definefieldsF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_infoF_64_SOURCES = he5_za_infoF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_rdexternaldataF_64_SOURCES = he5_za_rdexternaldataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_readdataF_64_SOURCES = he5_za_readdataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_setupF_64_SOURCES = he5_za_setupF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_wrexternaldataF_64_SOURCES = he5_za_wrexternaldataF_64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@he5_za_writedataF_64_SOURCES = he5_za_writedataF_64.f # Tests consist of several programs run in succession. Each of these # names is the name of such a "sequence" of tests. TEST_SEQUENCES = gd_write_test gd_unlim_test pt_write_test \ sw_write_test sw_unlim_test sw_extend_test za_write_test \ $(am__append_3) $(am__append_4) all: all-am .SUFFIXES: .SUFFIXES: .c .f .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign samples/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign samples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done he5_gd_datainfo$(EXEEXT): $(he5_gd_datainfo_OBJECTS) $(he5_gd_datainfo_DEPENDENCIES) @rm -f he5_gd_datainfo$(EXEEXT) $(LINK) $(he5_gd_datainfo_LDFLAGS) $(he5_gd_datainfo_OBJECTS) $(he5_gd_datainfo_LDADD) $(LIBS) he5_gd_defexternalfld$(EXEEXT): $(he5_gd_defexternalfld_OBJECTS) $(he5_gd_defexternalfld_DEPENDENCIES) @rm -f he5_gd_defexternalfld$(EXEEXT) $(LINK) $(he5_gd_defexternalfld_LDFLAGS) $(he5_gd_defexternalfld_OBJECTS) $(he5_gd_defexternalfld_LDADD) $(LIBS) he5_gd_definefields$(EXEEXT): $(he5_gd_definefields_OBJECTS) $(he5_gd_definefields_DEPENDENCIES) @rm -f he5_gd_definefields$(EXEEXT) $(LINK) $(he5_gd_definefields_LDFLAGS) $(he5_gd_definefields_OBJECTS) $(he5_gd_definefields_LDADD) $(LIBS) he5_gd_definefieldsF_32$(EXEEXT): $(he5_gd_definefieldsF_32_OBJECTS) $(he5_gd_definefieldsF_32_DEPENDENCIES) @rm -f he5_gd_definefieldsF_32$(EXEEXT) $(F77LINK) $(he5_gd_definefieldsF_32_LDFLAGS) $(he5_gd_definefieldsF_32_OBJECTS) $(he5_gd_definefieldsF_32_LDADD) $(LIBS) he5_gd_definefieldsF_64$(EXEEXT): $(he5_gd_definefieldsF_64_OBJECTS) $(he5_gd_definefieldsF_64_DEPENDENCIES) @rm -f he5_gd_definefieldsF_64$(EXEEXT) $(F77LINK) $(he5_gd_definefieldsF_64_LDFLAGS) $(he5_gd_definefieldsF_64_OBJECTS) $(he5_gd_definefieldsF_64_LDADD) $(LIBS) he5_gd_defunlimfld$(EXEEXT): $(he5_gd_defunlimfld_OBJECTS) $(he5_gd_defunlimfld_DEPENDENCIES) @rm -f he5_gd_defunlimfld$(EXEEXT) $(LINK) $(he5_gd_defunlimfld_LDFLAGS) $(he5_gd_defunlimfld_OBJECTS) $(he5_gd_defunlimfld_LDADD) $(LIBS) he5_gd_info$(EXEEXT): $(he5_gd_info_OBJECTS) $(he5_gd_info_DEPENDENCIES) @rm -f he5_gd_info$(EXEEXT) $(LINK) $(he5_gd_info_LDFLAGS) $(he5_gd_info_OBJECTS) $(he5_gd_info_LDADD) $(LIBS) he5_gd_infoF_32$(EXEEXT): $(he5_gd_infoF_32_OBJECTS) $(he5_gd_infoF_32_DEPENDENCIES) @rm -f he5_gd_infoF_32$(EXEEXT) $(F77LINK) $(he5_gd_infoF_32_LDFLAGS) $(he5_gd_infoF_32_OBJECTS) $(he5_gd_infoF_32_LDADD) $(LIBS) he5_gd_infoF_64$(EXEEXT): $(he5_gd_infoF_64_OBJECTS) $(he5_gd_infoF_64_DEPENDENCIES) @rm -f he5_gd_infoF_64$(EXEEXT) $(F77LINK) $(he5_gd_infoF_64_LDFLAGS) $(he5_gd_infoF_64_OBJECTS) $(he5_gd_infoF_64_LDADD) $(LIBS) he5_gd_rdexternaldata$(EXEEXT): $(he5_gd_rdexternaldata_OBJECTS) $(he5_gd_rdexternaldata_DEPENDENCIES) @rm -f he5_gd_rdexternaldata$(EXEEXT) $(LINK) $(he5_gd_rdexternaldata_LDFLAGS) $(he5_gd_rdexternaldata_OBJECTS) $(he5_gd_rdexternaldata_LDADD) $(LIBS) he5_gd_readdata$(EXEEXT): $(he5_gd_readdata_OBJECTS) $(he5_gd_readdata_DEPENDENCIES) @rm -f he5_gd_readdata$(EXEEXT) $(LINK) $(he5_gd_readdata_LDFLAGS) $(he5_gd_readdata_OBJECTS) $(he5_gd_readdata_LDADD) $(LIBS) he5_gd_readdataF_32$(EXEEXT): $(he5_gd_readdataF_32_OBJECTS) $(he5_gd_readdataF_32_DEPENDENCIES) @rm -f he5_gd_readdataF_32$(EXEEXT) $(F77LINK) $(he5_gd_readdataF_32_LDFLAGS) $(he5_gd_readdataF_32_OBJECTS) $(he5_gd_readdataF_32_LDADD) $(LIBS) he5_gd_readdataF_64$(EXEEXT): $(he5_gd_readdataF_64_OBJECTS) $(he5_gd_readdataF_64_DEPENDENCIES) @rm -f he5_gd_readdataF_64$(EXEEXT) $(F77LINK) $(he5_gd_readdataF_64_LDFLAGS) $(he5_gd_readdataF_64_OBJECTS) $(he5_gd_readdataF_64_LDADD) $(LIBS) he5_gd_setup$(EXEEXT): $(he5_gd_setup_OBJECTS) $(he5_gd_setup_DEPENDENCIES) @rm -f he5_gd_setup$(EXEEXT) $(LINK) $(he5_gd_setup_LDFLAGS) $(he5_gd_setup_OBJECTS) $(he5_gd_setup_LDADD) $(LIBS) he5_gd_setupF_32$(EXEEXT): $(he5_gd_setupF_32_OBJECTS) $(he5_gd_setupF_32_DEPENDENCIES) @rm -f he5_gd_setupF_32$(EXEEXT) $(F77LINK) $(he5_gd_setupF_32_LDFLAGS) $(he5_gd_setupF_32_OBJECTS) $(he5_gd_setupF_32_LDADD) $(LIBS) he5_gd_setupF_64$(EXEEXT): $(he5_gd_setupF_64_OBJECTS) $(he5_gd_setupF_64_DEPENDENCIES) @rm -f he5_gd_setupF_64$(EXEEXT) $(F77LINK) $(he5_gd_setupF_64_LDFLAGS) $(he5_gd_setupF_64_OBJECTS) $(he5_gd_setupF_64_LDADD) $(LIBS) he5_gd_subset$(EXEEXT): $(he5_gd_subset_OBJECTS) $(he5_gd_subset_DEPENDENCIES) @rm -f he5_gd_subset$(EXEEXT) $(LINK) $(he5_gd_subset_LDFLAGS) $(he5_gd_subset_OBJECTS) $(he5_gd_subset_LDADD) $(LIBS) he5_gd_subsetF_32$(EXEEXT): $(he5_gd_subsetF_32_OBJECTS) $(he5_gd_subsetF_32_DEPENDENCIES) @rm -f he5_gd_subsetF_32$(EXEEXT) $(F77LINK) $(he5_gd_subsetF_32_LDFLAGS) $(he5_gd_subsetF_32_OBJECTS) $(he5_gd_subsetF_32_LDADD) $(LIBS) he5_gd_subsetF_64$(EXEEXT): $(he5_gd_subsetF_64_OBJECTS) $(he5_gd_subsetF_64_DEPENDENCIES) @rm -f he5_gd_subsetF_64$(EXEEXT) $(F77LINK) $(he5_gd_subsetF_64_LDFLAGS) $(he5_gd_subsetF_64_OBJECTS) $(he5_gd_subsetF_64_LDADD) $(LIBS) he5_gd_wrexternaldata$(EXEEXT): $(he5_gd_wrexternaldata_OBJECTS) $(he5_gd_wrexternaldata_DEPENDENCIES) @rm -f he5_gd_wrexternaldata$(EXEEXT) $(LINK) $(he5_gd_wrexternaldata_LDFLAGS) $(he5_gd_wrexternaldata_OBJECTS) $(he5_gd_wrexternaldata_LDADD) $(LIBS) he5_gd_writedata$(EXEEXT): $(he5_gd_writedata_OBJECTS) $(he5_gd_writedata_DEPENDENCIES) @rm -f he5_gd_writedata$(EXEEXT) $(LINK) $(he5_gd_writedata_LDFLAGS) $(he5_gd_writedata_OBJECTS) $(he5_gd_writedata_LDADD) $(LIBS) he5_gd_writedataF_32$(EXEEXT): $(he5_gd_writedataF_32_OBJECTS) $(he5_gd_writedataF_32_DEPENDENCIES) @rm -f he5_gd_writedataF_32$(EXEEXT) $(F77LINK) $(he5_gd_writedataF_32_LDFLAGS) $(he5_gd_writedataF_32_OBJECTS) $(he5_gd_writedataF_32_LDADD) $(LIBS) he5_gd_writedataF_64$(EXEEXT): $(he5_gd_writedataF_64_OBJECTS) $(he5_gd_writedataF_64_DEPENDENCIES) @rm -f he5_gd_writedataF_64$(EXEEXT) $(F77LINK) $(he5_gd_writedataF_64_LDFLAGS) $(he5_gd_writedataF_64_OBJECTS) $(he5_gd_writedataF_64_LDADD) $(LIBS) he5_gd_wrunlimfld$(EXEEXT): $(he5_gd_wrunlimfld_OBJECTS) $(he5_gd_wrunlimfld_DEPENDENCIES) @rm -f he5_gd_wrunlimfld$(EXEEXT) $(LINK) $(he5_gd_wrunlimfld_LDFLAGS) $(he5_gd_wrunlimfld_OBJECTS) $(he5_gd_wrunlimfld_LDADD) $(LIBS) he5_pt_datainfo$(EXEEXT): $(he5_pt_datainfo_OBJECTS) $(he5_pt_datainfo_DEPENDENCIES) @rm -f he5_pt_datainfo$(EXEEXT) $(LINK) $(he5_pt_datainfo_LDFLAGS) $(he5_pt_datainfo_OBJECTS) $(he5_pt_datainfo_LDADD) $(LIBS) he5_pt_datainfoF_32$(EXEEXT): $(he5_pt_datainfoF_32_OBJECTS) $(he5_pt_datainfoF_32_DEPENDENCIES) @rm -f he5_pt_datainfoF_32$(EXEEXT) $(F77LINK) $(he5_pt_datainfoF_32_LDFLAGS) $(he5_pt_datainfoF_32_OBJECTS) $(he5_pt_datainfoF_32_LDADD) $(LIBS) he5_pt_datainfoF_64$(EXEEXT): $(he5_pt_datainfoF_64_OBJECTS) $(he5_pt_datainfoF_64_DEPENDENCIES) @rm -f he5_pt_datainfoF_64$(EXEEXT) $(F77LINK) $(he5_pt_datainfoF_64_LDFLAGS) $(he5_pt_datainfoF_64_OBJECTS) $(he5_pt_datainfoF_64_LDADD) $(LIBS) he5_pt_definelevels$(EXEEXT): $(he5_pt_definelevels_OBJECTS) $(he5_pt_definelevels_DEPENDENCIES) @rm -f he5_pt_definelevels$(EXEEXT) $(LINK) $(he5_pt_definelevels_LDFLAGS) $(he5_pt_definelevels_OBJECTS) $(he5_pt_definelevels_LDADD) $(LIBS) he5_pt_definelevelsF_32$(EXEEXT): $(he5_pt_definelevelsF_32_OBJECTS) $(he5_pt_definelevelsF_32_DEPENDENCIES) @rm -f he5_pt_definelevelsF_32$(EXEEXT) $(F77LINK) $(he5_pt_definelevelsF_32_LDFLAGS) $(he5_pt_definelevelsF_32_OBJECTS) $(he5_pt_definelevelsF_32_LDADD) $(LIBS) he5_pt_definelevelsF_64$(EXEEXT): $(he5_pt_definelevelsF_64_OBJECTS) $(he5_pt_definelevelsF_64_DEPENDENCIES) @rm -f he5_pt_definelevelsF_64$(EXEEXT) $(F77LINK) $(he5_pt_definelevelsF_64_LDFLAGS) $(he5_pt_definelevelsF_64_OBJECTS) $(he5_pt_definelevelsF_64_LDADD) $(LIBS) he5_pt_readattrs$(EXEEXT): $(he5_pt_readattrs_OBJECTS) $(he5_pt_readattrs_DEPENDENCIES) @rm -f he5_pt_readattrs$(EXEEXT) $(LINK) $(he5_pt_readattrs_LDFLAGS) $(he5_pt_readattrs_OBJECTS) $(he5_pt_readattrs_LDADD) $(LIBS) he5_pt_readattrsF_32$(EXEEXT): $(he5_pt_readattrsF_32_OBJECTS) $(he5_pt_readattrsF_32_DEPENDENCIES) @rm -f he5_pt_readattrsF_32$(EXEEXT) $(F77LINK) $(he5_pt_readattrsF_32_LDFLAGS) $(he5_pt_readattrsF_32_OBJECTS) $(he5_pt_readattrsF_32_LDADD) $(LIBS) he5_pt_readattrsF_64$(EXEEXT): $(he5_pt_readattrsF_64_OBJECTS) $(he5_pt_readattrsF_64_DEPENDENCIES) @rm -f he5_pt_readattrsF_64$(EXEEXT) $(F77LINK) $(he5_pt_readattrsF_64_LDFLAGS) $(he5_pt_readattrsF_64_OBJECTS) $(he5_pt_readattrsF_64_LDADD) $(LIBS) he5_pt_readdata$(EXEEXT): $(he5_pt_readdata_OBJECTS) $(he5_pt_readdata_DEPENDENCIES) @rm -f he5_pt_readdata$(EXEEXT) $(LINK) $(he5_pt_readdata_LDFLAGS) $(he5_pt_readdata_OBJECTS) $(he5_pt_readdata_LDADD) $(LIBS) he5_pt_readdataF_32$(EXEEXT): $(he5_pt_readdataF_32_OBJECTS) $(he5_pt_readdataF_32_DEPENDENCIES) @rm -f he5_pt_readdataF_32$(EXEEXT) $(F77LINK) $(he5_pt_readdataF_32_LDFLAGS) $(he5_pt_readdataF_32_OBJECTS) $(he5_pt_readdataF_32_LDADD) $(LIBS) he5_pt_readdataF_64$(EXEEXT): $(he5_pt_readdataF_64_OBJECTS) $(he5_pt_readdataF_64_DEPENDENCIES) @rm -f he5_pt_readdataF_64$(EXEEXT) $(F77LINK) $(he5_pt_readdataF_64_LDFLAGS) $(he5_pt_readdataF_64_OBJECTS) $(he5_pt_readdataF_64_LDADD) $(LIBS) he5_pt_setup$(EXEEXT): $(he5_pt_setup_OBJECTS) $(he5_pt_setup_DEPENDENCIES) @rm -f he5_pt_setup$(EXEEXT) $(LINK) $(he5_pt_setup_LDFLAGS) $(he5_pt_setup_OBJECTS) $(he5_pt_setup_LDADD) $(LIBS) he5_pt_setupF_32$(EXEEXT): $(he5_pt_setupF_32_OBJECTS) $(he5_pt_setupF_32_DEPENDENCIES) @rm -f he5_pt_setupF_32$(EXEEXT) $(F77LINK) $(he5_pt_setupF_32_LDFLAGS) $(he5_pt_setupF_32_OBJECTS) $(he5_pt_setupF_32_LDADD) $(LIBS) he5_pt_setupF_64$(EXEEXT): $(he5_pt_setupF_64_OBJECTS) $(he5_pt_setupF_64_DEPENDENCIES) @rm -f he5_pt_setupF_64$(EXEEXT) $(F77LINK) $(he5_pt_setupF_64_LDFLAGS) $(he5_pt_setupF_64_OBJECTS) $(he5_pt_setupF_64_LDADD) $(LIBS) he5_pt_updatelevels$(EXEEXT): $(he5_pt_updatelevels_OBJECTS) $(he5_pt_updatelevels_DEPENDENCIES) @rm -f he5_pt_updatelevels$(EXEEXT) $(LINK) $(he5_pt_updatelevels_LDFLAGS) $(he5_pt_updatelevels_OBJECTS) $(he5_pt_updatelevels_LDADD) $(LIBS) he5_pt_updatelevelsF_32$(EXEEXT): $(he5_pt_updatelevelsF_32_OBJECTS) $(he5_pt_updatelevelsF_32_DEPENDENCIES) @rm -f he5_pt_updatelevelsF_32$(EXEEXT) $(F77LINK) $(he5_pt_updatelevelsF_32_LDFLAGS) $(he5_pt_updatelevelsF_32_OBJECTS) $(he5_pt_updatelevelsF_32_LDADD) $(LIBS) he5_pt_updatelevelsF_64$(EXEEXT): $(he5_pt_updatelevelsF_64_OBJECTS) $(he5_pt_updatelevelsF_64_DEPENDENCIES) @rm -f he5_pt_updatelevelsF_64$(EXEEXT) $(F77LINK) $(he5_pt_updatelevelsF_64_LDFLAGS) $(he5_pt_updatelevelsF_64_OBJECTS) $(he5_pt_updatelevelsF_64_LDADD) $(LIBS) he5_pt_writeattrs$(EXEEXT): $(he5_pt_writeattrs_OBJECTS) $(he5_pt_writeattrs_DEPENDENCIES) @rm -f he5_pt_writeattrs$(EXEEXT) $(LINK) $(he5_pt_writeattrs_LDFLAGS) $(he5_pt_writeattrs_OBJECTS) $(he5_pt_writeattrs_LDADD) $(LIBS) he5_pt_writeattrsF_32$(EXEEXT): $(he5_pt_writeattrsF_32_OBJECTS) $(he5_pt_writeattrsF_32_DEPENDENCIES) @rm -f he5_pt_writeattrsF_32$(EXEEXT) $(F77LINK) $(he5_pt_writeattrsF_32_LDFLAGS) $(he5_pt_writeattrsF_32_OBJECTS) $(he5_pt_writeattrsF_32_LDADD) $(LIBS) he5_pt_writeattrsF_64$(EXEEXT): $(he5_pt_writeattrsF_64_OBJECTS) $(he5_pt_writeattrsF_64_DEPENDENCIES) @rm -f he5_pt_writeattrsF_64$(EXEEXT) $(F77LINK) $(he5_pt_writeattrsF_64_LDFLAGS) $(he5_pt_writeattrsF_64_OBJECTS) $(he5_pt_writeattrsF_64_LDADD) $(LIBS) he5_pt_writedata$(EXEEXT): $(he5_pt_writedata_OBJECTS) $(he5_pt_writedata_DEPENDENCIES) @rm -f he5_pt_writedata$(EXEEXT) $(LINK) $(he5_pt_writedata_LDFLAGS) $(he5_pt_writedata_OBJECTS) $(he5_pt_writedata_LDADD) $(LIBS) he5_pt_writedataF_32$(EXEEXT): $(he5_pt_writedataF_32_OBJECTS) $(he5_pt_writedataF_32_DEPENDENCIES) @rm -f he5_pt_writedataF_32$(EXEEXT) $(F77LINK) $(he5_pt_writedataF_32_LDFLAGS) $(he5_pt_writedataF_32_OBJECTS) $(he5_pt_writedataF_32_LDADD) $(LIBS) he5_pt_writedataF_64$(EXEEXT): $(he5_pt_writedataF_64_OBJECTS) $(he5_pt_writedataF_64_DEPENDENCIES) @rm -f he5_pt_writedataF_64$(EXEEXT) $(F77LINK) $(he5_pt_writedataF_64_LDFLAGS) $(he5_pt_writedataF_64_OBJECTS) $(he5_pt_writedataF_64_LDADD) $(LIBS) he5_sw_datainfo$(EXEEXT): $(he5_sw_datainfo_OBJECTS) $(he5_sw_datainfo_DEPENDENCIES) @rm -f he5_sw_datainfo$(EXEEXT) $(LINK) $(he5_sw_datainfo_LDFLAGS) $(he5_sw_datainfo_OBJECTS) $(he5_sw_datainfo_LDADD) $(LIBS) he5_sw_defexternalfld$(EXEEXT): $(he5_sw_defexternalfld_OBJECTS) $(he5_sw_defexternalfld_DEPENDENCIES) @rm -f he5_sw_defexternalfld$(EXEEXT) $(LINK) $(he5_sw_defexternalfld_LDFLAGS) $(he5_sw_defexternalfld_OBJECTS) $(he5_sw_defexternalfld_LDADD) $(LIBS) he5_sw_defexternalfldF_32$(EXEEXT): $(he5_sw_defexternalfldF_32_OBJECTS) $(he5_sw_defexternalfldF_32_DEPENDENCIES) @rm -f he5_sw_defexternalfldF_32$(EXEEXT) $(F77LINK) $(he5_sw_defexternalfldF_32_LDFLAGS) $(he5_sw_defexternalfldF_32_OBJECTS) $(he5_sw_defexternalfldF_32_LDADD) $(LIBS) he5_sw_defexternalfldF_64$(EXEEXT): $(he5_sw_defexternalfldF_64_OBJECTS) $(he5_sw_defexternalfldF_64_DEPENDENCIES) @rm -f he5_sw_defexternalfldF_64$(EXEEXT) $(F77LINK) $(he5_sw_defexternalfldF_64_LDFLAGS) $(he5_sw_defexternalfldF_64_OBJECTS) $(he5_sw_defexternalfldF_64_LDADD) $(LIBS) he5_sw_definefields$(EXEEXT): $(he5_sw_definefields_OBJECTS) $(he5_sw_definefields_DEPENDENCIES) @rm -f he5_sw_definefields$(EXEEXT) $(LINK) $(he5_sw_definefields_LDFLAGS) $(he5_sw_definefields_OBJECTS) $(he5_sw_definefields_LDADD) $(LIBS) he5_sw_definefieldsF_32$(EXEEXT): $(he5_sw_definefieldsF_32_OBJECTS) $(he5_sw_definefieldsF_32_DEPENDENCIES) @rm -f he5_sw_definefieldsF_32$(EXEEXT) $(F77LINK) $(he5_sw_definefieldsF_32_LDFLAGS) $(he5_sw_definefieldsF_32_OBJECTS) $(he5_sw_definefieldsF_32_LDADD) $(LIBS) he5_sw_definefieldsF_64$(EXEEXT): $(he5_sw_definefieldsF_64_OBJECTS) $(he5_sw_definefieldsF_64_DEPENDENCIES) @rm -f he5_sw_definefieldsF_64$(EXEEXT) $(F77LINK) $(he5_sw_definefieldsF_64_LDFLAGS) $(he5_sw_definefieldsF_64_OBJECTS) $(he5_sw_definefieldsF_64_LDADD) $(LIBS) he5_sw_defunlimfld$(EXEEXT): $(he5_sw_defunlimfld_OBJECTS) $(he5_sw_defunlimfld_DEPENDENCIES) @rm -f he5_sw_defunlimfld$(EXEEXT) $(LINK) $(he5_sw_defunlimfld_LDFLAGS) $(he5_sw_defunlimfld_OBJECTS) $(he5_sw_defunlimfld_LDADD) $(LIBS) he5_sw_info$(EXEEXT): $(he5_sw_info_OBJECTS) $(he5_sw_info_DEPENDENCIES) @rm -f he5_sw_info$(EXEEXT) $(LINK) $(he5_sw_info_LDFLAGS) $(he5_sw_info_OBJECTS) $(he5_sw_info_LDADD) $(LIBS) he5_sw_infoF_32$(EXEEXT): $(he5_sw_infoF_32_OBJECTS) $(he5_sw_infoF_32_DEPENDENCIES) @rm -f he5_sw_infoF_32$(EXEEXT) $(F77LINK) $(he5_sw_infoF_32_LDFLAGS) $(he5_sw_infoF_32_OBJECTS) $(he5_sw_infoF_32_LDADD) $(LIBS) he5_sw_infoF_64$(EXEEXT): $(he5_sw_infoF_64_OBJECTS) $(he5_sw_infoF_64_DEPENDENCIES) @rm -f he5_sw_infoF_64$(EXEEXT) $(F77LINK) $(he5_sw_infoF_64_LDFLAGS) $(he5_sw_infoF_64_OBJECTS) $(he5_sw_infoF_64_LDADD) $(LIBS) he5_sw_rdexternaldata$(EXEEXT): $(he5_sw_rdexternaldata_OBJECTS) $(he5_sw_rdexternaldata_DEPENDENCIES) @rm -f he5_sw_rdexternaldata$(EXEEXT) $(LINK) $(he5_sw_rdexternaldata_LDFLAGS) $(he5_sw_rdexternaldata_OBJECTS) $(he5_sw_rdexternaldata_LDADD) $(LIBS) he5_sw_rdexternaldataF_32$(EXEEXT): $(he5_sw_rdexternaldataF_32_OBJECTS) $(he5_sw_rdexternaldataF_32_DEPENDENCIES) @rm -f he5_sw_rdexternaldataF_32$(EXEEXT) $(F77LINK) $(he5_sw_rdexternaldataF_32_LDFLAGS) $(he5_sw_rdexternaldataF_32_OBJECTS) $(he5_sw_rdexternaldataF_32_LDADD) $(LIBS) he5_sw_rdexternaldataF_64$(EXEEXT): $(he5_sw_rdexternaldataF_64_OBJECTS) $(he5_sw_rdexternaldataF_64_DEPENDENCIES) @rm -f he5_sw_rdexternaldataF_64$(EXEEXT) $(F77LINK) $(he5_sw_rdexternaldataF_64_LDFLAGS) $(he5_sw_rdexternaldataF_64_OBJECTS) $(he5_sw_rdexternaldataF_64_LDADD) $(LIBS) he5_sw_readdata$(EXEEXT): $(he5_sw_readdata_OBJECTS) $(he5_sw_readdata_DEPENDENCIES) @rm -f he5_sw_readdata$(EXEEXT) $(LINK) $(he5_sw_readdata_LDFLAGS) $(he5_sw_readdata_OBJECTS) $(he5_sw_readdata_LDADD) $(LIBS) he5_sw_readdataF_32$(EXEEXT): $(he5_sw_readdataF_32_OBJECTS) $(he5_sw_readdataF_32_DEPENDENCIES) @rm -f he5_sw_readdataF_32$(EXEEXT) $(F77LINK) $(he5_sw_readdataF_32_LDFLAGS) $(he5_sw_readdataF_32_OBJECTS) $(he5_sw_readdataF_32_LDADD) $(LIBS) he5_sw_readdataF_64$(EXEEXT): $(he5_sw_readdataF_64_OBJECTS) $(he5_sw_readdataF_64_DEPENDENCIES) @rm -f he5_sw_readdataF_64$(EXEEXT) $(F77LINK) $(he5_sw_readdataF_64_LDFLAGS) $(he5_sw_readdataF_64_OBJECTS) $(he5_sw_readdataF_64_LDADD) $(LIBS) he5_sw_setup$(EXEEXT): $(he5_sw_setup_OBJECTS) $(he5_sw_setup_DEPENDENCIES) @rm -f he5_sw_setup$(EXEEXT) $(LINK) $(he5_sw_setup_LDFLAGS) $(he5_sw_setup_OBJECTS) $(he5_sw_setup_LDADD) $(LIBS) he5_sw_setupF_32$(EXEEXT): $(he5_sw_setupF_32_OBJECTS) $(he5_sw_setupF_32_DEPENDENCIES) @rm -f he5_sw_setupF_32$(EXEEXT) $(F77LINK) $(he5_sw_setupF_32_LDFLAGS) $(he5_sw_setupF_32_OBJECTS) $(he5_sw_setupF_32_LDADD) $(LIBS) he5_sw_setupF_64$(EXEEXT): $(he5_sw_setupF_64_OBJECTS) $(he5_sw_setupF_64_DEPENDENCIES) @rm -f he5_sw_setupF_64$(EXEEXT) $(F77LINK) $(he5_sw_setupF_64_LDFLAGS) $(he5_sw_setupF_64_OBJECTS) $(he5_sw_setupF_64_LDADD) $(LIBS) he5_sw_subset$(EXEEXT): $(he5_sw_subset_OBJECTS) $(he5_sw_subset_DEPENDENCIES) @rm -f he5_sw_subset$(EXEEXT) $(LINK) $(he5_sw_subset_LDFLAGS) $(he5_sw_subset_OBJECTS) $(he5_sw_subset_LDADD) $(LIBS) he5_sw_subsetF_32$(EXEEXT): $(he5_sw_subsetF_32_OBJECTS) $(he5_sw_subsetF_32_DEPENDENCIES) @rm -f he5_sw_subsetF_32$(EXEEXT) $(F77LINK) $(he5_sw_subsetF_32_LDFLAGS) $(he5_sw_subsetF_32_OBJECTS) $(he5_sw_subsetF_32_LDADD) $(LIBS) he5_sw_subsetF_64$(EXEEXT): $(he5_sw_subsetF_64_OBJECTS) $(he5_sw_subsetF_64_DEPENDENCIES) @rm -f he5_sw_subsetF_64$(EXEEXT) $(F77LINK) $(he5_sw_subsetF_64_LDFLAGS) $(he5_sw_subsetF_64_OBJECTS) $(he5_sw_subsetF_64_LDADD) $(LIBS) he5_sw_wrextendrd$(EXEEXT): $(he5_sw_wrextendrd_OBJECTS) $(he5_sw_wrextendrd_DEPENDENCIES) @rm -f he5_sw_wrextendrd$(EXEEXT) $(LINK) $(he5_sw_wrextendrd_LDFLAGS) $(he5_sw_wrextendrd_OBJECTS) $(he5_sw_wrextendrd_LDADD) $(LIBS) he5_sw_wrexternaldata$(EXEEXT): $(he5_sw_wrexternaldata_OBJECTS) $(he5_sw_wrexternaldata_DEPENDENCIES) @rm -f he5_sw_wrexternaldata$(EXEEXT) $(LINK) $(he5_sw_wrexternaldata_LDFLAGS) $(he5_sw_wrexternaldata_OBJECTS) $(he5_sw_wrexternaldata_LDADD) $(LIBS) he5_sw_wrexternaldataF_32$(EXEEXT): $(he5_sw_wrexternaldataF_32_OBJECTS) $(he5_sw_wrexternaldataF_32_DEPENDENCIES) @rm -f he5_sw_wrexternaldataF_32$(EXEEXT) $(F77LINK) $(he5_sw_wrexternaldataF_32_LDFLAGS) $(he5_sw_wrexternaldataF_32_OBJECTS) $(he5_sw_wrexternaldataF_32_LDADD) $(LIBS) he5_sw_wrexternaldataF_64$(EXEEXT): $(he5_sw_wrexternaldataF_64_OBJECTS) $(he5_sw_wrexternaldataF_64_DEPENDENCIES) @rm -f he5_sw_wrexternaldataF_64$(EXEEXT) $(F77LINK) $(he5_sw_wrexternaldataF_64_LDFLAGS) $(he5_sw_wrexternaldataF_64_OBJECTS) $(he5_sw_wrexternaldataF_64_LDADD) $(LIBS) he5_sw_writedata$(EXEEXT): $(he5_sw_writedata_OBJECTS) $(he5_sw_writedata_DEPENDENCIES) @rm -f he5_sw_writedata$(EXEEXT) $(LINK) $(he5_sw_writedata_LDFLAGS) $(he5_sw_writedata_OBJECTS) $(he5_sw_writedata_LDADD) $(LIBS) he5_sw_writedataF_32$(EXEEXT): $(he5_sw_writedataF_32_OBJECTS) $(he5_sw_writedataF_32_DEPENDENCIES) @rm -f he5_sw_writedataF_32$(EXEEXT) $(F77LINK) $(he5_sw_writedataF_32_LDFLAGS) $(he5_sw_writedataF_32_OBJECTS) $(he5_sw_writedataF_32_LDADD) $(LIBS) he5_sw_writedataF_64$(EXEEXT): $(he5_sw_writedataF_64_OBJECTS) $(he5_sw_writedataF_64_DEPENDENCIES) @rm -f he5_sw_writedataF_64$(EXEEXT) $(F77LINK) $(he5_sw_writedataF_64_LDFLAGS) $(he5_sw_writedataF_64_OBJECTS) $(he5_sw_writedataF_64_LDADD) $(LIBS) he5_sw_wrunlimfld$(EXEEXT): $(he5_sw_wrunlimfld_OBJECTS) $(he5_sw_wrunlimfld_DEPENDENCIES) @rm -f he5_sw_wrunlimfld$(EXEEXT) $(LINK) $(he5_sw_wrunlimfld_LDFLAGS) $(he5_sw_wrunlimfld_OBJECTS) $(he5_sw_wrunlimfld_LDADD) $(LIBS) he5_za_datainfo$(EXEEXT): $(he5_za_datainfo_OBJECTS) $(he5_za_datainfo_DEPENDENCIES) @rm -f he5_za_datainfo$(EXEEXT) $(LINK) $(he5_za_datainfo_LDFLAGS) $(he5_za_datainfo_OBJECTS) $(he5_za_datainfo_LDADD) $(LIBS) he5_za_defexternalfld$(EXEEXT): $(he5_za_defexternalfld_OBJECTS) $(he5_za_defexternalfld_DEPENDENCIES) @rm -f he5_za_defexternalfld$(EXEEXT) $(LINK) $(he5_za_defexternalfld_LDFLAGS) $(he5_za_defexternalfld_OBJECTS) $(he5_za_defexternalfld_LDADD) $(LIBS) he5_za_defexternalfldF_32$(EXEEXT): $(he5_za_defexternalfldF_32_OBJECTS) $(he5_za_defexternalfldF_32_DEPENDENCIES) @rm -f he5_za_defexternalfldF_32$(EXEEXT) $(F77LINK) $(he5_za_defexternalfldF_32_LDFLAGS) $(he5_za_defexternalfldF_32_OBJECTS) $(he5_za_defexternalfldF_32_LDADD) $(LIBS) he5_za_defexternalfldF_64$(EXEEXT): $(he5_za_defexternalfldF_64_OBJECTS) $(he5_za_defexternalfldF_64_DEPENDENCIES) @rm -f he5_za_defexternalfldF_64$(EXEEXT) $(F77LINK) $(he5_za_defexternalfldF_64_LDFLAGS) $(he5_za_defexternalfldF_64_OBJECTS) $(he5_za_defexternalfldF_64_LDADD) $(LIBS) he5_za_definefields$(EXEEXT): $(he5_za_definefields_OBJECTS) $(he5_za_definefields_DEPENDENCIES) @rm -f he5_za_definefields$(EXEEXT) $(LINK) $(he5_za_definefields_LDFLAGS) $(he5_za_definefields_OBJECTS) $(he5_za_definefields_LDADD) $(LIBS) he5_za_definefieldsF_32$(EXEEXT): $(he5_za_definefieldsF_32_OBJECTS) $(he5_za_definefieldsF_32_DEPENDENCIES) @rm -f he5_za_definefieldsF_32$(EXEEXT) $(F77LINK) $(he5_za_definefieldsF_32_LDFLAGS) $(he5_za_definefieldsF_32_OBJECTS) $(he5_za_definefieldsF_32_LDADD) $(LIBS) he5_za_definefieldsF_64$(EXEEXT): $(he5_za_definefieldsF_64_OBJECTS) $(he5_za_definefieldsF_64_DEPENDENCIES) @rm -f he5_za_definefieldsF_64$(EXEEXT) $(F77LINK) $(he5_za_definefieldsF_64_LDFLAGS) $(he5_za_definefieldsF_64_OBJECTS) $(he5_za_definefieldsF_64_LDADD) $(LIBS) he5_za_info$(EXEEXT): $(he5_za_info_OBJECTS) $(he5_za_info_DEPENDENCIES) @rm -f he5_za_info$(EXEEXT) $(LINK) $(he5_za_info_LDFLAGS) $(he5_za_info_OBJECTS) $(he5_za_info_LDADD) $(LIBS) he5_za_infoF_32$(EXEEXT): $(he5_za_infoF_32_OBJECTS) $(he5_za_infoF_32_DEPENDENCIES) @rm -f he5_za_infoF_32$(EXEEXT) $(F77LINK) $(he5_za_infoF_32_LDFLAGS) $(he5_za_infoF_32_OBJECTS) $(he5_za_infoF_32_LDADD) $(LIBS) he5_za_infoF_64$(EXEEXT): $(he5_za_infoF_64_OBJECTS) $(he5_za_infoF_64_DEPENDENCIES) @rm -f he5_za_infoF_64$(EXEEXT) $(F77LINK) $(he5_za_infoF_64_LDFLAGS) $(he5_za_infoF_64_OBJECTS) $(he5_za_infoF_64_LDADD) $(LIBS) he5_za_rdexternaldata$(EXEEXT): $(he5_za_rdexternaldata_OBJECTS) $(he5_za_rdexternaldata_DEPENDENCIES) @rm -f he5_za_rdexternaldata$(EXEEXT) $(LINK) $(he5_za_rdexternaldata_LDFLAGS) $(he5_za_rdexternaldata_OBJECTS) $(he5_za_rdexternaldata_LDADD) $(LIBS) he5_za_rdexternaldataF_32$(EXEEXT): $(he5_za_rdexternaldataF_32_OBJECTS) $(he5_za_rdexternaldataF_32_DEPENDENCIES) @rm -f he5_za_rdexternaldataF_32$(EXEEXT) $(F77LINK) $(he5_za_rdexternaldataF_32_LDFLAGS) $(he5_za_rdexternaldataF_32_OBJECTS) $(he5_za_rdexternaldataF_32_LDADD) $(LIBS) he5_za_rdexternaldataF_64$(EXEEXT): $(he5_za_rdexternaldataF_64_OBJECTS) $(he5_za_rdexternaldataF_64_DEPENDENCIES) @rm -f he5_za_rdexternaldataF_64$(EXEEXT) $(F77LINK) $(he5_za_rdexternaldataF_64_LDFLAGS) $(he5_za_rdexternaldataF_64_OBJECTS) $(he5_za_rdexternaldataF_64_LDADD) $(LIBS) he5_za_readdata$(EXEEXT): $(he5_za_readdata_OBJECTS) $(he5_za_readdata_DEPENDENCIES) @rm -f he5_za_readdata$(EXEEXT) $(LINK) $(he5_za_readdata_LDFLAGS) $(he5_za_readdata_OBJECTS) $(he5_za_readdata_LDADD) $(LIBS) he5_za_readdataF_32$(EXEEXT): $(he5_za_readdataF_32_OBJECTS) $(he5_za_readdataF_32_DEPENDENCIES) @rm -f he5_za_readdataF_32$(EXEEXT) $(F77LINK) $(he5_za_readdataF_32_LDFLAGS) $(he5_za_readdataF_32_OBJECTS) $(he5_za_readdataF_32_LDADD) $(LIBS) he5_za_readdataF_64$(EXEEXT): $(he5_za_readdataF_64_OBJECTS) $(he5_za_readdataF_64_DEPENDENCIES) @rm -f he5_za_readdataF_64$(EXEEXT) $(F77LINK) $(he5_za_readdataF_64_LDFLAGS) $(he5_za_readdataF_64_OBJECTS) $(he5_za_readdataF_64_LDADD) $(LIBS) he5_za_setup$(EXEEXT): $(he5_za_setup_OBJECTS) $(he5_za_setup_DEPENDENCIES) @rm -f he5_za_setup$(EXEEXT) $(LINK) $(he5_za_setup_LDFLAGS) $(he5_za_setup_OBJECTS) $(he5_za_setup_LDADD) $(LIBS) he5_za_setupF_32$(EXEEXT): $(he5_za_setupF_32_OBJECTS) $(he5_za_setupF_32_DEPENDENCIES) @rm -f he5_za_setupF_32$(EXEEXT) $(F77LINK) $(he5_za_setupF_32_LDFLAGS) $(he5_za_setupF_32_OBJECTS) $(he5_za_setupF_32_LDADD) $(LIBS) he5_za_setupF_64$(EXEEXT): $(he5_za_setupF_64_OBJECTS) $(he5_za_setupF_64_DEPENDENCIES) @rm -f he5_za_setupF_64$(EXEEXT) $(F77LINK) $(he5_za_setupF_64_LDFLAGS) $(he5_za_setupF_64_OBJECTS) $(he5_za_setupF_64_LDADD) $(LIBS) he5_za_wrexternaldata$(EXEEXT): $(he5_za_wrexternaldata_OBJECTS) $(he5_za_wrexternaldata_DEPENDENCIES) @rm -f he5_za_wrexternaldata$(EXEEXT) $(LINK) $(he5_za_wrexternaldata_LDFLAGS) $(he5_za_wrexternaldata_OBJECTS) $(he5_za_wrexternaldata_LDADD) $(LIBS) he5_za_wrexternaldataF_32$(EXEEXT): $(he5_za_wrexternaldataF_32_OBJECTS) $(he5_za_wrexternaldataF_32_DEPENDENCIES) @rm -f he5_za_wrexternaldataF_32$(EXEEXT) $(F77LINK) $(he5_za_wrexternaldataF_32_LDFLAGS) $(he5_za_wrexternaldataF_32_OBJECTS) $(he5_za_wrexternaldataF_32_LDADD) $(LIBS) he5_za_wrexternaldataF_64$(EXEEXT): $(he5_za_wrexternaldataF_64_OBJECTS) $(he5_za_wrexternaldataF_64_DEPENDENCIES) @rm -f he5_za_wrexternaldataF_64$(EXEEXT) $(F77LINK) $(he5_za_wrexternaldataF_64_LDFLAGS) $(he5_za_wrexternaldataF_64_OBJECTS) $(he5_za_wrexternaldataF_64_LDADD) $(LIBS) he5_za_writedata$(EXEEXT): $(he5_za_writedata_OBJECTS) $(he5_za_writedata_DEPENDENCIES) @rm -f he5_za_writedata$(EXEEXT) $(LINK) $(he5_za_writedata_LDFLAGS) $(he5_za_writedata_OBJECTS) $(he5_za_writedata_LDADD) $(LIBS) he5_za_writedataF_32$(EXEEXT): $(he5_za_writedataF_32_OBJECTS) $(he5_za_writedataF_32_DEPENDENCIES) @rm -f he5_za_writedataF_32$(EXEEXT) $(F77LINK) $(he5_za_writedataF_32_LDFLAGS) $(he5_za_writedataF_32_OBJECTS) $(he5_za_writedataF_32_LDADD) $(LIBS) he5_za_writedataF_64$(EXEEXT): $(he5_za_writedataF_64_OBJECTS) $(he5_za_writedataF_64_DEPENDENCIES) @rm -f he5_za_writedataF_64$(EXEEXT) $(F77LINK) $(he5_za_writedataF_64_LDFLAGS) $(he5_za_writedataF_64_OBJECTS) $(he5_za_writedataF_64_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_datainfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_defexternalfld.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_definefields.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_defunlimfld.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_rdexternaldata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_readdata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_setup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_subset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_wrexternaldata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_writedata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_wrunlimfld.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_datainfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_definelevels.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_readattrs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_readdata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_setup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_updatelevels.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_writeattrs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_writedata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_datainfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_defexternalfld.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_definefields.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_defunlimfld.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_rdexternaldata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_readdata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_setup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_subset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_wrextendrd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_wrexternaldata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_writedata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_wrunlimfld.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_za_datainfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_za_defexternalfld.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_za_definefields.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_za_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_za_rdexternaldata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_za_readdata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_za_setup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_za_wrexternaldata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_za_writedata.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-local check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am check-local clean \ clean-checkPROGRAMS clean-generic clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am # 'make check' should run each of the test sequences above check-local: $(TEST_SEQUENCES) # Manually list the tests to be run in order for each test sequence. gd_write_test: $(check_PROGRAMS) ./he5_gd_setup ./he5_gd_definefields ./he5_gd_writedata ./he5_gd_readdata ./he5_gd_info ./he5_gd_datainfo ./he5_gd_subset gd_write_test_32f: $(check_PROGRAMS) ./he5_gd_setupF_32 ./he5_gd_definefieldsF_32 ./he5_gd_writedataF_32 ./he5_gd_readdataF_32 ./he5_gd_infoF_32 ./he5_gd_subsetF_32 gd_write_test_64f: $(check_PROGRAMS) ./he5_gd_setupF_64 ./he5_gd_definefieldsF_64 ./he5_gd_writedataF_64 ./he5_gd_readdataF_64 ./he5_gd_infoF_64 ./he5_gd_subsetF_64 gd_unlim_test: $(check_PROGRAMS) ./he5_gd_setup ./he5_gd_defunlimfld ./he5_gd_wrunlimfld pt_write_test: $(check_PROGRAMS) ./he5_pt_setup ./he5_pt_definelevels srcdir=$(srcdir) ./he5_pt_writedata ./he5_pt_writeattrs ./he5_pt_readdata ./he5_pt_readattrs ./he5_pt_updatelevels ./he5_pt_datainfo pt_write_test_32f: $(check_PROGRAMS) ./he5_pt_setupF_32 ./he5_pt_definelevelsF_32 srcdir=$(srcdir) ./he5_pt_writedataF_32 ./he5_pt_writeattrsF_32 ./he5_pt_readdataF_32 ./he5_pt_readattrsF_32 ./he5_pt_updatelevelsF_32 ./he5_pt_datainfoF_32 pt_write_test_64f: $(check_PROGRAMS) ./he5_pt_setupF_64 ./he5_pt_definelevelsF_64 srcdir=$(srcdir) ./he5_pt_writedataF_64 ./he5_pt_writeattrsF_64 ./he5_pt_readdataF_64 ./he5_pt_readattrsF_64 ./he5_pt_updatelevelsF_64 ./he5_pt_datainfoF_64 sw_write_test: $(check_PROGRAMS) ./he5_sw_setup ./he5_sw_definefields ./he5_sw_writedata ./he5_sw_readdata ./he5_sw_info ./he5_sw_datainfo ./he5_sw_subset sw_write_test_32f: $(check_PROGRAMS) ./he5_sw_setupF_32 ./he5_sw_definefieldsF_32 ./he5_sw_writedataF_32 ./he5_sw_readdataF_32 ./he5_sw_infoF_32 ./he5_sw_subsetF_32 sw_write_test_64f: $(check_PROGRAMS) ./he5_sw_setupF_64 ./he5_sw_definefieldsF_64 ./he5_sw_writedataF_64 ./he5_sw_readdataF_64 ./he5_sw_infoF_64 ./he5_sw_subsetF_64 sw_unlim_test: $(check_PROGRAMS) ./he5_sw_setup ./he5_sw_defunlimfld ./he5_sw_wrunlimfld ./he5_sw_subset sw_extend_test: $(check_PROGRAMS) ./he5_sw_setup ./he5_sw_definefields ./he5_sw_wrextendrd za_write_test: $(check_PROGRAMS) ./he5_za_setup ./he5_za_definefields ./he5_za_writedata ./he5_za_readdata ./he5_za_info ./he5_za_datainfo za_write_test_32f: $(check_PROGRAMS) ./he5_za_setupF_32 ./he5_za_definefieldsF_32 ./he5_za_writedataF_32 ./he5_za_readdataF_32 ./he5_za_infoF_32 za_write_test_64f: $(check_PROGRAMS) ./he5_za_setupF_64 ./he5_za_definefieldsF_64 ./he5_za_writedataF_64 ./he5_za_readdataF_64 ./he5_za_infoF_64 # This avoids any confusion between the names of the sequences and # files with the same names. .PHONY: $(TEST_SEQUENCES) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/samples/external_3.data0000755000175000017500000000062012024715435021773 0ustar amckinstryamckinstry ''''''''''''''''''''''''''''''                       hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_definefields.c0000755000175000017500000002163712024715435023146 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #include #define RANK 3 #define rank 1 /* In this program we (1) open the "Swath.h5" HDF-EOS file, */ /* (2) attach to the "Swath1" swath, and (3) define the fields */ /* ----------------------------------------------------------- */ int main() { herr_t status = FAIL; int comp_level[ 5 ] = {0,0,0,0,0}; int comp_code; int i, j; hid_t swfid = FAIL; hid_t SWid = FAIL; hsize_t chunk_dims[ 3 ]; char fillvalue[100] = "charname"; double fillvalue1 = -1.11111; int fillvalue2 = 6; /* Open the file, "Swath.h5", using the H5F_ACC_RDWR access code */ /* ------------------------------------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); if (swfid != FAIL) { SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { /* * We define seven fields. The first three, "Time", "Longitude" * and "Latitude" are geolocation fields and thus we use the * geolocation dimensions "GeoTrack" and "GeoXtrack" in the field * definitions. * * The next four fields are data fields. Note that either * geolocation or data dimensions can be used. */ status = HE5_SWsetfillvalue(SWid,"Time",H5T_NATIVE_DOUBLE, &fillvalue1); printf("Status returned by HE5_SWsetfillvalue(...\"Time\",...) : %d\n",status); status = HE5_SWdefgeofield(SWid, "Time", "GeoTrack", NULL, H5T_NATIVE_DOUBLE, 0); printf("Status returned by HE5_SWdefgeofield(...\"Time\",...) : %d\n",status); status = HE5_SWdefgeofield(SWid, "Longitude", "GeoTrack,GeoXtrack", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefgeofield(...\"Longitude\",...) : %d\n",status); status = HE5_SWdefgeofield(SWid, "Latitude", "GeoTrack,GeoXtrack", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefgeofield(...\"Latitude\",...) : %d\n",status); status = HE5_SWsetfillvalue(SWid, "Test_string", HE5T_CHARSTRING, fillvalue); printf("Status returned by HE5_SWsetfillvalue(...\"Test_string\",...) : %d\n",status); status = HE5_SWdefdatafield(SWid, "Test_string", "GeoXtrack", NULL, HE5T_CHARSTRING, 0); printf("Status returned by HE5_SWdefdatafield(...\"Test_string\",...) : %d\n",status); status = HE5_SWsetfillvalue(SWid,"Density",H5T_NATIVE_INT8, &fillvalue2); printf("Status returned by HE5_SWsetfillvalue(...\"Density\",...) : %d\n",status); status = HE5_SWdefdatafield(SWid, "Density", "GeoTrack", NULL, H5T_NATIVE_INT8, 0); printf("Status returned by HE5_SWdefdatafield(...\"Density\",...) : %d\n",status); status = HE5_SWdefdatafield(SWid, "Temperature", "GeoTrack,GeoXtrack",NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefdatafield(...\"Temperature\",...) : %d\n",status); comp_level[0] =0; chunk_dims[0] = 40; status = HE5_SWdefchunk(SWid, rank, chunk_dims); printf("\tStatus returned by HE5_SWdefchunk() : %d\n",status); status = HE5_SWdefcomp(SWid,HE5_HDFE_COMP_NONE,comp_level); status = HE5_SWdefdatafield(SWid, "Pressure", "Res2tr", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefdatafield(...\"Pressure\",...): %d\n",status); /* Define Appendable Field */ /* ----------------------- */ /* First, define chunking */ /* (the appendable dataset must be chunked) */ /* ---------------------------------------- */ chunk_dims[0] = 15; chunk_dims[1] = 40; chunk_dims[2] = 20; status = HE5_SWdefchunk(SWid, RANK, chunk_dims); printf("\tStatus returned by HE5_SWdefchunk() : %d\n",status); /* Second, define compression scheme */ /* --------------------------------- */ /* set the value of compression code: */ /* HDFE_COMP_NONE 0 */ /* HDFE_COMP_RLE 1 */ /* HDFE_COMP_NBIT 2 */ /* HDFE_COMP_SKPHUFF 3 */ /* HDFE_COMP_DEFLATE 4 */ /* HDFE_COMP_SZIP_CHIP 5 */ /* HDFE_COMP_SZIP_K13 6 */ /* HDFE_COMP_SZIP_EC 7 */ /* HDFE_COMP_SZIP_NN 8 */ /* HDFE_COMP_SZIP_K13orEC 9 */ /* HDFE_COMP_SZIP_K13orNN 10 */ /* HDFE_COMP_SHUF_DEFLATE 11 */ /* HDFE_COMP_SHUF_SZIP_CHIP 12 */ /* HDFE_COMP_SHUF_SZIP_K13 13 */ /* HDFE_COMP_SHUF_SZIP_EC 14 */ /* HDFE_COMP_SHUF_SZIP_NN 15 */ /* HDFE_COMP_SHUF_SZIP_K13orEC 16 */ /* HDFE_COMP_SHUF_SZIP_K13orNN 17 */ comp_code = 16; /*comp_code = 0;*/ /* Set compression level: value 0,1,2,3,4,5,6,7,8,9,10,16, or 32 */ /* ------------------------------------------------------------- */ comp_level[0] = 8; /*comp_level[0] = 0;*/ #ifdef HAVE_FILTER_SZIP_ENCODER status = HE5_SWdefcomp(SWid,comp_code, comp_level); printf("\tStatus returned by HE5_SWdefcomp() : %d\n",status); #else printf("SZIP encoder is not available. The data compression test is skipped.\n"); #endif status = HE5_SWdefdatafield(SWid, "Spectra", "Bands,Res2tr,Res2xtr", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_SWdefdatafield(...\"Spectra\",...) : %d\n",status); /* Define Appendable Field */ /* ----------------------- */ /* First, define chunking */ /* (the appendable dataset must be chunked) */ /* ---------------------------------------- */ chunk_dims[0] = 20; status = HE5_SWdefchunk(SWid, rank, chunk_dims); printf("\tStatus returned by HE5_SWdefchunk() : %d\n",status); /* Second, define compression scheme */ /* --------------------------------- */ /* set the value of compression code: */ /* HDFE_COMP_NONE 0 */ /* HDFE_COMP_RLE 1 */ /* HDFE_COMP_NBIT 2 */ /* HDFE_COMP_SKPHUFF 3 */ /* HDFE_COMP_DEFLATE 4 */ /* HDFE_COMP_SZIP_CHIP 5 */ /* HDFE_COMP_SZIP_K13 6 */ /* HDFE_COMP_SZIP_EC 7 */ /* HDFE_COMP_SZIP_NN 8 */ /* HDFE_COMP_SZIP_K13orEC 9 */ /* HDFE_COMP_SZIP_K13orNN 10 */ /* HDFE_COMP_SHUF_DEFLATE 11 */ /* HDFE_COMP_SHUF_SZIP_CHIP 12 */ /* HDFE_COMP_SHUF_SZIP_K13 13 */ /* HDFE_COMP_SHUF_SZIP_EC 14 */ /* HDFE_COMP_SHUF_SZIP_NN 15 */ /* HDFE_COMP_SHUF_SZIP_K13orEC 16 */ /* HDFE_COMP_SHUF_SZIP_K13orNN 17 */ comp_code = 10; /*comp_code = 0;*/ /* Set compression level: value 0,1,2,3,4,5,6,7,8,9,10,16, or 32 */ /* ------------------------------------------------------------- */ comp_level[0] = 8; /*comp_level[0] = 0;*/ #ifdef HAVE_FILTER_SZIP_ENCODER status = HE5_SWdefcomp(SWid,comp_code, comp_level); printf("\tStatus returned by HE5_SWdefcomp() : %d\n",status); #else printf("SZIP encoder is not available. The data compression test is skipped.\n"); #endif status = HE5_SWdefdatafield(SWid, "Count", "GeoTrack", "Unlim", H5T_NATIVE_INT, 0); printf("Status returned by HE5_SWdefdatafield(...\"Count\",...) : %d\n",status); /* Define Profile field */ /* -------------------- */ status = HE5_PRdefine(SWid, "Profile-2000", "ProfDim", NULL, H5T_NATIVE_UINT); printf("Status returned by HE5_PRdefine(...\"Profile-2000\",...) : %d\n",status); } } status = HE5_SWdetach(SWid); status = HE5_SWclose(swfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_rdexternaldataF_64.f0000755000175000017500000000744412024715435024132 0ustar amckinstryamckinstry! ! ---------------------------------------------------------------------------- ! | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ! ---------------------------------------------------------------------------- ! program he5_za_rdexternaldataF_64 implicit none include 'hdfeos5.inc' integer i integer status integer he5_zaopen integer he5_zaattach integer he5_zaread integer he5_zagetxdat integer he5_ehrdwrfile integer he5_zadetach integer he5_zaclose integer zafid, zaid integer nfiles integer datain1(100) integer datain2(100) integer datain3(100) integer dataout(60) integer*8 start(2) integer*8 stride(2) integer*8 count(2) integer*8 offset(3) integer*8 size(3) integer*8 nmlgth integer*8 num_elements character filelist*256 integer FAIL parameter (FAIL=-1) !.....Use this for writing (only) to an existing file integer WRITE_EXISTING_ONLY parameter (WRITE_EXISTING_ONLY=0) !.....Use this for reading (only) from an existing file integer READ_ONLY parameter (READ_ONLY=1) !.....Use this for creating and writing to a file integer WRITE_NEW parameter (WRITE_NEW=2) ! Create the external data sets ! ----------------------------- do 10 i=1,100 datain1(i) = 1000+i datain2(i) = 2000+i datain3(i) = 3000+i 10 continue num_elements = 100 status = he5_ehrdwrfile("extf1.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain1) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf2.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain2) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf3.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain3) write(*,*) 'Status returned from he5_ehrdwrfile: ',status ! Open HDF-EOS za file, "za.he5" ! ------------------------------ zafid = he5_zaopen("za.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned from he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned from he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Read the external data field ! ---------------------------- start(1) = 0 stride(1) = 1 count(1) = 60 status = he5_zaread(zaid,"ExtData", 1 start,stride,count,dataout) write(*,*) 'Status returned from he5_zaread(): ',status ! Display the data ! ---------------- do i=1,60 write(*,*)'External data',dataout(i) enddo nmlgth = 48 ! Get the number of external files ! -------------------------------- nfiles = he5_zagetxdat(zaid,"ExtData",nmlgth, 1 filelist,offset,size) write(*,*) 'Number of external files',nfiles write(*,*) 'External files:',filelist do i=1,nfiles write(*,*) 'offsets:',offset(i) write(*,*) 'sizes:',size(i) enddo endif endif ! Detach from za ! -------------- status = he5_zadetach(zaid) write(*,*) 'Status returned from he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned from he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_writedataF_64.f0000755000175000017500000000712612024715435023071 0ustar amckinstryamckinstry program he5_gd_writedataF_64 implicit none include 'hdfeos5.inc' integer i, j, status integer he5_gdopen integer he5_gdattach integer he5_gdwrfld integer he5_gdwrattr integer he5_gdwrgattr integer he5_ehwrglatt integer he5_gdwrlattr integer he5_gddetach integer he5_gdclose integer gdfid, gdid integer*8 start(2),stride(2),count(2) real*4 f,veg(120,200),temp(100,100) character*10 attr4 character*100 attr5 integer FAIL parameter (FAIL=-1) c Create data buffers c ------------------- do i=1,200 do j=1,120 veg(j,i) = 10 + i enddo enddo do i=1,100 do j=1,100 temp(j,i) = 100*(i-1) + j enddo enddo c Open HDF-EOS file "grid.he5" c --------------------------- gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid if (gdfid .ne. FAIL) then c Attach to the UTM grid c ---------------------- gdid = he5_gdattach(gdfid, "UTMGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid if (gdid .ne. FAIL) then start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 count(1) = 120 count(2) = 200 c Write data to the field "Vegetation" c ------------------------------------ status = he5_gdwrfld(gdid,"Vegetation", 1 start,stride,count,veg) write(*,*) 'Status returned by he5_gdwrfld(): ',status f = 1 count(1) = 1 c Write global attribute "float" c ------------------------------ status = he5_gdwrattr(gdid,"float", 1 HE5T_NATIVE_FLOAT,count,f) write(*,*) 'Status returned by he5_gdwrattr(): ',status attr4 = "ABCDEFGH" count(1) = 8 status = he5_gdwrattr(gdid,"GLOBAL_CHAR_ATTR",HE5T_NATIVE_CHAR, 1 count,attr4) write(*,*) 'Status returned by he5_gdwrattr(): ',status attr4 = "111" count(1) = 3 status = he5_gdwrgattr(gdid,"GLOBAL_CHAR_ATTR_1",HE5T_NATIVE_CHAR, 1 count,attr4) write(*,*) 'Status returned by he5_gdwrgattr(): ',status attr4 = "222222" count(1) = 6 status = he5_ehwrglatt(gdfid,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR, 1 count,attr4) write(*,*) 'Status returned by he5_ehwrglatt(): ',status attr5 = "abcdefgh111111111111" count(1) = 20 status = he5_gdwrlattr(gdid,"Vegetation","LocalAttribute_0", 1 HE5T_NATIVE_CHAR,count,attr5) write(*,*) 'Status returned by he5_gdwrlattr(): ',status endif endif c Detach from the grid c -------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status c Attach to the POLAR grid c ------------------------ gdid = he5_gdattach(gdfid, "PolarGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid if (gdid .ne. FAIL) then start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 count(1) = 100 count(2) = 100 c Write data to the "Temperature" field c ------------------------------------- status = he5_gdwrfld(gdid,"Temperature", 1 start,stride,count,temp) write(*,*) 'Status returned by he5_gdwrfld(): ',status endif c Detach from the grid c -------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_definefields.c0000755000175000017500000001545212024715435023125 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #include #define RANK 3 #define rank 1 /* In this program we (1) open the "ZA.he5" HDF-EOS file, */ /* (2) attach to the "ZA1" za, and (3) define the fields */ /* ----------------------------------------------------- */ int main() { herr_t status = FAIL; int comp_level[ 5 ] = {0,0,0,0,0}; int comp_code; hid_t zafid = FAIL; hid_t ZAid = FAIL; hsize_t chunk_dims[ 3 ]; char fillvalue[100] = "charname"; /* Open the file, "ZA.he5", using the H5F_ACC_RDWR access code */ /* ---------------------------------------------------------- */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDWR); if (zafid != FAIL) { ZAid = HE5_ZAattach(zafid, "ZA1"); if (ZAid != FAIL) { status = HE5_ZAdefine(ZAid, "Density", "MyTrack1", NULL, H5T_NATIVE_FLOAT); printf("Status returned by HE5_ZAdefine(...\"Density\",...) : %d\n",status); status = HE5_ZAdefine(ZAid, "Temperature", "MyTrack1,MyTrack2",NULL, H5T_NATIVE_FLOAT); printf("Status returned by HE5_ZAdefine(...\"Temperature\",...) : %d\n",status); status = HE5_ZAdefine(ZAid, "Presure", "Res2tr,Res2xtr", NULL, H5T_NATIVE_DOUBLE); printf("Status returned by HE5_ZAdefine(...\"Presure\",...) : %d\n",status); status = HE5_ZAsetfillvalue(ZAid, "Test_string", HE5T_CHARSTRING, fillvalue); printf("Status returned by HE5_ZAsetfillvalue(...\"Test_string\",...) : %d\n",status); status = HE5_ZAdefine(ZAid, "Test_string", "MyTrack2", NULL, HE5T_CHARSTRING); printf("Status returned by HE5_ZAdefine(...\"Test_string\",...) : %d\n",status); /* Define Appendable Field */ /* ----------------------- */ /* First, define chunking */ /* (the appendable dataset must be chunked) */ /* ---------------------------------------- */ chunk_dims[0] = 15; chunk_dims[1] = 40; chunk_dims[2] = 20; status = HE5_ZAdefchunk(ZAid, RANK, chunk_dims); printf("\tStatus returned by HE5_ZAdefchunk() : %d\n",status); /* Second, define compression scheme */ /* --------------------------------- */ /* set the value of compression code: */ /* HDFE_COMP_NONE 0 */ /* HDFE_COMP_RLE 1 */ /* HDFE_COMP_NBIT 2 */ /* HDFE_COMP_SKPHUFF 3 */ /* HDFE_COMP_DEFLATE 4 */ /* HDFE_COMP_SZIP_CHIP 5 */ /* HDFE_COMP_SZIP_K13 6 */ /* HDFE_COMP_SZIP_EC 7 */ /* HDFE_COMP_SZIP_NN 8 */ /* HDFE_COMP_SZIP_K13orEC 9 */ /* HDFE_COMP_SZIP_K13orNN 10 */ /* HDFE_COMP_SHUF_DEFLATE 11 */ /* HDFE_COMP_SHUF_SZIP_CHIP 12 */ /* HDFE_COMP_SHUF_SZIP_K13 13 */ /* HDFE_COMP_SHUF_SZIP_EC 14 */ /* HDFE_COMP_SHUF_SZIP_NN 15 */ /* HDFE_COMP_SHUF_SZIP_K13orEC 16 */ /* HDFE_COMP_SHUF_SZIP_K13orNN 17 */ comp_code = 9; /*comp_code = 0;*/ /* Set compression level: value 0,1,2,3,4,5,6,7,8,9,10,16, or 32 */ /* ------------------------------------------------------------- */ comp_level[0] = 16; /*comp_level[0] = 0;*/ #ifdef HAVE_FILTER_SZIP_ENCODER status = HE5_ZAdefcomp(ZAid,comp_code, comp_level); printf("\tStatus returned by HE5_ZAdefcomp() : %d\n",status); #else printf("SZIP encoder is not available. The data compression test is skipped.\n"); #endif status = HE5_ZAdefine(ZAid, "Spectra", "Bands,Res2tr,Res2xtr", NULL, H5T_NATIVE_FLOAT); printf("Status returned by HE5_ZAdefine(...\"Spectra\",...) : %d\n",status); /* Define Appendable Field */ /* ----------------------- */ /* First, define chunking */ /* (the appendable dataset must be chunked) */ /* ---------------------------------------- */ chunk_dims[0] = 20; status = HE5_ZAdefchunk(ZAid, rank, chunk_dims); printf("\tStatus returned by HE5_ZAdefchunk() : %d\n",status); /* Second, define compression scheme */ /* --------------------------------- */ /* set the value of compression code: */ /* HDFE_COMP_NONE 0 */ /* HDFE_COMP_RLE 1 */ /* HDFE_COMP_NBIT 2 */ /* HDFE_COMP_SKPHUFF 3 */ /* HDFE_COMP_DEFLATE 4 */ /* HDFE_COMP_SZIP_CHIP 5 */ /* HDFE_COMP_SZIP_K13 6 */ /* HDFE_COMP_SZIP_EC 7 */ /* HDFE_COMP_SZIP_NN 8 */ /* HDFE_COMP_SZIP_K13orEC 9 */ /* HDFE_COMP_SZIP_K13orNN 10 */ /* HDFE_COMP_SHUF_DEFLATE 11 */ /* HDFE_COMP_SHUF_SZIP_CHIP 12 */ /* HDFE_COMP_SHUF_SZIP_K13 13 */ /* HDFE_COMP_SHUF_SZIP_EC 14 */ /* HDFE_COMP_SHUF_SZIP_NN 15 */ /* HDFE_COMP_SHUF_SZIP_K13orEC 16 */ /* HDFE_COMP_SHUF_SZIP_K13orNN 17 */ comp_code = 16; /*comp_code = 0;*/ /* Set compression level: value 0,1,2,3,4,5,6,7,8,9,10,16, or 32 */ /* ------------------------------------------------------------- */ comp_level[0] = 2; /*comp_level[0] = 0;*/ #ifdef HAVE_FILTER_SZIP_ENCODER status = HE5_ZAdefcomp(ZAid,comp_code, comp_level); printf("\tStatus returned by HE5_ZAdefcomp() : %d\n",status); #else printf("SZIP encoder is not available. The data compression test is skipped.\n"); #endif status = HE5_ZAdefine(ZAid, "Count", "MyTrack1", "Unlim", H5T_NATIVE_INT); printf("Status returned by HE5_ZAdefine(...\"Count\",...) : %d\n",status); } } status = HE5_ZAdetach(ZAid); status = HE5_ZAclose(zafid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_readdata.c0000755000175000017500000000427612024715435022233 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will (1) open the "Grid.h5" HDF-EOS file, (2) attach to * the "UTMGrid", (3) read data from the "Vegetation" field. and (4) read * global, group, and local attributes. */ int main() { herr_t status = FAIL; int i, j; int grpattr[3] = {-9,-9,-9}; /* group attribute */ hid_t gdfid = FAIL; hid_t GDid = FAIL; float flt = -999.; /* global attribute */ float attr[4] = {-9.9,-9.9,-9.9,-9.9}; /* local attribute */ float veg[200][120]; hssize_t start[2] ={0, 0}; hsize_t edge[2] = {200, 100}; /* * Open the HDF grid file, "Grid.h5". */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); if (gdfid != FAIL) { /* * Attach the "UTMGrid". */ GDid = HE5_GDattach(gdfid, "UTMGrid"); if (GDid != FAIL) { status = HE5_GDreadfield(GDid, "Vegetation", start, NULL, edge, veg); printf("Status returned by HE5_GDreadfield() : %d \n", status ); for (i = 0; i < 5; i++) for (j = 0; j < 10; j++) printf("\t\t %f \n", veg[i][j]); status = HE5_GDreadattr(GDid, "GlobalAttribute", &flt); printf("Status returned by HE5_GDreadattr() : %d \n", status ); printf("\tGlobal attribute reads: \n"); printf("\t\t %f \n", flt); status = HE5_GDreadgrpattr(GDid, "GroupAttribute", grpattr); printf("Status returned by HE5_GDreadgrpattr() : %d \n", status ); printf("\tGroup attribute reads: \n"); for (i = 0; i < 3; i++) printf("\t\t %d \n", grpattr[i]); status = HE5_GDreadlocattr(GDid, "Vegetation","LocalAttribute", attr); printf("Status returned by HE5_GDreadlocattr() : %d \n", status ); printf("\tLocal attribute reads: \n"); for (i = 0; i < 4; i++) printf("\t\t %f \n", attr[i]); } } status = HE5_GDdetach(GDid); status = HE5_GDclose(gdfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_writedataF_32.f0000755000175000017500000001477212024715435023130 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" file, (2) attach to c the "Swath1" swath, and (3) write data to the "Longitude", c "Longitude" and "Spectra" fields program he5_sw_writedataF_32 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swwrfld integer he5_swwrattr integer he5_swwrlattr integer he5_swwrgattr integer he5_ehwrglatt integer he5_swsetalias integer he5_swdetach integer he5_swclose integer he5_prwrite integer swfid, swid integer buffer(250) integer counter integer i, j, k integer itrack integer*4 attr(4) integer*4 attr0(4) integer*4 track integer*4 start(3) integer*4 stride(3) integer*4 count(3) integer*4 len(4) integer*4 datasize real attr1(4) character*10 attr4 character*100 attr5 real lng(10) real lat(10) real*8 plane(800) real*8 tme(20) integer FAIL parameter (FAIL=-1) c Set longitude values along the cross track c ------------------------------------------ do i=1,10 lng(i) = i-1.0 enddo c Open HDF-EOS file, "swath.he5" c ------------------------------ swfid = he5_swopen("swath.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Write data starting at the beginning of each cross track c -------------------------------------------------------- start(1) = 0 stride(1) = 1 stride(2) = 1 count(1) = 10 count(2) = 1 c Loop through all the tracks, incrementing the track starting c position by one each time c ------------------------------------------------------------ do track = 1,20 start(2) = track - 1 status = he5_swwrfld(swid,"Longitude",start, 1 stride,count,lng) do itrack = 1,10 lat(itrack) = track enddo status = he5_swwrfld(swid,"Latitude",start, 1 stride,count,lat) enddo do i = 1,20 tme(i) = 34574087.3 + 84893.2*(i-1) enddo start(1) = 0 stride(1) = 1 count(1) = 20 status = he5_swwrfld(swid, "Time", start, stride, 1 count, tme) start(1) = 0 stride(1) = 1 stride(2) = 1 count(1) = 10 count(2) = 1 do track = 1,20 start(2) = track - 1 status = he5_swwrfld(swid,"Temperature",start, 1 stride,count,lng) enddo status = he5_swsetalias(swid,"Temperature","L2gpValue") status = he5_swsetalias(swid,"Latitude","Lat,L") c Write Spectra one plane at a time c Value is 100 * track index + band index (0-based) c ------------------------------------------------- start(1) = 0 start(2) = 0 count(1) = 20 count(2) = 40 count(3) = 1 stride(3) = 1 do i=1,15 start(3) = i - 1 do j=1,40 do k=1,20 plane((j-1)*20+k) = (j-1)*100 + i-1 enddo enddo status = he5_swwrfld(swid,"Spectra",start, 1 stride,count,plane) enddo c Populate data buffer and write data to the Profile Field c -------------------------------------------------------- datasize = 0 counter = 0 do i=1,4 len(i) = i*25 datasize = datasize + len(i) do j=1,(25*i) counter = counter + 1 buffer(counter) = (i)*1000 + j - 1 enddo enddo start(1) = 0 count(1) = 4 stride(1) = 1 status = he5_prwrite(swid,"Profile-2000",start,stride,count, 1datasize,len,buffer) write(*,*) 'Status returned by he5_prwrite(): ',status c Write User defined Attribute c ---------------------------- attr(1) = 3 attr(2) = 5 attr(3) = 7 attr(4) = 11 count(1) = 4 status = he5_swwrattr(swid,"TestAttr",HE5T_NATIVE_INT, 1 count,attr) write(*,*) 'Status returned by he5_swwrattr(): ',status c Write Global Attribute c ---------------------- attr4 = "ABCDEFGH" count(1) = 8 status = he5_swwrattr(swid,"GLOBAL_CHAR_ATTR",HE5T_NATIVE_CHAR, 1 count,attr4) write(*,*) 'Status returned by he5_swwrattr(): ',status attr4 = "111" count(1) = 3 status = he5_swwrgattr(swid,"GLOBAL_CHAR_ATTR_1",HE5T_NATIVE_CHAR, 1 count,attr4) write(*,*) 'Status returned by he5_swwrgattr(): ',status attr4 = "222222" count(1) = 6 status = he5_ehwrglatt(swfid,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR, 1 count,attr4) write(*,*) 'Status returned by he5_ehwrglatt(): ',status c Write Local Attribute c --------------------- attr0(1) = 100 attr0(2) = 200 attr0(3) = 300 attr0(4) = 400 count(1) = 4 status = he5_swwrlattr(swid,"Density","LocalAttribute_1", 1 HE5T_NATIVE_INT,count,attr0) write(*,*) 'Status returned by he5_swwrlattr(): ',status attr5 = "abababababababababab" count(1) = 20 status = he5_swwrlattr(swid,"Density","LocalAttribute_0", 1 HE5T_NATIVE_CHAR,count,attr5) write(*,*) 'Status returned by he5_swwrlattr(): ',status attr1(1) = 1.111111 attr1(2) = 2.222222 attr1(3) = 3.333333 attr1(4) = 4.444444 count(1) = 4 status = he5_swwrlattr(swid,"Longitude","LocalAttribute_2", 1 HE5T_NATIVE_REAL,count,attr1) write(*,*) 'Status returned by he5_swwrlattr(): ',status endif endif c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_datainfo.c0000755000175000017500000000534712024715435022304 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define FILENAME "Point.h5" #define OBJECT "FixedBuoy Point" int main(void) { herr_t status = FAIL; int fieldgroup = FAIL; hid_t fid = FAIL, PTid = FAIL, datatype = FAIL; H5T_class_t classid = H5T_NO_CLASS; H5T_order_t order = H5T_ORDER_ERROR; size_t size = 0; fid = HE5_PTopen(FILENAME, H5F_ACC_RDONLY); printf("File ID returned by HE5_PTopen() : %d \n", fid); PTid = HE5_PTattach(fid, OBJECT); printf("Point ID returned by HE5_PTattach() : %d \n", PTid); fieldgroup = HE5_HDFE_DATAGROUP; status = HE5_PTinqdatatype(PTid, "Observations", NULL, fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_PTinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", (int)datatype); printf("\tclass ID: %d \n", (int)classid); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_ATTRGROUP; status = HE5_PTinqdatatype(PTid, NULL, "GlobalAttribute_int", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_PTinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", (int)datatype); printf("\tclass ID: %d \n", (int)classid); printf("\torder: %d \n", (int)order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_GRPATTRGROUP; status = HE5_PTinqdatatype(PTid, NULL, "GroupAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_PTinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", (int)datatype); printf("\tclass ID: %d \n", (int)classid); printf("\torder: %d \n", (int)order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_LOCATTRGROUP; status = HE5_PTinqdatatype(PTid, "Observations", "LocalAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_PTinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", (int)datatype); printf("\tclass ID: %d \n", (int)classid); printf("\torder: %d \n", (int)order); printf("\tsize: %d \n", (int)size); } status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d \n", status); status = HE5_PTclose(fid); printf("Status returned by HE5_PTclose() : %d \n", status); return(0); } hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_infoF_32.f0000755000175000017500000001434612024715435022035 0ustar amckinstryamckinstry program he5_gd_infoF_32 implicit none include 'hdfeos5.inc' integer status integer i integer he5_gdopen integer he5_gdattach integer he5_gdfldinfo integer he5_gdprojinfo integer he5_gdgridinfo integer he5_gdinqflds integer he5_gdtileinfo integer he5_gddetach integer he5_gdclose integer gdfid integer gdid1 integer gdid2 integer nflds integer rk(32) integer nt(32) integer spherecode integer projcode integer zonecode integer*4 he5_gddiminfo integer*4 he5_gdinqdims integer*4 he5_gdnentries integer*4 he5_gdinqgrid integer*4 ndim integer*4 dims(32) integer*4 xdimsize integer*4 ydimsize integer*4 dimsize integer*4 n, strbufsize real*8 upleftpt(2) real*8 lowrightpt(2) real*8 projparm(13) character*256 dimname character*256 mxdimname character*256 fieldlist character*256 gridlist integer tilecode integer tilerank integer*4 tiledims(32) integer FAIL parameter (FAIL=-1) c Open HDF-EOS "grid.he5" file c ---------------------------- gdfid = he5_gdopen('grid.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid if (gdfid .ne. FAIL) then c Attach to the UTM and POLAR grids c --------------------------------- gdid1 = he5_gdattach(gdfid, 'UTMGrid') write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid1 gdid2 = he5_gdattach(gdfid, 'PolarGrid') write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid2 c Inquire dimensions c ------------------ ndim = he5_gdinqdims(gdid1, dimname, dims) write(*,*) 'Dimension list (UTMGrid): ', dimname do i=1,ndim write(*,*) 'dim size: ', dims(i) enddo ndim = he5_gdinqdims(gdid2, dimname, dims) write(*,*) 'Dimension list (PolarGrid): ', dimname do i=1,ndim write(*,*) 'dim size: ', dims(i) enddo c Get the sizes of certain dimensions c ----------------------------------- dimsize = he5_gddiminfo(gdid1, 'Time') write(*,*) 'Size of "Time" Array: ', dimsize dimsize = he5_gddiminfo(gdid2, 'Bands') write(*,*) 'Size of "Bands" Array: ', dimsize c Get grid parameters c ------------------- status = he5_gdgridinfo(gdid1,xdimsize,ydimsize, 1 upleftpt,lowrightpt) write(*,*)'X dim size, Y dim size (UTMGrid): ', 2 xdimsize,ydimsize write(*,*) 'Up left pt (UTMGrid): ',upleftpt(1), 1 upleftpt(2) write(*,*) 'Low right pt (UTMGrid): ',lowrightpt(1), 2 lowrightpt(2) status = he5_gdgridinfo(gdid2,xdimsize,ydimsize, 1 upleftpt,lowrightpt) write(*,*) 'X dim size, Y dim size (PolarGrid): ', 2 xdimsize,ydimsize write(*,*) 'Up left pt (PolarGrid): ',upleftpt(1), 1 upleftpt(2) write(*,*) 'Low right pt (PolarGrid): ',lowrightpt(1), 2 lowrightpt(2) c Get projection parameters c ------------------------- status = he5_gdprojinfo(gdid1,projcode,zonecode, 1 spherecode,projparm) write(*,*) 'projcode,zonecode (UTMGrid): ',projcode, 2 zonecode write(*,*) 'spherecode (UTMGrid): ', spherecode status = he5_gdprojinfo(gdid2,projcode,zonecode, 1 spherecode,projparm) write(*,*) 'projcode (PolarGrid): ', projcode write(*,*) 'spherecode (PolarGrid): ', spherecode do i=1,13 write(*,*) 'Projection Parameter: ',i,projparm(i) enddo c Get information about fields c ---------------------------- nflds = he5_gdinqflds(gdid1, fieldlist, rk, nt) if (nflds .ne. 0) then write(*,*) 'Data fields (UTMGrid): ', fieldlist do i=1,nflds write(*,*) 'rank type: ',rk(i),nt(i) enddo endif status = he5_gdtileinfo(gdid1,"Vegetation",tilecode,tilerank, 1 tiledims) write(*,*) 'Vegetation Tile Code: ', tilecode write(*,*) 'Vegetation Tile Rank: ', tilerank do i=1,tilerank write(*,*) 'Tile Dimension ',i,tiledims(i) enddo nflds = he5_gdinqflds(gdid2, fieldlist, rk, nt) if (nflds .ne. 0) then write(*,*) 'Data fields (PolarGrid): ', fieldlist do i=1,nflds write(*,*) 'rank type: ',rk(i),nt(i) enddo endif status = he5_gdfldinfo(gdid2,'Spectra',rk,dims,nt, 1 dimname,mxdimname) write(*,*) 'Spectra rank dims: ',rk(1) write(*,*) 'Spectra dim names: ',dimname write(*,*) 'Spectra max. dim names: ',mxdimname do i=1,rk(1) write(*,*) 'Spectra dims: ',i,dims(i) enddo c Get number of grid dimensions and dim. list length c -------------------------------------------------- n = he5_gdnentries(gdid1, HE5_HDFE_NENTDIM, strbufsize) write(*,*) 'Number of dimension entries (UTMGrid): ', n write(*,*) 'Length of Dimension List (UTMGrid): ',strbufsize c Get number of data fields and field list length c ----------------------------------------------- n = he5_gdnentries(gdid1, HE5_HDFE_NENTDFLD, strbufsize) write(*,*) 'Number of data fields (UTMGrid): ', n write(*,*) 'Length of Field List (UTMGrid): ',strbufsize endif c Detach from the grids c --------------------- status = he5_gddetach(gdid1) write(*,*) 'Status returned by he5_gddetach(): ',status status = he5_gddetach(gdid2) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_readdimscale.c0000644000175000017500000001227112024715435023072 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will open an HDF-EOS file and attach to UTM and Polar * Stereographic grid structures within the file to read a dimension scales * and its attributes */ int main() { herr_t status = FAIL; hid_t gdfid = FAIL; hid_t GDid1 = FAIL; int i,j; int bufsize; double *databuff; long nattr; long strbufsize; char *attrlist; size_t fldnmlen[HE5_HDFE_NAMBUFSIZE]; char *fldnm[HE5_HDFE_NAMBUFSIZE]; char *attrname = (char *)NULL; hid_t *ntype; hsize_t count = 0; void *attr; int *attr_int; float *attr_flt; char *attr_char; hsize_t dimsize; hid_t numtype; /* * Open the HDF grid file, "Grid.h5". */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); /* * If the grid file cannot be found, HE5_GDopen will return -1 for the file * handle (gdfid). We there check that this is not the case before * proceeding with the other routines. * * The HE5_GDattach routine returns the handle to the existing grid "Grid1", * GDid. If the grid is not found, HE5_GDattach returns -1 for the handle. */ if (gdfid != FAIL) { GDid1 = HE5_GDattach(gdfid, "UTMGrid"); /* the field Pollution has Time,YDim,XDim dimensions. xdim = 120; ydim = 200; Time dim is set to 10 */ if (GDid1 == FAIL) { printf("\t\tError: Cannot attach to grid \"UTMGrid\"\n"); HE5_GDclose(gdfid); return -1; } bufsize = HE5_GDgetdimscale(GDid1, "Pollution", "XDim", &dimsize, &numtype, NULL); if (bufsize == -1) { printf("\t\tError: Cannot get Dimension Scale size for XDim dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return -1; } else { printf ("bufsize = %d \n",(int)bufsize); printf ("dimsize = %d \n",(int)dimsize); printf ("numtype = %d\n", (int)numtype); } databuff = (double *) malloc(bufsize); bufsize = HE5_GDgetdimscale(GDid1, "Pollution", "XDim", &dimsize, &numtype, (void *)databuff); if (bufsize == -1) { printf("\t\tError: Cannot get Dimension Scale for XDim dimemnsion in field \"Pollution\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); free(databuff); return -1; } else { printf ("First 10 values are:\n"); for( i = 0; i < 10; i++) { printf ("DimscaleValue[%d] = %lf\n",i,databuff[i]); } } nattr = HE5_GDinqdscaleattrs(GDid1, "XDim", NULL, &strbufsize); if ( nattr < 0 ) { printf("\t\tError: Cannot get Dimension Scale attribute list for \"XDim\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); free(attrlist); return -1; } attrlist = (char *) calloc(strbufsize + 2, sizeof(char)); nattr = HE5_GDinqdscaleattrs(GDid1, "XDim", attrlist, &strbufsize); if ( nattr < 0 ) { printf("\t\tError: Cannot get Dimension Scale attribute list for \"XDim\"\n"); HE5_GDdetach(GDid1); HE5_GDclose(gdfid); free(attrlist); return -1; } printf(" \n"); printf("Dimension scale for \"XDim\" Attribute: \n"); nattr = HE5_EHparsestr(attrlist, ',', fldnm, fldnmlen); if(nattr != FAIL) { for( i = 0; i < nattr; i++) { attrname = (char *)calloc(fldnmlen[i] + 1, sizeof(char)); memmove(attrname,fldnm[i],fldnmlen[i]); ntype = (hid_t *)calloc(1, sizeof(hid_t)); if(strcmp(attrname, "REFERENCE_LIST") ==0 ) continue; status = HE5_GDdscaleattrinfo(GDid1,"XDim", attrname, ntype, &count); if( (int)*ntype == 0) { attr_int = (int *)malloc(count*sizeof(int)); attr = (void *) attr_int; } if( (int)*ntype == 10) { attr_flt = (float *)malloc(count*sizeof(float)); attr = (void *) attr_flt; } if( (int)*ntype == 57) { attr_char = (char *)malloc((count+1)*sizeof(char)); attr = (void *) attr_char; } status = HE5_GDreaddscaleattr(GDid1,"XDim", attrname, attr); printf("\n"); printf("Status returned by HE5_GDreaddscaleattr() : %d \n", status ); printf("\tAttribute Name: %s \n",attrname); printf("\tNumber of attribute elements: %lu \n", (unsigned long)count); printf("\tData type of attribute: %d \n", (int)*ntype); if( (int)*ntype == 0) { attr_int = (int *)attr; for (j = 0; j < count; j++) { printf("\tAttrvalue[%d]: %d \n", j,attr_int[j]); } } if( (int)*ntype == 10) { attr_flt = (float *)attr; for (j = 0; j < count; j++) { printf("\tAttrvalue[%d]: %f \n", j,attr_flt[j]); } } if( (int)*ntype == 57) { attr_char = (char *)attr; attr_char[count]='\0'; printf("\tAttrvalue: %s \n", attr_char); free(attr_char); } } } HE5_GDdetach(GDid1); HE5_GDclose(gdfid); return 0; } } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_defexternalfld.c0000755000175000017500000000436112024715435023470 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* --------------------------------------------------------- */ /* In this program we (1) open the "ZA.he5" HDF-EOS file, */ /* (2) attach to the "ZA1" za, and (3) define the external */ /* data field "ExtData". */ /* --------------------------------------------------------- */ int main() { herr_t status = FAIL; hid_t zafid = FAIL; hid_t ZAid = FAIL; off_t offset[3]; hsize_t size[3]; /* Open the file, "ZA.he5", using the H5F_ACC_RDWR access code */ /* ---------------------------------------------------------- */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDWR); if (zafid != FAIL) { /* Attach to the "ZA1" za */ /* ---------------------- */ ZAid = HE5_ZAattach(zafid, "ZA1"); if (ZAid != FAIL) { /* Set the data sizes and offsets in external files */ /* ------------------------------------------------ */ size[0] = 10 * sizeof(int); offset[0] = 0; size[1] = 20 * sizeof(int); offset[1] = 40; size[2] = 30 * sizeof(int); offset[2] = 80; /* Set external data files first */ /* ----------------------------- */ status = HE5_ZAsetextdata(ZAid, "external_1.data,external_2.data,external_3.data", offset, size); printf("Status returned by HE5_ZAsetextdata(...) : %d\n",status); /* Define field containing external data */ /* ------------------------------------- */ status = HE5_ZAdefine(ZAid, "ExtData", "ExtDim", NULL, H5T_NATIVE_INT); printf("Status returned by HE5_ZAdefine(...\"ExtData\",...) : %d\n",status); } } /* Detach from the za */ /* ------------------ */ status = HE5_ZAdetach(ZAid); printf("Status returned by HE5_ZAdetach(...) : %d\n",status); /* Close the file */ /* -------------- */ status = HE5_ZAclose(zafid); printf("Status returned by HE5_ZAclose(...) : %d\n",status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_defexternalfld.c0000755000175000017500000000416012024715435023445 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will (1) open the "Grid.h5" HDF-EOS file, (2) attach to * the "UTMGrid" grid, and (3) define the external data field "ExtData". */ int main() { herr_t status = FAIL; hid_t gdfid = FAIL; hid_t GDid = FAIL; off_t offset[3]; hsize_t size[3]; /* Open the file, "Grid.h5", using the H5F_ACC_RDWR access code */ /* ------------------------------------------------------------- */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); if (gdfid != FAIL) { /* Attach to the "UTMgrid" grid */ /* ---------------------------- */ GDid = HE5_GDattach(gdfid, "UTMGrid"); if (GDid != FAIL) { /* Set the data sizes and offsets in external files */ /* ------------------------------------------------ */ size[0] = 10 * sizeof(int); offset[0] = 0; size[1] = 20 * sizeof(int); offset[1] = 40; size[2] = 30 * sizeof(int); offset[2] = 80; /* Set external data files first */ /* ----------------------------- */ status = HE5_GDsetextdata(GDid, "external_1g.data,external_2g.data,external_3g.data", offset, size); printf("Status returned by HE5_GDsetextdata(...) : %d\n",status); /* Define field containing external data */ /* ------------------------------------- */ status = HE5_GDdeffield(GDid, "ExtData", "ExtDim", NULL, H5T_NATIVE_INT, 0); printf("Status returned by HE5_GDdeffield(...\"ExtData\",..) : %d\n",status); } } /* Detach from the swath */ /* --------------------- */ status = HE5_GDdetach(GDid); printf("Status returned by HE5_GDdetach(...) : %d\n",status); /* Close the file */ /* -------------- */ status = HE5_GDclose(gdfid); printf("Status returned by HE5_GDclose(...) : %d\n",status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_rdexternaldataF_32.f0000755000175000017500000000744212024715435024123 0ustar amckinstryamckinstry! ! ---------------------------------------------------------------------------- ! | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ! ---------------------------------------------------------------------------- ! program he5_za_rdexternaldataF_32 implicit none include 'hdfeos5.inc' integer i integer status integer he5_zaopen integer he5_zaattach integer he5_zaread integer he5_zagetxdat integer he5_ehrdwrfile integer he5_zadetach integer he5_zaclose integer zafid, zaid integer nfiles integer datain1(100) integer datain2(100) integer datain3(100) integer dataout(60) integer*4 start(2) integer*4 stride(2) integer*4 count(2) integer*4 offset(3) integer*4 size(3) integer*4 nmlgth integer*4 num_elements character filelist*256 integer FAIL parameter (FAIL=-1) !.....Use this for writing (only) to an existing file integer WRITE_EXISTING_ONLY parameter (WRITE_EXISTING_ONLY=0) !.....Use this for reading (only) from an existing file integer READ_ONLY parameter (READ_ONLY=1) !.....Use this for creating and writing to a file integer WRITE_NEW parameter (WRITE_NEW=2) ! Create the external data sets ! ----------------------------- do 10 i=1,100 datain1(i) = 1000+i datain2(i) = 2000+i datain3(i) = 3000+i 10 continue num_elements = 100 status = he5_ehrdwrfile("extf1.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain1) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf2.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain2) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf3.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain3) write(*,*) 'Status returned from he5_ehrdwrfile: ',status ! Open HDF-EOS za file, "za.he5" ! ------------------------------ zafid = he5_zaopen("za.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned from he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned from he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Read the external data field ! ---------------------------- start(1) = 0 stride(1) = 1 count(1) = 60 status = he5_zaread(zaid,"ExtData", 1 start,stride,count,dataout) write(*,*) 'Status returned from he5_zaread(): ',status ! Display the data ! ---------------- do i=1,60 write(*,*)'External data',dataout(i) enddo nmlgth = 48 ! Get the number of external files ! -------------------------------- nfiles = he5_zagetxdat(zaid,"ExtData",nmlgth, 1 filelist,offset,size) write(*,*) 'Number of external files',nfiles write(*,*) 'External files:',filelist do i=1,nfiles write(*,*) 'offsets:',offset(i) write(*,*) 'sizes:',size(i) enddo endif endif ! Detach from za ! -------------- status = he5_zadetach(zaid) write(*,*) 'Status returned from he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned from he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_definefields_szipF_64.f0000644000175000017500000001227112024715435024624 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" HDF-EOS file, (2) c attach to the "Swath1" swath, and (3) define the swath fields c ============================================================= program he5_sw_definefieldsF_64 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swsetfill integer he5_swdefgfld integer he5_prdefine integer he5_swdefdfld integer he5_swdefchunk integer he5_swdefcomp integer he5_swdetach integer he5_swclose integer he5_szip_can_encode integer swfid, swid integer chunkrank integer canenc integer*8 chunkdims(3) integer compparm(1) integer FAIL parameter (FAIL=-1) c Open the HDF-EOS file, "swath.he5" using "READ/WRITE" access code c ----------------------------------------------------------------- swfid = he5_swopen("swath.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Define Geolocation and Data fields c ---------------------------------- c --------------------------------------------------------------- c We define six fields. The first three, "Time", "Longitude" c and "Latitude" are geolocation fields and thus we use the c geolocation dimensions "GeoTrack" and "GeoXtrack" in the field c definitions. We also must specify the data type using the c standard HDF data type codes. In this example the geolocation c are 4-byte (32 bit) floating point numbers. c c The next three fields are data fields. Note that either c geolocation or data dimensions can be used. c --------------------------------------------------------------- status = he5_swdefgfld(swid, "Time", "GeoTrack", " ", 1 HE5T_NATIVE_DOUBLE, 0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefgfld(swid, "Longitude", 1 "GeoXtrack,GeoTrack"," ",HE5T_NATIVE_FLOAT,0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefgfld(swid,"Latitude", 1 "GeoXtrack,GeoTrack"," ",HE5T_NATIVE_FLOAT,0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swsetfill(swid,"test_string",HE5T_NATIVE_CHAR, 1 'missing') write(*,*) 'Status returned by he5_swsetfill(): ',status status = he5_swdefdfld(swid,"test_string","GeoXtrack", 1 " ",HE5T_NATIVE_CHAR,0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid,"Density","GeoTrack", 1 " ",HE5T_NATIVE_FLOAT,0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid,"Temperature", 1 "GeoXtrack,GeoTrack"," ",HE5T_NATIVE_FLOAT,0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid,"Pressure","Res2xtr,Res2tr", 1 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status chunkrank = 3 chunkdims(1) = 20 chunkdims(2) = 40 chunkdims(3) = 15 compparm(1) = 6 status = he5_swdefchunk(swid,chunkrank,chunkdims) write(*,*) 'Status returned by he5_swdefchunk(): ',status canenc = he5_szip_can_encode() if (canenc .ne. 0) then status = he5_swdefcomp(swid, 1 HE5_HDFE_COMP_SHUF_SZIP_K13orEC,compparm) write(*,*) 'Status returned by he5_swdefcomp(): ', 1 status else write(*,*) 'SZIP encoder is not available.' write(*,*) 'The data compression test is skipped.' endif status = he5_swdefdfld(swid, "Spectra", 1 "Res2xtr,Res2tr,Bands"," ", 2 HE5T_NATIVE_DOUBLE,0) write(*,*) 'Status returned by he5_swdefdfld(): ',status c Define Profile Field c ----------------------- status = he5_prdefine(swid, "Profile-2000", 1 "ProfDim", " ", HE5T_NATIVE_INT) write(*,*) 'Status returned by he5_prdefine(): ',status c Define Appendable Field c ----------------------- c status = he5_swdefdfld(swid, "Count", "GeoTrack", c 1 "Unlim", HE5T_NATIVE_INT, 0) endif endif c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_updatelevelsF_32_a.f0000755000175000017500000001003312024715435024115 0ustar amckinstryamckinstry program he5_pt_updatelevelsF_32 integer status integer ptfid integer ptid integer level integer rank, datatype integer*4 recs(32) integer*4 nrec integer*4 dimens(2) integer*4 num_elements real*4 concentration_tt(4) real*4 conc(15,4) real*4 conc_tt(4) real*4 outconc(4,15) real*8 time(15) real*8 time_tt character*8 spc(15) character*8 spc_tt character*80 fieldname integer datasize_time integer datasize_conc integer datasize_spc integer dtype(3) integer he5_ptopen integer he5_ptattach integer he5_ptupdatelevel integer he5_ptdetach integer he5_ptclose c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = HE5_PTattach(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid open(unit=1, file='simple_a.txt', status='OLD') n = 0 do 10 i=1,1000 read(1, *, end=100) time_tt, concentration_tt(1), 1 concentration_tt(2), 2 concentration_tt(3), 3 concentration_tt(4), 4 spc_tt time(i) = time_tt conc(i,1) = concentration_tt(1) conc(i,2) = concentration_tt(2) conc(i,3) = concentration_tt(3) conc(i,4) = concentration_tt(4) spc(i) = spc_tt n = n + 1 10 continue 100 close(unit=1) print *,'n = ',n do i = 1,n print *,time(i) print *,conc(i,1),conc(i,2),conc(i,3),conc(i,4) print *,spc(i) end do c.....specify the storage size of each atomic field datasize_time = 8 datasize_conc = 4*4 datasize_spc = 8*1 dtype(1) = HE5T_NATIVE_DOUBLE dtype(2) = HE5T_NATIVE_FLOAT dtype(3) = HE5T_NATIVE_CHAR cc... One way that works nrec = 0 recs(1) = 0 cc... Another way that works cc nrec = n cc do i = 1,n cc recs(i) = i-1 cc end do level = 0 fieldname = 'Concentration' cc conc_tt(1) = 1.11 cc conc_tt(2) = 2.22 cc conc_tt(3) = 3.33 cc conc_tt(4) = 4.44 c.....Convert array to 'C' order dimens(1) = 15 dimens(2) = 4 rank = 2 datatype = HE5T_NATIVE_FLOAT num_elements = he5_ptfort2c(dimens, rank, datatype, conc, 1outconc) write(*,*) 'num_elements returned by he5_ptfort2c(): ',num_elements c status = he5_ptupdatelevel(ptid, level, fieldname, nrec, c 1recs, datasize_conc, dtype(2), conc) status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, datasize_conc, dtype(2), outconc) write(*,*) 'Status returned by he5_ptupdatelevel(): ',status cc print *,nrec cc print *,recs fieldname = 'Time' cc time_tt = 13131313.0 status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, datasize_time, dtype(1), time) write(*,*) 'Status returned by he5_ptupdatelevel(): ',status cc print *,nrec cc print *,recs fieldname = 'Species' cc spc_tt = 'AM' status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, datasize_spc, dtype(3), spc) write(*,*) 'Status returned by he5_ptupdatelevel(): ',status cc print *,nrec cc print *,recs c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_readdataF_32.f0000755000175000017500000001036112024715435022677 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" file, (2) attach to c the "Swath1" swath, and (3) read data from the "Longitude" field c ================================================================ program he5_sw_readdataF_32 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swrdfld integer he5_swrdattr integer he5_prread integer he5_swdetach integer he5_swclose integer swfid, swid integer buffer_out(250) integer i,j,j1 integer element1(25) integer element2(50) integer element3(75) integer element4(100) real*4 lng(10,20) real*4 temp(10,20) integer*4 attr(4) integer*4 start(2) integer*4 stride(2) integer*4 count(2) integer*4 len(4) integer FAIL parameter (FAIL=-1) c Open HDF-EOS swath file, "swath.he5" c ----------------------------------- swfid = he5_swopen("swath.he5",HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Read the entire Longitude field c ------------------------------- start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 count(1) = 10 count(2) = 20 status = he5_swrdfld(swid,"Longitude", 1 start,stride,count,lng) do i=1,20 do j=1,10 write(*,*)'i j Longitude ',i,j,lng(j,i) enddo enddo start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 count(1) = 10 count(2) = 20 status = he5_swrdfld(swid,"L2gpValue", 1 start,stride,count,temp) do i=1,20 do j=1,10 write(*,*)'i j L2gpValue ',i,j,temp(j,i) enddo enddo c Read data from the Profile c -------------------------- start(1) = 0 stride(1) = 1 count(1) = 4 status = he5_prread(swid,"Profile-2000",start,stride,count, 1len,buffer_out) write(*,*) ' ' write(*,*) 'Status returned from he5_prread: ',status c Display the Profile data c ------------------------ do i=1,4 write(*,*) 'len(',i,'): ',len(i) enddo write(*,*) ' ' write(*,*) 'buffer_out: ' write(*,*) buffer_out write(*,*) ' ' j = 0 do i=1,25 element1(i) = buffer_out(i) j = j + 1 enddo write(*,*) '1st element: ' write(*,*) element1 write(*,*) ' ' j1 = j do i=1,50 element2(i) = buffer_out(j1 + i) j = j + 1 enddo write(*,*) '2nd element: ' write(*,*) element2 write(*,*) ' ' j1 = j do i=1,75 element3(i) = buffer_out(j1 + i) j = j + 1 enddo write(*,*) '3rd element: ' write(*,*) element3 write(*,*) ' ' j1 = j do i=1,100 element4(i) = buffer_out(j1 + i) j = j + 1 enddo write(*,*) '4th element: ' write(*,*) element4 write(*,*) ' ' c Read Attribute c -------------- status = he5_swrdattr(swid, "TestAttr", attr) do i=1,4 write(*,*) 'Attribute Element', i, ':', attr(i) enddo endif endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned from he5_swdetach: ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned from he5_swclose: ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/external_2.data0000755000175000017500000000062012024715435021772 0ustar amckinstryamckinstry''''''''''''''''''''      !"#$%&'()*+,-./01234hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_readattrsF_32.f0000755000175000017500000001125012024715435023113 0ustar amckinstryamckinstry program he5_pt_readattrsF_32 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptinqattrs integer he5_ptinqgrpattrs integer he5_ptinqlocattrs integer he5_ptattrinfo integer he5_ptgrpattrinfo integer he5_ptlocattrinfo integer he5_ptreadattr integer he5_ptreadgrpattr integer he5_ptreadlocattr integer he5_ptdetach integer he5_ptclose integer attr integer attr1(5) integer attr2(5) integer ntype integer*4 sz integer*4 strbufsize integer*4 nattr real*4 flt character*1 null_char_0 character*80 attrname character*80 levelname character*240 attrlist null_char_0 = '0' c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read FixedBuoy Point c -------------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Global Attributes c ----------------- attrname = 'GlobalAttribute_int' print *,'Global Attribute: ' status = he5_ptreadattr(ptid,attrname,attr) write(*,*) 'Status returned by he5_ptreadattr(): ',status print *,'Attribute value: ',attr nattr = he5_ptinqattrs(ptid,null_char_0,strbufsize) print *,'Number of attributes: ',nattr print *,'Size (in bytes) of attribute list: ',strbufsize nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) print *,'Number of attributes: ',nattr print *,'Attribute list: ',attrlist attrname = 'GlobalAttribute_int' status = he5_ptattrinfo(ptid,attrname,ntype,sz) write(*,*) 'Status returned by he5_ptattrinfo(): ',status print *,'Data type of attribute: ',ntype print *,'Number of attribute elements: ',sz print *,' ' attrname = 'GlobalAttribute_float' print *,'attrname: ',attrname status = he5_ptattrinfo(ptid,attrname,ntype,sz) write(*,*) 'Status returned by he5_ptattrinfo(): ',status print *,'Data type of attribute: ',ntype print *,'Number of attribute elements: ',sz status = he5_ptreadattr(ptid,attrname,flt) write(*,*) 'Status returned by he5_ptreadattr(): ',status print *,'Attribute value: ',flt attrname = 'GroupAttribute' c Global Attributes c ----------------- print *, 'Group Attribute:' status = he5_ptreadgrpattr(ptid,attrname,attr1) print *,'Status returned by he5_ptreadgrpattr(): ',status print *,'Attribute values: ',attr1 nattr = he5_ptinqgrpattrs(ptid,null_char_0,strbufsize) print *,'Number of attributes: ',nattr print *,'Size (in bytes) of attribute list: ',strbufsize nattr = he5_ptinqgrpattrs(ptid,attrlist,strbufsize) print *,'Attribute list: ',attrlist attrname = 'GroupAttribute' status = he5_ptgrpattrinfo(ptid,attrname,ntype,sz) write(*,*) 'Status returned by he5_ptgrpattrinfo(): ',status print *,'Data type of attribute: ',ntype print *,'Number of attribute elements: ',sz c Local Attributes c ---------------- print *, 'Local Attribute:' attrname = 'LocalAttribute' levelname = 'Observations' status = he5_ptreadlocattr(ptid,levelname,attrname,attr2) print *,'Status returned by he5_ptreadlocattr(): ',status print *,'Attribute values: ',attr2 nattr = he5_ptinqlocattrs(ptid,levelname,null_char_0,strbufsize) print *,'Status returned by he5_ptinqlocattrs(): ',status print *,'Number of attributes: ',nattr print *,'Size (in bytes) of attribute list: ',strbufsize nattr = he5_ptinqlocattrs(ptid,levelname,attrlist,strbufsize) print *,'Attribute list: ',attrlist status = he5_ptlocattrinfo(ptid,levelname,attrname,ntype,sz) print *,'Data type of attribute: ',ntype print *,'Number of attribute elements: ',sz c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_readattrsF_64.f0000755000175000017500000001125212024715435023122 0ustar amckinstryamckinstry program he5_pt_readattrsF_64 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptinqattrs integer he5_ptinqgrpattrs integer he5_ptinqlocattrs integer he5_ptattrinfo integer he5_ptgrpattrinfo integer he5_ptlocattrinfo integer he5_ptreadattr integer he5_ptreadgrpattr integer he5_ptreadlocattr integer he5_ptdetach integer he5_ptclose integer attr integer attr1(5) integer attr2(5) integer ntype integer*8 sz integer*8 strbufsize integer*8 nattr real*4 flt character*1 null_char_0 character*80 attrname character*80 levelname character*240 attrlist null_char_0 = '0' c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read FixedBuoy Point c -------------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Global Attributes c ----------------- attrname = 'GlobalAttribute_int' print *,'Global Attribute: ' status = he5_ptreadattr(ptid,attrname,attr) write(*,*) 'Status returned by he5_ptreadattr(): ',status print *,'Attribute value: ',attr nattr = he5_ptinqattrs(ptid,null_char_0,strbufsize) print *,'Number of attributes: ',nattr print *,'Size (in bytes) of attribute list: ',strbufsize nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) print *,'Number of attributes: ',nattr print *,'Attribute list: ',attrlist attrname = 'GlobalAttribute_int' status = he5_ptattrinfo(ptid,attrname,ntype,sz) write(*,*) 'Status returned by he5_ptattrinfo(): ',status print *,'Data type of attribute: ',ntype print *,'Number of attribute elements: ',sz print *,' ' attrname = 'GlobalAttribute_float' print *,'attrname: ',attrname status = he5_ptattrinfo(ptid,attrname,ntype,sz) write(*,*) 'Status returned by he5_ptattrinfo(): ',status print *,'Data type of attribute: ',ntype print *,'Number of attribute elements: ',sz status = he5_ptreadattr(ptid,attrname,flt) write(*,*) 'Status returned by he5_ptreadattr(): ',status print *,'Attribute value: ',flt attrname = 'GroupAttribute' c Global Attributes c ----------------- print *, 'Group Attribute:' status = he5_ptreadgrpattr(ptid,attrname,attr1) print *,'Status returned by he5_ptreadgrpattr(): ',status print *,'Attribute values: ',attr1 nattr = he5_ptinqgrpattrs(ptid,null_char_0,strbufsize) print *,'Number of attributes: ',nattr print *,'Size (in bytes) of attribute list: ',strbufsize nattr = he5_ptinqgrpattrs(ptid,attrlist,strbufsize) print *,'Attribute list: ',attrlist attrname = 'GroupAttribute' status = he5_ptgrpattrinfo(ptid,attrname,ntype,sz) write(*,*) 'Status returned by he5_ptgrpattrinfo(): ',status print *,'Data type of attribute: ',ntype print *,'Number of attribute elements: ',sz c Local Attributes c ---------------- print *, 'Local Attribute:' attrname = 'LocalAttribute' levelname = 'Observations' status = he5_ptreadlocattr(ptid,levelname,attrname,attr2) print *,'Status returned by he5_ptreadlocattr(): ',status print *,'Attribute values: ',attr2 nattr = he5_ptinqlocattrs(ptid,levelname,null_char_0,strbufsize) print *,'Status returned by he5_ptinqlocattrs(): ',status print *,'Number of attributes: ',nattr print *,'Size (in bytes) of attribute list: ',strbufsize nattr = he5_ptinqlocattrs(ptid,levelname,attrlist,strbufsize) print *,'Attribute list: ',attrlist status = he5_ptlocattrinfo(ptid,levelname,attrname,ntype,sz) print *,'Data type of attribute: ',ntype print *,'Number of attribute elements: ',sz c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_defexternalfldF_64.f0000755000175000017500000000343512024715435024132 0ustar amckinstryamckinstryc c In this program we (1) open the "swath.he5" HDF-EOS file, (2) c attach to the "Swath1" swath, and (3) define the external c data field "ExtData". c program he5_sw_defexternalfldF_64 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swdefdfld integer he5_swdetach integer he5_swclose integer he5_swsetxdat integer swfid, swid integer*8 offset(3), size(3) integer FAIL parameter (FAIL=-1) c Open the HDF-EOS file, "swath.he5" using "READ/WRITE" access code c ----------------------------------------------------------------- swfid = he5_swopen("swath.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then offset(1) = 0 size(1) = 40 offset(2) = 40 size(2) = 80 offset(3) = 80 size(3) = 120 status = he5_swsetxdat(swid, "extf1.dat,extf2.dat,extf3.dat", 1offset, size) write(*,*) 'Status returned by he5_swsetxdat(): ',status status = he5_swdefdfld(swid, "ExtData", "ExtDim", 1" ", HE5T_NATIVE_INT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status endif endif c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_definefieldsF_32.f0000755000175000017500000000541612024715435023541 0ustar amckinstryamckinstry! In this program we (1) open the "za.he5" HDF-EOS file, ! (2) attach to the "ZA1" za, and (3) define the za fields ! ======================================================== program he5_za_definefieldsF_32 implicit none include 'hdfeos5.inc' integer status integer he5_zaopen integer he5_zaattach integer he5_zadefine integer he5_zadefchunk integer he5_zadefcomp integer he5_zadetach integer he5_zaclose integer zafid, zaid integer chunkrank integer*4 chunkdims(3) integer compparm(1) integer FAIL parameter (FAIL=-1) ! Open the HDF-EOS file, "za.he5" using "READ/WRITE" access code ! -------------------------------------------------------------- zafid = he5_zaopen("za.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Define Data fields ! ------------------ status = he5_zadefine(zaid, "Density", 1 "MyTrack1"," ", HE5T_NATIVE_FLOAT) write(*,*) 'Status returned by he5_zadefine(): ',status status = he5_zadefine(zaid, "Temperature", 1 "MyTrack2,MyTrack1", 2 " ", HE5T_NATIVE_FLOAT) write(*,*) 'Status returned by he5_zadefine(): ',status status = he5_zadefine(zaid, "Pressure", 1 "Res2xtr,Res2tr", 2 " ", HE5T_NATIVE_FLOAT) write(*,*) 'Status returned by he5_zadefine(): ',status chunkrank = 3 chunkdims(1) = 20 chunkdims(2) = 40 chunkdims(3) = 15 compparm(1) = 6 status = he5_zadefchunk(zaid,chunkrank,chunkdims) write(*,*) 'Status returned by he5_zadefchunk(): ',status status = he5_zadefcomp(zaid,HE5_HDFE_COMP_DEFLATE,compparm) write(*,*) 'Status returned by he5_zadefcomp(): ',status status = he5_zadefine(zaid, "Spectra", 1 "Res2xtr,Res2tr,Bands", 2 " ", HE5T_NATIVE_DOUBLE) write(*,*) 'Status returned by he5_zadefine(): ',status endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_readdataF_32.f0000755000175000017500000000360012024715435022636 0ustar amckinstryamckinstry program he5_gd_readdataF_32 implicit none include 'hdfeos5.inc' integer status integer gdfid integer gdid integer he5_gdopen integer he5_gdattach integer he5_gdrdfld integer he5_gdrdattr integer he5_gddetach integer he5_gdclose integer*4 start(2) integer*4 stride(2) integer*4 count(2) real*4 f real*4 veg(120,200) integer FAIL parameter (FAIL=-1) c Open HDF-EOS "grid.he5" file c ----------------------------- gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdid if (gdfid .ne. FAIL) then c Attach to the UTM grid c ---------------------- gdid = he5_gdattach(gdfid, "UTMGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid if (gdid .ne. FAIL) then start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 count(1) = 120 count(2) = 200 c Read the data from "Vegetation" field c ------------------------------------- status = he5_gdrdfld(gdid,"Vegetation", 1 start,stride,count,veg) write(*,*) 'Status returned by he5_gdrdfld(): ',status c Read global attribute "float" c ----------------------------- status = he5_gdrdattr(gdid, "float", f) write(*,*) 'Status returned by he5_gdrdattr(): ',status write(*,*) 'global attribute value: ', f endif endif c Detach from the grid c -------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/simple.txt0000755000175000017500000000116612024715435021134 0ustar amckinstryamckinstry 46353400.0 2.98 3.99 2.63 1.41 CO 46572420.7 3.99 4.52 2.35 2.52 CO2 46853103.3 2.11 3.10 4.81 1.83 CO 47485493.4 3.39 3.02 3.09 3.90 CO2 48066418.5 2.06 4.49 1.67 1.74 O3 48474414.6 1.06 4.63 4.44 3.33 CO2 48866282.4 2.18 2.02 1.41 1.00 O3 49388188.2 3.73 2.00 2.30 1.46 O3 49858070.5 2.97 3.75 2.33 5.02 NOx 50370437.1 4.38 3.70 1.96 3.11 NOx 50515373.3 0.24 1.91 4.33 1.49 CO 51257471.8 3.62 1.40 0.48 2.32 CO2 51708197.8 3.53 3.16 2.01 1.56 O3 51859454.7 0.62 0.76 2.06 4.01 O3 52433289.8 1.68 1.35 1.71 4.06 O3 hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_datainfoF_32.f0000755000175000017500000000554212024715435022716 0ustar amckinstryamckinstry program he5_pt_datainfoF_32 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptinqdatatype integer he5_ptdetach integer he5_ptclose integer dtype integer classid integer order integer fieldgroup integer*4 size character*1 null_char_0 character*80 fieldname character*80 attrname null_char_0 = '0' c Open the HDF point file, "point.he5" c ------------------------------------ ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid fieldgroup = HE5_HDFE_DATAGROUP fieldname = 'Observations' status = he5_ptinqdatatype(ptid,fieldname,null_char_0,fieldgroup, 1dtype,classid,order,size) print *,'Status returned from he5_ptinqdatatype(): ',status print *,'datatype: ',dtype print *,'class ID: ',classid print *,'order: ',order print *,'size: ',size fieldgroup = HE5_HDFE_ATTRGROUP attrname = 'GlobalAttribute_int' status = he5_ptinqdatatype(ptid,null_char_0,attrname,fieldgroup, 1dtype,classid,order,size) print *,'Status returned from he5_ptinqdatatype(): ',status print *,'datatype: ',dtype print *,'class ID: ',classid print *,'order: ',order print *,'size: ',size fieldgroup = HE5_HDFE_GRPATTRGROUP attrname = 'GroupAttribute' status = he5_ptinqdatatype(ptid,null_char_0,attrname,fieldgroup, 1dtype,classid,order,size) print *,'Status returned from he5_ptinqdatatype(): ',status print *,'datatype: ',dtype print *,'class ID: ',classid print *,'order: ',order print *,'size: ',size fieldname = 'Observations' fieldgroup = HE5_HDFE_LOCATTRGROUP attrname = 'LocalAttribute' status = he5_ptinqdatatype(ptid,fieldname,attrname,fieldgroup, 1dtype,classid,order,size) print *,'Status returned from he5_ptinqdatatype(): ',status print *,'datatype: ',dtype print *,'class ID: ',classid print *,'order: ',order print *,'size: ',size c Close out the point interface c ----------------------------- status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_setupF_64.f0000755000175000017500000000524112024715435022261 0ustar amckinstryamckinstry! In this program we (1) open an HDF-EOS file, (2) create the ! za interface, and (3) define the za field dimensions ! =========================================================== program he5_za_setupF_64 implicit none include 'hdfeos5.inc' include 'hdfeos5_64.inc' integer status integer he5_zaopen integer he5_zacreate integer he5_zadefdim integer he5_zadetach integer he5_zaclose integer zafid, zaid integer*8 dtrack, extdata ! Open the HDF-EOS file, "za.he5" using "TRUNC" file access code ! -------------------------------------------------------------- zafid = he5_zaopen("za.he5",HE5F_ACC_TRUNC) write(*,*) 'File ID returned by he5_zaopen(): ',zafid ! Create the za, "ZA1", within the file ! ------------------------------------- zaid = he5_zacreate(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zacreate(): ',zaid ! Define Data dimensions ! ---------------------- dtrack = 20 status = he5_zadefdim(zaid, "MyTrack1", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 10 status = he5_zadefdim(zaid, "MyTrack2", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 40 status = he5_zadefdim(zaid, "Res2tr", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 20 status = he5_zadefdim(zaid, "Res2xtr", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 15 status = he5_zadefdim(zaid, "Bands", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status dtrack = 12 status = he5_zadefdim(zaid, "IndxTrack", dtrack) write(*,*) 'Status returned by he5_zadefdim(): ',status ! Define "External" dimension ! --------------------------- extdata = 60 status = he5_zadefdim(zaid, "ExtDim", extdata) write(*,*) 'Status returned by he5_zadefdim(): ',status ! Define Unlimited (appendable) dimension ! --------------------------------------- status = he5_zadefdim(zaid, "Unlim", HE5S_UNLIMITED_F_64) write(*,*) 'Status returned by he5_zadefdim(): ',status ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the za file ! ----------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_wrextendrd.c0000755000175000017500000000701512024715435022705 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* This program demonstrates the use of the unlimited dimension */ /* in creating an appendable field */ /* -------------------------------------------------------------- */ int main() { herr_t status = FAIL; int i, rank = FAIL; int inarray[20] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; int outarray[40]; hid_t swfid = FAIL; hid_t SWid = FAIL; hid_t *ntype; hssize_t start[1]; hsize_t count[1], dims[1]; char dimlist[100]; char maxdimlist[100]; /* Open the swath file */ /* ------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); if (swfid != FAIL) { /* Attach to the swath "Swath1" */ /* ---------------------------- */ SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != NULL) { /* Inquire information about "Count" field */ /* --------------------------------------- */ ntype = (hid_t *)calloc(1,sizeof(hid_t)); status = HE5_SWfieldinfo(SWid, "Count", &rank, dims, ntype, dimlist, maxdimlist); if (status != FAIL) { printf("No. of elements in \"Count\": %lu\n", (unsigned long)dims[0]); printf("\"DimList\" : %s \n", dimlist); printf("\"MaxdimList\" : %s \n", maxdimlist); } /* Write 20 records to the "Count" field */ /* ------------------------------------- */ start[0] = 0; count[0] = 20; status = HE5_SWwritefield(SWid, "Count", start, NULL, count, inarray); printf("Status returned by HE5_SWwritefield: %d \n", status); /* Inquire information about "Count" field again */ /* --------------------------------------------- */ dims[0] = 0; status = HE5_SWfieldinfo(SWid, "Count", &rank, dims, ntype, dimlist, maxdimlist); if (status != FAIL) { printf("No. of records written: %lu \n",(unsigned long)dims[0]); printf("\"DimList\" : %s \n", dimlist); printf("\"MaxdimList\" : %s \n", maxdimlist); } /* Append 10 records to the "Count" field */ /* -------------------------------------- */ start[0] = 22; count[0] = 10; status = HE5_SWwritefield(SWid, "Count", start, NULL, count, inarray); printf("Status returned by HE5_SWwritefield: %d \n", status); /* Inquire information about "Count" field one more time */ /* ----------------------------------------------------- */ dims[0] = 0; status = HE5_SWfieldinfo(SWid, "Count", &rank, dims, ntype, dimlist, maxdimlist); if (status != FAIL) { printf("No. of records written: %lu\n",(unsigned long)dims[0]); printf("\"DimList\" : %s \n", dimlist); printf("\"MaxdimList\" : %s \n", maxdimlist); free(ntype); } /* Display the "Count" field data */ /* ------------------------------ */ start[0] = 0; status = HE5_SWreadfield(SWid, "Count", start, NULL, dims, outarray); if (status != FAIL ) { for (i = 0; i < (unsigned long)dims[0]; i++) printf("\t\t element #%d: value: %d \n", i+1, outarray[i]); } } } status = HE5_SWdetach(SWid); status = HE5_SWclose(swfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_definefields.c0000755000175000017500000001056012024715435023100 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #include /* * In this example we will (1) open the "Grid.h5" HDF-EOS file, (2) attach to * the "Grid1" grid, and (3) define the grid fields. */ int main() { herr_t status = FAIL; hid_t gdfid = FAIL; hid_t GDid1 = FAIL; hid_t GDid2 = FAIL; hid_t GDid3 = FAIL; float fillval1 = -7.; float fillval2 = -9999.; int tilerank, compcode = 16; int compparm[5] = {0, 0, 0, 0, 0}; hsize_t tiledims[8]; /* * We first open the HDF-EOS grid file, "Grid.h5". Because this file * already exist and we wish to write to it, we use the H5F_ACC_RDWR access * code in the open statement. The HE5_GDopen routine returns the grid file * id, gdfid, which is used to identify the file in subsequent routines. */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); /* * If the grid file cannot be found, HE5_GDopen will return -1 for the file * handle (gdfid). We there check that this is not the case before * proceeding with the other routines. * * The HE5_GDattach routine returns the handle to the existing grid "Grid1", * GDid. If the grid is not found, HE5_GDattach returns -1 for the handle. */ if (gdfid != FAIL) { GDid1 = HE5_GDattach(gdfid, "UTMGrid"); status = HE5_GDsetfillvalue(GDid1, "Pollution", H5T_NATIVE_FLOAT, &fillval1); printf("Status returned by HE5_GDsetfillvalue(...,\"Pollusion\",...) : %d \n", status); status = HE5_GDdeffield(GDid1, "Pollution", "Time,YDim,XDim", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_GDdeffield(..., \"Pollution\",...) : %d \n", status); /* Define appendable field "Vegetation" */ tilerank = 2; tiledims[0] = 100; tiledims[1] = 60; compparm[0] = 8; status = HE5_GDdeftile(GDid1,HE5_HDFE_TILE,tilerank,tiledims); printf("Status returned by HE5_GDdeftile(): %d\n", status); #ifdef HAVE_FILTER_SZIP_ENCODER status = HE5_GDdefcomp(GDid1,compcode, compparm); printf("Status returned by HE5_GDdefcomp(): %d\n", status); #else printf("SZIP encoder is not available. The data compression test is skipped.\n"); #endif status = HE5_GDdeffield(GDid1, "Vegetation", "YDim,XDim",NULL,H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_GDdeffield(\"Vegetation\"): %d\n", status); GDid2 = HE5_GDattach(gdfid, "PolarGrid"); status = HE5_GDdeffield(GDid2, "Temperature", "YDim,XDim", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_GDdeffield(..., \"Temperature\",...) : %d \n", status); status = HE5_GDsetfillvalue(GDid2, "Pressure", H5T_NATIVE_FLOAT, &fillval2); printf("Status returned by HE5_GDsetfillvalue(...,\"Pressure\",...) : %d \n", status); status = HE5_GDdeffield(GDid2, "Pressure", "YDim,XDim", NULL, H5T_NATIVE_INT, 0); printf("Status returned by HE5_GDdeffield(..., \"Pressure\",...) : %d \n", status); status = HE5_GDdeffield(GDid2, "Soil Dryness", "YDim,XDim", NULL, H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_GDdeffield(..., \"Soil Dryness\",...) : %d \n", status); status = HE5_GDdeffield(GDid2, "Spectra", "Bands,YDim,XDim", NULL, H5T_NATIVE_DOUBLE, 0); printf("Status returned by HE5_GDdeffield(..., \"Spectra\",...) : %d \n", status); status = HE5_GDdetach(GDid1); status = HE5_GDdetach(GDid2); GDid3 = HE5_GDattach(gdfid, "GEOGrid"); if (GDid3 == -1) { printf("\t\tError: Cannot attach to grid \"GEOGrid\"\n"); return -1; } status = HE5_GDsetfillvalue(GDid3, "GeoSpectra", H5T_NATIVE_FLOAT, &fillval2); if (status == -1) { printf("\t\tError: Cannot define fill value for field \"Pressure\"\n"); return -1; } status = HE5_GDdeffield(GDid3, "GeoSpectra", "YDim,XDim", NULL, H5T_NATIVE_FLOAT, 0); if (status == -1) { printf("\t\tError: Cannot define field \"GeoSpectra\"\n"); return -1; } HE5_GDdetach(GDid3); } status = HE5_GDclose(gdfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_info.c0000755000175000017500000001261512024715435021435 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* ------------------------------------------------------------------- */ /* In this program we retrieve information about (1) dimensions, (2) */ /* za fields, and (3) the global/group/local attributes */ /* ------------------------------------------------------------------- */ int main() { herr_t status = FAIL; int i, *rank, chunk_rank; hid_t zafid = FAIL, ZAid = FAIL; hid_t ntype[10]; hid_t dtype = FAIL; long ndims, strbufsize, nflds, nattr; hsize_t dimsize; hsize_t *dims, chunk_dim[8]; hsize_t n, nelem = 0; char version[80] = {0}; char *dimname, *fieldlist; char attrlist[80]; /* Open the ZA HDF-EOS File "ZA.he5" for reading only */ /* ------------------------------------------------- */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDONLY); if (zafid != FAIL) { HE5_EHgetversion(zafid, version); printf("HDF-EOS library version: \"%s\" \n", version); /* Attach the ZA "ZA1" */ /* ------------------- */ ZAid = HE5_ZAattach(zafid, "ZA1"); if (ZAid != FAIL) { /* Inquire Dimensions */ /* ------------------ */ ndims = HE5_ZAnentries(ZAid, HE5_HDFE_NENTDIM, &strbufsize); dims = (hsize_t *) calloc(ndims, sizeof(hsize_t)); dimname = (char *) calloc(strbufsize + 1, 1); ndims = HE5_ZAinqdims(ZAid, dimname, dims); printf("Dimension list: %s\n", dimname); for (i = 0; i < ndims; i++) printf("dim size: %li \n", (long)dims[i]); free(dims); free(dimname); /* Inquire Data Fields */ /* ------------------- */ nflds = HE5_ZAnentries(ZAid, HE5_HDFE_NENTDFLD, &strbufsize); rank = (int *) calloc(nflds, sizeof(int)); fieldlist = (char *) calloc(strbufsize + 1, 1); nflds = HE5_ZAinquire(ZAid, fieldlist, rank, ntype); printf("data fields: %s\n", fieldlist); for (i = 0; i < nflds; i++) printf("Rank: %d Data type: %d\n", rank[i], ntype[i]); free(rank); free(fieldlist); /* Get info on "MyTrack1" dim */ /* -------------------------- */ dimsize = HE5_ZAdiminfo(ZAid, "MyTrack1"); printf("Size of MyTrack1: %lu\n", (unsigned long)dimsize); dtype = FAIL; /* Get info about Global Attributes */ /* -------------------------------- */ printf("Global Attribute:\n"); status = HE5_ZAattrinfo(ZAid,"GlobalAttribute",&dtype, &nelem); printf("\t\t Data type: %d\n", dtype); printf("\t\t Number of elements: %lu \n", (unsigned long)nelem); nelem = 0; dtype = FAIL; /* Get info about Group Attributes */ /* ------------------------------- */ printf("Group Attribute:\n"); status = HE5_ZAgrpattrinfo(ZAid,"GroupAttribute",&dtype,&nelem); printf("\t\t Data type: %d\n", dtype); printf("\t\t Number of elements: %lu \n", (unsigned long)nelem); nelem = 777; dtype = FAIL; /* Get info about Local Attributes */ /* ------------------------------- */ printf("Local Attribute:\n"); status = HE5_ZAlocattrinfo(ZAid,"Density", "LocalAttribute",&dtype,&nelem); printf("\t\t Data type: %d\n", dtype); printf("\t\t Number of elements: %lu \n", (unsigned long)nelem); /* Inquire Global Attributes */ /* ------------------------- */ printf("Global Attributes:\n"); nattr = HE5_ZAinqattrs(ZAid, NULL, &strbufsize); printf("\t\t Number of attributes: %li \n", nattr); printf("\t\t String length of attribute list: %li \n", strbufsize); n = HE5_ZAinqattrs(ZAid, attrlist, &strbufsize); printf("\t\t Attribute list: %s \n", attrlist); /* Inquire Group Attributes */ /* ------------------------ */ strbufsize = 0; printf("\n"); printf("Group Attributes:\n"); nattr = HE5_ZAinqgrpattrs(ZAid, NULL, &strbufsize); printf("\t\t Number of attributes: %li \n", nattr); printf("\t\t String length of attribute list: %li \n", strbufsize); strcpy(attrlist,""); nattr = HE5_ZAinqgrpattrs(ZAid, attrlist, &strbufsize); printf("\t\t Attribute list: %s \n", attrlist); /* Inquire Local Attributes */ /* ------------------------ */ strbufsize = 0; printf("\n"); printf("Local Attributes:\n"); nattr = HE5_ZAinqlocattrs(ZAid, "Density", NULL, &strbufsize); printf("\t\t Number of attributes: %li \n", nattr); printf("\t\t String length of attribute list: %li \n", strbufsize); strcpy(attrlist,""); nattr = HE5_ZAinqlocattrs(ZAid, "Density", attrlist, &strbufsize); printf("\t\t Attribute list: %s \n", attrlist); status = HE5_ZAchunkinfo(ZAid,"Spectra",&chunk_rank,chunk_dim); printf("\n"); printf("\t\t Spectra chunk_rank: %d\n", chunk_rank); for (i = 0; i < chunk_rank; i++) printf("\t\t Spectra chunk_dim dimension %d: %lu\n",i+1, (unsigned long)chunk_dim[i]); } } status = HE5_ZAdetach(ZAid); status = HE5_ZAclose(zafid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_defexternalfld.c0000755000175000017500000000444512024715435023512 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* ----------------------------------------------------------- */ /* In this program we (1) open the "Swath.h5" HDF-EOS file, */ /* (2) attach to the "Swath1" swath, and (3) define the */ /* external data field "ExtData". */ /* ----------------------------------------------------------- */ int main() { herr_t status = FAIL; hid_t swfid = FAIL; hid_t SWid = FAIL; off_t offset[3]; hsize_t size[3]; /* Open the file, "Swath.h5", using the H5F_ACC_RDWR access code */ /* ------------------------------------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDWR); if (swfid != FAIL) { /* Attach to the "Swath1" swath */ /* ---------------------------- */ SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { /* Set the data sizes and offsets in external files */ /* ------------------------------------------------ */ size[0] = 10 * sizeof(int); offset[0] = 0; size[1] = 20 * sizeof(int); offset[1] = 40; size[2] = 30 * sizeof(int); offset[2] = 80; /* Set external data files first */ /* ----------------------------- */ status = HE5_SWsetextdata(SWid, "external_1.data,external_2.data,external_3.data", offset, size); printf("Status returned by HE5_SWsetextdata(...) : %d\n",status); /* Define field containing external data */ /* ------------------------------------- */ status = HE5_SWdefdatafield(SWid, "ExtData", "ExtDim", NULL, H5T_NATIVE_INT, 0); printf("Status returned by HE5_SWdefdatafield(...\"ExtData\",...) : %d\n",status); } } /* Detach from the swath */ /* --------------------- */ status = HE5_SWdetach(SWid); printf("Status returned by HE5_SWdetach(...) : %d\n",status); /* Close the file */ /* -------------- */ status = HE5_SWclose(swfid); printf("Status returned by HE5_SWclose(...) : %d\n",status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_infoF_64.f0000755000175000017500000000623112024715435022054 0ustar amckinstryamckinstry! In this program we retrieve (1) information about the ! dimensions, (2) the za fields program he5_za_infoF_64 implicit none include 'hdfeos5.inc' integer i integer status integer zafid, zaid integer he5_zaopen integer he5_zaattach integer he5_zainfo integer he5_zachunkinfo integer he5_zadetach integer he5_zaclose integer rank(32) integer ntype(32) integer rk integer nt integer*8 he5_zainqdims integer*8 he5_zainquire integer*8 he5_zadiminfo integer*8 ndims integer*8 nflds integer*8 dims(32) integer*8 dimsize character*72 dimname character*72 dimlist character*72 maxdimlst character*72 fieldlist integer chunkrank integer*8 chunkdims(32) integer FAIL parameter (FAIL=-1) ! Open the "za.he5" file for "read only" access ! --------------------------------------------- zafid = he5_zaopen("za.he5",HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then ! Attach the za ! ------------- zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Inquire Dimensions ! ------------------ ndims = he5_zainqdims(zaid, dimname, dims) write(*,*) 'Dimension list: ', dimname do i = 1,ndims write(*,*) 'dim size: ', dims(i) enddo write(*,*) ! Inquire Data Fields ! ------------------- nflds = he5_zainquire(zaid, fieldlist, rank, ntype) write(*,*) 'Data Fieldlist: ', fieldlist do i=1,nflds write(*,*) 'field rank & datatype: ',rank(i),ntype(i) enddo write(*,*) ! Get info on "MyTrack1" dim ! -------------------------- dimsize = he5_zadiminfo(zaid, "MyTrack1") write(*,*) 'Size of MyTrack1: ', dimsize write(*,*) ! Get info on "Spectra" Field ! --------------------------- status = he5_zainfo(zaid,"Spectra",rk,dims,nt, 1 dimlist,maxdimlst) write(*,*) 'Spectra Rank: ', rk write(*,*) 'Spectra NumberType: ', nt write(*,*) 'Spectra Dimlist: ', dimlist write(*,*) 'Spectra Max Dimlist: ', maxdimlst do i=1,rk write(*,*) 'Dimension ',i,dims(i) enddo status = he5_zachunkinfo(zaid,"Spectra",chunkrank, 1 chunkdims) write(*,*) 'Spectra Chunking Rank: ', chunkrank do i=1,chunkrank write(*,*) 'Chunking Dimension ',i,chunkdims(i) enddo endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_definefieldsF_32.f0000755000175000017500000001110612024715435023551 0ustar amckinstryamckinstryc In this program we (1) open the "swath.he5" HDF-EOS file, (2) c attach to the "Swath1" swath, and (3) define the swath fields c ============================================================= program he5_sw_definefieldsF_32 implicit none include 'hdfeos5.inc' integer status integer he5_swopen integer he5_swattach integer he5_swsetfill integer he5_swdefgfld integer he5_swdefdfld integer he5_prdefine integer he5_swdefchunk integer he5_swdefcomp integer he5_swdetach integer he5_swclose integer swfid, swid integer chunkrank integer*4 chunkdims(3) integer compparm(1) integer FAIL parameter (FAIL=-1) c Open the HDF-EOS file, "swath.he5" using "READ/WRITE" access code c ----------------------------------------------------------------- swfid = he5_swopen("swath.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid if (swid .NE. FAIL) then c Define Geolocation and Data fields c ---------------------------------- c --------------------------------------------------------------- c We define six fields. The first three, "Time", "Longitude" c and "Latitude" are geolocation fields and thus we use the c geolocation dimensions "GeoTrack" and "GeoXtrack" in the field c definitions. We also must specify the data type using the c standard HDF data type codes. In this example the geolocation c are 4-byte (32 bit) floating point numbers. c c The next three fields are data fields. Note that either c geolocation or data dimensions can be used. c --------------------------------------------------------------- status = he5_swdefgfld(swid, "Time", "GeoTrack", 1 " ",HE5T_NATIVE_DOUBLE, 0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefgfld(swid, "Longitude", 1 "GeoXtrack,GeoTrack", 2 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefgfld(swid, "Latitude", 1 "GeoXtrack,GeoTrack", 2 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefgfld(): ',status status = he5_swdefdfld(swid, "Density", 1 "GeoTrack"," ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid, "Temperature", 1 "GeoXtrack,GeoTrack", 2 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status status = he5_swdefdfld(swid, "Pressure", 1 "Res2xtr,Res2tr", 2 " ", HE5T_NATIVE_FLOAT, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status chunkrank = 3 chunkdims(1) = 20 chunkdims(2) = 40 chunkdims(3) = 15 compparm(1) = 6 status = he5_swdefchunk(swid,chunkrank,chunkdims) write(*,*) 'Status returned by he5_swdefchunk(): ',status status = he5_swdefcomp(swid, 1 HE5_HDFE_COMP_DEFLATE,compparm) write(*,*) 'Status returned by he5_swdefcomp(): ', 1 status status = he5_swdefdfld(swid, "Spectra", 1 "Res2xtr,Res2tr,Bands", 2 " ", HE5T_NATIVE_DOUBLE, 0) write(*,*) 'Status returned by he5_swdefdfld(): ',status c Define Profile Field c ----------------------- status = he5_prdefine(swid, "Profile-2000", 1 "ProfDim", " ", HE5T_NATIVE_INT) write(*,*) 'Status returned by he5_prdefine(): ',status c Define Appendable Field c ----------------------- c status = he5_swdefdfld(swid, "Count", "GeoTrack", c 1"Unlim", HE5T_NATIVE_INT, 0) endif endif c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_writedimscaleF_32.f0000644000175000017500000001306212024715435023764 0ustar amckinstryamckinstry program he5_sw_writedimscaleF_32 implicit none include 'hdfeos5.inc' integer status integer i, j integer he5_swopen integer he5_swattach integer he5_swwrfld integer he5_swwrattr integer he5_swwrgattr integer he5_ehwrglatt integer he5_swwrlattr integer he5_swdetach integer he5_swclose integer HE5_SWsetdimscale integer HE5_SWwritedscaleattr integer swfid,swid1 integer*4 datbuf_i1(1) integer*4 datbuf_i(15) integer count(2) integer*4 nbands integer bands(3) integer*4 datbuf_i2(2) integer xdim, ydim, ntime integer data(15) integer FAIL parameter (FAIL=-1) ! /* ! * We first open the HDF-EOS swath file, "swath.he5". Because this file ! * already exist and we wish to write to it, we use the H5F_ACC_RDWR access ! * code in the open statement. The HE5_SWopen routine returns the swath file ! * id, swfid, which is used to identify the file in subsequent routines. ! */ nbands = 15 do j=1,nbands data(j)=(j+1)*2 enddo swfid = HE5_SWopen("swath.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_swopen(): ',swfid ! /* ! * If the swath file cannot be found, HE5_SWopen will return -1 for the file ! * handle (swfid). We there check that this is not the case before ! * proceeding with the other routines. ! * ! * The HE5_SWattach routine returns the handle to the existing swath "Swath1", ! * SWid. If the swath is not found, HE5_SWattach returns -1 for the handle. ! */ if (swfid .ne. FAIL) then SWid1 = HE5_SWattach(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swattach(): ',swid1 ! /* the field Spectra has Bands,Res2tr,Res2xtr dimensions. ! xdim = 120; ! ydim = 200; ! Time dim is set to 10 ! */ if (SWid1 .eq. -1) then write(*,*) 'Error: Cannot attach to swath Swath1. Stpped.' status = HE5_SWclose(swfid) stop endif status = HE5_SWsetdimscale(SWid1, "Spectra", "Bands", nbands, 1 HE5T_NATIVE_INT, data) write(*,*) 'Status returned by HE5_SWsetdimscale: ',status if (status .eq. -1) then write(*,*) 'Error: Cannot set Dimension Scale for Bands', 1 ' dimemnsion in field Vegetation' status = HE5_SWdetach(SWid1) status = HE5_SWclose(swfid) stop endif count(1)= 12 status = HE5_SWwritedscaleattr(SWid1, "Bands", "label", 1 HE5T_NATIVE_CHAR, count, "Bands Dim") write(*,*) 'Status returned by HE5_SWwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_SWdetach(SWid1) status = HE5_SWclose(swfid) stop endif count(1)= 6 status = HE5_SWwritedscaleattr(SWid1, "Bands", "unit", 1 HE5T_NATIVE_CHAR, count, "None") write(*,*) 'Status returned by HE5_SWwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_SWdetach(SWid1) status = HE5_SWclose(swfid) stop endif count(1)= 4 status = HE5_SWwritedscaleattr(SWid1, "Bands", "format", 1 HE5T_NATIVE_CHAR, count, "I2") write(*,*) 'Status returned by HE5_SWwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_SWdetach(SWid1) status = HE5_SWclose(swfid) stop endif datbuf_i1(1) = -999 count(1)= 1 status = HE5_SWwritedscaleattr(SWid1, "Bands", "MissingValue", 1 HE5T_NATIVE_INT, count, datbuf_i1) write(*,*) 'Status returned by HE5_SWwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_SWdetach(SWid1) status = HE5_SWclose(swfid) stop endif datbuf_i(1) = -999 datbuf_i(2) = 0 datbuf_i(3) = 999 count(1)= 3 status = HE5_SWwritedscaleattr(SWid1, "Bands", "IntValues", 1 HE5T_NATIVE_INT, count, datbuf_i) write(*,*) 'Status returned by HE5_SWwritedscaleattr: ',status if (status .eq. -1) then write(*,*) 'Error:Cannot set Dimension Scale str for Bands', 1 ' dimemnsion in field Spectra' status = HE5_SWdetach(SWid1) status = HE5_SWclose(swfid) stop endif status = HE5_SWdetach(SWid1) write(*,*) 'Status returned by he5_swdetach(): ',status status = HE5_SWclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status endif stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_setup.c0000755000175000017500000001144112024715435021616 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will open an HDF-EOS file and create UTM and Polar * Stereographic grid structures within the file. */ int main() { herr_t status = FAIL; hid_t gdfid = FAIL; hid_t GDid = FAIL; hid_t GDid2 = FAIL; hid_t GDid3 = FAIL; int i, j; int zonecode, projcode, spherecode, dummy = 0; long xdim, ydim; double projparm[16], uplft[2], lowrgt[2]; /* * We first open the HDF grid file, "Grid.h5". Because this file * does not already exist, we use the H5F_ACC_TRUNC access code in the * open statement. The GDopen routine returns the grid file id, gdfid, * which is used to identify the file in subsequent routines in the * library. */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_TRUNC); /* * Create UTM Grid * * Region is bounded by 54 E and 60 E longitude and 20 N and 30 N latitude. * UTM Zone 40 * * Use default spheriod (Clarke 1866 - spherecode = 0) * * Grid into 120 bins along x-axis and 200 bins along y-axis * (approx 3' by 3' bins) */ zonecode = 40; spherecode = 0; /* Upper Left and Lower Right points in meters */ /* ------------------------------------------- */ uplft[0] = 210584.50041; uplft[1] = 3322395.95445; lowrgt[0] = 813931.10959; lowrgt[1] = 2214162.53278; xdim = 120; ydim = 200; GDid = HE5_GDcreate(gdfid, "UTMGrid", xdim, ydim, uplft, lowrgt); printf("Grid ID returned by HE5_GDcreate : %d \n", GDid); status = HE5_GDdefproj(GDid, HE5_GCTP_UTM, zonecode, spherecode, projparm); printf("status returned by HE5_GDdefproj(...\"HE5_GCTP_UTM\"...) : %d \n", status); /* Define "Time" Dimension */ status = HE5_GDdefdim(GDid, "Time", 10); printf("status returned by HE5_GDdefdim(...\"Time\"...) : %d \n", status); /* Define "External" Dimension */ /* --------------------------- */ status = HE5_GDdefdim(GDid, "ExtDim", 60); printf("status returned by HE5_GDdefdim(...\"ExtDim\"...): %d \n", status); /* Define "Unlim" Dimension */ status = HE5_GDdefdim(GDid, "Unlim", H5S_UNLIMITED); printf("status returned by HE5_GDdefdim(...\"Unlim\"...) : %d \n", status); /* * Create polar stereographic grid * * Northern Hemisphere (True Scale at 90 N, 0 Longitude below pole) * * Use International 1967 spheriod (spherecode = 3) * * Grid into 100 bins along x-axis and y-axis */ spherecode = 3; /* Define GCTP Projection Parameters */ /* --------------------------------- */ for (i = 0; i < 16; i++) projparm[i] = 0; /* Set Longitude below pole & true scale in DDDMMMSSS.SSS format) */ projparm[4] = 0.0; projparm[5] = 90000000.00; xdim = 100; ydim = 100; GDid2 = HE5_GDcreate(gdfid, "PolarGrid", xdim, ydim, NULL, NULL); printf("Grid ID returned by HE5_GDcreate() : %d \n", GDid2); status = HE5_GDdefproj(GDid2, HE5_GCTP_PS, dummy, spherecode, projparm); printf("status returned by HE5_GDdefproj(...\"HE5_GCTP_PS\"...) : %d \n", status); status = HE5_GDdeforigin(GDid2, HE5_HDFE_GD_LR); printf("status returned by HE5_GDdeforigin() : %d \n", status); /* Define "Bands" Dimension */ status = HE5_GDdefdim(GDid2, "Bands", 3); printf("status returned by HE5_GDdefdim(...\"Bands\"...) : %d \n", status); /* * Create geographic (linear scale) grid * * 0 - 15 degrees longitude, 20 - 30 degrees latitude * */ xdim = 60; ydim = 40; uplft[0] = HE5_EHconvAng(0., HE5_HDFE_DEG_DMS); uplft[1] = HE5_EHconvAng(30., HE5_HDFE_DEG_DMS); lowrgt[0] = HE5_EHconvAng(15., HE5_HDFE_DEG_DMS); lowrgt[1] = HE5_EHconvAng(20., HE5_HDFE_DEG_DMS); GDid3 = HE5_GDcreate(gdfid, "GEOGrid", xdim, ydim, uplft, lowrgt); printf("Grid ID returned by HE5_GDcreate() : %d \n", GDid3); status = HE5_GDdefproj(GDid3, HE5_GCTP_GEO, dummy, dummy, NULL); printf("status returned by HE5_GDdefproj(...\"HE5_GCTP_GEO\"...) : %d \n", status); /* * We now close the grid interface with the GDdetach routine. This step * is necessary to properly store the grid information within the file * AND SHOULD BE DONE BEFORE WRITING OR READING DATA TO OR FROM THE FIELD. */ status = HE5_GDdetach(GDid); status = HE5_GDdetach(GDid2); status = HE5_GDdetach(GDid3); /* * Finally, we close the grid file using the HE5_GDclose routine. This will * release the grid file handles established by HE5_GDopen. */ status = HE5_GDclose(gdfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_readdataF_64.f0000755000175000017500000001154112024715435022677 0ustar amckinstryamckinstry program he5_pt_readdataF_64 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptreadlevel integer he5_ptlevelinfo integer he5_ptnrecs integer he5_ptnlevels integer he5_ptnfields integer he5_ptc2fort integer he5_ptinqattrs integer he5_ptreadattr integer he5_ptdetach integer he5_ptclose integer i integer nflds integer level integer arr_rank integer datatype integer dtype(3) integer attr integer rank_tt(3) integer dtype_tt(3) integer nrecs integer nlevels integer*8 dimens(2) integer*8 datasize integer*8 offset_tt(3) integer*8 dim_sizes_tt(3) integer*8 nattr integer*8 strbufsize character*80 levelname character*80 fieldname(3) character*80 attrname character*240 fieldlist character*240 attrlist character*8 spec(15) real*4 con(4,15) real*4 outcon(15,4) real*8 time(15) c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = he5_ptattach(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Get level information c --------------------- level = 0 status = he5_ptlevelinfo(ptid, level, levelname, rank_tt, 1fieldlist, dim_sizes_tt, datasize, offset_tt, dtype_tt) write(*,*) 'Status returned by he5_ptlevelinfo(): ',status c Get the number of records in level c ---------------------------------- level = 0 nrecs = he5_ptnrecs(ptid, level) print *,'Number of records in level: ', nrecs nlevels = he5_ptnlevels(ptid) print *,'Number of levels in Point data set: ', nlevels nflds = he5_ptnfields(ptid, level, fieldlist, strbufsize) print *,'Number of fields in level: ', nflds c Populate input information structure c ------------------------------------ dtype(1) = HE5T_NATIVE_DOUBLE dtype(2) = HE5T_NATIVE_FLOAT dtype(3) = HE5T_NATIVE_CHAR c Read the level data and print out c --------------------------------- fieldname(1) = 'Time' status = he5_ptreadlevel(ptid, 0, fieldname(1), 1dtype(1), time) write(*,*) 'Status returned by he5_ptreadlevel(): ',status write(*,*) 'time array: ' do i = 1,nrecs print *,time(i) end do fieldname(2) = 'Concentration' status = he5_ptreadlevel(ptid, 0, fieldname(2), 1dtype(2), con) write(*,*) 'Status returned by he5_ptreadlevel(): ',status c Convert 'C' array to Fortran order c ---------------------------------- dimens(1) = 15 dimens(2) = 4 arr_rank = 2 datatype = HE5T_NATIVE_FLOAT status = he5_ptc2fort(dimens, arr_rank, datatype, con, 1outcon) write(*,*) 'Status returned by he5_ptc2fort(): ',status write(*,*) 'outcon array: ' do i = 1,nrecs print *,outcon(i,1),outcon(i,2),outcon(i,3),outcon(i,4) end do fieldname(3) = 'Species' status = he5_ptreadlevel(ptid, 0, fieldname(3), 1dtype(3), spec) write(*,*) 'Status returned by he5_ptreadlevel(): ',status write(*,*) 'spec array: ' do i = 1,nrecs print *,spec(i) end do c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Read FixedBuoy Point c -------------------- ptid = he5_ptattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Global Attributes c ----------------- attrname = 'GlobalAttribute_int' print *,' ' print *,'Global Attribute: ' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) print *,'Number of attributes: ',nattr print *,'Attribute list: ',attrlist print *,'Size (in bytes) of attribute list: ',strbufsize status = he5_ptreadattr(ptid,attrname,attr) write(*,*) 'Status returned by he5_ptreadattr(): ',status print *,'Attribute value: ',attr c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_updatelevelsF_64.f0000755000175000017500000000415612024715435023633 0ustar amckinstryamckinstry program he5_pt_updatelevelsF_64 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer level integer he5_ptopen integer he5_ptattach integer he5_ptupdatelevel integer he5_ptdetach integer he5_ptclose integer dtype(3) integer*8 recs(32) integer*8 nrec real*4 conc_tt(4) real*8 time_tt character*8 spc_tt character*80 fieldname c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Read Simple Point c ----------------- ptid = HE5_PTattach(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid dtype(1) = HE5T_NATIVE_DOUBLE dtype(2) = HE5T_NATIVE_FLOAT dtype(3) = HE5T_NATIVE_CHAR nrec = 1 recs(1) = 0 level = 0 fieldname = 'Concentration' conc_tt(1) = 1.11 conc_tt(2) = 2.22 conc_tt(3) = 3.33 conc_tt(4) = 4.44 status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(2), conc_tt) write(*,*) 'Status returned by he5_ptupdatelevel(): ',status fieldname = 'Time' time_tt = 13131313.0 status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(1), time_tt) write(*,*) 'Status returned by he5_ptupdatelevel(): ',status fieldname = 'Species' spc_tt = 'AM' status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(3), spc_tt) write(*,*) 'Status returned by he5_ptupdatelevel(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_rdexternaldataF_64.f0000755000175000017500000000750112024715435024143 0ustar amckinstryamckinstryc c ---------------------------------------------------------------------------- c | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | c ---------------------------------------------------------------------------- c program he5_sw_rdexternaldataF_64 implicit none include 'hdfeos5.inc' integer i integer status integer he5_swopen integer he5_swattach integer he5_swrdfld integer he5_swgetxdat integer he5_ehrdwrfile integer he5_swdetach integer he5_swclose integer swfid, swid integer nfiles integer datain1(100) integer datain2(100) integer datain3(100) integer dataout(60) integer*8 start(2) integer*8 stride(2) integer*8 count(2) integer*8 offset(3) integer*8 size(3) integer*8 nmlgth integer*8 num_elements character filelist*256 integer FAIL parameter (FAIL=-1) c.....Use this for writing (only) to an existing file integer WRITE_EXISTING_ONLY parameter (WRITE_EXISTING_ONLY=0) c.....Use this for reading (only) from an existing file integer READ_ONLY parameter (READ_ONLY=1) c.....Use this for creating and writing to a file integer WRITE_NEW parameter (WRITE_NEW=2) c Create the external data sets c ----------------------------- do 10 i=1,100 datain1(i) = 1000+i datain2(i) = 2000+i datain3(i) = 3000+i 10 continue num_elements = 100 status = he5_ehrdwrfile("extf1.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain1) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf2.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain2) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf3.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain3) write(*,*) 'Status returned from he5_ehrdwrfile: ',status c Open HDF-EOS swath file, "swath.he5" c ------------------------------------ swfid = he5_swopen("swath.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned from he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned from he5_swattach(): ',swid if (swid .NE. FAIL) then c Read the external data field c ---------------------------- start(1) = 0 stride(1) = 1 count(1) = 60 status = he5_swrdfld(swid,"ExtData", 1 start,stride,count,dataout) write(*,*) 'Status returned from he5_swrdfld(): ',status c Display the data c ---------------- do i=1,60 write(*,*)'External data',dataout(i) enddo nmlgth = 48 c Get the number of external files c -------------------------------- nfiles = he5_swgetxdat(swid,"ExtData",nmlgth, 1 filelist,offset,size) write(*,*) 'Number of external files',nfiles write(*,*) 'External files:',filelist do i=1,nfiles write(*,*) 'offsets:',offset(i) write(*,*) 'sizes:',size(i) enddo endif endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned from he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned from he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_setupF_64.f0000755000175000017500000001244512024715435022304 0ustar amckinstryamckinstryc In this program we (1) open an HDF-EOS file, (2) create the c swath interface, and (3) define the swath field dimensions c =========================================================== program he5_sw_setupF_64 implicit none include 'hdfeos5.inc' include 'hdfeos5_64.inc' integer status integer he5_swopen integer he5_swcreate integer he5_swdefdim integer he5_swdefmap integer he5_swdefimap integer he5_swdetach integer he5_swclose integer swfid, swid integer*8 dtrack, extdata integer*8 offset, incr integer*8 indx(12) data indx /0,1,3,6,7,8,11,12,14,24,32,39/ c Open the HDF-EOS file, "swath.he5" using "TRUNC" file access code c ----------------------------------------------------------------- swfid = he5_swopen("swath.he5",HE5F_ACC_TRUNC) write(*,*) 'File ID returned by he5_swopen(): ',swfid c Create the swath, "Swath1", within the file c ------------------------------------------- swid = he5_swcreate(swfid, "Swath1") write(*,*) 'Swath ID returned by he5_swcreate(): ',swid c Define Geolocation and Data dimensions c -------------------------------------- c ---------------------------------------------------------------------- c Typically, many fields within a swath share the same dimension. The c swath interface therefore provides a way of defining dimensions that c will then be used to define swath fields. A dimension is defined with c a name and a size and is connected to the particular swath through the c swath id. In this example, we define the geo- location track and c cross track dimensions with size 20 and 10 respectively and two c dimensions corresponding to these but with twice the resolution. c Also, we define "Bands" and "unlimited" dimensions. c ---------------------------------------------------------------------- dtrack = 73 status = he5_swdefdim(swid, "GeoTrack", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 10 status = he5_swdefdim(swid, "GeoXtrack", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 40 status = he5_swdefdim(swid, "Res2tr", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 20 status = he5_swdefdim(swid, "Res2xtr", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 15 status = he5_swdefdim(swid, "Bands", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 12 status = he5_swdefdim(swid, "IndxTrack", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status dtrack = 4 status = he5_swdefdim(swid, "ProfDim", dtrack) write(*,*) 'Status returned by he5_swdefdim(): ',status c Define "External" dimension c --------------------------- extdata = 60 status = he5_swdefdim(swid, "ExtDim", extdata) write(*,*) 'Status returned by he5_swdefdim(): ',status c Define Unlimited (appendable) dimension c --------------------------------------- status = he5_swdefdim(swid, "Unlim", HE5S_UNLIMITED_F_64) write(*,*) 'Status returned by he5_swdefdim(): ',status c ---------------------------------------------------------------------- c Once the dimensions are defined, the relationship (mapping)between the c geolocation dimensions, such as track and cross track, and the data c dimensions, must be established. This is done through the SWdefdimmap c routine. It takes as input the swath id, the names of the dimensions c designating the geolocation and data dimensions, respectively, and the c offset and increment defining the relation. c c In the first example we relate the "GeoTrack" and "Res2tr" dimensions c with an offset of 0 and an increment of 2. Thus the ith element of c "Geotrack" corresponds to the 2 * ith element of "Res2tr". c c In the second example, the ith element of "GeoXtrack" corresponds to c the 2 * ith + 1 element of "Res2xtr". c ----------------------------------------------------------------------- c Define dimension mappings c ------------------------- offset = 0 incr = 2 status = he5_swdefmap(swid, "GeoTrack", "Res2tr", 1offset, incr) write(*,*) 'Status returned by he5_swdefmap(): ',status offset = 1 status = he5_swdefmap(swid, "GeoXtrack", "Res2xtr", 1offset, incr) write(*,*) 'Status returned by he5_swdefmap(): ',status c Define indexed dimension mapping c -------------------------------- status = he5_swdefimap(swid, "IndxTrack", "Res2tr", 1indx) write(*,*) 'Status returned by he5_swdefimap(): ',status c Detach from the swath c --------------------- status = he5_swdetach(swid) write(*,*) 'Status returned by he5_swdetach(): ',status c Close the swath file c -------------------- status = he5_swclose(swfid) write(*,*) 'Status returned by he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/fixedBuoy0.txt0000755000175000017500000000020712024715435021654 0ustar amckinstryamckinstryPacific -140.2520148 -10.3024294 891218 P Atlantic -54.8270879 43.1362228 900228 A Indian 71.7147412 7.4254709 900912 I hdf-eos5-5.1.14+dfsg.1/samples/he5_za_readdataF_64.f0000755000175000017500000000501312024715435022663 0ustar amckinstryamckinstry! In this program we (1) open the "za.he5" file, (2) attach to ! the "ZA1" za, and (3) read data from the "Spectra" field ! ============================================================ program he5_za_readdataF_64 implicit none include 'hdfeos5.inc' integer status integer he5_zaopen integer he5_zaattach integer he5_zaread integer he5_zardattr integer he5_zadetach integer he5_zaclose integer zafid, zaid integer i,j,k integer*4 attr(4) integer*8 start(3) integer*8 stride(3) integer*8 count(3) real*8 plane(800) integer FAIL parameter (FAIL=-1) ! Open HDF-EOS za file, "za.he5" ! ------------------------------ zafid = he5_zaopen("za.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Read the entire Spectra field ! ----------------------------- start(1) = 0 start(2) = 0 count(1) = 20 count(2) = 40 count(3) = 1 stride(1) = 1 stride(2) = 1 stride(3) = 1 do i=1,15 start(3) = i - 1 do j=1,40 do k=1,20 plane((j-1)*20+k) = (j-1)*100 + i-1 enddo enddo status = he5_zaread(zaid,"Spectra",start, 1 stride,count,plane) enddo ! Read Attribute ! -------------- status = he5_zardattr(zaid, "TestAttr", attr) do i=1,4 write(*,*) 'Attribute Element', i, ':', attr(i) enddo endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned from he5_zadetach: ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned from he5_zaclose: ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/hdfeos5_64.inc0000644000175000017500000000101512024715435021431 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5_64.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 19, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines on 64 ! * bit platforms ! * ========================================================== ! * Contents: ! * ! * ! * =========================================================== integer*8 HE5S_UNLIMITED_F_64 parameter(HE5S_UNLIMITED_F_64 = -1) hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_datainfo.c0000755000175000017500000001362212024715435022305 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define FILENAME "Swath.h5" #define OBJECT "Swath1" int main(void) { herr_t status = FAIL; int fieldgroup = FAIL; hid_t fid = FAIL; hid_t SWid = FAIL; hid_t datatype = FAIL; H5T_class_t classid = H5T_NO_CLASS; H5T_order_t order = H5T_ORDER_ERROR; size_t size = 0; /* Open the HDF-EOS swath file */ /* --------------------------- */ fid = HE5_SWopen(FILENAME, H5F_ACC_RDONLY); printf("File ID returned by HE5_SWopen() : %d \n", fid); /* Attach to the "Swath1" swath */ /* ---------------------------- */ SWid = HE5_SWattach(fid, OBJECT); printf("Swath ID returned by HE5_SWattach() : %d \n", SWid); /* Inquire data type information for the "Spectra" field */ /* ----------------------------------------------------- */ fieldgroup = HE5_HDFE_DATAGROUP; status = HE5_SWinqdatatype(SWid, "Spectra", NULL, fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_SWinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } /* Inquire data type information for the profile */ /* --------------------------------------------- */ fieldgroup = HE5_HDFE_PROFGROUP; status = HE5_SWinqdatatype(SWid, "Profile-2000", NULL, fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_SWinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } /* Inquire data type information for the attributes */ /* ------------------------------------------------ */ status = HE5_EHinqglbdatatype(fid, "GlobalAttribute_1", &datatype, &classid, &order, &size); printf("Status returned by HE5_EHinqglbdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } status = HE5_EHinqglbdatatype(fid, "GLOBAL_DOUBLE_ATTR_1", &datatype, &classid, &order, &size); printf("Status returned by HE5_EHinqglbdatatype()->GLOBAL_DOUBLE_ATTR_1 : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_ATTRGROUP; status = HE5_SWinqdatatype(SWid, NULL, "GlobalAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_SWinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } status = HE5_SWinqdatatype(SWid, NULL, "GLOBAL_CHAR_ATTR_11", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_SWinqdatatype()->GLOBAL_CHAR_ATTR_11 : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } status = HE5_SWinqdatatype(SWid, NULL, "GLOBAL_CHAR_ATTR", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_SWinqdatatype()->GLOBAL_CHAR_ATTR : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_GRPATTRGROUP; status = HE5_SWinqdatatype(SWid, NULL, "GroupAttribute", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_SWinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_LOCATTRGROUP; status = HE5_SWinqdatatype(SWid, "Density", "LocalAttribute_1", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_SWinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } fieldgroup = HE5_HDFE_LOCATTRGROUP; status = HE5_SWinqdatatype(SWid, "Longitude", "LocalAttribute_2", fieldgroup, &datatype, &classid, &order, &size); printf("Status returned by HE5_SWinqdatatype() : %d \n", status); if (status != FAIL) { printf("\tdatatype: %d \n", datatype); printf("\tclass ID: %d \n", classid); printf("\torder: %d \n", order); printf("\tsize: %d \n", (int)size); } /* Detach from the swath */ /* --------------------- */ status = HE5_SWdetach(SWid); printf("Status returned by HE5_SWdetach() : %d \n", status); /* Close the file */ /* -------------- */ status = HE5_SWclose(fid); printf("Status returned by HE5_SWclose() : %d \n", status); return(0); } hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_writedataF_64.f0000755000175000017500000003050512024715435023117 0ustar amckinstryamckinstry program he5_pt_writedataF_64 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid integer he5_ptopen integer he5_ptattach integer he5_ptwritelevel integer he5_ptfort2c integer he5_ptwrbckptr integer he5_ptwrfwdptr integer he5_ptwriteattr integer he5_ptdetach integer he5_ptclose integer i integer rank integer dtype integer attr integer ntype integer*8 n integer*8 count(1) integer*8 dimens(2) integer*8 fortcount(8) real*4 flt character*80 fieldname character*80 attrname c.....used by Simple Point real*8 time_tt real*8 time(15) real*4 concentration_tt(4) real*4 conc(15,4) real*4 outconc(4,15) character*8 spc_tt character*8 spc(15) c.....used by FixedBuoy Point - Level 0 character*8 desc_tt character*8 desc(3) real*8 lon_tt real*8 lon(3) real*8 lat_tt real*8 lat(3) integer*4 date_tt integer*4 date(3) character*8 id_tt character*8 id(3) c.....used by FixedBuoy Point - Level 1 real*8 time3_tt real*8 time3(20) real*4 rain_tt real*4 rain(20) real*4 temp_tt real*4 temp(20) character*8 id3_tt character*8 id3(20) c.....used by FloatBuoy Point - Level 0 character*8 desc4_tt character*8 desc4(3) integer*4 date4_tt integer*4 date4(3) integer*4 wgt_tt integer*4 wgt(3) character*8 id4_tt character*8 id4(3) c.....used by FloatBuoy Point - Level 1 real*8 time5_tt real*8 time5(25) real*8 lon5_tt real*8 lon5(25) real*8 lat5_tt real*8 lat5(25) real*4 rain5_tt real*4 rain5(25) real*4 temp5_tt real*4 temp5(25) character*8 id5_tt character*8 id5(25) c Open the HDF-EOS point file, "point.he5" c ---------------------------------------- ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_ptopen(): ',ptfid c Do Simple Point c --------------- ptid = HE5_PTattach(ptfid, "Simple Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Read Simple Point c ----------------- open(unit=1, file='simple.txt', status='OLD') n = 0 do 10 i=1,1000 read(1, 110, end=100) time_tt, concentration_tt(1), 1 concentration_tt(2), 2 concentration_tt(3), 3 concentration_tt(4), 4 spc_tt time(i) = time_tt conc(i,1) = concentration_tt(1) conc(i,2) = concentration_tt(2) conc(i,3) = concentration_tt(3) conc(i,4) = concentration_tt(4) spc(i) = spc_tt n = n + 1 10 continue 100 close(unit=1) 110 format(F13.1,F6.2,F6.2,F6.2,F6.2,2X,A8) count(1) = n fieldname = 'Time' dtype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, time) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c.....Convert array to 'C' order dimens(1) = 15 dimens(2) = 4 rank = 2 dtype = HE5T_NATIVE_FLOAT status = he5_ptfort2c(dimens, rank, dtype, conc, 1outconc) write(*,*) 'Status returned by he5_ptfort2c(): ',status fieldname = 'Concentration' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, outconc) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Species' dtype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, spc) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Do FixedBuoy Point c ------------------ ptid = HE5_PTattach(ptfid, "FixedBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Read FixedBuoy Point c -------------------- open(unit=1, file='fixedBuoy0.txt', status='OLD') n = 0 do 20 i=1,1000 read(1, 210, end=200) desc_tt, lon_tt, lat_tt, date_tt, 1id_tt desc(i) = desc_tt lon(i) = lon_tt lat(i) = lat_tt date(i) = date_tt id(i) = id_tt n = n + 1 20 continue 200 close(unit=1) 210 format(A8,F13.7,F13.7,I7,1X,A8) count(1) = n fieldname = 'Label' dtype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, desc) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Longitude' dtype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, lon) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Latitude' dtype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, lat) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'DeployDate' dtype = HE5T_NATIVE_INT status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, date) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'ID' dtype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, id) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c Read FixedBuoy Point - Level 1 c ------------------------------ open(unit=1, file='fixedBuoy1.txt', status='OLD') n = 0 do 30 i=1,1000 read(1, 310, end=300) time3_tt, rain_tt, temp_tt, id3_tt time3(i) = time3_tt rain(i) = rain_tt temp(i) = temp_tt id3(i) = id3_tt n = n + 1 30 continue 300 close(unit=1) 310 format(F13.2,F8.1,F8.2,3X,A8) count(1) = n fieldname = 'Time' dtype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, time3) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Rainfall' dtype = HE5T_NATIVE_FLOAT status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, rain) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Temperature' dtype = HE5T_NATIVE_FLOAT status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, temp) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'ID' dtype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, id3) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c.....Write forward and backward pointers status = he5_ptwrbckptr(ptid,1) write(*,*) 'Status returned by he5_ptwrbckptr(): ',status status = he5_ptwrfwdptr(ptid,1) write(*,*) 'Status returned by he5_ptwrfwdptr(): ',status c Write attributes to "Fixed Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_int' ntype = HE5T_NATIVE_INT fortcount(1) = 1 attr = 9999 status = he5_ptwriteattr(ptid,attrname,ntype,fortcount, 1attr) write(*,*) 'Status returned by he5_ptwriteattr(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status c Do FloatBuoy Point c ------------------ ptid = HE5_PTattach(ptfid, "FloatBuoy Point") write(*,*) 'Point ID returned by he5_ptattach(): ',ptid c Read FloatBuoy Point - Level 0 c ------------------------------ open(unit=1, file='floatBuoy0.txt', status='OLD') n = 0 do 40 i=1,1000 read(1, 410, end=400) desc4_tt, date4_tt, wgt_tt, id4_tt desc4(i) = desc4_tt date4(i) = date4_tt wgt(i) = wgt_tt id4(i) = id4_tt n = n + 1 40 continue 400 close(unit=1) 410 format(A8,I8,I7,2X,A8) count(1) = n fieldname = 'Label' dtype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, desc4) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'DeployDate' dtype = HE5T_NATIVE_INT status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, date4) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Weight' dtype = HE5T_NATIVE_INT status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, wgt) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'ID' dtype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1dtype, id4) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c Read FixedBuoy Point - Level 1 c ------------------------------ open(unit=1, file='floatBuoy1.txt', status='OLD') n = 0 do 50 i=1,1000 read(1, 510, end=500) time5_tt, lon5_tt, lat5_tt, 1rain5_tt,temp5_tt,id5_tt time5(i) = time5_tt lon5(i) = lon5_tt lat5(i) = lat5_tt rain5(i) = rain5_tt temp5(i) = temp5_tt id5(i) = id5_tt n = n + 1 50 continue 500 close(unit=1) 510 format(F13.1,F13.6,F13.6,F8.1,F8.2,3X,A8) count(1) = n fieldname = 'Time' dtype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, time5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Longitude' dtype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, lon5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Latitude' dtype = HE5T_NATIVE_DOUBLE status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, lat5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Rainfall' dtype = HE5T_NATIVE_FLOAT status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, rain5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'Temperature' dtype = HE5T_NATIVE_FLOAT status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, temp5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status fieldname = 'ID' dtype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 1, count, fieldname, 1dtype, id5) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c.....Write forward and backward pointers status = he5_ptwrbckptr(ptid,1) write(*,*) 'Status returned by he5_ptwrbckptr(): ',status status = he5_ptwrfwdptr(ptid,1) write(*,*) 'Status returned by he5_ptwrfwdptr(): ',status c Write attributes to "Float Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_float' ntype = HE5T_NATIVE_FLOAT fortcount(1) = 1 flt = -7.5 status = he5_ptwriteattr(ptid,attrname, 1ntype,fortcount,flt) write(*,*) 'Status returned by he5_ptwriteattr(): ',status c.....Close out the point interface status = he5_ptdetach(ptid) write(*,*) 'Status returned by he5_ptdetach(): ',status status = he5_ptclose(ptfid) write(*,*) 'Status returned by he5_ptclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_rdexternaldata.c0000755000175000017500000000644412024715435023507 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define DIMIN 100 #define DIMOUT 60 int main() { FILE *in_1, *in_2, *in_3; herr_t status = FAIL; int i; int data_in_1[DIMIN]; int data_in_2[DIMIN]; int data_in_3[DIMIN]; int data_out[DIMOUT]; int nfiles = FAIL; hid_t zafid = FAIL; hid_t ZAid = FAIL; size_t namelength = 48; off_t offset[3]; char filelist[256]; hssize_t start[2]; hsize_t count[2]; hsize_t size[3]; /* Create the external data sets */ /* ----------------------------- */ for (i = 0; i < DIMIN; i++) { data_in_1[i] = 1000 + i + 1; data_in_2[i] = 2000 + i + 1; data_in_3[i] = 3000 + i + 1; } /* Open the external data files */ /* ---------------------------- */ in_1 = fopen("external_1.data", "w"); in_2 = fopen("external_2.data", "w"); in_3 = fopen("external_3.data", "w"); /* Write data buffers to the external data files */ /* --------------------------------------------- */ fwrite(data_in_1, sizeof(int), DIMIN, in_1); fwrite(data_in_2, sizeof(int), DIMIN, in_2); fwrite(data_in_3, sizeof(int), DIMIN, in_3); /* Close the external data files */ /* ----------------------------- */ fclose(in_1); fclose(in_2); fclose(in_3); /* Open the HDF-EOS za file, "ZA.he5" */ /* --------------------------------- */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDWR); if (zafid != FAIL) { /* Attach the "ZA1" za */ /* ------------------- */ ZAid = HE5_ZAattach(zafid, "ZA1"); if (ZAid != FAIL) { /* Read the external data field */ /* ---------------------------- */ start[0] = 0; count[0] = DIMOUT; status = HE5_ZAread(ZAid, "ExtData", start, NULL, count, data_out); printf("Status returned by HE5_ZAread() : %d \n", status); /* Display external data set */ /* ------------------------- */ printf(" \n"); for (i = 0; i < DIMOUT; i++) printf("%d ", data_out[i]); /* Get the number of external files */ /* -------------------------------- */ nfiles = HE5_ZAgetextdata(ZAid, "ExtData", namelength, filelist, offset, size); printf(" \n"); printf(" \n"); printf("Number of external files returned by HE5_ZAgetextdata() : %d \n", nfiles); if (nfiles > 0) { printf(" \n"); printf("External files: \"%s\" \n", filelist); printf(" \n"); printf("offsets: "); for (i = 0; i < nfiles; i++) printf("%d ", (int)offset[i]); printf(" \n"); printf("sizes: "); for (i = 0; i < nfiles; i++) printf("%lu ", (unsigned long)size[i]); printf(" \n"); printf(" \n"); } } } /* Detach from the za */ /* ------------------ */ status = HE5_ZAdetach(ZAid); printf("Status returned by HE5_ZAdetach() : %d \n", status); /* Close the file */ /* -------------- */ status = HE5_ZAclose(zafid); printf("Status returned by HE5_ZAclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_readdata.c0000755000175000017500000001431112024715435022261 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* In this program we (1) open the "Swath.h5" HDF-EOS file, (2) attach to */ /* the "Swath1" swath, and (3) read data from the "Longitude" field. Also, */ /* we read the global/group/local attributes */ /* ----------------------------------------------------------------------- */ int main() { herr_t status = FAIL; int i, j, k; int attr1[4]; /* data buffer for global attribute */ int attr2[4]; /* .... for group attribute */ int attr3[4]; /* .... for local attribute */ hid_t swfid = FAIL; hid_t SWid = FAIL; char attr4[20] = {0}; /* ... for global 'char' attribute */ long attr5[4]; /* ... for global 'long' attribute */ double attr6[4]; /* ... for global 'double' attribute */ float attr7[4]; /* ... for local 'float' attribute */ char attr8[20] = {0}; /* ... for local 'char' attribute */ hssize_t start[2]; hsize_t count[2]; float lng[20][10]; hvl_t buffer_out[4];/* Buffer to read out data from profile */ char *charname[10] = {0}; /* Open the HDF-EOS swath file, "Swath.h5" */ /* --------------------------------------- */ swfid = HE5_SWopen("Swath.h5", H5F_ACC_RDONLY); if (swfid != FAIL) { /* Attach the "Swath1" swath */ /* ------------------------- */ SWid = HE5_SWattach(swfid, "Swath1"); if (SWid != FAIL) { /* Read the entire longitude field */ /* ------------------------------- */ start[0] = 0; start[1] = 0; count[0] = 20; count[1] = 10; status = HE5_SWreadfield(SWid, "Longitude", start, NULL, count, lng); printf("Status returned by HE5_SWreadfield() : %d \n", status); /* Display longitude data */ /* ---------------------- */ for (i = 0; i < 20; i++) for (j = 0; j < 10; j++) printf("i j Longitude: %d %d %f\n", i, j, lng[i][j]); start[0] = 0; count[0] = 10; for (i = 0; i < 10; i++) charname[i] = (char *)malloc(95*sizeof(char)); status = HE5_SWreadfield(SWid, "Test_string", start, NULL, count, charname); printf("Status returned by HE5_SWreadfield() : %d \n", status); /* Display Test_string data */ /* ---------------------- */ for (i = 0; i < 10; i++) printf("i = %d string = %s\n", i, charname[i]); for (i = 0; i < 10; i++) free(charname[i]); /* Read data from the Profile */ /* -------------------------- */ start[0] = 0; count[0] = 4; status = HE5_PRread(SWid, "Profile-2000", start, NULL, count, buffer_out); printf("Status returned by HE5_PRread() : %d \n", status); /* Display the profile data */ /* ------------------------ */ for (i = 0; i < 4; i++) { printf("\tThe %d-th element length is %d \n", i, (unsigned)buffer_out[i].len); for (j = 0; j < buffer_out[i].len; j++) printf("\t\t %d \n", ((unsigned int *)buffer_out[i].p)[j]); } /* Release IDs and memory */ /* ---------------------- */ status = HE5_PRreclaimspace(SWid, "Profile-2000", buffer_out); printf("Status returned by HE5_PRreclaimspace() : %d \n", status); /* Read Global 'int' Attribute */ /* --------------------------- */ status = HE5_SWreadattr(SWid, "GlobalAttribute", attr1); printf("Status returned by HE5_SWreadattr() : %d \n", status); printf("Global attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %d \n",attr1[i]); /* Read Group Attribute */ /* -------------------- */ status = HE5_SWreadgrpattr(SWid, "GroupAttribute", attr2); printf("Status returned by HE5_SWreadgrpattr() : %d \n", status); printf("Group attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %d \n",attr2[i]); /* Read Local Attribute */ /* -------------------- */ status = HE5_SWreadlocattr(SWid, "Density", "LocalAttribute_1", attr3); printf("Status returned by HE5_SWreadlocattr() : %d \n", status); printf("Local attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %d \n",attr3[i]); /* Read Local Attribute */ /* -------------------- */ status = HE5_SWreadlocattr(SWid, "Longitude", "LocalAttribute_2", attr7); printf("Status returned by HE5_SWreadlocattr() : %d \n", status); printf("Local attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %f \n",attr7[i]); status = HE5_SWreadlocattr(SWid, "Time", "LOCAL_CHAR_ATTR", attr8); printf("Status returned by HE5_SWreadlocattr() : %d \n", status); printf("Local attribute values:\n"); printf("\t\t %s \n",attr8); /* Read Global 'char' Attribute */ /* ---------------------------- */ status = HE5_SWreadattr(SWid, "GLOBAL_CHAR_ATTR", attr4); printf("Status returned by HE5_SWreadattr() : %d \n", status); printf("Global attribute values:\n"); printf("\t\t %s \n",attr4); /* Read Global 'long' Attribute */ /* ---------------------------- */ status = HE5_SWreadattr(SWid, "GLOBAL_LONG_ATTR", attr5); printf("Status returned by HE5_SWreadattr() : %d \n", status); printf("Global attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %li \n",attr5[i]); /* Read Global 'double' Attribute */ /* ------------------------------ */ status = HE5_SWreadattr(SWid, "GLOBAL_DOUBLE_ATTR", attr6); printf("Status returned by HE5_SWreadattr() : %d \n", status); printf("Global attribute values:\n"); for (i = 0; i < 4; i++) printf("\t\t %f \n",attr6[i]); } } status = HE5_SWdetach(SWid); status = HE5_SWclose(swfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_writeattrs.c0000755000175000017500000000446212024715435022724 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include int main() { herr_t status = FAIL; int attr = 9999; /* Global attribute */ int attr1[ 5 ] = { 1, 2, 3, 4, 5}; /* Group attribute */ int attr2[ 5 ] = { 10, 20, 30, 40, 50}; /* Local attribute */ hid_t ptfid = FAIL, PTid = FAIL; hsize_t count[8]; float flt = -7.5; /* Global attribute */ /* Open the HDF-EOS file, "Point.h5" */ /* --------------------------------- */ ptfid = HE5_PTopen("Point.h5", H5F_ACC_RDWR); printf("File ID returned by HE5_PTopen() : %d \n", ptfid); /* Write attribute to "Fixed Buoy Point" */ /* ------------------------------------- */ PTid = HE5_PTattach(ptfid, "FixedBuoy Point"); printf("Point ID returned by HE5_PTattach() : %d \n", PTid); count[0] = 1; status = HE5_PTwriteattr(PTid, "GlobalAttribute_int", H5T_NATIVE_INT, count, &attr); printf("Status returned by HE5_PTwriteattr() : %d \n", status); count[0] = 5; status = HE5_PTwritegrpattr(PTid, "GroupAttribute", H5T_NATIVE_INT, count, attr1); printf("Status returned by HE5_PTwritegrpattr() : %d \n", status); status = HE5_PTwritelocattr(PTid, "Observations", "LocalAttribute", H5T_NATIVE_INT, count, attr2); printf("Status returned by HE5_PTwritelocattr() : %d \n", status); status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d \n", status); /* Write attributes to "Floating Buoy Point" */ /* ----------------------------------------- */ PTid = HE5_PTattach(ptfid, "FloatBuoy Point"); printf("Point ID returned by HE5_PTattach() : %d \n", PTid); count[0] = 1; status = HE5_PTwriteattr(PTid, "GlobalAttribute_float", H5T_NATIVE_FLOAT, count, &flt); printf("Status returned by HE5_PTwriteattr() : %d \n", status); status = HE5_PTdetach(PTid); printf("Status returned by HE5_PTdetach() : %d \n", status); status = HE5_PTclose(ptfid); printf("Status returned by HE5_PTclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_rdexternaldata.c0000755000175000017500000000661012024715435023462 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define DIMIN 100 #define DIMOUT 60 /* * In this example we will (1) open the "Grid.h5" HDF-EOS file, (2) attach to * the "UTMGrid", (3) read external data */ int main() { FILE *in_1, *in_2, *in_3; herr_t status = FAIL; int i; int data_in_1[DIMIN]; int data_in_2[DIMIN]; int data_in_3[DIMIN]; int data_out[DIMOUT]; int nfiles = FAIL; hid_t gdfid = FAIL; hid_t GDid = FAIL; size_t namelength = 48; off_t offset[3]; char filelist[256]; hssize_t start[2]; hsize_t count[2]; hsize_t size[3]; /* Create the external data sets */ /* ----------------------------- */ for (i = 0; i < DIMIN; i++) { data_in_1[i] = 1000 + i + 1; data_in_2[i] = 2000 + i + 1; data_in_3[i] = 3000 + i + 1; } /* Open the external data files */ /* ---------------------------- */ in_1 = fopen("external_1g.data", "w"); in_2 = fopen("external_2g.data", "w"); in_3 = fopen("external_3g.data", "w"); /* Write data buffers to the external data files */ /* --------------------------------------------- */ fwrite(data_in_1, sizeof(int), DIMIN, in_1); fwrite(data_in_2, sizeof(int), DIMIN, in_2); fwrite(data_in_3, sizeof(int), DIMIN, in_3); /* Close the external data files */ /* ----------------------------- */ fclose(in_1); fclose(in_2); fclose(in_3); /* * Open the HDF grid file, "Grid.h5". */ gdfid = HE5_GDopen("Grid.h5", H5F_ACC_RDWR); if (gdfid != FAIL) { /* * Attach the "UTMGrid". */ GDid = HE5_GDattach(gdfid, "UTMGrid"); if (GDid != FAIL) { /* Read the external data field */ /* ---------------------------- */ start[0] = 0; count[0] = DIMOUT; status = HE5_GDreadfield(GDid, "ExtData", start, NULL, count, data_out); printf("Status returned by HE5_GDreadfield() : %d \n", status); /* Display external data set */ /* ------------------------- */ printf(" \n"); for (i = 0; i < DIMOUT; i++) printf("%d ", data_out[i]); /* Get the number of external files */ /* -------------------------------- */ nfiles = HE5_GDgetextdata(GDid, "ExtData", namelength, filelist, offset, size); printf(" \n"); printf(" \n"); printf("Number of external files returned by HE5_GDgetextdata() : %d \n", nfiles); if (nfiles > 0) { printf(" \n"); printf("External files: \"%s\" \n", filelist); printf(" \n"); printf("offsets: "); for (i = 0; i < nfiles; i++) printf("%d ", (int)offset[i]); printf(" \n"); printf("sizes: "); for (i = 0; i < nfiles; i++) printf("%lu ", (unsigned long)size[i]); printf(" \n"); printf(" \n"); } } } /* Detach from the Grid */ /* -------------------- */ status = HE5_GDdetach(GDid); printf("Status returned by HE5_GDdetach() : %d \n", status); /* Close the file */ /* -------------- */ status = HE5_GDclose(gdfid); printf("Status returned by HE5_GDclose() : %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_wrexternaldataF_64.f0000755000175000017500000000646012024715435024152 0ustar amckinstryamckinstry! ! ---------------------------------------------------------------------------- ! | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | ! ---------------------------------------------------------------------------- ! program he5_za_wrexternaldataF_64 implicit none include 'hdfeos5.inc' integer i integer status integer he5_zaopen integer he5_zaattach integer he5_zawrite integer he5_ehrdwrfile integer he5_zadetach integer he5_zaclose integer zafid, zaid integer data_out_1(100) integer data_out_2(100) integer data_out_3(100) integer data(60) integer*8 start(2) integer*8 stride(2) integer*8 count(2) integer*8 num_elements integer FAIL parameter (FAIL=-1) !.....Use this for writing (only) to an existing file integer WRITE_EXISTING_ONLY parameter (WRITE_EXISTING_ONLY=0) !.....Use this for reading (only) from an existing file integer READ_ONLY parameter (READ_ONLY=1) !.....Use this for creating and writing to a file integer WRITE_NEW parameter (WRITE_NEW=2) ! Create the new data buffer ! -------------------------- do 10 i=1,60 data(i) = 9999 10 continue ! Open HDF-EOS za file, "za.he5" ! ------------------------------ zafid = he5_zaopen("za.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned from he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned from he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Write new data to the external files ! ------------------------------------ start(1) = 0 stride(1) = 1 count(1) = 60 status = he5_zawrite(zaid,"ExtData", 1 start,stride,count,data) write(*,*) 'Status returned from he5_zawrite(): ',status num_elements = 100 status = he5_ehrdwrfile("extf1.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_1) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf2.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_2) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf3.dat",READ_ONLY, 1HE5T_NATIVE_INT,num_elements,data_out_3) write(*,*) 'Status returned from he5_ehrdwrfile: ',status write(*,*)'External file extf1.dat:' write(*,*) data_out_1 write(*,*) ' ' write(*,*)'External file extf2.dat:' write(*,*) data_out_2 write(*,*) ' ' write(*,*)'External file extf3.dat:' write(*,*) data_out_3 write(*,*) ' ' endif endif ! Detach from swath ! ----------------- status = he5_zadetach(zaid) write(*,*) 'Status returned from he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned from he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/floatBuoy0.txt0000755000175000017500000000012112024715435021655 0ustar amckinstryamckinstryPacific 901023 1200 P Atlantic 890419 2550 A Indian 900605 800 I hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_writedataF_32.f0000755000175000017500000000715412024715435023065 0ustar amckinstryamckinstry program he5_gd_writedataF_32 implicit none include 'hdfeos5.inc' integer status integer i, j integer he5_gdopen integer he5_gdattach integer he5_gdwrfld integer he5_gdwrattr integer he5_gdwrgattr integer he5_ehwrglatt integer he5_gdwrlattr integer he5_gddetach integer he5_gdclose integer gdfid,gdid integer*4 start(2), stride(2), count(2) real*4 f, veg(120,200), temp(100,100) character*10 attr4 character*100 attr5 integer FAIL parameter (FAIL=-1) c Create data buffers c ------------------- do i=1,200 do j=1,120 veg(j,i) = 10 + i enddo enddo do i=1,100 do j=1,100 temp(j,i) = 100*(i-1) + j enddo enddo c Open HDF-EOS file "grid.he5" c --------------------------- gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid if (gdfid .ne. FAIL) then c Attach to the UTM grid c ---------------------- gdid = he5_gdattach(gdfid, "UTMGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid if (gdid .ne. FAIL) then start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 count(1) = 120 count(2) = 200 c Write data to the field "Vegetation" c ------------------------------------ status = he5_gdwrfld(gdid,"Vegetation", 1 start,stride,count,veg) write(*,*) 'Status returned by he5_gdwrfld(): ',status f = 1 count(1) = 1 c Write global attribute "float" c ------------------------------ status = he5_gdwrattr(gdid,"float", 1 HE5T_NATIVE_FLOAT,count,f) write(*,*) 'Status returned by he5_gdwrattr(): ',status attr4 = "ABCDEFGH" count(1) = 8 status = he5_gdwrattr(gdid,"GLOBAL_CHAR_ATTR",HE5T_NATIVE_CHAR, 1 count,attr4) write(*,*) 'Status returned by he5_gdwrattr(): ',status attr4 = "111" count(1) = 3 status = he5_gdwrgattr(gdid,"GLOBAL_CHAR_ATTR_1",HE5T_NATIVE_CHAR, 1 count,attr4) write(*,*) 'Status returned by he5_gdwrgattr(): ',status attr4 = "222222" count(1) = 6 status = he5_ehwrglatt(gdfid,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR, 1 count,attr4) write(*,*) 'Status returned by he5_ehwrglatt(): ',status attr5 = "abcdefgh111111111111" count(1) = 20 status = he5_gdwrlattr(gdid,"Vegetation","LocalAttribute_0", 1 HE5T_NATIVE_CHAR,count,attr5) write(*,*) 'Status returned by he5_gdwrlattr(): ',status endif endif c Detach from the grid c -------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status c Attach to the POLAR grid c ------------------------ gdid = he5_gdattach(gdfid, "PolarGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid if (gdid .ne. FAIL) then start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 count(1) = 100 count(2) = 100 c Write data to the "Temperature" field c ------------------------------------- status = he5_gdwrfld(gdid,"Temperature", 1 start,stride,count,temp) write(*,*) 'Status returned by he5_gdwrfld(): ',status endif c Detach from the grid c -------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_za_definefieldsF_64.f0000755000175000017500000000535212024715435023545 0ustar amckinstryamckinstry! In this program we (1) open the "za.he5" HDF-EOS file, ! (2) attach to the "ZA1" za, and (3) define the za fields ! ======================================================== program he5_za_definefieldsF_64 implicit none include 'hdfeos5.inc' integer status integer he5_zaopen integer he5_zaattach integer he5_zadefine integer he5_zadefchunk integer he5_zadefcomp integer he5_zadetach integer he5_zaclose integer zafid, zaid integer chunkrank integer*8 chunkdims(3) integer compparm(1) integer FAIL parameter (FAIL=-1) ! Open the HDF-EOS file, "za.he5" using "READ/WRITE" access code ! -------------------------------------------------------------- zafid = he5_zaopen("za.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_zaopen(): ',zafid if (zafid .NE. FAIL) then zaid = he5_zaattach(zafid, "ZA1") write(*,*) 'ZA ID returned by he5_zaattach(): ',zaid if (zaid .NE. FAIL) then ! Define Data fields ! ------------------ status = he5_zadefine(zaid,"Density","MyTrack1", 1 " ",HE5T_NATIVE_FLOAT) write(*,*) 'Status returned by he5_zadefine(): ',status status = he5_zadefine(zaid,"Temperature", 1 "MyTrack2,MyTrack1"," ",HE5T_NATIVE_FLOAT) write(*,*) 'Status returned by he5_zadefine(): ',status status = he5_zadefine(zaid,"Pressure","Res2xtr,Res2tr", 1 " ", HE5T_NATIVE_FLOAT) write(*,*) 'Status returned by he5_zadefine(): ',status chunkrank = 3 chunkdims(1) = 20 chunkdims(2) = 40 chunkdims(3) = 15 compparm(1) = 6 status = he5_zadefchunk(zaid,chunkrank,chunkdims) write(*,*) 'Status returned by he5_zadefchunk(): ',status status = he5_zadefcomp(zaid,HE5_HDFE_COMP_DEFLATE,compparm) write(*,*) 'Status returned by he5_zadefcomp(): ',status status = he5_zadefine(zaid, "Spectra", 1 "Res2xtr,Res2tr,Bands"," ", 2 HE5T_NATIVE_DOUBLE) write(*,*) 'Status returned by he5_zadefine(): ',status endif endif ! Detach from the za ! ------------------ status = he5_zadetach(zaid) write(*,*) 'Status returned by he5_zadetach(): ',status ! Close the file ! -------------- status = he5_zaclose(zafid) write(*,*) 'Status returned by he5_zaclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_readdimscaleF_32.f0000644000175000017500000001265412024715435023514 0ustar amckinstryamckinstry program he5_gd_readdimscaleF_32 implicit none include 'hdfeos5.inc' integer status integer i, j, jj integer he5_gdopen integer he5_gdattach integer he5_gdwrfld integer he5_gdwrattr integer he5_gdwrgattr integer he5_ehwrglatt integer he5_gdwrlattr integer he5_gddetach integer he5_gdclose integer HE5_GDdscaleattrinfo, HE5_GDreaddscaleattr integer HE5_GDgetdimscale, HE5_GDinqdscaleattrs integer ntype integer gdfid,gdid1 real*4 datbuf_f(1) integer*4 start(2), stride(2), count(2) integer*4 datbuf_i(3) real*8 veg1(120),veg2(200), temp1(100),temp2(100) real*4 geospecf(4) character*10 attr4 character*100 attr5 integer*4 nbands integer bands(3) integer*4 datbuf_i2(2) integer attr_int(25) real*4 attr_flt(25) real*8 attr_dbl(25) character attr_char(25) integer dimsize integer bufsize, nattr integer FAIL parameter (FAIL=-1) character*100 attrlist character*100 strbufsize character*15 attrname(10) integer numtype ! /* ! * Open the HDF grid file, "Grid.h5". ! */ gdfid = HE5_GDopen("grid.he5", HE5F_ACC_RDWR) ! /* ! * If the grid file cannot be found, HE5_GDopen will return -1 for the file ! * handle (gdfid). We there check that this is not the case before ! * proceeding with the other routines. ! * ! * The HE5_GDattach routine returns the handle to the existing grid "Grid1", ! * GDid. If the grid is not found, HE5_GDattach returns -1 for the handle. ! */ if (gdfid .ne. FAIL) then GDid1 = HE5_GDattach(gdfid, "UTMGrid") ! /* the field Pollution has Time,YDim,XDim dimensions. ! xdim = 120 ! ydim = 200 ! Time dim is set to 10 ! */ if (GDid1 .eq. FAIL) then write(*,*) 'Error: Cannot attach to grid UTMGrid' status = HE5_GDclose(gdfid) stop endif bufsize = HE5_GDgetdimscale(GDid1, "Pollution", "XDim", 1 dimsize, numtype, veg1) if (bufsize .eq. -1) then write(*,*) 'Error:Cannot get Dimension Scale size for XDim', 1 ' dimemnsion in field Pollution' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop else write(*,*) 'bufsize = ',bufsize write(*,*) 'dimsize = ',dimsize write(*,*) 'numtype = ',numtype write(*,*) 'First 10 values are:' do i = 1,10 write(*,*) 'DimscaleValue[',i,'] = ',veg1(i) enddo endif nattr = HE5_GDinqdscaleattrs(GDid1, "XDim", attrlist, 1 strbufsize) if ( nattr .lt. 0 ) then write(*,*) 'Error: Cannot get Dimension Scale attribute', 1 ' list for XDim' status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop endif write(*,*) ' ' write(*,*) 'Dimension scale for XDim Attribute:' attrname(1) = 'label' attrname(2) = 'unit' attrname(3) = 'format' attrname(4) = 'MissingValue' attrname(5) = 'IntValues' do j = 1,5 attr_char = '' count(1)= 0 count(2)= 0 status = HE5_GDdscaleattrinfo(GDid1,"XDim", attrname(j), 1 ntype, count) if( ntype .eq. 0) then status = HE5_GDreaddscaleattr(GDid1,"XDim", attrname(j), 1 attr_int) endif if( ntype .eq. 10) then status = HE5_GDreaddscaleattr(GDid1,"XDim", attrname(j), 1 attr_flt) endif if( ntype .eq. 11) then status = HE5_GDreaddscaleattr(GDid1,"XDim", attrname(j), 1 attr_dbl) endif if( ntype .eq. 57) then status = HE5_GDreaddscaleattr(GDid1,"XDim", attrname(j), 1 attr_char) endif write(*,*) ' ' write(*,*) 'Status returned by HE5_GDreaddscaleattr() :', 1 status write(*,*) 'Attribute Name: ',attrname(j) write(*,*) 'Number of attribute elements: ', count(1), 1 ' ', count(2) write(*,*) 'Data type of attribute: ', ntype if( ntype .eq. 0) then do jj = 1,count(1) write(*,*) 'Attrvalue[',jj,']: ', attr_int(jj) enddo endif if( ntype .eq. 10) then do jj = 1,count(1) write(*,*) 'Attrvalue[',jj,']: ',attr_flt(jj) enddo endif if( ntype .eq. 11) then do jj = 1,count(1) write(*,*) 'Attrvalue[',jj,']: ',attr_dbl(jj) enddo endif if( ntype .eq. 57) then write(*,*) 'Attrvalue: ', attr_char endif enddo endif status = HE5_GDdetach(GDid1) status = HE5_GDclose(gdfid) stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_gd_subsetF_32.f0000755000175000017500000000507512024715435022406 0ustar amckinstryamckinstryc In this example we will (1) open the "grid.he5" HDF-EOS file c (2) attach to the "PolarGrid" grid, and (3) subset data from c the "Temperature" field. c ============================================================ program he5_gd_subsetF_32 implicit none include 'hdfeos5.inc' integer status integer gdfid integer gdid integer rgid integer he5_gdopen integer he5_gdattach integer he5_gdreginfo integer he5_gddefboxreg integer he5_gdextreg integer he5_gddetach integer he5_gdclose integer rk integer nt integer*4 dims(8) integer*4 size real*8 cornerlon(2) real*8 cornerlat(2) real*8 upleft(2) real*8 lowright(2) real*4 datbuf(100*100) integer FAIL parameter (FAIL=-1) c Open the HDF-EOS grid file, "grid.he5" c -------------------------------------- gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR) write(*,*) 'File ID returned by he5_gdopen(): ',gdfid if (gdfid .NE. FAIL) then c Attach to the POLAR grid c ------------------------ gdid = he5_gdattach(gdfid, "PolarGrid") write(*,*) 'Grid ID returned by he5_gdattach(): ',gdid if (gdid .NE. FAIL) then cornerlon(1) = 0. cornerlat(1) = 90. cornerlon(2) = 90. cornerlat(2) = 0. c Define box region c ----------------- rgid = he5_gddefboxreg(gdid,cornerlon, 1 cornerlat) write(*,*) 'Region ID returned by he5_gddefboxreg(): ', 1 rgid c Get region information c ---------------------- status = he5_gdreginfo(gdid,rgid,"Temperature", 1 nt,rk, dims, size, upleft, lowright) write(*,*) dims(1), dims(2), rk, nt c Extract region c -------------- status = he5_gdextreg(gdid,rgid,"Temperature", 1 datbuf) write(*,*) 'Status returned by he5_gdextreg(): ',status endif c Detach from the grid c -------------------- status = he5_gddetach(gdid) write(*,*) 'Status returned by he5_gddetach(): ',status c Close the file c -------------- status = he5_gdclose(gdfid) write(*,*) 'Status returned by he5_gdclose(): ',status endif stop end hdf-eos5-5.1.14+dfsg.1/samples/he5_pt_updatelevels.c0000755000175000017500000000307212024715435023205 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include int main() { herr_t status = FAIL; hid_t ptfid = FAIL; hid_t PTid1 = FAIL; hssize_t recs[32]; hsize_t nrec; typedef struct { double Time; float Conc[4]; char Spc[8]; } CmpData_1; CmpData_1 buf_1; buf_1.Time = 13131313.0; buf_1.Conc[0] = 1.11; buf_1.Conc[1] = 2.22; buf_1.Conc[2] = 3.33; buf_1.Conc[3] = 4.44; strcpy(buf_1.Spc,"AM"); /* -------------------------------------------------------------- */ /* NOTE: To update all records, set "nrec" => 0 or "recs" => NULL */ /* the data buffer should be properly populated */ /* -------------------------------------------------------------- */ /* Open the HDF-EOS file, "Point.h5" */ /* --------------------------------- */ ptfid = HE5_PTopen("Point.h5", H5F_ACC_RDWR); if (ptfid != FAIL) { PTid1 = HE5_PTattach(ptfid, "Simple Point"); if (PTid1 != FAIL) { nrec = 1; recs[0] = 0; status = HE5_PTupdatelevel(PTid1, 0, "Concentration", nrec, recs, &buf_1); printf("Status returned by HE5_PTupdatelevel() : %d \n", status); } status = HE5_PTdetach(PTid1); printf("Status returned by HE5_PTdetach() : %d \n", status); } status = HE5_PTclose(ptfid); return 0; } hdf-eos5-5.1.14+dfsg.1/samples/he5_za_writedimscale.c0000755000175000017500000000747312024715435023344 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include /* * In this example we will open an HDF-EOS file and attach to * a ZA structures within the file to write a dimension scales */ int main() { herr_t status = FAIL; hid_t zafid = FAIL; hid_t zaid1 = FAIL; int data[15]={1,2,3,6,9,12,15,18,23,26,29,32, 33,34,35}; char label[16]; char unit[16]; char format[16]; int nbands; hsize_t count[3]; /* * We first open the HDF-EOS ZA file, "Za.h5". Because this file * already exist and we wish to write to it, we use the H5F_ACC_RDWR access * code in the open statement. The HE5_ZAopen routine returns the ZA file * id, zafid, which is used to identify the file in subsequent routines. */ zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDWR); /* * If the ZA file cannot be found, HE5_ZAopen will return -1 for the file * handle (zafid). We there check that this is not the case before * proceeding with the other routines. * * The HE5_ZAattach routine returns the handle to the existing ZA "Za1", * zaid1. If the ZA is not found, HE5_ZAattach returns -1 for the handle. */ if (zafid != FAIL) { zaid1 = HE5_ZAattach(zafid, "ZA1"); /* the field Spectra has Time,YDim,XDim dimensions. Bands dim is set to 15 */ if (zaid1 == -1) { printf("\t\tError: Cannot attach to ZA \"ZA1\"\n"); HE5_ZAclose(zafid); return -1; } nbands = 15; status = HE5_ZAsetdimscale(zaid1, "Spectra", "Bands", nbands, H5T_NATIVE_INT, (void *)data); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale for Bands dimemnsion in field \"Spectra\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); return -1; } strcpy(label, "Bands Dim"); strcpy(unit, "None"); strcpy(format, "I2"); count[0]= 12; status = HE5_ZAwritedscaleattr(zaid1, "Bands", "label", H5T_NATIVE_CHAR, count, label); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); return -1; } count[0]= 6; status = HE5_ZAwritedscaleattr(zaid1, "Bands", "unit", H5T_NATIVE_CHAR, count, unit); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); return -1; } count[0]= 4; status = HE5_ZAwritedscaleattr(zaid1, "Bands", "format", H5T_NATIVE_CHAR, count, format); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); return -1; } int datbuf_i1[1] = {-999}; count[0]= 1; status = HE5_ZAwritedscaleattr(zaid1, "Bands", "MissingValue", H5T_NATIVE_INT, count, datbuf_i1); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); return -1; } int datbuf_i2[3] = {-999,0,999}; count[0]= 3; status = HE5_ZAwritedscaleattr(zaid1, "Bands", "IntValues", H5T_NATIVE_INT, count, datbuf_i2); if (status == -1) { printf("\t\tError: Cannot set Dimension Scale strs for Bands dimemnsion in field \"Spectra\"\n"); HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); return -1; } HE5_ZAdetach(zaid1); HE5_ZAclose(zafid); return 0; } } hdf-eos5-5.1.14+dfsg.1/samples/he5_sw_rdexternaldataF_32.f0000755000175000017500000000747712024715435024152 0ustar amckinstryamckinstryc c ---------------------------------------------------------------------------- c | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | c ---------------------------------------------------------------------------- c program he5_sw_rdexternaldataF_32 implicit none include 'hdfeos5.inc' integer i integer status integer he5_swopen integer he5_swattach integer he5_swrdfld integer he5_swgetxdat integer he5_ehrdwrfile integer he5_swdetach integer he5_swclose integer swfid, swid integer nfiles integer datain1(100) integer datain2(100) integer datain3(100) integer dataout(60) integer*4 start(2) integer*4 stride(2) integer*4 count(2) integer*4 offset(3) integer*4 size(3) integer*4 nmlgth integer*4 num_elements character filelist*256 integer FAIL parameter (FAIL=-1) c.....Use this for writing (only) to an existing file integer WRITE_EXISTING_ONLY parameter (WRITE_EXISTING_ONLY=0) c.....Use this for reading (only) from an existing file integer READ_ONLY parameter (READ_ONLY=1) c.....Use this for creating and writing to a file integer WRITE_NEW parameter (WRITE_NEW=2) c Create the external data sets c ----------------------------- do 10 i=1,100 datain1(i) = 1000+i datain2(i) = 2000+i datain3(i) = 3000+i 10 continue num_elements = 100 status = he5_ehrdwrfile("extf1.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain1) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf2.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain2) write(*,*) 'Status returned from he5_ehrdwrfile: ',status status = he5_ehrdwrfile("extf3.dat",WRITE_NEW, 1HE5T_NATIVE_INT,num_elements,datain3) write(*,*) 'Status returned from he5_ehrdwrfile: ',status c Open HDF-EOS swath file, "swath.he5" c ----------------------------------- swfid = he5_swopen("swath.he5", HE5F_ACC_RDWR) write(*,*) 'File ID returned from he5_swopen(): ',swfid if (swfid .NE. FAIL) then swid = he5_swattach(swfid, "Swath1") write(*,*) 'Swath ID returned from he5_swattach(): ',swid if (swid .NE. FAIL) then c Read the external data field c ---------------------------- start(1) = 0 stride(1) = 1 count(1) = 60 status = he5_swrdfld(swid,"ExtData", 1 start,stride,count,dataout) write(*,*) 'Status returned from he5_swrdfld(): ',status c Display the data c ---------------- do i=1,60 write(*,*)'External data',dataout(i) enddo nmlgth = 48 c Get the number of external files c -------------------------------- nfiles = he5_swgetxdat(swid,"ExtData",nmlgth, 1 filelist,offset,size) write(*,*) 'Number of external files',nfiles write(*,*) 'External files:',filelist do i=1,nfiles write(*,*) 'offsets:',offset(i) write(*,*) 'sizes:',size(i) enddo endif endif c Detach from swath c ----------------- status = he5_swdetach(swid) write(*,*) 'Status returned from he5_swdetach(): ',status c Close the file c -------------- status = he5_swclose(swfid) write(*,*) 'Status returned from he5_swclose(): ',status stop end hdf-eos5-5.1.14+dfsg.1/configure.ac0000644000175000017500000004363212024715435017725 0ustar amckinstryamckinstry# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. # Prototype configure.ac for HDF-EOS # Created 5/2/06 by James Laird (jlaird@ncsa.uiuc.edu) AC_PREREQ([2.59]) AC_INIT([hdf-eos5], [1.8], null@bogus.email) AM_CONFIG_HEADER([include/HE5_config.h]) AC_CONFIG_AUX_DIR([config]) AM_INIT_AUTOMAKE([foreign]) AM_MAINTAINER_MODE # Disable shared libraries (for now) AC_DISABLE_SHARED AM_PROG_LIBTOOL dnl ---------------------------------------------------------------------- dnl Set prefix default (install directory) to a directory in the build area. AC_PREFIX_DEFAULT([`pwd`/hdfeos5]) # Check for the math library that HDF5 needs AC_CHECK_LIB([m], [ceil]) # Check whether zlib is enabled. # HDF-EOS5 doesn't use zlib, but HDF5 might. If HDF5 does, it needs # to be given to the linker or there will be undefined symbols in HDF5. # Using h5cc avoids the need to specify zlib at configure time. AC_ARG_WITH([zlib], [AC_HELP_STRING([--with-zlib=DIR], [Specify path to external zlib library. Linker must be able to find zlib if HDF5 was built with zlib. [default=yes]])],, withval=yes) case $withval in yes) HAVE_ZLIB="yes" AC_CHECK_HEADERS([zlib.h],) AC_CHECK_LIB([z], [compress2],, [unset HAVE_ZLIB]) if test -z "$HAVE_ZLIB"; then AC_MSG_ERROR([couldn't find zlib library]) fi ;; no) HAVE_ZLIB="no" AC_MSG_CHECKING([for GNU zlib]) AC_MSG_RESULT([suppressed]) ;; *) HAVE_ZLIB="yes" case "$withval" in *,*) zlib_inc="`echo $withval |cut -f1 -d,`" zlib_lib="`echo $withval |cut -f2 -d, -s`" ;; *) if test -n "$withval"; then zlib_inc="$withval/include" zlib_lib="$withval/lib" fi ;; esac dnl Trying to include -I/usr/include and -L/usr/lib is redundant and dnl can mess some compilers up. if test "X$zlib_inc" = "X/usr/include"; then zlib_inc="" fi if test "X$zlib_lib" = "X/usr/lib"; then zlib_lib="" fi saved_CPPFLAGS="$CPPFLAGS" saved_LDFLAGS="$LDFLAGS" if test -n "$zlib_inc"; then CPPFLAGS="$CPPFLAGS -I$zlib_inc" fi AC_CHECK_HEADERS([zlib.h], , [CPPFLAGS="$saved_CPPFLAGS"]) if test -n "$zlib_lib"; then LDFLAGS="$LDFLAGS -L$zlib_lib" fi AC_CHECK_LIB([z], [compress2],, [LDFLAGS="$saved_LDFLAGS"; unset HAVE_ZLIB]) if test -z "$HAVE_ZLIB"; then AC_MSG_ERROR([couldn't find zlib library]) fi ;; esac dnl -------------------------------------------------- dnl Check if -Df2cFortran is specified dnl Running only the preprocessor may not be a good idea dnl because this can be hard-coded. AC_MSG_CHECKING([for fc2Fortran macro]) AC_CACHE_VAL([he5_cv_f2cFortran_defined], [AC_TRY_RUN([ int main(void) { #ifdef f2cFortran return 0; #else return 1; #endif } ], [he5_cv_f2cFortran_defined=yes], [he5_cv_f2cFortran_defined=no],)]) if test ${he5_cv_f2cFortran_defined} = "yes"; then F2CFORTRAN_MACRO="yes" AC_MSG_RESULT([defined]) else F2CFORTRAN_MACRO="no" AC_MSG_RESULT([not defined]) fi if test ${he5_cv_f2cFortran_defined} = "yes"; then AC_CHECK_SIZEOF([int*]) AC_CACHE_VAL([he5_cv_32ptr], [AC_TRY_RUN([ int main(void) { #ifdef SIZEOF_INTP return SIZEOF_INTP == 4 ? 0 : 1; #else #error SIZEOF_INTP is not defined #endif } ], [he5_cv_32ptr=yes], [he5_cv_32ptr=no],)]) if test ${he5_cv_32ptr} = "yes"; then AC_MSG_NOTICE([possibly 32 bit system]) F2CFORTRAN_32PTR="yes" else AC_MSG_NOTICE([possibly 64 bit system]) fi AC_PROG_FC if test -n "$FC"; then AC_MSG_CHECKING([for fortran compiler $FC]) AC_LANG_PUSH([Fortran]) AC_TRY_LINK([], [ INTEGER :: I REAL :: R I=TRANSFER(R,I) ], [he2_cv_fortran90_compiler=yes], [he2_cv_fortran90_compiler=no]) AC_LANG_POP([Fortran]) if test ${he2_cv_fortran90_compiler} = "yes"; then AC_MSG_RESULT([Fortran 90 code was successfully compiled; assume f90 or later]) F2CFORTRAN_90="yes" else AC_MSG_RESULT([Fortran 90 code format was not compiled; assume f77]) fi if test -n "$F77" -o -n "$FFLAGS"; then AC_MSG_NOTICE([$FC, $FCFLAGS will override $F77, $FFLAGS.]) fi F77=$FC FFLAGS=$FCFLAGS else AC_MSG_NOTICE([f90 or compatible was not detected.]) AC_PROG_F77 if test -n "$F77"; then AC_MSG_NOTICE([f77 or compatible was detected. $F77 will be used to check Fortran testdrivers.]) else AC_MSG_ERROR([couldn't find fortran compiler. You may want to FC environment variable]) fi fi fi # Check whether szlib (szip) is enabled. # HDF-EOS5 doesn't use szlib, but HDF5 might. If HDF5 does, it needs # to be given to the linker or there will be undefined symbols in HDF5. # Using h5cc should avoid the need to specify szlib at configure time. AC_ARG_WITH([szlib], [AC_HELP_STRING([--with-szlib=DIR], [Use szlib library for external szlib I/O filter. Linker must be able to find szlib if HDF5 was build with szip. [default=no]])],, withval=no) case $withval in yes) HAVE_SZLIB="yes" AC_CHECK_HEADERS([szlib.h], [HAVE_SZLIB_H="yes"]) AC_CHECK_LIB([sz], [SZ_BufftoBuffCompress],, [unset HAVE_SZLIB]) if test -z "$HAVE_SZLIB"; then AC_MSG_ERROR([couldn't find szlib library, you may need to specify szip library path]) fi ;; no) HAVE_SZLIB="no" AC_MSG_CHECKING([for szlib]) AC_MSG_RESULT([suppressed]) ;; *) HAVE_SZLIB="yes" case "$withval" in *,*) szlib_inc="`echo $withval |cut -f1 -d,`" szlib_lib="`echo $withval |cut -f2 -d, -s`" ;; *) if test -n "$withval"; then szlib_inc="$withval/include" szlib_lib="$withval/lib" fi ;; esac dnl Check if szlib.h exists. We cannot use AC_CHECK_HEADERS here dnl because it will use preprocessor. Preprocessor always succeeds in dnl finding szlib.h because h4cc provides the path to szlib.h. AC_CHECK_FILE($szlib_inc/szlib.h, , [unset HAVE_SZLIB]) if test -z "$HAVE_SZLIB"; then AC_MSG_ERROR([couldn't find szlib.h, check szip library path]) fi dnl Trying to include -I/usr/include and -L/usr/lib is redundant and dnl can mess some compilers up. if test "X$szlib_inc" = "X/usr/include"; then szlib_inc="" fi if test "X$szlib_lib" = "X/usr/lib"; then szlib_lib="" fi saved_CPPFLAGS="$CPPFLAGS" saved_LDFLAGS="$LDFLAGS" if test -n "$szlib_inc"; then CPPFLAGS="$CPPFLAGS -I$szlib_inc" fi AC_CHECK_HEADERS([szlib.h], [HAVE_SZLIB_H="yes"], [CPPFLAGS="$saved_CPPFLAGS"]) if test -n "$szlib_lib"; then LDFLAGS="$LDFLAGS -L$szlib_lib" fi AC_CHECK_LIB([sz], [SZ_BufftoBuffCompress],, [LDFLAGS="$saved_LDFLAGS"; unset HAVE_SZLIB]) if test -z "$HAVE_SZLIB" -a -n "$HDF5_CONFIG_ABORT"; then AC_MSG_ERROR([couldn't find szlib library, check if szip library is valid]) fi ;; esac if test "X$HAVE_SZLIB" = "Xyes"; then dnl SZLIB library is available. Check if it can encode dnl Given that user specifies h5cc, LDFLAGS in h5cc should be overriden; otherwise, dnl the encoding test will be performed on the SZIP library linked with HDF5, not dnl the SZIP library user specifies. To suppress the SZIP library linked with HDF5, dnl we prepend the user-specified SZIP library path to LDFLAGS in h5cc by using awk. AC_PROG_AWK AC_MSG_CHECKING([for h5cc]) PURE_CC="" if ($CC -show &> /dev/null); then dnl Since CC can be "h5cc -Df2cFortran", arguments should be removed PURE_CC=`echo "$CC" | $AWK '{ split($1, array, " ") ; printf array[[1]] }'` AC_MSG_RESULT([$PURE_CC]) else AC_MSG_RESULT([$CC]) AC_MSG_ERROR([CC is not h5cc]) fi SZIP_CC=szip_cc cat $PURE_CC | $AWK '{ if ( $0 ~ /^LDFLAGS=\"(.*)/ ) { print substr($0, 1, 9) " -L'$szlib_lib' " substr($0, 10) } else { print } } ' > $SZIP_CC chmod 755 $SZIP_CC saved_CC="$CC" CC=./$SZIP_CC AC_MSG_CHECKING([for szlib encoder]) AC_CACHE_VAL([he5_cv_szlib_functional], [AC_TRY_RUN([ #include #include int main(void) { SZ_encoder_enabled(); exit(0); } ], [he5_cv_szlib_functional=yes], [he5_cv_szlib_functional=no],)]) AC_CACHE_VAL([he5_cv_szlib_can_encode], [AC_TRY_RUN([ #include #include int main(void) { /* SZ_encoder_enabled returns 1 if encoder is present */ if(SZ_encoder_enabled() == 1) exit(0); else exit(1); } ], [he5_cv_szlib_can_encode=yes], [he5_cv_szlib_can_encode=no],)]) CC="$saved_CC" rm -f $SZIP_CC if test ${he5_cv_szlib_functional} = "no"; then he5_cv_szlib_can_encode=broken else AC_DEFINE(HAVE_FILTER_SZIP, 1, [Define if support for szip filter is enabled]) USE_FILTER_SZIP="yes" fi if test ${he5_cv_szlib_can_encode} = "yes"; then AC_DEFINE(HAVE_FILTER_SZIP_ENCODER, 1, [Define if support for szip encoder filter is enabled]) USE_SZIP_ENCODER="yes" AC_MSG_RESULT([yes]) fi if test ${he5_cv_szlib_can_encode} = "no"; then AC_MSG_RESULT([no]) fi if test ${he5_cv_szlib_can_encode} = "broken"; then AC_MSG_RESULT([shared szlib doesn't work. disabling szip.]) fi dnl Add "szip" to external filter list if test ${he5_cv_szlib_can_encode} = "yes"; then if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," fi EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(encoder)" fi if test ${he5_cv_szlib_can_encode} = "no"; then if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," fi EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(no encoder)" fi fi # Check for the HDF5 library using the --with argument # Of course HDF5 is required, but the user may be using h5cc, in which case # they don't need to specify --with-hdf5. They can also use # --with-hdf5=/path/to/hdf5 to give a specific path. HAVE_HDF5="yes" AC_ARG_WITH([hdf5], [AC_HELP_STRING([--with-hdf5=DIR], [Specify path to HDF5 library to use while building [default=yes]])],, withval=yes) case $withval in yes) ;; no) AC_MSG_ERROR([HDF5 disabled in confugre, but is required to build HDF-EOS5.]) ;; *) case "$withval" in *,*) hdf5_inc="`echo $withval |cut -f1 -d,`" hdf5_lib="`echo $withval |cut -f2 -d, -s`" ;; *) if test -n "$withval"; then hdf5_inc="$withval/include" hdf5_lib="$withval/lib" fi ;; esac dnl Trying to include -I/usr/include and -L/usr/lib is redundant and dnl can mess some compilers up. if test "X$hdf5_inc" = "X/usr/include"; then hdf5_inc="" fi if test "X$hdf5_lib" = "X/usr/lib"; then hdf5_lib="" fi if test -n "$hdf5_inc"; then CPPFLAGS="$CPPFLAGS -I$hdf5_inc" CFLAGS="$CFLAGS -I$hdf5_inc" fi if test -n "$hdf5_lib"; then LDFLAGS="$LDFLAGS -L$hdf5_lib" fi ;; esac dnl See if we have a valid linking path to the HDF5 library, either because dnl it's in the user's path or because they provided the correct path using dnl --with-hdf5 AC_CHECK_HEADERS([hdf5.h], , [HAVE_HDF5="no"]) AC_CHECK_LIB(hdf5, H5Fcreate,, [HAVE_HDF5="no"]) if test "X$HAVE_HDF5" = "Xno"; then AC_MSG_ERROR([can't link against HDF5 library]) fi # Check whether HDF5 threadsafety is enabled AC_MSG_CHECKING([if HDF5 threadsafe mode is enabled]) AC_TRY_RUN([ #include "hdf5.h" int main(void) { #ifdef H5_HAVE_THREADSAFE return 0; #else return 1; #endif } ], [ AC_MSG_RESULT([yes]) THREADSAFE="yes"], [AC_MSG_RESULT([no]) THREADSAFE="no"]) # Record threadsafe status in config.h and for Makefiles if test "X$THREADSAFE" = "Xyes"; then AC_DEFINE([_HDFEOS5_THREADSAFE], [1], [Define if threadsafe HDF-EOS is enabled]) fi AM_CONDITIONAL([THREADSAFE_CONDITIONAL], [test "X$THREADSAFE" = "Xyes"]) if test "x$HAVE_HDF5" = "xyes"; then dnl Check if HDF5 is linked with SZIP encoder AC_MSG_CHECKING([for hdf5 szip decoding filter]) AC_CACHE_VAL([he5_cv_hdf5_szip_can_decode], [AC_TRY_RUN([ #include #include int main(int argc, char **argv) { herr_t ret; unsigned int flags = 0; int decoder = 0; ret = H5Zget_filter_info(H5Z_FILTER_SZIP, &flags); if (ret < 0) exit(1); decoder = flags & H5Z_FILTER_CONFIG_DECODE_ENABLED; if (decoder) exit(0); else exit(1); } ], [he5_cv_hdf5_szip_can_decode=yes], [he5_cv_hdf5_szip_can_decode=no],)]) if test ${he5_cv_hdf5_szip_can_decode} = "yes"; then AC_DEFINE(HAVE_HDF5_SZIP_DECODER, 1, [Define if HDF5 has szip decoder filter]) AC_DEFINE(H5_HAVE_FILTER_SZIP, 1, [Define if HDF5 has szip any type of filter]) AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi AC_MSG_CHECKING([for hdf5 szip encoding filter]) AC_CACHE_VAL([he5_cv_hdf5_szip_can_encode], [AC_TRY_RUN([ #include #include int main(int argc, char **argv) { herr_t ret; unsigned int flags = 0; int encoder = 0; ret = H5Zget_filter_info(H5Z_FILTER_SZIP, &flags); if (ret < 0) exit(1); encoder = flags & H5Z_FILTER_CONFIG_ENCODE_ENABLED; if (encoder) exit(0); else exit(1); } ], [he5_cv_hdf5_szip_can_encode=yes], [he5_cv_hdf5_szip_can_encode=no],)]) if test ${he5_cv_hdf5_szip_can_encode} = "yes"; then AC_DEFINE(HAVE_HDF5_SZIP_ENCODER, 1, [Define if HDF5 has szip encoder filter]) AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi dnl Check if SZIP linked with HDF5 has the same configuration as SZIP given by --with-szlib option has if test ${he5_cv_hdf5_szip_can_decode} = "no"; then if test "X$HAVE_SZLIB" = "Xyes"; then AC_MSG_ERROR([HDF5 was linked without SZIP, but --with-szlib was given]) fi else if test "X$HAVE_SZLIB" != "Xyes"; then AC_MSG_ERROR([HDF5 was linked with SZIP, but --with-szlib was not given]) fi if test ${he5_cv_szlib_functional} = "no"; then AC_MSG_ERROR([SZIP specified in --with-szlib is not functional]) fi if test ${he5_cv_hdf5_szip_can_encode} = "no"; then if test ${he5_cv_szlib_can_encode} = "yes"; then AC_MSG_ERROR([HDF5 was linked without SZIP encoder, but yours has SZIP encoder]) fi else if test ${he5_cv_szlib_can_encode} = "no"; then AC_MSG_ERROR([HDF5 was linked with SZIP encoder, but yours does not have SZIP encoder]) fi fi fi fi # Set CFLAGS to prevent AC_PROG_CC from setting it CFLAGS=$CFLAGS # Checks for programs. AC_PROG_CC AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET # Checks for libraries. # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([malloc.h stdlib.h string.h limits.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_OFF_T AC_TYPE_SIZE_T # Checks for library functions. AC_FUNC_MALLOC AC_FUNC_MEMCMP AC_FUNC_REALLOC AC_FUNC_ERROR_AT_LINE AC_CHECK_FUNCS([memchr memmove memset strchr strstr pow sqrt]) # Check whether testdrivers directory is present. The user might have # downloaded HDF-EOS5 but not the tests. AC_MSG_CHECKING([for testdrivers directory]) if test -d "${srcdir}/testdrivers"; then TESTDRIVERS_DIR="yes" AC_MSG_RESULT([present]) # If the testdrivers directory is present, see if it contains a file named # 'makefile'. If so, rename the file so it doesn't cause confusion later # on. if test -e "testdrivers/makefile"; then mv testdrivers/makefile testdrivers/makefile_orig fi else TESTDRIVERS_DIR="no" AC_MSG_RESULT([not found]) AC_MSG_WARN([testdrivers directory is not present. Tests will not be run]) fi AC_ARG_ENABLE([install-include], [AC_HELP_STRING([--enable-install-include], [HDF-EOS5 normally only installs libraries, assuming that users will use the headers in the include directories. Users who want the standard automake behavior of installing both libraries and header files should enable this option.])], [INSTALL_INCLUDE=$enableval]) AM_CONDITIONAL([TESTDRIVERS_CONDITIONAL], [test "X$TESTDRIVERS_DIR" = "Xyes"]) AM_CONDITIONAL([INSTALL_INCLUDE_CONDITIONAL], [test "X$INSTALL_INCLUDE" = "Xyes"]) AM_CONDITIONAL([F2CFORTRAN_CONDITIONAL], [test "X$F2CFORTRAN_MACRO" = "Xyes"]) AM_CONDITIONAL([F2CFORTRAN_90_CONDITIONAL], [test "X$F2CFORTRAN_90" = "Xyes"]) AM_CONDITIONAL([F2CFORTRAN_32PTR_CONDITIONAL], [test "X$F2CFORTRAN_32PTR" = "Xyes"]) AM_CONDITIONAL([SZIP_ENCODER_CONDITIONAL], [test "X$USE_SZIP_ENCODER" = "Xyes"]) AC_CONFIG_FILES([Makefile include/Makefile src/Makefile gctp/Makefile gctp/include/Makefile gctp/src/Makefile samples/Makefile]) if test "X$TESTDRIVERS_DIR" = "Xyes"; then AC_CONFIG_FILES([ testdrivers/Makefile testdrivers/grid/Makefile testdrivers/point/Makefile testdrivers/swath/Makefile testdrivers/threads/Makefile testdrivers/za/Makefile]) fi AC_OUTPUT hdf-eos5-5.1.14+dfsg.1/make/0000755000175000017500000000000012024715435016344 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/make/makerec.include0000755000175000017500000000351112024715435021323 0ustar amckinstryamckinstry######################################################################### # # Name # makerec/include # # Purpose # # Make include file for building subdirectories recursively. # This file will be included by Makefile at the src level # which recursively builds all CSCs. # # Inputs # # Set the following variables in the original makefile: # SUBDIRS - all the CSC subdirectories # TESTDIRS - all CSC test subdirectories # # Instructions # make command builds all subsirectories (CSCs) # make test command builds all test directories # make clean command cleans all CSC subdirs # make testclean cleans all test subdirs # ########################################################################## ########################################################################## # # THESE VALUES CAN BE USED FOR COMPARISON IN THE MAKEFILES # ########################################################################## ARCH_hp = hp ARCH_sgi = sgi ARCH_sun5 = sun5 ########################################################################## IDLMAKECMD = clearmake -C gnu -f Makefile makeidl CLEANTARGET = clean TESTTARGET = test ifdef IDLDIRS all:: $(IDLDIRS) $(SUBDIRS) else all:: $(SUBDIRS) endif $(SUBDIRS):: @echo "$B Building directory $@ ..." @(B="${B} "; export B; cd $@; $(MAKECMD)) $(IDLDIRS):: @echo "$B Building IDL directory $@ ..." @(B="${B} "; export B; cd $@; $(IDLMAKECMD)) install:: @for DIR in $(SUBDIRS); do \ (echo "$B Installing directory $$DIR ..."; B="${B} "; export B; cd $$DIR; $(MAKECMD) $@ ) \ done test:: @for DIR in $(SUBDIRS); do \ (echo "$B Building directory $$DIR ..."; B="${B} "; export B; cd $$DIR; $(MAKECMD) $@ ) \ done testclean:: @for DIR in $(SUBDIRS); do \ (echo "$B Cleaning directory $$DIR ..."; B="${B} "; export B; cd $$DIR; $(MAKECMD) $@) \ done include $(CMTOP)/COMMON/make/makerec.cm hdf-eos5-5.1.14+dfsg.1/make/makerec.template0000755000175000017500000000071212024715435021513 0ustar amckinstryamckinstry######################################################################### # # Name # makerec.template # # Purpose # # Template makefile for recursive make. # Delete all these comments after copying as Makefile. # ########################################################################## ## Define the variable below and you are done. ## SUBDIRS lists all subdirectories under this directory. SUBDIRS = include $(SUBSYSTOP)/make/makerec.include hdf-eos5-5.1.14+dfsg.1/make/make.options0000755000175000017500000003133112024715435020702 0ustar amckinstryamckinstry######################################################################### # # Name # make.options # # Purpose # # Sets make options for building DM code. All individual makefiles # include this file. # # Level # # CLS Subsystem # # Input # # Variables to be set in the makefile before including this file # # CSCI - indicates which CSCI is the makefile part of. # # .buildrc must be sourced since variables set by that script # are used in this file. # # Outputs # ######################################################################## ###################### SET BUILDTOP BASED ON CSCI ##################### # # Buildtop is the top level directory for the CSCI # The makefile must define CSCI before including this file # ####################################################################### BUILDTOP = $(SUBSYSTOP)/$(CSCI) ###################### SET VARIOUS DIRECTORIES ######################### # # THESE DIRECTORIES ARE BASED ON ARCHITECTURE # ######################################################################## ## LIBDIR is the directory where the DM libraries reside LIBDIR = $(BUILDTOP)/lib/$(ARCH) ## INCDIR is the directory where the DM include files reside INCDIR = $(BUILDTOP)/include ## BINDIR is the directory where the CSCI executables reside BINDIR = $(BUILDTOP)/bin/$(ARCH) ## SRCDIR is the directory where the CSCI source files reside SRCDIR = $(BUILDTOP)/src ## OBJDIR is the directory where the CSCI object files reside OBJDIR = $(BUILDTOP)/obj/$(ARCH) ## SUBSYSINCDIR is the location for CSCI common header files. SUBSYSINCDIR = $(SUBSYSTOP)/common/include ## ECSINCDIR is the location for ECS common header files (common software) ECSINCDIR = /ecs/include ## SUBSYSLIBDIR is the location for CSCI common library files. SUBSYSLIBDIR = $(SUBSYSTOP)/common/lib/$(ARCH) ## ECSLIBDIR is the location for ECS common library files (common software) ECSLIBDIR = /ecs/lib/$(ARCH) ###################### CONFIGURATION DEPENDENCY ######################## # # CR_DEPENDENCIES are the files to be included in the # Configuration Record. # ######################################################################## CR_DEPENDENCIES = \ $(SUBSYSTOP)/.buildrc \ $(SUBSYSTOP)/make/.bldhost.$(ARCH) \ $(SUBSYSTOP)/make/make.options \ ./Makefile ###################### COMMON FLAGS FOR C/C++ ########################## # # These flags are common for both C and C++ compilation (based on ARCH). # ######################################################################## ## PLATFORM_FLAG is used for writing platform specific ecs code (must be ## used with caution and justification). PLATFORM_FLAG_hp = -DHPUX9X PLATFORM_FLAG_sgi = -DIRIX5X PLATFORM_FLAG_sun5 = -DSUNOS5X PLATFORM_FLAG = $(PLATFORM_FLAG_$(ARCH)) ## DEBUG_FLAG specifies whether code is optimized or set for the debugger ## as well as defining debug flags needed for conditional compilation DEBUG_FLAG_hp = -g DEBUG_FLAG_sgi = -g DEBUG_FLAG_sun5 = -g DEBUG_FLAG = $(DEBUG_FLAG_$(ARCH)) ## ANSI_FLAG is to specify ANSI compliance ANSI_FLAG_hp = -Aa +a1 +eh ANSI_FLAG_sgi = ANSI_FLAG_sun5 = ANSI_FLAG = $(ANSI_FLAG_$(ARCH)) ## INCLUDE_PATH is the common include path. INCLUDE_PATH = -I$(SUBSYSINCDIR) -I$(INCDIR) -I$(ECSINCDIR) ## COMMON_FLAGS is a handy macro to include all the flags above COMMON_FLAGS = $(DEBUG_FLAG) $(ANSI_FLAG) $(PLATFORM_FLAG) \ $(INCLUDE_PATH) $(LOCAL_COMMON_FLAGS) X11_MOTIF_FLAGS_sun5 = -I/opt/SUNWmotif/include \ -I/usr/openwin/include -D_REENTRANT -DSYSV X11_MOTIF_FLAGS_sgi = -I/usr/include/X11 -I/usr/include/Xm X11_MOTIF_FLAGS_hp = -I/usr/include/X11R5 \ -I/usr/include/Motif1.2 \ -DHP9000 -D_POSIX_SOURCE \ -D_HPUX_SOURCE -D_REENTRANT \ -DMOTIF1_2 -I/usr/include/reentrant X11_MOTIF_FLAGS = $(X11_MOTIF_FLAGS_$(ARCH)) EPAK_FLAGS_sun5 = -I/tools/bx50/epak3/include -I/tools/bx50/epak3/include/X11 EPAK_FLAGS_sgi = -I/tools/bx50/epak3/include -I/tools/bx50/epak3/include/X11 EPAK_FLAGS_hp = -I/tools/bx50/include EPAK_FLAGS = $(EPAK_FLAGS_$(ARCH)) ROGUEWAVE_FLAGS_sun5 = ROGUEWAVE_FLAGS_hp = -I/tools/rogue -DRWDEBUG ROGUEWAVE_FLAGS_sgi = -I/tools/rogue -DRWDEBUG ROGUEWAVE_FLAGS = $(ROGUEWAVE_FLAGS_$(ARCH)) ECS_COMMON_DIR = /ecs/formal/COMMON ECS_COMMON_INC = -I$(ECS_COMMON_DIR)/include ## COMMON_FLAGS are the flags common for both C source and C++ source. LOCAL_COMMON_FLAGS = -I. $(X11_MOTIF_FLAGS) $(EPAK_FLAGS) $(ROGUEWAVE_FLAGS) \ $(ECS_COMMON_INC) -DLOGIN -DFUNCPROTO -DXTFUNCPROTO ###################### C COMPILER SETUP ################################## # # Following flags setup the common options for the C compiler based on ARCH # ########################################################################## ## CC is the name of the C compiler to use CC_hp = cc CC_sgi = cc CC_sun5 = cc CC = $(CC_$(ARCH)) ## CCOMMON_FLAG are other common C flags CCOMMON_FLAGS_hp = -c CCOMMON_FLAGS_sgi = -c CCOMMON_FLAGS_sun5 = -c CCOMMON_FLAGS = $(CCOMMON_FLAGS_$(ARCH)) ## CFLAGS is a combination of all the above. The applications can include ## additional CFLAGS in the makefile. CFLAGS = $(COMMON_FLAGS) $(CCOMMON_FLAGS) ###################### C++ COMPILER SETUP ################################ # # Following flags setup the common options for the C++ compiler based on ARCH # ########################################################################## ## CXX is the name of the C++ compiler to use CXX_hp = CC CXX_sgi = CC CXX_sun5 = CC CXX = $(CXX_$(ARCH)) ## CXXCOMMON_FLAG are other common C flags CXXCOMMON_FLAGS_hp = -c CXXCOMMON_FLAGS_sgi = -c -x CXXCOMMON_FLAGS_sun5 = -c CXXCOMMON_FLAGS = $(CXXCOMMON_FLAGS_$(ARCH)) ## CXXFLAGS is a combination of all the above. The applications can include ## additional CXXFLAGS in the makefile. CXXFLAGS = $(TEMPLATE_OPTION) $(COMMON_FLAGS) $(CXXCOMMON_FLAGS) ###################### Library setup ##################################### # # Building libraries etc. # ########################################################################## ## AR is the name of the archive utility AR_hp = ar AR_sgi = ar AR_sun5 = ar AR = $(AR_$(ARCH)) ## AR_FLAGS are the flags to use for archive command. AR_FLAGS_hp = -r AR_FLAGS_sgi = -r AR_FLAGS_sun5 = -r AR_FLAGS = $(AR_FLAGS_$(ARCH)) ###################### LINKER SETUP ###################################### # # Following flags setup the common options for the linker # ########################################################################## ## LD is the name of the linker to use LD_hp = $(CXX) LD_sgi = $(CXX) LD_sun5 = /opt/SUNWspro/bin/CC LD = $(LD_$(ARCH)) ## LIB_PATH is the path for ecs specific libraries LIB_PATH = -L$(SUBSYSLIBDIR) -L$(LIBDIR) -L$(ECSLIBDIR) ## Motif Libraries X11_MOTIF_LIB_sun5 = -L/usr/openwin/lib -L/opt/SUNWmotif/lib \ -lXm -lXt -lX11 -lnsl -lgen X11_MOTIF_LIB_sgi = -L/usr/lib -lXm -lXt -lX11 X11_MOTIF_LIB_hp = -L/usr/lib/Motif1.2 -L/usr/lib/X11R5 \ -lXm -lXt -lX11 -lC X11_MOTIF_LIB = $(X11_MOTIF_LIB_$(ARCH)) ## EPak Libraries EPAK_LIB_sun5 = /tools/bx50/epak3/lib/libEPak.a EPAK_LIB_sgi = /tools/bx50/epak3/lib/libEPak.a EPAK_LIB_hp = /tools/bx50/lib/libXiWidgets.a EPAK_LIB = $(EPAK_LIB_$(ARCH)) ## ROGUEWAVE Libraries ROGUEWAVE_LIB_sun5 = -lrwtool ROGUEWAVE_LIB_sgi = -L/tools/rogue/lib -lrwtoolg ROGUEWAVE_LIB_hp = -DRW_POSIX_THREADS -L/tools/rogue/lib -lrwtoolg_mteh ROGUEWAVE_LIB = $(ROGUEWAVE_LIB_$(ARCH)) ## LDCOMMON_FLAGS are other common flags used LDCOMMON_FLAGS_hp = LDCOMMON_FLAGS_sgi = -lc LDCOMMON_FLAGS_sun5 = -lm -lc LDCOMMON_FLAGS = $(LDCOMMON_FLAGS_$(ARCH)) ## LD_FLAGS are common linker flags LD_FLAGS = $(LIB_PATH) $(EPAK_LIB) $(X11_MOTIF_LIB) $(LDCOMMON_FLAGS) $(ROGUEWAVE_LIB) ###################### IDL SETUP ######################################### # # Idl files compilation rules etc (this is for DCE) # ########################################################################## ## command for idl compiler IDL_hp = idl IDL_sgi = idl IDL_sun5 = idl IDL = $(IDL_$(ARCH)) ## Flags for the idl compiler IDL_FLAGS_hp = -keep c_source IDL_FLAGS_sgi = IDL_FLAGS_sun5 = -keep c_source IDL_FLAGS = $(IDL_FLAGS_$(ARCH)) ###################### IDL++ SETUP ####################################### # # Idl files compilation rules etc (this is for OODCE) # ########################################################################## ## command for idl++ compiler (not supported on SGI) IDLXX_hp = idl++ IDLXX_sun5 = idl++ IDLXX = $(IDLXX_$(ARCH)) ## Flags for the idl compiler IDLXXFLAGS_hp = -keep source IDLXXFLAGS_sun5 = -keep source IDLXXFLAGS = $(IDLXXFLAGS_$(ARCH)) ###################### DCE SETUP ######################################### # # These are popular options for building DCE applications # ########################################################################## ## COMPILER Options DCECFLAGS_hp = -I. -D_POSIX_SOURCE -D_REENTRANT +z -q DCECFLAGS_sgi = -I. DCECFLAGS_sun5 = -I. DCECFLAGS = $(DCECFLAGS_$(ARCH)) ### Linker options. These to be included before object files DCELDFLAGS_hp = -Wl,-a,archive_shared DCELDFLAGS_sun5 = DCELDFLAGS_sgi = DCELDFLAGS = $(DCELDFLAGS_$(ARCH)) ## Libraries DCELIBS_hp = -lbb -ldce -lm -lc_r DCELIBS_sgi = DCELIBS_sun5 = -lnsl -ldce -lsocket -lthread -lm DCELIBS = $(DCELIBS_$(ARCH)) ###################### OODCE SETUP ####################################### # # These are popular options for building OODCE applications. # ########################################################################## ## C COMPILER Options OODCECFLAGS_hp = -I. -D_POSIX_SOURCE -D_REENTRANT +z -q OODCECFLAGS_sgi = OODCECFLAGS_sun5 = -I. -DREENTRANT OODCECFLAGS = $(OODCECFLAGS_$(ARCH)) ## C++ COMPILER Options OODCECXXFLAGS_hp = -I. -I/usr/include/reentrant +eh \ -Dunix -DNIDL_PROTOTYPES -D__STDC__ \ -D_HPUX_SOURCE -D_CMA_PROTO_ -D_REENTRANT ODCECXXFLAGS_sgi = OODCECXXFLAGS_sun5 = -I. -I/opt/SUNWspro/SC3.0.1/include/CC -mt \ -Dunix -DNIDL_PROTOTYPES -D_CMA_PROTO_ -DSYSV OODCECXXFLAGS = $(OODCECXXFLAGS_$(ARCH)) ### Linker options. These to be included before object files OODCELDFLAGS_hp = +eh -g -Wl,-aarchive OODCELDFLAGS_sgi = OODCELDFLAGS_sun5 = OODCELDFLAGS = $(OODCELDFLAGS_$(ARCH)) ## Libraries OODCELIBS_hp = -loodce -lbb -ldce -lm -lc_r OODCELIBS_sgi = OODCELIBS_sun5 = -loodce -ldce -lthread -lnsl -lsocket -lm -lc OODCELIBS = $(OODCELIBS_$(ARCH)) ###################### CLEANUP SUPPORT ################################### # # DEFINE COMMANDS TO DELETE FILES ETC. USED BY THE CLEAN TARGET. # ########################################################################## DELFILES = rm -f ###################### Suffix setup and default rules #################### # # Add ecs specific suffixes and common rules for building object files. # ########################################################################## ## Define custom ecs suffixes (.cxx is a c++ source file) .SUFFIXES: .cxx .C .cpp .idl $(SUFFIXES) ## Define how to convert c++ file to object. Note that all object ## files are copied to the OBJDIR. ## Individual makefiles may define CSTM_CXXFLAGS to include ## custom C++ flags in compilation. ifdef SILENTMODE $(OBJDIR)/%.o: %.cxx @echo Compiling $< ... @rm -f $@ @$(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ $(OBJDIR)/%.o: %.cpp @echo Compiling $< ... @rm -f $@ @$(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ $(OBJDIR)/%.o: %.C @echo Compiling $< ... @rm -f $@ @$(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ %.o: %.C @echo Compiling $< ... @rm -f $@ @$(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ %.o: %.cpp @echo Compiling $< ... @rm -f $@ @$(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ %.o: %.cxx @echo Compiling $< ... @rm -f $@ @$(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ else $(OBJDIR)/%.o: %.cxx rm -f $@ $(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ $(OBJDIR)/%.o: %.cpp rm -f $@ $(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ $(OBJDIR)/%.o: %.C rm -f $@ $(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ %.o: %.C rm -f $@ $(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ %.o: %.cxx rm -f $@ $(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ %.o: %.cpp rm -f $@ $(CXX) $(CXXFLAGS) $(CSTM_CXXFLAGS) $< -o $@ endif ## Define how to convert c file to object. Note that all object ## files are copied to the OBJDIR. ## Individual makefiles may define CSTM_CFLAGS to include ## custom C flags in compilation. ifdef SILENTMODE $(OBJDIR)/%.o: %.c @echo Compiling $< ... @rm -f $@ @$(CC) $(CFLAGS) $(CSTM_CFLAGS) $< -o $@ %.o: %.c @echo Compiling $< ... @rm -f $@ @$(CC) $(CFLAGS) $(CSTM_CFLAGS) $< -o $@ else $(OBJDIR)/%.o: %.c rm -f $@ $(CC) $(CFLAGS) $(CSTM_CFLAGS) $< -o $@ %.o: %.c rm -f $@ $(CC) $(CFLAGS) $(CSTM_CFLAGS) $< -o $@ endif include $(CMTOP)/COMMON/make/makecm.options ## DO NOT ADD ANYTHING AFTER THIS LINE ## hdf-eos5-5.1.14+dfsg.1/make/Makefile.instr0000755000175000017500000001002712024715435021145 0ustar amckinstryamckinstry######################################################################### # # Name # Makefile.template # # Purpose # # Template makefile for the CSS subsystem. Copy this file to your # directory and follow instructions to create your custom # makefile. # Once you are finished creating the custom makefile. Delete # These instructions. # ########################################################################## ##############Define CSCI################################################ ## CSCI must be defined before including the options file. ## CSCI = CF CSCI = ##############Include options file####################################### include $(SUBSYSTOP)/make/make.options ##############CUSTOM DEFINITIONS ######################################## ## Include here any custom definitions for the directory. Note that you ## may want to use some of these definitions in the later portion of the ## makefile to define source, header, binary files etc. ## ##############END OF CUSTOM DEFINITIONS################################## ##############Define CXXSRCFILES######################################### ## Define all .cxx files in your directory here. Example below: ## CXXSRCFILES = myFile.cxx ## CXXSRCFILES = ##############Define CSRCFILES########################################### ## Define all .c files in your directory here. Example ## CSRCFILES = myFile.c ## CSRCFILES = ##############Define HFILES############################################## ## Define all .h files for your directory. Note that these files ## go in the include directory for the CSCI. Example ## HFILES = $(INCDIR)/myFile.h ## Note that INCDIR defines the CSCI include directory ## HFILES = ##############Define OBJFILES############################################ ## Defines object files created in this directory ## OBJFILES = $(OBJDIR)/myFile.o ## Note that OBJDIR defines the location for .o files for the CSCI. ## OBJFILES = ##############Define LIBFILES############################################ ## Defines the libraries you build in your directory. Example: ## LIBFILES = $(LIBDIR)/libmylib.a $(LIBDIR)/libmylib.a ## Note that LIBDIR is the CSCI lib directory ## LIBFILES = ##############Define BINFILES############################################ ## Defines any executables you build in this directory. ## BINFILES = $(BINDIR)/myServer ## BINFILES = ##############Define build targets####################################### ## all must be the first target in your makefile. Which would build ## the directory. Follow the all definition by the rest of the custom ## targets and dependency list. ## all: ##############End of build target definitions############################ ##############Define variables for targets in the standard file ######### ##############CLEANFILES############################################### ## Defines files to cleanup (delete) for this directory. Please ## include names of ONLY the files that you create (derived files). ## All other files like core etc will be cleanup for you. ## Include additional files in the following if needed. CLEANFILES = $(OBJFILES) $(LIBFILES) $(BINFILES) ##############INSTALLFILES############################################# ## Defines files to be released for the world ## ## INSHFILES - header files to be released. INSHFILES = $(HFILES) ## Libraries to be released INSLIBFILES = $(LIBFILES) ## Binaries to be released INSBINFILES = $(BINFILES) ##############LABELFILES############################################### ## DCM needs this target to label all the executables and libraries that ## are created in the directory. Default definition is provided. ## Modify if needed. LABELFILES = $(LIBFILES) $(BINFILES) ##############TESTSUBDIRS############################################## ## Defines all subdirectories that have test driver or unit test code. ## Do not include the complete path but just the name of the directory. ## include all test subdirectories. TESTSUBDIRS = test ##############Include the additional targets file######################## include $(SUBSYSTOP)/make/make.targets hdf-eos5-5.1.14+dfsg.1/make/CLSInstall.sh0000755000175000017500000000077412024715435020663 0ustar amckinstryamckinstry#!/bin/csh ################################################################################ # # CLS applications # ################################################################################ # create the directory structure echo "creating $SUBSYSTOP directory structure ..." mkdir -p $SUBSYSTOP/install/data # copy the data directories into the install data directory echo "copying data into $SUBSYSTOP/install/data directory ..." cp -r $SUBSYSTOP/DESKT/data/* $SUBSYSTOP/install/data hdf-eos5-5.1.14+dfsg.1/make/Makefile.template0000755000175000017500000000260512024715435021624 0ustar amckinstryamckinstry## Template Makefile. See instructions in Makefile.instr ## CSCI = hdfeos include $(SUBSYSTOP)/make/make.options ##############CUSTOM DEFINITIONS ######################################## ##############END OF CUSTOM DEFINITIONS################################## CXXSRCFILES = CSRCFILES = EHapi.c SWapi.c GDapi.c PTapi.c TSapi.c ZAapi.c HFILES = HE5_HdfEosDef.h cfortHdf.h OBJFILES = EHapi.o SWapi.o GDapi.o PTapi.o TSapi.o ZAapi.o LIBFILES = $(LIBDIR)/libhe5_hdfeos.a BINFILES = all: libhe5_hdfeos.a libhe5_hdfeos.a: EHapi.o SWapi.o GDapi.o PTapi.o TSapi.o ZAapi.o ${AR} $@ $? EHapi.o : EHapi.c ${CC} ${INCLUDE} -c EHapi.c -o EHapi.o SWapi.o : SWapi.c ${CC} ${INCLUDE} -c SWapi.c -o SWapi.o rm SWapi.c GDapi.o : GDapi.c ${CC} ${INCLUDE} -c GDapi.c -o GDapi.o rm GDapi.c PTapi.o : PTapi.c ${CC} ${INCLUDE} -c PTapi.c -o PTapi.o rm PTapi.c TSapi.o : TSapi.c ${CC} ${INCLUDE} -c TSapi.c -o TSapi.o rm TSapi.c ZAapi.o : ZAapi.c ${CC} ${INCLUDE} -c ZAapi.c -o ZAapi.o rm ZAapi.c ##############End of build target definitions############################ CLEANFILES = $(OBJFILES) $(LIBFILES) $(BINFILES) INSHFILES = $(HFILES) INSLIBFILES = $(LIBFILES) INSBINFILES = LABELFILES = $(LIBFILES) TESTSUBDIRS = test include $(SUBSYSTOP)/make/make.targets hdf-eos5-5.1.14+dfsg.1/make/makeidl.include0000755000175000017500000000446312024715435021331 0ustar amckinstryamckinstry# Must define the following variables # MYPARENT - where the idl files are located # NAME1 - name of the first idl file (minus the .idl extension) # NAME2 - # NAME3 - # CSTM_IDLFLAGS - additionla idl flags if any # CSTM_CFLAGS - custom c flags if any # MAKECMD - environment variable must be set (done by buildrc) # An acf file (even if dummy must be defined) IDLMAKECMD = clearmake -C gnu -f ../Makefile idltarget IDLNAME = NAME.idl IDLNAMEH = NAME.h IDLNAMEC = NAME_cstub.c \ NAME_sstub.c IDLNAMEO = $(IDLNAMEC:.c=.o) ACFNAME = NAME.acf ifdef NAME1 IDLFILE1 := $(subst NAME, $(NAME1), $(IDLNAME)) IDLGENH1 := $(subst NAME, $(NAME1), $(IDLNAMEH)) IDLGENC1 := $(subst NAME, $(NAME1), $(IDLNAMEC)) IDLGENO1 := $(subst NAME, $(NAME1), $(IDLNAMEO)) ACF1 := $(subst NAME, $(NAME1), $(ACFNAME)) else IDLFILE1 = IDLGENH1 = IDLGENC1 = IDLGENO1 = ACF1 = endif ifdef NAME2 IDLFILE2 := $(subst NAME, $(NAME2), $(IDLNAME)) IDLGENH2 := $(subst NAME, $(NAME2), $(IDLNAMEH)) IDLGENC2 := $(subst NAME, $(NAME2), $(IDLNAMEC)) IDLGENO2 := $(subst NAME, $(NAME2), $(IDLNAMEO)) ACF2 := $(subst NAME, $(NAME2), $(ACFNAME)) else IDLFILE2 = IDLGENH2 = IDLGENC2 = IDLGENO2 = ACF2 = endif ifdef NAME3 IDLFILE3 := $(subst NAME, $(NAME3), $(IDLNAME)) IDLGENH3 := $(subst NAME, $(NAME3), $(IDLNAMEH)) IDLGENC3 := $(subst NAME, $(NAME3), $(IDLNAMEC)) IDLGENO3 := $(subst NAME, $(NAME3), $(IDLNAMEO)) ACF3 := $(subst NAME, $(NAME3), $(ACFNAME)) else IDLFILE3 = IDLGENH3 = IDLGENC3 = IDLGENO3 = ACF3 = endif IDLFILES := $(IDLFILE1) $(IDLFILE2) $(IDLFILE3) IDLHFILES := $(IDLGENH1) $(IDLGENH2) $(IDLGENH3) IDLCFILES := $(IDLGENC1) $(IDLGENC2) $(IDLGENC3) IDLOBJFILES := $(IDLGENO1) $(IDLGENO2) $(IDLGENO3) ACFFILES := $(ACF1) $(ACF2) $(ACF3) IDLHFILES := $(IDLGENH1) $(IDLGENH2)$(IDLGENH3) IDLGENFILES := $(IDLFILES) \ $(ACFFILES) \ $(IDLHFILES) \ $(IDLCFILES) \ $(IDLOBJFILES) IDLDGENFILES := $(patsubst %, $(ARCH)/%, $(IDLGENFILES)) ifdef MYPARENT %.idl: $(MYPARENT)/%.idl rm -f $@; \ cp $(MYPARENT)/$@ $@ %.acf: $(MYPARENT)/%.acf rm -f $@; \ cp $(MYPARENT)/$@ $@ %.h: %.idl $(IDL) ${IDL_FLAGS} $(CSTM_IDLFLAGS) $< endif makeidl: (cd $(ARCH); $(IDLMAKECMD)) idltarget: $(IDLHFILES) hdf-eos5-5.1.14+dfsg.1/make/make.targets0000755000175000017500000000444312024715435020664 0ustar amckinstryamckinstry######################################################################### # # Name # make.targets # # Purpose # # Common targets for build. Must be included in the Makefile at # the end. See the template makefile for instructions. # ########################################################################## ###############install#################################################### ## Installs the files to release directory. CM use only. LIBRARYFILES := $(strip $(INSLIBFILES) ) BINARYFILES := $(strip $(INSBINFILES) ) HEADERFILES := $(strip $(INSHFILES) ) DOCUMENTATIONFILES := $(strip $(INSDOCFILES) ) EMPTY := $(strip, " ") install:: installbinaryfiles \ installlibraryfiles installbinaryfiles:: @echo "$(B) Checking for binary files to Install ..." @if [ "$(BINARYFILES)" = "$(EMPTY)" ] ; then \ echo "$(B) No binary files to Install ..." ; \ else \ if [ ! -d $(SUBSYSTOP)/install/bin ] ; then \ mkdir -p $(SUBSYSTOP)/install/bin ; \ fi ; \ echo "$(B) Installing $(INSBINFILES) ..." ; \ cp $(INSBINFILES) $(SUBSYSTOP)/install/bin ; \ chmod ug+w $(SUBSYSTOP)/install/bin/* ; \ fi installlibraryfiles:: @echo "$(B) Checking for library files to Install ..." @if [ "$(LIBRARYFILES)" = "$(EMPTY)" ] ; then \ echo "$(B) No library files to Install ..." ; \ else \ echo "$(B) Installing $(INSLIBFILES) ..." ; \ cd $(SUBSYSTOP)/lib/$(ARCH) ; \ $(CMTOP)/COMMON/make/instvobele.sh $(INSLIBFILES) ; \ fi ###############installdir################################################# ## install for te directory (access to others ??) installdir: @echo Installdir target executed ! Nothing done !! ###############test####################################################### ## builds all the test subdirectories recursively. Uses variable ## TESTSUBDIRS specified in the makefile. test:: @for DIR in $(TESTSUBDIRS); do \ (echo "$B Building directory $$DIR ..." ; B="${B} "; export B; cd $$DIR; $(MAKECMD) ) \ done ###############testclean################################################## ## cleans all the test subdirectories recursively. Uses variable ## TESTSUBDIRS specified in the makefile. testclean:: @for DIR in $(TESTSUBDIRS); do \ (echo "$B Cleaning $$DIR ..."; B="${B} "; export B; cd $$DIR; $(MAKECMD) clean ) \ done include $(CMTOP)/COMMON/make/makecm.targets hdf-eos5-5.1.14+dfsg.1/make/makeidlxx.include0000755000175000017500000000501012024715435021676 0ustar amckinstryamckinstry# Must define the following variables # MYPARENT - where the idl files are located # NAME1 - name of the first idl file (minus the .idl extension) # NAME2 - # NAME3 - # CSTM_IDLXXFLAGS - additionla idl flags if any # CSTM_CFLAGS - custom c flags if any # MAKECMD - environment variable must be set (done by buildrc) # An acf file (even if dummy must be defined) IDLXXMAKECMD = clearmake -C gnu -f ../Makefile idltarget IDLXXNAME = NAME.idl IDLXXNAMEH = NAME.h \ NAMEC.H \ NAMES.H IDLXXNAMEC = NAME_cstub.c \ NAME_sstub.c \ NAMEE.C \ NAMEC.C IDLXXNAMEO = $(IDLXXNAMEC:.c=.o) ACFNAME = NAME.acf ifdef NAME1 IDLXXFILE1 := $(subst NAME, $(NAME1), $(IDLXXNAME)) IDLXXGENH1 := $(subst NAME, $(NAME1), $(IDLXXNAMEH)) IDLXXGENC1 := $(subst NAME, $(NAME1), $(IDLXXNAMEC)) IDLXXGENO1 := $(subst NAME, $(NAME1), $(IDLXXNAMEO)) ACF1 := $(subst NAME, $(NAME1), $(ACFNAME)) else IDLXXFILE1 = IDLXXGENH1 = IDLXXGENC1 = IDLXXGENO1 = ACF1 = endif ifdef NAME2 IDLXXFILE2 := $(subst NAME, $(NAME2), $(IDLXXNAME)) IDLXXGENH2 := $(subst NAME, $(NAME2), $(IDLXXNAMEH)) IDLXXGENC2 := $(subst NAME, $(NAME2), $(IDLXXNAMEC)) IDLXXGENO2 := $(subst NAME, $(NAME2), $(IDLXXNAMEO)) ACF2 := $(subst NAME, $(NAME2), $(ACFNAME)) else IDLXXFILE2 = IDLXXGENH2 = IDLXXGENC2 = IDLXXGENO2 = ACF2 = endif ifdef NAME3 IDLXXFILE3 := $(subst NAME, $(NAME3), $(IDLXXNAME)) IDLXXGENH3 := $(subst NAME, $(NAME3), $(IDLXXNAMEH)) IDLXXGENC3 := $(subst NAME, $(NAME3), $(IDLXXNAMEC)) IDLXXGENO3 := $(subst NAME, $(NAME3), $(IDLXXNAMEO)) ACF3 := $(subst NAME, $(NAME3), $(ACFNAME)) else IDLXXFILE3 = IDLXXGENH3 = IDLXXGENC3 = IDLXXGENO3 = ACF3 = endif IDLXXFILES := $(IDLXXFILE1) $(IDLXXFILE2) $(IDLXXFILE3) IDLXXHFILES := $(IDLXXGENH1) $(IDLXXGENH2) $(IDLXXGENH3) IDLXXCFILES := $(IDLXXGENC1) $(IDLXXGENC2) $(IDLXXGENC3) IDLXXOBJFILES := $(IDLXXGENO1) $(IDLXXGENO2) $(IDLXXGENO3) ACFFILES := $(ACF1) $(ACF2) $(ACF3) IDLXXHFILES := $(IDLXXGENH1) $(IDLXXGENH2)$(IDLXXGENH3) IDLXXGENFILES := $(IDLXXFILES) \ $(ACFFILES) \ $(IDLXXHFILES) \ $(IDLXXCFILES) \ $(IDLXXOBJFILES) IDLXXDGENFILES := $(patsubst %, $(ARCH)/%, $(IDLXXGENFILES)) ifdef MYPARENT %.idl: $(MYPARENT)/%.idl rm -f $@; \ cp $(MYPARENT)/$@ $@ %.acf: $(MYPARENT)/%.acf rm -f $@; \ cp $(MYPARENT)/$@ $@ %.h: %.idl $(IDLXX) ${IDLXXFLAGS} $(CSTM_IDLXXFLAGS) $< endif makeidl: (cd $(ARCH); $(IDLXXMAKECMD)) idltarget: $(IDLXXHFILES) hdf-eos5-5.1.14+dfsg.1/configure0000755000175000017500000313050112024715435017341 0ustar amckinstryamckinstry#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for hdf-eos5 1.8. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null && echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='hdf-eos5' PACKAGE_TARNAME='hdf-eos5' PACKAGE_VERSION='1.8' PACKAGE_STRING='hdf-eos5 1.8' PACKAGE_BUGREPORT='null@bogus.email' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_default_prefix=`pwd`/hdfeos5 ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE GREP EGREP LN_S ECHO AR RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL FC FCFLAGS ac_ct_FC THREADSAFE_CONDITIONAL_TRUE THREADSAFE_CONDITIONAL_FALSE LIBOBJS TESTDRIVERS_CONDITIONAL_TRUE TESTDRIVERS_CONDITIONAL_FALSE INSTALL_INCLUDE_CONDITIONAL_TRUE INSTALL_INCLUDE_CONDITIONAL_FALSE F2CFORTRAN_CONDITIONAL_TRUE F2CFORTRAN_CONDITIONAL_FALSE F2CFORTRAN_90_CONDITIONAL_TRUE F2CFORTRAN_90_CONDITIONAL_FALSE F2CFORTRAN_32PTR_CONDITIONAL_TRUE F2CFORTRAN_32PTR_CONDITIONAL_FALSE SZIP_ENCODER_CONDITIONAL_TRUE SZIP_ENCODER_CONDITIONAL_FALSE LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP F77 FFLAGS FC FCFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures hdf-eos5 1.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/hdf-eos5] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of hdf-eos5 1.8:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=no] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-libtool-lock avoid locking (might break parallel builds) --enable-install-include HDF-EOS5 normally only installs libraries, assuming that users will use the headers in the include directories. Users who want the standard automake behavior of installing both libraries and header files should enable this option. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --with-zlib=DIR Specify path to external zlib library. Linker must be able to find zlib if HDF5 was built with zlib. [default=yes] --with-szlib=DIR Use szlib library for external szlib I/O filter. Linker must be able to find szlib if HDF5 was build with szip. [default=no] --with-hdf5=DIR Specify path to HDF5 library to use while building [default=yes] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags FC Fortran compiler command FCFLAGS Fortran compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF hdf-eos5 configure 1.8 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by hdf-eos5 $as_me 1.8, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers include/HE5_config.h" ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&5 echo "$as_me: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='hdf-eos5' VERSION='1.8' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' { echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # Disable shared libraries (for now) # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=no fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && break cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done SED=$lt_cv_path_SED fi { echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6; } { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi { echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' { echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/${ac_tool_prefix}nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac esac fi done IFS="$lt_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi { echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6; } NM="$lt_cv_path_NM" { echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6; } fi { echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi4*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case "$host_cpu" in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) case $host_cpu in alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*) lt_cv_deplibs_check_method=pass_all ;; *) # glibc up to 2.1.1 does not perform some relocations on ARM # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; esac lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' else lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 4343 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case "`/usr/bin/file conftest.o`" in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to null@bogus.email ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then { echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_F77" && break done if test "x$ac_ct_F77" = x; then F77="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= { echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments { echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } else { echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6; } fi # Check for command to grab the raw symbol name followed by C symbol from nm. { echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris* | sysv5*) symcode='[BDRT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6; } else { echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6; } fi { echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic was given. if test "${with_pic+set}" = set; then withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # # Check for any special shared library compilation flags. # lt_prog_cc_shlib= if test "$GCC" = no; then case $host_os in sco3.2v5*) lt_prog_cc_shlib='-belf' ;; esac fi if test -n "$lt_prog_cc_shlib"; then { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5 echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;} if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then : else { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} lt_cv_prog_cc_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # { echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_prog_compiler_static" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:7019: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:7023: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $CC in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; sco3.2v5*) lt_prog_compiler_pic='-Kpic' lt_prog_compiler_static='-dn' ;; solaris*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:7252: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:7256: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:7312: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:7316: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_cmds="$tmp_archive_cmds" supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' else archive_expsym_cmds="$tmp_archive_cmds" fi else ld_shlibs=no fi ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.012|aix4.012.*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) always_export_symbols=yes # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec=' ' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds it's shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi4*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) if test "$GXX" = yes ; then archive_cmds_need_lc=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='-all_load $convenience' link_all_deplibs=yes else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10* | hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*|ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case "$host_cpu" in hppa*64*|ia64*) archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' ;; *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac fi if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=no hardcode_shlibpath_var=no ;; ia64*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=no hardcode_shlibpath_var=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; *) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='${wl}-Bexport' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4.2uw2*) archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=no hardcode_shlibpath_var=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) no_undefined_flag='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv5*) no_undefined_flag=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec= hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.01* | freebsdelf3.01*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 8642 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=yes library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var " || \ test "X$hardcode_automatic"="Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6; } if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= { echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi ;; *) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) { echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_shl_load || defined __stub___shl_load choke me #endif int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else { echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_dlopen || defined __stub___dlopen choke me #endif int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which librarie types wil actually be built { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; darwin* | rhapsody*) if test "$GCC" = yes; then archive_cmds_need_lc=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag='-undefined dynamic_lookup' ;; esac fi ;; esac output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='-all_load $convenience' link_all_deplibs=yes else ld_shlibs=no fi ;; esac { echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6; } # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags was given. if test "${with_tags+set}" = set; then withval=$with_tags; tagnames="$withval" fi if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && test "X$CXX" != "Xno"; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cc # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.012|aix4.012.*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) always_export_symbols_CXX=yes # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX=' ' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds it's shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) if test "$GXX" = yes; then archive_cmds_need_lc_CXX=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag_CXX='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='-all_load $convenience' link_all_deplibs_CXX=yes else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd12*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld_CXX='+b $libdir' hardcode_libdir_separator_CXX=: ;; ia64*) hardcode_libdir_flag_spec_CXX='-L$libdir' ;; *) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case "$host_cpu" in hppa*64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC) case "$host_cpu" in hppa*64*|ia64*) archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case "$host_cpu" in ia64*|hppa*64*) archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; irix5* | irix6*) case $cc_basename in CC) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc) # Intel C++ with_gnu_ld=yes archive_cmds_need_lc_CXX=no archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; cxx) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; osf3*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sco*) archive_cmds_need_lc_CXX=no case $cc_basename in CC) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.0-5 | solaris2.0-5.*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) archive_cmds_need_lc_CXX=no ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; cxx) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; sco*) case $cc_basename in CC) lt_prog_compiler_pic_CXX='-fPIC' ;; *) ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; unixware*) ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11753: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:11757: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11813: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:11817: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.01* | freebsdelf3.01*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 12324 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=yes library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var CXX" || \ test "X$hardcode_automatic_CXX"="Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= { echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi ;; *) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) { echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_shl_load || defined __stub___shl_load choke me #endif int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else { echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_dlopen || defined __stub___dlopen choke me #endif int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) test "$enable_shared" = yes && enable_static=no ;; esac { echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6; } test "$ld_shlibs_F77" = no && can_build_shared=no GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $CC in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; sco3.2v5*) lt_prog_compiler_pic_F77='-Kpic' lt_prog_compiler_static_F77='-dn' ;; solaris*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14087: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14091: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14147: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14151: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_cmds_F77="$tmp_archive_cmds" supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' else archive_expsym_cmds_F77="$tmp_archive_cmds" fi else ld_shlibs_F77=no fi ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.012|aix4.012.*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) always_export_symbols_F77=yes # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77=' ' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds it's shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi4*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) if test "$GXX" = yes ; then archive_cmds_need_lc_F77=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag_F77='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='-all_load $convenience' link_all_deplibs_F77=yes else ld_shlibs_F77=no fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10* | hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*|ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case "$host_cpu" in hppa*64*|ia64*) archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' ;; *) archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac fi if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; ia64*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; *) hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; sco3.2v5*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4.2uw2*) archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) no_undefined_flag_F77='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv5*) no_undefined_flag_F77=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec_F77= hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6; } test "$ld_shlibs_F77" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.01* | freebsdelf3.01*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 15457 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=yes library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var F77" || \ test "X$hardcode_automatic_F77"="Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6; } if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= { echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi ;; *) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ;; esac fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16197: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16201: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $CC in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; sco3.2v5*) lt_prog_compiler_pic_GCJ='-Kpic' lt_prog_compiler_static_GCJ='-dn' ;; solaris*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16430: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16434: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16490: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:16494: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_cmds_GCJ="$tmp_archive_cmds" supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' else archive_expsym_cmds_GCJ="$tmp_archive_cmds" fi else ld_shlibs_GCJ=no fi ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.012|aix4.012.*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) always_export_symbols_GCJ=yes # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ=' ' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds it's shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi4*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) if test "$GXX" = yes ; then archive_cmds_need_lc_GCJ=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag_GCJ='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='-all_load $convenience' link_all_deplibs_GCJ=yes else ld_shlibs_GCJ=no fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10* | hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*|ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case "$host_cpu" in hppa*64*|ia64*) archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' ;; *) archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac fi if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; ia64*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; *) hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; sco3.2v5*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4.2uw2*) archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) no_undefined_flag_GCJ='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv5*) no_undefined_flag_GCJ=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec_GCJ= hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } test "$ld_shlibs_GCJ" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.01* | freebsdelf3.01*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 17820 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=yes library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var GCJ" || \ test "X$hardcode_automatic_GCJ"="Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6; } if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= { echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi ;; *) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) { echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_shl_load || defined __stub___shl_load choke me #endif int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else { echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_dlopen || defined __stub___dlopen choke me #endif int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # Check for the math library that HDF5 needs { echo "$as_me:$LINENO: checking for ceil in -lm" >&5 echo $ECHO_N "checking for ceil in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_ceil+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ceil (); int main () { return ceil (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_ceil=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_ceil=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_ceil" >&5 echo "${ECHO_T}$ac_cv_lib_m_ceil" >&6; } if test $ac_cv_lib_m_ceil = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF LIBS="-lm $LIBS" fi # Check whether zlib is enabled. # HDF-EOS5 doesn't use zlib, but HDF5 might. If HDF5 does, it needs # to be given to the linker or there will be undefined symbols in HDF5. # Using h5cc avoids the need to specify zlib at configure time. # Check whether --with-zlib was given. if test "${with_zlib+set}" = set; then withval=$with_zlib; else withval=yes fi case $withval in yes) HAVE_ZLIB="yes" for ac_header in zlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to null@bogus.email ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for compress2 in -lz" >&5 echo $ECHO_N "checking for compress2 in -lz... $ECHO_C" >&6; } if test "${ac_cv_lib_z_compress2+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char compress2 (); int main () { return compress2 (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_z_compress2=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_compress2=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_z_compress2" >&5 echo "${ECHO_T}$ac_cv_lib_z_compress2" >&6; } if test $ac_cv_lib_z_compress2 = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBZ 1 _ACEOF LIBS="-lz $LIBS" else unset HAVE_ZLIB fi if test -z "$HAVE_ZLIB"; then { { echo "$as_me:$LINENO: error: couldn't find zlib library" >&5 echo "$as_me: error: couldn't find zlib library" >&2;} { (exit 1); exit 1; }; } fi ;; no) HAVE_ZLIB="no" { echo "$as_me:$LINENO: checking for GNU zlib" >&5 echo $ECHO_N "checking for GNU zlib... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: suppressed" >&5 echo "${ECHO_T}suppressed" >&6; } ;; *) HAVE_ZLIB="yes" case "$withval" in *,*) zlib_inc="`echo $withval |cut -f1 -d,`" zlib_lib="`echo $withval |cut -f2 -d, -s`" ;; *) if test -n "$withval"; then zlib_inc="$withval/include" zlib_lib="$withval/lib" fi ;; esac if test "X$zlib_inc" = "X/usr/include"; then zlib_inc="" fi if test "X$zlib_lib" = "X/usr/lib"; then zlib_lib="" fi saved_CPPFLAGS="$CPPFLAGS" saved_LDFLAGS="$LDFLAGS" if test -n "$zlib_inc"; then CPPFLAGS="$CPPFLAGS -I$zlib_inc" fi for ac_header in zlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to null@bogus.email ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else CPPFLAGS="$saved_CPPFLAGS" fi done if test -n "$zlib_lib"; then LDFLAGS="$LDFLAGS -L$zlib_lib" fi { echo "$as_me:$LINENO: checking for compress2 in -lz" >&5 echo $ECHO_N "checking for compress2 in -lz... $ECHO_C" >&6; } if test "${ac_cv_lib_z_compress2+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char compress2 (); int main () { return compress2 (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_z_compress2=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_compress2=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_z_compress2" >&5 echo "${ECHO_T}$ac_cv_lib_z_compress2" >&6; } if test $ac_cv_lib_z_compress2 = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBZ 1 _ACEOF LIBS="-lz $LIBS" else LDFLAGS="$saved_LDFLAGS"; unset HAVE_ZLIB fi if test -z "$HAVE_ZLIB"; then { { echo "$as_me:$LINENO: error: couldn't find zlib library" >&5 echo "$as_me: error: couldn't find zlib library" >&2;} { (exit 1); exit 1; }; } fi ;; esac { echo "$as_me:$LINENO: checking for fc2Fortran macro" >&5 echo $ECHO_N "checking for fc2Fortran macro... $ECHO_C" >&6; } if test "${he5_cv_f2cFortran_defined+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main(void) { #ifdef f2cFortran return 0; #else return 1; #endif } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then he5_cv_f2cFortran_defined=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) he5_cv_f2cFortran_defined=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi if test ${he5_cv_f2cFortran_defined} = "yes"; then F2CFORTRAN_MACRO="yes" { echo "$as_me:$LINENO: result: defined" >&5 echo "${ECHO_T}defined" >&6; } else F2CFORTRAN_MACRO="no" { echo "$as_me:$LINENO: result: not defined" >&5 echo "${ECHO_T}not defined" >&6; } fi if test ${he5_cv_f2cFortran_defined} = "yes"; then { echo "$as_me:$LINENO: checking for int*" >&5 echo $ECHO_N "checking for int*... $ECHO_C" >&6; } if test "${ac_cv_type_intp+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int* ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_intp=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_intp=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_intp" >&5 echo "${ECHO_T}$ac_cv_type_intp" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of int*" >&5 echo $ECHO_N "checking size of int*... $ECHO_C" >&6; } if test "${ac_cv_sizeof_intp+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int* ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int* ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int* ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int* ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int* ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_intp=$ac_lo;; '') if test "$ac_cv_type_intp" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (int*) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int*) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_intp=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int* ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_intp=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_intp" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (int*) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int*) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_intp=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_intp" >&5 echo "${ECHO_T}$ac_cv_sizeof_intp" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_INTP $ac_cv_sizeof_intp _ACEOF if test "${he5_cv_32ptr+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main(void) { #ifdef SIZEOF_INTP return SIZEOF_INTP == 4 ? 0 : 1; #else #error SIZEOF_INTP is not defined #endif } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then he5_cv_32ptr=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) he5_cv_32ptr=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi if test ${he5_cv_32ptr} = "yes"; then { echo "$as_me:$LINENO: possibly 32 bit system" >&5 echo "$as_me: possibly 32 bit system" >&6;} F2CFORTRAN_32PTR="yes" else { echo "$as_me:$LINENO: possibly 64 bit system" >&5 echo "$as_me: possibly 64 bit system" >&6;} fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_FC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$FC"; then ac_cv_prog_FC="$FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_FC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi FC=$ac_cv_prog_FC if test -n "$FC"; then { echo "$as_me:$LINENO: result: $FC" >&5 echo "${ECHO_T}$FC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$FC" && break done fi if test -z "$FC"; then ac_ct_FC=$FC for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_FC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_FC"; then ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_FC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_FC=$ac_cv_prog_ac_ct_FC if test -n "$ac_ct_FC"; then { echo "$as_me:$LINENO: result: $ac_ct_FC" >&5 echo "${ECHO_T}$ac_ct_FC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_FC" && break done if test "x$ac_ct_FC" = x; then FC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac FC=$ac_ct_FC fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for Fortran compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { echo "$as_me:$LINENO: checking whether we are using the GNU Fortran compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran compiler... $ECHO_C" >&6; } if test "${ac_cv_fc_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_fc_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_fc_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_fc_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FCFLAGS+set} ac_save_FFLAGS=$FCFLAGS FCFLAGS= { echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5 echo $ECHO_N "checking whether $FC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_fc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FCFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_fc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_fc_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_prog_fc_g" >&5 echo "${ECHO_T}$ac_cv_prog_fc_g" >&6; } if test "$ac_test_FFLAGS" = set; then FCFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_fc_g = yes; then if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-g -O2" else FCFLAGS="-g" fi else if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-O2" else FCFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$FC"; then { echo "$as_me:$LINENO: checking for fortran compiler $FC" >&5 echo $ECHO_N "checking for fortran compiler $FC... $ECHO_C" >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu cat >conftest.$ac_ext <<_ACEOF program main INTEGER :: I REAL :: R I=TRANSFER(R,I) end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then he2_cv_fortran90_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 he2_cv_fortran90_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test ${he2_cv_fortran90_compiler} = "yes"; then { echo "$as_me:$LINENO: result: Fortran 90 code was successfully compiled; assume f90 or later" >&5 echo "${ECHO_T}Fortran 90 code was successfully compiled; assume f90 or later" >&6; } F2CFORTRAN_90="yes" else { echo "$as_me:$LINENO: result: Fortran 90 code format was not compiled; assume f77" >&5 echo "${ECHO_T}Fortran 90 code format was not compiled; assume f77" >&6; } fi if test -n "$F77" -o -n "$FFLAGS"; then { echo "$as_me:$LINENO: $FC, $FCFLAGS will override $F77, $FFLAGS." >&5 echo "$as_me: $FC, $FCFLAGS will override $F77, $FFLAGS." >&6;} fi F77=$FC FFLAGS=$FCFLAGS else { echo "$as_me:$LINENO: f90 or compatible was not detected." >&5 echo "$as_me: f90 or compatible was not detected." >&6;} ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then { echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_F77" && break done if test "x$ac_ct_F77" = x; then F77="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= { echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$F77"; then { echo "$as_me:$LINENO: f77 or compatible was detected. $F77 will be used to check Fortran testdrivers." >&5 echo "$as_me: f77 or compatible was detected. $F77 will be used to check Fortran testdrivers." >&6;} else { { echo "$as_me:$LINENO: error: couldn't find fortran compiler. You may want to FC environment variable" >&5 echo "$as_me: error: couldn't find fortran compiler. You may want to FC environment variable" >&2;} { (exit 1); exit 1; }; } fi fi fi # Check whether szlib (szip) is enabled. # HDF-EOS5 doesn't use szlib, but HDF5 might. If HDF5 does, it needs # to be given to the linker or there will be undefined symbols in HDF5. # Using h5cc should avoid the need to specify szlib at configure time. # Check whether --with-szlib was given. if test "${with_szlib+set}" = set; then withval=$with_szlib; else withval=no fi case $withval in yes) HAVE_SZLIB="yes" for ac_header in szlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to null@bogus.email ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF HAVE_SZLIB_H="yes" fi done { echo "$as_me:$LINENO: checking for SZ_BufftoBuffCompress in -lsz" >&5 echo $ECHO_N "checking for SZ_BufftoBuffCompress in -lsz... $ECHO_C" >&6; } if test "${ac_cv_lib_sz_SZ_BufftoBuffCompress+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char SZ_BufftoBuffCompress (); int main () { return SZ_BufftoBuffCompress (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_sz_SZ_BufftoBuffCompress=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_sz_SZ_BufftoBuffCompress=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_sz_SZ_BufftoBuffCompress" >&5 echo "${ECHO_T}$ac_cv_lib_sz_SZ_BufftoBuffCompress" >&6; } if test $ac_cv_lib_sz_SZ_BufftoBuffCompress = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBSZ 1 _ACEOF LIBS="-lsz $LIBS" else unset HAVE_SZLIB fi if test -z "$HAVE_SZLIB"; then { { echo "$as_me:$LINENO: error: couldn't find szlib library, you may need to specify szip library path" >&5 echo "$as_me: error: couldn't find szlib library, you may need to specify szip library path" >&2;} { (exit 1); exit 1; }; } fi ;; no) HAVE_SZLIB="no" { echo "$as_me:$LINENO: checking for szlib" >&5 echo $ECHO_N "checking for szlib... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: suppressed" >&5 echo "${ECHO_T}suppressed" >&6; } ;; *) HAVE_SZLIB="yes" case "$withval" in *,*) szlib_inc="`echo $withval |cut -f1 -d,`" szlib_lib="`echo $withval |cut -f2 -d, -s`" ;; *) if test -n "$withval"; then szlib_inc="$withval/include" szlib_lib="$withval/lib" fi ;; esac as_ac_File=`echo "ac_cv_file_$szlib_inc/szlib.h" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $szlib_inc/szlib.h" >&5 echo $ECHO_N "checking for $szlib_inc/szlib.h... $ECHO_C" >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "$szlib_inc/szlib.h"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi ac_res=`eval echo '${'$as_ac_File'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_File'}'` = yes; then : else unset HAVE_SZLIB fi if test -z "$HAVE_SZLIB"; then { { echo "$as_me:$LINENO: error: couldn't find szlib.h, check szip library path" >&5 echo "$as_me: error: couldn't find szlib.h, check szip library path" >&2;} { (exit 1); exit 1; }; } fi if test "X$szlib_inc" = "X/usr/include"; then szlib_inc="" fi if test "X$szlib_lib" = "X/usr/lib"; then szlib_lib="" fi saved_CPPFLAGS="$CPPFLAGS" saved_LDFLAGS="$LDFLAGS" if test -n "$szlib_inc"; then CPPFLAGS="$CPPFLAGS -I$szlib_inc" fi for ac_header in szlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to null@bogus.email ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF HAVE_SZLIB_H="yes" else CPPFLAGS="$saved_CPPFLAGS" fi done if test -n "$szlib_lib"; then LDFLAGS="$LDFLAGS -L$szlib_lib" fi { echo "$as_me:$LINENO: checking for SZ_BufftoBuffCompress in -lsz" >&5 echo $ECHO_N "checking for SZ_BufftoBuffCompress in -lsz... $ECHO_C" >&6; } if test "${ac_cv_lib_sz_SZ_BufftoBuffCompress+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char SZ_BufftoBuffCompress (); int main () { return SZ_BufftoBuffCompress (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_sz_SZ_BufftoBuffCompress=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_sz_SZ_BufftoBuffCompress=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_sz_SZ_BufftoBuffCompress" >&5 echo "${ECHO_T}$ac_cv_lib_sz_SZ_BufftoBuffCompress" >&6; } if test $ac_cv_lib_sz_SZ_BufftoBuffCompress = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBSZ 1 _ACEOF LIBS="-lsz $LIBS" else LDFLAGS="$saved_LDFLAGS"; unset HAVE_SZLIB fi if test -z "$HAVE_SZLIB" -a -n "$HDF5_CONFIG_ABORT"; then { { echo "$as_me:$LINENO: error: couldn't find szlib library, check if szip library is valid" >&5 echo "$as_me: error: couldn't find szlib library, check if szip library is valid" >&2;} { (exit 1); exit 1; }; } fi ;; esac if test "X$HAVE_SZLIB" = "Xyes"; then for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking for h5cc" >&5 echo $ECHO_N "checking for h5cc... $ECHO_C" >&6; } PURE_CC="" if ($CC -show &> /dev/null); then PURE_CC=`echo "$CC" | $AWK '{ split($1, array, " ") ; printf array[1] }'` { echo "$as_me:$LINENO: result: $PURE_CC" >&5 echo "${ECHO_T}$PURE_CC" >&6; } else { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } { { echo "$as_me:$LINENO: error: CC is not h5cc" >&5 echo "$as_me: error: CC is not h5cc" >&2;} { (exit 1); exit 1; }; } fi SZIP_CC=szip_cc cat $PURE_CC | $AWK '{ if ( $0 ~ /^LDFLAGS=\"(.*)/ ) { print substr($0, 1, 9) " -L'$szlib_lib' " substr($0, 10) } else { print } } ' > $SZIP_CC chmod 755 $SZIP_CC saved_CC="$CC" CC=./$SZIP_CC { echo "$as_me:$LINENO: checking for szlib encoder" >&5 echo $ECHO_N "checking for szlib encoder... $ECHO_C" >&6; } if test "${he5_cv_szlib_functional+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main(void) { SZ_encoder_enabled(); exit(0); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then he5_cv_szlib_functional=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) he5_cv_szlib_functional=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi if test "${he5_cv_szlib_can_encode+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main(void) { /* SZ_encoder_enabled returns 1 if encoder is present */ if(SZ_encoder_enabled() == 1) exit(0); else exit(1); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then he5_cv_szlib_can_encode=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) he5_cv_szlib_can_encode=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi CC="$saved_CC" rm -f $SZIP_CC if test ${he5_cv_szlib_functional} = "no"; then he5_cv_szlib_can_encode=broken else cat >>confdefs.h <<\_ACEOF #define HAVE_FILTER_SZIP 1 _ACEOF USE_FILTER_SZIP="yes" fi if test ${he5_cv_szlib_can_encode} = "yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_FILTER_SZIP_ENCODER 1 _ACEOF USE_SZIP_ENCODER="yes" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } fi if test ${he5_cv_szlib_can_encode} = "no"; then { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test ${he5_cv_szlib_can_encode} = "broken"; then { echo "$as_me:$LINENO: result: shared szlib doesn't work. disabling szip." >&5 echo "${ECHO_T}shared szlib doesn't work. disabling szip." >&6; } fi if test ${he5_cv_szlib_can_encode} = "yes"; then if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," fi EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(encoder)" fi if test ${he5_cv_szlib_can_encode} = "no"; then if test "X$EXTERNAL_FILTERS" != "X"; then EXTERNAL_FILTERS="${EXTERNAL_FILTERS}," fi EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(no encoder)" fi fi # Check for the HDF5 library using the --with argument # Of course HDF5 is required, but the user may be using h5cc, in which case # they don't need to specify --with-hdf5. They can also use # --with-hdf5=/path/to/hdf5 to give a specific path. HAVE_HDF5="yes" # Check whether --with-hdf5 was given. if test "${with_hdf5+set}" = set; then withval=$with_hdf5; else withval=yes fi case $withval in yes) ;; no) { { echo "$as_me:$LINENO: error: HDF5 disabled in confugre, but is required to build HDF-EOS5." >&5 echo "$as_me: error: HDF5 disabled in confugre, but is required to build HDF-EOS5." >&2;} { (exit 1); exit 1; }; } ;; *) case "$withval" in *,*) hdf5_inc="`echo $withval |cut -f1 -d,`" hdf5_lib="`echo $withval |cut -f2 -d, -s`" ;; *) if test -n "$withval"; then hdf5_inc="$withval/include" hdf5_lib="$withval/lib" fi ;; esac if test "X$hdf5_inc" = "X/usr/include"; then hdf5_inc="" fi if test "X$hdf5_lib" = "X/usr/lib"; then hdf5_lib="" fi if test -n "$hdf5_inc"; then CPPFLAGS="$CPPFLAGS -I$hdf5_inc" CFLAGS="$CFLAGS -I$hdf5_inc" fi if test -n "$hdf5_lib"; then LDFLAGS="$LDFLAGS -L$hdf5_lib" fi ;; esac for ac_header in hdf5.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to null@bogus.email ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else HAVE_HDF5="no" fi done { echo "$as_me:$LINENO: checking for H5Fcreate in -lhdf5" >&5 echo $ECHO_N "checking for H5Fcreate in -lhdf5... $ECHO_C" >&6; } if test "${ac_cv_lib_hdf5_H5Fcreate+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lhdf5_hl -lhdf5 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char H5Fcreate (); int main () { return H5Fcreate (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_hdf5_H5Fcreate=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_hdf5_H5Fcreate=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_hdf5_H5Fcreate" >&5 echo "${ECHO_T}$ac_cv_lib_hdf5_H5Fcreate" >&6; } if test $ac_cv_lib_hdf5_H5Fcreate = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBHDF5 1 _ACEOF LIBS="-lhdf5_hl -lhdf5 $LIBS" else HAVE_HDF5="no" fi if test "X$HAVE_HDF5" = "Xno"; then { { echo "$as_me:$LINENO: error: can't link against HDF5 library" >&5 echo "$as_me: error: can't link against HDF5 library" >&2;} { (exit 1); exit 1; }; } fi # Check whether HDF5 threadsafety is enabled { echo "$as_me:$LINENO: checking if HDF5 threadsafe mode is enabled" >&5 echo $ECHO_N "checking if HDF5 threadsafe mode is enabled... $ECHO_C" >&6; } if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include "hdf5.h" int main(void) { #ifdef H5_HAVE_THREADSAFE return 0; #else return 1; #endif } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } THREADSAFE="yes" else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } THREADSAFE="no" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi # Record threadsafe status in config.h and for Makefiles if test "X$THREADSAFE" = "Xyes"; then cat >>confdefs.h <<\_ACEOF #define _HDFEOS5_THREADSAFE 1 _ACEOF fi if test "X$THREADSAFE" = "Xyes"; then THREADSAFE_CONDITIONAL_TRUE= THREADSAFE_CONDITIONAL_FALSE='#' else THREADSAFE_CONDITIONAL_TRUE='#' THREADSAFE_CONDITIONAL_FALSE= fi if test "x$HAVE_HDF5" = "xyes"; then { echo "$as_me:$LINENO: checking for hdf5 szip decoding filter" >&5 echo $ECHO_N "checking for hdf5 szip decoding filter... $ECHO_C" >&6; } if test "${he5_cv_hdf5_szip_can_decode+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main(int argc, char **argv) { herr_t ret; unsigned int flags = 0; int decoder = 0; ret = H5Zget_filter_info(H5Z_FILTER_SZIP, &flags); if (ret < 0) exit(1); decoder = flags & H5Z_FILTER_CONFIG_DECODE_ENABLED; if (decoder) exit(0); else exit(1); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then he5_cv_hdf5_szip_can_decode=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) he5_cv_hdf5_szip_can_decode=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi if test ${he5_cv_hdf5_szip_can_decode} = "yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_HDF5_SZIP_DECODER 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define H5_HAVE_FILTER_SZIP 1 _ACEOF { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi { echo "$as_me:$LINENO: checking for hdf5 szip encoding filter" >&5 echo $ECHO_N "checking for hdf5 szip encoding filter... $ECHO_C" >&6; } if test "${he5_cv_hdf5_szip_can_encode+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main(int argc, char **argv) { herr_t ret; unsigned int flags = 0; int encoder = 0; ret = H5Zget_filter_info(H5Z_FILTER_SZIP, &flags); if (ret < 0) exit(1); encoder = flags & H5Z_FILTER_CONFIG_ENCODE_ENABLED; if (encoder) exit(0); else exit(1); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then he5_cv_hdf5_szip_can_encode=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) he5_cv_hdf5_szip_can_encode=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi if test ${he5_cv_hdf5_szip_can_encode} = "yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_HDF5_SZIP_ENCODER 1 _ACEOF { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test ${he5_cv_hdf5_szip_can_decode} = "no"; then if test "X$HAVE_SZLIB" = "Xyes"; then { { echo "$as_me:$LINENO: error: HDF5 was linked without SZIP, but --with-szlib was given" >&5 echo "$as_me: error: HDF5 was linked without SZIP, but --with-szlib was given" >&2;} { (exit 1); exit 1; }; } fi else if test "X$HAVE_SZLIB" != "Xyes"; then { { echo "$as_me:$LINENO: error: HDF5 was linked with SZIP, but --with-szlib was not given" >&5 echo "$as_me: error: HDF5 was linked with SZIP, but --with-szlib was not given" >&2;} { (exit 1); exit 1; }; } fi if test ${he5_cv_szlib_functional} = "no"; then { { echo "$as_me:$LINENO: error: SZIP specified in --with-szlib is not functional" >&5 echo "$as_me: error: SZIP specified in --with-szlib is not functional" >&2;} { (exit 1); exit 1; }; } fi if test ${he5_cv_hdf5_szip_can_encode} = "no"; then if test ${he5_cv_szlib_can_encode} = "yes"; then { { echo "$as_me:$LINENO: error: HDF5 was linked without SZIP encoder, but yours has SZIP encoder" >&5 echo "$as_me: error: HDF5 was linked without SZIP encoder, but yours has SZIP encoder" >&2;} { (exit 1); exit 1; }; } fi else if test ${he5_cv_szlib_can_encode} = "no"; then { { echo "$as_me:$LINENO: error: HDF5 was linked with SZIP encoder, but yours does not have SZIP encoder" >&5 echo "$as_me: error: HDF5 was linked with SZIP encoder, but yours does not have SZIP encoder" >&2;} { (exit 1); exit 1; }; } fi fi fi fi # Set CFLAGS to prevent AC_PROG_CC from setting it CFLAGS=$CFLAGS # Checks for programs. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6; } fi { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Checks for libraries. # Checks for header files. { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi for ac_header in malloc.h stdlib.h string.h limits.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to null@bogus.email ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const _ACEOF fi { echo "$as_me:$LINENO: checking for off_t" >&5 echo $ECHO_N "checking for off_t... $ECHO_C" >&6; } if test "${ac_cv_type_off_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef off_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_off_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_off_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 echo "${ECHO_T}$ac_cv_type_off_t" >&6; } if test $ac_cv_type_off_t = yes; then : else cat >>confdefs.h <<_ACEOF #define off_t long int _ACEOF fi { echo "$as_me:$LINENO: checking for size_t" >&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef size_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6; } if test $ac_cv_type_size_t = yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # Checks for library functions. for ac_header in stdlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to null@bogus.email ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; } if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_malloc_0_nonnull=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_malloc_0_nonnull=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_MALLOC 1 _ACEOF else cat >>confdefs.h <<\_ACEOF #define HAVE_MALLOC 0 _ACEOF case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; esac cat >>confdefs.h <<\_ACEOF #define malloc rpl_malloc _ACEOF fi { echo "$as_me:$LINENO: checking for working memcmp" >&5 echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6; } if test "${ac_cv_func_memcmp_working+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_memcmp_working=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_memcmp_working=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in *" memcmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; esac for ac_header in stdlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to null@bogus.email ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for GNU libc compatible realloc" >&5 echo $ECHO_N "checking for GNU libc compatible realloc... $ECHO_C" >&6; } if test "${ac_cv_func_realloc_0_nonnull+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_realloc_0_nonnull=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *realloc (); #endif int main () { return ! realloc (0, 0); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_realloc_0_nonnull=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_realloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_realloc_0_nonnull" >&5 echo "${ECHO_T}$ac_cv_func_realloc_0_nonnull" >&6; } if test $ac_cv_func_realloc_0_nonnull = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_REALLOC 1 _ACEOF else cat >>confdefs.h <<\_ACEOF #define HAVE_REALLOC 0 _ACEOF case " $LIBOBJS " in *" realloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS realloc.$ac_objext" ;; esac cat >>confdefs.h <<\_ACEOF #define realloc rpl_realloc _ACEOF fi { echo "$as_me:$LINENO: checking for error_at_line" >&5 echo $ECHO_N "checking for error_at_line... $ECHO_C" >&6; } if test "${ac_cv_lib_error_at_line+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_error_at_line=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5 echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then case " $LIBOBJS " in *" error.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS error.$ac_objext" ;; esac fi for ac_func in memchr memmove memset strchr strstr pow sqrt do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Check whether testdrivers directory is present. The user might have # downloaded HDF-EOS5 but not the tests. { echo "$as_me:$LINENO: checking for testdrivers directory" >&5 echo $ECHO_N "checking for testdrivers directory... $ECHO_C" >&6; } if test -d "${srcdir}/testdrivers"; then TESTDRIVERS_DIR="yes" { echo "$as_me:$LINENO: result: present" >&5 echo "${ECHO_T}present" >&6; } # If the testdrivers directory is present, see if it contains a file named # 'makefile'. If so, rename the file so it doesn't cause confusion later # on. if test -e "testdrivers/makefile"; then mv testdrivers/makefile testdrivers/makefile_orig fi else TESTDRIVERS_DIR="no" { echo "$as_me:$LINENO: result: not found" >&5 echo "${ECHO_T}not found" >&6; } { echo "$as_me:$LINENO: WARNING: testdrivers directory is not present. Tests will not be run" >&5 echo "$as_me: WARNING: testdrivers directory is not present. Tests will not be run" >&2;} fi # Check whether --enable-install-include was given. if test "${enable_install_include+set}" = set; then enableval=$enable_install_include; INSTALL_INCLUDE=$enableval fi if test "X$TESTDRIVERS_DIR" = "Xyes"; then TESTDRIVERS_CONDITIONAL_TRUE= TESTDRIVERS_CONDITIONAL_FALSE='#' else TESTDRIVERS_CONDITIONAL_TRUE='#' TESTDRIVERS_CONDITIONAL_FALSE= fi if test "X$INSTALL_INCLUDE" = "Xyes"; then INSTALL_INCLUDE_CONDITIONAL_TRUE= INSTALL_INCLUDE_CONDITIONAL_FALSE='#' else INSTALL_INCLUDE_CONDITIONAL_TRUE='#' INSTALL_INCLUDE_CONDITIONAL_FALSE= fi if test "X$F2CFORTRAN_MACRO" = "Xyes"; then F2CFORTRAN_CONDITIONAL_TRUE= F2CFORTRAN_CONDITIONAL_FALSE='#' else F2CFORTRAN_CONDITIONAL_TRUE='#' F2CFORTRAN_CONDITIONAL_FALSE= fi if test "X$F2CFORTRAN_90" = "Xyes"; then F2CFORTRAN_90_CONDITIONAL_TRUE= F2CFORTRAN_90_CONDITIONAL_FALSE='#' else F2CFORTRAN_90_CONDITIONAL_TRUE='#' F2CFORTRAN_90_CONDITIONAL_FALSE= fi if test "X$F2CFORTRAN_32PTR" = "Xyes"; then F2CFORTRAN_32PTR_CONDITIONAL_TRUE= F2CFORTRAN_32PTR_CONDITIONAL_FALSE='#' else F2CFORTRAN_32PTR_CONDITIONAL_TRUE='#' F2CFORTRAN_32PTR_CONDITIONAL_FALSE= fi if test "X$USE_SZIP_ENCODER" = "Xyes"; then SZIP_ENCODER_CONDITIONAL_TRUE= SZIP_ENCODER_CONDITIONAL_FALSE='#' else SZIP_ENCODER_CONDITIONAL_TRUE='#' SZIP_ENCODER_CONDITIONAL_FALSE= fi ac_config_files="$ac_config_files Makefile include/Makefile src/Makefile gctp/Makefile gctp/include/Makefile gctp/src/Makefile samples/Makefile" if test "X$TESTDRIVERS_DIR" = "Xyes"; then ac_config_files="$ac_config_files testdrivers/Makefile testdrivers/grid/Makefile testdrivers/point/Makefile testdrivers/swath/Makefile testdrivers/threads/Makefile testdrivers/za/Makefile" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${THREADSAFE_CONDITIONAL_TRUE}" && test -z "${THREADSAFE_CONDITIONAL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"THREADSAFE_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"THREADSAFE_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${TESTDRIVERS_CONDITIONAL_TRUE}" && test -z "${TESTDRIVERS_CONDITIONAL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"TESTDRIVERS_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"TESTDRIVERS_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${INSTALL_INCLUDE_CONDITIONAL_TRUE}" && test -z "${INSTALL_INCLUDE_CONDITIONAL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"INSTALL_INCLUDE_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"INSTALL_INCLUDE_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${F2CFORTRAN_CONDITIONAL_TRUE}" && test -z "${F2CFORTRAN_CONDITIONAL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"F2CFORTRAN_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"F2CFORTRAN_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${F2CFORTRAN_90_CONDITIONAL_TRUE}" && test -z "${F2CFORTRAN_90_CONDITIONAL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"F2CFORTRAN_90_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"F2CFORTRAN_90_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${F2CFORTRAN_32PTR_CONDITIONAL_TRUE}" && test -z "${F2CFORTRAN_32PTR_CONDITIONAL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"F2CFORTRAN_32PTR_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"F2CFORTRAN_32PTR_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${SZIP_ENCODER_CONDITIONAL_TRUE}" && test -z "${SZIP_ENCODER_CONDITIONAL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"SZIP_ENCODER_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"SZIP_ENCODER_CONDITIONAL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by hdf-eos5 $as_me 1.8, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ hdf-eos5 config.status 1.8 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "include/HE5_config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/HE5_config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "gctp/Makefile") CONFIG_FILES="$CONFIG_FILES gctp/Makefile" ;; "gctp/include/Makefile") CONFIG_FILES="$CONFIG_FILES gctp/include/Makefile" ;; "gctp/src/Makefile") CONFIG_FILES="$CONFIG_FILES gctp/src/Makefile" ;; "samples/Makefile") CONFIG_FILES="$CONFIG_FILES samples/Makefile" ;; "testdrivers/Makefile") CONFIG_FILES="$CONFIG_FILES testdrivers/Makefile" ;; "testdrivers/grid/Makefile") CONFIG_FILES="$CONFIG_FILES testdrivers/grid/Makefile" ;; "testdrivers/point/Makefile") CONFIG_FILES="$CONFIG_FILES testdrivers/point/Makefile" ;; "testdrivers/swath/Makefile") CONFIG_FILES="$CONFIG_FILES testdrivers/swath/Makefile" ;; "testdrivers/threads/Makefile") CONFIG_FILES="$CONFIG_FILES testdrivers/threads/Makefile" ;; "testdrivers/za/Makefile") CONFIG_FILES="$CONFIG_FILES testdrivers/za/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim MAINT!$MAINT$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim LN_S!$LN_S$ac_delim ECHO!$ECHO$ac_delim AR!$AR$ac_delim RANLIB!$RANLIB$ac_delim CPP!$CPP$ac_delim CXX!$CXX$ac_delim CXXFLAGS!$CXXFLAGS$ac_delim ac_ct_CXX!$ac_ct_CXX$ac_delim CXXDEPMODE!$CXXDEPMODE$ac_delim am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim CXXCPP!$CXXCPP$ac_delim F77!$F77$ac_delim FFLAGS!$FFLAGS$ac_delim ac_ct_F77!$ac_ct_F77$ac_delim LIBTOOL!$LIBTOOL$ac_delim FC!$FC$ac_delim FCFLAGS!$FCFLAGS$ac_delim ac_ct_FC!$ac_ct_FC$ac_delim THREADSAFE_CONDITIONAL_TRUE!$THREADSAFE_CONDITIONAL_TRUE$ac_delim THREADSAFE_CONDITIONAL_FALSE!$THREADSAFE_CONDITIONAL_FALSE$ac_delim LIBOBJS!$LIBOBJS$ac_delim TESTDRIVERS_CONDITIONAL_TRUE!$TESTDRIVERS_CONDITIONAL_TRUE$ac_delim TESTDRIVERS_CONDITIONAL_FALSE!$TESTDRIVERS_CONDITIONAL_FALSE$ac_delim INSTALL_INCLUDE_CONDITIONAL_TRUE!$INSTALL_INCLUDE_CONDITIONAL_TRUE$ac_delim INSTALL_INCLUDE_CONDITIONAL_FALSE!$INSTALL_INCLUDE_CONDITIONAL_FALSE$ac_delim F2CFORTRAN_CONDITIONAL_TRUE!$F2CFORTRAN_CONDITIONAL_TRUE$ac_delim F2CFORTRAN_CONDITIONAL_FALSE!$F2CFORTRAN_CONDITIONAL_FALSE$ac_delim F2CFORTRAN_90_CONDITIONAL_TRUE!$F2CFORTRAN_90_CONDITIONAL_TRUE$ac_delim F2CFORTRAN_90_CONDITIONAL_FALSE!$F2CFORTRAN_90_CONDITIONAL_FALSE$ac_delim F2CFORTRAN_32PTR_CONDITIONAL_TRUE!$F2CFORTRAN_32PTR_CONDITIONAL_TRUE$ac_delim F2CFORTRAN_32PTR_CONDITIONAL_FALSE!$F2CFORTRAN_32PTR_CONDITIONAL_FALSE$ac_delim SZIP_ENCODER_CONDITIONAL_TRUE!$SZIP_ENCODER_CONDITIONAL_TRUE$ac_delim SZIP_ENCODER_CONDITIONAL_FALSE!$SZIP_ENCODER_CONDITIONAL_FALSE$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 25; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| . 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi hdf-eos5-5.1.14+dfsg.1/aclocal.m40000644000175000017500000074712312024715435017305 0ustar amckinstryamckinstry# generated automatically by aclocal 1.9.2 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # serial 47 AC_PROG_LIBTOOL # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) # ----------------------------------------------------------- # If this macro is not defined by Autoconf, define it here. m4_ifdef([AC_PROVIDE_IFELSE], [], [m4_define([AC_PROVIDE_IFELSE], [m4_ifdef([AC_PROVIDE_$1], [$2], [$3])])]) # AC_PROG_LIBTOOL # --------------- AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([_AC_PROG_LIBTOOL])dnl dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. AC_PROVIDE_IFELSE([AC_PROG_CXX], [AC_LIBTOOL_CXX], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX ])]) dnl And a similar setup for Fortran 77 support AC_PROVIDE_IFELSE([AC_PROG_F77], [AC_LIBTOOL_F77], [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 ])]) dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [ifdef([AC_PROG_GCJ], [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([A][M_PROG_GCJ], [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([LT_AC_PROG_GCJ], [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) ])])# AC_PROG_LIBTOOL # _AC_PROG_LIBTOOL # ---------------- AC_DEFUN([_AC_PROG_LIBTOOL], [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Prevent multiple expansion define([AC_PROG_LIBTOOL], []) ])# _AC_PROG_LIBTOOL # AC_LIBTOOL_SETUP # ---------------- AC_DEFUN([AC_LIBTOOL_SETUP], [AC_PREREQ(2.50)dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl AC_LIBTOOL_SYS_MAX_CMD_LEN AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE AC_LIBTOOL_OBJDIR AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' [sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] # Same as above, but do not quote variable references. [double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" AC_CHECK_TOOL(AR, ar, false) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then AC_PATH_MAGIC fi ;; esac AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes AC_ARG_WITH([pic], [AC_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= AC_LIBTOOL_LANG_C_CONFIG _LT_AC_TAGCONFIG ])# AC_LIBTOOL_SETUP # _LT_AC_SYS_COMPILER # ------------------- AC_DEFUN([_LT_AC_SYS_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_AC_SYS_COMPILER # _LT_AC_SYS_LIBPATH_AIX # ---------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], [AC_LINK_IFELSE(AC_LANG_PROGRAM,[ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_AC_SYS_LIBPATH_AIX # _LT_AC_SHELL_INIT(ARG) # ---------------------- AC_DEFUN([_LT_AC_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_AC_SHELL_INIT # _LT_AC_PROG_ECHO_BACKSLASH # -------------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], [_LT_AC_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac echo=${ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null && echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(ECHO) ])])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_LOCK # ----------- AC_DEFUN([_LT_AC_LOCK], [AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case "`/usr/bin/file conftest.o`" in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; ]) esac need_locks="$enable_libtool_lock" ])# _LT_AC_LOCK # AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_REQUIRE([LT_AC_PROG_SED]) AC_CACHE_CHECK([$1], [$2], [$2=no ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then $2=yes fi fi $rm conftest* ]) if test x"[$]$2" = xyes; then ifelse([$5], , :, [$5]) else ifelse([$6], , :, [$6]) fi ])# AC_LIBTOOL_COMPILER_OPTION # AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ------------------------------------------------------------ # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD else $2=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then ifelse([$4], , :, [$4]) else ifelse([$5], , :, [$5]) fi ])# AC_LIBTOOL_LINKER_OPTION # AC_LIBTOOL_SYS_MAX_CMD_LEN # -------------------------- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [# find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi ])# AC_LIBTOOL_SYS_MAX_CMD_LEN # _LT_AC_CHECK_DLFCN # -------------------- AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h)dnl ])# _LT_AC_CHECK_DLFCN # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ------------------------------------------------------------------ AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); }] EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_unknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF # ------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi ])# AC_LIBTOOL_DLOPEN_SELF # AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) # --------------------------------- # Check to see if options -c and -o are simultaneously supported by compiler AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* ]) ])# AC_LIBTOOL_PROG_CC_C_O # AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) # ----------------------------------------- # Check to see if we can do hard links to lock some files if needed AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_REQUIRE([_LT_AC_LOCK])dnl hard_links="nottested" if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi ])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS # AC_LIBTOOL_OBJDIR # ----------------- AC_DEFUN([AC_LIBTOOL_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir ])# AC_LIBTOOL_OBJDIR # AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) # ---------------------------------------------- # Check hardcoding attributes. AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_AC_TAGVAR(hardcode_action, $1)= if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then # We can hardcode non-existant directories. if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_AC_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_AC_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_AC_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi ])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH # AC_LIBTOOL_SYS_LIB_STRIP # ------------------------ AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], [striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi ])# AC_LIBTOOL_SYS_LIB_STRIP # AC_LIBTOOL_SYS_DYNAMIC_LINKER # ----------------------------- # PORTME Fill in your ld.so characteristics AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_MSG_CHECKING([dynamic linker characteristics]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=yes library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER # _LT_AC_TAGCONFIG # ---------------- AC_DEFUN([_LT_AC_TAGCONFIG], [AC_ARG_WITH([tags], [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], [include additional configurations @<:@automatic@:>@])], [tagnames="$withval"]) if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then AC_MSG_WARN([output file `$ofile' does not exist]) fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) else AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) fi fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in "") ;; *) AC_MSG_ERROR([invalid tag name: $tagname]) ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then AC_MSG_ERROR([tag name \"$tagname\" already exists]) fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && test "X$CXX" != "Xno"; then AC_LIBTOOL_LANG_CXX_CONFIG else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then AC_LIBTOOL_LANG_F77_CONFIG else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then AC_LIBTOOL_LANG_GCJ_CONFIG else tagname="" fi ;; RC) AC_LIBTOOL_LANG_RC_CONFIG ;; *) AC_MSG_ERROR([Unsupported tag name: $tagname]) ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" AC_MSG_ERROR([unable to update list of available tagged configurations.]) fi fi ])# _LT_AC_TAGCONFIG # AC_LIBTOOL_DLOPEN # ----------------- # enable checks for dlopen support AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_DLOPEN # AC_LIBTOOL_WIN32_DLL # -------------------- # declare package support for building win32 dll's AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_WIN32_DLL # AC_ENABLE_SHARED([DEFAULT]) # --------------------------- # implement the --enable-shared flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_SHARED], [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([shared], [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]AC_ENABLE_SHARED_DEFAULT) ])# AC_ENABLE_SHARED # AC_DISABLE_SHARED # ----------------- #- set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no) ])# AC_DISABLE_SHARED # AC_ENABLE_STATIC([DEFAULT]) # --------------------------- # implement the --enable-static flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_STATIC], [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([static], [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]AC_ENABLE_STATIC_DEFAULT) ])# AC_ENABLE_STATIC # AC_DISABLE_STATIC # ----------------- # set the default static flag to --disable-static AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_STATIC(no) ])# AC_DISABLE_STATIC # AC_ENABLE_FAST_INSTALL([DEFAULT]) # --------------------------------- # implement the --enable-fast-install flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_FAST_INSTALL], [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([fast-install], [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) ])# AC_ENABLE_FAST_INSTALL # AC_DISABLE_FAST_INSTALL # ----------------------- # set the default to --disable-fast-install AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_FAST_INSTALL(no) ])# AC_DISABLE_FAST_INSTALL # AC_LIBTOOL_PICMODE([MODE]) # -------------------------- # implement the --with-pic flag # MODE is either `yes' or `no'. If omitted, it defaults to `both'. AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl pic_mode=ifelse($#,1,$1,default) ])# AC_LIBTOOL_PICMODE # AC_PROG_EGREP # ------------- # This is predefined starting with Autoconf 2.54, so this conditional # definition can be removed once we require Autoconf 2.54 or later. m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi]) EGREP=$ac_cv_prog_egrep AC_SUBST([EGREP]) ])]) # AC_PATH_TOOL_PREFIX # ------------------- # find a file program which can recognise shared library AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="ifelse([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi ])# AC_PATH_TOOL_PREFIX # AC_PATH_MAGIC # ------------- # find a file program which can recognise a shared library AC_DEFUN([AC_PATH_MAGIC], [AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# AC_PATH_MAGIC # AC_PROG_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([AC_PROG_LD], [AC_ARG_WITH([gnu-ld], [AC_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no]) AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case "$host_cpu" in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) case $host_cpu in alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*) lt_cv_deplibs_check_method=pass_all ;; *) # glibc up to 2.1.1 does not perform some relocations on ARM # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; esac lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' else lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown ])# AC_DEPLIBS_CHECK_METHOD # AC_PROG_NM # ---------- # find the pathname to a BSD-compatible name lister AC_DEFUN([AC_PROG_NM], [AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/${ac_tool_prefix}nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac esac fi done IFS="$lt_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" ])# AC_PROG_NM # AC_CHECK_LIBM # ------------- # check for math library AC_DEFUN([AC_CHECK_LIBM], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac ])# AC_CHECK_LIBM # AC_LIBLTDL_CONVENIENCE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL # and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If # DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will # be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with # '${top_srcdir}/' (note the single quotes!). If your package is not # flat and you're not using automake, define top_builddir and # top_srcdir appropriately in the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_CONVENIENCE # AC_LIBLTDL_INSTALLABLE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl installable library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that LIBLTDL # and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If # DIRECTORY is not provided and an installed libltdl is not found, it is # assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' # and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single # quotes!). If your package is not flat and you're not using automake, # define top_builddir and top_srcdir appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_CHECK_LIB(ltdl, lt_dlinit, [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], [if test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) else enable_ltdl_install=yes fi ]) if test x"$enable_ltdl_install" = x"yes"; then ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) else ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLINCL= fi # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_INSTALLABLE # AC_LIBTOOL_CXX # -------------- # enable support for C++ libraries AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_LT_AC_LANG_CXX]) ])# AC_LIBTOOL_CXX # _LT_AC_LANG_CXX # --------------- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXXCPP]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX # AC_LIBTOOL_F77 # -------------- # enable support for Fortran 77 libraries AC_DEFUN([AC_LIBTOOL_F77], [AC_REQUIRE([_LT_AC_LANG_F77]) ])# AC_LIBTOOL_F77 # _LT_AC_LANG_F77 # --------------- AC_DEFUN([_LT_AC_LANG_F77], [AC_REQUIRE([AC_PROG_F77]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) ])# _LT_AC_LANG_F77 # AC_LIBTOOL_GCJ # -------------- # enable support for GCJ libraries AC_DEFUN([AC_LIBTOOL_GCJ], [AC_REQUIRE([_LT_AC_LANG_GCJ]) ])# AC_LIBTOOL_GCJ # _LT_AC_LANG_GCJ # --------------- AC_DEFUN([_LT_AC_LANG_GCJ], [AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) ])# _LT_AC_LANG_GCJ # AC_LIBTOOL_RC # -------------- # enable support for Windows resource files AC_DEFUN([AC_LIBTOOL_RC], [AC_REQUIRE([LT_AC_PROG_RC]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) ])# AC_LIBTOOL_RC # AC_LIBTOOL_LANG_C_CONFIG # ------------------------ # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) AC_DEFUN([_LT_AC_LANG_C_CONFIG], [lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' _LT_AC_SYS_COMPILER # # Check for any special shared library compilation flags. # _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= if test "$GCC" = no; then case $host_os in sco3.2v5*) _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' ;; esac fi if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then : else AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no fi fi # # Check to make sure the static flag actually works. # AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), [], [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF($1) # Report which librarie types wil actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; darwin* | rhapsody*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' ;; esac fi ;; esac output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_C_CONFIG # AC_LIBTOOL_LANG_CXX_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], [AC_LANG_PUSH(C++) AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXXCPP]) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_AC_TAGVAR(no_undefined_flag, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Dependencies to place before and after the object being linked: _LT_AC_TAGVAR(predep_objects, $1)= _LT_AC_TAGVAR(postdep_objects, $1)= _LT_AC_TAGVAR(predeps, $1)= _LT_AC_TAGVAR(postdeps, $1)= _LT_AC_TAGVAR(compiler_lib_search_path, $1)= # Source file extension for C++ test sources. ac_ext=cc # Object file extension for compiled C++ test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_COMPILER # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration AC_PROG_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_AC_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) _LT_AC_TAGVAR(always_export_symbols, $1)=yes # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds it's shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; dgux*) case $cc_basename in ec++) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; ghcx) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | kfreebsd*-gnu) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_AC_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then case "$host_cpu" in hppa*64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; *) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case "$host_cpu" in hppa*64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; ia64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC) case "$host_cpu" in hppa*64*|ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case "$host_cpu" in ia64*|hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; irix5* | irix6*) case $cc_basename in CC) # SGI C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; linux*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc) # Intel C++ with_gnu_ld=yes _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; cxx) # Compaq C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; osf3*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ $rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; sco*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case $cc_basename in CC) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; lcc) # Lucid # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx) # Green Hills C++ Compiler _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' fi ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_AC_TAGVAR(GCC, $1)="$GXX" _LT_AC_TAGVAR(LD, $1)="$LD" AC_LIBTOOL_POSTDEP_PREDEP($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF($1) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ])# AC_LIBTOOL_LANG_CXX_CONFIG # AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) # ------------------------ # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" ifelse([$1], [], [#! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG], [# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? with_gcc=$_LT_AC_TAGVAR(GCC, $1) # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_[]_LT_AC_TAGVAR(LD, $1) # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) # Commands used to build and install a shared archive. archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) # Flag that forces no undefined symbols. no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" # Set to yes if exported symbols are required. always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) # The commands to list exported symbols. export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) # Symbols that must always be exported. include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) ifelse([$1],[], [# ### END LIBTOOL CONFIG], [# ### END LIBTOOL TAG CONFIG: $tagname]) __EOF__ ifelse([$1],[], [ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ]) else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ])# AC_LIBTOOL_CONFIG # AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi ])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # --------------------------------- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_OBJEXT]) # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32*) symcode='[[ABCDGISTW]]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris* | sysv5*) symcode='[[BDRT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[[]] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) # --------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], [_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) ifelse([$1],[CXX],[ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC) # KAI C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; icpc) # Intel C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; cxx) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC) # Rational C++ 2.4.1 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx) # Digital/Compaq C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; sco*) case $cc_basename in CC) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; *) ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc) # Lucid _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; unixware*) ;; vxworks*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; newsos6) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; linux*) case $CC in icc* | ecc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; ccc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; sco3.2v5*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' ;; solaris*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sunos4*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; uts4*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" ;; esac ]) # AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) # ------------------------------------ # See if the linker supports building shared libraries. AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ifelse([$1],[CXX],[ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw*) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ],[ runpath_var= _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)= _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_AC_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac _LT_AC_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; sunos4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds" supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac if test $supports_anon_versioning = yes; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds" fi else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=yes _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) _LT_AC_TAGVAR(always_export_symbols, $1)=yes # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds it's shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # see comment about different semantics on the GNU ld section _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; bsdi4*) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) if test "$GXX" = yes ; then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; dgux*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10* | hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*|ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case "$host_cpu" in hppa*64*|ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac fi if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; *) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; openbsd*) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi ;; os2*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; sco3.2v5*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_AC_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_AC_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4.2uw2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv5*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' ;; uts4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_AC_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) _LT_AC_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac ])# AC_LIBTOOL_PROG_LD_SHLIBS # _LT_AC_FILE_LTDLL_C # ------------------- # Be careful that the start marker always follows a newline. AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ ])# _LT_AC_FILE_LTDLL_C # _LT_AC_TAGVAR(VARNAME, [TAGNAME]) # --------------------------------- AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) AC_DEFUN([LT_AC_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj, no) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS) ]) AC_DEFUN([LT_AC_PROG_RC], [AC_CHECK_TOOL(RC, windres, no) ]) # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # # LT_AC_PROG_SED # -------------- # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. AC_DEFUN([LT_AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && break cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done SED=$lt_cv_path_SED ]) AC_MSG_RESULT([$SED]) ]) # -*- Autoconf -*- # Copyright (C) 2002, 2003 Free Software Foundation, Inc. # Generated from amversion.in; do not edit by hand. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.9.2])]) # AM_AUX_DIR_EXPAND # Copyright (C) 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 6 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # serial 7 -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. #serial 2 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 7 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 11 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.58])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. # Copyright (C) 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # -*- Autoconf -*- # Copyright (C) 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 1 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer], USE_MAINTAINER_MODE=$enableval, USE_MAINTAINER_MODE=no) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST(MAINT)dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # Copyright (C) 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # # Check to make sure that the build environment is sane. # # Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # AM_PROG_INSTALL_STRIP # Copyright (C) 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 1 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR hdf-eos5-5.1.14+dfsg.1/bin/0000755000175000017500000000000012024715435016177 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/bin/INSTALL0000755000175000017500000023775312024715435017254 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL # # description: # Install script for the HDF-EOS and related software # # usage: # cd # bin/INSTALL [-dbug] [-f90 [-NAG]] [-ABSOFT] [-fc_path ] # [-cc_path ] # [-no_ftn] [-sgi | -sgi32 | -sgi64] # [-log [-append]] [-notext] [-batch] # [-pgshome ] [-hdfhome ] # [-hdf5home ] # [-hdfeos_home ] # [-hdfeos5_home ] [-cpp] # [-netcdfhome ] # [-cpp_path ] [-c_rlib] # [-cc_flags "c flags"] [-fc_flags "fortran flags"] # [-cpp_flags "cpp flags"] # bin/INSTALL [-h] # # (where is the full path of the HDFEOS of HDFEOS5 home directory) # # options: # -dbug : build debug version of hdfeos # -f90 : build f90 version of the hdfeos # optional flag -NAG specifies NAG f90 # -ABSOFT : flag that specifies absoft f77 is used for # fortran compilation # -fc_path : set the path of the FORTRAN compiler to # # -no_ftn : build hdfeos without full FORTRAN support # -cc_path : set the path of the C compiler to # -sgi : build in -32 mode # -sgi32 : build in -n32 mode (SGI Power Challenge only) # -sgi64 : build in -64 mode (SGI Power Challenge only) # -log : send session output to new # -append : append to existing # -notext : skip long text messages # -batch : run script in batch (i.e. non-interactive) mode # -pgshome : full path of HDF-EOS top level directory # (e.g. /usr/local) # NOTE: this does NOT allow you to install the HDF-EOS in a # directory other than the one created from the HDF-EOS tar # file. # -hdfhome : full path to top level directory of installed HDF package # package (e.g. /usr/local/hdf/sgi64/HDF4.2.6) # -hdf5home: full path to top level directory of installed HDF5 package # package (e.g. /usr/localhdf/sgi64/hdf5-1.6.7) # -hdfeos_home : full path to top level directory of installed HDF-EOS # package (e.g. /usr/local/hdfeos) # -hdfeos5_home: full path to top level directory of installed HDF-EOS5 # package (e.g. /usr/local/hdfeos5) # -netcdfhome : full path to top level directory of installed netCDF # package (e.g. /usr/local/NETCDF/sgi64/netcdf-3.6.1) # package (e.g. /usr/local/hdf/sgi64/HDF4.2r6) # -h : display this help message and exit # -cpp : build C++ Version # -cpp_path: set the path of the C++ compiler to # -c_rlib : build C threadsafe Version # -cc_flags : set some additional C flags (c flags) # -fc_flags : set some additional Fortran flags (f flags) # -cpp_flags : set some additional CPP flags (cpp flags) # # # notes: # 1) The -fc_path and -cc_path options tell the script where to find # your compilers, in the event that they are in non-standard # locations. If the -NAG flag is specified, you should use the # -fc_path option to specify the path where the NAG f90 compiler # is located. # # If you use -ABSOFT flag to specify that you are using absoft # Fortran compiler, you should use the -fc_path option to specify # the path where the absoft f77 compiler is located. # # 2) The -pgshome switch allows you to explicity specify the top level # directory. This should be the full path upto and including # the directory hdfeos or hdfeos5 created when you untarred the # distribution file. This switch CANNOT be used install the hdfeos/hdfeos5 # anywhere other than the aforementioned directory. # # This switch may be useful when installing the hdfesoor hdeos5 in an # automounted directory (in some cases the hdfeos will otherwise # incorrectly set the value of the PGSHOME environment variable). # # 3) The -batch switch can be used to run this script in a non- # interactive mode. The script is not as flexible when run in this # mode. Namely, when using the script to install HDF and/or HDF-EOS, # these packages will be installed under the hdfeos directory. This # behavior cannot be changed. Also if you specify the -dbug switch # the HDF and HDF-EOS will all be installed in debug mode. # Finally if you attempt to install HDF and an installed HDF is found # in the default location it will be deleted and the whole HDF # package will be reinstalled. If you attempt to install HDF-EOS # and an hdfeos directory is found to exist in the default location # it will be "re-used". # # 4) The -hdfhome, -hdf5home, -hdfeos_home, -hdfeos5_home and netcdfhome # switches can be used to specify the location of previously # installed HDF4, HDF5, HDF-EOS2, HDF-EOS5, and netCDF distributions # (respectively). These switches should ONLY be used when you do NOT # intend to use this script to install HDF and/or HDF-EOS. # The netcdf switch only used for renaming internal netCDF calls in # HDF4 to avoid name symbol clashes if external netCDF package is # used with installed HDF4. # # 5) The -cc_flags, -fc_flags, and cpp_flags options tell the script # to use some additional flags that are not default hdfeos flags. # Such flags may be needed when users try new compilers. For example # with gfortran which is not the default Fortran compiler for linux # user may need -ff2c and/or -fPIC. In that case user should enter # -fc_flags "-ff2c -fPIC" on installation command line. Please note # that "" must be used around the entered flags as in the forementioned # gfortran example. # # author: # Mike Sucher / Applied Research Corp. # Guru Tej S. Khalsa / Applied Research Corp. # Megan E. Donovan Spencer / Space Applications Corporation # Abe Taaheri/Raytheon IIS # Phuong T. Nguyen/EITI # # history: # 07-Dec-2011 AT Used some part of Toolkit INSTALL script for this # intial version #--------------------------------------------------------------------------------------- #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 if [ "$log_file" != "" ] ; then echo "${this_script}: Error: $*" >> $log_file fi } # # Function to output message to logfile and console # EchoAndLog() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else echo "" if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to output long messages to logfile and console # NoteToLog() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to output message to logfile only # Log() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $script_dir/INSTALL | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to silently emulate the 'which' command # Which() { if [ "$1" = "" ] ; then WriteError "Which() : Too few arguments." exit 1 fi saveifs="$IFS" IFS=: which_result=0 which_cmd="" for dir in $PATH; do if [ -x $dir/$1 ] ; then which_result=1 which_cmd=$dir/$1 break fi done IFS="$saveifs" } # # Function to set up and export the following architecture-specific variables: # # BRAND LOGNAME PATH USER # SetArchitecture() { # set path to a base subset of directories, allowing startup on unknown host # note: once the architecture has been determined the path is customized PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11 # get operating system type, login name # special cases: SCO and Cray - uname works differently, pgs_machine=`uname -m | awk '{print $1}'` # needed on Cray & SCO pgs_temp_ostype=`uname` case "$pgs_machine" in i386 ) # SCO box pgs_ostype=sco386 ;; CRAY ) # CRAY pgs_ostype=UNICOS ;; * ) # everybody else pgs_ostype=`uname` ;; esac # Intel Macintosh is also i386 or i686 (?) machine if [ "$pgs_machine" = "i386" ] ; then if [ "$pgs_temp_ostype" = "Darwin" ] ; then pgs_ostype=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then pgs_ostype=Cygwin fi fi if [ "$pgs_machine" = "i686" ] ; then if [ "$pgs_temp_ostype" = "Darwin" ] ; then pgs_ostype=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then pgs_ostype=Cygwin fi fi if [ "$pgs_machine" = "x86_64" ] ; then if [ "$pgs_temp_ostype" = "Darwin" ] ; then pgs_ostype=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then pgs_ostype=Cygwin fi fi if [ "$pgs_machine" = "ia64" ] ; then if [ "$pgs_temp_ostype" = "Darwin" ] ; then pgs_ostype=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then pgs_ostype=Cygwin fi fi # For MAC Intel machines there is another way for determining 64-bit hardware if [ "$pgs_temp_ostype" = "Darwin" ] ; then if [ "$pgs_machine" = "ia64" ] || [ "$pgs_machine" = "i686" ] || [ "$pgs_machine" = "i386" ] || [ "$pgs_machine" = "x86_64" ] ; then pgs_ostype=DarwinIntel else # if still we could not determine pgs_machine MACis64=`sysctl -n hw.cpu64bit_capable` if [ $MACis64 = 1 ] ; then # Machine is definitly 64-bit and is MacIntel type pgs_ostype=DarwinIntel pgs_machine=x86_64 fi fi fi pgs_user=`id | cut -d\( -f2 | cut -d\) -f1` if [ "$LOGNAME" = "" ] ; then # make sure $LOGNAME is defined LOGNAME=$pgs_user export LOGNAME fi if [ "$USER" = "" ] ; then # make sure $LOGNAME is defined USER=$LOGNAME export USER fi # set machine-depdoneent environment variables: # pgs_host the host name of this machine # BRAND used by other achitecture-specific code # PATH the execution search path case "$pgs_ostype" in AIX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin pgs_host=`hostname` BRAND=ibm ;; HP-UX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11 pgs_host=`hostname` BRAND=hp ;; IRIX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin pgs_host=`hostname` BRAND=sgi sgi_mode=32 ;; IRIX64 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin pgs_host=`hostname` case "$sgi_mode" in n32 ) BRAND=sgi32 ;; 64 ) BRAND=sgi64 ;; old32 ) BRAND=sgi sgi_mode=32 ;; * ) EchoAndLog "The default HDF-EOS SGI installation is now 64 bit (sgi64). Other" EchoAndLog "available HDF-EOS SGI installation modes are new 32 bit (sgi32) and" EchoAndLog "old 32 bit (sgi)." EchoAndLog "" BRAND=sgi64 sgi_mode=64 if [ $batch_mode = 0 ] ; then UserPrompt "Which SGI installation mode would you like [sgi64]" else user_response=sgi64 fi case "$user_response" in sgi64 | "" ) EchoAndLog "" EchoAndLog "Installing in $BRAND (64 bit) mode..." EchoAndLog "" ;; sgi32 ) BRAND=$user_response sgi_mode=n32 EchoAndLog "" EchoAndLog "Installing in $BRAND (new 32 bit) mode..." EchoAndLog "" ;; sgi ) BRAND=$user_response sgi_mode=32 EchoAndLog "" EchoAndLog "Installing in $BRAND (old 32 bit) mode..." EchoAndLog "" ;; * ) EchoAndLog "" EchoAndLog "Unknown installation mode: $user_response." EchoAndLog "Installation cancelled." exit 1 ;; esac ;; esac ;; Linux ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin pgs_host=`hostname` LNX_COMP_FLAG="" export LNX_COMP_FLAG case "$pgs_machine" in i686 ) # Machine is 32-bit and Installation will be in 32-bit Mode. EchoAndLog "The default HDF-EOS LINUX installation for this machine is 32 bit." EchoAndLog "HDF-EOS and other software will be installed in 32 bit Mode." EchoAndLog "" #in 32 bit machine no need for -m32 flag LNX_COMP_FLAG="" export LNX_COMP_FLAG BRAND=linux LINUX_BRAND=linux ;; x86_64 | ia64 ) # Machine is 64-bit and Installation will be in 32-bit or # 64-bit Mode. NoteToLog "Note: If your system is CentOS linux, you may need -fPIC compilation flag." NoteToLog "If that is the case you better quit here (using Ctrl-c) and re-start" NoteToLog "installation with additional arguments -cc_flags \"-fPIC\" and/or " NoteToLog "-cpp_flags \"-fPIC\" and -fc_flags \"-fPIC\" if you have not done so." NoteToLog "You may type bin/INSTALL -h to see notes on how to add additional" NoteToLog "compilation flags" NoteToLog "The default HDF-EOS LINUX installation for this machine is 64 bit. Other" NoteToLog "available HDF-EOS LINUX installation mode is 32 bit Mode" NoteToLog "" if [ $batch_mode = 0 ] ; then UserPrompt "Which LINUX installation mode would you like? lnx32 or lnx64 ? [lnx64]" else user_response=lnx64 fi case "$user_response" in lnx64 | "" ) EchoAndLog "" EchoAndLog "Installing in $BRAND (64 bit) mode..." EchoAndLog "" #in 64 bit machine no need for any flag #for 64-bit installation LNX_COMP_FLAG="" export LNX_COMP_FLAG BRAND=linux64 LINUX_BRAND=linux64 ;; lnx32 ) EchoAndLog "" EchoAndLog "Installing in $BRAND (32 bit) mode..." EchoAndLog "" #in 64 bit machine we need -m32 flag #for 32-bit installation LNX_COMP_FLAG="-m32" export LNX_COMP_FLAG BRAND=linux32 LINUX_BRAND=linux32 ;; * ) EchoAndLog "" EchoAndLog "Unknown installation mode: $user_response." EchoAndLog "Needed lnx32 or lnx64 responses." EchoAndLog "Installation cancelled." exit 1 ;; esac ;; esac ;; Darwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin pgs_host=`hostname` BRAND=macintosh ;; DarwinIntel ) PATH=/bin:/sbin:/usr/bin:/usr/sbin pgs_host=`hostname` BRAND=macintel MACINTEL_COMP_FLAG="-m32" export MACINTEL_COMP_FLAG case "$pgs_machine" in x86_64 | ia64 | i686 | i386) # Machine is 64-bit and Installation will be in 32-bit or # 64-bit Mode. EchoAndLog "The default HDF-EOS MACINTEL installation for this machine is 32 bit. Other" EchoAndLog "available HDF-EOS MACINTEL installation mode is 64 bit Mode" EchoAndLog "" if [ $batch_mode = 0 ] ; then UserPrompt "Which MAC installation mode would you like? mac32 or mac64 ? [mac64]" else user_response=mac64 fi case "$user_response" in mac64 | "" ) EchoAndLog "" EchoAndLog "Installing in $BRAND (64 bit) mode..." EchoAndLog "" #in 64 bit machine we need -fPIC flag #for 64-bit installation MACINTEL_COMP_FLAG="-mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk -fPIC" export MACINTEL_COMP_FLAG BRAND=macintel64 MAC_BRAND=macintel64 ;; mac32 ) EchoAndLog "" EchoAndLog "Installing in $BRAND (32 bit) mode..." EchoAndLog "" #in 64 bit machine we need -m32 flag #for 32-bit installation MACINTEL_COMP_FLAG="-m32" export MACINTEL_COMP_FLAG BRAND=macintel32 MAC_BRAND=macintel32 ;; * ) EchoAndLog "" EchoAndLog "Unknown installation mode: $user_response." EchoAndLog "Needed mac32 or mac64 responses." EchoAndLog "Installation cancelled." exit 1 ;; esac ;; esac ;; Cygwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin pgs_host=`hostname` BRAND=cygwin ;; OSF1 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin pgs_host=`hostname -s` BRAND=dec ;; sco386 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11 pgs_host=`hostname -s` BRAND=sco ;; SunOS ) # distinguish between SunOS 5.x and 4.x versions if [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 10" ] ; then BRAND="sun5.10" # release V5.10 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 9" ] ; then BRAND="sun5.9" # release V5.9 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 8" ] ; then BRAND="sun5.8" # release V5.8 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin else BRAND="sun5" # release V5.x SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/ccs/bin:/usr/sbin fi if [ "`uname -r | awk -F. '{print $1}'`" = "4" ] ; then BRAND="sun4" # release V4.x SunOS PATH=/usr/local/bin:/usr/local/lang:/usr/lang:/usr/ucb:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo fi pgs_host=`hostname` ;; UNICOS ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/ucb:/usr/bin/X11 pgs_host=`hostname` BRAND=cray ;; * ) WriteError "Operating system: $pgs_ostype not supported" WriteError "This release of the HDF-EOS supports: " WriteError " Sun SGI Cygwin Darwin/Darwin Intel Linux IRIX/IRIX64 HP-9000 IBM-6000 DEC-Alpha and Cray/Unicos " exit 1 ;; esac # export the architecture-specific variables export LINUX_BRAND MAC_BRAND export BRAND PATH } # # Function to install HDF (or get location of HDF installation) # InstallHdf() { hdf_flags="" hdf5_flags="" current_zlib="zlib-1.2.5" current_jpeg="jpeg-6b" current_hdf="hdf-4.2.6" current_hdf5="hdf5-1.8.8" current_szip="szip-2.1" if [ "$notext" = "0" -a "$batch_mode" = 0 ] ; then more << EOF * * * The current releases of HDF to be installed: $current_hdf or $current_hdf5 If these release of HDF are already installed on your host, you may enter its location when prompted. The installation procedure will then attempt to use your copy of HDF to build the hdfeos. Note: this may not work if your HDF installation uses a non-standard directory structure for the installed library and header files. If the correct releases of HDF are not installed on your host, or you wish to re-install, you will have an opportunity to install them momentarily. In order to do this, you must already have downloaded the HDF distribution files and szip tar file, if you wish to install HDF5 with szib. It is available on the same ftp server where the toolkit distribution files are located. * * * HDF4 uses an internal netCDF library. If you are going to use your externally installed netCDF, then HDF4 will be installed with --disable-netcdf so that netCDF function in HDF4 are renamed, avoiding clash between name symbols of the internal and external netCDF packages. If you answer NO to the question below regarding the netCDF (HDF4 installation section), or if you already have installed HDF4 that has not been configured with the --disable-netcdf flag, then there is a possibility that you may not be able to use your externally installed netCDF in applications that use the installed HDF4, or HDF-EOS here. You may check your pre-installed libmfhdf.a library with "strings libmfhdf.a|grep sd_ncopen", to see if it contains sd_ncopen. If yes, then you can use external netCDF in your applications that also uses your HDF4. EOF UserPrompt "Continue installation [yes]" case "$user_response" in n* | N* ) EchoAndLog "Installation cancelled." exit 0 ;; esac fi # # Select ZLIB installation option # zlib_installed=0 # assume ZLIB is not installed if [ $batch_mode = 0 -a "$zlibhome" = "" ] ; then UserPrompt "Is $current_zlib installed at your site [no]" case "$user_response" in y* | Y* ) zlib_installed=1 ;; esac elif [ "$zlibhome" != "" ] ; then zlib_installed=1 fi if [ $zlib_installed = 1 ] ; then # # The user says ZLIB is installed: ask where it is located (if not in batch mode) # if [ $batch_mode = 0 -a "$zlibhome" = "" ] ; then ZLIB_path="$PGSHOME/zlib/$BRAND/$current_zlib" UserPrompt "Pathname where $current_zlib is installed [$ZLIB_path]" if [ "$user_response" != "" ] ; then if [ -d "$user_response" ] ; then ZLIB_path="$user_response" fi fi else ZLIB_path=$zlibhome fi # # Make sure it is really there. # if [ -d ${ZLIB_path} ] ; then if [ -d ${ZLIB_path}/${current_zlib} ] ; then temp=`basename ${ZLIB_path}` if [ "$temp" != "$current_zlib" ] ; then zlibdirs="${ZLIB_path}/${current_zlib} ${ZLIB_path} ${ZLIB_path}/${current_zlib}/NewZLIB ${ZLIB_path}/NewZLIB" else zlibdirs="${ZLIB_path} ${ZLIB_path}/NewZLIB ${ZLIB_path}/${current_zlib} ${ZLIB_path}/${current_zlib}/NewZLIB" fi else zlibdirs="${ZLIB_path} ${ZLIB_path}/NewZLIB" fi # # Check for critical ZLIB directories # found=0 # check for lib directory for dir in ${zlibdirs} ; do if [ -d $dir/lib -a -d $dir/include ] ; then ZLIBHOME=${dir} export ZLIBHOME found=1 break fi done if [ $found = 0 ] ; then Done "The ZLIB lib or include directory was not found." fi EchoAndLog "Setting ZLIB home directory to: $ZLIBHOME" else Done "Specified ZLIB directory ($ZLIB_path) does not exist" fi zlib_installed=1 # flag ZLIB as successfully installed else # # The user says ZLIB is NOT installed: ask if it should be installed now # if [ $batch_mode = 0 ] ; then UserPrompt "Do you wish to install $current_zlib now [yes]" else user_response=y fi case "$user_response" in n* | N* ) ;; * ) # Run the ZLIB installation script # # EchoAndLog "Running the ZLIB Installation Script ..." # set installation flags home_file=${PGSHOME}/.install-zlibhome zlib_flags="-cleano -w_home $home_file" if [ "$log_file" != "" ] ; then zlib_flags="$zlib_flags -log $log_file -append" fi if [ "$sgi_mode" = "n32" ] ; then # set flag for SGI n32 mode zlib_flags="$zlib_flags -sgi32" elif [ "$sgi_mode" = "64" ] ; then # set flag for SGI 64-bit mode zlib_flags="$zlib_flags -sgi64" fi if [ "$f90_flag" = "1" ] ; then # set flag for f90 build zlib_flags="$zlib_flags -f90" if [ "$nag_flag" = "1" ] ; then # using NAG f90 zlib_flags="$zlib_flags -NAG" fi fi if [ "$absoft_flag" = "1" ] ; then # using ABSOFT F77 zlib_flags="$zlib_flags -ABSOFT" fi if [ "$fc_path" != "" ] ; then # path for FORTRAN compiler zlib_flags="$zlib_flags -fc_path $fc_path" fi if [ "$cc_path" != "" ] ; then # path for C compiler zlib_flags="$zlib_flags -cc_path $cc_path" fi if [ $batch_mode = 1 ] ; then # batch mode zlib_flags="$zlib_flags -batch" fi # run the installation script $script_dir/INSTALL-Scripts/INSTALL-ZLIB $zlib_flags -install_dir $PGSHOME/zlib/$BRAND if [ "$?" != "0" ] ; then Done "The ZLIB Installation Script failed or had errors." fi # get ZLIB home directory from the ZLIB installation ZLIBHOME="`cat $home_file`" export ZLIBHOME if [ "$?" != "0" ] ; then Done "Unable to get ZLIB home directory." fi if [ -f "$home_file" ] ; then \rm -f $home_file # clean up the zlibhome file fi zlib_installed=1 # flag HDF as successfully installed ;; esac fi # # Set ZLIB directories: # # - first look in $ZLIBHOME # - if not found, default to $ZLIBHOME/zlib # if [ $?ZLIBHOME ] ; then if [ -d $ZLIBHOME/include ] ; then # ZLIB header files ZLIBINC=$ZLIBHOME/include else ZLIBINC=$ZLIBHOME/zlib/include fi if [ -d $ZLIBHOME/lib ] ; then # ZLIB libraries ZLIBLIB=$ZLIBHOME/lib else ZLIBLIB=$ZLIBHOME/zlib/lib fi export ZLIBHOME ZLIBINC ZLIBLIB fi # # Select JPEG installation option. # jpeg_installed=0 # assume JPEG is not installed if [ $batch_mode = 0 -a "$jpeghome" = "" ] ; then UserPrompt "Is $current_jpeg installed at your site [no]" case "$user_response" in y* | Y* ) jpeg_installed=1 ;; esac elif [ "$jpeghome" != "" ] ; then jpeg_installed=1 fi if [ $jpeg_installed = 1 ] ; then # # The user says JPEG is installed: ask where it is located (if not in batch mode) # if [ $batch_mode = 0 -a "$jpeghome" = "" ] ; then JPEG_path="$PGSHOME/jpeg/$BRAND/$current_jpeg" UserPrompt "Pathname where $current_jpeg is installed [$JPEG_path]" if [ "$user_response" != "" ] ; then if [ -d "$user_response" ] ; then JPEG_path="$user_response" fi fi else JPEG_path=$jpeghome fi # # Make sure it is really there. # if [ -d ${JPEG_path} ] ; then if [ -d ${JPEG_path}/${current_jpeg} ] ; then temp=`basename ${JPEG_path}` if [ "$temp" != "$current_jpeg" ] ; then hdfdirs="${JPEG_path}/${current_jpeg} ${JPEG_path} ${JPEG_path}/${current_jpeg}/NewJPEG ${JPEG_pa th}/NewJPEG" else jpegdirs="${JPEG_path} ${JPEG_path}/NewJPEG ${JPEG_path}/${current_jpeg} ${JPEG_path}/${current_ jpeg}/NewJPEG" fi else jpegdirs="${JPEG_path} ${JPEG_path}/NewJPEG" fi # # Check for critical JPEG directories # found=0 # check for lib directory for dir in ${jpegdirs} ; do if [ -d $dir/lib -a -d $dir/include ] ; then JPEGHOME=${dir} export JPEGHOME found=1 break fi done if [ $found = 0 ] ; then Done "The JPEG lib or include directory was not found." fi EchoAndLog "Setting JPEG home directory to: $JPEGHOME" else Done "Specified JPEG directory ($JPEG_path) does not exist" fi jpeg_installed=1 # flag JPEG as successfully installed else # # The user says JPEG is NOT installed: ask if it should be installed now # if [ $batch_mode = 0 ] ; then UserPrompt "Do you wish to install $current_jpeg now [yes]" else user_response=y fi case "$user_response" in n* | N* ) ;; * ) # Run the JPEG installation script # # EchoAndLog "Running the JPEG Installation Script ..." # set installation flags home_file=${PGSHOME}/.install-jpeghome jpeg_flags="-cleano -w_home $home_file" if [ "$log_file" != "" ] ; then jpeg_flags="$jpeg_flags -log $log_file -append" fi if [ "$sgi_mode" = "n32" ] ; then # set flag for SGI n32 mode jpeg_flags="$jpeg_flags -sgi32" elif [ "$sgi_mode" = "64" ] ; then # set flag for SGI 64-bit mode jpeg_flags="$jpeg_flags -sgi64" fi if [ "$f90_flag" = "1" ] ; then # set flag for f90 build jpeg_flags="$jpeg_flags -f90" if [ "$nag_flag" = "1" ] ; then # using NAG f90 jpeg_flags="$jpeg_flags -NAG" fi fi if [ "$absoft_flag" = "1" ] ; then # using ABSOFT F77 jpeg_flags="$jpeg_flags -ABSOFT" fi if [ "$fc_path" != "" ] ; then # path for FORTRAN compiler jpeg_flags="$jpeg_flags -fc_path $fc_path" fi if [ "$cc_path" != "" ] ; then # path for C compiler jpeg_flags="$jpeg_flags -cc_path $cc_path" fi if [ $batch_mode = 1 ] ; then # batch mode jpeg_flags="$jpeg_flags -batch" fi # run the installation script $script_dir/INSTALL-Scripts/INSTALL-JPEG $jpeg_flags -install_dir $PGSHOME/jpeg/$BRAND if [ "$?" != "0" ] ; then Done "The JPEG Installation Script failed or had errors." fi # get JPEG home directory from the JPEG installation JPEGHOME="`cat $home_file`" export JPEGHOME if [ "$?" != "0" ] ; then Done "Unable to get JPEG home directory." fi if [ -f "$home_file" ] ; then \rm -f $home_file # clean up the jpeghome file fi jpeg_installed=1 # flag JPEG as successfully installed ;; esac fi # # Set JPEG directories: # # - first look in $JPEGHOME # - if not found, default to $JPEGHOME/jpeg # if [ $?JPEGHOME ] ; then if [ -d $JPEGHOME/bin ] ; then # JPEG utilities JPEGBIN=$JPEGHOME/bin else JPEGBIN=$JPEGHOME/jpeg/bin fi if [ -d $JPEGHOME/include ] ; then # JPEG headers JPEGINC=$JPEGHOME/include else JPEGINC=$JPEGHOME/jpeg/include fi if [ -d $JPEGHOME/lib ] ; then # JPEG libraries JPEGLIB=$JPEGHOME/lib else JPEGLIB=$JPEGHOME/jpeg/lib fi export JPEGHOME JPEGBIN JPEGINC JPEGLIB fi # # Select SZIP installation option. # szip_installed=0 # assume SZIP is not installed if [ $batch_mode = 0 -a "$sziphome" = "" ] ; then UserPrompt "Is $current_szip installed at your site [no]" case "$user_response" in y* | Y* ) szip_installed=1 ;; esac elif [ "$sziphome" != "" ] ; then szip_installed=1 fi if [ $szip_installed = 1 ] ; then # # The user says SZIP is installed: ask where it is located #(if not in batch mode) # if [ $batch_mode = 0 -a "$sziphome" = "" ] ; then SZIP_path="$PGSHOME/szip/$BRAND/$current_szip" UserPrompt "Pathname where $current_szip is installed [$SZIP_path]" if [ "$user_response" != "" ] ; then if [ -d "$user_response" ] ; then SZIP_path="$user_response" fi fi else SZIP_path=$sziphome fi # # Make sure it is really there. # if [ -d ${SZIP_path} ] ; then if [ -d ${SZIP_path}/${current_szip} ] ; then temp=`basename ${SZIP_path}` if [ "$temp" != "$current_szip" ] ; then szipdirs="${SZIP_path}/${current_szip} ${SZIP_path} ${SZIP_path}/${current_szip}/NewSZIP ${SZIP_path}/NewSZIP" else szipdirs="${SZIP_path} ${SZIP_path}/NewSZIP ${SZIP_path}/${current_szip} ${SZIP_path}/${current_szip}/NewSZIP" fi else szipdirs="${SZIP_path} ${SZIP_path}/NewSZIP" fi # # Check for critical SZIP directories # found=0 # check for lib directory for dir in ${szipdirs} ; do if [ -d $dir/lib -a -d $dir/include ] ; then SZIPHOME=${dir} export SZIPHOME found=1 break fi done if [ $found = 0 ] ; then Done "The SZIP lib or include directory was not found." fi EchoAndLog "Setting SZIP home directory to: $SZIPHOME" else Done "Specified SZIP directory ($SZIP_path) does not exist" fi szip_installed=1 # flag SZIP as successfully installed else # # The user says SZIP is NOT installed:ask if it should be installed now # if [ $batch_mode = 0 ] ; then EchoAndLog "WARNING: Commercial users should obtain szip license" EchoAndLog "if they intend to distribute their products with szip" EchoAndLog "encoder. The szip decoder does not require license." UserPrompt "Do you wish to install full $current_szip (encoder + decoder) [yes]" else user_response=y fi case "$user_response" in n* | N* ) szip_encode=n export szip_encode EchoAndLog "Running the SZIP (without encoding) Installation Script ..." ;; * ) szip_encode=y export szip_encode EchoAndLog "Running the SZIP (with encoding) Installation Script ..." ;; esac # Run the SZIP installation script # # # set installation flags home_file=${PGSHOME}/.install-sziphome szip_flags="-cleano -w_home $home_file" if [ "$log_file" != "" ] ; then szip_flags="$szip_flags -log $log_file -append" fi if [ "$sgi_mode" = "n32" ] ; then # set flag for SGI n32 mode szip_flags="$szip_flags -sgi32" elif [ "$sgi_mode" = "64" ] ; then # set flag for SGI 64-bit mode szip_flags="$szip_flags -sgi64" fi if [ "$f90_flag" = "1" ] ; then # set flag for f90 build szip_flags="$szip_flags -f90" if [ "$nag_flag" = "1" ] ; then # using NAG f90 szip_flags="$szip_flags -NAG" fi fi if [ "$absoft_flag" = "1" ] ; then # using ABSOFT F77 szip_flags="$szip_flags -ABSOFT" fi if [ "$fc_path" != "" ] ; then # path for FORTRAN compiler szip_flags="$szip_flags -fc_path $fc_path" fi if [ "$cc_path" != "" ] ; then # path for C compiler szip_flags="$szip_flags -cc_path $cc_path" fi if [ $batch_mode = 1 ] ; then # batch mode szip_flags="$szip_flags -batch" fi # run the installation script $script_dir/INSTALL-Scripts/INSTALL-SZIP $szip_flags -install_dir $PGSHOME/szip/$BRAND if [ "$?" != "0" ] ; then Done "The SZIP Installation Script failed or had errors." fi # get SZIP home directory from the SZIP installation SZIPHOME="`cat $home_file`" export SZIPHOME if [ "$?" != "0" ] ; then Done "Unable to get SZIP home directory." fi if [ -f "$home_file" ] ; then \rm -f $home_file # clean up the sziphome file fi szip_installed=1 # flag SZIP as successfully installed fi # # Set SZIP directories: # # - first look in $SZIPHOME # - if not found, default to $SZIPHOME/szip # if [ $?SZIPHOME ] ; then if [ -d $SZIPHOME/include ] ; then # SZIP header files SZIPINC=$SZIPHOME/include else SZIPINC=$SZIPHOME/szip/include fi if [ -d $SZIPHOME/lib ] ; then # SZIP libraries SZIPLIB=$SZIPHOME/lib echo "Setting LD_LIBRARY_PATH to $SZIPLIB" LD_LIBRARY_PATH=$SZIPLIB # For SZIP Shared libs else SZIPLIB=$SZIPHOME/szip/lib echo "Setting LD_LIBRARY_PATH to $SZIPLIB" LD_LIBRARY_PATH=$SZIPLIB # For SZIP Shared libs fi export SZIPHOME SZIPINC SZIPLIB LD_LIBRARY_PATH fi # # Select HDF installation option. # hdf_installed=0 # assume HDF is not installed if [ $batch_mode = 0 -a "$hdfhome" = "" ] ; then UserPrompt "Is $current_hdf installed at your site [no]" case "$user_response" in y* | Y* ) hdf_installed=1 ;; esac elif [ "$hdfhome" != "" ] ; then hdf_installed=1 fi if [ $hdf_installed = 1 ] ; then # # The user says HDF is installed: ask where it is located (if not in batch mode) # if [ $batch_mode = 0 -a "$hdfhome" = "" ] ; then HDF_path="$PGSHOME/hdf/$BRAND/$current_hdf" UserPrompt "Pathname where $current_hdf is installed [$HDF_path]" if [ "$user_response" != "" ] ; then if [ -d "$user_response" ] ; then HDF_path="$user_response" fi fi else HDF_path=$hdfhome fi # # Make sure it is really there. # if [ -d ${HDF_path} ] ; then if [ -d ${HDF_path}/${current_hdf} ] ; then temp=`basename ${HDF_path}` if [ "$temp" != "$current_hdf" ] ; then hdfdirs="${HDF_path}/${current_hdf} ${HDF_path} ${HDF_path}/${current_hdf}/NewHDF ${HDF_path}/NewHDF" else hdfdirs="${HDF_path} ${HDF_path}/NewHDF ${HDF_path}/${current_hdf} ${HDF_path}/${current_hdf}/NewHDF" fi else hdfdirs="${HDF_path} ${HDF_path}/NewHDF" fi # # Check for critical HDF directories # found=0 # check for lib directory for dir in ${hdfdirs} ; do if [ -d $dir/lib -a -d $dir/include ] ; then HDFHOME=${dir} export HDFHOME found=1 break fi done if [ $found = 0 ] ; then Done "The HDF lib or include directory was not found." fi EchoAndLog "Setting HDF home directory to: $HDFHOME" else Done "Specified HDF directory ($HDF_path) does not exist" fi hdf_installed=1 # flag HDF as successfully installed else # # The user says HDF is NOT installed: ask if it should be installed now # if [ $batch_mode = 0 ] ; then UserPrompt "Do you wish to install $current_hdf now [yes]" else user_response=y fi case "$user_response" in n* | N* ) ;; * ) # Run the HDF installation script # # # set installation flags home_file=${PGSHOME}/.install-hdfhome hdf_flags="-cleano -w_home $home_file" if [ "$log_file" != "" ] ; then hdf_flags="$hdf_flags -log $log_file -append" fi if [ "$dbug" != "" ] ; then if [ $batch_mode = 0 ] ; then UserPrompt "Do you wish to install $current_hdf in debug mode [yes]" else user_response=y fi case "$user_response" in n* | N*) ;; *) hdf_flags="$hdf_flags -dbug" ;; esac fi if [ "$sgi_mode" = "n32" ] ; then # set flag for SGI n32 mode hdf_flags="$hdf_flags -sgi32" elif [ "$sgi_mode" = "64" ] ; then # set flag for SGI 64-bit mode hdf_flags="$hdf_flags -sgi64" fi if [ "$f90_flag" = "1" ] ; then # set flag for f90 build hdf_flags="$hdf_flags -f90" if [ "$nag_flag" = "1" ] ; then # using NAG f90 hdf_flags="$hdf_flags -NAG" fi fi if [ "$absoft_flag" = "1" ] ; then # using ABSOFT F77 hdf_flags="$hdf_flags -ABSOFT" fi if [ "$fc_path" != "" ] ; then # path for FORTRAN compiler hdf_flags="$hdf_flags -fc_path $fc_path" fi if [ "$cc_path" != "" ] ; then # path for C compiler hdf_flags="$hdf_flags -cc_path $cc_path" fi if [ $batch_mode = 1 ] ; then # batch mode hdf_flags="$hdf_flags -batch" fi # # See if user will be using external netCDF # User_has_external_netCDF=0 # assume external netCDF will not be used if [ $batch_mode = 0 -a "$netcdfhome" = "" ] ; then UserPrompt "Are you going to use external netCDF with your HDF4 applications[no]" case "$user_response" in y* | Y* ) User_has_external_netCDF=1 ;; esac elif [ "$netcdfhome" != "" ] ; then User_has_external_netCDF=1 fi export User_has_external_netCDF EchoAndLog "Running the HDF4 Installation Script ..." # run the installation script $script_dir/INSTALL-Scripts/INSTALL-HDF $hdf_flags -install_dir $PGSHOME/hdf/$BRAND if [ "$?" != "0" ] ; then Done "The HDF Installation Script failed or had errors." fi # get HDF home directory from the HDF installation HDFHOME="`cat $home_file`" export HDFHOME if [ "$?" != "0" ] ; then Done "Unable to get HDF home directory." fi if [ -f "$home_file" ] ; then \rm -f $home_file # clean up the hdfhome file fi hdf_installed=1 # flag HDF as successfully installed ;; esac fi # # Set HDF directories: # # - first look in $HDFHOME # - if not found, default to $HDFHOME/hdf # if [ $?HDFHOME ] ; then if [ -d $HDFHOME/bin ] ; then # HDF utilities HDFBIN=$HDFHOME/bin else HDFBIN=$HDFHOME/hdf/bin fi if [ -d $HDFHOME/include ] ; then # HDF header files HDFINC=$HDFHOME/include else HDFINC=$HDFHOME/hdf/include fi if [ -d $HDFHOME/lib ] ; then # HDF libraries HDFLIB=$HDFHOME/lib else HDFLIB=$HDFHOME/hdf/lib fi export HDFHOME HDFBIN HDFINC HDFLIB fi # # To avoid requiring old HDF4 users to change their makefiles to include # JPEGINC, JPEGLIB, ZLIBINC, and ZLIBLIB we copy header/library files to # the HDF4 include and lib directories # if [ -d $HDFINC ] ; then if [ "$log_file" != "" ] ; then echo "" >> $log_file EchoAndLog "***** Copying JPEG, ZLIB, and SZIP header and library ********" EchoAndLog "********** files to relevant directories in HDF. **********" echo "" else echo "" EchoAndLog "***** Copying JPEG, ZLIB and SZIP header and library *********" EchoAndLog "********** files to relevant directories in HDF. **********" echo "" fi fi if [ $jpeg_installed = 1 ] ; then if [ -d $HDFINC ] ; then cp $JPEGINC/*.h $HDFINC/. fi if [ -d $HDFLIB ] ; then cp $JPEGLIB/* $HDFLIB/. fi fi if [ $zlib_installed = 1 ] ; then if [ -d $HDFINC ] ; then cp $ZLIBINC/*.h $HDFINC/. fi if [ -d $HDFLIB ] ; then cp $ZLIBLIB/* $HDFLIB/. fi fi if [ $szip_installed = 1 ] ; then if [ -d $HDFINC ] ; then cp $SZIPINC/*.h $HDFINC/. fi if [ -d $HDFLIB ] ; then cp $SZIPLIB/* $HDFLIB/. fi fi if [ "$BRAND" = "macintosh" ] || [ "$BRAND" = "macintel" ] ; then EchoAndLog "**** Running ranlib on libjpeg.a in jpeg and hdf4 dirs. ****" ranlib $JPEGLIB/libjpeg.a ranlib $HDFLIB/libjpeg.a fi # # Select HDF5 installation option. # hdf5_installed=0 # assume HDF5 is not installed if [ $batch_mode = 0 -a "$hdf5home" = "" ] ; then UserPrompt "Is $current_hdf5 installed at your site [no]" case "$user_response" in y* | Y* ) hdf5_installed=1 ;; esac elif [ "$hdf5home" != "" ] ; then hdf5_installed=1 fi if [ $hdf5_installed = 1 ] ; then # # The user says HDF5 is installed: ask where it is located #(if not in batch mode) # if [ $batch_mode = 0 -a "$hdf5home" = "" ] ; then HDF5_path="$PGSHOME/hdf5/$BRAND/$current_hdf5" UserPrompt "Pathname where $current_hdf5 is installed [$HDF5_path]" if [ "$user_response" != "" ] ; then if [ -d "$user_response" ] ; then HDF5_path="$user_response" fi fi else HDF5_path=$hdf5home fi # # Make sure it is really there. # if [ -d ${HDF5_path} ] ; then if [ -d ${HDF5_path}/${current_hdf5} ] ; then temp=`basename ${HDF5_path}` if [ "$temp" != "$current_hdf5" ] ; then hdf5dirs="${HDF5_path}/${current_hdf5} ${HDF5_path} ${HDF5_path}/${current_hdf5}/NewHDF ${HDF5_path}/NewHDF" else hdf5dirs="${HDF5_path} ${HDF5_path}/NewHDF ${HDF5_path}/${current_hdf5} ${HDF5_path}/${current_hdf5}/NewHDF" fi else hdf5dirs="${HDF5_path} ${HDF5_path}/NewHDF" fi # # Check for critical HDF5 directories # found=0 # check for lib directory for dir in ${hdf5dirs} ; do if [ -d $dir/lib -a -d $dir/include ] ; then HDF5HOME=${dir} export HDF5HOME found=1 break fi done if [ $found = 0 ] ; then Done "The HDF5 lib or include directory was not found." fi EchoAndLog "Setting HDF5 home directory to: $HDF5HOME" else Done "Specified HDF5 directory ($HDF5_path) does not exist" fi hdf5_installed=1 # flag HDF5 as successfully installed else # # The user says HDF5 is NOT installed:ask if it should be installed now # if [ $batch_mode = 0 ] ; then UserPrompt "Do you wish to install $current_hdf5 now [yes]" else user_response=y fi case "$user_response" in n* | N* ) ;; * ) # Run the HDF5 installation script # # EchoAndLog "Running the HDF5 Installation Script ..." # set installation flags home_file=${PGSHOME}/.install-hdf5home hdf5_flags="-cleano -w_home $home_file" if [ "$log_file" != "" ] ; then hdf5_flags="$hdf5_flags -log $log_file -append" fi if [ "$dbug" != "" ] ; then if [ $batch_mode = 0 ] ; then UserPrompt "Do you wish to install $current_hdf5 in debug mode [yes]" else user_response=y fi case "$user_response" in n* | N*) if [ "$c_rlib" = "1" ] ; then #set threadsafe flag UserPrompt "Do you want Thread-safe HDF5 is installed at your site [no]" case "$user_response" in y* | Y* ) PTHREAD_HOME=/usr UserPrompt "Pathname where pthread lib and include directories are located [$PTHREAD_HOME]" if [ "$user_response" != "" ] ; then if [ -d "$user_response" ] ; then PTHREAD_HOME="$user_response" fi else PTHREAD_HOME=/usr fi if [ -f "$PTHREAD_HOME/include/pthread.h" ] ; then export PTHREAD_HOME hdf5_flags="$hdf5_flags -c_rlib" EchoAndLog "Thread-Safe HDF5 will be Installed." else hdf5_flags="$hdf5_flags" EchoAndLog "Thread-safe pthread.h not found. HDF5 will be Installed without thread-safty." fi ;; esac else hdfeos5_flags="$hdf5_flags" fi ;; *) if [ "$c_rlib" = "1" ] ; then #set threadsafe flag UserPrompt "Do you want Thread-safe HDF5 is installed at your site [no]" case "$user_response" in y* | Y* ) PTHREAD_HOME=/usr UserPrompt "Pathname where pthread lib and include directories are located [$PTHREAD_HOME]" if [ "$user_response" != "" ] ; then if [ -d "$user_response" ] ; then PTHREAD_HOME="$user_response" fi else PTHREAD_HOME=/usr fi if [ -f "$PTHREAD_HOME/include/pthread.h" ] ; then export PTHREAD_HOME hdf5_flags="$hdf5_flags -dbug -c_rlib" EchoAndLog "Thread-Safe HDF5 will be Installed." else hdf5_flags="$hdf5_flags -dbug " EchoAndLog "Thread-Safe pthread.h not found. HDF5 will be Installed without thread-safty." fi ;; esac else hdf5_flags="$hdf5_flags -dbug" fi ;; esac else if [ "$c_rlib" = "1" ] ; then #set threadsafe flag UserPrompt "Do you want Thread-safe HDF5 is installed at your site [no]" case "$user_response" in y* | Y* ) PTHREAD_HOME=/usr UserPrompt "Pathname where pthread lib and include directories are located [$PTHREAD_HOME]" if [ "$user_response" != "" ] ; then if [ -d "$user_response" ] ; then PTHREAD_HOME="$user_response" fi else PTHREAD_HOME=/usr fi if [ -f "$PTHREAD_HOME/include/pthread.h" ] ; then export PTHREAD_HOME hdf5_flags="$hdf5_flags -c_rlib" EchoAndLog "Thread-Safe HDF5 will be Installed." else hdf5_flags="$hdf5_flags" EchoAndLog "Thread-Safe pthread.h not found. HDF5 will be Installed without thread-safty." fi ;; esac fi fi if [ "$sgi_mode" = "n32" ] ; then # set flag for SGI n32 mode hdf5_flags="$hdf5_flags -sgi32" elif [ "$sgi_mode" = "64" ] ; then # set flag for SGI 64-bit mode hdf5_flags="$hdf5_flags -sgi64" fi if [ "$f90_flag" = "1" ] ; then # set flag for f90 build hdf5_flags="$hdf5_flags -f90" if [ "$nag_flag" = "1" ] ; then # using NAG f90 hdf5_flags="$hdf5_flags -NAG" fi fi if [ "$absoft_flag" = "1" ] ; then # using ABSOFT F77 hdf5_flags="$hdf5_flags -ABSOFT" fi if [ "$fc_path" != "" ] ; then # path for FORTRAN compiler hdf5_flags="$hdf5_flags -fc_path $fc_path" fi if [ "$cc_path" != "" ] ; then # path for C compiler hdf5_flags="$hdf5_flags -cc_path $cc_path" fi if [ $batch_mode = 1 ] ; then # batch mode hdf5_flags="$hdf5_flags -batch" fi # run the installation script $script_dir/INSTALL-Scripts/INSTALL-HDF5 $hdf5_flags -install_dir $PGSHOME/hdf5/$BRAND if [ "$?" != "0" ] ; then Done "The HDF5 Installation Script failed or had errors." fi # get HDF5 home directory from the HDF5 installation HDF5HOME="`cat $home_file`" export HDF5HOME if [ "$?" != "0" ] ; then Done "Unable to get HDF5 home directory." fi if [ -f "$home_file" ] ; then \rm -f $home_file # clean up the hdf5home file fi hdf5_installed=1 # flag HDF5 as successfully installed ;; esac fi # # Set HDF5 directories: # # - first look in $HDF5HOME # - if not found, default to $HDF5HOME/hdf5 # if [ $?HDF5HOME ] ; then if [ -d $HDF5HOME/bin ] ; then # HDF5 utilities HDF5BIN=$HDF5HOME/bin else HDF5BIN=$HDF5HOME/hdf5/bin fi if [ -d $HDF5HOME/include ] ; then # HDF5 header files HDF5INC=$HDF5HOME/include else HDF5INC=$HDF5HOME/hdf5/include fi if [ -d $HDF5HOME/lib ] ; then # HDF5 libraries HDF5LIB=$HDF5HOME/lib echo "Adding $HDF5LIB to LD_LIBRARY_PATH" LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$HDF5LIB # For hdf5 Shared libs else HDF5LIB=$HDF5HOME/hdf5/lib echo "Adding $HDF5LIB to LD_LIBRARY_PATH" LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$HDF5LIB # For hdf5 Shared libs fi export HDF5HOME HDF5BIN HDF5INC HDF5LIB LD_LIBRARY_PATH fi # # Rename HDF5 libraries for CUGWIN from .lib extemsion to .a extension: # if [ "$BRAND" = "cygwin" ] ; then if [ -f "$HDF5LIB/libhdf5.lib" ] ; then EchoAndLog "**** Renaming HDF5 library from libhdf5.lib to libhdf5.a . ****" mv $HDF5LIB/libhdf5.lib $HDF5LIB/libhdf5.a fi if [ -f "$HDF5LIB/libhdf5_hl.lib" ] ; then EchoAndLog "**** Renaming HDF5 high level library from libhdf5_hl.lib to libhdf5_hl.a . ****" mv $HDF5LIB/libhdf5_hl.lib $HDF5LIB/libhdf5_hl.a fi fi } # # Function to install HDF-EOS(HDF4 based) (or get location of HDF-EOS # installation) # InstallHdfeos() { # # HDFEOS installation # # # initialize installation flags current_hdfeos="HDF-EOS2.18v1.00" hdfeos_distrib="${current_hdfeos}.tar.Z" hdfeos_flags="-df $hdfeos_distrib" if [ "$notext" = "0" -a "$batch_mode" = 0 ] ; then more < /dev/null 2>&1 fi fi touch $log_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "$script_error cannot write to file $log_file" Help fi fi EchoAndLog "HDF-EOS Installation starting at `date`" echo "" if [ "$log_file" != "" ] ; then echo "" echo "`basename $0`: session output will go to file: " echo "" echo " $log_file" echo "" fi # # Set architecture-specific variables # SetArchitecture Log "host: $HOST type: $BRAND user: $USER" Log 'install options: '"$install_options" # # set default values for the toolkit directory environment variables # PGSBIN=$PGSHOME/bin/$BRAND # executable files PGSDAT=$PGSHOME/database/$BRAND # database files PGSCOM=$PGSHOME/database/common # database/common files PGSINC=$PGSHOME/include # include header files PGSLIB=$PGSHOME/lib/$BRAND # library files PGSMSG=$PGSHOME/message # SMF message files PGSOBJ=$PGSHOME/obj/$BRAND # object files PGSCPPO=$PGSHOME/objcpp/$BRAND # object files PGSRUN=$PGSHOME/runtime # runtime work files PGSSRC=$PGSHOME/src # toolkit source files PGSTST=$PGSHOME/test # test source files export PGSHOME PGSBIN PGSDAT PGSINC PGSLIB export PGSMSG PGSOBJ PGSRUN PGSSRC PGSTST export PGSCPPO PGSCOM # # Set up variables needed by Process Control (PC) tools. # PGS_PC_INFO_FILE=$PGSRUN/$BRAND/PCF.relB0 export PGS_PC_INFO_FILE # # add PGSBIN to path # PATH=$PATH:$PGSBIN; export PATH # add PGSBIN to path InstallHdf if [ "$hdf_installed" = "1" ] ; then InstallHdfeos else hdfeos_installed=0 fi if [ "$hdf5_installed" = "1" ] ; then InstallHdfeos5 else hdfeos5_installed=0 fi # # HDF-EOS installation # # # set installation flags toolkit_flags="-pgshome $PGSHOME $dbug $build_ftn" if [ "$hdf_installed" != "1" -o "$hdf5_installed" != "1" ] ; then # set flag for no-HDF and no HDF-EOS build toolkit_flags="$toolkit_flags -no_hdf -no_hdfeos" elif [ "$hdfeos_installed" != "1" ] ; then # set flag for no-HDF-EOS build toolkit_flags="$toolkit_flags -no_hdfeos" fi if [ "$f90_flag" = "1" ] ; then # set flag for f90 build toolkit_flags="$toolkit_flags -f90" if [ "$nag_flag" = "1" ] ; then # using NAG f90 toolkit_flags="$toolkit_flags -NAG" fi fi if [ "$absoft_flag" = "1" ] ; then # using ABSOFT F77 toolkit_flags="$toolkit_flags -ABSOFT" fi if [ "$fc_path" != "" ] ; then # path for FORTRAN compiler toolkit_flags="$toolkit_flags -fc_path $fc_path" fi if [ "$cc_path" != "" ] ; then # path for C compiler toolkit_flags="$toolkit_flags -cc_path $cc_path" fi if [ "$use_gcc" = "1" ] ; then # set flag for GNU C build toolkit_flags="$toolkit_flags -gcc" fi if [ "$sgi_mode" = "n32" ] ; then # set flag for SGI n32 mode toolkit_flags="$toolkit_flags -sgi32" elif [ "$sgi_mode" = "64" ] ; then # set flag for SGI 64-bit mode toolkit_flags="$toolkit_flags -sgi64" fi if [ "$cpp" = "1" ] ; then # set flag for C++ build toolkit_flags="$toolkit_flags -cpp" fi if [ "$cpp_path" != "" ] ; then # path for C++ compiler toolkit_flags="$toolkit_flags -cpp_path $cpp_path" fi if [ "$c_rlib" = "1" ] ; then # set flag for treadsafe build toolkit_flags="$toolkit_flags -c_rlib" fi #EchoAndLog "Running the UtilityScripts Installation Script ..." EchoAndLog "" #if [ "$log_file" != "" ] ; then # $script_dir/INSTALL-UtilityScripts $toolkit_flags >> $log_file 2>&1 # if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] && [ "$fc_path" != "" ] ; then # echo "# install option: $install_options" >> $PGSHOME/bin/$BRAND/pgs-env.csh # fi #else # $script_dir/INSTALL-UtilityScripts $toolkit_flags # if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] && [ "$fc_path" != "" ] ; then # echo "# install option: $install_options" >> $PGSHOME/bin/$BRAND/pgs-env.csh # fi #fi if [ "$?" != "0" ] ; then Done "The Installation Script failed or had errors." fi Done hdf-eos5-5.1.14+dfsg.1/bin/tmp/0000755000175000017500000000000012024715435016777 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/bin/tmp/hdfeos_env.ksh.tmp0000755000175000017500000005742112024715435022441 0ustar amckinstryamckinstry#----------------------------------------------------------------------------- # file: # hdfeos_env.ksh # # description: # This file defines environment variables used by HDFEOS5. # This version is for use under the Korn shell (ksh). # # usage: # This file should be called from your .profile file with the line: # # . /bin/hdfeos_env.ksh # # where is the full path of the HDFEOS5 home directory. # # author: # Mike Sucher / A.R.C. # Guru Tej S. Khalsa / Applied Research Corporation # Abe Taaheri / Emergent Information Technologies, Inc. # # notes: # 1) This file is compatible with the following platforms: # Sun, SGI, HP-9000, IBM RS-6000 and DEC Alpha. # It automatically figures out which platform you are on, # and sets environment variables accordingly. # 2) This file defines a variable called hdfeos5_path which contains # all the directories likely to be needed on a given machine # type, including the HDFEOS5 bin directories. Users # may choose to set their path variable with: # # PATH=:$hdfeos5_path # export PATH # # where is an optional list of other # directories added to the search path. # # history: # 17-Jun-1996 MES Initial version # 11-Apr-2001 AT Modified for HDF5 # #----------------------------------------------------------------------------- : ${sgi_mode:=32} # by default, SGI mode is standard 32-bit : ${hdfeos5_f90_comp:=""} # by default, no FORTRAN-90 compiler : ${hdfeos5_nag_flag:=0} # by default, not using NAG FORTRAN-90 : ${use_flavor:=0} # by default, not using "flavor" : ${opt_flag:=-O} # by default, optimizing code user_path=$PATH # save user path # set path to a base subset of directories, allowing startup on unknown host # note: once the host has been determined the path is appropriately customized PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11 export PATH # get operating system type, login name # special cases: SCO and Cray - uname works differently, MACHINE="`uname -m | awk '{print $1}'`" # needed on Cray & SCO temp_ostype=`uname` case "$MACHINE" in i386) # SCO box OSTYPE=sco386 ;; CRAY) # CRAY OSTYPE=UNICOS ;; *) # everybody else OSTYPE="`uname`" ;; esac CYGPL="`uname | awk -F_ '{print $1}'`" # Intel Macintosh is also i386 or i686 (?) machine if [ "$MACHINE" = "i386" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "$CYGPL" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$MACHINE" = "i686" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "$CYGPL" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "`uname -m | awk '{print $1}'`" = "x86_64" ] || [ "`uname -m | awk '{print $1}'`" = "ia64" ] ; then if [ "$LINUX_BRAND" = "" ] ; then echo " Warning: In 64-bit linux platform the environment variable LINUX_BRAND must be set to linux32 or linux64 values before running this script.Please make sure that BRAND is linux32 or linux64." if [ "$LNX_COMP_FLAG" = "-m32" ] ; then BRAND=linux32 LINUX_BRAND=linux32 else BRAND=linux64 LINUX_BRAND=linux64 fi fi fi user=`id | cut -d\( -f2 | cut -d\) -f1` LOGNAME=$user # make sure $LOGNAME is defined USER=$LOGNAME # make sure $USER is defined export USER LOGNAME # set machine-dependent environment variables: # HOST the host name of this machine # BRAND used by other achitecture-specific code # PATH the execution search path case "$OSTYPE" in AIX) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/sbin HOST="`hostname`" BRAND="ibm" ;; HP-UX) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/bin/X11 HOST="`hostname`" BRAND="hp" ;; IRIX) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bsd:/usr/sbin HOST="`hostname`" case $sgi_mode in 64 ) BRAND=sgi64 ;; n32) BRAND=sgi32 ;; 65 ) BRAND=irix65 ;; 32 ) BRAND=sgi ;; * ) BRAND=sgi ;; # just in case esac ;; IRIX64) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bsd:/usr/sbin HOST="`hostname`" case $sgi_mode in 64 ) BRAND=sgi64 ;; n32) BRAND=sgi32 ;; 65 ) BRAND=irix65 ;; 32 ) BRAND=sgi ;; * ) BRAND=sgi ;; # just in case esac ;; Linux ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST=`hostname` BRAND=linux if [ "$LINUX_BRAND" = "linux64" ] ; then BRAND=linux64 elif [ "$LINUX_BRAND" = "linux32" ] ; then BRAND=linux32 elif [ "$LINUX_BRAND" = "linux" ] ; then BRAND=linux fi ;; Darwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname` BRAND=macintosh ;; DarwinIntel ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname` BRAND=macintel32 if [ "$MAC_BRAND" = "macinel64" ] ; then BRAND=macintel64 elif [ "$MAC_BRAND" = "macintel32" ] ; then BRAND=macintel32 fi ;; Cygwin) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST="`hostname`" BRAND="cygwin" ;; OSF1) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/sbin HOST="`hostname -s`" BRAND="dec" ;; sco386) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/bin/X11 HOST="`hostname -s`" BRAND="sco" ;; SunOS) # distinguish between SunOS 5.5/5.8 and 4.x versions if [ `uname -r | awk -F. '{print $1}'` = "5" ] ; then if [ `uname -r | awk -F. '{print $2}'` = "8" ] ; then BRAND="sun5.8" # Solaris 8 elif [ `uname -r | awk -F. '{print $2}'` = "9" ] ; then BRAND="sun5.9" # Solaris 9 elif [ `uname -r | awk -F. '{print $2}'` = "10" ] ; then BRAND="sun5.10" # Solaris 10 else BRAND="sun5" # release V5.5 SunOS fi PATH=/usr/local/bin:/opt/SUNWspro/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/openwin/bin:/usr/openwin/demo:/usr/ccs/bin:/usr/sbin else BRAND="sun4" # release V4.x SunOS PATH=/usr/local/bin:/usr/local/lang:/usr/lang:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/openwin/demo fi HOST="`hostname`" ;; UNICOS) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/bin/X11 HOST="`hostname`" BRAND="cray" ;; *) echo "Operating system: $OSTYPE not supported" echo "This release of HDFEOS5 supports: " echo " Sun, SGI HP-9000 IBM-6000 DEC-Alpha and Cray/Unicos " ;; esac export PATH HOST BRAND # set machine-dependent compilers and compilation switches: # # NSL_FLAG="" # this is nil on all but Sun platforms NSL_LIB="" # this is nil on all but Sun platforms case "$BRAND" in cray) CC=cc # C compiler CFLAGS="$opt_flag $ext_cc_flags -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-DCRAYFortran" # C/cfortran.h called from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=cf77 # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=UNICOS # system type as defined by HDF5 MACHINE=CRAY # system type as defined by HDFEOS5 ;; dec) CC=cc # C compiler CFLAGS="$opt_flag $ext_cc_flags -std -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-DDECFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH -Dmain=MAIN__" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH " # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=DEC_ALPHA # system type as defined by HDF5 MACHINE=DEC # system type as defined by HDFEOS5 ;; hp) CC=c89 # C compiler CFLAGS="$opt_flag $ext_cc_flags -Ae -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=fort77 # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=HP9000 # system type as defined by HDF5 MACHINE=HP # system type as defined by HDFEOS5 ;; ibm) CC=cc # C compiler CFLAGS="$opt_flag $ext_cc_flags -qlanglvl=ansi -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main FORTAN F77=xlf # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=IBM6000 # system type as defined by HDF5 MACHINE=IBM # system type as defined by HDFEOS5 ;; linux | linux32 | linux64) CC="gcc LNX_CMP_FLAG" # C compiler CFLAGS="$opt_flag $ext_cc_flags -ansi -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77="g77 LNX_CMP_FLAG" # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=LINUX # system type as defined by HDF5 if [ `/bin/uname -m` = "x86_64" ]; then if [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux" ] ; then HDFSYS=LINUX # system type as defined by HDF else HDFSYS=LINUX64 # Only for 64 bit linux fi elif [ `/bin/uname -m` = "ia64" ]; then if [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux" ] ; then HDFSYS=LINUX # system type as defined by HDF else HDFSYS=IA64 #Only for IA64 fi else HDFSYS=LINUX # system type as defined by HDF fi MACHINE=LINUX # system type as defined by HDFEOS5 ;; macintosh) CC=gcc # C compiler CFLAGS="$opt_flag $ext_cc_flags -ansi -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77="g77" # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=MACINTOSH # system type as defined by HDF5 MACHINE=MACINTOSH # system type as defined by HDFEOS5 ;; macintel | macintel32 | macintel64) CC="gcc $MACINTEL_COMP_FLAG" # C compiler CFLAGS="$opt_flag $ext_cc_flags -ansi -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77="gfortran $MACINTEL_COMP_FLAG" # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=MACINTEL # system type as defined by HDF MACHINE=MACINTEL # system type as defined by HDFEOS ;; cygwin) CC=gcc # C compiler CFLAGS="$opt_flag $ext_cc_flags -ansi -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH F77=g77 F77FLAGS="$opt_flag $ext_fc_flags -fno-second-underscore" # common FORTRAN flags F77_CFH="-fno-second-underscore" # FORTRAN callable from C w/cfortran.h F77_C_CFH="" # calling C w/ cfortran.h F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=CYGWIN # system type as defined by HDF MACHINE=CYGWIN # system type as defined by HDFEOS ;; sco) CC=cc # C compiler CFLAGS="$opt_flag $ext_cc_flags -posix -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77="" # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=SCO # system type as defined by HDF5 MACHINE=SCO # system type as defined by HDFEOS5 ;; sgi) if [ $OSTYPE = "IRIX64" ] then CC="cc -32" # C compiler (32 bit) F77="f77 -32" # FORTRAN compiler (32 bit) else CC=cc # C compiler F77=f77 # FORTRAN compiler fi CFLAGS="$opt_flag $ext_cc_flags -xansi -D_POSIX_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="-lI77 -lU77 -lF77" # FORTRAN lib called by C main F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=IRIS4 # system type as defined by HDF5 MACHINE=SGI # system type as defined by HDFEOS5 ;; sgi32) CC="cc -n32" # C compiler (new-style 32 bit) F77="f77 -n32" # FORTRAN compiler (new-style 32 bit) CFLAGS="$opt_flag $ext_cc_flags -xansi -D_POSIX_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="-lI77 -lU77 -lF77" # FORTRAN lib called by C main F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=IRIS4 # system type as defined by HDF5 MACHINE=SGI # system type as defined by HDFEOS5 ;; irix65) CC="cc -n32" # C compiler (new-style 32 bit) F77="f77 -n32" # FORTRAN compiler (new-style 32 bit) CFLAGS="$opt_flag $ext_cc_flags -xansi -D_POSIX_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="-lI77 -lU77 -lF77" # FORTRAN lib called by C main F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=IRIS4 # system type as defined by HDF5 MACHINE=SGI # system type as defined by HDFEOS5 ;; sgi64) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" = "4" ] ; then CC="cc -64 -mips3" # C compiler (R4?00 chip) F77="f77 -64 -mips3" # FORTRAN compiler (R4?00 chip) else CC="cc -64" # C compiler F77="f77 -64" # FORTRAN compiler fi CFLAGS="$opt_flag $ext_cc_flags -xansi -D_POSIX_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="-lI77 -lU77 -lF77" # FORTRAN lib called by C main F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=IRIS4 # system type as defined by HDF5 MACHINE=SGI # system type as defined by HDFEOS5 ;; sun4) CC=acc # C compiler CFLAGS="$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-DsunFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=SUN # system type as defined by HDF5 MACHINE=SUN4 # system type as defined by HDFEOS5 NSL_FLAG="-lnsl" # this is nil on all but Sun platforms NSL_LIB="/usr/lib/libnsl.a" # this is nil on all but Sun platforms ;; sun5) CC=cc # C compiler CFLAGS="$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-DsunFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=SUN # system type as defined by HDF5 MACHINE=SUN5 # system type as defined by HDFEOS5 NSL_FLAG="-lnsl" # this is nil on all but Sun platforms NSL_LIB="/usr/lib/libnsl.a" # this is nil on all but Sun platforms ;; sun5.8) CC=cc # C compiler CFLAGS="$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-DsunFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=SUN # system type as defined by HDF5 MACHINE=SUN8 # system type as defined by HDFEOS5 NSL_FLAG="-lnsl" # this is nil on all but Sun platforms NSL_LIB="/usr/lib/libnsl.a" # this is nil on all but Sun platforms ;; sun5.9) CC=cc # C compiler CFLAGS="$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-DsunFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=SUN # system type as defined by HDF5 MACHINE=SUN9 # system type as defined by HDFEOS5 NSL_FLAG="-lnsl" # this is nil on all but Sun platforms NSL_LIB="/usr/lib/libnsl.a" # this is nil on all but Sun platforms ;; sun5.10) CC=cc # C compiler CFLAGS="$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-DsunFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=SUN # system type as defined by HDF5 MACHINE=SUN10 # system type as defined by HDFEOS5 NSL_FLAG="-lnsl" # this is nil on all but Sun platforms NSL_LIB="/usr/lib/libnsl.a" # this is nil on all but Sun platforms ;; *) CC=cc # C compiler CFLAGS="$opt_flag $ext_cc_flags -DH5_USE_16_API" # default C flags (optimize) C_CFH="" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$ext_fc_flags" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=unknown # system type as defined by HDF5 MACHINE=unknown # system type as defined by HDFEOS5 ;; esac export MACHINE export NSL_FLAG NSL_LIB export CC CFLAGS C_CFH CFHFLAGS C_F77_CFH C_F77_LIB F77 export F77FLAGS F77_CFH F77_C_CFH CFH_F77 F77_C_LIB HDFSYS # # set up environment to handle FORTRAN-90 compiler # if [ "$hdfeos5_f90_comp" != "" ] ; then # using FORTRAN-90 F77="$hdfeos5_f90_comp" if [ "$hdfeos5_nag_flag" = "1" ] ; then # using NAG f90 C_CFH="$C_CFH -DNAGf90F" CFHFLAGS="$CFLAGS $C_CFH" fi export CFHFLAGS C_CFH F77 fi # copy the machine-specific path to variable hdfeos5_path hdfeos5_path=$PATH # set HDFEOS5-related environment variables # these may be referred to in makefiles and on compiler command lines if [ "$HDFEOS5_HOME" != "" ] ; then # set up base set of HDFEOS5_ Toolkit directory variables. HDFEOS5_BIN=${HDFEOS5_HOME}/bin/$BRAND # executable files HDFEOS5_INC=$HDFEOS5_HOME/include # include header files HDFEOS5_LIB=${HDFEOS5_HOME}/lib/$BRAND # library files HDFEOS5_OBJ=${HDFEOS5_HOME}/obj/$BRAND # object files HDFEOS5_SRC=$HDFEOS5_HOME/src # HDFEOS5 source files if [ $use_flavor = 1 ] ; then if [ "$opt_flag" = "-g" ] ; then HDFEOS5_LIB=${HDFEOS5_LIB}_debug HDFEOS5_OBJ=${HDFEOS5_OBJ}_debug HDFEOS5_BIN=${HDFEOS5_BIN}_debug hdf5lib=`echo $HDF5LIB | sed "s/${BRAND}/${BRAND}_debug/"` if [ -d $hdf5lib ] ; then HDF5LIB=$hdf5lib fi hdf5inc=`echo $HDF5INC | sed "s/${BRAND}/${BRAND}_debug/"` if [ -d $hdf5inc ] ; then HDF5INC=$hdf5inc fi fi fi export HDFEOS5_HOME HDFEOS5_BIN HDFEOS5_DAT HDFEOS5_INC HDFEOS5_LIB export HDFEOS5_MSG HDFEOS5_OBJ HDFEOS5_RUN HDFEOS5_SRC HDFEOS5_TST # update path variables PATH=$PATH:$HDFEOS5_BIN; export PATH # add HDFEOS5_BIN to path hdfeos5_path=$hdfeos5_path:$HDFEOS5_BIN # add HDFEOS5_BIN to hdfeos5 path user_path=$user_path:$HDFEOS5_BIN # add HDFEOS5_BIN to user path else echo "You must first set the environment variable HDFEOS5_HOME" fi # # restore augmented user path # PATH=$user_path ; export PATH # done hdf-eos5-5.1.14+dfsg.1/bin/tmp/hdfeos_env.csh.tmp0000755000175000017500000006736012024715435022434 0ustar amckinstryamckinstry#----------------------------------------------------------------------------- # file: # hdfeos_env.csh # # description: # This file defines environment variables used by HDFEOS5 # This version is for use under the C shell (csh). # # usage: # This file should be called from your .cshrc file with the line: # # source /bin/hdfeos_env.csh # # where is the full path of the HDFEOS5 home directory. # # author: # Mike Sucher / A.R.C. # Abe Taaheri / Emergent Information Technologies, Inc. # # notes: # 1) This file is compatible with the following platforms: # Sun, SGI, HP-9000, IBM RS-600 and DEC Alpha. # It automatically figures out which platform you are on, # and sets environment variables accordingly. # 2) This file defines a variable called hdfeos5_path which contains # all the directories likely to be needed on a given machine # type, including the HDFEOS5_ (and HDF5) bin directories. Users # may choose to set their path variable with: # # set path=( $hdfeos5_path ) # # where is an optional list of other # directories added to the search path. # # history: # 17-Jun-1996 MES Initial version # 11-Apr-2001 AT Modified for HDF5 # #----------------------------------------------------------------------------- if (! $?sgi_mode ) then # by default, SGI mode is standard 32-bit set sgi_mode=32 endif if (! $?hdfeos5_formal ) then # by default, PGS formal directories disabled set hdfeos5_formal=0 endif if (! $?hdfeos5_daac ) then # by default, DAAC toolkit version disabled set hdfeos5_daac=0 endif if (! $?hdfeos5_f90_comp ) then # by default, no FORTRAN-90 compiler set hdfeos5_f90_comp="" endif if (! $?hdfeos5_nag_flag ) then # by default, not using NAG FORTRAN-90 set hdfeos5_nag_flag=0 endif if (! $?use_flavor ) then # by default, not using "flavor" set use_flavor=0 endif if (! $?opt_flag ) then # by default, optimizing code set opt_flag=-O endif set user_path = ( $path ) # save user path # set path to a base subset of directories, allowing startup on unknown host # note: once the host has been determined the path is appropriately customized set path=(/usr/local/bin /bin /usr/bin /etc /usr/etc /usr/ucb /usr/bin/X11) # get operating system type, login name # special cases: SCO and Cray - uname works differently, setenv MACHINE `uname -m | awk '{print $1}'` # needed on Cray & SCO setenv temp_ostype `uname` switch ( "$MACHINE" ) case "i386": # SCO box setenv OSTYPE sco386 breaksw case "CRAY": # CRAY setenv OSTYPE UNICOS breaksw default: # everybody else setenv OSTYPE `uname` breaksw endsw setenv CYGPL `uname | awk -F_ '{print $1}'` # Intel Macintosh is also i386 or i686 (?) machine if ( "$MACHINE" == "i386" ) then if ( "$temp_ostype" == "Darwin" ) then setenv OSTYPE DarwinIntel endif if("$CYGPL" == "CYGWIN") then setenv OSTYPE Cygwin endif endif if ( "$MACHINE" == "i686" ) then if [ "$temp_ostype" == "Darwin" ) then setenv OSTYPE DarwinIntel endif if("$CYGPL" == "CYGWIN") then setenv OSTYPE Cygwin endif endif set user=`id | cut -d\( -f2 | cut -d\) -f1` if ($?LOGNAME == 0) setenv LOGNAME $user # make sure $LOGNAME is defined setenv USER $LOGNAME # make sure $USER is defined # set machine-dependent environment variables: # HOST the host name of this machine # BRAND used by other achitecture-specific code # path the execution search path exported to PATH switch ( "$OSTYPE" ) case "AIX": set path=(/usr/local/bin /bin /usr/bin /etc /usr/etc /usr/ucb /usr/bin/X11 /usr/ccs/bin /usr/sbin) setenv HOST `hostname` setenv BRAND ibm breaksw case "HP-UX": set path=(/usr/local/bin /bin /usr/bin /etc /usr/etc /usr/bin/X11) setenv HOST `hostname` setenv BRAND hp breaksw case "IRIX": set path=(/usr/local/bin /bin /usr/bin /etc /usr/etc /usr/bsd /usr/bin/X11 /usr/sbin) setenv HOST `hostname` if ("$sgi_mode" == 32) then setenv BRAND sgi else if ("$sgi_mode" == 64) then setenv BRAND sgi64 else if ("$sgi_mode" == n32) then setenv BRAND sgi32 else if ("$sgi_mode" == 65) then setenv BRAND irix65 else setenv BRAND sgi endif breaksw case "IRIX64": set path=(/usr/local/bin /bin /usr/bin /etc /usr/etc /usr/bsd /usr/bin/X11 /usr/sbin) setenv HOST `hostname` if ("$sgi_mode" == 32) then setenv BRAND sgi else if ("$sgi_mode" == 64) then setenv BRAND sgi64 else if ("$sgi_mode" == n32) then setenv BRAND sgi32 else if ("$sgi_mode" == 65) then setenv BRAND irix65 else setenv BRAND sgi endif breaksw case "Linux": set path=(/usr/local/bin /bin /usr/bin /etc /usr/etc /usr/bin/X11) setenv HOST `hostname -s` setenv BRAND linux if("$LINUX_BRAND" == "linux32") then setenv BRAND linux32 else if("$LINUX_BRAND" == "linux") then setenv BRAND linux else if("$LINUX_BRAND" == "linux64") then setenv BRAND linux64 else if( "$LINUX_BRAND" == "" ) then if( "`uname -m | awk '{print $1}'`" == "x86_64" || "`uname -m | awk '{print $1}'`" == "ia64" ) then if( "$LNX_COMP_FLAG" == "-m32" ) then setenv BRAND linux32 setenv LINUX_BRAND linux32 else setenv BRAND linux64 setenv LINUX_BRAND linux64 endif endif endif breaksw case "Darwin": set path=(/bin /sbin /usr/bin /usr/sbin) setenv HOST `hostname -s` setenv BRAND macintosh breaksw case "DarwinIntel": set path=(/bin /sbin /usr/bin /usr/sbin) setenv HOST `hostname -s` setenv BRAND macintel32 if("$MAC_BRAND" == "macintel32") then setenv BRAND macintel32 else if("$MAC_BRAND" == "macintel") then setenv BRAND macintel else if("$MAC_BRAND" == "macintel64") then setenv BRAND macintel64 else if("$MAC_BRAND" == "") then if( "`uname -m | awk '{print $1}'`" == "x86_64" || "`uname -m | awk '{print $1}'`" == "ia64" || "`uname -m | awk '{print $1}'`" == "i386" || "`uname -m | awk '{print $1}'`" == "i686" ) then setenv BRAND macintel64 setenv MAC_BRAND macintel64 else setenv BRAND macintel32 setenv MAC_BRAND macintel32 endif endif breaksw case "Cygwin": set path=(/bin /sbin /usr/bin /usr/sbin) setenv HOST `hostname` setenv BRAND cygwin breaksw case "OSF1": set path=(/usr/local/bin /bin /usr/bin /etc /usr/etc /usr/ucb /usr/bin/X11 /usr/ccs/bin /usr/sbin) setenv HOST `hostname -s` setenv BRAND dec breaksw case "sco386": set path=(/usr/local/bin /bin /usr/bin /etc /usr/etc /usr/bin/X11) setenv HOST `hostname -s` setenv BRAND sco breaksw case "SunOS": # distinguish between SunOS 5.5/5.8 and 4.x versions if (`uname -r | awk -F. '{print $1}'` == "5") then if (`uname -r | awk -F. '{print $2}'` == "8") then setenv BRAND sun5.8 # Solaris 8 else if ( `uname -r | awk -F. '{print $2}'` == "9" ) then setenv BRAND sun5.9 # release V5.x SunOS else if ( `uname -r | awk -F. '{print $2}'` == "10" ) then setenv BRAND sun5.10 # release V5.x SunOS else setenv BRAND sun5 # Version 5.5 SunOS endif set path=(/usr/local/bin /opt/SUNWspro/bin /bin /usr/bin /etc /usr/etc /usr/ucb /usr/openwin/bin /usr/openwin/demo /usr/ccs/bin /usr/sbin) else setenv BRAND sun4 # release V4.x SunOS set path=(/usr/local/bin /usr/local/lang /usr/lang /bin /usr/bin /etc /usr/etc /usr/ucb /usr/openwin/bin /usr/openwin/demo) endif setenv HOST `hostname` breaksw case "UNICOS": set path=(/usr/local/bin /bin /usr/bin /etc /usr/ucb /usr/bin/X11) setenv HOST `hostname` setenv BRAND cray breaksw default: echo "Operating system: $OSTYPE not supported" echo "This release of HDFEOS5 supports: " echo " Sun, SGI HP-9000 IBM-6000 DEC-Alpha and Cray/Unicos " breaksw endsw # set machine-dependent compilers and compilation switches: # # setenv NSL_FLAG "" # this is nil on all but Sun platforms setenv NSL_LIB "" # this is nil on all but Sun platforms switch ($BRAND) case cray: setenv CC cc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-DCRAYFortran" # C/cfortran.h called from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 cf77 # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS UNICOS # system type as defined by HDF5 setenv MACHINE CRAY # system type as defined by HDFEOS5 breaksw case dec: setenv CC cc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -std -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-DDECFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH -Dmain=MAIN__" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 f77 # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH " # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS DEC_ALPHA # system type as defined by HDF5 setenv MACHINE DEC # system type as defined by HDFEOS5 breaksw case hp: setenv CC c89 # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -Ae -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 fort77 # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS HP9000 # system type as defined by HDF5 setenv MACHINE HP # system type as defined by HDFEOS5 breaksw case ibm: setenv CC cc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -qlanglvl=ansi -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main FORTAN setenv F77 xlf # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS IBM6000 # system type as defined by HDF5 setenv MACHINE IBM # system type as defined by HDFEOS5 breaksw case linux: case linux32: case linux64: setenv CC "gcc LNX_CMP_FLAG" # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -ansi -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-Df2cFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 "g77 LNX_CMP_FLAG" # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS LINUX # system type as defined by HDF5 if( "`uname -m | awk '{print $1}'`" == "x86_64" ) then if( "$BRAND" == "linux64" ) then setenv HDFSYS LINUX64 # system type as defined by HDF else if( "$BRAND" == "linux32" || "$BRAND" == "linux" ) then setenv HDFSYS LINUX endif else if( "`uname -m | awk '{print $1}'`" == "ia64" ) then if( "$BRAND" == "linux64" ) then setenv HDFSYS IA64 # system type as defined by HDF else if( "$BRAND" == "linux32" || "$BRAND" == "linux" ) then setenv HDFSYS LINUX endif else setenv HDFSYS LINUX # system type as defined by HDF endif setenv MACHINE LINUX # system type as defined by HDFEOS5 breaksw case macintosh: setenv CC gcc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -ansi -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-Df2cFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 "g77" # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS MACINTOSH # system type as defined by HDF setenv MACHINE MACINTOSH # system type as defined by HDFEOS breaksw case macintel: case macintel32: case macintel64: setenv CC "gcc $MACINTEL_COMP_FLAG" # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -ansi -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-Df2cFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 "gfortran $MACINTEL_COMP_FLAG" # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS MACINTEL # system type as defined by HDF setenv MACHINE MACINTEL # system type as defined by HDFEOS breaksw case cygwin: setenv CC gcc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -ansi -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-Df2cFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH"# CFLAGS + C_CFH setenv F77 "g77" # FORTRAN compiler - default setenv F77FLAGS "$opt_flag $ext_fc_flags -fno-second-underscore" # common FORTRAN flags setenv F77_CFH "-fno-second-underscore" # FORTRAN callable from C w/cfortran.h setenv F77_C_CFH "" # calling C w/ cfortran.h setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS CYGWIN # system type as defined by HDF setenv MACHINE CYGWIN # system type as defined by HDFEOS breaksw case sco: setenv CC cc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -posix -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-Df2cFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 "" # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS SCO # system type as defined by HDF5 setenv MACHINE SCO # system type as defined by HDFEOS5 breaksw case sgi: if ($OSTYPE == "IRIX64") then setenv CC "cc -32" # C compiler (32 bit) setenv F77 "f77 -32" # FORTRAN compiler (32 bit) else setenv CC cc # C compiler setenv F77 f77 # FORTRAN compiler endif setenv CFLAGS "$opt_flag $ext_cc_flags -xansi -D_POSIX_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "-lI77 -lU77 -lF77" # FORTRAN lib called by C main setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS IRIS4 # system type as defined by HDF5 setenv MACHINE SGI # system type as defined by HDFEOS5 breaksw case sgi32: setenv CC "cc -n32" # C compiler (new-style 32 bit) setenv F77 "f77 -n32" # FORTRAN compiler (new-style 32 bit) setenv CFLAGS "$opt_flag $ext_cc_flags -xansi -D_POSIX_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "-lI77 -lU77 -lF77" # FORTRAN lib called by C main setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS IRIS4 # system type as defined by HDF5 setenv MACHINE SGI # system type as defined by HDFEOS5 breaksw case irix65: setenv CC "cc -n32" # C compiler (new-style 32 bit) setenv F77 "f77 -n32" # FORTRAN compiler (new-style 32 bit) setenv CFLAGS "$opt_flag $ext_cc_flags -xansi -D_POSIX_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "-lI77 -lU77 -lF77" # FORTRAN lib called by C main setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS IRIS4 # system type as defined by HDF5 setenv MACHINE SGI # system type as defined by HDFEOS5 breaksw case sgi64: set cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if ("$cpu_type" == "4") then setenv CC "cc -64 -mips3" # C compiler (R4?00 chip) setenv F77 "f77 -64 -mips3" # FORTRAN compiler (R4?00 chip) else setenv CC "cc -64" # C compiler setenv F77 "f77 -64" # FORTRAN compiler endif setenv CFLAGS "$opt_flag $ext_cc_flags -xansi -D_POSIX_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "-lI77 -lU77 -lF77" # FORTRAN lib called by C main setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "" # C lib called by FORTRAN main setenv HDFSYS IRIS4 # system type as defined by HDF5 setenv MACHINE SGI # system type as defined by HDFEOS5 breaksw case sun4: setenv CC acc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-DsunFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 f77 # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "-lm" # C lib called by FORTRAN main setenv HDFSYS SUN # system type as defined by HDF5 setenv MACHINE SUN4 # system type as defined by HDFEOS5 setenv NSL_FLAG "-lnsl" # this is nil on all but Sun platforms setenv NSL_LIB "/usr/lib/libnsl.a" # this is nil on all but Sun platforms breaksw case sun5: setenv CC cc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-DsunFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 f77 # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "-lm" # C lib called by FORTRAN main setenv HDFSYS SUN # system type as defined by HDF5 setenv MACHINE SUN5 # system type as defined by HDFEOS5 setenv NSL_FLAG "-lnsl" # this is nil on all but Sun platforms setenv NSL_LIB "/usr/lib/libnsl.a" # this is nil on all but Sun platform breaksw case sun5.8: setenv CC cc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-DsunFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 f77 # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "-lm" # C lib called by FORTRAN main setenv HDFSYS SUN # system type as defined by HDF5 setenv MACHINE SUN8 # system type as defined by HDFEOS5 setenv NSL_FLAG "-lnsl" # this is nil on all but Sun platforms setenv NSL_LIB "/usr/lib/libnsl.a" # this is nil on all but Sun platform breaksw case sun5.9: setenv CC cc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-DsunFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 f77 # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "-lm" # C lib called by FORTRAN main setenv HDFSYS SUN # system type as defined by HDF5 setenv MACHINE SUN9 # system type as defined by HDFEOS5 setenv NSL_FLAG "-lnsl" # this is nil on all but Sun platforms setenv NSL_LIB "/usr/lib/libnsl.a" # this is nil on all but Sun platform breaksw case sun5.10: setenv CC cc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -Xa -DH5_USE_16_API" # default C flags (optimize, ansi) setenv C_CFH "-DsunFortran" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 f77 # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "-lm" # C lib called by FORTRAN main setenv HDFSYS SUN # system type as defined by HDF5 setenv MACHINE SUN10 # system type as defined by HDFEOS5 setenv NSL_FLAG "-lnsl" # this is nil on all but Sun platforms setenv NSL_LIB "/usr/lib/libnsl.a" # this is nil on all but Sun platform breaksw default: setenv CC cc # C compiler setenv CFLAGS "$opt_flag $ext_cc_flags -DH5_USE_16_API" # default C flags (optimize) setenv C_CFH "" # C w/ cfortran.h callable from FORTRAN setenv CFHFLAGS "$CFLAGS $C_CFH" # CFLAGS + C_CFH setenv C_F77_CFH "$C_CFH" # calling FORTRAN setenv C_F77_LIB "" # FORTRAN lib called by C main setenv F77 f77 # FORTRAN compiler setenv F77FLAGS "$ext_fc_flags" # common FORTRAN flags setenv F77_CFH "" # FORTRAN callable from C w/ cfortran.h setenv F77_C_CFH "$F77_CFH" # calling C w/ cfortran.h setenv CFH_F77 "$F77_C_CFH" # old version of F77_C_CFH setenv F77_C_LIB "-lm" # C lib called by FORTRAN main setenv HDFSYS unknown # system type as defined by HDF5 setenv MACHINE unknown # system type as defined by HDFEOS5 breaksw endsw # # set up environment to handle FORTRAN-90 compiler # if ("$hdfeos5_f90_comp" != "") then # using FORTRAN-90 setenv F77 "$hdfeos5_f90_comp" if ("$hdfeos5_nag_flag" == "1") then # using NAG f90 setenv C_CFH "$C_CFH -DNAGf90F" setenv CFHFLAGS "$CFLAGS $C_CFH" endif endif # copy the machine-specific path to variable hdfeos5_path set hdfeos5_path = ($path) # set HDFEOS5-related environment variables # these may be referred to in makefiles and on compiler command lines if ( $?HDFEOS5_HOME ) then # set up base set of HDFEOS5_ Toolkit directory variables. setenv HDFEOS5_INC $HDFEOS5_HOME/include # include (header) files setenv HDFEOS5_BIN ${HDFEOS5_HOME}/bin/$BRAND # exectuable files setenv HDFEOS5_LIB ${HDFEOS5_HOME}/lib/$BRAND # library files setenv HDFEOS5_OBJ ${HDFEOS5_HOME}/obj/$BRAND # object files setenv HDFEOS5_SRC ${HDFEOS5_HOME}/src # source files if ( $use_flavor == 1 && "$opt_flag" == "-g" ) then setenv HDFEOS5_LIB ${HDFEOS5_LIB}_debug setenv HDFEOS5_OBJ ${HDFEOS5_OBJ}_debug setenv HDFEOS5_BIN ${HDFEOS5_BIN}_debug set hdf5lib=`echo $HDF5LIB | sed "s/${BRAND}/${BRAND}_debug/"` if ( -d $hdf5lib ) then setenv HDF5LIB $hdf5lib endif unset hdf5lib set hdf5inc=`echo $HDF5INC | sed "s/${BRAND}/${BRAND}_debug/"` if ( -d $hdf5inc ) then setenv HDF5INC $hdf5inc endif unset hdf5inc endif # update path variables set path = ($path $HDFEOS5_BIN) # add HDFEOS5_BIN to path set hdfeos5_path = ($hdfeos5_path $HDFEOS5_BIN) # add HDFEOS5_BIN to hdfeos5 path set user_path = ($user_path $HDFEOS5_BIN) # add HDFEOS5_BIN to user path else echo "You must first set the environment variable HDFEOS5_HOME" endif # set HDF5-related environment variables # these may be referred to in makefiles and on compiler command lines # use the command 'sethdf to override the default # # restore augmented user path # set path = ( $user_path ) # done hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/0000755000175000017500000000000012024715435020732 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-HDF50000755000175000017500000010422712024715435022460 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-HDF5 # # description: # HDF5 installation script for the (PGS) Toolkit and hdfeos # # usage: # INSTALL-HDF5 [-f90 [-NAG]] [-ABSOFT] [-fc_path ] # [-cc_path ] # [-sgi32 | -sgi64] [-log [-append]] # [-clean | -cleano] [-strip] [-w_home ] # [-df ] [-batch] # [-install_dir ] # [-c_rlib] # INSTALL-HDF5 [-h] # # -f90 : build HDF5 FORTRAN modules using f90 # optional flag -NAG specifies NAG f90 # -ABSOFT : flag that specifies absoft f77 is used for fortran compilation # -fc_path : set the path of the FORTRAN compiler to # -cc_path : set the path of the C compiler to # -sgi32 : build in -n32 mode (SGI Power Challenge only) # -sgi64 : build in 64-bit mode (SGI Power Challenge only) # -dbug : build in debug mode # -log : sdone session output to new # -append : append to existing # -clean : run 'make clean' after doing the installation # -cleano : clean up all object and a.out files # -strip : strip out all non-installation files following install # -w_home : write HDF5 home directory to # -df : install HDF5 from distribution file # -batch : run script in batch (i.e. non-interactive) mode # -install_dir : full path to top level directory where HDF5 will be # installed (e.g. /usr/local/hdfeso/hdf5/sgi64) # -c_rlib : build C threadsafe Version # -h : display this help message and exit # # notes: # 1) The use of the -clean option will cause the HDF5 utilites to # be deleted. To preserve them, use the -cleano option instead. # # 2) The -f90 and -NAG options are * * NOT IMPLEMENTED * * # Currently, these options are accepted, but ignored. # # # author: # Mike Sucher / Applied Research Corp. # Megan E. Donovan Spencer / SM&AE # Abe Taaheri / SM&AE # Phuong T Nguyen / L3 Communication Analytics Corp. # history: # 11-May-1995 MES Initial version # 08-Dec-2000 AT Used INSTALL-HDF as template for INSTALL-HDF5 # 15-May-2002 PTN Changed version hdf5-1.4.1 to hdf5-1.4.3 # 23-Feb-2003 AA Changed version hdf5-1.4.3 to hdf5-1.4.4 # 20-Oct-2003 AT Changed version hdf5-1.4.4 to hdf5-1.6.1 # 16-Mar-2004 AA Changed version hdf5-1.6.1 to hdf5-1.6.2 # 24-Oct-2003 At Modified PATH for installation of HDF5-1.6.1 to # work with "tr" # 16-Jan-2005 MP Changed version hdf5-1.6.2 to hdf5-1.6.3 # 05-Sep-2005 AT Changed version hdf5-1.6.3 to hdf5-1.6.5 # (using post5 patch that had a fix for sgi64) # 05-Jun-2007 AT Changed version hdf5-1.6.5 to hdf5-1.6.6 # 09-Jan-2008 AT Changed version hdf5-1.6.6 to hdf5-1.6.7 # 09-May-2009 AT Changed version hdf5-1.6.7 to hdf5-1.8.3 # 20-Jul-2010 AT Changed version hdf5-1.8.3 to hdf5-1.8.5-snap4 # 16-Nov-2011 AT Changed version hdf5-1.8.5-snap4 to hdf5-1.8.8 #----------------------------------------------------------------------------- # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir="`cd $script_dir;pwd`" fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { echo "" echo "$*" if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "$*" >> $log_file fi } # # Function prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to set up and export the following architecture-specific variables: # # BRAND HOST LOGNAME OSTYPE PATH USER # SetArchitecture() { # set path to a base subset of directories, allowing startup on unknown host # note: once the architecture has been determined the path is customized PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11 # get operating system type, login name # special cases: SCO and Cray - uname works differently, machine=`uname -m | awk '{print $1}'` # needed on Cray & SCO temp_ostype=`uname` case "$machine" in i386 ) # SCO box OSTYPE=sco386 ;; CRAY ) # CRAY OSTYPE=UNICOS ;; * ) # everybody else OSTYPE=`uname` ;; esac # Intel Macintosh is also i386 or i686 (?) machine if [ "$machine" = "i386" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "i686" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "x86_64" ] || [ "$machine" = "ia64" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel if [ "$MAC_BRAND" = "" ] ; then echo " Error: In 64-bit MAC platform the env. variable MAC_BRAND must be set to mac32 or mac64 before running this script." exit 1 fi else if [ "$LINUX_BRAND" = "" ] ; then echo " Error: In 64-bit linux platform the env. variable LINUX_BRAND must be et to linux32 or linux64 before running this script." exit 1 fi fi fi user=`id | cut -d\( -f2 | cut -d\) -f1` if [ "$LOGNAME" = "" ] ; then # make sure $LOGNAME is defined LOGNAME=$user fi USER=$LOGNAME # make sure $USER is defined # set machine-depdoneent environment variables: # HOST the host name of this machine # BRAND used by other achitecture-specific code # path the execution search path exported to PATH case "$OSTYPE" in AIX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname` BRAND=ibm CC=cc CFLAGS="-O" F77=xlf ;; HP-UX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11:/tools/bin HOST=`hostname` BRAND=hp CC=cc CFLAGS="-O" F77=fort77 ;; IRIX ) PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` BRAND=sgi CC=cc CFLAGS="-O" F77=f77 ;; IRIX64 ) PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` case "$sgi_mode" in 32 ) BRAND=sgi ; CC="cc -32 -mips2" ; F77="f77 -32 -mips2" ;; n32 ) BRAND=sgi32 ; CC="cc -n32 -mips3" ; F77="f77 -n32 -mips3" ;; 64 ) BRAND=sgi64 ; CC="cc -64 -mips4" ; F77="f77 -64 -mips4" ;; * ) BRAND=sgi ; CC="cc" ; F77="f77" ;; esac CFLAGS="-O" set_compilers=0 # override HDF5 default compilers ;; Linux ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST=`hostname -s` BRAND=linux if [ "$LINUX_BRAND" = "linux64" ] ; then BRAND=linux64 elif [ "$LINUX_BRAND" = "linux32" ] ; then BRAND=linux32 fi CC="gcc $LNX_COMP_FLAG" CFLAGS="-O" F77="g77 $LNX_COMP_FLAG" ;; Darwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintosh CC=gcc CFLAGS="-O" F77=g77 ;; DarwinIntel ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintel32 if [ "$MAC_BRAND" = "macintel64" ] ; then BRAND=macintel64 elif [ "$MAC_BRAND" = "macintel32" ] ; then BRAND=macintel32 fi CC="gcc $MACINTEL_COMP_FLAG" CFLAGS="-O2" F77="gfortran $MACINTEL_COMP_FLAG" ;; Cygwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname` BRAND=cygwin CC=gcc CFLAGS="-O" F77=g77 ;; OSF1 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname -s` BRAND=dec CC=cc CFLAGS="-O -std" F77=f77 ;; sco386 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11 HOST=`hostname -s` BRAND=sco CC=cc CFLAGS="-O" F77=f77 ;; SunOS ) # distinguish between SunOS 5.x and 4.x versions if [ `uname -r | awk -F. '{print $1}'` = "5" ] ; then BRAND=sun5 # release V5.x SunOS PATH=/opt/SUNWspro/bin:/opt/SUNWspro/lib:/usr/ccs/bin:/usr/ucb:/usr/local/bin:/opt/SUNWspro/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin CC=cc CFLAGS="-O" F77=f77 if [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 10" ] ; then BRAND="sun5.10" # release V5.x SunOS PATH=/opt/SUNWspro/bin:/opt/SUNWspro/lib:/usr/ccs/bin:/usr/ucb:/usr/lib:/usr/include:/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 9" ] ; then BRAND="sun5.9" # release V5.x SunOS PATH=/opt/SUNWspro/bin:/opt/SUNWspro/lib:/usr/ccs/bin:/usr/ucb:/usr/lib:/usr/include:/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 8" ] ; then BRAND="sun5.8" # release V5.x SunOS PATH=/opt/SUNWspro/bin:/opt/SUNWspro/lib:/usr/ccs/bin:/usr/ucb:/usr/lib:/usr/include:/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin fi else BRAND=sun4 # release V4.x SunOS PATH=/usr/openwin/bin:/usr/openwin/demo:/usr/ucb:/usr/local/bin:/usr/local/lang:/usr/lang:/bin:/usr/bin:/etc:/usr/etc CC=acc CFLAGS="-O" F77=f77 set_compilers=1 # override HDF5 default compilers fi HOST=`hostname` ;; UNICOS ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/ucb:/usr/bin/X11 HOST=`hostname` BRAND=cray CC=cc CFLAGS="-O" F77=cf77 ;; * ) echo "Operating system: $OSTYPE not supported" >&2 echo "This release of the Toolkit and hdfeos supports: " >&2 echo " Sun, SGI HP-9000 IBM-6000 DEC-Alpha Linux Macintosh and Cray/Unicos " >&2 exit 1 ;; esac # if debug version was requested replace -O with -g in CFLAGS if [ "$dbug" = "1" ] ; then CFLAGS=`echo $CFLAGS | sed 's/-O/-g/'` fi CFLAGS="$CFLAGS $EXT_CC_FLAGS" # export the architecture-specific variables export BRAND HOST LOGNAME OSTYPE PATH USER export CC CFLAGS F77 } # # Function to allow user to override the defaults for the compilers # The following variables are affected: # # PATH CC F77 # UserCompilers() { # # check to see if valid C compiler path was specified # cc="" if [ "$cc_path" != "" ] ; then if [ -f $cc_path ] ; then cc=`basename $cc_path` cc_path=`echo $cc_path | sed 's%/[^/]*/*$%%'` case "$BRAND" in "sgi32" ) CC="$cc_path/$cc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then CC="$cc_path/$cc -64 -mips3" else CC="$cc_path/$cc -64 -mips4" fi ;; "linux" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux32" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux64" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "macintel" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel32" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel64" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; * ) CC="$cc_path/$cc" ;; esac export CC # user overrides C compiler name set_compilers=1 # override HDF default compilers fi if [ -d $cc_path ] ; then # make sure cc_path is now a directory PATH=${cc_path}:${PATH} # prepend cc_path to search path export PATH else cc_path="" echo "Warning: C compiler directory $cc_path not found." echo "HDF5 build may fail." fi fi # # check to see if valid FORTRAN compiler path was specified # fc="" if [ "$fc_path" != "" ] ; then if [ -f $fc_path ] ; then fc=`basename $fc_path` fc_path=`echo $fc_path | sed 's%/[^/]*$%%'` case "$BRAND" in "sgi32" ) F77="$fc_path/$fc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then F77="$fc_path/$fc -64 -mips3" else F77="$fc_path/$fc -64 -mips4" fi ;; "linux" ) if [ "$fc" == "pgf90" ] || [ "$fc" == "pgf77" ] ; then F77="$fc_path/$fc" else F77="$fc_path/$fc $LNX_COMP_FLAG" fi ;; "linux32" ) if [ "$fc" == "pgf90" ] || [ "$fc" == "pgf77" ] ; then F77="$fc_path/$fc" else F77="$fc_path/$fc $LNX_COMP_FLAG" fi ;; "linux64" ) if [ "$fc" == "pgf90" ] || [ "$fc" == "pgf77" ] ; then F77="$fc_path/$fc" else F77="$fc_path/$fc $LNX_COMP_FLAG" fi ;; "macintel" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel32" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel64" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; * ) F77="$fc_path/$fc" ;; esac # if [ "$fc" != f90 ] ; then # (f90 not supported for HDF4.1r1) # f90 is supported starting with the HDF4.1r2 release export F77 # user overrides FORTRAN compiler name set_compilers=1 # override HDF5 default compilers # fi fi if [ -d $fc_path ] ; then # make sure fc_path is now a directory PATH=${fc_path}:${PATH} # prepend fc_path to search path export PATH else fc_path="" echo "Warning: FORTRAN directory $fc_path not found." echo "HDF5 build may fail." fi fi } # # Function to get the location of the distribution file # GetDistribution() { : ${distrib_file:=hdf5-1.8.8.tar.gz} ds1=$distrib_file # backup copy # derive tar file name case "$distrib_file" in hdf5-1.6.3.tar.Z ) tar_file=hdf5-1.6.3.tar hdf_home=hdf5-1.6.3 ;; hdf5-1.6.5.tar.gz ) tar_file=hdf5-1.6.5.tar hdf_home=hdf5-1.6.5 ;; hdf5-1.6.5-post5.tar.gz ) tar_file=hdf5-1.6.5-post5.tar hdf_home=hdf5-1.6.5-post5 ;; hdf5-1.6.6.tar.gz ) tar_file=hdf5-1.6.6.tar hdf_home=hdf5-1.6.6 ;; hdf5-1.6.7.tar.gz ) tar_file=hdf5-1.6.7.tar hdf_home=hdf5-1.6.7 ;; hdf5-1.8.3.tar.gz ) tar_file=hdf5-1.8.3.tar hdf_home=hdf5-1.8.3 ;; hdf5-1.8.5-snap4.tar.gz ) tar_file=hdf5-1.8.5-snap4.tar hdf_home=hdf5-1.8.5-snap4 ;; hdf5-1.8.8.tar.gz ) tar_file=hdf5-1.8.8.tar hdf_home=hdf5-1.8.8 ;; * ) EchoAndLog "HDF5 version in $distrib_file not supported by this script." exit 1 ;; esac # set search path to include current dir, parent of current and $HOME search_path=`pwd` search_path="$search_path `cd ..; pwd` $HOME" # set search file to include compressed tar file and uncompressed tar file search_file="$distrib_file $tar_file" # search for the distribution file found_file=0 for distrib_path in $search_path ; do for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done if [ $found_file = 1 ] ; then break fi done # if file was not found, ask the user if [ $found_file = 0 ] ; then if [ $batch_mode = 0 ] ; then echo "" UserPrompt "Pathname where $ds1 is located: " echo "" else user_response="" fi if [ "$user_response" != "" ] ; then # make sure directory exists if [ -d $user_response ] ; then distrib_path=$user_response else WriteError "Invalid directory: $user_response" exit 1 fi # search for the distribution file in user directory for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done fi fi if [ $found_file = 0 ] ; then WriteError "Can't find ${ds1} in (${search_path})" echo "HDF5 installation cancelled." exit 1 fi } # # Function to get the location of the HDF5 home directory for installation # Also, prompt user that all information is valid before proceeding # GetInstallDir() { default_HDF5_path="`pwd`/hdf5/$BRAND" if [ "$HDF5_path" = "" ] ; then HDF5_path="`pwd`/hdf5/$BRAND" fi # ask the user if [ $batch_mode = 0 ] ; then UserPrompt "Pathname where directory '$hdf_home' will be created [$HDF5_path]: " echo "" else user_response="" fi if [ "$user_response" = "" ] ; then if [ ! -d `dirname $HDF5_path` ] ; then mkdir `dirname $HDF5_path` ; fi if [ ! -d $HDF5_path ] ; then mkdir $HDF5_path ; fi else # if [ -d "$user_response" ] ; then HDF5_path=$user_response ; #fi fi if [ ! -d $HDF5_path ] ; then if [ $batch_mode = 0 ] ; then UserPrompt "$HDF5_path does not exist. Create [y]? " else user_response=y fi if [ "$user_response" = "" ] ; then user_response="y" ; fi case "$user_response" in y* | Y* ) mkdir -p $HDF5_path if [ ! -d $HDF5_path ] ; then WriteError "Unable to create directory $HDF5_path." echo "HDF5 installation cancelled." 2>&1 exit 1 fi ;; *) WriteError "Directory $HDF5_path does not exist." echo "HDF5 installation cancelled." 2>&1 exit 1 ;; esac fi # # confirm before proceeding # echo "The HDF5 directory will be restored from: " echo " ${distrib_path}/${distrib_file}" echo "" echo "The HDF5 directory will be created in: " echo " ${HDF5_path}" echo "" if [ $batch_mode = 0 ] ; then UserPrompt "Continue [yes] ? " case "$user_response" in n* | N* ) echo "Cancelled." ; exit 1 ;; * ) echo "Confirmed." ; echo "" ;; esac fi # # For linux create soft links if default HDF5 installation directory is used # save_dir="`pwd`" if [ "`pwd`/hdf5/$BRAND" = "$default_HDF5_path" ] ;then if [ "$BRAND" = "linux64" ] ; then cd ${default_HDF5_path}/.. current_path="`pwd`" EchoAndLog "64-bit structure is the default in this machine. Creating $current_path/linux as a soft link to $default_HDF5_path" ln -s ./linux64 linux cd $save_dir fi if [ "$BRAND" = "linux" ] ; then cd ${default_HDF5_path}/.. current_path="`pwd`" EchoAndLog "32-bit structure is the default in this machine. Creating $current_path/linux32 as a soft link to $default_HDF5_path" ln -s ./linux linux32 cd $save_dir fi fi # # For macintel create soft links if default HDF5 installation directory is used # save_dir="`pwd`" if [ "`pwd`/hdf5/$BRAND" = "$default_HDF5_path" ] ;then if [ "$BRAND" = "macintel32" ] ; then cd ${default_HDF5_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel as a soft link to $default_HDF5_path" ln -s ./macintel32 macintel cd $save_dir fi if [ "$BRAND" = "macintel" ] ; then cd ${default_HDF5_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel32 as a soft link to $default_HDF5_path" ln -s ./macintel macintel32 cd $save_dir fi fi } # # Function to unpack the distribution file into the installation directory # UnpackDistribution() { # # Go to the HDF5 parent directory # cd $HDF5_path # # If the new HDF5 home directory already exits, it must # be removed first. Check with the user before proceeding. # if [ -d "$hdf_home" ] ; then EchoAndLog "The directory $hdf_home already exists." if [ $batch_mode = 0 ] ; then UserPrompt "Replace it [no] ? " else user_response=y fi case "$user_response" in y* | Y* ) EchoAndLog "Removing old $hdf_home directory ..." /bin/rm -rf $hdf_home ;; * ) EchoAndLog "Cancelled." exit 1 ;; esac fi # # Create a link to the distribution file, if necessary. # link_flag=0 if [ ! -f $distrib_file ] ; then if [ -f ${distrib_path}/${distrib_file} ] ; then ln -s ${distrib_path}/${distrib_file} ${distrib_file} link_flag=1 fi fi # # Uncompress the distribution file, (if needed), and extract the files # EchoAndLog "Extracting files from $distrib_file ..." suffix="`echo $distrib_file | sed 's/^.*\.//'`" case $suffix in Z ) zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; gz ) gzip -cd $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 # GnuZcat # if [ $gnu_zcat != 1 ] ; then # WriteError "You need the GNU version of zcat to unpack this file." # exit 1 # fi # zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; tar) echo $distrib_file tar -xvf $distrib_file | awk '{printf "."}' 2>&1 echo "" ;; esac # # Clean up symbolic link, if present # if [ $link_flag = 1 ] ; then /bin/rm -f $distrib_file fi } # # See if zcat is GNU version # GnuZcat() { if [ "$1" = "" ] ; then zcat_cmd=zcat else zcat_cmd=$1 fi buf=`exec 2>&1; $zcat_cmd < /dev/null | tail -1` buf=`echo $buf | awk -F: '{print $1}'` case "$buf" in zcat) gnu_zcat=1 ;; * ) gnu_zcat=0 ;; esac } # # Strip all HDF5 distribution files not needed after installation. # StripHdfInstall() { cd $HDF5HOME here=`pwd` here=`basename $here` # # Make sure this is a valid HDF5 directory befor clobbering files ! # if [ "`echo $here | grep '^HDF5'`" = "" ] ; then EchoAndLog "Not a valid HDF5 directory: no files removed." else EchoAndLog "Removing all non-installation HDF5 files ..." for file in * ; do if [ -d "$file" ] ; then case "$file" in bin | lib | include | man ) ;; * ) rm -rf $file ;; esac else rm -f $file fi done fi } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # log_file="" home_file="" noquery=0 clean=0 cleano=0 strip_install=0 append=0 no_untar=0 sgi_mode=32 f90_flag=0 nag_flag=0 absoft_flag=0 fc_path="" cc_path="" distrib_file="" set_compilers=0 dbug=0 HDF5_path="" batch_mode=0 c_rlib=0 while [ "$1" != "" ] ; do case "$1" in -h ) Help ;; -f90 ) f90_flag=1 ;; -NAG ) if [ $f90_flag = 0 ] ; then WriteError "Must first specify -f90 and set compiler path." Help else nag_flag=1 fi ;; -ABSOFT ) absoft_flag=1 ;; -fc_path ) fc_path="$2" shift ;; -cc_path ) cc_path="$2" shift ;; -df) distrib_file="$2" shift ;; -sgi32 ) sgi_mode=n32 ;; -sgi64 ) sgi_mode=64 ;; -log ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then log_file="$2" else log_file="$start_dir/$2" fi shift else WriteError "A log file must be specified with the -log option." Help fi ;; -append ) append=1 ;; -w_home ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then home_file="$2" else home_file="$start_dir/$2" fi shift else WriteError "No file specified with -w_home switch." Help fi ;; -nq | -noquery ) noquery=1 ;; -clean ) clean=1 ;; -cleano ) cleano=1 ;; -strip ) strip_install=1 ;; -no_untar ) no_untar=1 ;; -dbug ) dbug=1 ;; -install_dir ) if [ "$2" != "" ] ; then HDF5_path=$2 shift else WriteError "No installation directory specified with -install_dir switch." Help fi ;; -batch ) batch_mode=1 ;; -c_rlib ) c_rlib=1 ;; * ) echo "$script_error invalid argument '$1'" Help ;; esac shift done # # Inititialize log file # if [ "$log_file" != "" ] ; then if [ "$append" = "0" ] ; then if [ -f "$log_file" ] ; then /bin/rm -f $log_file > /dev/null 2>&1 fi fi touch $log_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $log_file" exit 1 fi echo "" echo "`basename $0`: session output will go to file: " echo "" echo " $log_file" echo "" fi export log_file # # Initialize the home file # if [ "$home_file" != "" ] ; then if [ -f "$home_file" ] ; then /bin/rm -f $home_file > /dev/null 2>&1 fi touch $home_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $home_file" exit 1 fi fi # # Set architecture-specific variables # SetArchitecture # # Set user compiler overrides # UserCompilers # # Get the location of the distribution file # GetDistribution # # Got valid distribution file # Get the location of the HDF5 home directory for installation # GetInstallDir # # Write the log file header # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "HDF5 installation starting at: `date`" >> $log_file echo "host: $HOST type: $BRAND user: $USER " >> $log_file echo "" >> $log_file echo "" >> $log_file echo "The HDF5 directory will be restored from: " >> $log_file echo " ${distrib_path}/${distrib_file}" >> $log_file echo "" >> $log_file echo "The HDF5 directory will be created in: " >> $log_file echo " ${HDF5_path}" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "" >> $log_file fi # # Unpack the distribution file into the installation directory # cd $HDF5_path if [ "$no_untar" = 0 ] ; then UnpackDistribution fi # # Prepare to install the requested version of HDF5 # if [ ! -d $hdf_home ] ; then EchoAndLog "Error creating directory: $hdf_home" exit 1 fi cd $hdf_home # go to the starting directory hdf_install_caller="$this_script" # set caller flag for sub-modules export hdf_install_caller # # Set the version to be installed # install_script="" install_options="" case $hdf_home in hdf5-1.6.5 ) HDF5HOME=${HDF5_path}/hdf5-1.6.5 ; export HDF5HOME install_script="$script_dir/INSTALL-HDF5-1.6.5" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDF5HOME}" ;; hdf5-1.6.5-post5 ) HDF5HOME=${HDF5_path}/hdf5-1.6.5-post5 ; export HDF5HOME install_script="$script_dir/INSTALL-HDF5-1.6.5" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDF5HOME}" ;; hdf5-1.6.6 ) HDF5HOME=${HDF5_path}/hdf5-1.6.6 ; export HDF5HOME install_script="$script_dir/INSTALL-HDF5-1.6.6" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDF5HOME}" ;; hdf5-1.6.7 ) HDF5HOME=${HDF5_path}/hdf5-1.6.7 ; export HDF5HOME install_script="$script_dir/INSTALL-HDF5-1.6.7" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDF5HOME}" ;; hdf5-1.8.3 ) HDF5HOME=${HDF5_path}/hdf5-1.8.3 ; export HDF5HOME install_script="$script_dir/INSTALL-HDF5-1.8.3" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDF5HOME}" ;; hdf5-1.8.5-snap4 ) HDF5HOME=${HDF5_path}/hdf5-1.8.5-snap4 ; export HDF5HOME install_script="$script_dir/INSTALL-HDF5-1.8.5" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi if [ $c_rlib = 1 ] ; then install_options="$install_options -c_rlib" fi install_options="$install_options -start_dir ${HDF5HOME}" ;; hdf5-1.8.8 ) HDF5HOME=${HDF5_path}/hdf5-1.8.8 ; export HDF5HOME install_script="$script_dir/INSTALL-HDF5-1.8.8" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi if [ $c_rlib = 1 ] ; then install_options="$install_options -c_rlib" fi install_options="$install_options -start_dir ${HDF5HOME}" ;; * ) # unsupported EchoAndLog "$hdf_home installation is not supported by this script." exit 1 ;; esac # # Run the install script # if [ ! -f $install_script ] ; then EchoAndLog "Can't find $install_script - installation failed." exit 1 fi $install_script $install_options if [ $? != 0 ] ; then EchoAndLog "$hdf_home Installation failed." exit 1 fi # # Pass back the HDF5 install directory for the hdfeos installation # if [ "$home_file" != "" ] ; then echo $HDF5HOME >> $home_file fi # # Clean up # cd $HDF5_path if [ "$clean" = 1 ] ; then for dir in $HDF5HOME ; do cd $dir echo "Cleaning up in $dir ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Cleaning up in $dir ..." >> $log_file echo "" >> $log_file make clean >> $log_file 2>&1 else make clean fi done fi if [ "$cleano" = 1 ] ; then cd $HDF5HOME echo "Removing any remaining object files ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Removing any remaining object files ..." >> $log_file echo "" >> $log_file find . -name \*.o -print -exec rm -f {} \; >> $log_file 2>&1 find . -name a.out -print -exec rm -f {} \; >> $log_file 2>&1 else find . -name \*.o -print -exec rm -f {} \; find . -name a.out -print -exec rm -f {} \; fi fi if [ "$strip_install" = 1 ] ; then StripHdfInstall fi echo "------------------------------------------------------------" echo "" echo " HDF5 installation ending at: `date` " echo "" echo "------------------------------------------------------------" # # Write the log file trailer # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo " HDF5 installation ending at: `date`" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-ZLIB0000755000175000017500000007557512024715435022547 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-ZLIB # # description: # ZLIB installation script for the (PGS) Toolkit and hdfeos # # usage: # INSTALL-ZLIB [-f90 [-NAG]] [-ABSOFT] [-fc_path ] # [-cc_path ] # [-sgi32 | -sgi64] [-log [-append]] # [-clean | -cleano] [-strip] [-w_home ] # [-df ] [-batch] # [-install_dir ] # INSTALL-ZLIB [-h] # # -f90 : build ZLIB FORTRAN modules using f90 # optional flag -NAG specifies NAG f90 # -ABSOFT : flag that specifies absoft f77 is used for fortran compilation # -fc_path : set the path of the FORTRAN compiler to # -cc_path : set the path of the C compiler to # -sgi32 : build in -n32 mode (SGI Power Challenge only) # -sgi64 : build in 64-bit mode (SGI Power Challenge only) # -log : sdone session output to new # -append : append to existing # -clean : run 'make clean' after doing the installation # -cleano : clean up all object and a.out files # -strip : strip out all non-installation files following install # -w_home : write ZLIB home directory to # -df : install ZLIB from distribution file # -batch : run script in batch (i.e. non-interactive) mode # -install_dir : full path to top level directory where ZLIB will be # installed (e.g. /usr/local/hdfeos/zlib/sgi64) # -h : display this help message and exit # # notes: # 1) The use of the -clean option will cause the ZLIB utilites to # be deleted. To preserve them, use the -cleano option instead. # # 2) The -f90 and -NAG options are * * NOT IMPLEMENTED * * # Currently, these options are accepted, but ignored. # # # author: # Mike Sucher / Applied Research Corp. # Megan E. Donovan Spencer / SM&AE # Abe Taaheri / SM&AE, Raytheon IIS # Phuong T Nguyen / L3 Communication GSI. # Adura Adekunjo / L3 Communication GSI. # history: # 11-May-1995 MES Initial version # 20-Oct-2003 AT Used INSTALL-HDF5 as template for INSTALL-SZIP # 26-Mar-2004 AA Used INSTALL-SZIP as template for INSTALL-ZLIB #----------------------------------------------------------------------------- # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir="`cd $script_dir;pwd`" fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { echo "" echo "$*" if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "$*" >> $log_file fi } # # Function prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to set up and export the following architecture-specific variables: # # BRAND HOST LOGNAME OSTYPE PATH USER # SetArchitecture() { # set path to a base subset of directories, allowing startup on unknown host # note: once the architecture has been determined the path is customized PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11 # get operating system type, login name # special cases: SCO and Cray - uname works differently, machine=`uname -m | awk '{print $1}'` # needed on Cray & SCO temp_ostype=`uname` case "$machine" in i386 ) # SCO box OSTYPE=sco386 ;; CRAY ) # CRAY OSTYPE=UNICOS ;; * ) # everybody else OSTYPE=`uname` ;; esac # Intel Macintosh is also i386 or i686 (?) machine if [ "$machine" = "i386" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "i686" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "x86_64" ] || [ "$machine" = "ia64" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel if [ "$MAC_BRAND" = "" ] ; then echo " Error: In 64-bit MAC platform the env. variable MAC_BRAND must be set to mac32 or mac64 before running this script." exit 1 fi else if [ "$LINUX_BRAND" = "" ] ; then echo " Error: In 64-bit linux platform the env. variable LINUX_BRAND must be et to linux32 or linux64 before running this script." exit 1 fi fi fi user=`id | cut -d\( -f2 | cut -d\) -f1` if [ "$LOGNAME" = "" ] ; then # make sure $LOGNAME is defined LOGNAME=$user fi USER=$LOGNAME # make sure $USER is defined # set machine-depdoneent environment variables: # HOST the host name of this machine # BRAND used by other achitecture-specific code # path the execution search path exported to PATH case "$OSTYPE" in AIX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname` BRAND=ibm CC=cc CFLAGS="-O" F77=xlf ;; HP-UX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11:/tools/bin HOST=`hostname` BRAND=hp CC=cc CFLAGS="-O" F77=fort77 ;; IRIX ) PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` BRAND=sgi CC=cc CFLAGS="-O" F77=f77 ;; IRIX64 ) PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` case "$sgi_mode" in 32 ) BRAND=sgi ; CC="cc -32 -mips2" ; F77="f77 -32 -mips2" ;; n32 ) BRAND=sgi32 ; CC="cc -n32 -mips3" ; F77="f77 -n32 -mips3" ;; 64 ) BRAND=sgi64 ; CC="cc -64 -mips4" ; F77="f77 -64 -mips4" ;; * ) BRAND=sgi ; CC="cc" ; F77="f77" ;; esac CFLAGS="-O" set_compilers=0 # override ZLIB default compilers ;; Linux ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST=`hostname -s` BRAND=linux if [ "$LINUX_BRAND" = "linux64" ] ; then BRAND=linux64 elif [ "$LINUX_BRAND" = "linux32" ] ; then BRAND=linux32 fi CC="gcc $LNX_COMP_FLAG" CFLAGS="-O" F77="g77 $LNX_COMP_FLAG" ;; Darwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintosh CC=gcc CFLAGS="-O" F77=g77 ;; DarwinIntel ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintel32 if [ "$MAC_BRAND" = "macintel64" ] ; then BRAND=macintel64 elif [ "$MAC_BRAND" = "macintel32" ] ; then BRAND=macintel32 fi CC="gcc $MACINTEL_COMP_FLAG" CFLAGS="-O2" F77="gfortran $MACINTEL_COMP_FLAG" ;; Cygwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname` BRAND=cygwin CC=gcc CFLAGS="-O" F77=g77 ;; OSF1 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname -s` BRAND=dec CC=cc CFLAGS="-O -std" F77=f77 ;; sco386 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11 HOST=`hostname -s` BRAND=sco CC=cc CFLAGS="-O" F77=f77 ;; SunOS ) # distinguish between SunOS 5.x and 4.x versions if [ `uname -r | awk -F. '{print $1}'` = "5" ] ; then BRAND=sun5 # release V5.x SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/openwin/bin:/usr/openwin/demo:/usr/ccs/bin:/usr/sbin CC=cc CFLAGS="-O" F77=f77 if [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 10" ] ; then BRAND="sun5.10" # release V5.10 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin CC=cc CFLAGS="-O" F77=f77 elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 9" ] ; then BRAND="sun5.9" # release V5.9 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin CC=cc CFLAGS="-O" F77=f77 elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 8" ] ; then BRAND="sun5.8" # release V5.8 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin CC=cc CFLAGS="-O" F77=f77 fi else BRAND=sun4 # release V4.x SunOS PATH=/usr/local/bin:/usr/local/lang:/usr/lang:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/openwin/bin:/usr/openwin/demo CC=acc CFLAGS="-O" F77=f77 set_compilers=1 # override ZLIB default compilers fi HOST=`hostname` ;; UNICOS ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/ucb:/usr/bin/X11 HOST=`hostname` BRAND=cray CC=cc CFLAGS="-O" F77=cf77 ;; * ) echo "Operating system: $OSTYPE not supported" >&2 echo "This release of the Toolkitand hdfeos supports: " >&2 echo " Sun SGI HP-9000 IBM-6000 DEC-Alpha Linux Macintosh and Cray/Unicos " >&2 exit 1 ;; esac # if debug version was requested replace -O with -g in CFLAGS if [ "$dbug" = "1" ] ; then CFLAGS=`echo $CFLAGS | sed 's/-O/-g/'` fi CFLAGS="$CFLAGS $EXT_CC_FLAGS" # export the architecture-specific variables export BRAND HOST LOGNAME OSTYPE PATH USER export CC CFLAGS F77 } # # Function to allow user to override the defaults for the compilers # The following variables are affected: # # PATH CC F77 # UserCompilers() { # # check to see if valid C compiler path was specified # cc="" if [ "$cc_path" != "" ] ; then if [ -f $cc_path ] ; then cc=`basename $cc_path` cc_path=`echo $cc_path | sed 's%/[^/]*/*$%%'` case "$BRAND" in "sgi32" ) CC="$cc_path/$cc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then CC="$cc_path/$cc -64 -mips3" else CC="$cc_path/$cc -64 -mips4" fi ;; "linux" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux32" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux64" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "macintel" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel32" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel64" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; * ) CC="$cc_path/$cc" ;; esac export CC # user overrides C compiler name set_compilers=1 # override HDF default compilers fi if [ -d $cc_path ] ; then # make sure cc_path is now a directory PATH=${cc_path}:${PATH} # prepend cc_path to search path export PATH else cc_path="" echo "Warning: C compiler directory $cc_path not found." echo "ZLIB build may fail." fi fi # # check to see if valid FORTRAN compiler path was specified # fc="" if [ "$fc_path" != "" ] ; then if [ -f $fc_path ] ; then fc=`basename $fc_path` fc_path=`echo $fc_path | sed 's%/[^/]*$%%'` case "$BRAND" in "sgi32" ) F77="$fc_path/$fc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then F77="$fc_path/$fc -64 -mips3" else F77="$fc_path/$fc -64 -mips4" fi ;; "linux" ) F77="$fc_path/$fc $LNX_COMP_FLAG" ;; "linux64" ) F77="$fc_path/$fc $LNX_COMP_FLAG" ;; "linux32" ) F77="$fc_path/$fc $LNX_COMP_FLAG" ;; "macintel" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel32" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel64" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; * ) F77="$fc_path/$fc" ;; esac # if [ "$fc" != f90 ] ; then # (f90 not supported for HDF4.1r1) # f90 is supported starting with the HDF4.1r2 release export F77 # user overrides FORTRAN compiler name set_compilers=1 # override HDF default compilers # fi fi if [ -d $fc_path ] ; then # make sure fc_path is now a directory PATH=${fc_path}:${PATH} # prepend fc_path to search path export PATH else fc_path="" echo "Warning: FORTRAN directory $fc_path not found." echo "ZLIB build may fail." fi fi } # # Function to get the location of the distribution file # GetDistribution() { : ${distrib_file:=zlib-1.2.5.tar.gz} ds1=$distrib_file # backup copy # derive tar file name case "$distrib_file" in zlib-1.2.1.tar.gz ) tar_file=zlib-1.2.1.tar zlib_home=zlib-1.2.1 ;; zlib-1.2.1.tar.Z ) tar_file=zlib-1.2.1.tar zlib_home=zlib-1.2.1 ;; zlib-1.2.3.tar.gz ) tar_file=zlib-1.2.3.tar zlib_home=zlib-1.2.3 ;; zlib-1.2.5.tar.gz ) tar_file=zlib-1.2.5.tar zlib_home=zlib-1.2.5 ;; * ) EchoAndLog "ZLIB version in $distrib_file not supported by this script." exit 1 ;; esac # set search path to include current dir, parent of current and $HOME search_path=`pwd` search_path="$search_path `cd ..; pwd` $HOME" # set search file to include compressed tar file and uncompressed tar file search_file="$distrib_file $tar_file" # search for the distribution file found_file=0 for distrib_path in $search_path ; do for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done if [ $found_file = 1 ] ; then break fi done # if file was not found, ask the user if [ $found_file = 0 ] ; then if [ $batch_mode = 0 ] ; then echo "" UserPrompt "Pathname where $ds1 is located: " echo "" else user_response="" fi if [ "$user_response" != "" ] ; then # make sure directory exists if [ -d $user_response ] ; then distrib_path=$user_response else WriteError "Invalid directory: $user_response" exit 1 fi # search for the distribution file in user directory for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done fi fi if [ $found_file = 0 ] ; then WriteError "Can't find ${ds1} in (${search_path})" echo "ZLIB installation cancelled." exit 1 fi } # # Function to get the location of the ZLIB home directory for installation # Also, prompt user that all information is valid before proceeding # GetInstallDir() { default_ZLIB_path="`pwd`/zlib/$BRAND" if [ "$ZLIB_path" = "" ] ; then ZLIB_path="`pwd`/zlib/$BRAND" fi # ask the user if [ $batch_mode = 0 ] ; then UserPrompt "Pathname where directory '$zlib_home' will be created [$ZLIB_path]: " echo "" else user_response="" fi if [ "$user_response" = "" ] ; then if [ ! -d `dirname $ZLIB_path` ] ; then mkdir `dirname $ZLIB_path` ; fi if [ ! -d $ZLIB_path ] ; then mkdir $ZLIB_path ; fi else # if [ -d "$user_response" ] ; then ZLIB_path=$user_response ; #fi fi if [ ! -d $ZLIB_path ] ; then if [ $batch_mode = 0 ] ; then UserPrompt "$ZLIB_path does not exist. Create [y]? " else user_response=y fi if [ "$user_response" = "" ] ; then user_response="y" ; fi case "$user_response" in y* | Y* ) mkdir -p $ZLIB_path if [ ! -d $ZLIB_path ] ; then WriteError "Unable to create directory $ZLIB_path." echo "ZLIB installation cancelled." 2>&1 exit 1 fi ;; *) WriteError "Directory $ZLIB_path does not exist." echo "ZLIB installation cancelled." 2>&1 exit 1 ;; esac fi # # confirm before proceeding # echo "The ZLIB directory will be restored from: " echo " ${distrib_path}/${distrib_file}" echo "" echo "The ZLIB directory will be created in: " echo " ${ZLIB_path}" echo "" if [ $batch_mode = 0 ] ; then UserPrompt "Continue [yes] ? " case "$user_response" in n* | N* ) echo "Cancelled." ; exit 1 ;; * ) echo "Confirmed." ; echo "" ;; esac fi # # For linux create soft links if default ZLIB installation directory is used # save_dir="`pwd`" if [ "`pwd`/zlib/$BRAND" = "$default_ZLIB_path" ] ;then if [ "$BRAND" = "linux64" ] ; then cd ${default_ZLIB_path}/.. current_path="`pwd`" EchoAndLog "64-bit structure is the default in this machine. Creating $current_path/linux as a soft link to $default_ZLIB_path" ln -s ./linux64 linux cd $save_dir fi if [ "$BRAND" = "linux" ] ; then cd ${default_ZLIB_path}/.. current_path="`pwd`" EchoAndLog "32-bit structure is the default in this machine. Creating $current_path/linux32 as a soft link to $default_ZLIB_path" ln -s ./linux linux32 cd $save_dir fi fi # # For macintel create soft links if default ZLIB installation directory is used # save_dir="`pwd`" if [ "`pwd`/zlib/$BRAND" = "$default_ZLIB_path" ] ;then if [ "$BRAND" = "macintel32" ] ; then cd ${default_ZLIB_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel as a soft link to $default_ZLIB_path" ln -s ./macintel32 macintel cd $save_dir fi if [ "$BRAND" = "macintel" ] ; then cd ${default_ZLIB_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel32 as a soft link to $default_ZLIB_path" ln -s ./macintel macintel32 cd $save_dir fi fi } # # Function to unpack the distribution file into the installation directory # UnpackDistribution() { # # Go to the ZLIB parent directory # cd $ZLIB_path # # If the new ZLIB home directory already exits, it must # be removed first. Check with the user before proceeding. # if [ -d "$zlib_home" ] ; then EchoAndLog "The directory $zlib_home already exists." if [ $batch_mode = 0 ] ; then UserPrompt "Replace it [no] ? " else user_response=y fi case "$user_response" in y* | Y* ) EchoAndLog "Removing old $zlib_home directory ..." /bin/rm -rf $zlib_home ;; * ) EchoAndLog "Cancelled." exit 1 ;; esac fi # # Create a link to the distribution file, if necessary. # link_flag=0 if [ ! -f $distrib_file ] ; then if [ -f ${distrib_path}/${distrib_file} ] ; then ln -s ${distrib_path}/${distrib_file} ${distrib_file} link_flag=1 fi fi # # Uncompress the distribution file, (if needed), and extract the files # EchoAndLog "Extracting files from $distrib_file ..." suffix="`echo $distrib_file | sed 's/^.*\.//'`" case $suffix in Z ) zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; gz ) gzip -cd $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 # GnuZcat # if [ $gnu_zcat != 1 ] ; then # WriteError "You need the GNU version of zcat to unpack this file." # exit 1 # fi # zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; tar) echo $distrib_file tar -xvf $distrib_file | awk '{printf "."}' 2>&1 echo "" ;; esac # # Clean up symbolic link, if present # if [ $link_flag = 1 ] ; then /bin/rm -f $distrib_file fi } # # See if zcat is GNU version # GnuZcat() { if [ "$1" = "" ] ; then zcat_cmd=zcat else zcat_cmd=$1 fi buf=`exec 2>&1; $zcat_cmd < /dev/null | tail -1` buf=`echo $buf | awk -F: '{print $1}'` case "$buf" in zcat) gnu_zcat=1 ;; * ) gnu_zcat=0 ;; esac } # # Strip all ZLIB distribution files not needed after installation. # StripHdfInstall() { cd $ZLIBHOME here=`pwd` here=`basename $here` # # Make sure this is a valid ZLIB directory befor clobbering files ! # if [ "`echo $here | grep '^ZLIB'`" = "" ] ; then EchoAndLog "Not a valid ZLIB directory: no files removed." else EchoAndLog "Removing all non-installation ZLIB files ..." for file in * ; do if [ -d "$file" ] ; then case "$file" in bin | lib | include | man ) ;; * ) rm -rf $file ;; esac else rm -f $file fi done fi } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # log_file="" home_file="" noquery=0 clean=0 cleano=0 strip_install=0 append=0 no_untar=0 sgi_mode=32 f90_flag=0 nag_flag=0 absoft_flag=0 fc_path="" cc_path="" distrib_file="" set_compilers=0 dbug=0 ZLIB_path="" batch_mode=0 while [ "$1" != "" ] ; do case "$1" in -h ) Help ;; -f90 ) f90_flag=1 ;; -NAG ) if [ $f90_flag = 0 ] ; then WriteError "Must first specify -f90 and set compiler path." Help else nag_flag=1 fi ;; -ABSOFT ) absoft_flag=1 ;; -fc_path ) fc_path="$2" shift ;; -cc_path ) cc_path="$2" shift ;; -df) distrib_file="$2" shift ;; -sgi32 ) sgi_mode=n32 ;; -sgi64 ) sgi_mode=64 ;; -log ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then log_file="$2" else log_file="$start_dir/$2" fi shift else WriteError "A log file must be specified with the -log option." Help fi ;; -append ) append=1 ;; -w_home ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then home_file="$2" else home_file="$start_dir/$2" fi shift else WriteError "No file specified with -w_home switch." Help fi ;; -nq | -noquery ) noquery=1 ;; -clean ) clean=1 ;; -cleano ) cleano=1 ;; -strip ) strip_install=1 ;; -no_untar ) no_untar=1 ;; -install_dir ) if [ "$2" != "" ] ; then ZLIB_path=$2 shift else WriteError "No installation directory specified with -install_dir switch." Help fi ;; -batch ) batch_mode=1 ;; * ) echo "$script_error invalid argument '$1'" Help ;; esac shift done # # Inititialize log file # if [ "$log_file" != "" ] ; then if [ "$append" = "0" ] ; then if [ -f "$log_file" ] ; then /bin/rm -f $log_file > /dev/null 2>&1 fi fi touch $log_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $log_file" exit 1 fi echo "" echo "`basename $0`: session output will go to file: " echo "" echo " $log_file" echo "" fi export log_file # # Initialize the home file # if [ "$home_file" != "" ] ; then if [ -f "$home_file" ] ; then /bin/rm -f $home_file > /dev/null 2>&1 fi touch $home_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $home_file" exit 1 fi fi # # Set architecture-specific variables # SetArchitecture # # Set user compiler overrides # UserCompilers # # Get the location of the distribution file # GetDistribution # # Got valid distribution file # Get the location of the ZLIB home directory for installation # GetInstallDir # # Write the log file header # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "ZLIB installation starting at: `date`" >> $log_file echo "host: $HOST type: $BRAND user: $USER " >> $log_file echo "" >> $log_file echo "" >> $log_file echo "The ZLIB directory will be restored from: " >> $log_file echo " ${distrib_path}/${distrib_file}" >> $log_file echo "" >> $log_file echo "The ZLIB directory will be created in: " >> $log_file echo " ${ZLIB_path}" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "" >> $log_file fi # # Unpack the distribution file into the installation directory # cd $ZLIB_path if [ "$no_untar" = 0 ] ; then UnpackDistribution fi # # Prepare to install the requested version of ZLIB # if [ ! -d $zlib_home ] ; then EchoAndLog "Error creating directory: $zlib_home" exit 1 fi cd $zlib_home # go to the starting directory zlib_install_caller="$this_script" # set caller flag for sub-modules export zlib_install_caller # # Set the version to be installed # install_script="" install_options="" case $zlib_home in zlib-1.2.1) ZLIBHOME=${ZLIB_path}/zlib-1.2.1 ; export ZLIBHOME install_script="$script_dir/INSTALL-ZLIB-1.2.1" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${ZLIBHOME}" ;; zlib-1.2.3) ZLIBHOME=${ZLIB_path}/zlib-1.2.3 ; export ZLIBHOME install_script="$script_dir/INSTALL-ZLIB-1.2.3" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${ZLIBHOME}" ;; zlib-1.2.5) ZLIBHOME=${ZLIB_path}/zlib-1.2.5 ; export ZLIBHOME install_script="$script_dir/INSTALL-ZLIB-1.2.5" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${ZLIBHOME}" ;; * ) # unsupported EchoAndLog "$zlib_home installation is not supported by this script." exit 1 ;; esac # # Run the install script # if [ ! -f $install_script ] ; then EchoAndLog "Can't find $install_script - installation failed." exit 1 fi $install_script $install_options if [ $? != 0 ] ; then EchoAndLog "$zlib_home Installation failed." exit 1 fi # # Pass back the ZLIB install directory for the hdfeos installation # if [ "$home_file" != "" ] ; then echo $ZLIBHOME >> $home_file fi # # Clean up # cd $ZLIB_path if [ "$clean" = 1 ] ; then for dir in $ZLIBHOME ; do cd $dir echo "Cleaning up in $dir ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Cleaning up in $dir ..." >> $log_file echo "" >> $log_file make clean >> $log_file 2>&1 else make clean fi done fi if [ "$cleano" = 1 ] ; then cd $ZLIBHOME echo "Removing any remaining object files ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Removing any remaining object files ..." >> $log_file echo "" >> $log_file find . -name \*.o -print -exec rm -f {} \; >> $log_file 2>&1 find . -name a.out -print -exec rm -f {} \; >> $log_file 2>&1 else find . -name \*.o -print -exec rm -f {} \; find . -name a.out -print -exec rm -f {} \; fi fi if [ "$strip_install" = 1 ] ; then StripHdfInstall fi echo "------------------------------------------------------------" echo "" echo " ZLIB installation ending at: `date` " echo "" echo "------------------------------------------------------------" # # Write the log file trailer # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo " ZLIB installation ending at: `date`" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-HDF5-1.8.80000755000175000017500000006047012024715435023133 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-HDF5-1.8.8 # # description: # Installation script module for installing HDF5-1.8.8 # for the SDP (PGS) Toolkit and hdfeos. # It implements patches to the NCSA # installation procedure to allow for trouble-free installation on # the platforms supported by the SDP (PGS) Toolkit and hdfeos. # # usage: # Called from INSTALL-HDF5 # # INSTALL-HDF5-1.8.8 [-dbug] # INSTALL-HDF5-1.8.8 -h[elp] # INSTALL-HDF5-1.8.8 [-c_rlib] # # -h : display this help message and exit # -dbug : install debug version of HDF5 # -c_rlib : install thread safe HDF5 library # # notes: # This is NOT a standalone script. It is only intended to be run # by INSTALL-HDF5, the HDF installation script. # # author: # Mike Sucher / Applied Research Corp. # Abe Taaheri / Emergent Information Technologies, Inc. # Adura Adekunjo /L3 Communications EER Inc. # # history: # 23-Apr-1996 MES Initial version (file: INSTALL-HDF4.0r1) # 26-Apr-1996 MES Updated PreConfigure compiler logic. # 02-Jul-1996 MES Updated to handle SunOS 5.5 # 19-Aug-1996 MES Updated for HDF4.0r2 (file: INSTALL-HDF4.0r2) # 23-Sep-1996 MES Added patch to hdfi.h on dec to avoid potential # conflict with . # 19-Aug-1996 MES Updated for HDF4.1r3 (file: INSTALL-HDF4.1r3) # 05-Oct-2000 AT for machine HP-11 the xdr library libnsl.a needs to be # loaded as for the SOLARIS. Added code to edit mh-hpux # file in config directory to include the load flag -lnsl # 19-Mar-2001 AT Added for HDF5 Installation # 13-Aug-2001 AA Modified for solaris8 # 20-Oct-2003 AT Update hdf5-1.4.4 to hdf5-1.6.1 # 16-Mar-2004 AA Updated hdf5-1.6.1 to hdf5-1.6.2 # 24-Jan-2005 MP Updated hdf5-1.6.2 to hdf5-1.6.3 # 05-Sep-2005 AT Updated hdf5-1.6.3 to hdf5-1.6.5 # 05-Jul-2007 AT Updated hdf5-1.6.5 to hdf5-1.6.6 # 09-Jan-2008 AT Updated hdf5-1.6.6 to hdf5-1.6.7 # 09-MAy-2009 AT Updated hdf5-1.6.7 to hdf5-1.8.3 # 20-Jul-2010 AT Updated hdf5-1.8.3 to hdf5-1.8.5-snap4 # 20-Jul-2010 AT Updated hdf5-1.8.5-snap4 to hdf5-1.8.8 # #----------------------------------------------------------------------------- # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir=`cd $script_dir;pwd` fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else echo "" if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to silently emulate the 'which' command # Which() { if [ "$1" = "" ] ; then WriteError "Which() : Too few arguments." exit 1 fi saveifs="$IFS" IFS=: which_result=0 which_cmd="" for dir in $PATH; do if [ -x $dir/$1 ] ; then which_result=1 which_cmd=$dir/$1 break fi done IFS="$saveifs" } # # Function to implement debug version of hdf libraries # PreConfigFixes_dbug() { cd $start_dir EchoAndLog "Pre-configure for debug ... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to change the compilers. To get around this, we edit the # file config/ to comment out the offending lines that get # get included in the Makefile generated by configure. # cd $start_dir/config case $BRAND in cray ) file=mh-unicos; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; dec ) file=mh-alpha; c_opt='-Olimit 2048'; c_dbug='-g'; f_opt='='; f_dbug='= -g'; ;; hp ) file=mh-hpux; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; ibm ) file=mh-aix; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; linux ) file=mh-linux; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; linux32 ) file=mh-linux; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; linux64 ) file=mh-linux; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; macintosh ) file=mh-mac; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; macintel ) file=mh-mac; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; macintel32 ) file=mh-mac; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; macintel64 ) file=mh-mac; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; cygwin ) file=mh-cygwin; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; sgi ) file=mh-irix32; if [ "$OSTYPE" = "IRIX" ] ; then file=mh-irix5; fi c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sgi32 ) file=mh-irix32; c_opt='-O' c_dbug='-g'; f_opt='-O' f_dbug='-g'; ;; sgi64 ) file=mh-irix6; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun4 ) file=mh-sun; c_opt='-O'; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun5 ) file=mh-solaris; c_opt='-xO2'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun5.8 ) file=mh-solaris; c_opt='-xO2'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun5.9 ) file=mh-solaris; c_opt='-xO2'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun5.10 ) file=mh-solaris; c_opt='-xO2'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | sed "/^CFLAGS/s/$c_opt/$c_dbug/" | sed "/^FFLAGS/s/$f_opt/$f_dbug/" | cat > $file.ncsa mv $file.ncsa $file cd $start_dir } # # Function to implement pre-configure installation fixes for linux # PreConfigFixes_linux() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND ... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to change the compilers. To get around this, we edit the # file config/ to comment out the offending lines that # get included in the Makefile generated by configure. # cd $start_dir/config mv mh-linux mh-linux.ncsa sed 's/f77/g77/g' mh-linux.ncsa > mh-linux cd $start_dir } # # Function to implement pre-configure installation fixes for macintosh # PreConfigFixes_macintosh() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND ... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to change the compilers. To get around this, we edit the # file config/ to comment out the offending lines that # get included in the Makefile generated by configure. # cd $start_dir/config mv mh-mac mh-mac.ncsa sed 's/f77/g77/g' mh-mac.ncsa > mh-mac cd $start_dir } PreConfigFixes_cygwin() { cd $start_dir/config cd $start_dir } # # Function to implement pre-configure installation fixes for sgi # PreConfigFixes_sgi() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND ... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to change the compilers. To get around this, we edit the # file config/ to comment out the offending lines that # get included in the Makefile generated by configure. # cd $start_dir/config if [ ! -f mh-irix6.ncsa ] ; then mv mh-irix6 mh-irix6.ncsa mv mh-irix32 mh-irix32.ncsa sed 's/n32/32/g' mh-irix32.ncsa > mh-irix32 mv mh-irix32 mh-irix32.ncsa sed 's/mips3/mips2/g' mh-irix32.ncsa > mh-irix32 mv mh-irix32 mh-irix6 fi cd $start_dir } # # Function to implement pre-configure installation fixes for sgi32 # PreConfigFixes_sgi32() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND ... " # # Return to starting directory # cd $start_dir } # # Function to implement pre-configure installation fixes for sgi64 # PreConfigFixes_sgi64() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND... " # # If the SGI is using old R4?00 chips then mips4 is # not supported, so force the use of mips3. # cd $start_dir/config if [ ! -f mh-irix6.ncsa ] ; then sed 's/mips4/mips3/g' mh-irix6 > mh-irix6.ncsa mv mh-irix6.ncsa mh-irix6 fi cd $start_dir } # # Function to implement pre-configure installation fixes for SunOs 4.x # PreConfigFixes_sun4() { cd $start_dir EchoAndLog "Pre-configure patching for SunOs `uname -r`... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to make gcc the default C compiler. To get around this we # edit the file config/mh-sun to comment out the offending lines that # get included in the Makefile generated by configure. # cd $start_dir/config if [ ! -f mh-sun.ncsa ] ; then mv mh-sun mh-sun.ncsa fi cat mh-sun.ncsa | sed '/^CC *=/s/^/#/' | sed '/^CFLAGS *=/s/^/#/' | cat > mh-sun cd $start_dir } # # Function to implement pre-configure installation fixes for SunOs 5.x # PreConfigFixes_sun5() { cd $start_dir EchoAndLog "Pre-configure patching for SunOs `uname -r`... " # # Return to starting directory # cd $start_dir } # # Function to implement pre-configure installation fixes for dec # PreConfigFixes_dec() { cd $start_dir/config EchoAndLog "Pre-configure patching for $BRAND... " # Modify mh-alpha to include math library for DEC-ALPHA # version 4.0 chmod 0755 * mv mh-alpha mh-alpha.ncsa sed 's/#LIBSX/LIBSX/g' mh-alpha.ncsa > mh-alpha # # Return to starting directory # cd $start_dir } # # Function to implement post-configure installation fixes for dec # PostConfigFixes_dec() { cd $start_dir EchoAndLog "Post-configure patching for $BRAND... " cd $start_dir } # # Function to implement post-configure installation fixes for sgi # PostConfigFixes_sgi() { cd $start_dir EchoAndLog "Post-configure patching for $BRAND... " # # For some reason in sgi for some users LD_LIBRARY_PATH causes # problem inside the hdf5's src/Makefile. Lets redefine it as in INSTALL # script before running INSTALL-HDF5 # LD_LIBRARY_PATH="$ZLIBLIB:$SZIPLIB" export LD_LIBRARY_PATH echo "Redefined LD_LIBRARY_PATH=$LD_LIBRARY_PATH" cd $start_dir } # # Function to implement post-configure installation fixes for IBM AIX 4.2 # PostConfigFixes_ibm() { cd $start_dir/mfhdf/nctest EchoAndLog "Post-configure patching for IBM `uname -r`... " # Rename program error.c and edit the Makfile to reflect change # This version of AIX will not compile the program error.c # So I am changing the name so that HDF will install cp error.c dave.c chmod 0755 Makefile mv Makefile Makefile.ncsa sed 's/error.c/dave.c/g' Makefile.ncsa > Makefile mv Makefile Makefile.ncsa sed 's/error.o/dave.o/g' Makefile.ncsa > Makefile # # Return to starting directory # cd $start_dir } # # Function to implement post-configure installation fixes for linux # PostConfigFixes_linux() { cd $start_dir hdf5_files=`find . -name Makefile -print` EchoAndLog "Post-configure patching for linux `uname -r`... " for file in $hdf5_files; do mv $file Makefile.ncsa sed 's^$$(srcdir)/^ /^g' Makefile.ncsa > $file /bin/rm -f Makefile.ncsa done cd $start_dir } # # Function to implement post-configure installation fixes for macintosh # PostConfigFixes_macintosh() { cd $start_dir hdf5_files=`find . -name Makefile -print` EchoAndLog "Post-configure patching for macintosh `uname -r`... " for file in $hdf5_files; do mv $file Makefile.ncsa sed 's^$$(srcdir)/^ /^g' Makefile.ncsa > $file /bin/rm -f Makefile.ncsa done cd $start_dir } PostConfigFixes_cygwin() { cd $start_dir/config cd $start_dir } # # Function to implement post-configure installation fixes for SunOs 5.x # PostConfigFixes_sun5() { cd $start_dir EchoAndLog "Post-configure patching for SunOs `uname -r`... " mv $install_dir/examples/Makefile $install_dir/examples/Makefile_temp sed "s^export LD_LIBRARY_PATH^#export LD_LIBRARY_PATH^" $install_dir/examples/Makefile_temp >> $install_dir/examples/Makefile mv $install_dir/hl/examples/Makefile $install_dir/hl/examples/Makefile_temp sed "s^export LD_LIBRARY_PATH^#export LD_LIBRARY_PATH^" $install_dir/hl/examples/Makefile_temp >> $install_dir/hl/examples/Makefile cd $start_dir } # # Function to set compilers, overriding the NCSA compiler defaults # SetCompilers() { # # Set C compiler based on value of $CC # Set C compilation flags based on value of $CFLAGS # Set FORTRAN compiler based on value of $F77 # # NOTE: # This is done recursively for ALL Makefiles because on some # platforms, the compiler variables are not inherited from the # the calling Makefile. EchoAndLog "Overriding NCSA default compiler settings:" files=`find . -name Makefile -print` if [ "$CC" != "" ] ; then if [ "$CFLAGS" = "" ] ; then EchoAndLog -n "- setting C compiler to '$CC'" EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | # sed '/^CC/s/=.*$'"/= $CC/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa cp $file.ncsa $file done else EchoAndLog -n "- setting C compiler to '$CC'" if [ "$CFLAGS" = "-O" ] ; then EchoAndLog -n "- setting C compilation flags to default" else EchoAndLog -n "- setting C compilation flags to '$CFLAGS'" fi EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | # sed '/^CC/s/=.*$'"/= $CC/" | # sed '/^CFLAGS/s/=.*$'"/= $CFLAGS/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa cp $file.ncsa $file done fi else EchoAndLog "Warning: Environment variable(s) CC and/or F77 not set." EchoAndLog "If CC is not set, the installation uses NCSA defaults." fi } # # Function to do architecture-specific pre-configure fixes # PreConfigure() { cd $start_dir if [ "$dbug" = "1" ] ; then PreConfigFixes_dbug fi # # Call architecture-specific functions # case $BRAND in cray ) ;; dec ) PreConfigFixes_dec;; hp ) # for HP-11 add -lnsl if [ `uname -r | awk -F. '{print $2}'` = "11" ] ; then mv $install_dir/config/mh-hpux $install_dir/config/mh-hpux_tmp1 cat $install_dir/config/mh-hpux_tmp1 | sed '/^LD_XDR/s/=.*$'"/= -lnsl/" | cat > $install_dir/config/mh-hpux_tmp2 cp $install_dir/config/mh-hpux_tmp2 $install_dir/config/mh-hpux /bin/rm -f $install_dir/config/mh-hpux_tmp1 /bin/rm -f $install_dir/config/mh-hpux_tmp2 fi ;; ibm ) ;; linux ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_linux fi ;; linux32 ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_linux fi ;; linux64 ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_linux fi ;; macintosh ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_macintosh fi ;; macintel ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_macintosh fi ;; macintel32 ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_macintosh fi ;; macintel64 ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_macintosh fi ;; cygwin ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_cygwin fi ;; sgi ) if [ "$OSTYPE" = "IRIX64" ] ; then PreConfigFixes_sgi fi ;; sgi32 ) config_flags=irix6_32;; sgi64 ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" = "4" ] ; then PreConfigFixes_sgi64 fi ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac cd $start_dir } # # Function to do architecture-specific post-configure fixes # PostConfigure() { cd $start_dir # # Check for missing tbl and neqn, patching as needed # # PostConfigFixes_NoTblNeqn # # Do architecture-specific fixes # case $BRAND in cray ) ;; dec ) ;; hp ) ;; ibm ) # PostConfigFixes_ibm ;; ibm ) ;; linux ) PostConfigFixes_linux ;; linux32 ) PostConfigFixes_linux ;; linux64 ) PostConfigFixes_linux ;; macintosh ) PostConfigFixes_macintosh ;; macintel ) PostConfigFixes_macintosh ;; macintel32 ) PostConfigFixes_macintosh ;; macintel64 ) PostConfigFixes_macintosh ;; cygwin ) PostConfigFixes_cygwin ;; sgi ) ;; sgi32 ) PostConfigFixes_sgi ;; sgi64 ) PostConfigFixes_sgi ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) PostConfigFixes_sun5 ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac # # If requested, set compilers to something other than the defaults # if [ $set_compilers = 1 ] ; then SetCompilers fi cd $start_dir } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # set_compilers=0 config_flags="" dbug=0 c_rlib=0 while [ "$1" != "" ] ; do case "$1" in -h | help ) Help ;; -set_compilers ) set_compilers=1 ;; -dbug ) dbug=1 ;; -c_rlib ) c_rlib=1;; -start_dir ) if [ "$2" != "" ] ; then start_dir=$2 shift else WriteError "No installation directory specified with -start_dir switch." Help fi ;; * ) echo "$script_error invalid argument '$1'" ; Help ;; esac shift done # # Make sure we're not running standalone # if [ "$hdf_install_caller" = "" ] ; then WriteError "This script can only be run from INSTALL-HDF." Help else # Here we set up the HDF installation directory, # for use by the configure script. # # With this release of HDF, we abandon the convention of setting the # installation directory to $HDFHOME/hdf, which was formerly done for # backwards compatibility with the installed HDF directory structure # that the toolkit was using with the 3.3r4 version of HDF. # # New releases of the SDP Toolkit and hdfeos have been updated to handle this # directory change install_dir="$HDF5HOME" if [ ! -d "$install_dir" ] ; then # create the install dir, if needed. mkdir $install_dir fi fi # # Announce # EchoAndLog "Running $this_script" # # Do architecture-specific pre-configure fixes # #PreConfigure if [ "$dbug" = "1" ] ; then CFLAGS="-g" fi export CFLAGS # # Run the NCSA-supplied configure script # if [ "$dbug" = "1" ] ; then config_flags="$config_flags --disable-production" fi if [ "$c_rlib" = "1" ] ; then config_flags="$config_flags --enable-threadsafe --with-pthread=$PTHREAD_HOME" fi cd $start_dir tmp_home=$HOME # save $HOME HOME=`pwd` ; export HOME # change it to avoid interaction w/ .cshrc # linux does not support hsize_t which is "long long" if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then EchoAndLog "Running ./configure --disable-shared --with-szlib=$SZIPHOME --prefix=$install_dir $config_flags" else EchoAndLog "Running ./configure --disable-shared --with-zlib=$ZLIBHOME --with-szlib=$SZIPHOME --prefix=$install_dir $config_flags" fi if [ "$log_file" != "" ] ; then echo "" >> $log_file if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then ./configure --disable-shared --with-szlib=$SZIPHOME --prefix=$install_dir $config_flags >> $log_file 2>&1 else ./configure --disable-shared --with-zlib=$ZLIBHOME --with-szlib=$SZIPHOME --prefix=$install_dir $config_flags >> $log_file 2>&1 fi else echo "" if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then ./configure --disable-shared --with-szlib=$SZIPHOME --prefix=$install_dir $config_flags else ./configure --disable-shared --with-zlib=$ZLIBHOME --with-szlib=$SZIPHOME --prefix=$install_dir $config_flags fi fi HOME=$tmp_home ; export HOME # restore $HOME # # Do architecture-specific post-configure fixes # PostConfigure # # Run the make utility to compile the library and utiltites # EchoAndLog "Running make, target=all" if [ "$log_file" != "" ] ; then echo "" >> $log_file make all >> $log_file 2>&1 tmp_status=$? else echo "" make all tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make all' failed." exit 1 fi # # Run the make utility install the libraries, utilities, includes and man pages # EchoAndLog "Running make, target=install " if [ "$log_file" != "" ] ; then echo "" >> $log_file make install >> $log_file 2>&1 tmp_status=$? else echo "" make install tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make install' failed." exit 1 fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-HDFEOS5-Wrap0000755000175000017500000003601112024715435023731 0ustar amckinstryamckinstry#!/bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-HDFEOS5-Wrap # # description: # HDFEOS5 installation script wrapper for the SDP(PGS) Toolkit and hdfeos # The purpose of this script is to integrate the installation # of HDFEOS5 when it is being performed concurrently with the # SDP Toolkit or hdfeos installation. In normal use this script is called # by INSTALL, the master Toolkit installation script, though it # may also be run standalone. # # usage: # INSTALL-HDFEOS5-Wrap [-sgi32 | -sgi64] [-log # [-cc_path ] # [-append]] [-df ] # [-w_home ] [-batch] # [-install_dir ] # INSTALL-HDFEOS5-Wrap [-h] # # -sgi32 : build in -n32 mode (SGI Power Challenge only) # -sgi64 : build in 64-bit mode (SGI Power Challenge only) # -log : send session output to # -dbug : build debug version of hdfeos library # -cc_path: set the path of the C compiler to # -append : append to existing # -w_home : write HDFEOS5 home directory to # -df : install HDFEOS5 from distribution file # -batch : run script in batch (i.e. non-interactive) mode # -h : display this help message and exit # # notes: # 1) An initial installation requires the HDFEOS5 distribution file to # have been previously downloaded. Also, HDF5 must already be # installed, preferably as part of the Toolkit installation. # # 2) This script requires the environment variables HDF5INC, HDFLIB, # SZIPINC and SZIPLIB to be properly set. In normal use these # will be set by the INSTALL script. # # author: # Mike Sucher / Applied Research Corp. # Abe Taaheri/ Emergent Information Technologies, Inc. # Phuong T. Nguyen/ L3 Communication. # history: # 12-Jan-2001 AT Initial Version. Used INSTALL-HDFEOS-Wrap for this # script as template and modified to work for HDFEOS5 # 16-Jan-2002 PTN Changed HDF-EOS5.0.tar.Z to HDF-EOS5.1.2.tar.Z # 17-Jul-2002 PTN Changed HDF-EOS5.1.2.tar.Z to HDF-EOS5.1.3.tar.Z # 24-Mar-2003 PTN Changed HDF-EOS5.1.4.tar.Z to HDF-EOS5.1.5.tar.Z # 15-Sep-2003 PTN Add -cc_path option. # 20-Oct-2003 AT Changed HDF-EOS5.1.5.tar.Z to HDF-EOS5.1.6.tar.Z # 18-Jan-2005 MP Changed HDF-EOS5.1.8.tar.Z to HDF-EOS5.1.9.tar.Z # 08-Sep-2005 AT Changed HDF-EOS5.1.9.tar.Z to HDF-EOS5.1.10.tar.Z # 05-Jul-2007 AT Changed HDF-EOS5.1.10.tar.Z to HDF-EOS5.1.11.tar.Z # 20-May-2009 AT Changed HDF-EOS5.1.11.tar.Z to HDF-EOS5.1.12.tar.Z # 20-Jul-2010 AT Changed HDF-EOS5.1.12.tar.Z to HDF-EOS5.1.13.tar.Z # 16-Nov-2011 AT Changed HDF-EOS5.1.13.tar.Z to HDF-EOS5.1.14.tar.Z # #----------------------------------------------------------------------------- this_script="`basename $0`" #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else echo "" if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to prompt for user response # UserPrompt() { if [ "$1" = -x ] ; then # -x: eXpand shell variables shift expand_flag=1 else expand_flag=0 fi if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response if [ $expand_flag = 1 ] ; then # perform shell variable expansion user_response=`echo $user_response | sed 's%~%$HOME%'` # map ~ to $HOME user_response=`eval echo $user_response` # expand all fi } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to get the location of the distribution file # GetDistribution() { : ${distrib_file:=HDF-EOS5.1.14.tar.Z} ds1=$distrib_file # backup copy # derive tar file name case "$distrib_file" in HDF-EOS5.1.14.tar.Z ) tar_file=HDF-EOS5.1.14.tar HDFEOS5_home=hdfeos5 ;; * ) EchoAndLog "HDFEOS5 version in $distrib_file not supported by this script." exit 1 ;; esac # set search path to include current dir, parent of current and $HOME search_path=`pwd` search_path="$search_path `cd ..; pwd` $HOME" # set search file to include compressed tar file and uncompressed tar file search_file="$distrib_file $tar_file" # search for the distribution file found_file=0 for distrib_path in $search_path ; do for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done if [ $found_file = 1 ] ; then break fi done # if file was not found, ask the user if [ $found_file = 0 ] ; then if [ $batch_mode = 0 ] ; then echo "" UserPrompt -x "Pathname where $ds1 is located: " echo "" else user_response="" fi if [ "$user_response" != "" ] ; then # make sure directory exists if [ -d $user_response ] ; then distrib_path=$user_response else WriteError "Invalid directory: $user_response" exit 1 fi # search for the distribution file in user directory for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done fi fi if [ $found_file = 0 ] ; then WriteError "Can't find ${ds1} in (${search_path})" echo "HDFEOS5 installation cancelled." exit 1 fi } # # Function to get the location of the HDFEOS home directory for installation # Also, prompt user that all information is valid before proceeding # GetInstallDir() { if [ "$HDFEOS5_path" = "" ] ; then HDFEOS5_path="`pwd`" fi # ask the user if [ $batch_mode = 0 ] ; then UserPrompt -x "Pathname where directory hdfeos5 will be created [$HDFEOS5_path]: " echo "" else user_response="" fi if [ "$user_response" = "" ] ; then if [ ! -d `dirname $HDFEOS5_path` ] ; then mkdir `dirname $HDFEOS5_path` ; fi if [ ! -d $HDFEOS5_path ] ; then mkdir $HDFEOS5_path ; fi else if [ -d "$user_response" ] ; then HDFEOS5_path=$user_response ; fi fi if [ ! -d $HDFEOS5_path ] ; then if [ $batch_mode = 0 ] ; then UserPrompt "$HDFEOS5_path does not exist. Create [y]? " else user_response=y fi if [ "$user_response" = "" ] ; then user_response="y" ; fi case "$user_response" in y* | Y* ) mkdir -p $HDFEOS5_path if [ ! -d $HDFEOS5_path ] ; then WriteError "Unable to create directory $HDFEOS5_path." echo "HDFEOS5 installation cancelled." 2>&1 exit 1 fi ;; *) WriteError "Directory $HDFEOS5_path does not exist." echo "HDFEOS5 installation cancelled." 2>&1 exit 1 ;; esac fi # # confirm before proceeding # # echo "The HDFEOS5 directory will be restored from: " # echo " ${distrib_path}/${distrib_file}" # echo "" echo "The HDFEOS5 directory will be created in: " echo " ${HDFEOS5_path}" echo "" if [ $batch_mode = 0 ] ; then UserPrompt "Continue [yes] ? " case "$user_response" in n* | N* ) echo "Cancelled." ; exit 1 ;; * ) echo "Confirmed." ; echo "" ;; esac fi } # # Function to unpack the distribution file into the installation directory # UnpackDistribution() { # # Go to the HDFEOS parent directory # cd $HDFEOS5_path # # If the new HDFEOS home directory already exits, it must # be removed first. Check with the user before proceeding. # if [ -d "$HDFEOS5_home" ] ; then EchoAndLog "The directory $HDFEOS5_home already exists." if [ $batch_mode = 0 ] ; then UserPrompt "[O]verwrite, [R]e-use or [Q]uit (default) ? " else user_response=r fi case "$user_response" in o* | O* ) EchoAndLog "Removing old $HDFEOS5_home directory ..." /bin/rm -rf $HDFEOS5_home ;; r* | R* ) EchoAndLog "Installation will use existing $HDFEOS5_home directory." return 0 ;; * ) EchoAndLog "Cancelled." exit 1 ;; esac fi # # Create a link to the distribution file, if necessary. # link_flag=0 if [ ! -f $distrib_file ] ; then if [ -f ${distrib_path}/${distrib_file} ] ; then ln -s ${distrib_path}/${distrib_file} ${distrib_file} link_flag=1 fi fi # # Uncompress the distribution file, (if needed), and extract the files # EchoAndLog "Extracting files from $distrib_file ..." suffix="`echo $distrib_file | sed 's/^.*\.//'`" case $suffix in Z ) zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; tar) tar xvf $distrib_file | awk '{printf "."}' 2>&1 echo "" ;; esac # # Clean up symbolic link, if present # if [ $link_flag = 1 ] ; then /bin/rm -f $distrib_file fi } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # home_file="" no_untar=0 sgi_mode=32 # by default, SGI mode is standard 32-bit log_file="" distrib_file="" fc_path="" cc_path="" append=0 dbug=0 batch_mode=0 ts_mode=0 while [ "$1" != "" ] do case $1 in -h | -he | -hel | -help ) Help ;; # help -sgi32) sgi_mode=n32 ;; -sgi64) sgi_mode=64 ;; -fc_path ) fc_path="$2" ; shift ;; -cc_path ) cc_path="$2" ; shift ;; -df) distrib_file="$2" ; shift ;; -log ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then log_file="$2" else log_file="$start_dir/$2" fi shift else WriteError "A log file must be specified with the -log option" Help fi ;; -append ) append=1 ;; -dbug ) dbug=1 ;; -ts) ts_mode=1 ;; -ts_dbug) ts_mode=1 dbug=1 ;; -w_home ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then home_file="$2" else home_file="$start_dir/$2" fi shift else WriteError "A file name must be specified with the -w_home option." Help fi ;; -install_dir ) if [ "$2" != "" ] ; then HDFEOS5_path=$2 shift else WriteError "No installation directory specified with -install_dir switch." Help fi ;; -batch ) batch_mode=1 ;; -*) echo "Invalid option: $1" Help ;; *) # default value1="$1" ;; esac shift done # # Initialize the home file # if [ "$home_file" != "" ] ; then if [ -f "$home_file" ] ; then /bin/rm -f $home_file > /dev/null 2>&1 fi touch $home_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $home_file" exit 1 fi fi # # Get the location of the distribution file # HDFEOS5_home=. #GetDistribution # # Got valid distribution file # Get the location of the HDFEOS home directory for installation # GetInstallDir # # Unpack the distribution file into the installation directory # cd $HDFEOS5_path #if [ "$no_untar" = 0 ] ; then # UnpackDistribution #fi # # Prepare to install the requested version of HDFEOS # if [ ! -d "$HDFEOS5_path" ] ; then EchoAndLog "Error creating directory: $HDFEOS5_path" exit 1 fi cd $HDFEOS5_path/$HDFEOS5_home # go to the starting directory EchoAndLog "Setting directory to: $HDFEOS5_path/$HDFEOS5_home" # HDF-EOS expects these directories to be in place, if they are not # then create them here. If we have to do this then the INSTALL may # fail, but at least we're still one step ahead of the game if [ ! -d bin/$BRAND ] ; then mkdir bin/$BRAND fi if [ ! -d obj/$BRAND ] ; then mkdir obj/$BRAND fi if [ ! -d lib/$BRAND ] ; then mkdir lib/$BRAND fi install_flags="-i$HDF5INC -l$HDF5LIB -szi$SZIPINC -szl$SZIPLIB" if [ $dbug = 1 ] ; then if [ $ts_mode = 1 ] ; then install_flags="$install_flags -ts_dbug" else install_flags="$install_flags -dbug" fi else if [ $ts_mode = 1 ] ; then install_flags="$install_flags -ts" else install_flags="$install_flags" fi fi case "$sgi_mode" in n32) install_flags="$install_flags -sgi32" ;; 64) install_flags="$install_flags -sgi64" ;; esac if [ "$cc_path" != "" ] ; then # path for C compiler install_flags="$install_flags -cc_path $cc_path" fi if [ "$fc_path" != "" ] ; then # path for FORTRAN compiler install_flags="$install_flags -fc_path $fc_path" fi EchoAndLog "Running the HDFEOS5 installation script ..." return_status=0 if [ "$log_file" != "" ] ; then if [ $append = 1 ] ; then bin/INSTALL-HDFEOS $install_flags >> $log_file 2>&1 # append return_status=$? else bin/INSTALL-HDFEOS $install_flags > $log_file 2>&1 # clobber return_status=$? fi else bin/INSTALL-HDFEOS $install_flags return_status=$? fi # # Pass back the HDF5 install directory for the toolkit installation # if [ $return_status = 0 ] ; then if [ "$home_file" != "" ] ; then echo $HDFEOS5_path/$HDFEOS5_home >> $home_file fi fi if [ $return_status != 0 ] ; then echo "The HDFEOS5 Installation Script failed or had errors." exit 1 fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-SZIP0000755000175000017500000007453512024715435022567 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-SZIP # # description: # SZIP installation script for the (PGS) Toolkit and hdfeos # # usage: # INSTALL-SZIP [-f90 [-NAG]] [-ABSOFT] [-fc_path ] # [-cc_path ] # [-sgi32 | -sgi64] [-log [-append]] # [-clean | -cleano] [-strip] [-w_home ] # [-df ] [-batch] # [-install_dir ] # INSTALL-SZIP [-h] # # -f90 : build SZIP FORTRAN modules using f90 # optional flag -NAG specifies NAG f90 # -ABSOFT : flag that specifies absoft f77 is used for fortran compilation # -fc_path : set the path of the FORTRAN compiler to # -cc_path : set the path of the C compiler to # -sgi32 : build in -n32 mode (SGI Power Challenge only) # -sgi64 : build in 64-bit mode (SGI Power Challenge only) # -log : sdone session output to new # -append : append to existing # -clean : run 'make clean' after doing the installation # -cleano : clean up all object and a.out files # -strip : strip out all non-installation files following install # -w_home : write SZIP home directory to # -df : install SZIP from distribution file # -batch : run script in batch (i.e. non-interactive) mode # -install_dir : full path to top level directory where SZIP will be # installed (e.g. /usr/local/hdfeos/szip/sgi64) # -h : display this help message and exit # # notes: # 1) The use of the -clean option will cause the SZIP utilites to # be deleted. To preserve them, use the -cleano option instead. # # 2) The -f90 and -NAG options are * * NOT IMPLEMENTED * * # Currently, these options are accepted, but ignored. # # # author: # Mike Sucher / Applied Research Corp. # Megan E. Donovan Spencer / SM&AE # Abe Taaheri / SM&AE # Phuong T Nguyen / L3 Communication GSI. # history: # 11-May-1995 MES Initial version # 20-Oct-2003 AT Used INSTALL-HDF5 as template for INSTALL-SZIP # 24-Jan-2005 MP Updated szip1.1.tar.gz to szip1.2.tar.gz # 06-Jul-2005 AA Updated szip tar file to szip-2.0.tar.gz # 05-Sep-2007 AT Updated szip tar file to szip-2.1.tar.gz # #----------------------------------------------------------------------------- # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir="`cd $script_dir;pwd`" fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { echo "" echo "$*" if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "$*" >> $log_file fi } # # Function prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to set up and export the following architecture-specific variables: # # BRAND HOST LOGNAME OSTYPE PATH USER # SetArchitecture() { # set path to a base subset of directories, allowing startup on unknown host # note: once the architecture has been determined the path is customized PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11 # get operating system type, login name # special cases: SCO and Cray - uname works differently, machine=`uname -m | awk '{print $1}'` # needed on Cray & SCO temp_ostype=`uname` case "$machine" in i386 ) # SCO box OSTYPE=sco386 ;; CRAY ) # CRAY OSTYPE=UNICOS ;; * ) # everybody else OSTYPE=`uname` ;; esac # Intel Macintosh is also i386 or i686 (?) machine if [ "$machine" = "i386" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "i686" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "x86_64" ] || [ "$machine" = "ia64" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel if [ "$MAC_BRAND" = "" ] ; then echo " Error: In 64-bit MAC platform the env. variable MAC_BRAND must be set to mac32 or mac64 before running this script." exit 1 fi else if [ "$LINUX_BRAND" = "" ] ; then echo " Error: In 64-bit linux platform the env. variable LINUX_BRAND must be et to linux32 or linux64 before running this script." exit 1 fi fi fi user=`id | cut -d\( -f2 | cut -d\) -f1` if [ "$LOGNAME" = "" ] ; then # make sure $LOGNAME is defined LOGNAME=$user fi USER=$LOGNAME # make sure $USER is defined # set machine-depdoneent environment variables: # HOST the host name of this machine # BRAND used by other achitecture-specific code # path the execution search path exported to PATH case "$OSTYPE" in AIX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname` BRAND=ibm CC=cc CFLAGS="-O" F77=xlf ;; HP-UX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11:/tools/bin HOST=`hostname` BRAND=hp CC=cc CFLAGS="-O" F77=fort77 ;; IRIX ) PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` BRAND=sgi CC=cc CFLAGS="-O" F77=f77 ;; IRIX64 ) PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` case "$sgi_mode" in 32 ) BRAND=sgi ; CC="cc -32 -mips2" ; F77="f77 -32 -mips2" ;; n32 ) BRAND=sgi32 ; CC="cc -n32 -mips3" ; F77="f77 -n32 -mips3" ;; 64 ) BRAND=sgi64 ; CC="cc -64 -mips4" ; F77="f77 -64 -mips4" ;; * ) BRAND=sgi ; CC="cc" ; F77="f77" ;; esac CFLAGS="-O" set_compilers=0 # override SZIP default compilers ;; Linux ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST=`hostname -s` BRAND=linux if [ "$LINUX_BRAND" = "linux64" ] ; then BRAND=linux64 elif [ "$LINUX_BRAND" = "linux32" ] ; then BRAND=linux32 fi CC="gcc $LNX_COMP_FLAG" CFLAGS="-O" F77="g77 $LNX_COMP_FLAG" ;; Darwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintosh CC=gcc CFLAGS="-O" F77=g77 ;; DarwinIntel ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintel32 if [ "$MAC_BRAND" = "macintel64" ] ; then BRAND=macintel64 elif [ "$MAC_BRAND" = "macintel32" ] ; then BRAND=macintel32 fi CC="gcc $MACINTEL_COMP_FLAG" CFLAGS="-O2" F77="gfortran $MACINTEL_COMP_FLAG" ;; Cygwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname` BRAND=cygwin CC=gcc CFLAGS="-O" F77=g77 ;; OSF1 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname -s` BRAND=dec CC=cc CFLAGS="-O -std" F77=f77 ;; sco386 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11 HOST=`hostname -s` BRAND=sco CC=cc CFLAGS="-O" F77=f77 ;; SunOS ) # distinguish between SunOS 5.x and 4.x versions if [ `uname -r | awk -F. '{print $1}'` = "5" ] ; then BRAND=sun5 # release V5.x SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/openwin/bin:/usr/openwin/demo:/usr/ccs/bin:/usr/sbin CC=cc CFLAGS="-O" F77=f77 if [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 10" ] ; then BRAND="sun5.10" # release V5.8 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin CC=cc CFLAGS="-O" F77=f77 elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 9" ] ; then BRAND="sun5.9" # release V5.8 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin CC=cc CFLAGS="-O" F77=f77 elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 8" ] ; then BRAND="sun5.8" # release V5.8 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin CC=cc CFLAGS="-O" F77=f77 fi else BRAND=sun4 # release V4.x SunOS PATH=/usr/local/bin:/usr/local/lang:/usr/lang:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/openwin/bin:/usr/openwin/demo CC=acc CFLAGS="-O" F77=f77 set_compilers=1 # override SZIP default compilers fi HOST=`hostname` ;; UNICOS ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/ucb:/usr/bin/X11 HOST=`hostname` BRAND=cray CC=cc CFLAGS="-O" F77=cf77 ;; * ) echo "Operating system: $OSTYPE not supported" >&2 echo "This release of the Toolkit and hdfeos supports: " >&2 echo " Sun, SGI HP-9000 IBM-6000 DEC-Alpha Linux Macintosh and Cray/Unicos " >&2 exit 1 ;; esac # if debug version was requested replace -O with -g in CFLAGS if [ "$dbug" = "1" ] ; then CFLAGS=`echo $CFLAGS | sed 's/-O/-g/'` fi CFLAGS="$CFLAGS $EXT_CC_FLAGS" # export the architecture-specific variables export BRAND HOST LOGNAME OSTYPE PATH USER export CC CFLAGS F77 } # # Function to allow user to override the defaults for the compilers # The following variables are affected: # # PATH CC F77 # UserCompilers() { # # check to see if valid C compiler path was specified # cc="" if [ "$cc_path" != "" ] ; then if [ -f $cc_path ] ; then cc=`basename $cc_path` cc_path=`echo $cc_path | sed 's%/[^/]*/*$%%'` case "$BRAND" in "sgi32" ) CC="$cc_path/$cc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then CC="$cc_path/$cc -64 -mips3" else CC="$cc_path/$cc -64 -mips4" fi ;; "linux" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux32" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux64" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "macintel" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel32" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel64" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; * ) CC="$cc_path/$cc" ;; esac export CC # user overrides C compiler name set_compilers=1 # override HDF default compilers fi if [ -d $cc_path ] ; then # make sure cc_path is now a directory PATH=${cc_path}:${PATH} # prepend cc_path to search path export PATH else cc_path="" echo "Warning: C compiler directory $cc_path not found." echo "SZIP build may fail." fi fi # # check to see if valid FORTRAN compiler path was specified # fc="" if [ "$fc_path" != "" ] ; then if [ -f $fc_path ] ; then fc=`basename $fc_path` fc_path=`echo $fc_path | sed 's%/[^/]*$%%'` case "$BRAND" in "sgi32" ) F77="$fc_path/$fc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then F77="$fc_path/$fc -64 -mips3" else F77="$fc_path/$fc -64 -mips4" fi ;; "linux" ) F77="$fc_path/$fc $LNX_COMP_FLAG" ;; "linux32" ) F77="$fc_path/$fc $LNX_COMP_FLAG" ;; "linux64" ) F77="$fc_path/$fc $LNX_COMP_FLAG" ;; "macintel" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel32" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel64" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; * ) F77="$fc_path/$fc" ;; esac # if [ "$fc" != f90 ] ; then # (f90 not supported for HDF4.1r1) # f90 is supported starting with the HDF4.1r2 release export F77 # user overrides FORTRAN compiler name set_compilers=1 # override HDF default compilers # fi fi if [ -d $fc_path ] ; then # make sure fc_path is now a directory PATH=${fc_path}:${PATH} # prepend fc_path to search path export PATH else fc_path="" echo "Warning: FORTRAN directory $fc_path not found." echo "SZIP build may fail." fi fi } # # Function to get the location of the distribution file # GetDistribution() { : ${distrib_file:=szip-2.1.tar.gz} ds1=$distrib_file # backup copy # derive tar file name case "$distrib_file" in szip-2.1.tar.gz ) tar_file=szip-2.1.tar szip_home=szip-2.1 ;; szip-2.0.tar.gz ) tar_file=szip-2.0.tar szip_home=szip-2.0 ;; * ) EchoAndLog "SZIP version in $distrib_file not supported by this script." exit 1 ;; esac # set search path to include current dir, parent of current and $HOME search_path=`pwd` search_path="$search_path `cd ..; pwd` $HOME" # set search file to include compressed tar file and uncompressed tar file search_file="$distrib_file $tar_file" # search for the distribution file found_file=0 for distrib_path in $search_path ; do for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done if [ $found_file = 1 ] ; then break fi done # if file was not found, ask the user if [ $found_file = 0 ] ; then if [ $batch_mode = 0 ] ; then echo "" UserPrompt "Pathname where $ds1 is located: " echo "" else user_response="" fi if [ "$user_response" != "" ] ; then # make sure directory exists if [ -d $user_response ] ; then distrib_path=$user_response else WriteError "Invalid directory: $user_response" exit 1 fi # search for the distribution file in user directory for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done fi fi if [ $found_file = 0 ] ; then WriteError "Can't find ${ds1} in (${search_path})" echo "SZIP installation cancelled." exit 1 fi } # # Function to get the location of the SZIP home directory for installation # Also, prompt user that all information is valid before proceeding # GetInstallDir() { default_SZIP_path="`pwd`/szip/$BRAND" if [ "$SZIP_path" = "" ] ; then SZIP_path="`pwd`/szip/$BRAND" fi # ask the user if [ $batch_mode = 0 ] ; then UserPrompt "Pathname where directory '$szip_home' will be created [$SZIP_path]: " echo "" else user_response="" fi if [ "$user_response" = "" ] ; then if [ ! -d `dirname $SZIP_path` ] ; then mkdir `dirname $SZIP_path` ; fi if [ ! -d $SZIP_path ] ; then mkdir $SZIP_path ; fi else # if [ -d "$user_response" ] ; then SZIP_path=$user_response ; #fi fi if [ ! -d $SZIP_path ] ; then if [ $batch_mode = 0 ] ; then UserPrompt "$SZIP_path does not exist. Create [y]? " else user_response=y fi if [ "$user_response" = "" ] ; then user_response="y" ; fi case "$user_response" in y* | Y* ) mkdir -p $SZIP_path if [ ! -d $SZIP_path ] ; then WriteError "Unable to create directory $SZIP_path." echo "SZIP installation cancelled." 2>&1 exit 1 fi ;; *) WriteError "Directory $SZIP_path does not exist." echo "SZIP installation cancelled." 2>&1 exit 1 ;; esac fi # # confirm before proceeding # echo "The SZIP directory will be restored from: " echo " ${distrib_path}/${distrib_file}" echo "" echo "The SZIP directory will be created in: " echo " ${SZIP_path}" echo "" if [ $batch_mode = 0 ] ; then UserPrompt "Continue [yes] ? " case "$user_response" in n* | N* ) echo "Cancelled." ; exit 1 ;; * ) echo "Confirmed." ; echo "" ;; esac fi # # For linux create soft links if default SZIP installation directory is used # save_dir="`pwd`" if [ "`pwd`/szip/$BRAND" = "$default_SZIP_path" ] ;then if [ "$BRAND" = "linux64" ] ; then cd ${default_SZIP_path}/.. current_path="`pwd`" EchoAndLog "64-bit structure is the default in this machine. Creating $current_path/linux as a soft link to $default_SZIP_path" ln -s ./linux64 linux cd $save_dir fi if [ "$BRAND" = "linux" ] ; then cd ${default_SZIP_path}/.. current_path="`pwd`" EchoAndLog "32-bit structure is the default in this machine. Creating $current_path/linux32 as a soft link to $default_SZIP_path" ln -s ./linux linux32 cd $save_dir fi fi # # For macintel create soft links if default SZIP installation directory is used # save_dir="`pwd`" if [ "`pwd`/jpeg/$BRAND" = "$default_JPEG_path" ] ;then if [ "$BRAND" = "macintel32" ] ; then cd ${default_JPEG_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel as a soft link to $default_JPEG_path" ln -s ./macintel32 macintel cd $save_dir fi if [ "$BRAND" = "macintel" ] ; then cd ${default_JPEG_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel32 as a soft link to $default_JPEG_path" ln -s ./macintel macintel32 cd $save_dir fi fi } # # Function to unpack the distribution file into the installation directory # UnpackDistribution() { # # Go to the SZIP parent directory # cd $SZIP_path # # If the new SZIP home directory already exits, it must # be removed first. Check with the user before proceeding. # if [ -d "$szip_home" ] ; then EchoAndLog "The directory $szip_home already exists." if [ $batch_mode = 0 ] ; then UserPrompt "Replace it [no] ? " else user_response=y fi case "$user_response" in y* | Y* ) EchoAndLog "Removing old $szip_home directory ..." /bin/rm -rf $szip_home ;; * ) EchoAndLog "Cancelled." exit 1 ;; esac fi # # Create a link to the distribution file, if necessary. # link_flag=0 if [ ! -f $distrib_file ] ; then if [ -f ${distrib_path}/${distrib_file} ] ; then ln -s ${distrib_path}/${distrib_file} ${distrib_file} link_flag=1 fi fi # # Uncompress the distribution file, (if needed), and extract the files # EchoAndLog "Extracting files from $distrib_file ..." suffix="`echo $distrib_file | sed 's/^.*\.//'`" case $suffix in Z ) zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; gz ) gzip -cd $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 # GnuZcat # if [ $gnu_zcat != 1 ] ; then # WriteError "You need the GNU version of zcat to unpack this file." # exit 1 # fi # zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; tar) echo $distrib_file tar -xvf $distrib_file | awk '{printf "."}' 2>&1 echo "" ;; esac # # Clean up symbolic link, if present # if [ $link_flag = 1 ] ; then /bin/rm -f $distrib_file fi } # # See if zcat is GNU version # GnuZcat() { if [ "$1" = "" ] ; then zcat_cmd=zcat else zcat_cmd=$1 fi buf=`exec 2>&1; $zcat_cmd < /dev/null | tail -1` buf=`echo $buf | awk -F: '{print $1}'` case "$buf" in zcat) gnu_zcat=1 ;; * ) gnu_zcat=0 ;; esac } # # Strip all SZIP distribution files not needed after installation. # StripHdfInstall() { cd $SZIPHOME here=`pwd` here=`basename $here` # # Make sure this is a valid SZIP directory befor clobbering files ! # if [ "`echo $here | grep '^SZIP'`" = "" ] ; then EchoAndLog "Not a valid SZIP directory: no files removed." else EchoAndLog "Removing all non-installation SZIP files ..." for file in * ; do if [ -d "$file" ] ; then case "$file" in bin | lib | include | man ) ;; * ) rm -rf $file ;; esac else rm -f $file fi done fi } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # log_file="" home_file="" noquery=0 clean=0 cleano=0 strip_install=0 append=0 no_untar=0 sgi_mode=32 f90_flag=0 nag_flag=0 absoft_flag=0 fc_path="" cc_path="" distrib_file="" set_compilers=0 dbug=0 SZIP_path="" batch_mode=0 while [ "$1" != "" ] ; do case "$1" in -h ) Help ;; -f90 ) f90_flag=1 ;; -NAG ) if [ $f90_flag = 0 ] ; then WriteError "Must first specify -f90 and set compiler path." Help else nag_flag=1 fi ;; -ABSOFT ) absoft_flag=1 ;; -fc_path ) fc_path="$2" shift ;; -cc_path ) cc_path="$2" shift ;; -df) distrib_file="$2" shift ;; -sgi32 ) sgi_mode=n32 ;; -sgi64 ) sgi_mode=64 ;; -log ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then log_file="$2" else log_file="$start_dir/$2" fi shift else WriteError "A log file must be specified with the -log option." Help fi ;; -append ) append=1 ;; -w_home ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then home_file="$2" else home_file="$start_dir/$2" fi shift else WriteError "No file specified with -w_home switch." Help fi ;; -nq | -noquery ) noquery=1 ;; -clean ) clean=1 ;; -cleano ) cleano=1 ;; -strip ) strip_install=1 ;; -no_untar ) no_untar=1 ;; -install_dir ) if [ "$2" != "" ] ; then SZIP_path=$2 shift else WriteError "No installation directory specified with -install_dir switch." Help fi ;; -batch ) batch_mode=1 ;; * ) echo "$script_error invalid argument '$1'" Help ;; esac shift done # # Inititialize log file # if [ "$log_file" != "" ] ; then if [ "$append" = "0" ] ; then if [ -f "$log_file" ] ; then /bin/rm -f $log_file > /dev/null 2>&1 fi fi touch $log_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $log_file" exit 1 fi echo "" echo "`basename $0`: session output will go to file: " echo "" echo " $log_file" echo "" fi export log_file # # Initialize the home file # if [ "$home_file" != "" ] ; then if [ -f "$home_file" ] ; then /bin/rm -f $home_file > /dev/null 2>&1 fi touch $home_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $home_file" exit 1 fi fi # # Set architecture-specific variables # SetArchitecture # # Set user compiler overrides # UserCompilers # # Get the location of the distribution file # GetDistribution # # Got valid distribution file # Get the location of the SZIP home directory for installation # GetInstallDir # # Write the log file header # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "SZIP installation starting at: `date`" >> $log_file echo "host: $HOST type: $BRAND user: $USER " >> $log_file echo "" >> $log_file echo "" >> $log_file echo "The SZIP directory will be restored from: " >> $log_file echo " ${distrib_path}/${distrib_file}" >> $log_file echo "" >> $log_file echo "The SZIP directory will be created in: " >> $log_file echo " ${SZIP_path}" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "" >> $log_file fi # # Unpack the distribution file into the installation directory # cd $SZIP_path if [ "$no_untar" = 0 ] ; then UnpackDistribution fi # # Prepare to install the requested version of SZIP # if [ ! -d $szip_home ] ; then EchoAndLog "Error creating directory: $szip_home" exit 1 fi cd $szip_home # go to the starting directory szip_install_caller="$this_script" # set caller flag for sub-modules export szip_install_caller # # Set the version to be installed # install_script="" install_options="" case $szip_home in szip-2.1) SZIPHOME=${SZIP_path}/szip-2.1 ; export SZIPHOME install_script="$script_dir/INSTALL-SZIP2.1" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${SZIPHOME}" ;; szip-2.0) SZIPHOME=${SZIP_path}/szip-2.0 ; export SZIPHOME install_script="$script_dir/INSTALL-SZIP2.0" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${SZIPHOME}" ;; * ) # unsupported EchoAndLog "$szip_home installation is not supported by this script." exit 1 ;; esac # # Run the install script # if [ ! -f $install_script ] ; then EchoAndLog "Can't find $install_script - installation failed." exit 1 fi $install_script $install_options if [ $? != 0 ] ; then EchoAndLog "$szip_home Installation failed." exit 1 fi # # Pass back the SZIP install directory for the hdfeos installation # if [ "$home_file" != "" ] ; then echo $SZIPHOME >> $home_file fi # # Clean up # cd $SZIP_path if [ "$clean" = 1 ] ; then for dir in $SZIPHOME ; do cd $dir echo "Cleaning up in $dir ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Cleaning up in $dir ..." >> $log_file echo "" >> $log_file make clean >> $log_file 2>&1 else make clean fi done fi if [ "$cleano" = 1 ] ; then cd $SZIPHOME echo "Removing any remaining object files ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Removing any remaining object files ..." >> $log_file echo "" >> $log_file find . -name \*.o -print -exec rm -f {} \; >> $log_file 2>&1 find . -name a.out -print -exec rm -f {} \; >> $log_file 2>&1 else find . -name \*.o -print -exec rm -f {} \; find . -name a.out -print -exec rm -f {} \; fi fi if [ "$strip_install" = 1 ] ; then StripHdfInstall fi echo "------------------------------------------------------------" echo "" echo " SZIP installation ending at: `date` " echo "" echo "------------------------------------------------------------" # # Write the log file trailer # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo " SZIP installation ending at: `date`" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-JPEG0000755000175000017500000007412512024715435022522 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-JPEG # # description: # JPEG installation script for the (PGS) Toolkit and hdfeos # # usage: # INSTALL-JPEG [-f90 [-NAG]] [-ABSOFT] [-fc_path ] # [-cc_path ] # [-sgi32 | -sgi64] [-log [-append]] # [-clean | -cleano] [-strip] [-w_home ] # [-df ] [-batch] # [-install_dir ] # INSTALL-JPEG [-h] # # -f90 : build JPEG FORTRAN modules using f90 # optional flag -NAG specifies NAG f90 # -ABSOFT : flag that specifies absoft f77 is used for fortran compilation # -fc_path : set the path of the FORTRAN compiler to # -cc_path : set the path of the C compiler to # -sgi32 : build in -n32 mode (SGI Power Challenge only) # -sgi64 : build in 64-bit mode (SGI Power Challenge only) # -log : sdone session output to new # -append : append to existing # -clean : run 'make clean' after doing the installation # -cleano : clean up all object and a.out files # -strip : strip out all non-installation files following install # -w_home : write JPEG home directory to # -df : install JPEG from distribution file # -batch : run script in batch (i.e. non-interactive) mode # -install_dir : full path to top level directory where JPEG will be # installed (e.g. /usr/local/hdfeos/jpeg/sgi64) # -h : display this help message and exit # # notes: # 1) The use of the -clean option will cause the JPEG utilites to # be deleted. To preserve them, use the -cleano option instead. # # 2) The -f90 and -NAG options are * * NOT IMPLEMENTED * * # Currently, these options are accepted, but ignored. # # # author: # Mike Sucher / Applied Research Corp. # Megan E. Donovan Spencer / SM&AE # Abe Taaheri / SM&AE # Phuong T Nguyen / L3 Communication GSI. # Adura Adekunjo /L3 Communication GSI. # history: # 11-May-1995 MES Initial version # 20-Oct-2003 AT Used INSTALL-HDF5 as template for INSTALL-SZIP # 26-Mar-2004 AA Used INSTALL-SZIP as template for INSTALL-JPEG #----------------------------------------------------------------------------- # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir="`cd $script_dir;pwd`" fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { echo "" echo "$*" if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "$*" >> $log_file fi } # # Function prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to set up and export the following architecture-specific variables: # # BRAND HOST LOGNAME OSTYPE PATH USER # SetArchitecture() { # set path to a base subset of directories, allowing startup on unknown host # note: once the architecture has been determined the path is customized PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11 # get operating system type, login name # special cases: SCO and Cray - uname works differently, machine=`uname -m | awk '{print $1}'` # needed on Cray & SCO temp_ostype=`uname` case "$machine" in i386 ) # SCO box OSTYPE=sco386 ;; CRAY ) # CRAY OSTYPE=UNICOS ;; * ) # everybody else OSTYPE=`uname` ;; esac # Intel Macintosh is also i386 or i686 (?) machine if [ "$machine" = "i386" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "i686" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "x86_64" ] || [ "$machine" = "ia64" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel if [ "$MAC_BRAND" = "" ] ; then echo " Error: In 64-bit MAC platform the env. variable MAC_BRAND must be set to mac32 or mac64 before running this script." exit 1 fi else if [ "$LINUX_BRAND" = "" ] ; then echo " Error: In 64-bit linux platform the env. variable LINUX_BRAND must be et to linux32 or linux64 before running this script." exit 1 fi fi fi user=`id | cut -d\( -f2 | cut -d\) -f1` if [ "$LOGNAME" = "" ] ; then # make sure $LOGNAME is defined LOGNAME=$user fi USER=$LOGNAME # make sure $USER is defined # set machine-depdoneent environment variables: # HOST the host name of this machine # BRAND used by other achitecture-specific code # path the execution search path exported to PATH case "$OSTYPE" in AIX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname` BRAND=ibm CC=cc CFLAGS="-O" F77=xlf ;; HP-UX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11:/tools/bin HOST=`hostname` BRAND=hp CC=cc CFLAGS="-O" F77=fort77 ;; IRIX ) PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` BRAND=sgi CC=cc CFLAGS="-O" F77=f77 ;; IRIX64 ) PATH=/usr/local/bin:/usr/bin:/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` case "$sgi_mode" in 32 ) BRAND=sgi ; CC="cc -32 -mips2" ; F77="f77 -32 -mips2" ;; n32 ) BRAND=sgi32 ; CC="cc -n32 -mips3" ; F77="f77 -n32 -mips3" ;; 64 ) BRAND=sgi64 ; CC="cc -64 -mips4" ; F77="f77 -64 -mips4" ;; * ) BRAND=sgi ; CC="cc" ; F77="f77" ;; esac CFLAGS="-O" set_compilers=0 # override JPEG default compilers ;; Linux ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST=`hostname -s` BRAND=linux if [ "$LINUX_BRAND" = "linux64" ] ; then BRAND=linux64 elif [ "$LINUX_BRAND" = "linux32" ] ; then BRAND=linux32 fi CC="gcc $LNX_COMP_FLAG" CFLAGS="-O" F77="g77 $LNX_COMP_FLAG" ;; Darwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintosh CC=gcc CFLAGS="-O" F77=g77 ;; DarwinIntel ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintel32 if [ "$MAC_BRAND" = "macintel64" ] ; then BRAND=macintel64 elif [ "$MAC_BRAND" = "macintel32" ] ; then BRAND=macintel32 fi CC="gcc $MACINTEL_COMP_FLAG" CFLAGS="-O2" F77="gfortran $MACINTEL_COMP_FLAG" ;; Cygwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname` BRAND=cygwin CC=gcc CFLAGS="-O" F77=g77 ;; OSF1 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname -s` BRAND=dec CC=cc CFLAGS="-O -std" F77=f77 ;; sco386 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11 HOST=`hostname -s` BRAND=sco CC=cc CFLAGS="-O" F77=f77 ;; SunOS ) # distinguish between SunOS 5.x and 4.x versions if [ `uname -r | awk -F. '{print $1}'` = "5" ] ; then BRAND="sun5" # release V5.x SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/bin:/usr/ucb:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo :/usr/ccs/bin:/usr/sbin CC=cc CFLAGS="-O" F77=f77 if [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 10" ] ; then BRAND=sun5.10 # release V5.10 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/ccs/bin:/usr/sbin CC=cc CFLAGS="-O" F77=f77 elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 9" ] ; then BRAND=sun5.9 # release V5.9 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/ccs/bin:/usr/sbin CC=cc CFLAGS="-O" F77=f77 elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 8" ] ; then BRAND=sun5.8 # release V5.8 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/ccs/bin:/usr/sbin CC=cc CFLAGS="-O" F77=f77 fi else BRAND=sun4 # release V4.x SunOS PATH=/usr/local/bin:/usr/local/lang:/usr/lang:/bin:/usr/ucb:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo CC=acc CFLAGS="-O" F77=f77 set_compilers=1 # override JPEG default compilers fi HOST=`hostname` ;; UNICOS ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/ucb:/usr/bin/X11 HOST=`hostname` BRAND=cray CC=cc CFLAGS="-O" F77=cf77 ;; * ) echo "Operating system: $OSTYPE not supported" >&2 echo "This release of the Toolkit and hdfeos supports: " >&2 echo " Sun, SGI HP-9000 IBM-6000 DEC-Alpha Linux Macintosh and Cray/Unicos " >&2 exit 1 ;; esac # if debug version was requested replace -O with -g in CFLAGS if [ "$dbug" = "1" ] ; then CFLAGS=`echo $CFLAGS | sed 's/-O/-g/'` fi CFLAGS="$CFLAGS $EXT_CC_FLAGS" # export the architecture-specific variables export BRAND HOST LOGNAME OSTYPE PATH USER export CC CFLAGS F77 } # # Function to allow user to override the defaults for the compilers # The following variables are affected: # # PATH CC F77 # UserCompilers() { # # check to see if valid C compiler path was specified # cc="" if [ "$cc_path" != "" ] ; then if [ -f $cc_path ] ; then cc=`basename $cc_path` cc_path=`echo $cc_path | sed 's%/[^/]*/*$%%'` case "$BRAND" in "sgi32" ) CC="$cc_path/$cc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then CC="$cc_path/$cc -64 -mips3" else CC="$cc_path/$cc -64 -mips4" fi ;; "linux" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux32" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux64" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "macintel" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel32" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel64" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; * ) CC="$cc_path/$cc" ;; esac export CC # user overrides C compiler name set_compilers=1 # override HDF default compilers fi if [ -d $cc_path ] ; then # make sure cc_path is now a directory PATH=${cc_path}:${PATH} # prepend cc_path to search path export PATH else cc_path="" echo "Warning: C compiler directory $cc_path not found." echo "JPEG build may fail." fi fi # # check to see if valid FORTRAN compiler path was specified # fc="" if [ "$fc_path" != "" ] ; then if [ -f $fc_path ] ; then fc=`basename $fc_path` fc_path=`echo $fc_path | sed 's%/[^/]*$%%'` case "$BRAND" in "sgi32" ) F77="$fc_path/$fc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then F77="$fc_path/$fc -64 -mips3" else F77="$fc_path/$fc -64 -mips4" fi ;; "linux" ) F77="$fc_path/$fc $LNX_COMP_FLAG" ;; "linux32" ) F77="$fc_path/$fc $LNX_COMP_FLAG" ;; "linux64" ) F77="$fc_path/$fc $LNX_COMP_FLAG" ;; "macintel" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel32" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel64" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; * ) F77="$fc_path/$fc" ;; esac # if [ "$fc" != f90 ] ; then # (f90 not supported for HDF4.1r1) # f90 is supported starting with the HDF4.1r2 release export F77 # user overrides FORTRAN compiler name set_compilers=1 # override HDF default compilers # fi fi if [ -d $fc_path ] ; then # make sure fc_path is now a directory PATH=${fc_path}:${PATH} # prepend fc_path to search path export PATH else fc_path="" echo "Warning: FORTRAN directory $fc_path not found." echo "JPEG build may fail." fi fi } # # Function to get the location of the distribution file # GetDistribution() { : ${distrib_file:=jpegsrc.v6b.tar.gz} ds1=$distrib_file # backup copy # derive tar file name case "$distrib_file" in jpegsrc.v6b.tar.gz ) tar_file=jpegsrc.v6b.tar jpeg_home=jpeg-6b ;; * ) EchoAndLog "JPEG version in $distrib_file not supported by this script." exit 1 ;; esac # set search path to include current dir, parent of current and $HOME search_path=`pwd` search_path="$search_path `cd ..; pwd` $HOME" # set search file to include compressed tar file and uncompressed tar file search_file="$distrib_file $tar_file" # search for the distribution file found_file=0 for distrib_path in $search_path ; do for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done if [ $found_file = 1 ] ; then break fi done # if file was not found, ask the user if [ $found_file = 0 ] ; then if [ $batch_mode = 0 ] ; then echo "" UserPrompt "Pathname where $ds1 is located: " echo "" else user_response="" fi if [ "$user_response" != "" ] ; then # make sure directory exists if [ -d $user_response ] ; then distrib_path=$user_response else WriteError "Invalid directory: $user_response" exit 1 fi # search for the distribution file in user directory for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done fi fi if [ $found_file = 0 ] ; then WriteError "Can't find ${ds1} in (${search_path})" echo "JPEG installation cancelled." exit 1 fi } # # Function to get the location of the JPEG home directory for installation # Also, prompt user that all information is valid before proceeding # GetInstallDir() { default_JPEG_path="`pwd`/jpeg/$BRAND" if [ "$JPEG_path" = "" ] ; then JPEG_path="`pwd`/jpeg/$BRAND" fi # ask the user if [ $batch_mode = 0 ] ; then UserPrompt "Pathname where directory '$jpeg_home' will be created [$JPEG_path]: " echo "" else user_response="" fi if [ "$user_response" = "" ] ; then if [ ! -d `dirname $JPEG_path` ] ; then mkdir `dirname $JPEG_path` ; fi if [ ! -d $JPEG_path ] ; then mkdir $JPEG_path ; fi else # if [ -d "$user_response" ] ; then JPEG_path=$user_response ; #fi fi if [ ! -d $JPEG_path ] ; then if [ $batch_mode = 0 ] ; then UserPrompt "$JPEG_path does not exist. Create [y]? " else user_response=y fi if [ "$user_response" = "" ] ; then user_response="y" ; fi case "$user_response" in y* | Y* ) mkdir -p $JPEG_path if [ ! -d $JPEG_path ] ; then WriteError "Unable to create directory $JPEG_path." echo "JPEG installation cancelled." 2>&1 exit 1 fi ;; *) WriteError "Directory $JPEG_path does not exist." echo "JPEG installation cancelled." 2>&1 exit 1 ;; esac fi # # confirm before proceeding # echo "The JPEG directory will be restored from: " echo " ${distrib_path}/${distrib_file}" echo "" echo "The JPEG directory will be created in: " echo " ${JPEG_path}" echo "" if [ $batch_mode = 0 ] ; then UserPrompt "Continue [yes] ? " case "$user_response" in n* | N* ) echo "Cancelled." ; exit 1 ;; * ) echo "Confirmed." ; echo "" ;; esac fi # # For linux create soft links if default JPEG installation directory is used # save_dir="`pwd`" if [ "`pwd`/jpeg/$BRAND" = "$default_JPEG_path" ] ;then if [ "$BRAND" = "linux64" ] ; then cd ${default_JPEG_path}/.. current_path="`pwd`" EchoAndLog "64-bit structure is the default in this machine. Creating $current_path/linux as a soft link to $default_JPEG_path" ln -s ./linux64 linux cd $save_dir fi if [ "$BRAND" = "linux" ] ; then cd ${default_JPEG_path}/.. current_path="`pwd`" EchoAndLog "32-bit structure is the default in this machine. Creating $current_path/linux32 as a soft link to $default_JPEG_path" ln -s ./linux linux32 cd $save_dir fi fi # # For macintel create soft links if default JPEG installation directory is used # save_dir="`pwd`" if [ "`pwd`/jpeg/$BRAND" = "$default_JPEG_path" ] ;then if [ "$BRAND" = "macintel32" ] ; then cd ${default_JPEG_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel as a soft link to $default_JPEG_path" ln -s ./macintel32 macintel cd $save_dir fi if [ "$BRAND" = "macintel" ] ; then cd ${default_JPEG_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel32 as a soft link to $default_JPEG_path" ln -s ./macintel macintel32 cd $save_dir fi fi } # # Function to unpack the distribution file into the installation directory # UnpackDistribution() { # # Go to the JPEG parent directory # cd $JPEG_path # # If the new JPEG home directory already exits, it must # be removed first. Check with the user before proceeding. # if [ -d "$jpeg_home" ] ; then EchoAndLog "The directory $jpeg_home already exists." if [ $batch_mode = 0 ] ; then UserPrompt "Replace it [no] ? " else user_response=y fi case "$user_response" in y* | Y* ) EchoAndLog "Removing old $jpeg_home directory ..." /bin/rm -rf $jpeg_home ;; * ) EchoAndLog "Cancelled." exit 1 ;; esac fi # # Create a link to the distribution file, if necessary. # link_flag=0 if [ ! -f $distrib_file ] ; then if [ -f ${distrib_path}/${distrib_file} ] ; then ln -s ${distrib_path}/${distrib_file} ${distrib_file} link_flag=1 fi fi # # Uncompress the distribution file, (if needed), and extract the files # EchoAndLog "Extracting files from $distrib_file ..." suffix="`echo $distrib_file | sed 's/^.*\.//'`" case $suffix in Z ) zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; gz ) gzip -cd $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 # GnuZcat # if [ $gnu_zcat != 1 ] ; then # WriteError "You need the GNU version of zcat to unpack this file." # exit 1 # fi # zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; tar) echo $distrib_file tar -xvf $distrib_file | awk '{printf "."}' 2>&1 echo "" ;; esac # # Clean up symbolic link, if present # if [ $link_flag = 1 ] ; then /bin/rm -f $distrib_file fi } # # See if zcat is GNU version # GnuZcat() { if [ "$1" = "" ] ; then zcat_cmd=zcat else zcat_cmd=$1 fi buf=`exec 2>&1; $zcat_cmd < /dev/null | tail -1` buf=`echo $buf | awk -F: '{print $1}'` case "$buf" in zcat) gnu_zcat=1 ;; * ) gnu_zcat=0 ;; esac } # # Strip all JPEG distribution files not needed after installation. # StripHdfInstall() { cd $JPEGHOME here=`pwd` here=`basename $here` # # Make sure this is a valid JPEG directory befor clobbering files ! # if [ "`echo $here | grep '^JPEG'`" = "" ] ; then EchoAndLog "Not a valid JPEG directory: no files removed." else EchoAndLog "Removing all non-installation JPEG files ..." for file in * ; do if [ -d "$file" ] ; then case "$file" in bin | lib | include | man ) ;; * ) rm -rf $file ;; esac else rm -f $file fi done fi } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # log_file="" home_file="" noquery=0 clean=0 cleano=0 strip_install=0 append=0 no_untar=0 sgi_mode=32 f90_flag=0 nag_flag=0 absoft_flag=0 fc_path="" cc_path="" distrib_file="" set_compilers=0 dbug=0 JPEG_path="" batch_mode=0 while [ "$1" != "" ] ; do case "$1" in -h ) Help ;; -f90 ) f90_flag=1 ;; -NAG ) if [ $f90_flag = 0 ] ; then WriteError "Must first specify -f90 and set compiler path." Help else nag_flag=1 fi ;; -ABSOFT ) absoft_flag=1 ;; -fc_path ) fc_path="$2" shift ;; -cc_path ) cc_path="$2" shift ;; -df) distrib_file="$2" shift ;; -sgi32 ) sgi_mode=n32 ;; -sgi64 ) sgi_mode=64 ;; -log ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then log_file="$2" else log_file="$start_dir/$2" fi shift else WriteError "A log file must be specified with the -log option." Help fi ;; -append ) append=1 ;; -w_home ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then home_file="$2" else home_file="$start_dir/$2" fi shift else WriteError "No file specified with -w_home switch." Help fi ;; -nq | -noquery ) noquery=1 ;; -clean ) clean=1 ;; -cleano ) cleano=1 ;; -strip ) strip_install=1 ;; -no_untar ) no_untar=1 ;; -install_dir ) if [ "$2" != "" ] ; then JPEG_path=$2 shift else WriteError "No installation directory specified with -install_dir switch." Help fi ;; -batch ) batch_mode=1 ;; * ) echo "$script_error invalid argument '$1'" Help ;; esac shift done # # Inititialize log file # if [ "$log_file" != "" ] ; then if [ "$append" = "0" ] ; then if [ -f "$log_file" ] ; then /bin/rm -f $log_file > /dev/null 2>&1 fi fi touch $log_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $log_file" exit 1 fi echo "" echo "`basename $0`: session output will go to file: " echo "" echo " $log_file" echo "" fi export log_file # # Initialize the home file # if [ "$home_file" != "" ] ; then if [ -f "$home_file" ] ; then /bin/rm -f $home_file > /dev/null 2>&1 fi touch $home_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $home_file" exit 1 fi fi # # Set architecture-specific variables # SetArchitecture # # Set user compiler overrides # UserCompilers # # Get the location of the distribution file # GetDistribution # # Got valid distribution file # Get the location of the JPEG home directory for installation # GetInstallDir # # Write the log file header # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "JPEG installation starting at: `date`" >> $log_file echo "host: $HOST type: $BRAND user: $USER " >> $log_file echo "" >> $log_file echo "" >> $log_file echo "The JPEG directory will be restored from: " >> $log_file echo " ${distrib_path}/${distrib_file}" >> $log_file echo "" >> $log_file echo "The JPEG directory will be created in: " >> $log_file echo " ${JPEG_path}" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "" >> $log_file fi # # Unpack the distribution file into the installation directory # cd $JPEG_path if [ "$no_untar" = 0 ] ; then UnpackDistribution fi # # Prepare to install the requested version of JPEG # if [ ! -d $jpeg_home ] ; then EchoAndLog "Error creating directory: $jpeg_home" exit 1 fi cd $jpeg_home # go to the starting directory jpeg_install_caller="$this_script" # set caller flag for sub-modules export jpeg_install_caller # # Set the version to be installed # install_script="" install_options="" case $jpeg_home in jpeg-6b ) JPEGHOME=${JPEG_path}/jpeg-6b ; export JPEGHOME install_script="$script_dir/INSTALL-JPEGSRC.v6b" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${JPEGHOME}" ;; * ) # unsupported EchoAndLog "$jpeg_home installation is not supported by this script." exit 1 ;; esac # # Run the install script # if [ ! -f $install_script ] ; then EchoAndLog "Can't find $install_script - installation failed." exit 1 fi $install_script $install_options if [ $? != 0 ] ; then EchoAndLog "$jpeg_home Installation failed." exit 1 fi # # Pass back the JPEG install directory for the hdfeos installation # if [ "$home_file" != "" ] ; then echo $JPEGHOME >> $home_file fi # # Clean up # cd $JPEG_path if [ "$clean" = 1 ] ; then for dir in $JPEGHOME ; do cd $dir echo "Cleaning up in $dir ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Cleaning up in $dir ..." >> $log_file echo "" >> $log_file make clean >> $log_file 2>&1 else make clean fi done fi if [ "$cleano" = 1 ] ; then cd $JPEGHOME echo "Removing any remaining object files ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Removing any remaining object files ..." >> $log_file echo "" >> $log_file find . -name \*.o -print -exec rm -f {} \; >> $log_file 2>&1 find . -name a.out -print -exec rm -f {} \; >> $log_file 2>&1 else find . -name \*.o -print -exec rm -f {} \; find . -name a.out -print -exec rm -f {} \; fi fi if [ "$strip_install" = 1 ] ; then StripHdfInstall fi # # Mac and MacIntel have problems with libjpeg table; run ranlib # if [ "$BRAND" = "macintosh" ] || [ "$BRAND" = "macintel" ] || [ "$BRAND" = "macintel32" ] || [ "$BRAND" = "macintel32" ]; then ranlib $JPEGHOME/lib/libjpeg.a fi echo "------------------------------------------------------------" echo "" echo " JPEG installation ending at: `date` " echo "" echo "------------------------------------------------------------" # # Write the log file trailer # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo " JPEG installation ending at: `date`" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-ZLIB-1.2.50000755000175000017500000002765612024715435023205 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-ZLIB-1.2.5 # # description: # Installation script module for installing ZLIB-1.2.3 # for the SDP (PGS) Toolkit and hdfeos. # It implements patches to the NCSA # installation procedure to allow for trouble-free installation on # the platforms supported by the SDP (PGS) Toolkit and hdfeos. # # usage: # Called from INSTALL-ZLIB # # INSTALL-ZLIB-1.2.5 -h[elp] # # -h : display this help message and exit # -dbug : install debug version of ZLIB # # notes: # This is NOT a standalone script. It is only intended to be run # by INSTALL-ZLIB, the ZLIB installation script. # # author: # Mike Sucher / Applied Research Corp. # Abe Taaheri / L-3 comm. GSI # Adura Adekunjo / L-3 comm. GSI # # history: # 26-Mar-2004 AA Used INSTALL-SZIP1.1 as template for INSTALL-ZLIB-1.2.1 # 20-July-2010 AT Created this file for INSTALL-ZLIB-1.2.5 #----------------------------------------------------------------------------- # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir=`cd $script_dir;pwd` fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else echo "" if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to silently emulate the 'which' command # Which() { if [ "$1" = "" ] ; then WriteError "Which() : Too few arguments." exit 1 fi saveifs="$IFS" IFS=: which_result=0 which_cmd="" for dir in $PATH; do if [ -x $dir/$1 ] ; then which_result=1 which_cmd=$dir/$1 break fi done IFS="$saveifs" } # # Function to set compilers, overriding the NCSA compiler defaults # SetCompilers() { # # Set C compiler based on value of $CC # Set C compilation flags based on value of $CFLAGS # Set FORTRAN compiler based on value of $F77 # # NOTE: # This is done recursively for ALL Makefiles because on some # platforms, the compiler variables are not inherited from the # the calling Makefile. EchoAndLog "Overriding NCSA default compiler settings:" files=`find . -name Makefile -print` if [ "$CC" != "" ] ; then if [ "$CFLAGS" = "" ] ; then EchoAndLog -n "- setting C compiler to '$CC'" EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | # sed '/^CC/s/=.*$'"/= $CC/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa cp $file.ncsa $file done else EchoAndLog -n "- setting C compiler to '$CC'" if [ "$CFLAGS" = "-O" ] ; then EchoAndLog -n "- setting C compilation flags to default" else EchoAndLog -n "- setting C compilation flags to '$CFLAGS'" fi EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | # sed '/^CC/s/=.*$'"/= $CC/" | # sed '/^CFLAGS/s/=.*$'"/= $CFLAGS/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa cp $file.ncsa $file done fi else EchoAndLog "Warning: Environment variable(s) CC and/or F77 not set." EchoAndLog "If CC is not set, the installation uses NCSA defaults." fi } PreConfigZLIBFixes_mac() { cd $start_dir EchoAndLog "Pre-configure ZLIB fixes for $BRAND ... " echo " " file=$start_dir/configure if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi sed "s^libdir='/usr/lib'^libdir='DOLLAR{prefix}/lib'^g" $file.ncsa.default > $file mv $file $file.ncsa.default sed "s^includedir='/usr/include'^includedir='DOLLAR{prefix}/include'^g" $file.ncsa.default > $file mv $file $file.ncsa.default sed 's^DOLLAR^$^g' $file.ncsa.default > $file /bin/chmod 0755 $file /bin/rm -f $file.ncsa.default cd $start_dir } # # Function to do architecture-specific pre-configure fixes # PreConfigure() { cd $start_dir if [ "$dbug" = "1" ] ; then PreConfigFixes_dbug fi # # Call architecture-specific functions # case $BRAND in cray ) ;; dec ) ;; hp ) ;; ibm ) ;; linux ) ;; linux32 ) ;; linux64 ) ;; macintosh ) ;; macintel ) ;; macintel32 ) ;; macintel64 ) ;; sgi ) ;; sgi32 ) ;; sgi64 ) ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac cd $start_dir } # # Function to do architecture-specific post-configure fixes # PostConfigure() { cd $start_dir # # Check for missing tbl and neqn, patching as needed # # PostConfigFixes_NoTblNeqn # # Do architecture-specific fixes # case $BRAND in cray ) ;; dec ) ;; hp ) ;; ibm ) ;; ibm ) ;; linux ) ;; linux32 ) ;; linux64 ) ;; macintosh ) ;; macintel ) ;; macintel32 ) ;; macintel64 ) ;; cygwin ) ;; sgi ) ;; sgi32 ) ;; sgi64 ) ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac # # If requested, set compilers to something other than the defaults # if [ $set_compilers = 1 ] ; then SetCompilers fi cd $start_dir } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # set_compilers=0 config_flags="" dbug=0 while [ "$1" != "" ] ; do case "$1" in -h | help ) Help ;; -set_compilers ) set_compilers=1 ;; -dbug ) dbug=1 ;; -start_dir ) if [ "$2" != "" ] ; then start_dir=$2 shift else WriteError "No installation directory specified with -start_dir switch." Help fi ;; * ) echo "$script_error invalid argument '$1'" ; Help ;; esac shift done # # Make sure we're not running standalone # if [ "$zlib_install_caller" = "" ] ; then WriteError "This script can only be run from INSTALL-ZLIB." Help else # Here we set up the ZLIB installation directory, # for use by the configure script. # install_dir="$ZLIBHOME" if [ ! -d "$install_dir" ] ; then # create the install dir, if needed. mkdir $install_dir fi fi # # Announce # EchoAndLog "Running $this_script" if [ "$BRAND" = "macintosh" ] || [ "$BRAND" = "macintel" ] ; then PreConfigZLIBFixes_mac fi # # Run the NCSA-supplied configure script # cd $start_dir tmp_home=$HOME # save $HOME HOME=`pwd` ; export HOME # change it to avoid interaction w/ .cshrc if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then EchoAndLog "Running ./configure --prefix=$install_dir $config_flags" else EchoAndLog "Running ./configure --prefix=$install_dir $config_flags" fi if [ "$log_file" != "" ] ; then echo "" >> $log_file if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then ./configure --prefix=$install_dir $config_flags >> $log_file 2>&1 else ./configure --prefix=$install_dir $config_flags >> $log_file 2>&1 fi else echo "" if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then ./configure --prefix=$install_dir $config_flags else ./configure --prefix=$install_dir $config_flags fi fi HOME=$tmp_home ; export HOME # restore $HOME # # Do architecture-specific post-configure fixes # PostConfigure # # Run the make utility to compile the library and utiltites # EchoAndLog "Running make, target=all" if [ "$log_file" != "" ] ; then echo "" >> $log_file make >> $log_file 2>&1 tmp_status=$? else echo "" make tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make' failed." exit 1 fi EchoAndLog "Running make, target=test" if [ "$log_file" != "" ] ; then echo "" >> $log_file make test>> $log_file 2>&1 tmp_status=$? else echo "" make test tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make all' failed." exit 1 fi # # Run the make utility install the libraries, utilities, includes and man pages # if [ "$BRAND" = "macintosh" ] ; then /bin/mkdir $ZLIBHOME/include /bin/mkdir $ZLIBHOME/lib fi if [ "$BRAND" = "macintel" ] ; then /bin/mkdir $ZLIBHOME/include /bin/mkdir $ZLIBHOME/lib fi if [ "$BRAND" = "ibm" ] ; then /bin/mkdir $ZLIBHOME/include /bin/mkdir $ZLIBHOME/lib fi EchoAndLog "Running make, target=install " if [ "$log_file" != "" ] ; then echo "" >> $log_file make install >> $log_file 2>&1 tmp_status=$? else echo "" make install tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then if [ "$BRAND" = "cygwin" ] ; then EchoAndLog "Run of 'make install' failed.But it was completed in the install script." if [ -f $ZLIBHOME/lib/libz.a ] ; then if [ ! -d $ZLIBHOME/include ] ; then EchoAndLog "Creating $ZLIBHOME/include directory." mkdir -p $ZLIBHOME/include fi cp zlib.h $ZLIBHOME/include/. cp zconf.h $ZLIBHOME/include/. chmod 644 $ZLIBHOME/include/zlib.h $ZLIBHOME/include/zconf.h ranlib $ZLIBHOME/lib/libz.a else EchoAndLog "Run of 'make install' failed." exit 1 fi else EchoAndLog "Run of 'make install' failed." exit 1 fi fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-JPEGSRC.v6b0000755000175000017500000002650712024715435023567 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-JPEGSRC.v6b # # description: # Installation script module for installing JPEG-6b # for the SDP (PGS) Toolkit and hdfeos. # It implements patches to the NCSA # installation procedure to allow for trouble-free installation on # the platforms supported by the SDP (PGS) Toolkit and hdfeos. # # usage: # Called from INSTALL-JPEG # # INSTALL-JPEGSRC.v6b -h[elp] # # -h : display this help message and exit # -dbug : install debug version of ZLIB # # notes: # This is NOT a standalone script. It is only intended to be run # by INSTALL-ZLIB, the ZLIB installation script. # # author: # Mike Sucher / Applied Research Corp. # Abe Taaheri / L-3 comm. GSI # Adura Adekunjo / L-3 comm. GSI # # history: # 26-Mar-2004 AA Used INSTALL-SZIP1.1 as template for INSTALL-JPEGSRC.v6b #----------------------------------------------------------------------------- # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir=`cd $script_dir;pwd` fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else echo "" if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to silently emulate the 'which' command # Which() { if [ "$1" = "" ] ; then WriteError "Which() : Too few arguments." exit 1 fi saveifs="$IFS" IFS=: which_result=0 which_cmd="" for dir in $PATH; do if [ -x $dir/$1 ] ; then which_result=1 which_cmd=$dir/$1 break fi done IFS="$saveifs" } # # Function to set compilers, overriding the NCSA compiler defaults # SetCompilers() { # # Set C compiler based on value of $CC # Set C compilation flags based on value of $CFLAGS # Set FORTRAN compiler based on value of $F77 # # NOTE: # This is done recursively for ALL Makefiles because on some # platforms, the compiler variables are not inherited from the # the calling Makefile. EchoAndLog "Overriding NCSA default compiler settings:" files=`find . -name Makefile -print` if [ "$CC" != "" ] ; then if [ "$CFLAGS" = "" ] ; then EchoAndLog -n "- setting C compiler to '$CC'" EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | # sed '/^CC/s/=.*$'"/= $CC/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa cp $file.ncsa $file done else EchoAndLog -n "- setting C compiler to '$CC'" if [ "$CFLAGS" = "-O" ] ; then EchoAndLog -n "- setting C compilation flags to default" else EchoAndLog -n "- setting C compilation flags to '$CFLAGS'" fi EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | # sed '/^CC/s/=.*$'"/= $CC/" | # sed '/^CFLAGS/s/=.*$'"/= $CFLAGS/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa cp $file.ncsa $file done fi else EchoAndLog "Warning: Environment variable(s) CC and/or F77 not set." EchoAndLog "If CC is not set, the installation uses NCSA defaults." fi } # # Function to do architecture-specific pre-configure fixes # PreConfigure() { cd $start_dir if [ "$dbug" = "1" ] ; then PreConfigFixes_dbug fi # # Call architecture-specific functions # case $BRAND in cray ) ;; dec ) ;; hp ) ;; ibm ) ;; linux ) ;; linux32 ) ;; linux64 ) ;; macintosh ) ;; macintel ) ;; macintel32 ) ;; macintel64 ) ;; cygwin ) ;; sgi ) ;; sgi32 ) ;; sgi64 ) ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac cd $start_dir } # # Function to do architecture-specific post-configure fixes # PostConfigure() { cd $start_dir # # Check for missing tbl and neqn, patching as needed # # PostConfigFixes_NoTblNeqn # # Do architecture-specific fixes # case $BRAND in cray ) ;; dec ) ;; hp ) ;; ibm ) ;; ibm ) ;; linux ) ;; linux32 ) ;; linux64 ) ;; macintosh ) ;; macintel ) ;; macintel32 ) ;; macintel64 ) ;; cygwin ) ;; sgi ) ;; sgi32 ) ;; sgi64 ) ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac # # If requested, set compilers to something other than the defaults # if [ $set_compilers = 1 ] ; then SetCompilers fi cd $start_dir } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # set_compilers=0 config_flags="" dbug=0 while [ "$1" != "" ] ; do case "$1" in -h | help ) Help ;; -set_compilers ) set_compilers=1 ;; -dbug ) dbug=1 ;; -start_dir ) if [ "$2" != "" ] ; then start_dir=$2 shift else WriteError "No installation directory specified with -start_dir switch." Help fi ;; * ) echo "$script_error invalid argument '$1'" ; Help ;; esac shift done # # Make sure we're not running standalone # if [ "$jpeg_install_caller" = "" ] ; then WriteError "This script can only be run from INSTALL-ZLIB." Help else # Here we set up the JPEG installation directory, # for use by the configure script. # install_dir="$JPEGHOME" if [ ! -d "$install_dir" ] ; then # create the install dir, if needed. mkdir $install_dir fi fi # # Announce # EchoAndLog "Running $this_script" # # Run the NCSA-supplied configure script # cd $start_dir tmp_home=$HOME # save $HOME HOME=`pwd` ; export HOME # change it to avoid interaction w/ .cshrc if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then EchoAndLog "Running ./configure --prefix=$install_dir $config_flags" elif [ "$BRAND" = "sgi64" ] ; then EchoAndLog "Running ./configure RANLIB='ar -ts' --prefix=$install_dir $config_flags" else EchoAndLog "Running ./configure --prefix=$install_dir $config_flags" fi if [ "$log_file" != "" ] ; then echo "" >> $log_file if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then ./configure --prefix=$install_dir $config_flags >> $log_file 2>&1 elif [ "$BRAND" = "sgi64" ]; then ./configure RANLIB='ar -ts' --prefix=$install_dir $config_flags >> $log_file 2>&1 else ./configure --prefix=$install_dir $config_flags >> $log_file 2>&1 fi else echo "" if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then ./configure --prefix=$install_dir $config_flags elif [ "$BRAND" = "sgi64" ]; then ./configure RANLIB='ar -ts' --prefix=$install_dir $config_flags >> $log_file 2>&1 else ./configure --prefix=$install_dir $config_flags fi fi HOME=$tmp_home ; export HOME # restore $HOME # # Do architecture-specific post-configure fixes # PostConfigure # # Run the make utility to compile the library and utiltites # EchoAndLog "Running make, target=all" if [ "$log_file" != "" ] ; then echo "" >> $log_file make >> $log_file 2>&1 tmp_status=$? else echo "" make tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make' failed." exit 1 fi EchoAndLog "Running make, target=test" if [ "$log_file" != "" ] ; then echo "" >> $log_file make test>> $log_file 2>&1 tmp_status=$? else echo "" make test tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make all' failed." exit 1 fi # # Run the make utility install the libraries, utilities, includes and man pages # if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] || [ "$BRAND" = "macintosh" ] || [ "$BRAND" = "macintel" ] || [ "$BRAND" = "macintel32" ] || [ "$BRAND" = "macintel64" ] ; then /bin/mkdir $JPEGHOME/include /bin/mkdir $JPEGHOME/lib fi if [ "$BRAND" = "dec" ] ; then /bin/mkdir $JPEGHOME/include /bin/mkdir $JPEGHOME/lib fi if [ "$BRAND" = "ibm" ] ; then /bin/mkdir $JPEGHOME/include /bin/mkdir $JPEGHOME/lib fi if [ "$BRAND" = "cygwin" ] ; then /bin/mkdir $JPEGHOME/include /bin/mkdir $JPEGHOME/lib fi EchoAndLog "Running make, target=install " if [ "$log_file" != "" ] ; then echo "" >> $log_file make install-lib >> $log_file 2>&1 tmp_status=$? else echo "" make install-lib tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make install' failed." exit 1 fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-SZIP2.10000755000175000017500000002614512024715435023002 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-SZIP2.1 # # description: # Installation script module for installing SZIP2.1 # for the SDP (PGS) Toolkit and hdfeos. # It implements patches to the NCSA # installation procedure to allow for trouble-free installation on # the platforms supported by the SDP (PGS) Toolkit and hdfeos. # # usage: # Called from INSTALL-SZIP # # INSTALL-SZIP2.1 -h[elp] # # -h : display this help message and exit # -dbug : install debug version of SZIP # # notes: # This is NOT a standalone script. It is only intended to be run # by INSTALL-SZIP, the SZIP installation script. # # author: # Mike Sucher / Applied Research Corp. # Abe Taaheri / L-3 comm. GSI # Adura Adekunjo / L-3 comm. GSI # # history: # 20-Oct-2003 AT Added for SZIP Installation # 20-Jan-2005 MP Updated for version 1.2 # 07-Jul-2005 AA Updated for version 2.0 # 05-Sep-2007 AT Updated for version 2.1 #----------------------------------------------------------------------------- # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir=`cd $script_dir;pwd` fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else echo "" if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to silently emulate the 'which' command # Which() { if [ "$1" = "" ] ; then WriteError "Which() : Too few arguments." exit 1 fi saveifs="$IFS" IFS=: which_result=0 which_cmd="" for dir in $PATH; do if [ -x $dir/$1 ] ; then which_result=1 which_cmd=$dir/$1 break fi done IFS="$saveifs" } # # Function to set compilers, overriding the NCSA compiler defaults # SetCompilers() { # # Set C compiler based on value of $CC # Set C compilation flags based on value of $CFLAGS # Set FORTRAN compiler based on value of $F77 # # NOTE: # This is done recursively for ALL Makefiles because on some # platforms, the compiler variables are not inherited from the # the calling Makefile. EchoAndLog "Overriding NCSA default compiler settings:" files=`find . -name Makefile -print` if [ "$CC" != "" ] ; then if [ "$CFLAGS" = "" ] ; then EchoAndLog -n "- setting C compiler to '$CC'" EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | # sed '/^CC/s/=.*$'"/= $CC/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa cp $file.ncsa $file done else EchoAndLog -n "- setting C compiler to '$CC'" if [ "$CFLAGS" = "-O" ] ; then EchoAndLog -n "- setting C compilation flags to default" else EchoAndLog -n "- setting C compilation flags to '$CFLAGS'" fi EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi if [ "$CFLAGS" = "-O" ] ; then cat $file.ncsa.default | # sed '/^CC /s/=.*$'"/= $CC/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa else cat $file.ncsa.default | # sed '/^CC /s/=.*$'"/= $CC/" | # sed '/^CFLAGS/s/=.*$'"/= $CFLAGS/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa fi cp $file.ncsa $file done fi else EchoAndLog "Warning: Environment variable(s) CC and/or F77 not set." EchoAndLog "If CC is not set, the installation uses NCSA defaults." fi } # # Function to do architecture-specific pre-configure fixes # PreConfigure() { # # Call architecture-specific functions # case $BRAND in cray ) ;; dec ) ;; hp ) ;; ibm ) ;; linux ) ;; linux32 ) ;; linux64 ) ;; macintosh ) ;; macintel ) ;; macintel32 ) ;; macintel64 ) ;; cygwin ) ;; sgi ) ;; sgi32 ) ;; sgi64 ) ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac cd $start_dir } # # Function to do architecture-specific post-configure fixes # PostConfigure() { cd $start_dir # # Check for missing tbl and neqn, patching as needed # # PostConfigFixes_NoTblNeqn # # Do architecture-specific fixes # case $BRAND in cray ) ;; dec ) ;; hp ) ;; ibm ) ;; ibm ) ;; linux ) ;; linux32 ) ;; linux64 ) ;; macintosh ) ;; macintel ) ;; macintel32 ) ;; macintel64 ) ;; cygwin ) ;; sgi ) ;; sgi32 ) ;; sgi64 ) ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac # # If requested, set compilers to something other than the defaults # if [ $set_compilers = 1 ] ; then SetCompilers fi cd $start_dir } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # set_compilers=0 config_flags="" dbug=0 while [ "$1" != "" ] ; do case "$1" in -h | help ) Help ;; -set_compilers ) set_compilers=1 ;; -dbug ) dbug=1 ;; -start_dir ) if [ "$2" != "" ] ; then start_dir=$2 shift else WriteError "No installation directory specified with -start_dir switch." Help fi ;; * ) echo "$script_error invalid argument '$1'" ; Help ;; esac shift done # # Make sure we're not running standalone # if [ "$szip_install_caller" = "" ] ; then WriteError "This script can only be run from INSTALL-SZIP." Help else # Here we set up the SZIP installation directory, # for use by the configure script. # # With this release of SZIP, we abandon the convention of setting the # installation directory to $SZIPHOME/szip, which was formerly done for # backwards compatibility with the installed SZIP directory structure # that the toolkit was using with the 3.3r4 version of SZIP. # # New releases of the SDP Toolkit and hdfeos have been updated to handle this # directory change install_dir="$SZIPHOME" if [ ! -d "$install_dir" ] ; then # create the install dir, if needed. mkdir $install_dir fi fi # # Announce # EchoAndLog "Running $this_script" # # Run the NCSA-supplied configure script # cd $start_dir tmp_home=$HOME # save $HOME HOME=`pwd` ; export HOME # change it to avoid interaction w/ .cshrc PreConfigure if [ "$szip_encode" = "n" ] ; then config_flags="$config_flags --disable-shared --disable-encoding" else config_flags="$config_flags --disable-shared" fi if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then EchoAndLog "Running ./configure --prefix=$install_dir $config_flags" else EchoAndLog "Running ./configure --prefix=$install_dir $config_flags" fi if [ "$log_file" != "" ] ; then echo "" >> $log_file if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then ./configure --prefix=$install_dir $config_flags >> $log_file 2>&1 else ./configure --prefix=$install_dir $config_flags >> $log_file 2>&1 fi else echo "" if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then ./configure --prefix=$install_dir $config_flags else ./configure --prefix=$install_dir $config_flags fi fi HOME=$tmp_home ; export HOME # restore $HOME # # Do architecture-specific post-configure fixes # PostConfigure # # Run the make utility to compile the library and utiltites # EchoAndLog "Running make, target=all" if [ "$log_file" != "" ] ; then echo "" >> $log_file make >> $log_file 2>&1 tmp_status=$? else echo "" make tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make' failed." exit 1 fi EchoAndLog "Running make, target=test" if [ "$log_file" != "" ] ; then echo "" >> $log_file make test>> $log_file 2>&1 tmp_status=$? else echo "" make test tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make all' failed." exit 1 fi # # Run the make utility install the libraries, utilities, includes and man pages # EchoAndLog "Running make, target=install " if [ "$log_file" != "" ] ; then echo "" >> $log_file make install >> $log_file 2>&1 tmp_status=$? else echo "" make install tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make install' failed." exit 1 fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-HDFEOS-Wrap0000755000175000017500000004257412024715435023657 0ustar amckinstryamckinstry#!/bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-HDFEOS-Wrap # # description: # HDFEOS installation script wrapper for the SDP(PGS) Toolkit and hdfeos # The purpose of this script is to integrate the installation # of HDFEOS when it is being performed concurrently with the # SDP Toolkit or hdfeos5 installation.In normal use this script is called # by INSTALL, the master Toolkit installation script, though it # may also be run standalone. # # usage: # INSTALL-HDFEOS-Wrap [-sgi32 | -sgi64] [-log # [-cc_path ] # [-append]] [-df ] # [-w_home ] [-batch] # [-install_dir ] # INSTALL-HDFEOS-Wrap [-h] # # -sgi32 : build in -n32 mode (SGI Power Challenge only) # -sgi64 : build in 64-bit mode (SGI Power Challenge only) # -log : send session output to # -dbug : build debug version of hdfeos library # -cc_path: set the path of the C compiler to # -append : append to existing # -w_home : write HDFEOS home directory to # -df : install HDFEOS from distribution file # -batch : run script in batch (i.e. non-interactive) mode # -h : display this help message and exit # # notes: # 1) An initial installation requires the HDFEOS distribution file to # have been previously downloaded. Also, HDF must already be # installed, preferably as part of the Toolkit installation. # # 2) This script requires the environment variables HDFINC, HDFLIB, # SZIPINC and SZIPLIB to be properly set. In normal use these # will be set by the INSTALL script. # # author: # Mike Sucher / Applied Research Corp. # Phuong T. Nguyen/ Emergent Information Technology, Inc. # Abe Taaheri/ Raytheon IIS # # history: # 27-Sep-1996 MES Initial version (portions taken from INSTALL-HDF) # 17-Oct-1996 MES Various fixes and enhancements. # 23-Oct-1996 MES Add UserPrompt -x option to do shell syntax expansion. # 24-Jun-1998 MEDS Updating script to include new tar file for version # HDF-EOS 2.3 in the distribution list # 24-Jun-1998 MEDS Updating script to include new tar file for version # HDF-EOS 2.4 in the distribution list # 19-Jun-1999 MEDS Updating script to include new tar file for version # HDF-EOS 2.5 in the distribution list # 12-Oct-1999 MEDS Updating script to include new tar file for version # HDF-EOS 2.6 in the distribution list # 26-Sep-2001 PTN Updating script to include new tar file for version # HDF-EOS 2.8 in the distribution list # 17-Mar-2003 AA Updating script to include new tar file for version # HDF-EOS 2.9 in the distribution list # 15-Sep-2003 PTN Add -cc_path option. # 20-Oct-2003 AT Updating script to include new tar file for version # HDF-EOS 2.10 in the distribution list # 18-Jan-2005 MP Updating script to include new tar file for version # HDF-EOS 2.13 in the distribution list # 08-Sep-2005 AT Updating script to include new tar file for version # HDF-EOS 2.14 in the distribution list # 05-Jul-2007 AT Updating script to include new tar file for version # HDF-EOS 2.15 in the distribution list # 20-May-2009 AT Updating script to include new tar file for version # HDF-EOS 2.16 in the distribution list # 20-Jul-2010 AT Updating script to include new tar file for version # HDF-EOS 2.17 in the distribution list # 16-Nov-2011 AT Updating script to include new tar file for version # HDF-EOS 2.18 in the distribution list # # #----------------------------------------------------------------------------- this_script="`basename $0`" #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else echo "" if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to prompt for user response # UserPrompt() { if [ "$1" = -x ] ; then # -x: eXpand shell variables shift expand_flag=1 else expand_flag=0 fi if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ]; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response if [ $expand_flag = 1 ] ; then # perform shell variable expansion user_response=`echo $user_response | sed 's%~%$HOME%'` # map ~ to $HOME user_response=`eval echo $user_response` # expand all fi } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to get the location of the distribution file # GetDistribution() { : ${distrib_file:=HDF-EOS2.18v1.00.tar.Z} ds1=$distrib_file # backup copy # derive tar file name case "$distrib_file" in HDF-EOS2.0v1.00.tar.Z ) tar_file=HDF-EOS2.0v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.1v1.00.tar.Z ) tar_file=HDF-EOS2.1v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.2v1.00.tar.Z ) tar_file=HDF-EOS2.2v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.3v1.00.tar.Z ) tar_file=HDF-EOS2.3v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.4v1.00.tar.Z ) tar_file=HDF-EOS2.4v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.5v1.00.tar.Z ) tar_file=HDF-EOS2.5v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.7.2v1.00.tar.Z ) tar_file=HDF-EOS2.7.2v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.8v1.00.tar.Z ) tar_file=HDF-EOS2.8v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.10v1.00.tar.Z ) tar_file=HDF-EOS2.10v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.11v1.00.tar.Z ) tar_file=HDF-EOS2.11v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.12v1.00.tar.Z ) tar_file=HDF-EOS2.12v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.13v1.00.tar.Z ) tar_file=HDF-EOS2.13v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.14v1.00.tar.Z ) tar_file=HDF-EOS2.14v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.16v1.00.tar.Z ) tar_file=HDF-EOS2.16v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.17v1.00.tar.Z ) tar_file=HDF-EOS2.17v1.00.tar HDFEOS_home=hdfeos ;; HDF-EOS2.18v1.00.tar.Z ) tar_file=HDF-EOS2.18v1.00.tar HDFEOS_home=hdfeos ;; * ) EchoAndLog "HDFEOS version in $distrib_file not supported by this script." exit 1 ;; esac # set search path to include current dir, parent of current and $HOME search_path=`pwd` search_path="$search_path `cd ..; pwd` $HOME" # set search file to include compressed tar file and uncompressed tar file search_file="$distrib_file $tar_file" # search for the distribution file found_file=0 for distrib_path in $search_path ; do for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done if [ $found_file = 1 ] ; then break fi done # if file was not found, ask the user if [ $found_file = 0 ] ; then if [ $batch_mode = 0 ] ; then echo "" UserPrompt -x "Pathname where $ds1 is located: " echo "" else user_response="" fi if [ "$user_response" != "" ] ; then # make sure directory exists if [ -d $user_response ] ; then distrib_path=$user_response else WriteError "Invalid directory: $user_response" exit 1 fi # search for the distribution file in user directory for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done fi fi if [ $found_file = 0 ] ; then WriteError "Can't find ${ds1} in (${search_path})" echo "HDFEOS installation cancelled." exit 1 fi } # # Function to get the location of the HDFEOS home directory for installation # Also, prompt user that all information is valid before proceeding # GetInstallDir() { if [ "$HDFEOS_path" = "" ] ; then HDFEOS_path="`pwd`" fi if [ "$HDFEOS_path" = "`pwd`" ] ; then HDFEOS_path="$HDFEOS_path/.." fi # ask the user if [ $batch_mode = 0 ] ; then UserPrompt -x "Pathname where '$HDFEOS_home' will be installed [$HDFEOS_path]: " echo "" else user_response="" fi if [ "$user_response" = "" ] ; then if [ ! -d `dirname $HDFEOS_path` ] ; then mkdir `dirname $HDFEOS_path` ; fi if [ ! -d $HDFEOS_path ] ; then mkdir $HDFEOS_path ; fi else if [ -d "$user_response" ] ; then HDFEOS_path=$user_response ; fi fi if [ ! -d $HDFEOS_path ] ; then if [ $batch_mode = 0 ] ; then UserPrompt "$HDFEOS_path does not exist. Create [y]? " else user_response=y fi if [ "$user_response" = "" ] ; then user_response="y" ; fi case "$user_response" in y* | Y* ) mkdir -p $HDFEOS_path if [ ! -d $HDFEOS_path ] ; then WriteError "Unable to create directory $HDFEOS_path." echo "HDFEOS installation cancelled." 2>&1 exit 1 fi ;; *) WriteError "Directory $HDFEOS_path does not exist." echo "HDFEOS installation cancelled." 2>&1 exit 1 ;; esac fi # # confirm before proceeding # echo "The HDFEOS directory will be restored from: " echo " ${distrib_path}/${distrib_file}" echo "" echo "The HDFEOS will be installed in: " echo " ${HDFEOS_path}" echo "" if [ $batch_mode = 0 ] ; then UserPrompt "Continue [yes] ? " case "$user_response" in n* | N* ) echo "Cancelled." ; exit 1 ;; * ) echo "Confirmed." ; echo "" ;; esac fi } # # Function to unpack the distribution file into the installation directory # UnpackDistribution() { # # Go to the HDFEOS parent directory # cd $HDFEOS_path # # If the new HDFEOS home directory already exits, it must # be removed first. Check with the user before proceeding. # if [ -d "$HDFEOS_home" ] ; then EchoAndLog "The directory $HDFEOS_home already exists." if [ $batch_mode = 0 ] ; then UserPrompt "[O]verwrite, [R]e-use or [Q]uit (default) ? " else user_response=r fi case "$user_response" in o* | O* ) EchoAndLog "Removing old $HDFEOS_home directory ..." /bin/rm -rf $HDFEOS_home ;; r* | R* ) EchoAndLog "Installation will use existing $HDFEOS_home directory." return 0 ;; * ) EchoAndLog "Cancelled." exit 1 ;; esac fi # # Create a link to the distribution file, if necessary. # link_flag=0 if [ ! -f $distrib_file ] ; then if [ -f ${distrib_path}/${distrib_file} ] ; then ln -s ${distrib_path}/${distrib_file} ${distrib_file} link_flag=1 fi fi # # Uncompress the distribution file, (if needed), and extract the files # EchoAndLog "Extracting files from $distrib_file ..." suffix="`echo $distrib_file | sed 's/^.*\.//'`" case $suffix in Z ) zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; tar) tar xvf $distrib_file | awk '{printf "."}' 2>&1 echo "" ;; esac # # Clean up symbolic link, if present # if [ $link_flag = 1 ] ; then /bin/rm -f $distrib_file fi } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # home_file="" no_untar=0 sgi_mode=32 # by default, SGI mode is standard 32-bit log_file="" distrib_file="" fc_path="" cc_path="" append=0 dbug=0 batch_mode=0 while [ "$1" != "" ] do case $1 in -h | -he | -hel | -help ) Help ;; # help -sgi32) sgi_mode=n32 ;; -sgi64) sgi_mode=64 ;; -fc_path ) fc_path="$2" ; shift ;; -cc_path ) cc_path="$2" ; shift ;; -df) distrib_file="$2" ; shift ;; -log ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then log_file="$2" else log_file="$start_dir/$2" fi shift else WriteError "A log file must be specified with the -log option" Help fi ;; -append ) append=1 ;; -dbug ) dbug=1 ;; -w_home ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then home_file="$2" else home_file="$start_dir/$2" fi shift else WriteError "A file name must be specified with the -w_home option." Help fi ;; -install_dir ) if [ "$2" != "" ] ; then HDFEOS_path=$2 shift else WriteError "No installation directory specified with -install_dir switch." Help fi ;; -batch ) batch_mode=1 ;; -*) echo "Invalid option: $1" Help ;; *) # default value1="$1" ;; esac shift done # # Initialize the home file # if [ "$home_file" != "" ] ; then if [ -f "$home_file" ] ; then /bin/rm -f $home_file > /dev/null 2>&1 fi touch $home_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $home_file" exit 1 fi fi # # Get the location of the distribution file # GetDistribution # # Got valid distribution file # Get the location of the HDFEOS home directory for installation # GetInstallDir # # Unpack the distribution file into the installation directory # cd $HDFEOS_path if [ "$no_untar" = 0 ] ; then UnpackDistribution fi # # Prepare to install the requested version of HDFEOS # if [ ! -d "$HDFEOS_path" ] ; then EchoAndLog "Error creating directory: $HDFEOS_path" exit 1 fi cd $HDFEOS_path/$HDFEOS_home # go to the starting directory EchoAndLog "Setting directory to: $HDFEOS_path/$HDFEOS_home" # HDF-EOS expects these directories to be in place, if they are not # then create them here. If we have to do this then the INSTALL may # fail, but at least we're still one step ahead of the game if [ ! -d bin/$BRAND ] ; then mkdir bin/$BRAND fi if [ ! -d obj/$BRAND ] ; then mkdir obj/$BRAND fi if [ ! -d lib/$BRAND ] ; then mkdir lib/$BRAND fi install_flags="-i$HDFINC -l$HDFLIB -szi$SZIPINC -szl$SZIPLIB" if [ $dbug = 1 ] ; then install_flags="$install_flags -dbug" fi case "$sgi_mode" in n32) install_flags="$install_flags -sgi32" ;; 64) install_flags="$install_flags -sgi64" ;; esac if [ "$cc_path" != "" ] ; then # path for C compiler install_flags="$install_flags -cc_path $cc_path" fi if [ "$fc_path" != "" ] ; then # path for FORTRAN compiler install_flags="$install_flags -fc_path $fc_path" fi EchoAndLog "Running the HDFEOS installation script ..." return_status=0 if [ "$log_file" != "" ] ; then if [ $append = 1 ] ; then bin/INSTALL-HDFEOS $install_flags >> $log_file 2>&1 # append return_status=$? else bin/INSTALL-HDFEOS $install_flags > $log_file 2>&1 # clobber return_status=$? fi else bin/INSTALL-HDFEOS $install_flags return_status=$? fi # # Pass back the HDF install directory for the toolkit installation # if [ $return_status = 0 ] ; then if [ "$home_file" != "" ] ; then echo $HDFEOS_path/$HDFEOS_home >> $home_file fi fi if [ $return_status != 0 ] ; then echo "The HDFEOS Installation Script failed or had errors." exit 1 fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-HDF0000755000175000017500000012350712024715435022375 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-HDF # # description: # HDF installation script for the SDP (PGS) Toolkit and hdfeos # # usage: # INSTALL-HDF [-f90 [-NAG]] [-ABSOFT] [-fc_path ] # [-cc_path ] [-sgi32 | -sgi64] # [-log [-append]] [-clean | -cleano] # [-strip] [-w_home ] [-df ] # [-batch] [-install_dir ] # INSTALL-HDF [-h] # # -f90 : build HDF FORTRAN modules using f90 # optional flag -NAG specifies NAG f90 # -ABSOFT : flag that specifies absoft f77 is used for fortran compilation # -fc_path : set the path of the FORTRAN compiler to # -cc_path : set the path of the C compiler to # -sgi32 : build in -n32 mode (SGI Power Challenge only) # -sgi64 : build in 64-bit mode (SGI Power Challenge only) # -dbug : build in debug mode # -log : sdone session output to new # -append : append to existing # -clean : run 'make clean' after doing the installation # -cleano : clean up all object and a.out files # -strip : strip out all non-installation files following install # -w_home : write HDF home directory to # -df : install HDF from distribution file # -batch : run script in batch (i.e. non-interactive) mode # -install_dir : full path to top level directory where HDF will be # installed (e.g. /usr/local/hdfeos/hdf/sgi64) # -h : display this help message and exit # # notes: # 1) The use of the -clean option will cause the HDF utilites to # be deleted. To preserve them, use the -cleano option instead. # # 2) The -f90 and -NAG options are * * NOT IMPLEMENTED * * # Currently, these options are accepted, but ignored. # # # author: # Mike Sucher / Applied Research Corp. # Megan E. Donovan Spencer / SM&AE # Abe Taaheri / SM&AE # Phuong T. Nguyen / L3 Communication # Adura Adekunjo/ L3 Communication GSI # # history: # 11-May-1995 MES Initial version # 10-Jul-1995 MES Added patch to remove the typedef of _fcd from # hdfi.h if building HDF on a Cray. # 17-Jul-1995 MES Configure for IRIX64, the sgi 64 bit O/S. # - recognize OSTYPE of IRIX64 # - Force all objects to be built in 32-bit mode. # - Do not not attempt to build basic utilities, # because they need a missing 32-bit library. # 17-Jul-1995 MES Added a patch to fix file hdf.inc, the broken # FORTRAN header file in the HDF3.3r4 release. # 02-Aug-1995 MES Patches to make netcdf section build on the cray. # 19-Sep-1995 MES Don't remove tar file unless it was just generated # by uncompressing the distribution file. # Recognize the -sgi64 option. # 31-Oct-1995 MES Recognize the -sgi32 option. # Various tweaks to sgi hanlding. # 01-Nov-1995 MES More tweaks to sgi hanlding. # Add option handling for -f90, but don't implement yet. # 02-Nov-1995 MES Add -fc_path and -cc_path options, but don't implement. # 06-Nov-1995 MES Fix bug in NCSA-supplied FORTRAN header file: dffunc.inc # 21-Nov-1995 MES Set default installation directory to: # `pwd`/hdf/$BRAND # to facilitate multi-platform installations. # 23-Apr-1996 MES Converted from csh to sh and rewrote to use # sh features, such as functions. # Removed version-specific code - it will now # go in modules that will allow multiple versions # of HDF to be supported, and facilitate maintenance # of this file. Currently this script can call # modules to install either 3.3r4 or 4.0r1p1, # however only 4.0r1p1 installation will be supported # by the Release A version of the SDP Toolkit. # 26-Apr-1996 MES Updated SetArchitecture() to set CC CFLAGS and F77 # for all platforms # 22-Aug-1996 MES Updated to add support for support HDF4.0r2 # - added function UserCompilers to implement the # -cc_path and -fc_path options. # - updated GetDistribution to recognize HDF4.0r2.tar.gz # and HDF4.0r2.tar.Z distribution files. # - updated UnpackDistribution to support .gz files, # assuming the GNU version of zcat is available. # - added function GnuZcat to attempt to determine # if GNU zcat is available. # - added the -df option so the user may pass in the # name of the distribution file (currently defaults # to HDF4.0r2.tar.Z). # - added code to pass the -set_compilers option to # INSTALL-HDF4.0r2 when default compilers must be # overridden. # 04-Sep-1996 MES Add the -strip option # 15-Apr-1997 DaW Modified flags for Power Challenge. Added support # for old 32-bit mode on Power Challenge # But it is not documented because SGI is going to remove # soon. # 24-Jun-1998 MEDS Updating script to include new tar file for version # HDF4.1r1.1 in the distribution list # 24-Jul-1999 MEDS Updating script to include new tar file for version # HDF4.1r3 in the distribution list # 04-18-2001 AT Updataed so that f90 can be used for FORTRAN compiler # since starting with HDF4.1r2 release f90 is supported # 16-Jan-2002 PTN Updating script to include new tar file for version # HDF4.1r5 in the distribution list # 16-Mar-2004 AA Updating script to include new tar file for version # HDF4.2r0 in the distribution list. # 06-Jul-2005 AA Updating script to include new tar file for version # HDF4.2r1 in the distribution list. # 06-Jul-2007 AT Updating script to include new tar file for version # HDF4.2r2 in the distribution list. # 09-Jan-2008 AT Updating script to include new tar file for version # HDF4.2r3 in the distribution list. # 09-May-2009 AT Updating script to include new tar file for version # HDF4.2r4 in the distribution list. # 20-Jul-2010 AT Updating script to include new tar file for version # hdf-4.2.5 in the distribution list. # 16-Nov-2011 AT Updating script to include new tar file for version # hdf-4.2.6 in the distribution list. # #----------------------------------------------------------------------------- # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir="`cd $script_dir;pwd`" fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { echo "" echo "$*" if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "$*" >> $log_file fi } # # Function to output message to logfile and console # EchoAndLog2() { echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to set up and export the following architecture-specific variables: # # BRAND HOST LOGNAME OSTYPE PATH USER # SetArchitecture() { # set path to a base subset of directories, allowing startup on unknown host # note: once the architecture has been determined the path is customized PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11 # get operating system type, login name # special cases: SCO and Cray - uname works differently, machine=`uname -m | awk '{print $1}'` # needed on Cray & SCO temp_ostype=`uname` case "$machine" in i386 ) # SCO box OSTYPE=sco386 ;; CRAY ) # CRAY OSTYPE=UNICOS ;; * ) # everybody else OSTYPE=`uname` ;; esac # Intel Macintosh is also i386 or i686 (?) machine if [ "$machine" = "i386" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "i686" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel fi if [ "`uname | awk -F_ '{print $1}'`" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$machine" = "x86_64" ] || [ "$machine" = "ia64" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel if [ "$MAC_BRAND" = "" ] ; then echo " Error: In 64-bit MAC platform the env. variable MAC_BRAND must be set to mac32 or mac64 before running this script." exit 1 fi else if [ "$LINUX_BRAND" = "" ] ; then echo " Error: In 64-bit linux platform the env. variable LINUX_BRAND must be et to linux32 or linux64 before running this script." exit 1 fi fi fi user=`id | cut -d\( -f2 | cut -d\) -f1` if [ "$LOGNAME" = "" ] ; then # make sure $LOGNAME is defined LOGNAME=$user fi USER=$LOGNAME # make sure $USER is defined # set machine-depdoneent environment variables: # HOST the host name of this machine # BRAND used by other achitecture-specific code # path the execution search path exported to PATH case "$OSTYPE" in AIX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname` BRAND=ibm CC=cc CFLAGS="-O" F77=xlf ;; HP-UX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11 HOST=`hostname` BRAND=hp CC=cc CFLAGS="-O" F77=fort77 ;; IRIX ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` BRAND=sgi CC=cc CFLAGS="-O" F77=f77 ;; IRIX64 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bsd:/usr/bin/X11:/usr/sbin HOST=`hostname` case "$sgi_mode" in 32 ) BRAND=sgi ; CC="cc -32 -mips2" ; F77="f77 -32 -mips2" ;; n32 ) BRAND=sgi32 ; CC="cc -n32 -mips3" ; F77="f77 -n32 -mips3" ;; 64 ) BRAND=sgi64 ; CC="cc -64 -mips4" ; F77="f77 -64 -mips4" ;; * ) BRAND=sgi ; CC="cc" ; F77="f77" ;; esac CFLAGS="-O" set_compilers=0 # override HDF default compilers ;; Linux ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST=`hostname -s` BRAND=linux if [ "$LINUX_BRAND" = "linux64" ] ; then BRAND=linux64 elif [ "$LINUX_BRAND" = "linux32" ] ; then BRAND=linux32 fi CC="gcc $LNX_COMP_FLAG" CFLAGS="-O" F77="g77 $LNX_COMP_FLAG" ;; Darwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintosh CC=gcc CFLAGS="-O" F77=g77 ;; DarwinIntel ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname -s` BRAND=macintel32 if [ "$MAC_BRAND" = "macintel64" ] ; then BRAND=macintel64 elif [ "$MAC_BRAND" = "macintel32" ] ; then BRAND=macintel32 fi CC="gcc $MACINTEL_COMP_FLAG" CFLAGS="-O2" F77="gfortran $MACINTEL_COMP_FLAG" ;; Cygwin ) PATH=/bin:/sbin:/usr/bin:/usr/sbin HOST=`hostname` BRAND=cygwin CC=gcc CFLAGS="-O" F77=g77 ;; OSF1 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/ccs/bin:/usr/sbin HOST=`hostname -s` BRAND=dec CC=cc CFLAGS="-O -std" F77=f77 ;; sco386 ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bin/X11 HOST=`hostname -s` BRAND=sco CC=cc CFLAGS="-O" F77=f77 ;; SunOS ) # distinguish between SunOS 5.x and 4.x versions if [ `uname -r | awk -F. '{print $1}'` = "5" ] ; then BRAND="sun5" # release V5.x SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/bin:/usr/ucb:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/ccs/bin:/usr/sbin CC=cc CFLAGS="-O" F77=f77 if [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 10" ] ; then BRAND="sun5.10" # release V510 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin CC=cc CFLAGS="-O" F77=f77 elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 9" ] ; then BRAND="sun5.9" # release V5.9 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin CC=cc CFLAGS="-O" F77=f77 elif [ "`uname -r | awk -F. '{print $1, $2}'`" = "5 8" ] ; then BRAND="sun5.8" # release V5.8 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/openwin/bin:/usr/openwin/demo:/usr/ccs/bin:/usr/sbin CC=cc CFLAGS="-O" F77=f77 fi else BRAND="sun4" # release V4 SunOS PATH=/usr/local/bin:/opt/SUNWspro/bin:/bin:/usr/bin:/etc:/ PATH=/usr/local/bin:/usr/local/lang:/usr/lang:/usr/ucb:/bin:/usr/bin:/etc:/usr/etc:/usr/openwin/bin:/usr/openwin/demo CC=acc CFLAGS="-O" F77=f77 set_compilers=1 # override HDF4.0r2 default compilers fi HOST=`hostname` ;; UNICOS ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/ucb:/usr/bin/X11 HOST=`hostname` BRAND=cray CC=cc CFLAGS="-O" F77=cf77 ;; * ) echo "Operating system: $OSTYPE not supported" >&2 echo "This release of the Toolkit and hdfeos supports: " >&2 echo " Sun, SGI HP-9000 IBM-6000 DEC-Alpha Linux Macintosh and Cray/Unicos " >&2 exit 1 ;; esac # if debug version was requested replace -O with -g in CFLAGS if [ "$dbug" = "1" ] ; then CFLAGS=`echo $CFLAGS | sed 's/-O/-g/'` fi CFLAGS="$CFLAGS $EXT_CC_FLAGS" # export the architecture-specific variables export BRAND HOST LOGNAME OSTYPE PATH USER export CC CFLAGS F77 } # # Function to allow user to override the defaults for the compilers # The following variables are affected: # # PATH CC F77 # UserCompilers() { # # check to see if valid C compiler path was specified # cc="" if [ "$cc_path" != "" ] ; then if [ -f $cc_path ] ; then cc=`basename $cc_path` cc_path=`echo $cc_path | sed 's%/[^/]*/*$%%'` case "$BRAND" in "sgi32" ) CC="$cc_path/$cc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then CC="$cc_path/$cc -64 -mips3" else CC="$cc_path/$cc -64 -mips4" fi ;; "linux" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux32" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "linux64" ) CC="$cc_path/$cc $LNX_COMP_FLAG" ;; "macintel" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel32" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; "macintel64" ) CC="$cc_path/$cc $MACINTEL_COMP_FLAG" ;; * ) CC="$cc_path/$cc" ;; esac export CC # user overrides C compiler name set_compilers=1 # override HDF default compilers fi if [ -d $cc_path ] ; then # make sure cc_path is now a directory PATH=${cc_path}:${PATH} # prepend cc_path to search path export PATH else cc_path="" echo "Warning: C compiler directory $cc_path not found." echo "HDF build may fail." fi fi # # check to see if valid FORTRAN compiler path was specified # fc="" if [ "$fc_path" != "" ] ; then if [ -f $fc_path ] ; then fc=`basename $fc_path` fc_path=`echo $fc_path | sed 's%/[^/]*$%%'` case "$BRAND" in "sgi32" ) F77="$fc_path/$fc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then F77="$fc_path/$fc -64 -mips3" else F77="$fc_path/$fc -64 -mips4" fi ;; "linux" ) if [ "$fc" == "pgf90" ] || [ "$fc" == "pgf77" ] ; then F77="$fc_path/$fc" else F77="$fc_path/$fc $LNX_COMP_FLAG" fi ;; "linux32" ) if [ "$fc" == "pgf90" ] || [ "$fc" == "pgf77" ] ; then F77="$fc_path/$fc" else F77="$fc_path/$fc $LNX_COMP_FLAG" fi ;; "linux64" ) if [ "$fc" == "pgf90" ] || [ "$fc" == "pgf77" ] ; then F77="$fc_path/$fc" else F77="$fc_path/$fc $LNX_COMP_FLAG" fi ;; "macintel" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel32" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; "macintel64" ) F77="$fc_path/$fc $MACINTEL_COMP_FLAG" ;; * ) F77="$fc_path/$fc" ;; esac # if [ "$fc" != f90 ] ; then # (f90 not supported for HDF4.1r1) # f90 is supported starting with the HDF4.1r2 release export F77 # user overrides FORTRAN compiler name set_compilers=1 # override HDF default compilers # fi fi if [ -d $fc_path ] ; then # make sure fc_path is now a directory PATH=${fc_path}:${PATH} # prepend fc_path to search path export PATH else fc_path="" echo "Warning: FORTRAN directory $fc_path not found." echo "HDF build may fail." fi fi } # # Function to get the location of the distribution file # GetDistribution() { : ${distrib_file:=hdf-4.2.6.tar.gz} ds1=$distrib_file # backup copy # derive tar file name case "$distrib_file" in 4.1r3_aix.tar ) tar_file=4.1r3_aix.tar hdf_home=4.1r3_aix ;; HDF3.3r4.tar.Z ) tar_file=HDF3.3r4.tar hdf_home=HDF3.3r4 ;; HDF4.1r1.tar.gz ) tar_file=HDF4.1r1.tar hdf_home=HDF4.1r1 ;; HDF4.1r1.tar.Z ) tar_file=HDF4.1r1.tar hdf_home=HDF4.1r1 ;; HDF4.1r1.1.tar.Z ) tar_file=HDF4.1r1.1.tar hdf_home=HDF4.1r1 ;; HDF4.1r3.tar.Z ) tar_file=HDF4.1r3.tar hdf_home=HDF4.1r3 ;; hdf4.1r4.tar.Z ) tar_file=hdf4.1r4.tar.Z hdf_home=hdf4.1r4 ;; HDF4.1r5.tar.Z ) tar_file=HDF4.1r5.tar hdf_home=HDF4.1r5 ;; HDF4.2r0.tar.Z ) tar_file=HDF4.2r0.tar hdf_home=HDF4.2r0 ;; HDF4.2r1.tar.Z ) tar_file=HDF4.2r1.tar hdf_home=HDF4.2r1 ;; HDF4.2r2.tar.gz ) tar_file=HDF4.2r2.tar hdf_home=HDF4.2r2 ;; HDF4.2r3.tar.gz ) tar_file=HDF4.2r3.tar hdf_home=HDF4.2r3 ;; HDF4.2r4.tar.gz ) tar_file=HDF4.2r4.tar hdf_home=HDF4.2r4 ;; hdf-4.2.5.tar.gz ) tar_file=hdf-4.2.5.tar hdf_home=hdf-4.2.5 ;; hdf-4.2.6.tar.gz ) tar_file=hdf-4.2.6.tar hdf_home=hdf-4.2.6 ;; HDF4.0r2.tar.gz ) tar_file=HDF4.0r2.tar hdf_home=HDF4.0r2 ;; HDF4.0r2.tar.Z ) tar_file=HDF4.0r2.tar hdf_home=HDF4.0r2 ;; HDF4.0r1p1.tar.Z ) tar_file=HDF4.0r1p1.tar hdf_home=40r1p1_patchedsrc ;; 40r1p1_patchedsrc.tar.Z ) tar_file=40r1p1_patchedsrc.tar hdf_home=40r1p1_patchedsrc ;; * ) EchoAndLog "HDF version in $distrib_file not supported by this script." exit 1 ;; esac # set search path to include current dir, parent of current and $HOME search_path=`pwd` search_path="$search_path `cd ..; pwd` $HOME" # set search file to include compressed tar file and uncompressed tar file search_file="$distrib_file $tar_file" # search for the distribution file found_file=0 for distrib_path in $search_path ; do for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done if [ $found_file = 1 ] ; then break fi done # if file was not found, ask the user if [ $found_file = 0 ] ; then if [ $batch_mode = 0 ] ; then echo "" UserPrompt "Pathname where $ds1 is located: " echo "" else user_response="" fi if [ "$user_response" != "" ] ; then # make sure directory exists if [ -d $user_response ] ; then distrib_path=$user_response else WriteError "Invalid directory: $user_response" exit 1 fi # search for the distribution file in user directory for distrib_file in $search_file ; do if [ -f ${distrib_path}/${distrib_file} ] ; then found_file=1 break fi done fi fi if [ $found_file = 0 ] ; then WriteError "Can't find ${ds1} in (${search_path})" echo "HDF installation cancelled." exit 1 fi } # # Function to get the location of the HDF home directory for installation # Also, prompt user that all information is valid before proceeding # GetInstallDir() { default_HDF_path="`pwd`/hdf/$BRAND" if [ "$HDF_path" = "" ] ; then HDF_path="`pwd`/hdf/$BRAND" fi # ask the user if [ $batch_mode = 0 ] ; then UserPrompt "Pathname where directory '$hdf_home' will be created [$HDF_path]: " echo "" else user_response="" fi if [ "$user_response" = "" ] ; then if [ ! -d `dirname $HDF_path` ] ; then mkdir `dirname $HDF_path` ; fi if [ ! -d $HDF_path ] ; then mkdir $HDF_path ; fi else if [ -d "$user_response" ] ; then HDF_path=$user_response ; fi fi if [ ! -d $HDF_path ] ; then if [ $batch_mode = 0 ] ; then UserPrompt "$HDF_path does not exist. Create [y]? " else user_response=y fi if [ "$user_response" = "" ] ; then user_response="y" ; fi case "$user_response" in y* | Y* ) mkdir -p $HDF_path if [ ! -d $HDF_path ] ; then WriteError "Unable to create directory $HDF_path." echo "HDF installation cancelled." 2>&1 exit 1 fi ;; *) WriteError "Directory $HDF_path does not exist." echo "HDF installation cancelled." 2>&1 exit 1 ;; esac fi # # confirm Configuration with SZIP before proceeding # # ask the user if [ $batch_mode = 0 ] ; then EchoAndLog2 "Note:" EchoAndLog2 "If you configure HDF4 with szip you may need to add szip" EchoAndLog2 "library to your application makefiles that use HDF4. If" EchoAndLog2 "you do not configure HDF4 with szip you will not be able" EchoAndLog2 "to use HDF4's SZIP compression encoding or decoding (or" EchoAndLog2 "both) capabilties for HDF4 files, and you may not be able" EchoAndLog2 "to read HDF files that has szip compressed fields." UserPrompt "Do you wish to configure HDF4 with SZIP[y]: " echo "" else user_response=y fi case "$user_response" in n* | N* ) EchoAndLog "---- HDF4 will be configured without SZIP.----" CONFIG_HDF4_WITH_SZIP="0" ;; *) EchoAndLog "---- HDF4 will be configured with SZIP.----" CONFIG_HDF4_WITH_SZIP="1" ;; esac export CONFIG_HDF4_WITH_SZIP # # confirm before proceeding # echo "The HDF directory will be restored from: " echo " ${distrib_path}/${distrib_file}" echo "" echo "The HDF directory will be created in: " echo " ${HDF_path}" echo "" if [ $batch_mode = 0 ] ; then UserPrompt "Continue [yes] ? " case "$user_response" in n* | N* ) echo "Cancelled." ; exit 1 ;; * ) echo "Confirmed." ; echo "" ;; esac fi # # For linux create soft links if default HDF installation directory is used # save_dir="`pwd`" if [ "`pwd`/hdf/$BRAND" = "$default_HDF_path" ] ;then if [ "$BRAND" = "linux64" ] ; then cd ${default_HDF_path}/.. current_path="`pwd`" EchoAndLog "64-bit structure is the default in this machine. Creating $current_path/linux as a soft link to $default_HDF_path" ln -s ./linux64 linux cd $save_dir fi if [ "$BRAND" = "linux" ] ; then cd ${default_HDF_path}/.. current_path="`pwd`" EchoAndLog "32-bit structure is the default in this machine. Creating $current_path/linux32 as a soft link to $default_HDF_path" ln -s ./linux linux32 cd $save_dir fi fi # # For macintel create soft links if default HDF installation directory is used # save_dir="`pwd`" if [ "`pwd`/hdf/$BRAND" = "$default_HDF_path" ] ;then if [ "$BRAND" = "macintel32" ] ; then cd ${default_HDF_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel as a soft link to $default_HDF_path" ln -s ./macintel32 macintel cd $save_dir fi if [ "$BRAND" = "macintel" ] ; then cd ${default_HDF_path}/.. current_path="`pwd`" EchoAndLog "macintel32 directories will be soft linked to macintel. Creating $current_path/macintel32 as a soft link to $default_HDF_path" ln -s ./macintel macintel32 cd $save_dir fi fi } # # Function to unpack the distribution file into the installation directory # UnpackDistribution() { # # Go to the HDF parent directory # cd $HDF_path # # If the new HDF home directory already exits, it must # be removed first. Check with the user before proceeding. # if [ -d "$hdf_home" ] ; then EchoAndLog "The directory $hdf_home already exists." if [ $batch_mode = 0 ] ; then UserPrompt "Replace it [no] ? " else user_response=y fi case "$user_response" in y* | Y* ) EchoAndLog "Removing old $hdf_home directory ..." /bin/rm -rf $hdf_home ;; * ) EchoAndLog "Cancelled." exit 1 ;; esac fi # # Create a link to the distribution file, if necessary. # link_flag=0 if [ ! -f $distrib_file ] ; then if [ -f ${distrib_path}/${distrib_file} ] ; then ln -s ${distrib_path}/${distrib_file} ${distrib_file} link_flag=1 fi fi # # Uncompress the distribution file, (if needed), and extract the files # EchoAndLog "Extracting files from $distrib_file ..." suffix="`echo $distrib_file | sed 's/^.*\.//'`" case $suffix in Z ) zcat $distrib_file | tar xvf - echo "" ;; gz ) gzip -cd $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 # GnuZcat # if [ $gnu_zcat != 1 ] ; then # WriteError "You need the GNU version of zcat to unpack this file." # exit 1 # fi # zcat $distrib_file | tar xvf - | awk '{printf "."}' 2>&1 echo "" ;; tar) echo $distrib_file tar -xvf $distrib_file | awk '{printf "."}' 2>&1 echo "" ;; esac # # Clean up symbolic link, if present # if [ $link_flag = 1 ] ; then /bin/rm -f $distrib_file fi } # # See if zcat is GNU version # GnuZcat() { if [ "$1" = "" ] ; then zcat_cmd=zcat else zcat_cmd=$1 fi buf=`exec 2>&1; $zcat_cmd < /dev/null | tail -1` buf=`echo $buf | awk -F: '{print $1}'` case "$buf" in zcat) gnu_zcat=1 ;; * ) gnu_zcat=0 ;; esac } # # Strip all HDF distribution files not needed after installation. # StripHdfInstall() { cd $HDFHOME here=`pwd` here=`basename $here` # # Make sure this is a valid HDF directory befor clobbering files ! # if [ "`echo $here | grep '^HDF'`" = "" ] ; then EchoAndLog "Not a valid HDF directory: no files removed." else EchoAndLog "Removing all non-installation HDF files ..." for file in * ; do if [ -d "$file" ] ; then case "$file" in bin | lib | include | man ) ;; * ) rm -rf $file ;; esac else rm -f $file fi done fi } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # log_file="" home_file="" noquery=0 clean=0 cleano=0 strip_install=0 append=0 no_untar=0 sgi_mode=32 f90_flag=0 nag_flag=0 absoft_flag=0 fc_path="" cc_path="" distrib_file="" set_compilers=0 dbug=0 HDF_path="" batch_mode=0 while [ "$1" != "" ] ; do case "$1" in -h ) Help ;; -f90 ) f90_flag=1 ;; -NAG ) if [ $f90_flag = 0 ] ; then WriteError "Must first specify -f90 and set compiler path." Help else nag_flag=1 fi ;; -ABSOFT ) absoft_flag=1 ;; -fc_path ) fc_path="$2" shift ;; -cc_path ) cc_path="$2" shift ;; -df) distrib_file="$2" shift ;; -sgi32 ) sgi_mode=n32 ;; -sgi64 ) sgi_mode=64 ;; -log ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then log_file="$2" else log_file="$start_dir/$2" fi shift else WriteError "A log file must be specified with the -log option." Help fi ;; -append ) append=1 ;; -w_home ) if [ "$2" != "" ] ; then if [ "` echo $2 | cut -c1`" = "/" ] ; then home_file="$2" else home_file="$start_dir/$2" fi shift else WriteError "No file specified with -w_home switch." Help fi ;; -nq | -noquery ) noquery=1 ;; -clean ) clean=1 ;; -cleano ) cleano=1 ;; -strip ) strip_install=1 ;; -no_untar ) no_untar=1 ;; -dbug ) dbug=1 ;; -install_dir ) if [ "$2" != "" ] ; then HDF_path=$2 shift else WriteError "No installation directory specified with -install_dir switch." Help fi ;; -batch ) batch_mode=1 ;; * ) echo "$script_error invalid argument '$1'" Help ;; esac shift done # # Inititialize log file # if [ "$log_file" != "" ] ; then if [ "$append" = "0" ] ; then if [ -f "$log_file" ] ; then /bin/rm -f $log_file > /dev/null 2>&1 fi fi touch $log_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $log_file" exit 1 fi echo "" echo "`basename $0`: session output will go to file: " echo "" echo " $log_file" echo "" fi export log_file # # Initialize the home file # if [ "$home_file" != "" ] ; then if [ -f "$home_file" ] ; then /bin/rm -f $home_file > /dev/null 2>&1 fi touch $home_file > /dev/null 2>&1 if [ $? != 0 ] ; then WriteError "Cannot write to file $home_file" exit 1 fi fi # # Set architecture-specific variables # SetArchitecture # # Set user compiler overrides # UserCompilers # # Get the location of the distribution file # GetDistribution # # Got valid distribution file # Get the location of the HDF home directory for installation # GetInstallDir # # Write the log file header # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "HDF installation starting at: `date`" >> $log_file echo "host: $HOST type: $BRAND user: $USER " >> $log_file echo "" >> $log_file echo "" >> $log_file echo "The HDF directory will be restored from: " >> $log_file echo " ${distrib_path}/${distrib_file}" >> $log_file echo "" >> $log_file echo "The HDF directory will be created in: " >> $log_file echo " ${HDF_path}" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo "" >> $log_file fi # # Unpack the distribution file into the installation directory # cd $HDF_path if [ "$no_untar" = 0 ] ; then UnpackDistribution fi # # Prepare to install the requested version of HDF # if [ ! -d $hdf_home ] ; then EchoAndLog "Error creating directory: $hdf_home" exit 1 fi cd $hdf_home # go to the starting directory hdf_install_caller="$this_script" # set caller flag for sub-modules export hdf_install_caller # # Set the version to be installed # install_script="" install_options="" case $hdf_home in HDF3.3r4 ) # HDF 3.3 release 4 HDFHOME=${HDF_path}/${hdf_home} ; export HDFHOME install_script="$script_dir/INSTALL-HDF3.3r4" ;; HDF4.0r1p1 | 40r1p1_patchedsrc ) # HDF 4.0 release 1, patch level 1 HDFHOME=${HDF_path}/HDF4.0r1p1 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.0r1p1" ;; HDF4.0r2 ) # HDF 4.0 release 2 HDFHOME=${HDF_path}/HDF4.0r2 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.0r2" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi ;; HDF4.1r1 ) # HDF 4.1 release 1 HDFHOME=${HDF_path}/HDF4.1r1 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.1r1" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; 4.1r3_aix ) # HDF 4.1 release 1 HDFHOME=${HDF_path}/4.1r3_aix; export HDFHOME install_script="$script_dir/INSTALL-4.1r3_aix" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; HDF4.1r3 ) # HDF 4.1 release 3 HDFHOME=${HDF_path}/HDF4.1r3 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.1r3" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; hdf4.1r4 ) # HDF 4.1 release 4 HDFHOME=${HDF_path}/hdf4.1r4 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.1r4" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; HDF4.2r0 ) # HDF4.2 release 0 HDFHOME=${HDF_path}/HDF4.2r0 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.2r0" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; HDF4.2r1 ) # HDF4.2 release 1 HDFHOME=${HDF_path}/HDF4.2r1 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.2r1" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; HDF4.2r2 ) # HDF4.2 release 2 HDFHOME=${HDF_path}/HDF4.2r2 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.2r2" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; HDF4.2r3 ) # HDF4.2 release 3 HDFHOME=${HDF_path}/HDF4.2r3 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.2r3" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; HDF4.2r4 ) # HDF4.2 release 4 HDFHOME=${HDF_path}/HDF4.2r4 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.2r4" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; hdf-4.2.5 ) # HDF4.2 release 5 HDFHOME=${HDF_path}/hdf-4.2.5 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.2r5" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; hdf-4.2.6 ) # HDF4.2 release 6 HDFHOME=${HDF_path}/hdf-4.2.6 ; export HDFHOME install_script="$script_dir/INSTALL-HDF4.2r6" if [ $set_compilers = 1 ] ; then install_options="-set_compilers" fi if [ $dbug = 1 ] ; then install_options="$install_options -dbug" fi install_options="$install_options -start_dir ${HDFHOME}" ;; * ) # unsupported EchoAndLog "$hdf_home installation is not supported by this script." exit 1 ;; esac # # Run the install script # if [ ! -f $install_script ] ; then EchoAndLog "Can't find $install_script - installation failed." exit 1 fi $install_script $install_options if [ $? != 0 ] ; then EchoAndLog "$hdf_home Installation failed." exit 1 fi # # Starting with HDF4.1r3 internally used structures are put in vgint.h file. # Some users are using this file in their code. Since it is not copied # automatically fro hdf/src to include directories, we will do it here. # if [ -f ${HDFHOME}/include/vgint.h ] ; then echo " " echo " File ${HDFHOME}/include/vgint.h already exist." echo " " else echo " " echo " Copying File ${HDFHOME}/hdf/src/vgint.h to ${HDFHOME}/include/vgint.h." echo " " /bin/cp ${HDFHOME}/hdf/src/vgint.h ${HDFHOME}/include/vgint.h fi # # Pass back the HDF install directory for the hdfeos installation # if [ "$home_file" != "" ] ; then echo $HDFHOME >> $home_file fi # # Clean up # cd $HDF_path if [ "$clean" = 1 ] ; then for dir in $HDFHOME/hdf $HDFHOME/mfhdf ; do cd $dir echo "Cleaning up in $dir ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Cleaning up in $dir ..." >> $log_file echo "" >> $log_file make clean >> $log_file 2>&1 else make clean fi done fi if [ "$cleano" = 1 ] ; then cd $HDFHOME echo "Removing any remaining object files ..." if [ "$log_file" != "" ] ; then echo "" >> $log_file echo "Removing any remaining object files ..." >> $log_file echo "" >> $log_file find . -name \*.o -print -exec rm -f {} \; >> $log_file 2>&1 find . -name a.out -print -exec rm -f {} \; >> $log_file 2>&1 else find . -name \*.o -print -exec rm -f {} \; find . -name a.out -print -exec rm -f {} \; fi fi if [ "$strip_install" = 1 ] ; then StripHdfInstall fi echo "------------------------------------------------------------" echo "" echo " HDF installation ending at: `date` " echo "" echo "------------------------------------------------------------" # # Write the log file trailer # if [ "$log_file" != "" ] ; then echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file echo " HDF installation ending at: `date`" >> $log_file echo "" >> $log_file echo "------------------------------------------------------------" >> $log_file echo "" >> $log_file fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-Scripts/INSTALL-HDF4.2r60000755000175000017500000006254412024715435023074 0ustar amckinstryamckinstry#! /bin/sh #----------------------------------------------------------------------------- # filename: # INSTALL-HDF4.2r6 # # description: # Installation script module for installing HDF 4.2 release 6 # for the SDP (PGS) Toolkit and hdfeos. # It implements patches to the NCSA # installation procedure to allow for trouble-free installation on # the platforms supported by the SDP (PGS) Toolkit and hdfeos. # # usage: # Called from INSTALL-HDF # # INSTALL-HDF4.2r6 [-dbug] # INSTALL-HDF4.2r6 -h[elp] # # -h : display this help message and exit # -dbug : install debug version of HDF # # notes: # This is NOT a standalone script. It is only intended to be run # by INSTALL-HDF, the HDF installation script. # # author: # Mike Sucher / Applied Research Corp. # # history: # 23-Apr-1996 MES Initial version (file: INSTALL-HDF4.0r1) # 26-Apr-1996 MES Updated PreConfigure compiler logic. # 02-Jul-1996 MES Updated to handle SunOS 5.5 # 19-Aug-1996 MES Updated for HDF4.0r2 (file: INSTALL-HDF4.0r2) # 23-Sep-1996 MES Added patch to hdfi.h on dec to avoid potential # conflict with . # 19-Aug-1996 MES Updated for HDF4.1r3 (file: INSTALL-HDF4.1r3) # 05-Oct-2000 AT for machine HP-11 the xdr library libnsl.a needs to be # loaded as for the SOLARIS. Added code to edit mh-hpux # file in config directory to include the load flag -lnsl # 15-Aug-2001 AA Updated for HDF4.1r5 (file: INSTALL-HDF4.1r5) # 16-Mar-2004 AA Updated for HDF4.2r0 (file: INSTALL-HDF4.2r0) # 8-Sep-2005 AT Updated for HDF4.2r1 (file: INSTALL-HDF4.2r1) # 5-Jul-2007 AT Updated for HDF4.2r2 (file: INSTALL-HDF4.2r2) # 9-Jan-2008 AT Updated for HDF4.2r3 (file: INSTALL-HDF4.2r3) # 9-MAY-2009 AT Updated for HDF4.2r4 (file: INSTALL-HDF4.2r4) # 20-Jul-2010 AT Updated for hdf-4.2.5 (file: INSTALL-HDF4.2r5) # 20-Jul-2010 AT Updated for hdf-4.2.6 (file: INSTALL-HDF4.2r6) # #----------------------------------------------------------------------------- # # # Save starting directory, path # Create error message header # start_dir=`pwd` start_path=$PATH this_script="`basename $0`" script_error="$this_script: Error:" # # Get absolute pathname where this script is located # This allows the script to locate any needed auxilliary files # script_dir="`dirname $0`" abs="`echo $script_dir | cut -c1`" if [ "$abs" != "/" ] ; then script_dir=`cd $script_dir;pwd` fi #**************************************************************** # * # * * * Functions * * * * # * #**************************************************************** # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function to output message to logfile and console # EchoAndLog() { if [ "$1" = "-n" ] ; then # -n: suppress leading blank line shift else echo "" if [ "$log_file" != "" ] ; then echo "" >> $log_file fi fi echo "$*" if [ "$log_file" != "" ] ; then echo "$*" >> $log_file fi } # # Function to prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to silently emulate the 'which' command # Which() { if [ "$1" = "" ] ; then WriteError "Which() : Too few arguments." exit 1 fi saveifs="$IFS" IFS=: which_result=0 which_cmd="" for dir in $PATH; do if [ -x $dir/$1 ] ; then which_result=1 which_cmd=$dir/$1 break fi done IFS="$saveifs" } PreConfigJPEGFixes_dec() { cd $start_dir EchoAndLog "Pre-configure JPEG fixes for $BRAND ... " echo " " file=$start_dir/configure jpeglib=$JPEGLIB/libjpeg.a if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi sed 's^-ljpeg ^$JPEGLIB/libjpeg.a ^g' $file.ncsa.default > $file /bin/chmod 0755 $file /bin/rm -f $file.ncsa.default cd $start_dir } # # Function to implement debug version of hdf libraries # PreConfigFixes_dbug() { cd $start_dir EchoAndLog "Pre-configure for debug ... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to change the compilers. To get around this, we edit the # file config/ to comment out the offending lines that get # get included in the Makefile generated by configure. # cd $start_dir/config case $BRAND in cray ) file=mh-unicos; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; dec ) file=mh-alpha; c_opt='-Olimit 2048'; c_dbug='-g'; f_opt='='; f_dbug='= -g'; ;; hp ) file=mh-hpux; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; ibm ) file=mh-aix; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; linux ) file=mh-linux; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; linux32 ) file=mh-linux; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; linux64 ) file=mh-linux; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; macintosh ) file=mh-mac; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; macintel ) file=mh-mac; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; macintel32 ) file=mh-mac; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; macintel64 ) file=mh-mac; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; cygwin ) file=mh-cygwin; c_opt='-ansi'; c_dbug='-ansi -g'; f_opt='='; f_dbug='= -g'; ;; sgi ) file=mh-irix32; if [ "$OSTYPE" = "IRIX" ] ; then file=mh-irix5; fi c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sgi32 ) file=mh-irix32; c_opt='-O' c_dbug='-g'; f_opt='-O' f_dbug='-g'; ;; sgi64 ) file=mh-irix6; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun4 ) file=mh-sun; c_opt='-O'; c_opt='-O'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun5 ) file=mh-solaris; c_opt='-xO2'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun5.8 ) file=mh-solaris; c_opt='-xO2'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun5.9 ) file=mh-solaris; c_opt='-xO2'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; sun5.10 ) file=mh-solaris; c_opt='-xO2'; c_dbug='-g'; f_opt='-O'; f_dbug='-g'; ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | sed "/^CFLAGS/s/$c_opt/ $c_dbug/" | sed "/^FFLAGS/s/$f_opt/ $f_dbug/" | cat > $file.ncsa mv $file.ncsa $file cd $start_dir } # # Function to implement pre-configure installation fixes for linux # PreConfigFixes_linux() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND ... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to change the compilers. To get around this, we edit the # file config/ to comment out the offending lines that # get included in the Makefile generated by configure. # cd $start_dir/config mv mh-linux mh-linux.ncsa sed 's/f77/g77/g' mh-linux.ncsa > mh-linux cd $start_dir } # # Function to implement pre-configure installation fixes for macintosh # PreConfigFixes_macintosh() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND ... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to change the compilers. To get around this, we edit the # file config/ to comment out the offending lines that # get included in the Makefile generated by configure. # cd $start_dir/config mv mh-mac mh-mac.ncsa sed 's/f77/g77/g' mh-mac.ncsa > mh-mac cd $start_dir } PreConfigFixes_cygwin() { cd $start_dir/config cd $start_dir } # # Function to implement pre-configure installation fixes for sgi # PreConfigFixes_sgi() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND ... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to change the compilers. To get around this, we edit the # file config/ to comment out the offending lines that # get included in the Makefile generated by configure. # cd $start_dir/config if [ ! -f mh-irix6.ncsa ] ; then mv mh-irix6 mh-irix6.ncsa mv mh-irix32 mh-irix32.ncsa sed 's/n32/32/g' mh-irix32.ncsa > mh-irix32 mv mh-irix32 mh-irix32.ncsa sed 's/mips3/mips2/g' mh-irix32.ncsa > mh-irix32 mv mh-irix32 mh-irix6 fi cd $start_dir } # # Function to implement pre-configure installation fixes for sgi32 # PreConfigFixes_sgi32() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND ... " # # Return to starting directory # cd $start_dir } # # Function to implement pre-configure installation fixes for sgi64 # PreConfigFixes_sgi64() { cd $start_dir EchoAndLog "Pre-configure patching for $BRAND... " # # If the SGI is using old R4?00 chips then mips4 is # not supported, so force the use of mips3. # cd $start_dir/config if [ ! -f mh-irix6.ncsa ] ; then sed 's/mips4/mips3/g' mh-irix6 > mh-irix6.ncsa mv mh-irix6.ncsa mh-irix6 fi cd $start_dir } # # Function to implement pre-configure installation fixes for SunOs 4.x # PreConfigFixes_sun4() { cd $start_dir EchoAndLog "Pre-configure patching for SunOs `uname -r`... " # # Despite overrides in Makefile.in, the configure script steadfastly # tries to make gcc the default C compiler. To get around this we # edit the file config/mh-sun to comment out the offending lines that # get included in the Makefile generated by configure. # cd $start_dir/config if [ ! -f mh-sun.ncsa ] ; then mv mh-sun mh-sun.ncsa fi cat mh-sun.ncsa | sed '/^CC *=/s/^/#/' | sed '/^CFLAGS *=/s/^/#/' | cat > mh-sun cd $start_dir } # # Function to implement pre-configure installation fixes for SunOs 5.x # PreConfigFixes_sun5() { cd $start_dir EchoAndLog "Pre-configure patching for SunOs `uname -r`... " # # Return to starting directory # cd $start_dir } # # Function to implement pre-configure installation fixes for dec # PreConfigFixes_dec() { cd $start_dir/config EchoAndLog "Pre-configure patching for $BRAND... " # Modify mh-alpha to include math library for DEC-ALPHA # version 4.0 chmod 0755 * mv mh-alpha mh-alpha.ncsa sed 's/#LIBSX/LIBSX/g' mh-alpha.ncsa > mh-alpha mv mh-alpha mh-alpha.ncsa sed 's/FC = NONE/FC = f77/g' mh-alpha.ncsa > mh-alpha # # Return to starting directory # cd $start_dir } # # Function to implement post-configure installation fixes for dec # PostConfigFixes_dec() { cd $start_dir EchoAndLog "Post-configure patching for $BRAND... " cd $start_dir } # # Function to implement post-configure installation fixes for IBM AIX 4.2 # PostConfigFixes_ibm() { cd $start_dir/mfhdf/nctest EchoAndLog "Post-configure patching for IBM `uname -r`... " # Rename program error.c and edit the Makfile to reflect change # This version of AIX will not compile the program error.c # So I am changing the name so that HDF will install cp error.c dave.c chmod 0755 Makefile mv Makefile Makefile.ncsa sed 's/error.c/dave.c/g' Makefile.ncsa > Makefile mv Makefile Makefile.ncsa sed 's/error.o/dave.o/g' Makefile.ncsa > Makefile # # Return to starting directory # cd $start_dir } # # Function to implement post-configure installation fixes for SunOs 5.x # PostConfigFixes_sun5() { cd $start_dir EchoAndLog "Post-configure patching for SunOs `uname -r`... " cd $start_dir } # # Function to implement post-configure installation fixes for # platforms that do not have tbl or neqn # PostConfigFixes_NoTblNeqn() { # # Search the system for 'tbl' and 'neqn' # If either one is not found, set up a sed command to patch # Makefiles to use 'cat' instead # sed_cmd="cat" for util in tbl neqn ; do Which $util if [ "$which_result" = "0" ] ; then EchoAndLog "This system does not have the '$util' utility:" EchoAndLog -n "- setting up to use 'cat' instead" sed_cmd="$sed_cmd | sed 's/ $util/cat/g'" fi done # # Edit the Makefiles generated by configure, setting the values of # 'neqn' and 'tbl' to 'cat', as needed, so that man page installation # can proceed without fatal errors. Note: this may cause some # man pages to be improperly formatted. This only appears to # be a problem in the mfhdf section, so only those makefiles # are patched. # if [ "$sed_cmd" != cat ] ; then cd $start_dir/mfhdf files=`find . -name Makefile -print` for file in $files ; do mv $file $file.tmp eval "cat $file.tmp | $sed_cmd | cat > $file" done cd $start_dir fi } # # Function to set compilers, overriding the NCSA compiler defaults # SetCompilers() { # # Set C compiler based on value of $CC # Set C compilation flags based on value of $CFLAGS # Set FORTRAN compiler based on value of $F77 # # NOTE: # This is done recursively for ALL Makefiles because on some # platforms, the compiler variables are not inherited from the # the calling Makefile. EchoAndLog "Overriding NCSA default compiler settings:" files=`find . -name Makefile -print` if [ "$CC" != "" ] ; then if [ "$CFLAGS" = "" ] ; then EchoAndLog -n "- setting C compiler to '$CC'" EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | # sed '/^CC/s/=.*$'"/= $CC/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa cp $file.ncsa $file done else EchoAndLog -n "- setting C compiler to '$CC'" if [ "$CFLAGS" = "-O" ] ; then EchoAndLog -n "- setting C compilation flags to default" else EchoAndLog -n "- setting C compilation flags to '$CFLAGS'" fi EchoAndLog -n "- setting FORTRAN compiler to '$F77'" for file in $files ; do if [ ! -f $file.ncsa.default ] ; then mv $file $file.ncsa.default fi cat $file.ncsa.default | # sed '/^CC/s/=.*$'"/= $CC/" | # sed '/^CFLAGS/s/=.*$'"/= $CFLAGS/" | # sed '/^FC/s/=.*$'"/= $F77/" | cat > $file.ncsa cp $file.ncsa $file done fi else EchoAndLog "Warning: Environment variable(s) CC and/or F77 not set." EchoAndLog "If CC is not set, the installation uses NCSA defaults." fi } # # Function to do architecture-specific pre-configure fixes # PreConfigure() { cd $start_dir if [ "$dbug" = "1" ] ; then PreConfigFixes_dbug fi # # Call architecture-specific functions # case $BRAND in cray ) ;; dec ) PreConfigFixes_dec;; hp ) # for HP-11 add -lnsl if [ `uname -r | awk -F. '{print $2}'` = "11" ] ; then mv $install_dir/config/mh-hpux $install_dir/config/mh-hpux_tmp1 cat $install_dir/config/mh-hpux_tmp1 | sed '/^LD_XDR/s/=.*$'"/= -lnsl/" | cat > $install_dir/config/mh-hpux_tmp2 cp $install_dir/config/mh-hpux_tmp2 $install_dir/config/mh-hpux /bin/rm -f $install_dir/config/mh-hpux_tmp1 /bin/rm -f $install_dir/config/mh-hpux_tmp2 fi ;; ibm ) ;; linux ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_linux fi ;; linux32 ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_linux fi ;; linux64 ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_linux fi ;; macintosh ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_macintosh fi ;; macintel ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_macintosh fi ;; macintel32 ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_macintosh fi ;; macintel64 ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_macintosh fi ;; cygwin ) if [ ! -f /bin/f77 ] ; then PreConfigFixes_cygwin fi ;; sgi ) if [ "$OSTYPE" = "IRIX64" ] ; then PreConfigFixes_sgi fi ;; sgi32 ) config_flags=irix6_32;; sgi64 ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" = "4" ] ; then PreConfigFixes_sgi64 fi ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac cd $start_dir } # # Function to do architecture-specific post-configure fixes # PostConfigure() { cd $start_dir # # Check for missing tbl and neqn, patching as needed # PostConfigFixes_NoTblNeqn # # Do architecture-specific fixes # case $BRAND in cray ) ;; dec ) ;; hp ) ;; ibm ) PostConfigFixes_ibm;; linux ) ;; linux32 ) ;; linux64 ) ;; macintosh ) ;; macintel ) ;; macintel32 ) ;; macintel64 ) ;; cygwin ) ;; sgi ) ;; sgi32 ) ;; sgi64 ) ;; sun4 ) ;; sun5 ) ;; sun5.8 ) ;; sun5.9 ) ;; sun5.10 ) ;; * ) WriteError "Architecture $BRAND is not supported." exit 1 ;; esac # # If requested, set compilers to something other than the defaults # if [ $set_compilers = 1 ] ; then SetCompilers fi cd $start_dir } #**************************************************************** # * # * * * Main Program * * * * # * #**************************************************************** # # Get arguments from command line # set_compilers=0 config_flags="" dbug=0 while [ "$1" != "" ] ; do case "$1" in -h | help ) Help ;; -set_compilers ) set_compilers=1 ;; -dbug ) dbug=1 ;; -start_dir ) if [ "$2" != "" ] ; then start_dir=$2 shift else WriteError "No installation directory specified with -start_dir switch." Help fi ;; * ) echo "$script_error invalid argument '$1'" ; Help ;; esac shift done # # Make sure we're not running standalone # if [ "$hdf_install_caller" = "" ] ; then WriteError "This script can only be run from INSTALL-HDF." Help else # Here we set up the HDF installation directory, # for use by the configure script. # # With this release of HDF, we abandon the convention of setting the # installation directory to $HDFHOME/hdf, which was formerly done for # backwards compatibility with the installed HDF directory structure # that the toolkit was using with the 3.3r4 version of HDF. # # New releases of the SDP Toolkit and hdfeos have been updated to handle this # directory change install_dir="$HDFHOME" if [ ! -d "$install_dir" ] ; then # create the install dir, if needed. mkdir $install_dir fi fi # # Announce # EchoAndLog "Running $this_script" # # Do architecture-specific pre-configure fixes # #PreConfigure # # In dec -ljpeg does not work, must use full path for the library # if [ "$BRAND" = "dec" ] ; then PreConfigJPEGFixes_dec fi if [ "$dbug" = "1" ] ; then CFLAGS=" -g" fi export CFLAGS # # Run the NCSA-supplied configure script # if [ "$dbug" = "1" ] ; then config_flags="$config_flags --disable-production --disable-shared" else config_flags="$config_flags --disable-shared" fi cd $start_dir tmp_home=$HOME # save $HOME HOME=`pwd` ; export HOME # change it to avoid interaction w/ .cshrc if [ "$User_has_external_netCDF" = "1" ] ; then # Configure HDF4 with --disable-netcdf if [ "$CONFIG_HDF4_WITH_SZIP" = "1" ] ; then # Configure HDF4 with SZIP EchoAndLog "Running ./configure -v --with-jpeg=$JPEGINC,$JPEGLIB --with-zlib=$ZLIBINC,$ZLIBLIB --with-szlib=$SZIPINC,$SZIPLIB --disable-netcdf --prefix=$install_dir $config_flags" if [ "$log_file" != "" ] ; then echo "" >> $log_file ./configure -v --with-zlib=$ZLIBINC,$ZLIBLIB --with-jpeg=$JPEGINC,$JPEGLIB --with-szlib=$SZIPINC,$SZIPLIB --disable-netcdf --prefix=$install_dir $config_flags >> $log_file 2>&1 else echo "" ./configure -v --with-zlib=$ZLIBINC,$ZLIBLIB --with-jpeg=$JPEGINC,$JPEGLIB --with-szlib=$SZIPINC,$SZIPLIB --disable-netcdf --prefix=$install_dir $config_flags fi else # Do not configure HDF4 with SZIP EchoAndLog "Running ./configure -v --with-jpeg=$JPEGINC,$JPEGLIB --with-zlib=$ZLIBINC,$ZLIBLIB --disable-netcdf --prefix=$install_dir $config_flags" if [ "$log_file" != "" ] ; then echo "" >> $log_file ./configure -v --with-zlib=$ZLIBINC,$ZLIBLIB --with-jpeg=$JPEGINC,$JPEGLIB --disable-netcdf --prefix=$install_dir $config_flags >> $log_file 2>&1 else echo "" ./configure -v --with-zlib=$ZLIBINC,$ZLIBLIB --with-jpeg=$JPEGINC,$JPEGLIB --disable-netcdf --prefix=$install_dir $config_flags fi fi else # Configure HDF4 without --disable-netcdf if [ "$CONFIG_HDF4_WITH_SZIP" = "1" ] ; then # Configure HDF4 with SZIP EchoAndLog "Running ./configure -v --with-jpeg=$JPEGINC,$JPEGLIB --with-zlib=$ZLIBINC,$ZLIBLIB --with-szlib=$SZIPINC,$SZIPLIB --prefix=$install_dir $config_flags" if [ "$log_file" != "" ] ; then echo "" >> $log_file ./configure -v --with-zlib=$ZLIBINC,$ZLIBLIB --with-jpeg=$JPEGINC,$JPEGLIB --with-szlib=$SZIPINC,$SZIPLIB --prefix=$install_dir $config_flags >> $log_file 2>&1 else echo "" ./configure -v --with-zlib=$ZLIBINC,$ZLIBLIB --with-jpeg=$JPEGINC,$JPEGLIB --with-szlib=$SZIPINC,$SZIPLIB --prefix=$install_dir $config_flags fi else # Do not configure HDF4 with SZIP EchoAndLog "Running ./configure -v --with-jpeg=$JPEGINC,$JPEGLIB --with-zlib=$ZLIBINC,$ZLIBLIB --prefix=$install_dir $config_flags" if [ "$log_file" != "" ] ; then echo "" >> $log_file ./configure -v --with-zlib=$ZLIBINC,$ZLIBLIB --with-jpeg=$JPEGINC,$JPEGLIB --prefix=$install_dir $config_flags >> $log_file 2>&1 else echo "" ./configure -v --with-zlib=$ZLIBINC,$ZLIBLIB --with-jpeg=$JPEGINC,$JPEGLIB --prefix=$install_dir $config_flags fi fi fi HOME=$tmp_home ; export HOME # restore $HOME # # Do architecture-specific post-configure fixes # PostConfigure # # Run the make utility to compile the library and utiltites # EchoAndLog "Running make, target=all" if [ "$log_file" != "" ] ; then echo "" >> $log_file make >> $log_file 2>&1 tmp_status=$? else echo "" make tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make ' failed." exit 1 fi # # Run the make utility install the libraries, utilities, includes and man pages # EchoAndLog "Running make, target=install " if [ "$log_file" != "" ] ; then echo "" >> $log_file make install >> $log_file 2>&1 tmp_status=$? else echo "" make install tmp_status=$? fi if [ "$tmp_status" != 0 ] ; then EchoAndLog "Run of 'make install' failed." exit 1 fi hdf-eos5-5.1.14+dfsg.1/bin/INSTALL-HDFEOS0000755000175000017500000016556412024715435020222 0ustar amckinstryamckinstry#!/bin/sh # Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its documentation # for any purpose without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both that copyright notice and # this permission notice appear in supporting documentation. # #----------------------------------------------------------------------------- # filename: # INSTALL-HDFEOS # # description: # This script handles the installation of HDFEOS5. # # usage: # 1) Set directory to HDFEOS top level directory. # 2) Type: # # bin/INSTALL-HDFEOS [-dbug] [-sgi32 | -sgi64] [-i] [-l] [-szi] [-szl] # bin/INSTALL-HDFEOS [-cc_path ] # bin/INSTALL-HDFEOS [-h] # # Where (optional) flags are: # # -dbug : build debug version of HDF-EOS # -sgi32 : build in -n32 mode (SGI Power Challenge only) # -sgi64 : build in -64 mode (SGI Power Challenge only) # -ts : build thread-safe version # -ts_dbug : build thread-safe version and enable debug statements # -cc_path : set the path of the C compiler to # -i : set HDF include directory to # -l : set HDF library directory to # -szi : set SZIP include directory to # -szl : set SZIP library directory to # -h : display this help message and exit # # 3) Enter requested information when prompted. # # notes: # 1) This script is compatible with the following platforms: # Sun, SGI, HP-9000, IBM RS-6000 and DEC Alpha. # It automatically figures out which platform you are on, # and sets environment variables accordingly. # # author: # Mike Sucher / A.R.C. # # history: # 18-Jun-1996 MES Initial version # 27-Sep-1996 MES Add -i and -l options # 17-Apr-1997 DaW Added support for old 32-bit compiling on SGI # Power Challenge # 09-Nov-2000 DaW Modified to work with HDF5.1r2.1 # 10-Oct-2001 AM Modified to add option to build thread-safe version # 15-Sep-2003 PTN Added -cc_path option # 15-Apr-2004 PTN Modified for Linux64 # 09-Nov-2005 TR Added i686 (cygwin on Pentium) #----------------------------------------------------------------------------- this_script="`basename $0`" # # Function to output error message # WriteError() { echo "" echo "${this_script}: Error: $*" >&2 } # # Function prompt for user response # UserPrompt() { if [ "$BRAND" = "linux" ] || [ "$BRAND" = "linux32" ] || [ "$BRAND" = "linux64" ] ; then /bin/echo "$* \c" > /dev/tty else echo "$* \\c" > /dev/tty fi read user_response } # # Function to output help message and exit # Help() { sed -n '/filename:/,/author:/p' $0 | grep -v "author:" | cut -c3-300 | more #this line must be here because it contains the string: "author:" exit } # # Function to output a startup banner # Banner() { echo "" echo "-----------------------------------------------------------------------" echo "$this_script: Installation script for HDFEOS5" echo "" echo " Installing HDFEOS5 on host $HOST running $OSTYPE" echo " HDFEOS5 home directory is: $HDFEOS5_HOME" echo "" echo " Starting HDFEOS5 installation at `date`" echo "" echo "-----------------------------------------------------------------------" echo "" } # # Function to handle error exit # ErrorExit() { echo "" echo "${this_script}: Fatal error running command: $*" >&2 echo "" echo "-----------------------------------------------------------------------" echo "" echo " HDFEOS5 installation ending with errors at `date`" echo "" echo "-----------------------------------------------------------------------" exit 1 } # # Functions to check HDF5 environment variables for validity # ValidHDFLIB() { if [ "$HDF5LIB" = "" ] ; then WriteError "No HDF5 library directory specified" exit 1 else if [ ! -f "$HDF5LIB/libhdf5.a" ] ; then WriteError "HDF5 library not found in: $HDF5LIB" exit 1 fi fi } ValidHDFINC() { if [ "$HDF5INC" = "" ] ; then WriteError "No HDF5 include directory specified" exit 1 else if [ ! -f "$HDF5INC/hdf5.h" ] ; then WriteError "HDF5 header file not found in: $HDF5INC" exit 1 fi fi } # # Functions to check SZIP environment variables for validity # ValidSZIPLIB() { if [ "$SZIPLIB" = "" ] ; then WriteError "No SZIP library directory specified" exit 1 else if [ ! -f "$SZIPLIB/libsz.a" ] ; then WriteError "SZIP library not found in: $SZIPLIB" exit 1 fi fi } ValidSZIPINC() { if [ "$SZIPINC" = "" ] ; then WriteError "No SZIP include directory specified" exit 1 else if [ ! -f "$SZIPINC/szlib.h" ] ; then WriteError "SZIP header file not found in: $SZIPINC" exit 1 fi fi } # # Function to set up the HDF5 environment variables HDF5INC and HDF5LIB # The values are set via the following priority scheme: # # (1) command line override, via the -l and -i flags # (2) loaded from the saved HDF5 environment file # (3) user prompt or inherited from the environment. # # The user will be prompted to override inherited values, except in # case (1). # GetHdfEnv() { # # If HDF5INC or HDF5LIB has not been specified on the command line. # first look for them in the saved HDF5 environment file # hdf_env_file=$HDFEOS5_BIN/.hdf_env if [ -f $hdf_env_file ] ; then if [ $lib_flag = 0 ] ; then echo "Getting HDF5LIB from $hdf_env_file" HDF5LIB=`head -1 $hdf_env_file` fi if [ $inc_flag = 0 ] ; then echo "Getting HDF5INC from $hdf_env_file" HDF5INC=`tail -1 $hdf_env_file` fi fi # # If HDF5INC or HDF5LIB is undefined at this point, then prompt for them # Otherwise ask if they should be accepted, unless specified via the # command line. Check them in any case ! # if [ $lib_flag = 0 ] ; then if [ "$HDF5LIB" = "" ] ; then UserPrompt "Please enter the HDF5 library files directory: " else echo "Current value of the HDF5 library directory is: $HDF5LIB" UserPrompt "New value (or Return to accept):" fi if [ "$user_response" != "" ] ; then HDF5LIB="$user_response" fi fi ValidHDFLIB # make sure it's valid before proceeding if [ $inc_flag = 0 ] ; then if [ "$HDF5INC" = "" ] ; then UserPrompt "Please enter the HDF5 include files directory: " else echo "Current value of the HDF5 include directory is: $HDF5INC" UserPrompt "New value (or Return to accept):" fi if [ "$user_response" != "" ] ; then HDF5INC="$user_response" fi fi ValidHDFINC # make sure it's valid before proceeding echo "" echo "HDF5 include files in: $HDF5INC" echo "HDF5 library files in: $HDF5LIB" cat /dev/null > $hdf_env_file echo $HDF5LIB >> $hdf_env_file echo $HDF5INC >> $hdf_env_file export HDF5LIB HDF5INC } # # Function to set up the SZIP environment variables SZIPINC and SZIPLIB # The values are set via the following priority scheme: # # (1) command line override, via the -szl and -szi flags # (2) loaded from the saved SZIP environment file # (3) user prompt or inherited from the environment. # # The user will be prompted to override inherited values, except in # case (1). # GetSzipEnv() { # # If SZIPINC or SZIPLIB has not been specified on the command line. # first look for them in the saved SZIP environment file # szip_env_file=$HDFEOS5_BIN/.szip_env if [ -f $szip_env_file ] ; then if [ $szlib_flag = 0 ] ; then echo "Getting SZIPLIB from $szip_env_file" SZIPLIB=`head -1 $szip_env_file` fi if [ $szinc_flag = 0 ] ; then echo "Getting SZIPINC from $szip_env_file" SZIPINC=`tail -1 $szip_env_file` fi fi # # If SZIPINC or SZIPLIB is undefined at this point, then prompt for them # Otherwise ask if they should be accepted, unless specified via the # command line. Check them in any case ! # if [ $szlib_flag = 0 ] ; then if [ "$SZIPLIB" = "" ] ; then UserPrompt "Please enter the SZIP library files directory: " else echo "Current value of the SZIP library directory is: $SZIPLIB" UserPrompt "New value (or Return to accept):" fi if [ "$user_response" != "" ] ; then SZIPLIB="$user_response" fi fi ValidSZIPLIB # make sure it's valid before proceeding if [ $szinc_flag = 0 ] ; then if [ "$SZIPINC" = "" ] ; then UserPrompt "Please enter the SZIP include files directory: " else echo "Current value of the SZIP include directory is: $SZIPINC" UserPrompt "New value (or Return to accept):" fi if [ "$user_response" != "" ] ; then SZIPINC="$user_response" fi fi ValidSZIPINC # make sure it's valid before proceeding echo "" echo "SZIP include files in: $SZIPINC" echo "SZIP library files in: $SZIPLIB" cat /dev/null > $szip_env_file echo $SZIPLIB >> $szip_env_file echo $SZIPINC >> $szip_env_file export SZIPLIB SZIPINC } # # Function to set up architecture-dependent environment scripts # SetupEnvScripts() { echo "" echo "" echo "-----------------------------------------------------------------------" echo "" echo "Setting up installation-dependent scripts" echo "" echo "-----------------------------------------------------------------------" echo "" cd $HDFEOS5_BIN if [ -f ../tmp/hdfeos_env.ksh.tmp ] ; then echo " Setting up Korn shell (ksh) script 'hdfeos_env.ksh' " echo " Korn shell users may call this file from their .profile " echo " file via the the line:" echo " " echo " . $HDFEOS5_BIN/hdfeos_env.ksh " echo " " echo " It sets up machine-specific environment variables needed " echo " by the HDFEOS5 makefiles for compilation and linking." echo " " echo "# " > hdfeos_env.ksh echo '# Clear all conditional flags' >> hdfeos_env.ksh echo 'sgi_mode=""' >> hdfeos_env.ksh echo 'hdfeos_f90_comp=""' >> hdfeos_env.ksh echo 'hdfeos_nag_flag=""' >> hdfeos_env.ksh if [ "`uname -m`" = "x86_64" ] || [ "`uname -m`" = "ia64" ] || [ "`uname -m`" = "i386" ] || [ "`uname -m`" = "i686" ] ; then if [ "$MACINTEL_COMP_FLAG" = "-m32" ] ; then echo 'MACINTEL_COMP_FLAG="-m32"' >> hdfeos_env.ksh echo "MAC_BRAND=macintel32 # set MACINTEL for -32 mode" >> hdfeos_env.ksh else echo 'MACINTEL_COMP_FLAG="-mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk -fPIC"' >> hdfeos_env.ksh echo "MAC_BRAND=macintel64 # set MACINTEL for -64 mode" >> hdfeos_env.ksh fi fi if [ "`uname -m`" = "x86_64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then echo 'LNX_COMP_FLAG="-m32"' >> hdfeos_env.ksh echo "LINUX_BRAND=linux32 # set LINUX for -32 mode" >> hdfeos_env.ksh else echo 'LNX_COMP_FLAG=""' >> hdfeos_env.ksh echo "LINUX_BRAND=linux64 # set LINUX for -64 mode" >> hdfeos_env.ksh fi elif [ "`uname -m`" = "ia64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then echo 'LNX_COMP_FLAG="-m32"' >> hdfeos_env.ksh echo "LINUX_BRAND=linux32 # set LINUX for -32 mode" >> hdfeos_env.ksh else echo 'LNX_COMP_FLAG=""' >> hdfeos_env.ksh fi else echo 'LNX_COMP_FLAG=""' >> hdfeos_env.ksh echo "LINUX_BRAND=linux # set LINUX for -32 mode" >> hdfeos_env.ksh fi echo " " >> hdfeos_env.ksh echo "# set the HDFEOS5 home directory and HDF5 variables" >> hdfeos_env.ksh echo "# HDFEOS5 installation done on `date` " >> hdfeos_env.ksh echo "# " >> hdfeos_env.ksh echo " " >> hdfeos_env.ksh echo "HDFEOS5_HOME=$HDFEOS5_HOME # the HDFEOS5 home directory" >> hdfeos_env.ksh echo "HDF5LIB=$HDF5LIB # the HDF5 lib directory" >> hdfeos_env.ksh echo "HDF5INC=$HDF5INC # the HDF5 include directory" >> hdfeos_env.ksh echo "SZIPLIB=$SZIPLIB # the SZIP lib directory" >> hdfeos_env.ksh echo "SZIPINC=$SZIPINC # the SZIP include directory" >> hdfeos_env.ksh case "$sgi_mode" in 64 ) echo "sgi_mode=64 # SGI for -64 mode" >> hdfeos_env.ksh ;; n32 ) echo "sgi_mode=n32 # SGI for -n32 mode" >> hdfeos_env.ksh ;; * ) echo "sgi_mode=64 # SGI for standard mode" >> hdfeos_env.ksh ;; esac if [ "$f90_flag" = "1" ] ; then # do FORTRAN-90 setup echo "hdfeos_f90_comp='$F77' # f90 compiler" >> hdfeos_env.ksh if [ "$nag_flag" = "1" ] ; then # using NAG f90 echo "hdfeos_nag_flag=1 # using NAG f90" >> hdfeos_env.ksh fi fi echo "opt_flag='$opt_flag' # set compiler optimization level" >> hdfeos_env.ksh echo " " >> hdfeos_env.ksh echo "ext_cc_flags='$EXT_CC_FLAGS' # set compiler extra C flags" >> hdfeos_env.ksh echo " " >> hdfeos_env.ksh sed "s^LNX_CMP_FLAG^$LNX_COMP_FLAG^" ../tmp/hdfeos_env.ksh.tmp >> hdfeos_env.ksh.1 cat hdfeos_env.ksh.1 >> hdfeos_env.ksh /bin/rm -f hdfeos_env.ksh.1 sleep 3 fi echo " -----------------------------------" echo "" if [ -f ../tmp/hdfeos_env.csh.tmp ] ; then echo " Setting up C-shell (csh) script 'hdfeos_env.csh' " echo " This file may be called from your .cshrc file via the the line:" echo " " echo " source $HDFEOS5_BIN/hdfeos_env.csh " echo " " echo " It sets up machine-specific environment variables needed " echo " by the HDFEOS5 makefiles for compilation and linking." echo " " echo "# " > hdfeos_env.csh if [ "`uname -m`" = "x86_64" ] || [ "`uname -m`" = "ia64" ] || [ "`uname -m`" = "i386" ] || [ "`uname -m`" = "i686" ] ; then if [ "$MACINTEL_COMP_FLAG" = "-m32" ] ; then echo 'setenv MACINTEL_COMP_FLAG "-m32"' >> hdfeos_env.csh echo "set MAC_BRAND=macintel32 # set MACINTEL for -32 mode" >> hdfeos_env.csh else echo 'setenv MACINTEL_COMP_FLAG "-mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk -fPIC"' >> hdfeos_env.csh echo "set MAC_BRAND=macintel64 # set MACINTEL for -64 mode" >> hdfeos_env.csh fi fi if [ "`uname -m`" = "x86_64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then echo 'setenv LNX_COMP_FLAG "-m32"' >> hdfeos_env.csh echo "set LINUX_BRAND=linux32 # set LINUX for -32 mode" >> hdfeos_env.csh else echo 'setenv LNX_COMP_FLAG ""' >> hdfeos_env.csh echo "set LINUX_BRAND=linux64 # set LINUX for -64 mode" >> hdfeos_env.csh fi elif [ "`uname -m`" = "ia64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then echo 'setenv LNX_COMP_FLAG "-m32"' >> hdfeos_env.csh echo "set LINUX_BRAND=linux32 # set LINUX for -32 mode" >> hdfeos_env.csh else echo 'setenv LNX_COMP_FLAG ""' >> hdfeos_env.csh echo "set LINUX_BRAND=linux64 # set LINUX for -64 mode" >> hdfeos_env.csh fi else echo 'setenv LNX_COMP_FLAG ""' >> hdfeos_env.csh echo "set LINUX_BRAND=linux # set LINUX for -32 mode" >> hdfeos_env.csh fi echo '# Clear all conditional flags' >> hdfeos_env.csh echo "unset sgi_mode" >> hdfeos_env.csh echo "unset hdfeos_f90_comp" >> hdfeos_env.csh echo "unset hdfeos_nag_flag" >> hdfeos_env.csh echo " " >> hdfeos_env.csh echo "# set the HDFEOS5 home directory and HDF5 variables" >> hdfeos_env.csh echo "# HDFEOS5 installation done on `date` " >> hdfeos_env.csh echo "# " >> hdfeos_env.csh echo " " >> hdfeos_env.csh echo "setenv HDFEOS5_HOME $HDFEOS5_HOME # the HDFEOS5 home directory" >> hdfeos_env.csh echo "setenv HDF5LIB $HDF5LIB # the HDF5 lib directory" >> hdfeos_env.csh echo "setenv HDF5INC $HDF5INC # the HDF5 include directory" >> hdfeos_env.csh echo "setenv SZIPLIB $SZIPLIB # the SZIP lib directory" >> hdfeos_env.csh echo "setenv SZIPINC $SZIPINC # the SZIP include directory" >> hdfeos_env.csh case "$sgi_mode" in 64 ) echo "set sgi_mode=64 # SGI for -64 mode" >> hdfeos_env.csh ;; n32 ) echo "set sgi_mode=n32 # SGI for -n32 mode" >> hdfeos_env.csh ;; * ) echo "set sgi_mode=64 # SGI for standard mode" >> hdfeos_env.csh ;; esac if [ "$f90_flag" = "1" ] ; then # do FORTRAN-90 setup echo "hdfeos_f90_comp='$F77' # f90 compiler" >> hdfeos_env.csh if [ "$nag_flag" = "1" ] ; then # check if using NAG f90 echo "hdfeos_nag_flag=1 # using NAG f90" >> hdfeos_env.csh fi fi echo "set opt_flag='$opt_flag' # set compiler optimization level" >> hdfeos_env.csh echo " " >> hdfeos_env.csh echo "set ext_cc_flags='$EXT_CC_FLAGS' # set compiler extra C flags" >> hdfeos_env.csh echo " " >> hdfeos_env.csh sed "s^LNX_CMP_FLAG^$LNX_COMP_FLAG^" ../tmp/hdfeos_env.csh.tmp >> hdfeos_env.csh.1 cat hdfeos_env.csh.1 >> hdfeos_env.csh /bin/rm -f hdfeos_env.csh.1 sleep 3 fi } # # Get parameters from command line # sgi_mode=64 # by default, SGI mode is standard 64-bit pgs_f90_comp="" # by default, no FORTRAN-90 compiler pgs_nag_flag=0 # by default, not using NAG FORTRAN-90 inc_flag=0 # HDF5INC override flag lib_flag=0 # HDF5LIB override flag szinc_flag=0 # SZIPINC override flag szlib_flag=0 # SZIPLIB override flag opt_flag=-O # compiler optimization level ts_flag="" # build threadsafe version flag fc_path="" cc_path="" ext_cc_flags="" while [ "$1" != "" ] do case $1 in -h | -he | -hel | -help ) Help ;; # help -sgi32) sgi_mode=n32 ;; -sgi64) sgi_mode=64 ;; -dbug) opt_flag=-g ;; -ts) ts_flag=-D_HDFEOS5_THREADSAFE ;; -ts_dbug) ts_flag="-D_HDFEOS5_THREADSAFE -D_HDFEOS5_THREADSAFE_DEBUG" ;; -fc_path ) fc_path="$2" ; shift ;; -cc_path ) cc_path="$2" ; shift ;; -i) HDF5INC=$2 ; inc_flag=1; shift ;; -l) HDF5LIB=$2 ; lib_flag=1; shift ;; -szi) SZIPINC=$2 ; szinc_flag=1; shift ;; -szl) SZIPLIB=$2 ; szlib_flag=1; shift ;; -i*) HDF5INC=`echo $1 | cut -c3-` ; inc_flag=1 ;; -l*) HDF5LIB=`echo $1 | cut -c3-` ; lib_flag=1 ;; -szi*) SZIPINC=`echo $1 | cut -c5-` ; szinc_flag=1 ;; -szl*) SZIPLIB=`echo $1 | cut -c5-` ; szlib_flag=1 ;; -*) echo "Invalid option: $1" Help ;; *) # default value1="$1" ;; esac shift done # set path to a base subset of directories, allowing startup on unknown host # note: once the host has been determined the path is appropriately customized PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11 export PATH # get operating system type, login name # special cases: SCO and Cray - uname works differently, MACHINE="`uname -m | awk '{print $1}'`" # needed on Cray & SCO temp_ostype=`uname` case "$MACHINE" in i386) OSTYPE=sco386 ;; # SCO box i686) OSTYPE=sco686 ;; # Pentium CRAY) OSTYPE=UNICOS ;; # CRAY *) OSTYPE="`uname`" ;; # everybody else esac CYGPL="`uname | awk -F_ '{print $1}'`" # Intel Macintosh is also i386 or i686 (?) machine if [ "$MACHINE" = "i386" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel echo "MAC_BRAND = $MAC_BRAND" if [ "$MAC_BRAND" = "" ] ; then echo " Error: In 64-bit linux platform the env. variable MAC_BRAND must be set to mac32 or linux64 before running this script." exit 1 fi fi if [ "$CYGPL" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$MACHINE" = "i686" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel echo "MAC_BRAND = $MAC_BRAND" if [ "$MAC_BRAND" = "" ] ; then echo " Error: In 64-bit linux platform the env. variable MAC_BRAND must be set to mac32 or linux64 before running this script." exit 1 fi fi if [ "$CYGPL" = "CYGWIN" ] ; then OSTYPE=Cygwin fi fi if [ "$MACHINE" = "x86_64" ] || [ "$machine" = "ia64" ] ; then if [ "$temp_ostype" = "Darwin" ] ; then OSTYPE=DarwinIntel echo "MAC_BRAND = $MAC_BRAND" if [ "$MAC_BRAND" = "" ] ; then echo " Error: In 64-bit linux platform the env. variable MAC_BRAND must be set to mac32 or linux64 before running this script." exit 1 else if [ "$MAC_BRAND" = "macintel32" ] ; then if [ "$MACINTEL_COMP_FLAG" = "" ] ; then MACINTEL_COMP_FLAG="-m32" fi fi if [ "$MAC_BRAND" = "macintel64" ] ; then if [ "$MACINTEL_COMP_FLAG" = "" ] ; then MACINTEL_COMP_FLAG="-mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk -fPIC" fi fi fi elif [ "$temp_ostype" = "Linux" ] ; then if [ "$LINUX_BRAND" = "" ] ; then echo " Error: In 64-bit linux platform the env. variable LINUX_BRAND must be set to linux32 or linux64 before running this script." exit 1 else if [ "$LINUX_BRAND" = "linux32" ] ; then if [ "$LNX_COMP_FLAG" = "" ] ; then LNX_COMP_FLAG="-m32" fi fi fi fi fi user=`id | cut -d\( -f2 | cut -d\) -f1` if [ "$LOGNAME" != "$user" ] ; then LOGNAME=$user export LOGNAME fi if [ "$USER" != "$LOGNAME" ] ; then LOGNAME=$LOGNAME export USER fi # set machine-dependent environment variables: # HOST the host name of this machine # BRAND used by other achitecture-specific code # OS_VERSION used by other achitecture-specific code # PATH the execution search path case "$OSTYPE" in AIX) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/sbin HOST="`hostname`" BRAND="ibm" ;; HP-UX) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/bin/X11 HOST="`hostname`" BRAND="hp" if [ `uname -r | awk -F. '{print $2}'` = "11" ] ; then OS_VERSION="11" # release 11 echo HP-UX 11 platform else OS_VERSION="10" # release 10 echo HP-UX 10 platform fi ;; IRIX) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bsd:/usr/sbin HOST="`hostname`" if [ `uname -r | awk -F. '{print $2}'` = "5" ] ; then OS_VERSION="5" # release V6.5 IRIX echo IRIX 6.5 platform case $sgi_mode in 64 ) BRAND=sgi64 ;; n32) BRAND=sgi32 ;; * ) BRAND=sgi64 ;; # just in case esac fi if [ `uname -r | awk -F. '{print $2}'` = "2" ] ; then OS_VERSION="2" # release V6.2 IRIX echo IRIX 6.2 platform case $sgi_mode in 64 ) BRAND=sgi64 ;; n32) BRAND=sgi32 ;; * ) BRAND=sgi64 ;; # just in case esac else BRAND="sgi" fi ;; IRIX64) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/bsd:/usr/sbin HOST="`hostname`" if [ `uname -r | awk -F. '{print $2}'` = "5" ] ; then OS_VERSION="5" # release V6.5 IRIX echo IRIX 6.5 platform case $sgi_mode in 64 ) BRAND=sgi64 ;; n32) BRAND=sgi32 ;; * ) BRAND=sgi64 ;; # just in case esac else OS_VERSION="2" # release V6.2 IRIX echo IRIX 6.2 platform case $sgi_mode in 64 ) BRAND=sgi64 ;; n32) BRAND=sgi32 ;; * ) BRAND=sgi64 ;; # just in case esac fi ;; Linux ) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST=`hostname` BRAND=linux if [ "$LINUX_BRAND" = "linux64" ] ; then BRAND=linux64 elif [ "$LINUX_BRAND" = "linux32" ] ; then BRAND=linux32 fi if [ "$LNX_COMP_FLAG" = "-m32" ] ; then export LNX_COMP_FLAG else LNX_COMP_FLAG="" export LNX_COMP_FLAG fi ;; Darwin) PATH=/bin:/sbin:/usr/bin:/usr/sbin pgs_host=`hostname` BRAND=macintosh ;; DarwinIntel) PATH=/bin:/sbin:/usr/bin:/usr/sbin pgs_host=`hostname` BRAND=macintel32 if [ "$MAC_BRAND" = "macintel64" ] ; then BRAND=macintel64 elif [ "$MAC_BRAND" = "macintel32" ] ; then BRAND=macintel32 fi if [ "$MACINTEL_COMP_FLAG" = "-m32" ] ; then export MACINTEL_COMP_FLAG else MACINTEL_COMP_FLAG="-mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk -fPIC" export MACINTEL_COMP_FLAG fi ;; Cygwin) PATH=/bin:/sbin:/usr/bin:/usr/sbin pgs_host=`hostname` BRAND=cygwin ;; OSF1) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/bin/X11:/usr/sbin HOST="`hostname -s`" BRAND="dec" ;; sco386 ) if [ "`uname`" = "Linux" ] ; then PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST="`hostname`" BRAND=linux if [ "$LINUX_BRAND" = "linux64" ] ; then BRAND=linux64 elif [ "$LINUX_BRAND" = "linux32" ] ; then BRAND=linux32 fi elif [ "`uname`" = "Darwin" ] ; then PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST="`hostname`" BRAND=macintel32 if [ "$MAC_BRAND" = "macintel64" ] ; then BRAND=macintel64 elif [ "$MAC_BRAND" = "macintel32" ] ; then BRAND=macintel32 fi else PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/bin/X11 HOST="`hostname -s`" BRAND="sco" fi ;; sco686 ) if [ "`uname`" = "Linux" ] ; then PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST="`hostname`" BRAND=linux if [ "$LINUX_BRAND" = "linux64" ] ; then BRAND=linux64 elif [ "$LINUX_BRAND" = "linux32" ] ; then BRAND=linux32 fi elif [ "`uname`" = "Darwin" ] ; then PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/X11/bin HOST="`hostname`" BRAND=macintel32 HOST="`hostname`" BRAND="winnt98" if [ "$MAC_BRAND" = "macintel64" ] ; then BRAND=macintel64 elif [ "$MAC_BRAND" = "macintel32" ] ; then BRAND=macintel32 fi else PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/bin/X11 HOST="`hostname`" BRAND="winnt98" fi ;; SunOS) # distinguish between SunOS 5.x versions if [ `uname -r | awk -F. '{print $1}'` = "5" ] ; then if [ `uname -r | awk -F. '{print $2}'` = "10" ] ; then OS_VERSION="10" # release V5.10 SunOS BRAND="sun5.10" # release V5.x SunOS echo Solaris 10 platform elif [ `uname -r | awk -F. '{print $2}'` = "9" ] ; then OS_VERSION="9" # release V5.9 SunOS BRAND="sun5.9" # release V5.x SunOS echo Solaris 9 platform elif [ `uname -r | awk -F. '{print $2}'` = "8" ] ; then OS_VERSION="8" # release V5.8 SunOS BRAND="sun5.8" # release V5.x SunOS echo Solaris 2.8 platform else OS_VERSION="5" # release V5.8 SunOS BRAND="sun5" # release V5.x SunOS echo Solaris 2.5 platform fi PATH=/usr/local/bin:/opt/SUNWspro/bin:/bin:/usr/bin:/etc:/usr/etc:/usr/ucb:/usr/openwin/bin:/usr/openwin/demo:/usr/sbin:/usr/ccs/bin fi HOST="`hostname`" ;; UNICOS) PATH=/usr/local/bin:/bin:/usr/bin:/etc:/usr/bin/X11 HOST="`hostname`" BRAND="cray" ;; *) echo "Operating system: $OSTYPE not supported" echo "This release of HDFEOS5 supports: " echo " Sun, SGI, HP-9000, Linux and DEC-Alpha " ;; esac export PATH HOST BRAND # # Flag IRIX 6.2 because this may impact on makefiles # irix53=0 case $BRAND in sgi ) if [ "$OSTYPE" = "IRIX" ] ; then irix53=1 fi ;; esac export irix53 # set machine-dependent compilers and compilation switches: # # NSL_FLAG="" # this is nil on all but Sun platforms NSL_LIB="" # this is nil on all but Sun platforms AR="ar" # command to build library RANLIB=touch # default for platforms that don't need ranlib RANLIBSUN4=touch # default for platforms that don't need ranlib case "$BRAND" in cray) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-DCRAYFortran" # C/cfortran.h called from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=cf77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=UNICOS # system type as defined by HDF5 MACHINE=CRAY # system type as defined by HDFEOS5 ;; dec) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -std -DH5_USE_16_API" # default C flags C_CFH="-DDECFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH -Dmain=MAIN__" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH " # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=DEC_ALPHA # system type as defined by HDF5 MACHINE=DEC # system type as defined by HDFEOS5 ;; hp) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -Ae -DH5_USE_16_API" # default C flags C_CFH="" # C w/cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=fort77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=HP9000 # system type as defined by HDF5 MACHINE=HP # system type as defined by HDFEOS5 ;; ibm) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -qlanglvl=ansi -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="" # C w/cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main FORTAN F77=xlf # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=IBM6000 # system type as defined by HDF5 MACHINE=IBM # system type as defined by HDFEOS5 ;; linux | linux32 | linux64) #CC="gcc -m32" # C compiler CC="gcc $LNX_COMP_FLAG" # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -ansi -DH5_USE_16_API" # default C flags C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main #F77="g77 -m32" # FORTRAN compiler F77="g77 $LNX_COMP_FLAG" # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main if [ "`uname -m`" = "x86_64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then HDFSYS=LINUX # system type as defined by HDF5 else HDFSYS=LINUX64 # Only for 64 bit linux fi elif [ "`uname -m`" = "ia64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then HDFSYS=LINUX # system type as defined by HDF5 else HDFSYS=IA64 #Only for IA64 fi else HDFSYS=LINUX # system type as defined by HDF fi MACHINE=LINUX # system type as defined by HDFEOS5 ;; macintosh) CC=gcc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -ansi -D_ANSI_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=g77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=MACINTOSH # system type as defined by HDF5 MACHINE=MACINTOSH # system type as defined by HDFEOS5 ;; macintel) CC="gcc $MACINTEL_COMP_FLAG" # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -ansi -D_ANSI_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77="gfortran $MACINTEL_COMP_FLAG" # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=MACINTEL # system type as defined by HDF5 MACHINE=MACINTEL # system type as defined by HDFEOS5 ;; macintel32) CC="gcc $MACINTEL_COMP_FLAG" # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -ansi -D_ANSI_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77="gfortran $MACINTEL_COMP_FLAG" # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=MACINTEL # system type as defined by HDF5 MACHINE=MACINTEL # system type as defined by HDFEOS5 ;; macintel64) CC="gcc $MACINTEL_COMP_FLAG" # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -ansi -D_ANSI_SOURCE -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77="gfortran $MACINTEL_COMP_FLAG" # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=MACINTEL # system type as defined by HDF5 MACHINE=MACINTEL # system type as defined by HDFEOS5 ;; cygwin) CC=gcc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -ansi -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=g77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main RANLIB=ranlib # activate the ranlib command HDFSYS=CYGWIN # system type as defined by HDF MACHINE=CYGWIN # system type as defined by HDFEOS ;; sco) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS -posix -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77="" # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=SCO # system type as defined by HDF5 MACHINE=SCO # system type as defined by HDFEOS5 ;; sgi32) CC="cc -n32" # C compiler (new-style 32 bit) F77="f77 -n32" # FORTRAN compiler (new-style 32 bit) CFLAGS="$opt_flag $EXT_CC_FLAGS -xansi -D_POSIX_SOURCE $ts_flag -DH5_USE_16_API"# default C flags C_CFH="" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="-lI77 -lU77 -lF77" # FORTRAN lib called by C main F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=IRIS4 # system type as defined by HDF5 MACHINE=SGI # system type as defined by HDFEOS5 ;; sgi64) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" = "4" ] ; then CC="cc -64 -mips3" # C compiler (R4?00 chip) F77="f77 -64 -mips3" # FORTRAN compiler (R4?00 chip) else CC="cc -64" # C compiler F77="f77 -64" # FORTRAN compiler fi CFLAGS="$opt_flag $EXT_CC_FLAGS -xansi -D_POSIX_SOURCE $ts_flag -DH5_USE_16_API" # default C flags C_CFH="" # C w/cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="-lI77 -lU77 -lF77" # FORTRAN lib called by C main F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="" # C lib called by FORTRAN main HDFSYS=IRIS4 # system type as defined by HDF5 MACHINE=SGI # system type as defined by HDFEOS5 ;; sun5) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS -Xa $ts_flag -DH5_USE_16_API" # default C flags C_CFH="-DsunFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=SUN # system type as defined by HDF5 MACHINE=SUN5 # system type as defined by HDFEOS5 NSL_FLAG="-lnsl" # this is nil on all but Sun platforms NSL_LIB="/usr/lib/libnsl.a" # this is nil on all but Sun platforms ;; sun5.8) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -Xa -DH5_USE_16_API" # default C flags C_CFH="-DsunFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=SUN # system type as defined by HDF5 MACHINE=SUN8 # system type as defined by HDFEOS5 NSL_FLAG="-lnsl" # this is nil on all but Sun platforms NSL_LIB="/usr/lib/libnsl.a" # this is nil on all but Sun platforms ;; sun5.9) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -Xa -DH5_USE_16_API" # default C flags C_CFH="-DsunFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=SUN # system type as defined by HDF5 MACHINE=SUN9 # system type as defined by HDFEOS5 NSL_FLAG="-lnsl" # this is nil on all but Sun platforms NSL_LIB="/usr/lib/libnsl.a" # this is nil on all but Sun platforms ;; sun5.10) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS $ts_flag -Xa -DH5_USE_16_API" # default C flags C_CFH="-DsunFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=SUN # system type as defined by HDF5 MACHINE=SUN10 # system type as defined by HDFEOS5 NSL_FLAG="-lnsl" # this is nil on all but Sun platforms NSL_LIB="/usr/lib/libnsl.a" # this is nil on all but Sun platforms ;; winnt98 ) CPP=CC # C++ compiler CC=gcc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS -O3 -Wall -W -Wundef -Wno-switch -DH5_USE_16_API" # default C flags (optimize, ansi) C_CFH="-Df2cFortran" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH CPPFLAGS="$EXT_CPP_FLAGS -g -ansi -DH5_USE_16_API" # default C ++ flags (optimize, ansi) CPP_CFH="-Df2cFortran" # C ++ w/ cfortran.h callable from FORTRAN CPPFHFLAGS="$CPPFLAGS $CPP_CFH" # CFLAGS + C_CFH for C++ F77=g77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags HDFSYS=CYGWIN # system type as defined by HDF ;; *) CC=cc # C compiler CFLAGS="$opt_flag $EXT_CC_FLAGS -DH5_USE_16_API" # default C flags (optimize) C_CFH="" # C w/ cfortran.h callable from FORTRAN CFHFLAGS="$CFLAGS $C_CFH" # CFLAGS + C_CFH C_F77_CFH="$C_CFH" # calling FORTRAN C_F77_LIB="" # FORTRAN lib called by C main F77=f77 # FORTRAN compiler F77FLAGS="$opt_flag $EXT_FC_FLAGS -DH5_USE_16_API" # common FORTRAN flags F77_CFH="" # FORTRAN callable from C w/ cfortran.h F77_C_CFH="$F77_CFH" # calling C w/ cfortran.h CFH_F77="$F77_C_CFH" # old version of F77_C_CFH F77_C_LIB="-lm" # C lib called by FORTRAN main HDFSYS=unknown # system type as defined by HDF5 MACHINE=unknown # system type as defined by HDFEOS5 ;; esac export NSL_FLAG NSL_LIB AR RANLIB RANLIBSUN4 export CC CFLAGS C_CFH CFHFLAGS C_F77_CFH C_F77_LIB F77 export F77FLAGS F77_CFH F77_C_CFH CFH_F77 F77_C_LIB HDFSYS # # Verify that this is the HDFEOS5 home directory before proceeding # If OK, then set the value of HDFEOS5_HOME, else quit. dirs="bin include lib obj src" ok=1 for dir in $dirs ; do if [ ! -d $dir ] ; then ok=0 break fi done if [ $ok = 1 ] ; then HDFEOS5_HOME=`pwd` else WriteError "You must first go to the HDFEOS5 home directory." Help fi dirs="bin lib obj" for dir in $dirs ; do if [ ! -d $dir/$BRAND ] ; then mkdir $dir/$BRAND fi done # # For linux create soft links for backward compatibility with # older versions of the hdfeos5 # if [ "$BRAND" = "linux64" ] ; then echo "64-bit structure is the default in this machine. Creating linux as soft link to linux64 in bin, lib, and obj directories." dirs="bin lib obj" for dir in $dirs ; do # back up existing linux diretory if [ -d $dir/linux ] ; then /bin/mv $dir/linux $dir/linux_backup fi ln -s ./$BRAND $dir/linux done fi if [ "$BRAND" = "linux" ] ; then echo "32-bit structure is the default in this machine. Creating linux32 as soft link to linux in bin, lib, and obj directories." dirs="bin lib obj" for dir in $dirs ; do # back up existing linux32 diretory if [ -d $dir/linux32 ] ; then /bin/mv $dir/linux32 $dir/linux32_backup fi ln -s ./$BRAND $dir/linux32 done fi # # For macintel create soft links for backward compatibility with # older versions of the hdfeos5 # if [ "$BRAND" = "macintel32" ] ; then echo "macintel32 directories will be soft linked to macintel. Creating macintel as soft link to macintel32 in bin, lib, and obj directories." dirs="bin lib obj" for dir in $dirs ; do # back up existing macintel diretory if [ -d $dir/macintel ] ; then /bin/mv $dir/macintel $dir/macintel_backup fi ln -s ./$BRAND $dir/macintel done fi if [ "$BRAND" = "macintel" ] ; then echo "32-bit structure is the default in this machine. Creating macintel32 as soft link to macintel in bin, lib, and obj directories." dirs="bin lib obj" for dir in $dirs ; do # back up existing macintel32 diretory if [ -d $dir/macintel32 ] ; then /bin/mv $dir/macintel32 $dir/macintel32_backup fi ln -s ./$BRAND $dir/macintel32 done fi # # set HDFEOS5-related environment variables # these may be referred to in makefiles and on compiler command lines # if [ "$HDFEOS5_HOME" != "" ] ; then # set up base set of HDFEOS5 directory variables. HDFEOS5_BIN=${HDFEOS5_HOME}/bin/$BRAND # executable files HDFEOS5_INC=$HDFEOS5_HOME/include # include header files HDFEOS5_LIB=${HDFEOS5_HOME}/lib/$BRAND # library files HDFEOS5_OBJ=${HDFEOS5_HOME}/obj/$BRAND # object files HDFEOS5_SRC=$HDFEOS5_HOME/src # HDFEOS5 source files export HDFEOS5_HOME HDFEOS5_BIN HDFEOS5_DAT HDFEOS5_INC HDFEOS5_LIB export HDFEOS5_MSG HDFEOS5_OBJ HDFEOS5_RUN HDFEOS5_SRC HDFEOS5_TST # update path variables PATH=$PATH:$HDFEOS5_BIN; export PATH # add HDFEOS5_BIN to path else echo "You must first set the environment variable HDFEOS5_HOME" exit 1 fi # # set up environment to handle FORTRAN-90 compiler # if [ "$pgs_f90_comp" != "" ] ; then # using FORTRAN-90 F77="$pgs_f90_comp" if [ "$pgs_nag_flag" = "1" ] ; then # using NAG f90 C_CFH="$C_CFH -DNAGf90F" CFHFLAGS="$CFLAGS $C_CFH" fi export CFHFLAGS C_CFH F77 fi # # Ouput a banner # Banner # # Get the HDF5 and SZIP library and include directories from the user # GetHdfEnv GetSzipEnv # # Set up the architecture-dependent environment scripts # SetupEnvScripts # # Run the architecture-dependent installation commands # MAKECMD=make; export MAKECMD # force use of regular make # ClearMake doesn't work with # current makefile : ${MAKECMD:=make} # the make command defaults to 'make' # augment path if using clearmake if [ "`echo $MAKECMD | grep clearmake`" != "" ] ; then echo "$this_script : note : make command is set to clearmake" PATH="$PATH:/usr/atria/bin" export PATH fi cd $HDFEOS5_SRC echo "" echo "" echo "-----------------------------------------------------------------------" echo "" echo "Configuring the GCTP library" echo "" echo "-----------------------------------------------------------------------" echo "" make_file="-f Makefile" # default makefile case $BRAND in dec) echo cp $HDFEOS5_LIB/../tmp/geolibDEC.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibDEC.a $HDFEOS5_LIB/libGctp.a ;; hp) case $OS_VERSION in 10) echo cp $HDFEOS5_LIB/../tmp/geolibHP.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibHP.a $HDFEOS5_LIB/libGctp.a ;; 11) echo cp $HDFEOS5_LIB/../tmp/geolibHP11.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibHP11.a $HDFEOS5_LIB/libGctp.a ;; esac ;; ibm) echo cp $HDFEOS5_LIB/../tmp/geolibIBM.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibIBM.a $HDFEOS5_LIB/libGctp.a ;; sgi32) case $OS_VERSION in 2) echo cp $HDFEOS5_LIB/../tmp/geolibIRIX62-n32.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibIRIX62-n32.a $HDFEOS5_LIB/libGctp.a ;; 5) echo cp $HDFEOS5_LIB/../tmp/geolibIRIX65-n32.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibIRIX65-n32.a $HDFEOS5_LIB/libGctp.a ;; esac ;; sgi64) case $OS_VERSION in 2) if [ "$cpu_type" = "4" ] ; then echo cp $HDFEOS5_LIB/../tmp/geolibIRIX62-64mips3.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibIRIX62-64mips3.a $HDFEOS5_LIB/libGctp.a else echo cp $HDFEOS5_LIB/../tmp/geolibIRIX62-64.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibIRIX62-64.a $HDFEOS5_LIB/libGctp.a fi ;; 5) echo cp $HDFEOS5_LIB/../tmp/geolibIRIX65-64.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibIRIX65-64.a $HDFEOS5_LIB/libGctp.a ;; esac ;; sun5) echo cp $HDFEOS5_LIB/../tmp/geolibSOL24.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibSOL24.a $HDFEOS5_LIB/libGctp.a ;; sun5.8) echo cp $HDFEOS5_LIB/../tmp/geolibSOL28.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibSOL28.a $HDFEOS5_LIB/libGctp.a ;; sun5.9) echo cp $HDFEOS5_LIB/../tmp/geolibSOL29.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibSOL29.a $HDFEOS5_LIB/libGctp.a ;; sun5.10) echo cp $HDFEOS5_LIB/../tmp/geolibSOL210.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibSOL210.a $HDFEOS5_LIB/libGctp.a ;; linux | linux32 | linux64) if [ "`uname -m`" = "x86_64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then echo cp $HDFEOS5_LIB/../tmp/geolibLINUX.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibLINUX.a $HDFEOS5_LIB/libGctp.a else echo cp $HDFEOS5_LIB/../tmp/geolibLINUX64.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibLINUX64.a $HDFEOS5_LIB/libGctp.a fi elif [ "`uname -m`" = "ia64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then echo cp $HDFEOS5_LIB/../tmp/geolibLINUX.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibLINUX.a $HDFEOS5_LIB/libGctp.a else echo cp $HDFEOS5_LIB/../tmp/geolibLINUXIA64.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibLINUXIA64.a $HDFEOS5_LIB/libGctp.a fi else echo cp $HDFEOS5_LIB/../tmp/geolibLINUX.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibLINUX.a $HDFEOS5_LIB/libGctp.a fi ;; macintosh) echo cp $HDFEOS5_LIB/../tmp/geolibMAC.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibMAC.a $HDFEOS5_LIB/libGctp.a ;; macintel | macintel32 | macintel64) if [ "$MACINTEL_COMP_FLAG" = "-m32" ] || [ "$MACINTEL_COMP_FLAG" = "" ] ; then echo cp $HDFEOS5_LIB/../tmp/geolibMACIntel.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibMACIntel.a $HDFEOS5_LIB/libGctp.a else echo cp $HDFEOS5_LIB/../tmp/geolibMACIntel64.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibMACIntel64.a $HDFEOS5_LIB/libGctp.a fi ;; cygwin) echo cp $HDFEOS5_LIB/../tmp/geolibCYGWIN.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibCYGWIN.a $HDFEOS5_LIB/libGctp.a ;; winnt98) echo cp $HDFEOS5_LIB/../tmp/geolibCYGWIN.a $HDFEOS5_LIB/libGctp.a cp $HDFEOS5_LIB/../tmp/geolibCYGWIN.a $HDFEOS5_LIB/libGctp.a ;; *) echo '!!!!!! WARNING !!!!!! WARNING !!!!!! WARNING !!!!! WARNING !!!!!!' echo '"'$BRAND'"' is not officially supported, no GCTP library available echo for this mode '"'$BRAND'"'. HDF-EOS5 grid routines will not work echo without this library. ;; esac if [ -f $HDFEOS5_LIB/libGctp.a ] ; then chmod u+w $HDFEOS5_LIB/libGctp.a else cd ${HDFEOS5_HOME}/gctp make -f Makefile case $BRAND in dec) cp lib/$BRAND/libgctpdec.a $HDFEOS5_LIB/libGctp.a ;; hp) cp lib/$BRAND/libgctphp.a $HDFEOS5_LIB/libGctp.a ;; ibm) cp lib/$BRAND/libgctpibm.a $HDFEOS5_LIB/libGctp.a ;; sgi) cp lib/$BRAND/libgctpsgi32.a $HDFEOS5_LIB/libGctp.a ;; sgi32) if [ "$cpu_type" = "4" ] ; then cp lib/$BRAND/libgctpsgin32.a $HDFEOS5_LIB/libGctp.a else cp lib/$BRAND/libgctpsgi65_n32.a $HDFEOS5_LIB/libGctp.a fi ;; sgi64) if [ "$cpu_type" = "4" ] ; then cp lib/$BRAND/libgctpsgi64.a $HDFEOS5_LIB/libGctp.a else cp lib/$BRAND/libgctpsgi65_64.a $HDFEOS5_LIB/libGctp.a fi ;; sun4) cp lib/$BRAND/libgctpsol24.a $HDFEOS5_LIB/libGctp.a ;; sun5) cp lib/$BRAND/libgctpsol25.a $HDFEOS5_LIB/libGctp.a ;; sun5.8) cp lib/$BRAND/libgctpsol28.a $HDFEOS5_LIB/libGctp.a ;; sun5.9) cp lib/$BRAND/libgctpsol29.a $HDFEOS5_LIB/libGctp.a ;; sun5.10) cp lib/$BRAND/libgctpsol210.a $HDFEOS5_LIB/libGctp.a ;; linux | linux32 | linux64) if [ "`uname -m`" = "x86_64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then cp lib/$BRAND/libgctplinux.a $HDFEOS5_LIB/libGctp.a else cp lib/$BRAND/libgctplinux64.a $HDFEOS5_LIB/libGctp.a fi elif [ "`uname -m`" = "ia64" ] ; then if [ "$LNX_COMP_FLAG" = "-m32" ] ; then cp lib/$BRAND/libgctplinux.a $HDFEOS5_LIB/libGctp.a else cp lib/$BRAND/libgctplinuxia64.a $HDFEOS5_LIB/libGctp.a fi else cp lib/$BRAND/libgctplinux.a $HDFEOS5_LIB/libGctp.a fi ;; macintosh) cp lib/$BRAND/libgctpmacintosh.a $HDFEOS5_LIB/libGctp.a ;; macintel) cp lib/$BRAND/libgctpmacintel.a $HDFEOS5_LIB/libGctp.a ;; macintel32) cp lib/$BRAND/libgctpmacintel32.a $HDFEOS5_LIB/libGctp.a ;; macintel64) cp lib/$BRAND/libgctpmacintel64.a $HDFEOS5_LIB/libGctp.a ;; cygwin) cp lib/$BRAND/libgctpcygwin.a $HDFEOS5_LIB/libGctp.a ;; winnt98) cp lib/$BRAND/libgctpcygwin.a $HDFEOS5_LIB/libGctp.a ;; esac fi cd $HDFEOS5_SRC # # check to see if valid C compiler path was specified # cc="" if [ "$cc_path" != "" ] ; then if [ -f $cc_path ] ; then cc=`basename $cc_path` cc_path=`echo $cc_path | sed 's%/[^/]*/*$%%'` case "$BRAND" in "sgi32" ) CC="$cc_path/$cc -n32" ;; "sgi64" ) cpu_type=`hinv | fgrep CPU | head -1 | cut -d' ' -f3 | cut -b2` if [ "$cpu_type" == "4" ] ; then CC="$cc_path/$cc -64 -mips3" else CC="$cc_path/$cc -64 -mips4" fi ;; * ) CC="$cc_path/$cc" ;; esac export CC # user overrides C compiler name fi if [ -d $cc_path ] ; then # make sure cc_path is now a directory PATH=${cc_path}:${PATH} # prepend cc_path to search path export PATH else cc_path="" echo "Warning: C compiler directory $cc_path not found." echo "HDFEOS5 build may fail." fi fi cat /dev/null > ../include/HE5_config.h echo "" echo "" echo "-----------------------------------------------------------------------" echo "" echo "Building HDFEOS5" echo "" echo "-----------------------------------------------------------------------" echo "" $MAKECMD $make_file if [ $? != 0 ] ; then ErrorExit "$MAKECMD $make_file" fi if [ "$BRAND" = "macintosh" ] ; then ranlib -s $HDFEOS5_LIB/libGctp.a ranlib -s $HDFEOS5_LIB/libhe5_hdfeos.a fi if [ "$BRAND" = "macintel" ] ; then ranlib -s $HDFEOS5_LIB/libGctp.a ranlib -s $HDFEOS5_LIB/libhe5_hdfeos.a fi if [ "$BRAND" = "macintel32" ] ; then ranlib -s $HDFEOS5_LIB/libGctp.a ranlib -s $HDFEOS5_LIB/libhe5_hdfeos.a fi if [ "$BRAND" = "macintel64" ] ; then ranlib -s $HDFEOS5_LIB/libGctp.a ranlib -s $HDFEOS5_LIB/libhe5_hdfeos.a fi if [ $BRAND = "cygwin" ] ; then ranlib $HDFEOS5_LIB/libGctp.a ranlib $HDFEOS5_LIB/libhe5_hdfeos.a fi echo "" echo "" echo "-----------------------------------------------------------------------" echo "" echo "Cleaning up" echo "" echo "-----------------------------------------------------------------------" echo "" $MAKECMD $make_file clean if [ $? != 0 ] ; then ErrorExit "$MAKECMD $make_file clean" fi echo "" echo "" echo "-----------------------------------------------------------------------" echo "" echo "Building HDFEOS5 utilities" echo "" echo "-----------------------------------------------------------------------" echo "" HDFEOS5_UTIL=${HDFEOS5_HOME}/util # utility files cd $HDFEOS5_UTIL make_utilfile="-f makefile" # default utility makefile $MAKECMD $make_utilfile if [ $? != 0 ] ; then ErrorExit "$MAKECMD $make_utilfile" fi # cp HE5_GDconvert_ij2ll $HDFEOS5_BIN/HE5_GDconvert_ij2ll # /bin/rm $HDFEOS5_UTIL/HE5_GDconvert_ij2ll chmod u+wx $HDFEOS5_BIN/HE5_GDconvert_ij2ll # done echo "" echo "" echo "-----------------------------------------------------------------------" echo "" echo " HDFEOS5 installation ending at `date`" echo "" echo "-----------------------------------------------------------------------" hdf-eos5-5.1.14+dfsg.1/include/0000755000175000017500000000000012024715435017052 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/include/Makefile.am0000755000175000017500000000036412024715435021114 0ustar amckinstryamckinstry# gctp/include Makefile.am # Boilerplate include include $(top_srcdir)/config/include.am # Headers to install include_HEADERS = HE5_GctpFunc.h HE5_HdfEosDef.h HE5_config.h cproj.h ease.h \ isin.h proj.h tutils.h cfortHdf.h hdf-eos5-5.1.14+dfsg.1/include/hdfeos5.inc0000644000175000017500000003511312024715435021105 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 11, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines ! * ========================================================== ! * Contents: ! * HDFEOS5 data type tags ! * HDFEOS5 logical constants ! * HDFEOS5 file access tags ! * HDFEOS5/GCTP library codes ! * ! * =========================================================== ! HDFEOS5 DATA TYPE TAGS ! ======================= integer HE5T_NATIVE_INT integer HE5T_NATIVE_UINT integer HE5T_NATIVE_SHORT integer HE5T_NATIVE_USHORT integer HE5T_NATIVE_SCHAR integer HE5T_NATIVE_UCHAR integer HE5T_NATIVE_LONG integer HE5T_NATIVE_ULONG integer HE5T_NATIVE_LLONG integer HE5T_NATIVE_ULLONG integer HE5T_NATIVE_FLOAT integer HE5T_NATIVE_REAL integer HE5T_NATIVE_DOUBLE integer HE5T_NATIVE_LDOUBLE integer HE5T_NATIVE_INT8 integer HE5T_NATIVE_UINT8 integer HE5T_NATIVE_INT16 integer HE5T_NATIVE_UINT16 integer HE5T_NATIVE_INT32 integer HE5T_NATIVE_UINT32 integer HE5T_NATIVE_INT64 integer HE5T_NATIVE_UINT64 integer HE5T_NATIVE_B8 integer HE5T_NATIVE_B16 integer HE5T_NATIVE_B32 integer HE5T_NATIVE_B64 integer HE5T_NATIVE_HSIZE integer HE5T_NATIVE_HERR integer HE5T_NATIVE_HBOOL integer HE5T_STD_I8BE integer HE5T_STD_I8LE integer HE5T_STD_I16BE integer HE5T_STD_I16LE integer HE5T_STD_I32BE integer HE5T_STD_I32LE integer HE5T_STD_I64BE integer HE5T_STD_I64LE integer HE5T_STD_U8BE integer HE5T_STD_U8LE integer HE5T_STD_U16BE integer HE5T_STD_U16LE integer HE5T_STD_U32BE integer HE5T_STD_U32LE integer HE5T_STD_U64BE integer HE5T_STD_U64LE integer HE5T_STD_B8BE integer HE5T_STD_B8LE integer HE5T_STD_B16BE integer HE5T_STD_B16LE integer HE5T_STD_B32BE integer HE5T_STD_B32LE integer HE5T_STD_B64BE integer HE5T_STD_B64LE integer HE5T_IEEE_F32BE integer HE5T_IEEE_F32LE integer HE5T_IEEE_F64BE integer HE5T_IEEE_F64LE integer HE5T_NATIVE_CHAR integer HE5T_CHARSTRING parameter(HE5T_NATIVE_INT = 0) parameter(HE5T_NATIVE_UINT = 1) parameter(HE5T_NATIVE_SHORT = 2) parameter(HE5T_NATIVE_USHORT = 3) parameter(HE5T_NATIVE_SCHAR = 4) parameter(HE5T_NATIVE_UCHAR = 5) parameter(HE5T_NATIVE_LONG = 6) parameter(HE5T_NATIVE_ULONG = 7) parameter(HE5T_NATIVE_LLONG = 8) parameter(HE5T_NATIVE_ULLONG = 9) parameter(HE5T_NATIVE_FLOAT =10) parameter(HE5T_NATIVE_REAL =10) parameter(HE5T_NATIVE_DOUBLE =11) parameter(HE5T_NATIVE_LDOUBLE =12) parameter(HE5T_NATIVE_INT8 =13) parameter(HE5T_NATIVE_UINT8 =14) parameter(HE5T_NATIVE_INT16 =15) parameter(HE5T_NATIVE_UINT16 =16) parameter(HE5T_NATIVE_INT32 =17) parameter(HE5T_NATIVE_UINT32 =18) parameter(HE5T_NATIVE_INT64 =19) parameter(HE5T_NATIVE_UINT64 =20) parameter(HE5T_NATIVE_B8 =21) parameter(HE5T_NATIVE_B16 =22) parameter(HE5T_NATIVE_B32 =23) parameter(HE5T_NATIVE_B64 =24) parameter(HE5T_NATIVE_HSIZE =25) parameter(HE5T_NATIVE_HERR =26) parameter(HE5T_NATIVE_HBOOL =27) parameter(HE5T_STD_I8BE =28) parameter(HE5T_STD_I8LE =29) parameter(HE5T_STD_I16BE =30) parameter(HE5T_STD_I16LE =31) parameter(HE5T_STD_I32BE =32) parameter(HE5T_STD_I32LE =33) parameter(HE5T_STD_I64BE =34) parameter(HE5T_STD_I64LE =35) parameter(HE5T_STD_U8BE =36) parameter(HE5T_STD_U8LE =37) parameter(HE5T_STD_U16BE =38) parameter(HE5T_STD_U16LE =39) parameter(HE5T_STD_U32BE =40) parameter(HE5T_STD_U32LE =41) parameter(HE5T_STD_U64BE =42) parameter(HE5T_STD_U64LE =43) parameter(HE5T_STD_B8BE =44) parameter(HE5T_STD_B8LE =45) parameter(HE5T_STD_B16BE =46) parameter(HE5T_STD_B16LE =47) parameter(HE5T_STD_B32BE =48) parameter(HE5T_STD_B32LE =49) parameter(HE5T_STD_B64BE =50) parameter(HE5T_STD_B64LE =51) parameter(HE5T_IEEE_F32BE =52) parameter(HE5T_IEEE_F32LE =53) parameter(HE5T_IEEE_F64BE =54) parameter(HE5T_IEEE_F64LE =55) parameter(HE5T_NATIVE_CHAR =56) parameter(HE5T_CHARSTRING =57) integer HE5S_UNLIMITED_F parameter(HE5S_UNLIMITED_F = -1) ! HDFEOS5 FILE ACCESS TAGS ! ======================== integer HE5F_ACC_RDWR integer HE5F_ACC_RDONLY integer HE5F_ACC_TRUNC parameter(HE5F_ACC_RDWR = 100) parameter(HE5F_ACC_RDONLY = 101) parameter(HE5F_ACC_TRUNC = 102) ! TOOLKIT FILE ACCESS TAGS ! ======================== integer HDF4_ACC_RDONLY integer HDF4_ACC_RDWR integer HDF4_ACC_CREATE integer HDF5_ACC_RDONLY integer HDF5_ACC_RDWR integer HDF5_ACC_CREATE parameter(HDF4_ACC_RDONLY = 1) parameter(HDF4_ACC_RDWR = 3) parameter(HDF4_ACC_CREATE = 4) parameter(HDF5_ACC_RDONLY = 11) parameter(HDF5_ACC_RDWR = 13) parameter(HDF5_ACC_CREATE = 14) ! HDFEOS5 MERGE CODES ! ==================== integer HE5_HDFE_NOMERGE integer HE5_HDFE_AUTOMERGE parameter(HE5_HDFE_NOMERGE =0) parameter(HE5_HDFE_AUTOMERGE =1) ! HDFEOS5 XXentries CODES ! ======================= integer HE5_HDFE_NENTDIM integer HE5_HDFE_NENTMAP integer HE5_HDFE_NENTIMAP integer HE5_HDFE_NENTGFLD integer HE5_HDFE_NENTDFLD parameter(HE5_HDFE_NENTDIM =0) parameter(HE5_HDFE_NENTMAP =1) parameter(HE5_HDFE_NENTIMAP =2) parameter(HE5_HDFE_NENTGFLD =3) parameter(HE5_HDFE_NENTDFLD =4) ! HDFEOS5 ANGLE CONVERSION CODES ! ============================== integer HE5_HDFE_RAD_DEG integer HE5_HDFE_DEG_RAD integer HE5_HDFE_DMS_DEG integer HE5_HDFE_DEG_DMS integer HE5_HDFE_RAD_DMS integer HE5_HDFE_DMS_RAD parameter(HE5_HDFE_RAD_DEG =0) parameter(HE5_HDFE_DEG_RAD =1) parameter(HE5_HDFE_DMS_DEG =2) parameter(HE5_HDFE_DEG_DMS =3) parameter(HE5_HDFE_RAD_DMS =4) parameter(HE5_HDFE_DMS_RAD =5) ! HDFEOS5 SWATH SUBSET CODES ! ========================== integer HE5_HDFE_MIDPOINT integer HE5_HDFE_ENDPOINT integer HE5_HDFE_ANYPOINT integer HE5_HDFE_INTERNAL integer HE5_HDFE_EXTERNAL integer HE5_HDFE_NOPREVSUB parameter(HE5_HDFE_MIDPOINT =0) parameter(HE5_HDFE_ENDPOINT =1) parameter(HE5_HDFE_ANYPOINT =2) parameter(HE5_HDFE_INTERNAL =0) parameter(HE5_HDFE_EXTERNAL =1) parameter(HE5_HDFE_NOPREVSUB =-1) ! HDFEOS5 GRID ORIGIN CODES ! ========================= integer HE5_HDFE_GD_UL integer HE5_HDFE_GD_UR integer HE5_HDFE_GD_LL integer HE5_HDFE_GD_LR parameter(HE5_HDFE_GD_UL =0) parameter(HE5_HDFE_GD_UR =1) parameter(HE5_HDFE_GD_LL =2) parameter(HE5_HDFE_GD_LR =3) ! HDFEOS5 PIXEL REGISTRATION CODES ! ================================ integer HE5_HDFE_CENTER integer HE5_HDFE_CORNER parameter(HE5_HDFE_CENTER =0) parameter(HE5_HDFE_CORNER =1) ! HDFEOS5 GCTP PROJECTION CODES ! ============================= integer HE5_GCTP_GEO integer HE5_GCTP_UTM integer HE5_GCTP_SPCS integer HE5_GCTP_ALBERS integer HE5_GCTP_LAMCC integer HE5_GCTP_MERCAT integer HE5_GCTP_PS integer HE5_GCTP_POLYC integer HE5_GCTP_EQUIDC integer HE5_GCTP_TM integer HE5_GCTP_STEREO integer HE5_GCTP_LAMAZ integer HE5_GCTP_AZMEQD integer HE5_GCTP_GNOMON integer HE5_GCTP_ORTHO integer HE5_GCTP_GVNSP integer HE5_GCTP_SNSOID integer HE5_GCTP_EQRECT integer HE5_GCTP_MILLER integer HE5_GCTP_VGRINT integer HE5_GCTP_HOM integer HE5_GCTP_ROBIN integer HE5_GCTP_SOM integer HE5_GCTP_ALASKA integer HE5_GCTP_GOOD integer HE5_GCTP_MOLL integer HE5_GCTP_IMOLL integer HE5_GCTP_HAMMER integer HE5_GCTP_WAGIV integer HE5_GCTP_WAGVII integer HE5_GCTP_OBLEQA integer HE5_GCTP_ISINUS parameter(HE5_GCTP_GEO =0) parameter(HE5_GCTP_UTM =1) parameter(HE5_GCTP_SPCS =2) parameter(HE5_GCTP_ALBERS =3) parameter(HE5_GCTP_LAMCC =4) parameter(HE5_GCTP_MERCAT =5) parameter(HE5_GCTP_PS =6) parameter(HE5_GCTP_POLYC =7) parameter(HE5_GCTP_EQUIDC =8) parameter(HE5_GCTP_TM =9) parameter(HE5_GCTP_STEREO =10) parameter(HE5_GCTP_LAMAZ =11) parameter(HE5_GCTP_AZMEQD =12) parameter(HE5_GCTP_GNOMON =13) parameter(HE5_GCTP_ORTHO =14) parameter(HE5_GCTP_GVNSP =15) parameter(HE5_GCTP_SNSOID =16) parameter(HE5_GCTP_EQRECT =17) parameter(HE5_GCTP_MILLER =18) parameter(HE5_GCTP_VGRINT =19) parameter(HE5_GCTP_HOM =20) parameter(HE5_GCTP_ROBIN =21) parameter(HE5_GCTP_SOM =22) parameter(HE5_GCTP_ALASKA =23) parameter(HE5_GCTP_GOOD =24) parameter(HE5_GCTP_MOLL =25) parameter(HE5_GCTP_IMOLL =26) parameter(HE5_GCTP_HAMMER =27) parameter(HE5_GCTP_WAGIV =28) parameter(HE5_GCTP_WAGVII =29) parameter(HE5_GCTP_OBLEQA =30) parameter(HE5_GCTP_ISINUS =99) ! HDFEOS5 TILIND/COMPRESSION CODES ! ================================ integer HE5_HDFE_NOTILE integer HE5_HDFE_TILE integer HE5_HDFE_COMP_NONE integer HE5_HDFE_COMP_RLE integer HE5_HDFE_COMP_NBIT integer HE5_HDFE_COMP_SKPHUFF integer HE5_HDFE_COMP_DEFLATE integer HE5_HDFE_COMP_SZIP_CHIP integer HE5_HDFE_COMP_SZIP_K13 integer HE5_HDFE_COMP_SZIP_EC integer HE5_HDFE_COMP_SZIP_NN integer HE5_HDFE_COMP_SZIP_K13orEC integer HE5_HDFE_COMP_SZIP_K13orNN integer HE5_HDFE_COMP_SHUF_DEFLATE integer HE5_HDFE_COMP_SHUF_SZIP_CHIP integer HE5_HDFE_COMP_SHUF_SZIP_K13 integer HE5_HDFE_COMP_SHUF_SZIP_EC integer HE5_HDFE_COMP_SHUF_SZIP_NN integer HE5_HDFE_COMP_SHUF_SZIP_K13orEC integer HE5_HDFE_COMP_SHUF_SZIP_K13orNN parameter(HE5_HDFE_NOTILE =0) parameter(HE5_HDFE_TILE =1) parameter(HE5_HDFE_COMP_NONE =0) parameter(HE5_HDFE_COMP_RLE =1) parameter(HE5_HDFE_COMP_NBIT =2) parameter(HE5_HDFE_COMP_SKPHUFF =3) parameter(HE5_HDFE_COMP_DEFLATE =4) parameter(HE5_HDFE_COMP_SZIP_CHIP =5) parameter(HE5_HDFE_COMP_SZIP_K13 =6) parameter(HE5_HDFE_COMP_SZIP_EC =7) parameter(HE5_HDFE_COMP_SZIP_NN =8) parameter(HE5_HDFE_COMP_SZIP_K13orEC =9) parameter(HE5_HDFE_COMP_SZIP_K13orNN =10) parameter(HE5_HDFE_COMP_SHUF_DEFLATE =11) parameter(HE5_HDFE_COMP_SHUF_SZIP_CHIP =12) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13 =13) parameter(HE5_HDFE_COMP_SHUF_SZIP_EC =14) parameter(HE5_HDFE_COMP_SHUF_SZIP_NN =15) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orEC =16) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orNN =17) ! HDFEOS5 GROUP CODES ! =================== integer HE5_HDFE_GEOGROUP integer HE5_HDFE_DATAGROUP integer HE5_HDFE_ATTRGROUP integer HE5_HDFE_GRPATTRGROUP integer HE5_HDFE_LOCATTRGROUP integer HE5_HDFE_PROFGROUP integer HE5_HDFE_PROFGRPATTRGROUP integer HE5_HDFE_GEOGRPATTRGROUP parameter(HE5_HDFE_GEOGROUP =0) parameter(HE5_HDFE_DATAGROUP =1) parameter(HE5_HDFE_ATTRGROUP =2) parameter(HE5_HDFE_GRPATTRGROUP =3) parameter(HE5_HDFE_LOCATTRGROUP =4) parameter(HE5_HDFE_PROFGROUP =5) parameter(HE5_HDFE_PROFGRPATTRGROUP =6) parameter(HE5_HDFE_GEOGRPATTRGROUP =7) hdf-eos5-5.1.14+dfsg.1/include/HE5_config.h.in0000644000175000017500000000725712024715435021551 0ustar amckinstryamckinstry/* include/HE5_config.h.in. Generated from configure.ac by autoheader. */ /* Define if HDF5 has szip any type of filter */ #undef H5_HAVE_FILTER_SZIP /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define if support for szip filter is enabled */ #undef HAVE_FILTER_SZIP /* Define if support for szip encoder filter is enabled */ #undef HAVE_FILTER_SZIP_ENCODER /* Define to 1 if you have the header file. */ #undef HAVE_HDF5_H /* Define if HDF5 has szip decoder filter */ #undef HAVE_HDF5_SZIP_DECODER /* Define if HDF5 has szip encoder filter */ #undef HAVE_HDF5_SZIP_ENCODER /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `hdf5' library (-lhdf5). */ #undef HAVE_LIBHDF5 /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the `sz' library (-lsz). */ #undef HAVE_LIBSZ /* Define to 1 if you have the `z' library (-lz). */ #undef HAVE_LIBZ /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if your system has a GNU libc compatible `malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC /* Define to 1 if you have the header file. */ #undef HAVE_MALLOC_H /* Define to 1 if you have the `memchr' function. */ #undef HAVE_MEMCHR /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the `pow' function. */ #undef HAVE_POW /* Define to 1 if your system has a GNU libc compatible `realloc' function, and to 0 otherwise. */ #undef HAVE_REALLOC /* Define to 1 if you have the `sqrt' function. */ #undef HAVE_SQRT /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SZLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_ZLIB_H /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION /* Define if threadsafe HDF-EOS is enabled */ #undef _HDFEOS5_THREADSAFE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to rpl_malloc if the replacement function should be used. */ #undef malloc /* Define to `long' if does not define. */ #undef off_t /* Define to rpl_realloc if the replacement function should be used. */ #undef realloc /* Define to `unsigned' if does not define. */ #undef size_t hdf-eos5-5.1.14+dfsg.1/include/ease.h0000644000175000017500000000143712024715435020145 0ustar amckinstryamckinstry#ifndef EASE_H_ #define EASE_H_ #include #define BCEA_COLS25 1383 /* total number of columns for EASE grid */ #define BCEA_ROWS25 586 /* total number of rows for EASE grid */ #define BCEA_CELL_M 25067.525 /* Cell size for EASE grid */ #define BCEA_RE_M 6371228.0 /* Earth radius used in GCTP projection tools for Behrmann Cylindrical Equal Area projection */ #define DEFAULT_BCEA_LTRUESCALE 30.00 /*Latitude of true scale in DMS */ #define BCEA_COS_PHI1 cos(DEFAULT_BCEA_LTRUESCALE *3.141592653589793238 /180.0) #define PI 3.141592653589793238 #define EASE_GRID_DEFAULT_UPLEFT_LON -180.0 #define EASE_GRID_DEFAULT_UPLEFT_LAT 86.72 #define EASE_GRID_DEFAULT_LOWRGT_LON 180.0 #define EASE_GRID_DEFAULT_LOWRGT_LAT -86.72 #endif /* #ifndef EASE_H_ */ hdf-eos5-5.1.14+dfsg.1/include/cproj.h0000755000175000017500000000164512024715435020351 0ustar amckinstryamckinstry#include #ifdef __cplusplus extern "C" { #endif #define PI 3.141592653589793238 #define HALF_PI (PI*0.5) #define TWO_PI (PI*2.0) #define EPSLN 1.0e-10 #define R2D 57.2957795131 /* #define D2R 0.0174532925199 */ #define D2R 1.745329251994328e-2 #define S2R 4.848136811095359e-6 #define OK 0 #define ERROR -1 #define IN_BREAK -2 /* Misc macros -----------*/ #define SQUARE(x) ((x) * (x)) /* x**2 */ #define CUBE(x) ((x) * (x) * (x)) /* x**3 */ #define QUAD(x) ((x) * (x) * (x) * (x)) /* x**4 */ #define GMAX(A, B) ((A) > (B) ? (A) : (B)) /* assign maximum of a and b */ #define GMIN(A, B) ((A) < (B) ? (A) : (B)) /* assign minimum of a and b */ #define IMOD(A, B) (A) - (((A) / (B)) * (B)) /* Integer mod function */ /*#include "cproj_prototypes.h"*/ /* causes problem to hdfeos5 clearcase Lastpass build */ #include "HE5_GctpFunc.h" #ifdef __cplusplus } #endif hdf-eos5-5.1.14+dfsg.1/include/cfortHdf.h0000755000175000017500000024425612024715435021002 0ustar amckinstryamckinstry/* Copyright (C) 1996 Hughes and Applied Research Corporation Permission to use, modify, and distribute this software and its documentation for any purpose without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. */ /* cfortran.h */ /* 2.8 */ /* anonymous ftp: zebra.desy.de */ /* Burkhard Burow, burow@vxdesy.cern.ch, University of Toronto, 1993. */ /* Feb 2008 Abe Taaheri extensed "fortran to C calls" to 15 argument funcs */ #ifndef __CFORTRAN_LOADED #define __CFORTRAN_LOADED /* THIS FILE IS PROPERTY OF BURKHARD BUROW. IF YOU ARE USING THIS FILE YOU SHOULD ALSO HAVE ACCESS TO CFORTRAN.DOC WHICH PROVIDES TERMS FOR USING, MODIFYING, COPYING AND DISTRIBUTING THE CFORTRAN.H PACKAGE. */ /* Before using cfortran.h on CRAY, RS/6000, Apollo >=6.8, gcc -ansi, or any other ANSI C compiler, you must once do: prompt> mv cfortran.h cf_temp.h && sed 's/\/\*\*\//\#\#/g' cf_temp.h >cfortran.h i.e. we change the ' / * * / ' kludge to # #. */ /* First prepare for the C compiler. */ #if (defined(vax)&&defined(unix)) || (defined(__vax__)&&defined(__unix__)) #define VAXUltrix #endif #include /* NULL [in all machines stdio.h] */ #include /* strlen, memset, memcpy, memchr. */ #if !( defined(VAXUltrix) || defined(sun) || (defined(apollo)&&!defined(__STDCPP__)) ) #include /* malloc,free */ #else #include #ifdef apollo #define __CF__APOLLO67 /* __STDCPP__ is in Apollo 6.8 (i.e. ANSI) and onwards */ #endif #endif #if (!defined(__GNUC__) && (defined(sun)||defined(VAXUltrix)||defined(lynx))) #define __CF__KnR /* Sun, LynxOS and VAX Ultrix cc only supports K&R. */ /* Manually define __CF__KnR for HP if desired/required.*/ #endif /* i.e. We will generate Kernighan and Ritchie C. */ /* Note that you may define __CF__KnR before #include cfortran.h, in order to generate K&R C instead of the default ANSI C. The differences are mainly in the function prototypes and declarations. All machines, except the Apollo, work with either style. The Apollo's argument promotion rules require ANSI or use of the obsolete std_$call which we have not implemented here. Hence on the Apollo, only C calling FORTRAN subroutines will work using K&R style.*/ /* Remainder of cfortran.h depends on the Fortran compiler. */ /* VAX/VMS does not let us \-split these long lines. */ #if !(defined(NAGf90Fortran)||defined(f2cFortran)||defined(hpuxFortran)||defined(apolloFortran)||defined(sunFortran)||defined(IBMR2Fortran)||defined(CRAYFortran)||defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)) /* If no Fortran compiler is given, we choose one for the machines we know. */ #if defined(lynx) || defined(VAXUltrix) #define f2cFortran /* Lynx: Only support f2c at the moment. VAXUltrix: f77 behaves like f2c. Support f2c or f77 with gcc, vcc with f2c. f77 with vcc works, missing link magic for f77 I/O.*/ #endif #if defined(__hpux) /* 921107: Use __hpux instead of __hp9000s300 */ #define hpuxFortran /* Should also allow hp9000s7/800 use.*/ #endif #if defined(apollo) #define apolloFortran /* __CF__APOLLO67 defines some behavior. */ #endif #if defined(sun) #define sunFortran #endif #if defined(_IBMR2) #define IBMR2Fortran #endif #if defined(_CRAY) #define CRAYFortran /* _CRAY2 defines some behavior. */ #endif #if defined(mips) || defined(__mips) #define mipsFortran #endif #if defined(vms) || defined(__vms) #define vmsFortran #endif #if defined(__alpha) && defined(__unix__) #define DECFortran #endif #endif /* ...Fortran */ #if defined(VAXC) && !defined(__VAXC) #define OLD_VAXC #pragma nostandard /* Prevent %CC-I-PARAMNOTUSED. */ #endif /* Throughout cfortran.h we use: UN = Uppercase Name. LN = Lowercase Name. */ #if defined(f2cFortran) || defined(NAGf90Fortran) || defined(DECFortran) || defined(mipsFortran) || defined(apolloFortran) || defined(sunFortran) || defined(extname) #if defined(f2cFortran) #define CFC_(UN,LN) LN##_ /* Lowercase FORTRAN symbols. */ #else #define CFC_(UN,LN) LN##_ /* Lowercase FORTRAN symbols. */ #endif /* f2cFortran */ #define orig_fcallsc CFC_ #else #ifdef CRAYFortran #define CFC_(UN,LN) UN /* Uppercase FORTRAN symbols. */ #define orig_fcallsc(UN,LN) CFC_(UN,LN) /* CRAY insists on arg.'s here. */ #else /* For following machines one may wish to change the fcallsc default. */ #define CF_SAME_NAMESPACE #ifdef vmsFortran #define CFC_(UN,LN) LN /* Either case FORTRAN symbols. */ /* BUT we usually use UN for C macro to FORTRAN routines, so use LN here,*/ /* because VAX/VMS doesn't do recursive macros. */ #define orig_fcallsc(UN,LN) UN #else /* HP-UX without +ppu or IBMR2 without -qextname. NOT reccomended. */ #define CFC_(UN,LN) LN /* Lowercase FORTRAN symbols. */ #define orig_fcallsc CFC_ #endif /* vmsFortran */ #endif /* CRAYFortran */ #endif /* ....Fortran */ #define fcallsc orig_fcallsc #define preface_fcallsc(P,p,UN,LN) CFC_(P##UN,p##LN) #define append_fcallsc(P,p,UN,LN) CFC_(UN##P,LN##p) #define C_FUNCTION fcallsc #define FORTRAN_FUNCTION CFC_ #define COMMON_BLOCK CFC_ #if defined(NAGf90Fortran) || defined(f2cFortran) || defined(mipsFortran) #define LOGICAL_STRICT /* These have .eqv./.neqv. == .eq./.ne. */ #endif #ifdef CRAYFortran #if _CRAY #include #else #include "fortran.h" /* i.e. if crosscompiling assume user has file. */ #endif #define DOUBLE_PRECISION long double #define PPFLOATVVVVVVV (float *) /* Used for C calls FORTRAN. */ /* CRAY's double==float but CRAY says pointers to doubles and floats are diff.*/ #define VOIDP0 (void *) /* When FORTRAN calls C, we don't know if C routine arg.'s have been declared float *, or double *. */ #else #define DOUBLE_PRECISION double #define PPFLOATVVVVVVV #define VOIDP0 #endif #ifdef vmsFortran #if defined(vms) || defined(__vms) #include #else #include "descrip.h" /* i.e. if crosscompiling assume user has file. */ #endif #endif #ifdef sunFortran #if sun #include /* Sun's FLOATFUNCTIONTYPE, ASSIGNFLOAT, RETURNFLOAT. */ #else #include "math.h" /* i.e. if crosscompiling assume user has file. */ #endif #endif #ifdef __cplusplus extern "C" { #endif #ifndef apolloFortran #define COMMON_BLOCK_DEF(DEFINITION, NAME) extern DEFINITION NAME #define CF_NULL_PROTO #else /* HP doesn't understand #elif. */ /* Without ANSI prototyping, Apollo promotes float functions to double. */ /* Note that VAX/VMS, IBM, Mips choke on 'type function(...);' prototypes. */ #define CF_NULL_PROTO ... #ifndef __CF__APOLLO67 #define COMMON_BLOCK_DEF(DEFINITION, NAME) \ DEFINITION NAME __attribute((__section(NAME))) #else #define COMMON_BLOCK_DEF(DEFINITION, NAME) \ DEFINITION NAME #attribute[section(NAME)] #endif #endif #ifdef mipsFortran #define CF_DECLARE_GETARG int f77argc; char **f77argv #define CF_SET_GETARG(ARGC,ARGV) f77argc = ARGC; f77argv = ARGV #else #define CF_DECLARE_GETARG #define CF_SET_GETARG(ARGC,ARGV) #endif #ifdef OLD_VAXC /* Allow %CC-I-PARAMNOTUSED. */ #pragma standard #endif #define ACOMMA , #define ACOLON ; /*-------------------------------------------------------------------------*/ /* UTILITIES USED WITHIN CFORTRAN.H */ #define PGSMIN(A,B) (As) { /* Need this to handle NULL string.*/ while (e>s && *--e==t); /* Don't follow t's past beginning. */ e[*e==t?0:1] = '\0'; /* Handle s[0]=t correctly. */ } return s; } /* kill_trailingn(s,t,e) will kill the trailing t's in string s. e normally points to the terminating '\0' of s, but may actually point to anywhere in s. s's new '\0' will be placed at e or earlier in order to remove any trailing t's. If es) { /* Watch out for neg. length string.*/ while (e>s && *--e==t); /* Don't follow t's past beginning. */ e[*e==t?0:1] = '\0'; /* Handle s[0]=t correctly. */ } return s; } /* Note the following assumes that any element which has t's to be chopped off, does indeed fill the entire element. */ #ifndef __CF__KnR static char *vkill_trailing(char* cstr, int elem_len, int sizeofcstr, char t) #else static char *vkill_trailing( cstr, elem_len, sizeofcstr, t) char* cstr; int elem_len; int sizeofcstr; char t; #endif { int i; for (i=0; i 30 == MAX # of arg.'s C can pass to a */ #define ZTRINGV_NUM(I) I /* FORTRAN function. */ #define ZTRINGV_ARGF(I) __cfztringv[I] #define ZTRINGV_ARGS(I) B##I #define VPPBYTE VPPINT #define VPPDOUBLE VPPINT #define VPPFLOAT VPPINT #define VPPINT( A,B) int B = (int)A; /* For ZSTRINGV_ARGS */ #define VPPLOGICAL(A,B) int *B; /* Returning LOGICAL in FUNn and SUBn.*/ #define VPPLONG VPPINT #define VPPSHORT VPPINT #define VCF(TN,I) _INT(3,V,TN,A##I,B##I) #define VVCF(TN,AI,BI) _INT(3,V,TN,AI,BI) #define VINT( T,A,B) typeP##T##VVVVVVV B = A; #define VINTV( T,A,B) #define VINTVV( T,A,B) #define VINTVVV( T,A,B) #define VINTVVVV( T,A,B) #define VINTVVVVV( T,A,B) #define VINTVVVVVV( T,A,B) #define VINTVVVVVVV(T,A,B) #define VPINT( T,A,B) VP##T(A,B) #define VPVOID( T,A,B) #ifdef apolloFortran #define VROUTINE( T,A,B) void (*B)() = (void (*)())A; #else #define VROUTINE( T,A,B) #endif #define VSIMPLE( T,A,B) #ifdef vmsFortran #define VSTRING( T,A,B) static struct {fstring f; unsigned clen;} B = \ {{0,DSC$K_DTYPE_T,DSC$K_CLASS_S,NULL},0}; #define VPSTRING( T,A,B) static fstring B={0,DSC$K_DTYPE_T,DSC$K_CLASS_S,NULL}; #define VSTRINGV( T,A,B) static fstringvector B = \ {sizeof(A),DSC$K_DTYPE_T,DSC$K_CLASS_A,NULL,0,0,{0,0,1,1,1},1,0,NULL,0,{1,0}}; #define VPSTRINGV( T,A,B) static fstringvector B = \ {0,DSC$K_DTYPE_T,DSC$K_CLASS_A,NULL,0,0,{0,0,1,1,1},1,0,NULL,0,{1,0}}; #else #define VSTRING( T,A,B) struct {unsigned short clen, flen;} B; #define VSTRINGV( T,A,B) struct {char *s, *fs; unsigned flen;} B; #define VPSTRING( T,A,B) int B; #define VPSTRINGV( T,A,B) struct {char *fs; unsigned short sizeofA, flen;} B; #endif #define VZTRINGV VSTRINGV #define VPZTRINGV VPSTRINGV /* Note that the actions of the A table were performed inside the AA table. VAX Ultrix vcc, and HP-UX cc, didn't evaluate arguments to functions left to right, so we had to split the original table into the current robust two. */ #define ACF(NAME,TN,AI,I) STR_##TN(4,A,NAME,I,AI,B##I) #define ALOGICAL( M,I,A,B) B=C2FLOGICAL(B); #define APLOGICAL(M,I,A,B) A=C2FLOGICAL(A); #define ASTRING( M,I,A,B) CSTRING(A,B,sizeof(A)) #define APSTRING( M,I,A,B) CPSTRING(A,B,sizeof(A)) #ifdef vmsFortran #define AATRINGV( M,I,A,B, sA,filA,silA) \ initfstr(B,malloc((sA)-(filA)),(filA),(silA)-1), \ c2fstrv(A[0],B.dsc$a_pointer,(silA),(sA)); #define APATRINGV(M,I,A,B, sA,filA,silA) \ initfstr(B,A[0],(filA),(silA)-1),c2fstrv(A[0],A[0],(silA),(sA)); #else #define AATRINGV( M,I,A,B, sA,filA,silA) \ (B.s=malloc((sA)-(filA)),B.fs=c2fstrv(A[0],B.s,(B.flen=(silA)-1)+1,(sA))); #define APATRINGV(M,I,A,B, sA,filA,silA) \ B.fs=c2fstrv(A[0],A[0],(B.flen=(silA)-1)+1,B.sizeofA=(sA)); #endif #define ASTRINGV( M,I,A,B) \ AATRINGV( M,I,A,B,sizeof(A),firstindexlength(A),secondindexlength(A)) #define APSTRINGV(M,I,A,B) \ APATRINGV( M,I,A,B,sizeof(A),firstindexlength(A),secondindexlength(A)) #define AZTRINGV( M,I,A,B) AATRINGV( M,I,A,B, \ (M##_ELEMS_##I)*(( M##_ELEMLEN_##I)+1), \ (M##_ELEMS_##I),(M##_ELEMLEN_##I)+1) #define APZTRINGV(M,I,A,B) APATRINGV( M,I,A,B, \ (M##_ELEMS_##I)*(( M##_ELEMLEN_##I)+1), \ (M##_ELEMS_##I),(M##_ELEMLEN_##I)+1) #define AAPPBYTE( A,B) &A #define AAPPDOUBLE( A,B) &A #define AAPPFLOAT( A,B) PPFLOATVVVVVVV &A #define AAPPINT( A,B) &A #define AAPPLOGICAL(A,B) B= &A /* B used to keep a common W table. */ #define AAPPLONG( A,B) &A #define AAPPSHORT( A,B) &A #define AACF(TN,AI,I,C) _SEP_(TN,C,COMMA) _INT(3,AA,TN,AI,B##I) #define AAINT( T,A,B) &B #define AAINTV( T,A,B) PP##T##VVVVVV A #define AAINTVV( T,A,B) PP##T##VVVVV A[0] #define AAINTVVV( T,A,B) PP##T##VVVV A[0][0] #define AAINTVVVV( T,A,B) PP##T##VVV A[0][0][0] #define AAINTVVVVV( T,A,B) PP##T##VV A[0][0][0][0] #define AAINTVVVVVV( T,A,B) PP##T##V A[0][0][0][0][0] #define AAINTVVVVVVV(T,A,B) PP##T A[0][0][0][0][0][0] #define AAPINT( T,A,B) AAP##T(A,B) #define AAPVOID( T,A,B) (void *) A #ifdef apolloFortran #define AAROUTINE( T,A,B) &B #else #define AAROUTINE( T,A,B) (void(*)())A #endif #define AASTRING( T,A,B) CCSTRING(T,A,B) #define AAPSTRING( T,A,B) CCPSTRING(T,A,B) #ifdef vmsFortran #define AASTRINGV( T,A,B) &B #else #ifdef CRAYFortran #define AASTRINGV( T,A,B) _cptofcd(B.fs,B.flen) #else #define AASTRINGV( T,A,B) B.fs #endif #endif #define AAPSTRINGV AASTRINGV #define AAZTRINGV AASTRINGV #define AAPZTRINGV AASTRINGV #if defined(vmsFortran) || defined(CRAYFortran) #define JCF(TN,I) #else #define JCF(TN,I) STR_##TN(1,J,B##I, 0,0,0) #define JLOGICAL( B) #define JPLOGICAL(B) #define JSTRING( B) ,B.flen #define JPSTRING( B) ,B #define JSTRINGV JSTRING #define JPSTRINGV JSTRING #define JZTRINGV JSTRING #define JPZTRINGV JSTRING #endif #define WCF(TN,AN,I) STR_##TN(2,W,AN,B##I, 0,0) #define WLOGICAL( A,B) #define WPLOGICAL(A,B) *B=F2CLOGICAL(*B); #define WSTRING( A,B) (A[B.clen]!='\0'?A[B.clen]='\0':0); /* A?="constnt"*/ #define WPSTRING( A,B) kill_trailing(A,' '); #ifdef vmsFortran #define WSTRINGV( A,B) free(B.dsc$a_pointer); #define WPSTRINGV(A,B) \ vkill_trailing(f2cstrv((char*)A, (char*)A, \ B.dsc$w_length+1, B.dsc$l_arsize+B.dsc$l_m[0]), \ B.dsc$w_length+1, B.dsc$l_arsize+B.dsc$l_m[0], ' '); #else #define WSTRINGV( A,B) free(B.s); #define WPSTRINGV(A,B) vkill_trailing( \ f2cstrv((char*)A,(char*)A,B.flen+1,B.sizeofA), B.flen+1,B.sizeofA,' '); #endif #define WZTRINGV WSTRINGV #define WPZTRINGV WPSTRINGV #define NCF(TN,I,C) _SEP_(TN,C,COMMA) _INT(2,N,TN,A##I,0) #define NNCF UUCF #define NNNCF(TN,I,C) _SEP_(TN,C,COLON) _INT(2,N,TN,A##I,0) #define NINT( T,A) typeP##T##VVVVVVV * A #define NINTV( T,A) typeP##T##VVVVVV * A #define NINTVV( T,A) typeP##T##VVVVV * A #define NINTVVV( T,A) typeP##T##VVVV * A #define NINTVVVV( T,A) typeP##T##VVV * A #define NINTVVVVV( T,A) typeP##T##VV * A #define NINTVVVVVV( T,A) typeP##T##V * A #define NINTVVVVVVV(T,A) typeP##T * A #define NPINT( T,A) type##T##VVVVVVV * A #define NPVOID( T,A) void * A #ifdef apolloFortran #define NROUTINE( T,A) void (**A)() #else #define NROUTINE( T,A) void ( *A)() #endif #ifdef vmsFortran #define NSTRING( T,A) fstring * A #define NSTRINGV( T,A) fstringvector * A #else #ifdef CRAYFortran #define NSTRING( T,A) _fcd A #define NSTRINGV( T,A) _fcd A #else #define NSTRING( T,A) char * A #define NSTRINGV( T,A) char * A #endif #endif #define NPSTRING( T,A) NSTRING(T,A) /* CRAY insists on arg.'s here. */ #define NPNSTRING( T,A) NSTRING(T,A) /* CRAY insists on arg.'s here. */ #define NPPSTRING( T,A) NSTRING(T,A) /* CRAY insists on arg.'s here. */ #define NSTRVOID( T,A) NSTRING(T,A) /* CRAY insists on arg.'s here. */ #define NPSTRINGV( T,A) NSTRINGV(T,A) #define NZTRINGV( T,A) NSTRINGV(T,A) #define NPZTRINGV( T,A) NPSTRINGV(T,A) /* Note: Prevent compiler warnings, null #define PROTOCCALLSFSUB14/20 after #include-ing cfortran.h if calling the FORTRAN wrapper within the same source code where the wrapper is created. */ #ifndef __CF__KnR #define PROTOCCALLSFSUB0(UN,LN) extern void CFC_(UN,LN)(); #define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \ extern void CFC_(UN,LN)(NCF(T1,1,0) NCF(T2,2,1) NCF(T3,3,1) NCF(T4,4,1) \ NCF(T5,5,1) NCF(T6,6,1) NCF(T7,7,1) NCF(T8,8,1) NCF(T9,9,1) NCF(TA,A,1) \ NCF(TB,B,1) NCF(TC,C,1) NCF(TD,D,1) NCF(TE,E,1) ,...); #define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)\ extern void CFC_(UN,LN)(NCF(T1,1,0) NCF(T2,2,1) NCF(T3,3,1) NCF(T4,4,1) \ NCF(T5,5,1) NCF(T6,6,1) NCF(T7,7,1) NCF(T8,8,1) NCF(T9,9,1) NCF(TA,A,1) \ NCF(TB,B,1) NCF(TC,C,1) NCF(TD,D,1) NCF(TE,E,1) NCF(TF,F,1) NCF(TG,G,1) \ NCF(TH,H,1) NCF(TI,I,1) NCF(TJ,J,1) NCF(TK,K,1) ,...); #else #define PROTOCCALLSFSUB0( UN,LN) #define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) #define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) #endif #ifdef OLD_VAXC /* Allow %CC-I-PARAMNOTUSED. */ #pragma standard #endif /* do{...}while(FALSE) allows if(a==b) FORT(); else BORT(); */ #define CCALLSFSUB0(UN,LN) \ do{PROTOCCALLSFSUB0(UN,LN) CFC_(UN,LN)();}while(FALSE) #define CCALLSFSUB1( UN,LN,T1, A1) \ CCALLSFSUB5 (UN,LN,T1,CF_0,CF_0,CF_0,CF_0,A1,0,0,0,0) #define CCALLSFSUB2( UN,LN,T1,T2, A1,A2) \ CCALLSFSUB5 (UN,LN,T1,T2,CF_0,CF_0,CF_0,A1,A2,0,0,0) #define CCALLSFSUB3( UN,LN,T1,T2,T3, A1,A2,A3) \ CCALLSFSUB5 (UN,LN,T1,T2,T3,CF_0,CF_0,A1,A2,A3,0,0) #define CCALLSFSUB4( UN,LN,T1,T2,T3,T4, A1,A2,A3,A4)\ CCALLSFSUB5 (UN,LN,T1,T2,T3,T4,CF_0,A1,A2,A3,A4,0) #define CCALLSFSUB5( UN,LN,T1,T2,T3,T4,T5, A1,A2,A3,A4,A5) \ CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,0,0,0,0,0) #define CCALLSFSUB6( UN,LN,T1,T2,T3,T4,T5,T6, A1,A2,A3,A4,A5,A6) \ CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,0,0,0,0) #define CCALLSFSUB7( UN,LN,T1,T2,T3,T4,T5,T6,T7, A1,A2,A3,A4,A5,A6,A7) \ CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,0,0,0) #define CCALLSFSUB8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8, A1,A2,A3,A4,A5,A6,A7,A8) \ CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,0,0) #define CCALLSFSUB9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,A1,A2,A3,A4,A5,A6,A7,A8,A9)\ CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,0) #define CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA)\ CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,0,0,0,0) #define CCALLSFSUB11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB)\ CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,0,0,0) #define CCALLSFSUB12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC)\ CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,0,0) #define CCALLSFSUB13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD)\ CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,0) #define CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\ do{VVCF(T1,A1,B1) VVCF(T2,A2,B2) VVCF(T3,A3,B3) VVCF(T4,A4,B4) VVCF(T5,A5,B5) \ VVCF(T6,A6,B6) VVCF(T7,A7,B7) VVCF(T8,A8,B8) VVCF(T9,A9,B9) VVCF(TA,AA,BA) \ VVCF(TB,AB,BB) VVCF(TC,AC,BC) VVCF(TD,AD,BD) VVCF(TE,AE,BE) \ PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \ ACF(LN,T1,A1,1) ACF(LN,T2,A2,2) ACF(LN,T3,A3,3) \ ACF(LN,T4,A4,4) ACF(LN,T5,A5,5) ACF(LN,T6,A6,6) ACF(LN,T7,A7,7) \ ACF(LN,T8,A8,8) ACF(LN,T9,A9,9) ACF(LN,TA,AA,A) ACF(LN,TB,AB,B) \ ACF(LN,TC,AC,C) ACF(LN,TD,AD,D) ACF(LN,TE,AE,E) \ CFC_(UN,LN)(AACF(T1,A1,1,0) AACF(T2,A2,2,1) AACF(T3,A3,3,1) \ AACF(T4,A4,4,1) AACF(T5,A5,5,1) AACF(T6,A6,6,1) AACF(T7,A7,7,1) \ AACF(T8,A8,8,1) AACF(T9,A9,9,1) AACF(TA,AA,A,1) AACF(TB,AB,B,1) \ AACF(TC,AC,C,1) AACF(TD,AD,D,1) AACF(TE,AE,E,1) \ JCF(T1,1) JCF(T2,2) JCF(T3,3) JCF(T4,4) JCF(T5,5) JCF(T6,6) JCF(T7,7) \ JCF(T8,8) JCF(T9,9) JCF(TA,A) JCF(TB,B) JCF(TC,C) JCF(TD,D) JCF(TE,E) );\ WCF(T1,A1,1) WCF(T2,A2,2) WCF(T3,A3,3) WCF(T4,A4,4) WCF(T5,A5,5) \ WCF(T6,A6,6) WCF(T7,A7,7) WCF(T8,A8,8) WCF(T9,A9,9) WCF(TA,AA,A) \ WCF(TB,AB,B) WCF(TC,AC,C) WCF(TD,AD,D) WCF(TE,AE,E) }while(FALSE) /* Apollo 6.7, CRAY, Sun, VAX/Ultrix vcc/cc and HP can't hack more than 31 arg's */ #if !(defined(VAXUltrix)&&!defined(__GNUC__)) && !defined(__CF__APOLLO67) && !defined(sun) && !defined(__hpux) && !defined(_CRAY) #define CCALLSFSUB15(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF)\ CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,0,0,0,0,0) #define CCALLSFSUB16(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG)\ CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,0,0,0,0) #define CCALLSFSUB17(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH)\ CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,0,0,0) #define CCALLSFSUB18(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI)\ CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,0,0) #define CCALLSFSUB19(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ)\ CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,0) /* PROTOCCALLSFSUB20 is commented out, because it chokes the VAX VMS compiler. It isn't required since we so far only pass pointers and integers to FORTRAN routines and these arg.'s aren't promoted to anything else. */ #define CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \ TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \ do{VVCF(T1,A1,B1) VVCF(T2,A2,B2) VVCF(T3,A3,B3) VVCF(T4,A4,B4) VVCF(T5,A5,B5) \ VVCF(T6,A6,B6) VVCF(T7,A7,B7) VVCF(T8,A8,B8) VVCF(T9,A9,B9) VVCF(TA,AA,BA) \ VVCF(TB,AB,BB) VVCF(TC,AC,BC) VVCF(TD,AD,BD) VVCF(TE,AE,BE) VVCF(TF,AF,BF) \ VVCF(TG,AG,BG) VVCF(TH,AH,BH) VVCF(TI,AI,BI) VVCF(TJ,AJ,BJ) VVCF(TK,AK,BK) \ /* PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)*/\ ACF(LN,T1,A1,1) ACF(LN,T2,A2,2) ACF(LN,T3,A3,3) ACF(LN,T4,A4,4) \ ACF(LN,T5,A5,5) ACF(LN,T6,A6,6) ACF(LN,T7,A7,7) ACF(LN,T8,A8,8) \ ACF(LN,T9,A9,9) ACF(LN,TA,AA,A) ACF(LN,TB,AB,B) ACF(LN,TC,AC,C) \ ACF(LN,TD,AD,D) ACF(LN,TE,AE,E) ACF(LN,TF,AF,F) ACF(LN,TG,AG,G) \ ACF(LN,TH,AH,H) ACF(LN,TI,AI,I) ACF(LN,TJ,AJ,J) ACF(LN,TK,AK,K) \ CFC_(UN,LN)(AACF(T1,A1,1,0) AACF(T2,A2,2,1) AACF(T3,A3,3,1) AACF(T4,A4,4,1) \ AACF(T5,A5,5,1) AACF(T6,A6,6,1) AACF(T7,A7,7,1) AACF(T8,A8,8,1) \ AACF(T9,A9,9,1) AACF(TA,AA,A,1) AACF(TB,AB,B,1) AACF(TC,AC,C,1) \ AACF(TD,AD,D,1) AACF(TE,AE,E,1) AACF(TF,AF,F,1) AACF(TG,AG,G,1) \ AACF(TH,AH,H,1) AACF(TI,AI,I,1) AACF(TJ,AJ,J,1) AACF(TK,AK,K,1) \ JCF(T1,1) JCF(T2,2) JCF(T3,3) JCF(T4,4) JCF(T5,5) JCF(T6,6) JCF(T7,7) \ JCF(T8,8) JCF(T9,9) JCF(TA,A) JCF(TB,B) JCF(TC,C) JCF(TD,D) JCF(TE,E) \ JCF(TF,F) JCF(TG,G) JCF(TH,H) JCF(TI,I) JCF(TJ,J) JCF(TK,K) ); \ WCF(T1,A1,1) WCF(T2,A2,2) WCF(T3,A3,3) WCF(T4,A4,4) WCF(T5,A5,5) WCF(T6,A6,6) \ WCF(T7,A7,7) WCF(T8,A8,8) WCF(T9,A9,9) WCF(TA,AA,A) WCF(TB,AB,B) WCF(TC,AC,C) \ WCF(TD,AD,D) WCF(TE,AE,E) WCF(TF,AF,F) WCF(TG,AG,G) WCF(TH,AH,H) WCF(TI,AI,I) \ WCF(TJ,AJ,J) WCF(TK,AK,K) }while(FALSE) #endif /* Apollo 6.7, CRAY, Sun and HP can't hack more than 31 arg.'s */ /*-------------------------------------------------------------------------*/ /* UTILITIES FOR C TO CALL FORTRAN FUNCTIONS */ /*N.B. PROTOCCALLSFFUNn(..) generates code, whether or not the FORTRAN function is called. Therefore, especially for creator's of C header files for large FORTRAN libraries which include many functions, to reduce compile time and object code size, it may be desirable to create preprocessor directives to allow users to create code for only those functions which they use. */ /* The following defines the maximum length string that a function can return. Of course it may be undefine-d and re-define-d before individual PROTOCCALLSFFUNn(..) as required. It would also be nice to have this derived from the individual machines' limits. */ #define MAX_LEN_FORTRAN_FUNCTION_STRING 0x4FE /* The following defines a character used by CFORTRAN.H to flag the end of a string coming out of a FORTRAN routine. */ #define CFORTRAN_NON_CHAR 0x7F #ifdef OLD_VAXC /* Prevent %CC-I-PARAMNOTUSED. */ #pragma nostandard #endif #define _SEP_(TN,C,COMMA) __SEP_##C(TN,COMMA) #define __SEP_0(TN,COMMA) #define __SEP_1(TN,COMMA) _INT(2,SEP_,TN,COMMA,0) #define SEP_INT(T,B) A##B #define SEP_INTV SEP_INT #define SEP_INTVV SEP_INT #define SEP_INTVVV SEP_INT #define SEP_INTVVVV SEP_INT #define SEP_INTVVVVV SEP_INT #define SEP_INTVVVVVV SEP_INT #define SEP_INTVVVVVVV SEP_INT #define SEP_PINT SEP_INT #define SEP_PVOID SEP_INT #define SEP_ROUTINE SEP_INT #define SEP_SIMPLE SEP_INT #define SEP_VOID SEP_INT /* Need for FORTRAN calls to C subroutines. */ #define SEP_STRING SEP_INT #define SEP_STRINGV SEP_INT #define SEP_PSTRING SEP_INT #define SEP_PSTRINGV SEP_INT #define SEP_PNSTRING SEP_INT #define SEP_PPSTRING SEP_INT #define SEP_STRVOID SEP_INT #define SEP_ZTRINGV SEP_INT #define SEP_PZTRINGV SEP_INT #if defined(SIGNED_BYTE) || !defined(UNSIGNED_BYTE) #ifdef OLD_VAXC #define INTEGER_BYTE char /* Old VAXC barfs on 'signed char' */ #else #define INTEGER_BYTE signed char /* default */ #endif #else #define INTEGER_BYTE unsigned char #endif #define typePBYTEVVVVVVV INTEGER_BYTE #define typePDOUBLEVVVVVVV DOUBLE_PRECISION #define typePFLOATVVVVVVV float #define typePINTVVVVVVV int #define typePLOGICALVVVVVVV int #define typePLONGVVVVVVV long #define typePSHORTVVVVVVV short #define CFARGS0(A,T,W,X,Y,Z) A##T #define CFARGS1(A,T,W,X,Y,Z) A##T(W) #define CFARGS2(A,T,W,X,Y,Z) A##T(W,X) #define CFARGS3(A,T,W,X,Y,Z) A##T(W,X,Y) #define CFARGS4(A,T,W,X,Y,Z) A##T(W,X,Y,Z) #define _INT(N,T,I,Y,Z) INT_##I(N,T,I,Y,Z) #define INT_BYTE INT_DOUBLE #define INT_DOUBLE( N,A,B,Y,Z) CFARGS##N(A,INT,B,Y,Z,0) #define INT_FLOAT INT_DOUBLE #define INT_INT INT_DOUBLE #define INT_LOGICAL INT_DOUBLE #define INT_LONG INT_DOUBLE #define INT_SHORT INT_DOUBLE #define INT_PBYTE INT_PDOUBLE #define INT_PDOUBLE( N,A,B,Y,Z) CFARGS##N(A,PINT,B,Y,Z,0) #define INT_PFLOAT INT_PDOUBLE #define INT_PINT INT_PDOUBLE #define INT_PLOGICAL INT_PDOUBLE #define INT_PLONG INT_PDOUBLE #define INT_PSHORT INT_PDOUBLE #define INT_BYTEV INT_DOUBLEV #define INT_BYTEVV INT_DOUBLEVV #define INT_BYTEVVV INT_DOUBLEVVV #define INT_BYTEVVVV INT_DOUBLEVVVV #define INT_BYTEVVVVV INT_DOUBLEVVVVV #define INT_BYTEVVVVVV INT_DOUBLEVVVVVV #define INT_BYTEVVVVVVV INT_DOUBLEVVVVVVV #define INT_DOUBLEV( N,A,B,Y,Z) CFARGS##N(A,INTV,B,Y,Z,0) #define INT_DOUBLEVV( N,A,B,Y,Z) CFARGS##N(A,INTVV,B,Y,Z,0) #define INT_DOUBLEVVV( N,A,B,Y,Z) CFARGS##N(A,INTVVV,B,Y,Z,0) #define INT_DOUBLEVVVV( N,A,B,Y,Z) CFARGS##N(A,INTVVVV,B,Y,Z,0) #define INT_DOUBLEVVVVV( N,A,B,Y,Z) CFARGS##N(A,INTVVVVV,B,Y,Z,0) #define INT_DOUBLEVVVVVV( N,A,B,Y,Z) CFARGS##N(A,INTVVVVVV,B,Y,Z,0) #define INT_DOUBLEVVVVVVV(N,A,B,Y,Z) CFARGS##N(A,INTVVVVVVV,B,Y,Z,0) #define INT_FLOATV INT_DOUBLEV #define INT_FLOATVV INT_DOUBLEVV #define INT_FLOATVVV INT_DOUBLEVVV #define INT_FLOATVVVV INT_DOUBLEVVVV #define INT_FLOATVVVVV INT_DOUBLEVVVVV #define INT_FLOATVVVVVV INT_DOUBLEVVVVVV #define INT_FLOATVVVVVVV INT_DOUBLEVVVVVVV #define INT_INTV INT_DOUBLEV #define INT_INTVV INT_DOUBLEVV #define INT_INTVVV INT_DOUBLEVVV #define INT_INTVVVV INT_DOUBLEVVVV #define INT_INTVVVVV INT_DOUBLEVVVVV #define INT_INTVVVVVV INT_DOUBLEVVVVVV #define INT_INTVVVVVVV INT_DOUBLEVVVVVVV #define INT_LOGICALV INT_DOUBLEV #define INT_LOGICALVV INT_DOUBLEVV #define INT_LOGICALVVV INT_DOUBLEVVV #define INT_LOGICALVVVV INT_DOUBLEVVVV #define INT_LOGICALVVVVV INT_DOUBLEVVVVV #define INT_LOGICALVVVVVV INT_DOUBLEVVVVVV #define INT_LOGICALVVVVVVV INT_DOUBLEVVVVVVV #define INT_LONGV INT_DOUBLEV #define INT_LONGVV INT_DOUBLEVV #define INT_LONGVVV INT_DOUBLEVVV #define INT_LONGVVVV INT_DOUBLEVVVV #define INT_LONGVVVVV INT_DOUBLEVVVVV #define INT_LONGVVVVVV INT_DOUBLEVVVVVV #define INT_LONGVVVVVVV INT_DOUBLEVVVVVVV #define INT_SHORTV INT_DOUBLEV #define INT_SHORTVV INT_DOUBLEVV #define INT_SHORTVVV INT_DOUBLEVVV #define INT_SHORTVVVV INT_DOUBLEVVVV #define INT_SHORTVVVVV INT_DOUBLEVVVVV #define INT_SHORTVVVVVV INT_DOUBLEVVVVVV #define INT_SHORTVVVVVVV INT_DOUBLEVVVVVVV #define INT_PVOID( N,A,B,Y,Z) CFARGS##N(A,B,B,Y,Z,0) #define INT_ROUTINE INT_PVOID /*CRAY coughs on the first, i.e. the usual trouble of not being able to define macros to macros with arguments. */ /*#define INT_SIMPLE INT_PVOID*/ #define INT_SIMPLE( N,A,B,Y,Z) INT_PVOID(N,A,B,Y,Z) #define INT_VOID INT_PVOID #define INT_STRING INT_PVOID #define INT_STRINGV INT_PVOID #define INT_PSTRING INT_PVOID #define INT_PSTRINGV INT_PVOID #define INT_PNSTRING INT_PVOID #define INT_PPSTRING INT_PVOID #define INT_ZTRINGV INT_PVOID #define INT_PZTRINGV INT_PVOID #define INT_STRVOID INT_PVOID #define INT_CF_0( N,A,B,Y,Z) #define UCF(TN,I,C) _SEP_(TN,C,COMMA) _INT(2,U,TN,A##I,0) #define UUCF(TN,I,C) _SEP_(TN,C,COMMA) _SEP_(TN,1,I) #define UUUCF(TN,I,C) _SEP_(TN,C,COLON) _INT(2,U,TN,A##I,0) #define UINT( T,A) typeP##T##VVVVVVV A #define UINTV( T,A) typeP##T##VVVVVV *A #define UINTVV( T,A) typeP##T##VVVVV *A #define UINTVVV( T,A) typeP##T##VVVV *A #define UINTVVVV( T,A) typeP##T##VVV *A #define UINTVVVVV( T,A) typeP##T##VV *A #define UINTVVVVVV( T,A) typeP##T##V *A #define UINTVVVVVVV(T,A) typeP##T *A #define UPINT( T,A) type##T##VVVVVVV *A #define UPVOID( T,A) void *A #define UROUTINE( T,A) void (*A)() #define UVOID( T,A) void A /* Needed for C calls FORTRAN subroutines. */ #define USTRING( T,A) char *A /* via VOID and wrapper. */ #define USTRINGV( T,A) char *A #define UPSTRING( T,A) char *A #define UPSTRINGV( T,A) char *A #define UZTRINGV( T,A) char *A #define UPZTRINGV( T,A) char *A /* VOID breaks U into U and UU. */ #define UUINT( T,A) typeP##T##VVVVVVV A #define UUVOID( T,A) /* Needed for FORTRAN calls C subroutines. */ #define UUSTRING( T,A) char *A /* Sun and VOID break U into U and PU. */ #define PUBYTE( A) INTEGER_BYTE A #define PUDOUBLE( A) DOUBLE_PRECISION A #ifndef sunFortran #define PUFLOAT( A) float A #else #define PUFLOAT( A) FLOATFUNCTIONTYPE A #endif #define PUINT( A) int A #define PULOGICAL( A) int A #define PULONG( A) long A #define PUSHORT( A) short A #define PUSTRING( A) char *A #define PUVOID( A) void A #define EBYTE INTEGER_BYTE A0; #define EDOUBLE DOUBLE_PRECISION A0; #ifndef sunFortran #define EFLOAT float A0; #else #define EFLOAT float AA0; FLOATFUNCTIONTYPE A0; #endif #define EINT int A0; #define ELOGICAL int A0; #define ELONG long A0; #define ESHORT short A0; #define EVOID #ifdef vmsFortran #define ESTRING static char AA0[MAX_LEN_FORTRAN_FUNCTION_STRING+1]; \ static fstring A0 = \ {MAX_LEN_FORTRAN_FUNCTION_STRING,DSC$K_DTYPE_T,DSC$K_CLASS_S,AA0};\ memset(AA0, CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\ *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0'; #else #ifdef CRAYFortran #define ESTRING static char AA0[MAX_LEN_FORTRAN_FUNCTION_STRING+1]; \ static _fcd A0; *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';\ memset(AA0,CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\ A0 = _cptofcd(AA0,MAX_LEN_FORTRAN_FUNCTION_STRING); #else #define ESTRING static char A0[MAX_LEN_FORTRAN_FUNCTION_STRING+1]; \ memset(A0, CFORTRAN_NON_CHAR, \ MAX_LEN_FORTRAN_FUNCTION_STRING); \ *(A0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0'; #endif #endif /* ESTRING must use static char. array which is guaranteed to exist after function returns. */ /* N.B.i) The diff. for 0 (Zero) and >=1 arguments. ii)That the following create an unmatched bracket, i.e. '(', which must of course be matched in the call. iii)Commas must be handled very carefully */ #define GZINT( T,UN,LN) A0=CFC_(UN,LN)( #define GZVOID( T,UN,LN) CFC_(UN,LN)( #ifdef vmsFortran #define GZSTRING( T,UN,LN) CFC_(UN,LN)(&A0 #else #ifdef CRAYFortran #define GZSTRING( T,UN,LN) CFC_(UN,LN)( A0 #else #define GZSTRING( T,UN,LN) CFC_(UN,LN)( A0,MAX_LEN_FORTRAN_FUNCTION_STRING #endif #endif #define GINT GZINT #define GVOID GZVOID #define GSTRING( T,UN,LN) GZSTRING(T,UN,LN), #define PPBYTEVVVVVVV #define PPINTVVVVVVV /* These complement PPFLOATVVVVVVV. */ #define PPDOUBLEVVVVVVV #define PPLOGICALVVVVVVV #define PPLONGVVVVVVV #define PPSHORTVVVVVVV #define BCF(TN,AN,C) _SEP_(TN,C,COMMA) _INT(2,B,TN,AN,0) #define BINT( T,A) (typeP##T##VVVVVVV) A #define BINTV( T,A) A #define BINTVV( T,A) (A)[0] #define BINTVVV( T,A) (A)[0][0] #define BINTVVVV( T,A) (A)[0][0][0] #define BINTVVVVV( T,A) (A)[0][0][0][0] #define BINTVVVVVV( T,A) (A)[0][0][0][0][0] #define BINTVVVVVVV(T,A) (A)[0][0][0][0][0][0] #define BPINT( T,A) P##T##VVVVVVV &A #define BSTRING( T,A) (char *) A #define BSTRINGV( T,A) (char *) A #define BPSTRING( T,A) (char *) A #define BPSTRINGV( T,A) (char *) A #define BPVOID( T,A) (void *) A #define BROUTINE( T,A) (void(*)())A #define BZTRINGV( T,A) (char *) A #define BPZTRINGV( T,A) (char *) A #define ZCF(TN,N,AN) _INT(3,Z,TN,N,AN) #define ZINT( T,I,A) (__cfztringv[I]=(int)A), #define ZPINT ZINT #define ZINTV( T,I,A) #define ZINTVV( T,I,A) #define ZINTVVV( T,I,A) #define ZINTVVVV( T,I,A) #define ZINTVVVVV( T,I,A) #define ZINTVVVVVV( T,I,A) #define ZINTVVVVVVV(T,I,A) #define ZSTRING( T,I,A) #define ZSTRINGV( T,I,A) #define ZPSTRING( T,I,A) #define ZPSTRINGV( T,I,A) #define ZPVOID( T,I,A) #define ZROUTINE( T,I,A) #define ZSIMPLE( T,I,A) #define ZZTRINGV( T,I,A) #define ZPZTRINGV( T,I,A) #define SCF(TN,NAME,I,A) STR_##TN(3,S,NAME,I,A,0) #define SLOGICAL( M,I,A) #define SPLOGICAL(M,I,A) #define SSTRING( M,I,A) ,sizeof(A) #define SSTRINGV( M,I,A) ,( (unsigned)0xFFFF*firstindexlength(A) \ +secondindexlength(A)) #define SPSTRING( M,I,A) ,sizeof(A) #define SPSTRINGV SSTRINGV #define SZTRINGV( M,I,A) ,( (unsigned)0xFFFF*M##_ELEMS_##I \ +M##_ELEMLEN_##I+1) #define SPZTRINGV SZTRINGV #define HCF(TN,I) STR_##TN(3,H,COMMA, H,C##I,0) #define HHCF(TN,I) STR_##TN(3,H,COMMA,HH,C##I,0) #define HHHCF(TN,I) STR_##TN(3,H,COLON, H,C##I,0) #define H_CF_SPECIAL unsigned #define HH_CF_SPECIAL #define HLOGICAL( S,U,B) #define HPLOGICAL(S,U,B) #define HSTRING( S,U,B) A##S U##_CF_SPECIAL B #define HSTRINGV HSTRING #define HPSTRING HSTRING #define HPSTRINGV HSTRING #define HPNSTRING HSTRING #define HPPSTRING HSTRING #define HSTRVOID HSTRING #define HZTRINGV HSTRING #define HPZTRINGV HSTRING #define STR_BYTE( N,T,A,B,C,D) #define STR_DOUBLE( N,T,A,B,C,D) /* Can't add spaces inside */ #define STR_FLOAT( N,T,A,B,C,D) /* expansion since it screws up */ #define STR_INT( N,T,A,B,C,D) /* macro catenation kludge. */ #define STR_LOGICAL( N,T,A,B,C,D) CFARGS##N(T,LOGICAL,A,B,C,D) #define STR_LONG( N,T,A,B,C,D) #define STR_SHORT( N,T,A,B,C,D) #define STR_BYTEV( N,T,A,B,C,D) #define STR_BYTEVV( N,T,A,B,C,D) #define STR_BYTEVVV( N,T,A,B,C,D) #define STR_BYTEVVVV( N,T,A,B,C,D) #define STR_BYTEVVVVV( N,T,A,B,C,D) #define STR_BYTEVVVVVV( N,T,A,B,C,D) #define STR_BYTEVVVVVVV( N,T,A,B,C,D) #define STR_DOUBLEV( N,T,A,B,C,D) #define STR_DOUBLEVV( N,T,A,B,C,D) #define STR_DOUBLEVVV( N,T,A,B,C,D) #define STR_DOUBLEVVVV( N,T,A,B,C,D) #define STR_DOUBLEVVVVV( N,T,A,B,C,D) #define STR_DOUBLEVVVVVV( N,T,A,B,C,D) #define STR_DOUBLEVVVVVVV( N,T,A,B,C,D) #define STR_FLOATV( N,T,A,B,C,D) #define STR_FLOATVV( N,T,A,B,C,D) #define STR_FLOATVVV( N,T,A,B,C,D) #define STR_FLOATVVVV( N,T,A,B,C,D) #define STR_FLOATVVVVV( N,T,A,B,C,D) #define STR_FLOATVVVVVV( N,T,A,B,C,D) #define STR_FLOATVVVVVVV( N,T,A,B,C,D) #define STR_INTV( N,T,A,B,C,D) #define STR_INTVV( N,T,A,B,C,D) #define STR_INTVVV( N,T,A,B,C,D) #define STR_INTVVVV( N,T,A,B,C,D) #define STR_INTVVVVV( N,T,A,B,C,D) #define STR_INTVVVVVV( N,T,A,B,C,D) #define STR_INTVVVVVVV( N,T,A,B,C,D) #define STR_LOGICALV( N,T,A,B,C,D) #define STR_LOGICALVV( N,T,A,B,C,D) #define STR_LOGICALVVV( N,T,A,B,C,D) #define STR_LOGICALVVVV( N,T,A,B,C,D) #define STR_LOGICALVVVVV( N,T,A,B,C,D) #define STR_LOGICALVVVVVV( N,T,A,B,C,D) #define STR_LOGICALVVVVVVV(N,T,A,B,C,D) #define STR_LONGV( N,T,A,B,C,D) #define STR_LONGVV( N,T,A,B,C,D) #define STR_LONGVVV( N,T,A,B,C,D) #define STR_LONGVVVV( N,T,A,B,C,D) #define STR_LONGVVVVV( N,T,A,B,C,D) #define STR_LONGVVVVVV( N,T,A,B,C,D) #define STR_LONGVVVVVVV( N,T,A,B,C,D) #define STR_SHORTV( N,T,A,B,C,D) #define STR_SHORTVV( N,T,A,B,C,D) #define STR_SHORTVVV( N,T,A,B,C,D) #define STR_SHORTVVVV( N,T,A,B,C,D) #define STR_SHORTVVVVV( N,T,A,B,C,D) #define STR_SHORTVVVVVV( N,T,A,B,C,D) #define STR_SHORTVVVVVVV( N,T,A,B,C,D) #define STR_PBYTE( N,T,A,B,C,D) #define STR_PDOUBLE( N,T,A,B,C,D) #define STR_PFLOAT( N,T,A,B,C,D) #define STR_PINT( N,T,A,B,C,D) #define STR_PLOGICAL( N,T,A,B,C,D) CFARGS##N(T,PLOGICAL,A,B,C,D) #define STR_PLONG( N,T,A,B,C,D) #define STR_PSHORT( N,T,A,B,C,D) #define STR_STRING( N,T,A,B,C,D) CFARGS##N(T,STRING,A,B,C,D) #define STR_PSTRING( N,T,A,B,C,D) CFARGS##N(T,PSTRING,A,B,C,D) #define STR_STRINGV( N,T,A,B,C,D) CFARGS##N(T,STRINGV,A,B,C,D) #define STR_PSTRINGV( N,T,A,B,C,D) CFARGS##N(T,PSTRINGV,A,B,C,D) #define STR_PNSTRING( N,T,A,B,C,D) CFARGS##N(T,PNSTRING,A,B,C,D) #define STR_PPSTRING( N,T,A,B,C,D) CFARGS##N(T,PPSTRING,A,B,C,D) #define STR_STRVOID( N,T,A,B,C,D) CFARGS##N(T,STRVOID,A,B,C,D) #define STR_PVOID( N,T,A,B,C,D) #define STR_ROUTINE( N,T,A,B,C,D) #define STR_SIMPLE( N,T,A,B,C,D) #define STR_ZTRINGV( N,T,A,B,C,D) CFARGS##N(T,ZTRINGV,A,B,C,D) #define STR_PZTRINGV( N,T,A,B,C,D) CFARGS##N(T,PZTRINGV,A,B,C,D) #define STR_CF_0( N,T,A,B,C,D) /* See ACF table comments, which explain why CCF was split into two. */ #define CCF(TN,I) STR_##TN(3,C,A##I,B##I,C##I,0) #define CLOGICAL( A,B,C) A=C2FLOGICAL( A); #define CPLOGICAL(A,B,C) *A=C2FLOGICAL(*A); #ifdef vmsFortran #define CSTRING( A,B,C) (B.clen=strlen(A),B.f.dsc$a_pointer=A, \ C==sizeof(char*)||C==B.clen+1?B.f.dsc$w_length=B.clen: \ (memset((A)+B.clen,' ',C-B.clen-1),A[B.f.dsc$w_length=C-1]='\0')); #define CSTRINGV( A,B,C) ( \ initfstr(B, malloc((C/0xFFFF)*(C%0xFFFF-1)), C/0xFFFF, C%0xFFFF-1), \ c2fstrv(A,B.dsc$a_pointer,C%0xFFFF,(C/0xFFFF)*(C%0xFFFF)) ); #define CPSTRING( A,B,C) (B.dsc$w_length=strlen(A),B.dsc$a_pointer=A, \ C==sizeof(char*)?0:(memset((A)+B.dsc$w_length,' ',C-B.dsc$w_length-1), \ A[B.dsc$w_length=C-1]='\0')); #define CPSTRINGV(A,B,C) (initfstr(B, A, C/0xFFFF, C%0xFFFF-1), \ c2fstrv(A,A,C%0xFFFF,(C/0xFFFF)*(C%0xFFFF)) ); #else #ifdef CRAYFortran #define CSTRING( A,B,C) (B.clen=strlen(A), \ C==sizeof(char*)||C==B.clen+1?B.flen=B.clen: \ (memset((A)+B.clen,' ',C-B.clen-1),A[B.flen=C-1]='\0')); #define CSTRINGV( A,B,C) (B.s=malloc((C/0xFFFF)*(C%0xFFFF-1)), \ c2fstrv(A,B.s,(B.flen=C%0xFFFF-1)+1,(C/0xFFFF)*(C%0xFFFF))); #define CPSTRING( A,B,C) (B=strlen(A), C==sizeof(char*)?0: \ (memset((A)+B,' ',C-B-1),A[B=C-1]='\0')); #define CPSTRINGV(A,B,C) c2fstrv(A,A,(B.flen=C%0xFFFF-1)+1, \ B.sizeofA=(C/0xFFFF)*(C%0xFFFF)); #else #define CSTRING( A,B,C) (B.clen=strlen(A), \ C==sizeof(char*)||C==B.clen+1?B.flen=B.clen: \ (memset((A)+B.clen,' ',C-B.clen-1),A[B.flen=C-1]='\0')); #define CSTRINGV( A,B,C) (B.s=malloc((C/0xFFFF)*(C%0xFFFF-1)), \ B.fs=c2fstrv(A,B.s,(B.flen=C%0xFFFF-1)+1,(C/0xFFFF)*(C%0xFFFF))); #define CPSTRING( A,B,C) (B=strlen(A), C==sizeof(char*)?0: \ (memset((A)+B,' ',C-B-1),A[B=C-1]='\0')); #define CPSTRINGV(A,B,C) B.fs=c2fstrv(A,A,(B.flen=C%0xFFFF-1)+1, \ B.sizeofA=(C/0xFFFF)*(C%0xFFFF)); #endif #endif #define CZTRINGV CSTRINGV #define CPZTRINGV CPSTRINGV #define CCCBYTE( A,B) &A #define CCCDOUBLE( A,B) &A #if !defined(__CF__KnR) #define CCCFLOAT( A,B) &A /* Although the VAX doesn't, at least the */ #else /* HP and K&R mips promote float arg.'s of */ #define CCCFLOAT( A,B) &B /* unprototyped functions to double. So we can't */ #endif /* use A here to pass the argument to FORTRAN. */ #define CCCINT( A,B) &A #define CCCLOGICAL( A,B) &A #define CCCLONG( A,B) &A #define CCCSHORT( A,B) &A #define CCCPBYTE( A,B) A #define CCCPDOUBLE( A,B) A #define CCCPFLOAT( A,B) A #define CCCPINT( A,B) A #define CCCPLOGICAL(A,B) B=A /* B used to keep a common W table. */ #define CCCPLONG( A,B) A #define CCCPSHORT( A,B) A #define CCCF(TN,I,M) _SEP_(TN,M,COMMA) _INT(3,CC,TN,A##I,B##I) #define CCINT( T,A,B) CCC##T(A,B) #define CCINTV( T,A,B) A #define CCINTVV( T,A,B) A #define CCINTVVV( T,A,B) A #define CCINTVVVV( T,A,B) A #define CCINTVVVVV( T,A,B) A #define CCINTVVVVVV( T,A,B) A #define CCINTVVVVVVV(T,A,B) A #define CCPINT( T,A,B) CCC##T(A,B) #define CCPVOID( T,A,B) A #ifdef apolloFortran #define CCROUTINE( T,A,B) &A #else #define CCROUTINE( T,A,B) A #endif #define CCSIMPLE( T,A,B) A #ifdef vmsFortran #define CCSTRING( T,A,B) &B.f #define CCSTRINGV( T,A,B) &B #define CCPSTRING( T,A,B) &B #define CCPSTRINGV( T,A,B) &B #else #ifdef CRAYFortran #define CCSTRING( T,A,B) _cptofcd(A,B.flen) #define CCSTRINGV( T,A,B) _cptofcd(B.s,B.flen) #define CCPSTRING( T,A,B) _cptofcd(A,B) #define CCPSTRINGV( T,A,B) _cptofcd(A,B.flen) #else #define CCSTRING( T,A,B) A #define CCSTRINGV( T,A,B) B.fs #define CCPSTRING( T,A,B) A #define CCPSTRINGV( T,A,B) B.fs #endif #endif #define CCZTRINGV CCSTRINGV #define CCPZTRINGV CCPSTRINGV #define XBYTE return A0; #define XDOUBLE return A0; #ifndef sunFortran #define XFLOAT return A0; #else #define XFLOAT ASSIGNFLOAT(AA0,A0); return AA0; #endif #define XINT return A0; #define XLOGICAL return F2CLOGICAL(A0); #define XLONG return A0; #define XSHORT return A0; #define XVOID return ; #if defined(vmsFortran) || defined(CRAYFortran) #define XSTRING return kill_trailing( \ kill_trailing(AA0,CFORTRAN_NON_CHAR),' '); #else #define XSTRING return kill_trailing( \ kill_trailing( A0,CFORTRAN_NON_CHAR),' '); #endif #define CFFUN(NAME) __cf__##NAME /* Note that we don't use LN here, but we keep it for consistency. */ #define CCALLSFFUN0(UN,LN) CFFUN(UN)() #ifdef OLD_VAXC /* Allow %CC-I-PARAMNOTUSED. */ #pragma standard #endif #define CCALLSFFUN1( UN,LN,T1, A1) \ CCALLSFFUN5 (UN,LN,T1,CF_0,CF_0,CF_0,CF_0,A1,0,0,0,0) #define CCALLSFFUN2( UN,LN,T1,T2, A1,A2) \ CCALLSFFUN5 (UN,LN,T1,T2,CF_0,CF_0,CF_0,A1,A2,0,0,0) #define CCALLSFFUN3( UN,LN,T1,T2,T3, A1,A2,A3) \ CCALLSFFUN5 (UN,LN,T1,T2,T3,CF_0,CF_0,A1,A2,A3,0,0) #define CCALLSFFUN4( UN,LN,T1,T2,T3,T4, A1,A2,A3,A4)\ CCALLSFFUN5 (UN,LN,T1,T2,T3,T4,CF_0,A1,A2,A3,A4,0) #define CCALLSFFUN5( UN,LN,T1,T2,T3,T4,T5, A1,A2,A3,A4,A5) \ CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,0,0,0,0,0) #define CCALLSFFUN6( UN,LN,T1,T2,T3,T4,T5,T6, A1,A2,A3,A4,A5,A6) \ CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,0,0,0,0) #define CCALLSFFUN7( UN,LN,T1,T2,T3,T4,T5,T6,T7, A1,A2,A3,A4,A5,A6,A7) \ CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,0,0,0) #define CCALLSFFUN8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8, A1,A2,A3,A4,A5,A6,A7,A8) \ CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,0,0) #define CCALLSFFUN9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,A1,A2,A3,A4,A5,A6,A7,A8,A9)\ CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,0) #define CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA)\ (ZCF(T1,1,A1) ZCF(T2,2,A2) ZCF(T3,3,A3) ZCF(T4,4,A4) ZCF(T5,5,A5) \ ZCF(T6,6,A6) ZCF(T7,7,A7) ZCF(T8,8,A8) ZCF(T9,9,A9) ZCF(TA,A,AA) \ (CFFUN(UN)( BCF(T1,A1,0) BCF(T2,A2,1) BCF(T3,A3,1) BCF(T4,A4,1) BCF(T5,A5,1) \ BCF(T6,A6,1) BCF(T7,A7,1) BCF(T8,A8,1) BCF(T9,A9,1) BCF(TA,AA,1) \ SCF(T1,LN,1,A1) SCF(T2,LN,2,A2) SCF(T3,LN,3,A3) SCF(T4,LN,4,A4) \ SCF(T5,LN,5,A5) SCF(T6,LN,6,A6) SCF(T7,LN,7,A7) SCF(T8,LN,8,A8) \ SCF(T9,LN,9,A9) SCF(TA,LN,A,AA)))) /* N.B. Create a separate function instead of using (call function, function value here) because in order to create the variables needed for the input arg.'s which may be const.'s one has to do the creation within {}, but these can never be placed within ()'s. Therefore one must create wrapper functions. gcc, on the other hand may be able to avoid the wrapper functions. */ /* Prototypes are needed to correctly handle the value returned correctly. N.B. Can only have prototype arg.'s with difficulty, a la G... table since FORTRAN functions returning strings have extra arg.'s. Don't bother, since this only causes a compiler warning to come up when one uses FCALLSCFUNn and CCALLSFFUNn for the same function in the same source code. Something done by the experts in debugging only.*/ #define PROTOCCALLSFFUN0(F,UN,LN) \ PU##F( CFC_(UN,LN))(CF_NULL_PROTO); \ static _INT(2,U,F,CFFUN(UN),0)() {E##F _INT(3,GZ,F,UN,LN)); X##F} #define PROTOCCALLSFFUN1( T0,UN,LN,T1) \ PROTOCCALLSFFUN5 (T0,UN,LN,T1,CF_0,CF_0,CF_0,CF_0) #define PROTOCCALLSFFUN2( T0,UN,LN,T1,T2) \ PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,CF_0,CF_0,CF_0) #define PROTOCCALLSFFUN3( T0,UN,LN,T1,T2,T3) \ PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,T3,CF_0,CF_0) #define PROTOCCALLSFFUN4( T0,UN,LN,T1,T2,T3,T4) \ PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,T3,T4,CF_0) #define PROTOCCALLSFFUN5( T0,UN,LN,T1,T2,T3,T4,T5) \ PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0) #define PROTOCCALLSFFUN6( T0,UN,LN,T1,T2,T3,T4,T5,T6) \ PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0) #define PROTOCCALLSFFUN7( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7) \ PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0) #define PROTOCCALLSFFUN8( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \ PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0) #define PROTOCCALLSFFUN9( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \ PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0) /* HP/UX 9.01 cc requires the blank between '_INT(3,G,T0,UN,LN) CCCF(T1,1,0)' */ #ifndef __CF__KnR #define PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \ PU##T0(CFC_(UN,LN))(CF_NULL_PROTO); \ static _INT(2,U,T0,CFFUN(UN),0)(UCF(T1,1,0) UCF(T2,2,1) UCF(T3,3,1) UCF(T4,4,1) \ UCF(T5,5,1) UCF(T6,6,1) UCF(T7,7,1) UCF(T8,8,1) UCF(T9,9,1) UCF(TA,A,1) \ HCF(T1,1) HCF(T2,2) HCF(T3,3) HCF(T4,4) HCF(T5,5) \ HCF(T6,6) HCF(T7,7) HCF(T8,8) HCF(T9,9) HCF(TA,A) ) \ {VCF(T1,1) VCF(T2,2) VCF(T3,3) VCF(T4,4) VCF(T5,5) \ VCF(T6,6) VCF(T7,7) VCF(T8,8) VCF(T9,9) VCF(TA,A) E##T0 \ CCF(T1,1) CCF(T2,2) CCF(T3,3) CCF(T4,4) CCF(T5,5) \ CCF(T6,6) CCF(T7,7) CCF(T8,8) CCF(T9,9) CCF(TA,A) \ _INT(3,G,T0,UN,LN) CCCF(T1,1,0) CCCF(T2,2,1) CCCF(T3,3,1) CCCF(T4,4,1) CCCF(T5,5,1)\ CCCF(T6,6,1) CCCF(T7,7,1) CCCF(T8,8,1) CCCF(T9,9,1) CCCF(TA,A,1)\ JCF(T1,1) JCF(T2,2) JCF(T3,3) JCF(T4,4) JCF(T5,5) \ JCF(T6,6) JCF(T7,7) JCF(T8,8) JCF(T9,9) JCF(TA,A)); \ WCF(T1,A1,1) WCF(T2,A2,2) WCF(T3,A3,3) WCF(T4,A4,4) WCF(T5,A5,5) \ WCF(T6,A6,6) WCF(T7,A7,7) WCF(T8,A8,8) WCF(T9,A9,9) WCF(TA,AA,A) X##T0} #else #define PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \ PU##T0(CFC_(UN,LN))(CF_NULL_PROTO); \ static _INT(2,U,T0,CFFUN(UN),0)(UUCF(T1,1,0) UUCF(T2,2,1) UUCF(T3,3,1) UUCF(T4,4,1) \ UUCF(T5,5,1) UUCF(T6,6,1) UUCF(T7,7,1) UUCF(T8,8,1) UUCF(T9,9,1) UUCF(TA,A,1) \ HHCF(T1,1) HHCF(T2,2) HHCF(T3,3) HHCF(T4,4) HHCF(T5,5) \ HHCF(T6,6) HHCF(T7,7) HHCF(T8,8) HHCF(T9,9) HHCF(TA,A)) \ UUUCF(T1,1,0) UUUCF(T2,2,1) UUUCF(T3,3,1) UUUCF(T4,4,1) UUUCF(T5,5,1) \ UUUCF(T6,6,1) UUUCF(T7,7,1) UUUCF(T8,8,1) UUUCF(T9,9,1) UUUCF(TA,A,1) \ HHHCF(T1,1) HHHCF(T2,2) HHHCF(T3,3) HHHCF(T4,4) HHHCF(T5,5) \ HHHCF(T6,6) HHHCF(T7,7) HHHCF(T8,8) HHHCF(T9,9) HHHCF(TA,A); \ {VCF(T1,1) VCF(T2,2) VCF(T3,3) VCF(T4,4) VCF(T5,5) \ VCF(T6,6) VCF(T7,7) VCF(T8,8) VCF(T9,9) VCF(TA,A) E##T0 \ CCF(T1,1) CCF(T2,2) CCF(T3,3) CCF(T4,4) CCF(T5,5) \ CCF(T6,6) CCF(T7,7) CCF(T8,8) CCF(T9,9) CCF(TA,A) \ _INT(3,G,T0,UN,LN) CCCF(T1,1,0) CCCF(T2,2,1) CCCF(T3,3,1) CCCF(T4,4,1) CCCF(T5,5,1)\ CCCF(T6,6,1) CCCF(T7,7,1) CCCF(T8,8,1) CCCF(T9,9,1) CCCF(TA,A,1)\ JCF(T1,1) JCF(T2,2) JCF(T3,3) JCF(T4,4) JCF(T5,5) \ JCF(T6,6) JCF(T7,7) JCF(T8,8) JCF(T9,9) JCF(TA,A) ); \ WCF(T1,A1,1) WCF(T2,A2,2) WCF(T3,A3,3) WCF(T4,A4,4) WCF(T5,A5,5) \ WCF(T6,A6,6) WCF(T7,A7,7) WCF(T8,A8,8) WCF(T9,A9,9) WCF(TA,AA,A) X##T0} #endif /*-------------------------------------------------------------------------*/ /* UTILITIES FOR FORTRAN TO CALL C ROUTINES */ #ifdef OLD_VAXC /* Prevent %CC-I-PARAMNOTUSED. */ #pragma nostandard #endif #if defined(vmsFortran) || defined(CRAYFortran) #define DCF(TN,I) #define DDCF(TN,I) #define DDDCF(TN,I) #else #define DCF HCF #define DDCF HHCF #define DDDCF HHHCF #endif #define QCF(TN,I) STR_##TN(1,Q,B##I, 0,0,0) #define QLOGICAL( B) #define QPLOGICAL(B) #define QSTRINGV( B) char *B; unsigned int B##N; #define QSTRING( B) char *B=NULL; #define QPSTRING( B) char *B=NULL; #define QPSTRINGV QSTRINGV #define QPNSTRING(B) char *B=NULL; #define QPPSTRING(B) #define QSTRVOID( B) #ifdef apolloFortran #define ROUTINE_orig (void *)* /* Else, function value has to match. */ #else /* !apolloFortran */ #ifdef __sgi /* Else SGI gives warning 182 contrary to its C LRM A.17.7 */ #define ROUTINE_orig *(void**)& #else /* !__sgi */ #define ROUTINE_orig (void *) #endif /* __sgi */ #endif /* apolloFortran */ #define ROUTINE_1 ROUTINE_orig #define ROUTINE_2 ROUTINE_orig #define ROUTINE_3 ROUTINE_orig #define ROUTINE_4 ROUTINE_orig #define ROUTINE_5 ROUTINE_orig #define ROUTINE_6 ROUTINE_orig #define ROUTINE_7 ROUTINE_orig #define ROUTINE_8 ROUTINE_orig #define ROUTINE_9 ROUTINE_orig #define ROUTINE_10 ROUTINE_orig #define ROUTINE_11 ROUTINE_orig #define ROUTINE_12 ROUTINE_orig #define ROUTINE_13 ROUTINE_orig #define ROUTINE_14 ROUTINE_orig #define ROUTINE_15 ROUTINE_orig #define TCF(NAME,TN,I,M) _SEP_(TN,M,COMMA) T##TN(NAME,I,A##I,B##I,C##I) #define TBYTE( M,I,A,B,D) *A #define TDOUBLE( M,I,A,B,D) *A #define TFLOAT( M,I,A,B,D) *A #define TINT( M,I,A,B,D) *A #define TLOGICAL( M,I,A,B,D) F2CLOGICAL(*A) #define TLONG( M,I,A,B,D) *A #define TSHORT( M,I,A,B,D) *A #define TBYTEV( M,I,A,B,D) A #define TDOUBLEV( M,I,A,B,D) A #define TFLOATV( M,I,A,B,D) VOIDP0 A #define TINTV( M,I,A,B,D) A #define TLOGICALV( M,I,A,B,D) A #define TLONGV( M,I,A,B,D) A #define TSHORTV( M,I,A,B,D) A #define TBYTEVV( M,I,A,B,D) (void *)A /* We have to cast to void *, */ #define TBYTEVVV( M,I,A,B,D) (void *)A /* since we don't know the */ #define TBYTEVVVV( M,I,A,B,D) (void *)A /* dimensions of the array. */ #define TBYTEVVVVV( M,I,A,B,D) (void *)A /* i.e. Unfortunately, can't */ #define TBYTEVVVVVV( M,I,A,B,D) (void *)A /* check that the type matches */ #define TBYTEVVVVVVV( M,I,A,B,D) (void *)A /* with the prototype. */ #define TDOUBLEVV( M,I,A,B,D) (void *)A #define TDOUBLEVVV( M,I,A,B,D) (void *)A #define TDOUBLEVVVV( M,I,A,B,D) (void *)A #define TDOUBLEVVVVV( M,I,A,B,D) (void *)A #define TDOUBLEVVVVVV( M,I,A,B,D) (void *)A #define TDOUBLEVVVVVVV( M,I,A,B,D) (void *)A #define TFLOATVV( M,I,A,B,D) (void *)A #define TFLOATVVV( M,I,A,B,D) (void *)A #define TFLOATVVVV( M,I,A,B,D) (void *)A #define TFLOATVVVVV( M,I,A,B,D) (void *)A #define TFLOATVVVVVV( M,I,A,B,D) (void *)A #define TFLOATVVVVVVV( M,I,A,B,D) (void *)A #define TINTVV( M,I,A,B,D) (void *)A #define TINTVVV( M,I,A,B,D) (void *)A #define TINTVVVV( M,I,A,B,D) (void *)A #define TINTVVVVV( M,I,A,B,D) (void *)A #define TINTVVVVVV( M,I,A,B,D) (void *)A #define TINTVVVVVVV( M,I,A,B,D) (void *)A #define TLOGICALVV( M,I,A,B,D) (void *)A #define TLOGICALVVV( M,I,A,B,D) (void *)A #define TLOGICALVVVV( M,I,A,B,D) (void *)A #define TLOGICALVVVVV( M,I,A,B,D) (void *)A #define TLOGICALVVVVVV( M,I,A,B,D) (void *)A #define TLOGICALVVVVVVV(M,I,A,B,D) (void *)A #define TLONGVV( M,I,A,B,D) (void *)A #define TLONGVVV( M,I,A,B,D) (void *)A #define TLONGVVVV( M,I,A,B,D) (void *)A #define TLONGVVVVV( M,I,A,B,D) (void *)A #define TLONGVVVVVV( M,I,A,B,D) (void *)A #define TLONGVVVVVVV( M,I,A,B,D) (void *)A #define TSHORTVV( M,I,A,B,D) (void *)A #define TSHORTVVV( M,I,A,B,D) (void *)A #define TSHORTVVVV( M,I,A,B,D) (void *)A #define TSHORTVVVVV( M,I,A,B,D) (void *)A #define TSHORTVVVVVV( M,I,A,B,D) (void *)A #define TSHORTVVVVVVV( M,I,A,B,D) (void *)A #define TPBYTE( M,I,A,B,D) A #define TPDOUBLE( M,I,A,B,D) A #define TPFLOAT( M,I,A,B,D) VOIDP0 A #define TPINT( M,I,A,B,D) A #define TPLOGICAL( M,I,A,B,D) ((*A=F2CLOGICAL(*A)),A) #define TPLONG( M,I,A,B,D) A #define TPSHORT( M,I,A,B,D) A #define TPVOID( M,I,A,B,D) A #define TROUTINE( M,I,A,B,D) ROUTINE_##I A /* A == pointer to the characters D == length of the string, or of an element in an array of strings E == number of elements in an array of strings */ #define TTSTR( A,B,D) \ ((B=malloc(D+1))[D]='\0', memcpy(B,A,D), kill_trailing(B,' ')) #define TTTTSTR( A,B,D) (!(D<4||A[0]||A[1]||A[2]||A[3]))?NULL: \ memchr(A,'\0',D) ?A : TTSTR(A,B,D) #define TTTTSTRV( A,B,D,E) (B##N=E,B=malloc(B##N*(D+1)), (void *) \ vkill_trailing(f2cstrv(A,B,D+1, B##N*(D+1)), D+1,B##N*(D+1),' ')) #ifdef vmsFortran #define TSTRING( M,I,A,B,D) TTTTSTR( A->dsc$a_pointer,B,A->dsc$w_length) #define TSTRINGV( M,I,A,B,D) TTTTSTRV(A->dsc$a_pointer, B, \ A->dsc$w_length , A->dsc$l_m[0]) #define TPSTRING( M,I,A,B,D) TTSTR( A->dsc$a_pointer,B,A->dsc$w_length) #define TPPSTRING( M,I,A,B,D) A->dsc$a_pointer #define TSTRVOID( M,I,A,B,D) A->dsc$a_pointer,A->dsc$w_length #else #ifdef CRAYFortran #define TSTRING( M,I,A,B,D) TTTTSTR( _fcdtocp(A),B,_fcdlen(A)) #define TSTRINGV( M,I,A,B,D) TTTTSTRV(_fcdtocp(A),B,_fcdlen(A), \ num_elem(_fcdtocp(A),_fcdlen(A),M##_STRV_##A)) #define TPSTRING( M,I,A,B,D) TTSTR( _fcdtocp(A),B,_fcdlen(A)) #define TPPSTRING( M,I,A,B,D) _fcdtocp(A) #define TSTRVOID( M,I,A,B,D) _fcdtocp(A),_fcdlen(A) #else #define TSTRING( M,I,A,B,D) TTTTSTR( A,B,D) #define TSTRINGV( M,I,A,B,D) TTTTSTRV(A,B,D, \ num_elem(A,D,M##_STRV_##A)) #define TPSTRING( M,I,A,B,D) TTSTR( A,B,D) #define TPPSTRING( M,I,A,B,D) A #define TSTRVOID( M,I,A,B,D) A,D #endif #endif #define TPNSTRING TSTRING #define TPSTRINGV TSTRINGV #define TCF_0( M,I,A,B,D) #define RCF(TN,I) STR_##TN(3,R,A##I,B##I,C##I,0) #define RLOGICAL( A,B,D) #define RPLOGICAL(A,B,D) *A=C2FLOGICAL(*A); #define RSTRING( A,B,D) if (B) free(B); #define RSTRINGV( A,B,D) free(B); /* A and D as defined above for TSTRING(V) */ #define RRRRPSTR( A,B,D) if (B) memcpy(A,B,PGSMIN(strlen(B),D)), \ (D>strlen(B)?memset(A+strlen(B),' ', D-strlen(B)):0), free(B); #define RRRRPSTRV(A,B,D) c2fstrv(B,A,D+1,(D+1)*B##N), free(B); #ifdef vmsFortran #define RPSTRING( A,B,D) RRRRPSTR( A->dsc$a_pointer,B,A->dsc$w_length) #define RPSTRINGV(A,B,D) RRRRPSTRV(A->dsc$a_pointer,B,A->dsc$w_length) #else #ifdef CRAYFortran #define RPSTRING( A,B,D) RRRRPSTR( _fcdtocp(A),B,_fcdlen(A)) #define RPSTRINGV(A,B,D) RRRRPSTRV(_fcdtocp(A),B,_fcdlen(A)) #else #define RPSTRING( A,B,D) RRRRPSTR( A,B,D) #define RPSTRINGV(A,B,D) RRRRPSTRV(A,B,D) #endif #endif #define RPNSTRING(A,B,D) RPSTRING( A,B,D) #define RPPSTRING(A,B,D) #define RSTRVOID( A,B,D) #define FZBYTE( UN,LN) INTEGER_BYTE fcallsc(UN,LN)( #define FZDOUBLE( UN,LN) DOUBLE_PRECISION fcallsc(UN,LN)( #define FZINT( UN,LN) int fcallsc(UN,LN)( #define FZLOGICAL(UN,LN) int fcallsc(UN,LN)( #define FZLONG( UN,LN) long fcallsc(UN,LN)( #define FZSHORT( UN,LN) short fcallsc(UN,LN)( #define FZVOID( UN,LN) void fcallsc(UN,LN)( #ifndef __CF__KnR /* The void is req'd by the Apollo, to make this an ANSI function declaration. The Apollo promotes K&R float functions to double. */ #define FZFLOAT( UN,LN) float fcallsc(UN,LN)(void #ifdef vmsFortran #define FZSTRING( UN,LN) void fcallsc(UN,LN)(fstring *AS #else #ifdef CRAYFortran #define FZSTRING( UN,LN) void fcallsc(UN,LN)(_fcd AS #else #define FZSTRING( UN,LN) void fcallsc(UN,LN)(char *AS, unsigned D0 #endif #endif #else #ifndef sunFortran #define FZFLOAT( UN,LN) float fcallsc(UN,LN)( #else #define FZFLOAT( UN,LN) FLOATFUNCTIONTYPE fcallsc(UN,LN)( #endif #if defined(vmsFortran) || defined(CRAYFortran) #define FZSTRING( UN,LN) void fcallsc(UN,LN)(AS #else #define FZSTRING( UN,LN) void fcallsc(UN,LN)(AS, D0 #endif #endif #define FBYTE FZBYTE #define FDOUBLE FZDOUBLE #ifndef __CF_KnR #define FFLOAT( UN,LN) float fcallsc(UN,LN)( #else #define FFLOAT FZFLOAT #endif #define FINT FZINT #define FLOGICAL FZLOGICAL #define FLONG FZLONG #define FSHORT FZSHORT #define FVOID FZVOID #define FSTRING( UN,LN) FZSTRING(UN,LN), #define FFINT #define FFVOID #ifdef vmsFortran #define FFSTRING fstring *AS; #else #ifdef CRAYFortran #define FFSTRING _fcd AS; #else #define FFSTRING char *AS; unsigned D0; #endif #endif #define LLINT A0= #define LLSTRING A0= #define LLVOID #define KINT #define KVOID /* KSTRING copies the string into the position provided by the caller. */ #ifdef vmsFortran #define KSTRING \ memcpy(AS->dsc$a_pointer,A0, PGSMIN(AS->dsc$w_length,(A0==NULL?0:strlen(A0))) ); \ AS->dsc$w_length>(A0==NULL?0:strlen(A0))? \ memset(AS->dsc$a_pointer+(A0==NULL?0:strlen(A0)),' ', \ AS->dsc$w_length-(A0==NULL?0:strlen(A0))):0; #else #ifdef CRAYFortran #define KSTRING \ memcpy(_fcdtocp(AS),A0, PGSMIN(_fcdlen(AS),(A0==NULL?0:strlen(A0))) ); \ _fcdlen(AS)>(A0==NULL?0:strlen(A0))? \ memset(_fcdtocp(AS)+(A0==NULL?0:strlen(A0)),' ', \ _fcdlen(AS)-(A0==NULL?0:strlen(A0))):0; #else #define KSTRING memcpy(AS,A0, PGSMIN(D0,(A0==NULL?0:strlen(A0))) ); \ D0>(A0==NULL?0:strlen(A0))?memset(AS+(A0==NULL?0:strlen(A0)), \ ' ', D0-(A0==NULL?0:strlen(A0))):0; #endif #endif /* Note that K.. and I.. can't be combined since K.. has to access data before R.., in order for functions returning strings which are also passed in as arguments to work correctly. Note that R.. frees and hence may corrupt the string. */ #define IBYTE return A0; #define IDOUBLE return A0; #ifndef sunFortran #define IFLOAT return A0; #else #define IFLOAT RETURNFLOAT(A0); #endif #define IINT return A0; #define ILOGICAL return C2FLOGICAL(A0); #define ILONG return A0; #define ISHORT return A0; #define ISTRING return ; #define IVOID return ; #ifdef OLD_VAXC /* Allow %CC-I-PARAMNOTUSED. */ #pragma standard #endif #define FCALLSCSUB0( CN,UN,LN) FCALLSCFUN0(VOID,CN,UN,LN) #define FCALLSCSUB1( CN,UN,LN,T1) FCALLSCFUN1(VOID,CN,UN,LN,T1) #define FCALLSCSUB2( CN,UN,LN,T1,T2) FCALLSCFUN2(VOID,CN,UN,LN,T1,T2) #define FCALLSCSUB3( CN,UN,LN,T1,T2,T3) FCALLSCFUN3(VOID,CN,UN,LN,T1,T2,T3) #define FCALLSCSUB4( CN,UN,LN,T1,T2,T3,T4) FCALLSCFUN4(VOID,CN,UN,LN,T1,T2,T3,T4) #define FCALLSCSUB5( CN,UN,LN,T1,T2,T3,T4,T5) \ FCALLSCFUN5(VOID,CN,UN,LN,T1,T2,T3,T4,T5) #define FCALLSCSUB6( CN,UN,LN,T1,T2,T3,T4,T5,T6) \ FCALLSCFUN6(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6) #define FCALLSCSUB7( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7) \ FCALLSCFUN7(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7) #define FCALLSCSUB8( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \ FCALLSCFUN8(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) #define FCALLSCSUB9( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \ FCALLSCFUN9(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) #define FCALLSCSUB10(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \ FCALLSCFUN10(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) #define FCALLSCSUB11(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \ FCALLSCFUN11(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) #define FCALLSCSUB12(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \ FCALLSCFUN12(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) #define FCALLSCSUB13(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \ FCALLSCFUN13(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) #define FCALLSCSUB14(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \ FCALLSCFUN14(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) #define FCALLSCSUB15(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \ FCALLSCFUN15(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) #define FCALLSCFUN1( T0,CN,UN,LN,T1) \ FCALLSCFUN5 (T0,CN,UN,LN,T1,CF_0,CF_0,CF_0,CF_0) #define FCALLSCFUN2( T0,CN,UN,LN,T1,T2) \ FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,CF_0,CF_0,CF_0) #define FCALLSCFUN3( T0,CN,UN,LN,T1,T2,T3) \ FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,T3,CF_0,CF_0) #define FCALLSCFUN4( T0,CN,UN,LN,T1,T2,T3,T4) \ FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,T3,T4,CF_0) #define FCALLSCFUN5( T0,CN,UN,LN,T1,T2,T3,T4,T5)\ FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0) #define FCALLSCFUN6( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6) \ FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0) #define FCALLSCFUN7( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7) \ FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0) #define FCALLSCFUN8( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \ FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0) #define FCALLSCFUN9( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \ FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0) #define FCALLSCFUN10( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \ FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0,CF_0) #define FCALLSCFUN11( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \ FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0,CF_0) #define FCALLSCFUN12( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \ FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0,CF_0) #define FCALLSCFUN13( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \ FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0,CF_0) #define FCALLSCFUN14( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \ FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,CF_0) #ifndef __CF__KnR #define FCALLSCFUN0(T0,CN,UN,LN) \ FZ##T0(UN,LN)) {_INT(2,UU,T0,A0,0); _INT(0,LL,T0,0,0) CN(); _INT(0,K,T0,0,0) I##T0} #define FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \ F##T0(UN,LN) NCF(T1,1,0) NCF(T2,2,1) NCF(T3,3,1) NCF(T4,4,1) NCF(T5,5,1) \ NCF(T6,6,1) NCF(T7,7,1) NCF(T8,8,1) NCF(T9,9,1) NCF(TA,A,1) \ NCF(TB,B,1) NCF(TC,C,1) NCF(TD,D,1) NCF(TE,E,1) NCF(TF,F,1) \ DCF(T1,1) DCF(T2,2) DCF(T3,3) DCF(T4,4) DCF(T5,5) \ DCF(T6,6) DCF(T7,7) DCF(T8,8) DCF(T9,9) DCF(TA,A) \ DCF(TB,B) DCF(TC,C) DCF(TD,D) DCF(TE,E) DCF(TF,F) ) \ {QCF(T1,1) QCF(T2,2) QCF(T3,3) QCF(T4,4) QCF(T5,5) \ QCF(T6,6) QCF(T7,7) QCF(T8,8) QCF(T9,9) QCF(TA,A) \ QCF(TB,B) QCF(TC,C) QCF(TD,D) QCF(TE,E) QCF(TF,F) _INT(2,UU,T0,A0,0); \ _INT(0,LL,T0,0,0) CN(TCF(LN,T1,1,0) TCF(LN,T2,2,1) TCF(LN,T3,3,1) TCF(LN,T4,4,1) \ TCF(LN,T5,5,1) TCF(LN,T6,6,1) TCF(LN,T7,7,1) TCF(LN,T8,8,1) TCF(LN,T9,9,1) \ TCF(LN,TA,A,1) TCF(LN,TB,B,1) TCF(LN,TC,C,1) TCF(LN,TD,D,1) TCF(LN,TE,E,1) TCF(LN,TF,F,1)); \ _INT(0,K,T0,0,0) RCF(T1,1) RCF(T2,2) RCF(T3,3) RCF(T4,4) \ RCF(T5,5) RCF(T6,6) RCF(T7,7) RCF(T8,8) RCF(T9,9) RCF(TA,A) \ RCF(TB,B) RCF(TC,C) RCF(TD,D) RCF(TE,E) RCF(TF,F) I##T0} #else #define FCALLSCFUN0(T0,CN,UN,LN) FZ##T0(UN,LN)) _INT(0,FF,T0,0,0) \ {_INT(2,UU,T0,A0,0); _INT(0,LL,T0,0,0) CN(); _INT(0,K,T0,0,0) I##T0} #define FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \ F##T0(UN,LN) NNCF(T1,1,0) NNCF(T2,2,1) NNCF(T3,3,1) NNCF(T4,4,1) NNCF(T5,5,1)\ NNCF(T6,6,1) NNCF(T7,7,1) NNCF(T8,8,1) NNCF(T9,9,1) \ NNCF(TA,A,1) NNCF(TB,B,1) NNCF(TC,C,1) NNCF(TD,D,1) NNCF(TE,E,1) NNCF(TF,F,1) \ DDCF(T1,1) DDCF(T2,2) DDCF(T3,3) DDCF(T4,4) DDCF(T5,5) \ DDCF(T6,6) DDCF(T7,7) DDCF(T8,8) DDCF(T9,9) \ DDCF(TA,A) DDCF(TB,B) DDCF(TC,C) DDCF(TD,D) DDCF(TE,E) DDCF(TF,F)) _INT(0,FF,T0,0,0) \ NNNCF(T1,1,0) NNNCF(T2,2,1) NNNCF(T3,3,1) NNNCF(T4,4,1) NNNCF(T5,5,1) \ NNNCF(T6,6,1) NNNCF(T7,7,1) NNNCF(T8,8,1) NNNCF(T9,9,1) \ NNNCF(TA,A,1) NNNCF(TB,B,1) NNNCF(TC,C,1) NNNCF(TD,D,1) NNNCF(TE,E,1) NNNCF(TF,F,1) \ DDDCF(T1,1) DDDCF(T2,2) DDDCF(T3,3) DDDCF(T4,4) DDDCF(T5,5) \ DDDCF(T6,6) DDDCF(T7,7) DDDCF(T8,8) DDDCF(T9,9) \ DDDCF(TA,A) DDDCF(TB,B) DDDCF(TC,C) DDDCF(TD,D) DDDCF(TE,E) DDDCF(TF,F); \ {QCF(T1,1) QCF(T2,2) QCF(T3,3) QCF(T4,4) QCF(T5,5) \ QCF(T6,6) QCF(T7,7) QCF(T8,8) QCF(T9,9) \ QCF(TA,A) QCF(TB,B) QCF(TC,C) QCF(TD,D) QCF(TE,E) QCF(TF,F) _INT(2,UU,T0,A0,0); \ _INT(0,LL,T0,0,0) CN( TCF(LN,T1,1,0) TCF(LN,T2,2,1) TCF(LN,T3,3,1) \ TCF(LN,T4,4,1) TCF(LN,T5,5,1) TCF(LN,T6,6,1) \ TCF(LN,T7,7,1) TCF(LN,T8,8,1) TCF(LN,T9,9,1) \ TCF(LN,TA,A,1) TCF(LN,TB,B,1) TCF(LN,TC,C,1) TCF(LN,TD,D,1) TCF(LN,TE,E,1) TCF(LN,TF,F,1)); \ _INT(0,K,T0,0,0) RCF(T1,1) RCF(T2,2) RCF(T3,3) RCF(T4,4) RCF(T5,5) \ RCF(T6,6) RCF(T7,7) RCF(T8,8) RCF(T9,9) \ RCF(TA,A) RCF(TB,B) RCF(TC,C) RCF(TD,D) RCF(TE,E) RCF(TF,F) I##T0} #endif #endif /* VAX VMS or Ultrix, Mips, CRAY, Sun, Apollo, HP9000, LynxOS, IBMR2. f2c, NAG f90. */ #ifdef __cplusplus } #endif hdf-eos5-5.1.14+dfsg.1/include/Makefile.in0000644000175000017500000003213112024715435021117 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # gctp/include Makefile.am srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(include_HEADERS) $(srcdir)/HE5_config.h.in \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/include.am subdir = include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = HE5_config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(includedir)" includeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(include_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F2CFORTRAN_32PTR_CONDITIONAL_FALSE = @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@ F2CFORTRAN_32PTR_CONDITIONAL_TRUE = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@ F2CFORTRAN_90_CONDITIONAL_FALSE = @F2CFORTRAN_90_CONDITIONAL_FALSE@ F2CFORTRAN_90_CONDITIONAL_TRUE = @F2CFORTRAN_90_CONDITIONAL_TRUE@ F2CFORTRAN_CONDITIONAL_FALSE = @F2CFORTRAN_CONDITIONAL_FALSE@ F2CFORTRAN_CONDITIONAL_TRUE = @F2CFORTRAN_CONDITIONAL_TRUE@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SZIP_ENCODER_CONDITIONAL_FALSE = @SZIP_ENCODER_CONDITIONAL_FALSE@ SZIP_ENCODER_CONDITIONAL_TRUE = @SZIP_ENCODER_CONDITIONAL_TRUE@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la # Boilerplate include # Headers to install include_HEADERS = HE5_GctpFunc.h HE5_HdfEosDef.h HE5_config.h cproj.h ease.h \ isin.h proj.h tutils.h cfortHdf.h all: HE5_config.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh HE5_config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/HE5_config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status include/HE5_config.h $(srcdir)/HE5_config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f HE5_config.h stamp-h1 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" @list='$(include_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ rm -f "$(DESTDIR)$(includedir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) HE5_config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) HE5_config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) HE5_config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) HE5_config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) HE5_config.h installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-includeHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am \ install-includeHEADERS install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-includeHEADERS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/include/HE5_GctpFunc.h0000755000175000017500000003611312024715435021404 0ustar amckinstryamckinstry/*--------------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | | Permission to use, modify, and distribute this software and its documentation | | for any purpose without fee is hereby granted, provided that the above | | copyright notice appear in all copies and that both that copyright notice and | | this permission notice appear in supporting documentation. | | | | BEGIN_FILE_PROLOG: | | FILENAME: | | HE5_GCTPFUNC.H | | DESCRIPTION: | | This file contains function prototypes that are specific to the GCTP | | AUTHOR: | | Alex Muslimov / Emergent Information Tecnologies, Inc. | | HISTORY: | | 14-May-01 AM Initial version | | END_FILE_PROLOG: | ---------------------------------------------------------------------------------- */ #ifndef HE5_GctpFunc_h #define HE5_GctpFunc_h /***************************************************************** Function prototypes. *****************************************************************/ int stplnfor(double lon, double lat, double *x, double *y); int stplninv(double x, double y, double *lon, double *lat); int stplnforint(long zone, long sphere, char *fn27, char *fn83); int stplninvint(long zone, long sphere, char *fn27, char *fn83); int alberfor(double lon, double lat, double *x, double *y); int alberinv(double x, double y, double *lon, double *lat); int alberforint(double r_maj, double r_min, double lat1, double lat2, double lon0, double lat0, double false_east, double false_north); int alberinvint(double r_maj, double r_min, double lat1, double lat2, double lon0, double lat0, double false_east, double false_north); int lamccfor(double lon, double lat, double *x, double *y); int lamccinv(double x, double y, double *lon, double *lat); int lamccforint(double r_maj, double r_min, double lat1, double lat2, double c_lon, double c_lat, double false_east, double false_north); int lamccinvint(double r_maj, double r_min, double lat1, double lat2, double c_lon, double c_lat, double false_east, double false_north); int merfor(double lon, double lat, double *x, double *y); int merinv(double x, double y, double *lon, double *lat); int merforint(double r_maj, double r_min, double center_lon, double center_lat, double false_east, double false_north); int merinvint(double r_maj, double r_min, double center_lon, double center_lat, double false_east, double false_north); int psfor(double lon, double lat, double *x, double *y); int psinv(double x, double y, double *lon, double *lat); int psforint(double r_maj, double r_min, double c_lon, double c_lat, double false_east, double false_north); int psinvint(double r_maj, double r_min, double c_lon, double c_lat, double false_east, double false_north); int polyfor(double lon, double lat, double *x, double *y); int polyinv(double x, double y, double *lon, double *lat); int polyforint(double r_maj, double r_min, double center_lon, double center_lat, double false_east, double false_north); int polyinvint(double r_maj, double r_min, double center_lon, double center_lat, double false_east, double false_north); int eqconfor(double lon, double lat, double *x, double *y); int eqconinv(double x, double y, double *lon, double *lat); int eqconforint(double r_maj, double r_min, double lat1, double lat2, double center_lon, double center_lat, double false_east, double false_north, long mode); int eqconinvint(double r_maj, double r_min, double lat1, double lat2, double center_lon, double center_lat, double false_east, double false_north, long mode); int tmfor(double lon, double lat, double *x, double *y); int tminv(double x, double y, double *lon, double *lat); int tmforint(double r_maj, double r_min, double scale_fact, double center_lon, double center_lat, double false_east, double false_north); int tminvint(double r_maj, double r_min, double scale_fact, double center_lon, double center_lat, double false_east, double false_north); int sterfor(double lon, double lat, double *x, double *y); int sterinv(double x, double y, double *lon, double *lat); int sterforint(double r_maj, double center_lon, double center_lat, double false_east, double false_north); int sterinvint(double r_maj, double center_lon, double center_lat, double false_east, double false_north); int lamazfor(double lon, double lat, double *x, double *y); int lamazinv(double x, double y, double *lon, double *lat); int lamazforint(double r, double center_long, double center_lat, double false_east, double false_north); int lamazinvint(double r, double center_long, double center_lat, double false_east, double false_north); int azimfor(double lon, double lat, double *x, double *y); int aziminv(double x, double y, double *lon, double *lat); int azimforint(double r_maj, double center_lon, double center_lat, double false_east, double false_north); int aziminvint(double r_maj, double center_lon, double center_lat, double false_east, double false_north); int gnomfor(double lon, double lat, double *x, double *y); int gnominv(double x, double y, double *lon, double *lat); int gnomforint(double r, double center_long, double center_lat, double false_east, double false_north); int gnominvint(double r, double center_long, double center_lat, double false_east, double false_north); int orthfor(double lon, double lat, double *x, double *y); int orthinv(double x, double y, double *lon, double *lat); int orthforint(double r_maj, double center_lon, double center_lat, double false_east, double false_north); int orthinvint(double r_maj, double center_lon, double center_lat, double false_east, double false_north); int gvnspfor(double lon, double lat, double *x, double *y); int gvnspinv(double x, double y, double *lon, double *lat); int gvnspforint(double r, double h, double center_long, double center_lat, double false_east, double false_north); int gvnspinvint(double r, double h, double center_long, double center_lat, double false_east, double false_north); int sinfor(double lon, double lat, double *x, double *y); int sininv(double x, double y, double *lon, double *lat); int sinforint(double r, double center_long, double false_east, double false_north); int sininvint(double r, double center_long, double false_east, double false_north); int equifor(double lon, double lat, double *x, double *y); int equiinv(double x, double y, double *lon, double *lat); int equiforint(double r_maj, double center_lon, double lat1, double false_east, double false_north); int equiinvint(double r_maj, double center_lon, double lat1, double false_east, double false_north); int millfor(double lon, double lat, double *x, double *y); int millinv(double x, double y, double *lon, double *lat); int millforint(double r, double center_long, double false_east, double false_north); int millinvint(double r, double center_long, double false_east, double false_north); int vandgfor(double lon, double lat, double *x, double *y); int vandginv(double x, double y, double *lon, double *lat); int vandgforint(double r, double center_long, double false_east, double false_north); int vandginvint(double r, double center_long, double false_east, double false_north); int omerfor(double lon, double lat, double *x, double *y); int omerinv(double x, double y, double *lon, double *lat); int omerforint(double r_maj, double r_min, double scale_fact, double azimuth, double lon_orig, double lat_orig, double false_east, double false_north, double lon1, double lat1, double lon2, double lat2, long mode); int omerinvint(double r_maj, double r_min, double scale_fact, double azimuth, double lon_orig, double lat_orig, double false_east, double false_north, double lon1, double lat1, double lon2, double lat2, long mode); int somfor(double lon, double lat, double *x, double *y); int sominv(double x, double y, double *lon, double *lat); int somforint(double r_major, double r_minor, long satnum, long path, double alf_in, double lon, double false_east, double false_north, double time, long start1, long flag, double sat_ratio); int sominvint(double r_major, double r_minor, long satnum, long path, double alf_in, double lon, double false_east, double false_north, double time, long start1, long flag, double sat_ratio); int hamfor(double lon, double lat, double *x, double *y); int haminv(double x, double y, double *lon, double *lat); int hamforint(double r, double center_long, double false_east, double false_north); int haminvint(double r, double center_long, double false_east, double false_north); int robfor(double lon, double lat, double *x, double *y); int robinv(double x, double y, double *lon, double *lat); int robforint(double r, double center_long, double false_east, double false_north); int robinvint(double r, double center_long, double false_east, double false_north); int goodfor(double lon, double lat, double *x, double *y); int goodinv(double x, double y, double *lon, double *lat); int goodforint(double r); int goodinvint(double r); int molwfor(double lon, double lat, double *x, double *y); int molwinv(double x, double y, double *lon, double *lat); int molwforint(double r, double center_long, double false_east, double false_north); int molwinvint(double r, double center_long, double false_east, double false_north); int imolwfor(double lon, double lat, double *x, double *y); int imolwinv(double x, double y, double *lon, double *lat); int imolwforint(double r); int imolwinvint(double r); int alconfor(double lon, double lat, double *x, double *y); int alconinv(double x, double y, double *lon, double *lat); int alconforint(double r_maj, double r_min, double false_east, double false_north); int alconinvint(double r_maj, double r_min, double false_east, double false_north); int wivfor(double lon, double lat, double *x, double *y); int wivinv(double x, double y, double *lon, double *lat); int wivforint(double r, double center_long, double false_east, double false_north); int wivinvint(double r, double center_long, double false_east, double false_north); int wviifor(double lon, double lat, double *x, double *y); int wviiinv(double x, double y, double *lon, double *lat); int wviiforint(double r, double center_long, double false_east, double false_north); int wviiinvint(double r, double center_long, double false_east, double false_north); int obleqfor(double lon, double lat, double *x, double *y); int obleqinv(double x, double y, double *lon, double *lat); int obleqforint(double r, double center_long, double center_lat, double shape_m, double shape_n, double angle, double false_east, double false_north); int obleqinvint(double r, double center_long, double center_lat, double shape_m, double shape_n, double angle, double false_east, double false_north); int isinusfor(double lon, double lat, double *x, double *y); int isinusinv(double x, double y, double *lon, double *lat); long isinusforinit(double sphere, double lon_cen_mer, double false_east, double false_north, double dzone, double djustify); long isinusinvinit(double sphere, double lon_cen_mer, double false_east, double false_north, double dzone, double djustify); int utmfor(double lon, double lat, double *x, double *y); int utminv(double x, double y, double *lon, double *lat); int utmforint(double r_maj, double r_min, double scale_fact, long zone); int utminvint(double r_maj, double r_min, double scale_fact, long zone); long calc_utm_zone(double lon); int bceaforint(double r_maj, double center_lon, double center_lat, double false_east, double false_north); int bceafor(double lon, double lat, double *x, double *y); int bceainvint(double r_maj, double center_lon, double center_lat, double false_east, double false_north); int bceainv(double x, double y, double *lon, double *lat); void p_error(char *what, char *where); void ptitle(char *A); void tsincos(double val, double *sin_val, double *cos_val); double msfnz(double eccent, double sinphi, double cosphi); double qsfnz(double eccent, double sinphi, double cosphi); double tsfnz(double eccent, double phi, double sinphi); void radius2(double A, double B); void radius(double A); void stanparl(double A, double B); void cenlonmer(double A); void cenlon(double A); void cenlat(double A); void origin(double A); void offsetp(double A, double B); double adjust_lon(double x); double phi1z(double eccent, double qs, long *flag); double phi2z(double eccent, double ts, long *flag); double phi3z(double ml, double e0, double e1, double e2, double e3, long *flag); double phi4z(double eccent, double e0, double e1, double e2, double e3, double a, double b, double *c, double *phi); double asinz(double con); int sign(double x); double e0fn(double x); double e1fn(double x); double e2fn(double x); double e3fn(double x); double e4fn(double x); double mlfn(double e0, double e1, double e2, double e3, double phi); double paksz(double ang, long *iflg); double pakcz(double pak); void stparl1(double A); void genrpt(double A, char *S); void genrpt_long(long A, char *S); void pblank(); #if defined(SGI64) void for_init(int a, int b, double c[], int d, char *str1, char *str2, int *e, int (**func)(double, double, double *, double *)); void inv_init(int a,int b,double *c,int d,char *str1,char *str2,int *e,int (**func)(double, double, double*, double*)); #else void for_init(long a, long b, double c[], long d, char *str1, char *str2, long *e, long (**func)(double, double, double *, double *)); void inv_init(long a,long b,double *c,long d,char *str1,char *str2,long *e,long (**func)(double, double, double*, double*)); #endif #endif hdf-eos5-5.1.14+dfsg.1/include/isin.h0000755000175000017500000000655712024715435020205 0ustar amckinstryamckinstry/****************************************************************************** NAME ISIN.H PURPOSE: Integerized Sinusoidal Library Header - constants, data structures and prototypes for integerized sinusoidal library functions. PROGRAMMER DATE REASON ---------- ---- ------ Robert Wolfe (STX) 1-2-97 Initial version. Raj Gejjagaraguppe (ARC) 1-15-97 Modified the code to work with GCTP software. D*****************************************************************************/ #ifdef __cplusplus extern "C" { #endif /* Status returned */ #define ISIN_SUCCESS 0 /* Successful return */ #define ISIN_ERROR -1 /* Error return */ #define ISIN_ERANGE -2 /* Input variable out of range */ /* Data Structures */ /* Row Type; Information for Eash Row (longitudinal band) in Projection */ typedef struct { long ncol; /* Number of columns */ long icol_cen; /* Column number to left of center of grid */ double ncol_inv; /* Number of columns inverse */ } Isin_row_t; /* Handle Type; Values assigned in 'Isin_init' */ typedef struct { double false_east; /* Northing at projection origin */ double false_north; /* Easting at projection origin */ double sphere; /* Sphere radius (user's units) */ double sphere_inv; /* Sphere radius inverse (user's units) */ double ang_size_inv; /* Grid angular resolution inverse (1/rad)*/ long nrow; /* Number of rows (longitudinal zones) */ long nrow_half; /* Half of number of rows (longitudinal zones)*/ double ref_lon; /* Zero reference longitude (rad) */ double lon_cen_mer; /* Longitude of central meridian (rad) */ int ijustify; /* Justify flag (see Isin_init) */ double col_dist; /* Distance for one column in projection * (user's units) */ double col_dist_inv; /* Distance for one column in projection inverse * (user's units) */ Isin_row_t *row; /* Row data structure */ long key; /* Data structure key */ } Isin_t; /* Error Structure */ typedef struct { int num; /* Error number */ char *str; /* Error message */ } error_t; /* Prototypes */ /* Initialize integerized sinusoidal forward transformations */ long isinusforinit(double , double, double, double, double, double); Isin_t *Isin_for_init(double , double, double, double, long, int); /* Initialize integerized sinusoidal inverse transformations */ long isinusinvinit(double , double, double, double, double, double); Isin_t *Isin_inv_init(double , double, double, double, long, int); /* Forward mapping; converts geographic coordinates ('lon', 'lat') * to map projection coordinates ('x', 'y') */ long isinusfor(double, double, double *, double *); int Isin_fwd(const Isin_t *, double, double, double *, double *); /* Inverse mapping; converts map projection coordinates ('x', 'y') to * geographic coordinates ('lon', 'lat') */ long isinusinv(double, double, double *, double *); int Isin_inv(const Isin_t *, double, double, double *, double *); /* Deallocate the 'isin' data structure and array memory */ int Isin_for_free(Isin_t *); int Isin_inv_free(Isin_t *); /* Private function to handle errors */ static int Isin_error(const error_t *, const char *); #ifdef __cplusplus } #endif hdf-eos5-5.1.14+dfsg.1/include/tutils.h0000644000175000017500000000466212024715435020557 0ustar amckinstryamckinstry/**************************************************************************** * NCSA HDF * * Software Development Group * * National Center for Supercomputing Applications * * University of Illinois at Urbana-Champaign * * 605 E. Springfield, Champaign IL 61820 * * * * For conditions of distribution and use, see the accompanying * * hdf/COPYING file. * * * ****************************************************************************/ /* tutils.h,v 1.12 1995/10/05 16:17:28 koziol Exp */ #ifndef _TUTILS_H #define _TUTILS_H /* Define these for use in all the tests */ #ifndef TESTMASTER extern #endif int num_errs #ifdef TESTMASTER = 0 #endif , Verbosity #ifdef TESTMASTER = 0 #endif ; #ifdef TEST_PC #define FAR far #else #ifndef FAR #define FAR /* */ #endif /* FAR */ #endif /* TEST_PC */ /* Use %ld to print the value because long could cover most cases. */ /* Used to make certain a return value _is_not_ a value */ #define CHECK(ret, val, where) \ do {if (Verbosity>9) printf(" Call to HDF routine: %15s at line %4d in %s returned %ld \n",where,(int)__LINE__,__FILE__,(long)ret);\ if(ret == val) {printf("*** UNEXPECTED RETURN from %s is %ld at line %4d in %s\n", where, (long)ret, (int)__LINE__,__FILE__); num_errs++;} \ } while(0) /* Used to make certain a return value _is_ a value */ #define VERIFY(x, val, where) \ do {if (Verbosity>9) printf(" Call to HDF routine: %15s at line %4d in %s had value %ld \n",where,(int)__LINE__,__FILE__,(long)x);\ if(x != val) {printf("*** UNEXPECTED VALUE from %s is %ld at line %4d in %s\n", where, (long)x,(int)__LINE__,__FILE__); num_errs++;} \ } while(0) #define RESULT(a) \ do { \ if (Verbosity>8) printf(" Call to HDF routine: %15s at line %4d in %s returned %ld \n",a,(int)__LINE__,__FILE__,(long)ret); \ if (Verbosity>9) HEprint(stdout,0); \ if(ret == FAIL) {printf("*** UNEXPECTED RETURN from %s is %ld at line %4d in %s\n", a, (long)ret,(int)__LINE__,__FILE__); num_errs++;} \ } while(0) #define MESSAGE(v,a) {if (Verbosity>=v) {a}} #endif /* _TUTILS_H */ hdf-eos5-5.1.14+dfsg.1/include/proj.h0000755000175000017500000000435212024715435020204 0ustar amckinstryamckinstry/* 0 = Geographic 1 = Universal Transverse Mercator (UTM) 2 = State Plane Coordinates 3 = Albers Conical Equal Area 4 = Lambert Conformal Conic 5 = Mercator 6 = Polar Stereographic 7 = Polyconic 8 = Equidistant Conic 9 = Transverse Mercator 10 = Stereographic 11 = Lambert Azimuthal Equal Area 12 = Azimuthal Equidistant 13 = Gnomonic 14 = Orthographic 15 = General Vertical Near-Side Perspective 16 = Sinusiodal 17 = Equirectangular 18 = Miller Cylindrical 19 = Van der Grinten 20 = (Hotine) Oblique Mercator 21 = Robinson 22 = Space Oblique Mercator (SOM) 23 = Alaska Conformal 24 = Interrupted Goode Homolosine 25 = Mollweide 26 = Interrupted Mollweide 27 = Hammer 28 = Wagner IV 29 = Wagner VII 30 = Oblated Equal Area 31 = Integerized Sinusoidal Grid (the same as 99) 97 = Cylindrical Equal Area (Grid corners set in meters for EASE grid) 98 = Cylindrical Equal Area (Grid corners set in DMS degs for EASE grid) 99 = Integerized Sinusoidal Grid (added by Raj Gejjagaraguppe ARC for MODIS) */ #ifdef __cplusplus extern "C" { #endif #define GEO 0 #define UTM 1 #define SPCS 2 #define ALBERS 3 #define LAMCC 4 #define MERCAT 5 #define PS 6 #define POLYC 7 #define EQUIDC 8 #define TM 9 #define STEREO 10 #define LAMAZ 11 #define AZMEQD 12 #define GNOMON 13 #define ORTHO 14 #define GVNSP 15 #define SNSOID 16 #define EQRECT 17 #define MILLER 18 #define VGRINT 19 #define HOM 20 #define ROBIN 21 #define SOM 22 #define ALASKA 23 #define GOODE 24 #define MOLL 25 #define IMOLL 26 #define HAMMER 27 #define WAGIV 28 #define WAGVII 29 #define OBEQA 30 #define ISINUS1 31 #define CEA 97 #define BCEA 98 #define ISINUS 99 #define IN_BREAK -2 #define COEFCT 15 /* projection coefficient count */ #define PROJCT 31 /* projection count */ #define DATMCT 20 /* datum count */ #define MAXPROJ 100 /* Maximum projection number */ #define MAXUNIT 5 /* Maximum unit code number */ #define GEO_TERM 0 /* Array index for print-to-term flag */ #define GEO_FILE 1 /* Array index for print-to-file flag */ #define GEO_TRUE 1 /* True value for geometric true/false flags */ #define GEO_FALSE -1 /* False val for geometric true/false flags */ #ifdef __cplusplus } #endif hdf-eos5-5.1.14+dfsg.1/include/HE5_HdfEosDef.h0000755000175000017500000012552412024715435021467 0ustar amckinstryamckinstry/*----------------------------------------------------------------------------| | | | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | | | |Permission to use, modify, and distribute this software and its documentation| |for any purpose without fee is hereby granted, provided that the above | |copyright notice appear in all copies and that both that copyright notice and| |this permission notice appear in supporting documentation. | | | |-----------------------------------------------------------------------------| | | | This is the main header file to be distributed with the HDF-EOS library. | | | | Last date updated: June 5, 2001 | | Aug 23, 2001 A.M. Added thread-safe related blocks. | | May 29, 2002 S.Z Added ZA interface | | August, 2003 S.Z Added szip compression methods. | | April, 2004 S.Z Added a data type flag HE5T_CHARSTRING| | August, 2004 S.Z Added field number type in | | HE5_CmpDTSinfo | -----------------------------------------------------------------------------*/ #ifndef HE5_HDFEOSDEF_H_ #define HE5_HDFEOSDEF_H_ #include #ifdef H5_USE_16_API #include #endif #include #include #include #include #ifndef __cplusplus #include #endif #ifdef _HDFEOS5_THREADSAFE #include #endif #define HE5_HDFEOSVERSION "1.14.01" #define H5_USE_16_API 1 #ifndef FALSE # define FALSE 0 #endif #ifndef TRUE # define TRUE (!FALSE) #endif #ifndef SUCCEED # define SUCCEED 0 #endif #ifndef FAIL # define FAIL (-1) #endif #ifndef HDstrcmp # define HDstrcmp(X,Y) strcmp(X,Y) #endif #ifndef MAX # define MAX(X,Y) ((X)>(Y)?(X):(Y)) #endif #ifndef MIN # define MIN(X,Y) ((X)<(Y)?(X):(Y)) #endif #define CHECKPOINTER(p) { \ status = HE5_EHchkptr((void *)p,#p); \ if (status == FAIL) goto COMPLETION; \ } #define CHECKNAME(p) { \ status = HE5_EHchkname((char *)p,#p); \ if (status == FAIL) goto COMPLETION; \ } #ifndef HDFI_H typedef unsigned uintn; #endif #ifdef WIN32 #define LONGLONG __int64 #else #define LONGLONG long long #endif /* ---------------------------------------------- | HDF-EOS Defined Sizes | ---------------------------------------------- */ #define HE5_DTSETRANKMAX 8 #define HE5_FLDNUMBERMAX 500 #define HE5_OBJNAMELENMAX 256 #define HE5_BLKSIZE 640000 #define HE5_CHUNKSIZE 1000 #define HE5_HDFE_TYPESTRSIZE 80 #define HE5_HDFE_DIMBUFSIZE 256 #define HE5_HDFE_NAMBUFSIZE 256 #define HE5_HDFE_ERRBUFSIZE 256 #define HE5_HDFE_UTLBUFSIZE 1024 /* ---------------------------------------------- | HDF-EOS Global Data Structures | ---------------------------------------------- */ typedef struct { hid_t ID; /* Field-associated dataset ID */ char *name; /* HDF-EOS field name */ }HE5_DTSinfo; /* Field-associated dataset Info */ /* ---------------------------------------------- | Compound Dataset Information Data | | Structure | ---------------------------------------------- */ typedef struct { int nfields; /* Number of data fields */ int rank[HE5_FLDNUMBERMAX]; /* Fields rank array */ int array[HE5_FLDNUMBERMAX]; /* Flag if field is an array*/ char *fieldname[HE5_FLDNUMBERMAX];/* Array of field names */ /* Array of dimension sizes */ size_t dims[HE5_FLDNUMBERMAX][HE5_DTSETRANKMAX]; size_t datasize; /* Size of data (bytes) */ size_t offset[HE5_FLDNUMBERMAX]; /* Array of field offsets */ hid_t dtype[HE5_FLDNUMBERMAX]; /* Array of field type IDs */ hid_t numtype[HE5_FLDNUMBERMAX];/* Array of field number type IDs */ H5T_class_t dclass[HE5_FLDNUMBERMAX]; /* Array of field class IDs */ }HE5_CmpDTSinfo; typedef struct { long count; /* Object counter */ long strsize; /* Operator data */ char *name; /* Object name */ }HE5_OBJINFO; /* File access flags for TOOLKIT */ /* ----------------------------- */ #ifndef HDF4_ACC_RDONLY # define HDF4_ACC_RDONLY 1 #endif #ifndef HDF5_ACC_RDONLY # define HDF5_ACC_RDONLY 11 #endif #ifndef HDF4_ACC_RDWR # define HDF4_ACC_RDWR 3 #endif #ifndef HDF5_ACC_RDWR # define HDF5_ACC_RDWR 13 #endif #ifndef HDF4_ACC_CREATE # define HDF4_ACC_CREATE 4 #endif #ifndef HDF5_ACC_CREATE # define HDF5_ACC_CREATE 14 #endif /* Data type flags for FORTRAN wrappers */ /* ------------------------------------ */ #ifndef HE5F_ACC_RDWR #define HE5F_ACC_RDWR 100 #endif #ifndef HE5F_ACC_RDONLY #define HE5F_ACC_RDONLY 101 #endif #ifndef HE5F_ACC_TRUNC #define HE5F_ACC_TRUNC 102 #endif #define HE5T_NATIVE_INT 0 #define HE5T_NATIVE_UINT 1 #define HE5T_NATIVE_SHORT 2 #define HE5T_NATIVE_USHORT 3 #define HE5T_NATIVE_SCHAR 4 #define HE5T_NATIVE_UCHAR 5 #define HE5T_NATIVE_LONG 6 #define HE5T_NATIVE_ULONG 7 #define HE5T_NATIVE_LLONG 8 #define HE5T_NATIVE_ULLONG 9 #define HE5T_NATIVE_FLOAT 10 #define HE5T_NATIVE_REAL 10 #define HE5T_NATIVE_DOUBLE 11 #define HE5T_NATIVE_LDOUBLE 12 #define HE5T_NATIVE_INT8 13 #define HE5T_NATIVE_UINT8 14 #define HE5T_NATIVE_INT16 15 #define HE5T_NATIVE_UINT16 16 #define HE5T_NATIVE_INT32 17 #define HE5T_NATIVE_UINT32 18 #define HE5T_NATIVE_INT64 19 #define HE5T_NATIVE_UINT64 20 #define HE5T_NATIVE_B8 21 #define HE5T_NATIVE_B16 22 #define HE5T_NATIVE_B32 23 #define HE5T_NATIVE_B64 24 #define HE5T_NATIVE_HSIZE 25 #define HE5T_NATIVE_HERR 26 #define HE5T_NATIVE_HBOOL 27 #define HE5T_STD_I8BE 28 #define HE5T_STD_I8LE 29 #define HE5T_STD_I16BE 30 #define HE5T_STD_I16LE 31 #define HE5T_STD_I32BE 32 #define HE5T_STD_I32LE 33 #define HE5T_STD_I64BE 34 #define HE5T_STD_I64LE 35 #define HE5T_STD_U8BE 36 #define HE5T_STD_U8LE 37 #define HE5T_STD_U16BE 38 #define HE5T_STD_U16LE 39 #define HE5T_STD_U32BE 40 #define HE5T_STD_U32LE 41 #define HE5T_STD_U64BE 42 #define HE5T_STD_U64LE 43 #define HE5T_STD_B8BE 44 #define HE5T_STD_B8LE 45 #define HE5T_STD_B16BE 46 #define HE5T_STD_B16LE 47 #define HE5T_STD_B32BE 48 #define HE5T_STD_B32LE 49 #define HE5T_STD_B64BE 50 #define HE5T_STD_B64LE 51 #define HE5T_IEEE_F32BE 52 #define HE5T_IEEE_F32LE 53 #define HE5T_IEEE_F64BE 54 #define HE5T_IEEE_F64LE 55 #define HE5T_NATIVE_CHAR 56 #define HE5T_CHARSTRING 57 #define HE5S_UNLIMITED_F -1 #define HE5S_UNLIMITED_F_64 -1 /* Field Merge Flags */ /* ------------------- */ #define HE5_HDFE_NOMERGE 0 #define HE5_HDFE_AUTOMERGE 1 /* XXentries Codes */ /* ------------------- */ #define HE5_HDFE_NENTDIM 0 #define HE5_HDFE_NENTMAP 1 #define HE5_HDFE_NENTIMAP 2 #define HE5_HDFE_NENTGFLD 3 #define HE5_HDFE_NENTDFLD 4 /* Angle Conversion Codes */ /* ---------------------- */ #define HE5_HDFE_RAD_DEG 0 #define HE5_HDFE_DEG_RAD 1 #define HE5_HDFE_DMS_DEG 2 #define HE5_HDFE_DEG_DMS 3 #define HE5_HDFE_RAD_DMS 4 #define HE5_HDFE_DMS_RAD 5 /* Swath Subset Modes */ /* ------------------------ */ #define HE5_HDFE_MIDPOINT 0 #define HE5_HDFE_ENDPOINT 1 #define HE5_HDFE_ANYPOINT 2 #define HE5_HDFE_INTERNAL 0 #define HE5_HDFE_EXTERNAL 1 #define HE5_HDFE_NOPREVSUB -1 /* Grid Origin Codes */ /* ----------------------- */ #define HE5_HDFE_GD_UL 0 #define HE5_HDFE_GD_UR 1 #define HE5_HDFE_GD_LL 2 #define HE5_HDFE_GD_LR 3 /* Pixel Registration Codes */ /* ------------------------ */ #define HE5_HDFE_CENTER 0 #define HE5_HDFE_CORNER 1 /* GCTP Projection Codes */ /* --------------------- */ #define HE5_GCTP_GEO 0 #define HE5_GCTP_UTM 1 #define HE5_GCTP_SPCS 2 #define HE5_GCTP_ALBERS 3 #define HE5_GCTP_LAMCC 4 #define HE5_GCTP_MERCAT 5 #define HE5_GCTP_PS 6 #define HE5_GCTP_POLYC 7 #define HE5_GCTP_EQUIDC 8 #define HE5_GCTP_TM 9 #define HE5_GCTP_STEREO 10 #define HE5_GCTP_LAMAZ 11 #define HE5_GCTP_AZMEQD 12 #define HE5_GCTP_GNOMON 13 #define HE5_GCTP_ORTHO 14 #define HE5_GCTP_GVNSP 15 #define HE5_GCTP_SNSOID 16 #define HE5_GCTP_EQRECT 17 #define HE5_GCTP_MILLER 18 #define HE5_GCTP_VGRINT 19 #define HE5_GCTP_HOM 20 #define HE5_GCTP_ROBIN 21 #define HE5_GCTP_SOM 22 #define HE5_GCTP_ALASKA 23 #define HE5_GCTP_GOOD 24 #define HE5_GCTP_MOLL 25 #define HE5_GCTP_IMOLL 26 #define HE5_GCTP_HAMMER 27 #define HE5_GCTP_WAGIV 28 #define HE5_GCTP_WAGVII 29 #define HE5_GCTP_OBLEQA 30 #define HE5_GCTP_CEA 97 #define HE5_GCTP_BCEA 98 #define HE5_GCTP_ISINUS 99 /* Tiling Codes */ /* ----------------------- */ #define HE5_HDFE_NOTILE 0 #define HE5_HDFE_TILE 1 /* Compression Methods */ /* ------------------------- */ #define HE5_HDFE_COMP_NONE 0 #define HE5_HDFE_COMP_RLE 1 #define HE5_HDFE_COMP_NBIT 2 #define HE5_HDFE_COMP_SKPHUFF 3 #define HE5_HDFE_COMP_DEFLATE 4 #define HE5_HDFE_COMP_SZIP_CHIP 5 #define HE5_HDFE_COMP_SZIP_K13 6 #define HE5_HDFE_COMP_SZIP_EC 7 #define HE5_HDFE_COMP_SZIP_NN 8 #define HE5_HDFE_COMP_SZIP_K13orEC 9 #define HE5_HDFE_COMP_SZIP_K13orNN 10 #define HE5_HDFE_COMP_SHUF_DEFLATE 11 #define HE5_HDFE_COMP_SHUF_SZIP_CHIP 12 #define HE5_HDFE_COMP_SHUF_SZIP_K13 13 #define HE5_HDFE_COMP_SHUF_SZIP_EC 14 #define HE5_HDFE_COMP_SHUF_SZIP_NN 15 #define HE5_HDFE_COMP_SHUF_SZIP_K13orEC 16 #define HE5_HDFE_COMP_SHUF_SZIP_K13orNN 17 /* HDFEOS Group Codes */ /* ------------------------------- */ #define HE5_HDFE_GEOGROUP 0 #define HE5_HDFE_DATAGROUP 1 #define HE5_HDFE_ATTRGROUP 2 #define HE5_HDFE_GRPATTRGROUP 3 #define HE5_HDFE_LOCATTRGROUP 4 #define HE5_HDFE_PROFGROUP 5 #define HE5_HDFE_PROFGRPATTRGROUP 6 #define HE5_HDFE_GEOGRPATTRGROUP 7 /* ---------------------------------------------- | For HDF-EOS5 Thread Safe Library | ---------------------------------------------- */ #ifdef _HDFEOS5_THREADSAFE typedef struct { pthread_mutex_t Lock; pthread_t *MasterThread; pthread_cond_t CondVar; unsigned int LockCount; } HE5_HDFE_MutexStruct; HE5_HDFE_MutexStruct GlobalMutex; /* Macro for first thread initialization */ /* ------------------------------------- */ #define HE5_FIRST_THREAD_INIT { \ status = pthread_once(&HE5_HDFE_TS_FirstInit, HE5_TSinitfirst); \ } /* Macro for locking the mutex */ /* --------------------------- */ #define HE5_LOCK { \ status = HE5_TSmutexlock(&GlobalMutex); \ if (status != SUCCEED) goto COMPLETION; \ } /* Macro for unlocking the mutex */ /* ----------------------------- */ #define HE5_UNLOCK { \ status = HE5_TSmutexunlock(&GlobalMutex); \ if (status != SUCCEED) goto COMPLETION; \ } #else /* -D_HDFEOS5_THREADSAFE */ typedef struct { int dummyVar; } HE5_HDFE_MutexStruct; /* disable any first thread init mechanism */ /* --------------------------------------- */ #define HE5_FIRST_THREAD_INIT /* disable locks */ /* ------------- */ #define HE5_LOCK #define HE5_UNLOCK #endif /* -D_HDFEOS5_THREADSAFE */ #ifdef __cplusplus extern "C" { #endif /* Thread-safe function prototypes */ /* ------------------------------- */ void HE5_TSinitfirst( void); herr_t HE5_TSmutexlock(HE5_HDFE_MutexStruct *); herr_t HE5_TSmutexunlock(HE5_HDFE_MutexStruct *); /* GCTP function prototypes */ /* ------------------------ */ #include "HE5_GctpFunc.h" /* HDF5 Error handling function (from "H5private.h") */ /* ------------------------------------------------- */ herr_t H5E_push(H5E_major_t maj_num, H5E_minor_t min_num, const char *func_name, const char *file_name, unsigned line, const char *desc); /* ********************************************************************** * E R R O R H A N D L I N G I N T E R F A C E * ********************************************************************** */ /* File access/info routines */ hid_t HE5_EHopen(const char *filename, unsigned flags, hid_t access_id); herr_t HE5_EHclose(hid_t fid); herr_t HE5_EHgetversion(hid_t fid, char *version); herr_t HE5_EHchkfid(hid_t fid, const char *name, hid_t *HDFfid, hid_t *grpID, uintn *access); herr_t HE5_EHidinfo(hid_t fid, hid_t *HDFfid, hid_t *gid); long HE5_EHattrcat(hid_t fid, char *grpname, char *objectlist, long *strbufsize); long HE5_EHinquire(const char *filename, char *grpname, char *objectlist, long *strbufsize); hsize_t HE5_EHset_error_on(int flag, int err_level); /* PROTOTYPES: functions to turn HDFEOS5 error printing off */ herr_t HE5_EHprint(char *errbuf, const char *file, unsigned line); /* Metadata access/info routines */ char *HE5_EHmetagroup(hid_t fid , char *structname, char *structcode, char *groupname, char *metaptrs[]); herr_t HE5_EHgetmetavalue(char *metaptrs[], char *parameter, char *retstr); herr_t HE5_EHinsertmeta(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]) ; herr_t HE5_EHmetalist(char *instring, char *outstring); herr_t HE5_EHupdatemeta(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]); /* Object info routines */ long HE5_EHcntOBJECT(char *metabuf[]); long HE5_EHcntGROUP(char *metabuf[]); herr_t HE5_EHattr( hid_t attgrpID, const char *attrname, hid_t ntype, hsize_t count[], char *wrcode, void *datbuf); herr_t HE5_EHattrinfo( hid_t attgrpID, const char *attrname, hid_t ntype[], hsize_t *count); long HE5_EHdatasetcat(hid_t fid, char *grpname, char *objectlist, long *strbufsize); int HE5_EHobj_info(hid_t loc_id, const char *name, void *opdata); /* Utility routines */ long HE5_EHparsestr(const char *instring, char delim, char *pntr[], size_t len[]); long HE5_EHstrwithin(char *target, char *search, char delim); herr_t HE5_EHloadliststr(char *ptr[], long nentries, char *liststr, char delim); double HE5_EHconvAng(double inAngle, int code); herr_t HE5_EHrevflds(char *dimlist, char *revdimlist); herr_t HE5_EHbisect(double(*func) (double[]), double funcParms[], long nParms, double limLft, double limRgt, double convCrit, double *root); hid_t HE5_EHdtype2mtype(hid_t dtypeID); hid_t HE5_EHdtype2numtype(hid_t dtype); hid_t HE5_EHconvdatatype(int fortdatatype); herr_t HE5_EHwriteglbattr(hid_t fid, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_EHreadglbattr(hid_t fid, const char *attrname, void * datbuf); herr_t HE5_EHglbattrinfo(hid_t fid, const char *attrname, hid_t *ntype, hsize_t *count); long HE5_EHinqglbattrs(hid_t fid, char *attrnames, long *strbufsize); herr_t HE5_EHinqglbdatatype(hid_t fid, const char *attrname, hid_t *dtype, H5T_class_t *classid, H5T_order_t *order, size_t *size); /* Data type conversion wrappers */ long HE5_EHhid2long(hid_t invalue); long HE5_EHint2long(int invalue); int HE5_EHhid2int(hid_t invalue); hid_t HE5_EHint2hid(int invalue); hid_t HE5_EHlong2hid(long invalue); int HE5_EHlong2int(long invalue); hsize_t HE5_EHhid2hsize(hid_t invalue); hsize_t HE5_EHint2hsize(int invalue); hsize_t HE5_EHlong2hsize(long invalue); hid_t HE5_EHhsize2hid(hsize_t invalue); long HE5_EHhsize2long(hsize_t invalue); int HE5_EHhsize2int(hsize_t invalue); hssize_t HE5_EHhsize2hssize(hsize_t invalue); hssize_t HE5_EHhid2hssize(hid_t invalue); hssize_t HE5_EHint2hssize(int invalue); hssize_t HE5_EHlong2hssize(long invalue); hid_t HE5_EHhssize2hid(hssize_t invalue); long HE5_EHhssize2long(hssize_t invalue); int HE5_EHhssize2int(hssize_t invalue); hsize_t HE5_EHhssize2hsize(hssize_t invalue); unsigned LONGLONG HE5_EHint2ullong(int invalue); long HE5_EHullong2long(unsigned LONGLONG invalue); herr_t HE5_EHchkptr(void *p, char *name); herr_t HE5_EHchkname(char *p, char *name); /* ********************************************************************** * S W A T H I N T E R F A C E * ********************************************************************** */ /* File/Swath access routines */ hid_t HE5_SWopen(const char *filename, uintn flags); hid_t HE5_SWcreate(hid_t fid, const char *swathname); hid_t HE5_SWattach(hid_t fid, const char *swathname); herr_t HE5_SWdetach(hid_t swathID); herr_t HE5_SWclose(hid_t fid); /* Definition routines */ herr_t HE5_SWdefdim(hid_t swathID, char *dimname, hsize_t dim); herr_t HE5_SWdefdimmap(hid_t swathID, char *geodim, char *datadim, hsize_t offset, hsize_t increment); herr_t HE5_SWdefidxmap(hid_t swathID, char *geodim, char *datadim, long index[]); herr_t HE5_SWdefgeofield(hid_t swathID, const char *fieldname, char *dimlist, char *maxdimlist, hid_t ntype , int merge); herr_t HE5_SWdefdatafield(hid_t swathID, const char *fieldname, char *dimlist, char *maxdimlist, hid_t ntype, int merge); herr_t HE5_SWdefchunk(hid_t swathID, int ndims, const hsize_t *dim); herr_t HE5_SWdefcomp(hid_t swathID, int compcode, int *compparm); herr_t HE5_SWdefcomchunk(hid_t swathID, int compcode, int *compparm, int ndims, const hsize_t *dim); herr_t HE5_SWsetfillvalue(hid_t swathID, char *fieldname, hid_t ntype, void *fillval); herr_t HE5_SWsetalias(hid_t swathID, char *fieldname, const char *aliaslist); herr_t HE5_SWdropalias(hid_t swathID, int fldgroup, const char *aliasname); herr_t HE5_SWfldrename(hid_t swathID, char *oldfieldname, const char *newfieldname); herr_t HE5_SWsetdimscale(hid_t swathID, char *fieldname, char *dimname,const hsize_t dimsize, hid_t numbertype, void * data); /* I/O routines */ herr_t HE5_SWwritedatameta(hid_t swathID, const char *fieldname, char *dimlist, hid_t mvalue); herr_t HE5_SWwriteattr(hid_t swathID, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_SWwritegrpattr(hid_t swathID, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_SWwritegeogrpattr(hid_t swathID, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_SWwritelocattr(hid_t swathID, const char *fieldname, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_SWreadattr(hid_t swathID, const char *attrname, void *datbuf); herr_t HE5_SWreadgrpattr(hid_t swathID, const char *attrname, void *datbuf); herr_t HE5_SWreadgeogrpattr(hid_t swathID, const char *attrname, void *datbuf); herr_t HE5_SWreadlocattr(hid_t swathID, const char *fieldname, const char *attrname, void *datbuf); herr_t HE5_SWwritefield(hid_t swathID, char *fieldname, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *data); herr_t HE5_SWreadfield(hid_t swathID, char *fieldname, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *data); herr_t HE5_SWwritegeometa(hid_t swathID, const char *fieldname, char *dimlist, hid_t mvalue); herr_t HE5_SWwritedscaleattr(hid_t swathID, const char *fieldname, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf); /* Inquiry routines */ herr_t HE5_SWchunkinfo(hid_t swathID, char *fieldname, int *ndims, hsize_t dims[]); hsize_t HE5_SWdiminfo(hid_t swathID, char *dimname); herr_t HE5_SWmapinfo(hid_t swathID, char *geodim, char *datadim, long *offset, long *increment); hsize_t HE5_SWidxmapinfo(hid_t swathID, char *geodim, char *datadim, long index[]); int HE5_SWfldsrch(hid_t swathID, char *fieldname, hid_t *fieldID, int *rank, hsize_t dims[], hid_t *typeID); herr_t HE5_SWfieldinfo(hid_t swathID, char *fieldname, int *rank, hsize_t dims[], hid_t ntype[], char *dimlist, char *maxdimlist); herr_t HE5_SWcompinfo(hid_t swathID, char *fieldname, int *compcode, int compparm[]); herr_t HE5_SWattrinfo(hid_t swathID, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_SWgrpattrinfo(hid_t swathID, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_SWgeogrpattrinfo(hid_t swathID, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_SWlocattrinfo(hid_t swathID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_SWinqdatatype(hid_t swathID, const char *fieldname, const char *attrname, int group, hid_t *dtype, H5T_class_t *classid, H5T_order_t *order, size_t *size); long HE5_SWinqdims(hid_t swathID, char *dimnames, hsize_t dims[]); long HE5_SWinqmaps(hid_t swathID, char *dimmaps, long offset[], long increment[]); long HE5_SWinqidxmaps(hid_t swathID, char *idxmaps, hsize_t idxsizes[]); long HE5_SWinqgeofields(hid_t swathID, char *fieldlist, int rank[], hid_t ntype[]); long HE5_SWinqdatafields(hid_t swathID, char *fieldlist, int rank[], hid_t ntype[]); long HE5_SWinqattrs(hid_t swathID, char *attrnames, long *strbufsize); long HE5_SWinqgrpattrs(hid_t swathID, char *attrnames, long *strbufsize); long HE5_SWinqgeogrpattrs(hid_t swathID, char *attrnames, long *strbufsize); long HE5_SWinqlocattrs(hid_t swathID, const char *fieldname, char *attrnames, long *strbufsize); long HE5_SWnentries(hid_t swathID, int entrycode, long *strbufsize); long HE5_SWinqswath(const char *filename, char *swathlist, long *strbufsize); herr_t HE5_SWregioninfo(hid_t swathID, hid_t regionID, char *fieldname, hid_t *ntype, int *rank, hsize_t dims[], size_t *size); herr_t HE5_SWperiodinfo(hid_t swathID, hid_t periodID, char *fieldname, hid_t *ntype, int *rank, hsize_t dims[], size_t *size); herr_t HE5_SWgeomapinfo(hid_t swathID, char *geodim); herr_t HE5_SWgetfillvalue(hid_t swathID, char *fieldname, void *fillval); herr_t HE5_SWaliasinfo(hid_t swathID, int fldgroup, const char *aliasname, int *length, char *buffer); long HE5_SWinqdfldalias(hid_t swathID, char *fldalias, long *strbufsize); long HE5_SWinqgfldalias(hid_t swathID, char *fldalias, long *strbufsize); long HE5_SWgetaliaslist(hid_t swathID, int fldgroup, char *aliaslist, long *strbufsize); long HE5_SWgetdimscale(hid_t swathID, char *fieldname, char *dimname, hsize_t *dimsize, hid_t *numbertype, void * databuff); herr_t HE5_SWdscaleattrinfo(hid_t swathID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_SWreaddscaleattr(hid_t swathID, const char *fieldname, const char *attrname, void *datbuf); long HE5_SWinqdscaleattrs(hid_t swathID, const char *fieldname, char *attrnames, long *strbufsize); /* Subsetting/Retrieving routines */ hid_t HE5_SWdefboxregion(hid_t swathID, double cornerlon[], double cornerlat[], int mode); hid_t HE5_SWdefvrtregion(hid_t swathID, hid_t regionID, char *vertObj, double range[]); hid_t HE5_SWregionindex(hid_t swathID, double cornerlon[], double cornerlat[], int mode, char *geodim, hsize_t idxrange[]); hid_t HE5_SWdupregion(hid_t oldregionID); hid_t HE5_SWdeftimeperiod(hid_t swathID, double starttime, double stoptime, int mode); herr_t HE5_SWextractregion(hid_t swathID, hid_t regionID, char *fieldname, int externalflag, void *buffer); herr_t HE5_SWextractperiod(hid_t swathID, hid_t periodID, char *fieldname, int externalflag, void *buffer); long HE5_SWupdateidxmap(hid_t swathID, hid_t regionID, long indexin[], long indexout[], long indicies[]); herr_t HE5_SWupdatescene(hid_t swathID, hid_t regionID); herr_t HE5_SWindexinfo(hid_t regionID, char *object, int *rank, char *dimlist, hsize_t *indices[HE5_DTSETRANKMAX]); /* ******************************** * PROFILE INTERFACE * ******************************** */ herr_t HE5_PRdefine(hid_t swathID, const char *profilename, char *dimlist, char *maxdimlist, hid_t datatype_id); herr_t HE5_PRwrite(hid_t swathID, const char *profilename, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], size_t size, void *buffer); herr_t HE5_PRread(hid_t swathID, const char *profilename, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *buffer); herr_t HE5_PRreclaimspace(hid_t swathID, const char *profilename, void *buffer); long HE5_PRinquire(hid_t swathID, char *profnames, int *rank, H5T_class_t *classID); herr_t HE5_PRinfo(hid_t swathID, const char *profname, int *rank, hsize_t dims[], hsize_t maxdims[], hid_t *ntype, char *dimlist, char *maxdimlist); herr_t HE5_PRwritegrpattr(hid_t swathID, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_PRreadgrpattr(hid_t swathID, const char *attrname, void *datbuf); herr_t HE5_PRgrpattrinfo(hid_t swathID, const char *attrname, hid_t *ntype, hsize_t *count); long HE5_PRinqgrpattrs(hid_t swathID, char *attrnames, long *strbufsize); /* ******************************* * EXTERNAL DATA FILES * ******************************* */ herr_t HE5_SWsetextdata(hid_t swathID, const char *filelist, off_t offset[], hsize_t size[]); int HE5_SWgetextdata(hid_t swathID, char *fieldname, size_t namelength, char *filelist, off_t offset[], hsize_t size[]); /* ******************************* * MOUNTING EXTERNAL FILES * ******************************* */ hid_t HE5_SWmountexternal(hid_t swathID, int fldgroup, const char *extfilename); herr_t HE5_SWunmount(hid_t swathID, int fldgroup, hid_t fileID); herr_t HE5_SWreadexternal(hid_t swathID, int fldgroup, const char *fieldname, void *buffer); /* ********************************************************************** * G R I D I N T E R F A C E * ********************************************************************** */ /* File/Grid access routines */ hid_t HE5_GDopen(const char *filename, uintn flags); hid_t HE5_GDcreate(hid_t fid, const char *gridname, long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[]); hid_t HE5_GDattach(hid_t fid, const char *gridname); herr_t HE5_GDdetach(hid_t gridID); herr_t HE5_GDclose(hid_t fid); /* Definition routines */ herr_t HE5_GDdefdim(hid_t gridID, char *dimname, hsize_t dim); herr_t HE5_GDdefproj(hid_t gridID, int projcode, int zonecode, int spherecode, double projparm[]); herr_t HE5_GDdefcomp(hid_t gridID, int compcode, int compparm[]); herr_t HE5_GDdeftile(hid_t gridID, int tilecode, int tilerank, const hsize_t *tiledims); herr_t HE5_GDdefcomtile(hid_t gridID, int compcode, int compparm[], int tilerank, const hsize_t *tiledims); herr_t HE5_GDdeforigin(hid_t gridID, int origincode); herr_t HE5_GDdefpixreg(hid_t gridID, int pixregcode); herr_t HE5_GDdeffield(hid_t gridID, const char *fieldname, char *dimlist, char *maxdimlist, hid_t ntype, int merge); herr_t HE5_GDsetfillvalue(hid_t gridID, const char *fieldname, hid_t ntype, void *fillval); herr_t HE5_GDsetalias(hid_t gridID, char *fieldname, const char *aliaslist); herr_t HE5_GDdropalias(hid_t gridID, int fldgroup, const char *aliasname); herr_t HE5_GDsetdimscale(hid_t gridID, char *fieldname, char *dimname,const hsize_t dimsize, hid_t numbertype, void * data); /* I/O routines */ herr_t HE5_GDwritefieldmeta(hid_t gridID, const char *fieldname, char *dimlist, hid_t ntype); herr_t HE5_GDwritefield(hid_t gridID, const char *fieldname, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *data); herr_t HE5_GDreadfield(hid_t gridID, const char *fieldname, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void * buffer); herr_t HE5_GDwriteattr(hid_t gridID, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_GDwritegrpattr(hid_t gridID, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_GDwritelocattr(hid_t gridID, const char *fieldname, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_GDreadattr(hid_t gridID, const char *attrname, void *datbuf); herr_t HE5_GDreadgrpattr(hid_t gridID, const char *attrname, void *datbuf); herr_t HE5_GDreadlocattr(hid_t gridID, const char *fieldname, const char *attrname, void *datbuf); herr_t HE5_GDblkSOMoffset(hid_t gridID, long offset[], hsize_t count[], char *code); /* Inquiry routines */ long HE5_GDinqgrid(const char *filename, char *gridlist, long *strbufsize); hsize_t HE5_GDdiminfo(hid_t gridID, char *dimname); herr_t HE5_GDgridinfo(hid_t gridID, long *xdimsize, long *ydimsize, double upleftpt[], double lowrightpt[]); herr_t HE5_GDprojinfo(hid_t gridID, int *projcode, int *zonecode, int *spherecode, double projparm[]); herr_t HE5_GDorigininfo(hid_t gridID, int *origincode); herr_t HE5_GDpixreginfo(hid_t gridID, int *pixregcode); herr_t HE5_GDcompinfo(hid_t gridID, const char *fieldname, int *compcode, int compparm[]); herr_t HE5_GDfieldinfo(hid_t gridID, const char *fieldname, int *rank, hsize_t dims[], hid_t ntype[], char *dimlist, char *maxdimlist); herr_t HE5_GDregioninfo(hid_t gridID, hid_t regionID, const char *fieldname, hid_t *ntype, int *rank, hsize_t dims[], long *size, double upleftpt[], double lowrightpt[]); long HE5_GDnentries(hid_t gridID, int entrycode, long *strbufsize); int HE5_GDinqdims(hid_t gridID, char *dimnames, hsize_t dims[]); herr_t HE5_GDattrinfo(hid_t gridID, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_GDgrpattrinfo(hid_t gridID, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_GDlocattrinfo(hid_t gridID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count); long HE5_GDinqattrs(hid_t gridID, char *attrnames, long *strbufsize); long HE5_GDinqgrpattrs(hid_t gridID, char *attrnames, long *strbufsize); long HE5_GDinqlocattrs(hid_t gridID, const char *fieldname, char *attrnames, long *strbufsize); int HE5_GDinqfields(hid_t gridID, char *fieldlist, int rank[], hid_t ntype[]); herr_t HE5_GDinqdatatype(hid_t gridID, const char *fieldname, const char *attrname, int fieldgroup, hid_t *dtype, H5T_class_t *classid, H5T_order_t *order, size_t *size); herr_t HE5_GDgetfillvalue(hid_t gridID, const char *fieldname, void *fillval); herr_t HE5_GDtileinfo(hid_t gridID, char *fieldname, int *tilecode, int *tilerank, hsize_t tiledims[]); herr_t HE5_GDaliasinfo(hid_t gridID, int fldgroup, const char *aliasname, int *length, char *buffer); long HE5_GDinqfldalias(hid_t gridID, char *fldalias, long *strbufsize); long HE5_GDgetaliaslist(hid_t gridID, int fldgroup, char *aliaslist, long *strbufsize); long HE5_GDgetdimscale(hid_t gridID, char *fieldname, char *dimname, hsize_t *dimsize, hid_t *numbertype, void * databuff); herr_t HE5_GDwritedscaleattr(hid_t gridID, const char *fieldname, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf); herr_t HE5_GDdscaleattrinfo(hid_t gridID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_GDreaddscaleattr(hid_t gridID, const char *fieldname, const char *attrname, void *datbuf); long HE5_GDinqdscaleattrs(hid_t gridID, const char *fieldname, char *attrnames, long *strbufsize); /* Subsetting/Retrieving routines */ hid_t HE5_GDdefboxregion(hid_t gridID, double cornerlon[], double cornerlat[]); hid_t HE5_GDdefvrtregion(hid_t gridID, hid_t regionID, char *vertObj, double range[]); herr_t HE5_GDdeftimeperiod(hid_t gridID, hid_t periodID, double starttime, double stoptime); herr_t HE5_GDextractregion(hid_t gridID, hid_t regionID, const char *fieldname, void *buffer); hid_t HE5_GDdupregion(hid_t oldregionID); herr_t HE5_GDgetpixels(hid_t gridID, long nLonLat, double lonVal[], double latVal[], long pixRow[], long pixCol[]); long HE5_GDgetpixvalues(hid_t gridID, long nPixels, long pixRow[], long pixCol[], const char *fieldname, void * buffer); long HE5_GDinterpolate(hid_t gridID, long nValues, double lonVal[], double latVal[], const char *fieldname, double interpVal[]); /* Utility routine */ herr_t HE5_GDij2ll(int, int, double[], int, long, long, double[], double[], long, long[], long[], double[], double[], int, int); herr_t HE5_GDll2ij(int, int, double[], int, long, long, double[], double[], long, double[], double[], long[], long[], double[], double[]); herr_t HE5_GDrs2ll(int projcode, double projparm[], long xdimsize, long ydimsize, double upleft[], double lowright[], int npnts, double r[], double s[], double longitude[], double latitude[], int pixcen, int pixcnr); /* ******************************* * EXTERNAL DATA FILES * ******************************* */ herr_t HE5_GDsetextdata(hid_t gridID, const char *filelist, off_t offset[], hsize_t size[]); int HE5_GDgetextdata(hid_t gridID, char *fieldname, size_t namelength, char *filelist, off_t offset[], hsize_t size[]); /* ********************************************************************** * P O I N T I N T E R F A C E * ********************************************************************** */ /* File/Point access routine */ hid_t HE5_PTopen(const char *filename, uintn flags); hid_t HE5_PTcreate(hid_t fid, const char *pointname); hid_t HE5_PTattach(hid_t fid, const char *pointname); herr_t HE5_PTdetach(hid_t pointID); herr_t HE5_PTclose(hid_t fid); /* Definition routines */ herr_t HE5_PTdeflevel(hid_t pointID, const char *levelname, HE5_CmpDTSinfo *levelinfo); herr_t HE5_PTdeflinkage(hid_t pointID, char *parent, char *child, char *linkfield); /* I/O routines */ herr_t HE5_PTwritelevel(hid_t pointID, int level, hsize_t count[], size_t *size, void *data); herr_t HE5_PTupdatelevel(hid_t pointID, int level, char *fieldlist, hsize_t nrec, hssize_t recs[], void *data); herr_t HE5_PTreadlevel(hid_t pointID, int level, HE5_CmpDTSinfo *inStruct, size_t *size, void *datbuf); herr_t HE5_PTwriteattr(hid_t pointID, const char *attrname, hid_t ntype, hsize_t count[], void * datbuf); herr_t HE5_PTwritegrpattr(hid_t pointID, const char *attrname, hid_t ntype, hsize_t count[], void * datbuf); herr_t HE5_PTwritelocattr(hid_t pointID, const char *levelname, const char *attrname, hid_t ntype, hsize_t count[], void * datbuf); herr_t HE5_PTreadattr(hid_t pointID, const char *attrname, void * datbuf); herr_t HE5_PTreadgrpattr(hid_t pointID, const char *attrname, void * datbuf); herr_t HE5_PTreadlocattr(hid_t pointID, const char *levelname, const char *attrname, void *datbuf); /* Inquiry routines */ hsize_t HE5_PTnrecs(hid_t pointID, int level); int HE5_PTnlevels(hid_t pointID); int HE5_PTnfields(hid_t pointID, int level, char *fieldlist, long *strbufsize); int HE5_PTlevelindx(hid_t pointID, const char *levelname); herr_t HE5_PTgetlevelname(hid_t pointID, int level, char *levelname, long *strbufsize); herr_t HE5_PTbcklinkinfo(hid_t pointID, int level, char *linkfield); herr_t HE5_PTfwdlinkinfo(hid_t pointID, int level, char *linkfield); herr_t HE5_PTlevelinfo(hid_t pointID, int level, HE5_CmpDTSinfo *info); herr_t HE5_PTinqdatatype(hid_t pointID, const char *levelname, const char *attrname, int fieldgroup, hid_t *dtype, H5T_class_t *classid, H5T_order_t *order, size_t *size); int HE5_PTinqpoint(const char *filename, char *pointlist, long *strbufsize); herr_t HE5_PTgetrecnums(hid_t pointID, int inlevel, int outlevel, hsize_t inNrec, hssize_t inRecs[], hsize_t * outNrec, hssize_t outRecs[]); herr_t HE5_PTattrinfo(hid_t pointID, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_PTgrpattrinfo(hid_t pointID, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_PTlocattrinfo(hid_t pointID, const char *levelname, const char *attrname, hid_t *ntype, hsize_t *count); long HE5_PTinqattrs(hid_t pointID, char *attrnames, long *strbufsize); long HE5_PTinqgrpattrs(hid_t pointID, char *attrnames, long *strbufsize); long HE5_PTinqlocattrs(hid_t pointID, const char *levelname, char *attrnames, long *strbufsize); /* ********************************************************************** * Z A I N T E R F A C E * ********************************************************************** */ /* File/ZA access routines */ hid_t HE5_ZAopen(const char *filename, uintn flags); hid_t HE5_ZAcreate(hid_t fid, const char *zaname); hid_t HE5_ZAattach(hid_t fid, const char *zaname); herr_t HE5_ZAdetach(hid_t zaID); herr_t HE5_ZAclose(hid_t fid); /* Definition routines */ herr_t HE5_ZAdefdim(hid_t zaID, char *dimname, hsize_t dim); herr_t HE5_ZAdefine(hid_t zaID, const char *za_name, char *dimlist, char *maxdimlist, hid_t dtype); herr_t HE5_ZAdefchunk(hid_t zaID, int ndims, const hsize_t *dim); herr_t HE5_ZAdefcomp(hid_t zaID, int compcode, int *compparm); herr_t HE5_ZAdefcomchunk(hid_t zaID, int compcode, int *compparm, int ndims, const hsize_t *dim); herr_t HE5_ZAsetfillvalue(hid_t zaID, char *fieldname, hid_t ntype, void *fillval); herr_t HE5_ZAsetalias(hid_t zaID, char *fieldname, const char *aliaslist); herr_t HE5_ZAdropalias(hid_t zaID, int fldgroup, const char *aliasname); herr_t HE5_ZAfldrename(hid_t zaID, char *oldfieldname, const char *newfieldname); herr_t HE5_ZAsetdimscale(hid_t zaID, char *fieldname, char *dimname, const hsize_t dimsize, hid_t numbertype, void * data); long HE5_ZAgetdimscale(hid_t zaID, char *fieldname, char *dimname, hsize_t *dimsize, hid_t *numbertype, void * databuff); /* I/O routines */ herr_t HE5_ZAwritedatameta(hid_t zaID, const char *fieldname, char *dimlist, hid_t mvalue); herr_t HE5_ZAwriteattr(hid_t zaID, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_ZAwritegrpattr(hid_t zaID, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_ZAwritelocattr(hid_t zaID, const char *fieldname, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf); herr_t HE5_ZAreadattr(hid_t zaID, const char *attrname, void *datbuf); herr_t HE5_ZAreadgrpattr(hid_t zaID, const char *attrname, void *datbuf); herr_t HE5_ZAreadlocattr(hid_t zaID, const char *fieldname, const char *attrname, void *datbuf); herr_t HE5_ZAwrite(hid_t zaID, char *za_name, const hssize_t start[], const hsize_t stride[], const hsize_t count[], void *datbuf); herr_t HE5_ZAread(hid_t zaID, char *za_name, const hssize_t start[], const hsize_t stride[], const hsize_t count[], void *datbuf); herr_t HE5_ZAreaddscaleattr(hid_t zaID, const char *fieldname, const char *attrname, void *datbuf); herr_t HE5_ZAwritedscaleattr(hid_t zaID, const char *fieldname, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf); /* Inquiry routines */ hsize_t HE5_ZAdiminfo(hid_t zaID, char *dimname); int HE5_ZAfldsrch(hid_t zaID, char *fieldname, hid_t *fieldID, int *rank, hsize_t dims[], hid_t *typeID); herr_t HE5_ZAinfo(hid_t zaID, char *za_name, int *rank, hsize_t dims[], hid_t dtype[], char *dimlist, char *maxdimlist); herr_t HE5_ZAcompinfo(hid_t zaID, char *fieldname, int *compcode, int compparm[]); herr_t HE5_ZAattrinfo(hid_t zaID, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_ZAgrpattrinfo(hid_t zaID, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_ZAlocattrinfo(hid_t zaID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count); herr_t HE5_ZAinqdatatype(hid_t zaID, const char *fieldname, const char *attrname, int group, hid_t *dtype, H5T_class_t *classid, H5T_order_t *order, size_t *size); long HE5_ZAinqdims(hid_t zaID, char *dimnames, hsize_t dims[]); long HE5_ZAinquire(hid_t zaID, char *za_name_list, int rank[], hid_t dtype[]); long HE5_ZAinqattrs(hid_t zaID, char *attrnames, long *strbufsize); long HE5_ZAinqgrpattrs(hid_t zaID, char *attrnames, long *strbufsize); long HE5_ZAinqlocattrs(hid_t zaID, const char *fieldname, char *attrnames, long *strbufsize); long HE5_ZAnentries(hid_t zaID, int entrycode, long *strbufsize); long HE5_ZAinqza(const char *filename, char *zalist, long *strbufsize); herr_t HE5_ZAgetfillvalue(hid_t zaID, char *fieldname, void *fillval); herr_t HE5_ZAaliasinfo(hid_t zaID, int fldgroup, const char *aliasname, int *length, char *buffer); long HE5_ZAinqfldalias(hid_t zaID, char *fldalias, long *strbufsize); herr_t HE5_ZAchunkinfo(hid_t zaID, char *fieldname, int *ndims, hsize_t dims[]); long HE5_ZAgetaliaslist(hid_t zaID, int fldgroup, char *aliaslist, long *strbufsize); herr_t HE5_ZAdscaleattrinfo(hid_t zaID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count); long HE5_ZAinqdscaleattrs(hid_t zaID, const char *fieldname, char *attrnames, long *strbufsize); /* ******************************* * EXTERNAL DATA FILES * ******************************* */ herr_t HE5_ZAsetextdata(hid_t zaID, const char *filelist, off_t offset[], hsize_t size[]); int HE5_ZAgetextdata(hid_t zaID, char *fieldname, size_t namelength, char *filelist, off_t offset[], hsize_t size[]); /* ******************************* * MOUNTING EXTERNAL FILES * ******************************* */ hid_t HE5_ZAmountexternal(hid_t zaID, int fldgroup, const char *extfilename); herr_t HE5_ZAunmount(hid_t zaID, int fldgroup, hid_t fileID); herr_t HE5_ZAreadexternal(hid_t zaID, int fldgroup, const char *fieldname, void *buffer); #ifdef __cplusplus } #endif #endif /* #ifndef HE5_HDFEOSDEF_H_ */ hdf-eos5-5.1.14+dfsg.1/include/hdfeos5_64.inc0000644000175000017500000000101512024715435021410 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5_64.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 19, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines on 64 ! * bit platforms ! * ========================================================== ! * Contents: ! * ! * ! * =========================================================== integer*8 HE5S_UNLIMITED_F_64 parameter(HE5S_UNLIMITED_F_64 = -1) hdf-eos5-5.1.14+dfsg.1/Makefile.in0000644000175000017500000004716212024715435017506 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Top-level Makefile for HDF-EOS5 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/config/include.am \ $(top_srcdir)/configure config/config.guess config/config.sub \ config/depcomp config/install-sh config/ltmain.sh \ config/missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/HE5_config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = gctp src include samples testdrivers DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F2CFORTRAN_32PTR_CONDITIONAL_FALSE = @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@ F2CFORTRAN_32PTR_CONDITIONAL_TRUE = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@ F2CFORTRAN_90_CONDITIONAL_FALSE = @F2CFORTRAN_90_CONDITIONAL_FALSE@ F2CFORTRAN_90_CONDITIONAL_TRUE = @F2CFORTRAN_90_CONDITIONAL_TRUE@ F2CFORTRAN_CONDITIONAL_FALSE = @F2CFORTRAN_CONDITIONAL_FALSE@ F2CFORTRAN_CONDITIONAL_TRUE = @F2CFORTRAN_CONDITIONAL_TRUE@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SZIP_ENCODER_CONDITIONAL_FALSE = @SZIP_ENCODER_CONDITIONAL_FALSE@ SZIP_ENCODER_CONDITIONAL_TRUE = @SZIP_ENCODER_CONDITIONAL_TRUE@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la @TESTDRIVERS_CONDITIONAL_FALSE@TESTDRIVERS = # Include boilerplate # List of subdirectories. # Only build the testdrivers directory if configure detected that it's present. @TESTDRIVERS_CONDITIONAL_TRUE@TESTDRIVERS = testdrivers @INSTALL_INCLUDE_CONDITIONAL_FALSE@INCLUDE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@INCLUDE = include SUBDIRS = gctp src $(INCLUDE) samples $(TESTDRIVERS) all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-generic clean-libtool clean-recursive \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/config/0000755000175000017500000000000012024715435016674 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/config/config.sub0000755000175000017500000007577712024715435020706 0ustar amckinstryamckinstry#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2005-07-08' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | ms1 \ | msp430 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m32c) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | ms1-* \ | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; m32c-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: hdf-eos5-5.1.14+dfsg.1/config/install-sh0000755000175000017500000002202112024715435020675 0ustar amckinstryamckinstry#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: hdf-eos5-5.1.14+dfsg.1/config/depcomp0000755000175000017500000003710012024715435020252 0ustar amckinstryamckinstry#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: hdf-eos5-5.1.14+dfsg.1/config/include.am0000644000175000017500000000033112024715435020633 0ustar amckinstryamckinstry## config/include.am ## ## This file is included in the beginning of each Makefile.am. It contains ## shared definitions. LIBHDFEOS5=$(top_builddir)/src/libhe5_hdfeos.la LIBGCTP=$(top_builddir)/gctp/src/libGctp.la hdf-eos5-5.1.14+dfsg.1/config/ltmain.sh0000644000175000017500000054602112024715435020524 0ustar amckinstryamckinstry# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.8 TIMESTAMP=" (1.1220.2.117 2004/08/04 14:12:05)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` if test "X$win32_nmres" = "Ximport" ; then win32_libid_type="x86 archive import" else win32_libid_type="x86 archive static" fi fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" status=$? if test "$status" -ne 0 && test ! -d "$my_xdir"; then exit $status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename $darwin_archive` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" # Remove the table of contents from the thin files. $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF 2>/dev/null || true $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" $AR -xo "${darwin_base_archive}" rm "${darwin_base_archive}" cd "$darwin_curdir" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist rm -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir (cd $my_xdir && $AR x $my_xabs) || exit $? fi # $darwin_arches fi # $run ;; *) # We will extract separately just the conflicting names and we will # no longer touch any unique names. It is faster to leave these # extract automatically by $AR in one run. $show "(cd $my_xdir && $AR x $my_xabs)" $run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $? if ($AR t "$my_xabs" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 $AR t "$my_xabs" | sort | uniq -cd | while read -r count name do i=1 while test "$i" -le "$count" do # Put our $i before any first dot (extension) # Never overwrite any file name_to="$name" while test "X$name_to" = "X$name" || test -f "$my_xdir/$name_to" do name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` done $show "(cd $my_xdir && $AR xN $i $my_xabs '$name' && $mv '$name' '$name_to')" $run eval "(cd \$my_xdir && $AR xN $i \$my_xabs '$name' && $mv '$name' '$name_to')" || exit $? i=`expr $i + 1` done done fi ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2003 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $EXIT_SUCCESS ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $EXIT_SUCCESS ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $EXIT_SUCCESS ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case "$arg_mode" in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo $srcfile > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi fi build_libtool_libs=no build_old_libs=yes prefer_static_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit $EXIT_FAILURE fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-mingw* | *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # gcc -m* arguments should be passed to the linker via $compiler_flags # in order to pass architecture information to the linker # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo # but this is not reliable with gcc because gcc may use -mfoo to # select a different linker, different libraries, etc, while # -Wl,-mfoo simply passes -mfoo to the linker. -m*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" if test "$with_gcc" = "yes" ; then compiler_flags="$compiler_flags $arg" fi continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir status=$? if test "$status" -ne 0 && test ! -d "$output_objdir"; then exit $status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5* ) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else convenience="$convenience $dir/$old_library" old_convenience="$old_convenience $dir/$old_library" deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$deplibs $path" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name="`expr $a_deplib : '-l\(.*\)'`" # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$save_output-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$save_output-${k}.$objext k=`expr $k + 1` output=$output_objdir/$save_output-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadale object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$output.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' else $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) cwrappersource=`$echo ${objdir}/lt-${output}.c` cwrapper=`$echo ${output}.exe` $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR #define DIR_SEPARATOR '/' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) #define HAVE_DOS_BASED_FILE_SYSTEM #ifndef DIR_SEPARATOR_2 #define DIR_SEPARATOR_2 '\\' #endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); char * basename (const char *name); char * fnqualify(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup ((char *) basename (argv[0])); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = fnqualify(argv[0]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } char * basename (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha (name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return (char *) base; } char * fnqualify(const char *path) { size_t size; char *p; char tmp[LT_PATHMAX + 1]; assert(path != NULL); /* Is it qualified already? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha (path[0]) && path[1] == ':') return xstrdup (path); #endif if (IS_DIR_SEPARATOR (path[0])) return xstrdup (path); /* prepend the current directory */ /* doesn't handle '~' */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ p = XMALLOC(char, size); sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); return p; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \$progdir\\\\\$program \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \$progdir/\$program \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # GNU ar 2.10+ was changed to match POSIX; thus no paths are # encoded into archives. This makes 'ar r' malfunction in # this piecewise linking case whenever conflicting object # names appear in distinct ar calls; check, warn and compensate. if (for obj in $save_oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 AR_FLAGS=cq fi # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg="$nonopt" fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest="$arg" continue fi case $arg in -d) isdir=yes ;; -f) prev="-f" ;; -g) prev="-g" ;; -m) prev="-m" ;; -o) prev="-o" ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest="$arg" continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # To insure that "foo" is sourced, and not "foo.exe", # finese the cygwin/MSYS system by explicitly sourcing "foo." # which disallows the automatic-append-.exe behavior. case $build in *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; *) wrapperdot=${wrapper} ;; esac # If there is no directory component, then add one. case $file in */* | *\\*) . ${wrapperdot} ;; *) . ./${wrapperdot} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # To insure that "foo" is sourced, and not "foo.exe", # finese the cygwin/MSYS system by explicitly sourcing "foo." # which disallows the automatic-append-.exe behavior. case $build in *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; *) wrapperdot=${wrapper} ;; esac # If there is no directory component, then add one. case $file in */* | *\\*) . ${wrapperdot} ;; *) . ./${wrapperdot} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir="/tmp" test -n "$TMPDIR" && tmpdir="$TMPDIR" tmpdir="$tmpdir/libtool-$$" save_umask=`umask` umask 0077 if $mkdir "$tmpdir"; then umask $save_umask else umask $save_umask $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyways case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "----------------------------------------------------------------------" $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "----------------------------------------------------------------------" exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" if test "$mode" = uninstall; then if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. fi fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $EXIT_SUCCESS # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: hdf-eos5-5.1.14+dfsg.1/config/missing0000755000175000017500000002540612024715435020302 0ustar amckinstryamckinstry#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: hdf-eos5-5.1.14+dfsg.1/config/config.guess0000755000175000017500000012463412024715435021226 0ustar amckinstryamckinstry#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2005-07-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: hdf-eos5-5.1.14+dfsg.1/util/0000755000175000017500000000000012024715435016404 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/util/make.com0000644000175000017500000000255312024715435020026 0ustar amckinstryamckinstryINCDIR = -I$(HDF5INC) -I$(HDFEOS5_INC) -I$(SZIPINC) -I$(JPEGINC) -I$(ZLIBINC) LIBDIR = -L$(HDF5LIB) -L$(HDFEOS5_LIB) -L$(JPEGLIB) -L$(ZLIBLIB) -lhe5_hdfeos -lGctp $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a -ljpeg -lz $(SZIPLIB)/libsz.a -lm #LIBDIR = -L$(HDFEOS5_LIB) -L$(JPEGLIB) -L$(ZLIBLIB) -lhe5_hdfeos -lGctp $(HDF5LIB)/libhdf5.a -ljpeg -lz $(SZIPLIB)/libsz.a -lm /usr/lib/librpc.a default all: @echo " "; echo " "; \ if [ "$(HDFINC)" = "" ] || [ "$(HDF5INC)" = "" ] || [ "$(HDFEOS5_INC)" = "" ] || [ "$(SZIPINC)" = "" ] || [ "$(HDFLIB)" = "" ] || [ "$(HDF5LIB)" = "" ] || [ "$(HDFEOS5_LIB)" = "" ] || [ "$(SZIPLIB)" = "" ] ; then \ echo " --- ERROR: One or more of the environment variables HDFINC,"; \ echo " --- HDF5INC, HDFEOS5_INC, SZIPINC, HDFLIB, HDF5LIB, HDFEOS5_LIB,"; \ echo " --- SZIPLIB has not been set. Failed building utility executable."; \ else \ echo " ---- Making executable for HE5_GDconvert_ij2ll grid convertor ----"; \ echo "$(CC) $(CFLAGS) -o HE5_GDconvert_ij2ll.o $(INCDIR) -c HE5_GDconvert_ij2ll.c"; \ $(CC) $(CFLAGS) -o HE5_GDconvert_ij2ll.o $(INCDIR) -c HE5_GDconvert_ij2ll.c; \ echo "$(CC) $(CFLAGS) -o $(HDFEOS5_BIN)/HE5_GDconvert_ij2ll HE5_GDconvert_ij2ll.o $(LIBDIR) $(CEXTRAL)"; \ $(CC) $(CFLAGS) -o $(HDFEOS5_BIN)/HE5_GDconvert_ij2ll HE5_GDconvert_ij2ll.o $(LIBDIR) $(CEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ fi; \ echo " "; hdf-eos5-5.1.14+dfsg.1/util/HE5_GDconvert_ij2ll.c0000644000175000017500000006243112024715435022206 0ustar amckinstryamckinstry/********************************************************* HE5_GDconver_ij2ll.c-- This function converts pixel coordinates i,j into lat/lon for a grid in an hdf-eos5 file. Once installed executable will be in hdfeos5/bin/ directory. Followings are how to run the executible, and the outcome: a) ./HE5_GDconver_ij2ll will write ASCII output for i,j,lat,lon onto STDOUT for whole grid. b) ./HE5_GDconvert_ij2ll <-a> will write ASCII output for i,j,lat,lon into a file. c) ./HE5_GDconvert_ij2ll <-b> will write 3 output files with names constructed using output_file_name_template: 1. An ascii file containing info for input file and grid. 2. A binary file containing latitudes (64bit flaot data), a row follows another row for the grid 3. A binary file containing longitudes (64bit flaot data), a row follows another row for the grid d) ./HE5_GDconvert_ij2ll STDOUT <-a> will write ASCII output for i,j,lat,lon onto STDOUT for a single pair. User may type ./HE5_GDconvert_ij2ll to see what the usage is. Also typing a dummy grid name will return error, specifying what the valid grid names are in the hdf file. Author-- Abe Taaheri, Raytheon IIS Dates-- 2/20/2007 AT First Programming *********************************************************/ #include #include #include #include #include #include "HE5_HdfEosDef.h" #include "cproj.h" #include "proj.h" #define COMMAND_STRING 1024 typedef struct { char inputFile[COMMAND_STRING]; char gridName[COMMAND_STRING]; char outputFile_nxny[COMMAND_STRING]; char outputFile_lat[COMMAND_STRING]; char outputFile_lon[COMMAND_STRING]; char outFileFlag[COMMAND_STRING]; long RowCol[2]; } CommandArgument; CommandArgument Com; void CommandLineUsage() { fprintf( stderr, "\tUsage (ASCII output onto STDOUT):\n\t./HE5_GDconvert_ij2ll \n" ); fprintf( stderr, " OR\n"); fprintf( stderr, "\tUsage (ASCII output into a file):\n\t./HE5_GDconvert_ij2ll <-a>\n" ); fprintf( stderr, " OR\n"); fprintf( stderr, "\tUsage (for Binary output into a file):\n\t./HE5_GDconvert_ij2ll <-b>\n" ); fprintf( stderr, " OR\n"); fprintf( stderr, "\tUsage (lat/lon for a given (row col)):\n\t./HE5_GDconvert_ij2ll STDOUT <-a> \n" ); } /* get: input hdf file Grid name to process Output ASCII filename */ herr_t commandLineReader(int argc, char *argv[], CommandArgument *Com ) { char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "commandLineReader", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory to error buffer, occured", __FILE__, __LINE__); return(FAIL); } if ( argc < 3 || argc > 7 || argc == 6) /* display usage in case of no or insufficient arguments */ { /* user need help read the command line option, it is not error */ CommandLineUsage(); exit(-1); } /* read command line parameters */ if(argc == 7) {/* will write a lat/lon pair ASCII output to stdout */ strcpy(Com->inputFile, argv[1]); strcpy(Com->gridName, argv[2]); strcpy(Com->outputFile_nxny, ""); strcpy(Com->outputFile_lat, ""); strcpy(Com->outputFile_lon, ""); strcpy(Com->outFileFlag, argv[4]); Com->RowCol[0] = atol(argv[5]); Com->RowCol[1] = atol(argv[6]); if( Com->RowCol[0] < 0 || Com->RowCol[1] < 0) { sprintf(errbuf, "Row or Column numbers cannot be negative.\n"); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (-1); } free(errbuf); return 0; } else if (argc == 5) {/* will write (rows X cols) ASCII or BINARY output to output file */ strcpy(Com->inputFile, argv[1]); strcpy(Com->gridName, argv[2]); strcpy(Com->outputFile_nxny, argv[3]); strcpy(Com->outputFile_lat, argv[3]); strcpy(Com->outputFile_lon, argv[3]); strcat(Com->outputFile_nxny,"_ASCII"); strcat(Com->outputFile_lat,"_lat"); strcat(Com->outputFile_lon,"_lon"); strcpy(Com->outFileFlag, argv[4]); Com->RowCol[0] = -1; Com->RowCol[1] = -1; free(errbuf); return 0; } else if(argc == 4) {/* will write (rows X cols) ASCII output to output file */ strcpy(Com->inputFile, argv[1]); strcpy(Com->gridName, argv[2]); strcpy(Com->outputFile_nxny, argv[3]); strcpy(Com->outputFile_lat, argv[3]); strcpy(Com->outputFile_lon, argv[3]); strcat(Com->outputFile_nxny,"_ASCII"); strcat(Com->outputFile_lat,"_lat"); strcat(Com->outputFile_lon,"_lon"); strcpy(Com->outFileFlag, "-a"); Com->RowCol[0] = -1; Com->RowCol[1] = -1; free(errbuf); return 0; } else if (argc == 3) { /* will write (rows X cols) ASCII output to stdout */ strcpy(Com->inputFile, argv[1]); strcpy(Com->gridName, argv[2]); strcpy(Com->outputFile_nxny, ""); strcpy(Com->outputFile_lat, ""); strcpy(Com->outputFile_lon, ""); strcpy(Com->outFileFlag, "-a"); Com->RowCol[0] = -1; Com->RowCol[1] = -1; free(errbuf); return 0; } free(errbuf); return 0; } /* Separating string */ void separating_String(char *stringlist, long *nstring, char *strings[], char strs[]) { char *astring = NULL; *nstring=0; astring=strtok(stringlist, strs); while (astring!=NULL) { strings[*nstring]=astring; astring=strtok(NULL, strs); *nstring=*nstring+1; } } herr_t main(int argc, char *argv[]) { herr_t status = 0; int i, j, jx, jy,k, is; int Singl_latlon = 0; /* get the lat/lon for whole grid */ hid_t gdfid, gdid[10]; long xdimsize, ydimsize; long ngrid; int grid_not_found; char gridlist[1000], tmp_gridlist[1000],*grids[20]; int projcode=0; int zonecode=0; double projparam[16]={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}; int spherecode =0; long strsize; int pixregcode, origincode; double upleft[2], lowright[2]; double lowleft[2], upright[2]; long npnts; double *lats = NULL; double *lons = NULL; long *rows = NULL; long *cols = NULL; int v1; FILE *outfile_nxny = NULL; /* Pointer for ASCII outfile file for rows,cols*/ FILE *outfile_lat = NULL; /* Pointer for outfile file for lats*/ FILE *outfile_lon = NULL; /* Pointer for outfile file for lons */ char *errbuf = NULL; /* Error message buffer */ char projection[64]; /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory to error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* process command-line arguments (to get parameter filename) */ status = commandLineReader(argc, argv, &Com); if (status == -1) { status = -1; sprintf(errbuf, "Problem with command line entries.\n"); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE,errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } gdfid=HE5_GDopen((&Com)->inputFile, H5F_ACC_RDONLY); if (gdfid == -1) { status = -1; sprintf(errbuf, "The file %s cannot be opened.\n",(&Com)->inputFile); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Inquire grid */ ngrid=HE5_GDinqgrid((&Com)->inputFile, gridlist, &strsize); if (ngrid<1) { HE5_GDclose(gdfid); status = -1; sprintf(errbuf, "No grid exists in the file %s.\n",(&Com)->inputFile); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } strcpy(tmp_gridlist, gridlist); separating_String(tmp_gridlist, &ngrid, grids, ","); /* check for the desired grid */ grid_not_found = 0; for (i=0; igridName,grids[i]) !=0) { if(i == (ngrid -1)) { grid_not_found = 1; break; } else { continue; } } else { is =i; break; } } if(grid_not_found == 1) { status = -1; sprintf(errbuf, "The file %s does not contain grid %s. The grids in this file are: %s\n",(&Com)->inputFile, (&Com)->gridName,gridlist); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDclose(gdfid); free(errbuf); return(status); } gdid[is]=HE5_GDattach(gdfid, grids[is]); status=HE5_GDprojinfo(gdid[is], &projcode, &zonecode, &spherecode, projparam); if (status==-1) { sprintf(errbuf, "No projection information for grid %s.\n",gdid[is]); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); return(status); } /* set grid INFO */ switch (projcode) { case HE5_GCTP_GEO: strcpy(projection,"GEOGRAPHIC"); break; case HE5_GCTP_UTM: strcpy(projection,"UNIVERSAL TRANSVERSE MERCATOR"); break; case HE5_GCTP_LAMCC: strcpy(projection,"LAMBERT CONFORMAL CONIC"); break; case HE5_GCTP_PS: strcpy(projection,"POLAR STREOGRAPHIC"); break; case HE5_GCTP_POLYC: strcpy(projection,"POLYCONIC"); break; case HE5_GCTP_TM: strcpy(projection,"TRANSVERSE MERCATOR"); break; case HE5_GCTP_LAMAZ: strcpy(projection,"LAMBERT AZIMUTHAL"); break; case HE5_GCTP_HOM: strcpy(projection,"HOTIN OBLIQUE MERCATOR"); break; case HE5_GCTP_SOM: strcpy(projection,"SPACE OBLIQUE MERCATOR"); break; case HE5_GCTP_GOOD: strcpy(projection,"INTERRPTED GOODE"); break; case HE5_GCTP_SPCS: strcpy(projection,"STATE PLANE"); break; case 99: strcpy(projection,"INTEGERIZED SINUSOIDAL"); break; case HE5_GCTP_SNSOID: strcpy(projection,"SINUSOIDAL"); break; case HE5_GCTP_MERCAT: strcpy(projection,"MERCATOR"); break; case HE5_GCTP_ALBERS: strcpy(projection,"ALBERS CONICAL EQUAL AREA"); break; default: strcpy(projection,"NOT SUPPORTED"); fprintf(stdout,"Projection type does not exist."); } status=HE5_GDpixreginfo(gdid[is], &pixregcode); if (status==-1) { sprintf(errbuf, "No pixel rgistration code information for grid %s, assuming the default HE5_HDFE_CENTER.\n",gdid[is]); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); pixregcode = HE5_HDFE_CENTER; } else { if(pixregcode == HE5_HDFE_CORNER) { status=HE5_GDorigininfo(gdid[is], &origincode); if (status==-1) { sprintf(errbuf, "No origin information for grid %s, assuming the default HE5_HDFE_GD_UL.\n",gdid[is]); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); origincode = HE5_HDFE_GD_UL; } } } status=HE5_GDgridinfo(gdid[is], &xdimsize, &ydimsize, upleft, lowright); if (status==-1) { sprintf(errbuf, "No grid information for grid %s.\n",gdid[is]); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); return(status); } /* lat/lon for other two corners UR and LL */ /* these lat/los are in DMS format for GEO projection, and meters for others. */ upright[0] = lowright[0]; upright[1] = upleft[1]; lowleft[0] = upleft[0]; lowleft[1] = lowright[1]; /* we now have upper left, Lower right corners, xdim, and ydim lets get now the lat/lon for every i/j */ if((&Com)->RowCol[0] >= 0 && (&Com)->RowCol[1] >= 0) {/* check to see if they are valid numbers */ if((&Com)->RowCol[0] > (ydimsize-1)) { status = -1; sprintf(errbuf, "Requestrd Row number %ld invalid. Should be less than %d.\n",(&Com)->RowCol[0], ydimsize); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); return(status); } if((&Com)->RowCol[1] > (xdimsize-1)) { status = -1; sprintf(errbuf, "Requestrd Column number %ld invalid. Should be less than %d.\n",(&Com)->RowCol[1],xdimsize); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); return(status); } Singl_latlon = 1;/* get the lat/lon for a single pixel in the grid */ } /* testing printf("Rows: ydimsize=%d\n",ydimsize); printf("cols: xdimsize=%d\n",xdimsize); printf("Row#: %d\n",(&Com)->RowCol[0]); printf("col#: %d\n",(&Com)->RowCol[1]); */ if(Singl_latlon == 1) { npnts = 1; } else { npnts = xdimsize * ydimsize; } lons = (double *) malloc(npnts*sizeof(double)); if(lons == NULL) { sprintf(errbuf, "memory problem allocating space to lons....\n"); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); return(status); } lats = (double *) malloc(npnts*sizeof(double)); if(lats == NULL) { sprintf(errbuf, "memory problem allocating space to lats....\n"); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); return(status); } rows = (long *) malloc(npnts*sizeof(long)); if(rows == NULL) { sprintf(errbuf, "memory problem allocating space to rows....\n"); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); return(status); } cols = (long *) malloc(npnts*sizeof(long)); if(cols == NULL) { sprintf(errbuf, "memory problem allocating space to cols....\n"); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); return(status); } if(Singl_latlon == 1) { rows[0] = (long) (&Com)->RowCol[0]; cols[0] = (long) (&Com)->RowCol[1]; } else { /* LOAD UP row and col arrays for use by HE5_GDconvert_ij2ll */ /* ----------------------------------------------*/ k = 0; /* used for counting */ for( jy = 0; jy < ydimsize; jy++ ) /* LOOP for each row */ { for( jx = 0; jx < xdimsize; jx++ ) /* LOOP for each column */ { rows[k] = jy; cols[k] = jx; k++; } } } fprintf(stdout,"\n...calculating lat/lon values for grid...please wait... \n"); /* Get lat/lon values of grid for given i,j values*/ /* ---------------------------------------------- */ status = HE5_GDij2ll(projcode, zonecode, projparam, spherecode, xdimsize, ydimsize, upleft, lowright, npnts, rows, cols, lons, lats, pixregcode, origincode); if(status == -1) { free(rows); rows = NULL; free(cols); cols = NULL; free(lons); lons = NULL; free(lats); lats = NULL; sprintf(errbuf, "Problem converting i,j to lat,lon in grid %s.\n",(&Com)->gridName); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); return(status); } else { /* open output ASCII/Binary file and print results to it */ /* Or just print it stdout */ if(strcmp((&Com)->outputFile_nxny, "") != 0) /* Put output into a file */ { if(strcmp((&Com)->outFileFlag,"-b") == 0) /*open in binary mode*/ { outfile_nxny=fopen((&Com)->outputFile_nxny, "w" ); outfile_lat=fopen((&Com)->outputFile_lat, "wb" ); outfile_lon=fopen((&Com)->outputFile_lon, "wb" ); } else if(strcmp((&Com)->outFileFlag,"-a") == 0) /*open in ascii mode*/ { outfile_nxny=fopen((&Com)->outputFile_nxny, "w" ); } else /*open in ascii mode*/ { sprintf(errbuf, "The flag for creating ASCII/Binary output file %s is -a or -b. \nAssuming -a : ASCII output file will be created.\n"); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); outfile_nxny=fopen((&Com)->outputFile_nxny, "w" ); } if(outfile_nxny == NULL) { free(rows); rows = NULL; free(cols); cols = NULL; free(lons); lons = NULL; free(lats); lats = NULL; status = -1; sprintf(errbuf, "The file %s cannot be opened.\n",(&Com)->outputFile_nxny); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); if(outfile_lat == NULL ) fclose(outfile_lat); if(outfile_lon == NULL ) fclose(outfile_lon); return(status); } else if(outfile_lat == NULL && (strcmp((&Com)->outFileFlag,"-b") == 0)) { free(rows); rows = NULL; free(cols); cols = NULL; free(lons); lons = NULL; free(lats); lats = NULL; status = -1; sprintf(errbuf, "The file %s cannot be opened.\n", (&Com)->outputFile_lat); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); fclose(outfile_nxny); if(outfile_lon == NULL ) fclose(outfile_lon); return(status); } else if(outfile_lon == NULL && (strcmp((&Com)->outFileFlag,"-b") == 0)) { free(rows); rows = NULL; free(cols); cols = NULL; free(lons); lons = NULL; free(lats); lats = NULL; status = -1; sprintf(errbuf, "The file %s cannot be opened.\n", (&Com)->outputFile_lon); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); fclose(outfile_nxny); fclose(outfile_lat); return(status); } else { if(strcmp((&Com)->outFileFlag,"-b") == 0) /* binary data */ { fprintf(stdout,"The output binary file contains 64bit float data for Latitude and Longitude of the desired grid: {n=(%d * %d) 64bit float data; First row at the beginning, Last row at the end}\n\n", ydimsize,xdimsize); /* write lat/lon to binary file in dataset format: (ydimsize Rows) X (xdimsize cloums) */ status = 0; fprintf(outfile_nxny,"Input file: %s\nGrid: %s\nNumber of rows in the grid = %d\nNumber of columns in the grid = %d\nThe output binary files containing latitudes and longitudes:\n\t%s\n\t%s\n\n Each file contains %d X %d of 64bit float data; First row at the beginning, Last row at the end of the file.\nProjection: %s\nProjection Parameters: ( ", (&Com)->inputFile, (&Com)->gridName, ydimsize, xdimsize, (&Com)->outputFile_lat, (&Com)->outputFile_lon, ydimsize, xdimsize, projection); for( v1=0; v1<13; v1++) { fprintf(outfile_nxny," %lf",projparam[v1]); } fprintf(outfile_nxny," )"); if(projcode == HE5_GCTP_UTM) { fprintf(outfile_nxny,"Zonecode: %d\n\n", zonecode); } else { fprintf(outfile_nxny,"\n\n"); } if(status != -1 && fwrite(lats, sizeof lats[0], npnts, outfile_lat) != npnts) { status = -1; sprintf(errbuf, "Error writing latitudes to binary output.\n"); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if(status != -1 && fwrite(lons, sizeof lons[0], npnts, outfile_lon) != npnts) { status = -1; sprintf(errbuf, "Error writing longitudes to binary output.\n"); H5Epush(__FILE__, "HE5_GDconvert_ij2ll", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if(status == -1) { fflush(outfile_nxny); if(strcmp((&Com)->outFileFlag,"-b") == 0) fflush(outfile_lat); if(strcmp((&Com)->outFileFlag,"-b") == 0) fflush(outfile_lon); free(rows); rows = NULL; free(cols); cols = NULL; free(lons); lons = NULL; free(lats); lats = NULL; HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); if(outfile_nxny == NULL) fclose(outfile_nxny); if(outfile_lat == NULL && (strcmp((&Com)->outFileFlag,"-b") == 0)) fclose(outfile_lat); if(outfile_lon == NULL && (strcmp((&Com)->outFileFlag,"-b") == 0)) fclose(outfile_lon); return(-1); } } else/* ascii data to output file */ { fprintf(stdout,"Number of rows =%d\n",ydimsize); fprintf(stdout,"Number of cols =%d\n",xdimsize); fprintf(stdout,"Projection: %s\nProjection Parameters: ( ",projection); for( v1=0; v1<13; v1++) { fprintf(stdout," %lf",projparam[v1]); } fprintf(stdout," )"); if(projcode == HE5_GCTP_UTM) { fprintf(stdout,"Zonecode: %d\n", zonecode); } else { fprintf(stdout,"\n"); } fprintf(stdout,"\n"); fprintf(stdout,"Order of paramters written to output file:\n"); fprintf(stdout,"row column Latitude Longitude\n"); fprintf(outfile_nxny,"Input file: %s\n",(&Com)->inputFile); fprintf(outfile_nxny,"Grid: %s\n",(&Com)->gridName); fprintf(outfile_nxny,"Number of rows =%d\n",ydimsize); fprintf(outfile_nxny,"Number of cols =%d\n",xdimsize); fprintf(outfile_nxny,"Projection: %s\nProjection Parameters: ( ",projection); for( v1=0; v1<13; v1++) { fprintf(outfile_nxny," %lf",projparam[v1]); } fprintf(outfile_nxny," )"); if(projcode == HE5_GCTP_UTM) { fprintf(outfile_nxny,"Zonecode: %d\n\n", zonecode); } else { fprintf(outfile_nxny,"\n\n"); } for (k=0; koutFileFlag,"-b") == 0) fflush(outfile_lat); if(strcmp((&Com)->outFileFlag,"-b") == 0) fflush(outfile_lon); free(rows); rows = NULL; free(cols); cols = NULL; free(lons); lons = NULL; free(lats); lats = NULL; HE5_GDdetach(gdid[is]); HE5_GDclose(gdfid); free(errbuf); if(outfile_nxny == NULL) fclose(outfile_nxny); if(outfile_lat == NULL && (strcmp((&Com)->outFileFlag,"-b") == 0)) fclose(outfile_lat); if(outfile_lon == NULL && (strcmp((&Com)->outFileFlag,"-b") == 0)) fclose(outfile_lon); return(0); } else { /* write output to STDOUT */ fprintf(stdout,"row column Latitude Longitude\n"); for (k=0; k / 1082129509 0 0 0 2394 ` NNFF^^׾׾``nn3:3:zz**VV??**..s~s~s~s~s~f.f.zz$B$Boo""   Bv Bv y: y: 2 2 8n 8n   F F } } j j ; ; { {   u& u& Z Z lzlzVV77uuZZEEZRZRvv  SSJJvv::$~~~~~~~~~~~~~~~~~~~~$~TalberforintalberforalberinvintalberinvalconforintalconforalconinvintalconinvazimforintazimforaziminvintaziminvbceaforintbceaforbceainvintbceainvceaforintceaforceainvintceainveqconforinteqconforeqconinvinteqconinvequiforintequiforequiinvintequiinvgnomforintgnomforgnominvintgnominvgoodforintgoodforgoodinvintgoodinvgvnspforintgvnspforgvnspinvintgvnspinvhamforinthamforhaminvinthaminvimolwforintimolwforimolwinvintimolwinvisinusforinitIsin_for_freeIsin_for_initisinusforIsin_fwdisinusinvinitIsin_inv_freeIsin_inv_initisinusinvIsin_invlamazforintlamazforlamazinvintlamazinvlamccforintlamccforlamccinvintlamccinvmerforintmerformerinvintmerinvmillforintmillformillinvintmillinvmolwforintmolwformolwinvintmolwinvobleqforintobleqforobleqinvintobleqinvomerforintomerforomerinvintomerinvorthforintorthfororthinvintorthinvpolyforintpolyforpolyinvintpolyinvpsforintpsforpsinvintpsinvrobforintrobforrobinvintrobinvsinforintsinforsininvintsininvsomforintgsat_ratiosomforsominvintsominvsterforintsterforsterinvintsterinvstplnforintstplnforstplninvintstplninvtmforinttmfortminvinttminvutmforintutmforutminvintutminvvandgforintvandgforvandginvintvandginvwivforintwivforwivinvintwivinvwviiforintwviiforwviiinvintwviiinvfor_initinv_inittsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zonep_errorinitclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblankpakszsphdzuntfzgctpgctp_alberfor.o/ 1082129501 59100 998 100644 17472 ` ELF2x0@@ % P0Bg ` x ~F<~F p J?#H803 ( p"!~F(~Fx p`J?#X803( p !~F0~F pJ?#h803( p!~F8~F pJ?#x803 J?#DB pJ?#`800H( p !~F 00<03 J?#DB pJ?#`800~Fxx@J?#~Fp`J?#p<00 0`0H p  0`8$  0$`0 8NBP@!H@ @ p$ ( 8"`8 H( p !@~F 00<03 (p"!~F x$800HBP@!`@ `@ B~Fx`K?#~FxK?#~FpK?#p<00 0` H `0X  ~Fx p`K?#800P @!`@  p$0803( p !~F, K?#800x@ !BP@!~Fx@K?#~F pK?#`800H (p"!~F ( p"!@~F@ <00 PBP @!`@ ( p!@~FH (p"!~F ( p"!@~F@ <00 PBP @!`@ ( p!B~Fp`J?#~F,@p<B!P @!H (p"!~F ( p"!@~F@ <00 PBP @!`@ ( p!~FH (p"!~F ( p"!@~F@ <00 PBP @!`@ ( p!@B~FpJ?#~F,@p<B!P @!H (p"!~F ( p"!@~F@ <00 PBP @!`@ ( p!~F~Fx@J?#~Fp`J?#p<00 0`0X p  0`0$  $~FxxK?#~FpK?#p<00 0  H (p"!~F( p !~F 8`800` H 0 X (p"!@B( p !B 8`800`0X 0 P@!`@ `@ B@@x$~F p@K?#`800 $~FxxK?#~FpK?#p<00 0  H J?#DBpJ!p<00 0` H `0 H   H $H ( p"!~F 8`800p H 0 `8X 0 P@!p@ 0B ` H0 HBP@!`@ `@ D0LBP @!H@<00P@!~Fxx@J?#~Fp`J?#<00 HBP @!H@BP@!~F pJ?#800P @!H@<00P @! U0 `J!H90Bc  x ~F<~F p U?#H803T p!~F~F p`U?#90#T p!@~FV U?#800xh !@BP H!H Tp"!~F T p"!@~F@ <00 P@BP H!`@ T p!~F~F0T!PHx$~FpU?#p<00 0p H 0 `8X 0 PH!p@ 0J ` H0 H@BPH!`@ `@ L~Fx (U?#H T 0"p0 0`0X 0 P H!p@  p$`800`H J~Fx p@U?#`80 Tp"!PBT p!~F@@BPH!p@ 0J p H 0`0H L~F p`U?#p80  xU?#<BP U?#DB pU?#800PH!p@ 0Jp H 0L p8X 0`0H NB@P% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;zalberfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)alberforint1%r_maj)r_min*lat1+lat2,lon0-lat0.false_east/false_north0sin_po2@cos_po2Hcon3Pes4Xtemp4`ms15hms26pqs07xqs18qs29intdoublealberfors*lono@latpHxqPyrXsin_phit`cos_phithqsupthetavxrh1wsize_tǯlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%]long int__int8_t&ysigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,]__uint64_t-__qaddr_t. M__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tMchar__time_tN]__useconds_tO__suseconds_tP]__swblk_tQ]__clock_tR]__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_]__t_scalar_tf__t_uscalar_tg__intptr_tj]__socklen_tm @__sched_paramE __sched_priorityF# _pthread_fastlock __status]# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:@# __c_waiting;#pthread_cond_t< C __dummyB#pthread_condattr_tCpthread_key_tF (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR@#pthread_mutex_tSI  Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#y#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# /    +FILE-/ __FILE7/ wchar_twint_t8Q J__wchH __wchbIQ a   K __countE# __valueJ- #__mbstate_tKa    __pos # __state  #_G_fpos_t   # __pos !# __state " #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR ) 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS u__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectuxm~) __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 :__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# mmxm~sm:mm__gconv_fct H__gconv_init_fct K1__gconv_end_fct LN__gconv_trans_fct Um:__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a __gconv_trans_end_fct bA __gconv_info __nsteps # __steps # __data # __gconv_t GH 4 __cd 2G# __data 3#H 5__cd /G__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA/ _IO_FILE_plus__io_read_fnX6P__io_write_fnaf__io_seek_fni__io_close_fnlfpos_tP ! _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval # r_major r_minor c e3 rh  ns0! lon_center" false_easting# false_northing$  alberfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 0 ++++/-+ #Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA|=G#aG(a+~alberforintalberfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!@;x, 2 7 bE~QAb*nPC-pH.P.@p.0hC .H./C.0D0/;Z/x6 h:  8@)04<DG(KM   PY` emrz` alberfor.cfalse_eastingfalse_northinglon_centerr_majorr_minore3ns0crh__divdf3alberforintp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lonsincos*8*@"*0*22@I*A*r**IRIp*I*"IQ*II*BIq*II!*bI* *(IP*(**(! * " *0 *1 *( I *( I" 2P2 I A *B *b I! I" *0 I# I$ *8 *@" I% I *R I * * *( IB *(b I *0I' *(I(*8* 2I)*@% %''''` '` '''''' '(6'0U'8u'@'__` __` _(_ %%'alberinv.o/ 1082129501 59100 998 100644 20208 ` ELF28@@ % P0Bg ` x ~F<~F p J?#H803 ( p"!~F(~Fx p`J?#X803( p !~F0~F pJ?#h803( p!~F8~F pJ?#x803 J?#DB pJ?#`800H( p !~F 00<03 J?#DB pJ?#`800~Fxx@J?#~Fp`J?#p<00 0`0H p  0`8$  0$`0 8NBP@!H @ p$ ( 8"`8 H( p !@~F 00<03 (p"!–~F x$800HBP@!`@ `@ BH(p!~F ( p"!~F 8`800` H `0X  @BP @!`@  p$0803( p!~F, K?#800x@ !BP@!~Fx@K?#~F pK?#`800H(p!~F ( p"!@~F@ <00 PBP @!`@ ( p!~FH (p"!~F ( p"!@~F@ <00 PBP @!`@ ( p!~F~Fp`J?#~F,@p<B!P @!H (p"!~F ( p"!@~F@ <00 PBP @!`@ ( p!@~FH (p"!~F ( p"!@~F@ <00 PBP @!`@ ( p!B~FpJ?#~F,@p<B!P @!H (p"!~F ( p"!@~F@ <00 PBP @!`@ ( p!~F~Fx@J?#~Fp`J?#p<00 0`0X p  0`0$  $~FxxK?#~FpK?#p<00 0  H (p"!@~F( p !@~F 8`800` H 0 X (p"!B( p !~F 8`800`0X 0 P@!`@ `@ B@@x$~F p@K?#`800 $~FxxK?#~FpK?#p<00 0  H J?#DBpK?#p<00 0` H `0 H   H $H ( p"!~F 8`800p H 0 `8X 0 P@!p@ 0B ` H0 HBP@!`@ `@ D0LBP @!H@<00P@!~Fxx@J?#~Fp`J?#<00 HBP @!H@BP@!~F pJ?#800P @!H@<00P @! U0 `J!810Bc  x ~F<~F p Q?#H803 D p"!~F~Fx p`Q?#90#D p !BH D 0"p0 0`0X xD<~F Q?#H D p"!@~F 8`800 p0X 0`0H   0`  pQ?#`800 p0 D @`@  HDp!@~FD p !@~F 8`800` H `0 H 0 P H!`@ D p"!~F~Fx pQ?#8030@ Q?#@BF Q?#`D00 p0 D @`@  HDp!@~FD p !@~F 8`800` H `0 H 0 PH!`@ `0" J~F xQ?#H 00<03 xQ?#<B pQ?#803D p !~F 0p0 x Q?#DB pQ?#p800D @`@  HDp!~FD p !@~F 8`800` H 0 P H!`@ D p"!~F xQ?#<BG Q?#@B pQ?#8`<00 ` H0 H@BPH!`@ `@ J~F(Q?#HDp!~F D p"!~F 8`800p H 0  `8X0 H@BPH!`@ `@ J 8 0`0  xQ?#<BG p$`800 p0X 0`H 8 0 PH!`@ `@ 0 P H!H 0 p0X 0` H `H0 H@BPH!`@ `@ `0X J~F pQ?#`800 p D p"!@~F 0` `0X p  0`0$ p $~Fx pQ?#@ @ 800`x !P H!`@ D p !~F p0803 D p"!B p`8rB xQ?#<B pP!8 @!p@ Q?#@B pQ?#`800` PB Q?#DB p`Q?#80  00<03 @ xQ?#<B p`Q?#80  00<03@$~F pQ?#@ @ 800`x !P H!`@ D p!~F p0803D p !B p`8r@B Q?#DB pP!8 @!@ xQ?#<B pQ?#@<00PH!`@ p@  p$`800`0H 0 P H!`@ D p !~F p08038U` `P!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;zalberinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)alberinvint5%r_maj-r_min.lat1/lat20lon01lat02false_east3false_north4sin_po6@cos_po6Hcon7Ptemp8Xms19`ms2:hqs0;pqs1<xqs2=intdoublealberinvw(xs@ytHlonuPlatvXrh1x`qsyhconzptheta{xflag|long intsize_tǧlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&esigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,__uint64_t-__qaddr_t. E__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tIz__daddr_tL__caddr_tMchar__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tg__intptr_tj__socklen_tm ,__sched_paramE __sched_priorityF# o_pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr#o __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:,# __c_waiting;#pthread_cond_t< C __dummyB#pthread_condattr_tCpthread_key_tF (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR,#pthread_mutex_tS5  Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t o _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#e#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#o     +FILE- __FILE7 wchar_twint_t8= J__wchH __wchbI= M  z K __countE# __valueJ #__mbstate_tKM    __pos # __state z #_G_fpos_t    # __pos !# __state "z #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS a__gconv_step` ? __shlib_handle ry# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectadYjp __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state z #( __trans #0z &__gconv_trans_data( B __trans_fct gv# __trans_context_fct h# __trans_end_fct i# __data j# __next k# YYdYjp_Y&YY|__gconv_fct H__gconv_init_fct K__gconv_end_fct L:__gconv_trans_fct UY&__gconv_trans_context_fct Z|__gconv_trans_query_fct ^p__gconv_trans_init_fct a  __gconv_trans_end_fct b- __gconv_info __nsteps # __steps # __data # __gconv_t 3H 4 __cd 23# __data 3#H 5__cd /3__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX"<__io_write_fnaRl__io_seek_fni__io_close_fnlfpos_tP   _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval # r_major r_minor  c! e3" es# rh$ ns0% lon_center& false_easting' false_northing(  alberinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 4 +,+++/-+ %+,+,+++++++++Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREA|=𿻽|=?-DT!?-DT!G#aG&a+~alberinvintalberinv,`GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@`!CX,27bE~QPLb1nN(6x606@p70N @7P@7/No70N07;7>  C  @H)84<D GJ0NP(  S\@ hpu}@ alberinv.cfalse_eastingfalse_northinglon_centerr_majorr_minorese3ns0crh__divdf3alberinvintp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberinvatan2logphi1zadjust_lon*@*H"*8*22HI*A*r**I* "* 2IP*I*I1*rI I*"IQ*I I*BI **0I0*0`**0 *( * * *0 I *0 I 2X I!! *" *B I" I# *8 I$ I% *@ *H I& *@A *(r *H *0 II*I(r*0*I*R*0rI****bII)* **"I**BI*2*(r* *I**0I*8I+% %'`'''@ '@ '`''''' '('06'8U'@u'H'__@ __@ _`(_ %%'alconfor.o/ 1082129501 59100 998 100644 21512 ` ELF2`<@@ % 3~F` `?#`  @3 x +<~F pJ?#H803+ p!~F(~F p K?#X803 xJ?#p<00`8 H+ p !~F 00<03 J?#@B pK?#`800H+ p !@~F 00<03 p$`800H 00<03 p$p<0#+p!~F 00<03+ p !~F@BP @!`@  p$0803 p8B x ! 00<03 p8B x@! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8Bp  p8B x@! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03+p! ~F  p$800P@!p@ 0B`H D~F aK?#H 8 0 `0H0 HBP@!`@ `@ 0 P @!0@ + p!~F 0 p0X+ p !~F 0`H 8 0 P@!`@  @  p$@<00P@!`@ `@  0 P@!`@ ` H 0 P@!`@ p0H 0`0X B~Fx p`K?#800@$BP @!`H0LBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B / U0  @"0D1(@53~F ` `>#  @3 x K<|F pR>#H803 K p"!|F |F p S>#90# xR>#`<00p0 0`0X 0 P H!`@ K p!|F|Fp@S>#|FN@<B !PH!|F0S>#PH@K p$!|F@@BPH!p@ 0J`H L|Fx(AS?#|F pR>#p800 0 `0H0 H@BPH!`@ `@ 0 P H!0@ K p"!|F 0 p0X@K p$!|F 0`H 8 0 PH!`@  @  p$@<00PH!`@ `@  0 PH!`@ ` H 0 PH!`@ p0H 0`0X J|Fxp@S?#@|FO@<B !PH!|FR?#H K p"!@|F 8`800  H R>#HBpS>#p<00 0 p HK p!|F 0` H `0 H  |F(!R?#|F pR?#`800 `H @0 PH!`@ `@ J |F@R?#|Fxx R?#|FpS>#p<00 0 p H@K p$!|F 0` H  |Fx`R?#|F R?#H@K p$!@|F 8`800  H R>#HBpS>#p<00 0 p HK p!|F 0` H p0 X 0 `H "|F`S?#|Fx@R?# |Fp@R?#p<00 0`0H  |Fx R?#|Fx@R?# |Fp@R?#p<00 0  HKp!~F K p"!~F 8`800` H `0 H   |F R?# x pp$@ p< `800 |Fx R?# x pp$@ p< `800 |F R?# x pp$@ p?#x8@ 00@03 Kp"!~F x pp$@ p?#x8@ 00@03@Kp$!~F!8 xR>#<B pS?# <0 88 !@ R>#@B L R>#HBK xR>#<BM R>#HBpR?#p<00 0p H 0 `8H "|Fx S?#|FR?# |Fx`S?# |FpR?#p<00 0p H 0 `8H "|Fx pS?# <0 8@0PB R>#@B K $@0  R>#HBpS?#<0 px8 @0<pp1`t p8@Kp!@~F@K p$!~F 8`800p H 0 `8X "|Fx R?# H@K p$!~F x80  x< 0<pp1`t p8@Kp!@~F@K p$!@~F 8`800p H 0 `8X "|FxxR?#|F pS?#`800|FxR?# |F p S?#`800 xR>#<BpS?#|FxS?#|F pS?#80  p!p<0#H R>#HBK R>#@B p R?#`800 p0" K p"!~F 0` H  |FxR?#|F p R?#`800 p0" K p"!@~F 0` H  |FxR?#|F pS?#`800|FxR?# |F p S?#`800|Fx pS>#80 Kp"!~F@K p$!~F 8`800  HKp!~F K p"!@~F 8`800` H p0 X@K p$!~F 0 p0H 0 p H 0`0H  |Fx p S>#80 Kp"!~F@K p$!~F 8`800  HKp!~F K p"!@~F 8`800` H p0 H@K p$!~F 0 p0H 0 p H 0`0H  B O@Up  @"0D1H% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;alconfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)4alconforint64%r_maj2;r_min3;false_east4;@false_north5;Hes7;Pchi8;Xesphi9;`intdoublealconform4)lonh;~lati;~xj~yk~dlonn;~sinlono;~coslono;~sinphip;~cosphip;~esphiq;~gr;ss;xpt;ypu;arv;aiw;brx;biy;arnz;@ain{;Hchi|;Pr};Xj~`;long intsize_tlong unsigned int__u_char unsigned char__u_short!'short unsigned int__u_int"Lunsigned int__u_long#__u_quad_t$__quad_t%__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)'__int32_t*4__uint32_t+L__int64_t,__uint64_t-__qaddr_t.E~__dev_t0"__uid_t1__gid_t2__ino_t3"__ino64_t4"__mode_t5__nlink_t6"__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<"__rlim64_t="__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@"__fsblkcnt64_tA"__fsfilcnt_tB"__fsfilcnt64_tC"__id_tDI __valH# 4 long unsigned int__fsid_tI__daddr_tL4__caddr_tM#)char__time_tN__useconds_tOL__suseconds_tP__swblk_tQ__clock_tR__key_tS4__clockid_tV4__timer_tY4__ipc_pid_t\4__blksize_t___t_scalar_tf4__t_uscalar_tgL__intptr_tj__socklen_tmL e__sched_paramE __sched_priorityF4# _pthread_fastlock __status# __spinlock4# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+4# __schedpolicy,4# __schedparam-3# __inheritsched.4# __scope/4# __guardsize0# __stackaddr_set14# __stackaddr2#( __stacksize3#0pthread_attr_t4 < __c_lock:e# __c_waiting;#pthread_cond_t<? C __dummyB4#pthread_condattr_tC$ pthread_key_tFL (S __m_reservedN4# __m_countO4# __m_ownerP# __m_kindQ4# __m_lockRe#pthread_mutex_tSn  Z __mutexkindY4#pthread_mutexattr_tZ pthread_once_t^4pthread_t _IO_FILE-_flags4#_IO_read_ptr ##_IO_read_end ##_IO_read_base ##_IO_write_base## _IO_write_ptr##(_IO_write_end##0_IO_buf_base##8_IO_buf_end##@_IO_save_base##H_IO_backup_base##P_IO_save_end##X_markers #`_chain #h_fileno4#p_blksize4#t_old_offset#x_cur_column"'#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:4#_unused2< # _IO_marker _next # _sbuf # _pos4# T  )   ) +FILE-T __FILE7T wchar_t4wint_t8Lv J__wchHC __wchbIv )  K __countE4# __valueJR #__mbstate_tK    __pos # __state  #_G_fpos_t  - # __pos !# __state " #_G_fpos64_t # &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR N 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u4# __from_name w## __to_name x## __fct z#( __init_fct { #0 __end_fct |#8 __min_needed_from 4#@ __max_needed_from 4#D __min_needed_to 4#H __max_needed_to 4#L __stateful 4#P __data #X __gconv_loaded_object)444N __gconv_step_data8 @ __outbuf # __outbufend # __flags 4# __invocation_counter 4# __internal_use 4# __statep # __state #( __trans #0 ___gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# 4_4 4__gconv_fct H8__gconv_init_fct KV__gconv_end_fct Ls__gconv_trans_fct U___gconv_trans_context_fct Z__gconv_trans_query_fct ^4__gconv_trans_init_fct a(.C4C__gconv_trans_end_fct bf __gconv_info __nsteps # __steps # __data # __gconv_t lH 4 __cd 2l# __data 3#6H 5__cd /l__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 84_G_uint16_t 9'_G_uint32_t :L__gnuc_va_list + _IO_jump_t_IO_lock_t%__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAT _IO_FILE_plus__io_read_fnX[u#__io_write_fna__io_seek_fni44__io_close_fnl4fpos_tP F _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type 4#name ##arg1 ;#arg2 ;#retval ;# r_major"; r_minor#; lon_center$; lat_center%; false_easting&; false_northing';  ~; acoef(n bcoef)n sin_p26*; cos_p26+; e,; n-  alconfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 5++$++++++,+++++++" ++!+++"++++++++++++w ALASKA CONFORMAL#95RF?^s{?1,51?!bLUu?zY}? =;js?Kzs?7< sfə$s?nNȿSXOvҿ-DT!?@-DT!?@G# øaG' øa+alconforintEalconfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!HG ,2p7bErQ8Qbw4nS99(:Ppx:00S :P:/S:0S0;;B;`B hF   *(9DOHQ@S8Y88_0g8  oxalconfor.cr_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefsin_p26cos_p26__divdf3alconforintsqrtsintanpowatantsincosptitleradius2cenloncenlatoffsetpalconforadjust_lon*** *("*0*A*B*R*Hr*I*@2*2* "2B*(R2r*02*82*@2828"*H228R*Pb28*X28*`28*h*@*"Iq**p*xII I*@*xIBI!I"*p*0*8I#2I$!*"*BI%Q*bI&q*I'* *(I(*I*B I#a *@ I * *" Ib I  I0 *@2 *R I I! I" *b I# *0 *8r * Iq*8*0r2*H28*H2"*Hb28r*H*HB*H2*Hb28q*H"*B* B*b*(% %''''['c''' '''F' f'(''8'0'8'@'H'____ _(_(%%'alconinv.o/ 1082129501 59100 998 100644 27888 ` ELF28R@@ % 3~F` `?#`  @3 x +<~F pJ?#H803+ p!~F(~F p K?#X803 xJ?#p<00`8 H+ p !~F 00<03 J?#@B pK?#`800H+ p !@~F 00<03 p$`800H 00<03 p$p<0#+p!~F 00<03+ p !~F@BP @!`@  p$0803 p8B x ! 00<03 p8B x@! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8Bp  p8B x@! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03+p! ~F  p$800P@!p@ 0B`H D~F aK?#H 8 0 `0H0 HBP@!`@ `@ 0 P @!0@ + p!~F 0 p0X+ p !~F 0`H 8 0 P@!`@  @  p$@<00P@!`@ `@  0 P@!`@ ` H 0 P@!`@ p0H 0`0X B~Fx p`K?#800@$BP @!`H0LBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B / U0  @"0D1(@53~F ` `=#  @3 x L<zF p S=#H803 L p"!zF zF p`S=#90# xS=#`<00p0 0 `0X0 H@BPH!`@ `@ xL<zF(!S=#zF p S=#8`<00 `0X0 H@BPH!`@ `@ J zF pS>#L 8`8 zFxxR?#zF p S=#`800zF pS?#80# S=#HBN xS=#<BO S=#DBpS>#p<00 0`0H   zFS=#zFxxS>#zFpS>#p<00 0  H@Lp$!~F L p"!~F 8`800` H `0 H   zF @R># x pp$@ p< `800 zFx R># x pp$@ p< `800 zF S=# x pp$@ p?#x8@ 00@03 Lp"!|F x pp$@ p?#x8@ 00@03@Lp$!|F ppp1`88 pHL p !|F 0` H zF x`R>#H ppp1`88 pHL p !@|F 0` H zF xR>#H p;~F 88`88 pHL p !zF 0` H zF xR>#H p;~F 88`88 pHL p !|F 0` H zF xS?#H8 S=#HB pS?# <0 88 !0@ xS=#<B K S=#@BO S=#HBN S=#HBp@R>#p<00 0p H 0 `8H "zFxS>#zFR># zFxS=# zFp R>#p<00 0p H 0 `8H "zFx pS?# <0 8@0pB S=#@B O $@0  S=#HBpS?#<0 px8 @0<pp1`t p8@Lp!zF@L p$!|F 8`800p H 0 `8X "zFx R># H@L p$!~F x80  x< 0<pp1`t p8@Lp!zF@L p$!@|F 8`800p H 0 `8X "zFxx@R>#zF pR>#`800zFx R># zF pS>#`800zFx S>#zFR># zFxS=# zFpR>#p<00 0p H 0 `8H "zFx@S>#zFR># zFxS=# zFp`R>#p<00 0p H 0 `8H "zFxR>#HL p !~F x80  p< pp1`88 pH H@L p$!~F x80  x< 0<p1`t p8@ 0  HLp!zFL p !|F 8`800` H `0 X "zFR>#H@L p$!~F x80  p< pp1`88 pH H@L p$!~F x80  x< 0<p1`t p8@ 0  HLp!zFL p !|F 8`800` H `0 X "zFxR># zF p S>#`800zFxx`R>#zF p@S>#`800 S=#DBpS?# zFxS?#zF pS?#80  p!p<0#H S=#DBO S=#HB pS=#`800 p0"L p !|F 0` H zFxR># zF pS=#`800 p0"L p !@|F 0` H zFx@R># zF pR>#`800zFxx R>#zF pS>#`800zF`S># zFxS>#zFp@R>#p<00 0  H@Lp$!~F L p"!@|F 8`800` H p0 X@L p$!zF 0 p0HL @`@ `0X  zFxS>#zFxR?# zFp@R>#p<00 0  HLp!|F L p"!@|F 8`800` H p0 H@L p$!|F 0 p0HL p!@zF 0`0X  zFS>#zFxS># zFpR>#p<00 0  HLp!~F L p"!|F 8`800` H p0 X@L p$!|F 0`0H  zFxS>#zFxR?# zFpR>#p<00 0  HLp!|F L p"!|F 8`800` H p0 H@L p$!|F 0`0H  zFx R?#zFxS># zFpS>#p<00 0  HLp!|F L p"!|F 8`800` H `0 H   zF(AR?#zFxx`S>#zFpS>#p<00 0  H Lp"!|F@L p$!|F 8`800` H `0 H `0"L p!@~F0 H@BPH!`@ `@ JzF(aR?#zFxS># zFpS>#p<00 0  HLp!|FL p !|F 8`800` H `0 X `0" L p"!@~F0 H@BPH!`@ `@ J zFS>#zFxxS>#zFp@R?#p<00 0`0H   zFR?#zFxxR?#zFp`R?#p<00 0`0H   zFxR?#zF p@R?#`800 p L p"!~F 0` `0H  zFpS?#zFxxS?#zF pS?#80  p!p<0# L p"!@~F pp8 b@B P$0 `XV@BPH!XH @ S=#HB pR?#p800 0`0$ J xS=#<BO S=#@BpS>#p<00 0  H Lp"!~F@L p$!~F 8`800` H `0 H 0 P H!`@ L p!~FzF(R?#zF pS?#@<00PH!`@ `@ 0 PH!`@ `0H J zFpR?#~FK@<B !PH!zFx p@S=#80  00<03L p !~F 0 p  0`8 ( S=#DB p`S=#80  00<03 @ S=#HB pR?#8`<00   HLp!~FL p !~F 8`800 p H 0 ` H L p"!~F0 H@BPH!`@ `@ `0H 0 P H!`@ @L p$!@~FzFx pS?#80#Lp !~F L p"!@~F 00<03 S=#HBN($zFx p`S?#800PH!p@ 0J`H LzF(AS?#zF p S?#p800 0 `0H0 H@BPH!`@ `@ 0 P H!0@ @L p$!zF 0 pHL p!zF 0`0X 8 0 PH!`@  @  p$@<00PH!`@ `@  0 PH!`@ ` H 0 PH!`@ p0H 0 p0XL p !~F 0`0X JzF`S?# zFx`S?#zFp@S?#p<00 0`0H   zFpS?#zFxxS?#zF pS?#80  p!p<0# L p"!@~F pp8 b@B P$0 `XV@BPH!`Hp@ S=#HB p@S?#`800 p  0`0$ J xS=#<B p`S=#80 L p !~F 00<03 Lp"!|F@L p$!~F 8`800  HL p!~F8`<00 p HL p !~F 0  H L p"!~F8`<00 p H@L p$!~F 0` H `0 X H$ 0 P H!p@  p$`800`0H 0 P H!`@ L p!zF p0803S?#@Up  @"0D1H% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;alconinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)4alconinvint64%r_maj2;r_min3;false_east4;@false_north5;Hes7;Pchi8;Xesphi9;`intdoublealconinvl4)xg;}yh;}loni}latj}esphim;}rn;}so;}brp;}biq;~air;~ars;~cit;~cru;~div;~drw;~arnx;~ainy;~crnz;~cin{;~fxyr|;~fxyi};~fpxyr~;~fpxyi;~xp;~yp;den;dxp;dyp;ds;z;cosz;sinz;rh;@chi;Hdphi;Pphi;Xj`nnh;long intsize_tǵlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"!unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&ssigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*4__uint32_t+!__int64_t,__uint64_t-__qaddr_t.S__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH# 4 long unsigned int__fsid_tI__daddr_tL4__caddr_tMchar__time_tN__useconds_tO!__suseconds_tP__swblk_tQ__clock_tR__key_tS4__clockid_tV4__timer_tY4__ipc_pid_t\4__blksize_t___t_scalar_tf4__t_uscalar_tg!__intptr_tj__socklen_tm! :__sched_paramE __sched_priorityF4# }_pthread_fastlock __status# __spinlock4# _pthread_descr_struct_pthread_descr#} __pthread_attr_s8* __detachstate+4# __schedpolicy,4# __schedparam-# __inheritsched.4# __scope/4# __guardsize0# __stackaddr_set14# __stackaddr2 #( __stacksize3#0pthread_attr_t4 < __c_lock::# __c_waiting;#pthread_cond_t<  C __dummyB4#pthread_condattr_tC pthread_key_tF! (S __m_reservedN4# __m_countO4# __m_ownerP# __m_kindQ4# __m_lockR:#pthread_mutex_tSC  Z __mutexkindY4#pthread_mutexattr_tZ pthread_once_t^4pthread_t } _IO_FILE-_flags4#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno4#p_blksize4#t_old_offset#x_cur_column"#_vtable_offset#s#_shortbuf$ #_lock( #_offset1#__pad17 #__pad28 #_mode:4#_unused2< # _IO_marker _next # _sbuf # _pos4#} )    +FILE-) __FILE7) wchar_t4wint_t8!KJ__wchH__wchbIK [ K __countE4# __valueJ'#__mbstate_tK[  __pos # __state #_G_fpos_t  # __pos !# __state "#_G_fpos64_t # &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR # 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS o__gconv_step` ? __shlib_handle r# __modname s# __counter u4# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from 4#@ __max_needed_from 4#D __min_needed_to 4#H __max_needed_to 4#L __stateful 4#P __data #X __gconv_loaded_objecto4rgx~44# __gconv_step_data8 @ __outbuf # __outbufend # __flags 4# __invocation_counter 4# __internal_use 4# __statep # __state #( __trans #0 4__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j # __next k# g4 grgx~mg44 gg 4__gconv_fct H __gconv_init_fct K+__gconv_end_fct LH__gconv_trans_fct Ug4__gconv_trans_context_fct Z__gconv_trans_query_fct ^4~__gconv_trans_init_fct a4 __gconv_trans_end_fct b; __gconv_info __nsteps # __steps # __data # __gconv_t AH 4 __cd 2A# __data 3# H 5__cd /A__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 84_G_uint16_t 9_G_uint32_t :!__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA) _IO_FILE_plus__io_read_fnX0J __io_write_fna`z __io_seek_fni4 4__io_close_fnl4 fpos_tP _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type 4#name #arg1 ;#arg2 ;#retval ;# r_major"; r_minor#; lon_center$; lat_center%; false_easting&; false_northing';  S; acoef(C bcoef)C sin_p26*; cos_p26+; e,; n- P alconinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 5++$++++++,+++++++" ++%+++++++++++++++++q++++!ALASKA CONFORMALToo many iterations in inversealcon-inv#95RF?^s{?1,51?!bLUu?zY}? =;js?Kzs?7< sfə$s?nNȿSXOvҿ-DT!?@|=@-DT!?G# øaG' øa +alconinvintEalconinv,P,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@P,!x] ,,2,p7,bE-Q jbGTnl OHhOPPpPP0l PPP/lP0l0P;Q8XP \   *(9DOHQ@S8Y88_0g8  oxP$alconinv.cr_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefsin_p26cos_p26__divdf3alconinvintsqrtsintanpowatantsincosptitleradius2cenloncenlatoffsetpalconinvp_errorasinzatan2adjust_lon*** *("*0*A*B*R*Hr*I*@2*2* "2B*(R2r*02*82*@2828"*H228R*Pb28*X28*`28*h*@*"Iq**p*xII I*@*xIBI!I"*p*0*8I#2I$!*"*BI%Q*bI&q*I'* *(I(* *IB *(b * Ib 2r *H 28 *H 2 *HR 28b *H *H! *H *H1*H*HR*H2*Hr28*H*H22A*H1*H28*HII 2 28!I*2!*""Ir"*"I"I"2#I#R#*#*#*"$*0$*8$I"%I+%*@%I2&*R&*r&I&I R'I'*@'*'I'I!2(I"R(*)2)28)I*)***8+*0+I,+*+I-% %'P,'''['c'P,''''' ;'(b'y'8'0'8'@'H'____ _P,(_(%%'azimfor.o/ 1082129501 59100 998 100644 14792 ` ELF2 )@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 G?#@B pG?#`800~Fx pG?#8000$BP @!@H HBP @!H@BP @!H@BP @!H@BP @!H@<00P@!B @50Bd  R@!M<|F p`S>#H803 M p"!|F |F pS>#90# x@S>#`<00p0 0`0X 0 P H!`@ M p!~F|Fp`S>#|FO@<B !PH!|F pR?#800P H!`@ @M p$!@~F|Fx`R?#H M p"!|F 8`800  H @S>#HBpS>#p<00 0 p HM p!@~F 0` H `0 H  |F p`R?#`800` `X p  0`8$  @S>#DB p@R?#803@M p$!~F 0`0$  x@S>#<BJ p$p800 0` H ~FM x !~F@p X$0 `@BPH!~F@p X$0 PH!Hp@ @S>#DB p`R?#800P H!`@ @M p$!@~F|Fx0AR?#|F(R?#|F pR?#800PH!`@ @J 0 PH!`@ `@ L @S>#HB pS>#`80 x$|Fp@R?#p<00 0 p H M p"!|F 0   H@M p$!~F@@BPH!`@ p H 0J`8H L|Fx pS>#80 x$ |Fp@R?#p<00 0  H @S>#HBpS>#p<00 0  H @S>#HBpS>#p<00 0 p HM p!@~F 0` H `0 X p$ H 0 `8H "R!@Up "B% .? : ; ' I@ : ; I $ > 4: ; I  II!I/ : ; I  : ; : ; I8  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;azimfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)azimforint,#r_maj'&`center_lon(&hcenter_lat)&pfalse_east*&xfalse_north+&intdoubleazimforJ)lonF&~latG&~xH~yI~sinphiK&~cosphiK&~dlonL&coslonM&kspN&gO&conP&zQ&messR%&5J5Olong unsigned intchar size_t`long unsigned int __u_char unsigned char __u_short!short unsigned int __u_int"unsigned int __u_long#` __u_quad_t$` __quad_t%long int __int8_t&*signed char __uint8_t' __int16_t([short int __uint16_t) __int32_t* __uint32_t+ __int64_t, __uint64_t-` __qaddr_t. __dev_t0 __uid_t1 __gid_t2 __ino_t3 __ino64_t4 __mode_t5 __nlink_t6 __off_t7 __off64_t8 __loff_t9 __pid_t:z __ssize_t; __rlim_t< __rlim64_t= __blkcnt_t> __blkcnt64_t? __fsblkcnt_t@ __fsblkcnt64_tA __fsfilcnt_tB __fsfilcnt64_tC __id_tD XI __valHX#h5 __fsid_tI? __daddr_tL __caddr_tMJ __time_tN __useconds_tO __suseconds_tP __swblk_tQ __clock_tR __key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t_ __t_scalar_tf __t_uscalar_tg __intptr_tj __socklen_tm __sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct _pthread_descr#E 3__pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0R# __stackaddr_set1# __stackaddr23#( __stacksize3R#0 pthread_attr_t4K }< __c_lock:# __c_waiting;/# pthread_cond_tq5 __gconv_t O ~H 4 __cd 2# __data 3q#H 5__cd /__combined 4U _G_iconv_t 5~ _G_int16_t 7[ _G_int32_t 8 _G_uint16_t 9 _G_uint32_t : __gnuc_va_list +3 _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX3R__io_write_fna3'R__io_seek_fni)C3CT__io_close_fnl_o3 fpos_tP`  _IEEE__SVID__XOPEN__POSIX__ISOC_ _LIB_VERSION_TYPE }4exception( type #name #arg1 &#arg2 &#retval &# r_major& lon_center& lat_origin& false_northing& false_easting & sin_p12!& cos_p12"&  azimfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h +!!  +-AZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-forG!aoG'a|=-DT! @)azimforint0azimfor, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !3,0 20 70 bE Qp7hb#n8&`&Hp('08 X'h'8h'-9'090';( / 2 )8 F(N0  Vpaipwpazimfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12azimforinttsincosptitleradiuscenlonmeroriginoffsetp__divdf3azimforadjust_loncossprintfp_erroracossin****2* r*(*0I2I*I*I*I* *2I*BI II!*(B*0***2"I"@2PRI#I$I%BI* *"I%***0 *(% %' '''pE'pM' E'a'}''' '('0'__p__p _ (_ %%'aziminv.o/ 1082129501 59100 998 100644 16072 ` ELF2,@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 G?#@B pG?#`800~Fx pG?#8000$BP @!@H HBP @!H@BP @!H@BP @!H@BP @!H@<00P@!B H90Bb  T@!S<~F pT?#H803S p!~F~F p U?#90# xT?#`<00p0 0`0X xS<~FT?#~Fx pT?#8`<00`0X  S 0  p0 S @`@  HSp!~FS p !~F 8`800` H `0 H 0 P H!`@ S p!~F~F x@U?#H 8 0p H 0`8$  X$0 `X@BPH!H@ xT?#<BU T?#@B p@U?#@<00PH!`@ `@ J~Fxp`U?#~FV@<B !PH!~F pU?#80  00<03S p!~F 0 p  0`8 ( T?#@B p U?#80  00<03@ xT?#<B pU?#8`<00   HSp !~FS p !~F 8`800 p H 0 ` HS p!~F0 H@BPH!`@ `@ `0H 0 P H!`@ S p !@~F p0803Sp!~F 0 p  0`0X ~F pU?#`800 p  0`8  p$`800` B pT?#p800`8 `0"S p!~F0 H@BP H!p@  p$`800`8X 0 P H!`@ S p !~F p0803@ xT?#<B pT?#`800 `0"S 8 8 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p0803@ T?#@BW xT?#<BV($~F p U?#80 @@BPH!p@ 0Jp H 0L`8X N~Fx pU?#`800 p  0`8$ @ T?#p@00`8 p  0`8$  @!p@ xT?#<B pU?#S 0 p0 0 p H 0  HSp!~FS p !~F 8`800` H 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p0803T!HU "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;aziminv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)aziminvint,#r_maj'&`center_lon(&hcenter_lat)&pfalse_east*&xfalse_north+&intdoubleaziminvJ*xF&yG&lonH@latIHrhK&PzL&XsinzM&`coszM&hconN&p&size_tlong unsigned int__u_char unsigned char__u_short!/short unsigned int__u_int"Tunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t' __int16_t(short int__uint16_t)/__int32_t*__uint32_t+T__int64_t,__uint64_t-__qaddr_t.Y__dev_t06__uid_t1__gid_t2__ino_t36__ino64_t46__mode_t5__nlink_t66__off_t7%__off64_t8%__loff_t9%__pid_t:__ssize_t;%__rlim_t<6__rlim64_t=6__blkcnt_t>%__blkcnt64_t?%__fsblkcnt_t@6__fsblkcnt64_tA6__fsfilcnt_tB6__fsfilcnt64_tC6__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM7=char__time_tN__useconds_tOT__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgT__intptr_tj__socklen_tmT y__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-G# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4"< __c_lock:y# __c_waiting;#pthread_cond_t<SC __dummyB#pthread_condattr_tC8pthread_key_tFT(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRy#pthread_mutex_tS& Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr 7#_IO_read_end 7#_IO_read_base 7#_IO_write_base7# _IO_write_ptr7#(_IO_write_end7#0_IO_buf_base7#8_IO_buf_end7#@_IO_save_base7#H_IO_backup_base7#P_IO_save_end7#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"/#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# h  =  - = +FILE-h __FILE7h wchar_twint_t8T J__wchHW __wchbI =  K __countE# __valueJf #__mbstate_tK    __pos # __state  #_G_fpos_t  A  # __pos !# __state " #_G_fpos64_t # / &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR b 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w7# __to_name x7# __fct z #( __init_fct {!#0 __end_fct |3#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object=  b __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0  s__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k#   s! 3 '__gconv_fct HL__gconv_init_fct Kj__gconv_end_fct L'__gconv_trans_fct Us__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a<BWW__gconv_trans_end_fct bz __gconv_info __nsteps # __steps # __data # __gconv_t #H 4 __cd 2# __data 3#JH 5__cd /__combined 4_G_iconv_t 5#_G_int16_t 7_G_int32_t 8_G_uint16_t 9/_G_uint32_t :T__gnuc_va_list + _IO_jump_t_IO_lock_t9__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAh _IO_FILE_plus__io_read_fnXo 7__io_write_fna __io_seek_fni__io_close_fnlfpos_tP Z _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE "exception( type #name 7#arg1 &#arg2 &#retval &# r_major& lon_center& lat_origin& false_northing& false_easting & sin_p12!& cos_p12"& Y aziminv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h +!! %++,++++z++AZIMUTHAL EQUIDISTANTInput data errorazim-invG!aoG(a-DT! @|=-DT!?)aziminvint0aziminv, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !H7(,27bEbQp<hb&]n=`*@*Hp*0= +0+80+->]+0>0+;+2 x6 )8 F(N0  VpaipwpP aziminv.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12aziminvinttsincosptitleradiuscenlonmeroriginoffsetp__divdf3aziminvsqrtp_errorasinzatan2adjust_lonsin****2* r*(*0I2I*I*I*I* *2I* b*RI **220I!R*rII*2***("*0rII"*"*r**2 I#P * I$2 I#P * I$ *( I% * * *0 I#0 *b I$% %' '''pE'pM' ''"'B'a' z'('0'__p__p _ (_ %%'bceafor.o/ 1082129501 59100 998 100644 16392 ` ELF2,@@  P0Bd ` x ~F<~F p`K?#H803 - p"!~F(~Fx pK?#X803- p !~F0~F pK?#h803 x@K?#p<00`8 H- p !~F 00<03 @K?#DB pK?#`800H- p !@~F 00<03 @K?#DB pK?#`800H- p !~F 00<03 -p"!B x$800HBP@!`@ `@ BH-p!B - p"!B 8`800` H `0X  @BP @!`@  p$0803 8 0`8$  x$8 @ p$80# p$800P @!`@  p$0803@BP @!`@  p$0803@$H8`<00 p H 0` H `0X 0 P@!`@ @B 0 P@!`@ `@ D0LBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B@(@)3~F gH!0~F D3  @!J<~F pR?#H803 J p"!~F ~F pR?#90# xR?#`<00p0 0`0X 0 P H!`@ J p!~F~F pR?#800P H!`@ J p"!@~F  p`8rB R?#HB pR?#80 x$ ~FpS?#p<00 0 p H 0p H 0 `8H "~Fx pR?#`80 x$~Fp S?#p<00 0 ` H0 H@BPH!`@ p@ 0J`8H Lp@ R?#DBMx$ ~Fp S?#p<00 0` H 0X R?#@Bp S?#p<00 0` H `H 0 PH!`@ `@ 0 P H!@@  p$`800 00X Jp"!A~F R?#HBp S?#p<00 0 p HJ p!@~F 0` H `0X @  0 PH!`@  @  p$`800`0H  0 PH!`@ `@ `H `0X ` H J~F pR?#80  p$8`<00 p H@J p$!~F 0p H 0 `8H "~Fx pR?#`80 x$~Fp@S?#p<00 0 p H 0`0H 8 0 PH!`@ p@ 0J`8H L @! ~F`O@Up $0L1  $B% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ; bceafor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)>bceaforint9>%r_maj3EPr_min4EXcenter_lon5E`center_lat6Ehfalse_east7Epfalse_north8Extemp:Eintdoublebceaforh>)londElateExfygdloniE@sinphijEHqkEPEsize_tlong unsigned int__u_char unsigned char__u_short!7short unsigned int__u_int"\unsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)7__int32_t*>__uint32_t+\__int64_t,__uint64_t-__qaddr_t.a__dev_t0>__uid_t1__gid_t2__ino_t3>__ino64_t4>__mode_t5__nlink_t6>__off_t7-__off64_t8-__loff_t9-__pid_t: __ssize_t;-__rlim_t<>__rlim64_t=>__blkcnt_t>-__blkcnt64_t?-__fsblkcnt_t@>__fsblkcnt64_tA>__fsfilcnt_tB>__fsfilcnt64_tC>__id_tDI __valH# > long unsigned int__fsid_tI__daddr_tL>__caddr_tM?Echar__time_tN__useconds_tO\__suseconds_tP__swblk_tQ__clock_tR__key_tS>__clockid_tV>__timer_tY>__ipc_pid_t\>__blksize_t___t_scalar_tf>__t_uscalar_tg\__intptr_tj__socklen_tm\ __sched_paramE __sched_priorityF># _pthread_fastlock __status# __spinlock># _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+># __schedpolicy,># __schedparam-O# __inheritsched.># __scope/># __guardsize0# __stackaddr_set1># __stackaddr2#( __stacksize3#0pthread_attr_t4*< __c_lock:# __c_waiting;#pthread_cond_t<[C __dummyB>#pthread_condattr_tC@pthread_key_tF\(S __m_reservedN># __m_countO># __m_ownerP# __m_kindQ># __m_lockR#pthread_mutex_tS. Z __mutexkindY>#pthread_mutexattr_tZ pthread_once_t^>pthread_t _IO_FILE-_flags>#_IO_read_ptr ?#_IO_read_end ?#_IO_read_base ?#_IO_write_base?# _IO_write_ptr?#(_IO_write_end?#0_IO_buf_base?#8_IO_buf_end?#@_IO_save_base?#H_IO_backup_base?#P_IO_save_end?#X_markers #`_chain #h_fileno>#p_blksize>#t_old_offset#x_cur_column"7#_vtable_offset##_shortbuf$ #_lock(# #_offset1#__pad17#__pad28#_mode:>#_unused2<% #  _IO_marker _next # _sbuf # _pos># p # E  5 E +FILE-p __FILE7p wchar_t>wint_t8\ J__wchH_ __wchbI E  K __countE># __valueJn #__mbstate_tK    __pos # __state  #_G_fpos_t  I  # __pos !# __state " #_G_fpos64_t # 7 &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR j 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u># __from_name w?# __to_name x?# __fct z#( __init_fct {)#0 __end_fct |;#8 __min_needed_from >#@ __max_needed_from >#D __min_needed_to >#H __max_needed_to >#L __stateful >#P __data #X __gconv_loaded_objectE>>>j __gconv_step_data8 @ __outbuf # __outbufend # __flags ># __invocation_counter ># __internal_use ># __statep # __state #( __trans #0 {__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k # >{>)>;/__gconv_fct HT__gconv_init_fct Kr__gconv_end_fct L/__gconv_trans_fct U{__gconv_trans_context_fct Z__gconv_trans_query_fct ^> __gconv_trans_init_fct aDJ_>___gconv_trans_end_fct b __gconv_info __nsteps # __steps # __data # __gconv_t +H 4 __cd 2# __data 3#RH 5__cd /__combined 4_G_iconv_t 5+_G_int16_t 7_G_int32_t 8>_G_uint16_t 97_G_uint32_t :\__gnuc_va_list + _IO_jump_t_IO_lock_tA__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAp _IO_FILE_plus__io_read_fnXw?__io_write_fna__io_seek_fni>>__io_close_fnl >fpos_tP b _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE *exception( type >#name ?#arg1 E#arg2 E#retval E# r_major#E r_minor$E e%E es&E lon_center'E lat_truesc(E false_northing)E false_easting*E cosphi1+E sinphi1,E kz-E ind. 2 bceafor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 8",++,/ $-, +Cylinderical Equal Areah㈵>G#aG' Ǹa) bceaforintObceafor, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !6x, 2 7 bE Q8=b&6n?)))Hp0*00? `*``*-?*0?0*;*2 5   &(10@8NQSXW@_HgP  js@~@bceafor.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kz__divdf3bceaforintsqrtcossinptitleradius2cenlonmertrue_scaleoffsetpbceaforadjust_lonlog*** !*(B*0q*8**I*R*bI****X*X*(I0*@2*(BI `*Hb*Pp*@q*r*H*HI"IR2bI!q*r*I"* I#*(I$*8*0I%* "I'rI *X*8*"*@*0**@IP** IB I(` * *2 I` * I *8 *" *P *0 * *PB I% %' '''@d'@l' ' ''2'N' j'('0'8'@'H'P'X'__@__@ _ (_ %%'bceainv.o/ 1082129501 59100 998 100644 18528 ` ELF20@@  3~F g(!0~F` D3  @!*<~F pJ?#H803 * p"!~F(~Fx pJ?#X803* p !~F0~F p K?#h803 xJ?#p<00`8 H* p !@~F 00<03 J?#DB pJ?#`800H* p !~F 00<03 J?#DB p K?#`800H* p !~F 00<03 *p"!~F x$800HBP@!`@ `@ BH*p!~F * p"!~F 8`800` H `0X  @BP @!`@  p$0803 p$8`<00` H  H x$p800 0` H   8 0`8$ ( x$8H 00<03 @ p$80#  p$`800 p0X 0`H 8 0 P@!`@ `@ 0 P @!@@  p$`800 00X 0`0X  0 P@!`@  @  p$`800`0H  0 P@!`@ `@ `H `0X ` H B p$800P @!`@  p$0803@BP @!`@  p$0803@$H8`<00 p H 0` H `0X 0 P@!`@ @B 0 P@!`@ `@ D0LBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B@.K?# U0 $0L1  $B@)3~F ` `?#  @3 x L<~Fx p S?#H803L p!~F~Fx p`S?#90# xS?#`<00p0 0`0X xL<~Fx S?#~Fx p S?#8`<00`0X   p`8rB xS?#<B p S?#8`<00 ` H0 H@BPH!`@ `@ 0 P H!`@ L p!~F p0803 p$8`<00 ` HL 88 0 PH!`@ p@ 0J`0H 0 P H!`@ L p!~F p0803P@ xS?#<B p S?#`800 p0H 0  H x$p800 0` H 0 PH!`@ `@ 0 P H!`@ L p!~F~Fx p`S?#`80 Lp!P~F x$800H@BP H!`@  p$p800 0` H 0 H 8 0` H  0 HL p!~F 0`0H 0 PH!`@ p H 0J 00H 8 0  H 8 0` H  0 HL p!~F 8 0` H 0 PH!`@ ` H 00 H 8 0   HL p!~F 8 0` H 0 PH!`@ ` H `0 H LPH x$p800 0 ` HL 88 0 PH!`@ p@ 0J`0H 0 P H!`@ L p!~F p0803@!~F p  @"0D1H% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;,bceainv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)Bbceainvint<B%r_maj6Ir_min7Icenter_lon8Icenter_lat9Ifalse_east:I@false_north;IHtemp=IPintdoublebceainvpB)xlI@ymIHlonnPlatoXbetaqI`Isize_tlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"?unsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*B__uint32_t+?__int64_t,__uint64_t-__qaddr_t.Dq__dev_t0!__uid_t1__gid_t2__ino_t3!__ino64_t4!__mode_t5__nlink_t6!__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t__blkcnt64_t?__fsblkcnt_t@!__fsblkcnt64_tA!__fsfilcnt_tB!__fsfilcnt64_tC!__id_tDI __valH# B long unsigned int__fsid_tI__daddr_tLB__caddr_tM"(char__time_tN__useconds_tO?__suseconds_tP__swblk_tQ__clock_tR__key_tSB__clockid_tVB__timer_tYB__ipc_pid_t\B__blksize_t___t_scalar_tfB__t_uscalar_tg?__intptr_tj__socklen_tm? d__sched_paramE __sched_priorityFB# _pthread_fastlock __status# __spinlockB# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+B# __schedpolicy,B# __schedparam-2# __inheritsched.B# __scope/B# __guardsize0# __stackaddr_set1B# __stackaddr2#( __stacksize3#0pthread_attr_t4 < __c_lock:d# __c_waiting;#pthread_cond_t<>C __dummyBB#pthread_condattr_tC#pthread_key_tF?(S __m_reservedNB# __m_countOB# __m_ownerP# __m_kindQB# __m_lockRd#pthread_mutex_tSm Z __mutexkindYB#pthread_mutexattr_tZpthread_once_t^Bpthread_t _IO_FILE-_flagsB#_IO_read_ptr "#_IO_read_end "#_IO_read_base "#_IO_write_base"# _IO_write_ptr"#(_IO_write_end"#0_IO_buf_base"#8_IO_buf_end"#@_IO_save_base"#H_IO_backup_base"#P_IO_save_end"#X_markers #`_chain #h_filenoB#p_blksizeB#t_old_offset#x_cur_column"#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:B#_unused2< # _IO_marker _next # _sbuf # _posB# S  (   ( +FILE-S __FILE7S wchar_tBwint_t8?u J__wchHB __wchbIu (  K __countEB# __valueJQ #__mbstate_tK    __pos # __state  #_G_fpos_t  ,  # __pos !# __state " #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR M 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter uB# __from_name w"# __to_name x"# __fct z#( __init_fct { #0 __end_fct |#8 __min_needed_from B#@ __max_needed_from B#D __min_needed_to B#H __max_needed_to B#L __stateful B#P __data #X __gconv_loaded_object(BBBM __gconv_step_data8 @ __outbuf # __outbufend # __flags B# __invocation_counter B# __internal_use B# __statep # __state #( __trans #0 ^__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# B^B B__gconv_fct H7__gconv_init_fct KU__gconv_end_fct Lr__gconv_trans_fct U^__gconv_trans_context_fct Z__gconv_trans_query_fct ^B__gconv_trans_init_fct a'-BBB__gconv_trans_end_fct be __gconv_info __nsteps # __steps # __data # __gconv_t kH 4 __cd 2k# __data 3#5H 5__cd /k__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8B_G_uint16_t 9_G_uint32_t :?__gnuc_va_list + _IO_jump_t_IO_lock_t$__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAS _IO_FILE_plus__io_read_fnXZt"__io_write_fna__io_seek_fniBB__io_close_fnlBfpos_tP E _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type B#name "#arg1 I#arg2 I#retval I# r_major#I r_minor$I e%I es&I e_p4'I e_p6(I lon_center)I lat_truesc*I false_northing+I false_easting,I cosphi1-I sinphi1.I kz/I qp0I ind1  bceainv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h ;" ,+-++/ ++"++-++++++++"Cylinderical Equal Areah㈵>@@` ` ?*B*B?[[?U?@m-?@G# ǸaG' øa)0bceainvintSbceainv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!;` ,27bEb0QHE(b*npG0.H.P.Pp.0G /x/-HE/00H0u/;/68 ;  0&81@@HNQS X(]pahdPlXt`  wbceainv.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kz__divdf3bceainvintsqrtlogcossinptitleradius2cenlonmertrue_scaleoffsetpbceainvasinadjust_lon***01*8R*@*H**I*b*rI!** ***(* **"*`*pq*hr**p*h**IRI"p**I*BI*8I#*P*8I$*X*` *P!*"*XB*XI!I2I%!*"*BI&Q*0bI'q*8I(*H*@I)*H *@2 *pr *P * I I+" *00 *2 *P I I,b *` * *h I I+b *p * I * * *( * b I$ * *( *( *02*8rI$*(*@*H2I$q*0r**`IBI,% %''''h'p'''''+' A'(]'0y'8'@'H'P'X'`'h''p'____ _(_(%%'ceafor.o/ 1082129501 59100 998 100644 16384 ` ELF2,@@  P0Bd ` x ~F<~F p`K?#H803 - p"!~F(~Fx pK?#X803- p !~F0~F pK?#h803 x@K?#p<00`8 H- p !~F 00<03 @K?#DB pK?#`800H- p !@~F 00<03 @K?#DB pK?#`800H- p !~F 00<03 -p"!B x$800HBP@!`@ `@ BH-p!B - p"!B 8`800` H `0X  @BP @!`@  p$0803 8 0`8$  x$8 @ p$80# p$800P @!`@  p$0803@BP @!`@  p$0803@$H8`<00 p H 0` H `0X 0 P@!`@ @B 0 P@!`@ `@ D0LBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B@(@)3~F gH!0~F D3  @!J<~F pR?#H803 J p"!~F ~F pR?#90# xR?#`<00p0 0`0X 0 P H!`@ J p!~F~F pR?#800P H!`@ J p"!@~F  p`8rB R?#HB pR?#80 x$ ~FpS?#p<00 0 p H 0p H 0 `8H "~Fx pR?#`80 x$~Fp S?#p<00 0 ` H0 H@BPH!`@ p@ 0J`8H Lp@ R?#DBMx$ ~Fp S?#p<00 0` H 0X R?#@Bp S?#p<00 0` H `H 0 PH!`@ `@ 0 P H!@@  p$`800 00X Jp"!A~F R?#HBp S?#p<00 0 p HJ p!@~F 0` H `0X @  0 PH!`@  @  p$`800`0H  0 PH!`@ `@ `H `0X ` H J~F pR?#80  p$8`<00 p H@J p$!~F 0p H 0 `8H "~Fx pR?#`80 x$~Fp@S?#p<00 0 p H 0`0H 8 0 PH!`@ p@ 0J`8H L @! ~F`O@Up $0L1  $B% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;ceafor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)<ceaforint8<%r_maj2CPr_min3CXcenter_lon4C`center_lat5Chfalse_east6Cpfalse_north7Cxtemp9Cintdoubleceaforg<)loncClatdCxeyfdlonhC@sinphiiCHqjCPCsize_tlong unsigned int__u_char unsigned char__u_short!4short unsigned int__u_int"Yunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)4__int32_t*<__uint32_t+Y__int64_t,__uint64_t-__qaddr_t.^__dev_t0;__uid_t1__gid_t2__ino_t3;__ino64_t4;__mode_t5__nlink_t6;__off_t7*__off64_t8*__loff_t9*__pid_t:__ssize_t;*__rlim_t<;__rlim64_t=;__blkcnt_t>*__blkcnt64_t?*__fsblkcnt_t@;__fsblkcnt64_tA;__fsfilcnt_tB;__fsfilcnt64_tC;__id_tDI __valH# < long unsigned int__fsid_tI__daddr_tL<__caddr_tM<Bchar__time_tN__useconds_tOY__suseconds_tP__swblk_tQ__clock_tR__key_tS<__clockid_tV<__timer_tY<__ipc_pid_t\<__blksize_t___t_scalar_tf<__t_uscalar_tgY__intptr_tj__socklen_tmY ~__sched_paramE __sched_priorityF<# _pthread_fastlock __status# __spinlock<# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+<# __schedpolicy,<# __schedparam-L# __inheritsched.<# __scope/<# __guardsize0# __stackaddr_set1<# __stackaddr2#( __stacksize3#0pthread_attr_t4'< __c_lock:~# __c_waiting;#pthread_cond_t<XC __dummyB<#pthread_condattr_tC=pthread_key_tFY(S __m_reservedN<# __m_countO<# __m_ownerP# __m_kindQ<# __m_lockR~#pthread_mutex_tS+ Z __mutexkindY<#pthread_mutexattr_tZ pthread_once_t^<pthread_t _IO_FILE-_flags<#_IO_read_ptr <#_IO_read_end <#_IO_read_base <#_IO_write_base<# _IO_write_ptr<#(_IO_write_end<#0_IO_buf_base<#8_IO_buf_end<#@_IO_save_base<#H_IO_backup_base<#P_IO_save_end<#X_markers #`_chain #h_fileno<#p_blksize<#t_old_offset#x_cur_column"4#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:<#_unused2<" #  _IO_marker _next # _sbuf # _pos<# m B  2 B +FILE-m __FILE7m wchar_t<wint_t8Y J__wchH\ __wchbI B  K __countE<# __valueJk #__mbstate_tK    __pos # __state  #_G_fpos_t  F  # __pos !# __state " #_G_fpos64_t # 4 &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR g 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u<# __from_name w<# __to_name x<# __fct z#( __init_fct {&#0 __end_fct |8#8 __min_needed_from <#@ __max_needed_from <#D __min_needed_to <#H __max_needed_to <#L __stateful <#P __data #X __gconv_loaded_objectB<<<g __gconv_step_data8 @ __outbuf # __outbufend # __flags <# __invocation_counter <# __internal_use <# __statep # __state #( __trans #0 x__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k # <x<&<8,__gconv_fct HQ__gconv_init_fct Ko__gconv_end_fct L,__gconv_trans_fct Ux__gconv_trans_context_fct Z__gconv_trans_query_fct ^<__gconv_trans_init_fct aAG\<\__gconv_trans_end_fct b __gconv_info __nsteps # __steps # __data # __gconv_t (H 4 __cd 2# __data 3#OH 5__cd /__combined 4_G_iconv_t 5(_G_int16_t 7_G_int32_t 8<_G_uint16_t 94_G_uint32_t :Y__gnuc_va_list + _IO_jump_t_IO_lock_t>__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAm _IO_FILE_plus__io_read_fnXt<__io_write_fna__io_seek_fni<<__io_close_fnl <fpos_tP _ _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE 'exception( type <#name <#arg1 C#arg2 C#retval C# r_major"C r_minor#C e$C es%C lon_center&C lat_truesc'C false_northing(C false_easting)C cosphi1*C sinphi1+C kz,C ind- 1 ceafor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 7",++,/ $-, +Cylinderical Equal Areah㈵>G#aG' Ǹa' ceaforintMceafor, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !6x, 2 7 bE Q0=b&5n?)))Hp0*0(? `*``*+?*0?0*;*2 5   %(00?8MPRXV@^HfP  ir@|@ceafor.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kz__divdf3ceaforintsqrtcossinptitleradius2cenlonmertrue_scaleoffsetpceaforadjust_lonlog*** !*(B*0q*8**I*R*bI****X*X*(I0*@2*(BI `*Hb*Pp*@q*r*H*HI"IR2bI!q*r*I"* I#*(I$*8*0I%* "I'rI *X*8*"*@*0**@IP** IB I(` * *2 I` * I *8 *" *P *0 * *PB I% %' '''@a'@i' '''/'K' g'('0'8'@'H'P'X'__@__@ _ (_ %%'ceainv.o/ 1082129501 59100 998 100644 18520 ` ELF20@@  3~F g(!0~F` D3  @!*<~F pJ?#H803 * p"!~F(~Fx pJ?#X803* p !~F0~F p K?#h803 xJ?#p<00`8 H* p !@~F 00<03 J?#DB pJ?#`800H* p !~F 00<03 J?#DB p K?#`800H* p !~F 00<03 *p"!~F x$800HBP@!`@ `@ BH*p!~F * p"!~F 8`800` H `0X  @BP @!`@  p$0803 p$8`<00` H  H x$p800 0` H   8 0`8$ ( x$8H 00<03 @ p$80#  p$`800 p0X 0`H 8 0 P@!`@ `@ 0 P @!@@  p$`800 00X 0`0X  0 P@!`@  @  p$`800`0H  0 P@!`@ `@ `H `0X ` H B p$800P @!`@  p$0803@BP @!`@  p$0803@$H8`<00 p H 0` H `0X 0 P@!`@ @B 0 P@!`@ `@ D0LBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B@.K?# U0 $0L1  $B@)3~F ` `?#  @3 x L<~Fx p S?#H803L p!~F~Fx p`S?#90# xS?#`<00p0 0`0X xL<~Fx S?#~Fx p S?#8`<00`0X   p`8rB xS?#<B p S?#8`<00 ` H0 H@BPH!`@ `@ 0 P H!`@ L p!~F p0803 p$8`<00 ` HL 88 0 PH!`@ p@ 0J`0H 0 P H!`@ L p!~F p0803P@ xS?#<B p S?#`800 p0H 0  H x$p800 0` H 0 PH!`@ `@ 0 P H!`@ L p!~F~Fx p`S?#`80 Lp!P~F x$800H@BP H!`@  p$p800 0` H 0 H 8 0` H  0 HL p!~F 0`0H 0 PH!`@ p H 0J 00H 8 0  H 8 0` H  0 HL p!~F 8 0` H 0 PH!`@ ` H 00 H 8 0   HL p!~F 8 0` H 0 PH!`@ ` H `0 H LPH x$p800 0 ` HL 88 0 PH!`@ p@ 0J`0H 0 P H!`@ L p!~F p0803@!~F p  @"0D1H% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;)ceainv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)@ceainvint;@%r_maj5Gr_min6Gcenter_lon7Gcenter_lat8Gfalse_east9G@false_north:GHtemp __blkcnt64_t? __fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH# @ long unsigned int__fsid_tI__daddr_tL@__caddr_tM%char__time_tN~__useconds_tO<__suseconds_tP~__swblk_tQ~__clock_tR~__key_tS@__clockid_tV@__timer_tY@__ipc_pid_t\@__blksize_t_~__t_scalar_tf@__t_uscalar_tg<__intptr_tj~__socklen_tm< a__sched_paramE __sched_priorityF@# _pthread_fastlock __status~# __spinlock@# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+@# __schedpolicy,@# __schedparam-/# __inheritsched.@# __scope/@# __guardsize0# __stackaddr_set1@# __stackaddr2#( __stacksize3#0pthread_attr_t4 < __c_lock:a# __c_waiting;#pthread_cond_t<;C __dummyB@#pthread_condattr_tC pthread_key_tF<(S __m_reservedN@# __m_countO@# __m_ownerP# __m_kindQ@# __m_lockRa#pthread_mutex_tSj Z __mutexkindY@#pthread_mutexattr_tZpthread_once_t^@pthread_t _IO_FILE-_flags@#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno@#p_blksize@#t_old_offset#x_cur_column"#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:@#_unused2< # _IO_marker _next # _sbuf # _pos@# P  %   % +FILE-P __FILE7P wchar_t@wint_t8<r J__wchH? __wchbIr %  K __countE@# __valueJN #__mbstate_tK    __pos # __state  #_G_fpos_t  )  # __pos !# __state " #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR J 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u@# __from_name w# __to_name x# __fct z#( __init_fct { #0 __end_fct |#8 __min_needed_from @#@ __max_needed_from @#D __min_needed_to @#H __max_needed_to @#L __stateful @#P __data #X __gconv_loaded_object%@@@J __gconv_step_data8 @ __outbuf # __outbufend # __flags @# __invocation_counter @# __internal_use @# __statep # __state #( __trans #0 [__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# @[@ @__gconv_fct H4__gconv_init_fct KR__gconv_end_fct Lo__gconv_trans_fct U[__gconv_trans_context_fct Z__gconv_trans_query_fct ^@__gconv_trans_init_fct a$*?@?__gconv_trans_end_fct bb __gconv_info __nsteps # __steps # __data # __gconv_t h H 4 __cd 2h# __data 3#2H 5__cd /h__combined 4_G_iconv_t 5 _G_int16_t 7_G_int32_t 8@_G_uint16_t 9_G_uint32_t :<__gnuc_va_list + _IO_jump_t_IO_lock_t!__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAP _IO_FILE_plus__io_read_fnXWq__io_write_fna__io_seek_fni@@__io_close_fnl@fpos_tP B _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type @#name #arg1 G#arg2 G#retval G# r_major"G r_minor#G e$G es%G e_p4&G e_p6'G lon_center(G lat_truesc)G false_northing*G false_easting+G cosphi1,G sinphi1-G kz.G qp/G ind0~  ceainv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h :",+-++/ ++"++-++++++++"Cylinderical Equal Areah㈵>@@` ` ?*B*B?[[?U?@m-?@G# ǸaG' øa'-ceainvintQceainv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!;` ,27bEb-Q@E(b*nhG0.H.P.Pp.0G /x/+HC/0(H0s/;/68 ;  0%80@?HMPR W(\p`hcPkXs`  vceainv.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kz__divdf3ceainvintsqrtlogcossinptitleradius2cenlonmertrue_scaleoffsetpceainvasinadjust_lon***01*8R*@*H**I*b*rI!** ***(* **"*`*pq*hr**p*h**IRI"p**I*BI*8I#*P*8I$*X*` *P!*"*XB*XI!I2I%!*"*BI&Q*0bI'q*8I(*H*@I)*H *@2 *pr *P * I I+" *00 *2 *P I I,b *` * *h I I+b *p * I * * *( * b I$ * *( *( *02*8rI$*(*@*H2I$q*0r**`IBI,% %''''e'm'''''(' >'(Z'0v'8'@'H'P'X'`'h$'p'____ _(_(%%'eqconfor.o/ 1082129502 59100 998 100644 18832 ` ELF21@@ % P0B` ` x ~F<~F p`J?#H803 ) p"!~F(0~F pJ?#X803) p!~F0~F pJ?#h803 ) p"!~F80~F p K?#x803 x@J?#p<00`8 H) p !~F 00<03 @J?#DB pJ?#`800H`) p&!@~F 00<03 @J?#@B pK?#`800~F AK?#H@<00P@!`@ `@ BH`)p&!~F ) p"!~F 8`800` H `0X  @BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803`) p&!~F- K?#800x@ !BP @!H)p!~F ) p"!~F@ <00 PBP @!`@ `) p&!@~FH$ H`) p&!~F@@00 P"H00 `BP @!`@ ) p!~F ) p `8rB @J?#DB* @J?#LBpJ?#p<00 0`0H p  0`8$  0$`0 8NBP@!H@ x@J?#<BpJ?#~F.@p<B!P @!H )p"!~F`) p&!~F@ <00 PBP @!`@ ) p!~FH$ H`) p&!@~F@@00 P"H00 `BP @!`@ ) p!B~FxJ?#~FpJ?#p<00 0`0X p  0`0 @Bx$0~F p`K?#`800 @$~FxxK?#~FpK?#p<00 0 0X )p"!B`) p&!~F 8`800`0X 0 P@!`@ `@ B@@x$~F p`K?#`800 $~FK?#0~F pK?#@<00P@!`@ p@ 0B`8H DH$ H`) p&!~F@@00 P"H00 `BP @!`@  p$0803 $H8`<00p0X 0 `H ") p`8r0B 0$`0 P @!H@<00P@!~FxJ?#~FpJ?#<00 HBP @!H@BP@!0~F pJ?#800P @!H@<00P@! @ 0$`0 P @!H@<00P@!~Fx pJ?#800P @!H@BP@!~F pJ?#800P @!H@<00P@! @!  U0 `J!H-0Bc  T@!T< ~F p U?#H803`T p&!~F~Fx p`U?#90#$H@ U?#LBp U?#<00 H D00 X$800P H!`@ T p!~F ~FU?#H U?#LBpU?#p<00 0p0X 0 `H "~Fx (U?#H@T 0$p0 0`0X 0 P H!p@  p$`800`H J~Fx p@U?#p80  U?#HBW U?#LB pU?#800PH!p@ 0Jp H 0L`8H N~Fx p`U?#`80  x$p800 0  0H@Tp$!P~F`T p&!@~F@@BPH!p@ 0J` H `0X LB PHU "B% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;eqconfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)eqconforint5%r_maj,r_min-lat1.lat2/center_lon0center_lat1false_east2@false_north3Hmode4temp6Psinphi7Xcosphi7`ms18hms28pml19xml29intdoublelong intseqconfor*lon@latHxsPysXml`thetahrh1psize_tLJlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&Esigned char__uint8_t'__int16_t(vshort int__uint16_t)__int32_t*__uint32_t+__int64_t,__uint64_t-__qaddr_t.%__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDsI __valHs#  long unsigned int__fsid_tIZ__daddr_tL__caddr_tMchar__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tg__intptr_tj__socklen_tm __sched_paramE __sched_priorityF# O_pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr#}O k__pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0y# __stackaddr_set1# __stackaddr2k#( __stacksize3y#0pthread_attr_t4< __c_lock: # __c_waiting;g#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF (S __m_reservedN# __m_countO# __m_ownerPg# __m_kindQ# __m_lockR #pthread_mutex_tS  Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t O _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset`#x_cur_column"#_vtable_offset#E#_shortbuf$ #_lock( #_offset1o#__pad17k#__pad28k#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#O     +FILE- __FILE7 wchar_twint_t8 J__wchH __wchbI -  Z K __countE# __valueJ #__mbstate_tK-    __pos `# __state Z #_G_fpos_t m   # __pos !o# __state "Z #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS A__gconv_step` ? __shlib_handle rY# __modname s_# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data k#X __gconv_loaded_objectAeD9JP n__gconv_step_data8 @ __outbuf n# __outbufend n# __flags # __invocation_counter # __internal_use # __statep t# __state Z #( __trans #0Z __gconv_trans_data( B __trans_fct gV# __trans_context_fct h# __trans_end_fct i# __data jk# __next k# 9k9D9JP?9nyk99nn\kzj__gconv_fct Hj__gconv_init_fct K__gconv_end_fct L__gconv_trans_fct U9__gconv_trans_context_fct Z`\__gconv_trans_query_fct ^_P___gconv_trans_init_fct a_k__gconv_trans_end_fct b  ___gconv_info __nsteps y# __steps # __data _# v__gconv_t H 4 __cd 2# __data 3#H 5__cd /__combined 4_G_iconv_t 5_G_int16_t 7v_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list +k _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXky__io_write_fna2Lk_y__io_seek_fnia{k{o__io_close_fnlkfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE lexception( type #name #arg1 #arg2 #retval # r_major r_minor lon_center e0 e1 e2 e3 e  es  ml0! false_northing" false_easting# ns$ g% rh&  eqconfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 4%,/+,++0,+ $Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONIC|=G#aG(a+eqconforinteqconfor,0GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@0!=x ,p2p7pbEQxF(b*nHx.X..Hp /0H P/xP//HI/0`I0/;/7 <  'P6XD@G8IL O(R0U`XhZH^p  aj` v{` eqconfor.cr_majorr_minorlon_centerfalse_northingfalse_eastingesee0e1e2e3nsgml0rh__divdf3eqconforintsqrte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconforadjust_lonsincos**"*Q*Pr*X**I*@b*@rI!*8*@I"**@I#* *@I$ *("*@2I%P*0I&*8I'** *(*0RI(*@2B20RI)I&*8I'!*"* 0*(1*0rI(*0*``*`I@*`p*h*`I * *  *( *0R I(p *Hr *p * *h *H 2@ I*! *" *B I+ I, * I- I. *X *P I/ 2@2 I*A *B *b I+ I0 * I- I. *X *P I/ * * *( *02 I(q *r *h *RI2p*`*XI3R*P`*pI4% %'0'''` '` '0}''''' '('0'8)'@>'H^'P}'X'`'h'p'__` __` _0(_ %%'eqconinv.o/ 1082129502 59100 998 100644 20072 ` ELF2`5@@ % P0B` ` x ~F<~F p`J?#H803 ) p"!~F(0~F pJ?#X803) p!~F0~F pJ?#h803 ) p"!~F80~F p K?#x803 x@J?#p<00`8 H) p !~F 00<03 @J?#DB pJ?#`800H`) p&!@~F 00<03 @J?#@B pK?#`800~F AK?#H@<00P@!`@ `@ BH`)p&!~F ) p"!~F 8`800` H `0X  @BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803`) p&!~F- K?#800x@ !BP @!H)p!~F ) p"!~F@ <00 PBP @!`@ `) p&!@~FH$ H`) p&!~F@@00 P"H00 `BP @!`@ ) p!~F ) p `8rB @J?#DB* @J?#LBpJ?#p<00 0`0H p  0`8$  0$`0 8NBP@!H@ x@J?#<BpJ?#~F.@p<B!P @!H )p"!~F`) p&!~F@ <00 PBP @!`@ ) p!~FH$ H`) p&!@~F@@00 P"H00 `BP @!`@ ) p!B~FxJ?#~FpJ?#p<00 0`0X p  0`0 @Bx$0~F p`K?#`800 @$~FxxK?#~FpK?#p<00 0 0X )p"!B`) p&!~F 8`800`0X 0 P@!`@ `@ B@@x$~F p`K?#`800 $~FK?#0~F pK?#@<00P@!`@ p@ 0B`8H DH$ H`) p&!~F@@00 P"H00 `BP @!`@  p$0803 $H8`<00p0X 0 `H ") p`8r0B 0$`0 P @!H@<00P@!~FxJ?#~FpJ?#<00 HBP @!H@BP@!0~F pJ?#800P @!H@<00P@! @ 0$`0 P @!H@<00P@!~Fx pJ?#800P @!H@BP@!~F pJ?#800P @!H@<00P@! @!  U0 `J!@A0Bc  x ~F<~F p S?#H803 L p"!~F~Fx p`S?#90#L p !BH L 0"p0 0`0X xL<~F S?#H L p"!@~F 8`800 p0X 0`0H   0`  pS?#`800 p0 L @`@  HLp!@~FL p !@~F 8`800` H `0 H 0 P H!`@ L p"!~F~Fx pS?#8030@ S?#@BN S?#`D00 p0 L @`@  HLp!@~FL p !@~F 8`800` H `0 H 0 PH!`@ `0" J~F xS?#H 00<03 xS?#<B pS?#803L p !~F 0p0 x S?#DB pS?#p800L @`@  HLp!~FL p !@~F 8`800` H 0 P H!`@ L p"!~F xS?#<BN($~F pS?#@<00PH!`@ p@ 0J`8X L~FpS?#H$ H`H@<00 P D00 `$LBP H!`@ L p!~F p0803 S?#@B pS?#@<00PH!`@ p@ 0J`0H 0 P H!`@ L p"!~F p0803L p!B p`8r@B S?#@B pR!8 @! @@! @Up `R!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;eqconinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)eqconinvint5%r_maj,r_min-lat1.lat2/center_lon0center_lat1false_east2@false_north3Hmode4temp6Psinphi7Xcosphi7`ms18hms28pml19xml29intdoublelong inteqconinv)x@yHlonPlatXrh1`mlhconpthetaxflagsize_tǤlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&bsigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,__uint64_t-__qaddr_t. B__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tIw__daddr_tL__caddr_tMchar__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tg__intptr_tj__socklen_tm )__sched_paramE __sched_priorityF# l_pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr#l __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:)# __c_waiting;#pthread_cond_t< C __dummyB#pthread_condattr_tCpthread_key_tF (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR)#pthread_mutex_tS2  Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t l _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset}#x_cur_column"#_vtable_offset#b#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#l     +FILE- __FILE7 wchar_twint_t8: J__wchH __wchbI: J  w K __countE# __valueJ #__mbstate_tKJ    __pos }# __state w #_G_fpos_t    # __pos !# __state "w #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS ^__gconv_step` ? __shlib_handle rv# __modname s|# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object^aVgm __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state w #( __trans #0w #__gconv_trans_data( B __trans_fct gs# __trans_context_fct h# __trans_end_fct i# __data j# __next k# VVaVgm\V#VVy__gconv_fct H__gconv_init_fct K__gconv_end_fct L7__gconv_trans_fct UV#__gconv_trans_context_fct Z}y__gconv_trans_query_fct ^|m|__gconv_trans_init_fct a|__gconv_trans_end_fct b* |__gconv_info __nsteps # __steps # __data |# __gconv_t 0H 4 __cd 20# __data 3#H 5__cd /0__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX9__io_write_fnaOi|__io_seek_fni~__io_close_fnlfpos_tP   _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval # r_major r_minor lon_center e0 e1 e2 e3 e  es  ml0! false_northing" false_easting# ns$ g% rh& J eqconinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 4%,/+,++0,+  +,++++Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONIC|=G#aG'a+eqconinvinteqconinv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!`A ,@2@7@bEQPK(b.NnxM2X(383@px30M 3x3/ N308N04;B4`; X@  'P6XD@G8IL O(R0U`XhZH^p  aj` v{` eqconinv.cr_majorr_minorlon_centerfalse_northingfalse_eastingesee0e1e2e3nsgml0rh__divdf3eqconinvintsqrte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconinvatan2phi3zadjust_lon**"*Q*Pr*X**I*@b*@rI!*8*@I"**@I#* *@I$ *("*@2I%P*0I&*8I'** *(*0RI(*@2B20RI)I&*8I'!*"* 0*(1*0rI(*0*``*`I@*`p*h*`I * *  *( *0R I(p *Hr *p * *h *H 2@ I*! *" *B I+ I, * I- I. *X *P I/ 2@2 I*A *B *b I+ I0 * I- I. *X *P I/ *Xa *p *P *`I!I!*2I2*h*I** *(!*0bI3**`I2I4% %''''` '` '''''' '('02'8F'@['H{'P'X'`'h'p'__` __` _(_ %%'equifor.o/ 1082129502 59100 998 100644 12128 ` ELF2!@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 G?#@B pG?#`800  HBP @!H@BP @!H@BP @!H@BP @!H@<00P@!B @)0Bd  R@!M<~F p`S?#H803@M p$!~F~Fx pS?#90# @S?#`@00p0 0`0X 0 P H!`@ M p!~F~F pS?#`80 x$ ~FpS?#p<00 0   H@@BPH!`@ p H 0J`8H L~Fx pS?#80 x$ ~Fp`S?#p<00 0p H 0 `8H "B H@Up "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;(equifor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)equiforint*#r_maj% `center_lon& hlat1' pfalse_east( xfalse_north) intdoubleequiforF)lonB PlatC XxD`yEhdlonG p size_tǪlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Xlong int__int8_t&tsigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,X__uint64_t-__qaddr_t.H__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tMchar__time_tNX__useconds_tO__suseconds_tPX__swblk_tQX__clock_tRX__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_X__t_scalar_tf__t_uscalar_tg__intptr_tjX__socklen_tm ;__sched_paramE __sched_priorityF# ~_pthread_fastlock __statusX# __spinlock# _pthread_descr_struct_pthread_descr#~ __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam- # __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:;# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR;#pthread_mutex_tSDZ __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t ~ _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#t#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#~ *    +FILE-* __FILE7* wchar_twint_t8L J__wchH __wchbIL \   K __countE# __valueJ( #__mbstate_tK\    __pos # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR $ 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS p__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectpshy$ __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 5__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# hhshynh5hh__gconv_fct H__gconv_init_fct K,__gconv_end_fct LI__gconv_trans_fct Uh5__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a__gconv_trans_end_fct b< __gconv_info __nsteps # __steps # __data # __gconv_t BH 4 __cd 2B# __data 3# H 5__cd /B__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA* _IO_FILE_plus__io_read_fnX1K__io_write_fnaa{__io_seek_fni__io_close_fnlfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1  #arg2  #retval  # r_major  lon_center  lat_origin  false_northing  false_easting  C equifor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h )!/ "EQUIRECTANGULARG!afG'ak),equiforint*equifor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!*@,27bEB,Q8-8bnGnp.Hp 0. @ (@ -/m 00/0  ; ' h* )8   F@QX_ipx@`equifor.cr_majorlon_centerlat_originfalse_northingfalse_eastingequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncos* * * * 2* b2rI* I* I* I* * I* IR* `* * I* * % %''''@?'@G'' ' ' ' #' '__@_ _@ _(_ %%'equiinv.o/ 1082129502 59100 998 100644 12760 ` ELF2@#@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 G?#@B pG?#`800  HBP @!H@BP @!H@BP @!H@BP @!H@<00P@!B @10Bf  x ~F<~Fx pS?#H803O p!B~Fx p R!90# xS?#`<00p0 0`0X xO<~FxS?#~Fx pS?#8`<00`0X  ~Fx p R!P80 O p!~F@<00PH!`@ `@ J~Fx p R!80  0 p  0`0$  P$0 `XV@BPH!pH0@0$PH@@BPH!p@ 0J ` HO 88 0 PH!`@ p@ 0L`0H 0 P H!`@ O p!B p0803@Up `R!% .? : ; ' I@ : ; I $ >  I: ; I : ;  : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;4: ; I equiinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)equiinvint*#r_maj% `center_lon& hlat1' pfalse_east( xfalse_north) intdoubleequiinvF)xB pyC xlonDlatE size_tǛlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Ilong int__int8_t&esigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,I__uint64_t-__qaddr_t. 9__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI__valH#  long unsigned int__fsid_tIz__daddr_tL__caddr_tMchar__time_tNI__useconds_tO__suseconds_tPI__swblk_tQI__clock_tRI__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_I__t_scalar_tf__t_uscalar_tg__intptr_tjI__socklen_tm ,__sched_paramE__sched_priorityF# o_pthread_fastlock__statusI#__spinlock# _pthread_descr_struct_pthread_descr#o __pthread_attr_s8*__detachstate+#__schedpolicy,#__schedparam-#__inheritsched.# __scope/#__guardsize0#__stackaddr_set1# __stackaddr2#(__stacksize3#0 pthread_attr_t4<__c_lock:,#__c_waiting;#pthread_cond_t<C__dummyB#pthread_condattr_tCpthread_key_tF(S__m_reservedN#__m_countO#__m_ownerP#__m_kindQ#__m_lockR,#pthread_mutex_tS5Z__mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t o _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#e#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker_next #_sbuf #_pos#o      +FILE- __FILE7 wchar_twint_t8= J__wchH __wchbI= M  z K__countE#__valueJ #__mbstate_tKM   __pos #__state z #_G_fpos_t    #__pos !#__state "z #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS a__gconv_step` ?__shlib_handle ry#__modname s#__counter u#__from_name w#__to_name x# __fct z#(__init_fct {#0__end_fct |#8__min_needed_from #@__max_needed_from #D__min_needed_to #H__max_needed_to #L__stateful #P__data #X __gconv_loaded_objectadYjp __gconv_step_data8 @__outbuf #__outbufend #__flags #__invocation_counter #__internal_use #__statep # __state z #(__trans #0z &__gconv_trans_data( B__trans_fct gv#__trans_context_fct h#__trans_end_fct i#__data j#__next k# YYdYjp_Y&YY|__gconv_fct H__gconv_init_fct K__gconv_end_fct L:__gconv_trans_fct UY&__gconv_trans_context_fct Z|__gconv_trans_query_fct ^p__gconv_trans_init_fct a  __gconv_trans_end_fct b- __gconv_info __nsteps #__steps #__data # __gconv_t 3H 4__cd 23#__data 3#H 5__cd /3__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX"<__io_write_fnaRl__io_seek_fni__io_close_fnlfpos_tP   _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1  #arg2  #retval  # r_major  lon_center  lat_origin  false_northing  false_easting  c equiinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h )!/ !+++EQUIRECTANGULARInput data errorequi-invG!afG'a-DT!?)equiinvint*equiinv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!,,27bERQ/8bogn0 8!@pP!01 !!(!-1!010!; "@) @, )8   F@QX_ipx@pequiinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingequiinvintptitleradiuscenlonmeroriginoffsetp__divdf3equiinvp_errorcosadjust_lon****2* b2rI*I*I*I* *I* 2**I* @2B2(RIp*q*r*IIRI% %''''@?'@G'''''' '__@_ _@ _(_ %%'gnomfor.o/ 1082129502 59100 998 100644 13664 ` ELF2&@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 p!~F@PH!P @!@H HBP @! 0  0 P@!~Fx pG?#800P@!~F pG?#800P @!H@<00P@!B @50Bb  R@!K<~F pR?#H803 K p"!~F ~F p S?#90# xR?#`<00p0 0`0X 0 P H!`@ K p!~F~FpR?#~FN@<B !PH!~F p@S?#800P H!`@ @K p$!@~F~FxS?#H K p"!~F 8`800  H R?#HBpS?#p<00 0 p HK p!@~F 0` H `0 H  ~F pS?#`800`0  P$0 `XV@BPH!(H@ R?#DBO R?#HBpS?# H@BPH!`@ `@ J~Fx pS?#`80 x$~FpS?#p<00 0 p H K p"!~F 0   H@K p$!~F@@BPH!`@ p H 0J`8H L~Fx p S?#80 x$ ~FpS?#p<00 0  H R?#HBp`S?#p<00 0  H R?#HBpS?#p<00 0 p HK p!@~F 0` H `0 X p$ H 0 `8H "R!@Up "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;gnomfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)gnomforint1#r,#`center_long-#hcenter_lat.#pfalse_east/#xfalse_north0#intdoublegnomforL)lonG#latH#xI@yJHdlonM#PsinphiN#XcosphiN#`coslonO#hgP#pkspQ#x#size_tlong unsigned int__u_char !unsigned char__u_short!Cshort unsigned int__u_int"hunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t'!__int16_t(short int__uint16_t)C__int32_t*__uint32_t+h__int64_t,__uint64_t-__qaddr_t.m__dev_t0J__uid_t1'__gid_t2'__ino_t3J__ino64_t4J__mode_t5'__nlink_t6J__off_t79__off64_t89__loff_t99__pid_t:__ssize_t;9__rlim_t9__blkcnt64_t?9__fsblkcnt_t@J__fsblkcnt64_tAJ__fsfilcnt_tBJ__fsfilcnt64_tCJ__id_tD'I __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tMKQchar__time_tN__useconds_tOh__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgh__intptr_tj__socklen_tmh __sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-[# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t46< __c_lock:# __c_waiting;#pthread_cond_t<gC __dummyB#pthread_condattr_tCLpthread_key_tFh (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR#pthread_mutex_tS: Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr K#_IO_read_end K#_IO_read_base K#_IO_write_baseK# _IO_write_ptrK#(_IO_write_endK#0_IO_buf_baseK#8_IO_buf_endK#@_IO_save_baseK#H_IO_backup_baseK#P_IO_save_endK#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"C#_vtable_offset##_shortbuf$ #_lock(/ #_offset1#__pad17#__pad28#_mode:#_unused2<1 #  _IO_marker _next # _sbuf # _pos# | / Q  A Q +FILE-| __FILE7| wchar_twint_t8h J__wchHk __wchbI Q  K __countE# __valueJz #__mbstate_tK    __pos # __state  #_G_fpos_t  U  # __pos !# __state " #_G_fpos64_t #* C &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR v 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name wK# __to_name xK# __fct z#( __init_fct {5#0 __end_fct |G#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectQ$v* __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0! __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# $!5%G;__gconv_fct H`__gconv_init_fct K~%__gconv_end_fct L;__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^ &&,__gconv_trans_init_fct aPVkk__gconv_trans_end_fct b __gconv_info __nsteps # __steps # __data # *__gconv_t 7H 4 __cd 2# __data 3*#^H 5__cd /__combined 4_G_iconv_t 57_G_int16_t 7_G_int32_t 8_G_uint16_t 9C_G_uint32_t :h__gnuc_va_list + _IO_jump_t_IO_lock_tM__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA| _IO_FILE_plus__io_read_fnX K__io_write_fna __io_seek_fni__io_close_fnl(fpos_tP n _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE 6exception( type #name K#arg1 ##arg2 ##retval ## lon_center"# R## sin_p13$# cos_p13%# false_easting&# false_northing'#  gnomfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 0 +!,  +.GNOMONICPoint projects into infinitygnomfor-convG!auG'a)gnomforint-gnomfor,0GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@0! 0,p2p7pbE Q 3Pb`!np4 $@`$Hp$04 $0$-5%0050 5%;p%H,0 x/   &(5=  EPX_fmt|gnomfor.cRlon_centerfalse_eastingfalse_northingsin_p13cos_p13gnomforinttsincosptitleradiuscenloncenlatoffsetp__divdf3gnomforadjust_loncosp_errorsin*** *(Q*R*bIq2III"I1* 2*(RI*bIII1*b*02220BI I* *bI!*(**B*% %'0'''B'J'0''-'F'e' '('___ _ _0(_ %%'gnominv.o/ 1082129502 59100 998 100644 15744 ` ELF2X,@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !~F 00<03 G?#@B pF!`800~Fx pG?#8000$BP @!@H HBP @! 0  0 P@!~Fx pG?#800P@!~F pG?#800P @!H@<00P@!B H90Bb  T@!S<~F pT?#H803S p!~F~F p U?#90# xT?#`<00p0 0`0X xS<~FT?#~Fx pT?#8`<00`0X  S 0  p0 S @`@  HSp!~FS p !~F 8`800` H `0 H 0 P H!`@ S p!~F~F p@U?#@<00PH!`@ `@ 0 P H!`@ S p!~F~Fp`U?#~FV@<B !PH!~Fx pU?#80  00<03S p !~F 0 p  0`8 ( xT?#<B p U?#80  00<03@ T?#@B pU?#8`<00   HSp!~FS p !~F 8`800 p H 0 ` HS p!~F0 H@BPH!`@ `@ `0H 0 P H!`@ S p !@~F p0803Sp!~F 0 p  0`0X ~F pU?#`800 p  0`8  p$`800` B pT?#p800`8 `0"S p!~F0 H@BP H!p@  p$`800`8X 0 P H!`@ S p !~F p0803@ xT?#<B pT?#`800 `0"S 8 8 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p0803@ T?#@BW xT?#<BV($~F p U?#80 @@BPH!p@ 0Jp H 0L`8X N~Fx pU?#`800 p  0`8$ @ T?#p@00`8 p  0`8$  @!p@ xT?#<B pU?#S 0 p0 0 p H 0  HSp!~FS p !~F 8`800` H 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p0803T!HU "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;gnominv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)gnominvint2#r-#`center_long.#hcenter_lat/#pfalse_east0#xfalse_north1#intdoublegnominvN*xI#yJ#lonK@latLHrhO#PzP#XsinzP#`coszP#hconQ#p#size_tlong unsigned int__u_char unsigned char__u_short!,short unsigned int__u_int"Qunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t' __int16_t(short int__uint16_t),__int32_t*__uint32_t+Q__int64_t,__uint64_t-__qaddr_t.V__dev_t03__uid_t1__gid_t2__ino_t33__ino64_t43__mode_t5__nlink_t63__off_t7"__off64_t8"__loff_t9"__pid_t:__ssize_t;"__rlim_t<3__rlim64_t=3__blkcnt_t>"__blkcnt64_t?"__fsblkcnt_t@3__fsblkcnt64_tA3__fsfilcnt_tB3__fsfilcnt64_tC3__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM4:char__time_tN__useconds_tOQ__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgQ__intptr_tj__socklen_tmQ v__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-D# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:v# __c_waiting;#pthread_cond_t<PC __dummyB#pthread_condattr_tC5pthread_key_tFQ(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRv#pthread_mutex_tS# Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr 4#_IO_read_end 4#_IO_read_base 4#_IO_write_base4# _IO_write_ptr4#(_IO_write_end4#0_IO_buf_base4#8_IO_buf_end4#@_IO_save_base4#H_IO_backup_base4#P_IO_save_end4#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column",#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# e  :  * : +FILE-e __FILE7e wchar_twint_t8Q J__wchHT __wchbI :  K __countE# __valueJc #__mbstate_tK    __pos # __state  #_G_fpos_t  >  # __pos !# __state " #_G_fpos64_t # , &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR _ 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w4# __to_name x4# __fct z#( __init_fct {#0 __end_fct |0#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object: _ __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0  p__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k#   p0$__gconv_fct HI__gconv_init_fct Kg__gconv_end_fct L$__gconv_trans_fct Up__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a9?TT__gconv_trans_end_fct bw __gconv_info __nsteps # __steps # __data # __gconv_t } H 4 __cd 2}# __data 3#GH 5__cd /}__combined 4_G_iconv_t 5 _G_int16_t 7_G_int32_t 8_G_uint16_t 9,_G_uint32_t :Q__gnuc_va_list + _IO_jump_t_IO_lock_t6__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAe _IO_FILE_plus__io_read_fnXl 4__io_write_fna __io_seek_fni__io_close_fnlfpos_tP W _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name 4#arg1 ##arg2 ##retval ## lon_center"# lat_center## R$# sin_p13%# cos_p13&# false_easting'# false_northing(# N gnominv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 1 !, %++,+++z++ GNOMONICG!a{G(a|=-DT!?)gnominvint-gnominv, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !6, 2 7 bE"Q(;hb&Rn<**Hp`*0< **8*-8=*0P=0*;8+X2 5  #(10@H   P[cjqx gnominv.cRlon_centerlat_centerfalse_eastingfalse_northingsin_p13cos_p13gnominvinttsincosptitleradiuscenloncenlatoffsetp__divdf3gnominvsqrtatanasinzatan2adjust_lonsin****(2*0r** I2IIIBIQ*(R*0rI"*(*0I *I2I!I**B*** 2II"**2*p*I# *B I$ I# *B I$ * I%R * *R * I# *" I$% %' '''B'J' '''2'K' j'('0'____ _ (_ %%'goodfor.o/ 1082129502 59100 998 100644 19864 ` ELF28@@00Bg   F 0F0803 x 00<03 p8B x ! 00<03 p8B x@! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x ! 00<03 p8B x@! 00<03 p8B x`! 00<03 x 8 0` H  p8B x ! 8 0` H  p8B x@! 8 0` H  p8B x`! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  p8B x ! 8 0` H  p8B x@! 8 0` H  p8B x`! 8 0` H  HBP @!00!P@!B H50Bb  T@!S<~F pT?#H803 S p"!~F~Fx p U?#90#S p !~F 8 0`0 ` T?#`D00 p0  0`8 @B xT?#<BW p$p<0#@ T?#@B pU?#80#@ T?#DB pT?#`800` ` pT?#`800 p0  0`8 @B xT?#<BW p $p<0#@ T?#@BW p$p<0#@ T?#DB pT?#p800 0`0  pT?#`800 p0  0`8  xT?#<BW p$p<0#@ T?#`@00 p0  0`8  xT?#<BW p$p<0#`@ T?#`@00 p0  0`8 @B xT?#<BW p$$p<0#@ T?#@BW p $p<0#@ T?#`D00 p0  0`8  xT?#<BW p$p<0#0@ T?#`@00 p0  0`8  xT?#<BW p$p<0#@ T?#`@00 p0  0`8  xT?#<BW p($p<0#0@ T?#@BW p,$p<0# T?#DB pU?#80 09B xT?#<B pU?#80 0 9B T?#@B pU?#80 09B T?#DB pU?#80 09pB xT?#<B pU?#80 0 9@B T?#@B pU?#80 0$!0@ x$<0 S p"!~F pp$@ p< S 0p0 0`0X 0 P H!`@ S p!~F~F pU?#`80 x~F pU?#80  p8 Pz8@ T?#@Bp@U?#p<00 0   H S p"!~F@@BPH!`@ p H 0J`8H L~Fx p U?#80  T?#DBpT?#p<00 0` H  @ x$<0 S p !~F pp$@ p<  S 0"p0 0`0X 0 P H!`@ S p!~F~Fx`U?#~F pT?#`800~Fx(U?#~F pT?#800P H!p@  p$`800` H J~F pU?#80# xT?#<BV T?#@BU T?#DB p`U?#800PH!p@ 0J p0HS p!@~F 0`0X  0"S p !~F@@BPH!`@ `H  0 PH!`@ `@ L~F`U?#~Fxx`U?#~FpU?#p<00 0`0H  ~Fx pU?#`800 p  0`8$ B T?#@B pU?#80 81@B X$0 `X@BPH!H@ T?#DBpU?#~FxxU?#~F pU?#80  p!p<0#@H T?#DBU xT?#<B p`U?#@<00PH!`@ `@ J~F pT?#`800 p  0 p8X 0`8$  T?#DB p@U?#803 xT?#<B pU?#`80 x~F pU?#80  p8 Pz8@ 8 0 p H S p"!~F 0   HS p!~F@@BPH!`@ p H 0J`8H L~F pT?#800PH!P B S p"!@~F8`HS p!~F@@BP H!p@  p$`800  H(Y 88`88 pH 0` H p0 X 0L`H N @! T!HU "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;goodfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)goodforint*#r)intdoublegoodfor[*lonWlatXxY@yZHdelta_lon\Ptheta]Xdelta_theta^`constant_hi`pregionaxlong intsize_tlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int",unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&~signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+,__int64_t,__uint64_t-__qaddr_t.%^__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM char__time_tN__useconds_tO,__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tg,__intptr_tj__socklen_tm, E__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:E# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF,(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRE#pthread_mutex_tSNZ __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#~#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# 4    +FILE-4 __FILE74 wchar_twint_t8,V J__wchH# __wchbIV f   K __countE# __valueJ2 #__mbstate_tKf    __pos # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR . 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS z__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectz }r. __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 ?__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# rr}rxr?rr__gconv_fct H__gconv_init_fct K6__gconv_end_fct LS__gconv_trans_fct Ur?__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a##__gconv_trans_end_fct bF __gconv_info __nsteps # __steps # __data # __gconv_t LH 4 __cd 2L# __data 3#H 5__cd /L__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :,__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA4 _IO_FILE_plus__io_read_fnX;U__io_write_fnak__io_seek_fni__io_close_fnlfpos_tP & _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval # R"    lon_center# feast$  goodfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h ).!++++++++++++!++,++,++,++,++,++,++,++,++,++,++,++/+  +++++++,+!+x +#+GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forwardɠ]h-8R?_ xAh   ```  @)07@@0HSW[cgoodfor.cRlon_centerfeastgoodforintptitleradius__divdf3goodforadjust_loncossinp_errorsign"* 22B*R2r*2*2*2*22*B2b*r2*2* 2*(2"* 22R*(b2`r* *2`* *2`2* B*r2`* *2`* *22`R* b*2`* *2`* "*R2`r* * 2`* *(2`2* B* r2`* *(2II*0"*8 *8 *@ *H *P *X *HB *P *Xp2IB2`r* I2* 2"II*`RII2I*hP2 R2@bI*p"Ir*x*h2`2* B*I"IQ* rI**% %'p'''@'@'p' ''`'__@_ _@ _p(_ %%'goodinv.o/ 1082129502 59100 998 100644 25088 ` ELF2HI@@00Bg   F 0F0803 x 00<03 p8B x ! 00<03 p8B x@! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x ! 00<03 p8B x@! 00<03 p8B x`! 00<03 x 8 0` H  p8B x ! 8 0` H  p8B x@! 8 0` H  p8B x`! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  p8B x ! 8 0` H  p8B x@! 8 0` H  p8B x`! 8 0` H  HBP @!00!P@!B H50Bc  T@!T<~F p U?#H803 T p"!~F~Fx p`U?#90#Tp !@~F 8 0p H 0`8 p p$p800 0 p H T @"`@ `0 @B xU?#<BW p$p<0#@ U?#@B pU?#80#@ U?#DB p U?#`800` p p$p800 0 p HT @`@ `0 @B xU?#<BW p $p<0#@ U?#@BW p$p<0#@ U?#DBT p$p800 0p H 0`8  p$p800 0 p HT @`@ `0  xU?#<BW p$p<0#@ p$p800 0 p HT @ `@ `0  xU?#<BW p$p<0#@ p$p800 0 p HT @ `@ `0 @B xU?#<BW p$$p<0#@@ U?#@BW p $p<0#@ p$p800 0 p H T @"`@ `0  xU?#<BW p$p<0#p@ p$p800 0 p HT @ `@ `0  xU?#<BW p$p<0#@ p$p800 0 p HT @ `@ `0  xU?#<BW p($p<0#0@ U?#@BW p,$p<0# x$<0 T p"!~F pp$@ p< T 0p0 0`0X xT<~F pU?#80 09B U?#DB pU?#80 0 9B xU?#<B pU?#80 09B U?#@B pU?#80 09pB U?#DB pU?#80 0 9@B xU?#<B pU?#80 0$!@ U?#@B p`U?#P80 T p"!@~F@<00PH!`@ `@ J~Fx p`U?#80  0 p  0`0$  X$0 `X@BPH!H@@ U?#@BW U?#DB p`U?#80  0 p  0`0X ~Fx pU?#`800 p  0`0$ B U?#@B p@U?#80 x~F pU?#80  p8 x8@ 00@03 @ xU?#<BW x$<0 T p !~F pp$@0= PH T p"!~F p800PH!p@ 0J ` HT 88 0 PH!`@ p@ 0L`8H N~Fx pU?#800P H!`@ T p !~F p0803@ U?#DBV xU?#<B p U?#800PH! BTp !A~F 8 0 p HxX @8`@8 `H p H 0  0H 8 0` H 0 PH!`@ `@ J~Fx pU?#`800` `$  @'@ U?#@B pU?#800P H!`@ T p"!@~F~Fx p@U?#`80 x~F pU?#80  p8 Pz8@ 8 0   H T p"!@~F@@BPH!`@ ` HT 88 0 PH!`@ p@ 0J`8H L~Fx p@U?#80  8 0`8$  @'@ U?#@BV U?#DB pU?#`800  0HT p!@~F 0`0H 0 PH!`@ `0H0 H@BPH!`@ `@ J~F pU?#`800` `$  @'P@ U?#DB pU?#800P H!`@ T p!~F p0803 U?#p@00`8 `0$ @ xU?#<B p@U?#80 8`<00 p0X 0`8$ B U?#p@00`8 `$ x xU?#<B p@U?#80  8 0 p0H 0`8$ 8 U?#@B p@U?#80 T p"!~F p`800`0"  xU?#<B pU?#80 89B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 89B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 89B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 8 9B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 89B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 89B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 89B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 89B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 8 9B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 8$9B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 8(9B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @ xU?#<B pU?#80 8,9B U?#@B p@U?#80  8 0`8$ pB U?#DB p@U?#80  8 0`0$  @' @@! T!HU "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;goodinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)goodinvint)#r(intdoublergoodinvZ*xV@yWHlonXrPlatYrXarg[`theta\htemp]pregion^xxlong intsize_tǒlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%x__int8_t&Psigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,x__uint64_t-__qaddr_t.0__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tD~I __valH~#  long unsigned int__fsid_tIe__daddr_tL__caddr_tMchar__time_tNx__useconds_tO__suseconds_tPx__swblk_tQx__clock_tRx__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_x__t_scalar_tf__t_uscalar_tg__intptr_tjx__socklen_tm __sched_paramE __sched_priorityF# Z_pthread_fastlock __statusx# __spinlock# _pthread_descr_struct_pthread_descr#Z v__pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2v#( __stacksize3#0pthread_attr_t4< __c_lock:# __c_waiting;r#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF(S __m_reservedN# __m_countO# __m_ownerPr# __m_kindQ# __m_lockR#pthread_mutex_tS Z __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t Z _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offsetk#x_cur_column"#_vtable_offset#P#_shortbuf$ #_lock( #_offset1z#__pad17v#__pad28v#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#Z     +FILE- __FILE7 wchar_twint_t8( J__wchH __wchbI( 8  e K __countE# __valueJ #__mbstate_tK8    __pos k# __state e #_G_fpos_t x   # __pos !z# __state "e #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS L__gconv_step` ? __shlib_handle rd# __modname sj# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data v#X __gconv_loaded_objectLpODU[ y__gconv_step_data8 @ __outbuf y# __outbufend y# __flags # __invocation_counter # __internal_use # __statep # __state e #( __trans #0e __gconv_trans_data( B __trans_fct ga# __trans_context_fct h# __trans_end_fct i# __data jv# __next k# DvDODU[JDyvDDyygvu__gconv_fct Hu__gconv_init_fct K__gconv_end_fct L%__gconv_trans_fct UD__gconv_trans_context_fct Zkg__gconv_trans_query_fct ^j[j__gconv_trans_init_fct ajv__gconv_trans_end_fct b j__gconv_info __nsteps # __steps # __data j# __gconv_t H 4 __cd 2# __data 3#H 5__cd /__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list +v _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX 'v__io_write_fna=Wvj__io_seek_fnilvz__io_close_fnlvfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE wexception( type #name #arg1 #arg2 #retval # R!    lon_center" feast#  goodinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h (.!++++++++++++!++,++,++,++,++,++,++,++,++,++,++,++/+ %++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++GOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverseɠ]h-8R?_ 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;gvnspfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)*gvnspforint5*$r/1`h01hcenter_long11pcenter_lat21xfalse_east31false_north41intdoublegvnspforS*)lonN1latO1xP@yQHdlonT1PsinphiU1XcosphiU1`coslonV1hgW1pkspX1x1size_t long unsigned int__u_char 0unsigned char__u_short!Rshort unsigned int__u_int"wunsigned int__u_long# __u_quad_t$ __quad_t%long int__int8_t&signed char__uint8_t'0__int16_t(short int__uint16_t)R__int32_t**__uint32_t+w__int64_t,__uint64_t- __qaddr_t.|__dev_t0Y__uid_t16__gid_t26__ino_t3Y__ino64_t4Y__mode_t56__nlink_t6Y__off_t7H__off64_t8H__loff_t9H__pid_t:%__ssize_t;H__rlim_tH__blkcnt64_t?H__fsblkcnt_t@Y__fsblkcnt64_tAY__fsfilcnt_tBY__fsfilcnt64_tCY__id_tD6I __valH# * long unsigned int__fsid_tI__daddr_tL*__caddr_tMZ`char__time_tN__useconds_tOw__suseconds_tP__swblk_tQ__clock_tR__key_tS*__clockid_tV*__timer_tY*__ipc_pid_t\*__blksize_t___t_scalar_tf*__t_uscalar_tgw__intptr_tj__socklen_tmw __sched_paramE __sched_priorityF*# _pthread_fastlock __status# __spinlock*# _pthread_descr_struct_pthread_descr#  __pthread_attr_s8* __detachstate+*# __schedpolicy,*# __schedparam-j# __inheritsched.*# __scope/*# __guardsize0# __stackaddr_set1*# __stackaddr2#( __stacksize3#0pthread_attr_t4E< __c_lock:# __c_waiting;#pthread_cond_t<vC __dummyB*#pthread_condattr_tC[pthread_key_tFw (S __m_reservedN*# __m_countO*# __m_ownerP# __m_kindQ*# __m_lockR#pthread_mutex_tSI Z __mutexkindY*#pthread_mutexattr_tZ* pthread_once_t^*pthread_t  _IO_FILE-_flags*#_IO_read_ptr Z#_IO_read_end Z#_IO_read_base Z#_IO_write_baseZ# _IO_write_ptrZ#(_IO_write_endZ#0_IO_buf_baseZ#8_IO_buf_endZ#@_IO_save_baseZ#H_IO_backup_baseZ#P_IO_save_endZ#X_markers" #`_chain( #h_fileno*#p_blksize*#t_old_offset#x_cur_column"R#_vtable_offset##_shortbuf$. #_lock(> #_offset1#__pad17#__pad28#_mode:*#_unused2<@ # " _IO_marker _next" # _sbuf( # _pos*#  > `  P ` +FILE- __FILE7 wchar_t*wint_t8w J__wchHz __wchbI `  K __countE*# __valueJ #__mbstate_tK (   __pos # __state  #_G_fpos_t  d  # __pos !# __state " #_G_fpos64_t #9 R &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u*# __from_name wZ# __to_name xZ# __fct z.#( __init_fct {D#0 __end_fct |V#8 __min_needed_from *#@ __max_needed_from *#D __min_needed_to *#H __max_needed_to *#L __stateful *#P __data #X __gconv_loaded_object`-*-3**9 __gconv_step_data8 @ __outbuf # __outbufend # __flags *# __invocation_counter *# __internal_use *# __statep # __state #( __trans (#00 __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i"# __data j# __next k(# *-30*" D*-4V-J__gconv_fct Ho__gconv_init_fct K4__gconv_end_fct LJ__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^5*5;__gconv_trans_init_fct a_ez*z__gconv_trans_end_fct b __gconv_info __nsteps # __steps -# __data # 9__gconv_t FH 4 __cd 2# __data 39#mH 5__cd /__combined 4_G_iconv_t 5F_G_int16_t 7_G_int32_t 8*_G_uint16_t 9R_G_uint32_t :w__gnuc_va_list + _IO_jump_t_IO_lock_t\__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX/Z__io_write_fna/__io_seek_fni * *__io_close_fnl'7*fpos_tP( } _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE Eexception( type *#name Z#arg1 1#arg2 1#retval 1# lon_center$1 R%1 p&1 sin_p15'1 cos_p15(1 false_easting)1 false_northing*1  gvnspfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 4 +!,  +-GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-forG"aG'a+gvnspforint;gvnspfor, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !@2, 2 7 bE" Q6hb"n7%@&Hp&07 &8&/(8&0@80 ';R'(.` 1 ()08@   HQ@]elsz@@gvnspfor.cRplon_centerfalse_eastingfalse_northingsin_p15cos_p15__divdf3gvnspforinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspforadjust_loncosp_errorsin***IA*b*(*0** I2IBIb2(rIII*(*0I*I rII!** *I02X22xBI"p**I"*(0*I#*0 *R* *% %' '''@Q'@Y' '#'6'O'h' '('0'__@__@ _ (_ %%'gvnspinv.o/ 1082129502 59100 998 100644 17832 ` ELF2x2@@! @0Be @ x ~F<~F pI?#H803& p!~F(~F pI?#X803& p!B0~F p H!h803 xI?#p<00`8 H& p!@~F@<00P@!`@ `@ `H BH& p !~F 00<03 I?#@B pI?#`800H& p !B 00<03 I?#@B p H!`800~Fx pI?#8008$BP @!PH(JBP @!& 0  0 P@!~Fx pI?#8000LBP@!~F pI?#800P@!~Fx pI?#800P @!H@<00P@!B0 H93~F@` `?#  @3 x Q<~F p`T?#H803Q p!~F~F pT?#90# x@T?#`<00p0 0`0X xQ<~F`T?#~Fx p`T?#8`<00`0X  Q 0  p0 Q @`@  HQp!~FQ p !~F 8`800` H `0 H 0 P H!`@ Q p!~F~F(T?#~Fx pT?#@<00PH!`@ `@ J~F xU?#H 0`X ~Fx x U?#H 0`H ~F(T?#~FxxU?#~Fp U?#<00 H@BPH!`@ `@ 0 PH!p@ 0J`8$  X$0 `X@BPH!H @ x@T?#<BU($~FxT?#~FpT?#p<00 0 p HQ p!@~F 0 ` HQ p !~F0 H@BPH!`@ `@ `0X 0 PH!p@ 0J 08XQp!~FQ p !~F @800PH!`@  @ Qp!~FQ p !~F @800PH!`@ `@ `0H  0 PH!`@ `@ L~Fx p`U?#800P H!`@ Q p !~F~Fxp@U?#~FV@<B !PH!~F pT?#80  00<03Q p!~F 0 p  0`8 ( @T?#@B pT?#80  00<03@ x@T?#<B pU?#8`<00   HQp !~FQ p !~F 8`800 p H 0 ` HQ p!~F0 H@BPH!`@ `@ `0H 0 P H!`@ Q p !@~F p0803Qp!~F 0 p  0`0X ~F pU?#`800 p  0`8  p$`800` B p@T?#p800`8 `0"Q p!~F0 H@BP H!p@  p$`800`8X 0 P H!`@ Q p !~F p0803@ x@T?#<B p`T?#`800 `0"Q 8 8 0 P H!p@  p$`800`0H 0 P H!`@ Q p!~F p0803@ @T?#@BT x@T?#<BV($~F pT?#80 @@BPH!p@ 0Jp H 0L`8X N~Fx pU?#`800 p  0`8$ @ @T?#p@00`8 p  0`8$  @!p@ x@T?#<B p`U?#Q 0 p0 0 p H 0  HQp!~FQ p !~F 8`800` H 0 P H!p@  p$`800`0H 0 P H!`@ Q p!~F p0803U?#HU  @"0D1P% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;gvnspinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)*gvnspinvint4*$r.1`h/1hcenter_long01pcenter_lat11xfalse_east21false_north31intdoublegvnspinvS**xN1yO1lonPlatQrhT1rU1conV1@comW1HzX1PsinzX1XcoszX1`1size_tlong unsigned int__u_char 7unsigned char__u_short!Yshort unsigned int__u_int"~unsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t'7__int16_t( short int__uint16_t)Y__int32_t**__uint32_t+~__int64_t,__uint64_t-__qaddr_t.__dev_t0`__uid_t1=__gid_t2=__ino_t3`__ino64_t4`__mode_t5=__nlink_t6`__off_t7O__off64_t8O__loff_t9O__pid_t:,__ssize_t;O__rlim_t<`__rlim64_t=`__blkcnt_t>O__blkcnt64_t?O__fsblkcnt_t@`__fsblkcnt64_tA`__fsfilcnt_tB`__fsfilcnt64_tC`__id_tD= I __valH # * long unsigned int__fsid_tI__daddr_tL*__caddr_tMagchar__time_tN__useconds_tO~__suseconds_tP__swblk_tQ__clock_tR__key_tS*__clockid_tV*__timer_tY*__ipc_pid_t\*__blksize_t___t_scalar_tf*__t_uscalar_tg~__intptr_tj__socklen_tm~ __sched_paramE __sched_priorityF*# _pthread_fastlock __status# __spinlock*# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+*# __schedpolicy,*# __schedparam-q# __inheritsched.*# __scope/*# __guardsize0# __stackaddr_set1*# __stackaddr2#( __stacksize3#0pthread_attr_t4L< __c_lock:# __c_waiting;#pthread_cond_t<}C __dummyB*#pthread_condattr_tCbpthread_key_tF~ (S __m_reservedN*# __m_countO*# __m_ownerP# __m_kindQ*# __m_lockR#pthread_mutex_tSP Z __mutexkindY*#pthread_mutexattr_tZ1 pthread_once_t^*pthread_t _IO_FILE-_flags*#_IO_read_ptr a#_IO_read_end a#_IO_read_base a#_IO_write_basea# _IO_write_ptra#(_IO_write_enda#0_IO_buf_basea#8_IO_buf_enda#@_IO_save_basea#H_IO_backup_basea#P_IO_save_enda#X_markers) #`_chain/ #h_fileno*#p_blksize*#t_old_offset#x_cur_column"Y#_vtable_offset##_shortbuf$5 #_lock(E #_offset1#__pad17#__pad28#_mode:*#_unused2<G # ) _IO_marker _next) # _sbuf/ # _pos*#  E g  W g +FILE- __FILE7 wchar_t*wint_t8~ J__wchH __wchbI g  K __countE*# __valueJ #__mbstate_tK /   __pos # __state  #_G_fpos_t  k  # __pos !# __state " #_G_fpos64_t #@ Y &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u*# __from_name wa# __to_name xa# __fct z5#( __init_fct {K#0 __end_fct |]#8 __min_needed_from *#@ __max_needed_from *#D __min_needed_to *#H __max_needed_to *#L __stateful *#P __data #X __gconv_loaded_objectg4*4:**@ __gconv_step_data8 @ __outbuf # __outbufend # __flags *# __invocation_counter *# __internal_use *# __statep # __state #( __trans /#07 __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i)# __data j# __next k/# *4:7*)K*4;]4Q__gconv_fct Hv__gconv_init_fct K;__gconv_end_fct LQ__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^"<*<B__gconv_trans_init_fct afl*__gconv_trans_end_fct b __gconv_info __nsteps # __steps 4# __data # @__gconv_t MH 4 __cd 2# __data 3@#tH 5__cd /__combined 4$_G_iconv_t 5M_G_int16_t 7 _G_int32_t 8*_G_uint16_t 9Y_G_uint32_t :~__gnuc_va_list + _IO_jump_t_IO_lock_tc__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX6a__io_write_fna6__io_seek_fni**__io_close_fnl.>*fpos_tP/  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE Lexception( type *#name a#arg1 1#arg2 1#retval 1# lon_center"1 lat_center#1 R$1 p%1 sin_p15&1 cos_p15'1 false_easting(1 false_northing)1  gvnspinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 3 !, ++ ++,+++z++GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-forG"aG( øa|=-DT!?+gvnspinvint;gvnspinv,PGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@P!=0,27bEQ8Cb+nD/80Hp00D 00@0/`E00xE01;Z1x8 8< &048C K(  S\`hpw~`gvnspinv.cRplon_centerlat_centerfalse_eastingfalse_northingsin_p15cos_p15__divdf3gvnspinvinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspinvsqrtp_errorasinzatan2adjust_lonsin***IA*b**0*8* *(I2"IbI2(III*0*8"I *0b*8RI"*I*A*II"@2XB2pRI#*"IrI"IB I I I$R Ir * * *B * *( IB I$ * * *0 * I% *I&I%*I&p* I'*r**(I%*I&% %'P'''`Q'`Y'P'3'F'Y'r' '('0'8'__`__` _P(_ %%'hamfor.o/ 1082129502 59100 998 100644 12904 ` ELF2H$@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B H-3~F@` `?#  @3 x T<~Fx p U?#H803T p!~F~Fx p`U?#90# xU?#`<00p0 0`0X 0 P H!`@ T p!~F~Fx (U?#H 8 0 0 HT p!@~F@@BP H! @ T p!~F@<00PH!`@ `@ 0 PH!`@ ` H `H 0 PH!`@  0 PH!`@ `@ J~Fx p@U?#`80  xU?#<B pU?#`800  0HT p!@~F@@BPH!`@   HT p!~F@<00PH!`@ `@ 0 PH!`@ p H 0J`8H L~Fx p`U?#p80  xU?#<BV xU?#<B p U?#800PH!p@ 0Jp H 0L`8H NB WHU  @"0D1P% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;hamfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)hamforint.#r* pcenter_long+ xfalse_east, false_north- intdoublehamforH*lonC @latD HxEPyFXdlonI `facJ h size_tǣlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Qlong int__int8_t&msigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,Q__uint64_t-__qaddr_t.A__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tMchar__time_tNQ__useconds_tO__suseconds_tPQ__swblk_tQQ__clock_tRQ__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_Q__t_scalar_tf__t_uscalar_tg__intptr_tjQ__socklen_tm 4__sched_paramE __sched_priorityF# w_pthread_fastlock __statusQ# __spinlock# _pthread_descr_struct_pthread_descr#w __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:4# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR4#pthread_mutex_tS=Z __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t w _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#m#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#w #    +FILE-# __FILE7# wchar_twint_t8E J__wchH __wchbIE U   K __countE# __valueJ! #__mbstate_tKU    __pos # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS i__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectilarx __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 .__gconv_trans_data( B __trans_fct g~# __trans_context_fct h# __trans_end_fct i# __data j# __next k# aalarxga.aa__gconv_fct H__gconv_init_fct K%__gconv_end_fct LB__gconv_trans_fct Ua.__gconv_trans_context_fct Z__gconv_trans_query_fct ^x__gconv_trans_init_fct a__gconv_trans_end_fct b5 __gconv_info __nsteps # __steps # __data # __gconv_t ;H 4 __cd 2;# __data 3#H 5__cd /;__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA# _IO_FILE_plus__io_read_fnX*D__io_write_fnaZt__io_seek_fni__io_close_fnlfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1  #arg2  #retval  # lon_center"  R#  false_easting$  false_northing%   hamfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h -!!, ++#+HAMMERG!aZG( øa>ef?@'hamforinthamfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!-, 2 7 bEQX0 bnx1""HpX"01 "" "+ 2"0820";.#H* 0-  %  4>ELS[dkvzhamfor.cRlon_centerfalse_eastingfalse_northinghamforintptitleradiuscenlonoffsetp__divdf3hamforadjust_loncossqrtsinr* * * * 2"IbII* * I* I!* 2* rI* IIBII* IB* bII* BI% %''''*'2'' ' ' ' '___ _ _(_ %%'haminv.o/ 1082129503 59100 998 100644 13488 ` ELF2&@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B 8%3~F` `?#  @3 x D<~F p Q?#H803D p!~F~F p`Q?#90# xQ?#`<00p0 0`0X xD<~F Q?#~Fx p Q?#8`<00`0X  ~F (Q?#H 8 0 p H 0   HD 0 p0 D @`@ ` H0 H@BPH!`@ `@ 0XDp!@~FD p !@~F 8`800` H `0 X 0 P H!`@ p$0 H@BPH!`@ `@ J~Fx pQ?#D 0 p0 0 0 H 0 p0H 0   HD 0 p0 D @`@ ` H0 H@BPH!`@ `@ 0XDp!@~FD p !@~F 8`800` H `0 X  0 P H!`@ p$p0H 0`0H 0 P H!`@ D p!~F p0803Dp !@~FD p !~F 8`800 ` H0 H@BPH!`@ `@ 0 H@BPH!`@ `@ 0 P H!`@ D p!~F p0803Q?#8U`  @"0D1@% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;haminv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)haminvint.#r* pcenter_long+ xfalse_east, false_north- intdoublehaminvH(xC @yD HlonEPlatFXfacI ` size_tǔlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Blong int__int8_t&^signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,B__uint64_t-__qaddr_t.2__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tIs__daddr_tL__caddr_tMchar__time_tNB__useconds_tO__suseconds_tPB__swblk_tQB__clock_tRB__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_B__t_scalar_tf__t_uscalar_tg__intptr_tjB__socklen_tm %__sched_paramE __sched_priorityF# h_pthread_fastlock __statusB# __spinlock# _pthread_descr_struct_pthread_descr#h __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:%# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR%#pthread_mutex_tS.Z __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t h _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offsety#x_cur_column"#_vtable_offset#^#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#h     +FILE- __FILE7 wchar_twint_t86 J__wchH __wchbI6 F  s K __countE# __valueJ #__mbstate_tKF    __pos y# __state s #_G_fpos_t    # __pos !# __state "s #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS Z__gconv_step` ? __shlib_handle rr# __modname sx# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectZ~]Rci __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state s #( __trans #0s __gconv_trans_data( B __trans_fct go# __trans_context_fct h# __trans_end_fct i# __data j# __next k# RR]RciXRRRu__gconv_fct H__gconv_init_fct K__gconv_end_fct L3__gconv_trans_fct UR__gconv_trans_context_fct Zyu__gconv_trans_query_fct ^xix__gconv_trans_init_fct ax__gconv_trans_end_fct b& x__gconv_info __nsteps # __steps # __data x# __gconv_t ,H 4 __cd 2,# __data 3#H 5__cd /,__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX5__io_write_fnaKex__io_seek_fniz__io_close_fnlfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1  #arg2  #retval  # lon_center"  R#  false_easting$  false_northing%   haminv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h -!!, ++"++++HAMMERG!aZG& øa@@'haminvinthaminv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!/,27bE2 Q2 b&!n3##Hp($03 X$h$ h$+h4$040$;$, /  %  4>ELS[dkpvhaminv.cRlon_centerfalse_eastingfalse_northinghaminvintptitleradiuscenlonoffsetp__divdf3haminvsqrtatan2adjust_lonasinzr* * * * 2"IbII* * I* * A* R* r* * II* IR* r* * II* I* I* I"I% %''''*'2'' ' ' ' '___ _ _(_ %%'imolwfor.o/ 1082129503 59100 998 100644 16792 ` ELF280@@00Bg   F 0F0803 x 00<03 p8B x ! 00<03 p8B x@! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 x 8 0` H  p8B x ! 8 0` H  p8B x@! 8 0` H  p8B x`! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  HBP @!00!P@!B @10Bb  R@!K<~F pR?#H803 K p"!~F~Fx p S?#90#K p !~F 0` @ R?#`D00 p0  0`0 H pR?#`800 p0  0`8$  xR?#<B pS?#80#@ R?#`@00 p0  0`0 0 pR?#`800 p0  0`8 B pR?#`800 p0  0`0 H pR?#`800 p0  0`8$  xR?#<BO p$p<0#@ R?#@BO p$p<0#p@ R?#`D00 p0  0`0 H pR?#`800 p0  0`8$  xR?#<BO p $p<0#@ R?#`@00 p0  0`0 0 pR?#`800 p0  0`8 B pR?#`800 p0  0`0 H pR?#`800 p0  0`8$  xR?#<BO p$p<0#0@ R?#@BO p$p<0# x$<0 K p"!~F pp$@ p< K 0p0 0`0X 0 P H!`@ K p!~F~Fx`S?#~F pR?#`800~Fx(S?#~F pR?#800P H!p@  p$`800` H J~F pS?#80# xR?#<BN R?#@BM R?#DB p`S?#800PH!p@ 0J p0HK p!@~F 0`0X  0"K p !~F@@BPH!`@ `H  0 PH!`@ `@ L~F`S?#~Fxx`S?#~FpS?#p<00 0`0H  ~Fx pS?#`800 p  0`8$ B R?#@B pS?#80 81@B P$0 `XV@BPH! R?#DBpS?#~FxxS?#~F pS?#80  p!p<0#@H R?#DBM xR?#<B p`S?#@<00PH!`@ `@ J~F pR?#`800 p  0 p8X 0`8$  R?#DB p@S?#803 xR?#<B pS?#`80 x~F pS?#80  p8 Pz8@ 8 0 p H K p"!~F 0   HK p!~F@@BPH!`@ p H 0J`8H L~F p S?#P80  8 0   H K p"!~F@@BPH!`@ ` H JB H@Up "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;imolwfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)imolwforint*#r)intdoubleimolwforO)lonKlatLxM@yNHdelta_lonPPthetaQXdelta_thetaR`conShiTpregionUxlong intsize_tǾlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"*unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&|signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+*__int64_t,__uint64_t-__qaddr_t.#\__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tMchar__time_tN__useconds_tO*__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tg*__intptr_tj__socklen_tm* C__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:C# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF*(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRC#pthread_mutex_tSLZ __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#|#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# 2    +FILE-2 __FILE72 wchar_twint_t8*T J__wchH! __wchbIT d   K __countE# __valueJ0 #__mbstate_tKd    __pos # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR , 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS x__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectx{p, __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 =__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# pp{pvp=pp__gconv_fct H__gconv_init_fct K4__gconv_end_fct LQ__gconv_trans_fct Up=__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a !!__gconv_trans_end_fct bD __gconv_info __nsteps # __steps # __data # __gconv_t JH 4 __cd 2J# __data 3#H 5__cd /J__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :*__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA2 _IO_FILE_plus__io_read_fnX9S__io_write_fnai__io_seek_fni__io_close_fnlfpos_tP $ _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval # R"   lon_center# feast$  imolwfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h ).!++++++!++,++,++,++,++,++/+  +!++"++INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward@-8R?ωd8RCT!?IA5֠yJWֿ^T\nĿE؎W@2 ާT\n?^@֠yJW? f?f?/-DT! @/-DT! ky]IA5@ˡA5-DT! @|=@-DT!?)d?;f?G!aG'a+imolwforintimolwfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!@9`,2`7bEBQ?b<)n@,X8-.HpP.0@ ../PA.0hA0.;/86 8f  000  +29B KVZ^imolwfor.cRlon_centerfeastimolwforintptitleradius__divdf3imolwforadjust_lonsincosp_error"* 22B*R2r*2*2*2* 22*(B20R* b*020* *820* "*@R20r* *H20* *P202* B*Xr2II*`*h*p*x"*r*"*`r**B*x**p 2 I I *2 I I I *0 2(2 2HB I *IR*r*20* "*I* *BI% %''''''' ''0'___ _ _(_ %%'imolwinv.o/ 1082129503 59100 998 100644 17496 ` ELF22@@00Bg   F 0F0803 x 00<03 p8B x ! 00<03 p8B x@! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 x 8 0` H  p8B x ! 8 0` H  p8B x@! 8 0` H  p8B x`! 8 0` H  p8B x! 8 0` H  p8B x! 8 0` H  HBP @!00!P@!B 8%0Bd  P@!E<~F p`Q?#H803E p!~F~F pQ?#90#E p!~F 0`  p$p800 0 p HE @ `@ `0  x@Q?#<B pQ?#80#@@ p$p800 0 p HE @ `@ `0 @B x@Q?#<BG p$p<0#@ @Q?#@BG p$p<0#p@ p$p800 0 p HE @`@ `0  x@Q?#<BG p $p<0#@ p$p800 0 p HE @ `@ `0  x@Q?#<BG p$p<0#0@ @Q?#@BG p$p<0# x$<0 E p !~F pp$@ p< E 0p0 0`0X xE<~F x`Q?#H 8 0` H @ 0 PH!`@ `@ 0 P H!`@ E p!~F x~F pQ?#80  p8 Pz8@ 8 0   HE p!~F@@BPH!`@ ` HE 8 8 0 PH!`@ p@ 0J`0H 0 P H!`@ E p!~F p0803E p !~F 0  0HE p!~F 0`0H 0 PH!`@ `0H0 H@BPH!`@ `@ 0 P H!`@ E p !@~F p0803E p!~F pp8 rB @Q?#@B pQ?#80  8 0`8$ pB x@Q?#<B pQ?#80  8 0`0$  @'@ @Q?#@B pQ?#80 89B x@Q?#<B pQ?#80  8 0`8$ 8 @Q?#@B pQ?#80  8 0`0$ B x@Q?#<B pQ?#80  8 0`0$ @ @Q?#@B pQ?#80  8 0`8$  @'@ x@Q?#<B pQ?#80 89B @Q?#@B pQ?#80  8 0`8$ pB x@Q?#<B pQ?#80  8 0`0$  @'@ @Q?#@B pQ?#80 8 9B x@Q?#<B pQ?#80  8 0`8$ pB @Q?#@B pQ?#80  8 0`0$  @'@ x@Q?#<B pQ?#80 89B @Q?#@B pQ?#80  8 0`8$ 8 x@Q?#<B pQ?#80  8 0`0$ B @Q?#@B pQ?#80  8 0`0$ @ x@Q?#<B pQ?#80  8 0`8$  @' @ @Q?#@B pQ?#80 89B x@Q?#<B pQ?#80  8 0`8$ pB @Q?#@B pQ?#80  8 0`0$  @' @@! P!8U` "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;imolwinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)imolwinvint(#r'intdoubleXimolwinvK(xGPyHXlonIX`latJXhthetaLpregionM^xlong intsize_txlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#x__u_quad_t$x__quad_t%^__int8_t&6signed char__uint8_t'__int16_t(gshort int__uint16_t)__int32_t*__uint32_t+__int64_t,^__uint64_t-x__qaddr_t.__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDdI __valHd# t tlong unsigned int__fsid_tIK__daddr_tL__caddr_tMchar__time_tN^__useconds_tO__suseconds_tP^__swblk_tQ^__clock_tR^__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_^__t_scalar_tf__t_uscalar_tg__intptr_tj^__socklen_tm __sched_paramE __sched_priorityF# @_pthread_fastlock __status^# __spinlock# _pthread_descr_struct_pthread_descr#n@ \__pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0j# __stackaddr_set1# __stackaddr2\#( __stacksize3j#0pthread_attr_t4t< __c_lock:# __c_waiting;X#pthread_cond_t p$!~F~Fx pO?#90# O?#HB > xO?#<B? O?#HB pO?#@0 > 0 0 H"<0 `@BPH! B> p !B< ~F pN!8 09@B @$0 HR@BXH!O @@! 0UP `N!8-0Bc`bD~Fx p Q?#@803D p !~F$~F p`Q?#90#@D p$!~F~Fx p`Q?#80 ~F pQ?#80   D p"p8 rPB H$0 @PTPB PJ! Bp@ Q?#H0  x!vx 1rf088PB H$0 @PTPBH PJ! Bp`@ xQ?#<B p Q?#p800 0`8$ `B Q?#@B p Q?#p800 0`0$  @'@ Q?#DB p@Q?#p800 0`8$ `B Q?#HB p@Q?#p800 0`0$  @'@ xQ?#<B pQ?#80 D p 8Bp Q?#HBE Q?#H0  !q 8`800p H 0 `8H "~FxQ?#~F x@Q?#H8`<00 p0X@D p$8Br 0` H  ~FxxP!~F pQ?#`800`04 pp<0# Dp"!B@D p$8Bs x80 0<0B xQ?#<B@ Q?#D0  x!@9B@D p$!B x80  p< ;~F8  xQ?#<B pP!80 8800B Q?#@B pP!80# Q?#DBG Q?#HBD Q?#D0  !s 8`800 p0X 0` H   ~F pQ?#`800`0$ h xQ?#<BG Q?#DBG Q?#HB pQ?#`800`04 p8J@ 88`88 pH 0`8H   xQ?#<B pQ?#`800`$ X Q?#@BG Q?#DBG Q?#HB pQ?#`800`04 `08 pH 0`8X   xQ?#<B G Q?#H0 D p!B x<B p8 p<@x8 @B px8@ ppp1`88 pHD p!~F 0 p H@D$~Fx pP!80  p!p @ p8 p$@ p!!80  p< 8Bp pp1`@8 `H `0X "~Fx p`Q?#80 @D $D p8Bx@! ~FpQ?#p<00 0p H 0 `8H "8U` `P! @0Bg @ H0 89PB ($P0 0LBXPB! Bp@ pH8Bvx 1rf088PB ($P0 0LBPB! Bp@ pH8Bv 0  x!v(BP B!0  x!vP0 PB!0#U `H! - P0Bg `JB( xB( J0  !p 08N@0 H"80 @PD!O@(% .: ; ' @ : ; I  I&I$ > .? : ; ' I@ 4: ; I  : ; : ; I8 .? : ;' I@ : ;I 4: ;I .: ;' I@ : ; II!I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( ' II' !I/: ;  : ; !4: ; I? < " : ;#&$( $!isinusfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)errorT%routineTtextTcharisinusforinit#spherejPlon_cen_merjXfalse_eastj`false_northkhdzonekpdjustifykxnzoneijustifyistat intdoublelong int p8 false_east(# false_north)# sphere*# sphere_inv+# ang_size_inv,# nrow-#( nrow_half.#0 ref_lon/#8 lon_cen_mer0#@ ijustify1#H col_dist2#P col_dist_inv4#X row6-#` key7#h -# ncol # icol_cen!# ncol_inv"#*Isin_for_init**spherelon_cen_merfalse_east@false_northHnrowPijustify׽XthisIsin*`row-hirowpclatxncol_cen isinusfor' lon` lath xp yx istat `Isin_fwd( thisIsin`@ lonH latP xX y` rowh colp flonx irowf Isin_for_free-$ thisIsin*Isin_errorR% err>( routine> "@ num># str?"#.size_tAlong unsigned int__u_char funsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#A__u_quad_t$A__quad_t%__int8_t&signed char__uint8_t'f__int16_t(0short int__uint16_t)__int32_t*__uint32_t+__int64_t,__uint64_t-A__qaddr_t.__dev_t0__uid_t1`__gid_t2`__ino_t3__ino64_t4__mode_t5`__nlink_t6__off_t7r__off64_t8r__loff_t9r__pid_t:O__ssize_t;r__rlim_t<__rlim64_t=__blkcnt_t>r__blkcnt64_t?r__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tD` - I __valH- #= = long unsigned int__fsid_tI __daddr_tL__caddr_tM"__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tg__intptr_tj__socklen_tm __sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock#_pthread_descr_struct_pthread_descr#)   __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam- # __inheritsched.# __scope/# __guardsize03# __stackaddr_set1# __stackaddr2 #( __stacksize33#0pthread_attr_t4/ a < __c_lock: # __c_waiting; #pthread_cond_t#`_chainD#h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset##_shortbuf$J#_lock(Z#_offset1)#__pad17 #__pad28 #_mode:#_unused2<\#>_IO_marker _next># _sbufD# _pos# Z= l= +FILE- __FILE7 wchar_twint_t8 J__wch H__wchb I=   K __count E# __value J#__mbstate_t K D  __pos # __state #_G_fpos_t   # __pos !)# __state "#_G_fpos64_t #Un &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w"# __to_name x"# __fct z?#( __init_fct {U#0 __end_fct |g#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data  #X__gconv_loaded_object>>DJ__gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans 9#0f__gconv_trans_data( B __trans_fct g# __trans_context_fct h!# __trans_end_fct i3# __data j # __next k9# >D f3! 3 ' U>Eg>[__gconv_fct H __gconv_init_fct KE__gconv_end_fct L[__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^&,FFL__gconv_trans_init_fct apv __gconv_trans_end_fct b'__gconv_info __nsteps 3# __steps ># __data #J= __gconv_t ( WH 4 __cd 2# __data 3J#~H 5__cd /__combined 4._G_iconv_t 5W_G_int16_t 70_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t m__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXY "3__io_write_fnaY 3__io_seek_fni )__io_close_fnl8H fpos_tPD!stderrfl  b quot `# rem a#div_t bl  j quot h# rem i#ldiv_t ju_char"Vu_short#wu_int$u_long%quad_t&u_quad_t'fsid_t(R loff_t-:ino_t1dev_t=gid_tBmode_tGnlink_tL uid_tQoff_tWpid_tcJid_th ssize_tmYdaddr_tsb caddr_tts key_tz time_tF clockid_tR timer_t^ ulongAushortuintint8_tint16_t0int32_tint64_tu_int8_tfu_int16_tňu_int32_tƭu_int64_tAregister_t__sig_atomic_t  __val #A= __sigset_tsigset_t&qtimespeck tv_secl # tv_nsecm#timevalD tv_secE # tv_usecF #suseconds_t1 __fd_mask7 J __fds_bitsG#= fd_setJfd_maskQblkcnt_tfsblkcnt_tfsfilcnt_t"random_data0 fptr #rptr #state #rand_type #rand_deg #rand_sep # end_ptr #(h"Ndrand48_data __x N#__old_x N#__c # __init #__a ^#^= long long unsigned int__compar_fn_t #$_IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE"g exception( type #name "#arg1#arg2#retval# Isin_row_t#Isin_t8error_t@ISIN_BADALLOC] ISIN_BADPARAM^ ISIN_BADHANDLE_ ISIN_BADKEY` isine* g5 isinusfor.cisin.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/stdlib.h/usr/include/sys/types.h/usr/include/time.h/usr/include/bits/sigset.h/usr/include/sys/select.h/usr/include/bits/time.h/usr/include/math.h -+ +5%+++-+(+++++++++!+++++!+!++++B+! +"++&%-+++++!+++!+-+++ +++-++  error (isinusfor.c/%s : %s memory allocationinvalid parameterinvalid handleinvalid keyisinusforinitbad return from Isin_for_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valueIsin_for_initbad return from Isin_for_initisinusforbad return from Isin_fwdIsin_fwdIsin_for_free error (isinusfor.c/%s) : (%i) %s G#8G!aG(aG%aKG&aG"aHG#a$-DT!-DT!@ףp= ?)\3A{Gz?{GzGz@|=-DT!-DT!@-DT! @-DT! ?-DT!?-DT!-DT!@-DT!-DT!?m0_?_(!isinusforinit3Isin_for_init0isinusforIsin_fwdkIsin_for_free,0.GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.rela.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@0.!j ,p.@20t`=.B.P0(!\t(mQkyv  Z\p]v 8^^cx;_0x0k_;_f i   !/ >0JOP- Zaiw+` ! isinusfor.cerrorISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinIsin_errorstderrfprintfisinusforinitIsin_for_freeIsin_for_init__divdf3mallocfreecosisinusforIsin_fwd22R2rIB*p*I2p2P2pR2** 2p"2b** 2p2B*(*(@2pB2(2p2X*0B*82p2*(*(2p2I** 2 2" *@` 2b 2 *H *P0 22 2r *X *P" *X *P 2" 2 2 2 2"2bI222I*XIB*X*`2*PII22B*hI*pI*hI*hI*P2I*P"IR * I 0!22!2("2 "2H#20#2HR#*x#*$*R$*a%*b'*+2 +2X`,20b,2X,I-I-2-2h-I' '8('P8'`% %'0.'''' '` N'` V'H'P'!'!'+'+'P-'P-'0. ' ' ' !'0!'B'___ _ _` (_ 0_` 8_@_ @H_P_!X_ ``_!h_+p_ x_+_P-_ _P-_0._ %%'isinusinv.o/ 1082129503 59100 998 100644 31016 ` ELF2`@@ ) P0Bg `JB( pB( 08N0 H BPD! U0 `J!)00Bd   x ~F<~F p`G?#H803` p&!~F(~Fx pG?#X803 p !~F00~F pG?#h803 p`8rB p$@80 P@! B p !`B<0~F p0F!8 09@B $@0 (JBX@!O@@ p@G?#p800`8 `0  $@0 (JBX@!O@ x@G?#<B p`G?#p800 0`8$ `B @G?#@B p`G?#p800 0`0$  $@0 (JBX@!O@ @G?#LB pG?#p800 0`8$ `B x@G?#<B pG?#p800 0`0$  $@0 (JBX@!O0@ @G?#@B @G?#LB pG?#p800 0`0H `04 pp<0#p!~F p !B ppp1`88 pH 0`8X p  0`0$  $@0 (JBX@!O@ x@G?#<B pF!80  p, `8r@B $@0 (JBHX@!Op@ @G?#@B pG?#p800 0`8$ `B @G?#LB pG?#p800 0`0$  $@0 (JBxX@!O@ x@G?#<B @G?#@B pG?#p800 0`0H `04 pp< #`p&!~F p !@B ppX 88`88 pH 0`8X p  0`0$  $@0 (JBX@!O@@ x@G?#<B@ @G?#@B  @G?#LB x@G?#<B @G?#LB p F!` 0&0 H$D00 X <0 HBP@! B < pp8 r@B $@0 (JBX@!O @@! U `F!H50Bb  x ~F<~F pT?#H803S p!~F(~F p U?#X803S p!~F~F p`U?#(9 #S 0 p0  0`8$  X$0 `X`B"PL!B@@ xT?#<B pT?#p800 0`8$ `B T?#@B pT?#p800 0`0$  X$0 `X`B!PL!Bp@ xT?#<B pT?#p800 0`8$ 8 T?#@BS T?#@B pT?#p800 0`0H  xT?#<B pT?#p800 0`0 8 T?#@BS T?#@B pT?#p800 0`0X  xT?#<B p@U?#80 81@B T?#@B p@U?#80 `608!@@ X$0 `X`B PL!B@ xT?#<B p@U?#80  p, `8r@B X$0 `X`BPL!B@ T?#@B p`U?#8 080@B xT?#<B p`U?#8 0!@@ X$0 `X`BPL!B@ T?#@BVX$`BP L!@8N~Fx pU?#80 89@B X$0 `X`BxPL!B@ T?#@B pU?#80  x!v~Fx pU?#80 S p !~F 00<03S p!~F p8Bx !~F p U?#`800~Fx pU?#80 x!8BS 8 `8 ~Fx pU?#80 x!p8B@ T?#`@00 0 PL!`@ `@ N~Fx pU?#80 x!p9BS p !~F ppp1`88 `H0 H`BPL!`@ `@ N~Fx pU?#80  x!@9BS p !~F pp<0#S p!~F p8Bs xT?#<B p@U?#80 ?)wR p< 1pR8 ~F pU?#80  x!:BS p !~F 00<03S p!~F p8Bx!~F pT?#p800 0`0X ~Fx pU?#80  x!s 8 0`8$ P T?#@B pU?#80  x!9BS p !~F p8Bs 8 0`0H  xT?#<B pU?#80  x!@:BS p !~F pp< #S p!~F p8Bs x<B p8 p<@ p8 8BPL! Bp T?#@B pU?#80  !v<~Fx pU?#80  x!v pp8 rB T?#@B pU?#80 P L!H XV`X`B8PL!B @ xT?#<BV T?#@B pU?#80  !v pp<0#S p!~F T?#@BW T?#@B pU?#80  !s x80 0<!@ xT?#<BW T?#@B pU?#80  88`88 pH 0 p0HS p!~F p8Bs pp1`@8 `H 8 0 PL!`@ `@ p0X 0` H N~Fx p`U?#8 01B T?#@B pU?#p80 S p!~F@`BPL!`@ p0HS p !~F pp1`@8 `H p H 0`0H `04 pp0#@@ xT?#<B pU?#p80 S p !~F@`BP L!p@ S p!~F pp1`@8 `H p H 0`0H `04 pp0#S p!@~F~Fx pU?#80  x<B p8 p@0# T?#@B pU?#80  p`8b@B xT?#<B pU?#80 8 T?#@B pU?#80 x!p8BS p!@~F p80  88`88 `H  0 PL!`@ `@ N~Fx p`U?#8 89B T?#@B pU?#80 x!A8BS p!@~F p80  x!R;)p 1pR8 @ T?#@B pU?#80 x!A8BS p!@~F p80 ?)wR p< 1pR8  T?#@BpU?#~FxxU?#~F pU?#80  p!p<0#S p!@~FSp !@~FS p !@~F p8B8H xT?#<B P T?#@B pU?#80 x!;BS p!~F p8Bs x<B p8 p<@ x8 @0  p< @;~F ppD0#S p !~F p8Bu pT?#`800 p0  0 p HS p!B pp1`@8 `H 8 0 PL!`@ `@ N~Fx pU?#80 x!p:BS p !B ppp1`88 HS 0 p0  0` H 0 PL!`@ `@ N~Fx pU?#80  x!@;B 1rf8~F pU?#80 @! HU `T!05p0Be  x ~F<~F pO?#H803@> p$!~F~Fx pO?#90# O?#HB > xO?#<B? O?#HB pO?#@0 > 0 0 H"<0 `@BPH! B> p !B< ~F pN!8 09@B @$0 HR@BXH!O @@! 0UP `N!8-0Bc`bD~Fx p Q?#@803D p !~F$~F p`Q?#90#D p!~F~F p`Q?#80 ~F pQ?#80  D pp8 rPB H$0 @PTPB PJ! Bp@ Q?#@0  x!vx 1rf088PB H$0 @PTPB( PJ! Bp@@ Q?#DB pQ?#80 Dp!~F D p"8Bp 8`800 p0XD p8Bq 0` H  ~F pQ?#80  8 0`8$ pB Q?#DB pQ?#80  8 0`0$  xQ?#<B pQ?#80 O@ Q?#@BF Q?#DB pQ?#80 8`<00 p0XD p8Br 0` H  ~FxP!~F pQ?#`800`04 pp<0#Dp!BD p 8Bs x80 0<0B Q?#DB@ xQ?#<0  x!@9B D p"!B x80  p< ;~F8  xQ?#<B pP!80 8800B Q?#@B pP!80# Q?#DBG xQ?#<B p Q?# Dx"p800 0 p0XD p8Bu 0` H  ~FQ?#~F Q?#~F~Fx pP!80  p!p @ p8 p$@ p!!80  p< 8Bp ppp1`88 pH 0" p0HD~Fx pP!80  p!p @ p8 p$@ p!!80  p< 8Bq 0` H $~F pQ?#`800`0$ PB Q?#DB pQ?#`800`$  xQ?#<B pQ?#80 OP@ Q?#@B p`Q?#80 D p"8Bx!~F pQ?#p800 0p H 0`8H  ~Fx p`Q?#80  8 0`0 @ Q?#@B p`Q?#80 D p"!~F pp800 0`0X  xQ?#<B p`Q?#80  8 0`8$ @ Q?#@B p`Q?#80 D p"!~F pp800 0`0H  @! 8U` `P! @0Bg @ H0 89PB ($P0 0LBXPB! Bp@ pH8Bvx 1rf088PB ($P0 0LBPB! Bp@ pH8Bv 0  x!v(BP B!0  x!vP0 PB!0#U `H! - P0Bg `JB( xB( J0  !p 08N@0 H"80 @PD!O@(% .: ; ' @ : ; I  I&I$ > .? : ; ' I@ 4: ; I  : ; : ; I8 .? : ;' I@ : ;I 4: ;I .: ;' I@ : ; II!I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( ' II' !I/: ;  : ; !4: ; I? < " : ;#&$( $!isinusinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)errorT%routineTtextTcharisinusinvinit#spherejPlon_cen_merjXfalse_eastj`false_northkhdzonekpdjustifykxnzoneijustifyistat intdoublelong int p8 false_east(# false_north)# sphere*# sphere_inv+# ang_size_inv,# nrow-#( nrow_half.#0 ref_lon/#8 lon_cen_mer0#@ ijustify1#H col_dist2#P col_dist_inv4#X row6-#` key7#h -# ncol # icol_cen!# ncol_inv"#*Isin_inv_init**spherelon_cen_merfalse_east@false_northHnrowPijustifyؽXthisIsin*`row-hirowpclatxncol_cen isinusinv' x` yh lonp latx istat `Isin_inv( thisIsin`@ xH yP lonX lat` rowh colp flonx irowf Isin_inv_free-$ thisIsin*Isin_errorR% err>( routine> "@ num># str?"#.size_tAlong unsigned int__u_char funsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#A__u_quad_t$A__quad_t%__int8_t&signed char__uint8_t'f__int16_t(0short int__uint16_t)__int32_t*__uint32_t+__int64_t,__uint64_t-A__qaddr_t.__dev_t0__uid_t1`__gid_t2`__ino_t3__ino64_t4__mode_t5`__nlink_t6__off_t7r__off64_t8r__loff_t9r__pid_t:O__ssize_t;r__rlim_t<__rlim64_t=__blkcnt_t>r__blkcnt64_t?r__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tD` - I __valH- #= = long unsigned int__fsid_tI __daddr_tL__caddr_tM"__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tg__intptr_tj__socklen_tm __sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock#_pthread_descr_struct_pthread_descr#)   __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam- # __inheritsched.# __scope/# __guardsize03# __stackaddr_set1# __stackaddr2 #( __stacksize33#0pthread_attr_t4/ a < __c_lock: # __c_waiting; #pthread_cond_t#`_chainD#h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset##_shortbuf$J#_lock(Z#_offset1)#__pad17 #__pad28 #_mode:#_unused2<\#>_IO_marker _next># _sbufD# _pos# Z= l= +FILE- __FILE7 wchar_twint_t8 J__wch H__wchb I=   K __count E# __value J#__mbstate_t K D  __pos # __state #_G_fpos_t   # __pos !)# __state "#_G_fpos64_t #Un &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w"# __to_name x"# __fct z?#( __init_fct {U#0 __end_fct |g#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data  #X__gconv_loaded_object>>DJ__gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans 9#0f__gconv_trans_data( B __trans_fct g# __trans_context_fct h!# __trans_end_fct i3# __data j # __next k9# >D f3! 3 ' U>Eg>[__gconv_fct H __gconv_init_fct KE__gconv_end_fct L[__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^&,FFL__gconv_trans_init_fct apv __gconv_trans_end_fct b'__gconv_info __nsteps 3# __steps ># __data #J= __gconv_t ( WH 4 __cd 2# __data 3J#~H 5__cd /__combined 4._G_iconv_t 5W_G_int16_t 70_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t m__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXY "3__io_write_fnaY 3__io_seek_fni )__io_close_fnl8H fpos_tPD!stderrfl  b quot `# rem a#div_t bl  j quot h# rem i#ldiv_t ju_char"Vu_short#wu_int$u_long%quad_t&u_quad_t'fsid_t(R loff_t-:ino_t1dev_t=gid_tBmode_tGnlink_tL uid_tQoff_tWpid_tcJid_th ssize_tmYdaddr_tsb caddr_tts key_tz time_tF clockid_tR timer_t^ ulongAushortuintint8_tint16_t0int32_tint64_tu_int8_tfu_int16_tňu_int32_tƭu_int64_tAregister_t__sig_atomic_t  __val #A= __sigset_tsigset_t&qtimespeck tv_secl # tv_nsecm#timevalD tv_secE # tv_usecF #suseconds_t1 __fd_mask7 J __fds_bitsG#= fd_setJfd_maskQblkcnt_tfsblkcnt_tfsfilcnt_t"random_data0 fptr #rptr #state #rand_type #rand_deg #rand_sep # end_ptr #(h"Ndrand48_data __x N#__old_x N#__c # __init #__a ^#^= long long unsigned int__compar_fn_t #$_IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE"g exception( type #name "#arg1#arg2#retval# Isin_row_t#Isin_t8error_t@ISIN_BADALLOC] ISIN_BADPARAM^ ISIN_BADHANDLE_ ISIN_BADKEY` isine* l5 isinusinv.cisin.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/stdlib.h/usr/include/sys/types.h/usr/include/time.h/usr/include/bits/sigset.h/usr/include/sys/select.h/usr/include/bits/time.h/usr/include/math.h -+ +5%+++-+)+++++++++!+++++!+!++++B+! +"++$%-+++++++!+++++ +++-++! error (isinusinv.c/%s) : %s memory allocationinvalid parameterinvalid handleinvalid keyisinusinvinitbad return from Isin_inv_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_inv_free error (isinusinv.c/%s) : (%i) %s G#8G!aG(aG%aKG&aG"aHG#a$-DT!-DT!@ףp= ?)\3A{Gz?{GzGz@|=-DT!-DT!@-DT! @-DT! ?-DT!?-DT!-DT!?-DT!@-DT! @-DT! _(!isinusinvinit3Isin_inv_init0isinusinvIsin_invkIsin_inv_free,.GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.rela.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@.!j ,P.@2Ht`=.B.Pk0(!\t(mQpyv Z\px]v  ^^cx#_0x0S_;_f i   !/ >0JO0- Zaiw+` ! isinusinv.cerrorISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinIsin_errorstderrfprintfisinusinvinitIsin_inv_freeIsin_inv_init__divdf3mallocfreecosisinusinvIsin_inv22R2rIB*p*I2p2P2pR2** 2p"2b** 2p2B*(*(@2pB2(2p2X*0B*82p2*(*(2p2I** 2p 2" *@` 2b 2 *H *P0 22 2r *X *P" *X *P 2" 2 2 2 2"2bI222I*XIB*X*`2*PII22B*hI*pI*hI*hI*P2I*P"IR * I 0!22!2("2 "2H#20#2H#*xR$*$*r)*)*R****"+*+2 +2X@,20B,2X,I,Ib-2-2h-I' '8('P8'`% %'.'''' '` N'` V'H'P'!'!'+'+'0-'0-'. ' ' ' !'0!'B'___ _ _` (_ 0_` 8_@_ @H_P_!X_ ``_!h_+p_ x_+_0-_ _0-_._ %%'lamazfor.o/ 1082129503 59100 998 100644 14096 ` ELF2'@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 p!~F@PH!P @!@H HBP @! 0  0 P@!~Fx pG?#800P@!~F pG?#800P @!H@<00P@!B @50Bf  x |F<|F pS>#H803@O p$!~F|Fx p R?#90# S>#`D00p0 0`0X 0 P H!`@ O p!~F|FpS>#@~FK@<B !PH! |Fp@R?#~FJ@<B !PH!|FxR?#H O p"!@~F 8`800  H S>#HBpR?#p<00 0 p HO p!~F 0` H `0 H  |F pR?#p800 0`8 P x@S?# 0 `0H@x X$0 `@BPH!~F@p X$0 PH!H@ S>#HBL($|Fx pR?#`800 `H @0 PH!`@ `@ 0 PH!p@ 0J`H L|F pR?#80 @Op$!~F O p"!~F 8`800 p H@O p$!~F 0 p H 0`0H  |Fx p R?#80 @Op$!~F S>#HBpR?#p<00 0  H S>#HBpR?#p<00 0 p HO p!~F 0` H p0 X 0  p H 0`0H "@Up `R!% .? : ; ' I@ : ; I $ > 4: ; I  II!I/ : ; I  : ; : ; I8  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;lamazfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)lamazforint1#r,%`center_long-%hcenter_lat.%pfalse_east/%xfalse_north0%intdouble(lamazforK)lonG%~latH%~xI(yJ(delta_lonL%sin_delta_lonM%cos_delta_lonN%sin_latO%cos_latP%gQ%kspR%@messS.P%>S>;long unsigned intchar size_tilong unsigned int __u_char unsigned char __u_short!short unsigned int __u_int"unsigned int __u_long#i __u_quad_t$i __quad_t%long int __int8_t&3signed char __uint8_t' __int16_t(dshort int __uint16_t) __int32_t* __uint32_t+ __int64_t, __uint64_t-i __qaddr_t. __dev_t0 __uid_t1 __gid_t2 __ino_t3 __ino64_t4 __mode_t5 __nlink_t6 __off_t7 __off64_t8 __loff_t9 __pid_t: __ssize_t; __rlim_t< __rlim64_t= __blkcnt_t> __blkcnt64_t? __fsblkcnt_t@ __fsblkcnt64_tA __fsfilcnt_tB __fsfilcnt64_tC __id_tD aI __valHa#q> __fsid_tIH __daddr_tL __caddr_tMS __time_tN __useconds_tO __suseconds_tP __swblk_tQ __clock_tR __key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t_ __t_scalar_tf __t_uscalar_tg __intptr_tj __socklen_tm __sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct _pthread_descr#N  <__pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0[# __stackaddr_set1# __stackaddr2<#( __stacksize3[#0 pthread_attr_t4T < __c_lock:# __c_waiting;8# pthread_cond_t S>+ FILE- __FILE7 wchar_twint_t8 J__wchH __wchbI  S> + K __countE# __valueJ # __mbstate_tK i   __pos N# __state + # _G_fpos_t >  # __pos !]# __state "+ # _G_fpos64_t #z  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r*# __modname s0# __counter u# __from_name w# __to_name x# __fct zo#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data <#X __gconv_loaded_object6Snnt !z ?__gconv_step_data8 @ __outbuf ?# __outbufend ?# __flags # __invocation_counter # __internal_use # __statep E# __state + #( __trans i#0+ __gconv_trans_data( B __trans_fct g'# __trans_context_fct hQ# __trans_end_fct ic# __data j<# __next ki#  nt<  ! ?[Q<  ??-c<WK;nun __gconv_fct H; __gconv_init_fct Ku __gconv_end_fct L __gconv_trans_fct U  __gconv_trans_context_fct Z1- __gconv_trans_query_fct ^V\v0v!|0 __gconv_trans_init_fct a0< __gconv_trans_end_fct bW 0__gconv_info __nsteps [# __steps n# __data 0#Gz> __gconv_t X H 4 __cd 2# __data 3z#H 5__cd /__combined 4^ _G_iconv_t 5 _G_int16_t 7d _G_int32_t 8 _G_uint16_t 9 _G_uint32_t : __gnuc_va_list +< _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX<[__io_write_fna<0[__io_seek_fni2L<L]__io_close_fnlhx< fpos_tPi  _IEEE__SVID__XOPEN__POSIX__ISOC_ _LIB_VERSION_TYPE =exception( type #name #arg1 %#arg2 %#retval %# lon_center"% R#% sin_lat_o$% cos_lat_o%% false_easting&% false_northing'%  lamazfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 0 +!,  +++-+LAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forwardG!auG'a@+lamazforint/lamazfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!1H,27bEB Q4Pb$"n 6$`P%@p%086 %%0%/6%060/&;j&-H 0  '(6@  JV^elszlamazfor.cRlon_centerfalse_eastingfalse_northingsin_lat_ocos_lat_olamazforinttsincosptitleradiuscenloncenlatoffsetp__divdf3lamazforadjust_lonsprintfp_errorsqrt*** *(Q*R*bIq2III"I1* 2*(RI*bIII!*R**2*`2 rI 2PI!**IRI"* b**B*(% %''''E'M'Q'd'''' '('___ _ _(_ %%'lamazinv.o/ 1082129503 59100 998 100644 15952 ` ELF2-@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !~F 00<03 G?#@B pF!`800~Fx pG?#8000$BP @!@H HBP @! 0  0 P@!~Fx pG?#800P@!~F pG?#800P @!H@<00P@!B H90Bb  T@!S<~F pT?#H803S p!~F~F p U?#90# xT?#`<00p0 0`0X xS<~FT?#~Fx pT?#8`<00`0X  S 0  p0 S @`@  HSp!~FS p !~F 8`800` H `0 H 0 P H!`@ S p!~F~F(U?#~Fx x@U?#H 0`0H @ 0 PH!`@ `@ J~F pU?#`800`$  X$0 `X@BPH!H@ xT?#<BU T?#@B pU?#800PH!`@ `0H J~Fxp`U?#~FV@<B !PH!~F pU?#80  00<03S p!~F 0 p  0`0$ H x$~FpU?#p<00 0   H T?#@BpU?#p<00 0 p HS p!~F 0 ` HS p !~F0 H@BPH!`@ `@ `0H 0 P H!`@ S p!@~F p0803Sp !~F 0 p  0`0X ~Fx pU?#`800 p  0`0$ 0 T?#@BW xT?#<BV($~F p U?#80 @@BPH!p@ 0Jp H 0L`8X N~Fx pU?#`800p0  T?#@B pU?#S 0p0 0 p H 0  HSp!~FS p !~F 8`800` H 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p0803`@ p$`800`0$ B T?#@B pT?#`800 `0"S 88 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p08030@ T?#p@00`8 `0"S p!~F0 H@BP H!p@  p$`800`8X 0 P H!`@ S p !~F p0803@@ xT?#<B p U?#80  00<03@! T!HU "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;lamazinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)lamazinvint4#r/%`center_long0%hcenter_lat1%pfalse_east2%xfalse_north3%intdoublelamazinvO*xK%yL%lonM@latNHRhP%PzQ%Xsin_zR%`cos_zS%htempT%p%size_tlong unsigned int__u_char unsigned char__u_short!2short unsigned int__u_int"Wunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)2__int32_t*__uint32_t+W__int64_t,__uint64_t-__qaddr_t.\__dev_t09__uid_t1__gid_t2__ino_t39__ino64_t49__mode_t5__nlink_t69__off_t7(__off64_t8(__loff_t9(__pid_t:__ssize_t;(__rlim_t<9__rlim64_t=9__blkcnt_t>(__blkcnt64_t?(__fsblkcnt_t@9__fsblkcnt64_tA9__fsfilcnt_tB9__fsfilcnt64_tC9__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM:@char__time_tN__useconds_tOW__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgW__intptr_tj__socklen_tmW |__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-J# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4%< __c_lock:|# __c_waiting;#pthread_cond_t<VC __dummyB#pthread_condattr_tC;pthread_key_tFW(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR|#pthread_mutex_tS) Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr :#_IO_read_end :#_IO_read_base :#_IO_write_base:# _IO_write_ptr:#(_IO_write_end:#0_IO_buf_base:#8_IO_buf_end:#@_IO_save_base:#H_IO_backup_base:#P_IO_save_end:#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"2#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< #  _IO_marker _next # _sbuf # _pos# k  @  0 @ +FILE-k __FILE7k wchar_twint_t8W J__wchHZ __wchbI @  K __countE# __valueJi #__mbstate_tK    __pos # __state  #_G_fpos_t  D  # __pos !# __state " #_G_fpos64_t # 2 &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR e 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w:# __to_name x:# __fct z#( __init_fct {$#0 __end_fct |6#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object@  e __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 v__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k#  v$ 6 *__gconv_fct HO__gconv_init_fct Km__gconv_end_fct L*__gconv_trans_fct Uv__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a?EZZ__gconv_trans_end_fct b} __gconv_info __nsteps # __steps # __data # __gconv_t &H 4 __cd 2# __data 3#MH 5__cd /__combined 4_G_iconv_t 5&_G_int16_t 7_G_int32_t 8_G_uint16_t 92_G_uint32_t :W__gnuc_va_list + _IO_jump_t_IO_lock_t<__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAk _IO_FILE_plus__io_read_fnXr:__io_write_fna__io_seek_fni__io_close_fnlfpos_tP ] _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE %exception( type #name :#arg1 %#arg2 %#retval %# lon_center$% lat_center%% R&% sin_lat_o'% cos_lat_o(% false_easting)% false_northing*% X lamazinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 3 !,  ++,++LAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverseG!a{G(a|=-DT!?+lamazinvint/lamazinv, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !`7, 2 7 bEQ;hb'\n`=*H*Hp+0x= @+P+8P+/>+0 >0+;+3 6 $(20AK   Uaipw~0 lamazinv.cRlon_centerlat_centerfalse_eastingfalse_northingsin_lat_ocos_lat_olamazinvinttsincosptitleradiuscenloncenlatoffsetp__divdf3lamazinvsqrtp_errorasinzsinatan2adjust_lon****(2*0r** I2IIIBIQ*(R*0rI"*(*0I *2I2 28I!I"bI***2* I"I"b***0 *R I#B * I$ * I%` * I$ *B I% I$ *2 I% *% %' '''E'M' ' '':'U' t'('0'____ _ (_ %%'lamccfor.o/ 1082129503 59100 998 100644 18432 ` ELF2H2@@! @0Bf @ H@!'<|F pI>#H803 ' p"!~F(|Fx p H?#X803' p !~F0|F p`H?#h803' p!~F8|F pH?#x803 I>#pD00`8 H' p !|F 00<03 I>#DB pH?#`800H' p !~F 00<03 'p"!~F' p !@~F 8`800`0H p  0`8$  ($P0 0LBP@!HH @ I>#DB % p$@<00P@!`@ `@ BH'p!~F ' p"!~F 8`800` H `0X  @BP @!`@  p$0803 I>#@B p@H?#`800H ' p"!~F 00<03' p!~F# H?#800x8 !BP@!|FxI?#|F pH?#`800H'p!~F ' p"!~F@ <00 PBP @!`@ ' p!@~FH 'p"!~F ' p"!~F@ <00 PBP @!`@ ' p!@~F|Fp H?#~F#@`<B!P @!H 'p"!~F ' p"!~F@ <00 PBP @!`@ ' p!~FH 'p"!@~F ' p"!~F@ <00 PBP @!`@ ' p!~F @BP @!`@ ' p !~FH I>#DBpH?#<00 H 800P @!`@ ' p!~F|FxH?#|Fp H?#p<00 0`0X p  0`0$  $|Fxx I?#|Fp@I?#<00 HBP@!`@ `@ 0 P @! @ 'p"!@~F' p !~F @800P@!`@ `@ 0 P@!`@  0 P@!`@ `@ B@@x$|F pI?#`800 $|Fx pI?#@<00P @!p@ 'p !@~F 0` H @ 0 P@!`@ `@ BH ' p"!~F@<00P @!H8`<00` H `H B(JBP @!H@<00P@!|FxxH?#|Fp H?#<00 HBP @!H@BP@!|F p`H?#800P @!H@<00P @!H!U "BH50Bc  x ~F<~F p U?#H803 T p"!~F~Fx p`U?#90#Tp !~F T p"!@~F 0 p  0`0X ` ~Fx pU?#p800 0`0$  U?#@B p U?#800P H!`@ T p"!~FHTp!@~F T p"!~F@ <00 P@BP H!`@ T p!B~F(U?#~F pT!@<00P H!H8`<00` H `H J@ xU?#<BV U?#DB p U?#8`<00` H  ~Fx pU?#`800`0  X$0 `X@BPH!`H`@ U?#@B pU?#803 U?#DBW p$T 0p0 0`0X 0 P H!p@  p$`800`H J~Fx p@U?#`80 Tp !PB~F T p"!~F@@BPH!p@ 0J p H 0`0H L~Fx p`U?#p80  U?#@BV U?#DB pU?#800PH!p@ 0Jp H 0L p8X 0`0H NHU `T!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;lamccfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)lamccforint4$r_maj,~r_min-~lat1.lat2/c_lon0c_lat1false_east2false_north3sin_po5cos_po6con7@ms18Hms29Ptemp:Xts0;`ts1<hts2=pintdoublelamccforw*lonr@latsHxtPyuXconx`rh1yhsinphizptheta{xts|size_tǡlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int" unsigned int__u_long#__u_quad_t$__quad_t%Olong int__int8_t&ksigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+ __int64_t,O__uint64_t-__qaddr_t.?__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tMchar__time_tNO__useconds_tO __suseconds_tPO__swblk_tQO__clock_tRO__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_O__t_scalar_tf__t_uscalar_tg __intptr_tjO__socklen_tm  2__sched_paramE __sched_priorityF# u_pthread_fastlock __statusO# __spinlock# _pthread_descr_struct_pthread_descr#u __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:2# __c_waiting;#pthread_cond_t< C __dummyB#pthread_condattr_tCpthread_key_tF  (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR2#pthread_mutex_tS;  Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t u _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#k#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#u !    +FILE-! __FILE7! wchar_twint_t8 C J__wchH __wchbIC S   K __countE# __valueJ #__mbstate_tKS    __pos # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS g__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectgj_pv __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 ,__gconv_trans_data( B __trans_fct g|# __trans_context_fct h# __trans_end_fct i# __data j# __next k# __j_pve_,____gconv_fct H__gconv_init_fct K#__gconv_end_fct L@__gconv_trans_fct U_,__gconv_trans_context_fct Z__gconv_trans_query_fct ^v__gconv_trans_init_fct a__gconv_trans_end_fct b3 __gconv_info __nsteps # __steps # __data # __gconv_t 9H 4 __cd 29# __data 3#H 5__cd /9__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t : __gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA! _IO_FILE_plus__io_read_fnX(B__io_write_fnaXr__io_seek_fni__io_close_fnlfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval # r_major r_minor es e  center_lon! center_lat" ns# f0$ rh% false_easting& false_northing'  lamccfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 3 !+,+,++0- $+,++-+Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projected|=-DT!?|=G"aG(a+lamccforintlamccfor,0GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@0!=,p2p7pbEQHEbq+nGx/00Hp`00(G 0X0/G00G00;*1H8P <  P+H9<> I(T0W8Z@  ]f` rz` lamccfor.cr_majorr_minorfalse_northingfalse_eastingesecenter_loncenter_latnsf0rh__divdf3lamccforintp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccforadjust_loncos**"*PQ*H*22@I@*B*bI**I *"* Q*(I*"I Q*I!I*BI q*I!*(I"!*"*(bI!* *0RII#I"I#bI*0*8*0 I$" *0r I *@ *0 I$ * *8" 2P2 I%A *B *b I& I' * I( I) *H *P" I* *b * I" *2 I! *0 I$ * *8"*02h2@I* RI,p*0I"*HB*@I-*P% %'0'''` '` '0''''' '(/'0C'8W'@v'H'P'__` __` _0(_(%%'lamccinv.o/ 1082129503 59100 998 100644 19248 ` ELF2@5@@! @0Bf @ H@!'<|F pI>#H803 ' p"!~F(|Fx p H?#X803' p !~F0|F p`H?#h803' p!~F8|F pH?#x803 I>#pD00`8 H' p !|F 00<03 I>#DB pH?#`800H' p !@~F 00<03 'p"!~F' p !@~F 8`800`0H p  0`8$  ($P0 0LBP@!HH @ I>#DB % p$@<00P@!`@ `@ BH'p!~F ' p"!~F 8`800` H `0X  @BP @!`@  p$0803 I>#@B p@H?#`800H ' p"!~F 00<03' p!~F# H?#800x8 !BP@!|FxI?#|F pH?#`800H'p!~F ' p"!~F@ <00 PBP @!`@ ' p!@~FH 'p"!~F ' p"!~F@ <00 PBP @!`@ ' p!@~F|Fp H?#~F#@`<B!P @!H 'p"!~F ' p"!~F@ <00 PBP @!`@ ' p!~FH 'p"!@~F ' p"!~F@ <00 PBP @!`@ ' p!~F @BP @!`@ ' p !~FH I>#DBpH?#<00 H 800P @!`@ ' p!~F|FxH?#|Fp H?#p<00 0`0X p  0`0$  $|Fxx I?#|Fp@I?#<00 HBP@!`@ `@ 0 P @! @ 'p"!@~F' p !~F @800P@!`@ `@ 0 P@!`@  0 P@!`@ `@ B@@x$|F pI?#`800 $|Fx pI?#@<00P @!p@ 'p !@~F 0` H @ 0 P@!`@ `@ BH ' p"!~F@<00P @!H8`<00` H `H B(JBP @!H@<00P@!|FxxH?#|Fp H?#<00 HBP @!H@BP@!|F p`H?#800P @!H@<00P @!H!U "B810Bc  x ~F<~F p Q?#H803 D p"!~F~Fx p`Q?#90#D p !BH D 0"p0 0`0X xD<~F Q?#H D p"!@~F 8`800 p0X 0`0H   0`$  pQ?#`800 p0 D @`@  HDp!@~FD p !@~F 8`800` H `0 H 0 P H!`@ D p"!~F~Fx pQ?#8030@ Q?#@BF Q?#`D00 p0 D @`@  HDp!@~FD p !@~F 8`800` H `0 H 0 PH!`@ `0" J~F xQ?#H 00<03 xQ?#<B pQ?#803D p !~F 0p0 x Q?#DB pQ?#p800D @`@  HDp!@~FD p !@~F 8`800` H 0 P H!`@ D p"!~F xQ?#<B pQ?#`800p0 @B p$`800`$  Q?#@BFp$ H@BPH!`@ `@ J~F Q?#H8`<00` H @  0 PH!`@ `@ D p!@~F0 H@BP H!`@ D p !~FH D p"!~F@ @ 800`x !P H!`@ D p!~F p0803D p !B p`8rpB Q?#DB pP!8 @!@ xQ?#<B p`Q?#80  00<03 Q?#@B pQ?#@<00PH!`@ p@  p$`800`0H 0 P H!`@ D p"!~F p08038U` `P!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;lamccinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)lamccinvint3$r_maj+~r_min,~lat1-lat2.c_lon/c_lat0false_east1false_north2sin_po4cos_po5con6@ms17Hms28Ptemp9Xts0:`ts1;hts2<pintdoublelamccinvy(xt@yuHlonvPlatwXrh1z`con{hts|ptheta}xflag~long intsize_tǫlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&isigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,__uint64_t-__qaddr_t.I__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tI~__daddr_tL__caddr_tMchar__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tg__intptr_tj__socklen_tm 0__sched_paramE __sched_priorityF# s_pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr#s __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:0# __c_waiting;#pthread_cond_t< C __dummyB#pthread_condattr_tCpthread_key_tF (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR0#pthread_mutex_tS9  Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t s _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#i#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#s     +FILE- __FILE7 wchar_twint_t8A J__wchH __wchbIA Q  ~ K __countE# __valueJ #__mbstate_tKQ    __pos # __state ~ #_G_fpos_t    # __pos !# __state "~ #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS e__gconv_step` ? __shlib_handle r}# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objecteh]nt __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state ~ #( __trans #0~ *__gconv_trans_data( B __trans_fct gz# __trans_context_fct h# __trans_end_fct i# __data j# __next k# ]]h]ntc]*]]__gconv_fct H__gconv_init_fct K!__gconv_end_fct L>__gconv_trans_fct U]*__gconv_trans_context_fct Z__gconv_trans_query_fct ^t__gconv_trans_init_fct a__gconv_trans_end_fct b1 __gconv_info __nsteps # __steps # __data # __gconv_t 7H 4 __cd 27# __data 3#H 5__cd /7__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX&@__io_write_fnaVp__io_seek_fni__io_close_fnlfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval # r_major r_minor es e center_lon  center_lat! ns" f0# rh$ false_easting% false_northing& M lamccinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 2 !+,+,++1- $+,++++Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC|=-DT!G"aG&a+lamccinvintlamccinv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!@,@2@7@bEQxHb?.Qn@J2h23HpX30XJ 3X3/J30K03;"4@;h ?  H*P9<> I(T0W8Z@  ]f` rz` lamccinv.cr_majorr_minorfalse_eastingfalse_northingesecenter_loncenter_latnsf0rh__divdf3lamccinvintp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccinvatan2phi2zadjust_lon**"*HQ*P*22@I@*B*bI**I *"* Q*(I*"I Q*I!I*BI q*I!*(I"!*"*(bI!* *0RII#I"I#bI*0*8*0 I$" *0r I *@ *0 I$ * *8" 2P2 I%A *B *b I& I' * I( I) *H *P" I* *Ha *@ *P *0 II*2I,*0*0IA*B*8II$*BI-*"*0BIp* I.% %''''` '` '''''' '(-'0A'8U'@t'H'P'__` __` _(_(%%'merfor.o/ 1082129504 59100 998 100644 14648 ` ELF2'@@  3~F` `?#`  @3 x +<~F pJ?#H803 + p"!~F(~Fx p K?#X803+ p !~F0~F p`K?#h803 xJ?#p<00`8 H+ p !~F 00<03 J?#DB pK?#`800H+ p !@~F 00<03 J?#DB p`K?#`800H+ p !~F 00<03 +p"!~F x$800HBP@!`@ `@ BH+p!~F + p"!~F 8`800` H `0X  @BP @!`@  p$0803@ xJ?#<B p K?#800P @!0@ $~F p K?#800P@!p@ 0B   H + p"!@~F@BP@!`@ ` H `0X 0 P@!`@  0 P@!`@ `@ D0LBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B / U0  @"0D1(0)p0Be  x ~F<~F pO?#H803> p!~F~F pO?#90#> p!@~F 0 p  0`0X p  0`8  @$0 HR@BPH!H@ O?#DB pO?#800P H!`@ > p!@BH >p"!@~F > p"!@B@ <00 P@BP H!`@ > p!BH > 0"p0 0`0X 0 PH!~Fx pO?#80  p$8`<00` H pH 0 `8H "~F pN!800PH!~Fx pO?#80  p$8`<00` H pH 0 `8X "0UP `N!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;merfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)>merforint0>%r_maj*Er_min+Ecenter_lon,E@center_lat-EHfalse_east.EPfalse_north/EXtemp1E`intdoublemerforT>'lonPE`latQEhxRpySxtsUEsinphiVEEsize_tlong unsigned int__u_char unsigned char__u_short!$short unsigned int__u_int"Iunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)$__int32_t*>__uint32_t+I__int64_t,__uint64_t-__qaddr_t.N{__dev_t0+__uid_t1__gid_t2__ino_t3+__ino64_t4+__mode_t5__nlink_t6+__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<+__rlim64_t=+__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@+__fsblkcnt64_tA+__fsfilcnt_tB+__fsfilcnt64_tC+__id_tDI __valH# > long unsigned int__fsid_tI__daddr_tL>__caddr_tM,2char__time_tN__useconds_tOI__suseconds_tP__swblk_tQ__clock_tR__key_tS>__clockid_tV>__timer_tY>__ipc_pid_t\>__blksize_t___t_scalar_tf>__t_uscalar_tgI__intptr_tj__socklen_tmI n__sched_paramE __sched_priorityF># _pthread_fastlock __status# __spinlock># _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+># __schedpolicy,># __schedparam-<# __inheritsched.># __scope/># __guardsize0# __stackaddr_set1># __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:n# __c_waiting;#pthread_cond_t<HC __dummyB>#pthread_condattr_tC-pthread_key_tFI(S __m_reservedN># __m_countO># __m_ownerP# __m_kindQ># __m_lockRn#pthread_mutex_tSw Z __mutexkindY>#pthread_mutexattr_tZpthread_once_t^>pthread_t _IO_FILE-_flags>#_IO_read_ptr ,#_IO_read_end ,#_IO_read_base ,#_IO_write_base,# _IO_write_ptr,#(_IO_write_end,#0_IO_buf_base,#8_IO_buf_end,#@_IO_save_base,#H_IO_backup_base,#P_IO_save_end,#X_markers #`_chain #h_fileno>#p_blksize>#t_old_offset#x_cur_column"$#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:>#_unused2< # _IO_marker _next # _sbuf # _pos># ]  2  " 2 +FILE-] __FILE7] wchar_t>wint_t8I J__wchHL __wchbI 2  K __countE># __valueJ[ #__mbstate_tK    __pos # __state  #_G_fpos_t  6  # __pos !# __state " #_G_fpos64_t # $ &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR W 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u># __from_name w,# __to_name x,# __fct z#( __init_fct {#0 __end_fct |(#8 __min_needed_from >#@ __max_needed_from >#D __min_needed_to >#H __max_needed_to >#L __stateful >#P __data #X __gconv_loaded_object2>>>W  __gconv_step_data8 @ __outbuf # __outbufend # __flags ># __invocation_counter ># __internal_use ># __statep # __state #( __trans #0 h__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# >h>>(__gconv_fct HA__gconv_init_fct K___gconv_end_fct L|__gconv_trans_fct Uh__gconv_trans_context_fct Z__gconv_trans_query_fct ^> __gconv_trans_init_fct a17L>L__gconv_trans_end_fct bo __gconv_info __nsteps # __steps # __data #  __gconv_t uH 4 __cd 2u# __data 3 #?H 5__cd /u__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8>_G_uint16_t 9$_G_uint32_t :I__gnuc_va_list + _IO_jump_t_IO_lock_t.__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA] _IO_FILE_plus__io_read_fnXd~,__io_write_fna__io_seek_fni>>__io_close_fnl >fpos_tP O _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type >#name ,#arg1 E#arg2 E#retval E# r_majorE r_minorE lon_centerE lat_origin E e!E es!E m1"E false_northing#E false_easting$E  merfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h /++#,/ #++-+MERCATORTransformation cannot be computed at the polesmer-forwardG# øaG%a-DT!?|='merforintOmerfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!2, 2 7 bE Q6b5"nH8%PX%Hp%0`8 %%H%+8 &090;&;v&- P1 %08?@M(P R0  U^hmqu|merfor.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1__divdf3merforintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerforp_errortsfnzadjust_lonlog***1*R*8*@**I*(b*(rI* *0I*(IRIII2"I1*2*RIa*rI *I!*@*8I"** 2"2@2I$rI* I%*rI&*@**0"I'B*8P*R*0% %''''c'k''''0'C' W'(k'0'8'@'____ _(_(%%'merinv.o/ 1082129504 59100 998 100644 14416 ` ELF2'@@  3~F` `?#`  @3 x +<~F pJ?#H803 + p"!~F(~Fx p K?#X803+ p !~F0~F p`K?#h803 xJ?#p<00`8 H+ p !~F 00<03 J?#DB pK?#`800H+ p !@~F 00<03 J?#DB p`K?#`800H+ p !~F 00<03 +p"!~F x$800HBP@!`@ `@ BH+p!~F + p"!~F 8`800` H `0X  @BP @!`@  p$0803@ xJ?#<B p K?#800P @!0@ $~F p K?#800P@!p@ 0B   H + p"!@~F@BP@!`@ ` H `0X 0 P@!`@  0 P@!`@ `@ D0LBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B / U0  @"0D1(810Be  x ~F<~Fx pQ?#H803F p!~F~Fx pQ?#90#F p!@BHF 0p0 0`0X xF<~FxQ?#~Fx pQ?#8`<00`0X  ~Fx pQ?#`800 0" x$p800 0` H 0 PH!`@ `@ 0 P H!`@ F p!BHF p!B@ @ 800`x !P H!`@ F p!~F p0803F p!@B p`8r@B xQ?#<B p P!8 @!@($H8`<00 ` HF 88 0 PH!`@ p@ 0J`0H 0 P H!`@ F p!~F p08038U` `P!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;merinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)>merinvint0>%r_maj*Er_min+Ecenter_lon,E@center_lat-EHfalse_east.EPfalse_north/EXtemp1E`intdoublemerinvT>(xPE`yQEhlonRplatSxtsUEflagVElong intsize_tlong unsigned int__u_char unsigned char__u_short!.short unsigned int__u_int"Sunsigned int__u_long#__u_quad_t$__quad_t%__int8_t&signed char__uint8_t' __int16_t(short int__uint16_t).__int32_t*>__uint32_t+S__int64_t,__uint64_t-__qaddr_t.L__dev_t0)__uid_t1__gid_t2__ino_t3)__ino64_t4)__mode_t5__nlink_t6)__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<)__rlim64_t=)__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@)__fsblkcnt64_tA)__fsfilcnt_tB)__fsfilcnt64_tC)__id_tDI __valH# > long unsigned int__fsid_tI__daddr_tL>__caddr_tM*0char__time_tN__useconds_tOS__suseconds_tP__swblk_tQ__clock_tR__key_tS>__clockid_tV>__timer_tY>__ipc_pid_t\>__blksize_t___t_scalar_tf>__t_uscalar_tgS__intptr_tj__socklen_tmS l__sched_paramE __sched_priorityF># _pthread_fastlock __status# __spinlock># _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+># __schedpolicy,># __schedparam-:# __inheritsched.># __scope/># __guardsize0# __stackaddr_set1># __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:l# __c_waiting;#pthread_cond_t<FC __dummyB>#pthread_condattr_tC+pthread_key_tFS(S __m_reservedN># __m_countO># __m_ownerP# __m_kindQ># __m_lockRl#pthread_mutex_tSu Z __mutexkindY>#pthread_mutexattr_tZpthread_once_t^>pthread_t _IO_FILE-_flags>#_IO_read_ptr *#_IO_read_end *#_IO_read_base *#_IO_write_base*# _IO_write_ptr*#(_IO_write_end*#0_IO_buf_base*#8_IO_buf_end*#@_IO_save_base*#H_IO_backup_base*#P_IO_save_end*#X_markers #`_chain #h_fileno>#p_blksize>#t_old_offset#x_cur_column".#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:>#_unused2< # _IO_marker _next # _sbuf # _pos># [  0  0 +FILE-[ __FILE7[ wchar_t>wint_t8S} J__wchHJ __wchbI} 0  K __countE># __valueJY #__mbstate_tK    __pos # __state  #_G_fpos_t  4  # __pos !# __state " #_G_fpos64_t # " &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR U 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u># __from_name w*# __to_name x*# __fct z#( __init_fct {#0 __end_fct |&#8 __min_needed_from >#@ __max_needed_from >#D __min_needed_to >#H __max_needed_to >#L __stateful >#P __data #X __gconv_loaded_object0>>>U  __gconv_step_data8 @ __outbuf # __outbufend # __flags ># __invocation_counter ># __internal_use ># __statep # __state #( __trans #0  f__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# > f>>&__gconv_fct H?__gconv_init_fct K]__gconv_end_fct Lz__gconv_trans_fct Uf__gconv_trans_context_fct Z__gconv_trans_query_fct ^> __gconv_trans_init_fct a/5J>J__gconv_trans_end_fct bm __gconv_info __nsteps # __steps # __data #  __gconv_t sH 4 __cd 2s# __data 3 #=H 5__cd /s__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8>_G_uint16_t 9._G_uint32_t :S__gnuc_va_list + _IO_jump_t_IO_lock_t,__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA[ _IO_FILE_plus__io_read_fnXb|*__io_write_fna__io_seek_fni>>__io_close_fnl>fpos_tP M _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type >#name *#arg1 E#arg2 E#retval E# r_majorE r_minorE lon_centerE lat_origin E e!E es!E m1"E false_northing#E false_easting$E  merinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h /++#,/ $+++++MERCATORG# øaG&a'merinvintOmerinv, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !18,` 2` 7` bE Q5bs"n`7P%`%Hp%0x7 %H%+8&0 80 3&;n&@- 0 %08?@M(P R0  U^hmqu|merinv.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1__divdf3merinvintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerinvexpphi2zadjust_lon***1*R*8*@**I*(b*(rI* *0I*(IRIII2"I1*2*RIa*rI*I *@*8I!*@"*8r**0II#1* bI$***0bII%% %' '''c'k' '''.'A' U'(i'0'8'@'____ _ (_(%%'millfor.o/ 1082129504 59100 998 100644 12256 ` ELF2P"@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B 0!p0Be  x ~F< ~F pO?#H803> p!~F ~F pO?#90# xO?#`<00p0 0`0X 0 P H!`@ > p!B ~F pO?#80 x$ ~FpN!p<00 0p H 0 `8H "~Fx pO?#@<00PH!`@ p@  p$`800`0H 0 PH!`@ 0 P H!p@ @> p$!~FH 0 p H 0p H 0`8H  B`(8% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;millfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)millforint.#r*pcenter_long+xfalse_east,false_north-intdoublemillforG'lonB`latChxDpyExdlonHsize_tǘlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Flong int__int8_t&bsigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,F__uint64_t-__qaddr_t. 6__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tIw__daddr_tL__caddr_tMchar__time_tNF__useconds_tO__suseconds_tPF__swblk_tQF__clock_tRF__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_F__t_scalar_tf__t_uscalar_tg__intptr_tjF__socklen_tm )__sched_paramE __sched_priorityF# l_pthread_fastlock __statusF# __spinlock# _pthread_descr_struct_pthread_descr#l __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:)# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR)#pthread_mutex_tS2Z __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t l _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset}#x_cur_column"#_vtable_offset#b#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#l     +FILE- __FILE7 wchar_twint_t8: J__wchH __wchbI: J  w K __countE# __valueJ #__mbstate_tKJ    __pos }# __state w #_G_fpos_t    # __pos !# __state "w #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS ^__gconv_step` ? __shlib_handle rv# __modname s|# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object^aVgm __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state w #( __trans #0w #__gconv_trans_data( B __trans_fct gs# __trans_context_fct h# __trans_end_fct i# __data j# __next k# VVaVgm\V#VVy__gconv_fct H__gconv_init_fct K__gconv_end_fct L7__gconv_trans_fct UV#__gconv_trans_context_fct Z}y__gconv_trans_query_fct ^|m|__gconv_trans_init_fct a|__gconv_trans_end_fct b* |__gconv_info __nsteps # __steps # __data |# __gconv_t 0H 4 __cd 20# __data 3#H 5__cd /0__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX9__io_write_fnaOi|__io_seek_fni~__io_close_fnlfpos_tP   _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval # lon_center" R# false_easting$ false_northing% D millfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h - !, "+MILLER CYLINDRICALG!aZG%a@-DT!??)millforintmillfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!+(,P2P7PbEQ- bHn. @pP 0/    -/ 0/0 ;0!P(  +  &  5@GNU]fny}millfor.cRlon_centerfalse_eastingfalse_northingmillforintptitleradiuscenlonoffsetp__divdf3millforadjust_lontanlogr* * * * 2"IbII* * Ir* I*  * * I* IBIq* r* * % %''''-'5'' ' ' ' '___ _ _(_ %%'millinv.o/ 1082129504 59100 998 100644 12400 ` ELF2"@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B 8%0Bf  x ~F<~Fx pQ?#H803G p!B~Fx p P!90# xQ?#`<00p0 0`0X xG<~FxQ?#~Fx pQ?#8`<00`0X  PH xQ?#`<000 H@BPH!`@ p@ 0J`0H 0 P H!`@ G p!B p0803G p!~F@<00PH!`@ `@ 0 H@BPH!`@ `@ 0 PH!`@ 0 P H!p@ G p!@B x 0 p0X 0` H Bp0@% .? : ; ' I@ : ; I $ >  I: ; I : ;  : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;4: ; I millinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)millinvint.#r*pcenter_long+xfalse_east,false_north-intdoubleumillinvG(xBpyCxlonDulatEusize_tljlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%7long int__int8_t&Ssigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,7__uint64_t-__qaddr_t.'__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI__valH#  long unsigned int__fsid_tIh__daddr_tL__caddr_tMchar__time_tN7__useconds_tO__suseconds_tP7__swblk_tQ7__clock_tR7__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_7__t_scalar_tf__t_uscalar_tg__intptr_tj7__socklen_tm __sched_paramE__sched_priorityF# ]_pthread_fastlock__status7#__spinlock# _pthread_descr_struct_pthread_descr#] y__pthread_attr_s8*__detachstate+#__schedpolicy,#__schedparam-#__inheritsched.# __scope/#__guardsize0{#__stackaddr_set1# __stackaddr2y#(__stacksize3{#0 pthread_attr_t4<__c_lock:#__c_waiting;u#pthread_cond_t<C__dummyB#pthread_condattr_tCpthread_key_tF(S__m_reservedN#__m_countO#__m_ownerPu#__m_kindQ#__m_lockR#pthread_mutex_tS#Z__mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t ] _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offsetn#x_cur_column"#_vtable_offset#S#_shortbuf$ #_lock( #_offset1}#__pad17y#__pad28y#_mode:#_unused2< # _IO_marker_next #_sbuf #_pos#]      +FILE- __FILE7 wchar_twint_t8+ J__wchH __wchbI+ ;  h K__countE#__valueJ #__mbstate_tK;   __pos n#__state h #_G_fpos_t {   #__pos !}#__state "h #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS O__gconv_step` ?__shlib_handle rg#__modname sm#__counter u#__from_name w#__to_name x# __fct z#(__init_fct {#0__end_fct |#8__min_needed_from #@__max_needed_from #D__min_needed_to #H__max_needed_to #L__stateful #P__data y#X __gconv_loaded_objectOsRGX^ |__gconv_step_data8 @__outbuf |#__outbufend |#__flags #__invocation_counter #__internal_use #__statep # __state h #(__trans #0h __gconv_trans_data( B__trans_fct gd#__trans_context_fct h#__trans_end_fct i#__data jy#__next k# GyGRGX^MG|{yGG||jyx__gconv_fct Hx__gconv_init_fct K __gconv_end_fct L(__gconv_trans_fct UG__gconv_trans_context_fct Znj__gconv_trans_query_fct ^m^m__gconv_trans_init_fct amy__gconv_trans_end_fct b m__gconv_info __nsteps {#__steps #__data m# __gconv_t !H 4__cd 2!#__data 3#H 5__cd /!__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list +y _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX*y{__io_write_fna@Zym{__io_seek_fnioy}__io_close_fnlyfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE zexception( type #name #arg1 #arg2 #retval # lon_center" R# false_easting$ false_northing% S millinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h - !, !+++MILLER CYLINDRICALG!aZG&a?-DT!?@)millinvintmillinv,pGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@p!,X,27bEQ`. bWn/X p @p 0/    -(0%!0@00U!;!( +  &  5@GNU]fpny}millinv.cRlon_centerfalse_eastingfalse_northingmillinvintptitleradiuscenlonoffsetp__divdf3millinvadjust_lonexpatanr* * * * 2"IbII* * Ir* * !* "* RII* I2* RIII* * % %'p'''-'5'p' ' ' ' '___ _ _p(_ %%'molwfor.o/ 1082129504 59100 998 100644 13960 ` ELF2'@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 G?#@B pF!`800H p !@B 00<03 xG?#p<00`8 H p !~F 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B @10Bb  R@!K<~F pR?#H803 K p"!~F~Fx p S?#90# R?#`@00p0 0`0X 0 P H!`@ K p!~F~Fx`S?#~F pR?#`800~Fx(S?#~F pR?#800P H!p@  p$`800` H J~F pS?#80# xR?#<BN R?#@BM R?#DB p`S?#800PH!p@ 0J p0HK p!@~F 0`0X  0"K p !~F@@BPH!`@ `H  0 PH!`@ `@ L~F`S?#~Fxx`S?#~FpS?#p<00 0`0H  ~Fx pS?#`800 p  0`8$ B R?#@B pS?#80 81@B P$0 `XV@BPH!H @ R?#DBpS?#~FxxS?#~F pS?#80  p!p<0#@H R?#DBM xR?#<B p`S?#@<00PH!`@ `@ J~F pR?#`800 p  0 p8X 0`8$  R?#DB p@S?#803 xR?#<B pS?#P80  8 0 p HK p !~F 0   H K p"!~F@@BPH!`@ p H 0`0H J~Fx p S?#P80  8 0   HK p !~F@@BPH!`@ p H 0`0H JR!@Up "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;;molwfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)molwforint*#r&pcenter_long'xfalse_east(false_north)intdoublemolwforB)lon>lat?x@@yAHdelta_lonCPthetaDXdelta_thetaE`conFhiGplong intsize_tlong unsigned int__u_char unsigned char__u_short!2short unsigned int__u_int"Wunsigned int__u_long#__u_quad_t$__quad_t%__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)2__int32_t*__uint32_t+W__int64_t,__uint64_t-__qaddr_t.P__dev_t0-__uid_t1 __gid_t2 __ino_t3-__ino64_t4-__mode_t5 __nlink_t6-__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<-__rlim64_t=-__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@-__fsblkcnt64_tA-__fsfilcnt_tB-__fsfilcnt64_tC-__id_tD I __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM.4char__time_tN__useconds_tOW__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgW__intptr_tj__socklen_tmW p__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-># __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:p# __c_waiting;#pthread_cond_t<JC __dummyB#pthread_condattr_tC/pthread_key_tFW(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRp#pthread_mutex_tSy Z __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr .#_IO_read_end .#_IO_read_base .#_IO_write_base.# _IO_write_ptr.#(_IO_write_end.#0_IO_buf_base.#8_IO_buf_end.#@_IO_save_base.#H_IO_backup_base.#P_IO_save_end.#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"2#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# _  4  $ 4 +FILE-_ __FILE7_ wchar_twint_t8W J__wchHN __wchbI 4  K __countE# __valueJ] #__mbstate_tK    __pos # __state  #_G_fpos_t  8  # __pos !# __state " #_G_fpos64_t # & &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR Y 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w.# __to_name x.# __fct z#( __init_fct {#0 __end_fct |*#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object4Y  __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 j__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# j*__gconv_fct HC__gconv_init_fct Ka__gconv_end_fct L~__gconv_trans_fct Uj__gconv_trans_context_fct Z__gconv_trans_query_fct ^  __gconv_trans_init_fct a39NN__gconv_trans_end_fct bq __gconv_info __nsteps # __steps # __data #  __gconv_t wH 4 __cd 2w# __data 3 #AH 5__cd /w__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 92_G_uint32_t :W__gnuc_va_list + _IO_jump_t_IO_lock_t0__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA_ _IO_FILE_plus__io_read_fnXf.__io_write_fna__io_seek_fni__io_close_fnl fpos_tP Q _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name .#arg1 #arg2 #retval # lon_center R false_easting  false_northing!  molwfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h ) !,  !+x +"++,MOLLWEIDEIteration failed to convergeMollweide-forwardG!aZG'a-DT! @|=@-DT!?)d?;f?)?molwforintmolwfor,` GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@` !H10, 2 7 bE ?Qx4 bA"n5(%Hp%Hp%05 %0& &-@6E&0X60u&;&- 0 (*  5@GNU]f`ny}molwfor.cfalse_eastingfalse_northingRlon_centermolwforintptitleradiuscenlonoffsetp__divdf3molwforadjust_lonsincosp_errorr* * * * 2"IbII* * Ir* IbI* III* 220I* I"* B* * * 2IR* * * (I * % %'` '''-'5'` ' ' ' 6' '___ _ _` (_ %%'molwinv.o/ 1082129504 59100 998 100644 13664 ` ELF2&@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 G?#@B pF!`800H p !@B 00<03 xG?#p<00`8 H p !~F 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B 8%0Bd  P@!E<~Fx p`Q?#H803E p!~F~Fx pQ?#90# x@Q?#`<00p0 0`0X xE<~Fx`Q?#~Fx p`Q?#8`<00`0X  ~Fx(Q?#~Fx x`Q?#H 8 0` H @ 0 PH!`@ `@ J~Fx pQ?#`800 p  0`0$  x@Q?#<BG p$`800 x@Q?#<B pQ?#800P H!`@ E p!~FPH 8 0   HE p!~F@@BPH!`@ ` HE 88 0 PH!`@ p@ 0J`0H 0 P H!`@ E p!~F p0803E p!~F pp800 0`8$  x@Q?#<B pQ?#80  00<03 x@Q?#<B pQ?#80  8 0`0$  x@Q?#<B pQ?#80  00<03 x@Q?#<BG x@Q?#<B pQ?#`800  0HE p!~F 0`0H 0 PH!`@ `0H0 H@BPH!`@ `@ J~Fx pQ?#`800` `$  x@Q?#<B pQ?#803 x@Q?#<B pQ?#800P H!`@ E p!@~F p0803P!8U` "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;molwinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)molwinvint)#r%pcenter_long&xfalse_east'false_north(intdoublemolwinvA(x=Py>Xlon?`lat@hthetaBpargCxsize_tǧlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Ulong int__int8_t&qsigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,U__uint64_t-__qaddr_t.E__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tMchar__time_tNU__useconds_tO__suseconds_tPU__swblk_tQU__clock_tRU__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_U__t_scalar_tf__t_uscalar_tg__intptr_tjU__socklen_tm 8__sched_paramE __sched_priorityF# {_pthread_fastlock __statusU# __spinlock# _pthread_descr_struct_pthread_descr#{ __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:8# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR8#pthread_mutex_tSAZ __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t { _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#q#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#{ '    +FILE-' __FILE7' wchar_twint_t8I J__wchH __wchbII Y   K __countE# __valueJ% #__mbstate_tKY    __pos # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR ! 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS m__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectmpev|! __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 2__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# eepev|ke2ee__gconv_fct H __gconv_init_fct K)__gconv_end_fct LF__gconv_trans_fct Ue2__gconv_trans_context_fct Z__gconv_trans_query_fct ^|__gconv_trans_init_fct a__gconv_trans_end_fct b9 __gconv_info __nsteps # __steps # __data # __gconv_t ?H 4 __cd 2?# __data 3# H 5__cd /?__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA' _IO_FILE_plus__io_read_fnX.H__io_write_fna^x__io_seek_fni__io_close_fnlfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval # lon_center R false_easting false_northing   molwinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h ( !, #+++"++MOLLWEIDEG!aZG&a;f??)d?-DT! -DT! @)molwinvintmolwinv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!80,0 20 70 bE QP3 b!np4`$p$Hp$04 $(% %-5=%0050m%;%, / (*  5@GNU]fnswmolwinv.cfalse_eastingfalse_northingRlon_centermolwinvintptitleradiuscenlonoffsetp__divdf3molwinvasincosadjust_lonsinr* * * * 2"IbII* * Ir* * A* R* I* @* I* * * IbII* b* * * I* II% %''''-'5'' ' ' ' '___ _ _(_ %%'obleqfor.o/ 1082129504 59100 998 100644 17440 ` ELF2/@@00Bd   x ~F<~F p`G?#H803 p!~F(~F pG?#X803 p!~F0~F pG?#h803 p!B8~F p F!x803 x@G?#p<00`8 H p !~F 00<03 @G?#@B pG?#`800H p !@~F 00<03 @G?#@B pG?#`800H p !~F 00<03 @G?#@B pF!`800H p !@B 00<03 HBP @!H@BP @!H@BP @!H@BP @!H @(JBP @!H @(JBP @!H @(JBP @!H@<00P @!H@PH!P@!B 810Bf  P@!G<|F pQ>#H803 G p"!~F|Fx p P?#90#Gp !~F Q>#`D00p0 0`0X |FxpQ>#@~FC@<B` !PH!|Fp@P?#~FB@<B` !P H!H G p"!@~F 8`800  H Q>#@BpP?#p<00 0 p H G p"!~F 0` H `0 H 0 P H!`@ G p!~F|F(Q?#|FxP?#|Fp`P?#p<00 0  H Q>#DBpP?#p<00 0  H Q>#@BpP?#p<00 0 p H G p"!~F 0` H `0 X H$ 0 P H!p@  p$`800`0H J|FxpQ?#@~FE@<B` !PH!|F(aQ?#|F pP?#@<00PH!`@ `@ 0 PH!`@ `0H J|FxQ?#|Fx`Q?#|Fp Q?#p<00 0` H  |FxQ?#|Fx`Q?#|Fp@Q?#p<00 0` H  |Fx pQ?#@<00PH!`@ `@ 0 P H!`@ G p !~F|F(aQ?#|Fx pQ?#@<00PH!`@  @ G p !~F@@BPH!`@   H G p"!~F 0 `0H0 H@BPH!`@ `@ 0 PH!`@  0 PH!`@ `@ J|Fx p`Q?#800P H!`@ G p !~F|F p P?#P80  x$p800 0   HG p!~F 0 `0H0 H@BPH!`@ `@ 0 PH!`@ p H 0`0H J|F pP?#P80  x$p800 0   H G p"!~F 0 `0H0 H@BPH!`@ `@ 0 PH!`@   HG p!~F@@BPH!`@   HG p !~F 0 `0H0 H@BPH!`@ `@ 0 PH!`@  0 PH!`@ p@  p$`800`0H JB @8U` "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;obleqfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)Robleqforint1R#r)YPcenter_long*YXcenter_lat+Y`shape_m,Yhshape_n-Ypangle.Yxfalse_east/Yfalse_north0YintdoubleobleqforTR(lonPY~latQY~xRySdelta_lonUYsin_delta_lonVYcos_delta_lonWYsin_latXYcos_latYYzZYAz[Y@sin_Az\YHcos_Az]YPtemp^YXx_prime_Y`y_prime`YhMaYpNbYxYsize_tlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"9unsigned int__u_long#__u_quad_t$__quad_t%{long int__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*R__uint32_t+9__int64_t,{__uint64_t-__qaddr_t.>k__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7 __off64_t8 __loff_t9 __pid_t:__ssize_t; __rlim_t<__rlim64_t=__blkcnt_t> __blkcnt64_t? __fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH# R long unsigned int__fsid_tI__daddr_tLR__caddr_tM"char__time_tN{__useconds_tO9__suseconds_tP{__swblk_tQ{__clock_tR{__key_tSR__clockid_tVR__timer_tYR__ipc_pid_t\R__blksize_t_{__t_scalar_tfR__t_uscalar_tg9__intptr_tj{__socklen_tm9 ^__sched_paramE __sched_priorityFR# _pthread_fastlock __status{# __spinlockR# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+R# __schedpolicy,R# __schedparam-,# __inheritsched.R# __scope/R# __guardsize0# __stackaddr_set1R# __stackaddr2#( __stacksize3#0pthread_attr_t4 < __c_lock:^# __c_waiting;#pthread_cond_t<8 C __dummyBR#pthread_condattr_tC pthread_key_tF9 (S __m_reservedNR# __m_countOR# __m_ownerP# __m_kindQR# __m_lockR^#pthread_mutex_tSg  Z __mutexkindYR#pthread_mutexattr_tZ pthread_once_t^Rpthread_t _IO_FILE-_flagsR#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_filenoR#p_blksizeR#t_old_offset#x_cur_column"#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:R#_unused2< # _IO_marker _next # _sbuf # _posR# M "   " +FILE-M __FILE7M wchar_tRwint_t89o J__wchH< __wchbIo  "  K __countER# __valueJK #__mbstate_tK    __pos # __state  #_G_fpos_t  & # __pos !# __state " #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR G 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter uR# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from R#@ __max_needed_from R#D __min_needed_to R#H __max_needed_to R#L __stateful R#P __data #X __gconv_loaded_object"RRRG __gconv_step_data8 @ __outbuf # __outbufend # __flags R# __invocation_counter R# __internal_use R# __statep # __state #( __trans #0 X__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# RXRR __gconv_fct H1__gconv_init_fct KO__gconv_end_fct Ll __gconv_trans_fct UX__gconv_trans_context_fct Z__gconv_trans_query_fct ^R__gconv_trans_init_fct a!'<R<__gconv_trans_end_fct b_ __gconv_info __nsteps # __steps # __data # __gconv_t eH 4 __cd 2e# __data 3#/H 5__cd /e__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8R_G_uint16_t 9_G_uint32_t :9__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAM _IO_FILE_plus__io_read_fnXTn__io_write_fna__io_seek_fniRR__io_close_fnlRfpos_tP ? _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type R#name #arg1 Y#arg2 Y#retval Y# lon_centerY lat_oY thetaY m Y n!Y R"Y sin_lat_o#Y cos_lat_o$Y false_easting%Y false_northing&Y  obleqfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 0 !+++"+++++++OBLATED EQUAL-AREAParameter m: Parameter n: Theta: G!aG&a@+obleqforintcobleqfor,`GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@`!:,27bEQAb)n0C`-X-Hp.0HC 0.8.P8./Cg.0C0.;.5 9 (! #)@7HF0P8  Zfmt{ obleqfor.cRlon_centerlat_omnthetafalse_eastingfalse_northingsin_lat_ocos_lat_oobleqforintptitleradiuscenloncenlatgenrptoffsetptsincos__divdf3obleqforacosatan2sinasincos*(*"*Q*r* **@*H2"I1*(BIQ*bIq*I*2I* 20I*2HI!*@"*HBI Q*a*0b*8rI!2*I!I!*02*8I$R*8*0BI%`*I!*I"BI&B *b I" I' * I"R I( * I" I(B I" I' * *(2 * R I" I& *@ * *(R *r I" I& I(B* bI"I(I"*H% %'`'''y''`''''&' 9'(T'0o'8'@'H'____ _`(_ %%'obleqinv.o/ 1082129504 59100 998 100644 17664 ` ELF20@@00Bd   x ~F<~F p`G?#H803 p!~F(~F pG?#X803 p!~F0~F pG?#h803 p!B8~F p F!x803 x@G?#p<00`8 H p !~F 00<03 @G?#@B pG?#`800H p !@~F 00<03 @G?#@B pG?#`800H p !~F 00<03 @G?#@B pF!`800H p !@B 00<03 HBP @!H@BP @!H@BP @!H@BP @!H @(JBP @!H @(JBP @!H @(JBP @!H@<00P @!H@PH!P@!B 810Bg  P@!@<~F p P?#H803@ p!~F~F p`P?#90# xP?#`<00p0 0`0X x@<~F P?#~Fx p P?#8`<00`0X  ~F(Q?#~Fx P?#H8`<00` H @  0 PH!`@ `@ 0 P H! @  p$@<00PH!`@ `@ `H J~F (Q?#H8`<00 ` H@ 88 0 PH!`@  @ @ p!~F 0 `0H0 H@BPH!`@ `@ 0 PH!`@   H@ p !~F@@BPH!`@  0 PH!`@ `@ J~Fx(aQ?#~F pQ?#800P H! @  p$@<00PH!`@ `@ `H J~Fx(!Q?#~F p`Q?#800PH!`@ `0H J~Fx(AQ?#~F pQ?#800PH!`@  0H@ p!~F 0 `0H0 H@BPH!`@ `@ 0 PH!`@   H@ p !~F@@BPH!`@  0 PH!`@ `@ J~Fx(Q?#~Fx Q?#~Fp Q?#p<00 0  H@p!~F@ p !~F 8`800` H `0 H 0 P H!`@ p$0 H@BPH!`@ `@ J~Fx(P?#~F pQ?#800PH!`@ `0H J~Fxx Q?#~Fp@Q?#<00 H@BP H!`@ @ p!~F~FQ?#~Fx pP?#8`<00`0X  ~FpQ?#~FG@<B` !PH!~FxpP?#@~FC@<B` !P H!H@ p !~F 8`800  H P?#@BpP?#p<00 0 p H@ p!~F 0` H `0 H 0 P H!`@ @ p !~F p0803@p!@~F@ p !~F 8`800  H P?#@BpP?#p<00 0  H P?#@BpP?#p<00 0 p H@ p!~F 0` H `0 X H$ 0 P H!p@  p$`800`0H 0 P H!`@ @ p !~F p0803P!8U` "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;obleqinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)Robleqinvint3R#r+YPcenter_long,YXcenter_lat-Y`shape_m.Yhshape_n/Ypangle0Yxfalse_east1Yfalse_north2YintdoubleobleqinvVR(xRYySYlonTlatUzWYsin_zXYcos_zYYAzZYtemp[Y@x_prime\YHy_prime]YPM^YXN_Y`diff_angle`Yhsin_diff_angleaYpcos_diff_anglebYxYsize_tǨlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Vlong int__int8_t&rsigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*R__uint32_t+__int64_t,V__uint64_t-__qaddr_t.F__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH# R long unsigned int__fsid_tI__daddr_tLR__caddr_tMchar__time_tNV__useconds_tO__suseconds_tPV__swblk_tQV__clock_tRV__key_tSR__clockid_tVR__timer_tYR__ipc_pid_t\R__blksize_t_V__t_scalar_tfR__t_uscalar_tg__intptr_tjV__socklen_tm 9__sched_paramE __sched_priorityFR# |_pthread_fastlock __statusV# __spinlockR# _pthread_descr_struct_pthread_descr#| __pthread_attr_s8* __detachstate+R# __schedpolicy,R# __schedparam-# __inheritsched.R# __scope/R# __guardsize0# __stackaddr_set1R# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:9# __c_waiting;#pthread_cond_t< C __dummyBR#pthread_condattr_tCpthread_key_tF (S __m_reservedNR# __m_countOR# __m_ownerP# __m_kindQR# __m_lockR9#pthread_mutex_tSB  Z __mutexkindYR#pthread_mutexattr_tZ pthread_once_t^Rpthread_t | _IO_FILE-_flagsR#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_filenoR#p_blksizeR#t_old_offset#x_cur_column"#_vtable_offset#r#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:R#_unused2< # _IO_marker _next # _sbuf # _posR#| (    +FILE-( __FILE7( wchar_tRwint_t8J J__wchH __wchbIJ Z   K __countER# __valueJ& #__mbstate_tKZ    __pos # __state  #_G_fpos_t   # __pos !# __state " #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR " 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS n__gconv_step` ? __shlib_handle r# __modname s# __counter uR# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from R#@ __max_needed_from R#D __min_needed_to R#H __max_needed_to R#L __stateful R#P __data #X __gconv_loaded_objectnRqfw}RR" __gconv_step_data8 @ __outbuf # __outbufend # __flags R# __invocation_counter R# __internal_use R# __statep # __state #( __trans #0 3__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# fRfqfw}lf3RffR__gconv_fct H __gconv_init_fct K*__gconv_end_fct LG__gconv_trans_fct Uf3__gconv_trans_context_fct Z__gconv_trans_query_fct ^R}__gconv_trans_init_fct aR__gconv_trans_end_fct b: __gconv_info __nsteps # __steps # __data # __gconv_t @H 4 __cd 2@# __data 3# H 5__cd /@__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8R_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA( _IO_FILE_plus__io_read_fnX/I__io_write_fna_y__io_seek_fniRR__io_close_fnlRfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type R#name #arg1 Y#arg2 Y#retval Y# lon_centerY lat_o Y theta!Y m"Y n#Y R$Y sin_lat_o%Y cos_lat_o&Y false_easting'Y false_northing(Y  obleqinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 2 !+++"++++++++OBLATED EQUAL-AREAParameter m: Parameter n: Theta: G!aG&a@+obleqinvintcobleqinv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!@; ,@2@7@bEQ`Bb4*nD-XH.Hp.0(D ..P./D.0D0'/;b/6 p: (! #)@7HF0P8  Zfmt{P obleqinv.cRlon_centerlat_omnthetafalse_eastingfalse_northingsin_lat_ocos_lat_oobleqinvintptitleradiuscenloncenlatgenrptoffsetptsincos__divdf3obleqinvasincossinsqrtatan2adjust_lon*(*"*Q*r* **@*H2"I1*(BIQ*bIq*I*2I* 20I*2HI!*@"*HBI Q*a*0b*8rI!"*@*H* *(BI"I$* *I"**(rI"* I""I%bI%I"I$ *"*BI"I& I&b * I" I% I%B I"2 I'P *b I" I$" I(r * I! I!! *0R *8 I$b*8*0RI(p*I)% %''''y''''''' '(/'0J'8i'@'H'____ _(_ %%'omerfor.o/ 1082129504 59100 998 100644 34904 ` ELF2]@@ % P0Bc ` J@!,<|F p K>#H803 , p"!|F(|Fx p`K>#X803, p !|F0|F pK>#h803, p!|F8|F pK>#x803 K>#pD00`8 H, p !@|F 00<03 K>#DB p@K>#`800H, p !@|F 00<03 K>#DB pK>#`800H, p !|F 00<03 ,p"!~F x$800HBP@!`@ `@ BH,p!~F , p"!~F 8`800` H `0X  @BP @!`@  p$0803@pH!P@!|Fx J?#H8`<00 p H 0` H `0X   0`0X 0 P @!`@ , p !~F  @HBP @!p@  p$`800 p H 0`0X 8 0 P@!`@ `@ `H 0 P @!`@  p$0803  p$8`<00 p H 0 p H , p"!~F 0 ` H, p!@~F0 HBP@!`@ `@ B 0 p  0`8$ ( K>#@B p`J?#803 0@p$H@<00 P BP @!`@ , p"!~F|Fx p J?#800P @!`@ , p !@~FH K>#DBp@J?#p<00 0  H K>#@Bp J?#p<00 0` H 0 P@!`@ `@ BH8`<00` H `X `$  p$`800` B K>#DB@- $H8`<00` H `X 0 P@!p@ 0B`8X D@ xK>#<B@- $H8`<00` H `X 0 P@!p@ 0B`8H D@@ K>#@B- p$`800 $|F p`J?#@<00P @!p@ , p!~F 0`H B 0$`0 P @!H@<00P @!H @8NBP @!H@<00P@!B pJ!80 09B K>#DB@. xK>#<B - K>#@Bp`K?# HBP@!`@ p@ 0B p8X 0` H D|F p`K>#800P @!`@ p$0 HBP@!`@ `@ 0 P @!`@ , p!@~F H, p !@~F@BP @!p@ , p"!~F 0` H 0 P @!`@ ,p!|F0 HBP@!`@ p@ 0B`8X D|F p`K>#p800 0` H 0 8NBP @!H@BP @!H@BP@!|F x J?#H 0` |Fx p J?#p800 0`0$  K>#@B p J?#p800 0`0X p  0`0$  K>#DB pK?#800@$BP@!|Fx p`K>#800@$BP @!H 0` pB$H8`<00` H `X 0 P @!`@ p$0 HBP@!`@ `@ 0 P @! @  p$@<00P@!`@ `@ `0" `H B0@$H8`<00` H `X 0 P @!`@ p$0 HBP@!`@ `@ 0 P @! @  p$@<00P@!`@ `@ `H B@ 0$`0 8NBP@!HH@ @J!@B p`J!800P @!`@ , p"!~FH)p!B , p"!~F@ <00 PBP @!`@ , p!~FB pJ!800P @!`@ , p"!~FH)p!@B , p"!~F@ <00 PBP @!`@ , p!@~F|F pJ?#@<00P @!`@ , p"!~F|Fx pJ?#@<00P @!`@ , p !~F|FaK?#H, p !~F @800P@!`@ `@ B|FK?#|FxaK?#|Fp`K?# HBP@!`@ p@ 0B p8X 0` H D|F K?#H8`<00  H,p!~F, p !~F 8`800` H 0 X x$p800 0  H ,p"!~F, p !~F 8`800` H `0 H H$ 0 P@!`@ `@ B|F!K?#|FxxJ?#|FpJ?#p<00 0 0X ,p"!~F, p !~F 8`800`0H 0 P@!`@ `@ B|Fx@K?#B pJ! ) 0"p0 0`0X |Fx p@K?#p800 0`8$ 8 @J!@B* @J!DB pJ!p800 0`0X  xK>#<B p@K?#p800 0`0$ 8 @J!@B* @J!DB pJ!p800 0`0H  xK>#<B- @J!@B pJ! ) 0"p0 0`0X H 8 0 p H, p!~F 0` H 0 P @!p@ , p !~F 0 ` H , p"!@~F0 HBP@!`@ `@ 0 P@!Bx pJ!) 0 p0 0 p0H 0   HHBP@!`@ `@ `0X BH) 0p0 0`0X 0 P @!`@ , p!~FH, p !~F 8`800` H 0 P @!`@ , p"!~F0 HBP@!`@ `@ 0 P @!`@ , p!@~FH, p !@~F@BP@!p@ 0B` H 0 P @!`@ , p"!|F ) 0 p0  0` H 0 8NBP@!Bx p`J!p800 0` H 0 8NBP@!B pJ!p800 0` H 0 8NBP@!B pJ!p800 0` H 0 8NBP@!Bxx`J!BpJ!p<00 0`0X p  0`8  0$`0 8NBP@!PH`@ K>#DB( @J!@B p`J!`800` |F p J?#p800 0`8 B xK>#<B p J?#p800 0`0X p  0`8  0$`0 8NBP@!PH @ p$`800 p  0`0X p  0`8  0$`0 8NBP@!PHp@ K>#@B pK?#800@$BP@!|F p`K>#800@$BP @!H 0`  $H8`<00` H `X 0 P @!`@ p$0 HBP@!`@ `@ 0 P @! @  p$@<00P@!`@ `@ `H Bp@$H8`<00` H `X 0 P @!`@ p$0 HBP@!`@ `@ 0 P @! @  p$@<00P@!`@ `@ `0" `H B @! J! U0 "B@10B`  x ~F<~F p`R?#H803 I p"!~F~Fx pR?#90#I p !~F@@BP H!`@ I p"!~FHI 0p0 0`0X 0 P H!`@ I p!~FHI p !~F 8`800` H 0 P H!`@ I p"!~F~Fx p`R?#`800 p  0`0X p  0`0$  $~Fx`R?#~FpR?#@00 H800P H!`@ I p!B~F(!S?#~F pR!@<00P H!`@  p$800 0 PH!`@ `@ J~Fx0S?#~F(!S?#~Fp S?# H@BPH!`@ p@ 0J p8X 0` H L~Fx0R?#~F(!S?#~Fp S?# H@BPH!`@ p@ 0J p0H 0` H L~Fx(S?#~F pS?#8`<00  H I p"!~F8`<00` H `0 XI p!~F0 H@BPH!`@ `@ JHI p !~F 8`800` H 0 P H!`@ I p"!~F~Fx pS?#`800 p  0`8$ H @R?#@BM p$8`<00 p H I p"!~F 0` H  @ x@R?#<BM @R?#@B pS?#8`<00  H I p"!~F8`<00` H `0 HI p!~F0 H@BPH!`@ `@ 0 P H!p@  p$`800 ` H0 H@BPH!`@ `@ J~F pS?#`800`0$  @R?#DBM x@R?#<BM p$p800 0 ` H0 H@BPH!`@ p@ 0J`8H L`@ @R?#@B p`R?#`800`  @R?#DBN p$`800P@ x@R?#<BN p$`800`0"  @R?#@BMx$~Fp`R?#p<00 0 ` H0 H@BPH!`@ `@ J x@R?#<B pS?#`800` `X p  0`8  P$0 `XV@BPH!hH`@ @R?#@BN @R?#DB pS?#`800 p0XI p!~F 0`H 8 0 PH!`@ `@ 0 P H!H 8 0` H `H0 H@BPH!`@ `@ J~F@S?#~F p@S?#8`<00`0X  ~Fx pR?#80  x@R?#<B pS?#8`<00p H 0  0HI p !~F8`<00` H `0 H "~F pR?#80  x@R?#<B p@S?#8`<00p H 0  0HI p !@~F8`<00` H `0 X "@Up `R!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;comerfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)xomerforint=x%r_maj0~r_min1~scale_fact2~azimuth3~lon_orig4~lat_orig5~false_east6~false_north7~lon18lat19lon2: lat2;(mode<0temp>con?com?ts@ts1Ats2AhBlBjC@pCHdlonCPfDXgD`gamaDhsinphiEpintdoublelong intomerforx)lonlatxԍyՍsin_phitcon@qHusPvlXul`vshspdlonxts1size_tǡlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int" unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&_signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*x__uint32_t+ __int64_t,__uint64_t-__qaddr_t.?__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH# x long unsigned int__fsid_tIt__daddr_tLx__caddr_tMchar__time_tN__useconds_tO __suseconds_tP__swblk_tQ__clock_tR__key_tSx__clockid_tVx__timer_tYx__ipc_pid_t\x__blksize_t___t_scalar_tfx__t_uscalar_tg __intptr_tj__socklen_tm  &__sched_paramE __sched_priorityFx# i_pthread_fastlock __status# __spinlockx# _pthread_descr_struct_pthread_descr#i __pthread_attr_s8* __detachstate+x# __schedpolicy,x# __schedparam-# __inheritsched.x# __scope/x# __guardsize0# __stackaddr_set1x# __stackaddr2 #( __stacksize3#0pthread_attr_t4 < __c_lock:&# __c_waiting;#pthread_cond_t<  C __dummyBx#pthread_condattr_tC pthread_key_tF  (S __m_reservedNx# __m_countOx# __m_ownerP# __m_kindQx# __m_lockR&#pthread_mutex_tS/  Z __mutexkindYx#pthread_mutexattr_tZ pthread_once_t^xpthread_t i _IO_FILE-_flagsx#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_filenox#p_blksizex#t_old_offsetz#x_cur_column"#_vtable_offset#_#_shortbuf$ #_lock( #_offset1#__pad17 #__pad28 #_mode:x#_unused2< # _IO_marker _next # _sbuf # _posx#i     +FILE- __FILE7 wchar_txwint_t8 7J__wchH__wchbI7 G tK __countEx# __valueJ#__mbstate_tKG  __pos z# __state t#_G_fpos_t  # __pos !# __state "t#_G_fpos64_t # &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS [__gconv_step` ? __shlib_handle rs# __modname sy# __counter ux# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from x#@ __max_needed_from x#D __min_needed_to x#H __max_needed_to x#L __stateful x#P __data #X __gconv_loaded_object[x^Sdjxx __gconv_step_data8 @ __outbuf # __outbufend # __flags x# __invocation_counter x# __internal_use x# __statep # __state t#( __trans #0t __gconv_trans_data( B __trans_fct gp# __trans_context_fct h# __trans_end_fct i# __data j # __next k# Sx S^SdjYS x SSv x__gconv_fct H__gconv_init_fct K__gconv_end_fct L4__gconv_trans_fct US __gconv_trans_context_fct Zzv__gconv_trans_query_fct ^xyjy__gconv_trans_init_fct axy __gconv_trans_end_fct b' y__gconv_info __nsteps # __steps # __data y# __gconv_t -H 4 __cd 2-# __data 3#H 5__cd /-__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8x_G_uint16_t 9_G_uint32_t : __gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX6 __io_write_fnaLf y__io_seek_fni{x x__io_close_fnlx fpos_tP _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type x#name #arg1 #arg2 #retval # r_major r_minor scale_factor lon_origin lat_origin  e! es! false_northing" false_easting# sin_p20$ cos_p20$ bl% al& d' el( u( singam) cosgam) sinaz* cosaz* 8 omerfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h < ,+,,++,,,,++++!+,++++++++/+++  +++,+-+++++-+OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Point projects into infinityomer-for@|=?cܥL@-DT!?-DT! -DT!@-DT! @-DT!?|=?Hz>-DT! @G#aG'a)gomerforintomerfor,5GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@5!pjX,62676bEr7gQȄbQ<nhZ@X[h[Hp\0 8\8\-e\0(0\;\cX$ Hi$  ( 38B@P0S(UH]PeXh`khmpp{x  & & omerfor.cr_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesesin_p20cos_p20blaldellon_originsingamcosgamsinazcosazu__divdf3omerforintsqrttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerforcoslog**"*Q* r*8*@**I$!*0*0I&*(* *H*PI'*0*H*HR*0I&*P*I(*0*0bI$I&*X*`**X*I$* *"*h2*pP*(Q* R*HrI)I&*h*X2*PI$*h*h * `*ha*hb*hI& *h *h *hb I& *h *p *X I(p 2 I* * * I+ * 2 I, *@ *8 I- I$ *" I.@ *hR I$ I/ * I0B I/b *X I$ *2H"I,1*BI1Q* bI2* ** B***I'**I'* *x!*h"*hrI&*I$I3*`*X"I$*x*h*hI&*I$BI3`*`b*XI$2h2I4"I.Q*(I)I.*(RI)*XI(*XI(Q*pI$I$2*q*pr*p*p*pI$rI$"*(*0*82*0**X*bI0I$I3r**XI$*BI5q*XI.I$BI3q*hI.I/2*b2rI,*2I,*" 22 I,R * 2 I, *0!2h2!2B!I4!*"* 2"*p"2hr"2"I4"* "* "* #2h"#22#I4b#*p#*r#I'#*#*#I'#* #*x#*h#*hB$I&`$*r$I$$I3$*`$*X$I$@%*xA%*hB%*h%I&%*%I$&I3 &*`"&*XB&I$b'I.'*'I5!(*Xr(I.(*@(*H0)*(r)I))*X)I(**p"*I$*I$**PB+I$+*P+*,*b,I$,*X,I72-*X-*`-*X.*B.*.I$.I3/*`/*X2/I$/*`/*`/*X0I$0*0* 1*`R1*Xr1I$1*H0222220B2I42I$23I8A3*`R3*P3*X3I$3*x24*@R4*4*4*85*b5*% %'5'''&'&'5''''' '(-'0M'8l'@'H'P'X'`'h'p'x'0'G'^''__&__& _5(_(%%'omerinv.o/ 1082129505 59100 998 100644 34200 ` ELF2[@@ % P0Bd ` J@!-<|F p`K>#H803 - p"!|F(|Fx pK>#X803- p !|F0|F pK>#h803- p!~F8|F p J?#x803 @K>#pD00`8 H- p !|F 00<03 @K>#DB pK>#`800H- p !|F 00<03 @K>#DB p J?#`800H- p !~F 00<03 -p"!~F x$800HBP@!`@ `@ BH-p!~F - p"!~F 8`800` H `0X  @BP @!`@  p$0803@pH!P@!|Fx `J?#H8`<00 p H 0` H `0X   0`0X 0 P @!`@ - p !~F  @HBP @!p@  p$`800 p H 0`0X 8 0 P@!`@ `@ `H 0 P @!`@  p$0803  p$8`<00 p H 0 p H - p"!~F 0 ` H- p!~F0 HBP@!`@ `@ B 0 p  0`8$  p$803 @p$H@<00 P BP @!`@  p$0803- p !~F@BP @!`@ - p"!~FH @K>#@BpJ?#p<00 0  H @K>#DBp`J?#p<00 0` H 0 P@!`@ `@ BH8`<00` H `X `$  p$`800` B x@K>#<B@. $H8`<00` H `X 0 P@!p@ 0B`8X D@ @K>#@B@. $H8`<00` H `X 0 P@!p@ 0B`8H D@@ @K>#DB. p$`800 $H@<00P @!p@ - p!~F 0`H B 0$`0 P @!H@<00P @!H @8NBP @!H@<00P@!B pJ!80 09B @K>#DB@. x@K>#<B . @K>#@BpK?# HBP@!`@ p@ 0B p8X 0` H D|F pK>#800P @!`@ p$0 HBP@!`@ `@ 0 P @!`@ - p!~F H- p !~F@BP @!p@ - p"!@~F 0` H 0 P @!`@ -p!|F0 HBP@!`@ p@ 0B`8X D|F pK>#p800 0` H 0 8NBP @!H@BP @!H@BP@!|F x`J?#H 0` |Fx p`J?#p800 0`0$  @K>#@B p`J?#p800 0`0X p  0`0$  @K>#DB pK?#800@$BP@!|Fx pK>#800@$BP @!H 0` pB$H8`<00` H `X 0 P @!`@ p$0 HBP@!`@ `@ 0 P @! @  p$@<00P@!`@ `@ `0" `H B0@$H8`<00` H `X 0 P @!`@ p$0 HBP@!`@ `@ 0 P @! @  p$@<00P@!`@ `@ `H B@ 0$`0 8NBP@!HH@ @J!@B p`J!800P @!`@ - p"!~FH)p!B - p"!~F@ <00 PBP @!`@ - p!~FB pJ!800P @!`@ - p"!~FH)p!@B - p"!~F@ <00 PBP @!`@ - p!~F|F pJ?#@<00P @!`@ - p"!@~F|Fx pK?#@<00P @!`@ - p !~F|FK?#H- p !@~F @800P@!`@ `@ B|FK?#|FxK?#|FpK?# HBP@!`@ p@ 0B p8X 0` H D|F !K?#H8`<00  H-p!~F- p !@~F 8`800` H 0 X x$p800 0  H -p"!~F- p !@~F 8`800` H `0 H H$ 0 P@!`@ `@ B|FAK?#|FxxJ?#|FpJ?#p<00 0 0X -p"!~F- p !@~F 8`800`0H 0 P@!`@ `@ B|Fx`K?#B pJ! ) 0"p0 0`0X |Fx p`K?#p800 0`8$ 8 @J!@B* @J!DB pJ!p800 0`0X  x@K>#<B p`K?#p800 0`0$ 8 @J!@B* @J!DB pJ!p800 0`0H  x@K>#<B- @J!@B pJ! ) 0"p0 0`0X H 8 0 p H- p!~F 0` H 0 P @!p@ - p !@~F 0 ` H - p"!~F0 HBP@!`@ `@ 0 P@!Bx pJ!) 0 p0 0 p0H 0   HHBP@!`@ `@ `0X BH) 0p0 0`0X 0 P @!`@ - p!~FH- p !~F 8`800` H 0 P @!`@ - p"!@~F0 HBP@!`@ `@ 0 P @!`@ - p!~FH- p !~F@BP@!p@ 0B` H 0 P @!`@ - p"!@|F ) 0 p0  0` H 0 8NBP@!Bx p`J!p800 0` H 0 8NBP@!B pJ!p800 0` H 0 8NBP@!B pJ!p800 0` H 0 8NBP@!Bxx`J!BpJ!p<00 0`0X p  0`8  0$`0 8NBP@!PH`@ @K>#DB) @J!@B p`J!`800` |F p`J?#p800 0`8 B x@K>#<B p`J?#p800 0`0X p  0`8  0$`0 8NBP@!PH @ p$`800 p  0`0X p  0`8  0$`0 8NBP@!PHp@ @K>#@B pK?#800@$BP@!|F pK>#800@$BP @!H 0`  $H8`<00` H `X 0 P @!`@ p$0 HBP@!`@ `@ 0 P @! @  p$@<00P@!`@ `@ `H Bp@$H8`<00` H `X 0 P @!`@ p$0 HBP@!`@ `@ 0 P @! @  p$@<00P@!`@ `@ `0" `H B @! J! U0 "B@50B`  x ~F<~F p`R?#H803I p!~F~F pR?#90# x@R?#`<00p0 0`0X xI<~F`R?#~Fx p`R?#8`<00`0X  ~F pR!80#Ip!A~F x@R?#`<00p0 0  HI p!~F8`<00` H `0 X  ~F@S?#~Fx p`R?#8`<00  H x@R?#`<00p0 0` H `0 H  ~Fx@S?#~Fx p@S?#8`<00`0H   0 p0"I p !@~F 0 ` H0 H@BPH!`@ `@ 0 P H!`@ I p!~F~F0S?#~Fx(aS?#~Fp`S?# H@BPH!`@ p@ 0J p8X 0` H L~Fx0R?#~F(aS?#~Fxp`S?# H@BPH!`@ p@ 0J p0H 0` H LHI p !~F 8`800 ` H0 H@BPH!`@ `@ 0 P H!`@ I p!~F~F(S?#~Fx pS?#8`<00  HI p !~F8`<00` H `0 HI p!~F0 H@BPH!`@ `@ J~F pS?#`800` `X p  0`8  x@R?#<B pR?#80  00<03I p !~F 0` PB x@R?#<B pR?#80  00<03P@ @R?#@B pR?#80  00<03@ x@R?#<BLp$ H@BPH!`@ `@ JPHI p !~F 0 pHI p!~F 0`0X 8 0 PH!`@ `@ 0 PH!`@ @J 0 PH!`@ `@ I p !~F0 H@BP H!`@ I p!@~FHI p!@~FH @ 800x !P H!`@ I p !@~F p0803I p!B p`8r@B @R?#@B pR!8 @!p@x$~Fp@S?#p<00 0 ` H0 H@BPH!`@ `@ 0 P H!`@ I p!~F~F0R?#~Fx pS?#8`<00  HI p !~F8`<00` H `0 XI p!~F0 H@BP H!`@ ($Ha0@H@BPH!`@ p@ 0J`8X L~F pR?#800P H!`@ I p!~F p0803@! @Up `R!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;fomerinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)iomerinvint>i%r_maj1p~r_min2p~scale_fact3p~azimuth4p~lon_orig5p~lat_orig6p~false_east7pfalse_north8plon19plat1:plon2;p lat2__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tD|I __valH|# i long unsigned int__fsid_tIc__daddr_tLi__caddr_tMchar__time_tNz__useconds_tO__suseconds_tPz__swblk_tQz__clock_tRz__key_tSi__clockid_tVi__timer_tYi__ipc_pid_t\i__blksize_t_z__t_scalar_tfi__t_uscalar_tg__intptr_tjz__socklen_tm __sched_paramE __sched_priorityFi# X_pthread_fastlock __statusz# __spinlocki# _pthread_descr_struct_pthread_descr#X t __pthread_attr_s8* __detachstate+i# __schedpolicy,i# __schedparam-# __inheritsched.i# __scope/i# __guardsize0# __stackaddr_set1i# __stackaddr2t #( __stacksize3#0pthread_attr_t4 < __c_lock:# __c_waiting;p#pthread_cond_t<  C __dummyBi#pthread_condattr_tC pthread_key_tF (S __m_reservedNi# __m_countOi# __m_ownerPp# __m_kindQi# __m_lockR#pthread_mutex_tS  Z __mutexkindYi#pthread_mutexattr_tZ pthread_once_t^ipthread_t X _IO_FILE-_flagsi#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_filenoi#p_blksizei#t_old_offseti#x_cur_column"#_vtable_offset#N#_shortbuf$ #_lock( #_offset1x#__pad17t #__pad28t #_mode:i#_unused2< # _IO_marker _next # _sbuf # _posi#X     +FILE- __FILE7 wchar_tiwint_t8&J__wchH __wchbI& 6 cK __countEi# __valueJ#__mbstate_tK6  __pos i# __state c#_G_fpos_t v # __pos !x# __state "c#_G_fpos64_t # &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS J__gconv_step` ? __shlib_handle rb# __modname sh# __counter ui# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from i#@ __max_needed_from i#D __min_needed_to i#H __max_needed_to i#L __stateful i#P __data t #X __gconv_loaded_objectJniMBSYii w__gconv_step_data8 @ __outbuf w# __outbufend w# __flags i# __invocation_counter i# __internal_use i# __statep }# __state c#( __trans #0c __gconv_trans_data( B __trans_fct g_# __trans_context_fct h# __trans_end_fct i# __data jt # __next k# Bit BMBSYHBwit BBwwet si__gconv_fct Hs__gconv_init_fct K__gconv_end_fct L#__gconv_trans_fct UB__gconv_trans_context_fct Zie__gconv_trans_query_fct ^ihYh__gconv_trans_init_fct aiht __gconv_trans_end_fct b h__gconv_info __nsteps # __steps # __data h# __gconv_t H 4 __cd 2# __data 3#H 5__cd /__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8i_G_uint16_t 9_G_uint32_t :__gnuc_va_list +t _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX %t __io_write_fna;Ut h__io_seek_fnijit ix__io_close_fnlit fpos_tP _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE uexception( type i#name #arg1 p#arg2 p#retval p# r_majorp r_minorp scale_factorp lon_originp lat_origin p e!p es!p false_northing"p false_easting#p sin_p20$p cos_p20$p bl%p al&p ts'p d(p el)p u)p singam*p cosgam*p sinaz+p cosaz+p  omerinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h = ,+,,++,,,,+++!+,++++++++/+++  ++++,+++++OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: @|=?cܥL@-DT!?-DT! -DT!@-DT! @?|=-DT!?-DT!G#aG'a)jomerinvintomerinv,3GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@3!ph, 42 47 4bE5jQbOnWY`hYHpY0 YY-P Z0h0=Z;xZa% 8g3  ( 38B@P0S(UH]PeXh`khnppxs~  & &@ #)-omerinv.cr_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesesin_p20cos_p20blaltsdellon_originsingamcosgamsinazcosazu__divdf3omerinvintsqrttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerinvexpphi2zcosatan2**"*Q* r*8*@**I%!*0*0I'*(* *H*PI(*0*H*HR*0I'*P*I)*0*0bI%I'*X*`**X*I%* **h*p"*x@*(A* B*HbI**hI'*p*X*PrI%*p*p* @*pA*pB*pI'*p*p*pB I' *p *x *h *X I)@ 2R I+a *b * I, * 2 I- *@ *8 I.b I% * I/ *p" I%b I0 * I1 I02 *XR I% * 2H I-*I2!* 2I3Q* ** *b*p*rI(**I(* **p*pBI'`*rI%I4*`*XI%P*Q*pR*pI'*I%I40*`2*XRI%2h2I5I/!*(bI*I/*("I*b*XI)*XI)!*xRI%I%*A*xB*x*x*xbI%BI%*(R*0*8*0**X*2I1I%I4B*b*XrI%*I6A*XI/I%I4A*pbI/I0*22BI-b*2I-*2 I-" *R 2b I- *!2h!2!I5!*!* "*@"2hB"2R"I5p"* "* "*"2h"2#I52#*@#*B#I(b#*p#*r#I(#* #*#*p#*p$I'0$*B$I%$I4$*`$*X$I%%*%*p%*pb%I'%*%I%%I4%*`%*X&I%'*@'*8'*2(*(*(*2)*b)*X)*`)I%*I8*I%**@2+I%r+*@+*X+*`+I%2,I/,*,*-I%-*H-*B.*X.*P.*X.I%/*x/I%/I'0I%b0I)0*(0I9`1*X1*`1I%1I:B2*r2*2I;2*2*X3I%r3I6% %'3'''&'&'3''''' '('0<'8['@t'H'P'X'`'h'p'x''3'J'a''__&__& _3(_(%%'orthfor.o/ 1082129505 59100 998 100644 13936 ` ELF2&@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 G?#@B pG?#`800~Fx pG?#8000$BP @!@H HBP @!H@BP @!H@BP @!H@BP @!H@<00P@!B @50Bb  R@!K<~F pR?#H803 K p"!~F ~F p S?#90# xR?#`<00p0 0`0X 0 P H!`@ K p!~F~FpR?#~FM@<B !PH!~F pS?#800P H!`@ @K p$!@~F~FxS?#H K p"!~F 8`800  H R?#HBp`S?#p<00 0 p HK p!@~F 0` H `0 H  ~F pS?#803 K p"!~F 0`$ B R?#HB pS?#`800 p  0`8 @B P$0 `XV@BPH!xH`@ xR?#<B pS?#`80 x$~FpS?#p<00 0 p H K p"!~F 0   H@K p$!~F@@BPH!`@ p H 0J`8H L~Fx p S?#80 x$ ~FpS?#p<00 0  H R?#HBp@S?#p<00 0  H R?#HBp`S?#p<00 0 p HK p!@~F 0` H `0 X p$ H 0 `8H "R!@Up "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;orthfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)orthforint,#r_maj'&`center_lon(&hcenter_lat)&pfalse_east*&xfalse_north+&intdoubleorthforJ)lonF&latG&xH@yIHsinphiK&PcosphiK&XdlonL&`coslonM&hkspN&pgO&x&size_tlong unsigned int__u_char $unsigned char__u_short!Fshort unsigned int__u_int"kunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t'$__int16_t(short int__uint16_t)F__int32_t*__uint32_t+k__int64_t,__uint64_t-__qaddr_t.p__dev_t0M__uid_t1*__gid_t2*__ino_t3M__ino64_t4M__mode_t5*__nlink_t6M__off_t7<__off64_t8<__loff_t9<__pid_t:__ssize_t;<__rlim_t<__blkcnt64_t?<__fsblkcnt_t@M__fsblkcnt64_tAM__fsfilcnt_tBM__fsfilcnt64_tCM__id_tD*I __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tMNTchar__time_tN__useconds_tOk__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgk__intptr_tj__socklen_tmk __sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-^# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t49< __c_lock:# __c_waiting;#pthread_cond_t<jC __dummyB#pthread_condattr_tCOpthread_key_tFk (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR#pthread_mutex_tS= Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr N#_IO_read_end N#_IO_read_base N#_IO_write_baseN# _IO_write_ptrN#(_IO_write_endN#0_IO_buf_baseN#8_IO_buf_endN#@_IO_save_baseN#H_IO_backup_baseN#P_IO_save_endN#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"F#_vtable_offset##_shortbuf$" #_lock(2 #_offset1#__pad17#__pad28#_mode:#_unused2<4 #  _IO_marker _next # _sbuf # _pos#  2 T  D T +FILE- __FILE7 wchar_twint_t8k J__wchHn __wchbI T  K __countE# __valueJ} #__mbstate_tK    __pos # __state  #_G_fpos_t  X  # __pos !# __state " #_G_fpos64_t #- F &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR y 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name wN# __to_name xN# __fct z"#( __init_fct {8#0 __end_fct |J#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectT!!'y- __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0$ __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# !'$ 8!(J!>__gconv_fct Hc__gconv_init_fct K(__gconv_end_fct L>__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^ ))/__gconv_trans_init_fct aSYnn__gconv_trans_end_fct b  __gconv_info __nsteps # __steps !# __data # -__gconv_t :H 4 __cd 2# __data 3-#aH 5__cd /__combined 4_G_iconv_t 5:_G_int16_t 7_G_int32_t 8_G_uint16_t 9F_G_uint32_t :k__gnuc_va_list + _IO_jump_t_IO_lock_tP__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX#N__io_write_fna#__io_seek_fni__io_close_fnl+fpos_tP q _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE 9exception( type #name N#arg1 &#arg2 &#retval &# r_major& lon_center& lat_origin& false_northing& false_easting & sin_p14!& cos_p14"&  orthfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h +!!  +y3ORTHOGRAPHICPoint can not be projectedorth-forG!aoG'a|=)orthforint0orthfor,0GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@0!0`,p2p7pbE Q4hb!n5@$@$Hp$05 $%8%-(6-%0@60]%;%,H 0 )8 F(N0  Vpaipwporthfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthforinttsincosptitleradiuscenlonmeroriginoffsetporthforadjust_loncosp_errorsin****2* r*(*0I2I*I*I*I* *2I*BIII *(B*0R*220I!* *bI"***0B*(% %'0'''pE'pM'0''9'Y'x' '('0'__p__p _0(_ %%'orthinv.o/ 1082129505 59100 998 100644 16136 ` ELF2-@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 G?#@B pG?#`800~Fx pG?#8000$BP @!@H HBP @!H@BP @!H@BP @!H@BP @!H@<00P@!B H90Bb  T@!S<~F pT?#H803S p!~F~F p U?#90# xT?#`<00p0 0`0X xS<~FT?#~Fx pT?#8`<00`0X  S 0  p0 S @`@  HSp!~FS p !~F 8`800` H `0 H 0 P H!`@ S p!~F~F x@U?#H 8 0p0H 0`8$  X$0 `X@BPH!H@ xT?#<B p@U?#@<00PH!`@ `@ 0 P H!`@ S p !~F~Fxp`U?#~FV@<B !PH!~F pU?#80  00<03S p!~F 0 p  0`8 ( T?#@B p U?#80  00<03@ xT?#<B pU?#8`<00   HSp !~FS p !~F 8`800 p H 0 ` HS p!~F0 H@BPH!`@ `@ `0H 0 P H!`@ S p !@~F p0803Sp!~F 0 p  0`0X ~F pU?#`800 p  0`8  p$`800` B pT?#p800`8 `0"S p!~F0 H@BP H!p@  p$`800`8X 0 P H!`@ S p !~F p0803@ xT?#<B pT?#`800 `0"S 8 8 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p0803@ T?#@BW xT?#<BV($~F p U?#80 @@BPH!p@ 0Jp H 0L`8X N~Fx pU?#`800 p  0`0 pB T?#p@00`8 p  0`0  xT?#<B pU?#S 0 p0 0 p H 0  HSp!~FS p !~F 8`800` H 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p0803@! T!HU "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;orthinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)orthinvint,#r_maj'&`center_lon(&hcenter_lat)&pfalse_east*&xfalse_north+&intdoubleorthinvJ*xF&yG&lonH@latIHrhK&PzL&XsinzM&`coszM&hconN&p&size_tlong unsigned int__u_char unsigned char__u_short!/short unsigned int__u_int"Tunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t' __int16_t(short int__uint16_t)/__int32_t*__uint32_t+T__int64_t,__uint64_t-__qaddr_t.Y__dev_t06__uid_t1__gid_t2__ino_t36__ino64_t46__mode_t5__nlink_t66__off_t7%__off64_t8%__loff_t9%__pid_t:__ssize_t;%__rlim_t<6__rlim64_t=6__blkcnt_t>%__blkcnt64_t?%__fsblkcnt_t@6__fsblkcnt64_tA6__fsfilcnt_tB6__fsfilcnt64_tC6__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM7=char__time_tN__useconds_tOT__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgT__intptr_tj__socklen_tmT y__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-G# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4"< __c_lock:y# __c_waiting;#pthread_cond_t<SC __dummyB#pthread_condattr_tC8pthread_key_tFT(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRy#pthread_mutex_tS& Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr 7#_IO_read_end 7#_IO_read_base 7#_IO_write_base7# _IO_write_ptr7#(_IO_write_end7#0_IO_buf_base7#8_IO_buf_end7#@_IO_save_base7#H_IO_backup_base7#P_IO_save_end7#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"/#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# h  =  - = +FILE-h __FILE7h wchar_twint_t8T J__wchHW __wchbI =  K __countE# __valueJf #__mbstate_tK    __pos # __state  #_G_fpos_t  A  # __pos !# __state " #_G_fpos64_t # / &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR b 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w7# __to_name x7# __fct z #( __init_fct {!#0 __end_fct |3#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object=  b __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0  s__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k#   s! 3 '__gconv_fct HL__gconv_init_fct Kj__gconv_end_fct L'__gconv_trans_fct Us__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a<BWW__gconv_trans_end_fct bz __gconv_info __nsteps # __steps # __data # __gconv_t #H 4 __cd 2# __data 3#JH 5__cd /__combined 4_G_iconv_t 5#_G_int16_t 7_G_int32_t 8_G_uint16_t 9/_G_uint32_t :T__gnuc_va_list + _IO_jump_t_IO_lock_t9__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAh _IO_FILE_plus__io_read_fnXo 7__io_write_fna __io_seek_fni__io_close_fnlfpos_tP Z _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE "exception( type #name 7#arg1 &#arg2 &#retval &# r_major& lon_center& lat_origin& false_northing& false_easting & sin_p14!& cos_p14"& [ orthinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h +!! %++,++++z+ORTHOGRAPHICInput data errororth-invG!aoG(aHz>|=-DT!?)orthinvint0orthinv, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !p7@,02070bEQ<hb.'_n>*8*Hp+00> @+X+8X+->+0>0+;+3 6 )8 F(N0  Vpaipwp orthinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthinvinttsincosptitleradiuscenlonmeroriginoffsetp__divdf3orthinvsqrtp_errorasinzatan2adjust_lonsin****2* r*(*0I2I*I*I*I* *2I* b*RI **22(I!B*bII"I"*b***(R*0II"2*R***b I# * I$b I# * I$ *(B I% *" * *02 I#P * I$% %' '''pE'pM' ''"'B'a' z'('0'__p__p _ (_ %%'polyfor.o/ 1082129505 59100 998 100644 16232 ` ELF2*@@ @0Bd @ x ~F<~F p`I?#H803 % p"!~F(~Fx pI?#X803% p !~F0~F pI?#h803 x@I?#p<00`8 H% p !~F 00<03 @I?#DB pI?#`800H% p !@~F 00<03 @I?#DB pI?#`800H% p !~F 00<03 %p"!B x$800HBP@!`@ `@ BH%p!B % p"!B 8`800` H `0X  @BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803x$H  $800H@00 X"H00P @!`@  p$0803(JBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B0 P=0Bb   V@![<~F pV?#H803 [ p"!~F ~F p W?#90# V?#`L00p0 0`0X 0 P H!`@ [ p!~F~F pV?#`800 p  0`8  V?#DB pW?#80 x$ ~FpW?#p<00 0p H 0 `8H "0~F p W?#80  p$8`<00p H 0 `8X "0@ xV?#<BpV?#~F]@<B !P H!H$ H`[ p&!~F@@00 P"H00 `@BP H!`@ [ p!@~FH [p"!~F@[ p$!~F@ <00 P@BP H!`@ `[ p&!~F~FxW?#~FxW?# ~Fp@W?#p<00 0` H  0~F pW?#`80 x$~FpW?#p<00 0   H [ p"!~F@@BPH!`@ ` H@[ p$!~F0 H@BPH!`@ p@ 0J`8H L0~F p W?#80 0$~Fx pW?#8`<00  0X[p !P~F [ p"!~F@@BPH!`@ p0X 0J ` H@[ p$!~F0 H@BPH!`@ `@ p0H 0Lp H 0N`8H P @!B  "B% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;/polyfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)>polyforint/>$r_maj)EPr_min*EXcenter_lon+E`center_lat,Ehfalse_east-Epfalse_north.Extemp0EintdoublepolyforV>+lonRElatSExT@yUHsinphiWEPcosphiWEXconXE`mlXEhmsYEpEsize_t long unsigned int__u_char 1unsigned char__u_short!Sshort unsigned int__u_int"xunsigned int__u_long# __u_quad_t$ __quad_t%long int__int8_t&signed char__uint8_t'1__int16_t(short int__uint16_t)S__int32_t*>__uint32_t+x__int64_t,__uint64_t- __qaddr_t.}__dev_t0Z__uid_t17__gid_t27__ino_t3Z__ino64_t4Z__mode_t57__nlink_t6Z__off_t7I__off64_t8I__loff_t9I__pid_t:&__ssize_t;I__rlim_tI__blkcnt64_t?I__fsblkcnt_t@Z__fsblkcnt64_tAZ__fsfilcnt_tBZ__fsfilcnt64_tCZ__id_tD7I __valH# > long unsigned int__fsid_tI__daddr_tL>__caddr_tM[achar__time_tN__useconds_tOx__suseconds_tP__swblk_tQ__clock_tR__key_tS>__clockid_tV>__timer_tY>__ipc_pid_t\>__blksize_t___t_scalar_tf>__t_uscalar_tgx__intptr_tj__socklen_tmx __sched_paramE __sched_priorityF># _pthread_fastlock __status# __spinlock># _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+># __schedpolicy,># __schedparam-k# __inheritsched.># __scope/># __guardsize0# __stackaddr_set1># __stackaddr2#( __stacksize3#0pthread_attr_t4F< __c_lock:# __c_waiting;#pthread_cond_t<wC __dummyB>#pthread_condattr_tC\pthread_key_tFx (S __m_reservedN># __m_countO># __m_ownerP# __m_kindQ># __m_lockR#pthread_mutex_tSJ Z __mutexkindY>#pthread_mutexattr_tZ+ pthread_once_t^>pthread_t  _IO_FILE-_flags>#_IO_read_ptr [#_IO_read_end [#_IO_read_base [#_IO_write_base[# _IO_write_ptr[#(_IO_write_end[#0_IO_buf_base[#8_IO_buf_end[#@_IO_save_base[#H_IO_backup_base[#P_IO_save_end[#X_markers# #`_chain) #h_fileno>#p_blksize>#t_old_offset#x_cur_column"S#_vtable_offset##_shortbuf$/ #_lock(? #_offset1#__pad17#__pad28#_mode:>#_unused2<A # # _IO_marker _next# # _sbuf) # _pos>#  ? a  Q a +FILE- __FILE7 wchar_t>wint_t8x J__wchH{ __wchbI a  K __countE># __valueJ #__mbstate_tK )   __pos # __state  #_G_fpos_t  e  # __pos !# __state " #_G_fpos64_t #: S &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u># __from_name w[# __to_name x[# __fct z/#( __init_fct {E#0 __end_fct |W#8 __min_needed_from >#@ __max_needed_from >#D __min_needed_to >#H __max_needed_to >#L __stateful >#P __data #X __gconv_loaded_objecta.>.4>>: __gconv_step_data8 @ __outbuf # __outbufend # __flags ># __invocation_counter ># __internal_use ># __statep # __state #( __trans )#01 __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i## __data j# __next k)# >.41># E>.5W.K__gconv_fct Hp__gconv_init_fct K5__gconv_end_fct LK__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^6>6<__gconv_trans_init_fct a`f{>{__gconv_trans_end_fct b __gconv_info __nsteps # __steps .# __data # :__gconv_t GH 4 __cd 2# __data 3:#nH 5__cd /__combined 4_G_iconv_t 5G_G_int16_t 7_G_int32_t 8>_G_uint16_t 9S_G_uint32_t :x__gnuc_va_list + _IO_jump_t_IO_lock_t]__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX0[__io_write_fna0__io_seek_fni > >__io_close_fnl(8>fpos_tP) ~ _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE Fexception( type >#name [#arg1 E#arg2 E#retval E# r_majorE r_minorE lon_centerE lat_originE e0 E e1 E e2 E e3 E e!E es!E ml0"E false_northing#E false_easting$E - polyfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h .",! $+,++POLYCONICG"aG)aHz>)3polyforintOpolyfor,P GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@P !6x, 2 7 bE 3Q<b%%1nx>X(h(Hp(0> ((h(- ?)08?0E);)0  5 &1X@`NHQ@S V(Y0\8_P  clw|polyfor.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesee0e1e2e3ml0__divdf3polyforintsqrte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyforadjust_lontsincosmsfnzsincos***!*B*Xq*`**I*HR*HbI*@*HI * *HI!*(*HI"*0*H"I#@*8B* P*(Q*0R*8`*I$*P2I%**I&*I'!*2I(A*`B*XbI)*rI+**` **X**P2I,A* B*(P*0Q*8I$*@I-*`* I.R I *X * *P" I/ I% %'P '''d'l'P '''C'_'s' '('0'8'@'H'P 'X*'`'____ _P (_ %%'polyinv.o/ 1082129505 59100 998 100644 16192 ` ELF2+@@ @0Bd @ x ~F<~F p`I?#H803 % p"!~F(~Fx pI?#X803% p !~F0~F pI?#h803 x@I?#p<00`8 H% p !~F 00<03 @I?#DB pI?#`800H% p !@~F 00<03 @I?#DB pI?#`800H% p !~F 00<03 %p"!B x$800HBP@!`@ `@ BH%p!B % p"!B 8`800` H `0X  @BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803x$H  $800H@00 X"H00P @!`@  p$0803(JBP @!H@<00P @!H@BP @!H@BP @!H@<00P@!B0 @I3~F ` `@?#  @3 x K<~F pR?#H803K p!~F~F p S?#90# xR?#`<00p0 0`0X xK<~FR?#~Fx pR?#8`<00`0X  ~F0AS?#PHK p!~F@<00PH!`@ p@ 0J`8H L~F pS?#80#K p!~F 0 p  0`8 h R?#@B pS?#P80  xR?#`<000 H@BPH!`@ p@  p$`800`0H J~Fx p S?#80 @@ R?#@BM xR?#<BM R?#@Bp@S?#p<00 0 0 H xR?#`<000 H@BPH!`@  @  p$K 00 H@BPH!`@ `@ ` H `0 H J~Fx(S?#0H$`H R?#@B@M xR?#<BMS?#~Fx p S?#80 a<L00 H(T00 X,\00 h$@00  !PH!`@ `04 pp0#K p !@~F p`8r B@($@ xR?#<B pS?#K 0 p0 0 ` H0 H@BPH!`@ `@ 0 P H! @ K p!@~F p800PH!`@  0 PH!`@ p@  p$`800`0H 0 P H!`@ K p !~F p0803@! S?#@Up  @"0D1H% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;polyinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)>polyinvint/>$r_maj)EPr_min*EXcenter_lon+E`center_lat,Ehfalse_east-Epfalse_north.Extemp0EintdoublepolyinvU>)xQEyRElonS@latTHalVEPbWEXcXE`iflgYhElong intsize_tlong unsigned int__u_char 'unsigned char__u_short!Ishort unsigned int__u_int"nunsigned int__u_long#__u_quad_t$__quad_t%__int8_t&signed char__uint8_t''__int16_t(short int__uint16_t)I__int32_t*>__uint32_t+n__int64_t,__uint64_t-__qaddr_t.g__dev_t0D__uid_t1!__gid_t2!__ino_t3D__ino64_t4D__mode_t5!__nlink_t6D__off_t73__off64_t83__loff_t93__pid_t:__ssize_t;3__rlim_t3__blkcnt64_t?3__fsblkcnt_t@D__fsblkcnt64_tAD__fsfilcnt_tBD__fsfilcnt64_tCD__id_tD!I __valH# > long unsigned int__fsid_tI__daddr_tL>__caddr_tMEKchar__time_tN__useconds_tOn__suseconds_tP__swblk_tQ__clock_tR__key_tS>__clockid_tV>__timer_tY>__ipc_pid_t\>__blksize_t___t_scalar_tf>__t_uscalar_tgn__intptr_tj__socklen_tmn __sched_paramE __sched_priorityF># _pthread_fastlock __status# __spinlock># _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+># __schedpolicy,># __schedparam-U# __inheritsched.># __scope/># __guardsize0# __stackaddr_set1># __stackaddr2#( __stacksize3#0pthread_attr_t40< __c_lock:# __c_waiting;#pthread_cond_t<aC __dummyB>#pthread_condattr_tCFpthread_key_tFn(S __m_reservedN># __m_countO># __m_ownerP# __m_kindQ># __m_lockR#pthread_mutex_tS4 Z __mutexkindY>#pthread_mutexattr_tZ pthread_once_t^>pthread_t _IO_FILE-_flags>#_IO_read_ptr E#_IO_read_end E#_IO_read_base E#_IO_write_baseE# _IO_write_ptrE#(_IO_write_endE#0_IO_buf_baseE#8_IO_buf_endE#@_IO_save_baseE#H_IO_backup_baseE#P_IO_save_endE#X_markers #`_chain #h_fileno>#p_blksize>#t_old_offset#x_cur_column"I#_vtable_offset##_shortbuf$ #_lock() #_offset1#__pad17#__pad28#_mode:>#_unused2<+ # _IO_marker _next # _sbuf # _pos># v ) K  ; K +FILE-v __FILE7v wchar_t>wint_t8n J__wchHe __wchbI K  K __countE># __valueJt #__mbstate_tK    __pos # __state  #_G_fpos_t  O  # __pos !# __state " #_G_fpos64_t #$ = &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR p 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u># __from_name wE# __to_name xE# __fct z#( __init_fct {/#0 __end_fct |A#8 __min_needed_from >#@ __max_needed_from >#D __min_needed_to >#H __max_needed_to >#L __stateful >#P __data #X __gconv_loaded_objectK>>>p$ __gconv_step_data8 @ __outbuf # __outbufend # __flags ># __invocation_counter ># __internal_use ># __statep # __state #( __trans #0' __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i # __data j# __next k# >'> />A5__gconv_fct HZ__gconv_init_fct Kx__gconv_end_fct L5__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^ > &__gconv_trans_init_fct aJPe>e__gconv_trans_end_fct b __gconv_info __nsteps # __steps # __data # $__gconv_t 1H 4 __cd 2# __data 3$#XH 5__cd /__combined 4_G_iconv_t 51_G_int16_t 7_G_int32_t 8>_G_uint16_t 9I_G_uint32_t :n__gnuc_va_list + _IO_jump_t_IO_lock_tG__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAv _IO_FILE_plus__io_read_fnX}E__io_write_fna__io_seek_fni>>__io_close_fnl">fpos_tP h _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE 0exception( type >#name E#arg1 E#arg2 E#retval E# r_majorE r_minorE lon_centerE lat_originE e0 E e1 E e2 E e3 E es!E ml0"E false_northing#E false_easting$E 4 polyinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h .",! ++%++,++++POLYCONICG"aG' øaHz>) polyinvintOpolyinv, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !(6H, 2 7 bE Qp<b%8nP>((Hp )0h> P)X)`X)->)0?0);)18 H5 &1P@XN@Q T(W0Z8]H  ajpuzpppolyinv.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0__divdf3polyinvinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyinvphi4zasinzsinadjust_lon***!*B*Pq*X**I*@R*@bI* *@I*(*@I *0*@I!*8* *(!*0"*80*bI"*H2I#**I$*I%*I&*X*P2I'*Xr*P*H*Ir**I **I *RI*@* *(*0*8R I)" *B I I* I+ I0 *b I,% %' '''pd'pl' ''-'I']' q'('0'8'@'H'P'X'__p__p _ (_ %%'psfor.o/ 1082129505 59100 998 100644 16104 ` ELF2X+@@! @0Bc @ x ~F<~F p I?#H803 $ p"!~F(~Fx p`I?#X803$ p !~F0~F pI?#h803 xI?#p<00`8 H$ p !@~F 00<03 I?#DB pI?#`800H$ p !~F 00<03 $p"!~F x$800HBP@!`@ `@ BH$p!~F $ p"!~F 8`800` H `0X  @BP @!`@  p$0803@BP @!`@  p$0803 I?#@B p@I?#`800H $ p"!~F 00<03$ p!~F 0`0$  p$ 00803 @ p$803 p$803$ p !~F 0 p  0`0X p  0`0$  p$803 $p"!~F x$p800 0` H  ~FxpI?#B @`<B!P @!H $p"!B $ p"!@B@ <00 PBP @!`@  p$0803 xI?#<B' I?#DBpH!@00 H800P @!`@  p$0803 ($P0 P @!H@<00P @!H@BP@!~FxxI?#~FpI?#<00 HBP@!B0 8%0Bb  P@!C<~F pP?#H803 C p"!~F~Fx p Q?#90#Cp !P~F P?#`D00p0 0`0X 0 P H!p@  p$`800`H J~Fx`Q?#H C p"!~F 8`800` H  ~Fx p`Q?#800P H!`@ C p !@~FH Cp"!~F C p"!@~F@ <00 P@BP H!`@ C p!~F  0p0 h P?#@BF p$8`<00 p H C p"!~F 0 ` H0 H@BPH!`@ `@ J@ xP?#<BF p$`800 p0HC p !~F 0 ` H0 H@BPH!`@ `@ J P?#DB pQ?#P80  P?#@BpQ?#p<00 0   H C p"!~F@@BPH!`@ p H 0`0H J~Fx p Q?#P80  0 p0"C p !~F 0   H C p"!~F@@BPH!`@ p H 0`0H JB @8U` "B% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;Rpsfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)apsforint4a$r_maj-h@r_min.hHc_lon/hPc_lat0hXfalse_east1h`false_north2hhtemp5hpcon16hxsinphi7hcosphi8hintdoublepsforda(lon_hlat`hxa@ybHcon1ehPcon2fhXrhgh`sinphihhhtsihphsize_t,long unsigned int__u_char Qunsigned char__u_short!sshort unsigned int__u_int"unsigned int__u_long#,__u_quad_t$,__quad_t%long int__int8_t&signed char__uint8_t'Q__int16_t('short int__uint16_t)s__int32_t*a__uint32_t+__int64_t,__uint64_t-,__qaddr_t.__dev_t0z__uid_t1W__gid_t2W__ino_t3z__ino64_t4z__mode_t5W__nlink_t6z__off_t7i__off64_t8i__loff_t9i__pid_t:F__ssize_t;i__rlim_ti__blkcnt64_t?i__fsblkcnt_t@z__fsblkcnt64_tAz__fsfilcnt_tBz__fsfilcnt64_tCz__id_tDW$I __valH$# 4a 4long unsigned int__fsid_tI __daddr_tLa__caddr_tM{char__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tSa__clockid_tVa__timer_tYa__ipc_pid_t\a__blksize_t___t_scalar_tfa__t_uscalar_tg__intptr_tj__socklen_tm __sched_paramE __sched_priorityFa# _pthread_fastlock __status# __spinlocka# _pthread_descr_struct_pthread_descr#. __pthread_attr_s8* __detachstate+a# __schedpolicy,a# __schedparam-# __inheritsched.a# __scope/a# __guardsize0# __stackaddr_set1a# __stackaddr2#( __stacksize3#0pthread_attr_t44f< __c_lock:# __c_waiting;#pthread_cond_t<4C __dummyBa#pthread_condattr_tC|pthread_key_tF4 (S __m_reservedNa# __m_countOa# __m_ownerP# __m_kindQa# __m_lockR#pthread_mutex_tSj Z __mutexkindYa#pthread_mutexattr_tZK pthread_once_t^apthread_t, _IO_FILE-_flagsa#_IO_read_ptr {#_IO_read_end {#_IO_read_base {#_IO_write_base{# _IO_write_ptr{#(_IO_write_end{#0_IO_buf_base{#8_IO_buf_end{#@_IO_save_base{#H_IO_backup_base{#P_IO_save_end{#X_markersC #`_chainI #h_filenoa#p_blksizea#t_old_offset#x_cur_column"s#_vtable_offset##_shortbuf$O #_lock(_ #_offset1 #__pad17#__pad28#_mode:a#_unused2<a # C _IO_marker _nextC # _sbufI # _posa#  _  4 q  4+FILE- __FILE7 wchar_tawint_t8 J__wchH __wchbI  4 K __countEa# __valueJ #__mbstate_tK I   __pos # __state  #_G_fpos_t    # __pos ! # __state " #_G_fpos64_t #Z s &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r # __modname s# __counter ua# __from_name w{# __to_name x{# __fct zO#( __init_fct {e#0 __end_fct |w#8 __min_needed_from a#@ __max_needed_from a#D __min_needed_to a#H __max_needed_to a#L __stateful a#P __data #X __gconv_loaded_objectNaNTaaZ __gconv_step_data8 @ __outbuf # __outbufend # __flags a# __invocation_counter a# __internal_use a# __statep %# __state #( __trans I#0Q __gconv_trans_data( B __trans_fct g# __trans_context_fct h1# __trans_end_fct iC# __data j# __next kI# aNTQ1a C7+eaNUwNk__gconv_fct H__gconv_init_fct KU__gconv_end_fct Lk__gconv_trans_fct U__gconv_trans_context_fct Z __gconv_trans_query_fct ^6<VaV\__gconv_trans_init_fct aa__gconv_trans_end_fct b7 __gconv_info __nsteps # __steps N# __data # 'Z4__gconv_t 8gH 4 __cd 2# __data 3Z#H 5__cd /__combined 4>_G_iconv_t 5g_G_int16_t 7'_G_int32_t 8a_G_uint16_t 9s_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t}__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXP{__io_write_fnaP__io_seek_fni,a,a __io_close_fnlHXafpos_tPI  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE fexception( type a#name {#arg1 h#arg2 h#retval h# r_majorh r_minorh esh eh e4 h center_lon!h center_lat"h fac#h ind$h mcs%h tcs&h false_northing'h false_easting(h 1 psfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 3#,++ $,++POLAR STEREOGRAPHIC-DT!?|=G"aG&a%Vpsforintrpsfor, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !H6, 2 7 bEr VQ<b%5n=))0)Hpx)0> )h))>)0>0*;<*X1  x5  X(`69; >(I0T8X@\H`P  dm0v{0psfor.cr_majorr_minorfalse_northingfalse_eastingesee4center_loncenter_latfacindmcstcs__divdf3psforintsqrte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsforadjust_lonsincos***X!*`R*`*rI**I0*2*BI `* b*(*0*8*0*8@*@r***@*8*0bI!q*I"*H*"I#@*PP2bI$q*r*I%*(I&I'*(I)0*8a*8I**2I#b*@**H *P" Ip * * I" *8 I* *` *8R I+r *X% %' '''0'0' .'G'['n'' '('0'8'@'H'P.'XM'`'__0__0 _ (_ %%'psinv.o/ 1082129505 59100 998 100644 16504 ` ELF20-@@! @0Bb @ x ~F<~F pH?#H803 # p"!~F(~Fx p I?#X803# p !~F0~F p`I?#h803 xH?#p<00`8 H# p !~F 00<03 H?#DB p@I?#`800H# p !~F 00<03 #p"!~F x$800HBP@!`@ `@ B~FxH!~FxI?#~FpI?#p<00 0` H `0X  ~Fx pH!800P @!`@  p$0803@BP @!`@  p$0803 H?#@B pI?#`800H # p"!@~F 00<03# p!@~F 0`0$  p$ 00803 @ p$803 p$803# p !@~F 0 p  0`0X p  0`0$  p$803 #p"!A~F x$p800 0` H  ~FxpI?#~F'@`<B!P @!H #p"!~F # p"!~F@ <00 PBP @!`@  p$0803 xH?#<B& H?#DBpI?#@00 H800P @!`@  p$0803 ($P0 P @!H@<00P @!H@BP@!~Fxx@I?#~Fp`I?#<00 HBP@!B0 810Bd  x ~F<~F p`Q?#H803E p!~F~F pQ?#90#E p!@BHE 0 p0 0 p0X 0` H xE<~F`Q?#~Fx p`Q?#8`<00 p0X 0` H  E 0  p0 E @`@  HEp!~FE p !~F 8`800` H `0 H 0 P H!`@ E p!~F  0p0 p @Q?#@BG x@Q?#<B pQ?#8`<00  H x$p800 0` H 0 PH!`@ `@ J@ @Q?#@BG x@Q?#<B pQ?#8`<00 p H 0`0H 8 0 PH!`@ `@ J $~Fx pQ?#@ @ 800`x !P H!p@ E p !@~F x 0`H ~Fx p P!80 09@B @Q?#@B p P!8 @!@ x@Q?#<B pQ?#`800`0 8 @Q?#@B pQ?#80  x$p800 0` H  P@ x@Q?#<B p`Q?#`800 `0"E 8 8 0 P H!`@ E p!BHE p !B 8`800 p H 0`0H 0 P H!`@ E p!~F p0803@! 8U` `P!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;:psinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)ppsinvint3p$r_maj,wr_min-wc_lon.w@c_lat/wHfalse_east0wPfalse_north1wXtemp4w`con15whsinphi6wpcosphi7wxes8wintdoublepsinvdp(x_wPy`wXlona`latbhrhewptsfwxtempgwflaghwlong intsize_t4long unsigned int__u_char Yunsigned char__u_short!{short unsigned int__u_int"unsigned int__u_long#4__u_quad_t$4__quad_t%__int8_t&signed char__uint8_t'Y__int16_t(#short int__uint16_t){__int32_t*p__uint32_t+__int64_t,__uint64_t-4__qaddr_t.__dev_t0v__uid_t1S__gid_t2S__ino_t3v__ino64_t4v__mode_t5S__nlink_t6v__off_t7e__off64_t8e__loff_t9e__pid_t:B__ssize_t;e__rlim_te__blkcnt64_t?e__fsblkcnt_t@v__fsblkcnt64_tAv__fsfilcnt_tBv__fsfilcnt64_tCv__id_tDS I __valH # 0p 0long unsigned int__fsid_tI__daddr_tLp__caddr_tMw}char__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tSp__clockid_tVp__timer_tYp__ipc_pid_t\p__blksize_t___t_scalar_tfp__t_uscalar_tg__intptr_tj__socklen_tm __sched_paramE __sched_priorityFp# _pthread_fastlock __status# __spinlockp# _pthread_descr_struct_pthread_descr#* __pthread_attr_s8* __detachstate+p# __schedpolicy,p# __schedparam-# __inheritsched.p# __scope/p# __guardsize0&# __stackaddr_set1p# __stackaddr2#( __stacksize3&#0pthread_attr_t40b< __c_lock:# __c_waiting;#pthread_cond_t<0C __dummyBp#pthread_condattr_tCxpthread_key_tF0 (S __m_reservedNp# __m_countOp# __m_ownerP# __m_kindQp# __m_lockR#pthread_mutex_tSf Z __mutexkindYp#pthread_mutexattr_tZG pthread_once_t^ppthread_t4 _IO_FILE-_flagsp#_IO_read_ptr w#_IO_read_end w#_IO_read_base w#_IO_write_basew# _IO_write_ptrw#(_IO_write_endw#0_IO_buf_basew#8_IO_buf_endw#@_IO_save_basew#H_IO_backup_basew#P_IO_save_endw#X_markers? #`_chainE #h_filenop#p_blksizep#t_old_offset #x_cur_column"{#_vtable_offset##_shortbuf$K #_lock([ #_offset1#__pad17#__pad28#_mode:p#_unused2<] # ? _IO_marker _next? # _sbufE # _posp#  [ } 0 m } 0+FILE- __FILE7 wchar_tpwint_t8 J__wchH __wchbI } 0 K __countEp# __valueJ #__mbstate_tK E   __pos  # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #V o &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s # __counter up# __from_name ww# __to_name xw# __fct zK#( __init_fct {a#0 __end_fct |s#8 __min_needed_from p#@ __max_needed_from p#D __min_needed_to p#H __max_needed_to p#L __stateful p#P __data #X __gconv_loaded_object}JpJPppV __gconv_step_data8 @ __outbuf # __outbufend # __flags p# __invocation_counter p# __internal_use p# __statep !# __state  #( __trans E#0Y __gconv_trans_data( B __trans_fct g# __trans_context_fct h-# __trans_end_fct i?# __data j# __next kE# pJPY&-p ?3'apJQsJg__gconv_fct H__gconv_init_fct KQ__gconv_end_fct Lg__gconv_trans_fct U__gconv_trans_context_fct Z  __gconv_trans_query_fct ^28Rp RX __gconv_trans_init_fct a|p __gconv_trans_end_fct b3 __gconv_info __nsteps &# __steps J# __data # #V0__gconv_t 4cH 4 __cd 2# __data 3V#H 5__cd /__combined 4:_G_iconv_t 5c_G_int16_t 7#_G_int32_t 8p_G_uint16_t 9{_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_ty__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXLw&__io_write_fnaL &__io_seek_fni(p(p__io_close_fnlDTpfpos_tPE  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE bexception( type p#name w#arg1 w#arg2 w#retval w# r_majorw r_minorw ew e4w center_lon w center_lat!w fac"w ind#w mcs$w tcs%w false_northing&w false_easting'w V psinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 2$++ #++,,++++++++++POLAR STEREOGRAPHIC-DT!?|=G"aG&a%>psinvintpsinv, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !8, 2 7 bEB>Q=b'Zn?**+@pP+0? +`+)0@+0H@0+;,03 87  X'P68; F(Q0U8Y@]H  ajPsx}PPpsinv.cr_majorr_minorfalse_eastingfalse_northingee4center_loncenter_latfacindmcstcs__divdf3psinvintsqrte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsinvphi2zatan2adjust_lon***X!*PR*`*rI2IP*R*bI** *( *0"*P*0`*8***8*0 *(I *I!*@*BI"`*Hp2I#**I$* I%I&*X"*0*P*0I*8" *HB *P *@ I * *b I * I( *0 *0 * I) *0 * 2 I*% %' '''P'P' *'C'V'j'' '('0'8'@'H'P5'X'__P__P _ (_ %%'robfor.o/ 1082129505 59100 998 100644 21384 ` ELF2:@@00Be   x ~F<~F pG?#H803  p"!~F(~Fx pG?#X803 G?#p@00`8 H p !@~F 00<03 G?#DB pG?#`800H p !~F 00<03 p8B x ! 00<03 p8B x ! 00<03 p8Bq  p8Bq  p8B x`! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x ! 00<03 p8B x ! 00<03 p8B x@! 00<03 p8B x@! 00<03 p8B x`! 00<03 p8B x`! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x! 00<03 p8B x ! 00<03 p8B x ! 00<03 p8B x@! 00<03 p8B x@! 00<03 p8B x`! 00<03 p8B x`! 00<03 p8Br  p8B x! 00<03  p"!B xG?#<B pF!80 8P!@ x$<0  p !B pp$@ < x~F pF!80  p8 x8@ 8 0` H  ~FxpF!~FxF!~F pF!80  p!p<0#H $@0 P @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B H-3~F@` `?#  @3 x S<~F pT?#H803 S p"!~F ~F p U?#90# xT?#`<00p0 0`0X 0 P H!`@ S p!~F~F(aU?#~F pT?#@<00PH!`@ `@ 0 H@BPH!`@ `@ ` J ~FxU?#~F p`U?#p800 0`0X `04 pp<0# Sp"!~F@Sp$!~F S p"!~F ppp1`88 pH 0`8X  ~Fx pU?#p80  x$<0 S p !~F pp$@ p@!Pz8@ Sp"!~Fx ~F pU?#80  p8 8B < x ~F pU?#80  p8 @8Bp< p@00 0p0X 0" ` H0 H@BPH!`@ p@ 0J  0HSp!~FS p !~F 8`800  Hx~F pU?#80  p8 8B < x ~F pU?#80  p8 8B p< `800p0H 0  p8Xx~F pU?#80  p8 @8B p< `800`0H ` H0 H@BPH!`@ `@ p0H 0L p H S p"!~F 0 p H 0`0H N ~F pT?#`800`  xT?#<B p U?#p80  x$<0 S p !~F pp$@ p@!Pz8@ Sp"!~Fx ~F pU?#80  p8 8B < x ~F pU?#80  p8 @8Bp< p@00 0p0X 0" ` H0 H@BPH!`@ p@ 0J  0HSp!~FS p !~F 8`800  Hx~F pU?#80  p8 8B < x ~F pU?#80  p8 8B p< `800p0H 0  p8Xx~F pU?#80  p8 @8B p< `800`0H ` H0 H@BPH!`@ `@ p0H 0L p H 0 ` H0 H@BPH!`@ p@  p$`800`0H N@ T?#DB p U?#`80  0 00"x ~F pU?#80  p8 8B(= ~Fx `U?#x~F pU?#80  p8 8B < x ~F pU?#80  p8 @8Bp< p@00 0p0X 0" ` H0 H@BPH!`@ p@ 0J  0HSp!~FS p !~F 8`800  Hx~F pU?#80  p8 8B < x ~F pU?#80  p8 8B p< `800p0H 0  p8Xx~F pU?#80  p8 @8B p< `800`0H ` H0 H@BPH!`@ `@ `0H p H 0 ` H0 H@BPH!`@ p@  p$`800`0H L @!~F   @"0D1P% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;Srobfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)robforint0#r,`center_long-hfalse_east.pfalse_north/xi1"intdoublelong introbforw*lonrlatsxt@yuHdlonxPp2yXip1z"`size_tlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"6unsigned int__u_long#__u_quad_t$__quad_t%"__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+6__int64_t,"__uint64_t-__qaddr_t./h__dev_t0 __uid_t1__gid_t2__ino_t3 __ino64_t4 __mode_t5__nlink_t6 __off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t< __rlim64_t= __blkcnt_t>__blkcnt64_t?__fsblkcnt_t@ __fsblkcnt64_tA __fsfilcnt_tB __fsfilcnt64_tC __id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM char__time_tN"__useconds_tO6__suseconds_tP"__swblk_tQ"__clock_tR"__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_"__t_scalar_tf__t_uscalar_tg6__intptr_tj"__socklen_tm6 O__sched_paramE __sched_priorityF# _pthread_fastlock __status"# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:O# __c_waiting;#pthread_cond_t<)C __dummyB#pthread_condattr_tCpthread_key_tF6(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRO#pthread_mutex_tSXZ __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr  #_IO_read_end  #_IO_read_base  #_IO_write_base # _IO_write_ptr #(_IO_write_end #0_IO_buf_base #8_IO_buf_end #@_IO_save_base #H_IO_backup_base #P_IO_save_end #X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# >     +FILE-> __FILE7> wchar_twint_t86` J__wchH- __wchbI` p   K __countE# __valueJ< #__mbstate_tKp    __pos # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR 8 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w # __to_name x # __fct z#( __init_fct {#0 __end_fct | #8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object|8 __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 I__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# ||||I|| __gconv_fct H"__gconv_init_fct K@__gconv_end_fct L]__gconv_trans_fct U|I__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a--__gconv_trans_end_fct bP __gconv_info __nsteps # __steps # __data # __gconv_t VH 4 __cd 2V# __data 3# H 5__cd /V__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :6__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA> _IO_FILE_plus__io_read_fnXE_ __io_write_fnau__io_seek_fni__io_close_fnlfpos_tP 0 _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name  #arg1 #arg2 #retval # lon_center" R# false_easting$ false_northing%  - pr& xlr'  robfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h /"++,,++++++++++++++++++++++++++++++++++,+++, ++$+!++!++++++ROBINSONX9v#?X9v?X9v?_Q?+?Gz?X9v?2ı.n?ףp= ?A`"?+?Q?-? 0*?V/?H}?O@a?=U?N@a?KY8?a2U0*?Q?ׁ?#  @3 x P<~F p T?#H803 P p"!~F ~F p`T?#90# xT?#`<00p0 0`0X xP<~F T?#~F p T?#8`<00`0X   ~F(T?#~Fx p T?#`800 `0H0 H@BPH!`@ `@ 0 H@BPH!`@ `@ J~Fx@U?#~F pT?#p800 0` H  ~F(T?#~Fx p@U?#@<00PH!`@ `@ ` J~FxU?#~F pT?#p800 0`0X `04 pp<0#@P p$!~F pp8 r0B xT?#<BV p$p<0# T?#@B pU?#80# T?#DB S x$<0 @P p$!~F pp$@ p`!y8@x ~F pU?#80  p8 @8Bp< p@00 0`0X "~Fx T?#x~F pU?#80  p8 8B < x ~F pU?#80  p8 8B p< `800p0H 0  p8Xx~F pU?#80  p8 @8B p< `800`0H "~F(U?# ~F pT?#`800 p x~F pU?#80  p8 8B p< `800p0X `8H P p"!~F0 H@BPH!`@ `@ J ~F(!U?#~FxxT?#~FpT?#<00 H@BPH!`@ `@ J~FT?# ~FU?#~Fxx U?# ~FpU?#p<00 0  HP p!@~F 0 p0H@P p$!~F 0` H `0X ` H p0X 0 `H "~Fx pT?#`800` @B T?#@B pU?#80 0! @ T?#DB p T?#`800` h T?#HBU xT?#<BR T?#DB pU?#80  88`88 pH 0 p0H 0` H  @ xT?#<BU T?#DBR T?#HB pU?#80  88`88 pH 0`0H p0" 0` H   xT?#<BR T?#@B p@U?#@<00PH!`@ `@ ` J~FxU?# ~F pT?#p800 0`0X `04 pp<0#Pp!A~F Pp"!@~F@P p$!~F ppp1`88 pH 0`8X  ~Fx p T?#`800`  T?#@BU 0$x~F pU?#80  p8 8B(= ~F T?#x~F pU?#80  p8 8B < x ~F pU?#80  p8 @8Bp< p@00 0p0X 0" ` H0 H@BPH!`@ p@ 0J  0HPp!@~FP p !@~F 8`800  Hx~F pU?#80  p8 8B < x ~F pU?#80  p8 8B p< `800p0H 0  p8Xx~F pU?#80  p8 @8B p< `800`0H ` H0 H@BPH!`@ `@ p0H 0L p H 0 ` H0 H@BPH!`@ `@ N@ T?#DBU p$`800 00"x ~F pU?#80  p8 8B(= ~Fx T?#x~F pU?#80  p8 8B < x ~F pU?#80  p8 @8Bp< p@00 0p0X 0" ` H0 H@BPH!`@ p@ 0J  0HPp!@~FP p !@~F 8`800  Hx~F pU?#80  p8 8B < x ~F pU?#80  p8 8B p< `800p0H 0  p8Xx~F pU?#80  p8 @8B p< `800`0H ` H0 H@BPH!`@ `@ `0H p H 0 ` H0 H@BPH!`@ `@ L T?#DBU T?#HBU xT?#<BU T?#@Bp T?#p<00 0 p0X 0 ` H0 H@BPH!`@ `@ 0 H@BPH!`@ p@ 0J`8H L~FpU?# ~FxU?#~F pU?#80  p!p<0# P p"!@~F ppX: b@B X$0 `X@BPH!PH@ T?#HBU T?#@Bp T?#p<00 0`0X p  0`0$ X T?#DBV T?#HB pU?#80  p?#p<0#P p!~F ppp `pJ X$0 `X@BPH!PH@ T?#@B p`T?#80 P p"!~F 8 0` H  ~F p@T?#p80  p$P 00 H@BPH!`@ 0@  x$<0 P p !~F pp$@ p@!Pz8@ Pp"!A~Fx ~F pU?#80  p8 8B < x ~F pU?#80  p8 @8Bp< p@00 0p0X 0" ` H0 H@BPH!`@ p@ 0J  0HPp!@~FP p !@~F 8`800  Hx~F pU?#80  p8 8B < x ~F pU?#80  p8 8B p< `800p0H 0  p8Xx~F pU?#80  p8 @8B p< `800`0H ` H0 H@BPH!`@ `@ `0H  0 PH!`@ p@ 0L`8H N~F p@T?#80 @@BP H!`@ @P p$!~F p0803U?#HU  @"0D1P% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;robinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)robinvint3#r/`center_long0hfalse_east1pfalse_north2xi4"intdoublelong introbinvz*xuyvlonwlatxyy{p2|u}v}t}@c}Hphid~Py1Xip1"`i"hsize_t&long unsigned int__u_char Kunsigned char__u_short!mshort unsigned int__u_int"unsigned int__u_long#&__u_quad_t$&__quad_t%"__int8_t&signed char__uint8_t'K__int16_t(short int__uint16_t)m__int32_t*__uint32_t+__int64_t,"__uint64_t-&__qaddr_t.__dev_t0h__uid_t1E__gid_t2E__ino_t3h__ino64_t4h__mode_t5E__nlink_t6h__off_t7W__off64_t8W__loff_t9W__pid_t:4__ssize_t;W__rlim_tW__blkcnt64_t?W__fsblkcnt_t@h__fsblkcnt64_tAh__fsfilcnt_tBh__fsfilcnt64_tCh__id_tDEI __valH# " "long unsigned int__fsid_tI__daddr_tL__caddr_tMiochar__time_tN"__useconds_tO__suseconds_tP"__swblk_tQ"__clock_tR"__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_"__t_scalar_tf__t_uscalar_tg__intptr_tj"__socklen_tm __sched_paramE __sched_priorityF# _pthread_fastlock __status"# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-y# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2 #( __stacksize3#0pthread_attr_t4"T< __c_lock:# __c_waiting;#pthread_cond_t<"C __dummyB#pthread_condattr_tCjpthread_key_tF" (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR#pthread_mutex_tSX Z __mutexkindY#pthread_mutexattr_tZ9 pthread_once_t^pthread_t& _IO_FILE-_flags#_IO_read_ptr i#_IO_read_end i#_IO_read_base i#_IO_write_basei# _IO_write_ptri#(_IO_write_endi#0_IO_buf_basei#8_IO_buf_endi#@_IO_save_basei#H_IO_backup_basei#P_IO_save_endi#X_markers1 #`_chain7 #h_fileno#p_blksize#t_old_offset#x_cur_column"m#_vtable_offset##_shortbuf$= #_lock(M #_offset1#__pad17 #__pad28 #_mode:#_unused2<O # 1 _IO_marker _next1 # _sbuf7 # _pos#  M o " _ o "+FILE- __FILE7 wchar_twint_t8 J__wchH __wchbI o " K __countE# __valueJ #__mbstate_tK 7   __pos # __state  #_G_fpos_t  s  # __pos !# __state " #_G_fpos64_t #H a &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name wi# __to_name xi# __fct z=#( __init_fct {S#0 __end_fct |e#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objecto<<BH __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans 7#0K __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i1# __data j # __next k7# <B K    1 % S<Ce<Y__gconv_fct H~ __gconv_init_fct KC__gconv_end_fct LY__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^$*DDJ__gconv_trans_init_fct ant __gconv_trans_end_fct b% __gconv_info __nsteps # __steps <# __data # H"__gconv_t &UH 4 __cd 2# __data 3H#|H 5__cd /__combined 4,_G_iconv_t 5U_G_int16_t 7_G_int32_t 8_G_uint16_t 9m_G_uint32_t :__gnuc_va_list +  _IO_jump_t_IO_lock_tk__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX> i__io_write_fna> __io_seek_fni __io_close_fnl6F fpos_tP7  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE T exception( type #name i#arg1 #arg2 #retval # lon_center% R& false_easting' false_northing(   "pr)y xlr*y  robinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 2"++,,++++++++++++++++++++++++++++++++++,+++, ++ ++++++++++++++++"+++ ROBINSONToo many iterations in inverserobinv-convX9v#?X9v?X9v?_Q?+?Gz?X9v?2ı.n?ףp= ?A`"?+?Q?-? 0*?V/?H}?O@a?=U?N@a?KY8?a2U0*?Q?ׁ?RFߑ?G!aG( øa 'robinvint.robinv,&GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@&!8S,P&2P&P7P&bE'Q(cPbe?nxdE@8FhGHpG0d H H+ eCH08e0sH;HO R   %47  ; ELSZbk `rzrobinv.cRlon_centerfalse_eastingfalse_northingprxlrrobinvintptitleradiuscenlonoffsetp__divdf3robinvp_erroradjust_lonr****22*B2b*r222*2*22*B2b* r2*(2*02*82"*@22R*Hb2*P2*X2*`2*h"2B*pR2r*x2*2*2*22*B2b*r2*2*2*2"*22R*b2*2*2*2*"2B*R2r*2*2*2*222R*222 *  2 I IB IQ *R *r I2 * * *(2 IR *r I *0 *82 I *@`222R22R2IRI*8*8*8"I*@*2222*HIR222b*HI*(*HI`*r222*HI"2b222*HRI*(*HIr*P*(I*I220IB *X 2 20!IR!*`!*!*!I"2B"2"2#*H"#I#2#2R$2$*H$I2%I%I% %'&''' B' J'&'2'Q'q''''__ __ _&(_ %%'sinfor.o/ 1082129505 59100 998 100644 11768 ` ELF2x!@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B 8%0Bd  P@!E<~F p`Q?#H803 E p"!~F~Fx pQ?#90# @Q?#`@00p0 0`0X 0 P H!`@ E p!~F~F pQ?#P80  @Q?#DBpQ?#p<00 0   HE p!~F@@BPH!`@ p H 0`0H J~F pQ?#80  @Q?#DBp`Q?#p<00 0 p H 0`0H  B @8U` "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;sinfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)sinforint+#r' pcenter_long( xfalse_east) false_north* intdoublesinforC(lon? Plat@ XxA`yBhdelta_lonD p size_tǚlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Hlong int__int8_t&dsigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,H__uint64_t-__qaddr_t. 8__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tIy__daddr_tL__caddr_tMchar__time_tNH__useconds_tO__suseconds_tPH__swblk_tQH__clock_tRH__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_H__t_scalar_tf__t_uscalar_tg__intptr_tjH__socklen_tm +__sched_paramE __sched_priorityF# n_pthread_fastlock __statusH# __spinlock# _pthread_descr_struct_pthread_descr#n __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:+# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR+#pthread_mutex_tS4Z __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t n _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset#d#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#n     +FILE- __FILE7 wchar_twint_t8< J__wchH __wchbI< L  y K __countE# __valueJ #__mbstate_tKL    __pos # __state y #_G_fpos_t    # __pos !# __state "y #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS `__gconv_step` ? __shlib_handle rx# __modname s~# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object`cXio __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state y #( __trans #0y %__gconv_trans_data( B __trans_fct gu# __trans_context_fct h# __trans_end_fct i# __data j# __next k# XXcXio^X%XX{__gconv_fct H__gconv_init_fct K__gconv_end_fct L9__gconv_trans_fct UX%__gconv_trans_context_fct Z{__gconv_trans_query_fct ^~o~__gconv_trans_init_fct a  ~__gconv_trans_end_fct b, ~__gconv_info __nsteps # __steps # __data ~# __gconv_t 2H 4 __cd 22# __data 3#H 5__cd /2__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX!;__io_write_fnaQk~__io_seek_fni__io_close_fnlfpos_tP   _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1  #arg2  #retval  # lon_center  R  false_easting!  false_northing"  8 sinfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h * !, "SINUSOIDALG!aZG&an'sinforintsinfor,pGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@p!8*,27bEQ+ b <n-HXHp0 -  +-0-0 + ;f 8' )q  %  4>ELS[pbmsinfor.cRlon_centerfalse_eastingfalse_northingsinforintptitleradiuscenlonoffsetpsinforadjust_loncosr* * * * 2"IbII* * Ir* I* rI* * * % %'p'''*'2'p' ' ' ' '___ _ _p(_ %%'sininv.o/ 1082129505 59100 998 100644 12880 ` ELF2`$@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B H50Be  x ~F<~F pU?#H803V p!~F~F pU?#90# xU?#`<00p0 0`0X xV<~FU?#~Fx pU?#8`<00`0X  ~F pU?#P80 V p!@~F@<00PH!`@ `@ J~F pU?#80  0 p  0`0$  X$0 `X@BPH! H@ xU?#<BP U?#@B pU?#80  0 p  0`0X ~Fx pT!`800 p  0`0$  U?#@BP0$PHV p!~F p800PH!p@ 0J ` HV 8 8 0 PH!`@ p@ 0L`8H N~Fx pT!800P H!`@ V p !~F p0803@@ xU?#<B pU?#80  00<03@! HU `T!% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;sininv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)sininvint+#r' pcenter_long( xfalse_east) false_north* intdoublesininvC*x? `y@ hlonAplatBxtempD  size_tǕlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Clong int__int8_t&_signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,C__uint64_t-__qaddr_t.3__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tIt__daddr_tL__caddr_tMchar__time_tNC__useconds_tO__suseconds_tPC__swblk_tQC__clock_tRC__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_C__t_scalar_tf__t_uscalar_tg__intptr_tjC__socklen_tm &__sched_paramE __sched_priorityF# i_pthread_fastlock __statusC# __spinlock# _pthread_descr_struct_pthread_descr#i __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:&# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR&#pthread_mutex_tS/Z __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t i _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offsetz#x_cur_column"#_vtable_offset#_#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#i     +FILE- __FILE7 wchar_twint_t87 J__wchH __wchbI7 G  t K __countE# __valueJ #__mbstate_tKG    __pos z# __state t #_G_fpos_t    # __pos !# __state "t #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS [__gconv_step` ? __shlib_handle rs# __modname sy# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object[^Sdj __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state t #( __trans #0t __gconv_trans_data( B __trans_fct gp# __trans_context_fct h# __trans_end_fct i# __data j# __next k# SS^SdjYS SSv__gconv_fct H__gconv_init_fct K__gconv_end_fct L4__gconv_trans_fct US __gconv_trans_context_fct Zzv__gconv_trans_query_fct ^yjy__gconv_trans_init_fct ay__gconv_trans_end_fct b' y__gconv_info __nsteps # __steps # __data y# __gconv_t -H 4 __cd 2-# __data 3#H 5__cd /-__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX6__io_write_fnaLfy__io_seek_fni{__io_close_fnlfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1  #arg2  #retval  # lon_center  R  false_easting!  false_northing"   sininv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h * !, "+++SINUSOIDALInput data errorsinusoidal-inverseG!aZG(a-DT!?|='sininvintsininv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!-,27bErQ@0 bgn`1!@0"@pp"0x1 "" "+2"0 20 #;F#`* 0-  %  4>ELS[dkswsininv.cRlon_centerfalse_eastingfalse_northingsininvintptitleradiuscenlonoffsetp__divdf3sininvp_errorcosadjust_lonr* * * * 2"IbII* * Ir* * B* bI* 22(Ir* * * * BII"I* % %''''*'2'' ' ' ' '___ _ _(_ %%'somfor.o/ 1082129506 59100 998 100644 38488 ` ELF2p@@8=0Bc  P@!D<|F p Q>#H803 D p"!|F|Fx p`Q>#90#D p !|F(|F pQ>#X803D p!|F0|F pQ>#h803xB pP!`800HD p !|F 00<03 Q>#DB pQ>#`800HD 8`8 HD p !@|F 00<03 Q>#DB p Q>#800D 0 0 PH!`@  @ D p!@|F @D 0  0 PH!`@ `@ ` H `0X JBx pP!80 090B Q>#@B@ Q>#DB pQ>#`800PH x@P!`<000 H@BPH!`@ `@ JHD p !@|F 00<03 @P!DB p`P!80  88`88 `H @ xQ>#<B p@Q>#80 0 1@B Q>#@B@ p$`800H 00<03 Q>#DB p`Q>#80  88`88 pH 0 p H 0 p8X 0` H  x 00<030@ xQ>#<B@ p$`800H 00<03 Q>#@B p`Q>#80  88`88 pH 0 p H 0 p8X 0` H  x 00<03 p$803 H$0 P H!H@<00PH!Bx pP!80 89B Q>#@B p`Q>#80 @PT@BPH!|F p@Q>#80 @PT@BPH! xQ>#<B p P?#p800 0` H 0 @PT@BP H!H 8 0` H 0 @PT@BP H!H@<00P H!H p800@PT@BPH!|F p P?#800P H!`@  p$0803 0 p  0`8$  p$ 00803 Q>#DB p P?#800P H!`@  p$0803Dp!~F x$p800 0 p H 0` H  |F `P?#H8`<00 p H 0` H  PH D p"!~F 0 p0X 0`0X 8 0 PH!`@ `@ JH x$p800 0` H `X  |Fx xP?#H 0`0X PHDp !~F D p"!~F @800PH!`@ `@ JPHDp!~F p$p800 0p0X 0   HDp !~F D p"!~F 8`800` H 0 PH!`@ `@ JHDp!~F D p"!~F 8`800 p HD p!~F 0` H  |F pP?#803CxP?#~F D@Q?#0A~F pP!@Bh$!LB)PH!|Fx`Q?#|F pP?#`800|FxQ?#|F pQ?#`800|FxQ?#|F pP?#`800|FxQ?#|F p Q?#`800|FxQ?#|F p@Q?#`800|F xP?#HH8 xQ>#<B pP?#80 8D!@ Q>#@BB Q>#DB pP?#80  88`88 `H ~FCQ?#A~F@E P?#8B@xX !DBp&!@B'PH!|Fx`Q?#|Fx`Q?#|F pP?#p800 0p H 0`8H  |FxQ?#|FxQ?#|F pQ?#p800 0p H 0`8H  |FxQ?#|FxQ?#|F pP?#p800 0p H 0`8H  |FxQ?#|FxQ?#|F p Q?#p800 0p H 0`8H  |FxQ?#|FxQ?#|F p@Q?#p800 0p H 0`8H  |FxxP?#|F pP?#80  pH!p<0#`H Q>#DB@ pH$p<0# xQ>#<B pP?#80 8 !@@ Q>#@BB Q>#DB pP?#80  88`88 `H ~FCQ?#A~F@E P?#8B@xX !DBp&!@B#PH!|Fx`Q?#|Fx`Q?#|F pP?#`800p0H 0`8H  |FxQ?#|FxQ?#|F pQ?#`800p0H 0`8H  |FxQ?#|FxQ?#|F pP?#`800p0H 0`8H  |FxQ?#|FxQ?#|F p Q?#`800p0H 0`8H  |FxQ?#|FxQ?#|F p@Q?#`800p0H 0`8H  |FxxP?#|F pP?#80  pH!p<0#H Q>#DBB p$`800~FCQ?#A~F@E P?#8B@xX !DBp&!@B PH!|Fx`Q?#|Fx`Q?#|FpP?#p<00 0`0H  |FxQ?#|FxQ?#|FpQ?#p<00 0`0H  |FxQ?#|FxQ?#|FpP?#p<00 0`0H  |FxQ?#|FxQ?#|Fp Q?#p<00 0`0H  |FxQ?#|FxQ?#|Fp@Q?#p<00 0`0H  PHD p!~F@<00PH!`@ `@ JPHD p !~F@<00PH!`@ `@ JPH D p"!~F@<00PH!`@ `@ JPHD p!@~F@<00PH!`@ `@ JPHD p !~F@<00PH!`@ `@ JB @8U` "BH53~F@` `@=#  @3 x R<zF pT=#H803 R p"!zF zF pT=#90#Rp!|F 00<03Rp !~F R p"!@zF 00<03@Rp$!zF T=#`@00p0 0`0X zFx pT?#p800 0`0$  T=#@BP p$`800 T=#DB pT?#p800 0`8$  T=#HBP p$`800 xT=#<BP T=#@B pT?#`800zFx@T?# zF p@U=#`800zFx pT?#`800`  T=#@BW p$`800 p$`800p0  T=#DBW p$`800 T=#HB pT?#`800`0$  xT=#<BW p$`800 T=#@B pU=#80# T=#DBR T=#HB pU>#`800zFx p U=#80#Rp !|F@Rp$!~F T=#HBpU>#p<00 0p H 0 `8H "zFx p`T>#800P H!`@ R p !|FzF p@T>#`800 p @R p$!|F 0`8$ 8 xT=#<BQ T=#@B p`T>#p800 0`0X  T=#DB p@T>#`800`  T=#HB pU>#803 xT=#<B p@T>#`800`0$  T=#@BV p$`800 T=#DBP T=#HBW xT=#<BV T=#@B pU>#800PH!p@ 0J p H 0p H 0L`8X N T=#DB P T=#HBQx$ zFpT>#p<00 0p H 0 `8H "zFx pT>#800P H!`@ R p !zFzF pU=#`800 p  0`8$ 8 T=#HBP T=#@B pT>#p800 0`0X  T=#DBW T=#HB p T?#800P H!p@  p$`800`0X pH 0   HR p!|F@@BP H!p@  p$`800` H `0HR p !zF0 H@BPH!`@ `@ JzF pU=#800P H!`@ @R p$!@zFzFxU=#zFxU=# zFp T>#p<00 0`0H  zFxxU=#zF pT>#`800 p R p"!@zF 0` `0X  zF pU=#`800 p R p!|F 0`8$  B T=#@BT T=#DB p U=#80  p!p<0#@R p$!@zF pp9 bpB pT?#8B`X@BPH!~F`p `$0 PH!H@ xT=#<BR T=#@B pU=#`800H T=#DBU p$80  8 0` H  zFxU>#zF p`U=#p800 0`0H zFpU=# zFxU=#zF pU=#80  p!p<0# R p"!zF pp8 b T=#HBV T=#@Bp`U=#p<00 0`0$ 8 T=#DBV T=#HBpU>#p<00 0`8$ 0B xT=#<BV T=#@Bp`U=#p<00 0`8$  T=#DBW p$`800 T=#HBV T=#@BpU>#p<00 0`0 $ T=#DBW p$`800H T=#HB p T?#800P H!`@ R p!|F  0 p0X 0 p HR p !|F 0 0 H T=#DB p T?#800PH!p@ 0J   H@R p$!|F@@BPH!`@ ` H  0 X T=#@Bp`U>#p<00 0 p H R p"!|F 0` H `0X 0 PH!`@  0 PH!`@ `@ 0 P H!`@ @R p$!|FzFx(!U>#zF p@U>#@<00PH!`@ p@  p$`800`0H JzF p U>#800PH!`@ 0 P H!`@ @R p$!|FzFx pU=#800P H!`@ R p !|FzFT># zFxT>#zFpT>#p<00 0` H  PH x$p800 0   H@R p$!@zF@@BPH!`@   H T=#@BpT>#p<00 0` H H T=#DBpT>#p<00 0` H H T=#HBpT>#p<00 0` H `H ` H H$ 0 PH!`@ `@ 0 PH!`@ ` H JH8`<00  H x$p800 0` H `0 H 0 P H!`@ R p!@|FzF pT=#`80  T=#DBpU=#p<00 0   H T=#HB pU=#`800`0H 0 PH!p@ 0J` H  0H xT=#<B pU=#p800 0` H 0 PH!p@ 0J` H  0HR p !|F8`<00 ` H R p"!@|F0 H@BPH!`@ `@ `0X L zF pT=#80  T=#DB pT=#80  8`800` H   zF pT=#`80  T=#@BpT>#p<00 0   H T=#DB pU=#p800 0` H 0 PH!p@ 0J` H  0H@R p$!|F8`<00 ` HR p!@|F0 H@BPH!`@ `@ `0H LzF pT=#80  T=#DB pT=#80  8`800` H   zFx`T?#zF pT=#80  00<03 R p"!zF zF pT=#80 8`<00`0H  zFx pT=#80 R p"!~F8`<00`0H  U?#HU  @"0D1PP10Ba   VZ~Fx pV?#90#Z p !~F~F pV?#90#Z p!~F~F p W?#(90# Z p"!@~Fx~F p W?#80  8 0` H ~F p W?#80 @`BP L!`@ Z p!~F~F`W?#~Fx@W?#~Fp@W?#p<00 0` H  pH x$p800 0   HZ p!@~F p800PL!`@   H V?#@Bp`W?#p<00 0` H H V?#DBp`W?#p<00 0` H H V?#@Bp`W?#p<00 0` H `H ` H H$ 0 PL!`@ `@ 0 PL!`@ ` H N~F8W?#HZ p !~F 8`800` H H V?#DBp`W?#p<00 0` H `H 0 PL!`@ `@ 0 P L! @ x$~Fp`W?#p<00 0` H H V?#DBp`W?#p<00 0` H H V?#@Bp`W?#p<00 0` H `H ` H H$ 0 P L!`@  p$8`<00` H `0 X ` H NH8`<00  H x$p800 0` H `0 H 0 P L!`@ Z p"!@~F Z8~Fx pW?#8`<00  H x$p800 0` H `0 XZ p !@~F0 H`BPL!`@ `@ N~F pV?#80 Z8~Fx p W?#80  0`0H 0 PL!p@ 0N`H P~F pV?#80 Z8"~Fx p W?#80  8 0` H 0 PL!p@ 0N`H P~F8W?#H Z p"!~F8`<00p0H 0  ` HZ p!@~F0 H`BPL!`@ `@ N~F pV?#80 Zp"!p~FZ p!@~F p800PL!p@ 0N`H P~F pW?#80 Zp"!p~FZ p!@~F pp800 0` H 0 PL!p@ 0N`H PB  "B% .? : ; ' I@ : ; I 4: ; I $ >  : ;  II !I/ .: ;' @ : ;I 4: ;I : ; I : ;  : ; I8  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; ( ! : ;"4: ; I?  somfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)somforint8(r_major*~r_minor+~satnum,~path-~alf_in.~lon/~false_east0~false_north1~time2start13flag4 sat_ratio5(i9alf:e2c:e2s:one_es:dlam;fb;fa2;fa4;@fc1;Hfc3;Psuma2;Xsuma4;`sumc1;hsumc3;psumb;xintdoublelong intsomfor*lon}lat}y}x}L230L240L250L260L300n}l}delta_lon}rlm}tabs}tlam}xlam}c}xlamt~ab2~ab1~xlamp~sav~d~sdsq~sd~tanlg~xtan~tphi~dp~rlm2~scl~tlamp~conv~delta_latradltradlntemperrorbuf%5J 5Olong unsigned intchar som_series+ fb  fa2  fa4  fc1 fc3@ dlamH sdP sdsqX h` sqh fcp size_t-long unsigned int __u_char Runsigned char __u_short!tshort unsigned int __u_int"unsigned int __u_long#- __u_quad_t$- __quad_t% __int8_t&signed char __uint8_t'R __int16_t(short int __uint16_t)t __int32_t* __uint32_t+ __int64_t, __uint64_t-- __qaddr_t. __dev_t0o __uid_t1L __gid_t2L __ino_t3o __ino64_t4o __mode_t5L __nlink_t6o __off_t7^ __off64_t8^ __loff_t9^ __pid_t:; __ssize_t;^ __rlim_t^ __blkcnt64_t?^ __fsblkcnt_t@o __fsblkcnt64_tAo __fsfilcnt_tBo __fsfilcnt64_tCo __id_tDL I__valH #)  5 __fsid_tI __daddr_tL __caddr_tM[ J __time_tN __useconds_tO __suseconds_tP __swblk_tQ __clock_tR __key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t_ __t_scalar_tf __t_uscalar_tg __intptr_tj __socklen_tm __sched_paramE__sched_priorityF# _pthread_fastlock__status#__spinlock#_pthread_descr_struct _pthread_descr#   __pthread_attr_s8*__detachstate+#__schedpolicy,#__schedparam-c #__inheritsched.# __scope/#__guardsize0#__stackaddr_set1# __stackaddr2 #(__stacksize3#0 pthread_attr_t4 > <__c_lock: #__c_waiting; # pthread_cond_t< o C__dummyB# pthread_condattr_tCT pthread_key_tF (S__m_reservedN#__m_countO#__m_ownerP #__m_kindQ#__m_lockR # pthread_mutex_tS B Z__mutexkindY# pthread_mutexattr_tZ# pthread_once_t^ pthread_t-_IO_FILE-_flags#_IO_read_ptr [ #_IO_read_end [ #_IO_read_base [ #_IO_write_base[ # _IO_write_ptr[ #(_IO_write_end[ #0_IO_buf_base[ #8_IO_buf_end[ #@_IO_save_base[ #H_IO_backup_base[ #P_IO_save_end[ #X_markers#`_chain!#h_fileno#p_blksize#t_old_offset#x_cur_column"t#_vtable_offset##_shortbuf$'#_lock(7#_offset1#__pad17 #__pad28 #_mode:#_unused2<9#_IO_marker_next#_sbuf!#_pos# 7J 5IJ 5+ FILE- __FILE7 wchar_twint_t8J__wchHs__wchbIJ 5K__countE#__valueJ# __mbstate_tK! __pos #__state # _G_fpos_t ] #__pos !#__state "# _G_fpos64_t #2K &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR ~ 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS__gconv_step` ?__shlib_handle r#__modname s#__counter u#__from_name w[ #__to_name x[ # __fct z'#(__init_fct {=#0__end_fct |O#8__min_needed_from #@__max_needed_from #D__min_needed_to #H__max_needed_to #L__stateful #P__data #X__gconv_loaded_objectJ&&,~2__gconv_step_data8 @__outbuf #__outbufend #__flags #__invocation_counter #__internal_use #__statep # __state #(__trans !#0R__gconv_trans_data( B__trans_fct g#__trans_context_fct h #__trans_end_fct i#__data j #__next k!# &, R   =&-O&C __gconv_fct Hh __gconv_init_fct K- __gconv_end_fct LC __gconv_trans_fct U __gconv_trans_context_fct Z __gconv_trans_query_fct ^..4 __gconv_trans_init_fct aX^ss __gconv_trans_end_fct b__gconv_info __nsteps #__steps &#__data #25 __gconv_t ?H 4__cd 2#__data 32#fH 5__cd /__combined 4 _G_iconv_t 5? _G_int16_t 7 _G_int32_t 8 _G_uint16_t 9t _G_uint32_t : __gnuc_va_list + _IO_jump_t_IO_lock_tU__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXE [ __io_write_fnaE __io_seek_fni __io_close_fnl 0 fpos_tP!v _IEEE__SVID__XOPEN__POSIX__ISOC_ _LIB_VERSION_TYPE >!exception( type #name [ #arg1 #arg2 #retval # lon_center! a! b! a2! a4! c1! c3! q! t! w! xj! p21! sa! ca! es! s! start! false_easting" false_northing# "gsat_ratio'   somfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 7%!++,+,+,++++x x ++ !q,+,,!+!, + ++,++SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without conv som-forward@=?wO[?&?p= `@5RFߑ?O)?j\a0l?~CS?l?)`@cܥL@& .>@@V@>@N@.@F@Hz>z!?z!-DT!?^8U)zj@!3|@-DT! @-DT!@@-DT!?@@Fߑ?@@G&a G( øa G)a6somforintsomforgsat_ratio,pCGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@pC!|0,C2C7CEcEQؑHbb n 0lm (nxpnH8 nn:"o0(0Ro;ov$ {  ')+p.X2=ChF`IHK8M@OPR7 ]` c(f0 ix kt~somfor.cfalse_eastingfalse_northingabesp21lon_centerstartcasawqtxjsom_seriesa2a4c1c3s__divdf3somforintgsat_ratioptitleradius2genrpt_longgenrptoffsetpcossinsomfortanatansprintfp_errorsqrtasinlog2&*"*Q***pI$bI$*X*BI$q**@*Q*XR*b*** *("2&2*0p*8*X*@**H*P"*(R2&b*0*2I'**I("22I)R20bI)*X2HI***X"2h2I*A*B*bI+q2&2I*I,*h*h *`@ *hB *` I- *` *p *h *h! *p" *`B *`q *H *p I$! *H" *H0 *H *p *8 I$! *@2 *p@ *h I$ *P2*p*p2*p*p2*p`*x**I$* *2I$a*r*I$*(*I$!*02*RI$B***@*r*****`**XI,R *@!*!I-!*`"*X"I,2#*#*$I/ $*pB$*`$I-$*h$I$B%I02'2B'I1`'2r'I2'2&'*B(* *****I-"+*pB+*h+*`+I,,I-B,*p,I3"-I$b-I4-*-I$.*B.I/r.I5.I-Q/*xR/*X`/*`/I,/*@0*Hb0*80I$21I3a1*Pb1*P1*x1*x1I3"2*b2*2I-2* 3*R3I-3*x3I$B4*4*(4*05*B5I-5*P5I$26*6*27*8*8I-a9*xb9*Xp9*`9I,9*@2:*H:*8;I$R;I3;*8;*HB<I$<I3<*H<*82=*8=I$=*X=*h1>*P2>*PR>*x`>*x>I3?*P"?*x0?*x?I$2@I,@*@I,AA*xRA*PAI$BBI,B*CI,% %'pC'''''7''@"'''7'0'G'*f'7n'pC ''/'C'W' k'('0'8'@'H'P'X'` 'h'p0'xG'f'''&'____ _7(_(0_78_pC@_P%%'sominv.o/ 1082129506 59100 998 100644 37792 ` ELF2m@@8=0Bc  P@!D<|F p Q>#H803 D p"!|F|Fx p`Q>#90#D p !|F(|F pQ>#X803D p!|F0|F pQ>#h803 Q>#DB pQ>#`800HD p !|F 00<03 Q>#pD00`8 HD p !@|F 00<03 Q>#DB p Q>#800D 0 0 PH!`@  @ D p!@|F @D 0  0 PH!`@ `@ ` H `0X JBx p`P!80 09B Q>#@B@ Q>#DB pQ>#`800HD p !@|F 00<03 p$ A 0"0 H@BPH!`@ `@ J@@ xQ>#<B p@Q>#80 0 1B Q>#@B@ p$`800H 00<03 Q>#DB p`Q>#80  88`88 pH 0 p H 0 p8X 0` H @ xQ>#<B@ p$`800H 00<03 Q>#@B p`Q>#80  88`88 pH 0 p H 0 p8X 0` H  H$0 P H!H@<00PH!|Fx p`Q>#80 @PT@BPH!|F p@Q>#80 @PT@BPH!|F p P?#p800 0` H 0 @PT@BP H!H 8 0` H 0 @PT@BP H!H@<00PH!Bx pP!800@PT@BPH!|F p P?#800P H!`@  p$0803 0 p  0`8$  p$ 00803 Q>#DB p P?#800P H!`@  p$0803Dp!~F x$p800 0 p H 0` H  |F `P?#H8`<00 p H 0` H  PH D p"!~F 0 p0X 0`0X 8 0 PH!`@ `@ JH x$p800 0` H `X  |Fx xP?#H 0`0X PHDp !~F D p"!~F @800PH!`@ `@ JPHDp!~F p$p800 0p0X 0   HDp !~F D p"!~F 8`800` H 0 PH!`@ `@ JPHDp!~FD p !~F @800PH!`@ `@ JH Dp"!~F D p"!~F 8`800 p HD p!~F 0` H  |F pP?#803CxP?#~F D@Q?#0A~F pP!@Bh$!LBH)PH!|Fx`Q?#|F pP?#`800|FxQ?#|F pQ?#`800|FxQ?#|F pP?#`800|FxQ?#|F p Q?#`800|FxQ?#|F p@Q?#`800|F xP?#HH8 xQ>#<B pP?#80 8D!@ Q>#@BB Q>#DB pP?#80  88`88 `H ~FCQ?#A~F@E P?#8B@xX !DBp&!@BH'PH!|Fx`Q?#|Fx`Q?#|F pP?#p800 0p H 0`8H  |FxQ?#|FxQ?#|F pQ?#p800 0p H 0`8H  |FxQ?#|FxQ?#|F pP?#p800 0p H 0`8H  |FxQ?#|FxQ?#|F p Q?#p800 0p H 0`8H  |FxQ?#|FxQ?#|F p@Q?#p800 0p H 0`8H  |FxxP?#|F pP?#80  pH!p<0#`H Q>#DB@ pH$p<0# xQ>#<B pP?#80 8 !@@ Q>#@BB Q>#DB pP?#80  88`88 `H ~FCQ?#A~F@E P?#8B@xX !DBp&!@Bx#PH!|Fx`Q?#|Fx`Q?#|F pP?#`800p0H 0`8H  |FxQ?#|FxQ?#|F pQ?#`800p0H 0`8H  |FxQ?#|FxQ?#|F pP?#`800p0H 0`8H  |FxQ?#|FxQ?#|F p Q?#`800p0H 0`8H  |FxQ?#|FxQ?#|F p@Q?#`800p0H 0`8H  |FxxP?#|F pP?#80  pH!p<0#H Q>#DBB p$`800~FCQ?#A~F@E P?#8B@xX !DBp&!@B PH!|Fx`Q?#|Fx`Q?#|FpP?#p<00 0`0H  |FxQ?#|FxQ?#|FpQ?#p<00 0`0H  |FxQ?#|FxQ?#|FpP?#p<00 0`0H  |FxQ?#|FxQ?#|Fp Q?#p<00 0`0H  |FxQ?#|FxQ?#|Fp@Q?#p<00 0`0H  PHD p!~F@<00PH!`@ `@ JPHD p !~F@<00PH!`@ `@ JPH D p"!~F@<00PH!`@ `@ JPHD p!@~F@<00PH!`@ `@ JPHD p !~F@<00PH!`@ `@ JB @8U` "B@13~F gH!0|F D3  @!I<|F p`R>#H803 I p"!|F |F pR>#90#I p!@~FI 8 `8 |Fx p`R>#8`<00`0X ID  |F`R>#|Fx p S?#8`<00`0X  |F(R>#|F `R>#H8`<00` H @  0 PH!`@ `@ J |F xR>#H 00<03I p!~F @R>#@B p@S?#80 8!p@ @R>#DBL @R>#HB pR>#`800|Fx pR>#800P H!`@ I p !@|F|F@S># |Fx S>#|Fp S>#p<00 0` H  PH x$p800 0   H@I p$!|F@@BPH!`@   H @R>#@Bp@S>#p<00 0` H H @R>#DBp@S>#p<00 0` H H @R>#HBp@S>#p<00 0` H `H ` H H$ 0 PH!`@ `@ 0 PH!`@ ` H J|Fx0aS>#|F p`R>#@<00PH!`@  @  p$ I 0"0 H@BPH!`@ p@  p$`800 ` H0 H@BPH!`@ `@  0H x@R>#<B pR>#`800`0H 0 PH!p@ 0J` H  0X @R>#@B pR>#p800 0` H 0 PH!p@ 0J` H @0X x$800H@BPH!`@ 0@ ($|F pR>#800PH!p@ 0J   H @R>#HB pR>#p800 0` H 0 PH!p@ 0J` H `0H ` H `0X L|Fx(R>#|F p`S>#@<00PH!`@ `@ J|FS># |FxR>#|FpS>#p<00 0`0X   |F pS>#`800 p I p!|F 0`8$ pB @R>#@Bp@S?#|Fx@S?# |F p@S?#80  p!p<0#H x@R>#<B p@S?#80 81@B P$0 `XV@BPH!H@ @R>#@B pR>#800P H!`@ I p"!@|FH8`<00 ` H0 H@BPH!`@ `@ 0 H@BPH!`@ `@ `H 0 P H!0@  p$@I 0$0 H@BP H!`@ x$|FpS>#p<00 0` H  0 X @R>#DB pR>#p800 0` H 0 PH!p@ 0J` H `0X ` H 0 P H!`@ @I p$!|F|Fx pS>#800P H!`@ I p !|F|FxR?# |F pS>#p800 0`0X `0H |Fx R?#|FxS># |FpS>#p<00 0` H  |Fx pR>#800PH!`@ p  0`8$ 8 @R>#@BK @R>#DB pR>#p800 0`0X  @R>#HB pR?#800P H!`@ I p!~F|F`R?#|Fx@R?# |Fp@R?#p<00 0` H  |Fx pR>#800P H! @ Ip !~F 0`0X @ 0 PH!`@ `@ `0X pH 0 0 H I p"!~F8`<00   H @R>#HBp R?#p<00 0` H pHI p!~F 0`0X  HI p !~F8`<00` H `0 X 0 PH!`@   H I p"!|F@@BPH!`@  0 PH!`@ `@ 0 X@Ip$!~F 0pH 0` H `0X 0 PH!`@ `@ 0 P H!`@ I p!~F|F pR?#`800`  @R>#DB pR?#803 @R>#HB pR?#`800`0$  x@R>#<BJ p$`800 @R>#@B pR>#800PH!`@ `  @R>#DB pR?#803 @R>#HB pR>#800PH!`@ `0$  x@R>#<BK p$`800 @R>#@BJ @R>#DBJ @R>#HB pR?#`800 p0X 0 p H I p"!@~F 0p H 0`8X   |FS?#|FxR?#H@I p$!|F 8`800p H 0 `8X " 0 p  0`8$  x@R>#<BI p$`800 p0X 0`0X  H @R>#@Bp`R?#p<00 0` H `0 H 0 PH!`@ @J 0 PH!`@ `@ 0 P H!`@ I p"!~F p$`800 p  0`0  @R>#HB pR>#800P H! @ I p!~F@@BPH!`@   H @R>#@B pR?#800PH!p@ 0J` H 0X 0 p0X 0` H 0 PH!`@ `@ 0 P H!`@ I p"!~F @R>#HB pS?#8`<00`0H 0 P H!`@ I p!|F p0803I p !@|Fx|F pR?#`800 S?#0~F p $0L1  $BP10Ba   VZ~Fx pV?#90#Z p !~F~F pV?#90#Z p!~F~F p W?#(90# Z p"!@~Fx~F p W?#80  8 0` H ~F p W?#80 @`BP L!`@ Z p!~F~F`W?#~Fx@W?#~Fp@W?#p<00 0` H  pH x$p800 0   HZ p!@~F p800PL!`@   H V?#@Bp`W?#p<00 0` H H V?#DBp`W?#p<00 0` H H V?#@Bp`W?#p<00 0` H `H ` H H$ 0 PL!`@ `@ 0 PL!`@ ` H N~F8W?#HZ p !~F 8`800` H H V?#DBp`W?#p<00 0` H `H 0 PL!`@ `@ 0 P L! @ x$~Fp`W?#p<00 0` H H V?#DBp`W?#p<00 0` H H V?#@Bp`W?#p<00 0` H `H ` H H$ 0 P L!`@  p$8`<00` H `0 X ` H NH8`<00  H x$p800 0` H `0 H 0 P L!`@ Z p"!@~F Z8~Fx pW?#8`<00  H x$p800 0` H `0 XZ p !@~F0 H`BPL!`@ `@ N~F pV?#80 Z8~Fx p W?#80  0`0H 0 PL!p@ 0N`H P~F pV?#80 Z8"~Fx p W?#80  8 0` H 0 PL!p@ 0N`H P~F8W?#H Z p"!~F8`<00p0H 0  ` HZ p!@~F0 H`BPL!`@ `@ N~F pV?#80 Zp"!p~FZ p!@~F p800PL!p@ 0N`H P~F pW?#80 Zp"!p~FZ p!@~F pp800 0` H 0 PL!p@ 0N`H P XPU "B% .? : ; ' I@ : ; I 4: ; I $ >  I.: ; ' I@ : ; I  : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;sominv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)rsominvint2r(r_major'y~r_minor(y~satnum)~path*~alf_in+y~lon,y~false_east-y~false_north.y~time/yflag0sat_ratio1y i3alf4ye2c4ye2s4yone_es4ydlam5yfb5yfa25yfa45y@fc15yHfc35yPsuma25yXsuma45y`sumc15yhsumc35ypsumb5yxintdoublelong int6sominvr)yy~xy~lon6~lat6~tlony~convy~savy~sdy~sdsqy~blony~dify~sty~defacy~actany~tlatyddybigkybigk2yxlamtyslysclydlatydlony@tempyHinumbPysom_seriesy+fb6fa26fa46fc16fc36@dlam6HsdyPsdsqyXhy`sqyhfcypsize_tlong unsigned int__u_char 4unsigned char__u_short!Vshort unsigned int__u_int"{unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&signed char__uint8_t'4__int16_t(short int__uint16_t)V__int32_t*r__uint32_t+{__int64_t,__uint64_t-__qaddr_t.t__dev_t0Q__uid_t1.__gid_t2.__ino_t3Q__ino64_t4Q__mode_t5.__nlink_t6Q__off_t7@__off64_t8@__loff_t9@__pid_t:__ssize_t;@__rlim_t@__blkcnt64_t?@__fsblkcnt_t@Q__fsblkcnt64_tAQ__fsfilcnt_tBQ__fsfilcnt64_tCQ__id_tD. I __valH# r long unsigned int__fsid_tI__daddr_tLr__caddr_tMRXchar__time_tN__useconds_tO{__suseconds_tP__swblk_tQ__clock_tR__key_tSr__clockid_tVr__timer_tYr__ipc_pid_t\r__blksize_t___t_scalar_tfr__t_uscalar_tg{__intptr_tj__socklen_tm{ __sched_paramE __sched_priorityFr# _pthread_fastlock __status# __spinlockr#_pthread_descr_struct_pthread_descr#  __pthread_attr_s8* __detachstate+r# __schedpolicy,r# __schedparam-b # __inheritsched.r# __scope/r# __guardsize0# __stackaddr_set1r# __stackaddr2 #( __stacksize3#0pthread_attr_t4 = < __c_lock: # __c_waiting; #pthread_cond_t< n C __dummyBr#pthread_condattr_tCS pthread_key_tF{ (S __m_reservedNr# __m_countOr# __m_ownerP # __m_kindQr# __m_lockR #pthread_mutex_tS A Z __mutexkindYr#pthread_mutexattr_tZ" pthread_once_t^rpthread_t _IO_FILE-_flagsr#_IO_read_ptr R#_IO_read_end R#_IO_read_base R#_IO_write_baseR# _IO_write_ptrR#(_IO_write_endR#0_IO_buf_baseR#8_IO_buf_endR#@_IO_save_baseR#H_IO_backup_baseR#P_IO_save_endR#X_markers#`_chain #h_filenor#p_blksizer#t_old_offset#x_cur_column"V#_vtable_offset##_shortbuf$&#_lock(6#_offset1#__pad17 #__pad28 #_mode:r#_unused2<8# _IO_marker _next# _sbuf # _posr# 6X  HX +FILE- __FILE7 wchar_trwint_t8{J__wchHr__wchbI X  K __countEr# __valueJ#__mbstate_tK   __pos # __state #_G_fpos_t  \ # __pos !# __state "#_G_fpos64_t #1J &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR } 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter ur# __from_name wR# __to_name xR# __fct z&#( __init_fct {<#0 __end_fct |N#8 __min_needed_from r#@ __max_needed_from r#D __min_needed_to r#H __max_needed_to r#L __stateful r#P __data #X__gconv_loaded_objectX%r%+rr}1 __gconv_step_data8 @ __outbuf # __outbufend # __flags r# __invocation_counter r# __internal_use r# __statep # __state #( __trans #04 __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j # __next k # r%+ 4r  <r%,N%B__gconv_fct Hg__gconv_init_fct K,__gconv_end_fct LB__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^ -r-3__gconv_trans_init_fct aW]rrr __gconv_trans_end_fct b __gconv_info __nsteps # __steps %# __data # 1 __gconv_t  >H 4 __cd 2# __data 31#eH 5__cd /__combined 4_G_iconv_t 5>_G_int16_t 7_G_int32_t 8r_G_uint16_t 9V_G_uint32_t :{__gnuc_va_list + _IO_jump_t_IO_lock_tT__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX' R__io_write_fna' __io_seek_fnir r__io_close_fnl/r fpos_tP u _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE =exception( type r#name R#arg1 y#arg2 y#retval y# lon_center y a y b y a2 y a4 y c1 y c3 y q y t y u y w y xj y p21 y sa y ca y es y s y false_easting#y false_northing$y   sominv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 1$+++,+, ++x x %++++++v ++!"/+,+ ++,++SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse@=?wO[?&?p= `@5RFߑ?j\a0l?~CS?l?)`@cܥL@& .>@@V@>@N@.@F@& .>@@-DT!?Hz>-DT!?Fߑ?@@G&a G' Ǹa G)a'sominvintsominv,PBGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@PB!xy8,B2B7ByE DQb_ nhhiHj0kxpkH kk+Xl0p0Kl;ls$ x  ')+x.9`=p@hCPE8G@IHKXN6 Y\ _(b0 e gpzsominv.cfalse_eastingfalse_northingabeslon_centerp21casawqtuxjsom_seriesa2a4c1c3s__divdf3sominvintptitleradius2genrpt_longgenrptoffsetpcossinsominvsqrtp_errorexpatantanasinadjust_lon**"*Q*r*xI$2I$**`*BI$**`**2*R* r*(*0*`*8*2*@R*Hr*(2I&**I'2"I(B20RI(r*P2HI)**P2hI)!*"*BI*b2rI)I+*p*p*X *p"*XbI,*h*x*p*p *x *h" *hQ *P *x I$ *P *P *Pa *x *8 I$ *@ *x *` I$ *H2 I$a *X*h*h*h*h*h*p**x"I$Q* b*I$**xI$*("*BI$q*0*I$*2***I$*I,a*b*`p*hI+*@"*Pr*8I$BI.*I$* I$@ *R *Xr I$ * I,2!* R!*!I,!*!*X!I$ "*(B"I,r"*0"*"I,b#*#I$%2%2"%I/b%I,%*%*%*X%I$%*X&I$b&I.&*&I$&*('*02'*r'I,'I02(I1(*B)I+b)*)*"*I,*I2**xB+I$+*p+*h+*8r,*H,I.-I+B-I$-*H-I$2.I1/*R/I+/I+ 0*0*!1*`1*h1*1*x2*x22*x2I.2I$"3I3`3*hr3*3I24I+"4*pR4I,4*x4*h4I$25I15*5I4b7*7I,A8*B8*`P8*h8I+8*@9*Pb9*89I$2:I.q:*8:*P";I$b;I.;*P;*8<*8<I$<*`<*p=*X=*X2=*@=*=I.=*X>*>*r>I$?I+?*?I+!@*2@*X@I$"AI+A*AI+% %'PB'''''6S'6['PB''.'B'V' j'(~'0'8'@'H'P'X'`'h'p/'xB'a'''____ _6(_(0_68_PB@_P%%'sterfor.o/ 1082129506 59100 998 100644 14080 ` ELF2&@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 G?#@B pG?#`800~Fx pG?#8000$BP @!@H HBP @!H@BP @!H@BP @!H@BP @!H@<00P@!B @50Bb  R@!K<~F pR?#H803 K p"!~F ~F p S?#90# xR?#`<00p0 0`0X 0 P H!`@ K p!~F~FpR?#~FM@<B !PH!~F pS?#800P H!`@ @K p$!@~F~FxS?#H K p"!~F 8`800  H R?#HBp`S?#p<00 0 p HK p!@~F 0` H `0 H  ~F pS?#`800`H p  0`8  P$0 `XV@BPH!8H@ R?#DBO R?#HB pS?#`800 `H @0 PH!`@ `@ J~Fx pS?#`80 x$~FpS?#p<00 0 p H K p"!~F 0   H@K p$!~F@@BPH!`@ p H 0J`8H L~Fx p S?#80 x$ ~FpS?#p<00 0  H R?#HBp@S?#p<00 0  H R?#HBp`S?#p<00 0 p HK p!@~F 0` H `0 X p$ H 0 `8H "R!@Up "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;sterfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)sterforint,#r_maj'&`center_lon(&hcenter_lat)&pfalse_east*&xfalse_north+&intdoublesterforJ)lonF&latG&xH@yIHsinphiK&PcosphiK&XdlonL&`coslonM&hkspN&pgO&x&size_tlong unsigned int__u_char $unsigned char__u_short!Fshort unsigned int__u_int"kunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t'$__int16_t(short int__uint16_t)F__int32_t*__uint32_t+k__int64_t,__uint64_t-__qaddr_t.p__dev_t0M__uid_t1*__gid_t2*__ino_t3M__ino64_t4M__mode_t5*__nlink_t6M__off_t7<__off64_t8<__loff_t9<__pid_t:__ssize_t;<__rlim_t<__blkcnt64_t?<__fsblkcnt_t@M__fsblkcnt64_tAM__fsfilcnt_tBM__fsfilcnt64_tCM__id_tD*I __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tMNTchar__time_tN__useconds_tOk__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgk__intptr_tj__socklen_tmk __sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-^# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t49< __c_lock:# __c_waiting;#pthread_cond_t<jC __dummyB#pthread_condattr_tCOpthread_key_tFk (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR#pthread_mutex_tS= Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr N#_IO_read_end N#_IO_read_base N#_IO_write_baseN# _IO_write_ptrN#(_IO_write_endN#0_IO_buf_baseN#8_IO_buf_endN#@_IO_save_baseN#H_IO_backup_baseN#P_IO_save_endN#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"F#_vtable_offset##_shortbuf$" #_lock(2 #_offset1#__pad17#__pad28#_mode:#_unused2<4 #  _IO_marker _next # _sbuf # _pos#  2 T  D T +FILE- __FILE7 wchar_twint_t8k J__wchHn __wchbI T  K __countE# __valueJ} #__mbstate_tK    __pos # __state  #_G_fpos_t  X  # __pos !# __state " #_G_fpos64_t #- F &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR y 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name wN# __to_name xN# __fct z"#( __init_fct {8#0 __end_fct |J#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objectT!!'y- __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0$ __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# !'$ 8!(J!>__gconv_fct Hc__gconv_init_fct K(__gconv_end_fct L>__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^ ))/__gconv_trans_init_fct aSYnn__gconv_trans_end_fct b  __gconv_info __nsteps # __steps !# __data # -__gconv_t :H 4 __cd 2# __data 3-#aH 5__cd /__combined 4_G_iconv_t 5:_G_int16_t 7_G_int32_t 8_G_uint16_t 9F_G_uint32_t :k__gnuc_va_list + _IO_jump_t_IO_lock_tP__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX#N__io_write_fna#__io_seek_fni__io_close_fnl+fpos_tP q _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE 9exception( type #name N#arg1 &#arg2 &#retval &# r_major& lon_center& lat_origin& false_northing& false_easting & sin_p10!& cos_p10"&  sterfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h +!!  +.STEREOGRAPHICPoint projects into infinityster-forG!aoG'a|=@)sterforint0sterfor,`GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@`!1,27bE Q4hb!n6x$@$Hp%0(6 0%@%8@%-6m%060%;%,` X0 )8 F(N0  Vpaipwpsterfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterforinttsincosptitleradiuscenlonmeroriginoffsetp__divdf3sterforadjust_loncosp_errorsin****2* r*(*0I2I*I*I*I* *2I*BI II!*(B*0*@2B20RI"*I* *I#**2*0r*(% %'`'''pE'pM'`''9'Y'x' '('0'__p__p _`(_ %%'sterinv.o/ 1082129506 59100 998 100644 15832 ` ELF2`,@@00Be   x ~F<~F pG?#H803 p!~F(~F pG?#X803 p!B0H 8 `8 H p !@~F 00<03 G?#@B pG?#`800H p !B 00<03 G?#@B pG?#`800~Fx pG?#8000$BP @!@H HBP @!H@BP @!H@BP @!H@BP @!H@<00P@!B H90Bb  T@!S<~F pT?#H803S p!~F~F p U?#90# xT?#`<00p0 0`0X xS<~FT?#~Fx pT?#8`<00`0X  S 0  p0 S @`@  HSp!~FS p !~F 8`800` H `0 H 0 P H!`@ S p!~F~F(aU?#~Fx x@U?#H 0`0H @ 0 PH!`@ `@ 0 PH!`@ `0H J~Fp`U?#~FV@<B !PH!~Fx pU?#80  00<03S p !~F 0 p  0`8 ( xT?#<B p U?#80  00<03@ T?#@B pU?#8`<00   HSp!~FS p !~F 8`800 p H 0 ` HS p!~F0 H@BPH!`@ `@ `0H 0 P H!`@ S p !@~F p0803Sp!~F 0 p  0`0X ~F pU?#`800 p  0`8  p$`800` B pT?#p800`8 `0"S p!~F0 H@BP H!p@  p$`800`8X 0 P H!`@ S p !~F p0803@ xT?#<B pT?#`800 `0"S 8 8 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p0803@ T?#@BW xT?#<BV($~F p U?#80 @@BPH!p@ 0Jp H 0L`8X N~Fx pU?#`800 p  0`8$ @ T?#p@00`8 p  0`8$  @!p@ xT?#<B pU?#S 0 p0 0 p H 0  HSp!~FS p !~F 8`800` H 0 P H!p@  p$`800`0H 0 P H!`@ S p!~F p0803T!HU "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;sterinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)sterinvint,#r_maj'&`center_lon(&hcenter_lat)&pfalse_east*&xfalse_north+&intdoublesterinvJ*xF&yG&lonH@latIHrhK&PzL&XsinzM&`coszM&hconN&p&size_tlong unsigned int__u_char unsigned char__u_short!/short unsigned int__u_int"Tunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t' __int16_t(short int__uint16_t)/__int32_t*__uint32_t+T__int64_t,__uint64_t-__qaddr_t.Y__dev_t06__uid_t1__gid_t2__ino_t36__ino64_t46__mode_t5__nlink_t66__off_t7%__off64_t8%__loff_t9%__pid_t:__ssize_t;%__rlim_t<6__rlim64_t=6__blkcnt_t>%__blkcnt64_t?%__fsblkcnt_t@6__fsblkcnt64_tA6__fsfilcnt_tB6__fsfilcnt64_tC6__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM7=char__time_tN__useconds_tOT__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgT__intptr_tj__socklen_tmT y__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-G# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4"< __c_lock:y# __c_waiting;#pthread_cond_t<SC __dummyB#pthread_condattr_tC8pthread_key_tFT(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRy#pthread_mutex_tS& Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr 7#_IO_read_end 7#_IO_read_base 7#_IO_write_base7# _IO_write_ptr7#(_IO_write_end7#0_IO_buf_base7#8_IO_buf_end7#@_IO_save_base7#H_IO_backup_base7#P_IO_save_end7#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"/#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# h  =  - = +FILE-h __FILE7h wchar_twint_t8T J__wchHW __wchbI =  K __countE# __valueJf #__mbstate_tK    __pos # __state  #_G_fpos_t  A  # __pos !# __state " #_G_fpos64_t # / &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR b 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w7# __to_name x7# __fct z #( __init_fct {!#0 __end_fct |3#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object=  b __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0  s__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k#   s! 3 '__gconv_fct HL__gconv_init_fct Kj__gconv_end_fct L'__gconv_trans_fct Us__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a<BWW__gconv_trans_end_fct bz __gconv_info __nsteps # __steps # __data # __gconv_t #H 4 __cd 2# __data 3#JH 5__cd /__combined 4_G_iconv_t 5#_G_int16_t 7_G_int32_t 8_G_uint16_t 9/_G_uint32_t :T__gnuc_va_list + _IO_jump_t_IO_lock_t9__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAh _IO_FILE_plus__io_read_fnXo 7__io_write_fna __io_seek_fni__io_close_fnlfpos_tP Z _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE "exception( type #name 7#arg1 &#arg2 &#retval &# r_major& lon_center& lat_origin& false_northing& false_easting & sin_p10!& cos_p10"& N sterinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h +!! %++,++z ++!STEREOGRAPHICG!aoG(a|=-DT!?)sterinvint0sterinv, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !6, 2 7 bE"Q;hb&Rn<* *Hph*0= **8*-=*0=0+;@+`2 5 )8 F(N0  Vpaipwp sterinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterinvinttsincosptitleradiuscenlonmeroriginoffsetp__divdf3sterinvsqrtatanasinatan2adjust_lonsin****2* r*(*0I2I*I*I*I* *2I* b*RI *I2I!I**B**(*02II"**2*p*I# *B I$ I# *B I$ *( I%R * *R *0 I# *" I$% %' '''pE'pM' ''"'B'a' z'('0'__p__p _ (_ %%'stplnfor.o/ 1082129506 59100 998 100644 26488 ` ELF2R@@850B``bDxFx p Q<#90#D p !xFxF p`Q<#90#Dp(!xF 8 xD p*`p<p@B x$D p,p<0# @@!@ xQ<#<0 81B Q<#@B p Q<#80 89`B Q<#DB pQ<#80# Q<#PB pQ<#80 Q88!@ x$<0 D p*!@xF pp$@ p< D x,80 888PB xQ<#<BF Q<#@B pQ<#80 8@ Q<#DBpQ<#@xFxQ<#PxF pQ<#80  p!p<0#H Q<#XB p Q<#80 8 9`B xQ<#<B pQ<#80# Q<#@B pQ<#80 Q88!@ x$<0 D p"!@xF pp$@ p< D x(80 888PB Q<#TBF Q<#XB pQ<#80 8p@ xQ<#<BpQ<#xFxQ<#xF pQ<#80  p!p<0#H Q<#PB pQ<#80 8;BpQ=#PxFx Q<#8B@ PTDX,<0 PH!zF p P$0 PH!H@ xQ<#<B p Q<#80 89pB Q<#@B p@Q<#80 @PT@BPH! B D p"!~F<p@ Q<#PB p`Q<#80 @PT@BPH! BD p*!~F< Q<#XB pQ?#80 89@B H$0 @PT@BPH!H@ xQ<#<BF Q<#DB pQ<#80  p!p @ p8 p$@ p8 p&@ H 8B` !PH!zFD x(!~F p P$``@BPH!PxFpQ?#H@E X$80 PH!zFD x,!~F p P!$``@BPH!xFx pQ?#80 PH!xF xP!H8xF pQ<#80# Q<#PB pQ<#80 8 !@ Q<#TBG Q<#XB pQ<#80 < xFxxP!xFpQ<#<0 px8 @ x!1p pp@#D p(!@xFDp*!@xFD p,!@xF p8B8Hx$xF pQ?#8 8xF pQ<#80# Q<#PB pQ<#80 8 !0@ Q<#TB@xP=#`xF pQ<#80  p8 x8@8 xFx p P!80# Q<#@B p P!80 85B Q<#DB@ Q<#PB pQ<#80  p8 x8@D p*!~F 00<03D p,!@xFDp!@xFD p !@xF p8B8H Q<#DBG Q<#PB p P!80 < PxFxP!`xFp P!<0 px8 @ x!qp pp@#D p!@BDp !@B D p"!@B p8B8PH p$8 01BpQ=#@xFx Q<#8B@ PTDX*<0 PH!zF p P$0 PH!H@ H$0 P H!D H,@PT@BPH!xFx p Q<#80 89@B Q<#@BG pl$p<0#0@ Q<#DBG pL$p<0# Q<#PB pQ<#80 @PT@BPH!PxFxQ>#`xF pP=#`800xFx(Q>#xF pP=#8Bp 0`0X 0 P H!p@ D p"!zF 0` H J pp8 sB Q<#PBG Q<#TB pP=#8Bq 00<03Dp,!P£|FD p!zF x!q@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxF p`Q?#80 09@B Q<#DB p`Q?#8 @!@@ Q<#PB@ Q<#TB pP=#8Bs@@BP H!`@ E 0 @p !P H!p@  p$`800` H J`xF p`Q?#80 09@B xQ<#<B p`Q?#8 @!@@ Q<#@B@ Q<#DB pP=#8Bs 00<03Dp(!~FD p*!zF !t 00<03Dp,!@|FDp!0A|FDp ! |F Dp"!|FDp*!~FDp,!@~FD p*!~F@(L00 P$D00 ` <00 p@BPH!@ p$8 89pB Q<#XBC xQ<#<B pP=#8Br@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxF p`Q?#80 09@B Q<#DB p`Q?#8 @! @ Q<#PBD Q<#TB pP=#8Br@@BP H!`@ E 0 @p !P H!p@  p$`800` H J`xF p`Q?#80 09@B xQ<#<B p`Q?#8 @! @ Q<#@BG Q<#DB pP=#8Bq@@BP H!`@ E 0 @p !P H!p@  p$`800` H J@xF p`Q?#80 09@B Q<#TB p`Q?#8 @! @ Q<#XB@ xQ<#<B pP=#8Bs@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxF p`Q?#80 09@B Q<#DB p`Q?#8 @! @ Q<#PB@ Q<#TB pP=#8Bs 00<03Dp,!~FD p !zF !t 00<03 Dp"!P|FDp(!@A|FDp,!0~FDp! A~FDp !|FDp,!~FDp!@~FD p,!~F@*P00 P&H00 `"@00 p800PH!p @ p$8 8 9@B xQ<#<BG Q<#@B pP=#8Bq@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxF p`Q?#80 09@B Q<#PB p`Q?#8 @!`@ Q<#TB@ Q<#XB pP=#8Bq@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxFx p`Q?#80 09@B Q<#@B p`Q?#8 @!`@ Q<#DB@ Q<#PB pP=#8Br 00<03Dp*!~FD p,!zF !r 00<03Dp!0|FDp ! A|F Dp"!|FDp(!~FDp*!@~FD p,!~F@&H00 P"@00 `800PH! @ p$8 89B xQ<#<BG Q<#@B pP=#8Bq 00<03 Dp"!P ~FD p(!zF x!r@@BP H!`@ E 0 @p !P H!p@  p$`800` H JPxF p`Q?#80 09@B Q<#XB p`Q?#8 @!@ xQ<#<BB Q<#@B pP=#8Bq@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxF p`Q?#80 09@B Q<#PB p`Q?#8 @!@ Q<#TBB Q<#XB pP=#8Bs@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxFx p`Q?#80 09@B Q<#@B p`Q?#8 @!@ Q<#DB@ Q<#PB pP=#8Bs 00<03Dp*!~FD p,!zF !t 00<03Dp!~F8xF pP?#803 D p"!~F@xF pP?#803D p*!@~F`xFQ>#xFxQ>#xFQ>#xF`P?#xFxP?#xFP?#xF P?#xFx@P?#xFx pP?#`800axFx xP?#0Bp`!`<00 xFx xQ?#0Bp!`<00 xFx x Q?#0Bp!`<00 xFxp@Q?#0Bc pp<0#@.X00 P*P00 `&H00 p"@00PH! @! 8U` `P!850Be  x ~F<~F pQ?#H803F p!~F~F pQ?#90# pp8 sB xQ?#<B@ Q?#DBF xQ?#<BG Q?#DB pQ?# F 0"0 H <0 `@BPH! BpX 8J0 09pB xQ?#<B pP!8 @!P@ p$8 89B Q?#DB@ xQ?#<BF Q?#DBG Q?#DB pQ?# F 0"0 H <0 `@BPH! BpX 8J0 09`B xQ?#<B pP!8 @!@@ p$8 8 9B Q?#DB@ xQ?#<BF Q?#DBG Q?#DB pQ?# F 0"0 H <0 `@BPH! BpX 8J0 09PB xQ?#<B pP!8 @!0@ p$8 89B Q?#DB@ xQ?#<BF Q?#DBG Q?#DB pQ?# F 0"0 H <0 `@BPH! BpX 8J0 09@B xQ?#<B pP!8 @! @@! 8U` `P!ef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(P% .? : ; ' I@ : ; I 4: ; I $ >  II!I/  : ; : ;I8 : ; I8  : ; I : ; < : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;stplnfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)stplnforint:(zone6|sphere7|fn278|fn839|ind;|i<|nadval=|table>}pname?}buf@ }r_majA~r_minA~scale_factA~center_lonA~center_latBfalse_eastBfalse_northBazimuthClat_origClon_origClon1Clat1Clon2C@lat2CHmodeDPiflgDXptrE4`swapG:pswapPtrHjIintlong intcharlong unsigned intdouble 0c _IO_FILE- _flags# _IO_read_ptr # _IO_read_end # _IO_read_base # _IO_write_base# _IO_write_ptr#( _IO_write_end#0 _IO_buf_base#8 _IO_buf_end#@ _IO_save_base#H _IO_backup_base#P _IO_save_end#X _markers#` _chain#h _fileno#p _blksize#t _old_offset#x _cur_column"# _vtable_offset## _shortbuf$# _lock(# _offset1# __pad17"# __pad28"# _mode:# _unused2<$# _IO_marker _next# _sbuf# _pos#0__off_tshort unsigned intsigned char __off64_t 4+0Jstplnfor(lon`lathxpyxiflg size_tlong unsigned int __u_char unsigned char __u_short! __u_int"!unsigned int __u_long# __u_quad_t$ __quad_t% __int8_t& __uint8_t' __int16_t(short int __uint16_t) __int32_t* __uint32_t+! __int64_t, __uint64_t- __qaddr_t. S __dev_t0 __uid_t1 __gid_t2 __ino_t3 __ino64_t4 __mode_t5 __nlink_t6 __off_t7 __off64_t8 __loff_t9 __pid_t: __ssize_t; __rlim_t< __rlim64_t= __blkcnt_t> __blkcnt64_t? __fsblkcnt_t@ __fsblkcnt64_tA __fsfilcnt_tB __fsfilcnt64_tC __id_tD I __valH #  __fsid_tIy __daddr_tL __caddr_tM __time_tN __useconds_tO! __suseconds_tP __swblk_tQ __clock_tR __key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t_ __t_scalar_tf __t_uscalar_tg! __intptr_tj __socklen_tm!  __sched_paramE __sched_priorityF# K _pthread_fastlock __status# __spinlock#_pthread_descr_struct _pthread_descr#y K g __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam- # __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2"#( __stacksize3#0 pthread_attr_t4  < __c_lock: # __c_waiting;c # pthread_cond_t<}  C __dummyB# pthread_condattr_tC pthread_key_tF!} (S __m_reservedN# __m_countO# __m_ownerPc # __m_kindQ# __m_lockR # pthread_mutex_tS  Z __mutexkindY# pthread_mutexattr_tZ pthread_once_t^ pthread_t FILE-0 __FILE70wchar_twint_t8!RJ__wchH__wchbIRbK __countE# __valueJ.# __mbstate_tKb  __pos # __state # _G_fpos_t   # __pos !# __state "# _G_fpos64_t # &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR * 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS v__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data "#X__gconv_loaded_objectvyn* __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 ;__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j"# __next k# n"nyntn;"nn" __gconv_fct H __gconv_init_fct K2 __gconv_end_fct LO __gconv_trans_fct Un; __gconv_trans_context_fct Z __gconv_trans_query_fct ^ __gconv_trans_init_fct a " __gconv_trans_end_fct bB __gconv_info __nsteps # __steps # __data # __gconv_t HH 4 __cd 2H# __data 3#H 5__cd /H__combined 4 _G_iconv_t 5 _G_int16_t 7 _G_int32_t 8 _G_uint16_t 9 _G_uint32_t :! __gnuc_va_list +"_IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA0_IO_FILE_plus__io_read_fnX7Q"__io_write_fnag"__io_seek_fni"__io_close_fnl" fpos_tP" _IEEE__SVID__XOPEN__POSIX__ISOC_ _LIB_VERSION_TYPE exception(  type # name # arg1 # arg2 # retval # id inzone NAD27 NAD83(   stplnfor.c/usr/include/stdio.h/usr/include/libio.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 9,+++++++, +++, ++++++++!+++y+++++,++/++++++++-++++++++++++++-++++++++,+++++++++++++ "++++++++++++++++5RFߑ?Illegal zone #%4ld for spheroid #%4ldstate-initrError opening State Plane parameter filestate-forSTATE PLANEZone: Datum: NADG&a G&a+ stplnforintJstplnfor,%GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.sdata.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@%!],&`2`.7`.bE/ Qhe bH$nfOPP@pP0f (Q(Q/0gWQ0Hg0Q;QX \  000   " .6>DJPW^jou{ stplnfor.cinzoneNAD27NAD83idstplnforintsprintfp_errorfopenfseekfreadfcloseptitlegenrpt_longsqrtpakczpaksztmforintlamccforintpolyforintomerforintstplnfortmforlamccforpolyforomerfor**2 20b2 I2 (I"2 82I2 8I2 @2 pIII*"IbII** * 2 I 2 ( I0 2 B Ib 2 r I 2 " I I*II*II*I *IBI`*IBI`*IBI`*IBI`*"I!@*II*II*rI"*"IRIp*"IRIp*"IRIp* I#B!*!I%`"*#I&p#*$I'$*"%I(% %'%''' `' h'%''''0'__ _ _ _%(_ %%'stplninv.o/ 1082129506 59100 998 100644 26616 ` ELF2(S@@850Bg`bCxFx pP<#90#C p !xFxF p Q<#90#Cp(!xF 8 xC p*`p<p@B x$C p,p<0# @@!@ xP<#<0 81B P<#@B pP<#80 89`B P<#DB p`Q<#80# P<#PB p`Q<#80 Q88!@ x$<0 C p*!xF pp$@ p< C x,80 888PB xP<#<BE P<#@B p`Q<#80 8@ P<#DBp`Q<#@xFx`Q<#PxF p`Q<#80  p!p<0#H P<#XB pP<#80 8 9`B xP<#<B p`Q<#80# P<#@B p`Q<#80 Q88!@ x$<0 C p"!xF pp$@ p< C x(80 888PB P<#TBE P<#XB p`Q<#80 8p@ xP<#<Bp`Q<#xFx`Q<#xF p`Q<#80  p!p<0#H P<#PB p@Q<#80 8;BpQ=#PxFxP<#8B@ PTCX,<0 PH!zF p P$0 PH!H@ xP<#<B pP<#80 89pB P<#@B pQ<#80 @PT@BPH! B C p"!~F<p@ P<#PB p Q<#80 @PT@BPH! BC p*!~F< P<#XB pQ?#80 89@B H$0 @PT@BPH!H@ xP<#<BF P<#DB p@Q<#80  p!p @ p8 p$@ p8 p&@ H 8B` !PH!@xF pQ?#80 PH!zFC x*!~F p P$``@BPH!`xFpQ?#H@E X$80 PH!xFC x !~F p P!$``@BPH!xF pQ?#80 PH!@xF xP!H8PxF p`Q<#80# P<#XB p`Q<#80 8 !@ xP<#<BG P<#@B p`Q<#80 < xFxP!@xFp`Q<#<0 px8 @ x!1p pp@#C p*!xFCp,!xFC p !xF p8B8Hx$xF pQ?#8 8@xF p`Q<#80# P<#TB p`Q<#80 8 !0@ P<#XB@xQ<#xF p`Q<#80  p8 x8@8 @xF p P!80# P<#TB p P!80 85B P<#XBG P<#@B p`Q<#80  p8 x8@ C p"!~F 00<03C p(!xFCp*!xFC p,!xF p8B8H xP<#<BG P<#@B p P!80 < xFxP!@xFp P!<0 px8 @ x!qp pp@#C p*!@BCp,!@BC p !@B p8B8PH p$8 01BpQ=#xFxP<#8B@ PTCX(<0 PH!zF p P$0 PH!H@ H$0 P H!C H*@PT@BPH!`xF pP<#80 89@B xP<#<BF pl$p<0#0@ P<#@BF pL$p<0# P<#DB pQ<#80 @PT@BPH!@xFxQ>#PxF pQ<#`800`xF(Q>#xFx pQ<#8Bp 0`0X 0 P H!p@ C p !xF 0` H J pp8 sB P<#DBG P<#PB pQ<#8Bq 00<03Cp*!P£|FC p,!xF x!q@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxFx p`Q?#80 09@B P<#@B p`Q?#8 @!@@ P<#DB@ P<#PB pQ<#8Bs@@BP H!`@ E 0 @p !P H!p@  p$`800` H JPxF p`Q?#80 09@B P<#XB p`Q?#8 @!@@ xP<#<B@ P<#@B pQ<#8Bs 00<03 Cp"!~FC p(!xF !t 00<03Cp*!@|FCp,!0A|FCp! |FCp !|FCp*!~FCp,!@~FC p*!~F@(L00 P$D00 ` <00 p@BPH!@ p$8 89pB P<#XBC xP<#<B pQ<#8Br@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxF p`Q?#80 09@B P<#DB p`Q?#8 @! @ P<#PBD P<#TB pQ<#8Br@@BP H!`@ E 0 @p !P H!p@  p$`800` H J`xF p`Q?#80 09@B xP<#<B p`Q?#8 @! @ P<#@BG P<#DB pQ<#8Bq@@BP H!`@ E 0 @p !P H!p@  p$`800` H J@xF p`Q?#80 09@B P<#TB p`Q?#8 @! @ P<#XB@ xP<#<B pQ<#8Bs@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxF p`Q?#80 09@B P<#DB p`Q?#8 @! @ P<#PB@ P<#TB pQ<#8Bs 00<03Cp,!~FC p !xF !t 00<03 Cp"!P|FCp(!@A|FCp,!0~FCp! A~FCp !|FCp,!~FCp!@~FC p,!~F@*P00 P&H00 `"@00 p800PH!p @ p$8 8 9@B xP<#<BG P<#@B pQ<#8Bq@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxF p`Q?#80 09@B P<#PB p`Q?#8 @!`@ P<#TB@ P<#XB pQ<#8Bq@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxFx p`Q?#80 09@B P<#@B p`Q?#8 @!`@ P<#DB@ P<#PB pQ<#8Br 00<03Cp*!~FC p,!xF !r 00<03Cp!0|FCp ! A|F Cp"!|FCp(!~FCp*!@~FC p,!~F@&H00 P"@00 `800PH! @ p$8 89B xP<#<BG P<#@B pQ<#8Bq 00<03 Cp"!P ~FC p(!xF x!r@@BP H!`@ E 0 @p !P H!p@  p$`800` H JPxF p`Q?#80 09@B P<#XB p`Q?#8 @!@ xP<#<BB P<#@B pQ<#8Bq@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxF p`Q?#80 09@B P<#PB p`Q?#8 @!@ P<#TBB P<#XB pQ<#8Bs@@BP H!`@ E 0 @p !P H!p@  p$`800` H JxFx p`Q?#80 09@B P<#@B p`Q?#8 @!@ P<#DB@ P<#PB pQ<#8Bs 00<03Cp*!~FC p,!xF !t 00<03Cp!~F8xF pP?#803 C p"!~F@xF pP?#803C p*!@~F`xFQ>#xFxQ>#xFQ>#xF`P?#xFxP?#xFP?#xF P?#xFx@P?#xFx pP?#`800axFx xP?#0Bp`!`<00 xFx xQ?#0Bp!`<00 xFx x Q?#0Bp!`<00 xFxp@Q?#0Bc pp<0#@.X00 P*P00 `&H00 p"@00PH! @! 8U` `P!850Be  x ~F<~F pQ?#H803F p!~F~F pQ?#90# pp8 sB xQ?#<B@ Q?#DBF xQ?#<BG Q?#DB pQ?# F 0"0 H <0 `@BPH! BpX 8J0 09pB xQ?#<B pP!8 @!P@ p$8 89B Q?#DB@ xQ?#<BF Q?#DBG Q?#DB pQ?# F 0"0 H <0 `@BPH! BpX 8J0 09`B xQ?#<B pP!8 @!@@ p$8 8 9B Q?#DB@ xQ?#<BF Q?#DBG Q?#DB pQ?# F 0"0 H <0 `@BPH! BpX 8J0 09PB xQ?#<B pP!8 @!0@ p$8 89B Q?#DB@ xQ?#<BF Q?#DBG Q?#DB pQ?# F 0"0 H <0 `@BPH! BpX 8J0 09@B xQ?#<B pP!8 @! @@! 8U` `P!ef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(P% .? : ; ' I@ : ; I 4: ; I $ >  II!I/  : ; : ;I8 : ; I8  4: ;I : ; I : ; < : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ; stplninv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)stplninvint:(zone6|sphere7|fn278|fn839|ind;|i<|nadval=|table>|pname?}buf@ }r_majA~r_minA~scale_factA~center_lonA~center_latBfalse_eastBfalse_northBazimuthClat_origClon_origClon1Clat1Clon2C@lat2CHmodeDPiflgDXptrE4`swapG:pswapPtrHjIintlong intcharlong unsigned intdouble  0c _IO_FILE- _flags# _IO_read_ptr # _IO_read_end # _IO_read_base # _IO_write_base# _IO_write_ptr#( _IO_write_end#0 _IO_buf_base#8 _IO_buf_end#@ _IO_save_base#H _IO_backup_base#P _IO_save_end#X _markers#` _chain#h _fileno#p _blksize#t _old_offset#x _cur_column"# _vtable_offset## _shortbuf$# _lock(# _offset1# __pad17"# __pad28"# _mode:# _unused2<$# _IO_marker _next# _sbuf# _pos#0__off_tshort unsigned intsigned char __off64_t 4+0Jstplninv(x`yhlonplatx iflgsize_tlong unsigned int__u_char unsigned char__u_short!__u_int""unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+"__int64_t,__uint64_t-__qaddr_t. T__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tD I __valH # __fsid_tIz __daddr_tL__caddr_tM__time_tN__useconds_tO"__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tg"__intptr_tj__socklen_tm" __sched_paramE __sched_priorityF# L _pthread_fastlock __status# __spinlock#_pthread_descr_struct_pthread_descr#z L h __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam- # __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2"#( __stacksize3#0pthread_attr_t4  < __c_lock: # __c_waiting;d #pthread_cond_t<~  C __dummyB#pthread_condattr_tC pthread_key_tF"~ (S __m_reservedN# __m_countO# __m_ownerPd # __m_kindQ# __m_lockR #pthread_mutex_tS  Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_tFILE-0__FILE70wchar_twint_t8"SJ__wchH __wchbIScK __countE# __valueJ/#__mbstate_tKc  __pos # __state #_G_fpos_t   # __pos !# __state "#_G_fpos64_t # &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR + 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS w__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data "#X__gconv_loaded_objectwzo+ __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 <__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j"# __next k# o"ozouo<"oo"__gconv_fct H__gconv_init_fct K3__gconv_end_fct LP__gconv_trans_fct Uo<__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a   "__gconv_trans_end_fct bC __gconv_info __nsteps # __steps # __data #__gconv_t IH 4 __cd 2I# __data 3#H 5__cd /I__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :"__gnuc_va_list +"_IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA0_IO_FILE_plus__io_read_fnX8R"__io_write_fnah"__io_seek_fni"__io_close_fnl"fpos_tP# _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception(  type # name # arg1 # arg2 # retval # id inzone nad27 nad83( ' stplninv.c/usr/include/stdio.h/usr/include/libio.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 9,+++++++, +++, ++++++++!+++y+++++,++!-++++++++-++++++++++++++-++++++++,+++++++++++++ "++++++++++++++++5RFߑ?Illegal zone #%4ld for spheroid #%4ldstate-initrError opening State Plane parameter filestate-invSTATE PLANEZone: Datum: NADG&a G&a+ stplninvintJstplninv,%GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.sdata.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@%!],0&`2.7.qE0 Qe bI+ng@PPPQ@p@Q0 g pQpQ/gQ0g0Q; R(Y ]  000   "!.6>DJPV]dpu{!stplninv.cinzonenad27nad83idstplninvintsprintfp_errorfopenfseekftellfreadfcloseptitlegenrpt_longsqrtpakczpaksztminvintlamccinvintpolyinvintomerinvintstplninvtminvlamccinvpolyinvomerinv**2 20b2 I2 (I"2 82I2 8I2 @2 pIIII1*RIII* * * 2  I0 2 (B I` 2 r I 2 IB 2 R I IB*II 0*II 0*I!*BIrI *BIrI *BIrI *BIrI *RI"p*II *II *I#*RII *RII *RII * I$r!*""I&"*2#I'#*B$I($*R%I)% %'%'''!`'!h'%''''0'__!_ _! _%(_ %%'tmfor.o/ 1082129506 59100 998 100644 21704 ` ELF2:@@ @0Bd @ x ~F<~F p`I?#H803 % p"!~F(~Fx pI?#X803% p !~F0~F pI?#h803% p!B8H% 8 `8 H% p !~F 00<03 @I?#DB pI?#`800H% p !@~F 00<03 @I?#DB pI?#`800H% p !B 00<03 @I?#DB pI?#`800~Fx !H!H@<00P@!`@ `@ BH %p"!@B % p"!@B 8`800` H `0X  @BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803 p$H $@@<00 P D00 `$BP @!p@  p$`800`H BH p$`800`0X @ 0 P@!`@ `@ B 8 0`8$  p$803 @ p$803 ($P0 P @!H@<00P @!H @0LBP @!H@BP @!H@BP @!H@<00P@!B0 H92~F fP!2|F D;  (D3 x U<|F p`U>#H803 U p"!|F |F pU>#90# @U>#`L00p0 0`0X 0 P H!`@ U p!|F|Fp`U>#|FP@<B !P H!H 0p0  @U>#DBQ @U>#HBP @U>#LB pU>#800PH!p@ 0J`H L|Fx p`T?#`800` `X p  0`8$  X$0 `X@BPH!Hp@ @U>#@B p`T?#`800 pH U p"!~F 0`0X 8 0 PH!`@ `@ 0 PH! |F pU>#80  8 0 p H 0` H `H 0|F(T?#|Fx pU>#800PH!p@ 0J   HUp !~F U p"!~F 8`800` H `0X 0 PH!`@  0 PH!`@ `@ 0 P H!`@ @U p$!~F0|F p`U>#`800`0$ 0 x@U>#<BS @U>#@B pT?#`800`0"  @U>#DB pU>#80  x$p800 0  H@U p$!~F8`<00`0X ` H  Bp @ @U>#LBP x@U>#<BP @U>#DBpU>#p<00 0` H   |F@T?#0|Fx T?#|Fp T?#p<00 0` H   |FT?#H`Up&!~F@U p$!~F 8`800p H 0 `H "0|F p`U>#800P H!`@ U p!~F|FT?#|FxT?# |FpT?#p<00 0` H  0|FT?#HUp!|F@U p$!|F 8`800p H 0 ` H `0X "0|F0U?#PHU p!~F@@BPH!`@ @J 0 PH!`@ `@ L|F(!U?#H$ H`U p&!|F@@00 P"H00 `@BP H!p@  p$`800`H J|Fx pU>#P80  @U>#@BpU?#p<00 0 p H U p"!@~F 0 @ H@U p$!~F@<00PH!`@ 0@ `U p&!@~F 0 p0XU p!~F 0  0HU p !~F@<00PH!`@ @ U p"!@~F 8 0 p H 0 8X@Up$!@~F`U p&!@~F 8`800` H 0 HU p!~F 8 0` H 0 H 8 0` H `0 X `$ H `0H ` H `H p H 0`0H J|F pU>#p80  @U>#DB p U?#8`<00 P0X@Up$!~F`U p&!~F 8`800 @ HUp!P~FU p !~F@<00PH!`@ 0@ Up"!@~F8`<00 0X@U p$!~F 8 0` H 0 H`Up&!~FU p !~F 8`800 p H 0` H  0 H U p"!~F@<00PH!`@ @ @U p$!@~F 8 0 p H 0 8X`Up&!@~FU p !@~F 8`800` H 0 H U p"!~F 8 0` H 0 H 8 0` H `0 X `$ H `0H p H 0p0H 0J` H ` H p0H 0L p H 0`0H N@U?#0~F  $0M9  $PL1P% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;tmfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)Otmforint:O$r_maj3VPr_min4VXscale_fact5V`center_lon6Vhcenter_lat7Vpfalse_east8Vxfalse_north9Vtemp;VintdoublettmforiO*loneV~latfV~xgt~yht~delta_lonjV~sin_phikV~cos_phikVallValslVbmVcnVtnVtqnVconoVnoV@mloVHVsize_tLjlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%6long int__int8_t&Rsigned char__uint8_t'__int16_t(short int__uint16_t)__int32_t*O__uint32_t+__int64_t,6__uint64_t-__qaddr_t.&__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH# O long unsigned int__fsid_tIg__daddr_tLO__caddr_tMchar__time_tN6__useconds_tO__suseconds_tP6__swblk_tQ6__clock_tR6__key_tSO__clockid_tVO__timer_tYO__ipc_pid_t\O__blksize_t_6__t_scalar_tfO__t_uscalar_tg__intptr_tj6__socklen_tm __sched_paramE __sched_priorityFO# \_pthread_fastlock __status6# __spinlockO# _pthread_descr_struct_pthread_descr#\ x__pthread_attr_s8* __detachstate+O# __schedpolicy,O# __schedparam-# __inheritsched.O# __scope/O# __guardsize0z# __stackaddr_set1O# __stackaddr2x#( __stacksize3z#0pthread_attr_t4< __c_lock:# __c_waiting;t#pthread_cond_t<C __dummyBO#pthread_condattr_tCpthread_key_tF (S __m_reservedNO# __m_countOO# __m_ownerPt# __m_kindQO# __m_lockR#pthread_mutex_tS"  Z __mutexkindYO#pthread_mutexattr_tZ pthread_once_t^Opthread_t \ _IO_FILE-_flagsO#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_filenoO#p_blksizeO#t_old_offsetm#x_cur_column"#_vtable_offset#R#_shortbuf$ #_lock( #_offset1|#__pad17x#__pad28x#_mode:O#_unused2< # _IO_marker _next # _sbuf # _posO#\     +FILE- __FILE7 wchar_tOwint_t8* J__wchH __wchbI* :  g K __countEO# __valueJ #__mbstate_tK:    __pos m# __state g #_G_fpos_t z   # __pos !|# __state "g #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS N__gconv_step` ? __shlib_handle rf# __modname sl# __counter uO# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from O#@ __max_needed_from O#D __min_needed_to O#H __max_needed_to O#L __stateful O#P __data x#X __gconv_loaded_objectNrOQFW]OO {__gconv_step_data8 @ __outbuf {# __outbufend {# __flags O# __invocation_counter O# __internal_use O# __statep # __state g #( __trans #0g __gconv_trans_data( B __trans_fct gc# __trans_context_fct h# __trans_end_fct i# __data jx# __next k# FOxFQFW]LF{zOxFF{{ixwO__gconv_fct Hw__gconv_init_fct K __gconv_end_fct L'__gconv_trans_fct UF__gconv_trans_context_fct Zmi__gconv_trans_query_fct ^Ol]l__gconv_trans_init_fct aOlx__gconv_trans_end_fct b l__gconv_info __nsteps z# __steps # __data l# __gconv_t  H 4 __cd 2 # __data 3#H 5__cd / __combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8O_G_uint16_t 9_G_uint32_t :__gnuc_va_list +x _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX)xz__io_write_fna?Yxlz__io_seek_fninOxO|__io_close_fnlOxfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE yexception( type O#name #arg1 V#arg2 V#retval V# r_major#V r_minor$V scale_factor%V lon_center&V lat_origin'V e0(V e1(V e2(V e3(V es)V esp)V ml0*V false_northing+V false_easting,V ind-V  tmfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 9",+-++ + +!++++ +++++/TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinitytm-forh㈵>|=?@4@2@@R@M@8@"@@>@N@@t@G"aG( ϸa%tmforint`tmfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!G ,27bE2QQ(b3nS7p888Hp90S 09x09)TY90T09;9@ E   &1 <`KhYH\(_0b8e@hXlPpp  t}tmfor.cr_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espind__divdf3tmforinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptmforadjust_lontsincossinp_errorlogcossqrtacostan***A*b* *`*h**IA*H*HI!*(*HI"*0*HI#0*82*HBI$`*@b*Xp*(q*0r*8*@* I%**P*H*HBIr*H**p*p2I&**2I'A*R2 bI(q*I)* I**h*`I+*I-bI.q*pI/r*2H2hI0b I I1 * * *b I2 I3B I I4R *` * * *PBI5*Hq*I3I*(*0 *8!*@bI%**2*RI* IB*(b*0*8"*P2*@*h**X*HI*0"*P*X*`I2*@R*h*p*P"*x**`% %''''s'{'''''' '(!'05'8I'@]'Hr'P'X'`'h'p'____ _(_ %%'tminv.o/ 1082129507 59100 998 100644 25400 ` ELF2F@@ @0Bd @ x ~F<~F p`I?#H803 % p"!~F(~Fx pI?#X803% p !~F0~F pI?#h803% p!B8H% 8 `8 H% p !~F 00<03 @I?#DB pI?#`800H% p !@~F 00<03 @I?#DB pI?#`800H% p !B 00<03 @I?#DB pI?#`800~Fx !H!H@<00P@!`@ `@ BH %p"!@B % p"!@B 8`800` H `0X  @BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803@BP @!`@  p$0803 p$H $@@<00 P D00 `$BP @!p@  p$`800`H BH p$`800`0X @ 0 P@!`@ `@ B 8 0`8$  x$8 ($P0 P @!H@<00P @!H @0LBP @!H@BP @!H@BP @!H@<00P@!B0 H93~F gP!0|F D3  @!R<|F pT>#H803 R p"!|F |F pT>#90#Rp!~Fa 8 p`8rpB p$8`<00 ` HR 8 8 0 PH!`@ `@ 0 P H!`@ R p!~F|F0!U?#|F(T?# |FpT?# H@BPH!`@ p@ 0J p8X 0` H L|Fx0AU?#PHRp !A|F x$p800 0` H @  0 PH!`@ p@ 0J`8H L|F p@U?#800P H!`@ @R p$!~F|FxxU?#|FpU?#p<00 0` H 0X Rp"!@~F@R p$!@~F 8`800` H `H 0 PH!`@ `@ 0 P H!`@ R p!|F|F pU>#800P H!`@ R p"!|F p0803@R p$!~F 0`0$ 8 xT>#<B pT>#80 R p !|F p`800`0"  T>#DB p U?#`800`0 H T>#HB pU?#`800`0 ( xT>#<B pT>#80  00<03@ T>#@BT T>#DBpU?#<00 H@BP H!p@  p$`800`0H 0 P H!`@ @R p$!|F p08030@ p$R 0p0 0`0X xR<|FT>#|F pT>#8`<00`0X   |F0U>#PHR p!@|F@<00PH!`@ p@ 0J `0H0 H@BPH!`@ `@ L|Fx U>#|F pU>#`800 |F p`U>#80# xT>#<BU T>#@BT($|F p U>#`800`0H 0 PH!p@ 0Jp H 0L  0H T>#HB p U>#p800 0` H 0 PH!p@ 0J` H  0X xT>#<B p U>#p800 0` H 0 PH!p@ 0J` H `0H0 H@BPH!`@ p@ R p !@|F 0`0X N|F U># |Fx U>#|Fp@U>#p<00 0`0H   |F p@U>#`800 p  0`8 B xT>#<BU T>#@Bp`U?#<0 p`x8`@B X$0 `X@BPH!H@ T>#DBp`U># |Fx`U>#|F p`U>#80  p!p<0#H T>#DB p U>#`800 p  0`8$  T>#HBp U>#|FV@<B !PH!|Fx p U>#800P H!`@ R p !|F|FU>#H@Rp$!@|F@R p$!@|F 8`800p H 0 `H "|FxT?#|FxU># |FpU>#p<00 0` H  |Fx T?#|FxU># |FpU>#p<00 0` H  |Fx@T?#|Fx T?# |Fp T?#p<00 0` H  |FxU>#H@Rp$!|F@R p$!|F 8`800p H 0 ` H `0X "|Fx0aT?#PHR p !|F@@BPH!`@ @J 0 PH!`@ `@ L|F(T?# |F x`T?#H 0p0X 0 ` HR p!|F0 H@BPH!`@ `@ J|F(T?#|F p`T?#8`<00 ` H@R 8$8 0 PH!`@ `@ J|FxT?#|FxT?# |FpT?#p<00 0` H  |Fx pT>#`80 Rp !PB|F Rp"!~F@R p$!|F 8`800 p HR p!~F 0 ` HR p !~F0 H@BPH!`@ @@ R p"!~F@<00PH!`@ 0@ @R p$!@~F 8 0 p H 0 0HR p!|F 8 0` H 0 HR p !~F 8 0` H 0 X 8 0` H  0 X R p"!~F@<00PH!`@ @ @R p$!@~F 8 0 p H 0 0HR p!|F 8 0` H 0 HR p !~F 8 0` H 0 H 8 0` H 0 X R p"!~F 8 0` H `0 X `$ H `0X p H 0`8X p H 0J`8X L`H@Rp$!PB~FR p!~F@<00PH!`@ 0@ R p !@~F 0`0H pH R p"!|F 0  0H@R p$!~F@<00PH!`@ @ R p!|F 0 p0H 0 8XR p !@~F 8 0` H 0 H R p"!~F 8 0` H 0 X 8 0` H 0 H@R p$!~F 8 0` H `0 H `$ H `0X ` H p0X 0J ` HR p!@|F0 H@BPH!`@ p@ 0L`0H 0 P H!`@ R p !|F p0803@ T>#DB pT>#800PH! B@R p$!|F xX 88`88 pH 0` H  |Fx pT>#80  00<03@! U?#0~F  $0L1  $B% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;Vtminv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)Otminvint;O$r_maj4VPr_min5VXscale_fact6V`center_lon7Vhcenter_lat8Vpfalse_east9Vxfalse_north:Vtemp;__blkcnt64_t?;__fsblkcnt_t@L__fsblkcnt64_tAL__fsfilcnt_tBL__fsfilcnt64_tCL__id_tD)I __valH# O long unsigned int__fsid_tI__daddr_tLO__caddr_tMMSchar__time_tN__useconds_tOv__suseconds_tP__swblk_tQ__clock_tR__key_tSO__clockid_tVO__timer_tYO__ipc_pid_t\O__blksize_t___t_scalar_tfO__t_uscalar_tgv__intptr_tj__socklen_tmv __sched_paramE __sched_priorityFO# _pthread_fastlock __status# __spinlockO# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+O# __schedpolicy,O# __schedparam-]# __inheritsched.O# __scope/O# __guardsize0# __stackaddr_set1O# __stackaddr2#( __stacksize3#0pthread_attr_t48 < __c_lock:# __c_waiting;#pthread_cond_t< i C __dummyBO#pthread_condattr_tCN pthread_key_tFv (S __m_reservedNO# __m_countOO# __m_ownerP# __m_kindQO# __m_lockR#pthread_mutex_tS < Z __mutexkindYO#pthread_mutexattr_tZ pthread_once_t^Opthread_t  _IO_FILE-_flagsO#_IO_read_ptr M#_IO_read_end M#_IO_read_base M#_IO_write_baseM# _IO_write_ptrM#(_IO_write_endM#0_IO_buf_baseM#8_IO_buf_endM#@_IO_save_baseM#H_IO_backup_baseM#P_IO_save_endM#X_markers #`_chain #h_filenoO#p_blksizeO#t_old_offset#x_cur_column"Q#_vtable_offset##_shortbuf$! #_lock(1 #_offset1#__pad17#__pad28#_mode:O#_unused2<3 #  _IO_marker _next # _sbuf # _posO# ~ 1 S  C S +FILE-~ __FILE7~ wchar_tOwint_t8v J__wchHm __wchbI S  K __countEO# __valueJ| #__mbstate_tK   __pos # __state  #_G_fpos_t  W # __pos !# __state " #_G_fpos64_t #,E &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR x 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter uO# __from_name wM# __to_name xM# __fct z!#( __init_fct {7#0 __end_fct |I#8 __min_needed_from O#@ __max_needed_from O#D __min_needed_to O#H __max_needed_to O#L __stateful O#P __data #X __gconv_loaded_objectS O &OOx, __gconv_step_data8 @ __outbuf # __outbufend # __flags O# __invocation_counter O# __internal_use O# __statep # __state #( __trans #0/ __gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# O &/O 7O 'I =__gconv_fct Hb__gconv_init_fct K'__gconv_end_fct L=__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^(O(.__gconv_trans_init_fct aRXmOm__gconv_trans_end_fct b  __gconv_info __nsteps # __steps # __data # ,__gconv_t 9H 4 __cd 2# __data 3,#`H 5__cd /__combined 4_G_iconv_t 59_G_int16_t 7_G_int32_t 8O_G_uint16_t 9Q_G_uint32_t :v__gnuc_va_list + _IO_jump_t_IO_lock_tO__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA~ _IO_FILE_plus__io_read_fnX"M__io_write_fna"__io_seek_fniOO__io_close_fnl*Ofpos_tPp _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE 8exception( type O#name M#arg1 V#arg2 V#retval V# r_major$V r_minor%V scale_factor&V lon_center'V lat_origin(V e0)V e1)V e2)V e3)V es*V esp*V ml0+V false_northing,V false_easting-V ind.  tminv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h :",+-+++ $/++++"t+++++++++++ +++++TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSEh㈵>?@@|=-DT!?8@@@$@"@>@V@N@r@F@o@4@<@ @G"aG( Ǹa %Ztminvint`tminv,"GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@"!S ,"2"7"bE2$ZQ `(b=nHbhCxCDHpD0`b DxD)b!E0c0QE;EL@ Q  &1 <`KhYH\(_0b8e@hXlPpp  t} tminv.cr_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espind__divdf3tminvinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcossqrtasinzatan2adjust_lonsinp_errortsincostansign***A*b* *`*h**IA*H*HI!*(*HI"*0*HI#0*82*HBI$`*@b*Xp*(q*0r*8*@* I%**P*H*HBIr*H**p2I&**"I'1*B2 RI(a*rI)* I**h*`I+*p**2IrI-I"*a* r**IB I.2 Ir I/ I02 * I1 * I20 *h *` *X*"Ib*I *0bI3*8*I3R*@r*I3*(I* 2H2hI42*(I5I6*P*HA*bI/I*HbI*IbI*0I*8*@R*H**P*P"*XBI*`*h*p2*xb*Pr**8"***Ib*I*@*b*8*P**0 I!I2!I7!*(""*% %'"'''s'{'"''7'S'o' '('0'8'@'H'P'X'`<'hQ'p'____ _"(_ %%'utmfor.o/ 1082129507 59100 998 100644 23568 ` ELF2B@@8-0Be  x ~F<~F pQ?#H803 F p"!~F(~Fx pQ?#90#F p !~F p`p`@B Q?#DB pQ?#80 81PB xQ?#<B pQ?#80  888 @0!@@ H$0 @PT@BPH!XH@ p$F 8 `8 HF p !@~F 00<03 Q?#DB pQ?#`800 HF p!~F ppp `x8Bx p8 p<@ p8 H:|F 88`88 pH 0` H  H 00<03F p!~F ppp `0B p$80 @8 0@ p @8" p$@ 00803Fp!PB x$800H@BPH!`@ `@ JH Fp"!B F p"!B 8`800` H `0X  @@BP H!`@  p$0803@@BP H!`@  p$0803@@BP H!`@  p$0803@@BP H!`@  p$0803p$H $@@<00 P D00 `$@BP H!p@  p$`800`H JPH p$`800`0X @ 0 PH!`@ `@ J 8 0`8$  p$803 H$0 PH!~Fx pQ?#80 @PT@BP H!H@<00P H!H @@PT@BP H!H@@BP H!8U` `P!H92~F fP!2|F D;  (D3 x U<|F p`U>#H803 U p"!|F |F pU>#90# @U>#`L00p0 0`0X 0 P H!`@ U p!|F|Fp`U>#|FP@<B !P H!H 0p0  @U>#DBQ @U>#HBP @U>#LB pU>#800PH!p@ 0J`H L|Fx p`T?#`800` `X p  0`8$  X$0 `X@BPH!Hp@ @U>#@B p`T?#`800 pH U p"!~F 0`0X 8 0 PH!`@ `@ 0 PH! |F pU>#80  8 0 p H 0` H `H 0|F(T?#|Fx pU>#800PH!p@ 0J   HUp !~F U p"!~F 8`800` H `0X 0 PH!`@  0 PH!`@ `@ 0 P H!`@ @U p$!~F0|F p`U>#`800`0$ 0 x@U>#<BS @U>#@B pT?#`800`0"  @U>#DB pU>#80  x$p800 0  H@U p$!~F8`<00`0X ` H  Bp @ @U>#LBP x@U>#<BP @U>#DBpU>#p<00 0` H   |F@T?#0|Fx T?#|Fp T?#p<00 0` H   |FT?#H`Up&!~F@U p$!~F 8`800p H 0 `H "0|F p`U>#800P H!`@ U p!~F|FT?#|FxT?# |FpT?#p<00 0` H  0|FT?#HUp!|F@U p$!|F 8`800p H 0 ` H `0X "0|F0U?#PHU p!~F@@BPH!`@ @J 0 PH!`@ `@ L|F(!U?#H$ H`U p&!|F@@00 P"H00 `@BP H!p@  p$`800`H J|Fx pU>#P80  @U>#@BpU?#p<00 0 p H U p"!@~F 0 @ H@U p$!~F@<00PH!`@ 0@ `U p&!@~F 0 p0XU p!~F 0  0HU p !~F@<00PH!`@ @ U p"!@~F 8 0 p H 0 8X@Up$!@~F`U p&!@~F 8`800` H 0 HU p!~F 8 0` H 0 H 8 0` H `0 X `$ H `0H ` H `H p H 0`0H J|F pU>#p80  @U>#DB p U?#8`<00 P0X@Up$!~F`U p&!~F 8`800 @ HUp!P~FU p !~F@<00PH!`@ 0@ Up"!@~F8`<00 0X@U p$!~F 8 0` H 0 H`Up&!~FU p !~F 8`800 p H 0` H  0 H U p"!~F@<00PH!`@ @ @U p$!@~F 8 0 p H 0 8X`Up&!@~FU p !@~F 8`800` H 0 H U p"!~F 8 0` H 0 H 8 0` H `0 X `$ H `0H p H 0p0H 0J` H ` H p0H 0L p H 0`0H N@U?#0~F  $0M9  $PL1P% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ;  : ;&( utmfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2) utmforint7 (r_maj3`r_min4hscale_fact5pzone6xtemp8intdoublelong int=utmforg *lonc~latd~xe=~yf=~delta_lonh~sin_phii~cos_phiialjalsjbkcltltqlconmnm@mlmHsize_tQlong unsigned int__u_char vunsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#Q__u_quad_t$Q__quad_t%__int8_t&signed char__uint8_t'v__int16_t(@short int__uint16_t)__int32_t* __uint32_t+__int64_t,__uint64_t-Q__qaddr_t.__dev_t0__uid_t1p__gid_t2p__ino_t3__ino64_t4__mode_t5p__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:___ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDp=I __valH=# M  Mlong unsigned int__fsid_tI$__daddr_tL __caddr_tMchar__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t___t_scalar_tf __t_uscalar_tg__intptr_tj__socklen_tm __sched_paramE __sched_priorityF # _pthread_fastlock __status# __spinlock # _pthread_descr_struct_pthread_descr#G 5__pthread_attr_s8* __detachstate+ # __schedpolicy, # __schedparam-# __inheritsched. # __scope/ # __guardsize0C# __stackaddr_set1 # __stackaddr25#( __stacksize3C#0pthread_attr_t4M< __c_lock:# __c_waiting;1#pthread_cond_t# __state $ #( __trans b#0v$ __gconv_trans_data( B __trans_fct g # __trans_context_fct hJ# __trans_end_fct i\# __data j5# __next kb#  gm5 v8CJ 588&\5PD4~ gng__gconv_fct H4__gconv_init_fct Kn__gconv_end_fct L__gconv_trans_fct U__gconv_trans_context_fct Z*&__gconv_trans_query_fct ^OUo )ou)__gconv_trans_init_fct a )5__gconv_trans_end_fct bP )__gconv_info __nsteps C# __steps g# __data )# @sM__gconv_t QH 4 __cd 2# __data 3s#H 5__cd /__combined 4W_G_iconv_t 5_G_int16_t 7@_G_int32_t 8 _G_uint16_t 9_G_uint32_t :__gnuc_va_list +5 _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXi5C__io_write_fnai5)C__io_seek_fni+E 5E 9__io_close_fnlaq 5fpos_tPb  b quot ` # rem a #div_t b j quot h# rem i#ldiv_t ju_char "fu_short #u_int $u_long %quad_t &u_quad_t 'fsid_t (bloff_t -Jino_t 1dev_t =gid_t Bmode_t G nlink_t Luid_t Qoff_t W*pid_t cZid_t hssize_t midaddr_t srcaddr_t tkey_t ztime_tFclockid_tR timer_t^ulong Qushort uint int8_t int16_t @int32_t int64_t u_int8_t vu_int16_t Řu_int32_t ƽu_int64_t Qregister_t __sig_atomic_t  __val# -Q M__sigset_tsigset_t&- timespeck tv_secl# tv_nsecm# timevalD tv_secE# tv_usecF#suseconds_t1__fd_mask7J __fds_bitsG#  Mfd_setJfd_maskQblkcnt_t fsblkcnt_t fsfilcnt_t random_data0 fptr #rptr #state #rand_type  #rand_deg  #rand_sep  # end_ptr #({adrand48_data __x a#__old_x a#__c # __init #__a q# q Mlong long unsigned int__compar_fn_t  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPEzexception( type  #name #arg1#arg2#retval# r_major$ r_minor% scale_factor& lon_center' lat_origin( e0) e1) e2) e3) es* esp* ml0+ false_northing, false_easting- ind. l( utmfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/stdlib.h/usr/include/sys/types.h/usr/include/time.h/usr/include/bits/sigset.h/usr/include/sys/select.h/usr/include/bits/time.h/usr/include/math.h 6 ++,+++,+-++,+ + +!++++ +++++/Illegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityutm-for5RFߑ?AcAh㈵>|=?@4@2@@R@M@8@"@@>@N@@t@G&aG( ϸa'utmforint(utmfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!N ,27gEGQX(b,9pn [>P??Hp0@08[ `@x`@+[@0[0@;@H M   ' 2=hK`ZH](`0c8f@iXmPqp  u~  utmfor.cr_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espind__divdf3utmforintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutmforadjust_lontsincossinlogcossqrtacostan 2"22I!P**** *b**h** *`B*P*bI*H*HI" *("*H2I#P*0R*HbI$*8*HI%*@*X*(*0*8*@* I& *A*PB*HP*HI*H**p 2(2I'R2PbI(q*r*I)*2`I**I+*I-rI.*p I/ * 2 2 I!r I I0 * *( *r I1 I2R I I3b *p * * *PRI4*H*I2I!*("*00*81*@rI&**B*0bI*8IR*@r*H*P2*PB*X*h*"*X*`I*H2*h*p*xIB*Xb**"*P2**(*`% %'''' <' D'''''' '("'06'8J'@^'Hs'P'X'`'h'p5'__ __  _(_ %%'utminv.o/ 1082129507 59100 998 100644 27368 ` ELF2N@@8-0Be  x ~F<~F pQ?#H803 F p"!~F(~Fx pQ?#90#F p !~F p`p`@B Q?#DB pQ?#80 81PB xQ?#<B pQ?#80  888 @0!@@ H$0 @PT@BPH!XH@ p$F 8 `8 HF p !@~F 00<03 Q?#DB pQ?#`800 HF p!~F ppp `x8Bx p8 p<@ p8 H:|F 88`88 pH 0` H  H 00<03F p!~F ppp `0B p$80 @8 0@ p @8" p$@ 00803Fp!PB x$800H@BPH!`@ `@ JH Fp"!B F p"!B 8`800` H `0X  @@BP H!`@  p$0803@@BP H!`@  p$0803@@BP H!`@  p$0803@@BP H!`@  p$0803p$H $@@<00 P D00 `$@BP H!p@  p$`800`H JPH p$`800`0X @ 0 PH!`@ `@ J 8 0`8$  x$8 @ p$80# H$0 PH!~Fx pQ?#80 @PT@BP H!H@<00P H!H @@PT@BP H!H@@BP H!8U` `P!H93~F gP!0|F D3  @!R<|F pT>#H803 R p"!|F |F pT>#90#Rp!~Fa 8 p`8rpB p$8`<00 ` HR 8 8 0 PH!`@ `@ 0 P H!`@ R p!~F|F0!U?#|F(T?# |FpT?# H@BPH!`@ p@ 0J p8X 0` H L|Fx0AU?#PHRp !A|F x$p800 0` H @  0 PH!`@ p@ 0J`8H L|F p@U?#800P H!`@ @R p$!~F|FxxU?#|FpU?#p<00 0` H 0X Rp"!@~F@R p$!@~F 8`800` H `H 0 PH!`@ `@ 0 P H!`@ R p!|F|F pU>#800P H!`@ R p"!|F p0803@R p$!~F 0`0$ 8 xT>#<B pT>#80 R p !|F p`800`0"  T>#DB p U?#`800`0 H T>#HB pU?#`800`0 ( xT>#<B pT>#80  00<03@ T>#@BT T>#DBpU?#<00 H@BP H!p@  p$`800`0H 0 P H!`@ @R p$!|F p08030@ p$R 0p0 0`0X xR<|FT>#|F pT>#8`<00`0X   |F0U>#PHR p!@|F@<00PH!`@ p@ 0J `0H0 H@BPH!`@ `@ L|Fx U>#|F pU>#`800 |F p`U>#80# xT>#<BU T>#@BT($|F p U>#`800`0H 0 PH!p@ 0Jp H 0L  0H T>#HB p U>#p800 0` H 0 PH!p@ 0J` H  0X xT>#<B p U>#p800 0` H 0 PH!p@ 0J` H `0H0 H@BPH!`@ p@ R p !@|F 0`0X N|F U># |Fx U>#|Fp@U>#p<00 0`0H   |F p@U>#`800 p  0`8 B xT>#<BU T>#@Bp`U?#<0 p`x8`@B X$0 `X@BPH!H@ T>#DBp`U># |Fx`U>#|F p`U>#80  p!p<0#H T>#DB p U>#`800 p  0`8$  T>#HBp U>#|FV@<B !PH!|Fx p U>#800P H!`@ R p !|F|FU>#H@Rp$!@|F@R p$!@|F 8`800p H 0 `H "|FxT?#|FxU># |FpU>#p<00 0` H  |Fx T?#|FxU># |FpU>#p<00 0` H  |Fx@T?#|Fx T?# |Fp T?#p<00 0` H  |FxU>#H@Rp$!|F@R p$!|F 8`800p H 0 ` H `0X "|Fx0aT?#PHR p !|F@@BPH!`@ @J 0 PH!`@ `@ L|F(T?# |F x`T?#H 0p0X 0 ` HR p!|F0 H@BPH!`@ `@ J|F(T?#|F p`T?#8`<00 ` H@R 8$8 0 PH!`@ `@ J|FxT?#|FxT?# |FpT?#p<00 0` H  |Fx pT>#`80 Rp !PB|F Rp"!~F@R p$!|F 8`800 p HR p!~F 0 ` HR p !~F0 H@BPH!`@ @@ R p"!~F@<00PH!`@ 0@ @R p$!@~F 8 0 p H 0 0HR p!|F 8 0` H 0 HR p !~F 8 0` H 0 X 8 0` H  0 X R p"!~F@<00PH!`@ @ @R p$!@~F 8 0 p H 0 0HR p!|F 8 0` H 0 HR p !~F 8 0` H 0 H 8 0` H 0 X R p"!~F 8 0` H `0 X `$ H `0X p H 0`8X p H 0J`8X L`H@Rp$!PB~FR p!~F@<00PH!`@ 0@ R p !@~F 0`0H pH R p"!|F 0  0H@R p$!~F@<00PH!`@ @ R p!|F 0 p0H 0 8XR p !@~F 8 0` H 0 H R p"!~F 8 0` H 0 X 8 0` H 0 H@R p$!~F 8 0` H `0 H `$ H `0X ` H p0X 0J ` HR p!@|F0 H@BPH!`@ p@ 0L`0H 0 P H!`@ R p !|F p0803@ T>#DB pT>#800PH! B@R p$!|F xX 88`88 pH 0` H  |Fx pT>#80  00<03@! U?#0~F  $0L1  $B% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ;  : ;&( Wutminv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2) utminvint9 (r_maj5`r_min6hscale_fact7pzone8xtemp:intdoublelong intutminvj *xf~yg~lonh~lati~conk~phik~delta_phil~im~sin_phin~cos_phin~tan_phin~co~csototsonorododsofphp@gpHtemppPmax_iterqXsize_tlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"3unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t* __uint32_t+3__int64_t,__uint64_t-__qaddr_t.,e__dev_t0 __uid_t1__gid_t2__ino_t3 __ino64_t4 __mode_t5__nlink_t6 __off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t< __rlim64_t= __blkcnt_t>__blkcnt64_t?__fsblkcnt_t@ __fsblkcnt64_tA __fsfilcnt_tB __fsfilcnt64_tC __id_tDI __valH#   long unsigned int__fsid_tI__daddr_tL __caddr_tM char__time_tN__useconds_tO3__suseconds_tP__swblk_tQ__clock_tR__key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t___t_scalar_tf __t_uscalar_tg3__intptr_tj__socklen_tm3 L__sched_paramE __sched_priorityF # _pthread_fastlock __status# __spinlock # _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+ # __schedpolicy, # __schedparam-# __inheritsched. # __scope/ # __guardsize0# __stackaddr_set1 # __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:L# __c_waiting;#pthread_cond_t<& C __dummyB #pthread_condattr_tC pthread_key_tF3 (S __m_reservedN # __m_countO # __m_ownerP# __m_kindQ # __m_lockRL#pthread_mutex_tSU  Z __mutexkindY #pthread_mutexattr_tZ pthread_once_t^ pthread_t _IO_FILE-_flags #_IO_read_ptr  #_IO_read_end  #_IO_read_base  #_IO_write_base # _IO_write_ptr #(_IO_write_end #0_IO_buf_base #8_IO_buf_end #@_IO_save_base #H_IO_backup_base #P_IO_save_end #X_markers #`_chain #h_fileno #p_blksize #t_old_offset#x_cur_column"#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode: #_unused2< # _IO_marker _next # _sbuf # _pos # ;    +FILE-; __FILE7; wchar_t wint_t83] J__wchH* __wchbI] m   K __countE # __valueJ9 #__mbstate_tKm    __pos # __state  #_G_fpos_t   # __pos !# __state " #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR 5 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u # __from_name w # __to_name x # __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object y  5 __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 F__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# y yyyF yy __gconv_fct H__gconv_init_fct K=__gconv_end_fct LZ__gconv_trans_fct UyF__gconv_trans_context_fct Z__gconv_trans_query_fct ^ __gconv_trans_init_fct a* *__gconv_trans_end_fct bM __gconv_info __nsteps # __steps # __data # __gconv_t SH 4 __cd 2S# __data 3#H 5__cd /S__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8 _G_uint16_t 9_G_uint32_t :3__gnuc_va_list + _IO_jump_t_IO_lock_t __codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA; _IO_FILE_plus__io_read_fnXB\ __io_write_fnar__io_seek_fni  __io_close_fnl fpos_tP  b quot ` # rem a #div_t bN j quot h# rem i#ldiv_t j(u_char "u_short #u_int $$u_long %Cquad_t &eu_quad_t 'Sfsid_t (loff_t -ino_t 1_dev_t =2gid_t BPmode_t Gnlink_t Luid_t QAoff_t Wpid_t cid_t hssize_t mdaddr_t scaddr_t tkey_t zstime_tFclockid_tRtimer_t^ulong ushort uint 3int8_t int16_t int32_t int64_t u_int8_t u_int16_t u_int32_t 3u_int64_t register_t __sig_atomic_t  __val#  __sigset_tzsigset_t& timespeck tv_secl# tv_nsecm# .timevalD tv_secE# tv_usecF<#suseconds_t1<__fd_mask7pJ __fds_bitsGp# A fd_setJRfd_maskQAblkcnt_t fsblkcnt_t 8fsfilcnt_t bhrandom_data0 fptr h#rptr h#state h#rand_type  #rand_deg  #rand_sep  # end_ptr h#(drand48_data __x #__old_x #__c # __init #__a #  long long unsigned int__compar_fn_t 2 228q_IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE9exception( type  #name  #arg1#arg2#retval# r_major% r_minor& scale_factor' lon_center( lat_origin) e0* e1* e2* e3* es+ esp+ ml0, false_northing- false_easting. ind/ ( utminv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/stdlib.h/usr/include/sys/types.h/usr/include/time.h/usr/include/bits/sigset.h/usr/include/sys/select.h/usr/include/bits/time.h/usr/include/math.h 8 ++,+++,+-++++,+ $/++++"t+++++++++++ +++++Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE5RFߑ?AcAh㈵>?@@|=-DT!?8@@@$@"@>@V@N@r@F@o@4@<@ @G&aG( Ǹa '[utminvint(utminv,#GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@#!PZ ,$2$7$gEw%[Qg(bCnixJ0KKHp0L0j `Lx`L+jL0j0L;LT( 8Y  ' 2=hK`ZH](`0c8f@iXmPqp  u~@@ utminv.cr_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espind__divdf3utminvintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutminvexpcossqrtasinzatan2adjust_lonsintsincostansign 2"22I!P**** *b**h** *`B*P*bI*H*HI" *("*H2I#P*0R*HbI$*8*HI%*@*X*(*0*8*@* I& *A*PB*HP*HI*H**p0*p@2(RI'r2PI(**I)*2`I**I+*p**rII-" Ib * * * * I I.r I I/ I0r * I1 *"I2p*h*`1*XB*bI*I`*0I3*8*(RI3*@*0I32*(RI2*822I!r*@I4I5Q*P*H*I/I1*HI*RII*HI2*PR*X*`*(*P"*hb*pI*x*"*r**P**Pb* **0I*I *XR * *P *P *2!*H!IR"I2"I6"#*@b#*% %'#'''@<'@D'#''8'T'p' '('0'8'@'H'P'X'`='hR'p5'__@__@ _#(_ %%'vandgfor.o/ 1082129507 59100 998 100644 17696 ` ELF23@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B @53~F ` `>#  @3 x O<|F pS>#H803 O p"!~F |F p R?#90# xS>#`<00p0 0`0X 0 P H!`@ O p!~F|F pS>#`800 p  0`8 h S>#DB pR?#80 x$ |Fp@R?#p<00 0p H 0 `8H "|Fx p R?#80  00<03@ S>#@B pS>#@<00PH!`@ `@ ` `0H 0 P H!`@ O p"!~F |F p@R?#`800 p  0`8 B xS>#<B pS>#`800 p  0`0X p  0`8 @ S>#@B pR?#80  00<03 O p"!|F 0`  S>#HB p`R?#p800 0` H 0 PH!|Fx p R?#80  p$p800 0` H pH 0`8H  @ S>#@B p`R?#p800 0` H 0 PH!|F p R?#80  p$p800 0p H `@ " p H 0`8H   @! @ S>#HBJ xS>#<BI p$800H@BPH!`@  @ O p !~F@<00PH!`@ `@ `0X p  0` H J|FR?# |FxR?#|FpR?#p<00 0` H   |Fp`R?#~FM@<B !PH!|Fx(R?#|F`S?#|FxS?# |Fp`S?#p<00 0`0H `X @  0 PH!`@ `@ J|FxR?#|FxR?# |FpR?#p<00 0` H  |Fx0S?#|F(R?#|F xS?#H@<00PH!`@ `@ pX 0J`H L |F S?#|FxxS?#|FpS?#p<00 0` H   |F (AS?#H 8 0 0 HOp!~F Op"!~F@O p$!@~F 8`800p0X 0    HOp!A~F Op"!~F@O p$!@~F 8`800p0X 0   HOp!~FO p !@~F 8`800`0X  H Op"!@~F@O p$!@~F 8`800 0HOp!~FO p !@~F 8`800`0X ` H `0$X 0 PH!`@ `0H  H Op"!@~F@O p$!@~F 8`800`0H 0 PH!`@ `@ J|Fx p@R?#`800`0$ 0 S>#@BM S>#DB p@S?#`800`0"  S>#HB pR?#80  S>#DBp@S?#p<00 0`0H   |F(AS?#|Fx x@S?#H 8 0` H @ 0 PH!`@ `@ ` J|F pS>#`800`  S>#DB p R?#`80  p$p800 0   H@Op$!~FO p !~F 8`800` H 0X O p"!~F 0 p0H@O p$!~F 0` H `0 X 0 PH!`@ p H 0J`8H L@ xS>#<B p R?#`80  p$p800 0   HOp !~F O p"!~F 8`800` H 0X@O p$!~F 0 p0HO p!~F 0` H `0 X 0 PH!`@ p H 0J`8X L @! S?#@Up  @"0D1H% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;vandgfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2) vandgforint. #r*pcenter_long+xfalse_east,false_north-intdoublevandgforG )lonB~latC~xDyEdlonHthetaIalJasqJgKgsqKmL@msqLHconMPcosthNXsinthN`size_t2long unsigned int__u_char Wunsigned char__u_short!yshort unsigned int__u_int"unsigned int__u_long#2__u_quad_t$2__quad_t%long int__int8_t&signed char__uint8_t'W__int16_t(-short int__uint16_t)y__int32_t* __uint32_t+__int64_t,__uint64_t-2__qaddr_t.__dev_t0__uid_t1]__gid_t2]__ino_t3__ino64_t4__mode_t5]__nlink_t6__off_t7o__off64_t8o__loff_t9o__pid_t:L__ssize_t;o__rlim_t<__rlim64_t=__blkcnt_t>o__blkcnt64_t?o__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tD]*I __valH*# :  :long unsigned int__fsid_tI__daddr_tL __caddr_tMchar__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t___t_scalar_tf __t_uscalar_tg__intptr_tj__socklen_tm __sched_paramE __sched_priorityF # _pthread_fastlock __status# __spinlock # _pthread_descr_struct_pthread_descr#4 "__pthread_attr_s8* __detachstate+ # __schedpolicy, # __schedparam-# __inheritsched. # __scope/ # __guardsize0$# __stackaddr_set1 # __stackaddr2"#( __stacksize3$#0pthread_attr_t4:l< __c_lock:# __c_waiting;#pthread_cond_t<:C __dummyB #pthread_condattr_tCpthread_key_tF: (S __m_reservedN # __m_countO # __m_ownerP# __m_kindQ # __m_lockR#pthread_mutex_tSp Z __mutexkindY #pthread_mutexattr_tZQ pthread_once_t^ pthread_t2  _IO_FILE-_flags #_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markersI #`_chainO #h_fileno #p_blksize #t_old_offset#x_cur_column"y#_vtable_offset##_shortbuf$U #_lock(e #_offset1&#__pad17"#__pad28"#_mode: #_unused2<g # I _IO_marker _nextI # _sbufO # _pos #  e  : w  :+FILE- __FILE7 wchar_t wint_t8 J__wchH __wchbI  : K __countE # __valueJ #__mbstate_tK O   __pos # __state  #_G_fpos_t $   # __pos !&# __state " #_G_fpos64_t #` y &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u # __from_name w# __to_name x# __fct zU#( __init_fct {k#0 __end_fct |}#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data "#X __gconv_loaded_objectT TZ  ` %__gconv_step_data8 @ __outbuf %# __outbufend %# __flags # __invocation_counter # __internal_use # __statep +# __state  #( __trans O#0W __gconv_trans_data( B __trans_fct g # __trans_context_fct h7# __trans_end_fct iI# __data j"# __next kO#  TZ"W%$7 "%%I"=1!k T[}Tq__gconv_fct H!__gconv_init_fct K[__gconv_end_fct Lq__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^<B\ \b__gconv_trans_init_fct a "__gconv_trans_end_fct b= __gconv_info __nsteps $# __steps T# __data # -`:__gconv_t >mH 4 __cd 2# __data 3`#H 5__cd /__combined 4D_G_iconv_t 5m_G_int16_t 7-_G_int32_t 8 _G_uint16_t 9y_G_uint32_t :__gnuc_va_list +" _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXV"$__io_write_fnaV"$__io_seek_fni2 "2 &__io_close_fnlN^ "fpos_tPO  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE l#exception( type  #name #arg1 #arg2 #retval # lon_center" R# false_easting$ false_northing%   vandgfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h - !, ++ +++++++VAN DER GRINTENG!aZG' øa|=-DT! @-DT!??@+vandgforintvandgfor,@GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@@!=,27bEQC bt-n0D11Hp10HD 2(82 82/Dg20D02;29 < '  6BIPW_h@q|vandgfor.cRlon_centerfalse_eastingfalse_northingvandgforintptitleradiuscenlonoffsetp__divdf3vandgforadjust_lonasinztantsincossqrtr* * * * 2"IbII* * I* I2* * * * B* bII* r* * * b* I* * * R* I* * * p* I* I *  I IA * b I1 * B * RII* !* 2* I*  * "* "I* * * I% %'@'''0'8'@7' J' i' ' '___ _ _@(_ %%'vandginv.o/ 1082129507 59100 998 100644 18584 ` ELF2@7@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B @)3~F ` `>#  @3 x O<|F pS>#H803 O p"!~F|Fx p R?#90# S>#`@00p0 0`0X xO<|FS>#|F pS>#8`<00`0X  |Fx x@S?#H 8 0` H |F(AR?#|F p@S?#O 00 H@BPH!`@ `@ J|Fx(aR?#|FxS>#|Fp@S?#<00 H@BPH!`@ `@ J|FxR?#|Fx@R?#|Fp@R?#p<00 0  HOp!~F O p"!~F 8`800` H `0 H  |FxxR?#|F p`R?#`800` p0" O p"!~F 0`H ` H |FxR?#|FxR?#|F p`R?#`800 p0H O p"!~F 0p H 0 8XOp!~F O p"!~F 8`800` H `0 H  |FxR?#|F pR?#p800 0` H HO p!~F 0 p0H O p"!~F 0` H 0 HOp!~F O p"!~F 8`800` H `0 H  |Fx(S?#|Fx`R?#|Fp`R?#p<00 0 ` HO p!~F0 H@BPH!`@ 0@ O p !~F 0 p0H O p"!~F 0 p HO p!~F 0 ` HO p !~F0 H@BPH!`@ `@ O p"!~F0 H@BPH!`@ `@ O p!~F0 H@BPH!`@  @ O p !@~F 8 0 p H O p"!~F 0 ` HO p!~F0 H@BPH!`@ `@ O p !~F0 H@BPH!`@ `@ `0X0 H@BPH!`@ `@ `0 H J|F0S?#|Fx(R?#|FxR?#|FpR?#p<00 0 ` H0 H@BPH!`@ `@ O p!~F0 H@BPH!`@ p@ 0J `8XO p !~F0 H@BPH!`@ `@ L|F(!S?#|Fx pS?#`800 `0"0 H@BPH!`@ `@ 0 PH!`@ `0H J|F(AS?#|F pS?#p800 0 ` HO p!~F0 H@BPH!`@ `@ O p !@~F0 H@BPH!`@ `@ J|F p@S?#`800` `$ X xS>#<B p@S?#`800`  S>#@B p@S?#803@@ S>#DBM p$`800 xS>#<BM S>#@B p@S?#800P H!`@ p$0 H@BPH!`@ `@ J|F pS>#`800`  xS>#<B p R?#P80 O p !@~F 0  0" O p"!~F 8 0`0H 0 PH!`@   HO p!~F@<00PH!`@ `@ O p !~F0 H@BPH!`@ `@ p0X 0` H J@ S>#DB p R?#P80 O p!@~F 0  0"O p !~F 8 0`0H 0 PH!`@   H O p"!~F@<00PH!`@ `@ O p!~F0 H@BPH!`@ `@ `0X p0" 0` H J S>#@B p@R?#`800 p  0`8$ ( S>#DB pR?#80  00<03@($|Fx pR?#`800  XOp !~F O p"!~F 8`800 p HOp!~FO p !~F @`800` H p0X `8H H Op"!~FO p !~F 8`800` H `0 H 0 PH!`@ p0H 0 ` H0 H@BPH!`@ `@ O p"!~F0 H@BPH!`@ p@ 0J`0H 0 P H!`@ O p!~F p0803S?#@Up  @"0D1H% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;vandginv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2) vandginvint. #r*pcenter_long+xfalse_east,false_north-intdoublevandginvG )xB~yC~lonDlatExxHyyHxysHc1Hc2Hc3Ha1I@m1JHconKPth1LXdM`size_t'long unsigned int__u_char Lunsigned char__u_short!nshort unsigned int__u_int"unsigned int__u_long#'__u_quad_t$'__quad_t%long int__int8_t&signed char__uint8_t'L__int16_t("short int__uint16_t)n__int32_t* __uint32_t+__int64_t,__uint64_t-'__qaddr_t.__dev_t0u__uid_t1R__gid_t2R__ino_t3u__ino64_t4u__mode_t5R__nlink_t6u__off_t7d__off64_t8d__loff_t9d__pid_t:A__ssize_t;d__rlim_td__blkcnt64_t?d__fsblkcnt_t@u__fsblkcnt64_tAu__fsfilcnt_tBu__fsfilcnt64_tCu__id_tDRI __valH# /  /long unsigned int__fsid_tI__daddr_tL __caddr_tMv|char__time_tN__useconds_tO__suseconds_tP__swblk_tQ__clock_tR__key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t___t_scalar_tf __t_uscalar_tg__intptr_tj__socklen_tm __sched_paramE __sched_priorityF # _pthread_fastlock __status# __spinlock # _pthread_descr_struct_pthread_descr#) __pthread_attr_s8* __detachstate+ # __schedpolicy, # __schedparam-# __inheritsched. # __scope/ # __guardsize0# __stackaddr_set1 # __stackaddr2#( __stacksize3#0pthread_attr_t4/a< __c_lock:# __c_waiting;#pthread_cond_t #`_chainD #h_fileno #p_blksize #t_old_offset #x_cur_column"n#_vtable_offset##_shortbuf$J #_lock(Z #_offset1#__pad17#__pad28#_mode: #_unused2<\ # > _IO_marker _next> # _sbufD # _pos #  Z | / l | /+FILE- __FILE7 wchar_t wint_t8 J__wchH __wchbI | / K __countE # __valueJ #__mbstate_tK D   __pos  # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #U n &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s # __counter u # __from_name wv# __to_name xv# __fct zJ#( __init_fct {`#0 __end_fct |r#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object|I IO  U __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state  #( __trans D#0L __gconv_trans_data( B __trans_fct g# __trans_context_fct h,# __trans_end_fct i># __data j# __next kD#  IOL, >2&` IPrIf__gconv_fct H__gconv_init_fct KP__gconv_end_fct Lf__gconv_trans_fct U__gconv_trans_context_fct Z __gconv_trans_query_fct ^17Q  QW __gconv_trans_init_fct a{  __gconv_trans_end_fct b2 __gconv_info __nsteps # __steps I# __data # "U/__gconv_t 3bH 4 __cd 2# __data 3U#H 5__cd /__combined 49_G_iconv_t 5b_G_int16_t 7"_G_int32_t 8 _G_uint16_t 9n_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_tx__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXKv__io_write_fnaK __io_seek_fni ' ' __io_close_fnlCS fpos_tPD  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE aexception( type  #name v#arg1 #arg2 #retval # lon_center" R# false_easting$ false_northing% t vandginv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h - !, ++ ++++++++ VAN DER GRINTENG!aZG' øa-DT! @"@;@@es-8R?|=@+vandginvintvandginv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!@,P2P7PbEQF b90xnG44Hp50G @5H5 5/PH50hH05;"6@= (@ '  6BIPW_hqv{vandginv.cRlon_centerfalse_eastingfalse_northingvandginvintptitleradiuscenlonoffsetp__divdf3vandginvsqrtacoscosadjust_lonr* * * * 2"IbII* * I* * A* R* IBI* BI" Ir I I *  I I * " I * I2 I I * " Ib I * IRIP* (I* I* 0I* 2II* R* 0I* I2Ir* * 8"* P* I* * @IBII% %''''0'8',' ?' ^' ~' '___ _ _(_ %%'wivfor.o/ 1082129507 59100 998 100644 13672 ` ELF2'@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P@!~FxF!~Fp F!<00 HBP@!B @10Bb  R@!K<~F pR?#H803 K p"!~F~Fx p S?#90# R?#`@00p0 0`0X 0 P H!`@ K p!~F~Fx`S?#~F pR?#`800~Fx(S?#~F pR?#800P H!p@  p$`800` H J~F pS?#80# xR?#<BN R?#@BM R?#DB p`S?#800PH!p@ 0J p0HK p!@~F 0`0X  0"K p !~F@@BPH!`@ `H  0 PH!`@ `@ L~F`S?#~Fxx`S?#~FpS?#p<00 0`0H  ~Fx pS?#`800 p  0`8$ B R?#@B pS?#80 8t1@B P$0 `XV@BPH! R?#DBpS?#~FxxS?#~F pS?#80  p!p<0#@H R?#DBM xR?#<B p`S?#@<00PH!`@ `@ J~F pS?#P80  8 0 p H K p"!~F 0   HK p!~F@@BPH!`@ p H 0`0H J~F p S?#P80  8 0   H K p"!~F@@BPH!`@ p H 0`0H JB H@Up "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;8wivfor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)wivforint)#r% pcenter_long& xfalse_east' false_north( intdoublewivforA)lon= lat> x?@y@Hdelta_lonB PthetaC Xdelta_thetaD `conE hiFp long intsize_tlong unsigned int__u_char unsigned char__u_short!/short unsigned int__u_int"Tunsigned int__u_long#__u_quad_t$__quad_t%__int8_t&signed char__uint8_t' __int16_t(short int__uint16_t)/__int32_t*__uint32_t+T__int64_t,__uint64_t-__qaddr_t.M__dev_t0*__uid_t1__gid_t2__ino_t3*__ino64_t4*__mode_t5__nlink_t6*__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<*__rlim64_t=*__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@*__fsblkcnt64_tA*__fsfilcnt_tB*__fsfilcnt64_tC*__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM+1char__time_tN__useconds_tOT__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgT__intptr_tj__socklen_tmT m__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-;# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:m# __c_waiting;#pthread_cond_t<GC __dummyB#pthread_condattr_tC,pthread_key_tFT(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRm#pthread_mutex_tSv Z __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr +#_IO_read_end +#_IO_read_base +#_IO_write_base+# _IO_write_ptr+#(_IO_write_end+#0_IO_buf_base+#8_IO_buf_end+#@_IO_save_base+#H_IO_backup_base+#P_IO_save_end+#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"/#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# \  1  ! 1 +FILE-\ __FILE7\ wchar_twint_t8T~ J__wchHK __wchbI~ 1  K __countE# __valueJZ #__mbstate_tK    __pos # __state  #_G_fpos_t  5  # __pos !# __state " #_G_fpos64_t # # &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR V 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w+# __to_name x+# __fct z#( __init_fct {#0 __end_fct |'#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object1V  __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0  g__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k#  g'__gconv_fct H@__gconv_init_fct K^__gconv_end_fct L{__gconv_trans_fct Ug__gconv_trans_context_fct Z__gconv_trans_query_fct ^ __gconv_trans_init_fct a06KK__gconv_trans_end_fct bn __gconv_info __nsteps # __steps # __data #  __gconv_t tH 4 __cd 2t# __data 3 #>H 5__cd /t__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9/_G_uint32_t :T__gnuc_va_list + _IO_jump_t_IO_lock_t-__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA\ _IO_FILE_plus__io_read_fnXc}+__io_write_fna__io_seek_fni__io_close_fnlfpos_tP N _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name +#arg1  #arg2  #retval  # lon_center  R  false_easting  false_northing   wivfor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h ( !,  !++++WAGNER IVIteration failed to convergewagneriv-forwardG!a]G'aLKD@|=@%䃞?\4 ?'<wivforintwivfor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!0, 2 7 bEr <QX3 b!nx4$H$Hp%04 @%(h% h%+ 5%0850%;%- 0  %  4>ELS[dkvz~wivfor.cRlon_centerfalse_eastingfalse_northingwivforintptitleradiuscenlonoffsetp__divdf3wivforadjust_lonsincosp_errorr* * * * 2"IbIII* IrI* III* 220"I* I"* 2* I* * * RIr* % %''''*'2'' ' ' 3' '___ _ _(_ %%'wivinv.o/ 1082129507 59100 998 100644 12784 ` ELF2$@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P@!~FxF!~Fp F!<00 HBP@!B 8%0Bd  P@!E<~Fx p`Q?#H803E p!~F~Fx pQ?#90# x@Q?#`<00p0 0`0X xE<~Fx`Q?#~Fx p`Q?#8`<00`0X  ~Fx x`Q?#H 8 0` H @ 0 PH!`@ `@ 0 P H!`@ E p!~FPH 8 0   HE p!~F@@BPH!`@ ` HE 88 0 PH!`@ p@ 0J`0H 0 P H!`@ E p!~F p0803E p!~F 0  0HE p!~F 0`0H 0 PH!`@ `0H0 H@BPH!`@ `@ 0 P H!`@ E p!@~F p0803P!8U` "B% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;wivinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)wivinvint(#r$ pcenter_long% xfalse_east& false_north' intdoublewivinv@(x< Py= Xlon>`lat?hthetaA p size_tǖlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#__u_quad_t$__quad_t%Dlong int__int8_t&`signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+__int64_t,D__uint64_t-__qaddr_t.4__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDI __valH#  long unsigned int__fsid_tIu__daddr_tL__caddr_tMchar__time_tND__useconds_tO__suseconds_tPD__swblk_tQD__clock_tRD__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_D__t_scalar_tf__t_uscalar_tg__intptr_tjD__socklen_tm '__sched_paramE __sched_priorityF# j_pthread_fastlock __statusD# __spinlock# _pthread_descr_struct_pthread_descr#j __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:'# __c_waiting;#pthread_cond_t<C __dummyB#pthread_condattr_tCpthread_key_tF(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR'#pthread_mutex_tS0Z __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t j _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset{#x_cur_column"#_vtable_offset#`#_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos#j     +FILE- __FILE7 wchar_twint_t88 J__wchH __wchbI8 H  u K __countE# __valueJ #__mbstate_tKH    __pos {# __state u #_G_fpos_t    # __pos !# __state "u #_G_fpos64_t #   &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR  8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS \__gconv_step` ? __shlib_handle rt# __modname sz# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object\_Tek __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state u #( __trans #0u !__gconv_trans_data( B __trans_fct gq# __trans_context_fct h# __trans_end_fct i# __data j# __next k# TT_TekZT!TTw__gconv_fct H__gconv_init_fct K__gconv_end_fct L5__gconv_trans_fct UT!__gconv_trans_context_fct Z{w__gconv_trans_query_fct ^zkz__gconv_trans_init_fct az__gconv_trans_end_fct b( z__gconv_info __nsteps # __steps # __data z# __gconv_t .H 4 __cd 2.# __data 3#H 5__cd /.__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :__gnuc_va_list + _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX7__io_write_fnaMgz__io_seek_fni|__io_close_fnlfpos_tP  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name #arg1  #arg2  #retval  # lon_center  R  false_easting  false_northing  x wivinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h ' !, "++++WAGNER IVG!a]G&a\4 ?%䃞?LKD@'wivinvintwivinv,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!-X,27bERQ/ bH|n1!!Hp "01 P"h" h"+1"010";"* -  %  4>ELS[dkptwivinv.cRlon_centerfalse_eastingfalse_northingwivinvintptitleradiuscenlonoffsetp__divdf3wivinvasincosadjust_lonsinr* * * * 2"IbIII* * A* R* II* * "* bII"II* IRI% %''''*'2'' ' ' ' '___ _ _(_ %%'wviifor.o/ 1082129507 59100 998 100644 13192 ` ELF2`%@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B 810Bc  x ~F<~F p Q?#H803D p!~F~F p`Q?#90# xQ?#`<00p0 0`0X 0 P H!`@ D p!~F~F pQ?#@<00PH!`@ `@ F xQ?# 0 @pX!@BPH!~Fx(Q?#~F p Q?#800P H!p@  p$`800` H J~FxxQ?#~FpQ?#p<00 0` H `0X 0 P H!`@ D p!B~FxP!~FpQ?#p<00 0` H `H @0 PH!`@ `@ 0 P H!`@ D p!@B~F p@Q?#80  8 0 p HD p !B 0 p HD p !@B 0 p HD p !@~F 0 p H 0`0H ~Fx p`Q?#80  8 0 p HD p !~F 0 p HD p !@B 0 p H 0`0H Bp0@% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;Cwviifor.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)wviiforint(#r$pcenter_long%xfalse_east&false_north'intdoublewviifor@(lon<@lat=Hx>Py?Xdelta_lonA`sin_lonBhcos_lonBpsCxc0Cc1Csize_tlong unsigned int__u_char unsigned char__u_short!.short unsigned int__u_int"Sunsigned int__u_long#__u_quad_t$__quad_t%long int__int8_t&signed char__uint8_t' __int16_t(short int__uint16_t).__int32_t*__uint32_t+S__int64_t,__uint64_t-__qaddr_t.X__dev_t05__uid_t1__gid_t2__ino_t35__ino64_t45__mode_t5__nlink_t65__off_t7$__off64_t8$__loff_t9$__pid_t:__ssize_t;$__rlim_t<5__rlim64_t=5__blkcnt_t>$__blkcnt64_t?$__fsblkcnt_t@5__fsblkcnt64_tA5__fsfilcnt_tB5__fsfilcnt64_tC5__id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM6<char__time_tN__useconds_tOS__suseconds_tP__swblk_tQ__clock_tR__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t___t_scalar_tf__t_uscalar_tgS__intptr_tj__socklen_tmS x__sched_paramE __sched_priorityF# _pthread_fastlock __status# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-F# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4!< __c_lock:x# __c_waiting;#pthread_cond_t<RC __dummyB#pthread_condattr_tC7pthread_key_tFS(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRx#pthread_mutex_tS% Z __mutexkindY#pthread_mutexattr_tZ pthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr 6#_IO_read_end 6#_IO_read_base 6#_IO_write_base6# _IO_write_ptr6#(_IO_write_end6#0_IO_buf_base6#8_IO_buf_end6#@_IO_save_base6#H_IO_backup_base6#P_IO_save_end6#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column".#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# g  <  , < +FILE-g __FILE7g wchar_twint_t8S J__wchHV __wchbI <  K __countE# __valueJe #__mbstate_tK    __pos # __state  #_G_fpos_t  @  # __pos !# __state " #_G_fpos64_t # . &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR a 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w6# __to_name x6# __fct z #( __init_fct { #0 __end_fct |2#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_object<  a __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0  r__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k#   r  2 &__gconv_fct HK__gconv_init_fct Ki__gconv_end_fct L&__gconv_trans_fct Ur__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a;AVV__gconv_trans_end_fct by __gconv_info __nsteps # __steps # __data # __gconv_t "H 4 __cd 2# __data 3#IH 5__cd /__combined 4_G_iconv_t 5"_G_int16_t 7_G_int32_t 8_G_uint16_t 9._G_uint32_t :S__gnuc_va_list + _IO_jump_t_IO_lock_t8__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAg _IO_FILE_plus__io_read_fnXn 6__io_write_fna __io_seek_fni__io_close_fnlfpos_tP Y _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE !exception( type #name 6#arg1 #arg2 #retval # lon_center R false_easting false_northing  wviifor.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h ' !, $+++WAGNER VIIG!aZG&a@T5A}?@G|V@rPL?)Gwviiforintwviifor,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!.,27bE" GQx1 bi n2##@pP#02 #(# #-@3#0X30$;@$`+ H.  &  5@GNU]fnywviifor.cRlon_centerfalse_eastingfalse_northingwviiforintptitleradiuscenlonoffsetp__divdf3wviiforadjust_lontsincossinsqrtr* * * * 2"IbII* * Ir* I* 2III* rI* IRI* * R* * * "* % %''''-'5'' ' ' >' '___ _ _(_ %%'wviiinv.o/ 1082129507 59100 998 100644 13704 ` ELF2&@@00Bf   x ~F<~F pG?#H803 p!B(~F p F!X803 xG?#p<00`8 H p !~F 00<03 G?#@B pF!`800H p !@B 00<03 HBP @! 0 0 P@!~Fx pG?#800P @!H@<00P@!B 8%0Bd  x ~F<~F p`Q?#H803 E p"!~F~Fx pQ?#90# @Q?#`@00p0 0`0X xE<~F`Q?#~F p`Q?#8`<00`0X  ~Fx (Q?#HE 0 0 H@BPH!`@ `@ J~Fx(Q?#~F p`Q?#@<00PH!`@ `@ J~FQ?#~FxxQ?#~FpQ?#p<00 0` H  ~FxQ?#~FxQ?#~FpQ?#p<00 0` H  ~FxxQ?#~FpQ?#p<00 0`0H 0 P H!`@ E p"!B~Fx(!P!~F xP!H 0`0H @ 0 PH!`@ `@ 0 PH!`@ `0H J~F(aQ?#~Fx p P!800PH!p@ 0J  HE p !B 8 0` H 0 PH!`@ `@ 0 P H!`@ E p"!@~F p0803E p!@B@@BP H!p@ E @ `@  HE p!B 8 0` H 0 P H!p@  x$ 0p H 0`0H 0 P H!`@ E p !~F p08038U` `P!% .? : ; ' I@ : ; I $ > 4: ; I  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;wviiinv.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)wviiinvint+#r'pcenter_long(xfalse_east)false_north*intdoublewviiinvC(x?Py@XlonA`latBht1Dpt2DxpDcDsize_tǻlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"'unsigned int__u_long#__u_quad_t$__quad_t%ilong int__int8_t&signed char__uint8_t'__int16_t(short int__uint16_t)__int32_t*__uint32_t+'__int64_t,i__uint64_t-__qaddr_t.,Y__dev_t0 __uid_t1__gid_t2__ino_t3 __ino64_t4 __mode_t5__nlink_t6 __off_t7__off64_t8__loff_t9__pid_t:__ssize_t;__rlim_t< __rlim64_t= __blkcnt_t>__blkcnt64_t?__fsblkcnt_t@ __fsblkcnt64_tA __fsfilcnt_tB __fsfilcnt64_tC __id_tDI __valH#  long unsigned int__fsid_tI__daddr_tL__caddr_tM char__time_tNi__useconds_tO'__suseconds_tPi__swblk_tQi__clock_tRi__key_tS__clockid_tV__timer_tY__ipc_pid_t\__blksize_t_i__t_scalar_tf__t_uscalar_tg'__intptr_tji__socklen_tm' L__sched_paramE __sched_priorityF# _pthread_fastlock __statusi# __spinlock# _pthread_descr_struct_pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2#( __stacksize3#0pthread_attr_t4< __c_lock:L# __c_waiting;#pthread_cond_t<&C __dummyB#pthread_condattr_tC pthread_key_tF'(S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRL#pthread_mutex_tSUZ __mutexkindY#pthread_mutexattr_tZpthread_once_t^pthread_t _IO_FILE-_flags#_IO_read_ptr  #_IO_read_end  #_IO_read_base  #_IO_write_base # _IO_write_ptr #(_IO_write_end #0_IO_buf_base #8_IO_buf_end #@_IO_save_base #H_IO_backup_base #P_IO_save_end #X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column"#_vtable_offset##_shortbuf$ #_lock( #_offset1#__pad17#__pad28#_mode:#_unused2< # _IO_marker _next # _sbuf # _pos# ;    +FILE-; __FILE7; wchar_twint_t8'] J__wchH* __wchbI] m   K __countE# __valueJ9 #__mbstate_tKm    __pos # __state  #_G_fpos_t    # __pos !# __state " #_G_fpos64_t #  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR 5 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w # __to_name x # __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X __gconv_loaded_objecty5 __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0 F__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j# __next k# yyyyFyy__gconv_fct H__gconv_init_fct K=__gconv_end_fct LZ__gconv_trans_fct UyF__gconv_trans_context_fct Z__gconv_trans_query_fct ^__gconv_trans_init_fct a**__gconv_trans_end_fct bM __gconv_info __nsteps # __steps # __data # __gconv_t SH 4 __cd 2S# __data 3#H 5__cd /S__combined 4_G_iconv_t 5_G_int16_t 7_G_int32_t 8_G_uint16_t 9_G_uint32_t :'__gnuc_va_list + _IO_jump_t_IO_lock_t __codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA; _IO_FILE_plus__io_read_fnXB\ __io_write_fnar__io_seek_fni__io_close_fnlfpos_tP - _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type #name  #arg1 #arg2 #retval # lon_center R  false_easting! false_northing"  wviiinv.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h * !, "+++++++WAGNER VIIG!aZG&aG|V@rPL?tr ?@)wviiinvintwviiinv, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !0,@ 2@ 7@ bE Qx3 b!n4$$@p$04 % (% (%-@5U%0X50%;%, /  &  5@GNU]fnsy}wviiinv.cRlon_centerfalse_eastingfalse_northingwviiinvintptitleradiuscenlonoffsetp__divdf3wviiinvsqrtasinzsintanatan2adjust_lonr* * * * 2"IbII* * Ir* * 1* bI* I"Iq* IIbI* I2II* "I@* B* I % %' '''-'5' ' ' ' ' '___ _ _ (_ %%'for_init.o/ 1082129508 59100 998 100644 61920 ` ELF2@@XI0BabezFx pPY=#9 #e p !zF zF pY=#9 #`e p&!@zF@zF pY=#(90#e p*!zF`zF pX>#890#e p!~FzF xX!~F 8@e p$p; sB @Y=#LB p`Y=#80  0`$ B @Y=#PB p`Y=#80  0`0$ B @Y=#TB p`Y=#80  p !`800`$ `B @Y=#XB p`Y=#80  p !`800`0$  x@Y=#<Bf p'p< # @Y=#@B pY=#8  8,`e p&!zFgY>#~Fp<B"!BPP!@ @Y=#P 89 B @Y=#TB p`Y=#80  0`$ B @Y=#XB p`Y=#80  0`0$ B x@Y=#<B p`Y=#80  p !`800`$ `B @Y=#@B p`Y=#80  p !`800`0$  @Y=#HBf p'p< #0@ @Y=#LBf pP$p< # @Y=#PB pY=#8  8,e p*!zFgY>#~Fp<B"!BPP!@ @Y=#XB pY=#8  8,e p!zFgY>#~Fp<B"!BPP! @Y=#@B` @Y=#HB p`Y=#80  p!`8000zFx@X?#@zF p`Y=#80  p!`800 e p*p; s@B @Y=#XB d x@Y=#<B p`Y=#80 x!zFpX!<00 pBP P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r B@'`@ @Y=#TB c @Y=#XB p`Y=#80 x!zFpX!<00 pBP P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r B@' @ @Y=#TB`g @Y=#XB@g x@Y=#<B d @Y=#@Bc @Y=#PB` @Y=#TBp@X?#L00 H$D00 X <00 hBPP! Be p,!B xX8zFx pY=#80 e p !B p8  8@e p$pX p $`x1 88`t xzF pX>#80  x<  pp<0#`@ @Y=#H 89@B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@ @Y=#LB c @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'Ј@ @Y=#LB`g @Y=#PB@g @Y=#TB d @Y=#XBc x@Y=#<B` @Y=#PBp@X?#L00 H$D00 X <00 hBPP! Be p*!B xX8`zF pY=#80 e p !B p8  8@e p$pX p $`x1 88`t xzF pX>#80  x<  pp<0#@ @Y=#H 89`B @Y=#LB pY=#8 880B @Y=#PB pY?#80#ep*! ~Fe p,!zFg Y># c h$80 x !DBPP! x@Y=#<B` @Y=#@B pPY=#8  pX8 zF p X>#80 89B @Y=#LB b @Y=#PB p`Y=#80 e p*!B @80 P P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@ @Y=#LB c @Y=#PB p`Y=#80 x !PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'P@ @Y=#LB pX>#p800 0` H 0 PP! Be p(!@|F<PzF pX>#`800`0$ ( @Y=#XB` @Y=#@B p X>#80  p p<0# @Y=#HB` p$`8000zFY>#@zFY>#PzFxX?#`zFp X>#D00 H <00 BPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#@ @Y=#H 89B @Y=#LB pPY=#8 8,e p(!zF ppX @Y=#TBf @Y=#XBpY=#DB x80 PP! Be p!B xX8zF pY=#80 @e p$!B p8 80zF pX!80  p`8r B@'0@ @Y=#P 8,0<pp1`t xzF pX>#80  x<  pp<0#~@ @Y=#H 8 9B @Y=#LB c @Y=#PB p`Y=#80 x@!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@}@ @Y=#LB d @Y=#PB p`Y=#80 x`!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'|@ @Y=#LB f @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'z@ @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'y@ @Y=#LBg @Y=#PBg @Y=#XB`c x@Y=#<B@d @Y=#@B d @Y=#XBf x@Y=#<B` @Y=#XBp@X?#T00 H(L00 X$D00 h <00 xBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#w@ @Y=#H 89B @Y=#LB c @Y=#PB p`Y=#80 x@!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@v@ @Y=#LB d @Y=#PB p`Y=#80 x`!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'u@ @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'s@ @Y=#LB f @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'r@ @Y=#LBg @Y=#PBg @Y=#XB`c x@Y=#<B@d @Y=#@B d @Y=#XBf x@Y=#<B` @Y=#XBp@X?#T00 H(L00 X$D00 h <00 xBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#p@ @Y=#H 89@B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@o@ @Y=#LB c @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'n@ @Y=#LB`g @Y=#PB@g @Y=#TB d @Y=#XBc x@Y=#<B` @Y=#PBp@X?#L00 H$D00 X <00 hBPP! Be p*!B xX8`zF pY=#80 e p !B p8  8@e p$pX p $`x1 88`t xzF pX>#80  x<  pp<0#@l@ @Y=#H 89@B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'j@ @Y=#LB c @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'i@ @Y=#LB`g @Y=#PB@g @Y=#TB d @Y=#XBc x@Y=#<B` @Y=#PBp@X?#L00 H$D00 X <00 hBPP! Be p*!B xX8`zF pY=#80 e p !B p8  8@e p$pX p $`x1 88`t xzF pX>#80  x<  pp<0#g@ @Y=#H 89@B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'f@ @Y=#LB f @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'`e@ @Y=#LB`g @Y=#PB@g @Y=#TB d @Y=#XBf x@Y=#<B` @Y=#PBp@X?#L00 H$D00 X <00 hBPP! Be p*!B xX8`zF pY=#80 e p !B p8  8@e p$pX p $`x1 88`t xzF pX>#80  x<  pp<0#c@ @Y=#H 8 9B @Y=#LB c @Y=#PB p`Y=#80 x@!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'Pb@ @Y=#LB d @Y=#PB p`Y=#80 x`!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'a@ @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'_@ @Y=#LB f @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'^@ @Y=#LB p`Y=#80  p!`800`0  @Y=#PB p`Y?#80#0@ @Y=#TBe p$p<0# @Y=#XBg x@Y=#<Bg @Y=#@Bc @Y=#HBd @Y=#LB`d x@Y=#<B@f @Y=#@B ` x@Y=#<Ba x@Y=#<B p`Y?#80 a<\00 H,T00 X(L00 h$D00 x BPP! B@e p$!B xX80zF pY=#80 e p(!B p8  8e p*pX p $`x1 88`t xzF pX>#80  x<  pp<0#[@ @Y=#H 8$9B @Y=#LB` @Y=#PB p`Y=#80  p@!`800PzFH!Y>#`zF p`Y=#80 x!zFpX!<00 pBP P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r B@'PZ@ @Y=#TB f @Y=#XB p`Y=#80 x!zFpX!<00 pBP P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r B@'Y@ @Y=#TBg @Y=#XB`g x@Y=#<B@` @Y=#@B d @Y=#TBf @Y=#XB` @Y=#TBp@X?#P00 H&H00 X"@00 h800PP! Be p,!B xX8zFx pY=#80 e p !B p8  8@e p$pX p $`x1 88`t xzF pX>#80  x<  pp<0#0W@ @Y=#H 8(90B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'U@ @Y=#LB e @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'T@ @Y=#LB@c @Y=#PB d @Y=#TBe @Y=#XB` @Y=#LBp@X?#H00 H"@00 X800PP! Be p(!B xX8PzF pY=#80 e p,!B p8  8e ppX p $`x1 88`t xzF pX>#80  x<  pp<0#R@ @Y=#H 8,90B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'Q@ @Y=#LB e @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'`P@ @Y=#LB@c @Y=#PB d @Y=#TBe @Y=#XB` @Y=#LBp@X?#H00 H"@00 X800PP! Be p(!B xX8PzF pY=#80 e p,!B p8  8e ppX p $`x1 88`t xzF pX>#80  x<  pp<0#N@ @Y=#H 8090B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'`M@ @Y=#LB e @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@' L@ @Y=#LB@c @Y=#PB d @Y=#TBe @Y=#XB` @Y=#LBp@X?#H00 H"@00 X800PP! Be p(!B xX8PzF pY=#80 e p,!B p8  8e ppX p $`x1 88`t xzF pX>#80  x<  pp<0#pJ@ @Y=#H 8490B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@' I@ @Y=#LB e @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'G@ @Y=#LB@c @Y=#PB d @Y=#TBe @Y=#XB` @Y=#LBp@X?#H00 H"@00 X800PP! Be p(!B xX8PzF pY=#80 e p,!B p8  8e ppX p $`x1 88`t xzF pX>#80  x<  pp<0#0F@ @Y=#H 8890B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'D@ @Y=#LB e @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'C@ @Y=#LB@c @Y=#PB d @Y=#TBe @Y=#XB` @Y=#LBp@X?#H00 H"@00 X800PP! Be p(!B xX8PzF pY=#80 e p,!B p8  8e ppX p $`x1 88`t xzF pX>#80  x<  pp<0#A@ @Y=#H 8<9B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@@ @Y=#LB e @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'`?@ @Y=#LBe @Y=#PB p`Y=#80  p@!`800PzFX?#`zF`Y>#zFx Y>#zF@Y>#@zFx X?#PzFp@X?#L00 H$D00 X <00 hBPP! Be p,!B xX8zFx pY=#80 e p !B p8  8@e p$pX p $`x1 88`t xzF pX>#80  x<  pp<0#`=@ @Y=#H 8@9B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'<@ @Y=#LB c @Y=#PBd @Y=#TB` @Y=#XBp@X?#D00 H <00 XBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#:@ @Y=#H 8D90B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'09@ @Y=#LB c @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'7@ @Y=#LB@c @Y=#PB d @Y=#TBc @Y=#XB` @Y=#LBp@X?#H00 H"@00 X800PP! Be p(!B xX8PzF pY=#80 e p,!B p8  8e ppX p $`x1 88`t xzF pX>#80  x<  pp<0#@6@ @Y=#H 8H9B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'4@ @Y=#LB c @Y=#PBd @Y=#TB` @Y=#XBp@X?#D00 H <00 XBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#`3@ @Y=#H 8L9B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'2@ @Y=#LB c @Y=#PBd @Y=#TB` @Y=#XBp@X?#D00 H <00 XBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#0@ @Y=#H 8P9` B @Y=#LB` @Y=#PB p`Y=#80  p@!`800PzFHY>#`zF p`Y=#80 x!zFpX!<00 pBP P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r B@'.@ @Y=#TB p`Y=#80  p!`800p0 X @Y=#XBe p$p<0#ep!|Fe p !zF p8B@e p$!B @80 P P!p@  p$`800 p H 0` H R0zF pY=#80 e p(!B p8 8PzF pX!80  p`8r B@'@-@ @Y=#XB f x@Y=#<B p`Y=#80 x!zFpX!<00 pBP P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r@B@',@ @Y=#TB p`Y?#80#ep,!B|Fe p!zF p:Be p !B @80 P P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r B@'*@ @Y=#TB c @Y=#XB p`Y=#80 x !zFpX!<00 pBP P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r B@'`)@ @Y=#TB c @Y=#XB p`Y=#80 x@!zFpX!<00 pBP P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r B@' (@ @Y=#TB d @Y=#XB p`Y=#80 x`!zFpX!<00 pBP P!p@  p$`800 p H 0` H R zF pY=#80 `e p&!B p8 8@zF pX!80  p`8r B@'&@ @Y=#TBg @Y=#XBg x@Y=#<B` @Y=#@Ba @Y=#HB`f x@Y=#<B@f @Y=#@B ` x@Y=#<Ba x@Y=#<B pX>#`800azFx xX>#0Bp`!`<00 zFx xX>#0Bp!`<00 zFx xY>#0Bp!`<00 zFxp`Y?#0Bc pp<0#@.X00 P*P00 `&H00 p"@00PP! B@e p$!B xX80zF pY=#80 e p(!B p8  8e p*pX p $`x1 88`t xzF pX>#80  x<  pp<0#$@ @Y=#H 8X9PB @Y=#LBd @Y=#PB p`Y=#80  p`!`800`04 pp<0#ep*!~Fe p,!zF p8B 0`04 pp<0#e p!zF p;B 0`0  @Y=#@Be p$p<0#@ep$!°|F`e p&!zF p8Be p(!B @80 P P!p@  p$`800 p H 0` H RPzF pY=#80 e p,!B p8 8zFx pX!80  p`8r B@'!@ @Y=#@B b @Y=#HB p`Y=#80 x!0zFpX!<00 pBP P!p@  p$`800 p H 0` H R@zF pY=#80 e p*!B p8 8`zF pX!80  p`8r B@'P @ x@Y=#<Bc @Y=#@B p`Y=#80  p!`800 zFxY?#0zF p`Y=#80  p !`800@zFxX?#PzF p`Y=#80  p@!`800`04 pp<0#0@ @Y=#XB p`Y?#80# x@Y=#<Bg @Y=#@Bg @Y=#HBe @Y=#LBd x@Y=#<B`a @Y=#@B@b x@Y=#<B ` @Y=#@Ba x@Y=#<B pX?#`800azFxpX?#0Ba pp<0#e p!~Fax!80 8zFx xY?#0Bp!`<00 \00 H,T0 (L00 X$D00 h BPP! B@e p$!B xX80zF pY=#80 e p(!B p8  8e p*pX p $`x1 88`t xzF pX>#80  x<  pp<0#@ @Y=#H 8l9B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'`@ @Y=#LB c @Y=#PBd @Y=#TB` @Y=#XBp@X?#D00 H <00 XBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#@ @Y=#H 8T9B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@ @Y=#LB c @Y=#PBd @Y=#TB` @Y=#XBp@X?#D00 H <00 XBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#@ @Y=#H 8`9PB @Y=#LB pX?#800PP! Be p(!B xX8PzF pY=#80 e p,!B p8  8e ppX p $`x1 88`t xzF pX>#80  x<  pp<0#@ @Y=#H 8d9B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@@ @Y=#LB c @Y=#PBd @Y=#TB` @Y=#XBp@X?#D00 H <00 XBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#@ @Y=#H 8h9PB @Y=#LB pX?#800PP! Be p(!B xX8PzF pY=#80 e p,!B p8  8e ppX p $`x1 88`t xzF pX>#80  x<  pp<0#P@ @Y=#H 8\9B @Y=#LB g @Y=#PBg @Y=#TB` @Y=#XBp@X?#D00 H <00 XBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#@ @Y=#H 8p9B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'`@ @Y=#LB c @Y=#PBd @Y=#TB` @Y=#XBp@X?#D00 H <00 XBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0# @ @Y=#H 8t9B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@' @ @Y=#LB c @Y=#PBd @Y=#TB` @Y=#XBp@X?#D00 H <00 XBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0# @ @Y=#H 8x90B @Y=#LB d @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@ @Y=#LB e @Y=#PB p`Y=#80 x!PzFpX!<00 pBP P!p@  p$`800 p H 0` H R`zF pY=#80 e p !B p8 8 zF pX!80  p`8r B@'`@ @Y=#LBa @Y=#PB p`Y=#80  p@!`800PzFxX?#`zF p`Y=#80  p`!`800zFxHX>#zF p`Y=#80 x! zFpX!<00 pBP P!p@  p$`800 p H 0` H R0zF pY=#80 e p(!B p8 8PzF pX!80  p`8r B@'@ @Y=#XBc x@Y=#<Bd @Y=#@B`e @Y=#HB@a @Y=#XB b x@Y=#<Bb @Y=#XB` @Y=#XBp@X?#T00 H(L00 X$D00 h <00 xBPP! Be p!B xX8zF pY=#80 @e p$!B p8  8`e p&pX p $`x1 88`t xzF pX>#80  x<  pp<0#@ @Y=#H 090B @Y=#L 0|!p@ @Y=#PB d @Y=#TB p`Y=#80 x!`zFpX!<00 pBP P!p@  p$`800 p H 0` H RzFx pY=#80 e p !B p8 8 zF pX!80  p`8r B@'@@ @Y=#LBf @Y=#PB p`Y=#80  p!`800PzFxY?#`zF p`Y=#80  p@!`800zFxX?#zF Y>#@zF X?#PzF@X?#`zFxY?#@zFpY?#L00 H$D00 X <00 hBPP! Be p*!B xX8`zF pY=#80 e p !B p8  8@e p$pX p $`x1 88`t xzF pX>#80  x<  pp<0#@! XU `X!% .? : ; ' I@ : ; I 4: ; I $ >  I' II : ; I  : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' !I/: ;  : ; (  : ;for_init.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)for_init?,outsys7}outzone8}outparm9}outdatum:}fn27;}fn83<}iflg=}for_trans>~zone@~azimuthA~alfB~angleC~lon1D~lon2E~lat1F~lat2G~center_longH~center_latI~hJ~lon_originK~lat_originL~r_majorM~r_minorN~scale_factorOfalse_eastingPfalse_northingQshape_mRshape_nSstartTtimeUradiusVtmpdatumW@pathXHsatnumYPmodeZXsat_ratio[`dzone\hdjustify]pthing_xiflg64aintdoublecharlong int size_t long unsigned int __u_char 2unsigned char __u_short!Tshort unsigned int __u_int"yunsigned int __u_long#  __u_quad_t$  __quad_t% __int8_t&signed char __uint8_t'2 __int16_t(short int __uint16_t)T __int32_t* __uint32_t+y __int64_t, __uint64_t-  __qaddr_t.r __dev_t0O __uid_t1, __gid_t2, __ino_t3O __ino64_t4O __mode_t5, __nlink_t6O __off_t7> __off64_t8> __loff_t9> __pid_t: __ssize_t;> __rlim_t> __blkcnt64_t?> __fsblkcnt_t@O __fsblkcnt64_tAO __fsfilcnt_tBO __fsfilcnt64_tCO __id_tD, I __valH#  long unsigned int __fsid_tI __daddr_tL __caddr_tM __time_tN __useconds_tOy __suseconds_tP __swblk_tQ __clock_tR __key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t_ __t_scalar_tf __t_uscalar_tgy __intptr_tj __socklen_tmy__sched_paramE __sched_priorityF#_pthread_fastlock __status# __spinlock#_pthread_descr_struct _pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-R# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2 #( __stacksize3#0 pthread_attr_t4 - < __c_lock:# __c_waiting;# pthread_cond_t< ^ C __dummyB# pthread_condattr_tCC pthread_key_tFy (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockR# pthread_mutex_tS 1 Z __mutexkindY# pthread_mutexattr_tZ pthread_once_t^ pthread_t  _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain#h_fileno#p_blksize#t_old_offset#x_cur_column"T#_vtable_offset##_shortbuf$#_lock(&#_offset1#__pad17 #__pad28 #_mode:#_unused2<(# _IO_marker _next # _sbuf# _pos# s &  8 + FILE-s __FILE7s wchar_twint_t8yJ__wchHb__wchbI   K __countE# __valueJq# __mbstate_tK   __pos # __state # _G_fpos_t  L # __pos !# __state "# _G_fpos64_t #!: &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR m 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {,#0 __end_fct |>#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X__gconv_loaded_objectm!__gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #02~__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i # __data j # __next k#  2~   ,>2 __gconv_fct HW __gconv_init_fct Ku __gconv_end_fct L2 __gconv_trans_fct U~ __gconv_trans_context_fct Z __gconv_trans_query_fct ^# __gconv_trans_init_fct aGMbb __gconv_trans_end_fct b__gconv_info __nsteps # __steps # __data # !  __gconv_t  .H 4 __cd 2# __data 3!#UH 5__cd /__combined 4 _G_iconv_t 5. _G_int16_t 7 _G_int32_t 8 _G_uint16_t 9T _G_uint32_t :y __gnuc_va_list + _IO_jump_t_IO_lock_tD__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEAs _IO_FILE_plus__io_read_fnXz% __io_write_fna% __io_seek_fni __io_close_fnl fpos_tPe _IEEE__SVID__XOPEN__POSIX__ISOC_ _LIB_VERSION_TYPE -exception( type #name #arg1 #arg2 #retval #  for_init.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h >$1,+,-+++,++++++,+++++++++,+++++++++++++,++++++++,++++++,++++++-++++++,++++++++,++++++,++++++,++++++,++++++,++++++,++++++,++++++,+++++,++++++,+++++,+++++,+++++++++++ ,++++++,+++++,+++++,++++,+++++,++++,++++,+++++,+++++,+++++++,+++++-+++ @U>cܥL@x#?G*a8for_init, GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@ !,`2`7``EQbn8  pPH '00W;        !+2=ES]dpy "-5@HS[gpz  (4=IR\cnvfor_init.cfor_initsphdzpakszceaforintceaforbceaforintbceaforcalc_utm_zoneutmforintutmforstplnforintstplnforalberforintalberforlamccforintlamccformerforintmerforpsforintpsforpolyforintpolyforeqconforinteqconfortmforinttmforsterforintsterforlamazforintlamazforazimforintazimforgnomforintgnomfororthforintorthforgvnspforintgvnspforsinforintsinforequiforintequiformillforintmillforvandgforintvandgforomerforintomerforsomforintsomforhamforinthamforrobforintrobforgoodforintgoodformolwforintmolwforimolwforintimolwforalconforintalconforwivforintwivforwviiforintwviiforobleqforintobleqforisinusforinitisinusforI"III**I *2* Ir R I0 *B *R Ip * * IRII**I***I*BI2RIBRI**"I@*R*bI**I**RIBRI**" I@ *R *b!I!*!*"I"*"*R$IB%R%I&*&*"'I@'*R'*(I)R2*IP**b**r+I+*+*,I -R!.I.*.*/I/*/*B1I"22R#2I2*3*4I04*B4*R5Ip5*5*6I6*6*9I$9R%:I:*;*<I0<*B<*=I&>R'B?I`?*r?*@I@*@*AI(BR)CIC*C*DID*D*2FI*"GR+GIG*G*II I*2I*rJI,bKR-LI L*2L*BMI`M*rM*NI.OR/BPI`P*rP*QIQ*Q*RI0SR1TIT*T*UIU*U*WI2rXR3YI0Y*BY*bZI4R[R5[I\*"\*2]IP]*b]*^I6_R72`IP`*b`*aI8rbR9cI0c*Bc*bdI:ReR;2fIPf*bf*gIh*h*"iI@i*Ri*jIj*j*kIk*k*mI m*2m*BnI`n*rn*pI<qR=sIs*s*tIt*u*2xI>"yR?yIy*y*{I@|RA|I|*|*}IB~RCRIDBREI**2IF"RGIHRI2IJ"RK†I**ILRMI*҉*INROI**I**I**2IP"RQI**IRҕRS% %' ''' '__ _%%'inv_init.o/ 1082129508 59100 998 100644 61736 ` ELF2@@XI0BbbfzFx pY=#9 #f p !@zF zF pY=#9 #`f p&!zF@zF pX>#(90#f p*!@|F`zF p@X>#890#f p!BzF x X!B 8@f p$p; sB Y=#LB pY=#80  0`$ B Y=#PB pY=#80  0`0$ B Y=#TB pY=#80  p !`800`$ `B Y=#XB pY=#80  p !`800`0$  xY=#<Bg p'p< # Y=#@B pY=#8  8,`f p&!@zF` X?#A~Fp<B"!BPP!@ Y=#P 89 B Y=#TB pY=#80  0`$ B Y=#XB pY=#80  0`0$ B xY=#<B pY=#80  p !`800`$ `B Y=#@B pY=#80  p !`800`0$  Y=#HBg p'p< #0@ Y=#LBg pP$p< # Y=#PB pY=#8  8,f p*!@zF` X?#A~Fp<B"!BPP!@ Y=#XB pY=#8  8,f p!@zF` X?#A~Fp<B"!BPP! Y=#@Ba Y=#HB pY=#80  p!`8000zFxX?#@zF pY=#80  p!`800 f p*p; s@B Y=#XB e xY=#<B pY=#80 x!zFp X!<00 pBP P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r B@'Ѝ@ Y=#TB d Y=#XB pY=#80 x!zFp X!<00 pBP P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r B@'@ Y=#TB`` Y=#XB@` xY=#<B e Y=#@Bd Y=#PBa Y=#TBpX?#L00 H$D00 X <00 hBPP! Bf p,!@B xX8zFx p X>#80 f p !@B p8  8@f p$pX p $`x1 88`t xzF p@X>#80  x<  pp<0#Њ@ Y=#H 89@B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@ Y=#LB d Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@@ Y=#LB`` Y=#PB@` Y=#TB e Y=#XBd xY=#<Ba Y=#PBpX?#L00 H$D00 X <00 hBPP! Bf p*!@B xX8`zF p X>#80 f p !@B p8  8@f p$pX p $`x1 88`t xzF p@X>#80  x<  pp<0#@ Y=#H 89`B Y=#LB pY=#8 880B Y=#PB pY?#80#fp*! ~Ff p,!@zF` X?# b h$80 x !DBPP! xY=#<Ba Y=#@B pY=#8  pX8 zF p`X>#80 89B Y=#LB c Y=#PB pY=#80 f p*!@B @80 P P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@ Y=#LB d Y=#PB pY=#80 x !PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@ Y=#LB pX>#p800 0` H 0 PP! Bf p(!|F<PzF p Y>#`800`0$ ( Y=#XBa Y=#@B p`X>#80  p p<0# Y=#HBa p$`8000zFX?#@zF X?#PzFx@X?#`zFp`X>#D00 H <00 BPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#@ Y=#H 89B Y=#LB pY=#8 8,f p(!zF ppX Y=#TBg Y=#XBpX>#DB x80 PP! Bf p!@B xX8zF p X>#80 @f p$!@B p8 80zF p X!80  p`8r B@'~@ Y=#P 8,0<pp1`t xzF p@X>#80  x<  pp<0#~@ Y=#H 8 9B Y=#LB d Y=#PB pY=#80 x@!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'|@ Y=#LB e Y=#PB pY=#80 x`!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'p{@ Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'0z@ Y=#LB g Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'x@ Y=#LB` Y=#PB` Y=#XB`d xY=#<B@e Y=#@B e Y=#XBg xY=#<Ba Y=#XBpX?#T00 H(L00 X$D00 h <00 xBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#w@ Y=#H 89B Y=#LB d Y=#PB pY=#80 x@!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'u@ Y=#LB e Y=#PB pY=#80 x`!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'pt@ Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'0s@ Y=#LB g Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'q@ Y=#LB` Y=#PB` Y=#XB`d xY=#<B@e Y=#@B e Y=#XBg xY=#<Ba Y=#XBpX?#T00 H(L00 X$D00 h <00 xBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#p@ Y=#H 89@B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'n@ Y=#LB d Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'pm@ Y=#LB`` Y=#PB@` Y=#TB e Y=#XBd xY=#<Ba Y=#PBpX?#L00 H$D00 X <00 hBPP! Bf p*!@B xX8`zF p X>#80 f p !@B p8  8@f p$pX p $`x1 88`t xzF p@X>#80  x<  pp<0#k@ Y=#H 89@B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'`j@ Y=#LB d Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@' i@ Y=#LB`` Y=#PB@` Y=#TB e Y=#XBd xY=#<Ba Y=#PBpX?#L00 H$D00 X <00 hBPP! Bf p*!@B xX8`zF p X>#80 f p !@B p8  8@f p$pX p $`x1 88`t xzF p@X>#80  x<  pp<0#`g@ Y=#H 89@B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'f@ Y=#LB g Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'d@ Y=#LB`` Y=#PB@` Y=#TB e Y=#XBg xY=#<Ba Y=#PBpX?#L00 H$D00 X <00 hBPP! Bf p*!@B xX8`zF p X>#80 f p !@B p8  8@f p$pX p $`x1 88`t xzF p@X>#80  x<  pp<0#c@ Y=#H 8 9B Y=#LB d Y=#PB pY=#80 x@!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'a@ Y=#LB e Y=#PB pY=#80 x`!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'`@ Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@_@ Y=#LB g Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'^@ Y=#LB pY=#80  p!`800`0  Y=#PB p`Y?#80#0@ Y=#TBe p$p<0# Y=#XB` xY=#<B` Y=#@Bd Y=#HBe Y=#LB`e xY=#<B@g Y=#@B a xY=#<Bb xY=#<B p`Y?#80 a<\00 H,T00 X(L00 h$D00 x BPP! B@f p$!@B xX80zF p X>#80 f p(!@B p8  8f p*pX p $`x1 88`t xzF p@X>#80  x<  pp<0#P[@ Y=#H 8$9B Y=#LBa Y=#PB pY=#80  p@!`800PzFHaY>#`zF pY=#80 x!zFp X!<00 pBP P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r B@'Y@ Y=#TB g Y=#XB pY=#80 x!zFp X!<00 pBP P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r B@'X@ Y=#TB` Y=#XB`` xY=#<B@a Y=#@B e Y=#TBg Y=#XBa Y=#TBpX?#P00 H&H00 X"@00 h800PP! Bf p,!@B xX8zFx p X>#80 f p !@B p8  8@f p$pX p $`x1 88`t xzF p@X>#80  x<  pp<0#V@ Y=#H 8(90B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'PU@ Y=#LB f Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'T@ Y=#LB@b Y=#PB e Y=#TBf Y=#XBa Y=#LBpX?#H00 H"@00 X800PP! Bf p(!@B xX8PzF p X>#80 f p,!@B p8  8f ppX p $`x1 88`t xzF p@X>#80  x<  pp<0#`R@ Y=#H 8,90B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'Q@ Y=#LB f Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'O@ Y=#LB@b Y=#PB e Y=#TBf Y=#XBa Y=#LBpX?#H00 H"@00 X800PP! Bf p(!@B xX8PzF p X>#80 f p,!@B p8  8f ppX p $`x1 88`t xzF p@X>#80  x<  pp<0# N@ Y=#H 8090B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'L@ Y=#LB f Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'K@ Y=#LB@b Y=#PB e Y=#TBf Y=#XBa Y=#LBpX?#H00 H"@00 X800PP! Bf p(!@B xX8PzF p X>#80 f p,!@B p8  8f ppX p $`x1 88`t xzF p@X>#80  x<  pp<0#I@ Y=#H 8490B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'H@ Y=#LB f Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'PG@ Y=#LB@b Y=#PB e Y=#TBf Y=#XBa Y=#LBpX?#H00 H"@00 X800PP! Bf p(!@B xX8PzF p X>#80 f p,!@B p8  8f ppX p $`x1 88`t xzF p@X>#80  x<  pp<0#E@ Y=#H 8890B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'PD@ Y=#LB f Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'C@ Y=#LB@b Y=#PB e Y=#TBf Y=#XBa Y=#LBpX?#H00 H"@00 X800PP! Bf p(!@B xX8PzF p X>#80 f p,!@B p8  8f ppX p $`x1 88`t xzF p@X>#80  x<  pp<0#`A@ Y=#H 8<9B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@@ Y=#LB f Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'>@ Y=#LBf Y=#PB pY=#80  p@!`800PzFX?#`zFY>#zFx`Y>#zFY>#@zFx`X?#PzFpX?#L00 H$D00 X <00 hBPP! Bf p,!@B xX8zFx p X>#80 f p !@B p8  8@f p$pX p $`x1 88`t xzF p@X>#80  x<  pp<0#<@ Y=#H 8@9B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@';@ Y=#LB b Y=#PBe Y=#TBa Y=#XBpX?#D00 H <00 XBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#9@ Y=#H 8D90B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'8@ Y=#LB d Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'`7@ Y=#LB@b Y=#PB e Y=#TBd Y=#XBa Y=#LBpX?#H00 H"@00 X800PP! Bf p(!@B xX8PzF p X>#80 f p,!@B p8  8f ppX p $`x1 88`t xzF p@X>#80  x<  pp<0#5@ Y=#H 8H9B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'`4@ Y=#LB b Y=#PBe Y=#TBa Y=#XBpX?#D00 H <00 XBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#2@ Y=#H 8L9B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'1@ Y=#LB b Y=#PBe Y=#TBa Y=#XBpX?#D00 H <00 XBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#/@ Y=#H 8P9` B Y=#LBa Y=#PB pY=#80  p@!`800PzFHY>#`zF pY=#80 x!zFp X!<00 pBP P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r B@'`.@ Y=#TB pY=#80  p!`800p0 X Y=#XBe p$p<0#fp!|Ff p !@zF p8B@f p$!@B @80 P P!p@  p$`800 p H 0` H R0zF p X>#80 f p(!@B p8 8PzF p X!80  p`8r B@',@ Y=#XB g xY=#<B pY=#80 x!zFp X!<00 pBP P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r@B@'p+@ Y=#TB p`Y?#80#fp,!±|Ff p!@zF p:Bf p !@B @80 P P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r B@'*@ Y=#TB d Y=#XB pY=#80 x !zFp X!<00 pBP P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r B@'(@ Y=#TB d Y=#XB pY=#80 x@!zFp X!<00 pBP P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r B@''@ Y=#TB e Y=#XB pY=#80 x`!zFp X!<00 pBP P!p@  p$`800 p H 0` H R zF p X>#80 `f p&!@B p8 8@zF p X!80  p`8r B@'P&@ Y=#TB` Y=#XB` xY=#<Ba Y=#@Bb Y=#HB`g xY=#<B@g Y=#@B a xY=#<Bb xY=#<B pX>#`800azFx x Y>#0Bp`!`<00 zFx xY>#0Bp!`<00 zFx x@Y>#0Bp!`<00 zFxp`Y?#0Bc pp<0#@.X00 P*P00 `&H00 p"@00PP! B@f p$!@B xX80zF p X>#80 f p(!@B p8  8f p*pX p $`x1 88`t xzF p@X>#80  x<  pp<0##@ Y=#H 8X9B Y=#LBd Y=#PB pY=#80  p`!`800`04 pp<0#fp*!~Ff p,!@zF p8B 0`04 pp<0#f p!@zF p;B 0`0  Y=#@Be p$p<0#@fp$!|F`f p&!@zF p8Bf p(!@B @80 P P!p@  p$`800 p H 0` H RPzF p X>#80 f p,!@B p8 8zFx p X!80  p`8r B@'!@ Y=#@B c Y=#HB pY=#80 x!0zFp X!<00 pBP P!p@  p$`800 p H 0` H R@zF p X>#80 f p*!@B p8 8`zF p X!80  p`8r B@'@ xY=#<Bd Y=#@B pY=#80  p!`800 zFxY?#0zF pY=#80  p !`8000@ Y=#PB p`Y?#80# Y=#TB` Y=#XB` xY=#<Be Y=#@Bd Y=#HB`c xY=#<B@c Y=#@B a xY=#<Bb xY=#<B pY?#`800azFxp`Y?#0Ba pp<0#fp!@~Fap!`<00 \00 H,T0 (L00 X$D00 h BPP! B@f p$!@B xX80zF p X>#80 f p(!@B p8  8f p*pX p $`x1 88`t xzF p@X>#80  x<  pp<0#@ Y=#H 8l9B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'`@ Y=#LB b Y=#PBe Y=#TBa Y=#XBpX?#D00 H <00 XBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#@ Y=#H 8T9B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@ Y=#LB b Y=#PBe Y=#TBa Y=#XBpX?#D00 H <00 XBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#@ Y=#H 8`9PB Y=#LB pX?#800PP! Bf p(!@B xX8PzF p X>#80 f p,!@B p8  8f ppX p $`x1 88`t xzF p@X>#80  x<  pp<0#@ Y=#H 8d9B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@@ Y=#LB b Y=#PBe Y=#TBa Y=#XBpX?#D00 H <00 XBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#@ Y=#H 8h9PB Y=#LB pX?#800PP! Bf p(!@B xX8PzF p X>#80 f p,!@B p8  8f ppX p $`x1 88`t xzF p@X>#80  x<  pp<0#P@ Y=#H 8\9B Y=#LB ` Y=#PB` Y=#TBa Y=#XBpX?#D00 H <00 XBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#@ Y=#H 8p9B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'`@ Y=#LB b Y=#PBe Y=#TBa Y=#XBpX?#D00 H <00 XBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0# @ Y=#H 8t9B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@' @ Y=#LB b Y=#PBe Y=#TBa Y=#XBpX?#D00 H <00 XBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0# @ Y=#H 8x90B Y=#LB e Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@ Y=#LB f Y=#PB pY=#80 x!PzFp X!<00 pBP P!p@  p$`800 p H 0` H R`zF p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'`@ Y=#LBc Y=#PB pY=#80  p@!`800PzFxX?#`zF pY=#80  p`!`800zFxHX>#zF pY=#80 x! zFp X!<00 pBP P!p@  p$`800 p H 0` H R0zF p X>#80 f p(!@B p8 8PzF p X!80  p`8r B@'@ Y=#XBb xY=#<Be Y=#@B`f Y=#HB@c Y=#XB c xY=#<Bb Y=#XBa Y=#XBpX?#T00 H(L00 X$D00 h <00 xBPP! Bf p!@B xX8zF p X>#80 @f p$!@B p8  8`f p&pX p $`x1 88`t xzF p@X>#80  x<  pp<0#@ Y=#H 090B Y=#L 0|!p@ Y=#PB e Y=#TB pY=#80 x!`zFp X!<00 pBP P!p@  p$`800 p H 0` H RzFx p X>#80 f p !@B p8 8 zF p X!80  p`8r B@'@@ Y=#LBg Y=#PB pY=#80  p!`800PzFxY?#`zF pY=#80  p@!`800zFxX?#zF`Y>#@zF`X?#PzFX?#`zFxY?#@zFpY?#L00 H$D00 X <00 hBPP! Bf p*!@B xX8`zF p X>#80 f p !@B p8  8@f p$pX p $`x1 88`t xzF p@X>#80  x<  pp<0#@! XU `X!% .? : ; ' I@ : ; I 4: ; I $ >  I' II : ; I  : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' !I/: ;  : ; (  : ;inv_init.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)inv_init@,insys7}inzone8}inparm9}indatum:}fn27;}fn83<~iflg=~inv_trans>~zoneA~azimuthB~angleC~alfD~lon1E~lon2F~lat1G~lat2H~center_longI~center_latJ~hK~lat_originL~lon_originM~r_majorNr_minorOscale_factorPfalse_eastingQfalse_northingRradiusSshape_mTshape_nUtimeW@pathXHsatnumYPmodeZXtmpdatum[`sat_ratio\hdzone]pdjustify^xthing`iflg64bintdoublecharlong int size_tlong unsigned int __u_char unsigned char __u_short!>short unsigned int __u_int"cunsigned int __u_long# __u_quad_t$ __quad_t% __int8_t&signed char __uint8_t' __int16_t(short int __uint16_t)> __int32_t* __uint32_t+c __int64_t, __uint64_t- __qaddr_t.\ __dev_t09 __uid_t1 __gid_t2 __ino_t39 __ino64_t49 __mode_t5 __nlink_t69 __off_t7( __off64_t8( __loff_t9( __pid_t: __ssize_t;( __rlim_t<9 __rlim64_t=9 __blkcnt_t>( __blkcnt64_t?( __fsblkcnt_t@9 __fsblkcnt64_tA9 __fsfilcnt_tB9 __fsfilcnt64_tC9 __id_tD I __valH#  long unsigned int __fsid_tI __daddr_tL __caddr_tM __time_tN __useconds_tOc __suseconds_tP __swblk_tQ __clock_tR __key_tS __clockid_tV __timer_tY __ipc_pid_t\ __blksize_t_ __t_scalar_tf __t_uscalar_tgc __intptr_tj __socklen_tmcn__sched_paramE __sched_priorityF#_pthread_fastlock __status# __spinlock#_pthread_descr_struct _pthread_descr# __pthread_attr_s8* __detachstate+# __schedpolicy,# __schedparam-<# __inheritsched.# __scope/# __guardsize0# __stackaddr_set1# __stackaddr2 #( __stacksize3#0 pthread_attr_t4  < __c_lock:n# __c_waiting;# pthread_cond_t< H C __dummyB# pthread_condattr_tC- pthread_key_tFc (S __m_reservedN# __m_countO# __m_ownerP# __m_kindQ# __m_lockRn# pthread_mutex_tSw  Z __mutexkindY# pthread_mutexattr_tZ pthread_once_t^ pthread_t _IO_FILE-_flags#_IO_read_ptr #_IO_read_end #_IO_read_base #_IO_write_base# _IO_write_ptr#(_IO_write_end#0_IO_buf_base#8_IO_buf_end#@_IO_save_base#H_IO_backup_base#P_IO_save_end#X_markers #`_chain #h_fileno#p_blksize#t_old_offset#x_cur_column">#_vtable_offset##_shortbuf$#_lock(#_offset1#__pad17 #__pad28 #_mode:#_unused2<# _IO_marker _next # _sbuf # _pos# ]   " + FILE-] __FILE7] wchar_twint_t8cJ__wchHL__wchbI   K __countE# __valueJ[# __mbstate_tK   __pos # __state # _G_fpos_t  6 # __pos !# __state "# _G_fpos64_t # $ &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR W 8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS__gconv_step` ? __shlib_handle r# __modname s# __counter u# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |(#8 __min_needed_from #@ __max_needed_from #D __min_needed_to #H __max_needed_to #L __stateful #P __data #X__gconv_loaded_objectW __gconv_step_data8 @ __outbuf # __outbufend # __flags # __invocation_counter # __internal_use # __statep # __state #( __trans #0h__gconv_trans_data( B __trans_fct g# __trans_context_fct h# __trans_end_fct i# __data j # __next k#  h  ( __gconv_fct HA __gconv_init_fct K_ __gconv_end_fct L| __gconv_trans_fct Uh __gconv_trans_context_fct Z __gconv_trans_query_fct ^  __gconv_trans_init_fct a17LL __gconv_trans_end_fct bo__gconv_info __nsteps # __steps # __data #   __gconv_t u H 4 __cd 2u# __data 3 #?H 5__cd /u__combined 4 _G_iconv_t 5 _G_int16_t 7 _G_int32_t 8 _G_uint16_t 9> _G_uint32_t :c __gnuc_va_list + _IO_jump_t_IO_lock_t.__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA] _IO_FILE_plus__io_read_fnXd~ __io_write_fna __io_seek_fni __io_close_fnl  fpos_tPO _IEEE__SVID__XOPEN__POSIX__ISOC_ _LIB_VERSION_TYPE exception( type #name #arg1 #arg2 #retval #  inv_init.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h ?$1,+,-+++,++++++,+++++++++,+++++++++++++,++++++++,++++++,++++++,++++++,++++++++,++++++,++++++,++++++,++++++,++++++,++++++,++++++,+++++,++++++,+++++,+++++,+++++++++++ ,+++++-+,+++++,+++++,++++,+++++,++++,++++,+++++,+++++,+++++++,+++++-+++ @U>cܥL@x#?G*a8inv_init,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!,Е2Е7Е`E0Qbn  p8H Po00; h H    !+2=ES]dpy "-5@HS[gpz  (4=IR\cnvinv_init.cinv_initsphdzpakszceainvintceainvbceainvintbceainvcalc_utm_zoneutminvintutminvstplninvintstplninvalberinvintalberinvlamccinvintlamccinvmerinvintmerinvpsinvintpsinvpolyinvintpolyinveqconinvinteqconinvtminvinttminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvintgvnspinvsininvintsininvequiinvintequiinvmillinvintmillinvvandginvintvandginvomerinvintomerinvsominvintsominvhaminvinthaminvrobinvintrobinvgoodinvintgoodinvmolwinvintmolwinvimolwinvintimolwinvalconinvintalconinvwivinvintwivinvwviiinvintwviiinvobleqinvintobleqinvisinusinvinitisinusinvI"III**I *2* Ir R I0 *B *R Ip * * IRII**I***I*BI2RIBRI**"I@*R*bI**I**RIBRI**" I@ *R *b!I!*!*"I"*"*R$IB%R%I&*&*"'I@'*R'*(I)R2*IP**b**r+I+*+*,I -R!.I.*.*/I/*/*B1I"22R#2I2*3*4I04*B4*R5Ip5*5*6I6*6*9I$9R%:I:*;*<I0<*B<*=I&>R'B?I`?*r?*@I@*@*AI(BR)CIC*C*DID*D*2FI*"GR+GIG*G*II I*2I*rJI,bKR-LI L*2L*BMI`M*rM*NI.OR/BPI`P*rP*QIQ*Q*RI0SR1TIT*T*UIU*U*WI2rXR3YI0Y*BY*bZI4R[R5[I\*"\*2]IP]*b]*^I6_R72`IP`*b`*aI8rbR9cI0c*Bc*bdI:ReR;2fIPf*bf*gIh*h*"iI@i*Ri*jIj*j*kIk*k*mI m*2m*BnI`n*rn*pI<qR=sIs*s*tIt*u*wI>xR?2yIPy*by*zI@r{RA|I0|*B|*b}IBR~RC~IDRERIp**IFRGIHRIIJRK2IP*b*ILrRMI0*B*bINRROI*"*2IP*b*I*"*IPRQRIp**RIRBRS% %'''''___%%'cproj.o/ 1082129508 59100 998 100644 41424 ` ELF2x@@(`0Bf  x ~F<~Fx pM?#90#7 p!B 7 0 0 `P F!`@ 7 p!~F p08037 0 0 `P F!`@ 7 p!B p0803P 000Bg   F`00` `$ 8 0F`$  F0@ p$`800F @FBP@!`@ 0  @0Bf @ x ~F<~F pI?#H803' p!B(~Fx H!~F pI?#' 0 p0 0` H ~FxH!~Fx H!~Fp H!p<00 0` H `0X 0 P@!`@ @B 0 P@!`@ `@ 0 0 3~F g!1~F  D3  @!<~F p G?#H803  p"!~F ( 0 p0  0`0$  xG?#<B G?#@B p G?#  0"p0 0` H ~Fx p`G?#`800 p0X p !~F 0`H 8 0 P@!`@ `@ 0 P @!@@  0" p0  @`@ ` H  0Xp!A~F p"!~F  p"!~F 8`800` H `0X @  0 P@!`@ 0@  p$800 0 0 P@!`@ `@ `H `0 X   H  P@ xG?#<B p G?#`800`0H 0 G?#0~F   $0L1  $B0-3~F g8!3|F D3  @!8<~F p N?#H803 8 p"!~F~Fx p N?#p800 0` H 0 `P F!`@ 8 p !@~F  8 0" p0  0`8$  xN?#<B p O?#`8000 @ N?#@B p`N?# 8 0" p0 8 @`@ ` H ~Fx x@O?#H8 N?#@B p@O?#80 8d!@ N?#DBp O?#~F<@<B@!PF!~FxxN?#~F pN?# 8 0"p0 0` H ~FxN?#~FxN?#~FpN?#p<00 0` H `0X  ~Fx N?#~F pN?#`800 p0X 8 p"!@~F 0`H 8 0 `PF!`@ `@ 0 `P F!@@ 8 p!~F 8 0 p H8 p !~F 0 ` H 8 p"!~F0 H0BPF!`@ 0@ 8p!@~F8 p !~F 0`0X @ 0 `PF!`@  @ 8p"!~F8 p !~F @800`PF!`@ `@  0X @ 8 0" 0 `PF!`@ `@ `H `0H ` H H~Fx O?#~Fx O?#~FpN?#p<00 0`0H  ~Fx pN?#`800 p  0`8 pB N?#@Bp@O?#~Fx@O?#~F p@O?#80  p!p<0#`H N?#DB p O?#`8000 p@ @$0 HR0BPF!~Fx p@N?#80  8@ O?#0~F` P $0L1  $B0)p0Bc  x ~F<~F p O?#H803 < p"!~F~Fx p@O?#80 ~F x`O?# < 0" p0  0` H ~Fx O?#~F p O?#800`PF!`@ p0H 0`8X H~F pN!80# xO?#<B pN!80 8<!@ O?#@B pO?#800`P F!`@ < p"!~F~FxxO?#~F pO?# < 0"p0 0` H ~Fx O?#~F pO?#`800 p0X < p"!@~F 0`H 8 0 `PF!`@ `@ < p!~F0 H0BP F!p@ < p !@~F 0` H 0 `PF!`@ p0H 0 p8X < p"!~F 0`0X H~FxO?#~FxO?#~FpO?#p<00 0`0H  ~Fx pO?#`800 p  0`8 pB O?#@BpN!~FxN!~F pN!80  p!p<0#@H O?#DB pO?#`8000 p@ @$0 HR0BPF!~Fx p@O?#80 ! 8@ 0UP `N!P90Bb   V@![<~F pV?#H803 [ p"!~F(~Fx p W?#X803[ p !~F0~F p`W?#(90#[ p!~F[ 8 `8 ~Fx pW?#80# V?#@B pW?#80 88!0@ V?#DB^ xV?#<B\ V?#@B pW?#`800`0H 0 PL!p@ 0N p H [ @"`@  0H[p!pB~F[ p !~F 8 0` H 0 PL!p@ 0N` H  0X [p"!p~F[ p!~F 8 0` H 0 PL!p@ 0N` H `0H[ p !~F0 H`BPL!`@ p@ [ p"!~F 0`0X P~FxW?#~FxW?#~FpW?#p<00 0`0H  ~Fx pW?#`800 p  0`8 pB V?#@BpW?#~FxW?#~F pW?#80  p!p<0#H V?#DB p`W?#80 ~Fx pW?#`8000 p@ `$0 hZ`BPL!~F p`W?#80 1 8@ V!PU "B`A3~F` `@>#`  @3 x n<|F p[>#H803 n p"!|F( |F p[>#X803n p!~F0|F p Z?#h803 n p"!~F8 |F p`Z?#890#ix|F p Z?#`800|F x[?#H8 [>#HB p[?#80 8<!P @ x@Z!<0 @BP P!`@ n p !~F  i p"800P P!`@ @n p$!~F|Fx p`Z?#80 np !~F n p"!~F@n 0$p0 0 p Hn p!~F 0` H `0X 0 PP!p@ 0R`H Ti p `800`0H 0 P P!`@ n p"!@~F |FPZ?#|Fx p[>#ix p800 0  H np"!|F@n p$!@~F 8`800` H  0 Xnp!·|Fi p p800 0` H 0 PP!p@ 0R` H  0H np"!~F@i p$p800 0` H 0 PP!p@ 0R` H `0X T|FxP[?#|FH[>#|F p[>#`800  0H@i p$`800`0H 0 PP!`@ p H 0R 08Xn p!|F 8 0   Hi p p800 0` H 0 PP!`@ ` H 00 H n p"!~F 8 0   H@i p$p800 0` H 0 PP!`@ ` H `0 X T|Fx [?#|F pZ?#`800 0H@n p$!~F|FxxZ?# |FpZ?#p<00 0 p Hn p!~F 0p0H 0 ` H 0 Hn p !@~F 0 0H@n p$!~Fx|FpZ?#p<00 0` H `H ` H `0$X "|FHA[?# |F pZ?#n 0p0 0  Hnp!~Fn p !~F 8`800 p H n p"!~F 0 0H@n p$!@~F 0 p0Hn p!~F 0` H `0 X p$ Hn p !~F p`800`0H 8 0 PP!`@ `@ R|FHa[?# |Fx Z?#|FpZ?#p<00 0`0X 00H n p"!~Fx |Fp[?#p<00 0   Hnp!@~F@<00PP!`@ `@ `0X p Hn p !~F 0`0H `0X R|FH[?# |F [?#|Fxx@[?#|Fp`[?#p<00 0`0H @  0 PP!`@ `@ R@i $ix|Fp[?#p<00 0`0H   |F p[?#`800 p  0`8 pB x[>#<Bp[?#|Fx[?#|F p[?#80  p!p<0#H P@ p$0 x^BP P!H@ [?#`U  @"0D1h @0Be @ x ~F<~F x H!H 8& 8`8 `0$  xI?#<B  p$p<# I?#@B pI?#& 8`8 ` ~FxI?#~F pI?#@<00P@!`@ p@  p$`800`0H `04 pp0#&p!A~F&p !A~F& p!~F x88<p1`t `08 pH 0 `8X "~FxH!~F pI?#@<00P@!`@ p@  p$`800`0H `04 pp0#&p!~F&p !A~F& p!B x<B p8 p<@ x8 p<@ p8 pp1`88 pH 0 `8X "~FxxI?#~F pI?#80  88`88 pH 0  H& p !B ppp1`88 pH 0` H p0 H& p !~F 0`0H ~Fx p H!8 8(r`B I?#@B& I?#@B pI?#`800`0"  xI?#<B pI?#`800 0 0  !f x  ~F< ~F x !H 8  0" p0  0` H x < 8 `8 `0$  x?#<B p$p<# ?#@B p?#  8"`8 `  ~Fxx?# ~F p?#`800`04 pp<0# p"!A ~Fp!@ ~F  p"! ~F ppp1`88 pH 0 p8X 0` H   ~Fxx! ~F p?#`800`04 pp<0# p"! ~Fp!@ ~F  p"!B ppp1`88 pH 0 p8X 0` H   ~Fxx?# ~F p?#80  88`88 pH 0  H p !B ppp1`88 pH 0` H p0 H p ! ~F 0`0H  ~F p !8 8(r`B x?#<B ?#@B p?#`800`0"  ?#DB p?#`800 0 00Be   x ~F<~F pG?#H803 p!~F(~FxG?#~F pG?# 0 p0 0` H ~Fx xF! 0  p0  0` H ~Fx pG?#`800 p0X p !~F 0`H 8 0 P@!`@ `@  p!B0 HBP @!`@  p !~F~Fx xG?#H8`<00 p0X 0` H 0 P @!`@  p !~F0 HBP@!`@ `@ 0  !@03 0`0$  @' @@$ `!00Bg   FB 0F p  0`8 Bp$00 HBP@!`@ `@ ` `04 p`8bB@FBP@! BpX 88`88 pH 0p H 0F`8X F@p$00 HBP@!`@ `@ ` `04 `08 pH 0`8$ h p$00 HBP@!`@ `@ `04 `08 pH 0p H 0F`8X F@p$00 HBP@!`@ `@ ` `04 `08 pH 0`8$ h p$00 HBP@!`@ `@ `04 `08 pH 0p H 0F`8X F @p$00 HBP@!`@ `@ ` `04 `08 pH 0`8$ h p$00 HBP@!`@ `@ `04 `08 pH 0p H 0F`8X F@@FBP@! BpX 88`88 pH 0p H 0F`8X F pF!@BpF!@B p F!80  p!p<0# p F!80 81PJ 0F 0 00Bf   F@! < 0 p0  0   H xG?#`<000 HBP @!`@  0 p0  0 p H 0`0H ` H `H ` H `0X 0 U "B !@03 8 0 H 8 0 H 8 0` H `H `$ H `H  H !@03 8 0p H 0p H @ 0` H `H p H 8  !@038`00` H 8 `H 8`H 0 00Be   F@!<~F pG?# 8`8 `H ~Fx pG?# 8 `8 `0X ~FxxG?#~FpG?#<00 HBP @! @ p!~F p !~F @800P@!`@ ` H 0 P@!`@ 0 U "B @0Bd @ H@!%<~Fx p`I?#H803% p!~F(~Fx pI?#X803% p!~F0~Fx pI?#% 0p0 0   H%p!’~F% p!~F 0`0H 0 P@!p@ 0B` H  0X%p!~F% p!~F 8 0` H 0 P@!p@ 0B` H  0H%p!B~F% p!~F 8 0` H 0 P@!p@ 0B` H  0X   U "B00Bg   Fp00 0 `0H0 HBP@!`@ `@ `H `04 p8B % .? : ; ' @ : ; I $ >  I.? : ; ' I@ 4: ; I .? : ;' I@ : ;I 4: ;I : ; I  : ; : ; I8 I!I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; ( ! : ;-cproj.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)tsincos4&val3psin_val3xcos_val3double(asinz<#con;msfnzN$eccentKpsinphiLxcosphiMconOqsfnz\#eccentY@sinphiZHcosphi[Pcon]Xphi1zp'eccentmqsnflagoeccntsqdphirconscomtsinpiucospiv@phiwHixPlong intphi2z'eccent@tsHflagPeccnthXphi`conhdphipsinpixi*phi3z+mle0e1@e2He3PflagXphi`dphihipjphi4z-eccent~e0~e1~e2~e3abcphisinphisin2phtanphimlmlp@con1Hcon2Pcon3Xdphi`ihpakcz $ pak ` con h secs p degsx mins sgnacharpakr2dm#R pak"` con$h secs%p degs&x mins& sgna'tsfnz@# eccent=` phi>h sinphi?p conAx comB+signM+R xMint}adjust_lonT# xS countUe0fnz# xzpe1fn{R x{e2fn|R x|Je3fn}R x}e4fn# x` conh comp mlfn$ e0P e1X e2` e3h phipI calc_utm_zone# lon size_tW long unsigned int __u_char | unsigned char __u_short! short unsigned int __u_int" unsigned int __u_long#W __u_quad_t$W __quad_t% __int8_t& signed char __uint8_t'| __int16_t(F short int __uint16_t) __int32_t*+ __uint32_t+ __int64_t, __uint64_t-W __qaddr_t.  __dev_t0 __uid_t1v __gid_t2v __ino_t3 __ino64_t4 __mode_t5v __nlink_t6 __off_t7 __off64_t8 __loff_t9 __pid_t:e __ssize_t; __rlim_t< __rlim64_t= __blkcnt_t> __blkcnt64_t? __fsblkcnt_t@ __fsblkcnt64_tA __fsfilcnt_tB __fsfilcnt64_tC __id_tDv C I __valHC #S +S long unsigned int __fsid_tI* __daddr_tL+ __caddr_tM  __time_tN __useconds_tO __suseconds_tP __swblk_tQ __clock_tR __key_tS+ __clockid_tV+ __timer_tY+ __ipc_pid_t\+ __blksize_t_ __t_scalar_tf+ __t_uscalar_tg __intptr_tj __socklen_tm  __sched_paramE __sched_priorityF+#_pthread_fastlock __status# __spinlock+#_pthread_descr_struct _pthread_descr#E3__pthread_attr_s8* __detachstate++# __schedpolicy,+# __schedparam- # __inheritsched.+# __scope/+# __guardsize0I # __stackaddr_set1+# __stackaddr23#( __stacksize3I #0 pthread_attr_t4K }< __c_lock: # __c_waiting;/# pthread_cond_tqS __gconv_t O ~H 4 __cd 2# __data 3q#H 5__cd /__combined 4U _G_iconv_t 5~ _G_int16_t 7F _G_int32_t 8+ _G_uint16_t 9 _G_uint32_t : __gnuc_va_list +3_IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA_IO_FILE_plus__io_read_fnXo 3 I __io_write_fnao 3'I __io_seek_fni)C+3C+? __io_close_fnl_o+3 fpos_tP` _IEEE__SVID__XOPEN__POSIX__ISOC_ _LIB_VERSION_TYPE }!exception( type +#name  #arg1 #arg2 #retval # _  cproj.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 3++  + .+  ,+++++, %++,+ "++,++ ,,#++++,+#,+++++#,+,+ !+++++,,,+++++++ +++++G$a9G!a-G"aWG! ǸaG% ǸaG%aG)aG+ øaG"aAaG!aA4G!aG!aDAa,Aa&A:G!aSG"aG!a$Hz>??|=Hz>?-DT!?|=@@@|=@@@@|=@MbP?Y@.A@@cܥL@N@.A@@?-DT!?-DT! @-DT!@A!T! B=~S!C?0@?@?????UUUUUU?@@f@@Convergence errorphi1z-convphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv1tsincosasinz(msfnzqsfnzphi1zphi2zphi3z*phi4zjpakczpakr2dmtsfnzsign2adjust_lon}e0fne1fne2fne3fnJe4fnmlfn calc_utm_zone,KGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.rodata.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@K!0 ,L2L7LEM1Q bkc nЛXvpy zh|}}00 $~;_~88 p    PP$-`38PP>BHP@V[_@e ko0,u10} 7@`:p:@BCD`EEG Jcproj.ctsincossincosasinzasin__divdf3msfnzsqrtqsfnzlogphi1zp_errorphi2zatanpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zoneII*III*IRIRI*I" *b I * " I I I * I"II*I*(22I*0*8RIr*@IBIII*@*H22(I*PIb*XI*`RII*h282hI*pII Ib IR!*x!I!*2"I#Ib#*x#*x#I"$*R$*$I2(I")*B)Ib*I+*+2x+2+I+*xb-*-I-*.*.I/*B0*0*R2*4*5*5*5*"8*8I"9Ia9*9*9I :I";*`;*r;I;I$"<*<*<I<*0=*B=I=*=*>Ib>*>*>I?*`?*r?I?*@*"@Ir@*@I$A*bB*B* BIB*(C*0C*8C*@D*HD*PD*XE*`FIBGIGIIII*hII2J*prJIK*x2K*RKI% %'K'''P'P'`;'`C'P'P' ''@'@'@'@'='E'0,~'0,'1'1' 7' 7'`: '`:':K':S'B'B'C'C'D'D'`E*'`E2'E]'Ee'G'G'J& 'J. 'K'__P__P _`(_ 0_`8_P@_@H_PP_X_``_h_@p_x_@_@__@____0,__0,_1_ _1_ 7_@_ 7_`:_`_`:_:_ _:(_B0_8_B@_CH_P_CX_D`_h_Dp_`Ex__`E_E_ _E_G_8_G_J_`_J_K_%%'report.o/ 1082129509 59100 998 100644 31160 ` ELF2K@@ ) P0Bg `JB(  p`8rPB pJ!@B0Lp80 @J BPD! p$80 09B 0$`0 8N BPD! B<H( x J!`80 8N<0 HJ BP D!H0 BPD!  U0 `J!0)p0BfPb?~Fx pO?#90#? p!B~Fx p N!90#? pp8 r@B p$ <0@ xO?#<0 89B p$80#? p!B@@BPH! Bp B@$`@ x$8~Fx pN!@P80 PH!P@ xO?#<0 89B x$8~Fx pN!80 PH! BpPB p$80# @P HR@BPH!0H@@ x$8~Fx pN!@P80 PH!0@ p$80# xO?#<B pO?#80 89@B p$ <P@ xO?#<B pO?#80 89B p$80#? p!@B@@BPH! Bp B@$@ x$8~Fx p N!@P80 PH!`@ xO?#<B pO?#80 89B x$8~Fx p N!80 PH! BpPB p$80# @P HR@BPH!0H@ x$8~Fx p N!@P80 PH!0@ p$80# @! 0UP `N!00B  p$80 09@B p$@80 P@! p$80 09@B p$@80 P@! U `F!! @0Bg @ H p`8r@B ($P0 0HBPB! p$80 09B ($P0 0LBPB! B < (0Lp0 P B!H(BPB! U `H!00Bg   F p`8r@B $@0 (FBP@! p$80 09B $@0 (JBP@! B < (J`0 P @!H BP@! U `F!00Bg   FB $ p`8rpB $@0 (FBP@!B $@0 (BP@! p$80 09B $@0 (JBP@! B < (J`0 P @!H x F!@80 (J`<0 P @!H BP@! U `F!00Bg   F p`8rpB 8F 0 ` H HP2!P@! p$80 09B $@0 (JBP@! B < 8F 0` H (J`2!P @!H BP@! U `F!00Bg   F p`8rpB 8F 0 ` H HP2!P@! p$80 09B $@0 (JBP@! B < 8F 0` H (J`2!P @!H BP@! U `F!00Bg   F p`8rpB 8F 0 ` H HP2!P@! p$80 09B $@0 (JBP@! B < 8F 0` H (J`2!P @!H BP@! U `F!00Bg   F p`8rpB 8F 0 ` H HP2!P@! p$80 09B $@0 (JBP@! B < 8F 0` H (J`2!P @!H BP@! U `F!00Bg   F p`8rpB 8F 0 ` H HP2!P@! p$80 09B $@0 (JBP@! B < 8F 0` H (J`2!P @!H BP@! U `F!00Bg   FB $ p`8rB 8F 0 ` H HP2!P@!B 8 0 ` H HP2!P@! p$80 09PB $@0 (JBP@! B < 8F 0` H (J`2!P @!H p F!p800 0` H (J`2!P @!H BP@! U `F!00Bg   F p`8rpB 8F 0 ` H HP2!P@! p$80 09B $@0 (JBP@! B < 8F 0` H (J`2!P @!H BP@! U `F!00Bg   FB $ p`8rpB $@0 (FBP@!B $@0 (BP@! p$80 09B $@0 (JBP@! B < (J`0 P @!H x F!@80 (J`<0 P @!H BP@! U `F! ) P0Bg ` JB(  p`8rPB pJ!@B0Lp80 @J BPD! p$80 09B 0$`0 8N BPD! B<H( x J!`80 8N<0 HJ BP D!H0 BPD!  U0 `J! ) P0Bg `JB(  p`8rPB pJ!@B0Lp80 @J BPD! p$80 09B 0$`0 8N BPD! B<H( x J!`80 8N<0 HJ BP D!H0 BPD!  U0 `J!00B  p$80 09@B $@0 P@! p$80 09B $@0 (JBP@! B < (JBP @!H BP@! U `F!% .? : ; ' @ : ; I  I$ > .? : ; ' I@ .? : ; @ .? : ;' @ : ;I .? : ;@ : ; I  : ; : ; I8 I!I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; ( ! : ;"4: ; I 1report.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)p_error=%what;where<charAinit`A'ipr[Hpjpr\Hxefile]pfile^intlong intclose_file#ptitle$Aradius#Adoubleradius2#ABMcenlon#Acenlonmer#Acenlat#Aorigin#Atrue_scale # A Wstanparl# A Bstparl1&# A%offsetp4# A3 B3 genrptD% AC SCMgenrpt_longO% ANH SN pblankZ# size_tzlong unsigned int __u_char unsigned char __u_short!short unsigned int __u_int"unsigned int __u_long#z __u_quad_t$z __quad_t%H __int8_t&8signed char __uint8_t' __int16_t(ishort int __uint16_t) __int32_t*A __uint32_t+ __int64_t,H __uint64_t-z __qaddr_t. __dev_t0 __uid_t1 __gid_t2 __ino_t3 __ino64_t4 __mode_t5 __nlink_t6 __off_t7 __off64_t8 __loff_t9 __pid_t: __ssize_t; __rlim_t< __rlim64_t= __blkcnt_t> __blkcnt64_t? __fsblkcnt_t@ __fsblkcnt64_tA __fsfilcnt_tB __fsfilcnt64_tC __id_tD fI __valHf#vAvlong unsigned int __fsid_tIM __daddr_tLA __caddr_tM __time_tNH __useconds_tO __suseconds_tPH __swblk_tQH __clock_tRH __key_tSA __clockid_tVA __timer_tYA __ipc_pid_t\A __blksize_t_H __t_scalar_tfA __t_uscalar_tg __intptr_tjH __socklen_tm__sched_paramE __sched_priorityFA#4 _pthread_fastlock __statusH# __spinlockA#_pthread_descr_struct _pthread_descr#b 4 P __pthread_attr_s8* __detachstate+A# __schedpolicy,A# __schedparam-# __inheritsched.A# __scope/A# __guardsize0l# __stackaddr_set1A# __stackaddr2P #( __stacksize3l#0 pthread_attr_t4h < __c_lock:# __c_waiting;L # pthread_cond_t# __modname sD# __counter uA# __from_name w# __to_name x# __fct z#( __init_fct {#0 __end_fct |#8 __min_needed_from A#@ __max_needed_from A#D __min_needed_to A#H __max_needed_to A#L __stateful A#P __data P #X__gconv_loaded_object&JA)/5AAS__gconv_step_data8 @ __outbuf S# __outbufend S# __flags A# __invocation_counter A# __internal_use A# __statep Y# __state ?#( __trans }#0?__gconv_trans_data( B __trans_fct g;# __trans_context_fct he# __trans_end_fct iw# __data jP # __next k}# AP )/5$SleAP SSAwP k_OA __gconv_fct HO __gconv_init_fct K __gconv_end_fct L __gconv_trans_fct U __gconv_trans_context_fct ZEA __gconv_trans_query_fct ^jpAD5D __gconv_trans_init_fct aADP __gconv_trans_end_fct bkD__gconv_info __nsteps l# __steps # __data D#[v __gconv_t l H 4 __cd 2# __data 3#H 5__cd /__combined 4r _G_iconv_t 5 _G_int16_t 7i _G_int32_t 8A _G_uint16_t 9 _G_uint32_t : __gnuc_va_list +P _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXP l__io_write_fna1P Dl__io_seek_fniF`AP `Ab__io_close_fnl|AP fpos_tP} _IEEE__SVID__XOPEN__POSIX__ISOC_ _LIB_VERSION_TYPE !Qexception( type A#name #arg1 #arg2 #retval # "terminal_p/H "terminal_e0H "file_e1H "file_p2H "fptr_p3 "fptr_e4 v"parm_file5 "err_file6  report.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h <+++ +,,++++,+++++,++,,++++,+++++,++++,+,++,+,++,+,++,++,+++,++,+++,++,+++,++,+++,++,+++,+++,++++,++,+++,+,++,++,++++,++[%s] %s aOutput file name not specifiedreport-file %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld G#aBG%aG!a$G"a<G!a<G!aTG!aNG!aNG!aNG!aNG!aNG!axG!aNG!aTG#aBG#aBG!a6cܥL@cܥL@cܥL@cܥL@cܥL@cܥL@cܥL@5p_errorinitTclose_filevptitleradiusradius2cenlonMcenlonmercenlatorigintrue_scalestanparlWstparl1offsetpgenrpt genrpt_longMpblank,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.sdata.sbss.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@! W , 2 7 E!5Q@pPb <ntAxXE pxGt I8HI0HIpy)J0y0YJ;JQh V %( ,7>H  OW^dlsx0`` `  ` ` 0report.cterminal_efile_eerr_filefptr_eterminal_pfile_pparm_filefptr_pp_errorprintffopenfprintffcloseinitstrlenstrcpyclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblank2*b2I*22I*(*(2"I1*(BI*"*`*I*2I@*rI*228I*2"I@*B****IP*r2I*I@*B2R28bI*2I**@*(`*(rI* * I"*P2HbI*22I* * 2H I * " I * 2h I * 2 2 I" * 2 * B 2hb Iq * I * 22 IP 2b I * 2 2 I * * 2 I * " 2B IQ * b I * * 22 IP *p 2r 2 I * * * 2I* "I**20I*0222BIR* b* r*20I* IB*r*2hI*22I* "* 2*b2I* I*2*R2rI*22I* * *"2BIQ* bI** 22IP*p2r2I* * * 2HI* "I**(2xI"*(B2bI*22I* * *(2x2IA* R*(2I* I"*R*0r2I*22I* * *0B2bIq* I* 22IP2(bI*22I* * 2I* "2(BIQ* bI*2P"I@*`2b2rI* * 2PI* IR*2`I*22I* * "2`BIQ* bI*2pI* 2"22IB* R* b2prI* I% %''''''0c'0k'''` '` ' ' ' -' 5'``'`h' ' '''''`)'`1'i'q''''' ' ''Y'a'e''''' '(',''___ _ _0(_ 0_08_@_ @H_P_` X_ ``_` h_ p_ x_ _ _ _ _`_ _`_ _ _ __ ___ __`_ @_`__ ` _(_0_ 8_@_H_ P_X_ `_ h_ p_x_ ___ %%'paksz.o/ 1082129509 59100 998 100644 12264 ` ELF2%@@(%`0Bd  x ~F<~F p`M?#90# 5 p"!~F p80#@5 8$`8 `0$  x@M?#<B6 p$`8000@ @M?#@B pM?#803 @M?#DB pM?#@5 8$`8 ` ~Fx xL!H 00<035p !0BB 5p"!~F@5 p$!B @800@PD!`@ `@ `04 pp0#5 p!@Bx@HxpB 8$p0 @P BPD!~F p`M?#80  8@@ @M?#DB6 @M?#HB p L!80  88`88 `H ~FxM?#~FM?# ~FxM?# ~FpL!p<00 0p H 0 `8X "~Fx xL!H 00<035p !0BB 5p"!~F@5 p$!B @800@PD!`@ `@ `04 pp0#5 p!@B pp9 bpB 8$p0 @P BPD!~F p`M?#80  8@P@ @M?#DB7 @M?#HB p L!80  88`88 `H ~FxM?#~FM?# ~FxM?# ~FpL!p<00 0p H 0 `8X "~Fx pM?#p800 0`0$ 8 8$p0 @P BPD!~F p`M?#80  8@@ @M?#DB7 @M?#HB6 @M?#DB pM?#p800 0  H@5 p$!~F 8 0` H p0 H 5 p"!~F 0p0H 0`H   ~FM?#~Fx pM?#@<00@PD!`@ `@ F~F pM?#`8000 (U@ `L!% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;1paksz.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)"paksz8"&ang6"Piflg7,Xfac9"`deg:"hmin;"psec<"xtmp="i>2double2long intsize_tLlong unsigned int__u_char qunsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#L__u_quad_t$L__quad_t%2__int8_t& signed char__uint8_t'q__int16_t(;short int__uint16_t)__int32_t*kint__uint32_t+__int64_t,2__uint64_t-L__qaddr_t.__dev_t0__uid_t1r__gid_t2r__ino_t3__ino64_t4__mode_t5r__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:Z__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDr?I __valH?# Ok Olong unsigned int__fsid_tI&__daddr_tLk__caddr_tMchar__time_tN2__useconds_tO__suseconds_tP2__swblk_tQ2__clock_tR2__key_tSk__clockid_tVk__timer_tYk__ipc_pid_t\k__blksize_t_2__t_scalar_tfk__t_uscalar_tg__intptr_tj2__socklen_tm __sched_paramE __sched_priorityFk# _pthread_fastlock __status2# __spinlockk# _pthread_descr_struct_pthread_descr#I 7__pthread_attr_s8* __detachstate+k# __schedpolicy,k# __schedparam-# __inheritsched.k# __scope/k# __guardsize0># __stackaddr_set1k# __stackaddr27#( __stacksize3>#0pthread_attr_t4O< __c_lock:# __c_waiting;3#pthread_cond_tLk7::(^7RF6kipi__gconv_fct H6__gconv_init_fct Kp__gconv_end_fct L__gconv_trans_fct U__gconv_trans_context_fct Z,(__gconv_trans_query_fct ^QWqk+qw+__gconv_trans_init_fct ak+7__gconv_trans_end_fct bR +__gconv_info __nsteps ># __steps i# __data +# BuO__gconv_t SH 4 __cd 2# __data 3u#H 5__cd /__combined 4Y_G_iconv_t 5_G_int16_t 7;_G_int32_t 8k_G_uint16_t 9_G_uint32_t :__gnuc_va_list +7 _IO_jump_t_IO_lock_t__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnXk7>__io_write_fnak7+>__io_seek_fni-Gk7Gk;__io_close_fnlcsk7fpos_tPd  _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE exception( type k#name #arg1 "#arg2 "#retval "#  paksz.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h 7%++,+!,+!,++++Illegal DMS fieldpaksz-degpaksz-minpaksz-sec.A@@N@ @G$a5paksz,@GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.sdata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@@!,,27`E 5Q.b n@/"H#(8# pX#X/H p#/#0/0 #;#* ,      @paksz.c__divdf3pakszp_error*a*I@2B2RI**I22(I** 2"282Ib** ** I% %'@'''@'__@_%%'sphdz.o/ 1082129509 59100 998 100644 15808 ` ELF21@@@10BdpbM~Fx p`S?#90#M p !~F~F pS?#90#M p!~F M p pp `B @S?#DBO @S?#@B p`S?#80  0` ~FxR!~F p`S?#80  p !`800` ~F pS?#`800`$  x@S?#<B pR!`800`$ h @S?#@B pS?#80 M p"!~F 00<03M p!@~Fx~F pR!`800~F pS?#80 M p !~F 00<030 @ @S?#DB pR!`800`$ B x@S?#<B pS?#80 M p !~F 00<03 M p"!~Fx~F pS?#`800~F pS?#80 M p !~F 00<030 @ @S?#DB pS?#80 M p !~F 00<03 M p"!~Fx~F pS?#`800~F pS?#`80 M p!B 0`0X 0 P J!p@ M p !~F 0` H L@ @S?#DB pR!`800`$ X x@S?#<B pS?#80  p`800~F pS?#80  p`800~F pS?#80  p`800 @ x@S?#<0 8;B @S?#@B pS?#80  p8Br 00<03 M p"!~F x p8Br 00<03M p!@~F x 00<03@@ @S?#@0 8;B @S?#DB pS?#80  p8Br 00<03M p!~F x p8Br 00<03M p !@~F x 00<03`@ @S?#DB pS?#80  p8Bq 00<03M p!~F x p8Bq 00<03M p !@~F x 00<03@ @S?#DBH @S?#@0  888 @8~F p R!80 8T1B P$0 `XVPBP J!H PT`XVPBPJ!HM8~F p R!80#@ @S?#DB p R!80 8T9@B x@S?#<B pS?#80 x~F p R!80  p8 x8@ 00@03M p!@~F x~F p R!80  p8 x8@ 00@03M p!~F x~F p R!80  p8 x8@ 00@03P@ x@S?#<B p R!80 8P9 B @S?#@B pS?#80 x~F p R!80  p8 x8@ 00@03M p!@~F x~F p R!80  p8 x8@ 00@03M p!~F x p8Br 00<03@ @S?#@B pS?#80 x~F p R!80  p8 x8@ 00@03M p!@~F x~F p R!80  p8 x8@ 00@03M p!~F x p8Bq 00<03@!@Up `R!TXAGITXAISXA`TXATXATXASXA@TXA@TXAbXTXA'1SXAu SXA@TXATXATXA@TXATXATXATXA@MXAMXA˯MXA333?XA ?XA+?XA ?XAd?XAIF?XA؁s?XA =?XA?XAp=:H?XA~!?XA1?XA?XAoT?XA?XA4?XAX?XAp'?XAR_?XA@MXAMXA˯MXA% .? : ; ' I@ : ; I 4: ; I $ >  I: ; I : ; : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ;  : ;&( sphdz.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)9sphdzr9)isphm@PparmnLXr_majoroL`r_minorpLhradiusqLpt_majortRxt_minoruRjsphv@intlong intRdoublesize_tjlong unsigned int__u_char unsigned char__u_short!short unsigned int__u_int"unsigned int__u_long#j__u_quad_t$j__quad_t%@__int8_t&(signed char__uint8_t'__int16_t(Yshort int__uint16_t)__int32_t*9__uint32_t+__int64_t,@__uint64_t-j__qaddr_t.__dev_t0__uid_t1__gid_t2__ino_t3__ino64_t4__mode_t5__nlink_t6__off_t7__off64_t8__loff_t9__pid_t:x__ssize_t;__rlim_t<__rlim64_t=__blkcnt_t>__blkcnt64_t?__fsblkcnt_t@__fsblkcnt64_tA__fsfilcnt_tB__fsfilcnt64_tC__id_tDVI __valHV# f9 flong unsigned int__fsid_tI=__daddr_tL9__caddr_tMchar__time_tN@__useconds_tO__suseconds_tP@__swblk_tQ@__clock_tR@__key_tS9__clockid_tV9__timer_tY9__ipc_pid_t\9__blksize_t_@__t_scalar_tf9__t_uscalar_tg__intptr_tj@__socklen_tm __sched_paramE __sched_priorityF9# 2_pthread_fastlock __status@# __spinlock9# _pthread_descr_struct_pthread_descr#`2 N__pthread_attr_s8* __detachstate+9# __schedpolicy,9# __schedparam-# __inheritsched.9# __scope/9# __guardsize0\# __stackaddr_set19# __stackaddr2N#( __stacksize3\#0pthread_attr_t4f< __c_lock:# __c_waiting;J#pthread_cond_t?xV42?:RFߑ? @?B?ׁ??% .? : ; ' I@ : ; I $ >  I: ; I : ;  : ; I8 I !I/  : ; <   : ;I8 : ;I : ;  : ; I : ; ( &I' II' !I/: ;  : ; (  : ;4: ; I )untfz.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)untfz+&inunit(poutunit)xfactor*long intdoublesize_tlong unsigned int__u_char 6unsigned char__u_short!Xshort unsigned int__u_int"}unsigned int__u_long#__u_quad_t$__quad_t%__int8_t&signed char__uint8_t'6__int16_t(short int__uint16_t)X__int32_t*0int__uint32_t+}__int64_t,__uint64_t-__qaddr_t.}__dev_t0Z__uid_t17__gid_t27__ino_t3Z__ino64_t4Z__mode_t57__nlink_t6Z__off_t7I__off64_t8I__loff_t9I__pid_t:__ssize_t;I__rlim_tI__blkcnt64_t?I__fsblkcnt_t@Z__fsblkcnt64_tAZ__fsfilcnt_tBZ__fsfilcnt64_tCZ__id_tD7I__valH# 0 long unsigned int__fsid_tI__daddr_tL0__caddr_tM[achar__time_tN__useconds_tO}__suseconds_tP__swblk_tQ__clock_tR__key_tS0__clockid_tV0__timer_tY0__ipc_pid_t\0__blksize_t___t_scalar_tf0__t_uscalar_tg}__intptr_tj__socklen_tm} __sched_paramE__sched_priorityF0# _pthread_fastlock__status#__spinlock0# _pthread_descr_struct_pthread_descr# __pthread_attr_s8*__detachstate+0#__schedpolicy,0#__schedparam-k#__inheritsched.0# __scope/0#__guardsize0#__stackaddr_set10# __stackaddr2#(__stacksize3#0 pthread_attr_t4F<__c_lock:#__c_waiting;#pthread_cond_t<wC__dummyB0#pthread_condattr_tC\pthread_key_tF}(S__m_reservedN0#__m_countO0#__m_ownerP#__m_kindQ0#__m_lockR#pthread_mutex_tSJZ__mutexkindY0#pthread_mutexattr_tZ+pthread_once_t^0pthread_t _IO_FILE-_flags0#_IO_read_ptr [#_IO_read_end [#_IO_read_base [#_IO_write_base[# _IO_write_ptr[#(_IO_write_end[#0_IO_buf_base[#8_IO_buf_end[#@_IO_save_base[#H_IO_backup_base[#P_IO_save_end[#X_markers# #`_chain) #h_fileno0#p_blksize0#t_old_offset#x_cur_column"X#_vtable_offset##_shortbuf$/ #_lock(? #_offset1#__pad17#__pad28#_mode:0#_unused2<A # # _IO_marker_next# #_sbuf) #_pos0#  ? a   Q a +FILE-__FILE7wchar_t0wint_t8} J__wchH{ __wchbI a  K__countE0#__valueJ #__mbstate_tK )  __pos #__state  #_G_fpos_t  e  #__pos !#__state " #_G_fpos64_t #: S  &__GCONV_OK__GCONV_NOCONV__GCONV_NODB__GCONV_NOMEM__GCONV_EMPTY_INPUT__GCONV_FULL_OUTPUT__GCONV_ILLEGAL_INPUT__GCONV_INCOMPLETE_INPUT__GCONV_ILLEGAL_DESCRIPTOR__GCONV_INTERNAL_ERROR   8__GCONV_IS_LAST__GCONV_IGNORE_ERRORS __gconv_step` ?__shlib_handle r#__modname s#__counter u0#__from_name w[#__to_name x[# __fct z/#(__init_fct {E#0__end_fct |W#8__min_needed_from 0#@__max_needed_from 0#D__min_needed_to 0#H__max_needed_to 0#L__stateful 0#P__data #X __gconv_loaded_objecta.0.400 : __gconv_step_data8 @__outbuf #__outbufend #__flags 0#__invocation_counter 0#__internal_use 0#__statep # __state #(__trans )#06 __gconv_trans_data( B__trans_fct g#__trans_context_fct h#__trans_end_fct i##__data j#__next k)# 0.460# E0.5W.K__gconv_fct Hp__gconv_init_fct K5__gconv_end_fct LK__gconv_trans_fct U__gconv_trans_context_fct Z__gconv_trans_query_fct ^606<__gconv_trans_init_fct a`f{0{__gconv_trans_end_fct b __gconv_info __nsteps #__steps .#__data # :__gconv_t GH 4__cd 2#__data 3:#nH 5__cd /__combined 4_G_iconv_t 5G_G_int16_t 7_G_int32_t 80_G_uint16_t 9X_G_uint32_t :}__gnuc_va_list + _IO_jump_t_IO_lock_t]__codecvt_result__codecvt_ok__codecvt_partial__codecvt_error__codecvt_noconv_IO_FILEA _IO_FILE_plus__io_read_fnX0[__io_write_fna0__io_seek_fni 0 0__io_close_fnl(80fpos_tP) ~ _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPE Fexception( type 0#name [#arg1 #arg2 #retval #   factors  untfz.c/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stddef.h/usr/include/bits/types.h/usr/include/bits/sched.h/usr/include/bits/pthreadtypes.h/usr/include/stdio.h/usr/include/libio.h/usr/include/wchar.h/usr/include/_G_config.h/usr/include/gconv.h/usr/lib/gcc-lib/ia64-redhat-linux/2.96/include/stdarg.h/usr/include/math.h *+++++++Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unitG$as-untfz,GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@!&, 27bEB-Q'bon((p` p@(H ($0(0T;  % &     untfz.cfactorsuntfzp_error222I 2("2P2I% %''''$''___ %%'gctp.o/ 1082129509 59100 998 100644 23728 ` ELF2hI@@PQ0BgbX|Fx p V>#90#X p !|F|F p`V>#90#@X p$!|FP|F pV>#(90#X p!|F|F pV>#890# X p"!|F |F pV?#80#Y p*!B p80#X p!|F @Y$P|FxV># Bp`V!@0 h"<0 xBPP! BY p*!B xX8Bx pW!80  p`8r B@! 1@ p$80 89`B V>#@B pW>#80# V>#DB pW>#80 81`B V>#HB_ p$p<0#Xp*!~F8H8@ @ x$<0 X p !@|F pp$@ p< 80#x|F pW>#80  p8 x8@ x |F pW>#80  p8 x8@ xP|F pW>#80  p8 x8@ x|F pW>#80  p8 x8@ x|F pW>#80  p8 x8@ |F pW>#80# V>#TB pW>#80 881pB xV>#<BpW>#|FxW>#|F pW>#80  p!p<0#pH $D0 @X p$!@|F @B x8 x@ @X p*!|F px8@0<pp1`t p8@  "|Fx pW>#80  p !p&@x<  |F pW>#80  x< 0<pp1`t p8@|FxpW>#|FxW>#|F pW>#80  p!p<0#H V>#HB p V>#80  p`8rB x$<0 X p*!@|F p80  p8 x8@X p !|Fp<0 ppp< pPB x$<0 X p"!@|F p80  p8 x8@@X p$!@|Fp<0 ppp< pB x$<0 X p*!@|F p80  p8 x8@X p !@|Fp<0 ppp< pPB V>#DB p V>#80  p`8r V>#HB_ p$p<0# @ V>#TB pW>#80# xV>#<B pW>#80 80!@ $D0 X p !@|F p80  p !p&@x<  |F pW>#80  x< 0<pp1`t p8@X p!@|F x0<pp1`t x|F p`V>#80 p< p@00 0p8 pB V>#HBpW>#P|FxW>#|F pW>#80  p!p<0#@H V>#DB_ p$p<0# @V!HB pV!80  p`8rB x$<0 Y p*!@B p80  p8 x8@Y p !Bp<0 ppp< pPB x$<0 Y p"!@B p80  p8 x8@@Y p$!@Bp<0 ppp< pB x$<0 Y p*!@B p80  p8 x8@Y p !@Bp<0 ppp< pPB @V!DB pV!80  p`8r V>#HBX p$p<0# @ V>#TB pW>#80# xV>#<B pW>#80 80!@ $D0 Y p !@B p80  p !p&@x<  |F pW>#80  x< 0<pp1`t p8@X p!@|F x0<pp1`t xB pV!80 p< p@00 0p8 pB V>#HBpW>#P|FxW>#|F pW>#80  p!p<0#@H V>#DBX p$p<0# V>#HB p V>#80  p`p`PB V>#TB p V>#80  p` ;b0 `$0 hZBPP!Bx pW!80 8B`#@ @V!@B pV!80  p`p`PB @V!DB pV!80  p` ;b0 `$0 hZBPP! B pW!80 !8B"@ V>#TBX V>#@B pV>#80  pp<0# X p"!@|F p80 89B V>#HB p V>#80  pp8 rpB V>#TB pV>#80  pp08 r0B xV>#<BX p$p<0# V>#@B pV>#80  pp@8 rpB V>#DB p V>#80  pp8 r0B V>#HB pV>#80  pp08 rB V>#TB@X $D0 X p!|F p80 p= #pn0<pp1`w pp<@i8r)R x@ 0<pp1`t p8@ ppH0# xV>#<B p V>#80  pp8 rB V>#@B p V?#]`Bx@!PP! B Y p"!B xX8@ V>#HB p V?#]`Hx@!PP! BY p*!B xX8 xV>#<B p V>#80  pp8 rPB V>#@B pV>#80 X p"!@~F pp<0# @V!HB pW!80  p`8r0B@!PP!B@ V>#TB\ pV>#80 X p"!|F 8`800` H   |F W>#X p*@8B X p"!|F 8`800` H   |F pW>#80 09 B x$<0 X p*!@|F p80  p8 x8@X p !@|F p80  8x|F p V>#80  pp$@x< |F pV>#80  pp<0#xP|F p V>#80  pp$@x< |F p@V>#80  pp<0# X p"!@|F V>#HB pW>#80 88!@ $D0 X p*!@|F p80  p !p&@x<  |F pW>#80  x< 0<pp1`t p8@X p!@|F x0<pp1`t x|F p`V>#80  p< `800  |FpW>#P|FxW>#|F pW>#80  p!p<0#pH V>#DB p V>#80  pp8 r@B V>#HB^ p$p<0# V>#TB pW>#80 88! @ xV>#<BY V>#@B pW>#80  p8 y8@ X p"!@|F x0<pp1`t x|F p`V>#80  p< `800  |FpW>#P|FxW>#|F pW>#80  p!p<0#H V>#DB p@V?#803@X p$!~F x!pP|F p@V>#80  pp8 r`B xV>#<B p`V>#80  0`0  V>#@BY V>#DB p@V>#80  x<B p8 p<@ p8 H:|F 88`88 pH 0` H  |Fx p@V>#80  p`p``B V>#@B p@V?#8B x ! 00<03@ V>#DB p@V?#8B x ! 00<03@ V>#HBY V>#TB p`V>#80  00<03X p!~F x!@8BX p !|F p@8B 00<03 V>#DB p V>#@80 @X p$!|F0~FX p*!@|FBx@W!PBx`W!PBpW!P0 h$x"@0  80 `fBPP!@ xV>#<B p V>#@80 X p !|F|F`V>#P|F pV>#80 Yp!BYp*!BY p*!B`(L0 p$D0  <0 `fBPP! x@V!<B pW!80  p`8r0B@!PP!B0@ V>#@B p V>#80  pp8 rB V>#DB] V>#HB pW>#`800P|FxW>#|F p W>#`800@ x$<0 X p"!@|F p80  p8 y8@@X p$!|FX x*!@|F ]W>#@0 0p8000 ``<00 80 hDB @!@0 `xhP! BY p !B px80# p`8r0B@!PP!B@ V>#DB pV?#80 09B x$<0 @Y p$!@B p80  p8 x8@Y p*!@B p80  8xB pV!80  pp$@x< B p W!80  pp<0#x B pV!80  pp$@x< PB pV!80  pp<0#X p!@|F V>#@B pW>#80 88!@ $D0 @Y p$!@B p80  p !p&@x<  P|F pW>#80  x< 0<pp1`t p8@X p!@|F x0<pp1`t xB pV!80  p< `800  |FpW>#P|FxW>#|F pW>#80  p!p<0#pH @V!DB pV!80  pp8 rpB V>#HB^ p$p<0# V>#TB pW>#80 88! @ xV>#<BY V>#@B pW>#80  p8 y8@ X p"!@|F x0<pp1`t xB pV!80  p< `800  |FpW>#P|FxW>#|F pW>#80  p!p<0#H V>#DB p@V?#803@X p$!~F x!pPB pV!80  0`0  xV>#<B p`W>#`800 80 `BP P!`@ X p !~F|F pW>#`800 80 `BP P!`@ @X p$!~F x!p@ V>#TBY @V!@B pV!80  00<03 X p"!~F x!@8B@Y p$!B p@8B 00<03 @V!TB pV!@80 Y p!B0~FY p !@BPB@W!Bxx`W!PBpW!P0 h$x"@0  80 `fBPP!@ x@V!<B pV!@80 Y p !BBV!PB p W!80 Yp!BYp*!BY p*!B`(L0 p$D0  <0 `fBPP! x@V!<B pW!80  p`8r0B@!PP!B@ @V!@B pV!80  pp8 rB @V!DB pV!80 @X p$!|F 00<03Y p*!B p@8BX p !|F 00<03@ x$<0 Y p"!@B p80  p8 y8@@Xp$!|FXp*!|F@Yp$!0BY p*!B p A8Bp"`<00 80 ``@00 8 0 hL0  @!80 p`xhP! BY p !B px80# p`8r0B@!PP!B@ V>#DBX @V!HB pW!80  pp<0#Y p*!@B p80 89B x@V!<B pV!80  pp8 rpB @V!@B pW!80  pp08 r0B V>#DBX p$p<0# @V!HB p W!80  pp@8 rpB @V!TB pV!80  pp8 r0B x@V!<B pW!80  pp08 rB V>#@B@X $D0 Y p*!B p80 p= #pn0<pp1`w pp<@i8r)R x@ 0<pp1`t p8@ ppH0# x@V!<B pV!80  pp8 rB V>#@Bp V?#|Fh<BPP! B Y p"!B xX8@ V>#HBp V?#|F%h<BPP! BY p*!B xX8 x@V!<B pV!80  pp8 rPB @V!@B pW!80 X p"!@~F pp<0# @V!HB pV!80 Y p*!Bx|Fp@W>#p<00 0` H   B pV!80  !PB pV!80 x !|Fp@W>#p<00 0` H  BP P!PU `V!% .? : ; I@ : ; I 4: ; I .? : ; I< .? : ;I<   .? : ; I<  .? : ;I< $ >  II!I/  : ; ( ( : ; I : ; : ;I8 I gctp.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)gctpI+incoorI~insysJ~inzoneK~inparmL~inunitM~indatumN~iprO~efileQ~jprRpfileToutcoorU outsysW(outzoneX0outparmY8outunitZoutdatumVfn27[fn83\iflg]x_~y`~factora~lonb~latc~Xpakr2dmeif~jf~ininit_flagg~outinit_flaghunitjdummykinitsuntfzόclose_fileb2 close_file֌_inv_init inv_init close_file close_fileb for_init88 for_init5 close_file; close_fileJ int  double  long int  char long unsigned int _IEEE__SVID__XOPEN__POSIX__ISOC__LIB_VERSION_TYPEexception( type #name #arg1#arg2#retval# iter% dinpj& indat' inzn( dpdin) outpj* outdat+ outzn, pdout- d for_trans. inv_trans/ NADUT6 91 gctp.c/usr/include/math.h +++++,q,,,,+,+ ++++!+++++++++++!+,+++++++,++ ,+ +,+++++,+,+++ +++++,+.AAInsys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUTG)agctp,@3GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.sdata.rodata.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@@3!S,3027w77#E8QX`b?=n\ G @GPG pG \H Gh\G0\0 H;NH(OH pR   0 (((P(#8();(0 ?(6x X/;HBX/At(Kq(  U@3Z_gmxgctp.citerNADUTinpjindatinznoutpjoutdatoutznpdinpdoutinv_transfor_transgctpinitp_erroruntfzclose_fileinv_initpakr2dmfor_initI**22(B2P282;2 ?2x 2HB2P@2(2 2x 2 ? 2; 28@ 2HB2 2 IP2 (R2 @bI2IBIRIP22(2P2x 2***2tI r2tI I 2t"IP"28"2;#2 ?#2HB'I!"(I!)2q)I"*2q*I"+I,2q-I/20IB1I3I% %'@3'''@3 'P'p7'P?' d'l''' '"' "'P"'0+'%')9'+A'0+c'-k'-'''('P,'x C'8[';r' ?'HB'q't'>'__@3_%%'br_gctp.o/ 1082129509 59100 998 100644 4248 ` ELF2@@PQ0Bgb]~Fx p`W?#90#] p!~F~Fx pW?#90#] p!~F~Fx pW?#(90#] p!B~Fx p V!890#]p!`~F]p!P~F]p!@A~F]p!0~F]p! ~F]p!B]p!ABY xa<Bxp`V!0Ba pp<0#Y p!Bax!80 8BxpV!0Bb pp<0#Y p!Bax!80 8BxpV!0Bc pp<0#Y p!Bax!80 8Bxp W!0Bd pp< #Y p!Bax@!8 8Bxp`W!0Be pp<0#]`X0 p*P0 &H0 "0@0 PP!PU `V!% .? : ; @ : ; I .? : ; I<  I$ > br_gctp.c/halt/pnguyen/toolkit/TOOLKIT/hdfeos/gctp/srcGNU C 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)gctp_+incoorPinsys Xinzone `inparm hinunit pindatum xiprefilejprpfileoutcoor outsys(outzone0outparm8outunitfn27fn83iflggctpdoublelong intcharint br_gctp.c +!+G)a$gctp_,0GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2).symtab.strtab.shstrtab.text.rela.text.data.bss.debug_abbrev.debug_info.rela.debug_info.debug_line.rela.debug_line.IA_64.unwind_info.IA_64.unwind.rela.IA_64.unwind.debug_pubnames.rela.debug_pubnames.debug_aranges.rela.debug_aranges.comment@0!H,p2p7pbE$Q`bn pH P 0h0D; h  0    0br_gctp.cgctp_gctpI% %'0'''0*'__0_%%'hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibIRIX65-n32.a0000644000175000017500000165614412024715435021670 0ustar amckinstryamckinstry! / 1230069485 0 0 0 2416 ` dd77PPododԔԔ$$-$-$=d=dOObbyyttDDϴϴtt d d d d d99999itit{d{dDD4444&4&4;;QQzdzdTT0D0DITITXXh$h$h$''BBaa}d}d4444Id44444444444444444D"/RalberforintalberforalberinvintalberinvalconforintalconforalconinvintalconinvazimforintazimforaziminvintaziminvbceaforintbceaforbceainvintbceainvceaforintceaforceainvintceainveqconforinteqconforeqconinvinteqconinvequiforintequiforequiinvintequiinvgnomforintgnomforgnominvintgnominvgoodforintgoodforgoodinvintgoodinvgvnspforintgvnspforgvnspinvintgvnspinvhamforinthamforhaminvinthaminvimolwforintimolwforimolwinvintimolwinvisinusforinitIsin_for_freeIsin_for_initisinusforIsin_fwdisinusinvinitIsin_inv_freeIsin_inv_initisinusinvIsin_invlamazforintlamazforlamazinvintlamazinvlamccforintlamccforlamccinvintlamccinvmerforintmerformerinvintmerinvmillforintmillformillinvintmillinvmolwforintmolwformolwinvintmolwinvobleqforintobleqforobleqinvintobleqinvomerforintomerforomerinvintomerinvorthforintorthfororthinvintorthinvpolyforintpolyforpolyinvintpolyinvpsforintpsforpsinvintpsinvrobforintrobforrobinvintrobinvsinforintsinforsininvintsininvgsat_ratiosomforintsomforsominvintsominvsterforintsterforsterinvintsterinvstplnforintstplnforstplninvintstplninvtmforinttmfortminvinttminvutmforintutmforutminvintutminvvandgforintvandgforvandginvintvandginvwivforintwivforwivinvintwivinvwviiforintwviiforwviiinvintwviiinvfor_initinv_inittsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zonep_errorinitclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblankpakszsphdzuntfzgctpgctp_alberfor.o/ 1230066502 7356 20 100664 5492 ` ELF0 "4( H'/7=CJR[eltP}%.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.lit8.rodataalberforintp_errortsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lon__dcis.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:alberfor.o<$!'!!ׁF/pXHF PF @F! B L P T X X@\`@d%h%% %%%, %D%X %PP % % % %% %PPPTTT% %%%<DHT       (4 L \d       $d     xalberfor.cr_majorr_minorce3 rh !ns0("lon_center0#false_easting8$false_northing@(alberforintHnalberforP4<R8 /ecs/hdfeos/gctp/srcalberfor.cɿ0 s s s t s)Y'_!{z~~~%% %%!~){|!  zzz , ~% B 4: ; 9  .: ; 9 ? @ @|@ @A$H C`AD@ABB P C@AD CC@ 4+alberforintalberfor,>JWdrE@Dx4 Ma9$4*H006j>p!b`P  f d q {p  Hp pVp]7p`p p/ H     3p׆HF-BF'aF(1F'8F&0B0HF!%׈EF ׈F F F%2ES@DH8 ךכיF8F:>F9זF7F7E"F8׍F:kF-@״H F-cא ׏ב F0|F1F0F:F0{F F {F0{׎F {F/p<ג(E5ד0DF6>׺8E׶@׶@rF F״H' F `׶@׺8%߿0׸(߳߼'Ps׭ F8kC׌8 F-cߢ߿0@%߼߳׸('PF(3B F(; @8ט0F F' F `׶@׺8%߿0ט0=|׽???!TD-!TD-Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREAf       " & * . 2 6 : > B L P V \ ` XH\`Hd%h%% %%%0 %H%\ %XX % % % %%$%PPPXXX,%%%(%T%<DHT        ,8 P `h        (lpt|  48<`lt  DH  xalberinv.cr_major r_minor!c"e3#es $rh(%ns00&lon_center8'false_easting@(false_northingH,alberinvintLralberinvP<8 /ecs/hdfeos/gctp/srcalberinv.cʿ*4 s s s t s)Y'^{}~~~%% %%!~){|!  ~u ux   w  } (( t 1cp$ % B 4: ; 9  .: ; 9 ? @ @|@ @A$L C`AD@ABB4P4 BPBB N@ABMBO6:EB+ alberinvintalberinv,>JWdqE@Dx4 4MB$* hP00 h86 r>p! fP x f  q {p Hp8 pDp7pItp p/      3p B F x%% % % % % %0%PPPTTT% %%%%% %Xh  $(048<@DHLPTX\`dhlpt|       $( ,4d l       $@Ht x7alconfor.c"r_major#r_minor$lon_center%lat_center&false_easting 'false_northing((acoef)bcoef8*sin_p260+cos_p268,e@- nH1alconforintLgalconforP$48 /ecs/hdfeos/gctp/srcalconfor.cʿ'5 `gm lzp u }  r   jj|A~x tcyly u v x |x pom|}~}z|~}}}~}z}}~y% B 4: ; 9  .: ; 9 ? @ @|@ @AL CAC@ P C`AE B@ A$+;alconforintalconfor,>Sh-15E8<x4 Rf($$*L0p50; Cp! NU  k p v p HpP;pp7pEXp p/     $ 8pAp alconinv.o/ 1230066623 7356 20 100664 7844 ` ELF8 "4(  L,05=DLSZbPkquy(.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.bss.lit8.rodataalconinvintpowatantsincosptitleradius2cenloncenlatoffsetpalconinvasinztansinatan2adjust_lonp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:alconinv.o<$c'#!׍׌x$H׀ׁ ׂ(׃0ׄ8ׅ@ׇP׈X׉`׊h׋p ׎א(׏@$!+h*`)XD0(P'H&@%0$(# "! ׌ F,׌׍F,'8'0 F-c $׍ ׌ ׌ ׌׍( ׌ ߿%߼''p0<&(0!ן ׁF?gF!`ך(F:nF!փ שHתDx% @/!%m28D1F503F2Fa%h%F1P%l%xF5B8)pF3BX;p!F Նט%84F  C =F$2 *%F%2B *F*:% F)B@DF$xF+y'F+2F!F%zAF+rF'F"9F-0F( F!F-xBF"c@F IFF$F QF!F$2F%2BF*:$B`F)B@DF$xF+y'F+2F!F%zAF+rF'F"9F-0F( F!F-xBF"c@F IFF$F QF!%J%)$BF+F-F*F'1F*F)BF,1F)F"AF%xF#F$xF+F"AF#F-F?AF"sF:F+sF01F!rF&0F(9F.rF"BF 9F(9F!1F0sF.1F 1F(1F'F45F 9F 0F F F$F FF F#םE=߿8׼x׀߼(߰0߱@״h׶X׸Pߧ %׺`'߿8׼x߼(߰0߱@״h׶X׸P׺`'׭׌8F6kBF-cF:c׎0׭F.kBH F-c׍׎@F-׍F F-sF-c pF % F ׏@׎F {F.{F/s׭p F.c F>&׆*F<BF&)@F:)A/F:.F )F&<E揙ߩ װH:׏8׎0׭׬F0{F6sF/kBF.cF, F.kA׌׾׼x F c߿8߼(߰0 ߱@״h׶X%׸P׺`'$ $$동$ $׾$F F F F FF 1F H%P%%F $7F69#?FR5?īDR?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO?W'?īDR@Sni]ڇ@!TD-=|׽??!TD-?ALASKA CONFORMALToo many iterations in inversealcon-invd       $ 0 4 < @ D H L P T Z ^ x%% % % % % %0%XXX\\\% %|%%%%%`%x%88%88%  $(048<@DHLPTX\`dhlpt|       $( ,4hl|  Xhp     ( 8<P h l   x7alconinv.c"r_major#r_minor$lon_center%lat_center&false_easting 'false_northing((acoef)bcoef8*sin_p260+cos_p268,e@- nH1alconinvintLfalconinvP,48 /ecs/hdfeos/gctp/srcalconinv.cʿ15ahn lzp u }  s   %[&Z)W)W)W) W)W)W)W)~|}~  {zzz|~~|w}~  {zzz|~~|t\|V wys W*_|~}~  {||{zz}{!Efff i=}|~{ |X$(x% B 4: ; 9  .: ; 9 ? @ @|@ @AL CAC@@P AACF JCL CD@DD>HI>,+;alconinvintalconinv,>Sh-15E8<x4 DR<$,* L0 p50 ; BCp! "dU  k( v DXp Hp;p#p'7p^xp p/ (    $ 8pAp  azimfor.o/ 1230066663 7356 20 100664 4900 ` ELF "4(  (/6@GO U]hotx .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodataazimforinttsincosptitleradiuscenlonmeroriginoffsetp.lit8azimforadjust_lon__dcisacossinsprintfp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:azimfor.o<$!'!! '0F s'(  $ ׌ ׌ ׌׍ ׌ ߿%߼'<$!'Px!!h׀`pF m F c'F ' ח(׻י0׶׬F;BF7 ׬F cF,ןF gEF?@ןF EF?וכ%E߿@߼ ״8'P׮0׭׌0F.kBF-cF4c׎(׭F.kB F-cׅאF +F0{אF {F0x>ߨEDF%>E ה׭0׬( F kG F4ߩ% ׬(׭0 F c F ߪ%@ F ׆(ץF 1F&)A׎F +EF.h<ר(E%F BF.@<Eׯ(߿@ׯ(׮׌0F/sF%B F.c׌ F c߫%`AZIMUTHAL EQUIDISTANTInput data errorazim-invT       & , 2 6 : > B F J N 8%DH%LT%`%l %| %  0 0 %<%%% %0%<%X%%%  $(,4<@ P X\ dh pt x  0 D X\     $ 8 T `p   @ !TD-=|׽!TD- xaziminv.cr_majorlon_centerlat_originfalse_northing false_easting !sin_p12("cos_p120&aziminvintEaziminv4'7 /ecs/hdfeos/gctp/srcaziminv.cʿ+ vz| {    w}u (e!~}l=~~%00<A~% B 4: ; 9  .: ; 9 ? @ @|@ @A CAC@D CPA CQ@)aziminvintaziminv+@UnD8<x4 MQ*{$*x80x98p!TJ ` k (hu0 {p  Hp p +p7pHTp p- x h p   3ph@Cylinderical Equal Area<       & * 0 4 t%%% % % %  8 %h%%% 048<@DLX\hp        @DLPX p  (D x/bceafor.c#r_major$r_minor%e&es'lon_center (lat_truesc()false_northing0*false_easting8+cosphi1@,sinphi1H-kzP. indX2bceaforint cbceafor0h8z7 /ecs/hdfeos/gctp/srcbceafor.cʿ"8 s }~|~~{z|  yy u u u |}}% B 4: ; 9  .: ; 9 ? @ @|@ @A  D AU@ @B@$h C0A D@B BBh)3bceaforintbceafor+=IVk %)-D<@x4 M1O$ph*\006>p!<P DX f  q {p  @Hp 3p ~p 97p p`p p -       3ph@@@? ` `?B*B*?U?[[?-mCylinderical Equal AreaL       " * . 4 8 < @ D    %%% % % %8 %p ppt tt%%0%D%\%t%%,8<@DHLPX\h|       ,@Hl  $ 8 <L Pd h|  x[bceainv.c#r_major$r_minor%e&es'e_p4 (e_p6()lon_center0*lat_truesc8+false_northing@,false_eastingH-cosphi1P.sinphi1X/kz`0qph1 indp5bceainvint0pkbceainvp087 /ecs/hdfeos/gctp/srcbceainv.cʿ%;rmw ~~~k| {z|  rx{z}!~rrx{{{}}% B 4: ; 9  .: ; 9 ? @ @|@ @A p C0B BF@A$p CPAD@ACA0)_bceainvint?bceainv+=IVet 37;QUYD<@x 4 MA#d$0*t00X6>p! LP lx fP q 4 {p  XHp _p p7p`pN pn-  X `   3ph@Cylinderical Equal Area<       & * 0 4 t%%% % % %  8 %h%%% 048<@DLX\hp        @DLPX p  (D x,ceafor.c"r_major#r_minor$e%es&lon_center 'lat_truesc((false_northing0)false_easting8*cosphi1@+sinphi1H,kzP- indX1ceaforint bceafor0h8y6 /ecs/hdfeos/gctp/srcceafor.cͿ"7 s }~|~~{z|  yy u u u |}}% B 4: ; 9  .: ; 9 ? @ @|@ @A  D AU@ @B@$h C0A D@B BBh'0ceaforintceafor*<HUj "&*C<@x4 M1M$`h*\006>p!<P 4X f  q {p  0Hp x0p }p %7p \`p p +      3ph@@@? ` `?B*B*?U?[[?-mCylinderical Equal AreaL       " * . 4 8 < @ D    %%% % % %8 %p ppt tt%%,%@%X%p%%,8<@DHLPX\h|       ,@Hl    4 8H L` dx|  xXceainv.c"r_major#r_minor$e%es&e_p4 'e_p6((lon_center0)lat_truesc8*false_northing@+false_eastingH,cosphi1P-sinphi1X.kz`/qph0 indp4ceainvint0piceainvp,86 /ecs/hdfeos/gctp/srcceainv.c%: s nx ~~~l| {z|  rx{z}!~rrv1{{{}}% B 4: ; 9  .: ; 9 ? @ @|@ @A p C0B BF@A p C@ADC@A,'\ceainvint=ceainv*<HUds 159NRVC<@x 4 MA"c$,*t00X6>p! LP lx fP q 40{p  hHp \p p7p\pW pw+  ` h   3pE7ץ F<F%AF&)C`F%у׏0׎(׍ ׌F&F  h׈hHׇF B׼H׺@F(9@4p $׍ ׌F F F  ׌ F ׍P ׌X߿߼״8%׶0׸('ץ`׼H$׺@ $߿߼״8$Q׶0׸('` $׍ ׌ F  ׌ F ׍P ׌X߿<$!'!! ׏0׎(F l׍ %F g ׌׍hׁ׌F hF F, (׌`׾  F c׍Pׯ(בp׎X߿F/߼F/F1k@ߢF0sF/kAM%߾'0?=|׽Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONIC       $ ( , 0 4 8 < @ D H N T X \ ` d h p t x d%t%% % % % %$ %8 %X % %@ %@%%%%,%d0hp0x%|@ %@%%%%%P %t%%( <@DLT\hl px|      , <@ DHLPd       $ (0\`       $ 8<DTX\ `d|  xGeqconfor.cr_majorr_minorlon_centere0e1 e2(e30 e8 es@!ml0H"false_northingP#false_eastingX$ns`%gh&rhp+eqconforinteqconfor0D}8 /ecs/hdfeos/gctp/srceqconfor.cʿ!4qo v wx~$"p| ,${{ bw'Z&e yyy ~% B 4: ; 9  .: ; 9 ? @ @|@ @A, DA G@AAAdI  C0AD@ AA +K eqconforint+eqconfor,>S`mz#'=AEEHLx40 dMT$ *x006 R>p! ZP  f 4 q {p HpKp;p7php[ p{/  h p   3pE7ץ F<F%AF&)C`F%у׏0׎(׍ ׌F&F  h׈hHׇF B׼H׺@F(9@4p $׍ ׌F F F  ׌ F ׍P ׌X߿߼״8%׶0׸('ץ`׼H$׺@ $߿߼״8$Q׶0׸('` $׍ ׌ F  ׌ F ׍P ׌X߿<$!'!!D8׉`׈pׅXF)8>׆PF-BF%aAF(1F%(F&0B(0F!%׈EF ׈F F F'2E"DP בF1Cא0׌h׏(׎ '׍ F1c׎`׭ F.kC׌ F-cߢ@״0߿( %߾߼'@F(3B F(+ ߿(״0%߼߾'@?=|׽Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONIC       $ ( , 0 4 8 < @ D H N T X \ ` d h p t z d%t%% % % % %$ %8 %X % %@ %@%%%%,%d0hp0x%|@ %@%%%%%%% %( <@DLT\hl px|      , <@ DHLPd       $ (0\`       (,08lx    xHeqconinv.cr_majorr_minorlon_centere0e1 e2(e30 e8 es@!ml0H"false_northingP#false_eastingX$ns`%gh&rhp+eqconinvinteqconinvLD8 /ecs/hdfeos/gctp/srceqconinv.cʿ#4qo v wx~$"p| ,${{ bw'Z&e  ~s sx8x% B 4: ; 9  .: ; 9 ? @ @|@ @A, DA G@AAAdI < C@A O@ABL+L eqconinvint+eqconinv,>S`mz#'>BFEHLx4@ t<Y $ L* px00 p 6 R>p! P d f D4 q x{p HHpLpp~7php p=/ p ( 0  P `3phequifor.o/ 1230066985 7356 20 100664 3828 ` ELF "4(  '.8?GOZ^ jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodataequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:equifor.o<$'%!  $ ׌ ׌ ׌׍ ׌ ߿%߼'<$!'!!׀% F n F c׌ (׃פ(߿ׂ F#!ׁ߼F$ߢF#׸ F$F#@A%߾'0EQUIRECTANGULAR.      " & (4%8@%L%X%h %   % %  $,0< DH PT \` dl   xequifor.cr_majorlon_centerlat_originfalse_northing false_easting $equiforintAequifor0(47 /ecs/hdfeos/gctp/srcequifor.cʿ) ty  {{0~~% B 4: ; 9  .: ; 9 ? @ @|@ @A CAC@ C0AE B@ A()equiforintequifor+@UnD8<  x 4 G$ (*H(0H8p!X.J @` k up xHppp 37p jXp p - h  x   -p 6p  equiinv.o/ 1230067025 7356 20 100664 4100 ` ELF "4(  '.8?G MU]alx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodataequiinvintptitleradiuscenlonmeroriginoffsetp.lit8equiinvp_errorcosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:equiinv.o<$'%!  $ ׌ ׌ ׌׍ ׌ ߿%߼'<$!'!!ׁׂF!hAF"C׃F ׂ F$<F"`E $ $߿$߼'  ׌׎׭F sF.kC׌ F-c߿ߦ%߼' EQUIRECTANGULARInput data errorequi-inv4      " ( , (4%8@%L%X%h %  (( % %,%  $,0< DH PT \` dl   $ (?!TD- xequiinv.cr_majorlon_centerlat_originfalse_northing false_easting $equiinvintAequiinv P47 /ecs/hdfeos/gctp/srcequiinv.cʿ) ty  }y(@% B 4: ; 9  .: ; 9 ? @ @|@ @A CAC@ C AK@P)equiinvintequiinv+@UnD8<x 4 M!7$PP*(018p!4J H`P8 k u0P{p XHpp ip 7p TTp p - h ` h   3p ߿ ߢF E׶0F'RF*JBF/KF/F/sn׌׍׫תF-ZF,RF+F+RF*JBF)BH%߼('P$ $߿ $߼(׶0'PGNOMONICPoint projects into infinitygnomfor-conv<       & * . 4 D%PT%X`%p%| % %   %% %00% (,48<HL \ h x     , 0@L ? xgnomfor.c"lon_center#R$sin_p13%cos_p13&false_easting 'false_northing(+gnomforint0Fgnomfor47 /ecs/hdfeos/gctp/srcgnomfor.cʿ0y{|}   v v  zzy }y |$ xy% B 4: ; 9  .: ; 9 ? @ @|@ @A C0A E@ A< CPA F@ A)gnomforintgnomfor.:L^vD8<x4 M1O$p*`00`=8p!<J X`4P k u0 `{p  pHp p p 7p Tp  p :- hp    3p וכ%E߼߰(״@߾'P߿ ߼߰(߾״@'P׮8׭׌ F.kBF-cF4c׎׭F.kB F-cׅאF +F0{אF {F0x>EDF%>E ה׭8׬0 F kG F4%׬0׭8 F c F % F ׆ץF 1F&)A׎F +EF.h<ר0E%F BF.@<Eׯ0߿ ׯ0׮׌ F/sF%B F.c׌ F c%GNOMONICT       & * 2 6 : > B F J N H%TX%\d%t% % %   % %%% %,%8%P%%% (,08<@LP ` l |   ( 8<       4 L Xh   =|׽!TD- xgnominv.c"lon_center#lat_center$R%sin_p13&cos_p13 'false_easting((false_northing0,gnominvint0Hgnominv4'7 /ecs/hdfeos/gctp/srcgnominv.cʿ1x{{|   |t f~f~h k= ~%00<}% B 4: ; 9  .: ; 9 ? @ @|@ @A C0A E@ A$( BPBBMB@ A )gnominvintgnominv.COasD8<x 4 MQ$u$*h80h 8p!qTJ `Ph k Hu0 {p  Hp `p H+p s7p \p p&- Xx     3p0F mE%F `ׁ8F!`>$(%E@$$'$ % $ !ԌP F,(8`F XF  Hי`ךpלh%-F9DיF->חHם8$Ek@F=`>Et8%8! F,F  (ׯ(׍߫%F/klX!n`߿@F/ߪߩF/sF-BND-Z F F4F8F<@F F1F EF:<* 2&EF4בxF F2A߰8F:<׼X׸`E׺HF ֆDF F %(׌ F,באׯ(߯F1'x!F0{`״PF/߮ F/k@F  יD׳ חFaF9F7BגF5߹߿@F32%߼׶0'pF9`>$E(%F->EכP$$םPc$$ $߿@׸`׼X״P׺H߰8$߼׶0'pF;`>E ןXr$F=`>E ׁXG$F?`>E $>(%F!`>E;$ 6$ 7$ ]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiyWJM?WJU@ !TD-?=|׽?!TD-??d)?f;? _GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forward<      " & * . 4 $8DH%%  P\p % % % % (h%%,%@ @ %  (,04<@ $T x   ` d   4@P, xgoodfor.c"R#lon_center$feast`(goodforint Vgoodforx4@7 /ecs/hdfeos/gctp/srcgoodfor.cʿ/)%["k}u~y~~~p||}}i%q  v v   | { ^{} ~~ H {-{4 8  L1  {   8 O% % z" "y % B 4: ; 9  .: ; 9 ? @ @|@ @A C AC@A CpADK@ MEABC F @48:%F m% EhF eׂ8F"F"`>8E0$`$%F#e$ sF8ׅ@F aF$(<E9LׇF'!׆F 9F'0<@@!E6D(F%<E $׈׉F$BF)@<E F4(<E ׉$׊F)"@F*H<EF "*$  $  $  $  $  $$!$-$ 7$ A$  ߿8׋`$F+ <E׌F$`<E߿8߰0߼߱״ %׶׸('@DhF6h>EB8׎8F.ÂF.`>E{0$h$F/e50$$F0e F ׎hD`טF.ÂFc!׍pF.cF-BF6cF-cבxF dF2<E/߿8߰0߼߱״ $׶׸('@߿8߰0߼߱״ ׶׸('@$p$$_F-e׏׎PF/F/`>F.Â$E0%F6p>E0$$NF0e F  F וF5BF5F3Ï@$8!גF3@F2<E@1߿8߰0߼߱״ $׶׸('@ F F, F,5 $x$F-e׎$F. <E׏8F$x<EB$ $א$F0 <Eב8F$<E8$ $ג8$F2 <E$דF$<E-$ ߿8טF8 F ׍F F-cיxF fF;<Eyw$׍8$F- <E$׎F$p<E$ k߿8׏$F/ <E$אF$<E$ ^߿8ב$F1 <E$גXF$<E$Q߿8$߰0 $߿8߼߱״ $׶׸('@ד$F3 <E$וF$<E$4߿8ח$F7 <יXE$F$<E$(߿8%$כX$F; <ם`E$F$<E$ ߿8ן`$F? <׀E$F$<E$ ߿8ׁX$F! <Eׂ`F$<E$ $ ߦ׃XF#F#`>Eׇ`$$bF$eׅXF%BF%`>E׉`$$F&eF'F'`>E$$%FF(eF)BF)`>E$$ F*e$$ 4F+e$$ F,]?R8-hWJ<_R8-@?WJM@5AI?iyWJM?!TD-iyWJM?WJU? _?f;??d) !TG@@ !TD-!TD-=|׽@ !TGGOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverseB    $ * . 2 6 < $8DH%%  PT$(D %,0H %X %px % %%x8| 8%  % <@dhl (,04<@  8t |< LT`tD P `  4Hd|   $@Xt  ,P\ xgoodinv.c!R"lon_center#feast`'goodinvint Ugoodinv47 /ecs/hdfeos/gctp/srcgoodinv.cʿ7(%["k}u~y~~~p||}}i%q xxx %p  pE%~{(X(" rA L&[%Q" a%11 o,    W6K5t  y  1a Z   |  v  }$$v $}% B 4: ; 9  .: ; 9 ? @ @|@ @A C AC@AD C@A CD CBF@Ba @F@FFBsO)Ngoodinvintngoodinv%:JbfjD8<x  4 R6F$`* 0 50 ; FCp!BU XX k v \ p HppVpj7p|p p=- pX    $ 8pAp  gvnspfor.o/ 1230067226 7356 20 100664 4724 ` ELF0 "4( '/6=DKRZLcnu}.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.lit8.rodatagvnspforinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspforadjust_lon__dcisp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:gvnspfor.oF,h<$!'!! (0ׂ(F g' F"'F {  $ F ׾׬( $ ׬  ׬׍0 ׌(߿%߼'0<$!'(!!׀ 0F m F c'F ' @ח׻י ׶׬@F;BF7 8׈םF(Cצ8F 1ׁשF&ߣן0F=0<߿ ߢF E׶0ׂF&@F"@F#F"BF) ׆(F(9F'1fׄ ׅףעF%F$F#F F F _%߼('P$ $߿ $߼(׶0'P?GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for@       * . 2 8 X%dh%lt%( %( % % %  %%@%xXx%X 048<DHP\` p |     $,HL\l  xgvnspfor.c$lon_center%R&p'sin_p15(cos_p15 )false_easting(*false_northing0.gvnspforint0Mgvnspfor48 /ecs/hdfeos/gctp/srcgvnspfor.cʿ4|x}{{|$   w w zy ~y |(9yz% B 4: ; 9  .: ; 9 ? @ @|@ @A D0A F@ AL CPA F@ A+gvnspforintgvnspfor/;GYkE8<x4 MA'h$*8006>p!2@P t` ft q H{p  HHp p r p |7p Tp  p '/ Xx    3pߧ%E׏߿@߼ 'P׮0׭׌(F.kBF-c׭8F-c׎ ׭F.kB F-cׅאF +F0{אF {F0x>ߨE DF%>E׭0׬( F kG׌ F,ߩ% ׬(׭0 F c׌ F cߪ%@ F ׆ ץF 1F&)A׎F +EF.h<ר(E%F BF.@<E߿@ׯ(׮׭8׌(F/sF%kB F.c׌ F c߫%`?=|׽!TD-GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-for\       * 0 4 : > B F J N R V \%hl%px%( %( % % %  \p`Xdph%lX%%8%%%%%%P%`% 048<@HLT`d t  $8X   (0 @DP|     ( 4 DX \ xgvnspinv.c"lon_center#lat_center$R%p&sin_p15 'cos_p15((false_easting0)false_northing8-gvnspinvint0Mgvnspinvx468 /ecs/hdfeos/gctp/srcgvnspinv.cʿ!3| w}{ z{ $   zp(c4}}lA ~{40<E~% B 4: ; 9  .: ; 9 ? @ @|@ @A D0A F@ A CPA Z@x+gvnspinvintgvnspinv/DP\nE8<x4 Ma0$x*(@00((6Pz>p!\P ( f  q {p  Hp `pW:p7pTp p</ p     (3p0F+RF Rש0F*JC׈߿F(J׆ק(F(ׅ߼F(ߢF)9׾ F(1F')@E%߾'@HAMMER.      " & 8%D%T%d%   % % % $(,4<@ L \ `h     (??fe>?@ xhamfor.c"lon_center#R$false_easting%false_northing)hamforint Bhamfor`46 /ecs/hdfeos/gctp/srchamfor.cʿ- u{ y  zzp}}% B 4: ; 9  .: ; 9 ? @ @|@ @A C AD@A C@A EB@A`'nhamforinthamfor-9QjC8<  x 4 M$ `* 08p!.J @` k u0 {p Hppp U7p Xp p + 0`    3p  $E(%F->׃pF oׅ%אxE F `lF#`<Eh(% 8wF%`<Es$8$8$cC!L@ F,0F HF PF  Xחטך%F7& F F4@F6AF:F GF;CF F8<*2E F4$ $&כF EF=F8<ED׺H׶P׌׸X׼ ߰0 F,׏׍߿8ߧF/k״@%א8!F/0߼F/ߦF0kB׾(F/sF-BN%߲'`F >דבE$F1>E גF >EF3<E8F (>יוE$F5>E חF >EF9<E8$}8?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^?WJy?f ?f@ !TD-/ !TD-/]yk@5AIտ5A@ !TD-?=|׽?!TD-??d)?f;INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward.      " & $8DH%%   % % %,H0(4H8 %<( % (,04<@`dhlpt $,4   ( H` l xDH` ximolwfor.c"R#lon_center$feast0(imolwforint Jimolwfor48 /ecs/hdfeos/gctp/srcimolwfor.cʿ%)gou{y ~~~~ow   s s s !qh }s2 2  { +-{  %P~~ Z} } x% B 4: ; 9  .: ; 9 ? @ @|@ @A C AC@A\ B`BCDAT@ @H@ @B@ HD BBCH @468:S@ @S@ @+Oimolwforintpimolwfor&;KdhlE8<x  4 R !$@*0`50;XCp! .U @@ k  v 8p  8Hp p p7pp p/ X P X  x$ 8pAp imolwinv.o/ 1230067427 7356 20 100664 5556 ` ELFP "4(  ,3:|CHLW[gs.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.bss.lit8.rodataimolwinvintptitleradiusimolwinvasincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:imolwinv.o<$B'"!׆ׇ׈׉ ׋׊(+$!*() ('&׀0ׁ8ׅXׄP׃Hׂ@F%aBF$a%XF#`$PF"`#HF!`B"@F `!8F g$ 0 F ߿%׾߼' 'D <F->$!!!%F eE זׂhF"F"`>E[(8% 0׃xF#F#`>EZ(8$0׌$B!D0F,@F,k F$F  F ׍F-BF-BF-C$c!l F-cהF4߷8  F ׍F ׾@ F-cߤ߿04$E$X$b$t$  %׎$߱״F. <׶ ׏$E0߰(F$x<E-߼%߰(߼߱״׶ 'PאpF0F0`>EN$80בF1BF1`>EI$80ג$F2 <״׶ דE$F$<E$߰(߼߱'P߼'Pו$F5 <חיEכF$<E F$<E$F; <E$$ם$F= <ןE$F$<E$߰(׀$F <ׁE$F$<E$߰(8$]08$Y0ׂ$F" <׃ׅE׆F$<E F$(<E$ F& <E{$ $?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^f~?+}8k=+}8k=?f~?f;?d)@@ !TD-?WJy?f ]]yk@5AIտ5AINTERRUPTED MOLLWEIDE EQUAL-AREA2      " & $8DH%%  ht % % % % % (,04<@`dhlpt Dlx     D\4@DL  ximolwinv.c R!lon_center"feast0&imolwinvint Fimolwinv\48 /ecs/hdfeos/gctp/srcimolwinv.c˿ 'gou{y ~~~~ow zz!''~~~@|?   g# % x@yE~>@@@@ lE~=% B 4: ; 9  .: ; 9 ? @ @|@ @A C AC@Ax| APC ACBK AC@ @F AB@ID @>GB@ @GB@A @>AC@ @AC@\+Oimolwinvintpimolwinv&;KdhlE8<x   4 R$0\*0`50; h!Cp! 2U @ k P v Lhp  Hp p pM7pp4 pT/ X    $ 8p Ap 8isinusfor.o/ 1230067468 7356 20 100664 12116 ` ELF*( "4(! "*@06 D Rp` <krv{p|"5I.symtab.shstrtab.strtab.comment.text.sdata.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.MIPS.content.sdata.rel.MIPS.content.sdata.rel.sdata.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.reginfo.MIPS.interfaces.text.sdata.sbss.rodataerrorfprintf__iob.lit8isinusforinitIsin_for_freeIsin_for_initIsin_errormalloccosfreeisinusforIsin_fwd.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnamesbe::7.42:isinusfor.o0%8%$E $$ <$!'!!F FF a F F m(0 8פ8@ץ0'9$ $$߿(߼״ ׶'@DF >EjׁF!<ETׂF6<EP׉8׃F#<ET׆ F40<EP׆(F&F 9F:!D8F(F B&#F(0<3&׈0E\#'9$ $߿(߼$״ ׶'@F((<EAF%H<E=F&*F RFRF+*F ZF+0E*F)*`<4ƀ *P!CB(!(# '9' $߿P%@@*_80 $`@ק0XזPF'ׅX`DF%ׂHF!F% BF-BF4k@F kM DhDpFsF.!&1C3*U$!Cڮ F F4{F {Dx8!$ߴh߱pߵxߤ׺׼׾) !בװ0DF1FF0CF2߿P׸`׶X߼(߲߰ ߳ߢ״H< 4c#C\QPPH'߼(߲߰ ״H''9' $߿P%'9' $߿P%'9' $߿P%'9' $߿P%'9' $߿P%׶X׸`  %'9' $߿P%<$!'!!@%F kF cF8% @ '9$ $߿$߼'߿%߼'< 'D(<$$!k!!\4#ׁe^ׂx׀F h<ELׄhF-<EH߿F"p<ENF. <EJԈԇF.BF(9ԃ F.!F&F ͌,DF0*@H%("H#%)׆ԊH$ % EԄ0F$i߿ԉF&!XׇP iF% <߼`!E F !D 0KP#D(F)aF$)F$8<EF " FB!F(!DXD`FZFc!F$ZF,ZF+RF*J@'߿$߼'߿%߼'߼''9' $@ %'9' $@ %H%'<%$!!!\< 4#d '9' $߿߼߰' X \ % X߿%߼߰' '9' $߿߼߰' '0%$E $$ ߿$' 8P` error (isinusfor.c/%s : %s memory allocationinvalid parameterinvalid handleinvalid keyisinusforinitbad return from Isin_for_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valueIsin_for_initbad return from Isin_for_initisinusforbad return from Isin_fwdIsin_fwdIsin_for_free error (isinusfor.c/%s) : (%i) %s      ' + 3 9 ? E K Q [ _ c g k u {        4`  @ HXh  (8 <   8 X (04D   0 P `    %   $ $$h %|p%pPTXXp\`Xd%hpp%p %(,0p48<%@pLPTpX\`%dpptxp|%pp%p(p(%p%     %  % %@%%   %   %   %   %  $ %(D%L PT \ %`pppttt%((%     H  % H  H  % H        $  (X ,  4 % 8X X% h%  X  % X h  h %4444  !TD-@!TD-? =pA3ƀ\)?zG{zG{@zG=|׽@ !TD-? !TD-??!TD-@!TD-?_0mȃ x|isinusfor.c__iob]ISIN_BADALLOC^ISIN_BADPARAM_ISIN_BADHANDLE`ISIN_BADKEYeisinT error jisinusforinit ( Isin_for_initpLisinusforpIsin_fwd Isin_for_free > Isin_error f /ecs/hdfeos/gctp/src/usr/include/internalisinusfor.c˿stdio_core.hˤג: :~:~8x (6Po{{vhk~z(!~V((t((t((,nn-~%$3' ||{~z{{x{ | >B.| .B>B;|O, & }}|~3'3'3's3'3' ({} ' tx(ru $ w p v xw ~w w,-~&f" c* *(" {}t  ~~% B 4: ; 9 < ? 4: ; 9  .: ; 9 @ @.: ; 9 ? @ @.: ;9 ? @ @.: ;9 @ @|@ @A   C@AGB C@Xp CAE"CB D@vDb(GBBB BB B:<>Z68sp| CAE@, BA@BZ @B@ A AC@B < BG@ _isinusforinitIsin_for_initisinusforIsin_fwd:Isin_for_free'error^Isin_error?Wp.26RVZrvzs,0PT x4 $^3$P *P 1p7p?p!Q  g q@ |p     0p Hpp!`p&p&4p'  p'cp(`+* (: )pJ )xp[ )n ) *p*p * isinusinv.o/ 1230067508 7356 20 100664 12100 ` ELF* "4(! "*@06 D Rp` <krv{p|"5I.symtab.shstrtab.strtab.comment.text.sdata.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.MIPS.content.sdata.rel.MIPS.content.sdata.rel.sdata.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.reginfo.MIPS.interfaces.text.sdata.sbss.rodataerrorfprintf__iob.lit8isinusinvinitIsin_inv_freeIsin_inv_initIsin_errormalloccosfreeisinusinvIsin_inv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnamesbe::7.42:isinusinv.o0%8%$E $$ <$!'!!F FF a F F m(0 8פ8@ץ0'9$ $$߿(߼״ ׶'@DF >EjׁF!<ETׂF6<EP׉8׃F#<ET׆ F40<EP׆(F&F 9F:!D8F(F B&#F(0<3&׈0E\#'9$ $߿(߼$״ ׶'@F((<EAF%H<E=F&*F RFRF+*F ZF+0E*F)*`<4ƀ *P!CB(!(# '9' $߿P%@@*_80 $`@ק0XזPF'ׅX`DF%ׂHF!F% BF-BF4k@F kM DhDpFsF.!&1C3*U$!Cڮ F F4{F {Dx8!$ߴh߱pߵxߤ׺׼׾) !בװ0DF1FF0CF2߿P׸`׶X߼(߲߰ ߳ߢ״H< 4c#C\QPPH'߼(߲߰ ״H''9' $߿P%'9' $߿P%'9' $߿P%'9' $߿P%'9' $߿P%׶X׸`  %'9' $߿P%<$!'!!@%F kF cF8% @ '9$ $߿$߼'߿%߼'< 'D(<4#$!b!!\׉P$eR׊HԆԄF&q׀xF&!F <׆hE<F$0<E9߿ԇ F$2F(9F 9Ԉ,D 8ԇP߿F(j&0*X %F(9׈(I#$B@9)e!eD0F1dF'1F&!F% <$E ׆F$H<Eԅ0F&!F')@F%P>׉XEF()@F)(<߼%E߿F&*'߿߼'%߼'߼''9' $߿@ %%'9' $߿@ %'<%$!!!\< 4#d '9' $߿߼߰' X \ % X߿%߼߰' '9' $߿߼߰' '0%$E $$ ߿$' 8P` error (isinusinv.c/%s) : %s memory allocationinvalid parameterinvalid handleinvalid keyisinusinvinitbad return from Isin_inv_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_inv_free error (isinusinv.c/%s) : (%i) %s      ' + 3 9 ? E K Q [ _ c g k u {        4`  @ HXh  (8 <   8 X $0@L     0 @ t   %   $ $$h %|p%pPTXXp\`Xd%hpp%p %(,0p48<%@pLPTpX\`%dpptxp|%pp%p(p(%pp%p     %  % %@%%   %   %   %   %  $ %(D%L PT \ %`pppttt%((%    x  |H  % H  H  % H         X   % X 8% H% h  lX p  x % |X h  h %4444  !TD-@!TD-? =pA3ƀ\)?zG{zG{@zG=|׽@ !TD-? !TD-??!TD-@!TD- x|isinusinv.c__iob]ISIN_BADALLOC^ISIN_BADPARAM_ISIN_BADHANDLE`ISIN_BADKEYeisinT error jisinusinvinit ( Isin_inv_initpLisinusinvpIsin_inv Isin_inv_free > Isin_error f /ecs/hdfeos/gctp/src/usr/include/internalisinusinv.c˿stdio_core.hˤג: :~:~8x (6Po{{vhk~z(!~V((t((t((-nn-~%$3' ||{~z{{x{ | >B.| .B>B;|O, & }}|~3'3'3's3'3' ({} % tx tu pzh w w v w$p0{~gx"a  r 9(" {}t  ~~% B 4: ; 9 < ? 4: ; 9  .: ; 9 @ @.: ; 9 ? @ @.: ;9 ? @ @.: ;9 @ @|@ @A   C@AGB C@Xp CAE"CB D@vDb(GBBB BB B:<>Z68sp| CAE@ BA@B A AC@B < BG@ _isinusinvinitIsin_inv_initisinusinvIsin_inv:Isin_inv_free'error^Isin_error?Wp.26RVZrvzs,0PT x4 $^3$P *0 1P7P?p!Q  g q|@ |p     0p xHpp!@p&p&$p'  p'cp(L+* (x: )XJ )`p[ )n ) )p)p *lamazfor.o/ 1230067548 7356 20 100664 4532 ` ELF "4( !)07>EM Sd\gow .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.text.sbss.rodatalamazforinttsincosptitleradiuscenloncenlatoffsetp.lit8lamazforadjust_lonsprintfp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:lamazfor.o<$!'!! ( F g''F s  $ F ׾ ׬  ׬׍( ׌ ߿%߼'0<$!'px!!h׀`pF o F c'F ' '' ׬ׁצ׃נעF&F!ׁF#׉׎F"׬׋ F!2ߣ`ׄ(EׅF.F.KF sF.)BF&+BF-cF,Zk׉׊רצקF*BF)1F(9F'1߿pF&)Bߢh׾F%!D%߼x'F)+' D&x $'  $߿p$q߼x׾'LAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward@       & * . 4 8 D%PT%X`%p%| % %   %% % % P%P (,48<HL \ h x    0 8 < HT\  @? xlamazfor.c"lon_center#R$sin_lat_o%cos_lat_o&false_easting 'false_northing(+lamazforint0Flamazfor48 /ecs/hdfeos/gctp/srclamazfor.c˿0y{|}   t t $! zyx1~~x(z% B 4: ; 9  .: ; 9 ? @ @|@ @A C0A E@ A d CAF@A+lamazforintlamazfor/;Oc{E8<x4 < !A$`*x00x^8p!@J ``x\ k u0 {p  Hp (p p 7p 1Xp p / p H P  p 3p lamazinv.o/ 1230067588 7356 20 100664 5156 ` ELF "4( !)07>EM S4\bjp{.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodatalamazinvinttsincosptitleradiuscenloncenlatoffsetp.lit8lamazinvasinzp_erroratan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:lamazinv.o<$!'!! 0(F g' 'F s  $ F ׾ ׬  ׬׍0 ׌(߿%߼'0<$!' !!ׁ0׀(F!hAF `0F!B(F F!F ׁׂF"B8F!ׁF <E@ F ׌'' F,ׯ8׎F {ߣߢF/p<׍אEMp߿@%߼ 'P$ $߿@$s߼ 'P׎ ׭׬0F.kBF-c׭8F-c׎׭F.kB F-cׅב F ,F1׏F F0x<ߦD0EF&(<E ׬(׭0 F c׌ F cߧ׭0׬( F kG׌ F,ߨ F ׆ץF 1DhF&)AF-(2E߿@ׯ(׮׭8׌ F/sF%kB F.c׌ F cߩ LAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverseX       & * 0 6 : > B F J N R H%TX%\d%t% % %   %4%8 8%  %$%4%P%`%x%%% (,08<@LP ` l |    $ ( @ TX|      , 0X \t   @?=|׽!TD- xlamazinv.c$lon_center%lat_center&R'sin_lat_o(cos_lat_o )false_easting(*false_northing0.lamazinvint0Jlamazinv48 /ecs/hdfeos/gctp/srclamazinv.c˿ 3x{{|   | s % t t m(uA ~  < };% B 4: ; 9  .: ; 9 ? @ @|@ @A C0A E@ A4 CPA V@+lamazinvintlamazinv/DPdxE8<x4 MQ)z$*x80xF8p!XJ ` k Lhu0 ({p  Hp (p p)7p`Tp p/ x     3pE.F %׌  F,+׌0 F c߿ ׎H׏@׍PF4B߼F4ߣF1{ߢF0snF/k@M%״'0( F kF F F ׌F  ׍0ח8וF7Bץ(F5$ $߿ $,߼״'0=|׽?!TD-Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedz       " & * . 2 6 : > B F J P T \ ` f j n r \@`d@h%l%% %%%4 %D %\ % % %PP % %%% %%P%h%%%T %h %x %@h@%h4@HLX       $ ,< HL PTh         D X |   L \ lp |  xlamccfor.cr_majorr_minores e!center_lon "center_lat(#ns0$f08%rh@&false_eastingH'false_northingP+lamccforintqlamccfor0<}8 /ecs/hdfeos/gctp/srclamccfor.c˿,3oo o t o&\$`{|$$ $},{{{!pxx $}o0(% B 4: ; 9  .: ; 9 ? @ @|@ @A$ CAC@B ABH C0AJ@B+lamccforintlamccfor,>KWlE@Dx 4 DME$*X00 6>p! [zP  f 4 q {p Hp@p_p7p\ps p/  ` h   3p B F J P T \ ` f l \@`d@h%l%% %%%4 %D %\ % % %PP % %%% %%P%h%@ %X%%%4@HLX       $ ,< HL PTh         D X | (048 H \  xlamccinv.cr_majorr_minorese center_lon !center_lat("ns0#f08$rh@%false_eastingH&false_northingP*lamccinvintslamccinv<8 /ecs/hdfeos/gctp/srclamccinv.c˿&2nnn s n'[%_{|$$ $},zzz!o }v vx ,z{(t{% B 4: ; 9  .: ; 9 ? @ @|@ @A$ CAC@B AB$| B@B BR@AB + lamccinvintlamccinv,>KWlE@Dx 4  TMJ$* X00 (6 (h>p! rP  f  q {p Hp p(p7p<dp p/      3p (F nE 0$ $߿0$5߼׸('@ F kF F F ׌ ׍׬  F-cי0טF9׎@F8ߦ׬F/s ߿0כ8߼F Bߧ%׸(F='@?!TD-=|׽MERCATORTransformation cannot be computed at the polesmer-forward@       & , 0 4 8 T%|%% % % %  ,@04@8 %<\%p%%%( 048<@DLXdx     ( X d tx |  xmerfor.cr_majorr_minorlon_center lat_origin!e !es("m10#false_northing8$false_easting@)merforint Omerfor46 /ecs/hdfeos/gctp/srcmerfor.c̿/rp r|  zz( |,$~~% B 4: ; 9  .: ; 9 ? @ @|@ @A D AG@ C@A KC@'merforintmerfor*<QfrC8<x4 MQ&w$*xH00x6L>p!@P ` f|\ q  {p  Hp @p ?p $7p [Tp p +     3p p!!8P \P f q {p Hp p p 7p DTp p +  p x   3p o% F.c׌F,׍ F-c׾ ߾ F ׍׎߿F-@ߢF.kBM%߼'0MILLER CYLINDRICAL.      " & ,<%@H%X%h%   % % % $(08D P ` dl     ?!TD-@ xmillinv.c"lon_center#R$false_easting%false_northing)millinvint Amillinv0<47 /ecs/hdfeos/gctp/srcmillinv.c̿- vz|  }yy{E% B 4: ; 9  .: ; 9 ? @ @|@ @A C AD@A C0AGD@ B <)omillinvintmillinv.:RkD8<x  4 M $0<*p 0p8p!.J @` k u0{p Hppp b7p Xp p - @`    3p  B F J N R V Z ^ 4@%DL%X%d%px %|0 %0H %H % %  $ %8 %d%% %%%%%$%@%l%  $(,08<H PT \` hl t     , @HX px             , 0 4HLTX tx?@ xobleqfor.clon_centerlat_otheta m!n "R(#sin_lat_o0$cos_lat_o8%false_easting@&false_northingH(obleqforintOobleqfor48 /ecs/hdfeos/gctp/srcobleqfor.c̿0r  v  $mnm 8*=T$4% B 4: ; 9  .: ; 9 ? @ @|@ @A CAC@( CpA CAA@AE+obleqforintobleqfor/?O[gs E8<x4 $Mq,$*P0U8p!fJ <` k u0 {p  Hp pp7p`px p/  X `   3p B F J N R V Z ^ b 4@%DL%X%d%px %|0 %0H %H % %  8%L%p%%%%%, %8%L %|%%%  $(,08<H PT \` hl t       @ T X \lx        4 @ TXl   ?@ xobleqinv.clon_center lat_o!theta"m#n $R(%sin_lat_o0&cos_lat_o8'false_easting@(false_northingH*obleqinvintQobleqinv48 /ecs/hdfeos/gctp/srcobleqinv.c̿2r  v  $l}|pl|i~$,@a% B 4: ; 9  .: ; 9 ? @ @|@ @A CAC@, CADAFD@BF+obleqinvintobleqinv/?O[gs E8<x4 Ma.$*P0U8p!jJ ``  k u0 {p  Hp 8pJp&7p]dp p/      3pF,cF-cF cוXה`F5׍EF-c F Bx߿߼%״׶x'$׼ $߿߼$״׶x' F F sx׎H ׌(F ׅXׇPF%тF(9F'1׉F&1D@F)9׸F'@<׺hF E׉ F)@>׺׸EF 8F 2׶ F F F F ׌(  ׬׭F  ׌(זX׬ H F F׬HF F ץ׈pצקF%B׍@F&9F-8ׅ8E_א F F<>EMF%F {FEGF F%F F<>E1׼'' ׬'' F ׏ Dp׌h׍F/p>F,cF-cF cוXה`F5׍EF-c F B x F +FׯF/pF 4 F BF Gx$׼ $߿߼$״׶x'$׼ $߿߼$״׶x'$׼ $߿߼$״׶x'<$!'!!׀PF mH F cךX8 F:ׄ8F F$׆F F#0<EL@D(F4(>׀XEׅ`F (F (F%F:כF EF;@F EF&>E׺H׶X$׸( $߿$߼״P'`׍ה(׎xF6kF-@F4-F. F-cF F:הג@דF0߿F8F4ߧ׶XF3ב׎8׏ߦF8B׺H״PF0{F1s߼%׸(F/s'` F F F F ׌(ךX״8F X F FחpF םF7Cי(F=כןF90F;׻@F=F?F9F;F: F7ם`F ׆F=<ׅ` E(F:.F8׍׬@׎F-c׭0F.kBF-c F cר DHׅ`F)@טPF8.F:~F8>?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD->z򚼯HOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Point projects into infinityomer-for       $ ( , 0 4 8 < @ D J P T X \ ` d h l p t x |                    p%% % %, 4 %8 D %X %h %x% %HH %%% %4%x%h%h%%t %% %%%%%%% %% % % (, %@DH %X\` %t| %% %P%l%%h%hh%h $h(0%4h```ddd% %004<0D%H%  % % 4% % %, DHLPTX`dltx|   $( 0< @HT ` dp      ( ,0<DH\`ht      <Hl |      4D\        4 8P Th l     48@L `h     t   ( dh lp    $ < D L T X t          xomerfor.cr_majorr_minorscale_factorlon_origin lat_origin !e(!es0"false_northing8#false_easting@$sin_p20H$cos_p20P%blX&al`'dh(elp(ux)singam)cosgam*sinaz*cosaz/omerforintTomerfor` D7 /ecs/hdfeos/gctp/srcomerfor.c̿:<lit}l~~~~~~" ( |||9$  DD<E; @V$&~ $/1~(!}|z,|($-y z~!$ D |w v ophi  s s  }) y}}$!~~],E~~-4 % B 4: ; 9  .: ; 9 ? @ @|@ @A,T CB:BGAA@8AV8` C`AF@ABUE8B68M^ )qomerforintomerfor+=Ti~+<M]mDHLx 40 dMD$ *(00(h69>p!P  fl q x{p Hppp"p7p"p#' p#G- #x $X $`  $ $3p$F,cF-cF cוXה`F5׍EF-c F B߿߼%״׶x'$׼ $߿߼$״׶x' F F s׎H ׌(F ׅXׇPF%тF(9F'1׉F&1D@F)9h׸F'@<׺pF E׉ F)@>׺׸EF 8F 2׶ F F F F ׌(  ׬׭F  ׌(זX׬ H F F׬HF F ץ׈xצקF%B׍@F&9F-8ׅ8E_א F F<>EMF%F {FEGF F%F F<>E1׼'' ׬'' F ׏ Dp׌p׍F/p>F,cF-cF cוXה`F5׍EF-c F B  F +FׯF/xF 4 F BF G$׼ $߿߼$״׶x'$׼ $߿߼$״׶x'$׼ $߿߼$״׶x'<$!'!!ח8ו@כיF7mF5eAF;BF9F-c׍X@F9הF;BF-cF7@׍`F c HF5 F-cזF ׌X׍`ח(F,0F6F-c8 F7ׇׅר0F 9צ8F6)BF')@ׇ(F(1F'1F&)CכF .EF;@כߣF Eߤ(F;>ߢ׈`E׆D8F%8>EFh׉8߿ ׶H%߼״@'P׍F%kF-+F/sF s׏XF/kC׌x F.cF F' ׌(ߥ߿ %׶H߼״@'P׌X׍`F, F-cׯ(׎׌F/sF6cF F F.c׍XF-C׌ F-cߦ?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD-?!TD-OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point:        $ ( , 0 4 8 < @ D J P T X \ ` d h l p t x |                   p%%%$ %0 8 %< H %\ %l %|% %HH %%%$%8%|%h%h%%| %% %%%%%%% %% % %(04 %HLP %`dh %| %%%X%t%%h%hh%h(,h08%<h```ddd% %%% 4% X% p%, DHLPTX`dltx|     (, 4@ DLX d ht       , 04@HL`dlx    $4DPt      <Ld         < @X \p t     $(<@HT hp    $ tx|  0@Lhp   $ ( , @ D H ` h l xomerinv.cr_majorr_minorscale_factorlon_origin lat_origin !e(!es0"false_northing8#false_easting@$sin_p20H$cos_p20P%blX&al`'tsh(dp)elx)u*singam*cosgam+sinaz+cosaz0omerinvint\omerinv` D-7 /ecs/hdfeos/gctp/srcomerinv.c̿8=nkv}n~~~~~~" ( |||9$  DD<E; @V$}~ $/1~(!}|z,|($-y z~!$ D |w v ophi  |oo}~oo~~~~8|z| x8 z}H % B 4: ; 9  .: ; 9 ? @ @|@ @A,\ CB:BGAA@8AV `$ CPANJ@ A )~omerinvintomerinv+=Ti~,8IZjzDHLx 4P MP!$@ *00h60>p!?P ( f\ q $h{p Hpp1p!7p!hp"g p"- " # #  # #3p#EF2dF24F2@q׏0א(׮׭F0sF/kBF.;F.kAF-cF,ZK%߼('P$ $߿ $߼(׶0'PORTHOGRAPHICPoint can not be projectedorth-for<       & * . 4 8%DH%LT%`%l %| %   %%%00%  $(,4<@ P X\ dh pt x    (0<l =|׽ xorthfor.cr_majorlon_centerlat_originfalse_northing false_easting !sin_p14("cos_p140&orthforintEorthfor47 /ecs/hdfeos/gctp/srcorthfor.c̿+ vz| {    w w E~~} u} uz }~% B 4: ; 9  .: ; 9 ? @ @|@ @A CAC@H CPA F@ A)orthforintorthfor+@UnD8<x4 M1!R$p*X80X98p!<J X`(P k xu0 p{p  Hp p p 7p Tp Y p y- x  (  H X3p `וכEU%{߿@߼ ״8'P׮0׭׌0F.kBF-cF4c׎(׭F.kB F-cׅאF +F0{אF {F0x>ߤE+DF%>Eה׭0׬( F kG F4ߥ%$ $߿@$߼ ״8'P׬(׭0 F c F ߦ% F ׆(ץF 1F&)A׍F +F.h>Eש(F JEF)h>Eׯ(׮׌0F/sF%B F.c׌ F cߧ%ORTHOGRAPHICInput data errororth-invX       & * 0 4 8 < B F J N R 8%DH%LT%`%l %| %   %% %%%( (%<%H%d%%%  $(,4<@ P X\ dh pt x     48hx      0 D ` l|   >z򚼯H=|׽!TD- xorthinv.cr_majorlon_centerlat_originfalse_northing false_easting !sin_p14("cos_p140&orthinvintEorthinv47 /ecs/hdfeos/gctp/srcorthinv.c̿+ vz| {    w}u ~~m= ~%0o(x0PI% B 4: ; 9  .: ; 9 ? @ @|@ @A CAC@D CPA CQ@)orthinvintorthinv+@UnD8<x4 MQ*{$*x80x18p!XJ ` k 8pu0 {p  Hp p !p7pVTp p- x p x   3pׄX׈׆PEF ߼״@F(׸8F(1ߢ F')@F&!D%߾'P'' F ׏8׎0׍(F  ׌ ׮׭׌@ 0׬F  F,׎F.BײF1BF2Cא`׏F1F {װF/F0{בPװ0߿(F1׸8ߣ F0{׍X״@F/s߼%߾F.k@m'P?>z򚼯HPOLYCONICP       $ ( , 6 < @ D H P%`%p% % % % % %%%H%% %%%( 048<@DHTX \dh ltx |      $ 0P\dhl      $@\ x3polyfor.cr_majorr_minorlon_centerlat_origin e0  e1( e20 e38!e@!esH"ml0P#false_northingX$false_easting`(polyforintQpolyfor4N7 /ecs/hdfeos/gctp/srcpolyfor.c̿. s q |  yys~}s t x (%~,}}}}% B 4: ; 9  .: ; 9 ? @ @|@ @A DAG@$t CPAD@ BBB)7polyforintpolyfor+=Rgt )-1D8<x4 4M9$*Xh00X6h >p!rPP  fD\ q {p  pHp 7p RpA7px\p p- (     3p(F `(%ו%8E F!F @D%߼ ߰('P׌@׍ ׎(׏0F א8F1'@ F3F MD@߿@$J߼ ߰('P׮8׬׍F.c F-c  0׭0F kC׌ F-cߣ߿@`?>z򚼯HPOLYCONICL       $ ( , 8 > B F H%X%h%x % % % % %%%%%%% $(,48@DP T\` dlp t|      $,4H     x'polyinv.cr_majorr_minorlon_centerlat_origin e0  e1( e20 e38!es@"ml0H#false_northingP$false_eastingX(polyinvintPpolyinv447 /ecs/hdfeos/gctp/srcpolyinv.c̿. sr {zx|   }|txr zD }% B 4: ; 9  .: ; 9 ? @ @|@ @A DAC@4 CPA L \@4)+polyinvint polyinv+=Rgt!%D8<x4 4M4$4*`006 >p!*LP xx fP q @{p  Hp 0+p [p y7p Tp p$- X      03p8F?מ(F>/ן F>F? ׬(ׁ8߿׃`F>BןX߼F!ߢF!B׾ F$F!_%߾'@?!TD-=|׽@POLAR STEREOGRAPHICB       " & . 2 6 : d%% % % %4%L %d %%% %0%( @DLT\`ptx    $8< PT \hp    , 8@H x1psfor.cr_majorr_minorese e4 !center_lon("center_lat0#fac8$ind@%mcsH&tcsP'false_northingX(false_easting`,psforintt^psfor<G5 /ecs/hdfeos/gctp/srcpsfor.c̿3 u s xyz ~|w|!t~$yy}}  (}}% B 4: ; 9  .: ; 9 ? @ @|@ @A$t DPAH@AA A  C@A EB@A%5psforintpsfor);HTav '+/B@Dx4 MQ!r$*h0006@>p!TBP h f8 q 8{p  Hp 5p EKp 7p `p' pG) p    @ P3pXp!@P ` f,, q X{p  Hp 0(p Xp 7php p)  h p   3probfor.o/ 1230068354 7356 20 100664 5668 ` ELF "4(  *18?GNYeq.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.text.sbss.bss.lit8.rodatarobforintptitleradiuscenlonoffsetprobforadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:robfor.o'<$B"!מבpגxדוחיכןם$!?h=`;9X75P32H1>׏ א(׎׋׊׉׈ׇ׆ׁׂׅ׃!pׁ#x% ׅ "ׂ&׆('(ׇ0(׈8)0׉@*׊H+8׋P.׎X0Hאh/@׏`0@/.8+*0)(('& "%ׄ׀$$ׄ0D  #"!F$F g$%$&P ԲԱ$F$F$B $ F ׾ ׬׍ ׌߿%߼' <$!'!!׀% F o F c׉8F)C׊@F*JC׋HF JEF+JF Z͏DX$cD`׍XC!CFZBF>`>EF+JA׋PJF-GF#)F)JLF&)AF$IF-;BF%F*cF+!F#@F.JBF-c߿F$F+ׅF,RߤF+JBF#׾ F*BׁF"(ߣF)9F+B׆F"׌hF(9׊`F"@%F')BE F**߿߼F+R߾%׾ F*2j'0F,+F+b߼߾F+2'0vȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!R׏ א(׎׋׊׉׈ׇ׆ׁׂׅ׃!pׁ#x% ׅ "ׂ&׆('(ׇ0(׈8)0׉@*׊H+8׋P.׎X0Hאh/@׏`0@/.8+*0)(('& "%ׄ׀$$ׄ0D  #"!F$F g$%$&P ԲԱ$F$F$B $ F ׾ ׬׍ ׌߿%߼' <$B'"!׋׊8F+j׈@F*YBF()C׉F))CׁH׎PF!(BF.CאXF EF0@F MגD%F2d P%D0$B @$IF )ׇH@!+`y%J F*+F,kF/kAF,{F-cF%!AF*)BF-)CF*cBF-+BF%cF-;AF-cF,;F,)BF%0>E %F+0>D8$ ׄ`EH%בF9׌xדp@% gF%9F.9fׅhF(1F%9F+9F,5BF(CF)CQF5!F 5F7<%E)LF.#F {F0~@F MD PB(!ԧԦFaԭF9{F*5F'mAF7kAF/BF-9F/{BF%BF-9F51F%9F'1 F&IF31F%9F)CBX!nprF*F.AF3F/BF2sF%BF-sF1@F%sF.k@F-KC׈׌F("F-c ߿߼%߰' ߼߰' $ $߿$r$ $ $߿$F$9%)LF.#vȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rh?FRROBINSONToo many iterations in inverserobinv-conv2     ( ,   HT%% % %  t|P %00 %00 % $(,048<@DLP LP\     ,48DT (,D8<@    xrobinv.c%lon_center&R'false_easting(false_northing)pr*xlr.robinvint trobinv 46 /ecs/hdfeos/gctp/srcrobinv.c̿12 xa "~` "~g 'V '}}~fgfhhhhhhhgh ]&Y  X *L3        { zn   +^"` }{{   ~r q s~~  {x}~ q(K (( k s% B 4: ; 9  .: ; 9 ? @ @|@ @A A B@BB C ATB@'robinvintrobinv-9QjwC8<x4 A $0* 0 P50 ; <Cp! 2U @ k ` v p HpPpp7p+Tp p+ p @ H  h$ x8psinfor.o/ 1230068434 7356 20 100664 3700 ` ELF X "4( &-4<CNR ^jx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodatasinforintptitleradiuscenlonoffsetpsinforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:sinfor.o<$'%!F g $ F ׾ ׬׍ ׌߿%߼' <$!'!! ׀%(F m F cF  F ׃߿ׁׂF#߼ߢF$F#״(׸ F$F#@A%߾'0SINUSOIDAL*      " ,<%@H%X%h%   % % $(08D P ` dl   xsinfor.clon_center R!false_easting"false_northing&sinforint >sinfor0,46 /ecs/hdfeos/gctp/srcsinfor.c̿* vz|  {{~% B 4: ; 9  .: ; 9 ? @ @|@ @A C AD@A$ C0ACC B@ A,'nsinforintsinfor -9QjC8<  x 4p G$,*0 00 8p!;*J h8` k up HpXpp7p\p F p f+ `     0-p 86p  Psininv.o/ 1230068476 7356 20 100664 4068 ` ELF "4( &-4< BIMX`lx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodatasininvintptitleradiuscenlonoffsetp.lit8sininvcosadjust_lonp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:sininv.o<$'%!F g $ F ׾ ׬׍ ׌߿%߼' <$!'!!ׇ׈F'iF(9׉F 9׆F$H<׊(%F&aE׉F*"F RF*H<ׅE߿%߼'  F ;׎׭F sF.kC׌ F-cߢ@$ $߿$߼' SINUSOIDALInput data errorsinusoidal-inverse0     $ ( ,<%@H%X%h%   %8 %P(TX(\ %` $(08D P ` dl     0 4L ?!TD-!TD-=|׽ xsininv.clon_center R!false_easting"false_northing&sininvint >sininv x46 /ecs/hdfeos/gctp/srcsininv.cͿ* vz|  }yy}y( % B 4: ; 9  .: ; 9 ? @ @|@ @A C AD@A C AH@x'nsininvintsininv-9QjC8<x 4 M $0x* 0;8p!0J @`T, k u00{p HHpp ;p 7p ETp p + ` H P  p 3p {׫F>sF>kBF/&F>cF.F>ZF-F,րF+$Z$D %''(' ''F!' ד׹(׷ ׵ײF3BױF3F3BF9&F3F7F3BF5F2րF1 %''(' כ׾''' ׽׃F:@F#Cס(ׂF4@F"Cנ ׂF6F"׿ׂF8F"ףF<F"߿p߰x߲߱״X׶P׸H׺`0 (%߼8׼@'h(0D ׅ ׆% F!!׉8ׇ0F)"B׈(F)9ה@XF&9 ׌X׊PF,#׋HF,Rה`XF&R%pE % $ߤ0 $<$!'p!!ׅF-(<hF `F mE`F -ׅF%<EF -D(F4(>E׃ׁ׃F%2EׄF%<E׆מF  F>ךׁpןCF!ׁ`F?F!%@`_לXF<F<F  F F EF:<EF זF6倏 F ׍h׬F-BF-cF  F8c׶F F F F/sF sF:p<&*3EF &1׆*$ץKׇF&)B׀F6(<EF (F <EBF%<EF6>E״׌XF4c F,DF >׍׎xEF FF6(<E׬ ׸בF ׯF1F0{%ג' $׾׺׸׼׶߰'߱ $߿$߼p״' ׬׎pF.׍F.F.kAF kD׬׎hF.c׎`F.F,׾F.׺׸F.c߰߱ F-c׌׍F,׼ F-c F F  יHF"Bח8כו@F=BF=F;@F=BF;F;@F9F7CF Dי`חXF9הPF F7BF4׌F5xF7F,x F ׌ F,ׯ׮F/sF4sױא׍F1׏ F6kBF0k@F {F/k@F.kA׎׌ߦhF.kBF, כP׹F;BF4׷xו0ד(F BF7߿׶F5אF4הבߧ`ߨhF4߼p״F3@%F2''H (0׍, %%F-c% ,כHF"Bם8א׏@F1F1BF0F1{F0@F0{F;F0{F {F;F ןX׎`F?sF.F/sxיPF.uF9BF5@F DF=BF=םhF?BF=F;8F9F7F5׍4 x@ F-c׍F  F-cיP׵8הx7F9@ߡ0F5׵@߾F 7  F5ߢ(׍F N ߱ F-c߿߰ߣ F ״Ho'P?@?FR5?)O?[Ow@` =p?򽴆&?=?SC~@`)?lī?l0a\j@Lc˰>. &֕@@@V@>@N@.@F?!z!z?!TD-@jz)U8^@|3!>z򚼯Hz򚼯H@ !TD-@!TD-??!TD-@?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without conv som-forward      & , 2 8 > B J N R V Z ^ b f l p t x |        ,,,444% %HH %hh % %$ %(0 %   %4 % % %LT%X`0h%l0H%h%%%%% (%,HX%\| %%%% %%%% % t% % % %@HLT\pt      , 8P\` ,<L\ $(48H \ t 4 8P`dx    <LTt    0 x      $LPXhp      , 4 8          < \ ` l |       xsomfor.c!lon_center!a!b!a2!!a4 !$c1(!'c30!*q8!,t@!.wH!0xjP!3p21X!7sa`!:cah!=esp!@sx!Bstart"false_easting#false_northing'gsat_ratio)somforintxsomfor tX som_series 6 /ecs/hdfeos/gctp/srcsomfor.cͿ>7poxq~}{p}~$$!~~y w~||}}z {"|x}{"|x}{{~{z{z}y}~o~~  %oo $i~~A ~ q h/@qQ~|~]~ y{|~~|}}|H{~~,% B 4: ; 9  4: ; 9  ? .: ; 9 ? @ @.: ;9 @ @|@ @A@x BB A(BAAAA"B$B*C&V@ @a@@ CA(F]@BB @>A@ACBDAA D $  BPAD@CAC 60gsat_ratioFsomforintfsomforsom_series-9ER_ly,AZ^bw{C\`x 4P xrn$ *050 ;Cp!U 8 kP$ v tp @Hpp. p"8^p"p#Z p#z:p#! # $ $0" %5 %I % ^p%(gp %@8sominv.o/ 1230068557 7356 20 100664 10532 ` ELF$ "4( (%,4@GOV a0hlpuy)<P.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.reginfo.MIPS.interfaces.text.sbss.lit8.rodatasominvintptitleradius2genrpt_longgenrptoffsetp__dcissom_seriessominvsinexpatantanadjust_lonp_errorcosasin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnamesbe::7.42:sominv.oF,hC'0H`Pף0h<8$B@"!XזF!B%ׄF!AF % xF$x` $׍ ׌ % $ % $טX$ F8׌$ F8c׍ ׌׬ $ F ׈`F F(8B׭F>F>{F1&F>sF0F>kBF/F.րF-$Z$D %''(' ''F' חp׽(׻ ׹׵F7B׳F7F7BF=&F7BF;F7F9F5րF3 %''(' ן׾''' ס׆F:@F&Cפ(ׅF4!F%!ף ׅF6F%עׅF8F%נF<F%߿x߲p߰0߱8״h׶X׸H׺`׼P0 (%߼@'ׅ(׋HD ׉@הP׊8 F!!׈(׆ F("ה0ׇF(1x`F%1F+"F+JAx`F%JB<'@$!8!!׃יF#hF9hזF6eF9C חכ`F9יh0(F;Bx`$2%F7pF  F ןPF"ם8ׁ׃@F?F=BF!F#F!@F!F?BF=F ׺x׌pF F ւF, F;ւ׌F  F,׌F  F,צׇXF:1F'1F'ץp׈׉0FBF)1F'1F()AF&)A׆F&)CF4+A׎`F kEF.h<EF -&*2X@F - F +׍׬XF F  F-c׎XF:BF.kCF.kC׎F.k@F kD׎(׬`F.ÂF.c׎0F sF.c F-c F ןF םF?׆hחיEF F%<EצF:(>E׀hF%<EנךhF F օF9F<E4׸׼׺׍`F-B׌F-A F-c߿״߼8߰0߱(ߤߣ ׮%׶hn'׸׼״׺$׾ $߿߼8߰0$߱(׶h'ח׶XF7 F F ׼׺ F ׍pF F-B׎hF-c׭PF.kB F-c׸׏x׮H׭PF/sF-kBF.k@F kD׬@ F-c'H (0׍, %%F-c% ,כPF"Bם8א׏@F1F1BF0F1{F0@F0{F;F0{F {F;F ן`׎hF?sF.F/sיXF.uF9BF5@F DF=BF=םpF?BF=F;8F9F7F5׍p4 @ F-c׍F  F-cיX׵8ה7F9@ߡ0F5׵@߾F 7  F5ߢ(׍F N ߱ F-c߿߰ߣ F D״Ho'P?@?FR5?[Ow@` =p?򽴆&?=?SC~@`)?lī?l0a\j@Lc˰>. &֕@@@V@>@N@.@F@!TD->z򚼯Hz򚼯H?!TD-?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse       $ ( . 4 : @ J N R V Z ^ b f j n r v |        $$$,,,%%%0%0HH %hh % %  % %   %4 % % %0 008 88 %%0%D% %%L%X%%%$%%48@H%L% %%% P % % % \% %8<DHPXlt|        (@LPx ,<L\$DHX|   $ (8 <Pdht    ,<D T `ht    48@DHx  $ px    , X ` d h           ( 0 4 d l xsominv.c lon_center a b a2 !a4  $c1( 'c30 *q8 ,t@ .uH 0wP 2xjX 5p21` 9sah P@D @C@40 BB"FF@A AAB DA$A&$  BPAD@CAC ',sominvintLsominvisom_series-9ER_ly(@DH]ae}Chlx 40 dse<$P *006>p!P l  f  q {p PHpp#Xp!{Mp!p" p"+p"! " # #0 $ 0 $0D $8Yp$@bp $X8sterfor.o/ 1230068597 7356 20 100664 4564 ` ELF "4(  (/6@GO UH]how .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodatasterforinttsincosptitleradiuscenlonmeroriginoffsetp.lit8sterforadjust_lon__dcisp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:sterfor.o<$!'!! '0F s'(  $ ׌ ׌ ׌׍ ׌ ߿%߼'<$!'(!!׀ 0F m F c'F ' @ח(׻י0׶׬@F;BF7 8ק8ןF 9׈F'׊׉F(9ׯ׎ F ?Eߣ߿ F?>ߢ׶0F E׈F'RF*JBF/KF/F/sn׌0׍(׫תF-ZF,RF+F+RF*JBF)BH%߼('P$ $߿ $g߼(׶0'PSTEREOGRAPHICPoint projects into infinityster-for<       & * . 4 8%DH%LT%`%l %| %   %%%00%  $(,4<@ P X\ dh pt x    $ , 0<`| ?=|׽@ xsterfor.cr_majorlon_centerlat_originfalse_northing false_easting !sin_p10("cos_p100&sterforintEsterfor47 /ecs/hdfeos/gctp/srcsterfor.cͿ+ vz| {    w w xxt t $ v w % B 4: ; 9  .: ; 9 ? @ @|@ @A CAC@H CPA F@ A)sterforintsterfor+@UnD8<x4 M1!R$p*X80X98p!<J X`(P k xu0 {p  Hp p p 7p Tp r p - x 8 @  ` p3p x׍߿ %E ߼߰(߾״@'P߿ ߼߰(߾״@'P׮8׭׌0F.kBF-cF4c׎(׭F.kB F-cׅאF +F0{אF {F0x>EDF%>E ׭8׬0 F kG׌ F,%׬0׭8 F c׌ F c% F ׆(ץF 1F&)A׎F +EF.h<ר0E%F BF.@<Eׯ0߿ ׯ0׮׌0F/sF%B F.c׌ F,%STEREOGRAPHICT       & * 2 6 : > B F J N 8%DH%LT%`%l %| %   %%%% %(%8%P%%%  $(,4<@ P X\ dh pt x     $ ,4      0 4L Xh   @=|׽!TD- xsterinv.cr_majorlon_centerlat_originfalse_northing false_easting !sin_p10("cos_p100&sterinvintEsterinv4+7 /ecs/hdfeos/gctp/srcsterinv.cͿ+ vz| {    |t t - `!b g= ~{40(  ~|% B 4: ; 9  .: ; 9 ? @ @|@ @A CAC@$8 BPBBNC@ A )sterinvintsterinv+@UnD8<x 4 MQ&w$*h80h8p!vTJ `Th k xu0 8 {p  XHp p /p 7p \pP pp- x    @ P3pXijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-forSTATE PLANEZone: Datum: NADr??FR5     " & * . 2 6 < @ D H L P T X \ ` d h l p t x |                  @Dpx%( %(D %t % % % % %x%x% % %h8h %8%%% ( % (8%H%h%x%%%%%%%(%8%X%h%%%%%%0%D%T%%%T%x%%%4h  0 < @\ |       (|      , @ d p        $ 0 T ` x      @ L d P t    xstplnfor.c id inzone NAD27* NAD837stplnforintstplnfor@o8 /ecs/hdfeos/gctp/srcstplnfor.c׾;;n} v~r -~ (ba 4$$$  { ~  }$(=(( ( (((N(} ((}( wP  ( m(}([3|jp  % B 4: ; 9  .: ; 9 ? @ @|@ @A( CACBC@xE@ CAE@+\stplnforint~stplnfor'8HXrvzEDHx4` JzX$p* @0 @06p>F0 Lp!8^ p tx  ,p HpXpspi7p`p p / P`    - Apstplninv.o/ 1230068718 7356 20 100664 8900 ` ELF` "4(  # ) 5=EKQW]dkw} (8HYl.symtab.shstrtab.strtab.comment.text.sbss.data.rodata.srdata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.text.sbss.data.rodata.srdata.lit8stplninvintsprintfp_errorfopenfseekftellfreadfcloseptitlegenrpt_longpakczpaksztminvintpolyinvintomerinvintlamccinvintstplninvomerinvtminvlamccinvpolyinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:stplninv.o<$c'p(#!% %$7 $$BP%$KCp$BK%J P%$B$K0$BCp#$BK%J 8%0%'0 $'0 $߿߼($߰ ߱'߿߼(߰ ߱'߼(%%߰ ߱'@%$Hޏ T ' %@T ((#(0%ߤ(# ) ߤ$ $ߧ '$$ߧ '$ $ߧ ' ߤG $ % $ -$S $ףׂF#F ס$xF"BF<p$GG$HQ$ I߿߼(%߰ ߱'@%' %@$ $$$פ׬ hF  '@7`~߿ 8%0%'0 $'0 $o$צ׬ hF  '@'Xb߿ ׬菙F  '@'PV߿ ׬ЏF  '@'HJ߿ ׬ЏF  '@'@>߿ ׬F  '@'2߿ ׬F  '@'8&߿ ׬؏F  '@'߿ ׬F  '@2߿׮h׭pדׯX׬xײF3ױ F3{_߿ ׬ЏF  '@0߿׭pג׮H׬xױF2װ F2sH߿ ׬F  '@߿׮h׳ײ$$׭pD׬xוװ@ׯ`F5BF5 F5{'߿׭pוװ0ׯ8׮PF5B׬xF5׳F5{ײ F5s߿<$B'"!$A$C$D $E%߿߼' ߿@@0%߼' ߿@@0%߼' @@0%߿ @@0%߿ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-invSTATE PLANEZone: Datum: NADr??FR5     " & * . 2 6 : @ D H L P T X \ ` d h l p t x |                   @Dpx%( %(D %t % % % % %%x%x%% %h8h %8%%% (( %,(D%T%t%%%%%%%%4%D%d%t%%%%%%<%P%`%%%d%%%%4h  0 < @\ |        $4      8 L p |        $ 0 < ` l       $L X p $`     xstplninv.c id inzone nad27( nad835stplninvint stplninv@t8 /ecs/hdfeos/gctp/srcstplninv.c;9m} v~r -~ (ba 4$$$  } ~  }$)=(( ( (((N(} ((}( wP  ( m(}([4|jp  % B 4: ; 9  .: ; 9 ? @ @|@ @A( CACBC@xE@ CAE@+\stplninvint~stplninv'8HXrvzEDHx4p Jn$* p0 p06>HF0PLp!h^ <x t  tp `HppFxp7p`pU pu/ `    0- @ApHtmfor.o/ 1230068758 7356 20 100664 6900 ` ELF "4( T$).38=DLS]dl t`<z ,?.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.lit8.rodatatmforinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetp.srdatatmforadjust_lontsincos__dcisp_errorlogacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:tmfor.oF,hC<$!'!!h` ׀F!BF!H F ׌H (׌H 0׌H 8א ׎8׍0׌(F  @ׂׄHׅF$h=|׽?@@M@@4@2@R@8@"@@>@N@@tTRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinity`       $ ( , 0 : > B F J N T X L%\%l%| % % % %  % %(%8%```ddd%%% H%H8%%4 %D% $(,08<DHT X`d hpt x      $ ,0 4<t    $, DTX\|  < LX`hlpx| 0dltm-for xTtmfor.c#r_major$r_minor%scale_factor&lon_center'lat_origin (e0((e10(e28(e3@)esH)espP*ml0X+false_northing`,false_eastingh-indp2tmforintTdtmfor`4/5 /ecs/hdfeos/gctp/srctmfor.cͿ)9rq zyw ~~~    v v % - ($ ~}~ v0y{~~}}}}}}}}}}}}}y}}y}|yy% B 4: ; 9  .: ; 9 ? @ @|@ @AT DAC@ `< CpAF@AB%Xtmforint:tmfor);Rg| .26JNRB8<x4P US,$@* x00 6 xe>p! `P @ f  q {p HpXpH3p{7pXp p*) X    8' H;pPDp h tminv.o/ 1230068799 7356 20 100664 7652 ` ELF "4( H$).38=DLS]dlPrvz 1D.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.lit8.rodatatminvinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcosasinzatan2adjust_lonp_errorsintsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:tminv.oF,hC<$!'!!h` ׀F!BF!H F ׌H (׌H 0׌H 8א ׎8׍0׌(F  @ׂׄH׃F$(F$BEF4י@F F9<E{'' F ׻םHF;יF=F;A0F DטF9כF8F;׽ןPF=BF?B8F=BPHF;F  @ב ׷@F1CוF5CF FF8׀pF גH׏F2|׳0F2ĂF3F0F2יP׆Xׇ׃xF=BׁPF=׉(F#ײ8׊F!ׂF)ׅF)B׈HF*F'ׄ`F"F)2AF%BF'ׇ0F(BF)׉F%ץPF&@F$F/F)BF$@ׄhF')׆F()BF)F'AF$F%F&BF%F$AF#F!F"@F AדF?@F=F;F9BF7F5F3F2B׭HF0F1{׮F/kBF.kC׌ F-c״ߧ߿״ F Dו@߿FߨגF5"%$ $״߿$_?>h?@@@=|׽?!TD-@@8@@$@"@>@V@N@r@F@o@4@ @<TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSEv       $ ( , 0 : > B J N T X \ ` d h l p L%\%l%| % % % %  % %%,%PPPTTT%%%%%$%4%D%%0%%%hHh%H $(,08<DHT X`d hpt x       $ (0d        , < L`l|  8DT\`|D   xTtminv.c$r_major%r_minor&scale_factor'lon_center(lat_origin )e0()e10)e28)e3@*esH*espP+ml0X,false_northing`-false_eastingh. indp3tminvintHctminvP45 /ecs/hdfeos/gctp/srctminv.cͿ/:rq zyw ~~~    u u (~~9C;E;G9G9L 4L4L4T|{ w! w!  y w}}}}}}}}}}}}}}}} ,c(% B 4: ; 9  .: ; 9 ? @ @|@ @AH DAC@(P CA"D@AAA$A%Xtminvint:tminv);Rg| .26JNRB8<x4p MXI$`* ht00 h6 s>p! vP  f  q `{p HHpXpp7p`p% pE) p ( 0  P `3phEQY`jr z< +>.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodata.lit8utmforinte0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerp_error.srdatautmforadjust_lontsincos__dcislogacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:utmfor.oG0&'0#<%$!F aY!!(=ׂ U׃PFP# P@%JIDD(Fah F"BDF$kC׌ F-kB`F-c H׌H (׌H 0׌H 8א ׎8׍0׌(F  @א(׎Hׅ F0ph=|׽?@@M@@4@2@R@8@"@@>@N@@tb       $ ( , 2 < @ D H L P V Z    %%% % %$(( %,(4P< %@PL %X``%d`l%%%%@%|%%% %%8@X\`lp|      0 D HPT \h p    (< P`x    LTdl ptx 0<p|utm-for xWutmfor.c$r_major%r_minor&scale_factor'lon_center(lat_origin )e0()e10)e28)e3@*esH*espP+ml0X,false_northing`-false_eastingh.indp2utmforint butmfor 4b6 /ecs/hdfeos/gctp/srcutmfor.cͿ(6}}} w ~~~}~~~  kw(  v v % - ($ ~}~ v0y{~~}}}}}}}}}}}}}y}}y}|yy% B 4: ; 9  .: ; 9 ? @ @|@ @A C BC@C < CpAF@AB '[utmforintp! bP  f  q {p Hp[pCfp7pXp8 pX+  @ H  h' x;pDp  utminv.o/ 1230068879 7356 20 100664 7988 ` ELF "4( %*/49>EQY`jry}0C.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodata.lit8utminvinte0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerp_errorutminvexpcosasinzatan2adjust_lonsintsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:utminv.oG0&'0#<%$!F a\!!(=ׂ X׃PFP# P@%JIDD(Fah F"BGF$kC׌ F-kB`F-c H׌H (׌H 0׌H 8א ׎8׍0׌(F  @א(׎H׏ F0p(F$BEF4יXF F9<E{'' F ׻םHF;י F=F;A0F DטF9כF8F;׽ןPF=BF?B8F=BPHF;F  @ב8׷@F1CוF5CF FF8׀F גH׏ F2|׳0F2ĂF3F0F2יP׆pׇ׃F=BׁhF=׉@F#ײ8׊F!ׂF)ׅF)B׈`F*F'ׄxF"F)2AF%BF'ׇHF(BF)׉F%ץPF&@F$F/F)BF$@ׄF')׆F()BF)F'AF$F%F&BF%F$AF#F!F"@F Aד0F?@F=F;F9BF7F5F3F2B׭HF0F1{׮F/kBF.kC׌ F-c״ߧ߿״ F DוX߿FߨגF5"%$ $״߿$_Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE?FR5AAc?>h?@@@=|׽?!TD-@@8@@$@"@>@V@N@r@F@o@4@ @<x       $ ( , 2 < @ D L P V Z ^ b f j n r    %%% % %0(4 %8(@PH %LPX %d`l%p`x%%$%T%|%%%%%%H%% %0%dhlp%t8@X\`lp|     $(, < P T\` ht |  ,< @D\t   LXd|    (< T\px $,4<H\h ( <L xWutminv.c%r_major&r_minor'scale_factor(lon_center)lat_origin *e0(*e10*e28*e3@+esH+espP,ml0X-false_northing`.false_eastingh/ indp4utminvint eutminv46 /ecs/hdfeos/gctp/srcutminv.cͿ/8}}} w ~~~}~~~  iw(  u u (~~9C;E;G9G9L 4L4L4T|{ w! w!  y w}}}}}}}}}}}}}}}} ,c(% B 4: ; 9  .: ; 9 ? @ @|@ @A C BC@C( CA"D@AAA$A'[utminvintp! `xP  fX q h{p `Hp[pp7p`pu p+  x    3p DMX^fjv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodatavandgforintptitleradiuscenlonoffsetp.lit8vandgforadjust_lonasinztsincostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:vandgfor.o<$'%!F g $ F ׾ ׬׍ ׌߿%߼' <$!'!! (׀%@F m8 F cׂF E߿(׃F">ׅׄF E0߼״@F )B׶8ߢ F%!C%߾'P߿(߼߾״@׶8'P׌F,׍F c F-c׎F Eׯ0חF.h>׌ יEאF0{F {F.x>EDhזF4h>F,E F7 ׎F ߣ F/s n אF Bߤ F1%'' F ׁF!CF6 ת׈F*CCצ׎0F&RF.RF*1F)9DH׊ F.k@F 9F)F RF(:׆8F*SF+RF,1F*1F 1׊F%R׋׌EF&F+2F&c߿(VAN DER GRINTEN8      & * . 2 ,<%@H%X%h%   %X %%% % $(08D P ` dl  D L P ` l t x     $ 0 H  =|׽@ !TD-@!TD-?? xvandgfor.c"lon_center#R$false_easting%false_northing)vandgforint Avandgfor4m8 /ecs/hdfeos/gctp/srcvandgfor.cͿ- vz|   u u u}|t u  x(}~ x10=~~w~~}l% B 4: ; 9  .: ; 9 ? @ @|@ @A C AD@A$ CPAD@ BBB+pvandgforintvandgfor/;SlE8<x4 M!5$P*p 0p8p!8J P` k 8u0 X@{p  Hp p qp 7p :\p p / ` H P  p 3p DMRVamy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.rodatavandginvintptitleradiuscenlonoffsetp.lit8vandginvacoscosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:vandginv.o<$'%!F g $ F ׾ ׬׍ ׌߿%߼' <'$!!!Hה׉׈F)BF4eF(ׅF%iAF(*F(AF4׊F$1F C׋F*;@׉F-cF+CBF)bBF-BF*J@F'9F)B@ F)90F'!׏(F,BF/c(F(1F/3F'{F'{F+3BF-3BF-3BF'kCF'kC׈ F&3F(sF'sF'kCF.cF cF'cF bGF(JC׎0F/kAF.kCF JDF-!F(!F,!F+JBF)!F EF!P<%@DHEF(5CF$H>E8ׄ@F QF%H>F'CPE8 F #׌ F,׍H F-c׮@׭8F sF.k@׎F kGF.kB F #׌ F,׍H F-c׮@׭8F sF.k@׎PF kGF.kBבXF ߿PF1<ߢ߾E ׄD%߼״H'`F%H>ׯ0׮(F/s׏F/s׏׭ F/sF.k@F kD׬׎@F.c׎F-c׍`F.cF-cF4c F,#߿P߼߾ߣ%״H`'`VAN DER GRINTEN8      " & * 0 ,<%@H%X%h%   % %4 %L % % $(08D P ` dl     P x       0 < D H d t       @ !TD-@?@@"@;?R8-se !TD-=|׽? xvandginv.c"lon_center#R$false_easting%false_northing)vandginvint Avandginv04"8 /ecs/hdfeos/gctp/srcvandginv.cͿ- vz|    u v ]~~~~8hz UQxs }}% B 4: ; 9  .: ; 9 ? @ @|@ @A C AD@A( B`BB@N@s @B@0+pvandginvintvandginv/;SlE8<x  4 M $00*` 0`8p!p8J P` k 8u0 Hh{p  Hp p &p 7p `p g p / `    @ P3pXwviiinv47 /ecs/hdfeos/gctp/srcwviiinv.cͿ* vz|  ytzt t 8P% B 4: ; 9  .: ; 9 ? @ @|@ @A C AD@A$ B@B BFL@B)owviiinvintwviiinv.:RkD8<x  4 M1E$`* 0 8p! :J HX`  k u0({p Hp p p 7p \p  p 5- h`    3p U@Lc˰?#x      " & , 0 6 < B F J N R V Z ^ b f j n r v z ~                                   " $ &  "( &* * . 2 6 : >. B F J N R V Z2 ^4 b6 f8 j: n r= v z? ~    A C E G  ,,,888%%%%(%@% %@ %p%%%H%x%%%%H%x%%%%8%h%%%%(%X%%%%  % 4 L% |% %  %  % L d% % % % @% p% % % % H % ` x% % % % H% x% % %%8%h% %%(%h% %!"%#($%@%h&%'%(%)$*%<+T%%,%(%x%-.%%4/l%0%%%l%12%34%5P6%h78%9:%;8%P<=%>%@?%X@p%%%%pA%BC%DdE%|FG%H%        0 h   @ p     @ p    0 `       DP t     D h t      < \       8 \ h      , 4 p       4 @ p      $0 T`     DP T " $ P& T (  * L |   PX. DL   (DL2 4 046 |8 : dh=  ? 0h     <A DC 4@E G   x;for_init.c6for_init@ 9 /ecs/hdfeos/gctp/srcfor_init.c>$U +U5}}} |i     0!        z}y{{%|{{${|||||||~~ }~      ~ %| {-   ~ |~;~ ~~|   ~~ ~~ ~} - - -- --~~ - - { ~} 0.  ~~   ~~     ~ ~       9 ~}   ~ |~  ~~ % B .: ; 9 ? @ @|@ @A$@ AENCHBLC@BJ@?for_initKJ159LFLIIx4@ t.N $ @*0$P(0p!$xB & X)<x c /mp 58H{p5?p5 p?(p?<p? p@ @0(  @X  @` @p @%p@inv_init.o/ 1230069202 7356 20 100664 17460 ` ELF@p "4( ,",3=DP^hs{!-6@GQXcku|!*5=HP\eqz  ':.symtab.shstrtab.strtab.comment.text.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.text.lit8inv_initsphdzpakszutminvintutminvsominvintsominvstplninvintisinusinvinitceainvintgoodinvintgoodinvimolwinvintimolwinvalconinvintalconinvstplninvbceainvintmerinvintpsinvintisinusinvpolyinvinttminvintgvnspinvintceainvsininvintsininvmillinvintmillinvvandginvintvandginvhaminvinthaminvrobinvintrobinvmolwinvintmolwinvwivinvintwivinvwviiinvintwviiinvbceainvmerinvcalc_utm_zonepsinvpolyinvtminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvequiinvintequiinvomerinvintomerinvobleqinvintobleqinveqconinvinteqconinvalberinvintalberinvlamccinvintlamccinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:inv_init.o'0$a%%%<%$c#!$bD(F (<E$F%<E $F (<E$F%<ET$쏙'H'@'8 (% @ % "8'H'@'8 (% @ %"8!0$b$$$$  $  $  $  $  !$ -$ E$ O$ Y$ c$m$w$$$$$$  i$  $  $  $  $$$ $$$$c$߿߼߰%߲߱'߿߼߲߰߱'D(F (<EF%<E F (<EF%<E$쏙'H'@'8 (% @ %, $8#0'0 ߦ00)߿߼߰$߲߱'@ߧ(%׎ ׭@8% ׬8ߩP*H!ߪB(DH(`',F)@2F 9F aD8D0E}ץhנצק %׳׭@׬8ײЯ F ,F@8%F  @0%߬h`!߭'0 , ߸00߿߼߰$߲߱'ߧߦ@(% ߤ߿00 {ߥr$'0 ,ߤ00 ߿߼߰$߲߱''0 ,ߧ00߿߼߰$߲߱''0 , ߪ0I0߿߼߰$߲߱''0 , ߭00`0$'0 , ߸00$$'0 , ߡ0?0 $'0 ,ߥ00` $$1, '0 ߨ00$'0 ,߫0j0 x$'0 , ߮00p$'0 , ߹080h$'0 , ߣ0a0`$'0 , ߦ00X$'0 , ߩ0(0P$'0 , ߬00@H$'0 ,(߯00$'0 , ߿00׍$'0 , ߤ00 @$'0 , ߧ00׍x$'0 , ߪ0I0׍l$",('0 ߭00`^$'0 , ߸00׍R$'0 , ߡ0?0 ׍F$ ׬Hߤ( !ߥ3'0 , ߨ00׍/$ '0߫0j׃0ׄF#F$ $ ׬H߭ph!߮ F ׭@F  ׬8߸Ȁ!߹"'0 , ߣ0a0׍$0(!'0 , ߩ0(0׍$'0 , ߬00@0$'H'@'8 (% %ߧD0%`F&(2Ew8'0 ,0߯׈0F(׈F(9#x$'0 ,(߿00$'0 ,ߤ00 ($'0 ,ߧ00 $'0 ,(ߪ0I0$'0 ,(߭00`$ׯ׍1Pג0@F-B׮׬H F2kB߯x!߸h'0 ,(ߡ0?0 d$'0 ,ߥ00`X$'0 ,@0ߨא0F0אF0{hH$'0 ,(߫0j0 <$'0 ,߮00L0$'0 ,(߹080ג$$'0 ,(ߣ0a0ג$'0 ,(ߦ00ג $'0 ,(ߩ0(0ג$'0 ,(߬00@ג$'0 ,(߯00$ד׮גױF3װF3s׭@F2{׬8 F2s߹?!߿̯8אׯF-B׮׬H F0kBߣ d!ߤa'0 ,(ߧ00ג$אׯF-B׮׬H F0kBߩP*H!ߪB(אׯF-B׮׬H F0kB߬h`!߭אׯF-B׮׬H F0kB߯x!߸אׯF-B׮׬H F0kB߿!ߡ"pאׯF-B׮׬H F0kBߤ( !ߥ`'0 , ߨ0ׅ0׆F%BCF&)BY$אׯF-B׮׬H F0kBߪXKP!߫bAIאׯF-B׮׬H F0kB߭ph!߮1'0 ,(߹080L-$ד׮גױF3װF3s׭@F2{׬8 F2sߡ#!ߣb?נߢ'H$m&@'0 , ߦ00U$'0 , ߩ0(0U$ד׮גױF3װF3s׭@F2{׬8 F2s߫`lX!߬߭j׍׬x׎F-c׍F.c F-c׏׮אF/sDxF0sF/p<E@(%(#ד׮גױF3װF3s׭@F2{׬8 F2s߮xp!߯ד׮גױF3װF3s׭@F2{׬8 F2s߹?!߿8'0 , ߤ00 $'0 , ߧ0א0בF0F1$'0 ,H0ߪגI0F2BגF2B`$ײוׯדױF5׮F5{׭@F3׬8 F3{߬h`!߭b׭pבF2װF2kBׯF1s׬H F1kB߯x!߸O׭hבF2װF2kBׯF1s׬H F1kB߿!ߡ"<׭`בF2װF2kBׯF1s׬H F1kBߤ( !ߥ)׭XבF2װF2kBׯF1s׬H F1kBߧ@8!ߨ׭PבF2װF2kBׯF1s׬H F1kBߪXKP!߫bIד׮HגױF3װF3s-F2{׬H F2s߭ph!߮ﭬ׭@בF2װF2kBׯF1s׬H F1kB߸Ȁ!߹"ܯ,@53'0 ߣ0a0Vח$ץX$צP׳ײ׭@׬8ׯx׹`׷h$וױ8F5Bו׮ F5Bߥ0(!ߦ'0 ,(ߩ0(0fח$'0 ,(߬00@tח$'0 ,(߯00+$'0 ,P0߿י0F9יF9rX$׭0׮וF7kB׳F7BײF7sװF5BׯF5s׬H F5kBߣ d!ߤaaD2@F32E$ %ח׮ׯװF7sוF7{F7B׳F7ײF5B׭@F5׬8F5{¯ F5sߦ80!ߧ>׮ׯ(װF7sוF7{F7BF7׳F5BײF5׭@F5{׬8 F5sߩP*H!ߪB$(׮ׯ װF7sוF7{F7BF7׳F5BײF5׭@F5{׬8 F5s߬h`!߭ '0 ,X߸0׆0ׇF&F'1$ץXװp/ %@ >U@Lc˰?#x      " & , 0 6 < B F J N R V Z ^ b f j n r v z ~                                   " $ &  "( &* * . 2 6 : >. B F J N R V Z2 ^4 b6 f8 j: n r= v z? ~    A C E G  ,,,888%%%%(%@% %8 %h%%%@%p%%%%@%p%%%%0%`%%%% %P%%%%  % , D% t% %  %  % D \% % % % 8% h% % % % @ % X p% % % % @% p% % %%0%`% %% %`%x %!"%# $%8%`&%x'%(%)*%4+L%%,%%d%|-.%% /X%p0%%%X%p12%34%5<6%T78%9:%;$%<<p=%>%,?%D@\%%%%\A%tBC%DPE%hFG%H%        ( `   8 h     8 h    ( X      <H lx     < ` l      4 T x      0 T `      $ , h       , 8 h       ( LX |   <H L " $  H& L ( * D t|   <D. 08   082 4  6 hl8 : PT=  ? T x    (A 0C  ,E G   x;inv_init.c6inv_init, 9 /ecs/hdfeos/gctp/srcinv_init.c?$U +U5}}} }i     1"        z}y{{%     |{{ $    {|  ||  ||  ||   ~  ~             }~                    ~   %    |     {- ~ |~;          ~ ~|    ~~ ~  ~             ~} -     -   -  -   -  -   ~~ -   -    { }        0.         ~~   ~ ~                          ~  }      ~   |~       ~~ % B .: ; 9 ? @ @|@ @A$, AELCFBJC@BH,?inv_initKJ159LFLIIx4@ t.N $ ,*0$@(0p!$hB &  X),x c /mp 5(H{p5p?p5 p?\(p?<p? p? @(  @(  @0 @@ @P%p@Xcproj.o/ 1230069243 7356 20 100664 13860 ` ELF2 "4(L Pd"'(-37 ?EMPlSX\`fPlp v p~ @ (  D < 0 P  pt 4 "2CV.symtab.shstrtab.strtab.comment.text.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.rodata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.texttsincos__dcis.lit8asinzasinmsfnzqsfnzlog.rodataphi1zp_errorphi2zatansinpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zone.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:cproj.o<$!'!! %߿߼ߢ߾@' <$!'!!ׄF `EF! <EF, <EF #׌ ߿߼'<$BF-`B"! F!BF!F F p<$!'!!ׁF,<F mE׀ ߼״'0F h׎F4cBF-sF.k@  F-cפׂF$ס׃F!BF!AF!CF$!F"߿ F$F"A߼״'0F!<$!'0!!P `זF hhF f(8 F6kׁ(F!&EF4uᏙ$ $׸X׼@׾H߱߰ߧ ׌$߿(״8߼0׶`F `׺h'p߿(߼0߰߱F ״8׶`׸X׺h׼@׾H'p<$!'!!0(8 H@F oPF eט F k מ0ךF8$%F4F: F ׏F F.{F/sF F F.c F F8F0F4ג(F EF2>&EF4鏙$ $߿ ߼߰߱״(׶PF ׸H׺0׼@ߧ׾8$'`߿ ߼߰߱F ״(׶P׸H׺0׼@׾8'`'hX`80(P H<@$!!!F g׀@$F oׅ % %F e׆8F F& F%F  F F  F ע`פXF"ЂסhF$F>F!BF#F"@F<CF4A׃(F F#>ׅ ׆8&׀@EF4 ߏ$ $߿׀H߼߰ ߱$ߵ״P׶0׸8׺(׼H׾@'p߿߼߰ ߱ߵF ״P׶0׸8׺(׼H׾@'p'ph`xH@80(P X<$!!!׃ ׄ8F ׁ@F#BF$F#p$F!xBF e$`% F F  F F:BטF9BF9F ׌ F8X F,ך8׌@F F: F,F F  ׇ F>:C׫`רצhץF>ZF(F&)BF+RF*)@תpF*ףF&)AתF%)׫F%BF*1תF>F!0AפF+RF!F'BFF=&1E3$ $߿׀@߼߲߰߱(߳ ״X׶P׸8׺0׼@׾H'߿߼߲߰߱(߳ ״X׶P׸8׺0D׼@׾H'<$$!%XF aF%1C)`F))@F )MD(d!d#D@d!D8F(`E(߿F6F F D(F8F F ! F!!F: <EF<F F 1F1F:0<EF F9F<9F' F D@FB!F8BׅF(߿߼߰F ״׶0׸(׺8׼ '@F%F EF JMFJaF:H<EF FRF%RF* F DXFZF8ZׅF+<$B"!#$H"F#` F"`F$!F#F!`BF F"BF!<$B"!#"!F#`F!`BF" F#BF `F"@F!<$B"! !"F `F!`BF"@F `F!<$BF,`"!!F `F!<$!'!!׀F `F fF F F ׌F8c F cFF Fנ߿F!׸߼' F <$!'!!(0@׀@F F g8 F ׌  F,׌8 F,צץ8ף0F&)Bצ F4F ס(F%!F&߿߼F"BF$״@׾'PF!<$B"! !8F `F!!F!F D    $ . 2 6 : F J N R V b f j n z ~             $%PPPTTT%P %  %H% %    % P PPT TT%%%%4 (8 < (@ %D 8%H%X% h 8 h % 8%%@%`%t%t x x|  % x             @ @ @ D D D % %       % l%                $ $ $ P P P T T T p p p t t t % %      ,%@%T% d  4< \h < Tpt   d    , 0  (, @ P     , 0H LPh |Ll p    X       T \ `     $ ( , <   T           , 0 4 `      4 8H L?>z򚼯H?@=|׽?!TD-@@@@È?PbMA.@Y@@@Lc˰@N@ !TD-@!TD-AB !T!C!S~=????????UUUUUU@fConvergence errorphi1z-convphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv xQcproj.c3tsincos L;asinzP4JmsfnzTXqsfnz0hlphi1zPphi2zPphi3zL$phi4zP \ pakcz !pakr2dm @<tsfnz @ Msign Radjust_lon ze0fn 0{e1fn D|e2fn PX}e3fn P ple4fn p mlfn calc_utm_zone)5 /ecs/hdfeos/gctp/srccproj.cʿ\3--- %~  | }|| v v  } s ' !\xy  8  ~x  yz%2zz{| % z  t s  s s  zzx xzzzzzzPm m $}+   zzz #4< eh(-w  u}  P@0{D DD  !" % B .: ; 9 ? @ @.: ;9 ? @ @|@ @AL C ADA@Pd CAG@( 4 C0A EF4B0 G@R @4H CpAECB@AK B CBCs8<>H 4Pl C`AEAA AA A@AAB4 ApD@AAAAAAA AB B8P AG@@A.A0A2A4A6A  p ( @ C AHC@O @8 ( ,  A@A@AA A AABB D  <  0  P ( pt C AEB@P @8, CPAECB@^ @4>4 Utsincos8asinzSmsfnznqsfnzphi1zphi2zphi3zphi4zpakczpakr2dm3tsfnzOsignjadjust_lone0fne1fne2fne3fne4fnmlfn/calc_utm_zone"!,04#GKO#bfj#}#####  #'+/#CGK#^bf###### ##'+#GKO#B#8#<X#\l#p##(#,`#d#####4#8H#L\#`p#t###  x 4 G+j$*p! < R ] ,g0!m"up #xHp#Up&-p*B@p*p-r p- .x  0h 0p@ 1 1-p16p 10report.o/ 1230069283 7356 20 100664 16084 ` ELF:p "4(  "*17?FKRYPdkr@zp  p    Px/?O`s.symtab.shstrtab.strtab.comment.text.sbss.bss.rodata.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.text.sbss.bss.rodata.srdatap_errorprintffopenfprintffcloseinitstrlenstrcpyclose_fileptitleradiusradius2.lit8cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblank.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:report.o<$c'#!%% 0% $' $8%@ % 0% $ ߿߰߱߼' '$<% $!!!7$=$ %߿ ߼߰'0򯂈  %@(% @Aߥ$$ $$ߤ$ @;ߥ$  $% % @ߥ$$ $$ߤ @ߥ$  $%߿ $߼߰'0߿ $߼߰'0$ $$$  $$<$!'!!  ߿߼'<$c'#!% (% $ ' $@ %0% $ ߿߰߼' <$c'#!F e D%` $ ' $@ %D& $ ߿״߼' <$c'#!F mF e D%` $D% $ ' $@ %D& $D& $ ߿׶״߼' <$c'#!F e ׀F `D% $ ' $ׁF!B@ %D& $ ߿״߼' <$c'#!F e ׀F `D% $ ' $ׁF!B@ %D& $ ߿״߼' <$c'#!F e ׀F `D% $ ' $ׁF!B@ %D& $ ߿״߼' <$c'#!F e ׀F `D% $ ' $ׁF!B@ %D& $ ߿״߼' <$c'#!F e ׀F `D% $ ' $ׁF!B@ %D& $ ߿״߼' <$c'#!F mF e ׀F `D% $ׁF!BD% $ ' $ׂF"@ %D& $׃F#D& $ ߿׶״߼' <$c'#!F e ׀F `D% $ ' $ׁF!B@ %D& $ ߿״߼' <$c'#!F mF e D%` $D% $ ' $@ %D& $D& $ ߿׶״߼' <$c'#!%F e D&` $ ' $@ %0%D' $ ߿״߰߼' <$c'#!%% 0% $ ' $8%@ % 0% $ ߿߰߱߼' <$c'#!  '  ' $'@ %  ߿߼'[%s] %s Output file name not specifiedreport-file %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld a      $ ( , 0 4 8 < D H P T ^ b f j t x |                   " & * 4 8 < @ J N R V Z ^ h l p t ~        4<%@PX%\hx %| %  P %`lt % % % % % % %$d0hl0t%x00% % %,@4%8@HP%T\@l %p@x %`%`%` %` %@@@DDDt|%%% % % %@L%P`h%lx % %(%(%((< %@(H %pppttt`%`% % %   $$$P\%`px%| % % % (%,8@L %P@X %p%p%%  p % $p 0 @ % D L % p p p t t t  %   %   %  %    $ $ $ T \% ` h p% t  %   %   %  %       $H ,% 0H @ H% L TH h % lH t %       X % X  %  X  % X $ % P P P T T T t%  %  % %0 DL T` t   08<DT\ p     ` p   ( <D LX ht |    Tp      $8< T\ dpt      $ 4D L    4HL dl t    $04 DT \       ( , 8 H P          4 P d x        4 < D P d p x       ( d p x |     @Lc˰ xreport.c/ terminal_p0 terminal_e1 file_e2 file_p 3fptr_p4fptr_e5 parm_file6 err_file:p_error Zinit08close_fileXptitle xradius 4radius2 @ cenlon cenlonmer dcenlat porigin  < true_scale t\stanparl  l|%stparl1 p 3offsetp Cgenrpt Ngenrpt_long DYpblank P ,6 /ecs/hdfeos/gctp/srcreport.cI<p   $    `#pEG9iS!      !     !   !  $% ( ! ( ! ( ! ( !% ( ! () ,% ) !  ! $%   %%   %%  % B 4: ; 9  .: ; 9 ? @ @.: ;9 ? @ @|@ @A C ACBC@ A0CC@BP CAD@ C ACC@ C ACC@ @ C ACBC@ C ACC@ C ACC@p C ACC@ C ACC@ C ACC@  C ACBC@ p C ACC@ C ACBC@ C ACAD@ C ACBC@ Px CAD@ p_errorinitclose_fileptitle$radius@radius2]cenlonycenlonmercenlatorigintrue_scalestanparlstparl1.offsetpLgenrptigenrpt_longpblank -BSdu!!! !48<!QUY!mqu!!!!! !"&*!@DH!]ae!!!C!<!@\!`|!!!!! !$@!D`!d!!!! !0!4x4 I $ *x0x5xc=Ep!W x m  x '0-p -Hp.(p0p3Op3Lp6< p6\ 7@ 9( 90 :@, :P@p:Xpaksz.o/ 1230069323 7356 20 100664 3460 ` ELF "4( l# /;IVeu.symtab.shstrtab.strtab.comment.text.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.text.lit8.rodatapakszp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:paksz.oD'ଠF `<<$!!!E߿׊׊׉F aEF))F ! D ׁ0(Bi׋ @(׌(F"!F)AF')F+9F 1D0(c=`,F1aF+*BF):AF)`<E F,(F!@F"F HF P߼' F!$ $߿׀ߧ߼$\' $ $߿׀ߧ߼$\' $ $߿׀ߧ߼$\' ?A.@@@N@ Illegal DMS fieldpaksz-degpaksz-minpaksz-sec       88% %8(<@(D%H48<PX`   P x4paksz.c5paksz l5 /ecs/hdfeos/gctp/srcpaksz.c̿7 vx v $\rt1 % x%y^)!_!l%m% B .: ; 9 ? @ @|@ @A,l B E@Ai @B @l8paksz*.2 B x4 D6zG$`l*080B8p!JJ h ` k `up Hp08ph pq(pDp p (  H P ` p-p xsphdz.o/ 1230069364 7356 20 100664 4292 ` ELF "4( !)5AO\k{.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.text.data.lit8.rodatasphdzp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:sphdz.o<'$!!!O(&(#($ $@8PԀ߼DP!$ E%MD'߼'%߼'ԥD0F )E׈ ԤF%0<$ $ ׇ%iE&F !F$8<E8F$0<E0F$9F 1F&)ԇ%'$ $$ $߿F$0<E" ߼'ի%Պ ׌ ׎AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕AX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕?AXM˕AXMAXM@Invalid spheroid selectionINFORMATIONALReset to 0   $0  $ ,%08 <0@ D%H0`hp 4  xTsphdz.cZmajor`minorlsphdz5 /ecs/hdfeos/gctp/srcsphdz.c4z{v{ ll  {}2O-xyd\S~ ~ 9  v f(_  "n P q   ~ w~% B 4: ; 9  .: ; 9 ? @ @|@ @A  BBG@J @X;sphdz '7JNR B x4  T<c$*`00(6;>p!KP h fD q 0{p Hp @Xp p v7p 8p p  (8 ` h x 3p untfz.o/ 1230069404 7356 20 100664 3412 ` ELF 8 "4( !)5AO\k{.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.text.data.lit8.rodatauntfzp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:untfz.o'<%$!!!(@(`@@#@@@!$@8!DF!2E%߼'$ $߿$߼'$ $߿$M߼'?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit   (HP(P%(%|   xFuntfz.cfactors'untfz5 /ecs/hdfeos/gctp/srcuntfz.cͿ*$}( (y(% B 4: ; 9  .: ; 9 ? @ @|@ @A AB@ABB@J-untfz )<@D B x4  T<c$*X 00x6[>p!P  f  q {p Hp@Jpp7pF8p~ p 0    3p gctp.o/ 1230069444 7356 20 100664 8884 ` ELF "4(   & +08>IRZco{.symtab.shstrtab.strtab.comment.text.sbss.bss.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.MIPS.interfaces.text.sbss.bss.data.lit8.rodatagctpinitp_erroruntfzclose_fileinv_initpakr2dmfor_init.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:gctp.o<$c'#!\؏T``%%`0% D@b%߿߼߳'Pߤ^D %J%N8%_@%G%X7P%Y5%O4 %B0%M%R@(% @$%ph`XPH@80( ph`XPH@80('x ''9%$B%x$x8% p%Tѯ$ ߱߰ ߲ %%@%`8%$(e^l$ $߿߼%$f߳'Pߧ%JJ!H0$߫Lkl$L$$ ih#ߢ hMh!$Eh%բAF"2%E$BE8%$lB@i(t(!7Pcf54 $$ Iqp#|pNp!%h%8գF$2%E%(%$(e@(Oe߭߯%$$ '$ ߦ@8%b߹ȏ9$?߿ ߡ ߿%߼߳'Pצ'%F&9F&)Bߧߤȏߥ%h!Ie0$H#g Hd @! (08@HPX`ph80(      $$ ?' ((0088@@HHPPXX``hhppD ߥ<88#8@$IDP׋FRߦF+R9׋ߤߥߧ`P%H%'%k %ki l`P%H%%k %ki؎l ߤȏ ߿%߼߳'PߤȌ'׭׬|lt$B@E@!7Pd#5h%4 C! (08@HPX`phC9XB9PA9H_9@]98[90Y9(W9 U9S9R9Q9P8O8$N8$ 6  ( (0 08 8@ @H HPPXX``hhppDF1 2Elt`P%@H%'%k %kh@ l`P%@H%%k %kh@l#l ߿%߼߳'P8%%J(%'9?!9i'׭' ׬'@nb %lJ׬d׳lv%$$ x'@(% $bl)$ *Wd׻YUF;BY׷F7B U߿%߼߳'P$ $ $|$'(% ߦ@8%bt$i߬r{g'9?!9h@d׭ $@b %$ $$f%$;$F$(2E8ן ׬׬ A$ $ $$'@(% %b$ t)< /5 > 8# 8%01#%$BC!gB< 75k > H#H%+@A#%$BC!BA.AInsys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUTb      " & , 0 4 : > B H L P T X \ T% % % %  % % %L\%% %8DPX % % < % %   % @ ( @  % ( % % % $ 8 x  | 8   h         4 x h  xgctp.c% iter& inpj' indat( inzn0)pdin* outpj4 + outdat5, outzn7P-pdout8.for_transh@/inv_transi6 NADUTFgctp 54 /ecs/hdfeos/gctp/srcgctp.cQkk~m~!}!~  F! v  !v  !v  ~ v& |~~ } } } (  }   } (  } |||,{~|~~}~ p (  ( v~~~}~ p ( y(~A0}}})~~ z9~$ `?  { O%~|{~% B 4: ; 9  .: ; 9 ? @ @|@ @A0 CAH@ C\CCzAA gctp%4DSbrAx 4 X, 9$P *0kp5;0 A(LIp!tb[  qx | <p HpXpT9p7pHp p, H   * >pGp br_gctp.o/ 1230069485 7356 20 100664 2468 ` ELF "4(   * 8ETdt.symtab.shstrtab.strtab.comment.text.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.reginfo.textgctp_gctp.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:br_gctp.o<$B'`X"!P į$̯,ԯ4ܯ<䯢D L߿P߼X'  h%  x7br_gctp.cgctp_W7 /ecs/hdfeos/gctp/srcbr_gctp.c % B .: ; 9 ? @ @|@ @A CAC@;gctp_-15Dx4 $(L$ *p!< RT ] gp  Huph;p[p(p&4pZ pz (      phdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibSOL210.a0000644000175000017500000154074012024715435021214 0ustar amckinstryamckinstry! / 1295032467 0 0 0 2400 ` $$5454LLiizzDDݔݔ  ''5|5|FF[[y<y<,,44ttllǤǤڤڤTT<<ll(D(D8D8DFFR|R|^ ^ l4l4yyll T Tll--??RRff|T|T||\\\ߴߴDD..KKiillddDD**77777\\\\\\LLLLLLLLLLLLLLLLL{t\Ttalberforalberforintalberinvalberinvintalconforalconforintalconinvalconinvintazimforazimforintaziminvaziminvintbceaforbceaforintbceainvbceainvintceaforceaforintceainvceainvinteqconforeqconforinteqconinveqconinvintequiforequiforintequiinvequiinvintgnomforgnomforintgnominvgnominvintgoodforgoodforintgoodinvgoodinvintgvnspforgvnspforintgvnspinvgvnspinvinthamforhamforinthaminvhaminvintimolwforimolwforintimolwinvimolwinvintlamazforlamazforintlamazinvlamazinvintlamccforlamccforintlamccinvlamccinvintmerformerforintmerinvmerinvintmillformillforintmillinvmillinvintmolwformolwforintmolwinvmolwinvintobleqforobleqforintobleqinvobleqinvintomerforomerforintomerinvomerinvintorthfororthforintorthinvorthinvintpolyforpolyforintpolyinvpolyinvintpsforpsforintpsinvpsinvintrobforrobforintrobinvrobinvintsinforsinforintsininvsininvintsomforsomforintgsat_ratiosominvsominvintsterforsterforintsterinvsterinvintstplnforstplnforintstplninvstplninvinttmfortmforinttminvtminvintutmforutmforintutminvutminvintvandgforvandgforintvandginvvandginvintwivforwivforintwivinvwivinvintwviiforwviiforintwviiinvwviiinvintIsin_fwdisinusforIsin_for_initIsin_for_freeisinusforinitIsin_invisinusinvIsin_inv_initIsin_inv_freeisinusinvinitfor_initinv_initcalc_utm_zonemlfne4fne3fne2fne1fne0fnadjust_lonsigntsfnzpakr2dmpakczphi4zphi3zphi2zphi1zqsfnzmsfnzasinztsincospblankgenrpt_longgenrptoffsetpstparl1stanparltrue_scaleorigincenlatcenlonmercenlonradius2radiusptitleclose_fileinitp_errorpakszsphdzuntfzgctpgctp_alberfor.o/ 1295032947 7356 20 100664 4932 ` ELF<4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?!< !< !< ؉D;X@X'   @ @ '#<`!< `?! D?;X@X!< ;XX@@? ;XX;XX;X@X? ;XX;XX;X@X?p;XX@@ ;XX;XX;X@X? ;XX;XX;X@X?h;XX@@ ;XX;XX;X@X?x؉;X@X  D Dhpĉ !< !<  D#`pDD!< %?``xD;X@X` @`!<  @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X'H'D'H'L'P'T'XDH?LP?;X@X! ;XX;XX;X@X?! ?! ! @;X@X @ ? ?! ;X@X @??;X@X @! DT$ $ ! ??;X@X @! DX$ $ 'Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA=|׽?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07alberfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o alberfor.o alberfor.c <L4alberfor.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northinglon_centerr_majorr_minore3ns0crhcossinadjust_lonalberforoffsetporigincenlonmerstanparlradius2ptitleqsfnzmsfnztsincossqrtp_errorfabsalberforint H /=LW_ g(j0n8p@sw{X4         0 4 8P T \ ` d p t  ( ( ( ( (0 (P\ (| (     0$ 04 08 0D 0H 0X 8\ 8` d l 0 0 @ @ P P         , ( (   8 8 0 0  0 0$ ( 4Td h | @ @  4j Hj%+4C $ O W  _ h  alberinv.o/ 1295032947 7356 20 100664 6100 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?!< !< !< ؉D;X@X'   @ D '#<`!< `?! D!< ;X@X!< ;XX@@? ;XX;XX;X@X? ;XX;XX;X@X?x;XX@@ ;XX;XX;X@X? ;XX;XX;X@X?p;XX@@ ;XX;XX;X@X?؉;X@X  D Dpxĉ !< !<  D#`xDD!< %?h`D;X@Xh @`!<  @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X'('D'H'L'P'T'XDH?LP?'! ??! 荡! D??! !  Z ZD;X@X?! ? Z ZD;X@X!?! ?! ? D 𑡉D艡D;XX;X@X?#`D! ?! D`??%?#`e! ?! 'D?Z;X@X @?;X@X! ?;X@X;X@X`` ؘ;XX;X@XX$ $ Ā @'!  ! DX$ $  %! DX$ $ ;XX;X@XX$ $ Ā '! ! D;X@XT$ $ 'Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREA=|׽??@ !TD-@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07alberinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o alberinv.o alberinv.c <L4alberinv.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northinglon_centerr_majorr_minorese3ns0crhadjust_lonphi1zlogatan2alberinvoffsetporigincenlonmerstanparlradius2ptitleqsfnzmsfnztsincossqrtp_errorfabsalberinvint P (/=LW_ g(j0m8q@sHvX8      "  0 4 8!P T \ ` d p t  ( (  0 0 0 0,4 0T` 0 0"  $ 8( 88 8< 8H 8L 8\ @` @d h p 8  8 H H T T           0   H H   8 8     H \ ` l p |  8 8   @ @ 8 0 0   $ ( 0 (4 (@ D p 0 4"""   0 4@ D X \ ` d      8 8  4j 8Pn H(% p+ p4 YC $ O (W (@ _h`  alconfor.o/ 1295032948 7356 20 100664 5964 ` ELFD4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?+=`-=3`>`5>! %#`D/=! `D1 >  !$ ! ?;X@X%<! #`<`! <`! <`! <` ! <`(! <`0! #`<`! <`! <`! <` ! <`(! <`0? ;X@X @?') D D#`;X@X! ?! ĉD `;XX;X@X @;X@X` D D?;X@X @`;XX;X@X;X@X ;X@X`;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X#`?H;X@XH @?%'D荡D+`;X@X! ?@-ĉD ``;XX;X@X@ @;X@X` DD?`Ȗ;X@X#`ȑD! DЉDD?`D ?DؙD? ȑD`DЉDčD?L?X LFD?%, #`?, #`?, #`?, #`?x 'T@/X JD?px LD?hT'$, #` J?$, #` L?x??T 'T! @%D?D?xp?h? J NčH#`D! DT$ $  J NDR`D! DX$ $ 'ALASKA CONFORMAL@c?FR5@P?{s^?15,1?uULb!?}YzŘ?j;= ?sպ?szK?fs <7?s$ܙ?ȼNn?XS?vO@ !TD-?@?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07alconfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o alconfor.o alconfor.c <L4alconfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefsin_p26cos_p26adjust_lonalconforoffsetpcenlatcenlonradius2ptitletsincospowtanatansinsqrtalconforint  /7?M\ g(r0t8v@8|x8H$p t |                ( ( 0 0     8 8   @  @( (, (4 08 0@ 8D 8P @T @\ H` Hh Pl Pp xt x| X X ` ` h h p p x x 8       , 0 D 8H \px               8 8        0 84 H\d l p         0 04 0< @@ @L 0T xX xd 0l 8p 8| 0 p p 0 0 0 @ @ 0  x$ xL 0P 0       4j  %x+x4 aC $ O 0W ( _H  alconinv.o/ 1295032948 7356 20 100664 7428 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?+=`-=3`>`5>! %#`D/=! `D1 >  !$ ! ?;X@X%<! #`<`! <`! <`! <` ! <`(! <`0! #`<`! <`! <`! <` ! <`(! <`0? ;X@X @?') D D#`;X@X! ?! ĉD `;XX;X@X @;X@X` D D?;X@X @`;XX;X@X;X@X ;X@X`;XX;X@X'X'D'H'L'P'T'XDH?LP?! #`?! `??H?@'HF?؍F@ DD?%, #`?, #`?, #`?, #`?'܍D?'܍D?$ '܍ȉD?$ '܍D? '@U HD? JD?'@<$, #`ЉH?$, %J??? HD?x JD?p$'܍$, DH?$'܍$, DJ??? '! @Џ%D?D???HJ@ LčH𡡈?h JLDN蝡?`H JD?X HJDJ?P L HD?8 LHD ?0L Hĉ ?(V?HF?@;X@X! ?(;X@Xн@??  '   @  '#`ȁ H D@ DD;X@X?! ;X@X D?;X@X! T$ $ ;X@X``  ! X$ $ '! D@D! DĉD;X@X?'?#`?;X@XЉ @?') DD%;X@X! ?! Dđ `;XX;X@X @;X@X D D轡??Z? '   @  0';X@X!  X$ $ ! ?H H! DD@! D H;XX;X@XЉ@;X@XT$ $ 'ALASKA CONFORMALToo many iterations in inversealcon-invToo many iterations in inversealcon-inv@c?FR5@P?{s^?15,1?uULb!?}YzŘ?j;= ?sպ?szK?fs <7?s$ܙ?ȼNn?XS?vO@ !TD-?@?=|׽@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07alconinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o alconinv.o alconinv.c <L4alconinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefsin_p26cos_p26atan2adjust_lonasinzp_errorfabsalconinvoffsetpcenlatcenlonradius2ptitletsincospowtanatansinsqrtalconinvint  /7?M\ g(r0t8v@8|x8H<$p t |                ( ( 0 0  $  8 8   @  @( (, (4 08 0@ 8D 8P @T @\ H` Hh Pl Pp xt x| X X ` ` h h p p x x 8#       !, 0 D 8H \ p"x                    0 0 @ @ 0 x  x 0  8$ 80 08 p< pH 0d 0 0 0 0 0  0$ @( @@ 0L xP x 0 0 0 0 0 0 <l p t  $  "   $ ( < (@ (\ ` t x  8 8#      !   $ 8 ( <  P" X ` d  @  @         , 0 L `4j   ( (j % @+ @4)C$ OW` _h  azimfor.o/ 1295032948 7356 20 100664 4172 ` ELF4(.shstrtab.text.bss.data1.rodata1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?;X@X;X@X?! D! ؉D @D?;X@X! D;X@X! (! ?! ! ! D! D! D?X`;X@X`@ {>';X@X! ?P?P;X@XP ?! ?@#`DؽD?H;X@XH @@DT$ $ ! `D! D! ؍DȉDĉDDX$ $ 'AZIMUTHAL EQUIDISTANTazim-forPoint projects into a circle of radius = %12.2lf=|׽?@ !TD-?@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07azimfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o azimfor.o azimfor.c <K4azimfor.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12sinacosp_errorsprintffabscosadjust_lonazimforoffsetporigincenlonmerradiusptitletsincosazimforint 88.6AL[ i(q0y}htH           ( ( 0 0       $ 4   ( ( 0 0  $ 08 < P T ` d x |  ( ( 0 0      $ ( 0 4 Tx |   0 0 ( (4s 8!1&8.4=L$  X` h x  aziminv.o/ 1295032948 7356 20 100664 4644 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'8'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X! ??#`%D! D! ??> Z  @  }' ?ؔЖ;X@X+`T$ $ ;X@X-  ! X$ $ ') DЍD! DĉD;X@XX$ $ ';X@X``D?;X@X  4! ``?艠;XX;X@X@;X@XT$ $ V'``?;XX;X@X;X@XT$ $ A'?  ?X  ;X@X @?;X@X ;X@X '! ?ЍD! DD;XX;X@X@;X@XT$ $ 'AZIMUTHAL EQUIDISTANTInput data errorazim-inv@ !TD-?@=|׽@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07aziminv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o aziminv.o aziminv.c <K4aziminv.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12sinatan2adjust_lonasinzfabsp_errorsqrtaziminvoffsetporigincenlonmerradiusptitletsincosaziminvint 8(.6AL[ i(q0y}hH           ( ( 0 0       $ 4             8 < @px |      ( ( 0 0   (0 4 8 < PX \ p t x |     @ (D ,\|       0 04j @85(%@+@4)C$ OW  _ \  bceafor.o/ 1295032949 7356 20 100664 4484 ` ELFx4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textX'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< !< !< `?! D#<`;X@X!< `!  !$ !$ %;X@X#<`;X@X!< `?! ! @ @;X@X !<  @! ! ;XX;X@X! ;X@X;X@X! ! ;XX;X@X'X'D'H'L'P'T'XDH?LP?! ;X@X?;X@X! ?! ! #`D%DDT$ $ ! ` JĉDX$ $ ;! ! ? J JĽ?! 'D ?ȉJĉD;X@Xȉ @ D?! #`%DDDT$ $ ! ` JD ĉDX$ $ 'Cylinderical Equal Area?>h@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07bceafor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o bceafor.o bceafor.c <K4bceafor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kzlogadjust_lonbceaforoffsetptrue_scalecenlonmerradius2ptitlesincossqrtbceaforint `.6>IT c(q0t8v@zHPX\           ( (      0 0  8$ 8( 0, 0 H @L @X @\ @` d lt Hx H|  P P H   0 0 X X          $, (0 (4 8 H   @ @ ( (    H  H8 < @ H Hh l p 0t 0 8 8   ( (   X X   $ , X0 4j h` %8+84!C$ OW _   bceainv.o/ 1295032949 7356 20 100664 5732 ` ELF\4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< !< !< `?% D'<;X@X)=  D!< D!<  !   !$ ! !< #!$ ??> ?  ! D ?ƉF;X@X @ D!< %;X@X#<`;X@X!< `?! ! @ @;X@X !<  @! ! ;XX;X@X! ;X@X;X@X! ! ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ?! ??! %؍ D#`;X@XX$ $ ! `D ĉD;X@XT$ $ y#`؍ D+`D) ! D ;X@X! ??! ! ! ! %DD! ! 'DD?`ȉ D;X@XЉ @ȽD?! ! D! ! DD?! D;X@X @D?! ! D?! D;X@X @DX$ $ !  `D ĉD;X@XT$ $ 'Cylinderical Equal Area?>h@@@?@f@(@@7@v@o`@@@@&@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07bceainv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o bceainv.o bceainv.c <K4bceainv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kzadjust_lonasinbceainvoffsetptrue_scalecenlonmerradius2ptitlesincoslogsqrtbceainvint x.6>IT c(q0t8v@{HPX`hp(           ( (      0 0"  8$ 8( 00 @4 @8 0@ HD HH 8L P h Pl Pp t x X| X P P   0 4 8 <  ! X X      `$ `( 08 h< h@ `H L P 0T 0h"x p| p          ( (  ` (d (t x  P P ` `      `    p$ p, 0 4 X8 XH` 0d 0h l t x | ( ( @ @ 0 0 8 8 H H  @ @ H H @ P  P X X H0 `4 `@\ h` hd ph pp H x x    p4j x%@+@4 )C $ O W @ _ 0,  ceafor.o/ 1295032949 7356 20 100664 4476 ` ELFt4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textX'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< !< !< `?! D#<`;X@X!< `!  !$ !$ %;X@X#<`;X@X!< `?! ! @ @;X@X !<  @! ! ;XX;X@X! ;X@X;X@X! ! ;XX;X@X'X'D'H'L'P'T'XDH?LP?! ;X@X?;X@X! ?! ! #`D%DDT$ $ ! ` JĉDX$ $ ;! ! ? J JĽ?! 'D ?ȉJĉD;X@Xȉ @ D?! #`%DDDT$ $ ! ` JD ĉDX$ $ 'Cylinderical Equal Area?>h@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07ceafor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o ceafor.o ceafor.c <J4ceafor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kzlogadjust_lonceaforoffsetptrue_scalecenlonmerradius2ptitlesincossqrtceaforint `-5=HS b(p0s8u@yHPX\           ( (      0 0  8$ 8( 0, 0 H @L @X @\ @` d lt Hx H|  P P H   0 0 X X          $, (0 (4 8 H   @ @ ( (    H  H8 < @ H Hh l p 0t 0 8 8   ( (   X X   $ , X0 4j h` %8+84!C$ OW _   ceainv.o/ 1295032949 7356 20 100664 5724 ` ELFT4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< !< !< `?% D'<;X@X)=  D!< D!<  !   !$ ! !< #!$ ??> ?  ! D ?ƉF;X@X @ D!< %;X@X#<`;X@X!< `?! ! @ @;X@X !<  @! ! ;XX;X@X! ;X@X;X@X! ! ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ?! ??! %؍ D#`;X@XX$ $ ! `D ĉD;X@XT$ $ y#`؍ D+`D) ! D ;X@X! ??! ! ! ! %DD! ! 'DD?`ȉ D;X@XЉ @ȽD?! ! D! ! DD?! D;X@X @D?! ! D?! D;X@X @DX$ $ !  `D ĉD;X@XT$ $ 'Cylinderical Equal Area?>h@@@?@f@(@@7@v@o`@@@@&@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07ceainv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o ceainv.o ceainv.c <J4ceainv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kzadjust_lonasinzceainvoffsetptrue_scalecenlonmerradius2ptitlesincoslogsqrtceainvint x-5=HS b(p0s8u@zHPX`hp(           ( (      0 0"  8$ 8( 00 @4 @8 0@ HD HH 8L P h Pl Pp t x X| X P P   0 4 8 <  ! X X      `$ `( 08 h< h@ `H L P 0T 0h"x p| p          ( (  ` (d (t x  P P ` `      `    p$ p, 0 4 X8 XH` 0d 0h l t x | ( ( @ @ 0 0 8 8 H H  @ @ H H @ P  P X X H0 `4 `@\ h` hd ph pp H x x    p4j x%@+@4 )C $ O W @ _ (,  eqconfor.o/ 1295032950 7356 20 100664 6164 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''DH?LP?TX?\`?dh?lp?tx?|?%<#<`!< !< !< `?! D#<`;X@X'<`;X@X+=``;X@X-=`;X@X/=`;X@X1 > ;XX@@;XX;XX;X@X?` ;XX;XX;XX#\#`#d#h@? Y؉D;X@X)   @ 0 Q';XX@@;XX;XX;X@X?``  ;XX;XX;XX#\#`#d#h@?؉;X@X   ĉ !< !< !< ! ĉD#<`! ! ! ! ;XX;XX;XX#\#`#d#h@!< %`D!<  * @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X% @! ;XX;X@X;X@X! ;X@X;X@X! ! ;XX;X@X'@'D'H'L'P'T'XDH?LP?! ! ! ! ;XX;XX;XX#\#`#d#h@?! ! D?! ?! ;X@Xȉ @?! ??;X@X @ȉDT$ $ ! ! D??;X@X @X$ $ 'Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONICEQUIDISTANT CONIC?=|׽@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07eqconfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o eqconfor.o eqconfor.c <L4eqconfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerfalse_northingfalse_eastingesee0e1e2e3nsgml0rhcossinadjust_loneqconforstparl1offsetporigincenlonmerstanparlradius2ptitlep_errorfabsmlfnmsfnztsincose3fne2fne1fne0fnsqrteqconforint x /7?JY g(j0l8o@rHuPxX{`}hp              $ 0 4 @ (D (L+T 0X 0\ (d*l 8p 8t (|) @ @ (( H H (' P P& 0%  8 @ HH$t#|    "& 0 4% 8 < @ D H  LD$`#h l  X X X X X X X X ` ` 8 8 @ @ H H P P8$@ hD hH L P `\ p` pt <x <|!            P P!$ ( , 0 @ PX \ dt|     8 8 @ @ H H  P P@$L P T `X `h Xl Xx |      p p4j @xbH%X+X4 AC $ O W 0 _  eqconinv.o/ 1295032950 7356 20 100664 6508 ` ELFd4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''DH?LP?TX?\`?dh?lp?tx?|?%<#<`!< !< !< `?! D#<`;X@X'<`;X@X+=``;X@X-=`;X@X/=`;X@X1 > ;XX@@;XX;XX;X@X?` ;XX;XX;XX#\#`#d#h@? Y؉D;X@X)   @ 0 Q';XX@@;XX;XX;X@X?``  ;XX;XX;XX#\#`#d#h@?؉;X@X   ĉ !< !< !< ! ĉD#<`! ! ! ! ;XX;XX;XX#\#`#d#h@!< %`D!<  * @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X% @! ;XX;X@X;X@X! ;X@X;X@X! ! ;XX;X@X'@'D'H'L'P'T'XDH?LP?'! ??! 荡! D??! !  Z ZD;X@X?! ? Z ZD;X@X!?! ?! ? D 𑡉D艡D;XX;X@X?! ! ĉ?! ! ! ! ;XX;XX;XX#\#`#d#h@#lX$ $ ! ! ĉD;X@XT$ $ Ā ''Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONICEQUIDISTANT CONIC?=|׽@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07eqconinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o eqconinv.o eqconinv.c <L4eqconinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerfalse_northingfalse_eastingesee0e1e2e3nsgml0rhadjust_lonphi3zatan2eqconinvstparl1offsetporigincenlonmerstanparlradius2ptitlep_errorfabsmlfnmsfnztsincose3fne2fne1fne0fnsqrteqconinvint x /7?JY g(j0l8o@rHuPxX{`}hp@              $ 0 4 @ (D (L+T 0X 0\ (d*l 8p 8t (|) @ @ (( H H (' P P& 0%  8 @ HH$t#|    "& 0 4% 8 < @ D H  LD$`#h l  X X X X X X X X ` ` 8 8 @ @ H H P P8$@ hD hH L P `\ p` pt <x <|!            P P!$ ( , 0 @ PX \ dt|       p p  $ 4 X8 X< @ t+  +     $ `( `0 4 D 8H 8L @P @T HX H\ P` P   X X4j xb % + 4 C $ O "W  _  equifor.o/ 1295032950 7356 20 100664 2884 ` ELF <4( .shstrtab.text.bss.data1.data.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !<  @`;X@X;X@X;X@X  ;XX;X@X'p'D'H'L'P'T'XDH?LP?! ;X@X?! ?#` @?! ;X@X؉ @ЉDT$ $ ! `艡DDX$ $ 'EQUIRECTANGULAR@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07equifor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o equifor.o equifor.c <K4equifor.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingcosadjust_lonequiforoffsetporigincenlonmerradiusptitleequiforint (.6AL[ imxP,                              4j 0(#+4Cp$ OWHP _  equiinv.o/ 1295032950 7356 20 100664 3196 ` ELF t4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !<  @`;X@X;X@X;X@X  ;XX;X@X'p'D'H'L'P'T'XDH?LP?! ?! ?#`X$ $ X  ;X@X! ! D  @  ! ??``?! ;X@X @؉ ЉD;X@XT$ $ EQUIRECTANGULARInput data errorequi-inv@ !TD-?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07equiinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o equiinv.o equiinv.c <K4equiinv.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingcosadjust_lonp_errorfabsequiinvoffsetporigincenlonmerradiusptitleequiinvint (.6AL[ imxP<,                               , 0 8 < D h4j 0(0-`%p+p4YC$ O$W _d  gnomfor.o/ 1295032951 7356 20 100664 3452 ` ELF p4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?!< !< #<`!< ;X@X @;X@X;X@X;X@X` ;XX;X@X'@'D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X;X@X?'ؑD%ЉD @D??!   @  1'!  ?! ?#`DнD?;X@X @DT$ $ ! `DؑDЍDȉDĉDDX$ $ 'GNOMONICPoint projects into infinitygnomfor-conv?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07gnomfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o gnomfor.o gnomfor.c <K4gnomfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsin_p13cos_p13sinp_errorcosadjust_longnomforoffsetpcenlatcenlonradiusptitletsincosgnomforint 0.0;IX `(hltx`@           ( (    ,     ( (  , 0 4H L \ ` h l     ( ,  $4j 09%+4C$ OWx _ X  gnominv.o/ 1295032951 7356 20 100664 4348 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?!< !< !< #<`!< ;X@X @;X@X;X@X;X@X` ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X?! ;X@X?ؔЖ;X@X%T$ $ ;X@X)  ! X$ $ ''DЍD! DĉD;X@XX$ $ #`;X@X! ! D?;X@X   4``! ?艠;XX;X@X@;X@XT$ $ V'?;XX;X@X;X@XT$ $ A'??X  ;X@X @?;X@X  ;X@X  '! ?ЍD! DD;XX;X@X@;X@XT$ $ 'GNOMONIC=|׽@ !TD-?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07gnominv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o gnominv.o gnominv.c <K4gnominv.cBbss.bssDdata.dataDrodata.rodataRlon_centerlat_centerfalse_eastingfalse_northingsin_p13cos_p13sinatan2adjust_lonasinzfabsatansqrtgnominvoffsetpcenlatcenlonradiusptitletsincosgnominvint 8 .0;FT c(k0sw}hpH           ( ( 0 0    $ 4        ,4 8 L P l (p ( 0 0             ( , L`|   ( ,   <D H d h | 0 04j x8x  %+4C8$ O\W 8 _   goodfor.o/ 1295032951 7356 20 100664 5140 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿐'D'HDH?1 > %#`<`<`'<`<`+`<` -<`(`<`0<`8/<`@3``<`H<`P`<`X D! <  D<  D<  D<  `D<  D< ( `D< 0 D< 8 D< @ `D< H D< P `D< X @;X@X'('D'H'L'P'T'XDH?LP?! !   U! !    B) !   !    !    !   !    !      (-#`;X@X?-#`?#` @?;X@X @DT$ $ `艡DX$ $ ,#`;X@X??;X@X! D?Ȭ?;X@X@ȉĿ%?! ?;X@X@ ?؉F?;X@X% `2  @  Q'Ϭ`#`?! `?;X@X! ?-#`?#`! DཡD?;X@X @DT$ $ `?;X@X! D?;X@X'! D DX$ $ 'GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forward?]?R8-h@WJ<_?R8-@?WJM@5AI?iy?WJM?WJU@ !TD-?=|׽@?d)?f;? _@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07goodfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o goodfor.o goodfor.c <K4goodfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfeastsignp_errorfabssincosadjust_longoodforradiusptitlegoodforint .0`;h`AFNSW[fnu|, 0 8 < D H P \ ` h p t        ( (   h h   ( < P d x    8 0< 0T 8X 8 @ @ 8 8    4 H8 Hd h    H H$ ( 8H hL hX \ p    P P4 X8 XHt | ` `    h h P P h  ` d( @, @8 h< hH L P pT pp  x x   4j N%+4 qC $ O <W P _   goodinv.o/ 1295032951 7356 20 100664 7676 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿐'D'HDH?1 > %#`<`<`'<`<`+`<` -<`(`<`0<`8/<`@3``<`H<`P`<`X D! <  D<  D<  D<  `D<  D< ( `D< 0 D< 8 D< @ `D< H D< P `D< X @;X@X'8'D'H'L'P'T'XDH?LP?! ! H! D  ]! ! D   I) D#! D  ! D   ! D   !! D  ! D   ! D   ,#`?  \'X$ $ X  ;X@X#`%D  @  X  ;X@X``D?;X@X! !-#`???X  ;X@X @ D?;X@XT$ $  -#`T$ $ s?%! D?;X@X'ȉ DD! D ?;X@X' ?;X@X?ء-#`??! D?;X@X @ DT$ $ T  #`! D g?! D?;X@X@``?;X@X N?;X@XX$ $ ! ! T  !  ! ! T  D! T  $ $ T  ! ! D  ! ?T  ! ! D  ! ?T  !  ! ! D Ѭ?T  !  ! ! D ?T  ! ! D  ! ?T  !  ! ?T  ! ! D  ! q?T  !  ! [?T  !  ! F? T  !  ! ! D /? T  !  ! ? T  !  ! ! D ?GOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverse?]?R8-h@WJ<_?R8-@?WJM@5AI?iy?WJM?WJU@ !TD-?=|׽? _?f;??d)@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07goodinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o goodinv.o goodinv.c <K4goodinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfeastsinasinsignadjust_loncosp_errorfabsgoodinvradiusptitlegoodinvint .0`;h`AEJOZ^fk sz, 0 8 < D H P \ ` h p t        ( (   h h   ( < P d x    8 < @ 0D 0` 8d 8 @ @ 8 8  , 0 T HX H     H H  h hl p  P P X X   P T X \ ` `4 8 L P h     h h    p$ p8@ xD xh x |      P P ` `  , < P@ TPX x\ |  @ @ P P ` ` @ @ P P ` `\ P` Pd `h ` 8 8 P P ` ` 8 8 $ 8 ( 8 @ P D P H ` L `  8  8  P  P  `  `  P  P  `  `   H L d h  P  P  `  `      $ \ ` x H | H  H  H  P  P  `  `   ( H , H ` H d H x P | P  `  `4j   X XB %0+04C$ OWp` _ $  gvnspfor.o/ 1295032952 7356 20 100664 3764 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.texth'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?!< ! 艡ĉD!< !< #<`%<;X@X! @;X@X (;X@X;X@X;X@X`;XX;X@X'8'D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X;X@X?'ؑD%ЉD @D??! ! ??>   @  5'! Dډ?! ?#`DнD?;X@X @DT$ $ ! `DؑDЍDȉDĉDDX$ $ 'GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07gvnspfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o gvnspfor.o gvnspfor.c <L4gvnspfor.cBbss.bssDdata.dataDrodata.rodataRplon_centerfalse_eastingfalse_northingsin_p15cos_p15sinp_errorcosadjust_longvnspforoffsetpcenlatcenlongenrptradiusptitletsincosgvnspforint 8 /13>L [(c0kow{             ( ( 0 0  (<L\d h x  $0 (4 (@ 0D 0` d h l  T T      $ ( , 8 0< 4H (L ,4j (8(z%+4CL$ OpW@ _   gvnspinv.o/ 1295032952 7356 20 100664 5068 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.texth'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?!< ! 艡ĉD!< !< !< #<`%<;X@X! @;X@X (;X@X;X@X;X@X`;XX;X@X'0'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X?! ??#`! D?`%D?ȉ ;X@X  @  '``?؍ DȍDЉĉ;X@Xؑ ƉĉD?;X@X?;X@X%T$ $ ;X@X)  ! X$ $ ''DD! DĉD;X@XX$ $ #`;X@X! ! D?;X@X   4``! ?艠;XX;X@X@;X@XT$ $ V'?;XX;X@X;X@XT$ $ A'??X  ;X@X @?;X@X  ;X@X  '! ?D! DD;XX;X@X@;X@XT$ $ 'GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-for?=|׽@ !TD-?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07gvnspinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o gvnspinv.o gvnspinv.c <L4gvnspinv.cBbss.bssDdata.dataDrodata.rodataRplon_centerlat_centerfalse_eastingfalse_northingsin_p15cos_p15sinatan2adjust_lonfabsasinzp_errorsqrtgvnspinvoffsetpcenlatcenlongenrptradiusptitletsincosgvnspinvint @ 0/13>I W(f0n8vzD             ( ( 0 0 8 8   0DTdl p (   ( ($0 4 D H L P \ ` d x X X    ,4 8 PX \ p t  0 0 8 8         , 0 4 (8 (L P p   0 48@ D `h l    8 84j @v0%H+H4 1C $ O W  _   hamfor.o/ 1295032952 7356 20 100664 3076 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ;X@X?! ! D?! ?;X@X! ?#`;X@XЉ @ȉD;X@X ?! ?`D?;X@X @?`;X@XЉ @DT$ $ ! ??;X@X @DX$ $ 'HAMMER?fe>?@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07hamfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o hamfor.o hamfor.c <J4hamfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsincossqrtadjust_lonhamforoffsetpcenlonradiusptitlehamforint -/:HW[_dov~p t |          P T `l p t x           ( 4 X \ t 4j X X`%x+x4aC$ O(W` _(  haminv.o/ 1295032952 7356 20 100664 3004 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'x'D'H'L'P'T'XDH?LP?! ?! ?'#` JD H ʍĉ L;X@X% ?! ? DD F H`č艡 D;XX;X@X D؉D;X@XT$ $ D Ɖ ;X@XX$ $ 'HAMMER@@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07haminv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o haminv.o haminv.c <J4haminv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingasinzatan2adjust_lonsqrthaminvoffsetpcenlonradiusptitlehaminvint -/:HW]cnslzp t |          P T d h t x |           $D T 4j ( (0%@+@4)C$ OW` _  imolwfor.o/ 1295032953 7356 20 100664 4860 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿐'D'HDH?%<! #`<`! <`! <`! <`! <` ! <`(#`D'<! D<! D<! D<! D< `D<( @;X@X'8'D'H'L'P'T'XDH?LP?! 9!  ! (!  ! ! D ! %! D  !   7!  ! ( !  ! ! D ! %! D  !   -#`;X@X??;X@X! D?Ȭ?;X@X@ȉĿ%?! ?;X@X@ ?؉F?;X@X%  2 @ Ӭ#`?! `?;X@X! ?-#`?#`! DཡD?;X@X @DT$ $ `! D?;X@X @X$ $ 'INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward?R8-@@ϕ?R8d?!TC@5AI?WJy@^?n\T@WE? 2?n\T?f ?f@ !TD-=++?]yk?5A?=|׽@?d)?f;@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07imolwfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o imolwfor.o imolwfor.c <L4imolwfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfeastp_errorfabscossinadjust_lonimolwforradiusptitleimolwforint h /10<80BJOSWbh$kryH, 0 4 8 < @ H L X \ h l t x  ( (  0 0 8 8  8 8  @ @  H H  P P   0   $4 X X ( ( ` ` h h p p x x8 p< pH L d h  ( (     p p x x p p$ ( @ D p t  p p   ( 0 4 \ $` $d x |  p p     X X 8 8     8 < @ T4j 0h0T%H+H4 1C $ O W @ _ (  imolwinv.o/ 1295032953 7356 20 100664 4804 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿐'D'HDH?%<! #`<`! <`! <`! <`! <` ! <`(#`D'<! D<! D<! D<! D< `D<( @;X@X'X'D'H'L'P'T'XDH?LP?! ! ! D   ! D    ! ! D    ! D    -#`?%! D ;X@X?-#`??! D?;X@XЉ @ȉ D;X@XT$ $ ! D?;X@X@! ;X@XX$ $ T  !  ! ?#T  ! !  T  !  ! e?T  !  ! P?T  !  ! <?#T  ! !  T  !  ! ?T  !  ! ?INTERRUPTED MOLLWEIDE EQUAL-AREA?R8-@@ϕ?R8d?!TC@5AI?WJy@^?n\T@WE? 2?n\T?f~?+}8k=?f;?d)@@ !TD-?f ?]?]yk?5A@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07imolwinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o imolwinv.o imolwinv.c <L4imolwinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfeastsincosadjust_lonasinimolwinvradiusptitleimolwinvint h /10<80BFJUZhcjqH, 0 4 8 < @ H L X \ h l t x  ( (  0 0 8 8  8 8  @ @  H H  P P   0   $4 X X   ` ` h h  $ ( h, hP `T ` 8 8   p p    x x  0 4 D T X d ( (     ( (   8 (< (p t  ( ( ( (    , (0 (P T l (p (   ( (4j h!%h+h4 QC $ O }W 0 _   lamazfor.o/ 1295032953 7356 20 100664 3700 ` ELF @4(.shstrtab.text.bss.data1.rodata1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?!< !< #<`!< ;X@X @;X@X;X@X;X@X` ;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?Ȗ;X@Xؖ;X@X'ȑD%DЉDD?h?! ?`?>=hDt`! ! D@;X@X`@@ q.'! ?X! h`Z;X@XX @?D؍D! DT$ $ ȑDDЉDčD! DX$ $ 'LAMBERT AZIMUTHAL EQUAL-AREAlamaz-forwardPoint projects to a circle of radius = %lf ?@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07lamazfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o lamazfor.o lamazfor.c <L4lamazfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsin_lat_ocos_lat_osqrtp_errorsprintfadjust_lonlamazforoffsetpcenlatcenlonradiusptitletsincoslamazforint 0 /1<JY c(mrz`@           ( (    ,     ( (  L P T X \ ` px |        ( ,   $( , 4s P0.(,&X.h4h=QL$  X ` h   lamazinv.o/ 1295032954 7356 20 100664 4524 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?!< !< !< #<`!< ;X@X @;X@X;X@X;X@X` ;XX;X@X'@'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X?! #`D ??!   @  s';X@X`` D?ؔЖ;X@X+`T$ $ ;X@X#` %ȑD'ЍD荡DĉD;X@XX$ $ ) ;X@X! ! D?;X@X`` 2??X  ;X@X @?! D``?ЍDD D;XX;X@X@;X@XT$ $ 2  ! ``?;XX;X@X;X@XT$ $ ``?艠;XX;X@X@;X@XT$ $ ! X$ $ 'LAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverse@?=|׽@ !TD-?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07lamazinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o lamazinv.o lamazinv.c <L4lamazinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerlat_centerfalse_eastingfalse_northingsin_lat_ocos_lat_oatan2adjust_lonsinfabsasinzp_errorsqrtlamazinvoffsetpcenlatcenlonradiusptitletsincoslamazinvint 8 0/1<GU d(n0x~hH           ( ( 0 0    $ 4             $@H L dl p    ( ( 0 0       (0 4 P (T ,l ( (   0 4    ( (( , L`|    4j 8B0%+4C$ OW  _   lamccfor.o/ 1295032954 7356 20 100664 5620 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?%<#<`!< !< ؉D;X@X)   @ @ )'``?! D!< ;X@X'<!< !< ;XX@@?;XX;XX;X@X?;XX;XX;X@X?x;XX@@;XX;XX;X@X?;XX;XX;X@X?p ;X@X? ;XX;XX;X@X?؉;X@X  ;X@X! ?hxp;X@Xh !< !< ?X#`?`x;XX`;X@X` @X !< %D?P`;XX;X@XP @!<  @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X'8'D'H'L'P'T'XDH?LP?;X@X! ! D;X@X?! #;X@X?! ;XX;XX;X@X?! ! D?! ;XX;X@X @?! D?! ??>   @ 2 ,?! ?! ;X@X @??;X@X @! DT$ $ ! ??;X@X @! DX$ $ Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedlamcc-for=|׽?@ !TD-?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07lamccfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o lamccfor.o lamccfor.c <L4lamccfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_northingfalse_eastingesecenter_loncenter_latnsf0rhcosadjust_lonlamccforoffsetporigincenlonmerstanparlradius2ptitlepowlogsintsfnzmsfnztsincossqrtp_errorfabslamccforint X (/7?N\ _(a0l8w@zH}P$        $$ ( < @ D#X \ ` d p t   " ( ( 0 0 8 8! (  ((D!L (l x ( 8 ( 8$   DT @X @h @l @x @| @ H H   @ P P L L    8@ 0D 0L\d h l p $    $  4@ (D (`l p t Hx H @ @ @ @   d d# @  @ 0 0(HX \ p Pt P  4j pXp(%(+(4 C $ O W ` _H  lamccinv.o/ 1295032954 7356 20 100664 5788 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?%<#<`!< !< ؉D;X@X)   @ @ )'``?! D!< ;X@X'<!< !< ;XX@@?;XX;XX;X@X?;XX;XX;X@X?x;XX@@;XX;XX;X@X?;XX;XX;X@X?p ;X@X? ;XX;XX;X@X?؉;X@X  ;X@X! ?hxp;X@Xh !< !< ?X#`?`x;XX`;X@X` @X !< %D?P`;XX;X@XP @!<  @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X'P'D'H'L'P'T'XDH?LP?'! ??! 荡! D??! !  Z ZD;X@X?! ? Z ZD;X@X!?! ?! ? D 𑡉D艡D;XX;X@X?! F! (! ! ?! ! D ;XX;X@X?! ;XX;X@XX$ $ Ā ' ! ! DX$ $ ! ! D;X@XT$ $ 'Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC=|׽?@ !TD-?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07lamccinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o lamccinv.o lamccinv.c <L4lamccinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_eastingfalse_northingesecenter_loncenter_latnsf0rhadjust_lonphi2zatan2lamccinvoffsetporigincenlonmerstanparlradius2ptitlepowlogsintsfnzmsfnztsincossqrtp_errorfabslamccinvint X (/7?M\ _(a0l8w@zH}P        %$ ( < @ D$X \ ` d p t   # ( ( 0 0 8 8" (! (( D"L (l!x (  8 ( 8 %   DT @X @h @l @x @| @ H H   @ P P L L    8@ 0D 0L\d h l p    P P    @  @$ ( \#h l #       ( @, @@ D H @L @\ ` d Hh H ( (     @ @  0 04j @XdH(%p+p4 YC $ O (W 8p _  merfor.o/ 1295032954 7356 20 100664 4036 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?'<+=`-=/=1 > )= `?#` D%<;X@X!< ;X@X! ?`??;X@X @?;X@X @;X@X !<  @`;XX;X@X;X@X;X@X  ;XX;X@X'h'D'H'L'P'T'XDH?LP?;X@X! ! D;X@X!   @ 0< 5;X@X?! ;XX;XX;X@X?! ?#`%D?! ;X@XЉ @ȉDT$ $ ! ?`D?;X@XЉ @ȉX$ $ MERCATORTransformation cannot be computed at the polesmer-forward?@ !TD-?=|׽@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07merfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o merfor.o merfor.c <J4merfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1logadjust_lontsfnzp_errorfabsmerforoffsetporigincenlonmerradius2ptitlesincossqrtmerforint H -5=HS b(p0s8u@x|H$           ( (     0 0$ 8( 84H P 0`| @ @       (         8 8  ($ (, 0 4 @8 @H L X|    @4j xHxH %+4Cl$ OWp _ pH  merinv.o/ 1295032955 7356 20 100664 3684 ` ELF \4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?'<+=`-=/=1 > )= `?#` D%<;X@X!< ;X@X! ?`??;X@X @?;X@X @;X@X !<  @`;XX;X@X;X@X;X@X  ;XX;X@X'x'D'H'L'P'T'XDH?LP?'! ?! ?蓠%#`%D ;X@X?! ;XX;X@XX$ $ ܀ '! ``D ĉD;X@XT$ $ 'MERCATOR?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07merinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o merinv.o merinv.c <J4merinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1adjust_lonphi2zexpmerinvoffsetporigincenlonmerradius2ptitlesincossqrtmerinvint H-5=HS b(p0s8u@xH$$           ( (     0 0$ 8( 84H P 0`| @ @       ( ( (     @ @ 8 8   ( , 0 @4 DH4j pH  %(+(4C$ OW _   millfor.o/ 1295032955 7356 20 100664 2908 ` ELF P4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'p'D'H'L'P'T'XDH?LP?! ;X@X?! #` @DT$ $ ! ?`?! ! ! ĉD;X@X;X@X؍ @! DЉDX$ $ 'MILLER CYLINDRICAL@ !TD-@@?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07millfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o millfor.o millfor.c <K4millfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingtanlogadjust_lonmillforoffsetpcenlonradiusptitlemillforint  .0;IX\`ks{p t |          P T `l p t x              4j (  %+4C$ OWPP _  millinv.o/ 1295032955 7356 20 100664 2900 ` ELF H4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'㿈'D'H'L'P'T'XDH?LP?! ?! ?! #` ĉD;X@XT$ $ `! ;X@X;X@X! ! č! DX$ $ 'MILLER CYLINDRICAL?@ !TD-@@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07millinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o millinv.o millinv.c <K4millinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingexpatanadjust_lonmillinvoffsetpcenlonradiusptitlemillinvint  .0;IX\alt|p t |          P T d h t x |             4j    %+4C$ OWHP _  molwfor.o/ 1295032956 7356 20 100664 3564 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?#<`%<!< !<  @;X@X;X@X`;XX;X@X'@'D'H'L'P'T'XDH?LP?! ;X@X??;X@X! D?Ȯ?;X@X@ȉĿ%?! ?;X@X@ ?؉F?;X@X% `2 @ C Ю`#`?! `?;X@X! ?#`! DཡD?;X@X @! DT$ $ `! D?;X@X @! DX$ $ MOLLWEIDEIteration failed to convergeMollweide-forward@ !TD-?=|׽@?d)?f;@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07molwfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o molwfor.o molwfor.c <K4molwfor.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northingRlon_centerp_errorfabscossinadjust_lonmolwforoffsetpcenlonradiusptitlemolwforint 8.<KMX`eimxLp t |          P T `x        < @ D ` d p t x         ( (    0 0,< @ 4j h >H8%+4iC$ O4Wp _ L  molwinv.o/ 1295032956 7356 20 100664 3372 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?#<`%<!< !<  @;X@X;X@X`;XX;X@X'X'D'H'L'P'T'XDH?LP?! ?! ?! ! D ?;X@X! ?;X@X?! ??! ! D?;X@XЉ @ȉ D;X@XT$ $ T``! $`$`T``! $`$`! D?;X@X@! ?;X@X! ?;X@XX$ $ 'MOLLWEIDE?f;??d)@ !TD-@?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07molwinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o molwinv.o molwinv.c <K4molwinv.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northingRlon_centersincosadjust_lonasinfabsmolwinvoffsetpcenlonradiusptitlemolwinvint 0.<KMX\`kpu}p t |          P T d h t x |            @ D p t       ( (4j (  0%+4C$ OWdp _L  obleqfor.o/ 1295032956 7356 20 100664 4500 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textX'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?#<`%<!< '<+=`-=/=1 > ) @`;X@X;X@X ;X@X ;X@X` (;X@X <;X@X ;XX;X@X ;X@X''D'H'L'P'T'XDH?LP?! ?Ȗ;X@Xؖ;X@X#`ȑD! DЉDD;X@X?ؙ D ȕD` HЉD;XX;X@X! D?;X@X';X@X D?D?D? ;X@X??p;X@Xp @?hD#`;X@Xh ?;X@X?x) %D?` D ;X@X` @! DX$ $ ` D?`D ;X@X` @?Xx;X@XX @?PxD ;X@XP ! DT$ $ 'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07obleqfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o obleqfor.o obleqfor.c <L4obleqfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerlat_omnthetafalse_eastingfalse_northingsin_lat_ocos_lat_ocosasinsinatan2acosobleqfortsincosoffsetpgenrptcenlatcenlonradiusptitleobleqforint P /1<BD F(L0Z8i@sH}(           (  (( 0, 04 88 8@ D HP X` hp x   ( 0  @ @ H H` d  @ @ H H H @ (  (8D H T\            (8 0< 0P T d t   8 84j PI%+4C$ OW  _   obleqinv.o/ 1295032956 7356 20 100664 4596 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textX'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?#<`%<!< '<+=`-=/=1 > ) @`;X@X;X@X ;X@X ;X@X` (;X@X <;X@X ;XX;X@X ;X@X''D'H'L'P'T'XDH?LP?! ?! ?%! ?#`D ;X@X @?'`D ?x D;X@Xx @?p;X@Xp ? ?;X@X @?;X@X D?;X@X D?D;X@X @?h;X@Xh ? DFD;X@X ?;X@X D?;XX;X@X?! ?;X@Xؖ;X@X%БD#`؍DDD;X@XX$ $ ! ?` D`ЕD HD;XX;X@X`@;X@XT$ $ 'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07obleqinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o obleqinv.o obleqinv.c <L4obleqinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerlat_omnthetafalse_eastingfalse_northingsin_lat_ocos_lat_oadjust_lonatan2sqrtsincosasinobleqinvtsincosoffsetpgenrptcenlatcenlonradiusptitleobleqinvint P /1<BD F(L0Z8i@sH}(           (  (( 0, 04 88 8@ D HP X` hp x   ( 0  @ @ H H` 0d 0t 8x 8           $ ( 8PX lt    $ (( (@X` @d @p Ht H   H @4j 0PI %(+(4C$ OW  _   omerfor.o/ 1295032957 7356 20 100664 12068 ` ELF-4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㾀'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''''''''''DH?LP?TX?\`?dh?lp?tx?|?????%<#<`'<1 > !< !< `?+` D#<`;X@X-= /) ;XX@`` F F?``;X@X?`?`? ! ;XX;X@X @``ĉ D;X@X#<` @DD!<  ;X@X! ``?x``!< ``!< W  ;XX;XX;X@X?x;X@X?``D   @?! <  Z! D?!    ;X@X@ ?8;X@X?8?88?x! ;XX;X@X @!< #`@@! ! ;XX;X@X! `;X@X! ! ;XX;X@X 8! ƍ'D?0;X@X- ;X@X?(?0?;X@X @;X@X+` %<! D`@;X@X;X@X%;X@X;X@X! ?#` b! D;X@X`` S(;X@X#`;XX@@! ! ``? D! D;X@X`` ;X@X @!< ! ``Ŀ%? D! D;X@X`` ;X@X艧 @!<   @  e'b;X@X? ! ;XX;XX;X@X?p;X@X?  ;XX;XX;X@X?hp! ;XX;X@X?`h ;XX;X@X?X#`` ?8! ƍ! D?0` D JĉD ?PʉJ?H?@! )! H?@! ! FD??@D% F?P?/ F H;X@X @H;X@X 艧!< ;X@X?@ @;X@X0 ;X@X?(1  ?;X@X @;X@X?#`D+`;XX@@`D` ;X@X`D`@;X@X`D``;X@X;X@X'  `@` ';X@X! ? #`D;X@X   @  l'-;X@X``D;X@X  `@`Ԡ R'(;X@X#`;XX@@! ! ?   D! D;X@X`` ;X@X @!< ! ! Ŀ%?   D! D;X@X`` ;X@X艧 @!< ' 'D'H'L'P'T'XDH?LP?;X@X?! ;X@X?+` @;X@X?;X@X) %D;X@X! x! ;XX;XX;X@X?! ?``;XX;X@X ?#` ȍD?` ȍDD?%D#`Dĉ ?``D;X@X?;X@X!  ! ``DD*?'?``DDDЉ;X@X @``?!    D``ĉD?! ! ?! ?! 荡D! ?;X@X! D;X@X!   @ 5 ! ! D?! ĉD ;X@X @! ?! ?! #`DD% DDT$ $ ! ` DDDX$ $ OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-initPoint projects into infinityomer-for?@=|׽?@Lc˰@ !TD-@>z򚼯H@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07omerfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o omerfor.o omerfor.c <K4omerfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesesin_p20cos_p20blaldellon_originsingamcosgamsinazcosazulogcosomerforadjust_lonp_erroratancenlatcenlontansinasinzoffsetpgenrptradius2ptitletsfnzfabspowtsincossqrtomerforint P.6>KV e(s0v8x@HPX`hpx P4 "'+38 0X \ d h p t |     ( (     0 0/ 8 8 @ @ H H.  0  $ 00/< D 0P T d-t x 0/ P P   X X,       ` `    h h$ 8( <P+d/p Pt T ` `    //L PP P`-p ht hx | *    )  ( ( (  '    ( ($%, `0 `<&\$p&x P| P p p 0 0( p#  " ,    8 8 ( ,(,0 4 L xP xT X `.l p t x .     X X P T ` d  /!    X X  P$ T8 `< dD H T/l!|   ` ` % 8 8+% 8 +0 P4 PD-T Pd-p ht h   ( ( h 8 8  @  @  8  8 4 @ 8 @ \ ( ` ( t P x P $ !  P  p  p   P % !  `  ` % 0& @ 0 D 0 L P \( h 0 x(  0 (  0 ( ,      ,     4 8 8 8 < ( @ , P, X  \  p  t  x      ,  8  <  (  , ,       x  x   .    $ 0. 8  <  @ D X X \ X ` P d T |    / !    X  X  P  P     / ! ( , %  p  p   P  P % ,  8  8  (  (,     8$ 8D+P hT h\ P` Tp-   ( ,  ( , x x   P T , H H, X0 X4 P8 TP XT X` d p xt |! P T   X \ 8 < P T   x x$ x( x4 X8 XD PH P\,d h t,|   ` `  X X ( (   P P   ( (   , 0 H L P \ 4j ((P%+4C$ OCW _  omerinv.o/ 1295032957 7356 20 100664 11684 ` ELF+4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㾈'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''''''''''DH?LP?TX?\`?dh?lp?tx?|?????%<#<`'<1 > !< !< `?+` D#<`;X@X-= /) ;XX@`` F F?``;X@X?`?`?  ! ;XX;X@X @``ĉ D;X@X#<` @DD!<  ;X@X! ``!< ``!< ``!< Y  ;XX;XX;X@X!< ;X@X?``D   @?! <  Z! D?!    ;X@X@ ?@;X@X?@?@@?! ! ;XX;X@X @!< #`@@! ! ;XX;X@X! `;X@X! ! ;XX;X@X @! ƍ'D?8;X@X- ;X@X?0?8?;X@X @;X@X+` %<! D`@;X@X;X@X%;X@X;X@X! ?#` b! D;X@X`` S0;X@X#`;XX@@! ! ``? D! D;X@X`` ;X@X @!< ! ``Ŀ%? D! D;X@X`` ;X@X @!<   @  e'b;X@X?(! ;XX;XX;X@X?h;X@X?( ;XX;XX;X@X?`h! ;XX;X@X?x` ;XX;X@X?p#`x ?@! ƍ! D?8` D JĉD ?XʉJ?P?H! )! H?H! ! FD??HD% F?X?/ F H;X@X荧 @P;X@X !< ;X@X?H @;X@X8 ;X@X?01  ?;X@X @;X@X?#`D+`;XX@@`D` ;X@X`D`@;X@X`D``;X@X;X@X'  `@` ';X@X! ? #`D;X@X   @  l'-;X@X``D;X@X  `@`Ԡ R'0;X@X#`;XX@@! ! ?   D! D;X@X`` ;X@X @!< ! ! Ŀ%?   D! D;X@X`` ;X@X @!< '('D'H'L'P'T'XDH?LP?! ?! ?'#`D! D?` D DD?! D?- L';X@X?% #`D? D`D?D;X@X?+` D) DD؉?;X@X! D;X@X!  #! T$ $ !  ! ``DX$ $  ! ``DX$ $ V?! ?Dĉ ;X@X ;XX;X@X?! ;XX;X@XX$ $  +'D;X@X?! ?``D  D;XX;X@X ?;X@XT$ $ 'OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-init?@=|׽?@Lc˰@ !TD-@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07omerinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o omerinv.o omerinv.c <K4omerinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesesin_p20cos_p20blaltsdellon_originsingamcosgamsinazcosazuatan2cosphi2zexpomerinvadjust_lonp_erroratancenlatcenlontansinasinzoffsetpgenrptradius2ptitletsfnzfabspowtsincossqrtomerinvint H.6>KV e(s0v8x@HPX`hpx `| $+16:BG <X \ d h p t |     ( (     0 02 8 8 @ @ H H1  0  $ 002< D 0P T d0t x 02 P P   X X/     ` `   h  h   p p( 8, <T.\ `` `l2x P| T h h    2$2P `T `X P\ Pl0| p p  -    ,  + ( (  *    ( (0(8 h< hH)h'|) P P x x 0 0+ x&  % /   8 8  ($ ,4/< @ X \ ` d l1x |   1     X X P T h l  2$  $ X( X, P0 TD hH lP T `2x$   ` `#( 8 8.( 8,.< P@ PP0` Pp0| p p   ( ( p 8 8  @  @ $ 8 ( 8 @ @ D @ h ( l (  P  P ' $  P  x  x "  P ( $  h  h (( <) L 0 P 0 X \ h+ t 0 +  0 +  0 + /     # / (  ,  @ 8 D 8 H ( L , \/ d  h  |    #     /  8  <  (  , /     #     1 $ ( , 0 <1 D  H  L P d X h X l P p T     2 $    X  X  P  P     2 $$ 4 8  (  (            P  P X X( 4 8 D (H (T ` (l Px X(    /  /   x x  ( 8, 80 (4 ,P 8T 8X (\ ,|   P T p p  20 8 8, P0 T< X@ \LX x\ xh l x |  P T"4j ^H%(+(4C$ ORW0@ _p(  orthfor.o/ 1295032957 7356 20 100664 3644 ` ELF 04( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ;X@X?;X@X;X@X?! D! ؉D @D?! ?!  ;X@X!  .! ?#`DؽD?;X@X @DT$ $ ! `D! D! ؍DȉDĉDDX$ $   @  ''ORTHOGRAPHICPoint can not be projectedorth-for?=|׽@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07orthfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o orthfor.o orthfor.c <K4orthfor.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14p_errorsinfabscosadjust_lonorthforoffsetporigincenlonmerradiusptitletsincosorthforint 8.6AL[ i(q0yhH           ( ( 0 0       $ 4   ( ( 0 0    $ <D H \ ` h l     0 0 ( (   4j 885%(+(4C$ OW _ x  orthinv.o/ 1295032958 7356 20 100664 4572 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'8'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X! ??! ?! D  @  ' ;X@X?ؔЖ;X@X%T$ $ ;X@X)  ! X$ $ ''DЍD! DĉD;X@XX$ $ #`;X@X! ! D?;X@X   4``! ?艠;XX;X@X@;X@XT$ $ T'?;XX;X@X;X@XT$ $ ?'??X  ;X@X @?;X@X   ;X@X  ! ?ЍD! DD;XX;X@X@;X@XT$ $ 'ORTHOGRAPHICInput data errororth-inv>z򚼯H=|׽@ !TD-?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07orthinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o orthinv.o orthinv.c <K4orthinv.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14sinatan2adjust_lonfabsasinzp_errorsqrtorthinvoffsetporigincenlonmerradiusptitletsincosorthinvint 8(.6AL[ i(q0y}hH           ( ( 0 0       $ 4           $H`h l      ( ( 0 0     $ ( , @H L ` d h l      0 (4 ,Llt x      0 04j (8-(% + 4 C$ OW  _ 8  polyfor.o/ 1295032958 7356 20 100664 4692 ` ELFL4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?+=`-=/=1 > 5>3`>``?! D#<`;X@X!< `;X@X%<`;X@X'<`;X@X)= `;X@X!<   ;XX;XX;XX#\#`#d#h@!<  @`;XX;X@X;X@X ;X@X`;XX;X@X' 'D'H'L'P'T'XDH?LP?! ;X@X?;X@X!  ! #`ЉDDT$ $ ! `! DX$ $ c;X@X! ! ! ! ;XX;XX;XX#\#`#d#h@?! ;XX;XX;X@X?D?! ?#` @?;X@X @DT$ $ ! ?`?! ??! ?;X@X DD DDX$ $ 'POLYCONIC?>z򚼯H@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07polyfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o polyfor.o polyfor.c <K4polyfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesee0e1e2e3ml0cossinmsfnztsincosfabsadjust_lonpolyforoffsetporigincenlonmerradius2ptitlemlfne3fne2fne1fne0fnsqrtpolyforint h.6>IT c(q0t8v@yH|PX`ptP           ( (      0 0$&, 80 84 0<%D @H @L 0T$\ H` Hd 0l#t Px P| 0" X X @ H P! ` `       <     ( (       `$ `T\ @` @d Hh Hl Pp Pt Xx X! 8 8 ( (  @ D L X `\ `p t 4j h %+4C8$ O\W d _ h  polyinv.o/ 1295032958 7356 20 100664 4436 ` ELFL4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?+=`-=/=1 > 5>3`>``?! D#<`;X@X%<`;X@X'<`;X@X)= `;X@X!<   ;XX;XX;XX#\#`#d#h@!<  @`;XX;X@X;X@X ;X@X`;XX;X@X'8'D'H'L'P'T'XDH?LP?! ?! ?! %ĉD?';X@X!  ! DT$ $ ! X$ $ ONĉ DD?! ! ! ! ! X;XX;XX;XX#\#`#d#h#l#p#t#x#|@#@''̀  J 'ЍD;X@X! ?X  ;X@X ! D;X@XT$ $ 'POLYCONIC?>z򚼯H@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07polyinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o polyinv.o polyinv.c <K4polyinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0sinasinzadjust_lonphi4zfabspolyinvoffsetporigincenlonmerradius2ptitlemlfne3fne2fne1fne0fnpolyinvint `.6>IT c(q0t8w@zH}PXX(8           ( (      0 0$#, 80 84 0<"D @H @L 0T!\ H` Hd 0l t Px P| 8 @ H X X     $ ( (   X X           $ H L ` 0d 0h 8l 8p @t @x H| H P P   <L P \4j  ` 0%H+H41C$ OWP _ D  psfor.o/ 1295032958 7356 20 100664 4836 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textH'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< `?#` D!< ;X@X!< ;X@X!< !< !< !  ``!< ``!< ! #<`;X@X! ! D;X@X! *! $`$`! ! D?;X@X#`;XX;XX;X@X!< `;XX;XX;X@X!<  @! ! ;XX;X@X! ;X@X;XX;X@X'H'D'H'L'P'T'XDH?LP?#`?! ;X@X @?`艡D?;X@X?! ;XX;XX;X@X! ?! ! D ! ! D H!  ?! ! D H! ?#`нD?;X@X @! DT$ $ `%нD?;X@X @! DX$ $ 'POLAR STEREOGRAPHIC?@ !TD-?=|׽@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07psfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o psfor.o psfor.c <I4psfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_northingfalse_eastingesee4center_loncenter_latfacindmcstcscossinadjust_lonpsforoffsetpcenlonradius2ptitletsfnzmsfnztsincosfabse4fnsqrtpsforint h0,4<KY \(^0a8l@wH{PX`              " (  (! 0  0( 8, 84 @8 @< @ T X ` Hd Hp t x H| H   P P           P T H H @ @ ( (<D XH XL (lt `x `|       8 8D HH HT 8X 8dx H ( ( P P     X X ` `    ($ (0 04 0@ HD H\l p  H  4j h0%+4CX$ O|W h@ _ 4  psinv.o/ 1295032959 7356 20 100664 4916 ` ELF,4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< `?#` D?;X@X!< ;X@X!< !< !< !  ``!< ``!< ! #<`;X@X! ! D;X@X! *! $`$`! ! D?;X@X#`;XX;XX;X@X!< `;XX;XX;X@X!<  @! ! ;XX;X@X! ;X@X;XX;X@X'`'D'H'L'P'T'XDH?LP?'! #`D?! `D?荢 H DD;X@X! ?! ! D ! D! ! D  ?! D! ! D ?#`?! ؘ;XX;X@X @X$ $ ̀ )'! D ``! DT$ $ 艠;XX;X@X?`` @! D;X@XT$ $ 'POLAR STEREOGRAPHIC?@ !TD-?=|׽@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07psinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o psinv.o psinv.c <I4psinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_eastingfalse_northingee4center_loncenter_latfacindmcstcsadjust_lonatan2phi2zpsinvoffsetpcenlonradius2ptitletsfnzmsfnztsincosfabse4fnsqrtpsinvint `0,4<JY [(^0i8t@xH|PX            !    ( ($ 0( 00 84 88 < P T \ @` @l p t @x @|   H H         H L @ @ 8 8   8@ PD PH hp Xt Xx |      0 0D H P @T @d h p @! H H   X X   P P ( (   ( ( @ @  $ <t x  @ D 0 0 @ D 0 04j `0%+4C$ OW 0 _ d  robfor.o/ 1295032959 7356 20 100664 5628 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< !< !< #`+`=`%) = ! =`'= `=`= ! =` ! = ! =`(! = (! =`0! = 0! =`8! = 8! =`@! = @! =`H! = H! =`P! = P! =`X! = X! =``! = `! =`h! = h! =`p! = p! =`x! = x! =`! = ! =`! = ! =`! = ! =`! = =`! = +`%-'``D<` @;X@X;X@X! ! ;XX;X@X'p'D'H'L'P'T'XDH?LP?! ;X@X?! ! ;X@X?! DD''Љ?%-#`#`#`ʉD) ̝DRLĉJ D ̉D DD! DT$ $ ! ,#```#```#```ʉD  ЙDPĉJ D ЉDD! D ! DX$ $ ,%#```#```#```ʉD  ЙDPĉJ D ЉDD! D ! DX$ $ 'ROBINSON?vȴ9X?#??vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!R Z! #`ĉD? ' K @ N ;X@X!  }% @ 8 ! DX$ $ ! ``ġ-#`#`#`̉D! ΡDF NĉLD ΉDĉDT$ $ T  ;X@XT$ $ ROBINSONToo many iterations in inverserobinv-convToo many iterations in inverserobinv-conv?vȴ9X?#??vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rh?FR@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07robinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o robinv.o robinv.c <J4robinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingprxlradjust_lonp_errorfabsrobinvoffsetpcenlonradiusptitlerobinvint pp-/:HW Z^iqv8\}p t |                       ( ( 0  0 8 8  @$ @, H0 H8 P< PD XH XP `T `\ h` hh pl pt xx x                             ( , 4 8 @ D L P X \ d h p x  |   ( (        p t    0 0 8 8   @ @ H H P P 8 8( (, (D 0H 0P 0T 0t 0   0    , H0 H\ H` Hp Ht H P P     0 0 8 8 ( (  0 0< 8@ 8T X h 0l 0t 8x 8 ( ( 0 0 8 8 X X 8  8  @ D H`h `l ` 8 8 h h             0$ 0p4j  8p 8d p% + 4 C $ O Wdp _ x  sinfor.o/ 1295032959 7356 20 100664 2652 ` ELFT4( .shstrtab.text.bss.data1.data.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'x'D'H'L'P'T'XDH?LP?! ;X@X?#` @?;X@X؍ @! DT$ $ `荡D! DX$ $ 'SINUSOIDAL@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07sinfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o sinfor.o sinfor.c <J4sinfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingcosadjust_lonsinforoffsetpcenlonradiusptitlesinforint -/:HW[fmu|p t |          P T ` l p       4j   #+4C($ OLW0 _D  sininv.o/ 1295032960 7356 20 100664 3236 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'h'D'H'L'P'T'XDH?LP?! ?! ?'X$ $ X  ;X@X#`%D  @ ; X  ;X@X``D?;X@X! ! ???X  ;X@X؉ @Љ ȉD?;X@XT$ $ ! T$ $ SINUSOIDALInput data errorsinusoidal-inverse@ !TD-?=|׽@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07sininv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o sininv.o sininv.c <J4sininv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingadjust_loncosp_errorfabssininvoffsetpcenlonradiusptitlesininvint -/:HWbfnszp t |          P T d h t x             $ 8 < L P h    4j p p3%+4CL$ OpW` _t(  somfor.o/ 1295032960 7356 20 100664 12316 ` ELF-4(.shstrtab.text.bss.data1.rodata.rodata1.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'''''DH?LP?\`?dh?lp?tx?|??%<!< !< !< !< ! ĉ D!<  ?! !< !< '44!< PT &! #`D?! ! !< ! ! ! X'44D`D!< ! $$$! #`D?! ! !< ! ! ! X'44D`D!< ! $$! !< #`@@! ! ;XX;X@X X@`T@`,#`D%;XX@! `D;X@X! ! ;XX;X@X! @;X@X;X@X#<`;X@X! $`$`;X@X#<`'! F F?` F F?%ĉ #<` D! D<`?!< ! ĉD H !< H!< ! ?xph`@ٚx?Xp?P?8h?H`?@ Q7'`hpx'44?@@@Xx! DD?XPp DD?P8 DD?8Hh DD?H@` DD?@  Q'  H7'`hpx'44?@@@Xx! DD?XPp DD?P8 DD?8Hh DD?H@` DD?@  H'! ?xph`@SXxD?XPpD?P8D?8HhD?H@`D?@#` !< ! !< ` !< ! !< ! !< ''D'H'L'P'T'XDH?LP?! ?0?(! ?! ?((! ?((? ?! ! ! ?8! ! D! ! D?8(! ! ! D?8'8?'! DD?;X@X?;X@X0 ! D?! ! ?@! ! ?@8?@?;X@X @! ! D D?! DD?;X@X?;X@X! ! D?! ! ? ;X@X @! D?;X@X! DD?;X@X?D?;X@X! ?;X@X?;X@X0   ' 2<?! #`D?! `DD?H '䀤 3(Ё! ! D?8H! ! D?8,`@`@ ' ;X@X?P'#`! D @?%? ;X@X @?;X@X @?`P F F;X@X ;X@X?X! +`#` ĉD?`;X@X;X@X?h;X@X?p @?x! D?;X@X @?x! x FD! FD! FDD ;X@Xx @%<' DFD;X@X?!  F?h! ?p`D;X@Xp @hD?`! ?`D;X@X @`DhDĉX$ $ #`X  D$ $ ! pD?h! ?p! D;X@Xp @hDhDĉDT$ $ `T  D$ $ X  ?T  ! DX$ $ ! DT$ $ 'P'D'H'L'P'T'XX``! D$`$`X  ;X@X? @?+`! D?X  ;X@Xн @?#`!  FD% FD' FDD ;X@Xȉ @-=` FD FD;X@X` FD FD D`! Dĉ D?#` D DD;X@X?`D Dĉ D$ $ D  ?X  ! D;X@X @H$ $ D  ?X  ! D;X@X @L$ $ `D Dཡ??X  ;X@X @P$ $ ?X  ! D;X@X @T$ $ SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: som-forward?@@XS?FR5@Yk6@` =p@v@o`?)O@X@Xl.@`)@m @Lc˰>. &֕@@@V@>@N@.@F>z򚼯H?!z@ !TD-@?z򚼯H?@?F50 iterations without conv @(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07somfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o somfor.o somfor.c <J4somfor.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northingabesp21lon_centerstartcasawqtxja2a4c1c3som_seriesslogsqrtasinp_errorsprintfatantansomforsinfabscosoffsetpgenrptgenrpt_longradius2ptitlesomforintgsat_ratio -;JLN Q(U0`8f@iHlPnXp`rhupxx{~XT. .      $ ( 0 4 8 < L P p t | ( ( 0 0 8 8         ( ( ( ( 0 0 8 8( 0 04 08 @< @@. D. P HT HX \ h Pl Pp t | ( ( X X 0 0 ` `  0 0 @ @. .  h h 8 8  ,    +0*<*H pL pT DX Dd)l 0p 0t p)    (. . )' @ @& x x @ D% H  H$ ( , @0 @@ D HT X ` l Pp Px |  P   X X    ` ` h h h h      d h       d h p pt px |  x x           $ ( < 0@ 0L P l p  h h     8 8 h h     h  h  $ ( , L ( P ( d' t&    h  h    h  h   %  $ ( , H ( L ( d' t& |        #  H  H %  @  @ " <& X& p& . .      D H L P t x |    !    %      @  @  H  H ' 0% L P h |       #  %  (  (  H'  `  `0 P4 P@ XD X\l p t hx h   p p % x x % 8 < X \ l p |  % h        % ( ( H H'   ` ` P P  X$ X<L P T X Xh P|  P X ( @ @ h h  h 4 8 D'|  '  h'   '4s H%.4=LH$  Xl`t hd  sominv.o/ 1295032960 7356 20 100664 11860 ` ELF,L4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''?DH?LP?\`?dh?lp?tx?|?!< !< !< !< ! ĉ D!<  ?!< ! !< DT "! #`D?! ! !< ! ! ! X'<<D`D!<  ! #`D?! ! !< ! ! ! X'<<D`D!< %@! ! ;XX;X@XX@T@,#`DD;X@X! `D`;X@X! ! ;XX;X@X;X@X;X@X#<`;X@X! $`$`;X@X#<`'! F F?` F F?%ĉ #<` D! D<`?!< ! ĉD H !< !< H!< ! ?xph@?`x?X?@p?Ph?H Q7'hpx'<<?@@@`! DD?`Xx DD?X@ DD?@Pp DD?PHh DD?H  Q'  H7'hpx'<<?@@e@`! DD?`Xx DD?X@ DD?@Pp DD?PHh DD?H  H'! ?xph@7`D?`XxD?X@D?@PpD?PHhD?H#` !< ! !< ` !< ! !< ! !< 'P'D'H'L'P'T'XDH?LP??H! ?H! ?! ! D ?! ?خ?;X@X?ȉ @?! ! D?8;X@X8 @?0! !  FD! FD! FDD ;X@X0 @#<`!  ƍ H%ĽD? ! ?(! D;X@X( @ ?! ?! D;X@X @?`?! ?;X@X @?! ?! D;X@X @D D荧?! ?Љ?;X@X؁ 2u2 @ $? ;X@X?! ! D! Ɖ ƉD;X@X! ? ! ! D?! ?! D;X@X @ D;X@X?;X@X?! ! č! D? D?;X@X;X@X! ! D?;X@X? @?x%! ĉĽ?;X@X @! D?! D?! DDxʍD#`D;X@Xؽ @?;X@XЉ ȕx`DDĉ;X@X?p! ?hp! ! ?h;X@X! ! ?`;X@X! ! ?`p! ! #``č DhD?p! D?P! ;X@X! ?``! Ƒ DxDD;X@X ;X@X?X#`;X@X! (;X@X! ?p;X@X @?8! ?p;X@X @8! ! ``D ;X@X?XP! D;X@XT$ $ XX$ $ H'D'H'L'P'T'XX``! D$`$`X  ;X@X? @?+`! D?X  ;X@XȽ @?#`! 艡 FD% FD' FDD ;X@X @-=`艡 FD FD;X@X`艡 FD FD D`! Dĉ D?#` D DD;X@X?`D Dĉ D$ $ D  ?X  ! D;X@X @H$ $ D  ?X  ! D;X@X @L$ $ `D Dؽ??X  ;X@X @P$ $ ?X  ! D;X@X @T$ $ ! ?SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse?@@XS?FR5@Yk6@` =p@v@o`@X@Xl.@`)@m @Lc˰>. &֕@@@V@>@N@.@F@@ !TD->z򚼯Hz򚼯H?F@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07sominv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o sominv.o sominv.c <J4sominv.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northingabeslon_centerp21casawqtuxja2a4c1c3som_seriessadjust_lonasintanatanexpp_errorsqrtsominvsinfabscosoffsetpgenrptgenrpt_longradius2ptitlesominvint -;JLN Q(\0`8c@fHhPjXl`nhqptxwz}hpP           $ ( H (L (T X ` 0d 0         0 0 ( ( 0 0 8 8  ( ( @ @    H H  $ , 00 04 P8 P< 0@ 0D XH Xh p (t (x | +    *)) ` `( ( ( `(      '4(D&L 8P 8X%` hd hx 8| <$ @ @   8 8  @    H H p p H   P P x x  4 X8 X@ `D `L hP hT X    4 L d  x x x x0 xH xl p    p p   x x       ( , 0 4 < @          h h $  0$ 0( @, @@&T X \ X` Xp Ht H P P"     h h p p x x $  x $ x 0 4 @$ \ ` h l p $     $     % @ D H! `$ l p t x  h  h "           $   ( 4 8 < @ L x P x p& |%     $       8  8  @  @ ( , P 0 P L ` P ` `" |&   `           &  $ 8 < L& T X l p    x  x    0  0  @  @ %        ,"@L @P @X%` d & 8 8$     @ D ( ($  $ 0 0 @ @&    X X  H$ H0 P4 PL"\ ` d h Px H"  H P 0 8 8 h h " h  D xH xT&  &  h&   ,&H L 4j `%+4C4$ OXWT _$(  sterfor.o/ 1295032961 7356 20 100664 3676 ` ELF P4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ;X@X?;X@X;X@X?'D%؉D @D?#`D;X@X!   @  g4'! ``D ?! ?#`DؽD?;X@X @DT$ $ ! `DD؍DȉDĉDDX$ $ 'STEREOGRAPHICPoint projects into infinityster-for?=|׽@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07sterfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o sterfor.o sterfor.c <K4sterfor.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sinp_errorfabscosadjust_lonsterforoffsetporigincenlonmerradiusptitletsincossterforint 8.6AL[ i(q0y}hH           ( ( 0 0       $ 4   ( ( 0 0  $, 0 D H L` d h l         0 4 ( ,4j 889%0+04C$ OW _   sterinv.o/ 1295032961 7356 20 100664 4460 ` ELF`4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X?! ! D ;X@X D?ؔЖ;X@X%T$ $ ;X@X)  ! X$ $ ''DЍD! DĉD;X@XX$ $ #`;X@X! ! D?;X@X   4``! ?艠;XX;X@X@;X@XT$ $ V'?;XX;X@X;X@XT$ $ A'??X  ;X@X @?;X@X  ;X@X  '! ?ЍD! DD;XX;X@X@;X@XT$ $ 'STEREOGRAPHIC@=|׽@ !TD-?@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07sterinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o sterinv.o sterinv.c <K4sterinv.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sinatan2adjust_lonasinfabsatansqrtsterinvoffsetporigincenlonmerradiusptitletsincossterinvint 8(.6AL[ i(q0y}hH           ( ( 0 0       $ 4         $ ( @H L ` d  ( ( 0 0           $ ( < @ `t   ( ,(0 4 PX \ x |  0 04j 8(%+4CX$ O|W ` _ @  stplnfor.o/ 1295032961 7356 20 100664 7484 ` ELF 4(.shstrtab.text.data.rodata1.data1.bss.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P?'%D@$'D +H 'D,#`' ' 'D,#`' '?$`DH@`@ 'H  L`@'P`@'  @ , ', , $, $@  @!   @  @@ $`DH@`@ '! @D@ H  ' S'`@?! ;X@X D?! E?;X@X;XX@@% D? O';X@X;XX@@ D? ='??;XX;XX;XX#\#`#d#h#l#p#t#x@ j;X@X;XX@@% D?  ';X@X;XX@@ D? ';X@X;XX@@ D? ';X@X;XX@@ D? '??;XX;XX;XX#\#`#d#h#l#p#t#x#|#@@;X@X;XX@@% D? ';X@X;XX@@ D? '??;XX;XX;XX#\#`#d#h#l#p@t! o?;X@X;XX@@% D? [';X@X;XX@@ D? I';X@X;XX@@ D? 7'?? '! ? ? ? ?;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#'㿀'D'H'L'P'T'XDH?LP?! `TX;XX;X@X B?`TX;XX;X@X -*`TX;XX;X@X `TX;XX;X@X ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldrrIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-forstate-initSTATE PLANEZone: Datum: NAD??FR5@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07stplnfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o stplnfor.o stplnfor.c <L4stplnfor.cBbss.bssDdata.dataDrodata.rodatainzoneNAD27NAD83idomerforpolyforlamccfortmforstplnforomerforintpolyforintlamccforinttmforintpakczpakszsqrtgenrpt_longptitlefclosefreadfseekfopenp_errorsprintfstplnforint 4 /6<BEMU^dmx, 0 D       $ 0!8 < @ h (l (p , ,     (0L 0P 0\!d Dh Dl  P P h h    (<D H t  8LT X     $, 0   0@H L      DT\ `          $ x  4s  X 44W w',4 = L$  X`0 h  stplninv.o/ 1295032962 7356 20 100664 7524 ` ELF44(.shstrtab.text.data.rodata1.data1.bss.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P?'%D@$'D +H 'D,#`' ' 'D,#`' '?#`DH@`@ 'H  L`@'P`@'  @ , ', , $, $@@  @!   @  @@ #`DH@`@ '! @D@ H  ' S'`@?! ;X@X D?! E?;X@X;XX@@% D? O';X@X;XX@@ D? ='??;XX;XX;XX#\#`#d#h#l#p#t#x@ j;X@X;XX@@% D?  ';X@X;XX@@ D? ';X@X;XX@@ D? ';X@X;XX@@ D? '??;XX;XX;XX#\#`#d#h#l#p#t#x#|#@@;X@X;XX@@% D? ';X@X;XX@@ D? '??;XX;XX;XX#\#`#d#h#l#p@t! o?;X@X;XX@@% D? [';X@X;XX@@ D? I';X@X;XX@@ D? 7'?? '! ? ? ? ?;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#'㿀'D'H'L'P'T'XDH?LP?! `TX;XX;X@X B?`TX;XX;X@X -*`TX;XX;X@X `TX;XX;X@X ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldrrIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-invstate-initSTATE PLANEZone: Datum: NAD??FR5@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07stplninv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o stplninv.o stplninv.c <L4stplninv.cBbss.bssDdata.dataDrodata.rodatainzonenad27nad83idomerinvpolyinvlamccinvtminvstplninvomerinvintpolyinvintlamccinvinttminvintpakczpakszsqrtgenrpt_longptitlefclosefreadftellfseekfopenp_errorsprintfstplninvint 4 /6<BEMU^dmx, 0 D       $ 0"8 < @!h (l (p  , ,   !   08T 0X 0d"l Dp Dt! P P h h     0DL P |  @T\ `     ,4 8    8HP T      L\d h          ,   (4s  ` 4<W w' ,4(=L$  X`@ h  tmfor.o/ 1295032962 7356 20 100664 6908 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'xDH?LP?TX?\`?dh?lp?tx?%<#<`!< !< +=`!< !< `?/ D-=;X@X#<`;X@X'<;X@X)= ;X@X!< ?` `;XX;XX;XX#\#`#d#h@ @!< Ɖ!< ! !< ! !< #`@@! ! ;XX;X@X! `;X@X! ;X@X! ;X@X! ! ;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X! %Di?;X@X @?;X@X! D;X@X!   @  ]'! ! D! D?x#`Dĉ ;X@Xx @T$ $ ?;X@X @?p` D;X@Xp ;X@X! ?)?! ! D! ĉ DX$ $ 'D?ȉ D?) Љ DD?;X@X? @?#`! ؉ DD?! ?h;X@Xh ? ?h! ! ! ! ;XX;XX;XX#\#`#d#h@h @?% VȥD`?P! P ?X?>Z! P #`! DĽ X?`?>Z! X DD 'DĉDDDDD! DT$ $ ! D! ! P `! X DDXX Z! DD! P !  D`Z! X DD ! DĉDDDDP DDDD! DX$ $ 'TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinitytm-for?>h=|׽?@@4@@2@R@M@8@"@@>@N@@t@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07tmfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o tmfor.o tmfor.c <I4tmfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espindtansqrtcosacoslogp_errorfabssintsincosadjust_lontmforoffsetporigincenlonmergenrptradius2ptitlemlfne3fne2fne1fne0fntmforint x,4<IT _(n0|8@HPX`hp             ( (  0 0  $ ( 4 88 8@,H @L @P 8X+` Hd Hh 8p*x P| P 8) X X  @ H P ( ` ` 8  h h 8   $ ( , p0 p< @ D pH pL P T'\ ` d h x&  %  $  # 0 0 ( ("H L X t| p p       @ @    ($ (, 0 < @ X         P hT hp   8 8    @ @ H H P P X X (4 8 L X 0\ 0 8 8 @ @ H H P P h X X 0 0  ` `, (0 (4 `8 `D @L hP hl pp p| x x   X   h   ( (4j  xg (% + 4 C H$ O l(W  _t|  tminv.o/ 1295032962 7356 20 100664 7772 ` ELFP4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'xDH?LP?TX?\`?dh?lp?tx?%<#<`!< !< +=`!< !< `?- D/=;X@X#<`;X@X'<;X@X)= ;X@X!< ?` `;XX;XX;XX#\#`#d#h@ @!< Ɖ!< !  !$ #`@@! ! ;XX;X@X! `;X@X! ;X@X! ;X@X! ! ;XX;X@X'㾈'D'H'L'P'T'XDH?LP? 'L! e#`%D ;X@X?h' ! D?X! `D ĉD?P;X@X?` @X DD ;X@X?;X@XX$ $ P! X  $ $ X! F` F ! T$ $ X'X`;XX;X@X! D;X@XT$ $ F'! ?! ?! ! čD! ??'?8! ?@! D;X@X@ @8D?(! ?0%D;X@X0 @(?! ? ! D;X@X @D! ؑ?ЉH?;X@X!  L@  @  _'`';X@X! /D ؔ;X@X;X@X?+` DD? D? @? D?'#` DD?! ?;X@X ?`č D?! D??x Z?p D X - #`?)  JD! DD? D`! D! ! !  DD! DD?!  DD! D Jĉ Dĉ Dĉ DX$ $ ! ! !  FDZ! `F!  DD  D`! DD DDDĉD DĉD;X@XT$ $ ! D?;X@X'HH艧 DX$ $ ! T$ $ 'TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSE?>h?@@@=|׽@ !TD-@8@@@$@"@>@N@V@r@F@o@4@<@ @(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07tminv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o tminv.o tminv.c <I4tminv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espindsigntantsincosp_errorfabssinatan2adjust_lonasinzsqrtcosexptminvoffsetporigincenlonmergenrptradius2ptitlemlfne3fne2fne1fne0fntminvint t,4<IT _(n0|8@HPX`hp !&+           ( (  0 0  $ ( 4 88 8@.H @L @P 8X-` Hd Hh 8p,x P| P 8+ X X  @ H P * ` ` 8  h h 8   ( p, p0 4 8)@ D H L \(d h t'|  &  % 0 0 ( ($4 p8 pL P T X h"t x       !    D H p t    0 0 ( ( ` `    4 H8 HD H Tp Pt P ( ( X X 0 0 @ @ 8 8D @H @Lt| @ @   h h   8 8  $ 0 D H 8d h    H H P P X X ` ` ( , h  h h p  p( x, x0 4 D H \ ` p t     0 0     P   X  h  $ 0 H h  @  @         4j   t g % + 4 C8$ O\4W _  utmfor.o/ 1295032962 7356 20 100664 7188 ` ELF4( .shstrtab.text.data1.bss.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\'\DH?LP?TX?@\ @\ <  @  '!< !< !< %!< @\* * $ '̍! D!< ! !< \ ! ??!< ! #`?- D+=`;X@X%<`;X@X'<`;X@X)= `;X@X!< `? ! ;XX;XX;XX#\#`#d#h@ @!< `Ɖ!< `! !< #`@@\@`$! ! ;XX;X@X! `0;X@X! ;X@X''D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X! %Di?;X@X @?;X@X! D;X@X!   @  ]'! ! D! D?x#`Dĉ ;X@Xx @T$ $ ?;X@X @?p` D;X@Xp ;X@X! ?)?! ! D! ĉ DX$ $ 'D?ȉ D?) Љ DD?;X@X? @?#`! ؉ DD?! ?h;X@Xh ? ?h! ! ! ! ;XX;XX;XX#\#`#d#h@h @?% VȥD`?P! P ?X?>Z! P #`! DĽ X?`?>Z! X DD 'DĉDDDDD! DT$ $ ! D! ! P `! X DDXX Z! DD! P !  D`Z! X DD ! DĉDDDDP DDDD! DX$ $ 'Illegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityutm-for?FR5AAc?>h=|׽?@@4@@2@R@M@8@"@@>@N@@t@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)stdlib.h 1.51 04/06/30 SMI@(#)stdlib_iso.h 1.9 04/09/28 SMI@(#)stdlib_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07utmfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o utmfor.o utmfor.c <J4utmfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espindtansqrtcosacoslogfabssintsincosadjust_lonutmforcenlonmergenrptradius2genrpt_longptitlemlfne3fne2fne1fne0fnp_errorlabsutmforint x-5=JU `(n0}8@HPX`hp  #X,l,  +          ,        ( (( , 8 < H 0L 0P T X \ h l x 8| 8* @ @ 8) H H 8( P P 8' X X  @ H P   &0 `4 `8 8< H hL hP 8T (X (l p $t px p|  %$    #  "  !@ D Plt px p|   0 0 8 8 t t+   @ @$ ( 4 8 P|          H hL hh|   8 8    @ @ H H P P X X&, 0 D P HT H| P P X X ` ` h h h p p ( (   ` `$ @( @, x0 x< XD H d h t x    p   h   0 04j  Tx X% + L4 TC $ O -WL _,  utminv.o/ 1295032963 7356 20 100664 8164 ` ELF4( .shstrtab.text.data1.bss.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\'\DH?LP?TX?@\ @\ <  @  '!< !< !< %!< @\* * $ '̍! D!< ! !< \ ! ??!< ! #`?+` D-=;X@X%<;X@X'<;X@X)= ;X@X!< `? ! ;XX;XX;XX#\#`#d#h@ @!< `Ɖ!< !  !$ !$ #`@@\@`$! ! ;XX;X@X! `0;X@X! ;X@X'㾈'D'H'L'P'T'XDH?LP? 'L! e#`%D ;X@X?h' ! D?X! `D ĉD?P;X@X?` @X DD ;X@X?;X@XX$ $ P! X  $ $ X! F` F ! T$ $ X'X`;XX;X@X! D;X@XT$ $ F'! ?! ?! ! čD! ??'?8! ?@! D;X@X@ @8D?(! ?0%D;X@X0 @(?! ? ! D;X@X @D! ؑ?ЉH?;X@X!  L@  @  _'`';X@X! /D ؔ;X@X;X@X?+` DD? D? @? D?'#` DD?! ?;X@X ?`č D?! D??x Z?p D X - #`?)  JD! DD? D`! D! ! !  DD! DD?!  DD! D Jĉ Dĉ Dĉ DX$ $ ! ! !  FDZ! `F!  DD  D`! DD DDDĉD DĉD;X@XT$ $ ! D?;X@X'HH艧 DX$ $ ! T$ $ 'Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE?FR5AAc?>h?@@@=|׽@ !TD-@8@@@$@"@>@N@V@r@F@o@4@<@ @(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)stdlib.h 1.51 04/06/30 SMI@(#)stdlib_iso.h 1.9 04/09/28 SMI@(#)stdlib_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07utminv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o utminv.o utminv.c <J4utminv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espindsigntantsincosfabssinatan2adjust_lonasinzsqrtcosexputminvcenlonmergenrptradius2genrpt_longptitlemlfne3fne2fne1fne0fnp_errorlabsutminvint t-5=JU `(n0}8@HPX`hp "*/X.l.  -          .        ( (( , 8 < H 0L 0P T X \ h l x 8| 8, @ @ 8+ H H 8* P P 8) X X  @ H P   (0 `4 `8 8< H hL hP 8T (X (p pt p p p  '&    %  $  #T pX pl p t x !   0 0      0 4 d h      ( (  0 0 `  `$ ( 4 8 T HX Hd 8h 8t P P @ @ X X H H @ @(0 P4 Pd th tl- X X 0 0 h h   $ 8( 8@ D Pd h 8   0 4 ` ` h h p p x x @ D( h, 0 < @ H L P T d h |        H H 8 8    h   , p < h @ D P `   X  X  0  4    4j    Lt P% + L4lC$ O49Wp _p h  vandgfor.o/ 1295032963 7356 20 100664 5012 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?;X@X#`  ! ! DDT$ $ ! X$ $ ') ;X@X' D;X@X?;X@X`` ;X@X  %D;X@X``  B! T$ $ ! ! ?! ! D?! D;X@X @DX$ $ ! ?! ! D?! D;X@X! DDX$ $ '   Ɖĉ;X@X D?Љ D?ؔ;X@XH! D ? H? D D? D?!   D?pЍʽ F?xȉ F FHʉD;X@Xx@p DȉD ?! )?! HT$ $ #`%D ;X@X! ?h?! $! ?``D?! hh Z! Dh Z;X@X @DX$ $ "! ?``D?! hh Z! Dh Z;X@X @X$ $ 'VAN DER GRINTEN=|׽@ !TD-@??@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07vandgfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o vandgfor.o vandgfor.c <L4vandgfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsqrttsincostanasinzfabsadjust_lonvandgforoffsetpcenlonradiusptitlevandgforint  8/1<JY^fjpu0p t |          P T `t|              $ @H L P T dl p               $ ( , 0 @ D P      ( (   (( , 0 4 p           0 4 < @ D H T 0X 0p t         0 0   4j H 8%0+04 C $ O W  _ p  vandginv.o/ 1295032963 7356 20 100664 4404 ` ELF(4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X''D'H'L'P'T'XDH?LP?! ?! ?! ! D? ??؍F HD?;X@X!%ЉJD?#` D L DD?`) PD H LDJD? L `D N N ʉ ʍ ! D N ʉ ʍ! ĉD?N! ĉ ʉĉ ?% ;X@X` D? Dĉ ?;X@X ! ?)?;X@X% ??!  %?#`D;X@X @č`DX$ $  %?! D;X@X @ĉď% DX$ $ ;X@X!  ! T$ $ ,! ?! D?x!  D؉ D#`DDJD;X@Xx@! D`D;X@XT$ $ VAN DER GRINTEN@ !TD-?@@"@;@=|׽@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07vandginv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o vandginv.o vandginv.c <L4vandginv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingadjust_loncosacossqrtfabsvandginvoffsetpcenlonradiusptitlevandginvint  H/1<JYdhmrwHp t |          P T d h t x |        8 T X p t  ( ( (  (   0 0@H (L (` 0d 0   ( ,  ( ,    (  , 4 (8 ,T px 8| 8     @ @        < 4j ` H%X+X4AC$ O W p _ ,  wivfor.o/ 1295032964 7356 20 100664 3340 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< !< !<  @;X@X;X@X;XX;X@X'@'D'H'L'P'T'XDH?LP?! ;X@X??;X@X! D?Ȯ?;X@X@ȉĿ%?! ?;X@X@ ?؉F?;X@X!   @ Ӯ! ?#`! DཡD?;X@X @! DT$ $ `! D?;X@X @! DX$ $ 'WAGNER IVIteration failed to convergewagneriv-forward@DKL?=|׽@?랃%? 4\@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07wivfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o wivfor.o wivfor.c <J4wivfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingp_errorfabscossinadjust_lonwivforoffsetpcenlonradiusptitlewivforint 0-/:HW_dhlw~p t |        P T `x        8 < @ T X d h l p     ( (  4j  =0% + 4 C$ OWxp _  wivinv.o/ 1295032964 7356 20 100664 2980 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< !< !<  @;X@X;X@X;XX;X@X'`'D'H'L'P'T'XDH?LP?! ?! ?#`! D ;X@X?! ??`! D?;X@X؉ @Љ ȉD;X@XT$ $ ! D?;X@X@! ;X@XX$ $ 'WAGNER IV? 4\?랃%@@DKL@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07wivinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o wivinv.o wivinv.c <J4wivinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsincosadjust_lonasinwivinvoffsetpcenlonradiusptitlewivinvint  -/:HW[_joPv~p t |        P T d h t x |           ( , 84j h   %8+84!C$ OW` _  wviifor.o/ 1295032964 7356 20 100664 3116 ` ELF $4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'X'D'H'L'P'T'XDH?LP?! ;X@X?! Ĕؖ;X@X;X@X! D?#` D;X@X?! `Љ DD ;X@X?#`! DD @؍D! DT$ $ `! DȉD @! DX$ $ 'WAGNER VII@?}A5T?@@V|G?LPr@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07wviifor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o wviifor.o wviifor.c <K4wviifor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsqrtsintsincosadjust_lonwviiforoffsetpcenlonradiusptitlewviiforint 0.0;IX]aitp|p t |          P T `l p                 $ 8 < (@ (T X 4j ( ( 80%h+h4QC$ OW` _   wviiinv.o/ 1295032964 7356 20 100664 3236 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'P'D'H'L'P'T'XDH?LP?! ?! ?% ?#`?؍ H? D?؉D;X@X?! ! D ;X@X D??;X@X @`! DЉD ;X@XX$ $ ! ??;X@X @D;XX;X@X! DD;X@XT$ $ 'WAGNER VII@V|G?LPr@?}A5T@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07wviiinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o wviiinv.o wviiinv.c <K4wviiinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingtanatan2adjust_lonsinasinzsqrtwviiinvoffsetpcenlonradiusptitlewviiinvint (.0;IX\bmqw|p t |          P T d h t x            $8 < T h |   4j p p (%+4C8$ O\W _  isinusfor.o/ 1295032965 7356 20 100664 9404 ` ELF"d4(.shstrtab.text.rodata1.data.rodata.bss.data1.comment.stab.indexstr.stab.index.strtab.symtab.rela.text.rela.data㿠'D'H `D@H 'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?! @'   ?!    ?'?!  D'     ??! D ! ) ??>Z y }?ZD'';X@X  ??>  \ `?=  ?%  N R??= Z 5 9?ZD''';X@X    ?;XX;XX;XX#\#`#d@#h!$   ?0'D'H'L'P'T'X\`'\'`d'dh'hDH?LP?TX?\`?!   `@'f?! ! ??> Z??>=   `@q'CZ?! ! D?d!"  `@I'<  ?$   `@8' h    `@('@ `'Ԁ  `@'$\$$$$ $$! $$d'+`$ $$d$(d< < $,$8$Z y }?ZD'';X@X  ??>  \ `?=  ?%  N R??= Z 5 9?ZD''';X@X    ?;XX;XX;XX#\#`#d@#h!$   ?0'D'H'L'P'T'X\`'\'`d'dh'hDH?LP?TX?\`?!   `@'f?! ! ??> Z??>=   `@s'CZ?! ! D?d!"  `@K'<  ?$   `@:' h    `@*'@ `'Ԁ  `@'$\$$$$ $$! $$d'+`$ $$d$(d< < $,$8$U@Lc˰?#x@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07for_init.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o for_init.o for_init.c <L4for_init.cBbss.bssDdata.dataDrodata.rodataisinusforisinusforinitobleqforobleqforintwviiforwviiforintwivforwivforintalconforalconforintimolwforimolwforintmolwformolwforintgoodforgoodforintrobforrobforinthamforhamforintsomforsomforintomerforomerforintvandgforvandgforintmillformillforintequiforequiforintsinforsinforintgvnspforgvnspforintorthfororthforintgnomforgnomforintazimforazimforintlamazforlamazforintsterforsterforinttmfortmforinteqconforeqconforintpolyforpolyforintpsforpsforintmerformerforintlamccforlamccforintalberforalberforintstplnforstplnforintutmforutmforintcalc_utm_zonebceaforbceaforintceaforceaforintpakszsphdzfor_init  (/9GP\dov +3>FQXbkw%/8DMYbnu,d h J  XJxJI    (I0 4 < @ HG G I   ( , xI     F(E ,E tJI     I    $ ` d pD    CB B ,Ad@ h@ I    I     hIp t |  I    x?> > I     4I <  @ H  L  I        I        = < < I         hI p  t |    ; : : TI \  `  h  l  I        L9 h8 l8 I        I     76 6 I    `Ih l t x I    (I0 4 < @   5,4 04 xI    I    |32 2 I    <ID H P T 10 0 I$ ( 0 4 I    /$. (. `Ih l t x I    L-h, l, I     I    $ +* * I    PIX \ d h )( ( 0I8 < D H I    8'T& X& I    %,$ 0$ hIp t |  I    T#p" t" I    (!D H I      hIp t |    I     \Id h p t I     0I 8  < D  H  I        I! ! !  ! !! ! "h "l "I" " " " #I# #  # # $ $( $, $hI$p $t $| $ $% % %<I%D %H %P %T %% % &&  &$ &\I&d &h &p &t && & '$'@ 'D '' ' 'I' ' ( ( (l ( ( (I( ( ( ( )D )` )d )I) ) ) ) *I* *  * * *I* * * * +4 +P +T +I+ + + + ,L,h ,l 4c ,-((-P-P$-P-/9</$ H0P2 X7  inv_init.o/ 1295032966 7356 20 100664 19764 ` ELFKT4( .shstrtab.text.rodata.bss.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\'\`'`'$$' Da!L``!   ``  ?'PPL@h-b$L``!   ``  ?'P 'PPL@hPL@hL 0 4?xL 8 U@Lc˰?#x@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07inv_init.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o inv_init.o inv_init.c <L4inv_init.cBbss.bssDdata.dataDrodata.rodataisinusinvisinusinvinitobleqinvobleqinvintwviiinvwviiinvintwivinvwivinvintalconinvalconinvintimolwinvimolwinvintmolwinvmolwinvintgoodinvgoodinvintrobinvrobinvinthaminvhaminvintsominvsominvintomerinvomerinvintvandginvvandginvintmillinvmillinvintequiinvequiinvintsininvsininvintgvnspinvgvnspinvintorthinvorthinvintgnominvgnominvintaziminvaziminvintlamazinvlamazinvintsterinvsterinvinttminvtminvinteqconinveqconinvintpolyinvpolyinvintpsinvpsinvintmerinvmerinvintlamccinvlamccinvintalberinvalberinvintstplninvstplninvintutminvutminvintcalc_utm_zonebceainvbceainvintceainvceainvintpakszsphdzinv_init  (/9GP\dov +3>FQXbkw%/8DMYbnu,Td h J  XJxJI    (I0 4 < @ HG G I   ( , xI     F(E ,E tJI     I    $ ` d pD    CB B ,Ad@ h@ I    I     hIp t |  I    x?> > I     4I <  @ H  L  I        I        = < < I         hI p  t |    ; : : TI \  `  h  l  I        L9 h8 l8 I        I     76 6 I    `Ih l t x I    (I0 4 < @   5,4 04 xI    I    |32 2 I    <ID H P T 10 0 I$ ( 0 4 I    /$. (. `Ih l t x I    L-h, l, I     I    $ +* * I    PIX \ d h )( ( 0I8 < D H I    8'T& X& I    %,$ 0$ hIp t |  I    T#p" t" I    (!D H I      hIp t |    I     \Id h p t I     0I 8  < D  H  I        I! ! !  ! !! ! "h "l "I" " " " #I# #  # # ## $ $<I$D $H $P $T $$ $ %I% % %$ %( %% % %% % &0I&8 &< &D &H && & &' ' 'l' ' 'I' ' ' ' (@ (\ (` (I( ( ( ( ) )4 )8 )pI)x )| ) ) )I) ) ) ) *XI*` *d *l *p + +$ +( +lI+t +x + + , ,< ,@ 4c ,h-(-(-($-(-/</$ H/P2 X7h  cproj.o/ 1295032966 7356 20 100664 12236 ` ELF-4( .shstrtab.text.rodata.data1.bss.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿘'D'H'L'PDH?;X@XL$ $ ;X@XP$ $ 㿐'D'HDH?;X@X!   ?'?;X@X! ?%$%$p'D'H'L'P'T'XDH?LP?TX?艡D??! D;X@XЉ ?%$%$`'D'H'L'P'T'XDH?LP?TX?!  蕢 F?! H?JĽ?! ?ЍʉJ;X@XЉ @ȉ D?! D?0'D'H'L'P'TDH?LP?! D;X@X! ?! T? H?  D';X@XD?#`N?! L H?`č Ƚ? ?ΉN;X@X @D D?F?;X@X!  ?  ' @  T$ ! ?H'D'H'L'P'TDH?LP?T$ #`D?! `D?;X@X! D?غ;X@X? @?! ! D??! ȉH;XX;X@X @;X@X% Dؑ?ȉH?;X@X!  ?`` @  T$ ?('D'H'L'P'T'X\`'\'`dh'd'hl'lDH?LP?TX?\`?dh??Ȯ??! D;X@X @D??! D;X@X @??! D;X@X @D艡ȑ?H?;X@X!  l$ ? @ 0 l$ ! ?'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?$ $   't  ;X@X?  ;X@X! ?h?' F F;X@Xh @|$ $   ) D;X@X?   H @?X?`#` D;X@X` @XD?H?P  %D;X@XP @H??8 F?@   F;X@X@ @8?0` F?H   F;X@XH @0D?  F?(   F;X@X( @ ? J|  RD PDȑ J RD D? J H RčD|   H? L|   V ʉč DL?D ?x  F$ $ ;X@X!  ! ?t  7't @ ! ?p'D'HDH? !  -;X@X?! 'DD'Х... . . 'Љ?! DD'Х/ / / 'Љ?'Ѝ! D'Ѝ! DDJ?/`<  -??%$%$p'D'HDH? ! D?!  -;X@X?艠@''Љ#`D?艠F''Љ`D?'Ѝ! D'Ѝ! DDJ?/`<  -??%$%$p'D'H'L'P'T'XDH?LP?TX?D?#`D?! ȉH;XX;X@X?! ` H艡ĉ H;X@X؉ ?%$%$㿐'D'HDH? ? @x'D'HDH?;X@X'  ;X@X@'耤 ?;X@X'葠! D D?) D ;X@X@''艠#`   DĉD''葠  D Dy?  D L ;X@X@''艠``   D HĉD''葠  D``D DH?  D%D ;X@X@''荠``  DDĉD''葠  DD D??;X@X'葠  D D؉?``2?%$%$㿐'D'HDH?  D   DDDD D?%$%$㿐'D'HDH? D  D DD DD D?%$%$㿐'D'HDH? D F  DDD?%$%$㿐'D'HDH? DD  ĉ D?%$%$x'D'HDH?! F? ?;XX;X@X! ?;XX;X@X؉ @;X@X! ?%$%$@'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?н F??! D;X@Xȉ @??! D;X@X @D??! D;X@X @?%$%$㿈'D'HDH? D  DD''?>z򚼯H?@=|׽@ !TD-@@@@È?PbM@YA.@@@Lc˰@NAC"?@0?????@A@@fConvergence errorphi1z-convConvergence errorphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07cproj.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o cproj.o cproj.c <I4cproj.cBbss.bssDdata.dataDrodata.rodatacalc_utm_zonemlfne4fne3fne2fne1fne0fnadjust_lonsigntsfnzpakr2dmpakcztanphi4zphi3zpowatanphi2zp_errorphi1zlogqsfnzsqrtmsfnzasinfabsasinzcossintsincos ,h:HL?D`IlN|SpXcxLhn@4v t|p4@h8#T"     4 8 X \ |    , 0 <!T X $      T \ `    ( (  $ 0( 0, @H L l# 0 0         L P Th l 0 4 @#h 8l 8x# @ @#   , @0 @4H HL H `# |        # $ 8 ( 8 4# d @ h @ t#   "  8 "  @ <" \       8  @ D X P \ P | |  |   8  8  P  P   X  X  `  ` d h h h p `  p  p  x  x` d p Pt P     p p x x     0 0 4 P P  0 00 \p 0t 4x |  0 4      0 4  $ 0( 4, 0 L 0P 4T X l    0 4   0 4     0 4  $ ( 8 X \ t 0x 4|     0 4     0 4          H H  $ ( 0 4 8 < D H       < @ D H      # 8 8 #H @L @X#   @ @  4j  G%G+G40C$ OWP _!$  report.o/ 1295032967 7356 20 100664 11876 ` ELF,04(.shstrtab.text.bss.rodata1.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿠'D'H!  H@D!  #`@@!$ `H@D@ 㿘'D'H'L'PD  !$ !$ 7!$ @L l  !$  @L" !$ @L  !$  @ P  !$  @L!$ !$ H  !$ !$ 7!$ @P ,  !$  @P" !$ @P  !$  @   !$  @P!$ !$ @㿠! @! @㿠'D!  @D!  #`@@!$ `@D@ 㿘'D'HDH?!   ;XX@\!  #`@@!$ `;X@X@ 㿐'D'H'L'PDH?LP?! ! ;XX@\ 4;XX@\!  #`@@!$ `;X@X `8;X@X@ 㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿐'D'H'L'PDH?LP?! #`! D@;XX@\`, D;XX@\!  #`@@!$ `%D;X@X `0D;X@X@ 㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿐'D'H'L'PDH?LP?! ! ;XX@\ $;XX@\!  #`@@!$ `;X@X `(;X@X@ 㿘'D'H'LDH?!   L;X@X!  #`@@!$ `L;XX@\@ 㿠'D'H!  H@D!  #`@@!$ `H@D@ 㿠!  @!  #`@@!$ @`@ [%s] %s a[%s] %s %s PROJECTION PARAMETERS: a %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters a Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters a Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees a Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees a Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees a Latitude of Center: %lf degrees Latitude of Origin: %lf degrees a Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees a Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees a 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees a Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters a False Easting: %lf meters False Northing: %lf meters %s %lf a %s %lf %s %ld a %s %ld a Output file name not specifiedreport-fileOutput file name not specifiedreport-file@Lc˰@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)string.h 1.27 07/01/14 SMI@(#)string_iso.h 1.5 04/06/18 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07report.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o report.o report.c <J4report.cBbss.bssDdata.dataDrodata.rodataterminal_efile_efptr_eerr_fileterminal_pfile_pparm_filefptr_ppblankgenrpt_longgenrptoffsetpstparl1stanparltrue_scaleorigincenlatcenlonmercenlonradius2radiusptitleclose_filestrcpystrleninitfclosefprintffopenprintfp_error -8?F O Zakr|y h    8hHL$   0 4 <&D H X \ ` d h%p t $#       !$ ( , 0 4 T X \!p t x | '                   !$ ( , 0 4 T  X  \!p t x ,| ,'             #   #P  T  d h l&t x    < <%  $#       ` ` &( , < @ D H L%T X h$p#t       &&  $ ( , 0 4%< @ P$X h$p#t         &       %  ( , 8$@#D         &      %    $# P  T  d Ph Pp t &     | |%    $#    $  4 8 @ D T&\ ` p t x | %    $#           $& ,  0  @  D  H , L , P% X  \  h l x$ #        `  `   &  ,& 4  8  H  L  P  T  X% `  d  p t $    $ #             & $  (  8  <  @ < D < H% P  T  ` d p$ x# |       h  h & &     ,  0  4  8  <% D  H  X$ `  p$ x# |          &             %     4$ <# @  t  x      &          $  $ %     $ #         4$ 4(&0 4 D H L 8P 8T%\ ` d$l#p 4s 00>pX&.4*=L$  X'` hh  paksz.o/ 1295032967 7356 20 100664 2732 ` ELF4( .shstrtab.text.data1.rodata.bss.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text 'D'H'LDH?L$ ! ! ?! ?;X@X! ??! ???> ډD'h  @ $\L$ ! [?'?? Z??! ???> ډD'<  @ $\L$ ! 4?'?? Z??! ??>  @ $\L$ ! ?!  D ZDZ D? ??Illegal DMS fieldpaksz-degIllegal DMS fieldpaksz-minIllegal DMS fieldpaksz-sec?A.@@@N@ @(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07paksz.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o paksz.o paksz.c <I4paksz.cBbss.bssDdata.dataDrodata.rodatap_errorfabspaksz 8,49X8 < P T ` d t      ( , h l p   ( ( @ @    0  0L 04j h^h8 %+4C($ OL?W _,t  sphdz.o/ 1295032967 7356 20 100664 4172 ` ELFD4( .shstrtab.text.data.data1.rodata.bss.comment.stab.indexstr.stab.index.strtab.symtab.rela.texth'D'H'L'P'TDH  ;X@X?H  ;X@X! ???! ?ЁA#`ȁL$ $ P$ $ T$ $ *ȁL$ $ T$ $ ``ȉ;X@X DP$ $ L$ $ T$ $ P$ $ `ȁ#`L$ $ `T$ $ ! P$ $ JD#`L$ $ `T$ $ ! P$ $ 6#`L$ $ `T$ $ ! P$ $ ##`L$ $ `T$ $ ! P$ $ #`L$ $ `T$ $ ! P$ $ h@ !  @ ,@ 8 'DU- %L$ $ #`P$ $ T$ $ @ - #`L$ $ #`P$ $ T$ $ ) - %L$ $ #`P$ $ T$ $ - %L$ $ #`P$ $ T$ $ 'AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕AXT@AX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕AX?\9XInvalid spheroid selectionINFORMATIONALReset to 0INFORMATIONAL?AXM˕AXMAXM@@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)stdlib.h 1.51 04/06/30 SMI@(#)stdlib_iso.h 1.9 04/09/28 SMI@(#)stdlib_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07sphdz.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o sphdz.o sphdz.c <I4sphdz.cBbss.bssDdata.dataDrodata.rodatamajorminorp_errorlabssqrtfabssphdz p(,28@EJOH d     4 8 H           0 h4 hX \ l |             $ @ D L X |        0 4 H L |    4j xpF0(&X+XL4 C D$ O hUW _   untfz.o/ 1295032968 7356 20 100664 2356 ` ELF(4( .shstrtab.text.data.data1.rodata.bss.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿘'D'H'LH(%D ! , , #`,L$ $ L  ! D @  $M @ $ @?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit@(#)stdio.h 1.84 04/09/28 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)stdio_iso.h 1.8 05/08/16 SMI@(#)va_list.h 1.15 04/11/19 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)stdio_impl.h 1.15 07/03/05 SMI@(#)stdio_c99.h 1.2 04/03/29 SMI@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07untfz.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o untfz.o untfz.c <I4untfz.cBbss.bssDdata.dataDrodata.rodatafactorsp_erroruntfz  , 4<d h      $ $ 4j  S&+4C$ OBW _x  gctp.o/ 1295032968 7356 20 100664 7140 ` ELF4( .shstrtab.text.data.bss.data1.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\'\`'`d'dh'hl'lp'pt'tx'x|'|''''''$ \ d `@h$  '! ;'̡, #`$#`$#`$#`$#`$#`$'-/1  ̥.`.`$ȫ- <@ <  'Ƞ` e'̠ 'Ġ ' !$ |H :,#`L @#`X @ #`@ ''H , , $#`̥,@P``D 'Ġ 'p :,#`t @#` @ #`@ ''p , , $#`̥,@x``D ' 'H  d  @  $ E'p  d  @  $ 4'T 'X H  T  'X H T L <  d.! , #`'H  @$  @$ H T$  @'D  D?D  D?ĀH ,#`$X H , #`$L H , #`$'+`P̧- @``H , , $<  'H `X  '̦@P̥, @``<̠  '#`?@`?HL  P  `` DL , , $ '88! D?@L ! ?H! ?H?@P  ?HH L @X #`#\@#`L PX #`@#\@#` @3'H ??С, #`ؚ;XX;XX'< $ @'p ,#`$ p , #`$t p , #`$'+`x̧- @``p , , $<  'p `D  '̦@x̥, @``<̠  '#`?@`?Hx  ?0`0D ;X@X?@;X@X?H0?@x  ?Hp t @ #`#\@#`t x #`@#\@#` @'p ` l$ $ l$ $ ,`#`l ;XX;XX'< $ @`'| ' p  |  ' p | t <  d.! , #`'p  @$  @$ p |$ l  D$ $ l   D$ $ @'Insys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUTA.A@(#)math.h 2.24 04/10/23 SMI@(#)math_iso.h 1.9 04/10/23 SMI@(#)feature_tests.h 1.25 07/02/02 SMI@(#)ccompile.h 1.2 04/11/08 SMI@(#)isa_defs.h 1.29 08/06/06 SMI@(#)math_c99.h 1.9 04/11/01 SMI@(#)floatingpoint.h 2.9 04/10/23 SMI@(#)stdio_tag.h 1.4 04/09/28 SMI@(#)ieeefp.h 2.12 04/10/23 SMIacomp: Sun C 5.7 2005/01/07gctp.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o gctp.o gctp.c<H4gctp.cBbss.bssDdata.dataDrodata.rodataiterNADUTinpjindatinznoutpjoutdatoutznpdinpdoutinv_transfor_transfor_initpakr2dminv_initclose_fileuntfzp_errorinitgctpkP+06;A(FLPSY x/X^8/Xdh(nix        (  (( , 4 P8 P@ D P 8T 8X x\ x` d    ( (  4 8 | x x   P  P( , p 8t 8  ( , 0  0L     , (0 (< x@ x     P T t x    h( h( h( h($@| h( h(    P  P 0  4  @ 8 D 8     ( <  i  i   i  i   D i H i  T  X    4j   kP@# +8F4~C$ O@W _  br_gctp.o/ 1295032968 7356 20 100664 1328 ` ELFP4( .shstrtab.text.bss.data.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\'\`'`d'dh'hl'lp'pt'tx'x|'|'''DHLPTX\`dhlptx|#\#`#d#h#l#p#t#x#|##@#acomp: Sun C 5.7 2005/01/07br_gctp.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN10 -Dunix -c -o br_gctp.o br_gctp.c <K4br_gctp.cBbss.bssDdata.dataDrodata.rodatagctpgctp_ .34c $-<t$ H9Pp XD  hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibMACIntel.a0000644000175000017500000127235012024715435021727 0ustar amckinstryamckinstry! #1/20 1295385875 501 20 100644 3316 ` __.SYMDEF SORTEDuu"uFP_8 8 H!H.080EhDOhD\_e_qkzk y y((f!n!v!!    "k ]r!!.070CHLHXamv//X:X:II(Q(Q Y Ygg!в,u7unyxxpp   `(`4H =H IXRX^hu--!@<@<ii!!$E!-4;B((hh "!I!!,(4(?GPRXZXe8m8xh&h&`R`R XL!~~!XX!V]W +3>.H.U>_>lKtKTT\\cc(_alberfor_alberforint_alberinv_alberinvint_alconfor_alconforint_alconinv_alconinvint_azimfor_azimforint_aziminv_aziminvint_bceafor_bceaforint_bceainv_bceainvint_ceafor_ceaforint_ceainv_ceainvint_eqconfor_eqconforint_eqconinv_eqconinvint_equifor_equiforint_equiinv_equiinvint_gnomfor_gnomforint_gnominv_gnominvint_goodfor_goodforint_goodinv_goodinvint_gvnspfor_gvnspforint_gvnspinv_gvnspinvint_hamfor_hamforint_haminv_haminvint_imolwfor_imolwforint_imolwinv_imolwinvint_Isin_for_free_Isin_for_init_Isin_fwd_isinusfor_isinusforinit_Isin_inv_Isin_inv_free_Isin_inv_init_isinusinv_isinusinvinit_lamazfor_lamazforint_lamazinv_lamazinvint_lamccfor_lamccforint_lamccinv_lamccinvint_merfor_merforint_merinv_merinvint_millfor_millforint_millinv_millinvint_molwfor_molwforint_molwinv_molwinvint_obleqfor_obleqforint_obleqinv_obleqinvint_omerfor_omerforint_omerinv_omerinvint_orthfor_orthforint_orthinv_orthinvint_polyfor_polyforint_polyinv_polyinvint_psfor_psforint_psinv_psinvint_robfor_robforint_robinv_robinvint_sinfor_sinforint_sininv_sininvint_somfor_somforint_sominv_sominvint_sterfor_sterforint_sterinv_sterinvint_stplnfor_stplnforint_stplninv_stplninvint_tmfor_tmforint_tminv_tminvint_utmfor_utmforint_utminv_utminvint_vandgfor_vandgforint_vandginv_vandginvint_wivfor_wivforint_wivinv_wivinvint_wviifor_wviiforint_wviiinv_wviiinvint_for_init_inv_init_adjust_lon_asinz_calc_utm_zone_e0fn_e1fn_e2fn_e3fn_e4fn_mlfn_msfnz_pakcz_pakr2dm_phi1z_phi2z_phi3z_phi4z_qsfnz_sign_tsfnz_tsincos_cenlat_cenlon_cenlonmer_close_file_genrpt_genrpt_long_init_offsetp_origin_p_error_pblank_ptitle_radius_radius2_stanparl_stparl1_true_scale_paksz_sphdz_untfz_gctp_gctp_67 #1/20 1295385866 501 20 100644 3796 ` alberfor.o8  T__text__TEXTT( n__cstring__TEXTiT__const__TEXTp__literal8__TEXT__bss__DATAH__jump_table__IMPORTA  P  US[EEE EEEEEEEEEE EE$EE(EE,EE0xE4|E8pE_alberforint_alberfor_ptitle_msfnz_offsetp_cos_radius2_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_sin_qsfnz_false_easting_false_northing_lon_center_r_major_r_minor_e3_ns0_c_rh#1/20 1295385866 501 20 100644 4988 ` alberinv.o8  T __text__TEXTVT __cstring__TEXTXn __const__TEXT0$ __literal8__TEXT HT __bss__DATA P__jump_table__IMPORTH F L P  US[EEE EEEEEEEEEE EE$EE(EE,EE0xE4|E8pE+       0   tT H( > #      e V G 4     k '       w i F < 2   hX  zW= *   ^ P F 8                    tN%,lY>5bE_alberinvint_alberinv_log_ptitle_msfnz_offsetp_radius2_phi1z_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_atan2_qsfnz_false_easting_false_northing_lon_center_r_major_r_minor_es_e3_ns0_c_rh #1/20 1295385866 501 20 100644 5164 ` alconfor.o8 T Tw __text__TEXTlT __cstring__TEXTl __literal8__TEXT __const__TEXT0  __bss__DATA __jump_table__IMPORT@ 7 < P   US[EEЋE EԋEEȋEE̋EEEEċE EE$Eq Ey E E E q yA EQE9  B B B B B( B0 B B B B B( B0 $]9 YEE Xȍf(^f($,]9 f(^؍f(\UMXf(^f(\$$]EYE$]MXMf(\f(E荃1 D$ ) D$E$d]$By q L$$( $2 $  L$$Ą[US[EPE TEHELP\$]pD$ xD$E$^H$jݝ(Y(EHXȍf(^f($ݝ0f(^؍f(\UMXf(^f(\$$ݝ80Y8$ݝ@@X@f(\f(E`D$ hD$E$!hf(YЍ`YpYXEMXȍ^E`f(YMxYEhf(YЍ`YpYf(\f(YEEEXEEf(YMEYEXE5EuEP5EPuEEEYEXEEEYEXEE؍9E}z+U5 EYEf(\f(E+Uu EYEf(\f(EEEEEE9E;f(MfWYEEf(MfWYEEEEEEEf(YMEYEf(\f(f(XMYȍXEEf(YMEYEXf(XMȍYȍXE[ALASKA CONFORMAL#95RF?^s{?1,51?!bLUu?zY}? =;js?Kzs?7< sfə$s?nNȿSXOvҿ-DT!?@?-DT!?@?K =   0 z0 iP * P  P P  P ~ sP c [P K CP 8 @   O@ 58 /   m cH W= / H  jV L F8 2$    l8 @ f N < 2H )  H     ~x ic TN ?9 *$     H P  ~ o ` Q B l u ~    P H   @ 8 |NH2Z b)gC:_alconforint_alconfor_ptitle_offsetp_radius2_cenlat_tsincos_tan_atan_adjust_lon_cenlon_pow_sin_r_major_r_minor_false_easting_false_northing_lon_center_lat_center_n_e_acoef_bcoef_cos_p26_sin_p26#1/20 1295385866 501 20 100644 6980 ` alconinv.o8 T__text__TEXTT T__cstring__TEXTT ;__literal8__TEXT __const__TEXT@ __bss__DATA__jump_table__IMPORT`F< P US[EEЋE EԋEEȋEE̋EEEEċE EE$EEEEE   EQEy B B B B  B( B01 B1 B1 B1 B 1 B(1 B0$ ]yYEE Xȍf(^f($Q ]yf(^؍ f(\UM Xf(^f(\$$ ]EYE$ ]MXM f(\f(E荃qD$ iD$E$ E $b L$$M $\ $* L$$ Ą[USt[EE EEU f(\f(ʍ5 f(^f(] f(\f(ʍ5 f(^f(EEEEXEf(YMEYEX u 0  ( Pu  P   *Y0@ *Y(8 H*YP H*Y HEY0XXY(X ` 9E +Uu  Y0f(\f( +U  Y(f(\f( X0`(Y@XPhY8XHp +E*ȍ +Uu YY@f(\f(P +E*ȍ +U YY8f(\f(Hh@p8E 9E f(fWY0 f(fWY( X0`(Ef(Y0EY(f(\f(X\xEf(Y0EY(XX \EEf(Y@EY8f(\f(XPEEf(Y@EY8XX8EEf(YMEYEXExf(YMEYEXȍ f(fW^EEEf(YMxYE\ȍ f(fW^EEEXEEEXEE f(Mf(fTЍ f(MfTXEE}~' D$ $Dž}E f.lEf(YMEYEXQEMЍ f(^f($aݝXEȍD$ D$E$E E f(MfTȍ f. f(Yf(YM Y^EX$|]EEEE$ݝ YM؍ Xȍ f(^f($ݝ  f(^ Xȍ \f(^f(T$$ݝY$ݝX f(\f(\EEEXEEE}~I M EDž D$ $Dž f(MfT f.\EE f(YMf(YЍ f(YMYf(\YEL$$ݝE X$WEDžt[ALASKA CONFORMALalcon-invToo many iterations in inverse#95RF?^s{?1,51?!bLUu?zY}? =;js?Kzs?7< sfə$s?nNȿSXOvҿ-DT!?@?|=@-DT!??2    x   Pk c p Y e 9  0   8 8q (g [ A (3 0     x x Pg a #  (   p  e | Pe P/ @@@m@\@ @G*@@ jVLF82$ T xfN<2)@ @ @~ x@i c@T N@? 9* $       ~o`QB@x|^ Xw9j'Or0~JA_alconinvint_alconinv_ptitle_asinz_offsetp_radius2_cenlat_tsincos_tan_p_error_atan_adjust_lon_cenlon_pow_atan2_sin_r_major_r_minor_false_easting_false_northing_lon_center_lat_center_n_e_acoef_bcoef_cos_p26_sin_p26#1/20 1295385866 501 20 100644 2940 ` azimfor.o8 T__text__TEXTTN__cstring__TEXTR8__const__TEXT@__literal8__TEXTP __bss__DATA8__jump_table__IMPORTp<  P p USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍEEEEED$ D$E$$$$$L$$UD[US[E`E dEXE\y`\$]ȍED$ ED$X$E$]ЍEf(YЍEYYEXEf(MfTȍ\ȍf(fTȍf.E$A]E$Rݝ@E^@E؍qf(YMEf(YHE$ݝPHYPXEqf(Y]؍Ef(YЍEYYEf(\f(f(YȍXEDž<E؍!f.Ewq)YEED$D$h$D$h$Dž<{<[AZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-for?|=-DT! @-??zh?p?Z`?KP?'?????o?Q?"X?@?P?@???f?!          x i Z K    y 05hD0'`WOt;_azimforint_azimfor_sprintf_ptitle_offsetp_cos_acos_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_sin_r_major_lon_center_lat_origin_false_northing_false_easting_cos_p12_sin_p12#1/20 1295385866 501 20 100644 3396 ` aziminv.o8 T__text__TEXTT h__cstring__TEXT0U__literal8__TEXT8 __const__TEXT` __bss__DATA8__jump_table__IMPORT7x h P L USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍEEEEED$ D$E$$$$$L$$eD[US[EEE EċEEEEE\EE\EEf(YMEYEXQEyYEf.woyE^EEЉD$ E؉D$E$E!f(MfTȍf.$D$$GE}MЍf(YEf(YMY^EX$E!f(fTȍ f(\f(E!f(MfTȍf.EEEEE$p]YEM\f(E!f(MfTȍf.7f.s_U1f(MfWED$ $]E\E$EE1f(MfWD$E$z]XE$YEEEf(YUEf(YMYT$$]XE$EE1!f(MfTȍf.wtEEĔ[AZIMUTHAL EQUIDISTANTazim-invInput data error-DT! @|=-DT!?@?`??~?K8?/ p?p??P??{@?h`?G?> ?@?`?H?`???j?SK ?A?+@?`???8??r?Z?!          x i Z K    s| 0[g7%SJBn._aziminvint_aziminv_ptitle_asinz_offsetp_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_atan2_sin_r_major_lon_center_lat_origin_false_northing_false_easting_cos_p12_sin_p12#1/20 1295385866 501 20 100644 3388 ` bceafor.o |__text__TEXT0~__cstring__TEXT__literal8__TEXT __bss__DATA \__jump_table__IMPORT-D X P  UST[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4EEE4E<EDELEf(^f(EEf(YM\,,Q$,f.wll<$T<$\T,\Yȍ\Yȍ\Qf(^f(d$L$$4$<$DLL$$T[USd[EEЋE EԋEEȋEE̍E\$k]E$^]荃 tqf(YMYȍXEf(YM荃^ȍXExsf(\UYEf(YM荃sf(\f(Ef(^U{Yȍsf(^Uf(YM荃sf(\эf(YM荃sXf(^f($]EYEXEYEEYf(YMXEf(YMX^ȍXEd[Cylinderical Equal Area?h㈵>?Pmpmu m`XmIpm? mm0mm0mmm0mpmX8mAm78mPm`m mXm`m mxm@mR>X 4P . H  @   (  p  h h 8 ` zh tfH ^` XJH <x .x  8 0 8 8   ( X P H u@ f( W  b k(t@HPX80x`hp aE:,#1QV_bceaforint_bceafor_log_ptitle_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_ind_cosphi1_sinphi1_kz#1/20 1295385866 501 20 100644 4436 ` bceainv.o B__text__TEXTT __cstring__TEXT__literal8__TEXT`__bss__DATAHt__jump_table__IMPORT2 X P  USt[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4E<EDElEtE|EED<f(^f(EEf(YM\TTQLTTY\\TYdLf.Tf(\UTf(\f(ʍf(^ULYȍf(^ULf(\эLXf(^f($]EYEXEYE"t$ut$mTYȍYȍ\Qf(^f($D<L$$l$t$|L$$vt[USt[EEE EEE؋EE܍E\EE\E؍f(YM؍f(^f($EYEf(^f(ʍX$EEf(Xȍf(YЍYf(^f($T]f(^ЍYXЍ%Yf(XMEX$]EYEf(XUU-f(YЍ5Yf(XMM=Y$c]EYEUXUEf(YUMMY$ ]EYEXEEYEf(^f(ʍX$Et[Cylinderical Equal Area?h㈵>@@` ` ?*B*B?[[?U?@m-?@mxNDH%pp~thS+!ph`HwxXNHC)H  |n hZx T@H 6P 0(     `        v j M/ %X  X   X   `  ` v b XX Np @` 6h ,h ` ` X ` `  H P    ux fP WH hHqPzx`Xhp EV:,#1Q\_bceainvint_bceainv_log_ptitle_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_asin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_e_p4_e_p6_ind_qp_cosphi1_sinphi1_kz #1/12 1295385866 501 20 100644 3380 ` ceafor.o |__text__TEXT0~__cstring__TEXT__literal8__TEXT __bss__DATA \__jump_table__IMPORT-D X P  UST[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4EEE4E<EDELEf(^f(EEf(YM\,,Q$,f.wll<$T<$\T,\Yȍ\Yȍ\Qf(^f(d$L$$4$<$DLL$$T[USd[EEЋE EԋEEȋEE̍E\$k]E$^]荃 tqf(YMYȍXEf(YM荃^ȍXExsf(\UYEf(YM荃sf(\f(Ef(^U{Yȍsf(^Uf(YM荃sf(\эf(YM荃sXf(^f($]EYEXEYEEYf(YMXEf(YMX^ȍXEd[Cylinderical Equal Area?h㈵>?Pmpmu m`XmIpm? mm0mm0mmm0mpmX8mAm78mPm`m mXm`m mxm@mR>X 4P . H  @   (  p  h h 8 ` zh tfH ^` XJH <x .x  8 0 8 8   ( X P H u@ f( W  ` i(r@~HPX80x`hp aC8*!/OT_ceaforint_ceafor_log_ptitle_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_ind_cosphi1_sinphi1_kz #1/12 1295385866 501 20 100644 4428 ` ceainv.o B__text__TEXTT __cstring__TEXT__literal8__TEXT`__bss__DATAHt__jump_table__IMPORT2 X P  USt[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4E<EDElEtE|EED<f(^f(EEf(YM\TTQLTTY\\TYdLf.Tf(\UTf(\f(ʍf(^ULYȍf(^ULf(\эLXf(^f($]EYEXEYE"t$zt$rTYȍYȍ\Qf(^f($D<L$$l$t$|L$${t[USt[EEE EEE؋EE܍E\EE\E؍f(YM؍f(^f($EYEf(^f(ʍX$EEf(Xȍf(YЍYf(^f($6]f(^ЍYXЍ%Yf(XMEX$]EYEf(XUU-f(YЍ5Yf(XMM=Y$h]EYEUXUEf(YUMMY$]EYEXEEYEf(^f(ʍX$Et[Cylinderical Equal Area?h㈵>@@` ` ?*B*B?[[?U?@m-?@mxNDH%pp~thS+!ph`HwxXNHC)H  |n hZx T@H 6P 0(     `        v j M/ %X  X   X   `  ` v b XX Np @` 6h ,h ` ` X ` `  H P    ux fP WH gHpPyx`Xhp J!?1(6V[_ceainvint_ceainv_log_ptitle_asinz_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_e_p4_e_p6_ind_qp_cosphi1_sinphi1_kz #1/20 1295385866 501 20 100644 4748 ` eqconfor.o8 HT__text__TEXTT __cstring__TEXTNP __literal8__TEXTP __const__TEXT` __bss__DATAx__jump_table__IMPORTpZ #l  PUS[EEE EEEEEEEEEE EE$EE(EE,EE0EE4EE8EE_eqconinvint_eqconinv_e3fn_ptitle_e0fn_offsetp_radius2_tsincos_cenlonmer_msfnz_e2fn_p_error_stanparl_origin_adjust_lon_atan2_stparl1_e1fn_phi3z_mlfn_r_major_r_minor_lon_center_false_northing_false_easting_es_e_e0_e1_e2_e3_ns_g_ml0_rh #1/20 1295385866 501 20 100644 1676 ` equifor.o H0__text__TEXT)__cstring__TEXT__bss__DATA(__jump_table__IMPORT#8 PUSD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍEE EEE$A$A$( $L$$D[USD[EEE EEE؋EE܍E\$]f(YMMȍ$o]MYMЍXEf(YM؍XED[EQUIRECTANGULAR (zlTK4(      ( x  i Z K  S\ht (  G,'?7_equiforint_equifor_ptitle_offsetp_cos_cenlonmer_radius_origin_adjust_lon_r_major_lon_center_lat_origin_false_northing_false_easting #1/20 1295385866 501 20 100644 2060 ` equiinv.o8 T__text__TEXT(T2__cstring__TEXT(*|__const__TEXT`__literal8__TEXTp__bss__DATA(__jump_table__IMPORTx(X PUSD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍEEEEE$$$$L$${D[US4[EEE EEEEE썃E\EE\E荃E^EEGf(fTWf.wa$]MYEf(^f(ʍX$EE!D$(${EܮE܃4[EQUIRECTANGULARequi-invInput data error-DT!? A8p`dL4     (  x i Z K  \eq}  P,'H?7_equiinvint_equiinv_ptitle_offsetp_cos_cenlonmer_radius_p_error_origin_adjust_lon_r_major_lon_center_lat_origin_false_northing_false_easting #1/20 1295385866 501 20 100644 2268 ` gnomfor.o R__text__TEXTd7__cstring__TEXT3__literal8__TEXT __bss__DATAX0__jump_table__IMPORT 20D P  USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍTELElEtEdD$ \D$E$$jE$tE$tE$LtlL$$D[USt[EEE EċEEEE:E\$]؍EȉD$ EЉD$E$E$]JEf(YЍREYYEXE荃f.E^EEBf(YMEf(YUE$2]MYMZXEBf(Y]REf(YЍJEYYEf(\f(f(YȍbXEE!D$$uEEt[GNOMONICgnomfor-convPoint projects into infinity?ihRp?`*x`phpP9Xx   h p x ix ZX K`    g`jXvxph N,Z'E=b4_gnomforint_gnomfor_ptitle_offsetp_cos_cenlat_tsincos_radius_p_error_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing_cos_p13_sin_p13 #1/20 1295385866 501 20 100644 3140 ` gnominv.o8 hT/__text__TEXTTZ__cstring__TEXT __const__TEXT __literal8__TEXT4__bss__DATA08__jump_table__IMPORT7L p P T USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,Eԍ4E$E,ELETEDD$ <D$E$U$3E$=E$=E$TLL$$D[US[EEE EċEEEE(E\E0E\EEf(YMEYEXQEE^$[]EЉD$ E؉D$E$1Ef(MfTȍf.MЍf(YEf(YM Y^EX$Ef(fTȍf(\f(Ef(MfTȍf.EEEEE$8]YEM\f(Ef(MfTȍf.7f.s_Uf(MfWED$ $]E\E$qEEf(MfWD$E$B]XE$EEEf(YUEf(YM YT$$]XE$EE1f(MfTȍf.wtEEĔ[GNOMONIC|=-DT!?0v0bO00F.P0000m0^00N0D80+00H08000x0j0`80U:P0H00000@0c`0KX0X `  H P ` xX i8 Z0 K@     m@p0|8X`PH !MGa.Y%?h6_gnominvint_gnominv_ptitle_asinz_offsetp_cenlat_tsincos_radius_atan_adjust_lon_cenlon_atan2_sin_R_lon_center_lat_center_false_easting_false_northing_cos_p13_sin_p13 #1/20 1295385866 501 20 100644 4844 ` goodfor.o8  T __text__TEXTTh __cstring__TEXTI( __literal8__TEXT t __const__TEXT $ __bss__DATA __jump_table__IMPORT#D  td PUS$[EEE E E4 4 B4 B4 B4 $B 4 ,B(4 $B04 ,B84 4B@4 <BH4 4BP4 <BX Y  Y @ Y @ Y @ $Y @  ,Y @( $Y @0 ,Y @8 4Y @@ <Y @H 4Y @P <Y @X$E$$[US[EEE EċEEEEESf.scEf.sB-M[f.s EE Ekf.sJ-M[f.s EEMsf.gMsf.sM{f.s" EyMf.s EYE PEGM{f.s" E'Mf.s EE }t- E }t}t}t}t } UC E\$A]ЋU􍃣P#f(YMXE$ݝ`XY`XPE#YEEvUC E\$]EEE$ݝhYhEEE$SݝppXEf(\M荃f(f(fWxE$]XEx^f(EEXEE؍f(MfTȍf.w4}1~$D$$EEEM؍f(^f(E؍f(MfTȍf(\f(ʍf.wcEЋU􍃣E#Yf(YMME$]EYEXEEE$]UYUE$i*ȍYMXȍ#YEEE[GOODE'S HOMOLOSINE EQUAL-AREAgoode-forwardIteration failed to convergeɠ]h-8R?_@ 0  *@    K N@ Z :1)#F_goodforint_goodfor_ptitle_cos_sign_radius_p_error_adjust_lon_sin_R_lon_center_feast#1/20 1295385867 501 20 100644 6564 ` goodinv.o8 T __text__TEXT T\"__cstring__TEXT =__literal8__TEXT \__const__TEXT __bss__DATA __jump_table__IMPORT (4 (h PlUS$[EEE E E4 4 B4  B4  B4 B 4  B(4 B04  B84  B@4 $ BH4  BP4 $ BX  Y   Y @  Y @  Y @  Y @   Y @(  Y @0  Y @8  Y @@ $ Y @H  Y @P $ Y @X $ E$ $[US[EEЋE EԋEEȋEE̍# ; YEf.sK Ef.s^7# C Yf.Es EsEg# S YEf.sa7# C Yf.Es EE # [ Yf.E# [ Yf.Es!# c Yf.Es/ E# k Yf.Es EmE dE[# c Yf.Es, E1# k Yf.Es6 EE U􍃣  E\EЃ}t- E Ӄ}t}t}t}t } 0# E^EE f(fTs f.wQE f(fTȍs f(\f(E荃 f(MfT{ f.w@$D$$EUC ЋE*UC EE$]# MYE^XEEE$E#  f(YUE$M*YEf(XUȍ#  Yf(^f(E؍ f(MfTȍ f.E$]UC U#  f(YUE$]MYME^XEEE f. EEf(XMEX$:]MXM f(^f(E؍ f(MfTȍ f.w5 EE$EK f.Ev; EkE f(\f(ʍ{ f.w@ 0 *@    Q T@ ` :K1)#F_goodinvint_goodinv_ptitle_cos_sign_radius_p_error_adjust_lon_sin_asin_R_lon_center_feast#1/20 1295385867 501 20 100644 2636 ` gvnspfor.o `'__text__TEXTe8F__cstring__TEXThxx__literal8__TEXT__bss__DATA(8__jump_table__IMPORT7 P h USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԋE0EȋE4E̍$E$Ef(^f(ʍX,EDELE<D$ 4D$E$\$E$D$E$E$E$LDL$$D[USt[EEE EċEEEEE\$l]؍EȉD$ EЉD$E$8E$]Ef(YЍEYYEXE荃r^f.Er\ȍ\Ef(^f(Ef(YMEf(YUE$}]MYMXEf(Y]Ef(YЍEYYEf(\f(f(YȍXEE!FD$P$EEt[GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: gvnsp-forPoint cannot be projected??OGv=vXv@vHv0vPvs0vS8vEv;8v"v8vHv@v(v[GP =X 7( h @ H X P ( 8  f0 W0    q0t8w(PXH@jX.d)G O?l6_gvnspforint_gvnspfor_ptitle_offsetp_cos_cenlat_tsincos_radius_genrpt_p_error_adjust_lon_cenlon_sin_R_p_lon_center_false_easting_false_northing_cos_p15_sin_p15#1/20 1295385867 501 20 100644 3884 ` gvnspinv.o8 `T__text__TEXTTp t__cstring__TEXTpp__literal8__TEXT(__const__TEXT  __bss__DATA @__jump_table__IMPORT<4 @ H P  USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԋE0EȋE4E̍$E$Ef(^f(ʍX,EEDELE<D$ 4D$E$$E$8D$E$E$E$LDL$$|D[US[EEE EEEEEE\EE\EEf(YMEYEXQEЍE^E؍f(\f(EXEE^EQf(Ef.EYEYEf(^M\Q\Ef(^ME^EXf(^f(EE$]ED$ EȉD$E$E8f(MfTȍf.'D$$DžtMf(YEf(YMY^EX$9E8f(fTȍ f(\f(E8f(MfTȍf. EDžtEEE$]YEM\f(E8f(MfTȍf.F(f.sbUHf(MfWED$ $)]E\E$EDžtHf(MfWD$E$ݝxXx$EDžtEf(YUEf(YMYT$$f]XE$@EDžt48f(MfTȍf.wqDžttĤ[GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: gvnsp-forInput data error??|=-DT!? HZD 8 (nM@D((Hm@SK{Aq+ s8?5880XPjVP LX F7(D  @ H X P (  8  f0 W0     z0}8 (PXH@yZ n0fI'QAu8_gvnspinvint_gvnspinv_ptitle_asinz_offsetp_cenlat_tsincos_radius_genrpt_p_error_adjust_lon_cenlon_atan2_sin_R_p_lon_center_lat_center_false_easting_false_northing_cos_p15_sin_p15 #1/12 1295385867 501 20 100644 1836 ` hamfor.o __text__TEXTX(__cstring__TEXTXh__literal8__TEXT`p__bss__DATA __jump_table__IMPORTx# | PUS4[EEE EEEEEEEEEE E؋E$E܍EEEEL$E$E$L$$4[USt[EEE EEE؋EE܍E\$v]荃f(YUE$9]M荃f(^f($]MYMXQM^f(EEf(XUE$]EYEEM荃f(^f($]MYMȍXEE$k]MYMXEt[HAMMER>ef?@?:' hpmShE%`  {X l ] N ?   KNZi 2>%*F_hamforint_hamfor_ptitle_offsetp_cos_radius_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing#1/12 1295385867 501 20 100644 1980 ` haminv.o __text__TEXT/__cstring__TEXT__literal8__TEXT__bss__DATA __jump_table__IMPORT# , PtUS4[EEE EEEEEEEEEE E؋E$E܍EEEE$AE$AE$<L$$ 4[USD[EEE EEE؋EE܍ E\E(E\E؍Yȍf(YEf(YMf(^f(f(XEYEf(\f(Qf(ȍf(^f(Ef(Xȍf(YEf(YMf(^f(f(XEYE\EYEL$$]MXMЍX$EEf(YM^ȍf(^f($7ED[HAMMER@@xjQ?,cC5+  { l ] N ?   OR^m 4H@#,_haminvint_haminv_ptitle_asinz_offsetp_radius_adjust_lon_cenlon_atan2_R_lon_center_false_easting_false_northing #1/20 1295385867 501 20 100644 3692 ` imolwfor.o8 pT__text__TEXT\T$ __cstring__TEXT\N__literal8__TEXT__const__TEXT __bss__DATA__jump_table__IMPORT t ` P\ US$[EEE EEBBBB B(Y4Y4@Y4@Y4@Y4@ Y4@(P$,E$'$[US[EEE EċEEEEcEf.sEkf.Ekf.r!Msf.v EE{f.rMf.s2Ef.rMf.w EEyMf.v E[Ef.rMf.;Ef.rMf.EUS E\$]EEE$ݝpYpEEE$XݝxxXEf(\M荃f(f(fWUE$]XEM^f(EEXEE؍f(MfTȍf.w6 E}1~D$$E#M؍f(^f(E؍f(MfTȍf(\f(ʍf.wcEЋU􍃓E3Yf(YMME$]EYEXEE3f(YUE$]EYEEĤ[INTERRUPTED MOLLWEIDE EQUAL-AREAIntMoll-forwardIteration failed to converge@-8R?ωd8RCT!?IA5֠yJWֿ^T\nĿE؎W@2 ާT\n?^@֠yJW? f?f?/-DT! @/-DT! ky]IA5@ˡA5-DT! @?|=@-DT!?)d?;f?6 @htxaFp1)}h`mFX:P80HHe@T8?0.(  x\ m@ _ U J@ < 2 '@   @   @   @      } n h Y S D > 0 *    GJV@6 -%B_imolwforint_imolwfor_ptitle_cos_radius_p_error_adjust_lon_sin_R_lon_center_feast#1/20 1295385867 501 20 100644 3556 ` imolwinv.o 0__text__TEXT{__cstring__TEXT|!__literal8__TEXT__bss__DATA__jump_table__IMPORTp t \ P US$[EEE E􍃔EBBBB B(YY@Y@Y@Y@ Y@(p$E$$[USd[EEE EEE؋EE܍VEf.s%nYf.E[^Yf.Es!fYf.Es EGE>E5vYf.E( EEUV E\E~YE^$]UEf(YUE$[]MYME^XE$@EEf(XMEX$]MXMȍf(^f($E}u8 EEf.wEf.w}ub EEf.vEf.w2Ef.vEf.w}u8 EEf.wEf.w}u8 EEf.wEf.w}ub EEf.vEf.w2Ef.vEf.w}u5 E 0 *    DGS-> %9_imolwinvint_imolwinv_ptitle_cos_radius_adjust_lon_sin_asin_R_lon_center_feast#1/20 1295385867 501 20 100644 7124 ` isinusfor.o X0,__text__TEXT __cstring__TEXT K__data__DATA  __bss__DATA,__literal8__TEXT0 __const__TEXT__jump_table__IMPORT(__pointers__IMPORT(4 P  US[E D$ ED$ D$$[US[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4Et=$hE}t$ D$ $.Ef.EsM؍f.wR$ D$ $EZE؍f.wMf.$$ D$ $E Ef.wLM X,E*MEf(\f(ʍf(fT f.w2$\ D$ $EEtJ$ D$ $EY D$ $E5Mf.w]Ef.wLM X,E*MEf(\f(ʍf(fT f.w|$ D$ $'EED$$ED$ ED$ED$ED$E$ uD!D$ $E(6D$T$EEEĄ[USt[EEЋE EԋEEȋEE̋EEEEċE EE$EMЍ f.wMȍ f.wN$ D$x $ EEȍ f.wMȍ f.w($ D$x $ ELMȍ XEEȍ f.s Mȍ f(\f(Eȃ}(~ }(~$ D$x $F EE(t$ D$x $ E},x},~$ D$x $ En$\ E܃}u$ D$p $ E5E@XEEEE@EE@ ^EЋE@*M( f(^f(‹E@ U܋E(B(U(‹E܉P,EE@8Mȍ f(\f(‹E@0EH0 f.wEH0 XE@0U܋E,B@E܋@,$w ‹E܉PTE܋@Tu/E܉$x  D$p $e EE܋@TEEE*M䍃 XȋE܋@,*^ȍ f(\f(ʍ YE},>E$]MXM*E(Yȍ X,ЋEDE$]*E(MYȍ X,ЋEEEE EE*ȍ ^E@},uEP‹EPE‹EPEEE܋@,;EE܋PTE܋@,EMЍ Y*Ef(^f(‹E@D*UMЍ Yf(^f(E@LE@X#ܫ E܉EEt[UST[EEE EEE؋EE܍bED$ED$ED$ ED$$E}t!D$$EEEԃT[UST[E EЋEEԋEEȋEE̋USU S}u tD$$mEE@X=#ܫ t tD$$@EMЍ[f.w(EЍcf.wMȍkf.w| EEȍsf.w]EHE@YEXE sf(\MȋE@ YEE,EE@,;E EE@(+EHE}yEEH0Ef(\f(ʍ{YE荃Sf.Ew"E,и)*EXE荃Ef.wE,*E\EEPTE*f(YMEPTE@*f(\f(EEE@DYEXEEEăT[US$[}uD$A$)EeE@X=#ܫ tD$I$E;E@XE@T$E@TE$EEE$[UVS [EHE0L$T$ E D$nD$4$c [^ error (isinusfor.c/%s : %s memory allocationinvalid parameterinvalid handleinvalid keybad return from Isin_for_freeisinusforinitbad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_for_initIsin_for_initbad return from Isin_fwdisinusforIsin_fwdIsin_for_free error (isinusfor.c/%s) : (%i) %s   -DT!-DT!@ףp= ?)\3A{Gz?{GzGz@|=-DT!-DT!@-DT! @?-DT! ?-DT!?-DT!-DT!@-DT!-DT!?m0_??  z (z R =   $      + ] ] ] g ] ; ]  ]  ] ]  $] ]  ] ] ] { ] 4 , "  ,TxV: [Aph ^O7/%rYQG5$ xpphL^LOG: L=PL/,L',L: L(LXLL|XLkhLV`L?7: L- L: L  L: L LXLLXLPLjb: LXp LBHL1@L: LH L8L0L: L L,L,L3' (    jq $,m 4 *Q =CV[dN_isinusforinit_Isin_for_init_isinusfor_Isin_fwd_Isin_for_free___stderrp_malloc_cos_fprintf_free_error_ISIN_BADALLOC_ISIN_BADPARAM_ISIN_BADHANDLE_ISIN_BADKEY_isin_Isin_error#1/20 1295385867 501 20 100644 7236 ` isinusinv.o X`\__text__TEXT 8__cstring__TEXT O__data__DATAH $`__bss__DATA\__literal8__TEXThD__const__TEXT __jump_table__IMPORT0( __pointers__IMPORTX4p P  US[LE D$ ED$ D$$[US[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4Et=$E}t$ D$' $.Ef.EsM؍$f.wR$8 D$' $EZE؍,f.wM4f.$` D$' $E E<f.wLMDX,E*MEf(\f(ʍf(fTDf.w2$ D$' $EEtJ$ D$' $EY D$' $E5MLf.w]ETf.wLMDX,E*MEf(\f(ʍf(fTDf.w|$D$' $'EED$$ED$ ED$ED$ED$E$! uD!@D$' $E(rD$' $EEEĄ[USt[EEЋE EԋEEȋEE̋EEEEċE EE$EMЍ f.wMȍ f.wN$@ D$ $8 EEȍ f.wMȍ$ f.w($@ D$ $ ELMȍ XEEȍ$ f.s Mȍ f(\f(Eȃ}(~ }(~$@ D$ $l EE(t$@ D$ $> E},x},~$@ D$ $ En$\ E܃}u$@ D$ $ E5E@XEEEE@EE@, ^EЋE@*M($ f(^f(‹E@ U܋E(B(U(‹E܉P,EE@8Mȍ$ f(\f(‹E@0EH04 f.wEH0 XE@0U܋E,B@E܋@,$ ‹E܉PTE܋@Tu/E܉$ @ D$ $ EE܋@TEEE*M䍃< XȋE܋@,*^ȍ, f(\f(ʍD YE},>E$]MXM*E(Yȍ< X,ЋEDE$]*E(MYȍ< X,ЋEEEE EE*ȍ, ^E@},uEP‹EPE‹EPEEE܋@,;EE܋PTE܋@,EMЍ Y*Ef(^f(‹E@D*UMЍ Yf(^f(E@LE@X#ܫ E܉EEt[UST[EEE EEE؋EE܍ED$ED$ED$ ED$$<E}t! D$9$EEEԃT[UST[E EЋEEԋEEȋEE̋UU }u D$$ECE@X=#ܫ t D$$fEEHEf(\f(ʋE@YE E f.wZE f.wGE f(\f(ʋE@ YEE,EE@,;E,U E\E@(+EHE}yEEEf(\f(ʋE@LYEEPTE@*f(XMEPTE@YE荃f.EwPEf.w;EP0M荃YX‹EEf.sU Eb$Ef(\f(‹EEf.wEXEEEăT[US$[}uD$B$EeE@X=#ܫ tD$J$E;E@XE@T$E@TE$EEE$[UVS [EHE0L$T$ E D$oD$4$N [^ error (isinusinv.c/%s) : %s memory allocationinvalid parameterinvalid handleinvalid keybad return from Isin_inv_freeisinusinvinitbad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_initIsin_inv_initbad return from Isin_invisinusinvIsin_invIsin_inv_free error (isinusinv.c/%s) : (%i) %s  ( : I -DT!-DT!@ףp= ?)\3A{Gz?{GzGz@|=-DT!-DT!@-DT! @?-DT! ?-DT!?-DT!-DT!??-DT!@-DT! @-DT!   $ X x [ S ` I  1 ) X   ] ] ] ] y ] Y ] 7 ] & ] ] J ] 7 ] ]  `] ]  X] ] ] { ] 4 , "  \TxV:H[AphH^O7/P%PPrYQPG5$ Pphs L^LOGs L=L/\L'\Ls LdLL L|LkLVL?7s L-8Ls L Ls L LL LLLjbs LX LBL1xLs L LpLhLs LU L\L\L3' X     jqHPX`\ *Q 4 =CV[dN_isinusinvinit_Isin_inv_init_isinusinv_Isin_inv_Isin_inv_free___stderrp_malloc_cos_fprintf_free_error_ISIN_BADALLOC_ISIN_BADPARAM_ISIN_BADHANDLE_ISIN_BADKEY_isin_Isin_error#1/20 1295385867 501 20 100644 2388 ` lamazfor.o __text__TEXT#9__cstring__TEXT$Z4__literal8__TEXT__bss__DATA0__jump_table__IMPORT- P  USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍEEEED$ D$E$$E$E$E$L$$D[US[EpE tEhElp\$U]ED$ EȉD$h$#EЉD$ E؉D$E$Ef(YЍEYEYXEE荃_f.zM荃gXȍo^Qf(ȍYEEf(YMEYȍXEEf(YЍEYEYf(\f(f(YMXEDždJXD$#D$E$OD$E$DždqdĴ[LAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward?@p!D!!!z!c!N!$!!!!!!bH!  $   x i Z K    hkwT2`)K!C:_lamazforint_lamazfor_sprintf_ptitle_offsetp_cenlat_tsincos_radius_p_error_adjust_lon_cenlon_R_lon_center_false_easting_false_northing_cos_lat_o_sin_lat_o #1/20 1295385867 501 20 100644 3212 ` lamazinv.o8 Tg__text__TEXTT[__cstring__TEXT<__literal8__TEXT D__const__TEXT d__bss__DATAh8__jump_table__IMPORT07  P USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍlE\EdEEE|D$ tD$E$$kE$uE$uE$ML$$$D[US[EEE EċEEEE`E\EhE\EEf(YMEYEXQEHf(XE^EEf.wpE$S]EXEEEЉD$ E؉D$E$38Ef(MfTf.wI'D$$Dž|s9@EDž|PEf(YЍXEYYE^EX$iE@f(fTȍf(\f(Ef(MfTf.w#@f. EEE$]PYEM\f(Ef.EuzEf(YUEf(YMXYT$$]8XE$`E~f(MfWD$E$8]8XE$E08Uf(MfWED$ $]E\E$E|Ĕ[LAMBERT AZIMUTHAL EQUAL-AREAlamaz-inverseInput data error?|=-DT!?~\ 0Mh0=*h0! 0h000f0]/0%p00000p000lp0WO0E070$0h0 0x0c0K0      x ip Zh Kx    rxuhp!R f0^'IAm8_lamazinvint_lamazinv_ptitle_asinz_offsetp_cenlat_tsincos_radius_p_error_adjust_lon_cenlon_atan2_sin_R_lon_center_lat_center_false_easting_false_northing_cos_lat_o_sin_lat_o #1/20 1295385867 501 20 100644 4452 ` lamccfor.o8 pT__text__TEXTTh __cstring__TEXTL __const__TEXT __literal8__TEXT( __bss__DATAX__jump_table__IMPORTK d P  US[EEE EEEEEEEEEE EE$EE(EE,EE0xE4|E8pE+`LB<*pPXwmPcL8XLhxrxiJh<"hhhhxYpOhA`7`)PXXP PX`hpxtN%,lY5b>E_lamccinvint_lamccinv_log_ptitle_msfnz_offsetp_radius2_tsfnz_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_phi2z_pow_atan2_sin_r_major_r_minor_false_easting_false_northing_es_e_center_lon_center_lat_ns_f0_rh #1/12 1295385867 501 20 100644 2916 ` merfor.o8 Tg__text__TEXTTU__cstring__TEXTG __literal8__TEXTT__const__TEXT t__bss__DATAhH__jump_table__IMPORT07  P  d USt[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4E\EdElEtEEEd\f(^f(EEf(YM\Q|E$]E$/]MYME$]MYM\QU^f($d\L$$l$ut$kL$$)t[USt[EEE EEE؋EE܍f(MfTȍ\ȍf(fTȍf.E$]`ED$ED$ $]荃@pf(YUPE\$\]MYMXExE@pf(YUE$]EYEM\f(EE!D$$E5Et[MERCATORmer-forwardTransformation cannot be computed at the poles?-DT!?|=((^>(4h(%((x((h((r(d (V(C (    x h p   l Y8 /     h p    ux fp Wh    lhup~x [?*!SJ/g8_merforint_merfor_log_ptitle_offsetp_cos_radius2_tsfnz_cenlonmer_p_error_origin_adjust_lon_sin_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e_m1#1/12 1295385867 501 20 100644 2620 ` merinv.o8 T__text__TEXTPTI__cstring__TEXTP __literal8__TEXT`__const__TEXTp__bss__DATAH__jump_table__IMPORT2xt P  P USt[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4EEEEEEEf(^f(EEf(YMT\QE$n]E$z]MYME$P]MYMT\QU^f(D$L$$$$L$$yt[UST[EEE EEE؋EEEE\EE\E؍Hf(Mf(fWЍYf(^f($]ED$ED$ $EEtEEMYEf(^f(ʍX$hEEEԃT[MERCATOR?7%((((((zp(b(J(       P  l` Y8 /    `      u f W    clu K8*!CW/^_merinvint_merinv_ptitle_exp_offsetp_cos_radius2_cenlonmer_origin_adjust_lon_phi2z_sin_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e_m1 #1/20 1295385867 501 20 100644 1676 ` millfor.o 0 __text__TEXT%__cstring__TEXT__literal8__TEXT__bss__DATA __jump_table__IMPORT#` | PDUS4[EEE EEEEEEEEEE E؋E$E܍ EEEE$fE$aE$aL$$)4[USD[EEE EEE؋EE܍0E\$]8f(YM@XEM؍^ȍX$$t]Ѝ8MYȍYȍHXED[MILLER CYLINDRICAL@-DT!??(yphVH.   ( { l( ]  N ?  MP\ k( 9E#,4_millforint_millfor_log_ptitle_offsetp_radius_tan_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/20 1295385867 501 20 100644 1708 ` millinv.o P+__text__TEXT<%__cstring__TEXT__literal8__TEXT__bss__DATA0 __jump_table__IMPORT# | PdUS4[EEE EEEEEEEEEE E؋E$E܍,E$E4E<E$E$E$<4L$$I4[US4[EEE EEEEE썃`E\EhE\E荃XEf(^f(ʍPX$EXEf(^f(ʍf(^f($q$x]M\ȍ YE4[MILLER CYLINDRICAL?-DT!?@~c8XF0+8H@@ H { lH ]@ N0 ?8 N8Q0]@lH :4F#,_millinvint_millinv_ptitle_exp_offsetp_radius_atan_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/20 1295385867 501 20 100644 2516 ` molwfor.o8 HT(__text__TEXTZT|?__cstring__TEXTZ9__literal8__TEXT@__const__TEXT 4__bss__DATA( __jump_table__IMPORT(T< PtUS4[EEE EEEEEEEEEE E؋E$E܍,E4E$EEN$yE$yE$y4,L$$<4[US[EEE EċEEEEEE\$]EEE$ݝpYpEEE$ݝxxXEf(\M荃f(f(fWUE$`]XEM^f(EEXEE؍ f(MfTȍf.w4}1~$D$$E$E%M؍f(^f(E؍ f(MfTȍf(\f(ʍf.wEЍMYf(YMME$7]MYMUXEMf(YUE$]MYM]XEEEĤ[MOLLWEIDEMollweide-forwardIteration failed to converge-DT! @?|=@-DT!?)d?;f?4@!080iV;vdd=1(8 @ {Z l( ]0 N@ ?8   V8e@u0x( =I'4,Q_molwforint_molwfor_ptitle_offsetp_cos_radius_p_error_adjust_lon_cenlon_sin_false_easting_false_northing_R_lon_center#1/20 1295385867 501 20 100644 2292 ` molwinv.o8 Th__text__TEXTT;__cstring__TEXT @__literal8__TEXT0L__const__TEXT0__bss__DATAh __jump_table__IMPORT@(\ PUS4[EEE EEEEEEEEEE E؋E$E܍lEtEdE\E$E$E$tlL$$|4[UST[EEE EEE؋EE܍E\EE\E؍YE^EPf(MfT f.w EE$]荃(f(YUE$]MYMEf(^f(ʍX$]EE0f.wU0E8f.wU8Ef(XMEX$]MXMЍ8f(^f(EPf(MfTȍ@f.w@EE$ET[MOLLWEIDE;f??)d?-DT! -DT! @?  0m@/hprdQ05+pxx  { lh ]p N ?x  Sxbrpuh 4M@',H_molwinvint_molwinv_ptitle_offsetp_cos_radius_adjust_lon_cenlon_sin_asin_false_easting_false_northing_R_lon_center#1/20 1295385868 501 20 100644 3596 ` obleqfor.o t__text__TEXTk__cstring__TEXTF__literal8__TEXT0@__bss__DATAxP__jump_table__IMPORT8<H , P  UST[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԋE0EȋE4E̋E8EE-DT! @4 44444w4d4L4144444444{4h4M4:4'444444444w4kO4<4,44444444o4N54#44444444xa4X 8y`D* 8zP{u_UO<2 z H  p   H  p{ s i zS H3 # H    h   h   h} o a hM 7 +         l U K 1 `    x/ %    ` X    x o H ? *  zd8VL2(8{gP]WA71HpHu]ghU3' `Xa8SI8 P<rxhbZ P7888P8ubO5+! Hx88mYE@;$888`xVD2 x!"%&$ #x")0 %u#oH3^*f8YAP_omerforint_omerfor_log_ptitle_asinz_offsetp_cos_radius2_tsfnz_cenlat_tsincos_tan_genrpt_p_error_atan_adjust_lon_cenlon_pow_sin_r_major_r_minor_scale_factor_lat_origin_false_northing_false_easting_es_e_cos_p20_sin_p20_bl_al_d_el_lon_origin_cosgam_singam_cosaz_sinaz_u#1/20 1295385868 501 20 100644 11164 ` omerinv.o8 T___text__TEXT/T__cstring__TEXT0__literal8__TEXT(|__const__TEXT@__bss__DATA`__jump_table__IMPORT_TH(*@*H P'US[EEE EExE|EpEtE hE$lE(`E,dE0XE4\E8PEPE؍L$$ݝYE؍!$YQL$$a=D$$L$$=}hq1f.sRYȍf(\f(Qf(\f(EYȍf(\f(Qf(ȍXE9^Ef(XM؍AYEh$ݝ^f($]E$ݝYE$ݝ^`\ihIY^D$$i$q$nqf(fTEE)f.MQ\ȍf(fT)f.D$ D$E$D$ D$h$q1f.^ȍf(f(fWYȍf(\f(Qf(ȍf(^f($5ݝYBf(^Yȍf(\f(Qf(ȍf(^f($ ݝY{D$$T Dž*8$V ]yED$8D$ $ ]($ ]yED$(D$ $ ]D$E$ ]D$E$ ]^EE؍9^Ef(XM؍AYEYEYEf(\ЍYEYEXf(^f(EEf(\MEXEf(^f(E@\0EMЍYf.w&0af(\f(0EЍif.w0aX0@\0E@f(X0Af(YqYYE$ ݝYE^E$ ݝ^f(Xii@\$W ]ЍYE$T ݝ^E$ ]E$% ݝY$ ݝh@IYD$$ 8IYD$$ 0IYD$$W (IYD$$- 8f(\(f(fTȍ)f.s6f(8fTEM)f.'{D$$DžMQ\ȍf(fTȍ)f.sJqf(fTȍQ\ȍf(fTȍ)f.'{D$$DžD$ D$E$D$ D$h$q1f.'{D$$DžV^ȍf(f(fWYȍf(\f(Qf(ȍf(^f($ݝ Y Džf(^Yȍf(\f(Qf(ȍf(^f($EݝYRĔ[US[EEE EEEEEfE\E^E\EEf(YMYEf(\f(Ef(YMYEXEȍEXEȍ~f(fWf(YMf(^f($]ЍN^Ef(XMЍVYE؍^^Ef(XMЍVYE~f(YMȍf(^f($]荃f(YM荃YEX^EEf(MfTȍ^\ȍf(fTȍff.~^^EM^Xȍ^\Ef(^f(Qf(^ED$ $]NED$ED$ $iEEtbR>EnEf.sU~UvEt~f(YMȍf(^f($]>xf(YM؍YE\ED$ $]~M^f(x\f(EE$0EDžttĴ[OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: omer-initInput data errorLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: ?@|=?cܥL@-DT!?-DT! -DT!@-DT! @??|=-DT!?-DT! :::x:e:R:1:::x:::q:b:O:E:1:#::::::::q:^:F:=#: :::::::m:U:(fJ0(@{e[UB8# 8  `   8  ` y o Y 89 ) 8    X   X   X u g XS = 1      x x  r [ Q 7 P p x p h5 +    P H    ~ u N E 0   j(\R8.(m@c]G=7$ 8`8x{mmX[x9-PHg(YO(@Lpx`nhh`0V=)(((@(q^LF,"8p`((vdP<02(((W`Mh;)ph`$ %()'!"#&`hp  x$,4;B +u#oH3^*f8YAP_omerinvint_omerinv_ptitle_exp_asinz_offsetp_cos_radius2_tsfnz_cenlat_tsincos_tan_genrpt_p_error_atan_adjust_lon_cenlon_phi2z_pow_atan2_sin_r_major_r_minor_scale_factor_lat_origin_false_northing_false_easting_es_e_cos_p20_sin_p20_bl_al_ts_d_el_lon_origin_cosgam_singam_cosaz_sinaz_u#1/20 1295385868 501 20 100644 2556 ` orthfor.o8 T__text__TEXTTC__cstring__TEXT1n__literal8__TEXTP__const__TEXTp__bss__DATA8__jump_table__IMPORT2H, P  USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍEEEEED$ D$E$$$$$L$$`D[USt[EEE EċEEEEE\$6]؍EȉD$ EЉD$E$E$]Ef(YЍEYYEXEE荃Ef.wG4f(MfTȍ$f.s$D$$cE|f(YMEf(YUE$2]MYMXE|f(Y]荃Ef(YЍEYYEf(\f(f(YȍXEEEt[ORTHOGRAPHICorth-forPoint can not be projected?|=<<<<<wI<7/0<%'<`<p<X<P<<<nW<!          x i Z K    js 0Y5'QH@e,_orthforint_orthfor_ptitle_offsetp_cos_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_sin_r_major_lon_center_lat_origin_false_northing_false_easting_cos_p14_sin_p14#1/20 1295385868 501 20 100644 3372 ` orthinv.o8 T__text__TEXTTi__cstring__TEXT'G__literal8__TEXT  t__const__TEXT@ __bss__DATA8__jump_table__IMPORT`7` P P 4 USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍEEEEED$ D$E$$$$$L$$ED[US[EEE EċEEEEyE\EqE\EEf(YMEYEXQEYXEf.wwYE^$x]EЉD$ E؉D$E$baEf(MfTȍf.$D$$E|MЍf(YEf(YMY^EX$Eif(fTȍf(\f(Ef(MfTȍf.iEEEEE$H]YEM\f(Ef(MfTf.if.s_aUf(MfWED$ $]E\E$EEf(MfWD$E$V]aXE$5EEf(MfTf.s[Ef(YUEf(YMYT$$]aXE$EEEĔ[ORTHOGRAPHICorth-invInput data errorHz>|=-DT!???y(?f@?O<?3P?P??8??(?p@?O?F?(?@?0?@???r?[S ?I?3(? @?? ? ??r?Z?!          x i Z K    s| 0[g7%SJBn._orthinvint_orthinv_ptitle_asinz_offsetp_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_atan2_sin_r_major_lon_center_lat_origin_false_northing_false_easting_cos_p14_sin_p14#1/20 1295385868 501 20 100644 3588 ` polyfor.o8 TK__text__TEXTTx__cstring__TEXT __literal8__TEXT,__const__TEXTD__bss__DATAPh__jump_table__IMPORTKT  P ` USt[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4EDELETE\EEELDf(^f(EEf(YM\Q$d$l$t$|\|t ldT$ \$d$L$$p$LDL$$ T$\$L$$t[US[EEE EċEEEEE\$]zf(MfTȍjf.EЉD$ E؉D$E$+  ED$ T$\$d$ $]MU؍L$T$$]MEYEf(YMME$]MYME^ȍ:XE*Ef(\UE$]r\Ef(YMEf(^f(MXȍYȍ2XE_f(YM:XE2*Yf(\f(EĔ[POLYCONIC?Hz>?vPvvqv^PvGv9PvvvvPvkQv>pv xvvvvv`vXD : 4&h ` P X   p x   h | vh ` ZL Dx >0 (p "     P X   h u` fX WP PX`hpx gjJ3${\U*b8vA_polyforint_polyfor_e3fn_ptitle_e0fn_offsetp_cos_radius2_tsincos_cenlonmer_msfnz_e2fn_origin_adjust_lon_sin_e1fn_mlfn_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e_e0_e1_e2_e3_ml0#1/20 1295385868 501 20 100644 3436 ` polyinv.o8 xT__text__TEXTTlp__cstring__TEXT __literal8__TEXT__const__TEXT__bss__DATA`__jump_table__IMPORTF$$ t P  USt[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4E EEE$E\EdE f(^f(EEf(YM\LL$,L$4L$<L$nD$D< 4,T$ \$d$L$$ST$ L$$$$$\dL$$t[US[EEЋE EԋEEȋEE̍E\EЍ E\EȍEf(^f(ʍXEEbf(MfTȍRf.Ef(Y]Ef(^эE^YXE荃 (ED$p(^]I/^^(^^rX^h8^^@^TH^JP^*^^^^`^^h^yp^@,p "h 0 (     ` 8 @ H vP l0 dP ^PX HH B4X ,@ &X 8 X X    p h 0 u( f  W  (0hpX8@HP` Oc1J+tUz8[#Ao_polyinvint_polyinv_e3fn_phi4z_ptitle_e0fn_asinz_offsetp_radius2_cenlonmer_e2fn_origin_adjust_lon_sin_e1fn_mlfn_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e0_e1_e2_e3_ml0#1/12 1295385868 501 20 100644 3508 ` psfor.o8 Tg__text__TEXTTw__cstring__TEXT__literal8__TEXT04__const__TEXT d__bss__DATAhh__jump_table__IMPORT07  P  t USt[EEЋE EԋEEȋEE̋EEEEċE EE$EE(EE,EE0EE4E\EdEEEd\f(^f(EEf(YM荃\llQtt$Z|EEf.Ewef(MfTȍ\ȍf(fTf.wYEE؉D$ ED$E$AMUtL$T$$EtD$ED$ $$d\L$$$ED$E$it[US[EEE EċEEEEE\$2]YEEЍYEEE$]荃ED$ED$ $]f.u6z4}Xf(YMf(^f(E>}Yf(YMf(^f(Ef(YMME$]MYMXE5f(fWf(YUUE$]MYMXEĔ[POLAR STEREOGRAPHIC?-DT!?|=n dO<hh`W:& h p {s k eF 9 3         | i [ U G A 0 !     x x  h p  u fp Wh ghppyx HT*a!/\8?_psforint_psfor_ptitle_msfnz_offsetp_cos_radius2_tsfnz_tsincos_adjust_lon_cenlon_sin_e4fn_r_major_r_minor_false_northing_false_easting_es_e_e4_center_lon_center_lat_fac_ind_mcs_tcs#1/12 1295385868 501 20 100644 3564 ` psinv.o8 T__text__TEXTTw__cstring__TEXTX__literal8__TEXT0l__const__TEXTP __bss__DATA`__jump_table__IMPORTp7  P  US[EEE EċEEEEEEEEE EE$EE(EE,EE0EE4EEEEEf(^f(EEf(YM \EQE$EEf.Ewe Af(MfTȍ!\ȍAf(fT)f.w YEEЉD$ E؉D$E$MU؍L$T$$IE؍D$ED$ $&$L$$$ED$E$Ą[USd[EEЋE EԋEEȋEEE Ef(\f(ʍYEЍEf(\f(ʍYEEf(YMEYEXQE`f.u|zzf(YMXf(^f(E荃E܉D$ED$ $]YEEE܅tNAf(YUYf(^f(EwE܉E`f.Eztdf(MfWD$E$]f(YMX$EE!YE֋Eăd[POLAR STEREOGRAPHIC?-DT!?|=x`e@6,@K0vph`Z;.((8Pq0^PP J<6% xiZkt} C^Oe!W*3:_psinvint_psinv_ptitle_msfnz_offsetp_radius2_tsfnz_tsincos_adjust_lon_cenlon_phi2z_atan2_e4fn_r_major_r_minor_false_easting_false_northing_e_e4_center_lon_center_lat_fac_ind_mcs_tcs #1/12 1295385868 501 20 100644 5756 ` robfor.o8  Ti __text__TEXTT __cstring__TEXT __literal8__TEXTp __const__TEXT0 __bss__DATA __jump_table__IMPORTP  \ x PHUSD[EEE EEE؋EE܋EEЋEEԋE EȋE$E̍| Et E E E BT B BT B BT B B T B B(T B( B0T  B0 B8T  B8  B@T $ B@ , BHT 4 BH < BPT D BP L BXT T BX \ B`T d B` l BhT t Bh | BpT Bp BxT Bx T  T  T  T  T E/MUT  Ѝ YT ȍE}~ˍ$%E$ E$  L$$D[USD[EEЋE EԋEEȋEE̍E\$]Mȍt^ȍ|^ȍf(fTEM荃f(\f(,E*ME\EUЋU ЋUBf(\f(f(YM荃f(^f(f(XEf(Y]UЋU ЍYf(XȋUBXf(Yȍf(^f(f(XȍYf(YM XEEf.9f(f(fWUЋU ЋUBf(\f(f(YM荃f(^f(f(XEf(Y]UЋU ЍYf(XȋUBXf(Yȍf(^f(Xf(YȍYȍ^ȍXE$UЋU ЋUBf(\f(f(YM荃f(^f(f(XEf(Y]UЋU ЍYf(XȋUBXf(Yȍf(^f(f(XȍYȍYȍ^ȍXED[ROBINSONX9v#??X9v?X9v?_Q?+?Gz?X9v?2ı.n?ףp= ?A`"?+?Q?-? 0*?V/?H}?O@a?=U?N@a?KY8?a2U0*?Q?ׁ? 8` ) #  `   `   `   `  { l ] N ?  A D P _ o s` x-9%_robforint_robfor_ptitle_offsetp_radius_adjust_lon_cenlon_R_lon_center_false_easting_false_northing_pr_xlr#1/12 1295385868 501 20 100644 7228 ` robinv.o8 T.__text__TEXT TM__cstring__TEXT 7h__literal8__TEXTP __const__TEXT D__bss__DATA@__jump_table__IMPORTd PUSD[EEE EEE؋EE܋EEЋEEԋE EȋE$E̍<E4EDELETD BL BTT B\ BTd BL BTl B t B T| B( B(T B0 B0T B8 B8T B@ B@T BH BHT BP BPT BX BXT B` B`T Bh BhT Bp BpT Bx$ BxT, 4 T< D TL T T\ d T\ l E/MU Ѝt YȍE}~ˍ $ E$ E$ LDL$$ D[US[EEE EEEEE E\E E\EEf(Xȍ ^ȍ f(^f(EM YEM ^ȍi f(fTEM f(\f(,E}uEEU  ЋUB f(\f(EU ЋU  Ѝ! Yf(XȋUB XEȍi f(MfTȋU f(\f(X^EEE^EEEf(YUM؍! Yf(YMЍ) Xf(Yȍ) \YEE1 Ef.s }1 Ef.*Ef(XM9 YEM ^ȍi f(fTEM f(\f(,E*ME\E1 Ef.&*Ef(XM YEd y f(f(fWU ЋU  ЋUB f(\f(f(YMA f(^f(f(XEf(Y]U ЋU  Ѝ! Yf(XȋUB Xf(YȍA f(^f(Xf(Yȍ YȍA f(^f(EEf(\MI Yȍ ^ȍ ^EXEE}KHU ЋU  ЋUB f(\f(f(YMA f(^f(f(XEf(Y]U ЋU  Ѝ! Yf(XȋUB Xf(YȍA f(^f(f(Xȍ Yȍ YȍA f(^f(ED$$EEf(\Mi f(fTQ f.oMY YE Ef(^U ЋU  ЋUB f(\f(f(YMA f(^f(f(XEf(Y]U ЋU  Ѝ! Yf(XȋUB Xf(YȍA f(^f(Xf(^ȍ XEE$\EE0E}D$$"EEĄ[ROBINSONrobinv-convToo many iterations in inverseX9v#??X9v?X9v?_Q?+?Gz?X9v?2ı.n?ףp= ?A`"?+?Q?-? 0*?V/?H}?O@a?=U?N@a?KY8?a2U0*?Q?ׁ?RFߑ?  ,     @ k Q F 5      H | n N F , <     H  `  ` `c C `4 `# `H    x a`G <`+` ```H V &       t ] ` ` ````K 3 %   H XPiUP KX E6'      x   h ` p   h ` o` i  WX Q` ?P 9  'H !` @   8 ` 0   ( `     `    y s` d ^  O I` : 4  % `     `     `     `    } w` h b  S M` > 8  ) #`    x ` X  p ` h  ` ` X  P {` lX ]P N@ ?H  JHM@YPhXx`|  x6B-%_robinvint_robinv_ptitle_offsetp_radius_p_error_adjust_lon_cenlon_R_lon_center_false_easting_false_northing_pr_xlr#1/12 1295385868 501 20 100644 1444 ` sinfor.o H__text__TEXT__cstring__TEXT a__bss__DATA __jump_table__IMPORTl $t P|US4[EEE EEEEEEEEEE E؋E$E܍EEEE$E$E$L$$4[USD[EEE EEE؋EE܍E\$]f(YMME$j]MYMЍXEf(YM؍XED[SINUSOIDALwdO<  { l ] N ?  FIUd 2>%*_sinforint_sinfor_ptitle_offsetp_cos_radius_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/12 1295385868 501 20 100644 2036 ` sininv.o8 T__text__TEXTZT(1__cstring__TEXTZ/__const__TEXT__literal8__TEXT__bss__DATA __jump_table__IMPORT# h PUS4[EEE EEEEEEEEEE E؋E$E܍EEEEN$)E$)E$)L$$4[USD[EEE EEE؋EE܍E\EE\E؍E^EEf(fTf.wQEf(fTȍf(\f(Ef(MfTf.w=!D$$E̤{EEaE$]ЍMYEf(^f(ʍXEE$E떋ẼD[SINUSOIDALsinusoidal-inverseInput data error-DT!?|=F*xe{mZL+  {Z l ] N ?  OR^m ;G%2*_sininvint_sininv_ptitle_offsetp_cos_radius_p_error_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/12 1295385868 501 20 100644 11196 ` somfor.o| __text__TEXT__cstring__TEXT __literal8__TEXT(P__const__TEXT __bss__DATA__jump_table__IMPORTA8__pointers__IMPORTy )#* P (US[EpE tEhElE `E$dE(XE,\E0PE4TE8HE DžTBE$* ]/f(\f(ʍ'Yf(YMXE$ ݝ``YhX$ ݝphYpX\Ѝ/YEf(YM\Qf(^f($K ]M^ȍXEE$$]@$]EYEEf(Yx@$ݝxYf(YMf(X؍f(YMf(XЍf(YMXYf(^f(QYč7f(YЍ77YXQEf(Y@@X$ݝYX@Y$@ݝYXȍ7YE^Ef(\f(‹EEYEf(YM@'Y$ݝYXȍYE^EXEEYEEEEGXEOXEEDžTT[US[E_YEE$]EYEE؍GOf(YUE$D]eYe/f(YM؍gf(X؍7f(YM؍gf(XЍ'f(YM؍gXYf(^f(QYčg'f(YM؍gf(XЍ7f(YM؍gXf(^f(Qf(7f(YM؍gf(X؍'f(YM؍gf(XЍ'f(YM؍gXYf(^ЍGWYf(\f(YE??f(YЍggYXQE荃?f(YUggYf(\f(^EEEUEX$]EYEE EEEoY$]EYEE?f(XMgY^EEE$x]EYEEEwY$E]EYEEĄ[SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: som-forward?@=?wO[?&p= `@5RFߑ?O)?j\a0l?~CS?l)`@cܥL@& .>@@V@>@N@.@F@Hz>z!?z!-DT!?^8U)zj@!3|@?-DT!-DT! @-DT!@@-DT!?@@Fߑ??@@fTp3`8hc`Y`F8+`!`88P@` ` t`a0?`,0` `` `0`z(gEH;@#Xx) p) ) Z8) <) 0P) ) ) `) ) |H) N) B) `) `) 8) 8) `) )  ) ~) k0) Y) F() *H) @) @) 8) k) SX) +H) P) ) X) t) *) ) 0) ~ () r ) ' ) ) )  P) } W H) ;  )  X) ) ) )  @) n ) U = ) ' )  ) ) ) )  @) O ) < ) - )  )  h) ) ) ) ) ) ) l ) P )  pZa@^T8;(X (X0(000w(mXZ(GH9H/XPPXHPPPxr^pTxN@2("h}`uk]XOAx.p(@h `XPH@@8hyo@Y04X&(xp "!xpxX@hPH0 (8`  rZ7Ie).Q< `D_somforint_somfor_gsat_ratio_radius2_log_offsetp_cos_ptitle_tan_genrpt_p_error_atan_sin_genrpt_long_asin_false_easting_false_northing_a_b_es_p21_lon_center_start_ca_sa_w_q_t_xj_a2_a4_c1_c3_s_som_series #1/12 1295385868 501 20 100644 11300 ` sominv.o8 T&__text__TEXTT|__cstring__TEXT$__literal8__TEXT(__const__TEXT __bss__DATA(__jump_table__IMPORTF4)#(+ P L)US[EpE tEhElE `E$dE(XE,\E0PE4TE8HE@@V@>@N@.@F@& .>?@-DT!?Hz>-DT!Fߑ??@@00jG040000}0b0X0F0<0000`00`00x0v0cx0Q0>`0400`00x00h0|0r0Z:0(@{oB-p@@ypka=@x@xxexV@?x6@@pp@s@``M3@@pgpQE h   X  ` Pb 0H @: ,      l ] o 85 X)  X P    H q PC @7 % H   0 0  @k `Y @C x1 @ h    q 8O 8E 0*  X0Px(i8SDH. @ `Q- ?ph`pf\xF8x.x$x rlZLB:4%J ((}nhT0J8D<2($(mW=( 80 "!x08(x`hp@HPX! TrN*=e!E/`8_sominvint_sominv_ptitle_exp_offsetp_cos_radius2_tan_genrpt_p_error_atan_adjust_lon_sin_genrpt_long_asin_false_easting_false_northing_a_b_es_lon_center_p21_ca_sa_w_q_t_u_xj_a2_a4_c1_c3_s_som_series #1/20 1295385868 501 20 100644 2588 ` sterfor.o8 T__text__TEXT+TE__cstring__TEXT+4__literal8__TEXT`__const__TEXT__bss__DATA8__jump_table__IMPORT2hL P @ USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍEEEEED$ D$E$$$$$L$$pD[USt[EEE EċEEEEE\$F]؍EȉD$ EЉD$E$ E$]Ef(YЍEYYEXEM$XȍDf(fTȍ,f.M$Xȍ4^E荃f(YMEf(YUE$R]MYMXEf(Y]荃Ef(YЍEYYEf(\f(f(YȍXEE!D$$EgEt[STEREOGRAPHICster-forPoint projects into infinity?|=@ B<9<<<<<z<g9<&p<`<h<<`<<<nW<!      +    x i Z K    js 0Y5'QH@e,_sterforint_sterfor_ptitle_offsetp_cos_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_sin_r_major_lon_center_lat_origin_false_northing_false_easting_cos_p10_sin_p10#1/20 1295385868 501 20 100644 3244 ` sterinv.o8 T___text__TEXTT`__cstring__TEXT-__const__TEXT D__literal8__TEXTd__bss__DATA`8__jump_table__IMPORT(7|  P USD[EEE EEEEEEEEEE E؋E$E܋E(EЋE,EԍTE\EdElEtED$ |D$E${$cT$c\$Jd$@ltL$$D[US[EEE EċEEEEAE\E9E\EEf(YMEYEXQE!f(XE^$~ݝxxXxEEЉD$ E؉D$E$()Ef(MfTȍf.MЍIf(YEf(YMQY^EX$E1f(fTȍf(\f(Ef(MfTȍf.1EEEEE$4]IYEM\f(Ef(MfTȍf.1f.s_)Uf(MfWED$ $]E\E$mEEf(MfWD$E$9])XE$EEf(MfTȍf.v EbEf(YUEf(YMQYT$$])XE$EEEĔ[STEREOGRAPHIC|=-DT!?h??T?A?*h???h?} ?sp?Z?G?&?p?????p?i?I?0?? h?`?rx?Z?!  x p h `     xx ip Zh K`    o`xhpx 0Ki^W0C;d'_sterinvint_sterinv_ptitle_offsetp_tsincos_cenlonmer_radius_origin_adjust_lon_atan2_atan_sin_asin_r_major_lon_center_lat_origin_false_northing_false_easting_cos_p10_sin_p10 #1/20 1295385868 501 20 100644 6428 ` stplnfor.o8 Tz__text__TEXT0 T__bss__DATA|__data__DATA@ 8 __cstring__TEXTx__literal8__TEXT\__jump_table__IMPORT Zt0 PUS4[Džtm;EtmE}Dž<z } uDDžx*x1 ;Euxt^xx~H} uBDžx*xQ ;Euxtxx~ʃtuME D$ ED$iD$$"D$$7Dž<} uD$E$ED$E$E}u'D$$Dž<-tЍD$D$E$ED$ D$ D$$GED$ D$D$q$"ED$ D$ D$($ E$)qME D$ ED$iD$$ D$$ Dž<+$ D$E$ } u Dž| Dž|SD$|$t (E0\Qf((YEq5@E8$ D$$ ݝ@Y@Et<X$ D$$ ݝHYHEt<`EhEED$0ED$(ED$ ED$ED$ED$E$ HqP$ D$$ ݝPYPE؋t<H$} D$$\ ݝXYXE苅t<8$! D$$ ݝ`Y`Et<-X$ D$$ ݝhYhEt<`EhEED$8ED$0ED$(ED$ ED$ED$ED$E$ Lq8$ D$$ ݝpYpEt<@$ D$$` ݝxYxEt<HEPEED$(ED$ ED$ED$ED$E$q @EP$D$$ݝYEt<8$FD$$%ݝYEȋtijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrstate-forError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD?5RFߑ?     x I  +      D8& rgi]K vkxlZ0 vp^xD>3~teVK<! x` f@ )||    |@ `  .>VvjM"E5c_stplnforint_stplnfor_tmforint_polyforint_fopen_sprintf_fread_ptitle_polyfor_lamccforint_tmfor_omerforint_omerfor_lamccfor_p_error_paksz_genrpt_long_fclose_pakcz_fseek_inzone_NAD27_NAD83_id#1/20 1295385869 501 20 100644 6468 ` stplninv.o8 T__text__TEXT; T__bss__DATA__data__DATA@ 8 __cstring__TEXTx__literal8__TEXT\__jump_table__IMPORT _t L PUS4[Džtq;EtqE}Dž< } uDDžx*x1 ;Euxt^xx~H} uBDžx*xQ ;Euxtxx~ʃtuME D$ ED$iD$$D$$2Dž<} uD$E$ED$E$E}u'D$$Dž<8tЍD$D$E$E$uED$ D$ D$$7ED$ D$D$u$ED$ D$ D$($ E$uME D$ ED$iD$$ D$$ Dž<+$ D$E$ } u Dž| Dž|SD$|$i (E0\Qf((YEu5@E8$ D$$ ݝ@Y@Et<X$ D$$ ݝHYHEt<`EhEED$0ED$(ED$ ED$ED$ED$E$ HuP$ D$$ ݝPYPE؋t<H$r D$$Q ݝXYXE苅t<8$ D$$ ݝ`Y`Et<-X$ D$$ ݝhYhEt<`EhEED$8ED$0ED$(ED$ ED$ED$ED$E$ Lu8$ D$$ ݝpYpEt<@$v D$$U ݝxYxEt<HEPEED$(ED$ ED$ED$ED$E$u @EP$D$$vݝYEt<8$;D$$ݝYEȋtijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrstate-invError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD?5RFߑ?     T  6   +   OC1}rthV vwe;{ixOI>~teVK<! x` f@ )    @ `  /^Jer~6B(T_stplninvint_stplninv_fopen_sprintf_tminv_fread_polyinvint_ptitle_lamccinv_tminvint_ftell_lamccinvint_omerinvint_p_error_omerinv_paksz_genrpt_long_fclose_pakcz_fseek_polyinv_inzone_nad27_nad83_id #1/12 1295385869 501 20 100644 5860 ` tmfor.o8  T __text__TEXT T __cstring__TEXT ah __literal8__TEXTx __const__TEXT t __bss__DATA x__jump_table__IMPORT@ _ $ PUS[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4EE8EE?|=?@4@2@R@M8@"@@>@N@@t / / /0 /X /Q /w /nL /! / / / / /} /o /a /N /0 / / / / / /s /e /N /3 / / / / / / /r /h /V /1 /# /  / / / / /x /n /d /Z /: /' / / / / /aJ /    0    x hx b R L < 2 ( x           |n f `R J D6 . (  x        u f  #"!                9Q4%\g+xo?bH_tmforint_tmfor_e3fn_log_ptitle_e0fn_offsetp_cos_acos_radius2_tsincos_cenlonmer_e2fn_tan_genrpt_p_error_origin_adjust_lon_sin_e1fn_mlfn_r_major_r_minor_scale_factor_lon_center_lat_origin_false_northing_false_easting_es_e0_e1_e2_e3_ml0_esp_ind#1/12 1295385869 501 20 100644 6884 ` tminv.o8  Ty __text__TEXT T__cstring__TEXT d __literal8__TEXT \__const__TEXT D__bss__DATA t__jump_table__IMPORT id&( PUS[EEE EEE؋EE܋EEЋEEԋE EȋE$E̋E(EE,EċE0EE4EE8EE??@|=-DT!?8@@$@">V@N@r@F@o4<@ @8@ s P ( .      h    ( m ?         | x r ` 8 I p 2 h $ `  X  (  p Z( L   tP jNP 8   H   } q_@ 1 %8    h J ,   0 0  g0 \*(  (      wY O ?       r h bZ N < 2 (            |n f `R J D6 . (          u f  !"%$#               &S6 c^n-v;DiJ_tminvint_tminv_e3fn_ptitle_e0fn_asinz_offsetp_cos_radius2_sign_tsincos_cenlonmer_exp_e2fn_tan_genrpt_p_error_origin_adjust_lon_atan2_sin_e1fn_mlfn_r_major_r_minor_scale_factor_lon_center_lat_origin_false_northing_false_easting_es_e0_e1_e2_e3_ml0_esp_ind #1/12 1295385869 501 20 100644 6020 ` utmfor.o8  T __text__TEXTE Tp __cstring__TEXTH __literal8__TEXT 4 __const__TEXT __bss__DATA x__jump_table__IMPORT Z #\ PpUSt[EEE EEE؋EE܋EEЋEEԃ} x} ~E 3E )Ѓ<~$< D$G $ E  E E$ E4 E 3U )‰-*ȍ Y, | } y E Mt U  f(^f(EEf(YM \\ \ $; < \ $` D \ $! L \ $T 4 T L  D < T$ \$d$L$$]ȍ YEȍl \ \  \f(^f(d \  f.w \ $ D$E $   L$$$  D$$, $EEt[US[EEE EEEEEE\$k]ED$ ED$E$-0f.|EYEEEYEEMEYȍYEE$]EYEEMEYȍYȍ\EQEf(^f(E荃 ED$ T$\$d$ $=]YEEYEf(Y]Mf(^\Ef(XmMf(^MЍYȍXEYEf(XMȍYXЍYXYXf(YȍXf(Yȍ(XEEf(\Ef(YeMf(^荃f(\UMȍYXEf(YMȍYf(XMf(^MЍYȍ XEYEf(XMȍ(YXЍ0YXYXf(YȍXYEYf(XȍYȍ XEDždE$ݝXEYXE@f(MfTȍ\ȍ@f(fTȍf.Yȍf(YhMXȍ\Ef(^f($ݝphYpEE$~ݝxExYEf(YM\Qf(^f($6]f.Ew($ZD$b$+Džd]YPf(Epf(YЍE\Y‹EDždd[utm-forintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: utm-forPoint projects into infinity5RFߑ?AcA?h㈵>?|=?@4@2@R@M8@"@@>@N@@t @ `0 ` ` ` ` ` `} `R& ` `0 `( ` ` ` ` ` `a4 `&0 `( ` `p ` ` `X `x `dp `Dh `,H `` `x ` ` `X `p `P `bH `T@ `=8 `  `0 `0 ` `H `P `X `` `k `X `Jh `$p ` ` `{8 `=/8 ) 0  (  h    h p v lh bh Xx I @H P X ` @ ` h X h P h H h xh j A 7( (   8 @ 0 ( w e]S SH "!  ( 0 @ 8   h H P X ` x p  Q2qJ-'U`h8}[A_utmforint_utmfor_e3fn_log_ptitle_e0fn_cos_acos_radius2_tsincos_cenlonmer_e2fn_tan_genrpt_p_error_adjust_lon_sin_genrpt_long_e1fn_mlfn_r_major_r_minor_scale_factor_lat_origin_lon_center_false_easting_false_northing_es_e0_e1_e2_e3_ml0_esp_ind #1/12 1295385869 501 20 100644 7124 ` utminv.o8 T$__text__TEXT Tx__cstring__TEXT T__literal8__TEXT __const__TEXT __bss__DATA(t__jump_table__IMPORT d%$ PUSt[EEE EEE؋EE܋EEЋEEԃ} x} ~E 3E )Ѓ<~$ D$ $ E E$E,E< E 3U )‰-*ȍ Y4 } y E M|U$f(^f(EEf(YM \dd$6 Dd$j Ld$& Td$ \<\T LDT$ \$d$L$$ ]ȍYEȍtdd \f(^f(ld f. $ 8 D$E $0 $L$$ ,D D$$ 4$ EmEt[US[EPE TEHELE+   YP^$ ]Ѝc ^Ef(XMЍk YE  YHf(^f(ʍ XEE$ ]Ef(YM؍s f(\Ef(YMs Xf(^f(Qhh$ E{ f.EwE3 f(fWE{ f.Eu5z3{ f.Eu"z EDžED$E$ݝ X$EDži# P\P H\H Hf(^f(ʍ Xȍ f(^f(hhpEpX$ݝ Y f(Xh(p Y$ݝ0 Y0(X8p Y$?ݝ@ Y@8Xȍ f(^f(\pxpXxpC f(xfTȍ f.s9E;E|' D$ $Dž_gEC f(pfTȍ f.wKH$*ȍ YE EDžXD$ `D$p$p$]XXYȍ YEEYEEEYEEEYEE``Yȍ Yȍs \h Qhf(^f(E s \YE^hE f(YMP^EEYEEEYEYEf(^]Mȍ f(^M Yȍ f(XM YXM YXЍ  Yf(XMȍ f(^M Yȍ f(XM YXM YXЍ  YXM YXYXf(Yȍk Xf(Yp\EMȍ f(^Ef(Xȍs Xf(XeMȍ f(^M Yȍ f(XM YXM YXЍ # YXM+ YXYXf(Yȍs Xf(YMX^ȍ X$!E[utm-invintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: UTM-INVERSELatitude failed to converge5RFߑ?AcA?h㈵>??@|=-DT!?8@@$@">V@N@r@F@o4<@ @8@  @m m ms mi xmW h m@ m) m m x m m p m my h mb ` mX xmF X m/ P m H m @ m 8 m 0 m xm m ( m m  mi  m 8m mpm(m mpmTxm7%@m m m mum~ mcr mK m5 mPmhm m`mo mAXm5(mm8mmmnX@mL@m m m m m mf mO3Hm8m(m m m8m(mmF 7)@ #P 8 ( 0 D    p x v lp bp X I( @P X ` h H h p ` p X p P p xp j A( 70 (    @ H 8 0 w( e] S  !$#"(08H@pPX `hx ^x(L/"\Wgo4=bC_utminvint_utminv_e3fn_ptitle_e0fn_asinz_cos_radius2_sign_tsincos_cenlonmer_exp_e2fn_tan_genrpt_p_error_adjust_lon_atan2_sin_genrpt_long_e1fn_mlfn_r_major_r_minor_scale_factor_lat_origin_lon_center_false_easting_false_northing_es_e0_e1_e2_e3_ml0_esp_ind#1/20 1295385869 501 20 100644 3804 ` vandgfor.o8 hTH__text__TEXTT {__cstring__TEXT__const__TEXT  __literal8__TEXTP$ __bss__DATAH __jump_table__IMPORT (t  < Pt US4[EEE EEEEEEEEEE E؋E$E܍DE<ELETE$E$E$TLL$$a4[US[EEE EEEEEeE\$%]f(MfTȍf.s[M^ȍf(fTX$]f(MfTȍf.dHmf(YMuXE}EDždf(MfTȍ\ȍf(fTȍf.f(^UMf(^f(f(Xȍf(fTȍ YEEYEEȍED$ ED$E$UMEXȍ%f(\f(f(^f(EEYEEM-f(^f(ʍ%f(\f(YEEEYEE荃mf(YE\Ef(YeE\Ef(YME\Ef(YEf(XME\EYf(\f(QXf(YEXEf(^f(Ef.E uEEf.sumf(YxMY$]xYM}XEDždmf(YhM Y$aݝphYp}XEf(EpuXEEmYEf(^f(ˍf(fTEEf.mf(YEf(YM%f(\M5YYEXQf(Yȍ}XEDžd~mf(YEf(YM%f(\M5YYEXQf(Yȍ}XEvdĴ[VAN DER GRINTEN|=-DT! @-DT!??-DT! ?@n`K4 P`PlY:0PX `Pu`_M.$PXG=Pk]?'`XPsjTF1HX ` { l` ]X NH ?P  ZP]HiXx`F R'9A0_vandgforint_vandgfor_ptitle_asinz_offsetp_tsincos_radius_tan_adjust_lon_cenlon_R_lon_center_false_easting_false_northing #1/20 1295385869 501 20 100644 3476 ` vandginv.o8 T__text__TEXT#T8 b__cstring__TEXT#w__literal8__TEXT8h__const__TEXT __bss__DATA __jump_table__IMPORT# d PH US4[EEE EEEEEEEEEE E؋E$E܍EEEE$9E$>E$9L$$4[US[EEE EEEEEE\EE\E UYEE^EEE^EEEf(YMEYEXEf(MfTȍf(f(fWM]XYEMeYYEf(XMEYEXEMeYȍ]XEXYEXEYEXEEYEf(^]EXYEYE^E^Ef(^UMmYYE^E^Ef(Xȍuf(^f(XEEf(YM}f(^f(^EXE^EEMЍ}f(^f(QXEMY^E^EEf(MfTȍ]f.w$Ef.s^EE$0ݝXX^f(E荃Ef.]E렍f(Mf(fWpM荃X$ݝxpYxM}f(^f(^Ef(XȍYEf(MfTȍf.Wf(Mf(fW`M荃X$ݝh`YhM}f(^f(^Ef(XȍUYE@M]f(\Ef(YMEYEf(\f(f(Xȍ]XEYEXQf(XȍUYȍf(^f(f(^MX$EEEEEĴ[VAN DER GRINTEN-DT! @?";@@es-8R?-DT! |=@8@F@'8`lI`(@phxnp\@I,h``XP@HH@88.  {# l ] N ?  PS_n.<H) 4_vandginvint_vandginv_ptitle_offsetp_cos_acos_radius_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/12 1295385869 501 20 100644 2284 ` wivfor.o8 T__text__TEXTT3__cstring__TEXT8C__literal8__TEXT(0|__const__TEXT` __bss__DATA __jump_table__IMPORT(\ PUS4[EEE EEEEEEEEEE E؋E$E܍EEEE$E$E$ED$E$4[US[EEE EċEEEEE\$]EEE$xݝxOYxEEE$E]EXEf(\M荃f(f(fWUE$]WXEM^f(EEXEE؍f(MfTȍ_f.w(}~ D$1$E7M؍gf(^f(E؍oYf(YMME$]MYMXEwf(YUE$]MYMXEĔ[WAGNER IVwagneriv-forwardIteration failed to convergeLKD@?|=@%䃞?\4 ?P|iDH:@  8p0v`Z3(' { l ] N ?   TWcr ;G%2*O_wivforint_wivfor_ptitle_offsetp_cos_radius_p_error_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing#1/12 1295385869 501 20 100644 1764 ` wivinv.o h__text__TEXTx#__cstring__TEXT *__literal8__TEXT(8__bss__DATAh __jump_table__IMPORT@(PX PUS4[EEE EEEEEEEEEE E؋E$E܍dE\ElEtE$E$E$ED$E$4[UST[EEE EEE؋EE܍E\EE\E؍RYE^$]Zf(YUE$]MYMEf(^f(ʍX$EEf(XMEX$]MXMЍbf(^f($YET[WAGNER IV\4 ?%䃞?LKD@8hyY0OpF+(!p x{ l ]x Nh ?p  QpTh`xo 2K>%*F_wivinvint_wivinv_ptitle_offsetp_cos_radius_adjust_lon_cenlon_sin_asin_R_lon_center_false_easting_false_northing#1/20 1295385869 501 20 100644 1916 ` wviifor.o __text__TEXTT-__cstring__TEXTT d__literal8__TEXT`0p__bss__DATA __jump_table__IMPORT#H  P,US4[EEE EEEEEEEEEE E؋E$E܍EEEEH$ E$ E$L$$4[USd[EEE EċEEEEE\$]M؍f(^f(EȉD$ EЉD$$NE$S]YEEEf(YM\QEEf(YM荃Xȍ^QEYYEf(YMEYȍXEYYEf(YMXEd[WAGNER VII@T5A}??@G|V@rPL?6xpp`hWH `  {T l ] N ?   QT`o 8D0L'_wviiforint_wviifor_ptitle_offsetp_tsincos_radius_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing #1/20 1295385869 501 20 100644 2020 ` wviiinv.o (__text__TEXT*__cstring__TEXT __literal8__TEXT __bss__DATA __jump_table__IMPORT-@ P h US4[EEE EEEEEEEEEE E؋E$E܍EE EE$QE$QE$Q L$$4[USt[EEЋE EԋEEȋEE̍8E\EЍ@E\EMЍf(^f(EMȍf(^f(EEYEEEYEEEXEQE荃0f(XE^$]EXEEE$ ]UYUM荃Yf(^f($EM荃f(YUE$]EYEML$$]MYȍ(X$[Et[WAGNER VIIG|V@rPL?tr ?@mdB"P0   { l  ] N ?    [^jy  ;OG%.V6_wviiinvint_wviiinv_ptitle_asinz_offsetp_radius_tan_adjust_lon_cenlon_atan2_sin_R_lon_center_false_easting_false_northing #1/20 1295385869 501 20 100644 18084 ` for_init.o H//__text__TEXT}.1__literal8__TEXT.(L0__jump_table__IMPORT.t0__pointers__IMPORT\/(1$h@FC PET?EUST[Dž E}aEq.f.wMEq.f.w6Eq.f.wEq.f.wED$D$ D$ED$E$X.}bEq.f.Eq.f.wmEq.f.wSEq.f.w9ED$D$ D$ED$E$-9EōD$D$ D$ED$E$q-E0EE8E}a[E ED$$,ݝy.Yȍ.YhEE EtDž$(,E(ED$$G,ݝ(y.(Yȍ.YXEE EtDž$+ ED$(ED$ XD$hD$L$$-,‹EEE EU$M/2+}b[E ED$$Q+ݝ0y.0Yȍ.YhEE EtDž$*E(ED$$*ݝ8y.8Yȍ.YXEE EtDž$T* ED$(ED$ XD$hD$L$$*‹EEE EU$/)}}y7ED$D$ D$ED$Eȉ$B*E ,,EED$$)ݝ@y.@Yȍ.YHEE EtDž$)EED$$-)ݝHy.HYȍ.YXEE EtDž$(H.Y$(,q.f.Xw,.E ,D$ED$L$$[(‹EEE EU$/'}ucED$ ED$ED$E $<(‹EEE EtDž$'EU$/y'}OEED$$'ݝPy.PYȍ.YXEE EtDž$ 'EED$$)'ݝXy.XYȍ.Y`EE EtDž$&E(ED$$&ݝ`y.`Yȍ.YEEE EtDž$/&E ED$$N&ݝhy.hYȍ.YhEE EtDž$% ED$8ED$0ED$(hD$ `D$XD$L$$&‹EEE EU$/ %}OEED$$?%ݝpy.pYȍ.YXEE EtDž$$EED$$$ݝxy.xYȍ.Y`EE EtDž$B$E ED$$a$ݝy.Yȍ.YhEE EtDž$#E(ED$$#ݝy.Yȍ.YEEE EtDž$g# ED$8ED$0ED$(hD$ `D$XD$L$$;#‹EEE EU$/"}[E ED$$"ݝy.Yȍ.YhEE EtDž$X"E(ED$$w"ݝy.Yȍ.YXEE EtDž$! ED$(ED$ XD$hD$L$$S"‹EEE EU$U/b!}[E ED$$!ݝy.Yȍ.YhEE EtDž$ E(ED$$!ݝy.Yȍ.YXEE EtDž$  ED$(ED$ XD$hD$L$$!‹EEE EU$Y/}UE ED$$ ݝy.Yȍ.YhEE EtDž$E(ED$$ݝy.Yȍ.YEEE EtDž$" ED$(ED$ ED$hD$L$$N‹EEE EU$a/}EED$$ݝy.Yȍ.YXEE EtDž$/EED$$Nݝy.Yȍ.Y`EE EtDž$E ED$$ݝy.Yȍ.YhEE EtDž$QE(ED$$pݝy.Yȍ.YEEE EtDž$E@q.f.zE EԉD$@ED$8ED$0ED$(hD$ `D$XD$L$$‹EEE EU$/EW} oEEE ED$$ݝy.Yȍ.YhEE EtDž$E(ED$$ݝy.Yȍ.YEEE EtDž$! ED$0ED$(ED$ hD$ED$L$$‹EEE EU$/} ME ED$$ݝy.Yȍ.YhEE EtDž$#E(ED$$Bݝy.Yȍ.YpEE EtDž$ED$ ED$pD$hD$ $‹EEE EU$y/;} ME ED$$Zݝy.Yȍ.YhEE EtDž$E(ED$$ݝy.Yȍ.YpEE EtDž$]ED$ ED$pD$hD$ $‹EEE EU$/} ME ED$$ݝy.Yȍ.YhEE EtDž$uE(ED$$ݝy.Yȍ.YpEE EtDž$ED$ ED$pD$hD$ $‹EEE EU$/} ME ED$$ݝ y. Yȍ.YhEE EtDž$E(ED$$=ݝ(y.(Yȍ.YpEE EtDž$ED$ ED$pD$hD$ $‹EEE EU$i/6}ME ED$$Uݝ0y.0Yȍ.YhEE EtDž$E(ED$$ݝ8y.8Yȍ.YpEE EtDž$XED$ ED$pD$hD$ $‹EEE EU$e/}mE ED$$ݝ@y.@Yȍ.YhEE EtDž$pE(ED$$ݝHy.HYȍ.YpEE EtDž$ExED$(ED$ pD$hD$xD$ $‹EEE EU$/h}E ED$$ݝPy.PYȍ.YhEE EtDž$ED$ED$hD$ $‹EEE EU$/}ME ED$$ݝXy.XYȍ.YhEE EtDž$E(ED$$>ݝ`y.`Yȍ.YXEE EtDž$ED$ ED$XD$hD$ $‹EEE EU$q/7}E ED$$Vݝhy.hYȍ.YhEE EtDž$ED$ED$hD$ $&‹EEE EU$/]}E ED$$|ݝpy.pYȍ.YhEE EtDž$ED$ED$hD$ $)‹EEE EU$/}EEE(ED$$ݝxy.xYȍ.YEEE EtDž$E`q.f.urzpEE@ED$$ݝy.Yȍ.YHEE EEEED$$ ݝy.Yȍ.Y0EE EtDž$ E ED$$% ݝy.Yȍ.YEEE EkDž$ Dž$ EHED$$ ݝy.Yȍ.YXEE EtDž$ EPED$$7 ݝy.Yȍ.YPEE EtDž$ EXED$$ ݝy.Yȍ.Y`EE EtDž$:  EԉD$``D$XPD$PXD$HHD$@ED$8ED$0ED$(ED$ 0D$ED$L$$ ‹EEE EU$]/a }E,E̋E,EЋE`q.f.zE ED$HEԉD$DED$@ED$8ED$0ED$(HD$ 8D$ẺD$EЉD$L$$_ ‹EEE EU$Q/_ EEED$$ ݝy.Yȍ.Y8EE EtDž$E ED$$ ݝy.Yȍ.YHEE EtDž$E@EEHE؋EP,E8}E ED$$eݝy.Yȍ.YhEE EtDž$ED$ED$hD$ $0‹EEE EU$/l}E ED$$ݝy.Yȍ.YhEE EtDž$ED$ED$hD$ $L‹EEE EU$/}u=$‹EEE EU$/O}E ED$$nݝy.Yȍ.YhEE EtDž$ED$ED$hD$ $a‹EEE EU$m/u}u=$‹EEE EU$/2}ua ED$ED$L$$b‹EEE EU$/}E ED$$ݝy.Yȍ.YhEE EtDž$\ED$ED$hD$ $‹EEE EU$u/}E ED$$ݝy.Yȍ.YhEE EtDž$ED$ED$hD$ $ ‹EEE EU$/}E ED$$6ݝy.Yȍ.YhEE EtDž$E(ED$$ݝy.Yȍ.YpEE EtDž$9EEEEE@ED$$:ݝy.Yȍ.Y@EE EtDž$ED$8ED$0@D$(ED$ ED$pD$hD$ $‹EEE EU$}/}ct }E ED$$(ݝy.Yȍ.YhEE EtDž$E@EEPEED$(ED$ ED$ED$hD$ $~‹EEE EU$/Dž$$T[ @U>cܥL@x#?\./:.-.-.|-H-/&-,.v,.j,+.+.++.z+.n+@+/+*.*.*f*/D*).).))/j)%)/)(|/(X(.B(.6((/''/';'.%'.'&/&a&.K&.?&%.%.%E%./%.#%$`/$;$.#l/#"."."".y".m" ". ".!!.!.!2!.!.! . . r .3 . . /J.4.(/p.Z.N /.r.f../?.)./7.!...xt/V..q.[.O!x/.s.g../2....s/Q..l.V.J/.n.b../....@/.V.@.4..x.b.V ..p/....Zh/8 . . E ./ .#  d/ O .9 .-  . .  /n  . . e .O .C  . .  .q .e 7 / x.b.V ....{... /u/S.....w*../h..u._.S%\/.i.]..p/.....g.M.6.,? 9A;.2)#'C7%!E 60=+4 5 /(-*$B8&31<" D:@>M{{ WESn(_;mNaq5*<43#Zh,H"`Bx_for_init_ceafor_somfor_merfor_psfor_omerfor_polyfor_orthfor_gnomfor_molwfor_equifor_wivfor_sterfor_obleqfor_bceafor_goodfor_sinfor_robfor_tmfor_imolwfor_millfor_lamccfor_eqconfor_wviifor_lamazfor_stplnfor_hamfor_azimfor_isinusfor_gvnspfor_alconfor_alberfor_vandgfor_utmfor_paksz_lamccforint_utmforint_goodforint_isinusforinit_gvnspforint_calc_utm_zone_eqconforint_alconforint_gnomforint_sterforint_vandgforint_stplnforint_polyforint_equiforint_robforint_omerforint_hamforint_millforint_bceaforint_imolwforint_obleqforint_wivforint_alberforint_sphdz_molwforint_merforint_wviiforint_ceaforint_somforint_psforint_tmforint_lamazforint_orthforint_sinforint_azimforint#1/20 1295385869 501 20 100644 18052 ` inv_init.o H//__text__TEXT_.1__literal8__TEXT`.(,0__jump_table__IMPORT.T0__pointers__IMPORTcܥL@x#?>./.-p.j-h.^-*-d/-n,p.X,h.L,+p.+h.+r+p.\+h.P+"+`/+*p.*h.v*H*t/&*)p.)h.)n)/L))* /@ (  C1zq Gy2b,{m:Tg?4UK+L;!o"`^V_inv_init_imolwinv_omerinv_lamazinv_bceainv_gnominv_molwinv_equiinv_sterinv_polyinv_wviiinv_obleqinv_gvnspinv_millinv_sininv_wivinv_robinv_tminv_isinusinv_lamccinv_eqconinv_stplninv_aziminv_alconinv_alberinv_sominv_utminv_haminv_orthinv_ceainv_goodinv_psinv_vandginv_merinv_paksz_sterinvint_imolwinvint_molwinvint_vandginvint_millinvint_isinusinvinit_stplninvint_polyinvint_omerinvint_equiinvint_bceainvint_sominvint_wivinvint_alberinvint_aziminvint_obleqinvint_merinvint_ceainvint_psinvint_tminvint_sphdz_lamazinvint_orthinvint_sininvint_wviiinvint_lamccinvint_utminvint_goodinvint_calc_utm_zone_gvnspinvint_haminvint_eqconinvint_robinvint_gnominvint_alconinvint#1/12 1295385869 501 20 100644 10172 ` cproj.o ,,__text__TEXT<'__const__TEXT__literal8__TEXT@8P__cstring__TEXTx__jump_table__IMPORT(%& Pt%U(EEE EE$EE$EUS$[EEE EXf(MfTȍf.w7Ef.wEEE$g$[UHYEEE EEE؋EE܋EEЋEEEYEEEf(YM\Qf(E^EEUSd[EEE EEE؋EE܋EEЋEEEf.wEf(XMEYEEEf(YMf(\UEf(YMf(\f(Ef(^U f(^MMf(\UMXf(^f($]EYEXEUYUEd[US[EEE EEEEEMY$y]Mf.wEYEEEpEEED$ ED$E$MEYEEf(YM؍\EMYf(YMEf(^Uf(\MEf(^f(E^Ef(\Uf(^MMf(\UM؍Xf(^f($]EYEXEYEEEXEE荃#f(MfTȍf.sE} UU0D$$}EEEĔ[US[EEE EċEEEEEMYEE$]MYȍXEEE$]EYEE؍f(\UM؍Xf(^ED$ $r]EYE$V]MYȍX\EEEXEEЍf(MfTȍf.sE} EE0D$$EEEĄ[US[EEЋE EԋEEȋEE̋EEEEċE EE$EE(EE,EEEEEX$2]EYEf(XMMM>Y$]EYEMXMMFY$]EYEXE^E\EEEXEEFf(MfTȍNf.sE}E0EE0D$"$"E0VMEĔ[US[EEE EEEEEEEEEE EE$EE(EE,EE0xE4|E8pE??|=?Hz>?-DT!??|=@@|=@?@@|=@MbP?Y@.A@@cܥL@N@.A@@??-DT!?-DT! @-DT!-DT!@A!T! B!T! =~S!C=~S!п0@?@????????UUUUUU??@f@@?phi1z-convConvergence errorphi2z-convPHI3Z-CONVLatitude failed to converge after 15 iterationsphi4z-convLattitude failed to convergepPrhPd`P XEPEHE@@8c>00( uuuuuT>(a^a@a%a0aaaaa0a~aiaS0aEaaaa0aaaw0a/ x====xx= ph``S<X)P  H @ m 0 _ 8 * 0  (   $  $ $ $^ $K $ $ $ $B $ $  $ $U C $" $  $  $V D $ $\J$bSKAjR*xS@p]pExpO1`H`HhH`H`HtXHP@HHH|@Hj@HWH1XU <EdjjpvX|6; B~&-{4<RK1_tsincos_asinz_msfnz_qsfnz_phi1z_phi2z_phi3z_phi4z_pakcz_pakr2dm_tsfnz_sign_adjust_lon_e0fn_e1fn_e2fn_e3fn_e4fn_mlfn_calc_utm_zone_log_cos_tan_p_error_atan_pow_sin_asin #1/12 1295385869 501 20 100644 9244 ` report.o `+__text__TEXT <__cstring__TEXT &__literal8__TEXT8__bss__DATA@ __jump_table__IMPORT#h! "$ PL!US[8tED$E D$ $<tZ D$T$HHED$ E D$ D$$H$[US$[}u}uHEu EED$$}uiEu0 D$ $E7ED$$|} u} uHEu EED$$} ufEu- D$ $EBED$$EE$[US[t$Rt$6[US[>tED$ $ JtS D$^$ NNED$ D$$ N$ [US$[EEE E􍃫 tED$g $P tW D$ $"   ED$g D$$ $ $[US$[EEE EEEEE썃 t2ED$ $ ED$ $  t|u D$$ $V   ED$ D$$6  ED$ D$$  $ $[US$[EEE E t'M YD$_ $  teD$3 $| # M Y# D$_ D$$N # $H $[US$[EEE EP t'M YD$$ \ teD$p $ ` M Y` D$D$$ ` $ $[US$[EEE E􍃍 t'M- YD$9$$ teD$ $  M- Y D$eD$$ $ $[US$[EEE E t'Mr YD$$a te;D$ $3  Mr Y D$D$$ $$[US$[EEE E t'MYD$[$ texD$' $p MY D$D$$B $<$[US$[EEE EEEEE썃DtNMYD$$M荃YD$ $PD$d$vTMYTD$D$$HM荃YTD$ D$$T$$[US$[EEE Et'MYD$$#teD$7$'MY'D$D$$R'$L$[US$[EEE EEEEE썃Tt2ED$$ED$$`t|D$t$ddED$D$$dED$D$$ad$[$[US4[EEE Ect ED$ED$$ot^D$$ssED$ ED$D$$s$4[US[tED$E D$1$\tZD$$.ED$ E D$1D$$ $[US[ t $ tJ~D$-$D$$ $[[%s] %s areport-fileOutput file name not specified %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld cܥL@cܥL@cܥL@cܥL@cܥL@cܥL@cܥL@  P3 | P3 t P3 l d `3 Z 3 N L3 H 6 @3   P   P P  ` L   @ | r P l `  F P > P 6 . ` $  L    @  P   P  p s P k P c [ ` Q E L ? 7  &  p  @  P)  H) P) ) P)  `) w ) k L) e ] H) I ) 8 @)   P   P    P  P  ` q Lk c O D < (  @P99P99P9`9 9{L9um9Y9H@9#PvhvPvvPv`v vLv@vv@v`VPPD6P(P ` L@PsPeXPPH`> 2L,$@P--P--P-`-{ -oL-ia-M-<@- P<X<P<$<P<P<`< <L<X<vn$<W@<&P  PP` L @uPoc TPLPD<`2 &L  @PPTTL@}u`bLSK A 5L@`L@L@HD`mH[S I =H'D`HDHDT { eT ]T UM` C 7H 1) D DH`T@L`PH5!=  w Pj' $,0dn X-_p_error_init_close_file_ptitle_radius_radius2_cenlon_cenlonmer_cenlat_origin_true_scale_stanparl_stparl1_offsetp_genrpt_genrpt_long_pblank_strcpy_fopen_putchar_printf_fprintf_fputc_fclose_terminal_e_file_e_err_file_fptr_e_terminal_p_file_p_parm_file_fptr_p #1/12 1295385869 501 20 100644 1596 ` paksz.o __text__TEXT')__cstring__TEXT'07__literal8__TEXTX8h__const__TEXT__jump_table__IMPORT PUST[EEE EċELf.EwR\Eȍf(MfTEdEE^E,E}h~HTE묍D$%$E\TES*EEEf(YME\ElEE^E,E}<~57D$%$qE\TU*EEEf(YME\EEtf.wiMЍ|f(YM؍tYXXEYEEM|f(^f(EEE2AD$%$E\TUET[paksz-degIllegal DMS fieldpaksz-minpaksz-sec?.A@@N@ @` 1 M    y :` +#1 C x ` 1 ' ` \p D 5h $X _paksz_p_error#1/12 1295385870 501 20 100644 2868 ` sphdz.o8  T __text__TEXTTdN__data__DATA xt__cstring__TEXT4__const__TEXT$__literal8__TEXT(4__jump_table__IMPORT\  P US4[}tE f(fTEE f(fTE荃Ef.wEf.Ef.wEf.wT)EEEEEE-EEEEEEEEEE\EQYEE}u~8EEEEEED}u@EEU}u@EEUEEUxE3EEE)}~CD$$JD$$2EE}uDUЋEUЋEE}uDUЋEUЋEUЋE}uAUЋEUЋEE?UЋEUЋEE4[TXAGITXAISXA`TXATXATXASXA@TXA@TXAbXTXA'1SXAu SXA@TXATXATXA@TXATXATXATXA@MXAMXA˯MXA@TXA333?XA ?XA+?XA ?XAd?XAIF?XA؁s?XA =?XA?XAp=:H?XA~!?XA1?XA?XAoT?XA?XA4?XAX?XAp'?XAR_?XA@MXAMXA˯MXAX9\?XAINFORMATIONALInvalid spheroid selectionReset to 0?˯MXAMXA@MXA          h  S >           z b  M  : "            }  g V  E     e P =   _sphdz_p_error_major_minor#1/12 1295385870 501 20 100644 1308 ` untfz.o EE__text__TEXTX__data__DATA __cstring__TEXTS__literal8__TEXT8H__jump_table__IMPORT@P PUVS [} xw} q}xk}eUM ƋEE+f.zt EBD$$EM!D$$EE [^?y1s- AcܥL@?;pjځ?u:?X%? @?(? @U>?xV42?:RFߑ? @?B?ׁ??untfz-codeUncompatable unit codesuntfz-unitIllegal source or target unit code  ~v l Q8 . _untfz_p_error_factors #1/12 1295385870 501 20 100644 5428 ` gctp.o8 TyT{ __text__TEXT Tu__bss__DATA k__data__DATA 4 __cstring__TEXT :L__literal8__TEXT8 __jump_table__IMPORTX # P  xUVS[EEEPE(E E,D$ E$D$T$ $ ‹EPEPtDž4P p EU䍃 U䍃0U䍃U䍃AU䍃pCU䍃EEOUM荳p)Ѝ( ֋UM荳F)Ѝ( ֍E}~E}d3EEp hE E E9u8E 0E9u!E  E 9u E u ENE6E M䍳p) ƋEEf.uz E} ~EE4E4EE89u8E4pCED9u!E4AE49u E4u ENE6E4M䍳F) ƋEE<f.uz E} ~EE x E d~0 D$ $d EPDž4E4x E4d~0 D$ $! EPDž4XEEEuE uEuEEuAE u7Eu-EDž$Q$) EE u#EȉD$D$E$y ‹EP!EȉD$D$E$V ‹EPE uUEEPt Dž4eEEYEЋEEYE؃}.E E  E E0E EE.E uEEp)E}~̋E HEUEE@E}~܍( @( HEE( f.ztnE@EHEEE 0wD$EPD$ELD$EHD$T$ @D$L$4$gE-*ȍ0 Y@Ex8 Hg@ HPEEE 0wD$EPD$ELD$EHD$T$ ED$L$4$EPtDž4E u EEEE}@WE wED$ED$ED$E$҉‹EPEPt6Dž4E4E4AE4EDpCE4E8EE.E4uEE<F)E}~̋E4EUEE<@E}~܍( @( HE<( f.ztkE<@E<HEDE8E40vD$EPD$ELD$EHD$T$ @D$L$4$qE$ݝ@E$ݝH늋EDE8E40vD$EPD$ELD$EHD$T$ E #1/20 1322762077 501 20 100644 3316 ` __.SYMDEF SORTED33"3F8JP8J_8J8 8 h!h.)8)E9O9\OeOqYzYddoo||f?n?v?? ж ж"pv??.7CLXamvpp  ((''?@,373n8Jy8J``iitt00 (4X=XIR^huhh?88?""H+H+?$`b?-4;Bp6p6 C C NNZ"Z?I??,g4g?wGwPRZemx g?``?``  ((--?V]HqXD XD+X3X>oHoU0|_0|ltxx  (_alberfor_alberforint_alberinv_alberinvint_alconfor_alconforint_alconinv_alconinvint_azimfor_azimforint_aziminv_aziminvint_bceafor_bceaforint_bceainv_bceainvint_ceafor_ceaforint_ceainv_ceainvint_eqconfor_eqconforint_eqconinv_eqconinvint_equifor_equiforint_equiinv_equiinvint_gnomfor_gnomforint_gnominv_gnominvint_goodfor_goodforint_goodinv_goodinvint_gvnspfor_gvnspforint_gvnspinv_gvnspinvint_hamfor_hamforint_haminv_haminvint_imolwfor_imolwforint_imolwinv_imolwinvint_Isin_for_free_Isin_for_init_Isin_fwd_isinusfor_isinusforinit_Isin_inv_Isin_inv_free_Isin_inv_init_isinusinv_isinusinvinit_lamazfor_lamazforint_lamazinv_lamazinvint_lamccfor_lamccforint_lamccinv_lamccinvint_merfor_merforint_merinv_merinvint_millfor_millforint_millinv_millinvint_molwfor_molwforint_molwinv_molwinvint_obleqfor_obleqforint_obleqinv_obleqinvint_omerfor_omerforint_omerinv_omerinvint_orthfor_orthforint_orthinv_orthinvint_polyfor_polyforint_polyinv_polyinvint_psfor_psforint_psinv_psinvint_robfor_robforint_robinv_robinvint_sinfor_sinforint_sininv_sininvint_somfor_somforint_sominv_sominvint_sterfor_sterforint_sterinv_sterinvint_stplnfor_stplnforint_stplninv_stplninvint_tmfor_tmforint_tminv_tminvint_utmfor_utmforint_utminv_utminvint_vandgfor_vandgforint_vandginv_vandginvint_wivfor_wivforint_wivinv_wivinvint_wviifor_wviiforint_wviiinv_wviiinvint_for_init_inv_init_adjust_lon_asinz_calc_utm_zone_e0fn_e1fn_e2fn_e3fn_e4fn_mlfn_msfnz_pakcz_pakr2dm_phi1z_phi2z_phi3z_phi4z_qsfnz_sign_tsfnz_tsincos_cenlat_cenlon_cenlonmer_close_file_genrpt_genrpt_long_init_offsetp_origin_p_error_pblank_ptitle_radius_radius2_stanparl_stparl1_true_scale_paksz_sphdz_untfz_gctp_gctp_68 #1/20 1322762067 501 20 100644 3316 ` alberfor.o8 TQ__text__TEXT{Tb__cstring__TEXT|i__const__TEXTD__literal8__TEXTT__bss__DATAXH__jump_table__IMPORTAd  P  U]EU[EME uE}E0EE8uE@}E(mEXEfTf.s*z(aD$q$]u}Í}=Eu^Yɉ|$ \t$QUE$-MEML$D$U$ED$ED$U$]E$|$ t$]ED$ED$U$ED$ED$U$]M $|$ t$]NED$ED$U$IE\EfTf.]]EUYYEMf(\M\E^eeEYى$YXM\QY=^]bED$=$VMEL$$Pm$4M $4}D$u$1tEUeYDUS[tEEED$ EED$$ED$ED$$']EY\EQ\/Y$^MJ]UY'$U0EM]EYX7MU$EM]YM\X?t1[alber-forinitEqual latitudes for St. Parallels on opposite sides of equatorALBERS CONICAL EQUAL-AREA|=?kYRxYG/YYXYYhYYpY>% X`xXhme_pppjPCp%pp`X|i\OG   X`phxPmG0 'eR~5y[>_alberforint_alberfor_ptitle_msfnz_offsetp_cos_radius2_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_sin_qsfnz_false_easting_false_northing_lon_center_r_major_r_minor_e3_ns0_c_rh#1/20 1322762067 501 20 100644 3916 ` alberinv.o8 8T__text__TEXTT< u__cstring__TEXTn__const__TEXT@0__literal8__TEXTp0__bss__DATAP__jump_table__IMPORTF T P   U]EU[EME uE}E0EE8% E@E(EXEfTf.Us*z(D$$)]u}Í}u^]Yɉ|$ \t$QE$MEML$D$$yED$ED$$]E$|$ t$]HED$ED$$ ED$ED$$]M $|$ t$]ED$ED$$%E\EfTf.U]]EUYYEMf(\M\E^EYى$YX\QY^D$$MEL$$$M $D$ $~1lEUYfDUfWɉS[]E\\UEXf.f(f(YYXQfWEf.E`Z#YE^{Yf.(\^ef(f(X\f(Y+\^ $E]em"#Em]ef(fT]YE^XfT\fTf.wVfWf.E-DT@!?E^EX$EĔ[1@Ed$,$D$EEtĔ[@YYT$ $EoE]|fDf(f(YYXQfW'E-DT@!&alber-invinitEqual latitudes for Standard Parallels on opposite sides of equatorALBERS CONICAL EQUAL-AREA|=??𿻽|=Pmmi3 mm`mmzTmHm4mm mmmm0m(mmmF-#(0  umg#p @rXK-#xpi \0O(G@ (0 `tN%,lY>5bE_alberinvint_alberinv_log_ptitle_msfnz_offsetp_radius2_phi1z_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_atan2_qsfnz_false_easting_false_northing_lon_center_r_major_r_minor_es_e3_ns0_c_rh #1/20 1322762067 501 20 100644 3964 ` alconfor.o8 4TG__text__TEXTT__cstring__TEXT__literal8__TEXT@__const__TEXTT__bss__DATA`__jump_table__IMPORT7d`  P  4 UWVS[LEǃeUEǃi#9]Eǃ%uE ǃRD}ǃ!?mǃ1,5ǃ1?ǃ!bǃLUu?ǃzǃY}?ǃ =;ǃjǃǃs?ǃKzsǃ?ǃǃ$ǃ7< ǃ sfǃəǃ$s?ǃnNǃȿǃSXǃǃOǃ vҿ$&eKD$?]UYD$ UȉD$kt$|$ f(UD$RD\XD$ ?^$]=Et$|$ ]YE$]EX\$$]D$U$e$m$}D$u$fL[1^_UWVS[MEM\$@E؉D$ ED$$]EU$EȉD$ EЉD$XEY$]MYMMt$%|$ YEMD$\X^$]Et$|$ ]YE$R]EX\$(e%]UMuUf(f(YYÃYXXBYf(YY-\^$YY,Y} f(f(XYxf(YXxx~m9f(YXUf(YXU}+YxYx 80\\ef(A9}ExEfW5MYYY\XYX EYuY}YXXYXČ1[^_ALASKA CONFORMAL5RF?RD??-DT!?-DT!???@jE0`] 0|nh?5! (p  x yop g]` Oh G? 9/      {r h ^ T J @ 6 , "                x u( o g [( P D0 9h -p "` p lpx`h0(x NH2Z b)gC:_alconforint_alconfor_ptitle_offsetp_radius2_cenlat_tsincos_tan_atan_adjust_lon_cenlon_pow_sin_lon_center_r_major_r_minor_n_false_easting_e_false_northing_lat_center_acoef_bcoef_cos_p26_sin_p26#1/20 1322762067 501 20 100644 5412 ` alconinv.o8  T __text__TEXT T __cstring__TEXT ;8 __literal8__TEXT @t __const__TEXT` __bss__DATA __jump_table__IMPORT F  P UWVS[LEǃ  Eǃ #9 Eǃ  E ǃ RD  ǃ ? ǃ 1,5ǃ! 1?ǃ% !bǃ) LUu?ǃ- zǃ1 Y}?ǃ5 =;ǃ9 jǃ= ǃA s?ǃE KzsǃI ?ǃ] ǃa $ǃe 7< ǃi sfǃm əǃq $s?ǃu nNǃy ȿǃ} SXǃ ǃ Oǃ vҿB  $&eKD$?]UY D$ UȉD$t$% |$ f(UD$RD\XD$ ?^$]Et$|$ ]YE$]EX\- $\ $5 D$ $$ $5 $ D$ $L[1^_UW1VS[EMEUЋS\3\;^^UM@@F8‹EUE*YY8PH*YYE`E]ExEDxxXYE YXjUE(]XP`0@8MHUD9 (Y XY0hXpYY YUXUf(\( YYXX$f()\p0*YY]f(]\YX]h]f(\]U]A9Gf(UfWYpf(xYYxYeYh\xXYp\mEYhXUXYU\MEf(Y\xXeYf(XYXYYf(YXf(YY\XfWfW^^x]XXfTfTx]Xsf. Ef(f(YYXQED$ E؍{D$Y$ݝX$zE#sEfTf.rZE+1[^_P`@8MHUMEYYEY^EX ${1]EXY$DžMMDž?YݝU$eFݝY\$f(\X^$ݝY$MݝX\\EXMfTf.s:EEMUYYYMUMY\L$Yx$TݝX#$%E[1^_Í(D$3$[^_Í(D$3$zALASKA CONFORMALalcon-invToo many iterations in inverse5RF?RD??-DT!?|=?-DT!??       z d 5 -  @  p P ^X X H  P   T 6@ ,p & H @ tp ` 1`         yo g] O G? 9/8 0   ( {r` h` ^` T` J` @` 6` ,` "` ` ` ` u o g [ P D 9 - "           `   ^ Xw9j'Or0~JA_alconinvint_alconinv_ptitle_asinz_offsetp_radius2_cenlat_tsincos_tan_p_error_atan_adjust_lon_cenlon_pow_atan2_sin_lon_center_r_major_r_minor_n_false_easting_e_false_northing_lat_center_acoef_bcoef_cos_p26_sin_p26#1/20 1322762067 501 20 100644 2636 ` azimfor.o8 T__text__TEXTTH__cstring__TEXTR@__const__TEXT@__literal8__TEXTP __bss__DATA8__jump_table__IMPORTp<pl P @ US[ME $D$ ED$E(E $$$$D$$1[UVS[MEp\$E]D$ ED$p$QM $8EVxYYMf]YEXf(fT\fTf.nsqzof.vu~YD$4$D$KD$4${[^ $j]M ${Uݝh^hYxMYx $H5Exݝ`Y`xXEYMYEHYE\YX1[^AZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-for?|=-DT! @nC(5h`XuPh`P@C4    ~ vn hc V I 8 . &     y 5hD0'`WOt;_azimforint_azimfor_sprintf_ptitle_offsetp_cos_acos_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_sin_cos_p12_lat_origin_r_major_sin_p12_lon_center_false_northing_false_easting#1/20 1322762067 501 20 100644 2836 ` aziminv.o8 0T__text__TEXTOTLZ__cstring__TEXTO0__literal8__TEXT __const__TEXT __bss__DATA8__jump_table__IMPORT7H 8 P  US[ME $D$ ED$E(E cF$F$M$6$3D$$1[US[d]U\/\'f(f(YYXQEf(eYf.v#|D$$}d[ÍEEUȉD$ E^D$$]>EEUfT]f.wzE1f(EYMY7Y?U^M]X$EUf(]fT\fTf.rNf.fW$T$s]EX$TE1$]EM]]EY7\f(fTf.vf(fT1f.eYMY]L$Y?$XfWT$$]\E;AZIMUTHAL EQUIDISTANTazim-invInput data error-DT! @|=-DT!?>6&( vfXD*"( WOnEe9    ~ vnO hc V I 8  . & (    s(|  [g7%SJBn._aziminvint_aziminv_ptitle_asinz_offsetp_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_atan2_sin_cos_p12_lat_origin_r_major_sin_p12_lon_center_false_northing_false_easting#1/20 1322762067 501 20 100644 2660 ` bceafor.o __text__TEXTKP__cstring__TEXTK[__literal8__TEXTh x__bss__DATA\__jump_table__IMPORT-l P  H U1S[TUME^E ]YE0E(f(\f(Qef.E MU$E $]]]@M$U]]EYY\Q^eD$$T$G$DD$$T1[fDfDUx]ME[Muu}}\ $}]u<$uu]XmtQ@YYY^X86X0/]1u}fDfDf(f(Y\Yf(YY\f(^^mEf(\X^$UuM}Uu1]YMf(XPYYYYXX8^6X0]u}Cylinderical Equal Area?h㈵>?8( txld?3~ p h^ VL D: , $  K   p  } i \ K Ch 2 * " bkt E:,#1QV_bceaforint_bceafor_log_ptitle_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_ind_cosphi1_sinphi1_kz#1/20 1322762067 501 20 100644 3380 ` bceainv.o *__text__TEXT<r__cstring__TEXT__literal8__TEXTX__bss__DATA0t__jump_table__IMPORT2 8 P US[dUME EE]'/W^E0Yg_E(o\QE?7Yf.GYEO%ǃǃǃ@U$]$]MwM UM]EYYE\EQ$^/D$'$W$y_${gD$o$8d[1ǃ\E^EMf(Y^]\X^$EM]YEXYMyf.UWVS[}EMu%\\EtoYE^U $CEYEM^MX $ 1Č[^_UEXYY^ $Mxf(^=YEXMYMXE]MX $ZExMYUY]XMxYe $]YEXEEExMYu $]YUXUEYmUUE]YUXEYEaCylinderical Equal Area?h㈵>@` ` ?*B*B?[[?U?@m-?@[Q{.{{{{{{{lH{dX{\P{TB{,0{${`{0{{p{x{{] :   x p h ` x0 j8 b] E 2      X P  @ H ox bh Zp E` =8 50 - h0q8z`phxH@PX pEV:,#1Q\_bceainvint_bceainv_log_ptitle_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_asin_true_scale_r_major_r_minor_lon_center_false_northing_lat_truesc_false_easting_es_e_e_p4_e_p6_ind_qp_cosphi1_sinphi1_kz #1/12 1322762067 501 20 100644 2652 ` ceafor.o __text__TEXTKP__cstring__TEXTK[__literal8__TEXTh x__bss__DATA\__jump_table__IMPORT-l P  H U1S[TUME^E ]YE0E(f(\f(Qef.E MU$E $]]]@M$U]]EYY\Q^eD$$T$G$DD$$T1[fDfDUx]ME[Muu}}\ $}]u<$uu]XmtQ@YYY^X86X0/]1u}fDfDf(f(Y\Yf(YY\f(^^mEf(\X^$UuM}Uu1]YMf(XPYYYYXX8^6X0]u}Cylinderical Equal Area?h㈵>?8( txld?3~ p h^ VL D: , $  K   p  } i \ K Ch 2 * " `ir~ C8*!/OT_ceaforint_ceafor_log_ptitle_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_ind_cosphi1_sinphi1_kz #1/12 1322762068 501 20 100644 3404 ` ceainv.o  __text__TEXTdz__cstring__TEXTdt__literal8__TEXTX__bss__DATAt__jump_table__IMPORT2 X P US[dUME EE]w7^E0YG?E(O\QEYf.'YE/%ǃwǃoǃs@U$]$]MWMwUM]EY_YE[\EQ$^gwD$$k7$^?$[GD$O$d[1wǃw\E^EMf(Y^]\X^$EM]YEXYMoyf.UWVS[l}EMu\\EtbY^ $YM^MX $1l[^_f.XYY^ $f(EY%U^XMY-XE]MX $`EUMY5Y=XMUYE $]YEXEEEMUYMMMYU $]YUXEME]YMXYvCylinderical Equal Area?h㈵>@` ` ?*B*B?[[?U?@m-?@[p{S{1{{{{{}{l{_({W{F8{>0{6(p{ x{{@{`{{{`{P{X{{]x :   X P H @ x j b]p Ed 2h  ` x x  8 0   ( oX bH ZP E@ = 5 - gpy@PHX( 08x`hp pJ!?1(6V[_ceainvint_ceainv_log_ptitle_asinz_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_true_scale_r_major_r_minor_lon_center_false_northing_lat_truesc_false_easting_es_e_e_p4_e_p6_ind_qp_cosphi1_sinphi1_kz #1/20 1322762068 501 20 100644 4164 ` eqconfor.o8 T*__text__TEXT\T__cstring__TEXT\N__literal8__TEXT__const__TEXT__bss__DATA0x__jump_table__IMPORTZ$ #$  P8 UWVS[UMEEE EE0EE(}؍u%-5^E@YuE8}\Qe]$1eݛ=$_eݛE$$eݛM$ݛU|$ t$M $ED$ED$]$E]D$ UD$MD$ED$=$UH]tVEXEfTf.QD$]$8ĜQ[^_fDEEM^XED$ UD$MD$ED$=$EHݓm]M\Y%$@-D$%$4ED$M $85$E$uD$}$Ĝ[1^_$-D$%$M $m|$ t$E$uED$ED$]$WM]L$ UD$MD$ED$=$:E\EfTf.]EM\E\M^DfDUS[EEED$ D$D$D$$OE\$]\MYM<]MYG $M"E]EYEX?M7 $XWEEME]YM\Ą1[eqcon_forStandard Parallels on opposite sides of equatorEQUIDISTANT CONIC?|=0&IIII0I@IIHIPIwXIi`I,   H P X ` h uYJ@0 28 *"   @ 0 8  } u0 ax Y NDH 6P (X `    h \   |rH dP VX H` 2(h ` X p P p H p h p  { n Y@ Q8 I0 " !08@phHPX`x@L5&^W,wd:mC_eqconforint_eqconfor_e3fn_ptitle_e0fn_offsetp_cos_radius2_tsincos_cenlonmer_msfnz_e2fn_p_error_stanparl_origin_adjust_lon_sin_stparl1_e1fn_mlfn_r_major_r_minor_lon_center_false_northing_false_easting_es_e_e0_e1_e2_e3_ns_g_ml0_rh#1/20 1322762068 501 20 100644 4356 ` eqconinv.o8 (T__text__TEXTT __cstring__TEXTN__literal8__TEXT d__const__TEXT0 __bss__DATAx__jump_table__IMPORTPZ8# P UWVS[UMEEE EE0EE(}؍u^E@YE8\Q$ݛ$ݛ$ݛ$_ݛ|$ t$M $[ED$ED$$=E]D$ D$D$D$$%UH]tV%EXEfTf. D$$ĜQ[^_fDEEM^XE D$ D$D$D$$SEH ݓ]M\Y$D$$ED$M $$E$D$$OĜ[1^_$'D$$M $9m|$ t$E$ED$ED$$M]L$ D$D$D$$%E\EfTf. ]EM\E\M^DfDUfWS[t]E\U\Xf.f(f(YYXQf(f.E^cD$(D$ eD$D${D$\$~Ee^Xs$$FEEt[fDfDYMYT$$M]e1f(f(YYXQfWeqcon-forStandard Parallels on opposite sides of equatorEQUIDISTANT CONIC?|=?@M(MyB8M0MMMMMMM M~MvMiMa M,  0      uYJ@ 2 *"       }  u a Y ND 6 (        0 |r d V H 2(           { n Y Q I " !  @zG&YR,r_5h>_eqconinvint_eqconinv_e3fn_ptitle_e0fn_offsetp_radius2_tsincos_cenlonmer_msfnz_e2fn_p_error_stanparl_origin_adjust_lon_atan2_stparl1_e1fn_phi3z_mlfn_r_major_r_minor_lon_center_false_northing_false_easting_es_e_e0_e1_e2_e3_ns_g_ml0_rh #1/20 1322762068 501 20 100644 1540 ` equifor.o H__text__TEXT[\'__cstring__TEXT['__bss__DATA(__jump_table__IMPORTk#7X PUS[ERE$EE(E $$$D$$[1fDUS[TMEM\$U $]EYEWEE]YEXEUYUXT1[EQUIRECTANGULARK2   |r j` XS F 9 ,  [  S\ht G,'?7_equiforint_equifor_ptitle_offsetp_cos_cenlonmer_radius_origin_adjust_lon_r_major_lon_center_lat_origin_false_northing_false_easting #1/20 1322762068 501 20 100644 1868 ` equiinv.o8 T__text__TEXT|TD0__cstring__TEXT|*__const__TEXT__literal8__TEXT__bss__DATA(__jump_table__IMPORT( PUS[EsE$EE(E l$n$W$TD$$[1fDUS[DEME'\?\G^fTf.v#D$$D[7M$UUM]YU^X/ $xE1EQUIRECTANGULARequi-invInput data error-DT!?oeG3    |r j` XS F 9 ,  |  \eq} P,'H?7_equiinvint_equiinv_ptitle_offsetp_cos_cenlonmer_radius_p_error_origin_adjust_lon_r_major_lon_center_lat_origin_false_northing_false_easting #1/20 1322762068 501 20 100644 2100 ` gnomfor.o __text__TEXTD5__cstring__TEXTD3T__literal8__TEXTx__bss__DATA0__jump_table__IMPORT2t P t US[4EEEEEEEED$ D$E E(E$;$E$E$E$D$$41[DfDUS[dMEM\$E]؉D$ ED$E$^M $E]f(YMY]YEXf.w/z-TD$a$ d[f.f(^MY $YUEEE]YEXEYMYEUYE\YXd1[GNOMONICgnomfor-convPoint projects into infinity?4ZM{xgVI:  D ~o b Q I : 2    gps| N,Z'E=b4_gnomforint_gnomfor_ptitle_offsetp_cos_cenlat_tsincos_radius_p_error_adjust_lon_cenlon_sin_cos_p13_R_sin_p13_lon_center_false_easting_false_northing #1/20 1322762068 501 20 100644 2636 ` gnominv.o8 T__text__TEXT;TK__cstring__TEXT; __const__TEXTP__literal8__TEXT`__bss__DATA8__jump_table__IMPORTx7x P \ US[4EEEEEEEED$ D$EE E(E$2$E$E$E$D$$41[Uh]EE[Muu}}\\EMYYXQED$ ED$^$"$:EfTf.Jwz]1u}@EMYYMY^MX$:Jf(fT\RfTf.rWf.ZuπED$M $S]EX$/1]u}$':MJ]EY\f(fTf.vEfTf.YML$EYEEY$VUT$u׀E$]\E$gtGNOMONIC|=-DT!?0!`Ph^N*ph`P`~Pxpf4,  ; | o b Q I : 2     mvy MGa.Y%?h6_gnominvint_gnominv_ptitle_asinz_offsetp_cenlat_tsincos_radius_atan_adjust_lon_cenlon_atan2_sin_cos_p13_R_sin_p13_lon_center_lat_center_false_easting_false_northing #1/20 1322762068 501 20 100644 3612 ` goodfor.o8 @TC__text__TEXTT__cstring__TEXTIU__literal8__TEXTP__const__TEXT T__bss__DATA`__jump_table__IMPORT #t d P US[$uGOW_goWwYYYYYY'$/uu4$$[1@UWVS[EMEf.%-f.ƒuƒ\% $rM]EYME $1E]YEXEEEYE1Č[^_Ef.5-f.F&fDƒ 0\% $E$1]EE]MY]M@2GM $UE$]MXM\MfWM eM]EX^EXfTmEf.pMYuMMfTm}\MfTfWfVYYEM$TM]YMX EE$?E$]MYMM*EYXY1Ef.=rAf.Ezff.Mz Uf.փ f.Ezff.MzUf.փ D$$=%GOODE'S HOMOLOSINE EQUAL-AREAgoode-forwardIteration failed to convergeɠ]h-8R?_ef??0(uH*  ( 0 }n_Z0 M( @ 0  (   K NZ(i0 2>%*F_hamforint_hamfor_ptitle_offsetp_cos_radius_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing#1/12 1322762068 501 20 100644 1644 ` haminv.o __text__TEXT%__cstring__TEXT__literal8__TEXT__bss__DATA __jump_table__IMPORT#@  P$US[$EEEEEE$EE eE$eE$`D$$1$1[US[Dem?\O\Gf(mYf(f(YYYYf(XX\YQXY\Y]$$D$]EXX7$qE?]mY^^,$5ED[1HAMMERп@?tg]I,  }n_Z M @ 0 (   OR^m 4H@#,_haminvint_haminv_ptitle_asinz_offsetp_radius_adjust_lon_cenlon_atan2_R_lon_center_false_easting_false_northing #1/20 1322762068 501 20 100644 3196 ` imolwfor.o8 Tn__text__TEXT&Tu__cstring__TEXT(N|__literal8__TEXTx__const__TEXT0 __bss__DATA__jump_table__IMPORTP  ` Pl US[$Mf(M荃Yow$f(ǃ@-8YwǃR?f(Yǃf(ǃYǃd8f(YǃRf(ǃCTYǃ!?ǃIAǃ5ǃ֠yJǃWֿ3M $.$1[fDfDUWVS[MEMf.]Pf.e1f.mfD\U$E$1]EE]MYMf.M $jE$]MXM\MfWM&M]EX^EXfTEf.w|1YFsf.us f.r,f.z"s f.}zwԿfFD$$veMYMM\EfTf(fWfV5MYYME $E]YEXEEMY $EEE]YEČ[1^_f.erIf.f.r f.}zvf.r f.zsĿzINTERRUPTED MOLLWEIDE EQUAL-AREAIntMoll-forwardIteration failed to converge^T\nĿE؎W@2 ާT\n?^@֠yJW? f?f?/-DT! @/-DT! ky]IA5@ˡA5-DT! @?|=?-DT!?)d?;f?KKKKKK K`KZBK5K KKKYKIKKKKK_KH@K1K+0KKKKsKeK(               ~ r l \ V N B 8 - %x (   GJQ@6 -%B_imolwforint_imolwfor_ptitle_cos_radius_p_error_adjust_lon_sin_R_feast_lon_center#1/20 1322762068 501 20 100644 2948 ` imolwinv.o __text__TEXTo__cstring__TEXT!__literal8__TEXT0@__bss__DATA__jump_table__IMPORT  \ Px US[$Mf(M荃Y'$Wf(ǃ@-8Y/_ǃR?f(Y7ǃgf(ǃ#Y?oǃ'd8f(YGǃ+Rwf(ǃ/CTYOǃ3!?ǃ7IAǃ;5ǃ?֠yJǃCWֿM $$1[fDfDUWVS[l}]Uf.1f(Yf.Vf(Y=^$MU;UM\YE]E$MUMU]YM^X$EX$EE]XE^M$Eu.f.Uzr f.]vdl[^_,u'f.}zrf.UwfD1l[^_fDf(Y%f.փ@f(Y-f.gf(Y5f.փKf.]szf.Uf.edf.UVKf.Uzf.u$@f.mff.uszf.U~f.}p1lINTERRUPTED MOLLWEIDE EQUAL-AREA^T\nĿE؎W@2 ާT\n?^@~f=k8}+?=k8}+~f?;f?)d?-DT! @֠yJW? f?ɠ]ky]IA5@ˡA5KKKKKKpKbKTKHK+KxKKpKKKfKZKE;K&  KK`KK|hKnK``K(       ` X  `  P  ` H  ~` r  l@ \  V` N8 B  8` - %0    DG`N @-> %9_imolwinvint_imolwinv_ptitle_cos_radius_adjust_lon_sin_asin_R_feast_lon_center#1/20 1322762068 501 20 100644 5724 ` isinusfor.o XL H __text__TEXT$__cstring__TEXTL __data__DATAD __bss__DATAH __literal8__TEXTh D__const__TEXT __jump_table__IMPORT0  __pointers__IMPORTD   P US[D$T$ . D$; $ [DfDUS$H[L$T$D$  D$ $ $[fDUuu][tR~X#ܫ tu ]vfDFTFX$] FT4$N ]1uÍu ]-fDUWVS[|u(EMEEEE EEf.= {f.E zxM f.ff.U szXf.U r\ʍF=~:.},$$\MUN MUEE@XEE@E@] U^EB*E^U r(B B,f(J8\U B0f.e U,EP@MA,$ UBTMQ,p1&DVGFEP,9},**Ǎ] m X^u \f(Y3$ m ]EYEX,FF] *F^N},LVGBFEP,9Kf.MEYM f(QT*JAX#ܫ ^^QDILE|[^_Z1 ?EE|[^_fDXXB0JfDfDF@$m ]EXYEX,FZ) q$Z) EL@US[tEM(EU0EEEEE E؋t$$MUuMUEf.Ef.zr?f.w5f.zr f.v?W~t[Ð_t[ff(WX,*\fTf.#6f.zf.f(X,*\fTf.T$$D$ ED$ED$ED$E$1҅41}_t[ÍAq {kDUfWɉM] UuE u][ɉ}t$yX#ܫ t)]u}f.zs]u}f.wf.zrf.wf(YAXAf(\YA ,;A,|A(1f(I\Q0Yf.v,)*Xf.v ,*\ЉAT*Y*@1\YQDX0DUS$E[ED$ ED$D$ED$$q1҅u$[Íinvalid keyinvalid handlememory allocationinvalid parameter error (isinusfor.c/%s : %s error (isinusfor.c/%s) : (%i) %s Isin_for_freeIsin_for_initbad return from Isin_for_freeisinusforinitbad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_for_initIsin_fwdbad return from Isin_fwdisinusfor  % |=-DT!-DT!@-DT! @?-DT! ?-DT!?-DT!-DT!@ףp= ?)\3A{Gz?{GzGz@-DT!-DT!@-DT!-DT!?m0_??: ! H L h+ h h h h hL h hD h h-( "t   D         z t hH ^      ~y s k _ U I 6 H T + +T + +\ +V\ + +x +T +) +# + + +t +g +K +  + + +|x +lp +^h +L w D w tjD O`T O+!D 7    jD wL H T \ @ .@8CV[dN_Isin_for_free_Isin_for_init_isinusforinit_Isin_fwd_isinusfor___stderrp_malloc_cos_fprintf_free_ISIN_BADKEY_ISIN_BADHANDLE_isin_ISIN_BADALLOC_ISIN_BADPARAM_error_Isin_error #1/20 1322762068 501 20 100644 5724 ` isinusinv.o XL H __text__TEXT$__cstring__TEXTP __data__DATAH $__bss__DATAH __literal8__TEXTh D__const__TEXT __jump_table__IMPORT0  __pointers__IMPORTD   P US[D$T$ . D$; $ [DfDUS$H[L$T$D$ D$ $ $[fDUuu][tR~X#ܫ tu ]vfDFTFX$] FT4$N ]1uÍu ]-fDUWVS[|u(EMEEEE EEf.= {f.E zxM f.ff.U szXf.U r\ʍF=~:.},$$\MUN MUEE@XEE@E@] U^EB*E^U r(B B,f(J8\U B0f.e U,EP@MA,$ UBTMQ,p1&DVGFEP,9},**Ǎ] m X^u \f(Y3$ m ]EYEX,FF] *F^N},LVGBFEP,9Kf.MEYM f(QT*JAX#ܫ ^^QDILE|[^_^5 ?EE|[^_fDXXB0JfDfDF@$m ]EXYEX,F^- q$^- EL@US[tEM(EU0EEEEE E؋t$$MUuMUEf.Ef.zr?f.w5f.zr f.v?[~t[Ð#_t[ff(WX,*\fTf.#6f.zf.f(X,*\fTf.T$$D$ ED$ED$ED$E$1҅45}_t[ÍAq kDUfW҉]M] [Euu }}tyX#ܫ t#]u}f(\IYIf.zrXf.wJ\YA ,;Q,}R1f(I\ YILAT*@XYHf.w f.v!]u}fDQ(f(YXA0f.r\1f.szXfUS$E[ED$ ED$D$ED$$q1҅u$[Íinvalid keyinvalid handlememory allocationinvalid parameter error (isinusinv.c/%s) : %s error (isinusinv.c/%s) : (%i) %s Isin_inv_freeIsin_inv_initbad return from Isin_inv_freeisinusinvinitbad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_initIsin_invbad return from Isin_invisinusinv  % |=-DT!-DT!@-DT! @?-DT! ?-DT!?-DT!-DT!@ףp= ?)\3A{Gz?{GzGz@-DT!-DT!??-DT!@-DT! @-DT! > % H | Zd ZK Z  Z Z ZH Z Z~P Zt Z-( "x   H         z t hH ^      ~y s$ k _ U I 6 H X + +X + +\ +V` + +x +T +) +# + + +t +g +K +  + + +|x +lp +^h +P { H { tjD O`X O+!D 7    jH wP H X ` @.@ 8CV[dN_Isin_inv_free_Isin_inv_init_isinusinvinit_Isin_inv_isinusinv___stderrp_malloc_cos_fprintf_free_ISIN_BADKEY_ISIN_BADHANDLE_isin_ISIN_BADALLOC_ISIN_BADPARAM_error_Isin_error #1/20 1322762069 501 20 100644 2172 ` lamazfor.o  __text__TEXTF9__cstring__TEXTHZX__literal8__TEXT__bss__DATA0__jump_table__IMPORT- P  US[4EEEEEEEED$ D$E E(E$R?$5E$:E$:E$D$$41[DfDUVS[ĀMEM\$EE$D$ ED$]EMD$ E $D$x]f(YUYYEXf.uGzEnXuD$D$4$ D$4$q[^ËEX^QYYY]XEYUYEYE\YX1LAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward?@:hveX;  H ~o b Q I : 2    hsvT2`)K!C:_lamazforint_lamazfor_sprintf_ptitle_offsetp_cenlat_tsincos_radius_p_error_adjust_lon_cenlon_cos_lat_o_R_sin_lat_o_lon_center_false_easting_false_northing #1/20 1322762069 501 20 100644 2748 ` lamazinv.o8 0T__text__TEXTITLO__cstring__TEXTI<__literal8__TEXT __const__TEXT__bss__DATA8__jump_table__IMPORT7 P  US[4EEEEEEEED$ D$EE E(E$E@$#E$-E$-E$D$$41[US[TEM\\EMYYXQEMX^f.v#]D$k$asT[ $3ED$ ED$]EX$EEfTf.wE1YEYMYM^MX$Ef(fT\fTf.wTf.u߀M $ED$g]EX$CE1$>M1]EY\f.zEYMYEL$EY$vRuED$M $]\EMLAMBERT AZIMUTHAL EQUAL-AREAlamaz-inverseInput data error?|=-DT!?8 0    ^ N D 4 , !      yqt gf _ J #(     ( I |( o  b Q I : 2    r} (R f0^'IAm8_lamazinvint_lamazinv_ptitle_asinz_offsetp_cenlat_tsincos_radius_p_error_adjust_lon_cenlon_atan2_sin_cos_lat_o_R_sin_lat_o_lon_center_lat_center_false_easting_false_northing #1/20 1322762069 501 20 100644 3956 ` lamccfor.o8 T__text__TEXTnT__cstring__TEXTp__const__TEXT D__literal8__TEXT(d__bss__DATAX__jump_table__IMPORT8K$ t P   U]EU[EME uE}E0](EE@mE8uEXEfTf.s*z(UD$a$)]u}Í}^uY|$ \M} $Qt$EJEEEMD$L$$ED$ED$$]M $|$ t$]ED$ED$$ED$ED$$]{ $]D$$U\$?E\EfTf.]0MMD$ $Mݝ``Y^f(YmhL$M $h$ݝxYxSuD$m$GME $D$F$*E$*D$$1@E^E$E^E$]E]^EUS[tEUEf(7fT\WfTf._wNf(Yf.gD>D$ $+t,[DfD$U\$UT$$YED$$E]YEEE\$]MY $ME]EYEXM $.EE]YEE\EXt1[fDfDfWEOlamcc-forEqual Latitiudes for St. Parallels on opposite sides of equatorLAMBERT CONFORMAL CONICPoint can not be projected|=?-DT!?|=D7|r[6.$p0 ( |aWIA2( }bME/j]?5 |pqi\TL yS5%,q^:gCJ_lamccforint_lamccfor_log_ptitle_msfnz_offsetp_cos_radius2_tsfnz_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_pow_sin_false_northing_r_major_r_minor_false_easting_center_lon_es_e_center_lat_ns_f0_rh#1/20 1322762069 501 20 100644 3876 ` lamccinv.o8 T`__text__TEXTgTy__cstring__TEXThd__const__TEXT $__literal8__TEXT D__bss__DATA`X__jump_table__IMPORTPd  P  | U]EU[EME uE}E0](EE8EE@MEXEfTf.s*z(MD$Y$)]u}Í}^euY|$ \MU $Qt$]EmEEEMD$L$]$ED$ED$]$]M $|$ t$]ED$ED$]$jED$ED$]$]Nm $]kmD$]$U\$E\EfTf.]0MuuMD$ $Mݝ``Yu^f(}YEuhL$M $h$ݝxYx+MD$E$ME $D$e$E$D$$1@E^E$E^E$]yE]^EuUfWVS[Pu]E\\UEXf. f(f(YYXQ2f.Uf.eE2^E؉D$D$Y^ $$\$Eu+E^EX$sE1P[^YMYT$$IM]?fDf(f(YYXQ:fW-DTF!eIlamcc-invEqual Latitiudes for St. Parallels on opposite sides of equatorLAMBERT CONFORMAL CONIC|=??D< xw``1|aWIA2( `h`}bME/xxxj]x?5x xpthqih\`TL `hpxtN%,lY5b>E_lamccinvint_lamccinv_log_ptitle_msfnz_offsetp_radius2_tsfnz_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_phi2z_pow_atan2_sin_false_easting_r_major_r_minor_false_northing_center_lon_es_e_center_lat_ns_f0_rh #1/12 1322762069 501 20 100644 2540 ` merfor.o8 TW__text__TEXTTH__cstring__TEXTG__literal8__TEXTD__const__TEXTd__bss__DATAXH__jump_table__IMPORT 7t P   US[DUMEOW_^E gUE0YE(f(\M E $wQoE $]}M$YMUMMYM\Q]E^+WD$O$_$g$ D$$D[1f.US[tEMEMEfT\fTf.w%z#4D$C$q5t[E$fML$$\$,MY\E $]EE]YEXE$YMEM]YM\14MERCATORmer-forwardTransformation cannot be computed at the poles?-DT!?|=yxnyaXyPy8&hyyXy xyyyyyyZP B :0p (h  X `   x  l _ Ip A 0h (` X    lXu`~hpx p[?*!SJ/g8_merforint_merfor_log_ptitle_offsetp_cos_radius2_tsfnz_cenlonmer_p_error_origin_adjust_lon_sin_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e_m1#1/12 1322762069 501 20 100644 2228 ` merinv.o8 T__text__TEXT/T>__cstring__TEXT/ __literal8__TEXT8__const__TEXT@__bss__DATAH__jump_table__IMPORTP2 P   US[DUME^E /UE0YE(f(\M E $QE $]&M$YMUMMYM\Q]E^VD$$J$=$0D$$D[1f.US[DEEMD$E\O\GEfWY?^ $/$\$EEu7MY?^MX $QE1D[MERCATOR?yyyyyy@yyyZP B :0 (     /   l _ I A8 0 (     clu pK8*!CW/^_merinvint_merinv_ptitle_exp_offsetp_cos_radius2_cenlonmer_origin_adjust_lon_phi2z_sin_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e_m1 #1/20 1322762069 501 20 100644 1564 ` millfor.o __text__TEXTY#__cstring__TEXTYi__literal8__TEXTp__bss__DATA __jump_table__IMPORT# | PUS[$EEEEEPE$EE *E$%E$%D$$$1[US[TUEU\$E]EYXMU^X$w$[EM]YMYXT1[MILLER CYLINDRICAL@-DT!??IA)!xp  }n_Z M @ 0 (Y  MP\k 9E#,4_millforint_millfor_log_ptitle_offsetp_radius_tan_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/20 1322762069 501 20 100644 1564 ` millinv.o __text__TEXTI%__cstring__TEXTIY__literal8__TEXT`p__bss__DATA __jump_table__IMPORTx# | PUS[$EEEEE@E$EE E$E$D$$$1[US[4EM\\^MX$EM^^ $c$jE]E\Y41[MILLER CYLINDRICAL?-DT!?@9p1h `  }n_Z M @ 0 (I NQ]l :4F#,_millinvint_millinv_ptitle_exp_offsetp_radius_atan_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/20 1322762069 501 20 100644 2292 ` molwfor.o8 Tx__text__TEXTT9__cstring__TEXT9__literal8__TEXT8D__const__TEXT0 __bss__DATAx __jump_table__IMPORTP(\ PUS[$EEEEEE $EwEoE$E$D$$$1[UV1S[MEM\$E]$}EE]MY4Mf2`FM $:tE]MXM\M$fWM<M]EX^EXfTDEf.peMDYLTMM\EfTf(fWfVf(Y\YM $EU6EE]YEXUEYd$UEU]YUXĐ1[^ÍD$$Đ[^MOLLWEIDEMollweide-forwardIteration failed to converge-DT! @?|=?-DT!?)d?;f?u]N 8 @ke;05 x  }n_Zx M @ 0 (   Veuxx =I'4,Q_molwforint_molwfor_ptitle_offsetp_cos_radius_p_error_adjust_lon_cenlon_sin_false_easting_false_northing_R_lon_center#1/20 1322762069 501 20 100644 2052 ` molwinv.o8 T__text__TEXT<T 3__cstring__TEXT< __literal8__TEXTH0__const__TEXT__bss__DATA __jump_table__IMPORT(l PUS[$EEEEE3E $EE-E$-E$(D$$$1[UVS[PuEM\]E\f(f(Y^f(fTfTf(fUfV$}EYE]]$@]E]YE^]X$]Ef.sz f.v -DTF! @EXE$f(]EXE^f(fTf(fTfUfV $EP[1^MOLLWEIDE;f??)d?-DT! -DT! @?*phh``yV?X2HP  }n_Z M @ 0 (<  Sbru 4M@',H_molwinvint_molwinv_ptitle_offsetp_cos_radius_adjust_lon_cenlon_sin_asin_false_easting_false_northing_R_lon_center#1/20 1322762069 501 20 100644 3172 ` obleqfor.o ,__text__TEXT<___cstring__TEXTF__literal8__TEXT__bss__DATA0P__jump_table__IMPORT<d  P  4 US[EOE$'E/E ?E(GE07E8gE@omO$y'$q/$K?$D$>GD$$"7D$$oD$g$_/$D$ WD$1[DUWVS[,EED$ EЉD$\EE$hE؉D$ EMD$ $KUe]f(YYYX $ED$ E|$ D$t$YYYeY$$\]T$t$|$ ݝX$d}YE$d}ݝXf((YEY$2}(UYMY(ݝf($X^UUE($ݝxYx((ݝp^p $M]UX^YU$8JE8ݝhYhXEMYE $EUE$ݝ`Y`UMU$ݝXYXMEEݝP^PEX ,1[^_OBLATED EQUAL-AREAParameter m: Parameter n: Theta: ?xke>pkPkXktGHkkkk@kyMhkhk`k0kOF` 78 /h )p x @  P  H  8 0 X zx mp `@ SP FH 98 ,0 X    oXr0~8HP@pxh``.i]4U)M Ed<_obleqforint_obleqfor_ptitle_offsetp_cos_acos_cenlat_tsincos_radius_genrpt_cenlon_atan2_sin_asin_R_lon_center_lat_o_m_n_theta_false_easting_false_northing_cos_lat_o_sin_lat_o #1/20 1322762069 501 20 100644 3220 ` obleqinv.o P__text__TEXTm j__cstring__TEXTmF}__literal8__TEXT__bss__DATAP__jump_table__IMPORT<  P  \ US[EdE$EE E(E0E87E@?=$D$A$w$D$ D$$D$$?D$7$/$D$ 'D$1[DUWVS[EMEM\XYEY^ $-MEXY]YEEYEE\^EEX^$E]YEEE$uE]^E$EݝxYxE$d]EXEE$D]EXEEX^$EݝpYpEE$MEݝh^hEEMYYXQY$EȉD$ EЋ|$ D$t$]EXEED$E$et$|$ ݝPP\$$EED$ E$D$YMYEYEX $EUf(YMYUY$YE\L$ݝPPX$Eļ[1^_OBLATED EQUAL-AREAParameter m: Parameter n: Theta: ?WMk70k8k8k0kkCkkhQ0& k @kkkk k kHk(kkOF0 7 /8 )@ H          ( zH m@ ` S  F 9 , ( m   u(x @H80`Ooc.[)G ?j6_obleqinvint_obleqinv_ptitle_offsetp_cos_cenlat_tsincos_radius_genrpt_adjust_lon_cenlon_atan2_sin_asin_R_lon_center_lat_o_m_n_theta_false_easting_false_northing_cos_lat_o_sin_lat_o #1/20 1322762069 501 20 100644 8836 ` omerfor.o8 T__text__TEXTT\y__cstring__TEXT __literal8__TEXT$__const__TEXTp@__bss__DATA__jump_table__IMPORTUh' \$pL$'$ `]$ \$`d$'$ WE]D$M $ eݝd$E$ ݝof(Y^^Xf(YMf(YX\^f(\X^Ex\hf.szh\hf.hMXxYYx8\hY$` ݝ0Y0^e$$J xݝ^EX8\ $ ݝYW$ ݝ^E$ ]U$ ݝYg$p $]D$Yx$o BD$pY$I _D$Yh$# ~D$Y`$ pg\`fTf. D$$ T[hXhEL$D$'$K WMQEYYOfW^MgY\f.vf.r<QXEE$\$ ݝYEoQM\M\fTf.HD$ D$U$wD$ D$e$$Tf.g_Y^W\Q^$1ݝHYHw/pfTf.\fTf.fT\fTf.D$ D$E$fD$ D$M $Cf.g_Y^W\Q^$1ݝ(Y(wg_Y^W\fWwQ^$1ݝ@Y@wg_Y^W\fWwQ^$1ݝ Y w2fUS[MEME $U\$]WE]EYE$EfT\fT'f.]Ef.OMY_^Mf(fT?\fT'f.D$$[fDMEL$D$'$vWUT$$?7HMo/MYM]^E^XYf(XY\^XY^EhYE$hXH]EfTf.Gs1z/MY_YMjfW@_YmEhYeX^e$$EEUhf.Oݝ@@Y^MYW^EX?x7Y_E\X^$yEx\wf(Yݝ@@YU^Wf(YX?XEYYX7\1cOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: omer-initInput data errorLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: omer-forPoint projects into infinity?|=?cܥL@-DT!?-DT! -DT!@-DT! @-DT!?|=??Hz>-DT! @@   H y m` R F 3h @ H ` X y h l  d  O h > P    8 x  @ }  u H o \ ` T J 0     0  H  h  X 0  ( n  h L ` D 7  *       ` h p  f T  H  @  8 ` , h $ p     ` h p  ( ~  t  n [  Q  5 (      ` h p  ( m c ]J @ , x ( p X `  u0 L '   p    h  uK oY L- F<p &`   yG  $   x   p@#` 0 0   t l( dp \R( J@  8.   `    p h^H P@ H> 2 ,"   x x p p  p h   ` ( a [IX P 8  P 0 8 (   X H {@ n f !"%&$ #@HX(80P`hpx ")0  u#oH3^*f8YAP_omerforint_omerfor_log_ptitle_asinz_offsetp_cos_radius2_tsfnz_cenlat_tsincos_tan_genrpt_p_error_atan_adjust_lon_cenlon_pow_sin_scale_factor_false_northing_false_easting_cos_p20_r_major_r_minor_lat_origin_es_e_sin_p20_bl_al_d_el_lon_origin_cosgam_singam_cosaz_sinaz_u#1/20 1322762069 501 20 100644 8412 ` omerinv.o8 T__text__TEXT T4a__cstring__TEXT __literal8__TEXT__const__TEXT@@__bss__DATA__jump_table__IMPORT_*H P<US[TE EEHxEXhEUMe(]0eePpe`E@E8'`^Y\QD$ $D$MYYM\U\MQUD$D$ @' $qݝXYX^EXQ/YYYE^E7f(fT7f.ǃ?ǃC?ǃGǃK?ǃOǃS? $\ D$$U D$$R D$$ Eh5U$@ ݝ^G$ ^EXEYE]e$$ EݝPYP$ Mݝ^/\D$EY$b $d $/ 7fTf.D$#$ T[p$ \$pL$$ `]$ \$`d$$o /E]D$M $| eݝd$E$L ݝOf(Y^^Xf(YMf(YX\^f(\X^Ex\hf.szh\hf.hMXxYYx8\hY$ ݝ0Y0^e$$ xݝ^EX8\ $ ݝY/$ ݝ^E$ ]U$ ݝYG$0 7]D$Yx$/ WD$pY$ wD$Yh$D$Y`$p7\`fTf.D$#$|T[hXhEL$D$$ /MQEYY'fW^MGY\f.ݓ?vf.r<QXEE$\$ݝYEOQM\M\fTf.FgD$ _D$U$1wD$ oD$e$$f.G7Y^/\Q^w$1ݝHYHW)pfTf.\fTf.fT\fTf.gD$ _D$E$ wD$ oD$M $f.G7Y^/\Q^w$1ݝ(Y(WG7Y^/\fWGQ^w$B1ݝ@Y@WG7Y^/\fWGQ^w$1ݝ Y W2fUVS[puEMUf^\\f(YYEf(YY\XEXFEEfWFY^& $]M^XEYEEEYE^&$MMEYN]UYVXf(^XY^Vf(fT\fTf.wDzBEf.%-DT1F!?p[^Ef(f(ʉD$X^ED$f(\^>Q^$\$$EuEYE^&$]\$EYVEEYNEE\E$b]M^\$(Ep[1^f-DT1F!p[^OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: omer-initInput data errorLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: ?|=?cܥL@-DT!?-DT! -DT!@-DT! @??|=  8   o V h D p 3 ) @  8     X } 8 u  f 0 N p . p  h (    @    @ ` 8 | ` N  F  > x 6   `   P  8 @ P ` v d  X P P  H 8 < @ 4 P  `    8 @ P    x  q h g p K  1   `   8 @ P   x y s`h Vp B !X  H P 0 8   \ 7/, %"  @      ` i \@ VLP 6$8  W 4 $  X   P38 +!  , "   x@ pf ^T LB 1 %8    P |r  d \R F @6 (  X X P P H H  @ @   8  a [I0 (   (      0  { n f $ %()'!"#& 0(8 @ HPX$p,h4;xB`  u#oH3^*f8YAP_omerinvint_omerinv_ptitle_exp_asinz_offsetp_cos_radius2_tsfnz_cenlat_tsincos_tan_genrpt_p_error_atan_adjust_lon_cenlon_phi2z_pow_atan2_sin_scale_factor_false_northing_false_easting_cos_p20_r_major_r_minor_lat_origin_es_e_sin_p20_bl_al_ts_d_el_lon_origin_cosgam_singam_cosaz_sinaz_u#1/20 1322762069 501 20 100644 2300 ` orthfor.o8 T__text__TEXTAT(?__cstring__TEXTA1__literal8__TEXTx__const__TEXT__bss__DATA8__jump_table__IMPORT2H, P  US[ME $D$ ED$E(E C8$&$-$$D$$1[US[dMEM\$E]؉D$ ED$E$M $m]f(YMY]YEXf.Mf( $YUE/EE]YEXEYMYEUYE\YXd1[f(fTf.v#eD$n$d[6ORTHOGRAPHICorth-forPoint can not be projected|=*"WNykxWF9*     ~ vnA hc V I 8 . &     js Y5'QH@e,_orthforint_orthfor_ptitle_offsetp_cos_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_sin_cos_p14_lat_origin_r_major_sin_p14_lon_center_false_northing_false_easting#1/20 1322762069 501 20 100644 2796 ` orthinv.o8 T__text__TEXT?T,Y__cstring__TEXT?'__literal8__TEXTh __const__TEXT__bss__DATA8__jump_table__IMPORT7  P  US[ME $D$ ED$E(E C6$&$-$$D$$1[US[TEM\\EMYYXQEf(UXf.v#cD$l$aT[E^$*ED$ ED$$EEfTf.wzE1EMYYMY^MX$Ef(fT\fTf.rTf.u߀M $ED$j]EX$KE1$AM]EY\f(fTf.sEfT1f.EYMYEL$EY$WuED$M $]\E4ORTHOGRAPHICorth-invInput data errorHz>|=-DT!?.&ppyo_;'xppwYQUGL;h!    ~ vn? hc V I 8 . &     s| [g7%SJBn._orthinvint_orthinv_ptitle_asinz_offsetp_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_atan2_sin_cos_p14_lat_origin_r_major_sin_p14_lon_center_false_northing_false_easting#1/20 1322762070 501 20 100644 3188 ` polyfor.o8 T+__text__TEXTTj__cstring__TEXT __literal8__TEXT__const__TEXT$__bss__DATA0h__jump_table__IMPORTK4 t P  US[4UME'/7^E Y?E0E(\Qog$]o$ݛG|o$ݛOPo$ݛW ?D$ WD$OD$G$ݓ_\$ $ݛw/D$'$7$?$D$$\4[1DU]EM[Muu}}\$8EfTf.]wWzUuEYEXY\]1u}E؉D$ ED$M $ED$ D$D$D$$rE]D$ED$$)uMEYMM]EYE $EE]YE^EXME\M$M1]\EYEE^EXEYEX]u}POLYCONIC?Hz>?ZRC-0pPX`|hi)!0@ w oeH ]S@ KA0 38 +&  h P X ` H ` x X x P x p wx g _ R EH 0@ (8 0 08@HxpPX`h jJ3${\U*b8vA_polyforint_polyfor_e3fn_ptitle_e0fn_offsetp_cos_radius2_tsincos_cenlonmer_msfnz_e2fn_origin_adjust_lon_sin_e1fn_mlfn_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e_e0_e1_e2_e3_ml0#1/20 1322762070 501 20 100644 2924 ` polyinv.o8 T__text__TEXT!T`__cstring__TEXT! u__literal8__TEXT0__const__TEXT@__bss__DATA`__jump_table__IMPORTPF$ t P US[4UME^E YE0E('\$$ݛ$ݛ$ݛD$ D$D$$ݓ\$$ݛ7D$$+$$D$$4[1ÐUVS[u]U\N\V^XFf(fTf.ET$(f(ÉD$8^f(ȉt$$]J]],Et Đ[^Y]^$]M$MM]^MX $E1Đ[^E1^XFcPOLYCONIC?Hz>j[M?1#8@y k cY QG ?5 '  !            }s g0 _ R E 0 (   c1J+tUz8[#Ao_polyinvint_polyinv_e3fn_phi4z_ptitle_e0fn_asinz_offsetp_radius2_cenlonmer_e2fn_origin_adjust_lon_sin_e1fn_mlfn_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e0_e1_e2_e3_ml0#1/12 1322762070 501 20 100644 3028 ` psfor.o8 T7__text__TEXTTa__cstring__TEXT__literal8__TEXT( __const__TEXT 4__bss__DATA8h__jump_table__IMPORT7T  P  US[tMEU] U]U(UU0U/7^UYf(U\Q?G$]EWUf(_ƒǃofTfUǃsfVgf(fTݛO\fTf.EYg]D$ E$D$ǃoǃs?ED$ED$G$yEUD$T$G$ݛw_ݛ$27D$/$&W$(EMD$ $t[1US[MEM\'$7]]YYE]E$ED$$\$jfWf.?]zYGYU^O7]f($YMEUEE]YEX_UEM$fWYUEU]YUXWĄ1[fXYU^EPOLAR STEREOGRAPHIC?-DT!?|=X989k9SE9%9 p99989x9P9ep9]S`9` 8 @    P ~P `Wx Mx 2p !  X p  x x  h `  P H p h S K@ C8 g8p@yHP`hxpX 0HT*a!/\8?_psforint_psfor_ptitle_msfnz_offsetp_cos_radius2_tsfnz_tsincos_adjust_lon_cenlon_sin_e4fn_r_major_r_minor_false_northing_false_easting_es_e_center_lon_center_lat_ind_fac_e4_mcs_tcs#1/12 1322762070 501 20 100644 3052 ` psinv.o8 TW__text__TEXTTa__cstring__TEXT__literal8__TEXT0$__const__TEXT T__bss__DATAX`__jump_table__IMPORT 7t  P  US[tMEU] U]U(UU0UUOW^UYf(U\Q_$]EoUf(wƒǃfTǃfUfVݛgf(fT\fTf.EY]D$ E$D$ǃǃ?ED$ED$_$EUD$T$_$ݛ}ݛ$UWD$O$Do$FEMD$ $t[1ÐUS[]UE_\\YYf(f(YYXQEfWf.gzM/YwYo^ȍEL$D$?$U]lE]E_YEU]u"Ef.uYzWEYO1Ą[fDM/YGX^QfW$T$MM]YMXO $EĄ[1POLAR STEREOGRAPHIC?-DT!?|=x)t)Qp)IX) x)))h)))X))U)M)E)x X `    h {h ]T J /   p       x  h u m X P` HX kXt`}hxp  C^Oe!W*3:_psinvint_psinv_ptitle_msfnz_offsetp_radius2_tsfnz_tsincos_adjust_lon_cenlon_phi2z_atan2_e4fn_r_major_r_minor_false_easting_false_northing_e_center_lon_center_lat_ind_fac_e4_mcs_tcs #1/12 1322762070 501 20 100644 4220 ` robfor.o8 T__text__TEXTTp__cstring__TEXT __literal8__TEXTP__const__TEXT 4__bss__DATA __jump_table__IMPORTT\ x PHUS[$EEEEEEǃ?X9ǃCvEǃG'E ǃK/ǃOX9ǃSv?ǃWX9ǃ[v?ǃ_ǃQ?ǃ_+ǃc?ǃGzǃ#?ǃgX9ǃkv?ǃ'2ıǃ+.n?ǃoףp=ǃs ?ǃ/A`ǃ3"?ǃw+ǃ{?ǃ7ǃ;Q?ǃ-ǃ?ǃ? 0ǃC*?ǃVǃ/?ǃGHǃK}?ǃO@aǃ?ǃO=UǃS?ǃN@ǃa?ǃWKY8ǃ[?ǃa2U0ǃ*?ǃ_ǃcQ?ǃǃׁ?ǃg2*" 0 8  a W M C 9@ /@ %  @ @   @ @   @ @   @ @  { u m@ a@ W@ M C 9@ /@ %  @ @   @ @   @ @   @ @  { q@ g@ ] S I@ ?@ 5 + !@ @   @ @   @ @  @   @ 8 @ x0 l@ ]@ W  K@ @ 8( 0 (  AF(I@M Y0h8 -9%_robforint_robfor_ptitle_offsetp_radius_adjust_lon_cenlon_xlr_R_pr_lon_center_false_easting_false_northing#1/12 1322762070 501 20 100644 5124 ` robinv.o8 ( T__text__TEXTT __cstring__TEXT7 __literal8__TEXTp< __const__TEXT` __bss__DATA__jump_table__IMPORT t PUS[$EEEEEw  EǃX9ǃvEǃE ǃǃX9 ǃv? ǃX9ǃv?ǃ _ǃ Q?ǃ+ǃ?ǃ Gzǃ ?ǃX9ǃv?ǃ 2ıǃ .n?ǃףp=ǃ ?ǃ A`ǃ "?ǃ+ǃ?ǃ ǃ Q?ǃ-ǃ ?ǃ 0ǃ *?ǃ Vǃ /?ǃ Hǃ }?ǃ O@aǃ ?ǃ =Uǃ ?ǃ N@ǃ a?ǃ KY8ǃ ?ǃ a2U0ǃ# *?ǃ ǃ Q?ǃ' ǃ+ ׁ?W ǃ RFߑ?0x6 08  P 8i_`UIH=` @ 8h`V (pQ3$ `   a W M C 9 / %                 { u m a W M C 9 / %                 { q g ] S I ? 5 + !             x l ] W K @ 8 0 (  J ORVbq 6B-%_robinvint_robinv_ptitle_offsetp_radius_p_error_adjust_lon_cenlon_xlr_R_pr_lon_center_false_easting_false_northing#1/12 1322762070 501 20 100644 1356 ` sinfor.o Hq__text__TEXTH@__cstring__TEXTH __bss__DATAx __jump_table__IMPORTS8 t P US[$EEEEE?wE$oEE E$E$D$$$1[US[TMEM\$UM$]EYEREE]YEXEMYMXT1[SINUSOIDAL8x  }n_Z M @x 0 (H  FIxUd 2>%*_sinforint_sinfor_ptitle_offsetp_cos_radius_adjust_lon_cenlon_R_lon_center_false_easting_false_northing #1/12 1322762070 501 20 100644 1780 ` sininv.o8 8T__text__TEXTTh)__cstring__TEXT/__const__TEXT$__literal8__TEXT4__bss__DATA __jump_table__IMPORT#D h PUS[$EEEEEE$EE 'E$E$'D$$T$1[US[DEUMg\w\o^f('fTf.v#D$$D[\fTf./wE_1 $UmmU]Ym^X_$}E1SINUSOIDALsinusoidal-inverseInput data error-DT!?|=~`D7 (0 ( 0 }n_Z0 M( @ 0  (  O R^(m0 ;G%2*_sininvint_sininv_ptitle_offsetp_cos_radius_p_error_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/12 1322762070 501 20 100644 8452 ` somfor.o| h__text__TEXTh__literal8__TEXT08__cstring__TEXTh__const__TEXTp __bss__DATA__jump_table__IMPORT<(__pointers__IMPORTd d# P 0 UWVS[uỦMY $MMf( $Y#XmݝPPYf(f(Y YXXExhMxhEXYY+X]YMMf(Y^f(QYYE^E;^\EQEYYM]YXQMf(YM\^MMX$EM]YMY$EݝPPYM$XMYM^MMEMݝPPYYM$^E M]YMļ[^_UWVS[uLUMEPe m(]@aum^YE0E8U\*EH^]f(eYeeEe$puD$m$<tE$D$} 1eD$Ye$ D$$D$a$M $ݝ@@f(fTfTfUfVM $X}EUpEЋplE؋l|EXxf(\݉D$Etݝ@D$|@Ef(EYYщ<$f(YYf(\f(f(^YY\f(^Y\Y^EMEMEMEMEEDfDx*ƃpEHl<$D$tD$|.cHEYXEEEYXEEEYXEEEYXEEEYXEENff.x*ƃpEl<$D$tD$|vZEXXEEEXXEEEXXEEEXXEEEXXEE^xpl<$D$tEEV@D$|EMXEXMEMEMXEXMEMEXEEM^}M^M^Eu^M^[1^_Ã}yǃwO*Eǃ[?YmMOXuY}@)?eEǃǃ*EYǃ~CXMY}ǃS?eOE@)?녍|D$E$ D$E$ ]UWVS[|EM\ (Mf.EfWf.E z]EuMfWmUfTfU fVM5 U\% $ 1- }Y0XpݝYYEYX($9uxfWݝH…HfTfUfVxfWf.HU$1xUݝ@Y@YEXP@!f.FMP3_PYX( $Nu ݝ88fTf.v\ $.ݝYX^8$u W@P]XEEfT\PWf.PGUf.0U]E…0fTfUMfVf.pEeUR UE50 iEteraEtionEs wiEthouEt coEnv D$$|[^_f.UUMAeMPpf.E$EYݝhhY$1uhYݝYY\hY\Q^ $ݝYX$$}Eݝ`$MYݝXX $Y1uf(f(ݝY Y Y YXXXY^QY = f(Yf(YXEQXMY $ݝY XEY$JEY`^ݝY X\  YXEY YX$E`Y`^ݝY XXXY EXM EXU |1[^_MxFߑ??@@?@cܥL@&p= `@5RFߑ?=?;SX@l)`@j\a0l?̌X@& .>@@>@N@.@F@z!?z!^8U)zj@-DT!?!3|@?-DT! @-DT!@-DT!Hz>?-DT!?@@SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: som-forward f` SX 0     oe H 2 H      p j)   p  j 1  p ` `  ] x p > h     s  S  M   h  b     8   0 @ ( w x f  [ h K P 0 X  kkkk(kkk(kkwkaPkWPkLkDk5k-kk(kk(kkPkkHkkk@kk}8k*|0kGBk.(k& kk k0kOkG@k<*8k pk kkJkXk`kkk(ky^kPFk8k0(kkk(kPkk@kk`kXkkkk=*  8  ,H 8     \0 F( > 8! "!x(08H X`@P  `rZ7Ie).Q< `D_somforint_somfor_gsat_ratio_radius2_log_offsetp_cos_ptitle_tan_genrpt_p_error_atan_sin_genrpt_long_asin_som_series_p21_sa_w_q_t_ca_s_xj_b_a_false_easting_false_northing_es_start_lon_center_a2_a4_c1_c3#1/12 1322762070 501 20 100644 8244 ` sominv.o8  T__text__TEXTGT__literal8__TEXTH__cstring__TEXT`__const__TEXT  t__bss__DATA__jump_table__IMPORT@A#8 P ` UWVS[uỦM;Y $M6CMf( $YXmݝPPYf(f(YYXXExhCMxhEXYYX]YMMf(Y^f(QYYE^E^\EQEYYM]YXQMf(YM\^MMX$EMK]YMY$EݝPPYM$XMYM^MMGEMݝPPYSYM$E MfW]YMļ[^_fDfDUWVS[EHUMEL}xe E0um(]@E8^Y \^ f( Y mMe$D$$D$4$  D$<$}#ED$$= D$Y $D$$f_x $D$^E$@Mݝ00f(fTfTfUfVM} $HEHhEЋhdE؋dtEf(剅pYYD$Elݝ0D$t0Euf(EYYʉ<$ f(f(\\^^UY\f(]Yf(^YEeU\Y^MEMEMEMEME]Efp*ƃh8Ed<$D$lD$tc8EYXEEEYXEEEYXEEEYXEEEYXEENff.p*ƃhEd<$D$lD$tVZEXXEEEXXEEEXXEEEXXEEEXXEE^phd<$D$lEEV@D$tEMXEXMEMEMXEXMEMEXEEeM^%M^m-M^E^uM5^}=[1^_Ã~W*EY-ǃm~CX5MYǃqS? =E*%YǃmwOX MYǃq[? EkUV2S[pMEM  \9 f(f(Y^^  eE E\1 (^0 E Y8    HPX ` hfN@UUM $RUݝ$Y!(0YYXY8XX)Y ^EQݝ@Y@Y@) YM^HXEEY$1ݝYPXEEEY$LMݝYXXEE@^H $9EYݝY`$Q ݝYhXEY\^E\EfTAf.]$\!@]Y^H@^HXQEYI]UY`\]$EݝYhXY $$U]YUݝ$\QXJQ ݝfTf.Y $5!! p\x]MYMM $  eU]$$! E^xYU\8YMYEYMX\EY]8E8YX\Y]QY^U\\^ $ !ݝf.afWf.UQ YyYYXE]Y\]fTEf.ef.YsxMX  $`EEEp1[^E\YE D$ $p[^E$MUݝYM$e]YxݝY\e^$$] xU]YpYXQ^$]]q_Ji=Fߑ??@@?@cܥL@&p= `@5RFߑ?=?;SX@l)`@j\a0l?̌X@& .>@@>@N@.@F@?@& .>-DT!?Hz>@-DT!SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: som-inverse50 iterations without convergence>H+Py[SI98 88X0z@`Z     G ? 9 ) 8 0  0   b (    0 o i "     K E        x \ G 5 -   {{{{{{{{s{]{U{I{C{6{*{${{{{{{{{{{{J{pk{W{O{G{/{{h{{h{]K{- {{ {{{{x{{{t{n]w{WM{?{7/`{{x{{p{{{h{{{{=*` X 8 ,   P   \ F >P 8!H  "!x pTrN*=e!E/`8_sominvint_sominv_ptitle_exp_offsetp_cos_radius2_tan_genrpt_p_error_atan_adjust_lon_sin_genrpt_long_asin_som_series_p21_sa_w_q_t_ca_s_xj_false_easting_b_false_northing_a_es_lon_center_u_a2_a4_c1_c3 #1/20 1322762070 501 20 100644 2316 ` sterfor.o8 T__text__TEXT=T(A__cstring__TEXT=4__literal8__TEXTx__const__TEXT__bss__DATA8__jump_table__IMPORT2X< P 0 US[ME $D$ ED$E(E C4$&$-$$D$$1[US[dMEM\$EE$D$ ED$]M $m]f(YMY]YEXXf(fTf.w%z#bD$k$gd[f(^MY $YUEEE]YEXEYMYEUYE\YX1gSTEREOGRAPHICster-forPoint projects into infinity?|=@. TKwkxWF9*     ~ vn= hc V I 8 . &     js Y5'QH@e,_sterforint_sterfor_ptitle_offsetp_cos_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_sin_cos_p10_lat_origin_r_major_sin_p10_lon_center_false_northing_false_easting#1/20 1322762070 501 20 100644 2684 ` sterinv.o8 T__text__TEXTPTN__cstring__TEXTP__const__TEXT`__literal8__TEXTp__bss__DATA8__jump_table__IMPORT7 P  US[ME $D$ ED$E(E &G$$$$D$$1[UWVS[|}EEMu\\EMYYXQED$ ED$UX^$U]EX$!uEEfTf.w%z#|1[^_fDEMEYMYY^MX$uf(fT\fTf.rQf.uπED$M $TU]XU$81|[^_$3uM]EY\f(fTf.vEfTf.YML$EYEEY$M]XM $ED$u׀M $yU]\U$]YSTEREOGRAPHIC|=-DT!?E. p`~jS/x p`p{s`mW@    ~ vnP hc V I 8 . &     ox Ki^W0C;d'_sterinvint_sterinv_ptitle_offsetp_tsincos_cenlonmer_radius_origin_adjust_lon_atan2_atan_sin_asin_cos_p10_lat_origin_r_major_sin_p10_lon_center_false_northing_false_easting #1/20 1322762070 501 20 100644 5508 ` stplnfor.o8  T __text__TEXT{Te__data__DATA8 __bss__DATA __cstring__TEXT __literal8__TEXTH __jump_table__IMPORTX Zx P0U][uu}} 9  Lt$ |$ D$4$ D$4$. ]u}f.uy1 f@=t;2u񉅤t D$E$ uz D$ $ n.1o@=;2uw]1u}Í D$E$ |D$iD$$4 D$ D$D$ Eĉ$ D$D$D$ $ D$ D$D$ x$~ $ * $Y  D$4$t ȃS' $T$W x7 \EQY`wvEE$ ut$$ ? EݝYcE$ t$$v ? EݝYE$K t$$0 ? ݝYED$`fWD$XD$PD$HD$@ED$8EL$(D$0D$ D$D$D$$o 1NEE$l ut$$N ? EݝYE$# t$$ ? ݝYEED$0EL$ D$(D$D$D$$L1XfDE$yut$$[? EݝYE$0t$$? ݝYEED$(EL$D$ D$D$$l1sE$ut$${? EݝY"E$Pt$$5? EݝYE$ t$$? EݝYE$t$$? ݝYEXED$8EL$(D$0D$ D$D$D$$1US[$ME/tNtyt 1$[ED$ED$ $D$tӃ$[ED$ED$ $D$rufDfDED$ED$ $D$QqjDED$ED$ $D$A:ef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(Pef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRIllegal zone #%4ld for spheroid #%4ldstate-initrstate-forError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD?5RFߑ?j:  uP P fP `T P  P t@P :+P MP G8kP eY%P P aH I C78 &-  !   uF7      bV P: .         .>VvjM"E5c_stplnforint_stplnfor_tmforint_polyforint_fopen_sprintf_fread_ptitle_polyfor_lamccforint_tmfor_omerforint_omerfor_lamccfor_p_error_paksz_genrpt_long_fclose_pakcz_fseek_NAD83_NAD27_inzone_id#1/20 1322762071 501 20 100644 5580 ` stplninv.o8  T __text__TEXTT,f__data__DATA8 __bss__DATA __cstring__TEXT ,__literal8__TEXTh __jump_table__IMPORTx _ P\U][uu}} 9  Lt$ |$ D$4$) D$4$I ]u}f.uy1 f@=t;2u񉅤t D$E$ uz D$ $ n.1@=;2uw]1u}Í D$E$. |D$iD$$T $ D$ D$D$ EÉ$ D$D$D$ $ D$ D$D$ x$ $ 0 $f < D$4$ ȃSG $T$i xW \EQYbyhEE$ ut$$ _ EݝYUE$ t$$ _ EݝYE$] t$$B _ ݝYED$`fWD$XD$PD$HD$@ED$8EL$(D$0D$ D$D$D$$ 1@DEE$| ut$$^ _ EݝYE$3 t$$ _ ݝYEED$0EL$ D$(D$D$D$$1HfDE$ut$$k_ EݝYE$@t$$%_ ݝYEED$(EL$D$ D$D$$1cE$ut$$_ EݝYE$`t$$E_ EݝYE$t$$_ EݝYE$t$$_ ݝYEHED$8EL$(D$0D$ D$D$D$$1US[$MECtNtyt 1$[ED$ED$ $D$tӃ$[ED$ED$ $D$xufDfDED$ED$ $D$CqjDED$ED$ $D$TA:ef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(Pef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRIllegal zone #%4ld for spheroid #%4ldstate-initrstate-invError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD?5RFߑ?zJ p p vp pd0p *p Pp J;p ]p WH yp sg3p -!p oh W QEX 4(M "A    uF7      bV P: .         (^Cer~/;MT_stplninvint_stplninv_fopen_sprintf_fread_polyinvint_ptitle_lamccinv_tminv_tminvint_ftell_lamccinvint_omerinvint_p_error_omerinv_paksz_genrpt_long_fclose_pakcz_fseek_polyinv_nad83_nad27_inzone_id #1/12 1322762071 501 20 100644 4948 ` tmfor.o8 T/__text__TEXTT __cstring__TEXTa __literal8__TEXT t __const__TEXT  __bss__DATA0x__jump_table__IMPORT_$ $0 P4US[DUME'/7^E Y?E(GE8E0\o$Oo$ݛO}o$ݛWBo$ݛ_GD$ _D$WD$O$ݓg\$ ]EY'o\f(^wƒfWɉ$fTfUfVK/D$'$DD$7$A?$ G$'D$$D1[fUS[MEM\$E]D$ ED$]$fWf.wztM $ݝ@@Y]f(fT\fTf.D$$$][DuMEYYEYWYE $HEYYO\Q]]Y]^E]D$ GD$?D$7D$/$_W]EEYGHYE}E7EY]Y/XMXYMf(Y?XMYm\]eX^X^'YXYX(EYmf(XoGEM\_YMEME\UY]Mf(]YWXoXXf(]YYY_^OXYwEX^gX]YXEYXYMYMXY]Xg1[ÍEMf(f(YXY\^$XhEh]YUE$XY\Qݝ@@YM^ $~fWf.Mݝ@@w$E]\'Y]Y1fWTRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: tm-forPoint projects into infinity?h㈵>?|=?@4@2@R@M8@"@@>@N@@t)P)l30)-@)@)0)0))w@)U)D)8x)0)() )))p))P)H)f0)Sh)B0)-X)`)p))@)0)X)`)h)p)w0)Vx)A0); )))8))0)y)mMCH)   P H @  0 8  j( b X Dx < 40   p X ` h P h x ` x X x x r e XP KH 6@ .8 &0    #"!08@HPxX`hp   9Q4%\g+xo?bH_tmforint_tmfor_e3fn_log_ptitle_e0fn_offsetp_cos_acos_radius2_tsincos_cenlonmer_e2fn_tan_genrpt_p_error_origin_adjust_lon_sin_e1fn_mlfn_r_major_r_minor_scale_factor_lon_center_lat_origin_false_northing_false_easting_es_e0_e1_e2_e3_ml0_esp_ind#1/12 1322762071 501 20 100644 5732 ` tminv.o8  T __text__TEXTKTp __cstring__TEXTLd __literal8__TEXT __const__TEXT __bss__DATA t__jump_table__IMPORT i d&,( PUS[DUME  ' ^E Y/ E(7 E8w E0 \_ $* _ $ݛ? g _ $ݛG ' _ $ݛO 7 D$ O D$G D$? $ݓW \$_ f(]EY o \^f.F g C$- D$ $&_' $D$-/ $7 $w D$ $D1[UVS[EMhv1\nhM\f6Ep^>X^F^xEu.MEM FEX$&EuYݝ``YpX`$ݝ  YxX``EY$Mݝ  YEX`^E\EXfTMf.oD$z$!_[^Y^ $HHh^X&M]^]X] $Y8o8f(ݝ  f(Y\f(YX^Q $(EfWM8(f.Jf.u%z#f.uzE1[^d$$ݝ  X$E[1^ÍEfTf.ED$ ED$E$TM $Y]EYYݝ  VNYUYf(\YQf(Y^uf(YYuu^f(YM\YY^UYXEYuf(YY&Yf(^^f(YXEXYf(X^EYXXMY.XMY6XXEYEXYXY\EXXXYNXUf(YV^>^FXUX]Y^Uf(XUUUYfUUXUYXYXYM^MMX $E1E$*EYݝ  fWv ݅ TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: TM-INVERSELatitude failed to converge?h㈵>??@|=-DT!?8@@$@">V@N@r@F@o4<@ @8@2 8  x s` kX cp RHh < )P H 8 0 (    y@ dU 8 )0  h p WF /%8 8 fVI*@ 0  e _& H  ` x X y0 dP \ G 5   @ 8 0 h  ( |L v pp h ] Dx < (h  ` H P X @ X h P h H h h r e X@ K8 60 .( &   !"%$# ( 0 8 @   h H P X ` x  p &S6 c^n-v;DiJ_tminvint_tminv_e3fn_ptitle_e0fn_asinz_offsetp_cos_radius2_sign_tsincos_cenlonmer_exp_e2fn_tan_genrpt_p_error_origin_adjust_lon_atan2_sin_e1fn_mlfn_r_major_r_minor_scale_factor_lon_center_lat_origin_false_northing_false_easting_es_e0_e1_e2_e3_ml0_ind_esp #1/12 1322762071 501 20 100644 5140 ` utmfor.o8 8 T__text__TEXTT __cstring__TEXT\ __literal8__TEXT __const__TEXT@ __bss__DATAx__jump_table__IMPORT`Z H# PUHuu ]]UE[u%D$$\ ]uÉ1)ƒ<ˍRIfW*Y}ǃ ǃ A^Y\$$ݛ$ݛr$ݛ-D$ D$D$$ݓ\$<]EY\f(^ ƒ$fTfUfV |)D$4$D$$^5$D$[$:1YUS[MEM\_$E]D$ ED$]$fWf.ztM $Gݝ@@Y]f(fT\fTf.OD$ $_][DuMEYYEYYE $HGEYY\Q]]Y]G^E]D$ D$D$wD$o$GW]EEYHYE}EwEY]YoXMXYGMf(YXMYGm\]eX^_X^gYXYX(EYmf(XEM\YMEME\UY]Mf(]YXXXf(]YYY^XYEX^X]YXEYXWYMYMXY]X1[ÍGGWEMf(f(YWXY\^$Xh Eh]YUE$GXY\Qݝ@@YM^ $fWf.Mݝ@@w$E]\gY]Y1fWutm-forintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: utm-forPoint projects into infinity5RFߑ?cA?h㈵>?|=?@4@2@R@M8@"@@>@N@@tPyyy}W)yyyy yy y0yyyx8y[(ySy y y( yyyyyy}yiyJy- y%yy yyy yy yyp y91y'zyy@yy0 yyY#J@#8*#"X###L#0 ##0 #(# # # ##{#ul #a#S#E#7#/*# ## ## # # ##( #( #####y#f#<4#*#"! (      0 p2qJ-'U`h8}[A_utmforint_utmfor_e3fn_log_ptitle_e0fn_cos_acos_radius2_tsincos_cenlonmer_e2fn_tan_genrpt_p_error_adjust_lon_sin_genrpt_long_e1fn_mlfn_scale_factor_r_major_r_minor_lat_origin_lon_center_false_easting_false_northing_es_e0_e1_e2_e3_ml0_esp_ind #1/12 1322762071 501 20 100644 5860 ` utminv.o8  T __text__TEXTT __cstring__TEXT __literal8__TEXT( | __const__TEXT d __bss__DATA t__jump_table__IMPORT0 d %$ PUHuu ]]UE[u%iD$t$1 ]uÉ1)ƒ<ˍR IfWu *} Y   ǃ ǃ A ^ Y\ $O  $ݛ  $ݛ G  $ݛ  D$  D$ D$ $ݓ \$   f(]EYu  1\^ f. $YD$4$} D$u $; $D$B $1 kUVS[EMh1\hM\nEp^NvX~^>xEufMEM FEX$\EuYݝ``YpX`$ݝ  YxX``EY$Mݝ  YEX`^E\EXfTMf.D$$\_[^>YN^ $HHh^X^M]^]X] $Y88f(ݝ  f(Y\f(YX^Q $(QEfWM8(f.Jf.u%z#f.uzEV1[^d$$(ݝ  XV$E[1^ÍEfTf.ED$ ED$E$M $]EYYݝ  YUYf(\YQf(>Y^uf(YYNuu^f(Y&M>\YY^UY6XEYuf(YYnYf(^^.f(YFXEXYNf(X^VEY^XfXMYvXMY~XXEYEXYXY\EXX>XYXUf(Y^^XUX]YUf(XUUUYUUXUYXYXYM^MMXV $IE1E$*EYݝ  fW ݅ utm-invintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: UTM-INVERSELatitude failed to converge5RFߑ?cA?h㈵>??@|=-DT!?8@@$@">V@N@r@F@o4<@ @8@r ZSx ZD) Z Z Z Z Z ZX Z Z| ZiX ZWP Z5 Z$ Z Z  Z Z Z Z Z Z` Z Zx Zi ZO Z2 Z Z ZX Zx Z Zoe ZO/ ZX ZP Zj Z^H ZF0 Z( Z  ZZp Z Zfh Z`&` Z  Z Z Z Z Z Z Z Z Zu ZG0 #8. #& ##  # ### # #@ # # # #{8 #ul #a #S #E #7 #/* # # # # # # # #8 # # # # #( # #y #f #<4#*# !$#"               Px(L/"\Wgo4=bC_utminvint_utminv_e3fn_ptitle_e0fn_asinz_cos_radius2_sign_tsincos_cenlonmer_exp_e2fn_tan_genrpt_p_error_adjust_lon_atan2_sin_genrpt_long_e1fn_mlfn_scale_factor_r_major_r_minor_lat_origin_lon_center_false_easting_false_northing_es_e0_e1_e2_e3_ml0_esp_ind#1/20 1322762071 501 20 100644 3116 ` vandgfor.o8 XT8__text__TEXTTg__cstring__TEXT__const__TEXT __literal8__TEXTP__bss__DATA8 __jump_table__IMPORT(d  P US[$EEEEE7E$/E?E GE$E$GD$?$y$1[UVS[uEMM\~$IEfTEf.ݝppw?z=YX.EĠ1[^E^fTX$mmf(fTf.ݝppruEf. Y&Y $E6EE]YEXĠ1[^DE\fTf.pf( $86^^XfT8EY&D$ Ef(D$YmexE-DT>]E! @Uf(eXF\^^f(\EYYEYEXf(x\f(YYYY\mYf.\QXYu^f(f(X^UEfTf.>f(YNEYY\XQYEX`Y.Y $E*EE]YEX7fW*6f(YN>YEEEYY\XQYEEXVAN DER GRINTEN|=-DT! @-DT!??-DT! ?@PKA5*P@PoH_>@q^P=)P@H~xaR.PH@8H P }n_ZP MH @8 0@ (  Z@]8iHxPF R'9A0_vandgforint_vandgfor_ptitle_asinz_offsetp_tsincos_radius_tan_adjust_lon_cenlon_R_lon_center_false_easting_false_northing #1/20 1322762071 501 20 100644 2900 ` vandginv.o8 8T__text__TEXT]ThT__cstring__TEXT]__literal8__TEXTp`__const__TEXT $__bss__DATA __jump_table__IMPORT#D$ P US[$EEEEETE$EE 'E$E$'D$$T$1[UWVS[}EEMue\uYMMU\m^^MYMf(f(fT%fWf(YXf(XYf(YX ]f(f(YYYf(XXXmYXf(XY^^X^f(^Q]f(]X^YYYY^^^^^X^XYX^^f(fTf.vfWf.$emxhMfWef.mxhݝ``^ %X$fW0xmx^(e^]YuXY06hEfTf.sz]Ĭ[1^_ÐE\E\8EXXMXMQXY8Y ^}X]<$I1Ĭ[^_Ð%X$fW0emxhxme^(^]YuXY6hDVAN DER GRINTEN-DT! @?";@@es-8R?-DT! |=?T6zpbxJ>-p|@x&n\<x2 (0 p( 0 }n_Z0 M( @ 0  (]  P S_(n0.<H) 4_vandginvint_vandginv_ptitle_offsetp_cos_acos_radius_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/12 1322762071 501 20 100644 2172 ` wivfor.o8 hTH__text__TEXTT1__cstring__TEXT8__literal8__TEXT0$__const__TEXT T__bss__DATAH __jump_table__IMPORT (tD P$US[4EEEEEEE EEGE$?EOEWE$E$ED$E$v41[fUWV1S[|MEM\{$GE$]9EEE]MYME$3E$]MXM\MfWM M]EXC^EXfTEf.w# FsEF<$D$T[EMYEf(Y#YEEE$EE]YEEXMEY+$MEM]YMX|1[^_WAGNER IVwagneriv-forwardIteration failed to convergeLKD@?|=?%䃞?\4 ?`gXBX% P{QK) Hsn` aX TH DP <   TPWHcXr` ;G%2*O_wivforint_wivfor_ptitle_offsetp_cos_radius_p_error_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing#1/12 1322762071 501 20 100644 1644 ` wivinv.o  __text__TEXT!__cstring__TEXT __literal8__TEXT__bss__DATA __jump_table__IMPORT(8 PUS[4EEEEEEE EEE$EEaE$aE$\ED$E$.41[fUS[TEEE?\OMY^$EM\GYEM]E$EM]YM^EX7$EEX$EoE]XE^$UET[1WAGNER IV\4 ?%䃞?LKD@f\9sn a T D <  QT`o 2K>%*F_wivinvint_wivinv_ptitle_offsetp_cos_radius_adjust_lon_cenlon_sin_asin_R_lon_center_false_easting_false_northing#1/20 1322762071 501 20 100644 1724 ` wviifor.o 8__text__TEXT$)__cstring__TEXT __literal8__TEXT0__bss__DATA __jump_table__IMPORT# $ PlUS[$EEEEEE$EE 'E$E$'D$$T$1[US[DMEM\_$&ED$ ED$]E^$E$Egf(]]Yf(Y\Qf(YMX^f(QY'YYYEXoEY/YYXwD1[WAGNER VII@T5A}??@G|V@rPL?0(q]8$ ( 0 }n_Z0 M( @ 0  (   Q T`(o0 8D0L'_wviiforint_wviifor_ptitle_offsetp_tsincos_radius_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing #1/20 1322762071 501 20 100644 1820 ` wviiinv.o `=__text__TEXTP*__cstring__TEXT __literal8__TEXT __bss__DATA@ __jump_table__IMPORT- x P  US[$EEEEE?E$7EGE OE$E$OD$G$y$1[US[dEU7\\UEf(f(^^?YYXQXf(M^$]EXE$MUf(YG]YU^$E7EM$YL$]]Y]$~]EYOX$REd[1WAGNER VIIG|V@rPL?tr ?@@|q[E* HPXP X }n_ZX MP @@ 0H (    [H^@jPyX ;OG%.V6_wviiinvint_wviiinv_ptitle_asinz_offsetp_radius_tan_adjust_lon_cenlon_atan2_sin_R_lon_center_false_easting_false_northing #1/20 1322762072 501 20 100644 15508 ` for_init.o H&&__text__TEXTQ%t(__literal8__TEXTX%$'__jump_table__IMPORTp%<'__pointers__IMPORT$&'$X6F9 PED5EUWVSu[}EabEȉUЉD$E؉T$ D$U<$T$%Ea@0PH8Xb          ooY}De!tcƒDž*Ĭ[^_fDUfWf.2EfWf.UȉEЉT$U؉D$ T$E<$D$#DfDUU T$D$x#D$?ED$E$"U E&U$BDžĬ[^_ËEfWUH,p,1f.B`ED$DD$HtD$@xD$8XL$0PT$(D$ |$L$t$ED$E$"U E&U$BX&f.\Bf.Mf.zpf.;@f.,f.'E$p!U EH&U$B`DžE$!U EX&U$BhDž^XD$PL$ED$E$ U E&U$B\DžD$T$ D$U$T$ uut$E$e D%L%ݝY U YEEDžĬ[^_Íut$@ $D%L%ݝYEY U Eut$E@($D%L%ݝYU YEECXT$(PD$T$ L$ED$E$U E&U$Dž]DfDut$E@ $D%L%ݝY U YEEt$E@($D%L%ݝYU YEE'XT$(PD$T$ L$ED$E$tU ED&U$DžA_E䉅 $D$D%L%U EݝYYURD$UB $fD%U L%EݝYYEE@@xHHM,@Pt{fDut$E@$D%L%U E]YEYMMot$E@$D%L%U E]YEYMU!t$E@($;D%L%ݝY U YEEt$E@ $D%L%ݝYU YEE{XT$8PL$(T$0D$ ED$ML$ED$E$U E&U$B DžED$ U|$T$E $OU Eup&U$BDž7ut$E@$D%L%U E]YEYMEdt$E@$~D%L%U E]YEYMEt$E@ $0D%L%ݝY U YEEt$E@($D%L%ݝYU YEEpXT$8PD$(T$0L$ ED$ML$ED$E$MU E`&U$BDžwDut$E@ $D%L%ݝY U YE}t$E@($D%L%ݝYU YEuGXT$(PD$T$ L$ED$E$U E&U$BDždfut$E@ $D%L%ݝY U YEEt$E@($D%L%ݝYU YEE7XT$(PD$T$ L$ED$E$fU E$&U$BDžTfut$E@ $D%L%ݝY U YEMt$E@($D%L%ݝYU YEU'XT$(PD$T$ L$ED$E$U E&U$BDžDfut$E@ $D%L%ݝY U YEMrt$E@($D%L%ݝYU YEUXT$ PD$T$L$E$BU E<&U$B(Dž?fDEu@Et$@ $D%L%ݝYEY U }Xt$E@($jD%L%ݝYU YEuXT$0PD$ T$(L$ED$ED$E${U ET&U$B$DžfDut$E@$D%L%U E]YEYME/t$E@$ID%L%U E]YEYMEt$E@ $D%L%ݝYU YEEt$E@($D%L%ݝY U YEE;EfWf.@@!ЃD$@XD$8PL$(D$0T$ ML$UT$ED$E$U Ed&U$B Dž$fut$E@ $D%L%ݝY U YEERt$E@($dD%L%ݝYU YEEXT$ PD$T$L$E$U El&U$B,DžfDut$E@ $D%L%ݝY U YEEBt$E@($TD%L%ݝYU YEEXT$ PD$T$L$E$ U E,&U$B4DžfDut$E@ $D%L%ݝY U YEE2t$E@($DD%L%ݝYU YEEXT$ PD$T$L$E$U Ex&U$B0DžfDut$E@ $D%L%ݝY U YEU"t$E@($4D%L%ݝYU YEEXT$(PD$T$ L$E@D$E$ U E&U$B<Džut$E@ $g D%L%ݝY U YE}t$E@($ D%L%ݝYU YEMXT$ PD$T$L$E$E U E(&U$B8DžfDED$E@ $W EU ݝEYD%YL%XL$PD$T$E$ U EL&U$B@Dž$ut$E@ $ D%L%ݝY U YEETt$E@($f D%L%ݝYU YEEXT$ PD$T$L$E$8 U E4&U$BDDž!ED$E@ $ EU ݝEYD%YL%FXL$PD$T$E$| U E&U$BLDžtED$E@ $ EU ݝEYD%YL%XL$PD$T$E$ U E\&U$BHDžED$E@ $k EU ݝEYD%YL% E@PD$(@@D$ XD$PL$T$E$ U E|&U$DžEu@Ht$@($D%U L%Eݝ@Y@Y@}6EfWf.@`z0t$@$?D%L%U EݝYYMt$E@ $D%L%U Eݝ8Y8Y8UrD$`0D$X L$P(T$HD$@XL$8PT$0@D$(8L$ T$HD$ED$E$HU E &U$BPDž'DED$E@ $EU ݝEYD%YL%VXL$PD$T$E$U Et&U$BlDžED$E@ $EU ݝEYD%YL%XL$PD$T$E$U EP&U$BTDžED$E@ ${EU ݝEYD%YL%XL$PD$T$E$U E0&U$BdDžHED$E@ $EU ݝEYD%YL%|XL$PD$T$E$U Eh&U$BtDžut$E@ $?D%L%U E]YEYM}t$E@($D%L%ݝY U YEME@`Pht$@@$D%L%ݝYEYU UXT$8PD$(T$0hD$ `L$T$ED$E$RU E@&U$BxDžfDED$E@ $EU ݝEYD%YL%FXL$PD$T$E$U E8&U$BpDžtt$E@@$ D%L%U EݝYYEt$E@H$D%L%U Eݝ(Y(Y(EDt$E@P$^D%L%U Eݝ Y Y }t$E@X$D%L%U Eݝ0Y0Y0M1t$E@$D%L%ݝYU YE}%YT% $YfWf.G" @U>cܥL@1%%h%$`%$X%$q$`%k$X%e$$`%$X%$#`%#X%#l#`%f#X%`#5#L&'#"`%"X%""T&"!`%!X%!!`%!X%{!9!`%3!X%-! |&  `% X% a D&S  `% X%d&|`%tX%S%&`%X%4&t`%X%9`%3X%-`%X%&|*`%"X%p&`%X%c5&'`%X%H&z`% X%`%X%`&w>`%6X%<&d`%^X%X`% X%&D`%>X%8`%X%&4`%.X%(`%X%@&$`%X%`%X%&|`%X%`%X%x&w`%X%}`%wX%q/`%)X%#`%X%h&`%X%`%X%jP&\`%X%`%X%e0&W`%X%`%X%U8&G `% X%  `%{ X%u E ,&7  `% X% q `%k X%e 2 t&$  `% X% H `%B X%<  `% X%  `% X% r &Y ' &  `% X% = `%7 X%1 `%X%`%X%`% X%`%X%eX&W`%X%`%X%I$&;`%X%y`%sX%m`% X%&Kl&=\& (&r&Lc,? 9A;.2)#'C7%!E 60=+4 5 /(-*$B8&31<" D:@>M{{ WESn(_;mNaq5*<43#Zh,H"`Bx_for_init_ceafor_somfor_merfor_psfor_omerfor_polyfor_orthfor_gnomfor_molwfor_equifor_wivfor_sterfor_obleqfor_bceafor_goodfor_sinfor_robfor_tmfor_imolwfor_millfor_lamccfor_eqconfor_wviifor_lamazfor_stplnfor_hamfor_azimfor_isinusfor_gvnspfor_alconfor_alberfor_vandgfor_utmfor_paksz_lamccforint_utmforint_goodforint_isinusforinit_gvnspforint_calc_utm_zone_eqconforint_alconforint_gnomforint_sterforint_vandgforint_stplnforint_polyforint_equiforint_robforint_omerforint_hamforint_millforint_bceaforint_imolwforint_obleqforint_wivforint_alberforint_sphdz_molwforint_merforint_wviiforint_ceaforint_somforint_psforint_tmforint_lamazforint_orthforint_sinforint_azimforint#1/20 1322762072 501 20 100644 15476 ` inv_init.o H&&__text__TEXT1%T(__literal8__TEXT8%'__jump_table__IMPORTP%'__pointers__IMPORT&'$86F9 PE$5EUWVSu[}EabEȉUЉD$E؉T$ D$U<$T$R%Ea@0XH8`bx  m  k   p   OO9}$E TcƒDž   Ĝ[^_fDUfWf.2EfWf.UȉEЉT$U؉D$ T$E<$D$i#DfDEU pT$D$x#D$?ED$E$6#U ET&U$BDž Ĝ[^_ËEfWUH,p,1f.B`UD$@T$DxD$8`L$0XT$( D$ |$L$t$ED$E$ "U EP&U$BX0f.fBf.Wf.zff.K@f.cܥL@%$H%$@%$8%$Q$@%K$8%E$#@%#8%##@%#8%#L#@%F#8%@##<&#"@%"8%"q",&c"!@%!8%!g!@%a!8%[!!@%!8% ! (&  @% 8%o A &3 @%8%@&\@%T8%3l&@%8%b&Tp@%j8%d@%8% @%8%jH&\ @%8%4&l@%d8%C&@%8%h&Z@%8%@%8%e8&W@%8%p&D@%>8%8@%8%0&$@%8%@%8%X&|@%8%@%8%z&l@%8%@%8%j &\@%8%@%8%eP&W@%8%]@%W8%Q@% 8%@%8%zD&l@%8%@%8%J &<@%8%@%{8%uE|&7@%8%q@%k8%e5$&' @% 8% a @%[ 8%U % &  @% 8% Q @%K 8%E  L& { @%u 8%o ( @%" 8%  @% 8%  @% 8% R T&9  `& p @%j 8%d  @% 8% @%8%@%{8%u @%8%@%8%U&G@%8%@%{8%u9t&+@%8%i@%c8%]@%8%\&;&- x&vd&hh&Lc,9%A#;.)6C'! 0=7+4E?  2($8-D&"3B1< :5>* /@ (  C1zq Gy2b,{m:Tg?4UK+L;!o"`^V_inv_init_imolwinv_omerinv_lamazinv_bceainv_gnominv_molwinv_equiinv_sterinv_polyinv_wviiinv_obleqinv_gvnspinv_millinv_sininv_wivinv_robinv_tminv_isinusinv_lamccinv_eqconinv_stplninv_aziminv_alconinv_alberinv_sominv_utminv_haminv_orthinv_ceainv_goodinv_psinv_vandginv_merinv_paksz_sterinvint_imolwinvint_molwinvint_vandginvint_millinvint_isinusinvinit_stplninvint_polyinvint_omerinvint_equiinvint_bceainvint_sominvint_wivinvint_alberinvint_aziminvint_obleqinvint_merinvint_ceainvint_psinvint_tminvint_sphdz_lamazinvint_orthinvint_sininvint_wviiinvint_lamccinvint_utminvint_goodinvint_calc_utm_zone_gvnspinvint_haminvint_eqconinvint_robinvint_gnominvint_alconinvint#1/12 1322762072 501 20 100644 8164 ` cproj.o __text__TEXT __const__TEXT__literal8__TEXT0@__cstring__TEXTHX__jump_table__IMPORT(  PUE$EE$EYUMf(fT[f.v f.vf(MMtfDYUEUYEY\Q^UEUS[De]f.owf(XEEЃD[fwf(f(YYf(\f(mYf(\^^]Ef(\X^$[]EYEXEYEEEЃD[fUWVS[MEMEf(Y$REf.]z*EEؾE?}Y]f(щE\E^^E]EDfDNE|$D$ E$UMYf(Y\f(Y^YE^]\E\X^$]M]]EYEXEYXfTMf.0EČ[^_ÍD$$EEEČ[^_fDUWVS[L}MEME $YE0]YEXME$ ML$]EYE\X^ $]EYE$M]EYX0 \EXfT(Mf.s2NRD$$=0EEL[^_fDfDUWVS[l}0EMEMEM EME(MEMfDEX$ M]EYEXEMY${ ]EYEXEEEY$K M]EYEXE^E\EXfT Mf.s=N>D$$  EEl[^_El[^_UWVS[}DEEEEE(pE8`MMM xM0Ph x YEE YM YpfWMYPMHP $ P]$ EE@YEYE\Q]YEEPXE$W PYMYPE]EYE\EM$ ݝ@@YxXEEPY$ ݝ@@YpXEEE$ EݝXXYMXMX $W ݝ@@YEXXXPY$ EM]YXX`YXEYEX YEUXݝ@YUE@YEYeXXXEYMYY M X^M^XMh\EXYXXP^XfT Pf.s2NW\ D$g $ [^_݅H[^_DfDU fW-VS[Mf.FfTf(^X,i'*\f(^X,kd-f(*Y*\*YXXufWUE[^Y -UfWɉ[YEf.FfT+c-,*\YkY,*\YsYXXufW;EEUS[DMf(MYUUȍ\EY$8UMYL$f(\X^$]E]^EEED[U1fWf.EDfUV1S[0MDfDf(fT<f.smf(^fT,Hf(^Lf(fT,*Tf.v3,*YDXFuME0[^fDf(^\f(fT,*f.v,*YdXff(^lf(fT,*Tf.vB,*YtXV $MM*YDX- $M]M*YDXYUEf(f(YYYXYXYXUEDYUEf(f(YYYXYXYUEfDYUEf(YkYYsX{YMEÐYUEf(YYYCEEÐUS[DMf(X\T$$EED$$]E]YEQEED[US[TEEEEE EE(EYEEEY$,]EYEEEXEEEY$]EYEEEXEEEY$]EYEEEXEEEЃT[YUXE^X,??Hz>??|=?Hz>?-DT!??|=@@|=@@?@|=@MbP?Y@.A@@cܥL@N@.A@@-DT!???-DT! @-DT!-DT!@A!T! B!T! =~S!C=~S!п??@????????UUUUUU??@f@@?phi1z-convConvergence errorphi2z-convPHI3Z-CONVLatitude failed to converge after 15 iterationsphi4z-convLattitude failed to convergel@ez8em0e2((y yy?' U%M%E%=%     p,  p, v ^ , D , . , " ,  , , , p, , x, } , ` , P h, B ,  `i Xi  Pi Xi O  9 H ! @ 8   0 ( (( ( r ( P ( D ( < ( P  P P P_ PPPP~KPPIPC.PPPP|pysE?SetaW@:#MB:S0H x`spmph`uIXPH@t85Q5I05%X 0`d j pv|p; B &p-4@R K` _tsincos_asinz_msfnz_qsfnz_phi1z_phi2z_phi3z_phi4z_pakcz_pakr2dm_tsfnz_sign_adjust_lon_e0fn_e1fn_e2fn_e3fn_e4fn_mlfn_calc_utm_zone_log_cos_tan_p_error_atan_pow_sin_asin #1/12 1322762072 501 20 100644 8980 ` report.o __text__TEXT __cstring__TEXT&__literal8__TEXT(88__bss__DATA __jump_table__IMPORT`#p` !$ PD U(][uu}} uku]u}fD D$$  t$ |$T$$u]}E t$|$$zDUE][uu uDǃǃtlUǃ:uq]u@}Eǃ8tǃD$$uDǃ1ǃ]ufǃT$$]1uÃt6ǃǃ,tV1ǃǃ땋Uǃ:uJǃJ D$W $WEǃ8u0ǃEǃD$$UǃfDUS[;t$7t$[fU][uuuqu]uK D$$]y t$T$$Pu]EEy t$$xfUS[$EE7uoCu$[ D$W$ EGD$T$$ GE$[ f D$$k xUS[$EEEE苃  u$[Ð D$ $ c E D$T$$ ED$D$ $ E$[ c ED$$ E$D$m 8fUS[$EE u u$[D$ $ EY D$T$$ E$[ f. Y D$$ `US[$EE u u$[ D$ $- ' EYG D$T$$ E$[ f.' YG D$$ `US[$EE u u$[PD$ $] EY D$T$$A E$[8 f.Y D$$ `US[$EE u# u$[D$7 $ 7EY ' D$T$$q ' E$[h f.Y D$$3 `US[$EEG uS u$[D$g $EYW D$T$$W E$[f.YD$$c`US[4EEEE苃wu4[ÐD$$'YED$T$$'KYED$D$$E4[DfD'E$YD$MUKMYM$L$7US[$EEWucu$[D$w$WEYgD$T$$gE$[f.WYD$$s`US[$EEEE苃u$[ÐD$$ED$T$$ED$D$$E$[ED$$E$D$m8fU8]EE[uuxuwu ]uDD$$ED$ t$T$$u]EfDfDD$t$$lU(][uu}} uku]u}fD+D$$==t$ |$T$$,u]}E=t$|$$zDUS[uY#t<D$7$$ 'D$'$[fD$ n[%s] %s areport-fileOutput file name not specified %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld cܥL@cܥL@cܥL@cܥL@cܥL@cܥL@cܥL@\     Br5           r b  J  D 0  *  $        ( ( u ( j ( d \ ( R ( ; ( 1 (         u  j  d \  R  A  3   XI I I  I XI I  I I c I Y I 4  t)   P) H) )  ) t) P)  ) H) z P) t l ) b ) Q ) C )  HYYYYHYYY YsYiY8*@"@ hZ8RD5/8 p 0e_MG0:4," (}w(jd\R 3)|uj|d\R A3TiiiTii iiyiNB7&  7 yyVH@2# |r^RC;-zt`ZTLB 'H5=p  w P $`,d n@ XP_p_error_init_close_file_ptitle_radius_radius2_cenlon_cenlonmer_cenlat_origin_true_scale_stanparl_stparl1_offsetp_genrpt_genrpt_long_pblank_strcpy_fopen_putchar_printf_fprintf_fputc_fclose_terminal_e_file_e_err_file_fptr_e_terminal_p_file_p_parm_file_fptr_p #1/12 1322762072 501 20 100644 1260 ` paksz.o __text__TEXTC__cstring__TEXTC0S__literal8__TEXTx8__const__TEXT__jump_table__IMPORT PUVS[ uEf.n~f(fTf(^,=h*f(Yf(\f(^,<V*f(Í_Y\f.wBYYXXY^eE [^Uf.D$C$v\eE [^Ð9vpaksz-degIllegal DMS fieldpaksz-minpaksz-sec?.A@@N@ @: "C  M _   i i B : . x _paksz_p_error#1/12 1322762072 501 20 100644 2436 ` sphdz.o8 T__text__TEXTTD<__data__DATA xt__cstring__TEXT4__const__TEXT$__literal8__TEXT4__jump_table__IMPORT<( X P$ UVSE[RSUEUh1[^f$t$`t$$N1[^fDU fWJfTfTf.f.EU E1[^fDEUEh1[^ËEpUEp"UxEUx1[^f.vxUEUf.v&U\QYEUEUEftAtnUhEhU@BMXA EUEUxExUBMXAEpUpE@MXA333?XA ?XA+?XA ?XAd?XAIF?XA؁s?XA =?XA?XAp=:H?XA~!?XA1?XA?XAoT?XA?XA4?XAX?XAp'?XAR_?XA@MXAMXA˯MXAX9\?XATXAGITXAISXA`TXATXATXASXA@TXA@TXAbXTXA'1SXAu SXA@TXATXATXA@TXATXATXATXA@MXAMXA˯MXA@TXAINFORMATIONALInvalid spheroid selectionReset to 0? ]N  k\ M5& xr]K > _sphdz_p_error_minor_major#1/12 1322762072 501 20 100644 1276 ` untfz.o %%__text__TEXT8__data__DATA __cstring__TEXTS__literal8__TEXT(__jump_table__IMPORT 0 PUSE[} u#D$$[Ã}׋URU BÑE1f. uzʍD$$M?y1s- AcܥL@?;pjځ?u:?X%? @?(? @U>?xV42?:RFߑ? @?B?ׁ??untfz-codeUncompatable unit codesuntfz-unitIllegal source or target unit codeukZ4,"_untfz_p_error_factors #1/12 1322762072 501 20 100644 4860 ` gctp.o8 wT __text__TEXTi TX]__data__DATA  __bss__DATA k__cstring__TEXT : __literal8__TEXT ,__jump_table__IMPORT #4\L P  @UWVSEP[E,D$ E$D$E(D$E $ UP , l@l@D B HLE C1DžTLP@DHLP B@IuTx@DHLPTeAu ǃ Dž<dU4:d]EU0(KU$T$D$4$ MPM 9uE0UPE<Ef(ȋMY (YA0JU uщ,   M1ɉl E )ЋUAƃuًE 1hMD@ uufWX`uf.RI*EY X0%Dž`DždALvD$uPt$ELD$MHL$uT$$D$ XD$_MP u (0EMЅu4E0E؉EЃ@MDU@2U4$t$$L$UPM49uE@0U0YEYE1[^_ËE +Ul;Dž<E4ju8C;d D$ $EP1[^_ÃuuQ)ʋl M$L$D$4$UPu ;.;, !kx uf.DBuDž<uD B;;l@kxLEu<f.DBu1 D$ $MP1[^_ËM4uDl@LE BM81ɉCE4)ЋU<AƃuًE41hu<D@ ufWX`f.U<XB`tD$uPt$ELD$UHT$uDD$ XD$U8 $D$MPmtD$uPt$ELD$UHT$uDD$ E<맋}0|$u0t$ED$E$tUP$f.$t$$L$UP8M49fEЉD$E؉D$0D$( $LvUPXfLvD$EPD$ULT$uHt$UD$ ut$U $D$0D^MXA``E$EݝX$E4ݝ`E48U8 Q)ʋl Dž`DždGCTP-INPUTInsys is illegalGCTP-OUTPUTOutsys is illegal.AG  r`v^L`vt\tQ?tiCY BR`EH@#  `E@ Bz \@ M 9   C{W#}A`v rb Y Q@  C`E  Bt@hb \@ N ; F M S@ Y `f@m Bu {`EC`vt5&,?_gctp_inv_init_pakr2dm_close_file_init_p_error_for_init_untfz_NADUT_iter_inpj_indat_inzn_outpj_outdat_pdin_pdout_outzn_inv_trans_for_trans #1/20 1322762072 501 20 100644 412 ` br_gctp.o( D__text__TEXT DT__jump_table__IMPORT M`x P\U_gctp__gctphdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibIRIX53.a0000755000175000017500000221675012024715435021264 0ustar amckinstryamckinstry! / 860009075 0 0 0 2260 `  $$DDg8g8<<pp\\  ..B B Y\Y\{@{@||TT  ll00H H __~P~P  ||ׄׄ  (@(@BBxx""<4<4UUvv\\dd??SpSpkpkp$$<8<8iiTT!!!!!b|77777777777777777777}}}}}}}}}}}}}}}}  |d alberforintalberforalberinvintalberinvalconforintalconforalconinvintalconinvazimforintazimforaziminvintaziminveqconforinteqconforeqconinvinteqconinvequiforintequiforequiinvintequiinvgnomforintgnomforgnominvintgnominvgoodforintgoodforgoodinvintgoodinvgvnspforintgvnspforgvnspinvintgvnspinvhamforinthamforhaminvinthaminvimolwforintimolwforimolwinvintimolwinvlamazforintlamazforlamazinvintlamazinvlamccforintlamccforlamccinvintlamccinvmerforintmerformerinvintmerinvmillforintmillformillinvintmillinvmolwforintmolwformolwinvintmolwinvobleqforintobleqforobleqinvintobleqinvomerforintomerforomerinvintomerinvorthforintorthfororthinvintorthinvpolyforintpolyforpolyinvintpolyinvpsforintpsforpsinvintpsinvrobforintrobforrobinvintrobinvsinforintsinforsininvintsininvsomforintsomforsominvintsominvsterforintsterforsterinvintsterinvstplnforintstplnforstplninvintstplninvtmforinttmfortminvinttminvutmforintutmforutminvintutminvvandgforintvandgforvandginvintvandginvwivforintwivforwivinvintwivinvwviiforintwviiforwviiinvintwviiinvisinusforinitIsin_for_freeIsin_for_initisinusforIsin_fwdisinusinvinitIsin_inv_freeIsin_inv_initisinusinvIsin_invfor_initinv_inittsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zoneinitp_errorclose_fileptitleradiusradius2cenloncenlonmercenlatoriginstanparlstparl1offsetpgenrptgenrpt_longpblankpakszsphdzuntfzgctpgctp_alberfor.o/ 860008751 2145 20 100664 6992 ` ELFp4( 0P%-L9>FKSY_fnwL.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamalberforintfabsp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lonsincos_gp_disp<'!'$ x|ǥǤ%8$<ǧǦ'@&DǩǨ)0(4ǫǪDZǰF0S 3p2tF2<E $ $@ $ǥxǤ|%$ǧǦ'& )( +*F*DTPdzPDzT<?F2D8D0F$2\XǭXǬ\ ! ǭǬ'p 'h ǫpǪt`dDZhǰlǯpǮt-,  HLdzhDzlǯpǮt-,  04ǭǬ'p 'h ǧhǦlǯpǮt-,  @DǥhǤlǯpǮt-,  (,ǭǬ'p 'h ǩhǨlǯpǮt-,  8<ǫǪDZǰF0S 3x2|F <EǧHǦLǩ@F&1ǨDǦ4ǧ0dz(F(BDz,F*$F&F($,%(ǫ`Ǫd+(*,dzHDzLF2ǩ0Ǩ41(0,F(F$2*+DZ83(2,ǰ<F0'& F(3 %$F$3(2,F2T0$1 $P -,/.  ǭǬǯǮ -0,4 ǭǬ -8,</@.D %$'x<'!'$ PTX\ǭXǬ\'H '@ ǥ@ǤDǯHǮL-,  8<ǩ8'(&,Ǩ<F(210 F* 32F2'(&,F&",(DZPǰT+0*4 F* 3(2,F240ǭ0Ǭ4 ǧ(Ǧ,F&180<`F0Bǭ0Ǭ4 ǥ(Ǥ,F$3 2$dF&1@0DF0B%$'PEqual latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA=|׽=|׽ ( 48< HLP \`t          X t |     $ D \`P |      4 <@          (,0 8<@ LHP XT l tx| p         LPt          4 DH@ \ dh|     Pp L-L0%( '!$'('('(($F!! x1lL SPu7, .` ` ` ` ` (` 0` 8` @`   ! ' , 1 6( ;0 F8 ( R Y ` d g l p t x | 4 L L     ( ,      %  ,   !    - !  `alberfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/alberfor.c8600089314328/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c alberfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorce3rhns0lon_centerfalse_eastingfalse_northingalberforintr_majr_minlat1lat2lon0lat0false_eastfalse_northsin_pocos_poconestempms1ms2qs0qs1qs2alberforlonlatxysin_phicos_phiqsthetarh1/usr/include/math.hlucy:/usr/include/math.h86000893113775__infinityerrnosigngamalberforintfabsp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lonsincos_gp_disp.JI.  %*27?EKRZcmt|L       %+,4 ]!0! ) P.p 7p @ JpUp alberinv.o/ 860008752 2145 20 100664 8208 ` ELF04(  P%-P9>FKSY_fnwP.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamalberinvintfabsp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberinvatan2logphi1zadjust_lon_gp_disp<'!'$ ptx|ǥǤ%@$DǧǦ'H&LǩǨ)8(<ǫǪDZǰF0S 3p2tF2<E $ $D $ǥpǤt%$ǧxǦ|'& )( +*F*DTPdzPDzT<?F2D8D0F$2($) - ,$ ! ǭǬ'h '` ǫhǪlX\DZ`ǰdǯhǮl-,  HLdz`DzdǯhǮl-,  04ǭǬ'h '` ǧ`ǦdǯhǮl-,  @Dǥ`ǤdǯhǮl-,  (,ǭǬ'h '` ǩ`ǨdǯhǮl-,  8<ǫǪDZǰF0S 3x2|F <EǧHǦLǩ@F&1ǨDǦ4ǧ0dz(F(BDz,F*$F&F($4%0ǫXǪ\+0*4dzHDzLF2ǩ0Ǩ41004F(F$2*+DZ83024ǰ<F0'& F(3 %$F$3024F2T0,1($T -,/.  ǭǬǯǮ -8,< ǭǬ -@,D/H.L %$'p<'!'40ptx|(, $LǥpǤt'@&DF&"tpDZx+(*,ǰ|%H$LF0TF$|xDXDP)0(4F(P>EDZpǰtǥxF0Ǥ|F$! F&0hl<?DHD@X\ǫpǪtǥxF*TǤ|F$$ F2F 0lh<DHD@X\DXDPPTǥhǤlDDF0 2EdzXDz\ǧpǦtǩxF&Ǩ| F(0PTǫhǪl%0$4F$T'&F&\XǩXǨ\F(B%$F*$'0&4F&d`)(%$F( >Ep<?DXDP10<?DDF0QF0 F(30<?D(D + *$<?DDF*$F2%$<?DF&DF$BF*\XǭXǬ\ 0ǭ`Ǭd F 0F F4 0'&F 0<Eǯ`Ǯd'L-, 0LLCǩ`ǨdD(D F( >E1010+* ǯ`Ǯd'L-, 0@AL`LdzPDzT'0&4F&%8$< F$C0%4ǵ Ǵ$Ƿ(Ƕ,'pEqual latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREA=|׽=|׽=|׽=|׽?!TD-!TD- ( 48< HLP \`t          H TPX `d\ x       ( H `dT        8 @D        $ ,04 <@D PLT \X p x| t         PT     d     $@ HLP X\p x|     8 T l    $ , 0 @ H L ` t x d        Pp l`304%t8 '!$'('('(($F! (H#((H'X8! p5pP Tpy7, .` ` ` ` ` (` 0` 8` @` H`   $ * / 4 9( >0 I8 ( U \ c g l p t x | 8 P P     8 ,     %  ,   !    - !  `alberinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/alberinv.c8600089335779/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c alberinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorce3esrhns0lon_centerfalse_eastingfalse_northingalberinvintr_majr_minlat1lat2lon0lat0false_eastfalse_northsin_pocos_pocontempms1ms2qs0qs1qs2alberinvxylonlatrh1qsconthetaflag/usr/include/math.hlucy:/usr/include/math.h86000893313775__infinityerrnosigngamalberinvintfabsp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberinvatan2logphi1zadjust_lon_gp_disp.iI.  %*27?EKRZcmt|P       %+,4 ]1 ! ) P.p 7p @ JpUp 0alconfor.o/ 860008753 2145 20 100664 8716 ` ELF ,4(  %-9>BGKOW^fmt|H.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamalconforintsqrtsinatantanpowtsincosptitleradius2cenloncenlatoffsetpalconforadjust_lon_gp_disp<'!',(hlpt $ǥhǤl%$ǧpǦt'& ǩxǨ|) ($ǫǪ+(*,10103 2$32$.%($,PTǭPǬT (! '0&4%0 )8(<'0 +@*D'90+*1H0L%0 $3P2T%)03(2,%X$\%J0E0D4D8D0%khgf )`(d%h+h*l%h1p0t%h $3x2|%h(,%$'h04-, ('&F&D@D +*10<@D(F0T F$<?(D8DD0ǩ@ǨD%$F(2D<@D8D0F(F2SF  F&#(F F6 <@D(DF0+*F*DLHǭHǬL$ $($ (-,/.  (-, (-, (- ,$/(., (%,ǵǴǷ Ƕ$'h<'!'(,( $ǥǤ܏'& F&#(ԏǭǬ' '(ǭǬ ()(F(dz10Dz<@D8D0F2 F&#<?(DHDD@ǫǪ'&F*DD<@DHD@F*F$F  F(3(F F6 <@D(DF210F0QTPǭPǬT' '(ǩ'&ǨDZF(4ǰ+*ǦF0QǧF&"F(<?DDǥǤ<@DDF$F&ǫǪDZǰdzF0QDzF2!ǫ)(ǪdzF*DDz%$ǨF2!ǩDzdzF(2F*F2!ǩǨF(DLHǫǪdzF*QDzF2F&"'0x!10%JhH*X!kjx|%0 hx!pt%h(H!%$hl$ kD)a SǧHǦLǩǨǫpF(4ǪtF*d`ǥHǤLǧxǦ|DZhF&"ǰlF0B\XD* /DǥǤǧǦ#F&"%0(H!32F(tpDJǥǤǧxǦ|K`#F&$ h%hx!F2RlhDZ`ǰdǥXǤ\x|D'* DǧǦdzDzF 2F2RtpDZǰǧxǦ|F F&"lhdz`DzdǩXǨ\x|DZǰǥǤǫF$ǪdzxDz|F2RǤtǥp23F(4F$) F2Q($F(401ǥǤǫǪǧF*$ǦǩxǨ|F(4Ǫlǫh()F0F*!1(F(40,F0DE%,ǵǴǷ Ƕ$'ALASKA CONFORMAL9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO?!TD-?!TD-?!TD-?!TD- 8 DHL X\` lpt           $ (4 <@8 DP X\T `l txp |            , 480 <H PTL Xd lph       8 X `dx |            , 48< DH0     ( 04H PTh      8 @DH \`   x |                ` h     $ , d x t   P8p t;T48`1<`4 %&((VG'U(( ! h6e"THo-, 6` ` ` ` ` (` 0`h`` "` *` ,`. : @ F Q 8 ]_ d g k d . q z ~   8 4                x p l$ qH  ,   !  0@ 0@  5 !  `alconfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/alconfor.c8600089345125/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c alconfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorlon_centerlat_centerfalse_eastingfalse_northingacoefbcoefsin_p26cos_p26enalconforintr_majr_minfalse_eastfalse_northitempeschiesphialconforlonlatxydlonsinloncoslonsinphicosphiesphigsxpyparaibrbiarnainchirj/usr/include/math.hlucy:/usr/include/math.h86000893413775__infinityerrnosigngamalconforintsqrtsinatantanpowtsincosptitleradius2cenloncenlatoffsetpalconforadjust_lon_gp_disp6!qI6!  %*.37;CJRY`h q|      344` ] ! `).p  7p0@ HJp8(Up` alconinv.o/ 860008755 2145 20 100664 11400 ` ELF*4(  %-9>BGKOW^fmt| .symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamalconinvintsqrtsinatantanpowtsincosptitleradius2cenloncenlatoffsetpalconinvfabsp_errorasinzadjust_lonatan2_gp_disp<'!',(hlpt $ǥhǤl%$ǧpǦt'& ǩxǨ|) ($ǫǪ+(*,1p0t103x2|32$.%$ '&F&"\X+*PTǭPǬT (! 10%0 32'0%$'90%$'&%0 $)(%)0)((,+*%J0K0J4DD%khqp 32%h%$%h'&%h $)(%h(,+*'h 0 4-, (10F0D@DP%$䏁'&<@DXF&" F*C<?(DD8Ddz@DzD+*F2D0<@DDF22F(#F  F0S(F F6 <@D8(D0F&%$F$LHǭHǬL$ $($ (-,/.  (-, (-, (- ,$/(., (%,ǵǴǷ Ƕ$'h<'!',(`dhl $ǥ`' &$Ǥd+*F&"F*Dd`dzh%($,Dzl)(F$F(2lhDZ`ǰddzhDzl@ǥǤF$!<8ǩǨDZF(BǰF0F2Q40'0x!'&%JhH*X!ih%0 hx!(,%h(H!+* $ǧJǦDF!F&"dzkDzDFF2Q DZ(ǰ,%D0F2!F0Bǧ Ǧ$%DF!F&"$9D+! DZ8ǰ<ǫǪǥ(F*Ǥ,F$ǩ8Ǩ<DZǰdz F0BDz$F2QD) * yDJǩ0Ǩ4DZǰK`#F0B h%0x!F*4,(Dǩ0Ǩ4DZǰ@#F0AH%Jh*X!edF&"$ dzDzǩǨDZ8ǰ<ǥǤǫF$ǪF*4ǩ8Ǩ<DZǰ ǧF0AǦF&"ЏDp#D@x'0!FD!32ǧ0F0Ǧ4ǫǪF*2F($D P#D0 X%hlh!F2űŰǩ0F*Ǩ4dzDz F2AF&$ǫǪǩǨ D9%8* eDdz0Dz4ǧǦF F&$,(ǫ0Ǫ4dzDzF RF2A$ ǧǦDZǰǫǪǩǨǥF(TǤǧǦǨ,F&$ǩ(Ǧdǧ`F0F(QF&$DZǰǫǪǥF*ǤǧǦǪ$F&$ǫ ǦlǧhF2DF*F&"dzDzDZǰǥF0ǤǧǦ ǰF&"DZF(TF0ǧǦǫǪdzF*2DzDZǰ F0F$AF02dzDzǥF2ǤF$!F&DǫǪdzDzǩF2QǨǧǦF&DǨǩF0"F TF(ǥǤDZǰdzF0"DzǩǨF(DzdzF&QF $F2ǫǪǧǦF&QDZǰdzDzF2ǭǬ (ǭǬ F F4(@%@@)! $ $4($돁ǧǦ%$F& <E3DZǰǩF0ǨF(B F*(`d<@D(ǧ`ǦdD F$3 <@DD(F0|xǭxǬ|'h 'p(p32srǭ`Ǭd (+*F*>E t'&%ǥpǤt10dzF0"DzǫhǪlF*%$Dzddz`F$4F2 F*C(X\@ǧXǦ\HLǭHǬL (%$F$D@ǩX32Ǩ\<@D8D0F( F&S<?(D(DHD DZ@ǰD'&F0$D@<@D(D F0BF*F  F$3(F F6 <@DH(D@F(32 ǧHǦLF2F&QTPǩHǨLDZPǰTF0DLH@%@@) $@ $`(>$쏙ǭPǬT (+*F P<EtǧHǦLǥǤǩhǨlF(#DZ`ǰd32F2ǧpǦtǰDZF&Q23F2F(Q F&#(F 10 F0p( !%,ǵǴǷ Ƕ$'`ALASKA CONFORMALToo many iterations in inversealcon-invToo many iterations in inversealcon-inv9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO?!TD-?!TD-=|׽=|׽?!TD-?!TD-=|׽ 8 DHL X\` lpt           8 @DH PTL Xd lph t            $ ,0( 4@ HLD P\ dh` lx |        (,D h           $(  < DH@ \ dhl tx`    $ ,04 <@       4 <8 @\ d     x            t |   d p h x l     $ D L P \ x            0 L TXl tx     $(      $(, LHP l txp P8p 00F(xJH1"`#%&' (&(V)u&(('x%(8''TA h6e.`o/, H` ` ` ` ` (` 0`h`` "` *` ,`. : @ F Q 8 ]_ d g k  . q z | ~  8 F                x p h ` X P H @ 8 0 (            q   ,   !  0@ 0@  G !  `alconinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/alconinv.c8600089356517/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c alconinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorlon_centerlat_centerfalse_eastingfalse_northingacoefbcoefsin_p26cos_p26enalconinvintr_majr_minfalse_eastfalse_northitempeschiesphialconinvxylonlatdlonsinloncoslonesphirsbrbiaiarcicrdidrarnaincrncinfxyrfxyifpxyrfpxyixpypdendxpdypdszcoszsinzrhchidphiphijnn/usr/include/math.hlucy:/usr/include/math.h86000893513775__infinityerrnosigngamalconinvintsqrtsinatantanpowtsincosptitleradius2cenloncenlatoffsetpalconinvfabsp_errorasinzadjust_lonatan2_gp_dispH0!IH!  %*.37;CJRY`h qv~      EF4 ]1! ).p  7p@ Jp(Up azimfor.o/ 860008756 2145 20 100664 6660 ` ELF$4( pp%-@3<GNU`hovD.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngam__iob_lastbuf_bufendtab_sibuf_sobufazimforinttsincosptitleradiuscenlonmeroriginoffsetpazimforadjust_loncosfabssprintfp_erroracossin_gp_disp<'!'د(,04ǥ(Ǥ,%$ǧ0Ǧ4'& ǩ8Ǩ<)(ǫHǪL+P*TDZ@ǰD1X0\ǭ8Ǭ<$` $h$ -, -,  -, -X,\/P.T %'(<'!'@$ ǥǤď'&  F&# ǭǬ' ' ǭǬ ǫ)`(dǪǥF*DǤ3h2lǨF$ǩF(2F*ǭǬ <?D(D F  F$ 'X&\F&<E/<?DHD@DZǰDXDPF*<E3`2d%$F$'0 $ '0 $L O${ǭǬ ǭǬ ǩǨ F DǭǬ dzDz+*ǧF2QǦ+XF&"*\F(F*ǧ%h$lǦǫF&"Ǫ1`0dǤF*ǥ+F$Dzdz*F2QF&D&T'PF0"F&B%$ǵǴ'AZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-for=|׽@ !TD- ??( 48< HLP \`d ptx            0 8<@ HL4      $(, @Dh      0 H4 T dX       ( 048 LP` hx| pp 14 ;L D9 \Xp8 d(F $(W(!(/E`d0XOt, +` ` ` ` ` (` 0` 8` @` H` P`  X` ``  h` ( 3 9 D O Z ( f h ( k s w { } 0 )        p( kD  ,  , K)`R)`i` Y%`^ %`c@%`i`%`oh%`!`u)`  !   *0O !  ` !   0c  00azimfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/azimfor.c8600089363875/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c azimfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorlon_centerlat_origine0e1e2e3eesespfalse_northingfalse_eastingsin_p12cos_p12azimforintr_majcenter_loncenter_latfalse_eastfalse_northtempazimforlonlatxysinphicosphidloncoslonkspgconzmess/usr/include/math.hlucy:/usr/include/math.h86000893613775/usr/include/stdio.hlucy:/usr/include/stdio.h86000893610773size_tfpos_t_cnt_ptr_base_flag_fileFILE__infinityerrnosigngam__iob_lastbuf_bufendtab_sibuf_sobufazimforinttsincosptitleradiuscenlonmeroriginoffsetpazimforadjust_loncosfabssprintfp_erroracossin_gp_disp+12I+z- +1 @(3%:+A LT[bls{         ()4 ]Q !p)`p.p ` 7p@ Jp Up taziminv.o/ 860008757 2145 20 100664 6392 ` ELF4( p@%-8@GNX_g4ot|.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamaziminvinttsincosptitleradiuscenlonmeroriginoffsetpaziminvsqrtp_errorfabsasinzadjust_lonatan2sin_gp_disp<'!'௿ $(,ǥ Ǥ$%$ǧ(Ǧ,'& ǩ0Ǩ4)(ǫ@ǪD+*DZ8ǰ<1 0$ǭ0Ǭ4$( $0$ -, -,  -, - ,$/. %' <'!'$ `dhlǥ`Ǥd' &$F&"d`ǫhǪl10F0Tlhǥ`ǤdǩhF$!ǨlF(B F*3 X\DZX382<ǰ\%$F$F0@<E $ $, $}ǧXǦ\+*F*4TPǭPǬT'H '@ p%$ ǭXǬ\ 1@0DF0>E t)(%ǧ@ǦD+(*,ǥhF*4ǤlDZHǰLF0"'0&4Ǥ\ǥXF&BF$T F0t -, )H(LF(40ǭ0Ǭ4 +P*TF*>E7DD%$F$>EǯhǮlǭ`Ǭd F s F 10  F0p !%ǭ`ǬdǯhǮl F c F )(  F4Cp i%t-, ǧ@ǦD+(*,F*F$440ǭ0Ǭ4 1X0\F0<Eǭ`Ǭd )`(dF(<E6%ǫ`ǪdǧHǦLF&Q3024DZ0ǰ4F2#ǩXǨ\ F( 8<ǫ`ǪdǧHǦLF&Q3024DZ0ǰ4F2#ǩXǨ\ F( F +*  F*p @A%$ǵǴ'`AZIMUTHAL EQUIDISTANTInput data errorazim-inv@ !TD-=|׽?!TD-=|׽=|׽=|׽ ??( 48< HLP \`d ptx            0 8<@ HL4     ( 048 @D` ld th       $ ,0D PTl tx       ( 48X t |x       (,D ` hl    , 48P h ptl @p H-"hX%\XD(F '(%(((H8! ,@`0`J{, ` ` ` ` ` (`  0`   $ / : E ( h  Q Y [ ] a 0 e h j o t y  Q4  ,   !    !  `aziminv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/aziminv.c8600089373777/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c aziminv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12aziminvintr_majcenter_loncenter_latfalse_eastfalse_northaziminvxylonlatrhzsinzcosztempcon/usr/include/math.hlucy:/usr/include/math.h86000893713775__infinityerrnosigngamaziminvinttsincosptitleradiuscenlonmeroriginoffsetpaziminvsqrtp_errorfabsasinzadjust_lonatan2sin_gp_disp} E}I   $,3:DKS [`hms~     4p ]! pp) @.p 7p @ (Jp@UpXeqconfor.o/ 860008758 2145 20 100664 8624 ` ELF4(  %-d9>CHMRZ`ejryd.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngameqconforintsqrte0fne1fne2fne3fntsincosmsfnzmlfnfabsp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconforadjust_lonsincos_gp_disp<'!'40ptx|ǥpǤt%$ǧxǦ|'& ǩǨ)(ǫǪ+*DZǰ1`0ddzDz3h2l%$ '&F&"lhǫhǪl<?F*TDDF0$L%H-H,L 0!@ D-H,L 0! $-H,L 0!( ,-H,L 0!0 4-H,L 0!8 <ǭǬ'` 'X0ǧXǦ\ǯ`Ǯd-@,D 0PTdz- ,$Dz/(.,)0(4 +8*<$ 0@DwDZǰǥǤF$ 0'h&lF&<E $ $00 $QǭǬ'` 'X0ǩXǨ\ǯ`Ǯd-@,D 0HLDZ- ,$ǰ/(.,+0*4 382<$ 08<ǥǤǧǦF&# 0)p(tF @>EǫPǪTdzHDzLǥ8Ǥ<ǧ@ǦDF2TF&"F(*t+pdz`Dzd3p2tǥ`Ǥd%p$tǧPǦT1p0tǫ@F02ǪDF*D2|3xDZ- ,$ǰ/(.,%0$4 '8&<$ 0!X \)x(|+X*\F*D%$F$&'9$< 0-,/.  0ǭǬǯǮ 0-, 0ǭǬ 0-h,l/`.d 06$P 0-,/.  0ǭǬ 0-, 0ǭǬ 0-h,l/`.d 0%4'p<'!'40PTX\ǩX- ,$Ǩ\/(.,%0$4 '8&<$ 0HLDZH+x*|ǰL%$F0TF$<8ǩPǨT+* F*C01p0tF0D@ǭ@ǬD 0ǥ8Ǥ<F$)h(l`F(2ǭ@ǬD 0ǧ8Ǧ<1`0dF&32dF2F("%4'PStandard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONICEQUIDISTANT CONIC=|׽=|׽ ( 48< HLP \`d ptx         $( 04, H PTX `d\ x          $ @ HLP X\` hlp x|d       ( H `dT         T ldp |         0 8<@ HLP X\` hlp |x           < DHL TX@ p xt          $ ,0 dh          04, H PTh     p F`(;4%`X ('C(''&4S&F1 !p7d&ِPL, 2` ` ` ` ` (` 0` 8` @` H` P` X`  `` h` 'p` *x` ,` / ; A G L Q \( g0 r8 ~@ ( %       L /d d     ( 0    + & ,   ! &  1 !  `eqconfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/eqconfor.c8600089384499/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c eqconfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorlon_centerlat_origine0e1e2e3eesespml0false_northingfalse_eastingnsgrheqconforintr_majr_minlat1lat2center_loncenter_latfalse_eastfalse_northmodetempsinphicosphims1ms2ml1ml2eqconforlonlatxymlthetarh1/usr/include/math.hlucy:/usr/include/math.h86000893813775__infinityerrnosigngameqconforintsqrte0fne1fne2fne3fntsincosmsfnzmlfnfabsp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconforadjust_lonsincos_gp_disp2F^I2  %*/49>FLQV^emvd &      $%+/04 ]qP ! p) .p 7p @ (JpUp eqconinv.o/ 860008759 2145 20 100664 8976 ` ELF!04(  0%-d9>CHMRZ`ejryd.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngameqconinvintsqrte0fne1fne2fne3fntsincosmsfnzmlfnfabsp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconinvatan2phi3zadjust_lon_gp_disp<'!'40ptx|ǥpǤt%$ǧxǦ|'& ǩǨ)(ǫǪ+*DZǰ1`0ddzDz3h2l%$ '&F&"lhǫhǪl<?F*TDDF0$L%H-H,L 0!@ D-H,L 0! $-H,L 0!( ,-H,L 0!0 4-H,L 0!8 <ǭǬ'` 'X0ǧXǦ\ǯ`Ǯd-@,D 0PTdz- ,$Dz/(.,)0(4 +8*<$ 0@DwDZǰǥǤF$ 0'h&lF&<E $ $00 $QǭǬ'` 'X0ǩXǨ\ǯ`Ǯd-@,D 0HLDZ- ,$ǰ/(.,+0*4 382<$ 08<ǥǤǧǦF&# 0)p(tF @>EǫPǪTdzHDzLǥ8Ǥ<ǧ@ǦDF2TF&"F(*t+pdz`Dzd3p2tǥ`Ǥd%p$tǧPǦT1p0tǫ@F02ǪDF*D2|3xDZ- ,$ǰ/(.,%0$4 '8&<$ 0!X \)x(|+X*\F*D%$F$&'9$< 0-,/.  0ǭǬǯǮ 0-, 0ǭǬ 0-h,l/`.d 06$P 0-,/.  0ǭǬ 0-, 0ǭǬ 0-h,l/`.d 0%4'p<'!'<8hlptDǥhǤl'h&lF&"lhDZp+*ǰt%`$dF0TF$tpDXDP)p(tF(P>EDZhǰlǥpF0ǤtF$! F&8`d<?DHD@PTǫhǪlǥpF*TǤtF$$ F2F 8d`<DHD@PTDXDPHLǥ`ǤdDDF0 2EdzPDzTǧhǦlǩpF&Ǩt F(8HLǫ`Ǫd%$F$T'x&|F04\X/ .$ǭX)((,Ǭ\+0*4'D%8$<(  $|8ǧHǦL1p0tF04)( F(x8D D%<'hStandard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONICEQUIDISTANT CONIC=|׽=|׽ ( 48< HLP \`d ptx         $( 04, H PTX `d\ x          $ @ HLP X\` hlp x|d       ( H `dT         T ldp |         0 8<@ HLP X\` hlp |x           < DHL TX@ p xt          $ ,0 dh      h      $ ( < D H L T X \ d h l t x @        p lX;X6,%Hd( ('C(''&4S&F1 (H##!p7d&ِhL, 4` ` ` ` ` (` 0` 8` @` H` P` X`  `` h` 'p` *x` ,` / ; A G L Q \( g0 r8 ~@ ( %       L /d d     ( 2     + & ,   ! &  3 !  `eqconinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/eqconinv.c8600089394740/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c eqconinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorlon_centerlat_origine0e1e2e3eesespml0false_northingfalse_eastingnsgrheqconinvintr_majr_minlat1lat2center_loncenter_latfalse_eastfalse_northmodetempsinphicosphims1ms2ml1ml2eqconinvxylonlatrh1mlconthetaflag/usr/include/math.hlucy:/usr/include/math.h86000893913775__infinityerrnosigngameqconinvintsqrte0fne1fne2fne3fntsincosmsfnzmlfnfabsp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconinvatan2phi3zadjust_lon_gp_disp4lI4  %*/49>FLQV^emvd &      $%+124 ]qP 0! ).p  7p @ 8JpUp 8equifor.o/ 860008760 2145 20 100664 4112 ` ELF04( `0%-X8?FPW_Xgrv.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncos_gp_disp<'!'௿ $(,ǥ Ǥ$%$ǧ(Ǧ,'& ǩ0Ǩ4)(ǫ@ǪD+*DZ8ǰ<1 0$$ -, -,  -, - ,$/. %' <'!'PTX\ǥPǤT'&  F&#8<-, ǫ8Ǫ<)(F*D% $$`F0F$ǫXǪ\)(F*D32dF2%'PEQUIRECTANGULAR ( 48< HLP \`d ptx            $ X\          0p ( HD % , p x  xDF  *<XVPFT, ` ` ` ` `     $ / ( @ X ;X C G K M ( O V ] b i m ;  ,   !    !  `equifor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/equifor.c8600089412925/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c equifor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorlon_centerlat_originfalse_northingfalse_eastingequiforintr_majcenter_lonlat1false_eastfalse_northequiforlonlatxysinphicosphidloncoslonkspg/usr/include/math.hlucy:/usr/include/math.h86000894113775__infinityerrnosigngamequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncos_gp_dispooI  $+2<CKX S^d      4 D] `!)0.p  7p@ JpUphequiinv.o/ 860008761 2145 20 100664 4532 ` ELF4( @0%-X8?FPW_Xglt.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamequiinvintptitleradiuscenlonmeroriginoffsetpequiinvfabsp_erroradjust_loncos_gp_disp<'!'د(,04ǥ(Ǥ,%$ǧ0Ǧ4'& ǩ8Ǩ<)(ǫHǪL+*DZ@ǰD1 0$$ -, -,  -, - ,$/. %'(<'!'$ `dhlǥ`Ǥd' &$F&"d`ǫhǪl10F0TlhǥhǤl'&tF&"t +0*4F P<E $ $$ $-, F DZ`32ǰdF2)( F$ F(3p %$ǵǴ'`EQUIRECTANGULARInput data errorequi-inv?!TD- 6?6?( 48< HLP \`d ptx            $ X\      8 D< L@ ` hld    0p  `"!% t |  D TF '((*=XV0`G[, ` ` ` ` `     $ / ( ; @ X @X H J L P 0 T [ b g n r t @  ,   !    !  `equiinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/equiinv.c8600089423058/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c equiinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorlon_centerlat_originfalse_northingfalse_eastingequiinvintr_majcenter_lonlat1false_eastfalse_northtempequiinvxylonlatsinphicosphidloncoslonkspg/usr/include/math.hlucy:/usr/include/math.h86000894213775__infinityerrnosigngamequiinvintptitleradiuscenlonmeroriginoffsetpequiinvfabsp_erroradjust_loncos_gp_dispttI  $+2<CKX SX`kp      40 d]P!@@)0.p  7p@ 0JpUpgnomfor.o/ 860008763 2145 20 100664 4864 ` ELF 4( @@%-t8@GNU\dtDlw{.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamgnomforinttsincosptitleradiuscenloncenlatoffsetpgnomforadjust_loncosp_errorsin_gp_disp<'!'௿ $(,ǥ Ǥ$%$ǧ(Ǧ,'&ǩ0Ǩ4)( ǫ8Ǫ<+(*,DZ@ǰD1004ǭ0Ǭ4$ $ $ ǭ Ǭ$ ǭ(Ǭ, ǭ0Ǭ4 -(,,/0.4 %' <'!'PTX\ǥPǤT'& F&#HLǭXǬ\'@ '8ǭHǬL 04ǫ@)(ǪDǥ8F*DǤ<3 2$Ǩ4F$ǩ0F(2F*,(ǥ(Ǥ,D8D0F& >E $  $,C$<?DHD@DZ(ǰ,F0B$ ǭHǬL ǥ Ǥ$32ǩ8F$Ǩ<`3(F(42,F0F2Qǩ@' &$ǨDdz8F(4Dz<+*Ǧ4F2Qǧ0d3F&"Ǥ$ǥ 2F$F((4)0F*4F(%'PGNOMONICPoint projects into infinitygnomfor-conv ( 48< HLP \`d ptx       $ ,04 <@( tx      ,0x |        (,0 DHX `pt @p , h$ " %  ( p 4F '(1 2Dt]PNh, ` ` ` ` ` (` 0`     & 1 < ( \  t Ht P T X Z ( \ a h o v x , HD  ,   !    !  `gnomfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/gnomfor.c8600089433516/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c gnomfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerlat_centerRsin_p13cos_p13false_eastingfalse_northinggnomforintrcenter_longcenter_latfalse_eastfalse_northgnomforlonlatxydlonsinphicosphicoslongksp/usr/include/math.hlucy:/usr/include/math.h86000894313775__infinityerrnosigngamgnomforinttsincosptitleradiuscenloncenlatoffsetpgnomforadjust_loncosp_errorsin_gp_disp| )|I   $,3:AHPt Xcgot     4@ t]p!0@)p@.p p 7p@ HJpUp gnominv.o/ 860008764 2145 20 100664 5888 ` ELF 4( @@%-t8@GNU\dtlqv{.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamgnominvinttsincosptitleradiuscenloncenlatoffsetpgnominvsqrtatanfabsasinzadjust_lonatan2sin_gp_disp<'!'௿ $(,ǥ Ǥ$%$ǧ(Ǧ,'&ǩ0Ǩ4)( ǫ8Ǫ<+(*,DZ@ǰD1004ǭ0Ǭ4$ $ $ ǭ Ǭ$ ǭ(Ǭ, ǭ0Ǭ4 -(,,/0.4 %' <'!'$ X\`dǥXǤ\'(&,F&"\Xǫ`Ǫd1004F0Td`ǥXǤ\ǩ`F$!ǨdF(B F*3 PTDZPǰT32 F2 HLǭHǬL'@ '8 h%$ǭPǬT )(F(>E l'& %ǫ8Ǫ<10ǥ`F0TǤdǩ@ǨDF(!+ *$ǤTǥPF*4F$ F(l -,  '&F&40ǭ0Ǭ4 1 0$F0>E7DD%$ F$>Eǯ`ǮdǭXǬ\ F s F )( F(h !l%ǭXǬ\ǯ`Ǯd F c F '& F43h U%l-, ǫ8Ǫ<10F0F$T40ǭ0Ǭ4 )((,F(<EǭXǬ\ '0&4F&<E"%DZXǰ\ǫ@ǪDF*3 2$ǩ0Ǩ4F2#ǧPǦT F&C F 10 F0h @A%$ǵǴ'XGNOMONIC=|׽?!TD-=|׽=|׽=|׽ ??( 48< HLP \`d ptx       $ ,04 <@( tx    ,0( H h pt     $ D LPH d lp      P l txp       < DHx    @p @ * @! %4 4F (%(((H81 2Dt]0XNz, ` ` ` ` ` (` 0`     & 1 < ( \  t Ht P R T X 0 \ _ a f k p H  ,   !    !  `gnominv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/gnominv.c8600089443814/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c gnominv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerlat_centerRsin_p13cos_p13false_eastingfalse_northinggnominvintrcenter_longcenter_latfalse_eastfalse_northgnominvxylonlatrhzsinzcoszcon/usr/include/math.hlucy:/usr/include/math.h86000894413775__infinityerrnosigngamgnominvinttsincosptitleradiuscenloncenlatoffsetpgnominvsqrtatanfabsasinzadjust_lonatan2sin_gp_dispo?oI  $,3:AHPt X]bgmx~     4p ]!@)@.p  7p @ pJp Up goodfor.o/ 860008765 2145 20 100664 8616 ` ELF4(  %-8?FNY]afns.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamgoodforintptitleradiusgoodforadjust_loncossinfabsp_errorsign_gp_disp<'!'௿ $ǥ Ǥ$%$'P&T%)X(\% +`*d'  1h0l'9103p2t% $%x$|%)%($,'&%JG0F4)(%ki8h<+*%@D10%HL32%PT%$%X\'&'h)(F(2  10'9h32F2$ %'&%h)(F(2  10%)h32F2$%'&%Jh)(F(2J$K 10%kh32F2d,e('&%h)(F(24010%h32F2<8'&%h)(F(2D@10%h32F2LH'&'h)(F(2 T P10'9h32 F2$\%X$ ǭ Ǭ$ %' <'!'$ X\`dǥ`Ǥd'&F$0>EǩXǨ\+*F*@>E0$0yDZ`ǰdDDF0>EǥXǤ\' &$F& >E$0$0_ǩ`Ǩd+(*,F(P>E,DZXǰ\3024F2>E$0ǥXǤ\'8&<F& >E$0ǩXǨ\+@*DF*@>E$ 0$ 0*DZXǰ\3H2LF2>E$ 0ǥXǤ\'P&TF& >E$ 0ǩXǨ\+X*\F*@>E$ 0$ 00$$ $ $$$ 20%(H!32DZXǰ\ F2 PTǭ`Ǭd ǧPǦT%$0F&" X%hlh!F(űŰhF0Tǧ`Ǧd%$lF&"0%(H!10ǫXǪ\ F0S PTdz`DzdHLǭ`Ǭd %`$dF$<84ǭHǬL ǭHǬL F ǩHǨLDZ8ǰlucy:/tmp_mnt/home/hdf/sgi/gctpc/source/goodfor.c8600089466077/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c goodfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceRlon_centerfeastgoodforintrgoodforlonlatxydelta_lonthetadelta_thetaconstantiregion/usr/include/math.hlucy:/usr/include/math.h86000894613775__infinityerrnosigngamgoodforintptitleradiusgoodforadjust_loncossinfabsp_errorsign_gp_disp*!t*I!  $+2 :EIMRZ`     4  T]|0 ! ).p  7p@ Jp Upgoodinv.o/ 860008767 2145 20 100664 11776 ` ELF, 4( %-8?F lNS[_jotx.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamgoodinvintptitleradiusgoodinvfabsp_errorcosadjust_lonsignasinsin_gp_disp<'!'௿ $ǥ Ǥ$%$'H&L%)P(T% +X*\'  1`0d'9103h2l% $%p$t%)%($,'x&|%JG0F4)(%ki8h<+*%@D10%HL32%PT%$%X\'&'h)(F(2  10'9h32F2$ %'&%h)(F(2  10%)h32F2$%'&%Jh)(F(2J$K 10%kh32F2d,e('&%h)(F(24010%h32F2<8'&%h)(F(2D@10%h32F2LH'&'h)(F(2 T P10'9h32F2$\%X$ ǭ Ǭ$ %' <'!'@DHLǥH'&ǤL)( F(2F$P>EDZ@32ǰD'&F&F(>E$$$ǥHǤLDXDPF$P>Edz@'&DzD10F02F(>E$$$${ǥH+*ǤL' &$F&TF$>E8dz@)(DzD+(*,F*AF&>E$%$ǥ@10ǤD)0(4F(F* >E$$dz@'&DzD180<F02F(>E$ $$ $6ǥ@+*ǤD'@&DF&TF0 >E$ %$dz@)(DzD+H*LF*AF&>E$ $ǥ@10ǤD)P(TF(F* >E$ $$ $$'9h@!dz@DzDF&D@$$!$! $! $!$!$ !tǩHǨL%$TF$BJKTml 3X2\F <E $  $4P$TōŌ '`&dF&,(ǭ(Ǭ, )h(lF @<E$TŭŬ ǥ@ǤD+*$F*x'!F2!10F02,(ǭ(Ǭ, P $ P%kK`!PŋŊǭHǬL DF!%p$t32F2!ǤLǥHF&B(|)xF2AF$TF&<8ǭ8Ǭ< <?D(D F <E$ǭ8Ǭ< 04ǭ0Ǭ4 ǫ@ǪD)($32F2Dx'!)F0(PF&QF($P10+*F*<E$<@D8D0ǥ0Ǥ4F$3 <@DHD@dz0Dz4F2D'&F0F&Q<8ǭ8Ǭ< <?DHD@F @<E|$ǭ8Ǭ< T@Adz@DzDDDF0<EP+*gf)(F&QF( <Edz@DzDDDF2<EP'&ŋŊ)(F&QF( <E PųŲF $P'&F&P<E %$F* <E#$$$P)(32F2@<E 10F(<E $$$P'&+*F*0<E %$F& <E$$$APsr)(F(<E 10F2<E$$$PūŪ'&F&P<E %$F* <E$$$P32 F2@<E 10F(<E$$$P'&+*F*0<E % $$F& <E$$$P32)((,F(<E 1004F2<Em$$$APkj'8&<F&P<E %@$DF* <ES$$$ PũŨ3H2LF2@<E 1P0TF(<E9$$$ P+X*\F*0<E %`$dF& <E$$$ P32)h(lF(<E 1p0tF2<E$%'@GOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverse]]?R8-h?R8-hWJ<_R8-@WJ<_R8-@?WJM@5AI?WJM@5AIտ]]?R8-h?R8-hWJ<_R8-@WJ<_R8-@?WJM@5AI?WJM@5AI?iyWJMWJMiy]WJM?WJU]WJM?WJU?!TD-?!TD-=|׽? _?f;?d) !TG@ !TD-@ !TD-=|׽@ !TD-=|׽ !TGWJM !TGWJMWJM@ !TGWJM@ !TG !TG]]WJM !TG]]WJMWJM?WJU?WJU@ !TGWJM?WJU?WJU@ !TG 66  ,04 <@8 DP X\T `l txp |             $0 8<4 @L TXP \h ptl x           $ ,0 (D LPT \`H Xt | x            4 <@D LP8 Hd lpt |h x       D LPT \`|     D LPT \`|        X `dh pt    0 8      ( @ \ dh|       L T x          ( H d l p t |        , 4 8 P        0 8 < @ L P          , 4 8 l x |        < HLd lp    4 <@t     D PTl tx    $< DH`p b"e(#`#"X1$\%p''x"X(4FHF (((((H((('(((HXH (P @Y*, ` `h`          (      T  l  ,   !  0 @ 0 @    !  `goodinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/goodinv.c8600089477190/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c goodinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceRlon_centerfeastgoodinvintrgoodinvxylonlatargthetatempregion/usr/include/math.hlucy:/usr/include/math.h86000894713775__infinityerrnosigngamgoodinvintptitleradiusgoodinvfabsp_errorcosadjust_lonsignasinsin_gp_dispb!I!  $+2 :?GKV[`d     40 d]P!)`.p ` 7p@  Jp"8 Up"X gvnspfor.o/ 860008768 2145 20 100664 5276 ` ELF4( @@%-9AHOV]dllu.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamgvnspforinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspforadjust_loncosp_errorsin_gp_disp<'!'௿ $(,ǥ Ǥ$%$ǧ(Ǧ,)(<?F(2DDF0T23ǥ0Ǥ4%$ǧ8Ǧ<'& ǩ@ǨD)0(4ǫHǪL+8*<ǭ8Ǭ<$  $($ ǭ Ǭ$ ǭ(Ǭ, $(ǭ0Ǭ4 ǭ8Ǭ< -0,4/8.< %' <'!'PTX\ǥPǤT'& F&#HLǭXǬ\'@ '8ǭHǬL 04ǫ@) ($ǪDǥ8F*DǤ<3(2,Ǩ4F$ǩ0F(2F*,(<?D8D0)(ǥ(F(4Ǥ,F0 <E $T $pH$D+*<?Dǩ(Ǩ,F2QF(QF$4$ ǭHǬL ǫ Ǫ$32ǧ8F*Ǧ<`30F&A24F$F2ǧ@)((,ǦDdz8F&ADz<1 0$Ǩ4F2ǩ0d3F(QǪ$ǫ 2F*F&$&<'8F0AF&$%'PGENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for ( 48< HL` lhp |           4$ @ \ x  |    < \ dhl      @ \ dhx     @p  0 ' $ H P%  \ Pt4F '(! 6JrPUm, "` ` ` ` ` (` 0` 8`     " . 9 D( (   P Y ] a c ( e j q x   T Pl  ,   !   ! !  `gvnspfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/gvnspfor.c8600089483903/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c gvnspfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerlat_centerRpsin_p15cos_p15false_eastingfalse_northinggvnspforintrhcenter_longcenter_latfalse_eastfalse_northgvnspforlonlatxydlonsinphicosphicoslongksp/usr/include/math.hlucy:/usr/include/math.h86000894813775__infinityerrnosigngamgvnspforinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspforadjust_loncosp_errorsin_gp_disp" .I"  %-4;BIPX alpx|      4P ]@!)@@.p @ 7p`@ xJp 8Up Plgvnspinv.o/ 860008769 2145 20 100664 6780 ` ELF4( @%-9AHOV]dluz.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamgvnspinvinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspinvsqrtp_errorasinzfabsadjust_lonatan2sin_gp_disp<'!'௿ $(,ǥ Ǥ$%$ǧ(Ǧ,)(<?F(2DDF0T23ǥ0Ǥ4%$ǧ8Ǧ<'& ǩ@ǨD)0(4ǫHǪL+8*<ǭ8Ǭ<$  $($ ǭ Ǭ$ ǭ(Ǭ, $(ǭ0Ǭ4 ǭ8Ǭ< -0,4/8.< %' <'!'$ hlptǥhǤl'0&4F&"lhǫpǪt180<F0TtpǥhǤlǩpF$!ǨtF(B F*3 `dDZ`ǰd32F2\XD0)(<?D8F&BTPD10<?DF2LHǩPǨTǧHǦLF&C ǫXǪ\ F*<E $X $l $DZXǰ\ǥHF0ǤLǧPǦT<?F$DDF&B F*dzPDzTǥXǤ\ F$+*F2!F QF&DF0$<8ǭ8Ǭ< @Dǭ@ǬD'8 '0 x)(ǭ`Ǭd 'x&|F&>E |+* %ǥ0Ǥ41 0$ǩpF0$Ǩtǧ8Ǧ<F&B%($,Ǩdǩ`F$TF( F&| -,  +*F*TPǭPǬT 10F0>E7DD)( F(>EǯpǮtǭhǬl F s F '& F&x !l%ǭhǬlǯpǮt F c F +* F4Sx U%|-, ǥ0Ǥ41 0$F0F($TPǭPǬT '&F&<EǭhǬl +*F*<E"%DZhǰlǥ8Ǥ<F$3(2,ǧPǦTF2Cǫ`Ǫd F*3 F 10 F0x @A%$ǵǴ'hGENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-for=|׽?!TD-=|׽=|׽=|׽ ??( 48< HL` lhp |           4$ @ \ x  |   (,T p |     ,$ 4( t       < DH` hl       $ @ HLd pt       @ \ dh      $< T \`X @p P/$8%%\T4F '(%(((H8! 4Hr0hT, #` ` ` ` ` (` 0` 8`     " . 9 D( (   P Y [ ] a 0 !e h j n r t y  P  ,   !   " !  `gvnspinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/gvnspinv.c8600089504409/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c gvnspinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerlat_centerRpsin_p15cos_p15false_eastingfalse_northinggvnspinvintrhcenter_longcenter_latfalse_eastfalse_northgvnspinvxylonlatrhrconcomzsinzcosz/usr/include/math.hlucy:/usr/include/math.h86000895013775__infinityerrnosigngamgvnspinvinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspinvsqrtp_errorasinzfabsadjust_lonatan2sin_gp_disp~#N~I#  %-4;BIPX afnty      !4 ]! `) @.p 7p @ 88JppUp hamfor.o/ 860008771 2145 20 100664 4132 ` ELFD4(  %-7>ELT[fkos.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamhamforintptitleradiuscenlonoffsetphamforadjust_lonsqrtcossin_gp_disp<'!'د(,04ǥ(Ǥ,%$ ǧ0Ǧ4'&ǩ8Ǩ<)(ǫ@ǪD+*$ ǭ(Ǭ, ǭ0Ǭ4 -,/. %'(<'!',(PTX\ $ǥPǤT'& F&#(HLǭXǬ\ (<@DXǩHǨLDPF  F*CF F6(<?DDF2 (%$ '& F&"F BD@ǭXǬ\ (<@DDZHǰLDF  F2<@D8ǥ@ǤDD0(F&"`32F4BF*F2ǭXǬ\ (ǧ@ǦDF&+*dF*D%,ǵǴǷ Ƕ$'PHAMMER?fe> ( 48< HLP \`d ptx |     T dh`      $ P |    p   T0% \ l x 0 tTFx(!(.?GPIW , ` ` ` `      (     ' + / 1 8 3 8     ,   !    !  `hamfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/hamfor.c8600089512977/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c hamfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northinghamforintrcenter_longfalse_eastfalse_northihamforlonlatxydlonfac/usr/include/math.hlucy:/usr/include/math.h86000895113775__infinityerrnosigngamhamforintptitleradiuscenlonoffsetphamforadjust_lonsqrtcossin_gp_disp<<I  #*18@ GRW[`       4  T]|0!@)P .p P 7pp@ JpUp0haminv.o/ 860008772 2145 20 100664 4144 ` ELFP4(  %-7>ELT[`kqw.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamhaminvintptitleradiuscenlonoffsetphaminvsqrtadjust_lonatan2asinz_gp_disp<'!'د(,04ǥ(Ǥ,%$ ǧ0Ǧ4'&ǩ8Ǩ<)(ǫ@ǪD+*$ ǭ(Ǭ, ǭ0Ǭ4 -,/. %'(<'!'$ @DHLǥ@ǤD'&F&"D@ǫHǪL10F0TLH<@D(D '& DZ@F&"ǰD<@D(D F&BF0ǰLDZHF$F0F(Q F23<@D(D F$40<@D8ǩ@ǨDDZ0ǰ4D0F0C32 <@F21D0D8F2"F(DǨLǩHF&F(DF$T F0<@D8 D0F F&%$ F$SP ǩHǨLdz0Dz4F2D'& F& F&ST %$ǵǴ'@HAMMER ??( 48< HLP \`d ptx |     L X\p |   ,08 |     p   h(@% l p  @ TF((.?G0@IX , ` ` ` `      (     ' ) + / 0 3 8     ,   !    !  `haminv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/haminv.c8600089522988/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c haminv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northinghaminvintrcenter_longfalse_eastfalse_northihaminvxylonlatdlonfac/usr/include/math.hlucy:/usr/include/math.h86000895213775__infinityerrnosigngamhaminvintptitleradiuscenlonoffsetphaminvsqrtadjust_lonatan2asinz_gp_disp< <I  #*18@ GLW]d       4  T]@!P)` .p ` 7p@ Jp(Up@imolwfor.o/ 860008773 2145 20 100664 6864 ` ELF4( Pp%-T9@GTtP[_chp.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamimolwforintptitleradiusimolwforadjust_lonsincosfabsp_error_gp_disp<'!'௿ $ǥ Ǥ$%$'X&\%)`(d% +h*l'  1p0t'9103x2|% $%$%)%($,'&%J8)(F(2JK10%k832F2d e'&%8)(F(210%832F2'&%8)(F(2$ 10%832F2,($ ǭ Ǭ$ %' <'!'$ X\`dǥ`ǤdD8D0F$0>ECǩXǨ\+*F(P>E 10F0@<E,0dzXDz\%$F2 >E '&F&>EǫXǪ\)(F*@>E 10F0P<E$0$0BǥXǤ\32F$>E '&F& <E$,0ǩXǨ\+*F(P>E 10F0@>EdzXDz\%$ F2 >E '&F&<E$0$00 P%kK`!ʼnňǫXǪ\F(S PTDZ`ǰdHLǭ`Ǭd %$F$<84ǭHǬL ǭHǬL F ǧHǦLǩ8Ǩlucy:/tmp_mnt/home/hdf/sgi/gctpc/source/imolwfor.c8600089544880/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c imolwfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceRlon_centerfeastimolwforintrimolwforlonlatxydelta_lonthetadelta_thetaconiregion/usr/include/math.hlucy:/usr/include/math.h86000895413775__infinityerrnosigngamimolwforintptitleradiusimolwforadjust_lonsincosfabsp_error_gp_disp*!N*I!  %,3T <GKOT\    4 D]y ! P) @p.p @ 7p `@ x0Jp Up(imolwinv.o/ 860008775 2145 20 100664 7060 ` ELF4( `@p%-T9@GT PU`dh.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamimolwinvintptitleradiusimolwinvasinadjust_loncossin_gp_disp<'!'௿ $ǥ Ǥ$%$'(&,%)0(4% +8*<'  1@0D'9103H2L% $%P$T%)%($,'&%J8)X(\F(2JK10%k83`2dF2d e'&%8)h(lF(210%83p2tF2'&%8)x(|F(2$ 10%832F2,($ ǭ Ǭ$ %' <'!'$ HLPTǥPǤTD8D0F$0>E&ǩH+*ǨL10F0TF2@>E4ǥH'&ǤL+*F*4F0 >E$4$4%ǩH32ǨL'&F&F*@>E$4ǥH10ǤL32F2F& >E$4$44 P%k8K`!ŋŊǩHǨLF*DLHǩP32ǨT%$F$ F&C @Dǭ@ǬD F ǩH+*ǨL104F0T p%!F2 F$A F*3X !<@DDdz@DzDF2 <@DHD@ǥ@ǤD F$A10F F& F0S\ 4 XSR)(F(<E %$F2 <E$4$a+XŇņ+*F*0<E 10F&<EXũŨ32F(<E %$F$@<E$4$X'&F&P<E 10F*<Eg$4$X32)(F(<E %$ F2 <EM$4$+X'&+*F*0<E 10F&<EXIH3 2$F(<E %($,F$@<E$4$aXŋŊ'0&4F&P<E 180<F*<E$%$ǵǴ'HINTERRUPTED MOLLWEIDE EQUAL-AREA?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^f~?+}8k=+}8k=?f~?f;?d)@ !TD-?WJy?f ?f ?WJyֿ]?WJyֿ]yk?WJy?WJy@5AI@5AI?WJyֿ5A?WJyֿ5A?WJy ??  ,04 <@8 DP X\T `l txp |            $(  < DHL TX@ Pl tx| p          TX    < DHL TX       < X `dh pt     @ LPh pt     (,` lp   0 <@X `d    0pp P0=1\`|  4FHF(H((H 'CT 0HJo, ` `8`   < T T     0       ,   !  0@ 0@    !  `imolwinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/imolwinv.c8600089554281/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c imolwinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceRlon_centerfeastimolwinvintrimolwinvxylonlatthetatempregion/usr/include/math.hlucy:/usr/include/math.h86000895513775__infinityerrnosigngamimolwinvintptitleradiusimolwinvasinadjust_loncossin_gp_disp!MI!  %,3T <ALPT   4 4]q`! p@) p.p 7p @ Jp Uplamazfor.o/ 860008777 2145 20 100664 5936 ` ELFP4( `@%-@3<GNUtaipw~t.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngam__iob_lastbuf_bufendtab_sibuf_sobuflamazforinttsincosptitleradiuscenloncenlatoffsetplamazforadjust_lonsprintfp_errorsqrt_gp_disp<'!'௿ $(,ǥ Ǥ$%$ǧ(Ǧ,'&ǩ0Ǩ4)( ǫ8Ǫ<+(*,DZ@ǰD1004ǭ0Ǭ4$ $ $ ǭ Ǭ$ ǭ(Ǭ, ǭ0Ǭ4 -(,,/0.4 %' <'!'hǥǤ'& F&#ǭǬ'x 'pǭǬ' 'ǫx)(Ǫ|ǥpF*DǤt3 2$ǨF$ǩF(2F*lh<D8ǥhǤlD0F& 2E<@DHD@10F0B'$$ DPDX '$ $LE$q<?DDǥhǤl<@DHD@F$ F&C10F0d`dz`DzdǥpǤtǧF$Ǧ+(F&D*,F*ǩx% $$Ǩ|ǫpF(!Ǫt10ǤF*ǥǪdǫ`F$$4%0F(4F*F$%'LAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward ( 48< HLP \`d ptx         $ ,04 <@( tx      ,0       $(X `h|   @p , P/ |0 \ $l 4F ((! 2Dt]Mi, "` ` ` ` ` (` 0`   " . 9 D ( \ t Pt Y ] a c ( e o }     x P  ,  , K)`R)`i` Y%`^ %`c@%`i`%`oh%`!`u)`  !   !0; !  ` !   0c  00lamazfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/lamazfor.c8600089574211/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c lamazfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerlat_centerRsin_lat_ocos_lat_ofalse_eastingfalse_northinglamazforintrcenter_longcenter_latfalse_eastfalse_northlamazforlonlatxydelta_lonsin_delta_loncos_delta_lonsin_latcos_latgkspmess/usr/include/math.hlucy:/usr/include/math.h86000895713775/usr/include/stdio.hlucy:/usr/include/stdio.h86000895710773size_tfpos_t_cnt_ptr_base_flag_fileFILE__infinityerrnosigngam__iob_lastbuf_bufendtab_sibuf_sobuflamazforinttsincosptitleradiuscenloncenlatoffsetplamazforadjust_lonsprintfp_errorsqrt_gp_disp",I"z$ +1 @(3%:+A MU\cjqyt         4 ]!!`)P@.p P 7pp@ PJp Up `lamazinv.o/ 860008778 2145 20 100664 5960 ` ELFh4(  `@%-t9AHOV]etns{.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamlamazinvinttsincosptitleradiuscenloncenlatoffsetplamazinvsqrtp_errorasinzfabssinadjust_lonatan2_gp_disp<'!'௿ $(,ǥ Ǥ$%$ǧ(Ǧ,'&ǩ0Ǩ4)( ǫ8Ǫ<+(*,DZ@ǰD1004ǭ0Ǭ4$ $ $ ǭ Ǭ$ ǭ(Ǭ, ǭ0Ǭ4 -(,,/0.4 %' <'!'$ X\`dǥXǤ\'(&,F&"\Xǫ`Ǫd1004F0Td`ǥXǤ\ǩ`F$!ǨdF(B F*3 PT<@DD32ǩPF2ǨTF$A40<?Dǫ0Ǫ4DF*<E $  $4 $sǭ0Ǭ4 <@DD F2LHǭHǬL'@ '8 h%$ǭPǬT 'H&LF 0<EDZ8+*ǰ<ǥ@F0TǤD) ($ǪdF$Aǫ`ǨTǩPF*4F( F$l -,  'P&TF&40ǭ0Ǭ4 1X0\F <E:l  ǩ8Ǩ<32F2F$A40ǫ0Ǫ4DDF0P2EdzXDz\ǩ@ǨDF(' &$ǫ0Ǫ4F&#DZPǰT F0S F 32 F2h !2D(D )( F$@<EǭXǬ\ǯ`Ǯd F c F '& F43h ǯ`ǮdǭXǬ\ F s F +* F*h !l10 QP%$ǵǴ'XLAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverse=|׽?!TD-=|׽ ??( 48< HLP \`d ptx       $ ,04 <@( tx   $ ,0x |      $ ,0H PTX lp       4 P X\      $D ` hld     @p @ 8* x! %lX 4F '((((% 3Et]0XNt, ` ` ` ` ` (` 0`   " . 9 D ( \ t Pt Y [ ] a 0 e h j p v  P  ,   !    !  `lamazinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/lamazinv.c8600089584288/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c lamazinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerlat_centerRsin_lat_ocos_lat_ofalse_eastingfalse_northinglamazinvintrcenter_longcenter_latfalse_eastfalse_northlamazinvxylonlatRhzsin_zcos_ztemp/usr/include/math.hlucy:/usr/include/math.h86000895813775__infinityerrnosigngamlamazinvinttsincosptitleradiuscenloncenlatoffsetplamazinvsqrtp_errorasinzfabssinadjust_lonatan2_gp_disp{={I  %-4;BIQt Z_gmrv     4p ] !`) 0@.p 0 7p P@ hXJp Up lamccfor.o/ 860008780 2145 20 100664 7792 ` ELF4( `%-9>FKSY_cgkrz.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamlamccforintfabsp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccforadjust_loncos_gp_disp<'!',( $ǥǤ%$ǧǦ'& ǩǨ)P(TǫǪ+H*LDZǰdzDzF2 (%$F$<E $ $@()$)'& )(F(2TPDZPǰT<?F0D(D F2!&'-, (! ǩǨ) ($ǫǪ+(*,ǭǬ'x 'p(DZxǰ|hlǥpǤtǯxǮ|-, (`ddzxDz|ǯǮ-, (@DǭǬ'x 'p(ǧpǦtǯxǮ|-, (X\ǩxǨ|ǯǮ-, (8<-(,, (x|ǫx-,Ǫ|/(., (HLDZǰǥǤF$ (32F <Eǧ`ǦdǩXǨ\F(3 (ǫ@ǪDDZ8ǰ<F  F0SF (%0$4dzhDzl3024ǭ@ǬD/0.4 (ǧ`Ǧd)0(4F(F*40<18ǭHǬL/0.4 (%$382<F2"F(&D'@$L (-,/.  (ǭǬǯǮ (- ,$ (ǭǬ (-H,L/P.T (%,ǵ Ǵ$'<'!',(`dhl $ǭhǬl (F %$ F$(X\ǧXǦ\)(F&@<E/ǭhǬl (HLǫHǪLǯhǮl-, (8<ǭ8ǬE $d $(@$,D8D0PTǩ`Ǩd+ *$ F*C(1004F0D@ǭ@ǬD (ǥPǤTF$)H(LpF(2ǭ@ǬD (dzPDzTF21@0DtF$)P(TF(2%,ǵ Ǵ$'`Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedlamcc-for=|׽=|׽?!TD-=|׽ ??0 <@D PTX dhl x|        < HDL TXP l tx|       $( D d |p        D \ dh       $ ,04 HDL \`P t |          $ 8 T \`d lpX     $(@ ` x|l      @ LD TH x        (,0 <@`p X51X8%8<8x H'!8$($V! 'H'#(! 04p!j0`y:, /` ` ` ` ` (` 0` 8` @` H`  P`  ( . 4 9 > D( J0 U8 0 a h o s w {           0 -      & ! ,   ! !  . !  `lamccfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/lamccfor.c8600089606040/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c lamccfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minoresecenter_loncenter_latnsf0rhfalse_eastingfalse_northinglamccforintr_majr_minlat1lat2c_lonc_latfalse_eastfalse_northsin_pocos_poconms1ms2tempts0ts1ts2lamccforlonlatxyconrh1sinphithetats/usr/include/math.hlucy:/usr/include/math.h86000896013775__infinityerrnosigngamlamccforintfabsp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccforadjust_loncos_gp_disp/VI/  %*27?EKOSW^foy !       &,-4 ]A! ) 0`.p 0 7p P@ hJp Up8 Xlamccinv.o/ 860008781 2145 20 100664 7828 ` ELF4( `%-9>FKSY_cgkrz,.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamlamccinvintfabsp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccinvatan2phi2zadjust_lon_gp_disp<'!',( $ǥǤ%$ǧǦ'& ǩǨ)H(LǫǪ+P*TDZǰdzDzF2 (%h$lF$<E $ $@()$)'& )(F(2TPDZPǰT<?F0D(D F2!&'-, (! ǩǨ) ($ǫǪ+(*,ǭǬ'x 'p(DZxǰ|hlǥpǤtǯxǮ|-, (`ddzxDz|ǯǮ-, (@DǭǬ'x 'p(ǧpǦtǯxǮ|-, (X\ǩxǨ|ǯǮ-, (8<-(,, (x|ǫx-,Ǫ|/(., (HLDZǰǥǤF$ (3p2tF <Eǧ`ǦdǩXǨ\F(3 (ǫ@ǪDDZ8ǰ<F  F0SF (%0$4dzhDzl3024ǭ@ǬD/0.4 (ǧ`Ǧd)0(4F(F*40<18ǭHǬL/0.4 (%$382<F2"F(&D'@$L (-,/.  (ǭǬǯǮ (- ,$ (ǭǬ (-H,L/P.T (%,ǵ Ǵ$'<'!'$ PTX\,ǥPǤT'H&LF&"TPDZX+@*Dǰ\%P$TF0TF$\XDXDP)0(4F(P<EDZPǰTǥXF0Ǥ\F$! F& HL<?DHD@@DǫPǪTǥXF*TǤ\F$$ F2F  LH<DHD@@DDXDP04ǥHǤLDDF0 2Edz@DzDǧPǦTǩXF&Ǩ\ F( 04ǫHǪLD(D F$P2E D8D01004F00<E2<?DD)0(4F(D@dzH%$DzL180<F0!ǯ@ǮD F& 8<ǯ8Ǯ<',-, d ,,d)x(|)(ǫ0Ǫ4%0$4F$T3 2$ F2` %$'PEqual Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC=|׽=|׽!TD- ??0 <@D PTX dhl x|        < HDL TXP l tx|       $( D d |p        D \ dh       $ ,04 HDL \`P t |          $ 8 T \`d lpX    ( 48d  0 p |      \ dht   `p 5`31xP%XX P H'!8$($f! (H#(5 03q!jP{:, /` ` ` ` ` (` 0` 8` @` H`  P`  ( . 4 9 > D( J0 U8 0 a h o s w {           ( -     &, ! ,   ! !  . !  `lamccinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/lamccinv.c8600089625152/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c lamccinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minoresecenter_loncenter_latnsf0rhfalse_eastingfalse_northinglamccinvintr_majr_minlat1lat2c_lonc_latfalse_eastfalse_northsin_pocos_poconms1ms2tempts0ts1ts2lamccinvxylonlatrh1contsthetaflag/usr/include/math.hlucy:/usr/include/math.h86000896213775__infinityerrnosigngamlamccinvintfabsp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccinvatan2phi2zadjust_lon_gp_disp/5^I/  %*27?EKOSW^foy !       &,-4 ]Q ! ) `.p 7p @ Jp8UpP dmerfor.o/ 860008783 2145 20 100664 5664 ` ELF@4( `P%-7<@DKS]dlsx.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngammerforintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerforfabsp_errortsfnzadjust_lonlog_gp_disp<'!'40X\`d(, $ǥXǤ\%$ǧ`Ǧd'& ǩhǨl)(ǫpǪt+*DZǰ180<dzxDz|3@2D%$ '&F&"TPǫPǪT<?F*TDDF0$,%(-(,, 0! $ǭpǬt 0ǭpǬt F 0ǭpǬt F 0<?D8F )((,D0F6BF* F23F 01004$ 0-,/.  0-, 0-, 0-@,D/8.< 0%4ǵǴǷ Ƕ$ǹ(Ǹ,'X<'!',(HLPT $ǭPǬT (F %H$L F$('P&TF&>E $  $<(N$5HǭPǬT (8<ǩ8Ǩ<ǯPǮT- ,$ (@DǫHǪL10 F0S(X32%0$4F$+@*DF&F*Dǭ@ǬD (\32%0$4F$+8*lucy:/tmp_mnt/home/hdf/sgi/gctpc/source/merfor.c8600089633506/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c merfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorlon_centerlat_origineesm1false_northingfalse_eastingmerforintr_majr_mincenter_loncenter_latfalse_eastfalse_northtempmerforlonlatxytssinphi/usr/include/math.hlucy:/usr/include/math.h86000896313775__infinityerrnosigngammerforintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerforfabsp_errortsfnzadjust_lonlog_gp_dispu 21uI   #(,07?IPX _dlr}      4p ]!p`)P.p  7p@ Jp Up merinv.o/ 860008784 2145 20 100664 5216 ` ELF4( @P%-7<@DKS]dltsw}.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngammerinvintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerinvexpphi2zadjust_lon_gp_disp<'!'40X\`d(, $ǥXǤ\%$ǧ`Ǧd'& ǩhǨl)(ǫpǪt+*DZǰ180<dzxDz|3@2D%$ '&F&"TPǫPǪT<?F*TDDF0$,%(-(,, 0! $ǭpǬt 0ǭpǬt F 0ǭpǬt F 0<?D8F )((,D0F6BF* F23F 01004$ 0-,/.  0-, 0-, 0-@,D/8.< 0%4ǵǴǷ Ƕ$ǹ(Ǹ,'X<'!'$ @DHL,ǥ@ǤD'@&DF&"D@ǫHǪL180<F0TLHǫH%$ǪL'0&4F&"F T F( 8<ǯ8Ǯ<',- ,$ T ,,ǫ@32ǪD%0$4F$)(F&T F(P !%$'@MERCATOR @ LPT `dh tx|         0 8<@ \ t          $ ,0( D LPH d lpt |h   $(< DHL TX\ |      Pp 0 %X # 8 @%  p8 @Hd(F ! X0J@Ti, !` ` ` ` ` (` 0` 8` @`     & 1 < G( @ S   X _ a c g ( k n w\ Xt  ,   !     !  `merinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/merinv.c8600089653440/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c merinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorlon_centerlat_origineesm1false_northingfalse_eastingmerinvintr_majr_mincenter_loncenter_latfalse_eastfalse_northtempmerinvxylonlattssin_phiiflag/usr/include/math.hlucy:/usr/include/math.h86000896513775__infinityerrnosigngammerinvintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerinvexpphi2zadjust_lon_gp_disp|!/|I!  #(,07?IPX _cit      4P ]@!)P.p  7p@  Jp (Up @@millfor.o/ 860008786 2145 20 100664 3888 ` ELF P4( `  %-8?FMUD]hlp.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngammillforintptitleradiuscenlonoffsetpmillforadjust_lonlogtan_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!'ȯ$ 8<@Dǥ8Ǥ<'& F&# 04ǫ0Ǫ4)( F*D32HF2<@DHǧ@ǦDD@F(210 F0S F F  D0L32 <?F2D8+F&"*F*D%$ǵǴ'8MILLER CYLINDRICAL?!TD- ??( 48< HLP \`d ptx |     L \`X x        ( p  h\x% h  x 4Fh! .= G08GR , ` ` ` `       (   " * . 2 4 0 6 ( "D  ,   !     !  `millfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/millfor.c8600089662955/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c millfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingmillforintrcenter_longfalse_eastfalse_northmillforlonlatxydlon/usr/include/math.hlucy:/usr/include/math.h86000896613775__infinityerrnosigngammillforintptitleradiuscenlonoffsetpmillforadjust_lonlogtan_gp_disp;;I  $+29A ITX\      4 D]y `! ) .p  7p@ Jp`Upxmillinv.o/ 860008788 2145 20 100664 3924 ` ELF t4(   %-8?FMUX]hmq.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngammillinvintptitleradiuscenlonoffsetpmillinvadjust_lonatanexp_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!'ȯ$ 8<@Dǥ8Ǥ<'&F&"<8ǫ@ǪD10F0TD@ǥ8Ǥ<'& F&"+* F*CH DZ@ǰD32 <?F2D8D0 F&# F F  DL)(<@DF(F0T%$ǵǴ'8MILLER CYLINDRICAL?!TD- ??( 48< HLP \`d ptx |     L X\p |      ( 04 p  |% <l  , 4Fh(! .= G08HU , ` ` ` `       (   " * , . 2 0 6 < "X  ,   !     !  `millinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/millinv.c8600089682943/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c millinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingmillinvintrcenter_longfalse_eastfalse_northmillinvxylonlatdlon/usr/include/math.hlucy:/usr/include/math.h86000896813775__infinityerrnosigngammillinvintptitleradiuscenlonoffsetpmillinvadjust_lonatanexp_gp_disp;;I  $+29A ITY`      4 D]z ! ) .p  7p@ JpUpmolwfor.o/ 860008789 2145 20 100664 4936 ` ELFh4( Pp %-8?FMU4]hlpu}.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngammolwforintptitleradiuscenlonoffsetpmolwforadjust_lonsincosfabsp_error_gp_disp<'!'௿ $(,ǥ0Ǥ4%$ǧ8Ǧ<'&ǩ Ǩ$)( ǫ(Ǫ,+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!'$ X\`dǥXǤ\'& F&# PTǩ`ǨdHLǭ`Ǭd +@*DF*<84ǭHǬL ǭHǬL F dzHDzLǧ8Ǧlucy:/tmp_mnt/home/hdf/sgi/gctpc/source/molwfor.c8600089703574/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c molwfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingmolwforintrcenter_longfalse_eastfalse_northmolwforlonlatxydelta_lonthetadelta_thetaconi/usr/include/math.hlucy:/usr/include/math.h86000897013775__infinityerrnosigngammolwforintptitleradiuscenlonoffsetpmolwforadjust_lonsincosfabsp_error_gp_dispX2XI  $+29A ITX\al       40 d]PP!p) .p  7p0@ HPJp Up molwinv.o/ 860008791 2145 20 100664 4860 ` ELF4( @` %-8?FMU]bgrvz.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngammolwinvintptitleradiuscenlonoffsetpmolwinvfabsasinadjust_loncossin_gp_disp<'!'௿ $(,ǥ0Ǥ4%$ǧ8Ǧ<'&ǩ Ǩ$)( ǫ(Ǫ,+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!'$ @DHLǥ@ǤD'&F&"D@ǫHǪL10F0TLHǫH%$ǪL'& F&"F(T40ǭ0Ǭ4 32F <E% $$04ǭ0Ǭ4 8<ǭ8Ǭ< F dz@'(&,DzD+* F*2&'F(F0 F&#P P)0(4F(P<EP382<P10%@$DF0 <EP'H&L<@DXDPǩ8Ǩ<F(S <@DDDZ8ǰ< F0+P*TF$F*240ǭ0Ǭ4 <?DD F <E<?DD04ǭ0Ǭ4 T !%$ǵǴ'@MOLLWEIDE?f;???d) !TD- !TD-@ !TD-@ !TD-@ !TD- ??( 48< HLP \`d ptx |     L X\p |      $ D ` hlp x|      ( 04T     p  ( ' 0 %  dt d 4FxX (7 G0@@W , ` ` ` `       (   " * , . 2 0 6 <  "  ,   !     !  `molwinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/molwinv.c8600089713130/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c molwinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingmolwinvintrcenter_longfalse_eastfalse_northmolwinvxylonlatthetaarg/usr/include/math.hlucy:/usr/include/math.h86000897113775__infinityerrnosigngammolwinvintptitleradiuscenlonoffsetpmolwinvfabsasinadjust_loncossin_gp_disp@ '@I  $+29A INS^bh       40 d]P@!`) .p  7p@ (hJp Up tobleqfor.o/ 860008792 2145 20 100664 6708 ` ELFT4( PP%-D9@GNU\dksDT|.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamobleqforintptitleradiuscenloncenlatgenrptoffsetppblanktsincosobleqforacosatan2sinasincos_gp_disp<'!'௿ $(,ǥ Ǥ$%($,ǧ(Ǧ,'&ǩ0Ǩ4)( ǫ8Ǫ<+*DZ@ǰD1 0$dzHDzL32ǥPǤT%@$DǧXǦ\'H&L$ -(,, -, -,  -, $- ,$ $(-, $<-@,D/H.L  -, $0 $8%' <'!'(,( $ǥǤ'&F&"ЏǭǬ' '(ǭǬ' '(DZ+0*4ǰǧF0TǦ%8$<ǪF&"ǫF*D F0(ǥǤǧǦ)8F&#(<ǫǪ10F*D04ǨǩF$F(2 F*(10F0ǭǬ' '(<@DHǧǦD@F(3 <@DD(F2|xDZxǰ|ǥǤF$tpǩxǨ|dzDzF2Blh<@D(DZpǰtD F$ (`dǭ`Ǭd <@D8(D0ǩ`ǨdF(4+*F  F*<@D(DZhǰlD (F$F42F D|xǭxǬ| (X\<@DXDPDZXǰ\F0Q' &$ F&#(쏁) ($3(2,F2B%@$DF*F$ǭXǬ\ <@DH(D@dz`DzdF2B10F  F0S<@D((D ǧXǦ\F&"3 2$F  F2C(菁+*1(0,F0Q*L+HF4!F62F DF*%,ǵǴǷ Ƕ$'OBLATED EQUAL-AREAParameter m: Parameter n: Theta:  ( 48< HLP \`d ptx           $ ,0( D PTH \L h txl p             DH|      4 HPT `ht    d     0 <@8 T \`d lpt |       (,0 8<@ LHPp @+5@8%`P<84FX' 1NDTHV}, 3` ` ` ` ` (` 0` 8` @`  H`  % ' 3 > F N( T0 _8 ( , D kD t x | ~ 8 1                x p h 0 kT  ,   !   2 !  `obleqfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/obleqfor.c8600089733632/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c obleqfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerlat_othetamnRsin_lat_ocos_lat_ofalse_eastingfalse_northingobleqforintrcenter_longcenter_latshape_mshape_nanglefalse_eastfalse_northobleqforlonlatxydelta_lonsin_delta_loncos_delta_lonsin_latcos_latzsin_zcos_zAzsin_Azcos_Aztempx_primey_primeMNdiff_anglesin_diff_anglecos_diff_angle/usr/include/math.hlucy:/usr/include/math.h86000897313775__infinityerrnosigngamobleqforintptitleradiuscenloncenlatgenrptoffsetppblanktsincosobleqforacosatan2sinasincos_gp_disp3>I3  %,3:AHPW_D hmsw|      014p ]! @P) P.p 7p @ XJp Up8 obleqinv.o/ 860008794 2145 20 100664 6712 ` ELFX4( PP%-D9@GNU\dksD||.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamobleqinvintptitleradiuscenloncenlatgenrptoffsetppblanktsincosobleqinvasincossinsqrtatan2adjust_lon_gp_disp<'!'௿ $(,ǥ Ǥ$%($,ǧ(Ǧ,'&ǩ0Ǩ4)( ǫ8Ǫ<+*DZ@ǰD1 0$dzHDzL32ǥPǤT%@$DǧXǦ\'H&L$ -(,, -, -,  -, $- ,$ $(-, $<-@,D/H.L  -, $0 $8%' <'!'P,( $ǥǤ'@&DF&"ǫǪ1H0LF0Tǫ% $$Ǫ'(&,F&" F(S(D1 0$<@DF2F$\X<@DXDPǩXǨ\F(T3 2$ F2(ǭXǬ\ F (ǩǨ%$'(&,F&"F*DF4F |xǭxǬ| (D@'&<@DHF(2F*d`ǭ`Ǭd <@DD(F2tp<@D8D0ǩ`ǨdF(210 F0S(ǭXǬ\ F (ǭ`Ǭd F <@DD(F4F6!F 2lhǫpǪtdzhF*TDzlF2 F$<@D8D0(F&|xǭxǬ| <@DXDP(F*ǭpǬtǯhǮl (DZǰ%$F$TPǭPǬT'H '@(ǭǬ' '(ǫ)0(4ǪǥF*DǤ180<ǨDF$ǩ@F(2 F*ď(DZǰǥHǤL'8F$&<ǩǨ+0F(4*4ǦDǧ@F0QF&" F((F +* F*(%,ǵǴǷ Ƕ$'OBLATED EQUAL-AREAParameter m: Parameter n: Theta:  ( 48< HLP \`d ptx           $ ,0( D PTH \L h txl p             DH|      < HLD ` x     H TXP l    , T `dx      $,0 <DP l txp Pp @,(0%,d(4FX! 2OD|pW{, .` ` ` ` ` (` 0` 8` @`  H`  % ' 3 > F N( T0 _8 ( , D kD t v x | 8 ,              X k|  ,   !   - !  `obleqinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/obleqinv.c8600089753726/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c obleqinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerlat_othetamnRsin_lat_ocos_lat_ofalse_eastingfalse_northingobleqinvintrcenter_longcenter_latshape_mshape_nanglefalse_eastfalse_northobleqinvxylonlatzsin_zcos_zAzsin_Azcos_Aztempx_primey_primeMNdiff_anglesin_diff_anglecos_diff_angle/usr/include/math.hlucy:/usr/include/math.h86000897513775__infinityerrnosigngamobleqinvintptitleradiuscenloncenlatgenrptoffsetppblanktsincosobleqinvasincossinsqrtatan2adjust_lon_gp_disp.@I.  %,3:AHPW_D hmquz      +,4 ]! P) P.p 7p @ hJppUp omerfor.o/ 860008796 2145 20 100664 16276 ` ELF=4( P%-8=EINT[cjrx|D.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamomerforintsqrttsincospowfabstsfnzptitleradius2genrptoffsetpasinzsintancenloncenlatatanp_erroradjust_lonomerforcoslog_gp_disp<'!'H,( $ǥǤ%$ ǧǦ'&ǩǨ)(ǫǪ+(*,DZǰ1@0DdzDz3H2L%$'& F&"ǫǪ<?F*TDDF0$<%8-8,< (!0 4-(,,$P $X(D'8&<)P(T<?F(2DF(TF2<?D8D0+8*< F*3(-X,\<@DxDp (<?DHF 180ED0+p*t<?F*RD8 F&C(1p0tF0\XD@3p2t<?F2DH F(S('p&tF 4\X%p$tX\ǭǬ/`.d dzXDz\(F2+x*|$ (-, /. (-, $(-H,L/@.D (<?DHD@ǧXǦ\<?F&DDDF01F2"TPǭǬ (F )p(t F((HLǭHǬL (ǧPǦTF  F&(DZ؏ǰ%`$dF$F2*$+ ǩǨԏ'&$@ F&C(- ,$ (-(,, (-(,, (ǥǤ10F$<Ex32 F2#(+*F P<EgǭHǬL$ $(ǭǬ$ $(D8D0)((,F(0>E$D1p0t<?F0D F2#(F +* F*()h(l'`&dF&DF0$$%D@3p2t<?F2DH F(S(F '& F&(1h0l%`$dF$F F*() $` $t( $ǭǬ (@Dǧ@ǦDǯǮ-0,4 (ǭǬ (@DDZ@ǰDǯǮ-0,4 (ǭǬ/`.d (ǭǬ/`.d (x|dzDz%x$|F2"\X<?DHD@ǧXǦ\<?F&DDDF01F2"TPDZx)x(|ǰ|F(AǥǤF$F22F22F(TtpǥxǤ|ǧǦF&$F&"F*lhDZǰǥǤ F$d`dz`Dzd+*F*<E ǩǨ 10F0A ǧ`Ǧd32F&<E ǫǪ )(F(T ǥǤǧǦ F&$d`<?DXDP)`(dǥ`F(TǤd F$ǧpǦtF F&(ǫhǪlF* (<?D8ǩǨDZǰ +`*dF0AD0F*F$4F(0$1 ǧǦ% $$ F$3(`ddz`Dzd+`*d F2S(ǩPǨTF  F((HLǭHǬL (F 1p0t F0(ԏǧǦ%$$ F$3(ǫǪ32$ F2S(ǩǨ 10$ F0C(ǧǦ%$$ F$3(ǫǪdzDzF2S ()(F(>E $ $($ ǭǬ (DZǰ'&F&>E%$  F$(+*F*>E $  $4($$-(,, (F 32 F2() ($F(>E $@ $T(i$ʏǭHǬL$ $(ǭǬ$ $(DD'(&,F&>E$D%p$t<?F$"D F2S(F )( F(('h&l1`0dF01F$*$+D03p2t<?F2D8 F&C(F 10 F0(%h$l+`*dF*$F F(&'%,ǵ Ǵ$'<'!'8,( $ǭǬ (ǥǤ̏' &$ F&#(@Dǫ@ǪD)`(d F*C(`dǭǬ (F 1(0, F0(3024F <EǥǤǯǮ-0,4 (8<ǭ8ǬE10X \)(F B\XǧǦ%h$lF&$1`0dF0lhǭXǬ\ (<?DXDPF  F*(%H$LF$>E $` $(R$<?dzXDz\D8DHD0D@F24F2B F*(<?D(D 'h&lF&"1`0dF(F0TPǥhǤl'&F&"lhdzP10DzT%H$LF0ǩhǨl32F$QF2DF02ǥh)(Ǥl'@&DF($ǫPǪT%$F&F$RF(%,ǵ Ǵ$'OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-initPoint projects into infinityomer-for=|׽@Lc˰=|׽?!TD-=|׽ !TD-@!TD-@ !TD-@!TD-@Lc˰@Lc˰@Lc˰@Lc˰=|׽=|׽?!TD-=|׽?!TD-=|׽?!TD-=|׽>z򚼯H@ !TD-=|׽ ??0 <@D PTX dhl x|          (,0 @D4 H8 P< \ dhl tx     $ < DHL TX\ dhl tx        (, 48< DHL TX0 t       8 @DT l tx      4 <@D LH ` hlp x|d       ( D LPH h            4 <@8 X dh           $< DHX p x|t           $ ( , 4 8 < P L \ h ` p d          < L P @ h x | l       x            8 @ D T                0 L h p t l                   04( 8, \ t |       0 8<T `X h\          $ , 8 L< T@ ` lp         0 H PTL h ptx    $(  @ PTL l        , 48     , H PTl tx|       H PTX `dh pt    ( L d lp        ,0D LPT \`h tx   p /ha:0LT0/%45878/9(($H((5V#(H(((GWH('7'8'8(!((HX'('(!t0h?7qd0X, R` ` ` ` ` (` 0` 8` @` H` %P` -X` 5`` 8h` ;p` =x` @` B` I` P` V` \ g m s ~  ( 0 8 @ H P X ` 0 6                 $\      0 P  & . 0 2 4 7 ; = @ B E H K N Px Up ( <D 7 ,   ! 7  Q !  `omerfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/omerfor.c8600089767922/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c omerfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceazimuthr_majorr_minorscale_factorlon_originlat_origineesfalse_northingfalse_eastingsin_p20cos_p20blaldelusingamcosgamsinazcosazomerforintr_majr_minscale_factazimuthlon_origlat_origfalse_eastfalse_northlon1lat1lon2lat2modetempconcomtsts1ts2hljpdlonfggamasinphicosphiomerforlonlatxythetasin_phicos_phibcttqconnmlqusvlulvssdlonts1/usr/include/math.hlucy:/usr/include/math.h86000897613775__infinityerrnosigngamomerforintsqrttsincospowfabstsfnzptitleradius2genrptoffsetpasinzsintancenloncenlatatanp_erroradjust_lonomerforcoslog_gp_dispYRYIR  $)15:@GOV^dhlsz 7 $     56<OP4 ]a !0P).p  7p@ 8Jp.Up/omerinv.o/ 860008798 2145 20 100664 15888 ` ELF<04( %-8=EINT[cjrx| .symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamomerinvintsqrttsincospowfabstsfnzptitleradius2genrptoffsetpasinzsintancenloncenlatatanp_erroradjust_lonomerinvexpphi2zcosatan2_gp_disp<'!'P,( $ǥǤ%$ ǧǦ'&ǩǨ)(ǫǪ+(*,DZǰ1@0DdzDz3H2L%$'& F&"ǫǪ<?F*TDDF0$<%8-8,< (!0 4-(,,$P $X(D'8&<)P(T<?F(2DF(TF2<?D8D0+8*< F*3(-X,\<@DxDp (<?DHF 180ED0+x*|<?F*RD8 F&C(1x0|F0\XD@3x2|<?F2DH F(S('x&|F 4\X%x$|X\-p,t/`.d dzXDz\(F2+*$ (-, /. (-, $(-H,L/@.D (<?DHD@ǧXǦ\<?F&DDDF01F2"TPǭǬ (F )x(| F((HLǭHǬL (ǧPǦTF  F&(DZЏǰ%`$dF$F2*$+ ǩǨ̏'h&l$@ F&C(- ,$ (-(,, (-(,, (ǥǤ1p0tF$<Ex3x2| F2#(+*F P<EgǭHǬL$ $(ǭǬ$ $(D8D0)((,F(0>E$D1x0|<?F0D F2#(F +* F*()h(l'`&dF&DF0$$%D@3x2|<?F2DH F(S(F '& F&(1h0l%`$dF$F F*() $` $t( $ǭǬ (@Dǧ@ǦDǯǮ-0,4 (ǭǬ  (@DDZ@ǰDǯǮ -0,4 (x|ǭǬ/`.d (ǭxǬ|/`.d (dzDz%$F2"\X<?DHD@ǧXǦ\<?F&DDDF01F2"TPDZ)(ǰF(AǥǤF$F22F22F(TtpǥǤǧǦF&$F&"F*lhDZǰǥǤF$d`dz`Dzd+*F*<E ǩǨ10F0Aǧ`Ǧd32F&<E ǫǪ)(F(TǥǤǧǦF&$d`<?DXDP)`(dǥ`F(TǤd F$ǧpǦtF F&(ǫhǪlF* (<?D8ǩǨDZǰ+`*dF0AD0F*F$4F(0$1 ǧǦ% $$ F$3(`ddz`Dzd+`*d F2S(ǩPǨTF  F((HLǭHǬL (F 1x0| F0(̏ǧǦ%$$ F$3(ǫǪ32$ F2S(ǩǨ10$ F0C(ǧǦ %$$ F$3(ǫǪdzDz F2S ()(F(>E $ $($ ǭǬ (DZǰ'&F&>E%$ F$(+*F*>E $  $4($$-(,, (F 32 F2()(F(>E $@ $T(i$ʏǭHǬL$ $(ǭǬ$ $(DD'(&,F&>E$D%x$|<?F$"D F2S(F )( F(('h&l1`0dF01F$*$+D03x2|<?F2D8 F&C(F 10 F0(%h$l+`*dF*$F F(&'%,ǵ Ǵ$'<'!',( $ǥǤ'H&LF&"菁ǫǪ1@0DF0T<ǥ'&ǤǫF&"Ǫ10F0TF2Aǧ+*ǦǩF*4Ǩ32F2AF$|xǫxǪ|)(F(T|xǧ1`0dǦF F&")h(l F(S(pt<?DDDZpǰt<?F0DXDPF$F*2lh<?DDDZpǰt<?F0DXDPF0!F*2ǥx3`2dǤ|F$'h&l F&(X\ǫX)(Ǫ\ǥhF(TǤl10ǨF0!ǩF&F(QTPǭPǬT (<?DDF  F0(32F2>E' &$ǫPǪTDHD@F*@>E%$10 q<?DD'`&dF&<?ǥPǤTDHDD@DF$DF$ F&(F +*ǯǮ F4S(`d'<ǯ`Ǯd-0,4 (< <=dzx)`(dDz|F2A1h0l F0#(ǧh+*ǦldzXF*2Dz\%$F$ǯǮ F0C(' &$+`*dF*F21؏ǭǬ (@A%,ǵ Ǵ$'OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-init=|׽@Lc˰=|׽?!TD-=|׽ !TD-@!TD-@ !TD-@!TD-@Lc˰@Lc˰@Lc˰@Lc˰=|׽=|׽?!TD-=|׽?!TD-=|׽=|׽?!TD-!TD- ??0 <@D PTX dhl x|          (,0 @D4 H8 P< \ dhl tx     $ < DHL TX\ dhl tx        $,0 8<@ HLP X\4 t |       ,0H PTd |       $ ,0 L TX\ d` x  |       @ \ dh`           , 480 L TXP p |          , 8<T \`p            4 < @ D L P T h d t  x  |       4 8 ( T d h X                      P X \ l             , 0 ( H d                     4 HL@ PD t        ( 04, H PTl xp t          ( <, D0 P dT lX x         ( , 48H ` hld      0 <@X `dh |      $      , P h pt     H d lph        (,0 DHL l tx|  p -`90.XX.- %23t646- 7 ((%H((5V#(H(((GWH('7'8'8(!%'H!|0p@7wD08 , V` ` ` ` ` (` 0` 8` @` H` %P` -X` 5`` 8h` ;p` >x` @` C` E` L` S` Y` _ j p v   ( 0 8 @ H P X ` 0 6                %_      0 T " ( 4 < D F H J M Q S V Y \ ^ `x dp gh j` mX rT < 7 ,   ! 7  U !  `omerinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/omerinv.c8600089787792/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c omerinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceazimuthr_majorr_minorscale_factorlon_originlat_origineesfalse_northingfalse_eastingsin_p20cos_p20blaltsdelusingamcosgamsinazcosazomerinvintr_majr_minscale_factazimuthlon_origlat_origfalse_eastfalse_northlon1lat1lon2lat2modetempconcomhlts1ts2jpdlonfggamasinphicosphiomerinvxylonlatdelta_lonthetadelta_thetasin_phicos_phibcttqconnmlvsusqsts1vlulbsdlonflag/usr/include/math.hlucy:/usr/include/math.h86000897813775__infinityerrnosigngamomerinvintsqrttsincospowfabstsfnzptitleradius2genrptoffsetpasinzsintancenloncenlatatanp_erroradjust_lonomerinvexpphi2zcosatan2_gp_dispwVwIV  $)15:@GOV^dhlsz 7 %     56<ST4 $]P!@)P.p P 7pp@ Jp-Up- orthfor.o/ 860008800 2145 20 100664 5112 ` ELF4( @@%-8@GNX_gtoz~.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamorthforinttsincosptitleradiuscenlonmeroriginoffsetporthforadjust_loncosfabssinp_error_gp_disp<'!'د(,04ǥ(Ǥ,%$ǧ0Ǧ4'& ǩ8Ǩ<)(ǫHǪL+*DZ@ǰD1 0$ǭ8Ǭ<$( $0$ -, -,  -, - ,$/. %'(<'!'PTX\ǥPǤT'&  F&#8<ǭXǬ\'H '@ǭ8Ǭ< 04ǫH)((,ǪLǥ@F*DǤD3024Ǩ4F$ǩ0F(2F*$ <?D(D (,ǧ Ǧ$DHD@F&@<EF 3 180<F0>E7ǭ8Ǭ< dz(Dz,+*ǩ@F2QǨD`+ F(!*$F&F*ǩH%0$4ǨLǫ@F(!ǪD1(0,Ǥ4F*ǥ0d+F$Dz,dz(*F2QF(4()F0!F(2 $ $,$%'PORTHOGRAPHICPoint can not be projectedorth-for=|׽ ( 48< HLP \`d ptx            0 8<@ HL4       $ 8<      0 8<@ TXh p    @p , & L# % X H T(F (W!(,A`PKf, !` ` ` ` ` (`  0`   $ / : E ( Q h  V ^ b f h ( j q x }   \ Vt  ,   !     !  `orthfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/orthfor.c8600089803396/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c orthfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthforintr_majcenter_loncenter_latfalse_eastfalse_northtemporthforlonlatxysinphicosphidloncoslonkspg/usr/include/math.hlucy:/usr/include/math.h86000898013775__infinityerrnosigngamorthforinttsincosptitleradiuscenlonmeroriginoffsetporthforadjust_loncosfabssinp_error_gp_disp!+I!  $,3:DKS [fjos|     4P ]!@)@.p  7p@ Jp Up Xorthinv.o/ 860008802 2145 20 100664 6268 ` ELF4( p`@%-8@GNX_got|.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamorthinvinttsincosptitleradiuscenlonmeroriginoffsetporthinvsqrtp_errorasinzfabsadjust_lonatan2sin_gp_disp<'!'௿ $(,ǥ Ǥ$%$ǧ(Ǧ,'& ǩ0Ǩ4)(ǫ@ǪD+*DZ8ǰ<1 0$ǭ0Ǭ4$( $0$ -, -,  -, - ,$/. %' <'!'$ `dhlǥ`Ǥd' &$F&"d`ǫhǪl10F0Tlhǥ`ǤdǩhF$!ǨlF(B F*3 X\DZX32ǰ\%0$4F$F0@<E $ $$ $ǧXǦ\+* F*3 PTǭPǬT'H '@ p32 ǭXǬ\ %8$<F$>E t10%ǩ@ǨD'(&,dzhF&BDzlǥHǤLF$)0(4Dz\dzXF(F21 F$St -, 1@0DF040ǭ0Ǭ4 'H&LF&>E7DXDP32F2P>EǯhǮlǭ`Ǭd F s F %$  F$p !j%ǭ`ǬdǯhǮl F c F 10  F4p S%t-, ǩ@ǨD'(&,F&F2B40ǭ0Ǭ4 %P$TF >Eǭ`Ǭd 1X0\F >Eǧ`ǦdǩHǨLF(4+0*4ǥ0Ǥ4F*DZXǰ\ F0# F '&  F&p @A%$ǵǴ'`ORTHOGRAPHICInput data errororth-inv>z򚼯H=|׽?!TD-=|׽=|׽=|׽ ??( 48< HLP \`d ptx            0 8<@ HL4     ( 048 @D` ld th       , 48L X\t |       0 <@` |       ( 04L h pt      $ @p D@-4" %t D(F '(%(((H8! ,@`0`Jy, ` ` ` ` ` (`  0`   $ / : E ( h  Q Y [ ] a 0 e h j o t y  Q  ,   !    !  `orthinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/orthinv.c8600089823699/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c orthinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthinvintr_majcenter_loncenter_latfalse_eastfalse_northorthinvxylonlatrhzsinzcosztempcon/usr/include/math.hlucy:/usr/include/math.h86000898213775__infinityerrnosigngamorthinvinttsincosptitleradiuscenlonmeroriginoffsetporthinvsqrtp_errorasinzfabsadjust_lonatan2sin_gp_disp} B}I   $,3:DKS [`hns~     4p ]p! `) @.p 7p @ Jp Up polyfor.o/ 860008804 2145 20 100664 6784 ` ELF4( 0 p%-@8=BGLQV]eov~@.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngampolyforintsqrte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyforadjust_lonfabstsincosmsfnzsincos_gp_disp<'!'40@DHLǥ@ǤD%$ǧHǦL'& ǩPǨT)(ǫXǪ\+*DZhǰl1`0ddz`Dzd3h2l%$ '&F&"<8ǫ8Ǫ<<?F*TDDF0$L%H-H,L 0!@ D-H,L 0! $-H,L 0!( ,-H,L 0!0 4-H,L 0!8 <- ,$/(.,'0&4)8(<+*  $0!X \$ 0-,/.  0-, 0-, 0-h,l/`.d 0%4'@<'!'40ptx|ǥpǤt'& F&#0HLǭxǬ| 0)(F(>EDZHǰL+*F0T%h$lF$)(+X*\F*D3`2dF0qǭxǬ|'h '`0ǫx- ,$Ǫ|/(.,'0&4 )8(<$ 0@Ddz`DzdǯhǮl-@,D 08<DZHǰLǥhǤlF$LHǭHǬL 0ǫ8Ǫ<)(ǥhF*DǤl)hF2(lF$F(2  ǭHǬL <?DDǥ8Ǥz򚼯H ( 48< HLP \`d ptx         $( 04, H PTX `d\ x            $( 04 T \`d lh            @Dh x|t        $( 04L l tx|      ( D LP` hp    pp @@1,%td(F (G1@/M@АpWt#, *` ` ` ` ` (` 0` 8` @` H` P` X` `` h` $ / 5 ; F Q \( ( h ( $@ m@ u y }  ( (        m  ,   !   ) !  `polyfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/polyfor.c8600089843837/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c polyfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorlon_centerlat_origine0e1e2e3eesespml0false_northingfalse_eastingpolyforintr_majr_mincenter_loncenter_latfalse_eastfalse_northtemppolyforlonlatxysinphicosphialcconmlms/usr/include/math.hlucy:/usr/include/math.h86000898413775__infinityerrnosigngampolyforintsqrte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyforadjust_lonfabstsincosmsfnzsincos_gp_disp*?I*  $).38=BIQ[bj@ r}      '(4 ]A0! 0 ) Pp.p P 7p p@ @JpUp polyinv.o/ 860008806 2145 20 100664 6696 ` ELFH4( @ p%-@8=BGLQV]eov~@.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngampolyinvintsqrte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyinvfabsphi4zadjust_lonasinzsin_gp_disp<'!'40@DHLǥ@ǤD%$ǧHǦL'& ǩPǨT)(ǫXǪ\+*DZhǰl1`0ddz`Dzd3h2l%$ '&F&"<8ǫ8Ǫ<<?F*TDDF0$L%H-H,L 0!@ D-H,L 0! $-H,L 0!( ,-H,L 0!0 4-H,L 0!8 <- ,$/(.,'0&4)8(<+*  $0!X \$ 0-,/.  0-, 0-, 0-h,l/`.d 0%4'@<'!'P\XPTHLǥǤ'h&lF&"ǫǪ1`0dF0TǥǤ'&F&"+X*\F*DtǭǬ X32F2>EǥǤ'&F&"+*F*DDDbǥǤ'&DZF&"ǰF(BF0F*-H,Lz򚼯H ( 48< HLP \`d ptx         $( 04, H PTX `d\ x            $( 04 T \`d lh            @Dx       8 DHL TX             pp @00-%H8hd(F(H1@/M@АWx#, +` ` ` ` ` (` 0` 8` @` H` P` X` `` h` $ / 5 ; F Q \( ( h ( $@ m@ u w y } 8 )        m  ,   !   * !  `polyinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/polyinv.c8600089863852/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c polyinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorlon_centerlat_origine0e1e2e3eesespml0false_northingfalse_eastingpolyinvintr_majr_mincenter_loncenter_latfalse_eastfalse_northtemppolyinvxylonlatsin_phicos_phialbcconmliflg/usr/include/math.hlucy:/usr/include/math.h86000898613775__infinityerrnosigngampolyinvintsqrte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyinvfabsphi4zadjust_lonasinzsin_gp_disp+@I+  $).38=BIQ[bj@ rw}      ()4 ]1@! ) @p.p @ 7p `@ xJpxUp psfor.o/ 860008808 2145 20 100664 6428 ` ELF<4( @0p%-6;@EMSY`howh}.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngampsforintsqrte4fnfabstsincosmsfnztsfnzptitleradius2cenlonoffsetppsforadjust_lonsincos_gp_disp<'!',(X\`d $ǥXǤ\%$ǧ`Ǧd'& ǩǨ)X(\ǫxǪ|+`*d10 32F2TPǧPǦT<?F&2DXDPF(T01-, (! -, (! $dzhDzl3(2,ǥpǤt%0$4ǧpǦtDXDPF*0<E<DHD@)8(<<?DD180<DD3@2DǭpǬt (F %$ F$(' &$F 0<E=<?DXDP+@*D)8(<1004F0DLHǭHǬL'@ '8(ǥ8Ǥ<ǯ@ǮD-, (!H Lǧ@ǦDǯHǮL-, (!P T$ (-,/.  (-(,, (ǭxǬ|ǯǮ (%,ǵ Ǵ$'X<'!'$ PTX\ǥPǤT'(&, F&# )8(<F(LHdzXDz\180<F2D@ǭ@ǬD 04ǧ0Ǧ4ǯ@ǮD-,  (,DXDP)@(DF*@2Eǧ(10Ǧ,3H2LF2+P*TF&"F*D<8<@DD%$ǩ(F$Ǩ,1 F(20$F0T<8ǭHǬL ǧ8Ǧ<%8$<F&"1`0d`F(F0TǭHǬL ǩ8Ǩ<%8$<F !F(23X2\dF*F2%$'PPOLAR STEREOGRAPHIC?!TD-=|׽ ??0 <@D PTX dhl x|        ( 048 DHL X\       4 <@D LPT \`t         $  8 @DH PT< h ptl       (,@ LPd        4 <@P X`t      pp @`-,% (%%F! (!0X4]Pg|(, *` ` ` ` ` (` 0` 8` @` H` P` X` ``  & , 2 8 > I( 0 U Z _ f   m s w { } ( (     P !mh  ,   !   ) !  `psfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/psfor.c8600089883997/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c psfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minoresee4center_loncenter_latfacindmcstcsfalse_northingfalse_eastingpsforintr_majr_minc_lonc_latfalse_eastfalse_northtempcon1sinphicosphipsforlonlatxycon1con2rhsinphits/usr/include/math.hlucy:/usr/include/math.h86000898813775__infinityerrnosigngampsforintsqrte4fnfabstsincosmsfnztsfnzptitleradius2cenlonoffsetppsforadjust_lonsincos_gp_disp*@I*  "',19?ELT[c itx|      !'(4p ]@!0) p.p  7p 0@ HJp Up <psinv.o/ 860008810 2145 20 100664 6484 ` ELFt4( 0`%-6;@EMSY`how}.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngampsinvintsqrte4fnfabstsincosmsfnztsfnzptitleradius2cenlonoffsetppsinvphi2zatan2adjust_lon_gp_disp<'!',(`dhl $ǥ`Ǥd%$ǧhǦl'& ǩǨ)X(\ǫǪ+P*T10 32F2\XǧXǦ\<?F&2DXDPF(T<8ǭ8Ǭ< (! -, (! dzpDzt3 2$ǥxǤ|%($,ǧxǦ|DXDPF*0<E<DHD@)0(4<?DD1004DD382<ǭxǬ| (F %$ F$(' &$F 0<E=<?DXDP+8*<)0(41(0,F0DTPǭPǬT'H '@(ǥ@ǤDǯHǮL-, (!@ DǧHǦLǯPǮT-, (!H L$ (-,/.  (- ,$ (ǭǬǯǮ (%,ǵ Ǵ$'`<'!'$ HLPT,ǥH'X&\ǤL+0*4F&"F*DLHdzP%P$TDzT)0(4F$F(2TPDZHǰLǥPF0ǤTF$! F& @DDXDP)8(<F*@2EDZ@%H$LǰD'&F$)@(DF(2F*<8ǥ@'&ǤD32F&"<@DXDPF*F0A<8ǯ8Ǯ<',-,  \'0&4F&,,5ǫ@ǪDDHD@F(P2EX1004% $$F$&'ǯPǮTǭHǬL F s 04ǫ03024Ǫ4F*1 0$ F0CX %$'HPOLAR STEREOGRAPHIC?!TD-=|׽ ??0 <@D PTX dhl x|       $ ,04 @DH TX        0 8<@ HLP X\p          4 <@D LP8 d lph    ( 048 @Dl        D X\H p x|    , 48@ LPH `p H,+XH%\TH (%%F!(81 0`3]Hg(, )` ` ` ` ` (` 0` 8` @` H` P`  X`  # ) / 5 ; F( 0 R W \ c j   m s u w { ( '    !m  ,   !   ( !  `psinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/psinv.c8600089904301/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c psinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minoree4center_loncenter_latfacindmcstcsfalse_northingfalse_eastingpsinvintr_majr_minc_lonc_latfalse_eastfalse_northtempcon1sinphicosphiespsinvxylonlatrhtstempflag/usr/include/math.hlucy:/usr/include/math.h86000899013775__infinityerrnosigngampsinvintsqrte4fnfabstsincosmsfnztsfnzptitleradius2cenlonoffsetppsinvphi2zatan2adjust_lon_gp_disp)HI)  "',19?ELT[c iou      !&'4p ]! 00) ``.p ` 7p @ Jp0UpH ,robfor.o/ 860008812 2145 20 100664 8220 ` ELF<4(  ``p%-7>ELT[fk.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamrobforintptitleradiuscenlonoffsetprobforadjust_lonfabs_gp_disp<'!'د(,04ǥ(Ǥ,%$ ǧ0Ǧ4'&ǩ8Ǩ<)(ǫ@ǪD+*10%  32% D(D ' <?D8D0'9'&) ($% +(*,%)+*1004%J Q P$382<%ks r$%@$D% (,'H&L%(,)P(T% 04+X*\%041`0d' 8<3h2l'9382<%p$t% @D'x&|%)'@&D)(%J IHHL+*%kkHjL10% PT32%PT%$% X\'&%X\)(' `d+*'9+`*d10% hl32%)3h2l%$%J EpDt'&%kgpft)(% x|+*%x|10% 32%%$' '& '9'&)(% +*%)+*1 0$%J QP3(2,%ksr<?D(D % '0&4%$$x'!)(+8*<F*D01$% )! $$ ǭ(Ǭ, ǭ0Ǭ4 -,/. %'(<'!'ȯ8<@Dǥ8Ǥ<'& F&#04<@DXǩ@ǨDDPF*D3@2D F2(,ǥ(Ǥ,'H&LF&"DN58!DF BD$$DZ(Dǰ,F!F$,($%(H!<@DH+*D@1F*D0'& HF2Dz,dz(F$2F2F$BD D(F$BF&D0F$D8F&& 'F2QDz4F$Ddz0F&$%F2RF$DPQǧ@ǦDDXDPF&P>E5$ `% p!<@DDF( LF$Ǥ,ǥ(F&TF$!F&D0D8F&F*DPF&$DXF** +F$A$TF&%PF*<@D8D0F$D+*F&F*6$% (H!<@D(32D 1F2!0)( LF&Ǧ,ǧ(F*AF&2F*!DPDXF*!F(D@F*4DHF(( )F&F*$$\F DF2%X<@DHD@F$232F(TF2FG%'8ROBINSONvȴ9X?#?vȴ9X?#?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rlucy:/tmp_mnt/home/hdf/sgi/gctpc/source/robfor.c8600089924686/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c robfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingprxlrrobforintrcenter_longfalse_eastfalse_northirobforlonlatxydlonp2ip1/usr/include/math.hlucy:/usr/include/math.h86000899213775__infinityerrnosigngamrobforintptitleradiuscenlonoffsetprobforadjust_lonfabs_gp_dispFX!YFI!  #*18@ GRX    4 4]t `! p`) p.p 7p @ HJpP Upprobinv.o/ 860008814 2145 20 100664 10176 ` ELF%4( p%-7>ELT<[`hs.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamrobinvintptitleradiuscenlonoffsetprobinvfabsp_erroradjust_lon_gp_disp<'!'د(,04ǥ(Ǥ,%$ ǧ0Ǧ4'&ǩ8Ǩ<)(ǫ@ǪD+*1h0l%  3p2t% D(D ' <?D8D0'9'&)x(|% +*%)+*10%J Q P$32%ks r$%$% (,'&%(,)(% 04+*%0410' 8<32'9382<%$% @D'&%)'@&D)(%J IHHL+*%kkHjL10% PT32%PT%$% X\'&%X\)( ' `d+*'9+`*d10% hl3 2$%)3h2l%($,%J EpDt'0&4%kgpft)8(<% x|+@*D%x|1H0L% 3P2T%%X$\' '`&d'9'&)h(l% +p*t%)+*1x0|%J QP32%ksr<?D(D % '&%$$x'!)(+*F*D01$% )! $$ ǭ(Ǭ, ǭ0Ǭ4 -,/. %'(<'!'$ ǥǤ'&F&"ǫǪ10F0T<@D(D ǧǦF&"+*F*D32 F2|xǧxǦ|)(F(2LH<@DDZHǰLDF2 ptǥpǤt'&F&"DN58!DF BD44$404@%)  P!QPSR F2lh4 `% p!<@D8D0F(2 F*F2!d`ǭxǬ| 4'9 @! F <@DXDPF(dzhF*DzlF2!\Xǩ`ǨdDZhǰlF0BTPǥPǤTdzXDz\<@F2!DHD@<?F$DD@DHF2F*AD@F$4DHF0BF2QtpǥpǤtDHD@F$@>E4$!DZǰDXDPF0P>E4ǥpDǤtF<@DDF$2F0BLH4ǥpDǤtF<@DXF$2DPF DF*LH<@D(ǧHǦLD F$3 ptǩpǨt10F0BDL58!DF TD44ǧpD ǦtF"!F(4tpǫǪDDF*>E14x' !<@D('&D 1F&"032 F(ǨtǩpF*F(BF*!DPDXF*!F2DF*DDF22 3F(2(F*$)F2<@DXDPF(1F*$<184H%J *X!<@DgfDeF&dqp F("ǨtǩpF*F(BF*DPDXF*F0"DF*ADF0"0 1F(2F*2F F&"3<@DDF2BF0Q<8ǧ8Ǧ<ǩǨ+*F(4F2T%$ԏDzLF$)( dzHF(2F*LH0%00)L $  $, q$ǥ8Ǥ<ǧǦF&# )(F @<E74%44! $8 $X H$dzHDzL+*䏨F*4 P%kK`!<@D(ŇņD œF&"ŒőŐ F(ǨtǩpF*F(BF*!DPDXF*!F0DF*DDF0ǰDZF(2& 'F*$F&+*F2AF*$ %$ǵǴ'ROBINSONToo many iterations in inverserobinv-convToo many iterations in inverserobinv-convvȴ9X?#?vȴ9X?#?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rh?FR 6?6?( 48< HLP \`d ptx |           $(  ,8 @D< HT \`X dp x|t              $ (4 <@8 DP X\T `l txp |             $0 8<4 @L TXP \h ptl x             , 480 <H PTL Xd lph t       ( 0, D ` |       ,0X `dh pt   @ Ht |   l              D P L T l `               D \ d h           |        pp `R#P&T1l!! "T& V(p((((H(H8'CC'҈2X8!(3ps0z9, $` ` ` ` ``     ( %  ' . 0 2 6 0 ": = @ B D F H M R UY '<  ,   !  0@ 0@  # !  `robinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/robinv.c8600089956394/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c robinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingprxlrrobinvintrcenter_longfalse_eastfalse_northirobinvxylonlatyyp2uvtcphidtempy1ip1i/usr/include/math.hlucy:/usr/include/math.h86000899513775__infinityerrnosigngamrobinvintptitleradiuscenlonoffsetprobinvfabsp_erroradjust_lon_gp_disp[$![I$!  #*18@ GLT`    !" 4 D]| !0) p.p  7p@@ X Jp Up sinfor.o/ 860008816 2145 20 100664 3720 ` ELF 4(   %-7>ELT[fj.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamsinforintptitleradiuscenlonoffsetpsinforadjust_loncos_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!'د(,04ǥ(Ǥ,'& F&# $ǭ0Ǭ4 ǫ Ǫ$)( F*D%$8F0F$ǫ0Ǫ4)( F*D32lucy:/tmp_mnt/home/hdf/sgi/gctpc/source/sinfor.c8600089972827/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c sinfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingsinforintrcenter_longfalse_eastfalse_northsinforlonlatxydelta_lon/usr/include/math.hlucy:/usr/include/math.h86000899713775__infinityerrnosigngamsinforintptitleradiuscenlonoffsetpsinforadjust_loncos_gp_disp;;I  #*18@ GRX     4 4]s !0)@ .p @ 7p`@ xhJpUpsininv.o/ 860008818 2145 20 100664 4420 ` ELFd4( `P %-7>ELT8[`hlw.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamsininvintptitleradiuscenlonoffsetpsininvfabsp_errorcosadjust_lon_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!'د(,04ǥ(Ǥ,'&F&",(ǫ0Ǫ410F0T40ǥ0Ǥ4'& lucy:/tmp_mnt/home/hdf/sgi/gctpc/source/sininv.c8600089993008/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c sininv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingsininvintrcenter_longfalse_eastfalse_northsininvxylonlattemp/usr/include/math.hlucy:/usr/include/math.h86000899913775__infinityerrnosigngamsininvintptitleradiuscenlonoffsetpsininvfabsp_errorcosadjust_lon_gp_disp6"6I  #*18@ GLTXd       4  T]@`!P) .p  7p@ (Jp0UpHsomfor.o/ 860008821 2145 20 100664 16844 ` ELF?4( %-@8 BIQ]dlpuy  (.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamsom_seriessomforintptitleradius2genrpt_longgenrptoffsetpcosfabssinsomfortanatansprintfp_errorasinsqrtlog_gp_disp<'!'X$ ǥǤ%$ǧǦ'&ǩǨ)( ǫǪ+*DZǰdzDz<?F2DXDPF0!F22F(Q$|%xDZǰǧǦ32ďF22*d+`ǩǨ)(菁D F$!0L1+ "'&32ԏ3`2dDP%FR!$܏F$D'&䏁F04+*쏁F*(!)%$'&'`&dD+F*F*%$ F(!10F0423DXDP+*$ -, /.   $  $, ǥǤ)($D F(# '&1 0$$` F03 -,/. -(,, $ ǭǬ !p t-p,t 3024F2<E +8*<+p*tǭǬ !h l%x$|)p(tF(!F(43x2|+h*lF*F*!<?DHD(D@DZǰD +x*|F0DF*!F&(T)PDP1P0T<?F0DXF*$2T3P<?D8D0)x(|F(4ǥǤǫǪF*$2<38<@D8D0)x(|ǥǤF(4dzF$DzF2F&R(D)@DZǰǥǤF$2L3HǫǪF*QF*2(\)XDDx|'P'x'9@'p'h'` 'X ǥhǤlHLdz`Dzd@DǧpǦt(,ǫXǪ\8<ǩPǨT04$ DF!|x'P'x'9@'p'h'` 'X <@DDǧhǦlǩHF&ǨLF(TLH<@D(D dz`Dzdǫ@F2!ǪDF*2D@<@DDǥpǤtǧ(F$Ǧ,F&,(<@DHD@DZXǰ\dz8F0ADz<F2!<8<@DXDPǩPǨTǥ0F(TǤ4F$40'+!R $D0F2|x'P'x'9@'p'h'` 'X <@DHD@DZhǰldzHF0ADzLF2!LH<@DXDPǩ`Ǩdǥ@F(TǤDF$D@<@D8D0ǫpǪtDZ(F*2ǰ,F0A,(<@DDǧXǦ\ǩ8F&Ǩ<F(T<8<@D(D dzPDzTǫ0F2!Ǫ4F*240%)I 1@0Dx|'P'x'9@'p'h'` 'X ǥHǤLdzhDzlF2!LHǫ@ǪDǩ`ǨdF(TD@ǥ(Ǥ,dzpDztF2!,(ǫ8Ǫ<ǩXǨ\F(T<8ǥ0Ǥ4dzPDzTF2!40<@>DHǫHǪLD@F(T01<@NDǥ@ǤDDF2!&$' <@>DHǫ(Ǫ,D@F(T01<@.Dǥ8ǤE+x*|̏DD10F22E%$ǧǦDHD@F(0<E+*̯DZǰ(,ǥǤ3`2dǩF$ǨF(240ǭ0Ǭ4 08<ǭ8Ǭ< DZǰď0F0<E dz0Dz4%$F$40ǩ8ǨE<?DDdz8DzE%$'P $0'P $0A$֏ǭhǬl 0dzDzF2菙ǭǬ 0ǭPǬT 0ǭǬ F 0ǫǪ'x&|<?F*2DDF*AF  F$0<?DD'x&|F&+p*tǥF*DǤ'hF$&lF F62F8BF* F40<@D8ǥǤD0F&"10F0BǭǬ 0F F  0 ǭhǬl 0dzDzF2ǭhǬl 0ǩǨ'P&T<?DXF(4%8$. &֕>. &֕@V@F>z򚼯H?!z?!z!z!z?!TD-@jz)U8^@|3!>z򚼯H?!TD->z򚼯H>z򚼯H?%jT@!TD-@jz)U8^?!TD-?!TD-?F ( 48< HLP \`d pt     ( @ HLX `dh pt|          $ ,04 @<D PTX `\ t | x         $(, 48  <0 P X\` hlT           $ ,04 P X\` hlp x|      ( 40@ HLp |x        ( X ` d p | X d ` |                 X ` d                h p t            $ D d   ( H PTp |     $ @ \ dhl t|    0          T t       $ ` hl      $ ,0L \Tp        < T \`d lpt      (,0 8<@ PT   @Dt      4 D<X t |      0 D<X `dl tx     ( l    $ p /(i<08t0.36D7::.;D#D%ETV&((& &  H#EGHE8(|/ 4Ɛz@bА0X, r` ` ` ` ` (` 0` 8` @` H` P` X` `` h` p` x` ` ` ` `  ' / 7 > C J N( Y0 e8 j@ qD ( 3vx |              !        @ a               x p $h )` .X 1P 4H 7@ <8 @0 F( K  U [ a fo  tp y ~  9 ( 4@8 !      0 p     $ i@ b ,   ! 4  b0O      q  !  `somfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/somfor.c8600090017351/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c somfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centeraba2a4c1c3qtuwxjp21sacaessstartfalse_eastingfalse_northingsomforintr_majorr_minorsatnumpathalf_inlonfalse_eastfalse_northtimestart1flagialfe2ce2sone_esdlamfbfa2fa4fc1fc3suma2suma4sumc1sumc3sumbsomforlonlatyxnildelta_lonrlmtabstlamxlamcxlamtab2sc1ab1xlampsavdsdsqsdtanlgxtantphidpdddsrlm2scltlampconvdelta_latradltradlntemperrorbufL230L240L250L260L300som_seriesfbfa2fa4fc1fc3dlamsdsdsqhsqfc/usr/include/math.hlucy:/usr/include/math.h86000900113775__infinityerrnosigngamsom_seriessomforintptitleradius2genrpt_longgenrptoffsetpcosfabssinsomfortanatansprintfp_errorasinsqrtlog_gp_dispr# Ir# 8b$ .5=IPX\ae  4lpu} b!    23 9[\]^_`aiobp4 ]1!p) P.p P 7p p@ (Jp.Up.$sominv.o/ 860008823 2145 20 100664 15996 ` ELF<4( P%-@8 BIQ]dlpuy  .symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamsom_seriessominvintptitleradius2genrpt_longgenrptoffsetpcosfabssinsominvsqrtp_errorexpatantanasinadjust_lon_gp_disp<'!'X$ ǥǤ%$ǧǦ'&ǩǨ)( ǫǪ+*DZǰdzDz<?F2DXDPF0!F22F(Q$|%xDZǰǧǦ'&dzDz+*̏F*(d)`菁D F$!0L1+ "'&32܏3`2dDP%FR!$䏁F$D'&쏁F04+*F*(!)%$'&'`&dD+F* F*%$F(!10F0423DXDP+*$ -, /.  $  $, ǥǤ) ($$D F(# '&1(0,$` F03 -,/. -0,4 $ ǭǬ !p t-p,t 382<F2<E +@*D+p*tǭǬ !h l%x$|)p(tF(!F(43x2|+h*lF*F*!<?DHD(D@DZǰD +x*|F0DF*!F&(T)PDP1P0T<?F0DXF*$2T3P<?D8D0)x(|F(4ǥǤǫǪF*$2<38<@D8D0)x(|ǥǤF(4dzF$DzF2F&R(D)@DZǰǥǤF$2L3HǫǪF*QF*2(\)XDDx|'P'x'9 'p'h'` 'X ǥhǤlHLdz`Dzd@DǧpǦt(,ǫXǪ\8<ǩPǨT04$ DF!|x'P'x'9 'p'h'` 'X <@DDǧhǦlǩHF&ǨLF(TLH<@D(D dz`Dzdǫ@F2!ǪDF*2D@<@DDǥpǤtǧ(F$Ǧ,F&,(<@DHD@DZXǰ\dz8F0ADz<F2!<8<@DXDPǩPǨTǥ0F(TǤ4F$40%+R $D0F2|x'P'x'9 'p'h'` 'X <@DHD@DZhǰldzHF0ADzLF2!LH<@DXDPǩ`Ǩdǥ@F(TǤDF$D@<@D8D0ǫpǪtDZ(F*2ǰ,F0A,(<@DDǧXǦ\ǩ8F&Ǩ<F(T<8<@D(D dzPDzTǫ0F2!Ǫ4F*240%l)I 1H0Lx|'P'x'9 'p'h'` 'X ǥHǤLdzhDzlF2!LHǫ@ǪDǩ`ǨdF(TD@ǥ(Ǥ,dzpDztF2!,(ǫ8Ǫ<ǩXǨ\F(T<8ǥ0Ǥ4dzPDzTF2!40<@>DHǫHǪLD@F(T01<@NDǥ@ǤDDF2!&$' <@>DHǫ(Ǫ,D@F(T01<@.Dǥ8ǤE<?DDx|DZǰDHD@F(<E<D8D0x|ǭǬ DXDP0F P>E<?D(D ptǭǬ DD0F2<E<DDpt<?DHD@ǧpǦt%x$|F&BDZxF$Tǰ|ǦǧF0F(2dzDz%`$dǧF2$ǦF02d`-h,l 0+*F*<E<?D(D 3x2|<?DDF2!ǤF2ǥF(2F$ F0S0ǧǦF  F430hl-h,l 0)(F @>E+ǭǬ 0ǭǬ F 0ǭǬ F 0F8F %p$t<?D8F$D0)x(|F*2lF(13hF2" F*0hlǧ`Ǧd)( F(30 ! ǥhǤl%4ǵǴǷ Ƕ$ǹ(Ǹ,'<'!'$ X\`dl'&F&"l PTǫPǪTF*TLHl  ǥHǤL3P2T<?DHF$180. &֕>. &֕@V@F>. &֕?!TD->z򚼯H>z򚼯H?!TD->z򚼯H>z򚼯H?F ( 48< HLP \`d pt     ( @ HLX `dh pt|          $ ,04 @<D PTX `\ t | x           $( , @ HLP X\D p |t x          $ @ HLP X\` hl      $ 0 8<` lhx         H P T ` l H T P l x t               X d h |             < X ` d p x |              $ L d                   0(X dh     ( H PTX `dt       4 <@|     0 L TX|      $ < LH   8       @ HLp         8 @DT \`d tlx    @ LPh     $ @ HLP X\` tpx     $ ,08 @D` hlp x|d    8 l tx|   p -Z9.c/,-0-34787-08lt##D%ETV(& & #( 'WEXH8(|/ 4<0w Q0X, a` ` ` ` ` (` 0` 8` @` H` P` X` `` h` p` x` ` ` ` `  ' / 7 > C J N( Y0 e8 j@ qD ( 3vx |              !        @ P                 x !p &h +` 0\ 9  46 8 A D H L P T 0 _Y \ a c f $ X6@ Q ,   ! 4  Q      `  !  `sominv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/sominv.c8600090036674/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c sominv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centeraba2a4c1c3qtuwxjp21sacaessstartfalse_eastingfalse_northingsominvintr_majorr_minorsatnumpathalf_inlonfalse_eastfalse_northtimestart1flagialfe2ce2sone_esdlamfbfa2fa4fc1fc3suma2suma4sumc1sumc3sumbsominvyxlonlattlonconvsavsdsdsqblondifstdefacactantlatddbigkbigk2xlamtslscldlatdlontempinumbsom_seriesfbfa2fa4fc1fc3dlamsdsdsqhsqfc/usr/include/math.hlucy:/usr/include/math.h86000900313775__infinityerrnosigngamsom_seriessominvintptitleradius2genrpt_longgenrptoffsetpcosfabssinsominvsqrtp_errorexpatantanasinadjust_lon_gp_dispiaiIa 8Q$ .5=IPX\ae  4lqy} Q!    23 9OPX^Q_4 ]1P!@).p  7p@ Jp-Up-0lsterfor.o/ 860008825 2145 20 100664 5144 ` ELF84( P@%-8@GNX_goz~.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamsterforinttsincosptitleradiuscenlonmeroriginoffsetpsterforadjust_loncosfabsp_errorsin_gp_disp<'!'د(,04ǥ(Ǥ,%$ǧ0Ǧ4'& ǩ8Ǩ<)(ǫHǪL+*DZ@ǰD1 0$ǭ8Ǭ<$( $0$ -, -,  -, - ,$/. %'(<'!'PTX\ǥPǤT'&  F&#8<ǭXǬ\'H '@ǭ8Ǭ< 04ǫH)((,ǪLǥ@F*DǤD3024Ǩ4F$ǩ0F(2F*$ <?D8ǥ Ǥ$D0F&# )@(DF(>E $ $0I$gC<?DDǫ Ǫ$<@D(D F*F2!,(ǭ8Ǭ< DZ(ǰ,)(ǥ@F0BǤD`) F$T($F2F(4ǥH+0*4ǤLǩ@F$TǨD'(&,Ǫ4F(4ǫ0d)F*ǰ,DZ((F0BF$$%F&TF$%'PSTEREOGRAPHICPoint projects into infinityster-for=|׽ ( 48< HLP \`d ptx            0 8<@ HL4       $ 8<t      0 8<L T\p x|   @p , @& l# % x h T(F 'H1(,A`PKf, !` ` ` ` ` (`  0`   $ / : E ( Q h  V ^ b f h ( j q x }   p V  ,   !     !  `sterfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/sterfor.c8600090063418/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c sterfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterforintr_majcenter_loncenter_latfalse_eastfalse_northtempsterforlonlatxysinphicosphidloncoslonkspg/usr/include/math.hlucy:/usr/include/math.h86000900613775__infinityerrnosigngamsterforinttsincosptitleradiuscenlonmeroriginoffsetpsterforadjust_loncosfabsp_errorsin_gp_disp!,I!  $,3:DKS [fjow|     4P ]!P)@.p  7p@ Jp Up Xsterinv.o/ 860008827 2145 20 100664 6084 ` ELF4( P@@%-8@GNX_goty~.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamsterinvinttsincosptitleradiuscenlonmeroriginoffsetpsterinvsqrtatanfabsasinadjust_lonatan2sin_gp_disp<'!'د(,04ǥ(Ǥ,%$ǧ0Ǧ4'& ǩ8Ǩ<)(ǫHǪL+*DZ@ǰD1 0$ǭ8Ǭ<$( $0$ -, -,  -, - ,$/. %'(<'!'$ X\`dǥXǤ\' &$F&"\Xǫ`Ǫd10F0Td`ǥXǤ\ǩ`F$!ǨdF(B F*3 PT<@DD32ǩPF2ǨT F$C<@D8D0 F&LHǭHǬL'@ '8 h10 ǭPǬT 32F2>E l)(%ǥ8Ǥ<'(&,DZ`F&"ǰddz@DzDF2%0$4ǰTDZPF$AF04 F2Sl -, )(F(40ǭ0Ǭ4 ' &$F&>E9DXDP10F0P>Eǯ`ǮdǭXǬ\ F s F 32  F2h !p%ǭXǬ\ǯ`Ǯd F c F )(  F4Ch Y%Sl-, ǥ8Ǥ<'(&,F&F0"40ǭ0Ǭ4 3(2,F2<EǭXǬ\ )0(4F(<E$%ǧXǦ\ǥ@ǤDF$4+0*4dz0Dz4F*ǩPǨT F( F '&  F&h @A%$ǵǴ'XSTEREOGRAPHIC=|׽?!TD-=|׽=|׽=|׽ ??( 48< HLP \`d ptx            0 8<@ HL4     0 8<L x      $(@ HL\ |       , H PTL        < DH` |     @p @ * "P H%|D Hdd(F %H((HX(A(,B`0XL}, ` ` ` ` ` (`  0`   $ / : E ( Q h  V ^ ` b f 0 j m o t y  V  ,   !    !  `sterinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/sterinv.c8600090083841/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c sterinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterinvintr_majcenter_loncenter_latfalse_eastfalse_northtempsterinvxylonlatrhzsinzcoszcon/usr/include/math.hlucy:/usr/include/math.h86000900813775__infinityerrnosigngamsterinvinttsincosptitleradiuscenlonmeroriginoffsetpsterinvsqrtatanfabsasinadjust_lonatan2sin_gp_disp} @}I   $,3:DKS [`ejoz     4p ]P! @) @@.p @ 7p `@ xJp 0Up Hstplnfor.o/ 860008830 2145 20 100664 11600 ` ELF+ 4(0@@ )4;BMS[ gow} .symtab.shstrtab.strtab.text.rodata.data.bss.options.reginfo.rel.text.gptab.data.gptab.bss.mdebug.text.rodata.data.bss__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngamstplnforintsprintfp_errorfopenfseekfreadfcloseptitlegenrpt_longsqrtpakszpakcztmforintlamccforintpolyforintomerforintstplnfortmforlamccforpolyforomerfor_gp_disp<'!'|x该쯦ptD(D D8D0$䏏菁9%7  X%lh!'() 쯨$! X%lh!'() 쯨$!菧'  $x'  $(x$@  $4x $8x` $< $hx$䏙``# ``# a(% 0%x'p$ $ x$$ $x'$ $ x x菧'  $tx'  $xN$$ x $x$$S܏ $x')('<?DX DPF0S '32F F4x$JAg'gf'ōŌ xF F  'x)(F(菭'04 xF F  'x10F0'8<''@&DǩǨǫǪDZǰdzDzǥǤԏǭǬǯǮ $(,0 4x$'-(,, xF F  'x'&F&@'m l$ xF F  'x+*F*m'ŭŬ xF F  'x32F2菮P'04 xF F  'x'&F&3'+8*<'@DdzDzǥǤǧǦǩǨǫǪDZǰԏǭǬǯǮ $(,048 <x$)!^'ML xF F  'x32F2菫`'ōŌ xF F  'x'& F&' $'(,dzDzǥǤǧǦǩǨԏǭǬǯǮ $( ,x$'+*' ( , xF F  'x10F0ȏ }'ML xF F  'x%$F$``'ō0Ō4 xF F  'x) ($F(C'8<'@D$ǥǤǧǦǩǨǫǪď $(,`ǪǫǨǩǦǧǤǥDZǰdzDzǭǬǯǮ\XTPLHD@048 <x%|ǵpǴt'<'!'Я$ 048<$@Dǭ0Ǭ4ǯ8Ǯ< ,,  ,SM$@Dǭ0Ǭ4ǯ8Ǯ< ,, `,93$@Dǭ0Ǭ4ǯ8Ǯ< ,, ,$@Dǭ0Ǭ4ǯ8Ǯ< ,,  ,%$'0Illegal zone #%4d for spheroid #%4dstate-initrrError opening State Plane parameter filestate-forIllegal zone #%4d for spheroid #%4dstate-initSTATE PLANEZone: Datum: NAD?FR5?FR5?FR5?FR5?FR5?FR5?FR5?FR5?FR5?FR5?FR5ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(P ??""X `t |   (        $ 0( 8, P        , 8 H< \ d` x |    0 8` |         0 8<p       $X t    t |      8 @ D    0 L d l p       4 L T X  " "    4 < T     (! @p H(<y "%,&('!# (" (" (3&'(%(V!$E$E(E(5$1U(5(5(5(10; $)0, .`@@@     0 # %$+  & , 7 B M X d l u ~    1   6   4 5( , ) $ , K)`R)`i` Y%`^ %`c@%`i`%`oh%`!`u)` ,   ! 0 0 $ 0@00c   - !   0c  00 !  `stplnfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/stplnfor.c8600090106889/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c stplnfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceidinzoneNAD27NAD83stplnforintzonespherefn27fn83indinadvaltablepnamebufr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northazimuthlat_origlon_origlon1lat1lon2lat2modeiflgptrstplnforlonlatxyiflg/usr/include/stdio.hlucy:/usr/include/stdio.h86000901010773size_tfpos_t_cnt_ptr_base_flag_fileFILE/usr/include/math.hlucy:/usr/include/math.h86000901013775__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngamstplnforintsprintfp_errorfopenfseekfreadfcloseptitlegenrpt_longsqrtpakszpakcztmforintlamccforintpolyforintomerforintstplnfortmforlamccforpolyforomerfor_gp_disp.8z. 814I:i@%!+(39A MU]ciov}  $        "#)+,40 do!0)@/4p  =pF ((PpP \ppgpstplninv.o/ 860008832 2145 20 100664 11684 ` ELF+t4(0@@ )4;BMS[ gow}  .symtab.shstrtab.strtab.text.rodata.data.bss.options.reginfo.rel.text.gptab.data.gptab.bss.mdebug.text.rodata.data.bss__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngamstplninvintsprintfp_errorfopenfseekftellfreadfcloseptitlegenrpt_longsqrtpakszpakcztminvintlamccinvintpolyinvintomerinvintstplninvtminvlamccinvpolyinvomerinv_gp_disp<'!'|x该쯦ptD(D D8D0$䏏菁9 %7  X%lh!'() 쯨$! X%lh!'() 쯨$!菧' $x' $(x$@  $4x $8x` $< $hx$䏙``# ``# a(% 0%x x'l$ $ x$$ $x'$ $ x x菧' $tx' $xN$$ x $x$$S܏ $x')('<?DX DPF0S '32F F4x$JAg'gf'ōŌ xF F  'x)(F(菭'04 xF F  'x10F0'8<''@&DǩǨǫǪDZǰdzDzǥǤԏǭǬǯǮ $(,0 4x$'-(,, xF F  'x'&F&@'m l$ xF F  'x+*F*m'ŭŬ xF F  'x32F2菮P'04 xF F  'x'&F&3'+8*<'@DdzDzǥǤǧǦǩǨǫǪDZǰԏǭǬǯǮ $(,048 <x$)!^'ML xF F  'x32F2菫`'ōŌ xF F  'x'& F&' $'(,dzDzǥǤǧǦǩǨԏǭǬǯǮ $( ,x$'+*' ( , xF F  'x10F0ȏ }'ML xF F  'x%$F$``'ō0Ō4 xF F  'x) ($F(C'8<'@D$ǥǤǧǦǩǨǫǪď $(,`ǪǫǨǩǦǧǤǥDZǰdzDzǭǬǯǮ\XTPLHD@048 <x%|ǵpǴt'<'!'Я$ 048<$@Dǭ0Ǭ4ǯ8Ǯ< ,,  ,SM$@Dǭ0Ǭ4ǯ8Ǯ< ,, `,93$@Dǭ0Ǭ4ǯ8Ǯ< ,, ,$@Dǭ0Ǭ4ǯ8Ǯ< ,,  ,%$'0Illegal zone #%4d for spheroid #%4dstate-initrrError opening State Plane parameter filestate-invIllegal zone #%4d for spheroid #%4dstate-initSTATE PLANEZone: Datum: NAD?FR5?FR5?FR5?FR5?FR5?FR5?FR5?FR5?FR5?FR5?FR5ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(P ??##X `t |   (        $ 0( 8, P        , D0 P `T t |x      H Px       (,   0 H PT     0 8<p   8       8 P X \    H d |        0 L d l p  # #    L T l   !  $@" @p I),= y "%d&d'<!# (" (" (3&'(%(V!D%$E(E(5$AU(5(5(5(10; %/0, /`@@@     0 $ % +  & , 7 B M X d l u ~    1   6   4 5( - * % , K)`R)`i` Y%`^ %`c@%`i`%`oh%`!`u)` ,   ! 0 0 % 0@0 0c   . !   0c  00 !  `stplninv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/stplninv.c8600090136980/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c stplninv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceidinzonenad27nad83stplninvintzonespherefn27fn83indinadvaltablepnamebufr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northazimuthlat_origlon_origlon1lat1lon2lat2modeiflgstatusptrstplninvxylonlatiflg/usr/include/stdio.hlucy:/usr/include/stdio.h86000901310773size_tfpos_t_cnt_ptr_base_flag_fileFILE/usr/include/math.hlucy:/usr/include/math.h86000901313775__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngamstplninvintsprintfp_errorfopenfseekftellfreadfcloseptitlegenrpt_longsqrtpakszpakcztminvintlamccinvintpolyinvintomerinvintstplninvtminvlamccinvpolyinvomerinv_gp_disp/8z/ 81;I;i@%!+(39A MU]ciou|  %        #$*,-4@ to!0)@/4p  =p0F H0Ppx \pgptmfor.o/ 860008835 2145 20 100664 9156 ` ELF!4(  %-6;@EJOT[cjt{.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamtmforintsqrte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptmforadjust_lontsincossinfabsp_errorlogacoscostan_gp_disp<'!'40@DHLǥ@ǤD%$ǧHǦL'& ǩPǨT)(ǫXǪ\+*DZ`ǰd1 0$dzpDzt3h2lǥhǤl%p$t'& )(F(2<8DZ8ǰ<<?F0D(D F2!&T'P-P,T 0!H L-P,T 0!( ,-P,T 0!0 4-P,T 0!8 <-P,T 0!@ D-(,,/0.4)8(<+@*D1 0$  $0%$F$2d3`<?D8D0)P(TF(2F*D0\1X%P$T3h2lF2 <E<?D8D0'x&|DHD@)x(|$ 0-,/.  0-, $0-, 0- ,$ 0-p,t/h.l 0%4'@<'!'8D@8<04ǥǤ̏'& F&#@ďǭǬ' '@DXDP)x(|F*@2EǭǬ DZǰ@F0ǭǬ @<?D(D F  F$@'p&tF&<E $@ $`@[$]Z<?ǫǪDHDD@DF*DF* F$@<?D8D0)(F(4+*F*F0ǭǬ ǧǦ@F&2<?DDF  F(ǫǪ@F6TF  F4@hlǥǤD8D0F& <EdzhDzlF lhǧh+*Ǧl10F0Q3 2$F22F("%DZǰǧǦF&ǥǤF$"DZǰ+X*\F0QF04ǭǬ @ptǥpǤtF$"|xǧǦ+P*T<?F&TD(D F&F2"lhǭhǬl @+*F Td`dz-(,,Dz/0.4'8&< %@$D$ @)(F(\X<@2DDǧxǦ|<@F&DD<@RF$ǤF&2DǥD<@MF*DF$DDF(0\1X<@4F0ǰDZF(TDPDX<?F*F2BD@DH<@F&DF$DDF*A<?F2DXDP32F&"Ǥdǥ`F$F(TǪǫ$tF*2%pF0DF$<@DX<@"DDǥǤDPF$ǩxǨ|<@DF(TDF&<@MF$F$DDF&T&|F('xF*4F(A()F&F$D()%X$\F0Q<@>F$BD ǨD(ǩF*4<@8F$AF02D0D8<?F&DF*DPDXF$Ǥdǥ`F2QǪtF&DǫpǦ\ǧXF*$$d%`F0F$201F(T%hF0$lF$2*+%Dǵ0Ǵ4Ƿ8Ƕ<'TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinitytm-for>h=|׽@N@@t ( 48< HLP \`d ptx         , 48< DH@ \ dhl txp            $(, 48< DH h ptx        $  8 @DH PT< h txl p         T dh`      0 8<T `X h\     $ D      ,0H          (, P X\  , 4 8 < h `             h        p l>T6%D$Dd(($FH('HG(8A@:`|pk+, 4` ` ` ` ` (` 0` 8` @` H` P` X`  `` h` p` +x` / 8 > D O Z e( p0 ( |  /      8 2               "  ,   !   3 !  `tmfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/tmfor.c8600090155688/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c tmfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorscale_factorlon_centerlat_origine0e1e2e3eesespml0false_northingfalse_eastingindtmforintr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northtemptmforlonlatxydelta_lonthetadelta_thetasin_phicos_phialalsbcttqconnml/usr/include/math.hlucy:/usr/include/math.h86000901513775__infinityerrnosigngamtmforintsqrte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptmforadjust_lontsincossinfabsp_errorlogacoscostan_gp_disp4iI4  "',16;@GOV`go u      "124 $]P !P).p  7p@ XJppUp \tminv.o/ 860008837 2145 20 100664 11276 ` ELF*,4( @#.5<GMU^chmrw| .symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngamtminvintsqrte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcosasinzadjust_lonatan2sinfabsp_errortsincostansign_gp_disp<'!'40@DHLǥ@ǤD%$ǧHǦL'& ǩPǨT)(ǫXǪ\+*DZ`ǰd1 0$dzpDzt3h2lǥhǤl%p$t'& )(F(2<8DZ8ǰ<<?F0D(D F2!&T'P-P,T 0!H L-P,T 0!( ,-P,T 0!0 4-P,T 0!8 <-P,T 0!@ D-(,,/0.4)8(<+@*D1 0$  $0%$F$2d3`<?D8D0)P(TF(2F*D0\1X%P$T3h2lF2 <E$.x$ 0-,/.  0-, $0-, 0- ,$ 0-p,t/h.l 0%4'@<'!' ,( $$Dxǫ%$Ǫ'&F&" F(S(`d<?DDdz`Dzd<?F2DXDPF$F*2TPǧ10Ǧ32F2) ($F$2F(TLHǭHǬL (X\dzXDz\ǩPF2ǨT<?D(D F(DDDF&"F0 F$S(܏ǭǬ (ǧHǦLDHD@F(0<E 32F 01ǫPǪTD(D F$P2EǧXǦ\DHD@F(02E 32%ǭPǬTǯXǮ\ (F 10 F0( !%ǫǪ%p$tF$QǩǨ3h2lF2D菁ǫǪ%$F$Q)`(d10F(4F0ǥǤԯ<@D8D0ǩǨԏF(3 (<@DDDZǰԏF  F0(<@DXDPǥǤԏF  F$S(ǧ؏Ǧ)0(4F4D+8*<F6QF24&D'@F&F$0,1(ǦF(ǧF0QF&$ǩǨǫǪF*DЏǭǬ (%p$tF$>EďDK* $@ $\(M$_%ďǭǬ ('x&|F&<EǭǬ' '(ǭǬ (ǩǨ3X2\F(F(TǥǤF$!dzDzF2ǩǨF(DǧǦ%P$T<?F&$DHD@F&F*D؏ǭǬ (%$F $<?D8D0)P(TDZǰF(2dzF0QDzF2!|xǩǨ+*ǥF*DǤF0$tpǧpǦtF&2lh<@DXDPǥǤ<@F$TDD<@$DHǪǫD@F0<@F*DD@DH<@"F24ǦǧF&DF2DD3X2\F2F0B01F$$%F0!01F*F0"ǰDZ$%F0!F$T*+<@F2QDD<@>F$F&D0DzlD8dzhF0Q<@8F&F$TDPDX<?F*F0ADDF&"ǦǤǧǥF(F&$Ǥ|ǥxF2DzdzF$AF*4F0<@D(D ǧǦ<@F&"DD<@h=|׽?!TD-@V@N@r@F@o?!TD- %%( 48< HLP \`d ptx         , 48< DH@ \ dhl txp            $(, 48< DH h ptx          $ ,0 D PTH \L h ptl      %%8 @P X\` hlp     L l  $(D h ptl       P x      < X `d  !     " 8# X d h      $ @ H L x   0 8 < @ P L T ` \ d p l t         P l d  $      p xO'HlV!$#$"%d((FU(%Hh((W''8h!@<`L@k*, :` ` ` ` ` (` 0` 8` @` H` P` X`  `` h` p` +x`/ 8 > D O Z e( p0 ( |  /      8 8               x p h d "   , K)`R)`i` Y%`^ %`c@%`i`%`oh%`!`u)` ,   !   9 !   0c  00 !  `tminv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/tminv.c8600090186380/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c tminv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorscale_factorlon_centerlat_origine0e1e2e3eesespml0false_northingfalse_eastingindtminvintr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northtemptminvxylonlatconphidelta_phiisin_phicos_phitan_phiccsttsnrddsfhgtempmax_iter/usr/include/stdio.hlucy:/usr/include/stdio.h86000901810773size_tfpos_t_cnt_ptr_base_flag_fileFILE/usr/include/math.hlucy:/usr/include/math.h86000901813775__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngamtminvintsqrte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcosasinzadjust_lonatan2sinfabsp_errortsincostansign_gp_disp:z: 1`IFF@%!+(39A JOTY^chow~         " 78!4` ]!).p  7p@ Jp Uputmfor.o/ 860008840 2145 20 100664 9432 ` ELF"4(  %-7;CHMRW\aht|.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamutmforintabsp_errorsqrte0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutmforadjust_lontsincossinfabslogacoscostan_gp_disp<'!'40@DHLX 0@ X 0(A= $ $0$ ǥ@ǤD%$ǧHǦL'& ǩPǨT)(DXDP+ *$X pp#0p@%IDF%$F$&')()p(tX +*+h*lDD1h0l32 %$F$<8ǩ8Ǩ<<?F(BDDF*2T3P-P,T 0!H L-P,T 0!( ,-P,T 0!0 4-P,T 0!8 <-P,T 0!@ D-(,,/0.4%8$<'@&D) ($  $010F0*d+`<?DD%P$TF$F&"(\)X1P0T+*F*<E<?DD3x2|$  0X $D0-,/.  0-, $P0-, 0%4'@<'!'8D@8<04ǥǤ̏'& F&#@ďǭǬ' '@DXDP)x(|F*@2EǭǬ DZǰ@F0ǭǬ @<?D(D F  F$@'&F&<E $t $@[$]Z<?ǫǪDHDD@DF*DF* F$@<?D8D0)(F(4+*F*F0ǭǬ ǧǦ@F&2<?DDF  F(ǫǪ@F6TF  F4@hlǥǤD8D0F& <EdzhDzlF lhǧh+*Ǧl10F0Q3 2$F22F("%DZǰǧǦF&ǥǤF$"DZǰ+X*\F0QF04ǭǬ @ptǥpǤtF$"|xǧǦ+P*T<?F&TD(D F&F2"lhǭhǬl @+*F Td`dz-(,,Dz/0.4'8&< %@$D$ @)(F(\X<@2DDǧxǦ|<@F&DD<@RF$ǤF&2DǥD<@MF*DF$DDF(0\1X<@4F0ǰDZF(TDPDX<?F*F2BD@DH<@F&DF$DDF*A<?F2DXDP32F&"Ǥdǥ`F$F(TǪǫ$tF*2%pF0DF$<@DX<@"DDǥǤDPF$ǩxǨ|<@DF(TDF&<@MF$F$DDF&T&F('ȏF*4F(A()ЏF&F$D()؏%X$\F0Q<@>F$BD ǨD(ǩF*4<@8F$AF02D0D8<?F&DF*DPDXF$Ǥdǥ`F2QǪtF&DǫpǦ\ǧXF*$$d%`F0F$201F(T%hF0$lF$2*+%Dǵ0Ǵ4Ƿ8Ƕ<'Illegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityutm-for?FR5AAc>h=|׽@N@@t ( D d ph xl          $ ,04 <@T \`d ltx           4 <@D LPH d lpt |x             @ HLP \Xh ptx          $ ,0 D PTH \L h ptl     , 8<T       , L TX\ dh   ( 048 @DH PT    @ \ dh|       P ` \       ` p h t          $  ( 8 4 < D Lp lD |3%H(H'$((FH('HG(81@6\*|ph., 1` ` ` ` ` (` 0` 8` @` H` P`  X`  `` h`  p` .x` 2 < B H S ( X  2 ] d h l n 8 /p z              ]  ,   !   0 !  `utmfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/utmfor.c8600090205470/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c utmfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorscale_factorlon_centerlat_origine0e1e2e3eesespml0false_northingfalse_eastingindutmforintr_majr_minscale_factzonetemputmforlonlatxydelta_lonthetadelta_thetasin_phicos_phialalsbcttqconnml/usr/include/math.hlucy:/usr/include/math.h86000902013775__infinityerrnosigngamutmforintabsp_errorsqrte0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutmforadjust_lontsincossinfabslogacoscostan_gp_disp1lI1  #'/49>CHMT`hoy       ./4 $]P !).p  7p@ JpUp Hutminv.o/ 860008843 2145 20 100664 11644 ` ELF+4( @#.5<GMU_ckpuz .symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngamutminvintabsp_errorsqrte0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutminvexpcosasinzadjust_lonatan2sinfabstsincostansign_gp_disp<'!'40@DHLX 0@ X 0(A= $ $0$ ǥ@ǤD%$ǧHǦL'& ǩPǨT)(DXDP+ *$X pp#0p@%IDF%$F$&')()p(tX +*+h*lDD1h0l32 %$F$<8ǩ8Ǩ<<?F(BDDF*2T3P-P,T 0!H L-P,T 0!( ,-P,T 0!0 4-P,T 0!8 <-P,T 0!@ D-(,,/0.4%8$<'@&D) ($  $010F0*d+`<?DD%P$TF$F&"(\)X1P0T+*F*<E$9x x$  0X $D0-,/.  0-, $P0-, 0%4'@<'!' ,( $$Dxǫ%$Ǫ'&F&" F(S(`d<?DDdz`Dzd<?F2DXDPF$F*2TPǧ10Ǧ32F2) ($F$2F(TLHǭHǬL (X\dzXDz\ǩPF2ǨT<?D(D F(DDDF&"F0 F$S(܏ǭǬ (ǧHǦLDHD@F(0<E 32F 01ǫPǪTD(D F$P2EǧXǦ\DHD@F(02E 32%ǭPǬTǯXǮ\ (F 10 F0( !%ǫǪ%p$tF$QǩǨ3h2lF2D菁ǫǪ%$F$Q)`(d10F(4F0ǥǤԯ<@D8D0ǩǨԏF(3 (<@DDDZǰԏF  F0(<@DXDPǥǤԏF  F$S(ǧ؏Ǧ)0(4F4D+8*<F6QF24&D'@F&F$0,1(ǦF(ǧF0QF&$ǩǨǫǪF*DЏǭǬ (%$F$>EďDK* $t $(M$_%ďǭǬ ('&F&<EǭǬ' '(ǭǬ (ǩǨ3X2\F(F(TǥǤF$!dzDzF2ǩǨF(DǧǦ%P$T<?F&$DHD@F&F*D؏ǭǬ (%$F $<?D8D0)P(TDZǰF(2dzF0QDzF2!|xǩǨ+*ǥF*DǤF0$tpǧpǦtF&2lh<@DXDPǥǤ<@F$TDD<@$DHǪǫD@F0<@F*DD@DH<@"F24ǦǧF&DF2DD3X2\F2F0B01ЏF$$%؏F0!01F*F0"ǰDZ$%菁F0!F$T*+<@F2QDD<@>F$F&D0DzlD8dzhF0Q<@8F&F$TDPDX<?F*F0ADDF&"ǦǤǧǥF(F&$Ǥ|ǥxF2DzdzF$AF*4F0<@D(D ǧǦ<@F&"DD<@h=|׽?!TD-@V@N@r@F@o?!TD- %%( D d ph xl          $ ,04 <@T \`d ltx           4 <@D LPH d lpt |x             @ HLP \Xh ptx            $( 04 H TXL `P l txp %%     $ t |         $(  L X\p |    , T l tx|   !    P \ T d X !    " #    |          , 8 <           $  ( @ < D T P ` p l   D D$ ` hl p U(EV!,"% %"&H'$(("FU(%Hh((W''8h!@9a+L@l/, 7` ` ` ` ` (` 0` 8` @` H` P`  X`  `` h`  p` .x`2 < B H S ( X  2 ] d f h l 8 5p t x             x p h d ]   , K)`R)`i` Y%`^ %`c@%`i`%`oh%`!`u)` ,   !   6 !   0c  00 !  `utminv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/utminv.c8600090236267/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c utminv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcer_majorr_minorscale_factorlon_centerlat_origine0e1e2e3eesespml0false_northingfalse_eastingindutminvintr_majr_minscale_factzonetemputminvxylonlatconphidelta_phiisin_phicos_phitan_phiccsttsnrddsfhgtempmax_iter/usr/include/stdio.hlucy:/usr/include/stdio.h86000902310773size_tfpos_t_cnt_ptr_base_flag_fileFILE/usr/include/math.hlucy:/usr/include/math.h86000902313775__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngamutminvintabsp_errorsqrte0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutminvexpcosasinzadjust_lonatan2sinfabstsincostansign_gp_disp7z7 1=ICF@%!+(39A KOW\afkpu|          45!4` ]!).p  7p@ Jpx Upvandgfor.o/ 860008845 2145 20 100664 6544 ` ELF4(  %-9@GNV_jouy.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamvandgforintptitleradiuscenlonoffsetpvandgforadjust_lonfabsasinztantsincossqrt_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!'p$ ǥǤ'& F&# ǭǬ )(F(>EDZǰ+* F0T%$F$)(u%ǫǪ10 F0S <@DDF  F2 ǭǬ % $$F$>EǭǬ F '(&, F& )0(4F(>EI+* DZǰDDF0>E<?D(D ǧǦF&# )8(<+* F*D%$F0F$&'<?DHD@ǫǪF*C F 1@0D32 F2+*F$2F*D%ǧ3H2LǦ)P(TF&F(2 F*#<?DD F0|xǧxǦ|F&2tpǭǬ'8 '@ ǥ8Ǥ<ǫ@ǪD<?DDF*$F2F&RlhǥhǤlF$$d`<@DDǫ8Ǫ<<?F*DHD@DZhǰlF(1F0$\XǫXǪ\F*QTPǩhǨlǥPǤTdzpDztF$DF2F2"F0QǪdǫ`F$TF0D F23 ǫhǪlǥPǤTF$RDZxǰ|*\+XF(10 F&F0RǪtǫpF(F*$F04LHǩǨD(D F$@<EǫHǪLF QLHdzHDzL10F2()DZH%`$dǰL+* F*! F& HLdzDzDHD@F2@>E%ǥHǤL<?F$"DD<@DDǩxǨ|F*F(F$ F*3 3h2l)( F('&F0F&"J$KdzHDzL<?F2DD<@D8D0ǫxǪ|F(F*4F2 F(# 'p&t+* F*4%$F0F2"hi%$ǵǴ'VAN DER GRINTEN=|׽@ !TD-=|׽?!TD-=|׽@ !TD-@ !TD-@ !TD-@ !TD-@ !TD-@ !TD-@ !TD-@ !TD- ??( 48< HLP \`d ptx |     L \`X x         < X t |     H ` hlp x|       $( 04<  \   , 8<P X\` hlp      $(p     p L,P$D0%@0P4F(((%((((! .= G0Gz , "` ` ` `      (   & / 3 7 9 0 ; @ F I M O S U Y ] c i  &  ,   !    ! !  `vandgfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/vandgfor.c8600090263896/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c vandgfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingvandgforintrcenter_longfalse_eastfalse_northvandgforlonlatxydlonthetaalasqggsqmmsqconcosthsinthtemp/usr/include/math.hlucy:/usr/include/math.h86000902613775__infinityerrnosigngamvandgforintptitleradiuscenlonoffsetpvandgforadjust_lonfabsasinztantsincossqrt_gp_dispn"KnI"  %,3:B KV[aemt        4@ t]`! P) .p 7p @ JpUp0vandginv.o/ 860008848 2145 20 100664 5864 ` ELF4( P %-9@GNVh_dinr}.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamvandginvintptitleradiuscenlonoffsetpvandginvfabssqrtacoscosadjust_lon_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!'`$ ǥǤ'&F&"ǫǪ10F0T%$'& F&"D@ǫǪDZ@ǰDF0TǥǤǧ@ǦDF&"ǫǪdzF*TDzF2F$ǭǬ <?DHD@ǫǪF F*D F2|x<@D8D0ǩǨdzxF(2ǦǧDz|F(TF&2F0F*"tp<DDDZxǰ|<?F0D(<@DHDzdzD@D F2DF$2ǨǩF2F(DF&QF0$lh<@DXDPǧpǦtdzhF&RDzl<@"F&AF&$F2DD<@;F2RǪ|ǫxF2AF*F&DF2DDF2RF(!ǤǥF02F$"F2AF*440ǥpǤt<@F$"DDǫhǪlF2AǤ|ǥxF*4F0"F*DTPǧPǦT<@DDF 1 F0#<@DHD@ F(LH<@DDǧ0Ǧ4DZPF&ǰTǫHǪLF0"F*DD@ǭ@ǬD <?D8D0 F 0<Eǥ@ǤDDDF$>E<?DHD@@D<DXDP@Dǭ@ǬD <@DD F2<8ǥǤDDF$>E ǩ8Ǩ<+* F*C<@D8dzpDztD0DZhF&ǰlǫHǪL F TF2F0"0$1 F(1F0" dz8Dz<'(&, F&<@D(ǩpǨtD ǫhF$DǪlǧHǦL F 2F('0&4F*F2$F F&RǭǬ %8$<F$<E 329%DZǰǧF0Ǧ<@DDF&2<?D8D0F(QǨF2$ǩF(AF& F$S<?D dzDzDF0+@F F&*D<@F*ADDǦǧF2$+*F& F*C !%$ǵǴ'VAN DER GRINTEN@ !TD-?R8-se@ !TD-?R8-se@ !TD-=|׽@ !TD- ??( 48< HLP \`d ptx |     L X\p |  ,  `  8 HLD     0 L TXp x|  4 <@8  p H (% p& %4x` 4F (($(((%(1 .= G0xGx , $` ` ` `      (   & / 1 3 7 0 "; @ C F J M P S V Z ] ` d h L &h  ,   !    # !  `vandginv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/vandginv.c8600090283735/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c vandginv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingvandginvintrcenter_longfalse_eastfalse_northvandginvxylonlatdlonxxyyxysc1c2c3alasqa1m1conth1d/usr/include/math.hlucy:/usr/include/math.h86000902813775__infinityerrnosigngamvandginvintptitleradiuscenlonoffsetpvandginvfabssqrtacoscosadjust_lon_gp_dispj$GjI$  %,3:B KPUZ^l       !"40 d]P! P) 0 .p 0 7p P@ hHJp Up @wivfor.o/ 860008850 2145 20 100664 4664 ` ELFX4( ` %-7>ELT[fjns{.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamwivforintptitleradiuscenlonoffsetpwivforadjust_lonsincosfabsp_error_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, ǭ0Ǭ4ǯ8Ǯ< %' <'!'$ X\`dǥXǤ\'& F&# PTǩ`ǨdHLǭ`Ǭd +@*DF*<84ǭHǬL ǭHǬL F dzHDzLǧ8Ǧlucy:/tmp_mnt/home/hdf/sgi/gctpc/source/wivfor.c8600090313074/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c wivfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingwivforintrcenter_longfalse_eastfalse_northwivforlonlatxydelta_lonthetadelta_thetaconi/usr/include/math.hlucy:/usr/include/math.h86000903113775__infinityerrnosigngamwivforintptitleradiuscenlonoffsetpwivforadjust_lonsincosfabsp_error_gp_dispS(SI  #*18@ GRVZ_h       40 d]P!0`) .p  7p@ JpUpwivinv.o/ 860008853 2145 20 100664 4088 ` ELF4( 0 %-7>ELT[`kos.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamwivinvintptitleradiuscenlonoffsetpwivinvasinadjust_loncossin_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, ǭ0Ǭ4ǯ8Ǯ< %' <'!'ȯ$ 8<@Dǥ8Ǥ<'&F&"<8ǫ@ǪD10F0TD@ǫ@%$ǪD'& F&" F(S 04ǭ0Ǭ4 F ǫ810Ǫ<32 F201F$F&R F0CH <@DDǥ0Ǥ4F$ <@DXDPǧ0Ǧ4 F&R3 2$F F( F2L %$ǵǴ'8WAGNER IV? 4\?랃%@DKL ??( 48< HLP \`d ptx | @ LPd pt         L x |  p x % ( l <  84Fh '6 D08?K , ` ` ` `      (   % ' ) - 0 1    ,   !     !  `wivinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/wivinv.c8600090332544/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c wivinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingwivinvintrcenter_longfalse_eastfalse_northwivinvxylonlattheta/usr/include/math.hlucy:/usr/include/math.h86000903313775__infinityerrnosigngamwivinvintptitleradiuscenlonoffsetpwivinvasinadjust_loncossin_gp_disp77I  #*18@ GLW[`       4  T]|0!0)0 .p 0 7pP@ hJpUpwviifor.o/ 860008856 2145 20 100664 4360 ` ELF(4( 00 %-8?FMU]hpty.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamwviiforintptitleradiuscenlonoffsetpwviiforadjust_lontsincossinsqrt_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!'PTX\ǥPǤT'& F&#HL<@DXǩHǨLDP'@'8 F*CǭXǬ\ 10F040ǥ0Ǥ4<?F$!DHD@ F&C(,ǫ(Ǫ,DZ8ǰ<<?F0TD(D <@D8D0F$ F(3 $ǥ(+*Ǥ,10 ǩ F0TǨ$ǰDDZ@F$$%`F(2F0TF$dz0) ($Dz4+* ǧ F*DǦ$d+F2*F&"F*D%'PWAGNER VII?}A5T@V|G?LPr ( 48< HLP \`d ptx |     D TXP     < X `dh pt     p $ (<%  t D  H4F '6 GP?O , ` ` ` `       (   " * . 2 4 ( 6 @ H P R U  "  ,   !     !  `wviifor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/wviifor.c8600090362740/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c wviifor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingwviiforintrcenter_longfalse_eastfalse_northwviiforlonlatxydelta_lonsin_loncos_lonsc0c1/usr/include/math.hlucy:/usr/include/math.h86000903613775__infinityerrnosigngamwviiforintptitleradiuscenlonoffsetpwviiforadjust_lontsincossinsqrt_gp_dispX#XI  $+29A IT\`h       4  T]@0!p0) .p  7p@ JpUppwviiinv.o/ 860008858 2145 20 100664 4556 ` ELF4( 0 %-8?FMU]bhlw}.symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__infinityerrnosigngamwviiinvintptitleradiuscenlonoffsetpwviiinvsqrtasinzsinadjust_lonatan2tan_gp_disp<'!'௿ $(,ǥ Ǥ$%$ ǧ(Ǧ,'&ǩ0Ǩ4)(ǫ8Ǫ<+*$ ǭ Ǭ$ ǭ(Ǭ, -,/. %' <'!',(hlpt $ǥhǤl'&F&"lhǫpǪt10F0TtpǥhǤl'&F&"\XǫpǪt10F0TTPǥXǤ\F$!\XǩPǨTF(BTPDZXǰ\dzPDzTF2 (HL<@D(D '& ǫHF&"ǪL F(S<@DD(F0D@ǭ@ǬD (ǧHǦL% $$ǩpF&"ǨtF F( F*|(ǭ@ǬD (dzhDzlF F2ǧHǦL%($, F&#<@DH(D@F F(+* F*x(%,ǵǴǷ Ƕ$'hWAGNER VII@V|G?LPr? rt@V|G ( 48< HLP \`d ptx |     T `dx   $ H PTd      $(  D TXP  p (# HX%  8|  DX 4F *9 GhCV , ` ` ` `       (   " * , . 2 8 6 ; > A C ` "  ,   !     !  `wviiinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/wviiinv.c8600090393010/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c wviiinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcelon_centerRfalse_eastingfalse_northingwviiinvintrcenter_longfalse_eastfalse_northwviiinvxylonlattempt1t2pc/usr/include/math.hlucy:/usr/include/math.h86000903913775__infinityerrnosigngamwviiinvintptitleradiuscenlonoffsetpwviiinvsqrtasinzsinadjust_lonatan2tan_gp_dispE%EI  $+29A INTXcip       4@ t]`!0)0 .p 0 7pP@ hJp@UpXisinusfor.o/ 860008861 2145 20 100664 16504 ` ELF>p4( `0(.6@<EPW^tiq`,  .symtab.shstrtab.strtab.text.rodata.data.options.reginfo.rel.text.rel.data.gptab.data.mdebug.text.rodata.data__ctype__infinityerrnosigngam__iob_lastbuf_bufendtab_sibuf_sobufIsin_errorfprintfisinusforinitIsin_for_freefabsIsin_for_initmallocfreecosisinusforIsin_fwd_gp_disp<'!'௿ $ $$  $' <'!'40HLPT   0<< '9$d $t0 $ǥHǤLD8D0F& >E '9$ $0$ǩPǨT+h*lF*@<E 1p0tF(<E '9$ $܏0$dzhDzl%x$|F$<E '&F20<E '9$ $$0$ǫhǪl)(F(TDX78!DF $DDDdzhD0F2Dzl F*0)(F @<E '9$H $X0$D1  '9$ $0{$DZpǰt%$F$<E '&F00<E '9$ $ԏ0]$dzpDzt+*F*DJ5A8!DF A$D@@DZpD0ǰtF4 F20+*F P<E '9$ $ 0-$ǩXǨ\ǥ`ǤdD@ǭHǬLǯPǮT  $0"  '9$@ $P0$%4'H<'!'@DHLǥ@ǤD'&F& <E '9$ $p4%ǩHǨL+*F*@<E 10F(<E '9$ $4%dzHDzL%$F$<E ǧHǦL+*F*2LHDZHǰL32F0>E ǥHǤL'&F&"LH`) <4!Ɓ* '9$ $4v%`1 '9$ $4f%d +! '9$ $4T%$` << '9$ $4?%< \<ǩPǨTIH<DZXǰ\qp <dz@DzD<?D(D ǧ@ǦD    % 8 2* <8 9 C A* ?=8 BH >L A  I\ G=t D , N)`X)`i`c%`h %`!`m)`i` w%`| %`!`)`)`)`)`)` , i`L%`Q %`!`U)`i` [%`` %`!`d)`k)`r)`z)` ,  , K)`i` R%`W %`\@%`b`%`hh%`!`n)` , i`U%`Z %`c@%` !`l)``i`w%` @%` %` %` %` @%``%`%` %` %`@%` %` %`%`!`)`i`%` %`!`)`  ! aa     )     2 a  ? D aaJ !    !   0 !  ` !   0c  00 !     isinusfor.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/isinusfor.c86000904118703/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c isinusfor.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceerrorroutinetextISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinisinusforinitspherelon_cen_merfalse_eastfalse_northdzonedjustifynzoneijustifyistatIsin_for_initspherelon_cen_merfalse_eastfalse_northnrowijustifythisrowistatirowclatncol_cenisinusforlonlatxyistatIsin_fwdthislonlatxyrowcolflonirowIsin_for_freethisIsin_errorerrroutine/usr/include/sgidefs.hlucy:/usr/include/sgidefs.h8600090414854__int32_t__uint32_thi32lo32__int64_thi32lo32__uint64_t__psint_t__psunsigned_t__scint_t__scunsigned_t/usr/include/stdlib.hlucy:/usr/include/stdlib.h8600090416086quotremdiv_tquotremldiv_tsize_tssize_twchar_t/usr/include/math.hlucy:/usr/include/math.h86000904113775/usr/include/stdio.hlucy:/usr/include/stdio.h86000904110773fpos_t_cnt_ptr_base_flag_fileFILE./isin.hlucy:/tmp_mnt/home/hdf/sgi/gctpc/source/./isin.h8600090413368ncolicol_cenncol_invIsin_row_tfalse_eastfalse_northspheresphere_invang_size_invnrownrow_halfref_lonlon_cen_merijustifycol_distcol_dist_invrowkeyIsin_tnumstrerror_t__ctype__infinityerrnosigngam__iob_lastbuf_bufendtab_sibuf_sobufIsin_errorfprintfisinusforinitIsin_for_freefabsIsin_for_initmallocfreecosisinusforIsin_fwd_gp_dispTKDTKD!]eIlsn 1Py!'0;%B+I8DT\` j ?x},   )  2         D        '(.018=>ABCGHDI4 i-!`)p0/p  8pA  K " Up# ap#88isinusinv.o/ 860008864 2145 20 100664 16568 ` ELF>4( p0(.6@<EPW^tiq`,  .symtab.shstrtab.strtab.text.rodata.data.options.reginfo.rel.text.rel.data.gptab.data.mdebug.text.rodata.data__ctype__infinityerrnosigngam__iob_lastbuf_bufendtab_sibuf_sobufIsin_errorfprintfisinusinvinitIsin_inv_freefabsIsin_inv_initmallocfreecosisinusinvIsin_inv_gp_disp<'!'௿ $ $$  $' <'!'40HLPT   0<< '9$d $t0 $ǥHǤLD8D0F& >E '9$ $0$ǩPǨT+h*lF*@<E 1p0tF(<E '9$ $܏0$dzhDzl%x$|F$<E '&F20<E '9$ $$0$ǫhǪl)(F(TDX78!DF $DDDdzhD0F2Dzl F*0)(F @<E '9$H $X0$D1  '9$ $0{$DZpǰt%$F$<E '&F00<E '9$ $ԏ0]$dzpDzt+*F*DJ5A8!DF A$D@@DZpD0ǰtF4 F20+*F P<E '9$ $ 0-$ǩXǨ\ǥ`ǤdD@ǭHǬLǯPǮT  $0"  '9$@ $P0$%4'H<'!'@DHLǥ@ǤD'&F& <E '9$ $p4%ǩHǨL+*F*@<E 10F(<E '9$ $4%dzHDzL%$F$<E ǧHǦL+*F*2LHDZHǰL32F0>E ǥHǤL'&F&"LH`) <4!Ɓ* '9$ $4v%`1 '9$ $4f%d +! '9$ $4T%$` << '9$ $4?%< \<ǩPǨTIH<DZXǰ\qp <dz@DzD<?D(D ǧ@ǦDE X10%P$TF$&'X 3X2\F2@<E X 1`0dF0Q%'@<'!'௿  '9$ $ ) < \4!# '9$ $0 \ X  X   %' <'!'د$ (,(,$ $@  $$'( error (isinusinv.c/%s) : %s memory allocationinvalid parameterinvalid handleinvalid keyisinusinvinitbad return from Isin_inv_freeisinusinvinitbad parameter; sphere radius invalidisinusinvinitbad parameter; longitude of central meridian invalidisinusinvinitbad parameter; nzone out of rangeisinusinvinitbad parameter; nzone not near an integer valueisinusinvinitbad parameter; nzone not multiple of twoisinusinvinitbad parameter; ijustify out of rangeisinusinvinitbad parameter; ijustify not near an integer valueisinusinvinitbad return from Isin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_invIsin_inv_freeIsin_inv_free error (isinusinv.c/%s) : (%i) %s !TD-@!TD-? =pA3ƀ\)?zG{?zG{zG{@zG?zG{?zG{=|׽!TD-@!TD-@ !TD-@!TD-@ !TD-@!TD-@ !TD-@ !TD- !TD-@!TD-?!TD-@!TD-@!TD-!TD-?!TD-?!TD-@!TD-@ !TD-@!TD- !TD-@!TD- 4HX   $ <( `d        ,$ 4 (H TXp x|       $  8 DH          4 @D\ dh      $(D PH X@ L      ,0T `d  |         ,0H TXl x|    $ 0( 8  ,l xp h t    X `h      P        , 4 8 `  T d h       8 , l x p  h t     ( T `X hP \    $    $(D PT       , P     0p #9$& #h- `056#h8`(5h88(848(8X%1((&EBHtHD(C(CC2X1(HHHHH!26!(A SX` H,K@8 )<8 2m@?b -;D(RY, K8     H ` @@@ @ @` ", 3 ? J V \( ( ekt  z, $     $ ( ((+  z   0   . /( 1 . )  7 2    5 6$ >    % 8 2* <8 9 C A* ?=8 BH >L A  I\ G=t D , N)`X)`i`c%`h %`!`m)`i` w%`| %`!`)`)`)`)`)` , i`L%`Q %`!`U)`i` [%`` %`!`d)`k)`r)`z)` ,  , K)`i` R%`W %`\@%`b`%`hh%`!`n)` , i`U%`Z %`c@%` !`l)``i`w%` @%` %` %` %` @%``%`%` %` %`@%` %` %`%`!`)`i`%` %`!`)`  ! aa     )     2 a  ? D aaJ !    !   0 !  ` !   0c  00 !     isinusinv.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/isinusinv.c86000904418812/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c isinusinv.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceerrorroutinetextISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinisinusinvinitspherelon_cen_merfalse_eastfalse_northdzonedjustifynzoneijustifyistatIsin_inv_initspherelon_cen_merfalse_eastfalse_northnrowijustifythisrowistatirowclatncol_cenisinusinvxylonlatistatIsin_invthisxylonlatrowcolflonirowIsin_inv_freethisIsin_errorerrroutine/usr/include/sgidefs.hlucy:/usr/include/sgidefs.h8600090444854__int32_t__uint32_thi32lo32__int64_thi32lo32__uint64_t__psint_t__psunsigned_t__scint_t__scunsigned_t/usr/include/stdlib.hlucy:/usr/include/stdlib.h8600090446086quotremdiv_tquotremldiv_tsize_tssize_twchar_t/usr/include/math.hlucy:/usr/include/math.h86000904413775/usr/include/stdio.hlucy:/usr/include/stdio.h86000904410773fpos_t_cnt_ptr_base_flag_fileFILE./isin.hlucy:/tmp_mnt/home/hdf/sgi/gctpc/source/./isin.h8600090443368ncolicol_cenncol_invIsin_row_tfalse_eastfalse_northspheresphere_invang_size_invnrownrow_halfref_lonlon_cen_merijustifycol_distcol_dist_invrowkeyIsin_tnumstrerror_t__ctype__infinityerrnosigngam__iob_lastbuf_bufendtab_sibuf_sobufIsin_errorfprintfisinusinvinitIsin_inv_freefabsIsin_inv_initmallocfreecosisinusinvIsin_inv_gp_dispTKDTKD!]eIlsn 1Py!'0;%B+I8DT\` j ?x},   )  2         D        '(.018=>ABCGHDI4 i-!p)p0/p  8pA PK #( Up#H ap#hHfor_init.o/ 860008867 2145 20 100664 27224 ` ELFh4( 8 (817=KU\hq}%-8@KS_hry  ,5AJT[fnz.symtab.shstrtab.strtab.text.rodata.options.reginfo.rel.text.mdebug.text.rodata__infinityerrnosigngamfor_initsphdzpakszcalc_utm_zoneutmforintutmforstplnforintstplnforalberforintalberforlamccforintlamccformerforintmerforpsforintpsforpolyforintpolyforeqconforinteqconfortmforinttmforsterforintsterforlamazforintlamazforazimforintazimforgnomforintgnomfororthforintorthforgvnspforintgvnspforsinforintsinforequiforintequiformillforintmillforvandgforintvandgforomerforintomerforsomforintsomforhamforinthamforrobforintrobforgoodforintgoodformolwforintmolwforimolwforintimolwforalconforintalconforwivforintwivforwviiforintwviiforobleqforintobleqforisinusforinitisinusfor_gp_disp<'!'tp''@' 'p04pt'8&<hl$! <<'@' 'p\ŭŬ p)(F(10 F0TЏ( $-,  p%$F$)(F(2K $DZǰԏ3 2$ F2pǥǤD8D0F& <E#)((,x|ǫxǪ|ǭǬǯǮ p*j'| p! '|@ P!Kp! \$'  p9M E$'| p`!'|Ȁ)P!Myp! 2$   p1004F0%8$<F$8K` $-, p)@(DF(1H0LF0T  $ ( , p%P$TF$)X(\F(2*j- $ $ p1`0dF0%h$lF$   $ǩǨǫǪDZǰdzDzǥpǤtǧhǦlǭǬǯǮ $(,048 <pBy'|@ !'| PK!-@! p $ p)p(tF(1x0|F0T i/ N$ML p%$F$)(F(2 ,$- ,$ p10F0%$F$yM $ ( , p)(F(10F0T+` $ǥǤǧǦǩǨǫǪDZpǰtdzhDzlǭǬǯǮ $(,048 <p"'| pH!('| Ȁ/P!Mp! $s $ p%$F$)(F(2+L $-(,, p10ďF0%$F$   j$ǩǨǫǪDZpǰtdzhDzlǭǬǯǮ $( ,pb'| p@!'| XoP!Lp! 9$s- ,$ p%$ԏF$)(F(2 M $m(l, p10䏁F0%$F$( $ǩǨǫǪDZpǰtdzhDzlǭǬǯǮ $( ,p"'| p!+'|H/P!Mp! í$rm l$ p%$F$)(F(2(L $-(,, p10F0%$ F$y  $ǩǨǫǪDZpǰtdzhDzlǭǬǯǮ $( ,p'| pX!i'|@P!Lp! N$-, p%$F$)(F(2yM ,$   p1 0$F0%($,F$+` $- ,$ p)0(4F(180<F0T  $(, p%@$DF$)H(LF(2 i/ $DDQ@PDF22E0$ 0ǥǤǧǦǩǨǫǪDZpǰtdzhDzl0ǭǬǯǮ $(,048< @p8'|xh!'|`! ,x! |$ A|edx|ŭ Ŭ$ p'P&TF&+X*\F*D, T$-(,, p3`2dF2'h&lF&"j 2$ǫxǪ|DZǰdzDzǥpǤtǧhǦlǭǬǯǮ $(,0 4p'|PKh!'|p!,P!L$ an- ,$ p)p(tF(1x0|F0T/$(, p%$F$)(F(2j-$DZǰdzpDztǥhǤlǭ@ǬDǯǮ  $p'| PKH!.'| @!/P!O$ an $ p'&F&+*F*D- ,j$ ( , p32F2'&F&"j H$ǫǪDZpǰtdzhDzlǭ@ǬDǯǮ  $p'|PKp!'| h!,P!L$ an $ p%$F$)(F(2 /$ŭ(Ŭ, p10ďF0%$F$j$ǩǨǫpǪtDZhǰlǭ@ǬDǯǮ  $p"'| PK@! '|H8!/P!O$ anŭ Ŭ$ p32ԏF2'&F&",$-(,, p+*䏁F*32F2jf$ǧǦǩpǨtǫhǪlǭ@ǬDǯǮ  $p'|PKh!'|p!,P!9L$an- ,$ p10F0%$F$/$(, p)(F(10 F0Tj-$ǥǤǧpǦtǩhǨlǭ@ǬDǯǮ  $p'| PKH!.'| @!/P!ȭO$ax $ p+*F*32F2- ,$ ( , p' &$F&+(*,F*Dj $ųŲǥǤǧǦǩpǨtǫhǪlǭ@ǬDǯǮ $( ,p, '| XnH!/'| `!XX!Mh$H $ p1004F0%8$<F$--@+$ǩpǨtǫhǪlǭ@ǬDǯǮ p '| h`!'| X!n8h!$!n $ p1@0DF0%H$LF$ i $ ( , p)P(TF(1X0\F0T-$ǥǤǧpǦtǩhǨlǭ@ǬDǯǮ  $pB +'|hx!'| PHX!ih!$!H $ p+`*dF*3h2lF2 no$ǧpǦtǩhǨlǭ@ǬDǯǮ pB--'|`X!x'|PIh!`!F$H $ p+p*tF*3x2|F2n.$$ǧpǦtǩhǨlǭ@ǬDǯǮ pB, '| ph!'|PY`!jp!$!L  x|ŭ(Ŭ, p10F0%$F$j@$DXDP `dF*@2EI$0-, p10F0%$F$菸 ,$m l$ p)(F(10F0TH8$0ŭ@ŬD p%$F$)(F(2Џj@^$ H L p10ďF0%$F$ <$-P,T p)(ԏF(10F0TȏK$-X,\ p%$䏁F$)(F(2 ,$DZxǰ|dzDzǥǤǧǦ $(,ǦǧǤǥDzdzǰDZǩpǨtǫhǪl0ǭǬǯǮ\XTPLHD@048< `pB.'| x`!'| PHp!x!$!DL58!D F BD8DH58!DqpF D4D8D0`dF& 2E_$ 0ML p)(F(10F0T// f$m l$ p%$F$)( F(2ЏI D$@DHL3H2L(,DL58!DPTF !DT048ǩǨǫǪDZpǰtdzhDzlǥHǤLT0ǧ(Ǧ,ǭǬǯǮ $(,048<@DH LpB//'| Xhp!'| PIx!X!y$H $ p)(F(10F0T-$ǥpǤtǧhǦlǭ@ǬDǯǮ pB+ '|hx!'| PYX!hh!$!H $ p) ($F(1(0,F0T,n}$ǥpǤtǧhǦlǭ@ǬDǯǮ pB -'|`X!x'|PHh!`!T$!ǭ@ǬD pn'|PI`!'| p!P!4H$!Hŭ Ŭ$ p)0(4F(180<F0Ty$ǥpǤtǧhǦlǭ@ǬDǯǮ p *'| Ȁ+p!'|P!I!)$aǭ@ǬD p'|  !*'| hx!!ɯ$!&ǩpǨtǫhǪlǭǬǯǮ pB+'| h!'| PYX!nh!$H $ p1@0DF0%H$LF$ )l~$ǩpǨtǫhǪlǭ@ǬDǯǮ pB '|H9X!o'| PNh! H!U($!H $ p1P0TF0%X$\F$l3$ǩpǨtǫhǪlǭ@ǬDǯǮ pB )'| `h!'|PHH!9j`! $ $ p1`0dF0%h$lF$+`$M(L, p)p(tF(1x0|F0T,$`dX\-@,D p)(F(10F0T؏j*$ǥǤǧ`ǦdǩXǨ\ǫǪDZpǰtdzhDzlǭ@ǬDǯǮ $(,048 <p'| PY`!'|x!oP!_H$c![- ,$ p%$F$)(F(2 `=$@D $PTǥpǤtǧhǦlǩ Ǩ$ǫǪǭ@ǬDǯǮ $( ,pB)'|  x!'|PYH!,! %t'@ >U@ >U@Lc˰?#x@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U HH4     $( 04     ` hl   t    T l tx|     \ |   |    P p x|    `             ` x       X        0 P X \ ` h l  0 |       $ ,04 <@  P p x|    l       $( L    8 X `dh pt H     < DHL TX   X x      |   < DHL TX   @ !     h   " X#    , L TX\ dh$ % h       (,& ' T t | ( 4)       ! !( !0!4!8 !@!D!* !+ "D "d "l"p"t "|"", #$- #p # ### ##$. $P/ $ $ $$$ $$%l % %%% %%% & && &$ &,&0& & &&& &&' '0 '8'<'@ 'H'L' ' ''' ''($ (D (L(P(T (\(`)0 )1 *h * *** *** + +++  +(+,,2 ,3 , - -- - ---t4 -5 .  ., .4.8.< .D.H.6 .7 /48 /l9 / / /// //0L: 0; 0< 1= 1p> 1? 2 2( 202428 2@2D2@ 2A 34 3T 3\3`3d 3l3p3B 4C 4` 4 444 444 5 555 5 5$5 5 555 556TD 6E 7  7, 74787< 7D7H7F 8<G p $`SHbU1UR-X(\X[8]RF^`Nh#c "(%HCHHCH$HCH$HCH$HCH($%HCH$HCH!$HCE$HCH$HCH$HCH$HCH$HCH$HCH$HCHHCHHCHHCHHCE!@(4HCH!0X$HCHHCHHCGHCHHCGHCHHCHHCHHCH$HCX($%GA|:t, /         ( -   % * / 4 9 E P R ] h p x x p h ` \P H D@<80 (   8x 8  ,   !  !.!0d  !  `for_init.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/for_init.c86000904727250/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c for_init.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcefor_initoutsysoutzoneoutparmoutdatumfn27fn83iflgfor_transzoneazimuthalfanglelon1lon2lat1lat2center_longcenter_lathlon_originlat_originr_majorr_minorscale_factorfalse_eastingfalse_northingshape_mshape_nstarttimeradiustmpdatumpathsatnummodesat_ratiodzonedjustifythingiflg64for_trans64/usr/include/math.hlucy:/usr/include/math.h86000904713775__infinityerrnosigngamfor_initsphdzpakszcalc_utm_zoneutmforintutmforstplnforintstplnforalberforintalberforlamccforintlamccformerforintmerforpsforintpsforpolyforintpolyforeqconforinteqconfortmforinttmforsterforintsterforlamazforintlamazforazimforintazimforgnomforintgnomfororthforintorthforgvnspforintgvnspforsinforintsinforequiforintequiformillforintmillforvandgforintvandgforomerforintomerforsomforintsomforhamforinthamforrobforintrobforgoodforintgoodformolwforintmolwforimolwforintimolwforalconforintalconforwivforintwivforwviiforintwviiforobleqforintobleqforisinusforinitisinusfor_gp_disp/$^I/  "(.<FMYbnw )1<DPYcju} &2;ELW_kt       !"#$%&'()*+,-./0123456789:;<=>?@ABCD,-E4 M8!@P)p C 2pD; D(EpRinv_init.o/ 860008871 2145 20 100664 27252 ` ELFh4( 8 (817=KU\hq}%-8@KS_hry  ,5AJT[fnz.symtab.shstrtab.strtab.text.rodata.options.reginfo.rel.text.mdebug.text.rodata__infinityerrnosigngaminv_initsphdzpakszcalc_utm_zoneutminvintutminvstplninvintstplninvalberinvintalberinvlamccinvintlamccinvmerinvintmerinvpsinvintpsinvpolyinvintpolyinveqconinvinteqconinvtminvinttminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvintgvnspinvsininvintsininvequiinvintequiinvmillinvintmillinvvandginvintvandginvomerinvintomerinvsominvintsominvhaminvinthaminvrobinvintrobinvgoodinvintgoodinvmolwinvintmolwinvimolwinvintimolwinvalconinvintalconinvwivinvintwivinvwviiinvintwviiinvobleqinvintobleqinvisinusinvinitisinusinv_gp_disp<'!'tp ''`' 'p04pt'8&<hl$! 00'`' 'p \ŭŬ p)(F(10 F0T؏ ( $-,  p%$F$)(F(2 K $DZǰ܏3 2$ F2pǥǤD8D0F& <E#)((,x|ǫxǪ|ǭǬǯǮ p *j'| p! '|@$ P!Kp! Z$'  p 9M C$'| p`!'|Ȁ$)P!Myp! 0$   p1004F0%8$<F$ 8K` $-, p)@(DF(1H0LF0T   $ $ p%P$TF$)X(\F(2 *j- $(, p1`0dF0%h$lF$    $ǩǨǫǪDZǰdzDzǥpǤtǧhǦlǭǬǯǮ $(,048 <pB y'|@ !'| P$K!-@! n $ p)p(tF(1x0|F0T i/ L$ML p%$F$)(F(2  *$- ,$ p10F0%$F$ yM $ ( , p)(F(10F0T +` $ǥǤǧǦǩǨǫǪDZpǰtdzhDzlǭǬǯǮ $(,048 <p" '| pH!('| Ȁ$/P!Mp! $s $ p%$F$)(F(2 +L $-(,, p10ďF0%$F$    h$ǩǨǫǪDZpǰtdzhDzlǭǬǯǮ $( ,pb '| p@!'| X$oP!Lp! 7$n - ,$ p%$ԏF$)(F(2   $(, p10䏁F0%$F$ Mm $ǩǨǫǪDZpǰtdzhDzlǭǬǯǮ $( ,p (('| h`!'|$@! Xh! ƭ$ar $ p%$F$)(F(2 . @ $ ( , p10F0%$ F$ -m $ǩǨǫǪDZpǰtdzhDzlǭǬǯǮ $( ,p (H'| hx!'| p$@! .h! Q$a   p%$F$)(F(2 ,   /$ p1 0$F0%($,F$ Mm $ō Ō$ p)0(4F(180<F0T ((@ $ŭ(Ŭ, p%@$DF$)H(LF(2 x  $DD@DF22E4$ 4ǥǤǧǦǩǨǫǪDZpǰtdzhDzl4ǭǬǯǮ $(,048< @pB '| Ȁ(H!/'|P$MX!x! 8$ |x|- ,$ p'P&TF&+X*\F*D m@ X$ ( , p3`2dF2'h&lF&" (. 6$ǫxǪ|DZǰdzDzǥpǤtǧhǦlǭǬǯǮ $(,0 4p lL'|@H!8'|h$`!-@!  $ n $ p)p(tF(1x0|F0T .n $ŭ(Ŭ, p%$F$)(F(2 H  $DZǰdzpDztǥhǤlǭ`ǬdǯǮ  $p l,'| @! '| p$`!N@!$ nŭ Ŭ$ p'&F&+*F*D i@n$(, p32F2'&F&" (L$ǫǪDZpǰtdzhDzlǭ`ǬdǯǮ  $p" lL'|@h!'|H$+`!)@! $ n $ p%$F$)(F(2 x $-(,, p10ďF0%$F$ H$ǩǨǫpǪtDZhǰlǭ`ǬdǯǮ  $p l,'| @p!'| $ `!X@!$ n- ,$ p32ԏF2'&F&" m@$ ( , p+*䏁F*32F2 (.j$ǧǦǩpǨtǫhǪlǭ`ǬdǯǮ  $p lL'|@H!8'|h$`!-@!= $n $ p10F0%$F$ .n $ŭ(Ŭ, p)(F(10 F0T H  $ǥǤǧpǦtǩhǨlǭ`ǬdǯǮ  $p l,'| @! '| p$`!N@!̭$xŭ Ŭ$ p+*F*32F2 i@$(, p' &$F&+(*,F*D ($32ǥǤǧǦǩpǨtǫhǪlǭ`ǬdǯǮ $( ,pb '|x!'| X$lP!N x!Q$I- ,$ p1004F0%8$<F$ H.$ǩpǨtǫhǪlǭ`ǬdǯǮ pb '|H,P!Y'|X$nx! H!-$o- ,$ p1@0DF0%H$LF$ H$m(l, p)P(TF(1X0\F0T *@$ǥǤǧpǦtǩhǨlǭ`ǬdǯǮ  $p '| H,!+'| @$x!H!8$Hm l$ p+`*dF*3h2lF2 *q$ǧpǦtǩhǨlǭ`ǬdǯǮ p '|PNx!'| @$H!,(P!HL$Hm l$ p+p*tF*3x2|F2 9 &$ǧpǦtǩhǨlǭ`ǬdǯǮ p '|hH!+'|@$ P!Nh!$Kkjx|-(,, p10F0%$F$ ,L$DXDP`dF*@2EI$ 4   p10F0%$F$ i)@$ $ p)(F(10F0T  `$4-@,D p%$F$)(F(2؏ ,L`$HL p10ďF0%$F$ x9 >$ōPŌT p)(ԏF(10F0TЏ O$ X \ p%$䏁F$)(F(2 i)@$DZxǰ|dzDzǥǤǧǦ $(,ǦǧǤǥDzdzǰDZǩpǨtǫhǪl4ǭǬǯǮ\XTPLHD@048< `p '| Ȁ,P!K'|@$h!(!8$DJ5A8!DihF BD<DN58!DF D8D8D0ť`ŤdF& 2E_$ 4   p)(F(10F0T菸 j@i$ $ p%$F$)( F(2؏ -G$1@0D@DœHŒL(,DJ5A8!DePdTF !DL48<ǩǨǫǪDZpǰtdzhDzlǥ@ǤDL4ǧ(Ǧ,ǭǬǯǮ $(,048<@DH Lp '| xh!'| @$!,Hx!$Hm l$ p)(F(10F0T *@$ǥpǤtǧhǦlǭ`ǬdǯǮ p '| H8!+'| @$ x!H!.$Hm l$ p) ($F(1(0,F0T *$ǥpǤtǧhǦlǭ`ǬdǯǮ p '|PLx!'| @$H!8(P!WX$ǭ`Ǭd pb '|@P!I'| X$oh!+@!7$H- ,$ p)0(4F(180<F0T L $ǥpǤtǧhǦlǭ`ǬdǯǮ pb '| `h!'|X$n@!K`!쭘$ǭ`Ǭd p" '| Xx`!'|H$-!.IX!̭n$&ǩpǨtǫhǪlǭǬǯǮ p '| H.X!y'|@$ x!HH!-$I- ,$ p1@0DF0%H$LF$ x@$ǩpǨtǫhǪlǭ`ǬdǯǮ p '|  x!'| @$ H!.h!W$I- ,$ p1P0TF0%X$\F$ +`4$ǩpǨtǫhǪlǭ`ǬdǯǮ p '|PMH!9'| @$! P! L$- ,$ p1`0dF0%h$lF$ +$ ( , p)p(tF(1x0|F0T ) $edX\PT @ D p)(F(10F0T M$ǥǤǧXǦ\ǩPǨTǫǪDZpǰtdzhDzlǭ`ǬdǯǮ $(,048 <p" +'|@ P!X'| Ȁ$)X!n@!_$c[ $ p%$F$)(F(2 M-o=$1@0D $PTǥpǤtǧhǦlǩ Ǩ$ǫǪǭ`ǬdǯǮ $( ,p X'| Xo!-'|@$ ! (X!j%t'@ >U@ >U@Lc˰?#x@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U@ >U HH4     $( 04     ` hl   t    T l tx|     \ |   |    P p x|    `             ` x       X         < D H L T X   h           (,  < \ dhl tx   L l tx|      4      @ HLP X\ 0 |    $ ,04 <@  @ ` hlp x|   d   $ ,04 <@   ( |!    P p x| " @#     4 <@D LP$ % P p x|    & ' H ` hlp x|( ) x        ! ! !$!( !0!4!* !+ "4 "T "\"`"d "l"p", #- #` # ### ###. $@/ $ $ $$$ $$%\ %| %%% %%% & & && && &x & &&& &&' '  '(','0 '8'<' ' ''' ''( (0 (8(<(@ (H(L)0 )x1 *T *t *|** *** * +++  ++,2 ,3 , , ,,, ---`4 -5 - . . .$.( .0.4.6 .7 / 8 /X9 / / /// //08: 0; 0< 1= 1\> 1? 2 2 2 2$2( 20242@ 2A 30 3H 3P3T3X 3`3d3B 4C 4` 4x 444 444 5 55 5 555 5 555 556LD 6E 7 7$ 7,7074 7<7@7F 84G p "`SHbU3UR-X@`X[T]RF^|Nh#c "(%HCHHCH$HCH$HCH$HCH%$HCH$HCH!$HCE$HCH$HCH$HCH$HCH$HCH$HCH$HCHHCH$HCHHCHHCE!@84HCH!0h$HCHHCHHCGHCHHCGHCHHCHHCHHCH$HCX($%GAl8s, 1         ( /    ! % * / 3 8 = I T V a l tx |p h ` X P H D8 40,(     t8p 8  ,   !  !0!0d  !  `inv_init.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/inv_init.c86000905127885/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c inv_init.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceinv_initinsysinzoneinparmindatumfn27fn83iflginv_transzoneazimuthanglealflonlon1lon2latlat1lat2center_longcenter_lathlat_originlon_originr_majorr_minorscale_factorfalse_eastingfalse_northingradiusshape_mshape_nstarttimepathsatnummodetmpdatumsat_ratiodzonedjustifythingiflg64inv_trans64/usr/include/math.hlucy:/usr/include/math.h86000905113775__infinityerrnosigngaminv_initsphdzpakszcalc_utm_zoneutminvintutminvstplninvintstplninvalberinvintalberinvlamccinvintlamccinvmerinvintmerinvpsinvintpsinvpolyinvintpolyinveqconinvinteqconinvtminvinttminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvintgvnspinvsininvintsininvequiinvintequiinvmillinvintmillinvvandginvintvandginvomerinvintomerinvsominvintsominvhaminvinthaminvrobinvintrobinvgoodinvintgoodinvmolwinvintmolwinvimolwinvintimolwinvalconinvintalconinvwivinvintwivinvwviiinvintwviiinvobleqinvintobleqinvisinusinvinitisinusinv_gp_disp1"]I1  "(.<FMYbnw )1<DPYcju} &2;ELW_kt       !"#$%&'()*+,-./0123456789:;<=>?@ABCD./E4 M8!@P)p C 2pD; D(EpRcproj.o/ 860008874 2145 20 100664 17804 ` ELFC4( ` (048>CHpNS DY]PckTqvz\ t<, P( 4x4X< |.symtab.shstrtab.strtab.text.rodata.options.reginfo.rel.text.mdebug.text.rodata__infinityerrnosigngamtsincossincosasinzfabsasinmsfnzsqrtqsfnzlogphi1zp_errorphi2zatanpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zone_gp_disp<'!'௿(, $ǭ Ǭ$ (ǭ Ǭ$ ,%' <'!'௿ $ǭ Ǭ$ <?D(D F <E<?DHǧ Ǧ$D@F&@<E<?DXDP $<DD $ǭ Ǭ$ ' <'!'د(,04ǥ(Ǥ,ǧ0Ǧ4F&"$ ǫ Ǫ$<?F*TDD F0ǥ8Ǥ<F '(<'!'د(,04ǥ(Ǥ,'&F$0<E1ǩ(Ǩ,ǫ0Ǫ4F*D$ <?ǥ Ǥ$DDHDD@F$F$B F*3DZ ǰ$<?F0DHD@<?DF2AǨ,ǩ(Dǧ0F(Ǧ4<?F$2F2DDF(DF&QF0 F* <@D8D0ǩ0Ǩ4F(0'(<'!'`dhl<?D(D ǧhǦlF&# (,ǩ`Ǩd+*F*@<Eǡ(Ǡ,DZ`ǰdF0\X$$ǭ(Ǭ,'8 '0ǥ`Ǥdǧ8Ǧ<F&"LHǫHǪL<?F*TDDF0D@<?ǩHǨLD8DD0DF(2F( F0S<?D(D ǧXǦ\ǩhF&$ǤDǥ@ǨlDZ8ǰEǡ(Ǡ,$%+ $$ $p$<DD'`<'!'$ `dhlp<?D(D ǧ`ǦdF&"\XǭhǬl D+*<@DF0F2QTP4ǭPǬT 8<ǧ`Ǧdǩ8Ǩ<F(4LH<?dzHDzLDXD8DPD0F2QǯXF22Ǯ\ F(# DZhǰlF  F0 D0ǩP+*<@D8ǨTF&F2QF($D@ǧPǦTǫ@ǪDF*4TPǭ@ǬD %$F$>EǡPǠT4%) 4$  $4 p$8<@DD$ǵǴ'`<'!',(X\`d $ǥXǤ\PTD<@D8D0ǩPǨTF(3 (<@DXDPDZPǰTF  F0S(<@DDǥPǤTF  F$ǩhǨlǧXF4BǦ\dzpDzt(F6F*4Ǧ|ǧxF&F$ǰdDZ`ǦTF(TǧPF0F&"LHǩPǨTdzHDzLF2DTPǭHǬL (%$F$>EǡPǠTD%+ D$@ $p($<@DD,ǵǴǷ Ƕ$'X<'!'p,( $ǥǤ$D̏  (-, (x|ǧǦǩǨ<?F(2DDF(T F0ǥxǤ|F$(<@DHD@+* F(S(<@DDSR F0̏(<@D8D0edF  F&#ǫǪʼnňDZF(TǰǥǤǨF$ǩ(F&DzF4DdzF2F0QF&"tp<@DDūŪ F0S̏(<@D(D F  F$̏(<@DHD@F  F(3<@DXDPDZǰ<@F0TǰDPDZDXF4ǧǦ<@(F0TF$2ǰDPDZF6DXF0TF&AF2F(!lh<@DXDPDZpǰtF0TǩǨ  F0<?F(!F&QF0QF$DD<@DXǰDPDZF21F0QF&$F2Bd`DZpǰtǧF0Ǧ<@DDǫǪF&"F*ǪǫF0!ǤǥF$TF&DDPDX&F2'F*1F$D\X<@DHD@ǥǤF$DǧhǦlǤtF&ǨǥpǩF0TDDF$BF*DDF(F&F*$TPǩXǨ\DZPǰTǥ`ǤdF0AF&"LHǩHǨL32F(01ǭHǬL (%$F$>EDDD%K)a ݯD$| $(<@DD,ǵǴǷ Ƕ$'<'!'@D$ 'ǥ@ǤDD8D0F& <E$-'ǭ@ǬD 8<ǩ8Ǩ<+*쏁F*D32F2DX78!DF !D,,ǩ8@@!@@#A@!ADPǨEǧ(Ǧ,)8(< F(3DN58!DF DPD) ǭ(Ǭ, DF%@$Dǩ(F$Ǩ,F&B,(DZ(ǰ,3H2L F2DX78!DF $+PD DD@*TFAF*0<EDZ(ǰ,3X2\F2DH58!DF "$3`D @DD02dF2F2QF$,w(ǧ(Ǧ,+h*l F*3DJ5A8!DF )pD DD(tF!F( <Eǧ(Ǧ,+x*|F*4DL58!DF $+D DD *F"!F*DF24,E(ǥ(Ǥ,)( F(#DN58!DF 1DPDD00F4F0<Eǥ(Ǥ,)(F("DX78!DF Q)D0DD(F!F(F*!,(ǭ(Ǭ, DF!)(ǫ(F(Ǫ,F$Q,( %  )A ǡ(Ǡ,'(<'!<@D(<?D8<@0DDD0F0dF,2D <?DF("D(<?DD <?F*F,F&"D D(F(F* <'!<?D(<?D8D0<?F,2DDD <?F,F("D(<?DF*DD F,F&"F(<'!<?D(<?D8D0<?F,2DDD F,F("F,F*0<'!F,a)(F,!F(0<'!',(PT $<?D(D ǧPǦTF&"LH<?DXDPDZPǰTF0TD@ǥHǤLF # F #(ǧ@ǦDF F 3 F 3(F F6 (,ǵǴǷ Ƕ$'P<'!',(@DHL $<@D(D ǧ`ǦdF&# (<@DHD@ǫ`ǪdF  F*C(<@DDdz`DzdF  F2ǥ@ǤDǧ`ǦdǫHF&"ǪLǤTǥP(F4TF0DǨ\F6!ǩXF(F&F0P,ǵǴǷ Ƕ$'@<'!D@%$<@DHF$a<?F(2DDF0TDN58!DF $D DConvergence errorphi1z-convConvergence errorphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv>z򚼯H=|׽>z򚼯H?!TD-?!TD-=|׽=|׽=|׽@È?PbM?PbMA.@@@Lc˰A.@@?!TD-@ !TD-@ !TD-@!TD-@!TD-A@!TD-@!TD-B !T!AB !T!B !T!C!S~=AC!S~=C!S~=@!TD-?UUUUUU@f $$( L $$ 8 p$t$  $$4 @D P$T$    H d lp   $ $` |   0 H PT      \$`$         $  t$ x$   8 t   T      X d\ l` $$ $ 048 @D @ PTX hl$$ T 0 @DH X\$$T |  $$($,$L h pt    8 HLD l t    4 <Ld pt    , 8<\ dt  4$8$$$4$8$$$ $$H d  $$  4 \ $$ p W,*?+</L)N708< <)"=t($'78'F '' '' S('"  (h((aaG 8(((8(8(88 22$ :Cp \(LQ  (ZePԐ`n,0`A\9X] tFu]@ gw@':q0DLz6QQ(J(Yz4M o 4P@8',     ( x     p    (        ( # , D 'P - 4 7 ( +< C H L P V \ ` !' b h o r 0 8w ~    8 0bT ,\      ( 8 E   @ 9 t $     ( 0 8 "< #8 \           P< F  &  f   %* _ , ]/ (7  p; ? DIN i/ gS *Y ` d ( yk o uS qs ,x,  ~@ |sP zz( .   z 4 0,  x   2,  h x 4 4,  H X  6,  , <  8 0     :     8   <,  l |  ,   !      , 9 F  ] g q z   !  `cproj.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/cproj.c86000905411969/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c cproj.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcetsincosvalsin_valcos_valasinzconmsfnzeccentsinphicosphiconqsfnzeccentsinphicosphiconphi1zeccentqsflageccntsdphiconcomsinpicospiphiiphi2zeccenttsflageccnthphicondphisinpiiphi3zmle0e1e2e3flagphidphiiphi4zeccente0e1e2e3abcphisinphisin2phtanphimlmlpcon1con2con3dphiipakczpakconsecsdegsminssgnapakr2dmpakconsecsdegsminssgnatsfnzeccentphisinphiconcomsignxadjust_lonxtempcounte0fnxe1fnxe2fnxe3fnxe4fnxconcommlfne0e1e2e3phicalc_utm_zonelon/usr/include/math.hlucy:/usr/include/math.h86000905413775__infinityerrnosigngamtsincossincosasinzfabsasinmsfnzsqrtqsfnzlogphi1zp_errorphi2zatanpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zone_gp_dispW>+I>  !%) /49p ?D  JNP T\ ,bgk\ 9q t Fw{ ] g q z( 4  4            !*+078@DEP[\_efiopuxy|}~ !4P M`!! )p " 2p#; #Ep)Lreport.o/ 860008877 2145 20 100664 17736 ` ELFCh4( p @#.5<GMUZahlp{hTLH000 $0 T 0<H .symtab.shstrtab.strtab.text.rodata.bss.options.reginfo.rel.text.gptab.bss.mdebug.text.rodata.bss__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngaminitstrlenstrcpyp_errorclose_filefcloseptitleprintffopenfprintfradiusradius2cenloncenlonmercenlatoriginstanparlstparl1offsetpgenrptgenrpt_longpblank_gp_disp<'!'௿ $(, $/H $ ( @$$9 ( $- $#$ )( @ $ $ g$$ * ( $  $`$ ,H $$ , @<$$., $-$$#$8, @ $, $L$$9, $ %' <'!'௿  ' <'!'௿   $X$ $x"  $| ' <'!'௿ $ $ $$ $ď" $ $ȏ ' <'!'௿ $(, $ $(, $$'$ $X" $ $\(, $ ' <'!'௿ $ǥ Ǥ$'8&<F&"$D@DH $$ $"ǫ Ǫ$1@0DF0T$DD  ' <'!'௿ $ǥ Ǥ$'H&LF&"$ D@DH $$ $T"ǫ Ǫ$1P0TF0T$XDD  ' <'!'௿ $ǥ Ǥ$'X&\F&"$D@DH $$ $"ǫ Ǫ$1`0dF0T$DD  ' <'!'௿ $ǥ Ǥ$'h&lF&"$D@DH $$ $ "ǫ Ǫ$1p0tF0T$DD  ' <'!'௿ $(,ǥ Ǥ$'x&|F&"$P-ho0,858:;,8<`"3"!"3"""B#"3"!"3"""B!(%(%'%(%(%(%(%(%(%(%(%(%'%(%(%(%(%(! 6| *hڐ 0T 9LS C% Q* \/= g $4 r T9Ր } ?C <D  J(P$ "Vb $-lZ 4>, a``` `````  #   ! "(    # %  # .h (5 '  . 7T *>   7 @L ,H J ( $0 "@H L .S  ) 'L0 %U 0_  . ,U0 *a 2h  3 1a0 /j $ 4q  8 6j0 4s T 6| ~ ( > <s 9  8  C A0 ?< :  ( I0 GH D =  <$ O M J @  ?  U S P B Y W Vl F D E  _ ] Z , K)`R)`i` Y%`^ %`c@%`i`%`oh%`!`u)` ,   !   00%*/49?DJPVZ` !   0c  00 !  `report.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/report.c8600090587391/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c report.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceterminal_pterminal_efile_pfile_efptr_pfptr_eparm_fileerr_fileinitiprjprefilepfileclose_fileptitleAradiusAradius2ABcenlonAcenlonmerAcenlatAoriginAstanparlABstparl1AoffsetpABgenrptASgenrpt_longASpblankp_errorwhatwhere/usr/include/stdio.hlucy:/usr/include/stdio.h86000905810773size_tfpos_t_cnt_ptr_base_flag_fileFILE/usr/include/math.hlucy:/usr/include/math.h86000905813775__iob_lastbuf_bufendtab_sibuf_sobuf__infinityerrnosigngaminitstrlenstrcpyp_errorclose_filefcloseptitleprintffopenfprintfradiusradius2cenloncenlonmercenlatoriginstanparlstparl1offsetpgenrptgenrpt_longpblank_gp_dispaHza H1EImy@%!+(39A FMTl Z\ gnh u|T L  % * / $ 4 T 9  ?< D J P V       "#$'(),-.123678<=>ABCGHIMNOSTUWXY]^_40 d]p!@) .p  7p@ (Jp, Up,80paksz.o/ 860008880 2145 20 100664 3544 ` ELF H4(  (.3;.symtab.shstrtab.strtab.text.rodata.options.reginfo.rel.text.mdebug.text.rodata__infinityerrnosigngampakszfabsp_error_gp_disp<'!'XPTXǥPǤTD8D0F& <E<DHD@HL<?DXDPHLǭPǬT 041`0d(,DOdz058!DDz4ǫ(F $Ǫ,D DD0F2!F*DDY7!8!DF D$$)i $ $X$ \I<DD$D F!D@ǩ@ǨDǫ(Ǫ,dz0F*DDz4F040'h&l(,DLǩ058!DǨ4ǥ(F BǤ,D PDDF!F$DN58!DF 2$D$$)= $  $4X$\8<DDU$DPFT<8DZ8ǰ<ǥ(Ǥ,ǩ0F$Ǩ4F&B40<@NDdz0Dz4DF2<E$@ $TX$ \I<DD'ǥ@ǤD)p(t<@NF(!Dǫ8Ǫlucy:/tmp_mnt/home/hdf/sgi/gctpc/source/paksz.c8600090612629/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c paksz.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcepakszangiflgfacdegminsectmpi/usr/include/math.hlucy:/usr/include/math.h86000906113775__infinityerrnosigngampakszfabsp_error_gp_disp)I  $, 4 M!Dp!p)p  2p; (Ep0sphdz.o/ 860008884 2145 20 100664 4128 ` ELF@4( P@ &.49>BJ.symtab.shstrtab.strtab.text.rodata.data.options.reginfo.rel.text.gptab.data.mdebug.text.rodata.data__infinityerrnosigngamsphdzfabssqrtabsp_error_gp_disp<'!'ȯ8<@D8< 04<   (,ǥ0Ǥ4D8D0F$0<EP<?DXǩ(Ǩ,DPF(P<E@DZ0ǰ410Ddz(Dz,Hǥ0Ǥ4%4$ǧ(Ǧ,DHD@F&@<E@ǫ0Ǫ4KJHDZ0ǰ4qp<?DDǥ(Ǥ,F$ ǧ0Ǧ4DF&@ǫ0Ǫ4HDZ0ǰ4Ddz0Dz44ǥ(Ǥ,D8D0F$0<E@' )(H% +*D%JQPqp@%œŒH%D'H&L:8 $$+! $ $$, $8$8$$ P%kK`!@ʼnň$x'!D+* H%)10QP%'8Invalid spheroid selectionINFORMATIONALReset to 0INFORMATIONALAXM@AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@ ??  < ` l     (< D\ dx          0 8X `| @p (   4x1 T D $ hx c((($8$DH&FU'(!8j, @@      (      ,   !  0@ 0@     !  `sphdz.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/sphdz.c8600090645244/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c sphdz.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcemajorminorsphdzisphparmr_majorr_minorradiust_majort_minorjsph/usr/include/math.hlucy:/usr/include/math.h86000906413775__infinityerrnosigngamsphdzfabssqrtabsp_error_gp_disp !' I!  $)-8  4 _cS!P)@/p  8p0A HKp`Wpxuntfz.o/ 860008887 2145 20 100664 2988 ` ELF 4( @`  &.84<.symtab.shstrtab.strtab.text.rodata.data.options.reginfo.rel.text.gptab.data.mdebug.text.rodata.data__infinityerrnosigngamuntfzp_error_gp_disp<'!'௿ $($0) - )) & $Ȁ8#H)P!%kK`!(Ņń(DHD@F(02E $ $$M $$ $H$%' Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ? vv  h |        p N` <p -404L8'W1 +=, @    $  8  ,   !  3@   !  `untfz.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/untfz.c8600090671894/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c untfz.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcefactorsuntfzinunitoutunitfactor/usr/include/math.hlucy:/usr/include/math.h86000906713775__infinityerrnosigngamuntfzp_error_gp_disp N I   (4 _3E@!`)  /p @ 8p`A xpKpWpgctp.o/ 860008890 2145 20 100664 10280 ` ELF%4(P`@kp%+3D8=EKV_gp.symtab.shstrtab.strtab.text.rodata.data.bss.options.reginfo.rel.text.gptab.data.gptab.bss.mdebug.text.rodata.data.bss__infinityerrnosigngamgctpinitp_erroruntfzclose_fileinv_initpakr2dmfor_init_gp_disp<'!',($@ @("@  $J@Wďď `%p!ď'9@!ď P%k0K`!ď p%4 !ď@%)5 P!@ď `%7Pp!ď#@H!%JD(D *X!edď ih# hx!'8D8D08@!%*)A ߯%l)e $$ $/8EK%0 `h! / %P!N8 %H!/o$a$"ďč I-H# H 8x!%k!p!+*F*@2E$ %)  ᯮď$E$(%J7P Ȁ*@!84%)5)x! %4 (!n$a$ "ď$ď(#,h p!%k8`!-P!QPœŒF22E$%*)A  ᯪď()e $ $(@$$$`)ae $  $4(@$ $* ($  $a$  $!$Y!$ $d%X `H!*( (% '@( $ '@($a@*@  (h$ǧǦ%$F&"DZǰ  F0T菸%Xlx! (*% X!j%0 Ȁ(!ďč X)#`!+@!%Ņń!%M) ꯭ď$r$ ďď @(p!'8P!GF%) DHD@'8DXDP'8+* y DDF22E%)@PXP# P@%MID (DF!'8F(2 '81H0Lqp '83P2T32  '8'8 GF  @8<%iد'8 ( G8<@%)iد (@y  ($ ǩǨǫǪԏ''Я%)i xX!yǭǬǯǮ @(@%  ([$$ %4 hx!$4.+'5@h!$(%7P Ȁ.@! ď$č, h)# `!-p!%J8őŐ@!%x+ ꯸ď$$[$ ďď, p.P!'8SRX!sr' ) D(D '8D8D0'8'& ,DXDPũŨF*@2EǭǬ ('8! ǭǬ ('8A @ ,'8,'8sr  $(4<'8@%h@'8 ($(4e8<@,%h@ (@*@  ($$  ǥǤed ǧǦ  $%-%Jh@ Ȁ*p!ǭǬǯǮ @(@%  (u$0x4$$- 0$N$4$ a$$ 0$! ($dA%pȀ(X!x$ % '@( "$ '@($$N0 ǫǪihF*Dpq ǥǤ F$  (%,$'Insys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUTA.Aef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(P H       ( 0L `   (H Pl t D Pp x  t x |       x    8 Dl     X l `   h p     $ 0 X p P t    8 P H  D  $X |  @ /Xkpp H'$5<$ d# #p $(u %(ՅE(20!u(20!ň '('THE'%8C&%!$('E(8% #8% &%!$(E(8%e$8%T8%'%(4[b, 3@``0``!4 `,5`27P`88`>h@`Ii`O@U @[ t a b% c, d3 e: fB gF hL iP$ jV( k^, le0 mm4 nu8 o}< p@ qD rH s, 1      @v, "D  ,   ! 0d 0d 0d 3@d0d 0d 0d 3@d!0d !0d 0 0    2 0@ !  `gctp.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/gctp.c86000907110351/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c gctp.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourceiterinpjindatinznpdinoutpjoutdatoutznpdoutfor_transinv_transNADUTNAD83gctpincoorinsysinzoneinparminunitindatumiprefilejprpfileoutcooroutsysoutzoneoutparmoutunitoutdatumfn27fn83iflgxyfactorlonlattempijininit_flagoutinit_flagindunitdummy/usr/include/math.hlucy:/usr/include/math.h86000907113775__infinityerrnosigngamgctpinitp_erroruntfzclose_fileinv_initpakr2dmfor_init_gp_disp3|I3|  #+1<EMX "  01 4 Doy0P!`)@/ kp4p  =p@F XPPp \p gp br_gctp.o/ 860008894 2145 20 100664 2020 ` ELF|4(  .symtab.shstrtab.strtab.text.options.reginfo.rel.text.mdebug.textgctp_gctp_gp_disp<'!'TPX\`dthlpDx|X\`d@<8 $(,0 4PT'X X p 6 4 !D` 1X,           $  ( , 0 "4 *8 2< 7@ <D (     !     br_gctp.clucy:/tmp_mnt/home/hdf/sgi/gctpc/source/br_gctp.c860009074696/usr/lib/cc -g -DIRIX -Dunix -g -ansiposix -c br_gctp.c -o32/tmp_mnt/home/hdf/sgi/gctpc/sourcegctp_incoorinsysinzoneinparminunitindatumiprefilejprpfileoutcooroutsysoutzoneoutparmoutunitfn27fn83iflggctp_gctp_gp_dispA6!  4P E!p  *p3 =p \hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibSOL29.a0000644000175000017500000152100012024715435021130 0ustar amckinstryamckinstry! / 1230061609 0 0 0 2400 ` 4d4dKKh\h\x|x|ttTTللll  ""/d/d@4@4TTqqtt||LL,,tt,|,|::EEQ Q ^^kk}4}4ll|| , ,TT.|.|A<A<TLTLjjDDtt44tt66SSnnۄۄll\\\\\AAAAAf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^iwalberforalberforintalberinvalberinvintalconforalconforintalconinvalconinvintazimforazimforintaziminvaziminvintbceaforbceaforintbceainvbceainvintceaforceaforintceainvceainvinteqconforeqconforinteqconinveqconinvintequiforequiforintequiinvequiinvintgnomforgnomforintgnominvgnominvintgoodforgoodforintgoodinvgoodinvintgvnspforgvnspforintgvnspinvgvnspinvinthamforhamforinthaminvhaminvintimolwforimolwforintimolwinvimolwinvintlamazforlamazforintlamazinvlamazinvintlamccforlamccforintlamccinvlamccinvintmerformerforintmerinvmerinvintmillformillforintmillinvmillinvintmolwformolwforintmolwinvmolwinvintobleqforobleqforintobleqinvobleqinvintomerforomerforintomerinvomerinvintorthfororthforintorthinvorthinvintpolyforpolyforintpolyinvpolyinvintpsforpsforintpsinvpsinvintrobforrobforintrobinvrobinvintsinforsinforintsininvsininvintsomforsomforintgsat_ratiosominvsominvintsterforsterforintsterinvsterinvintstplnforstplnforintstplninvstplninvinttmfortmforinttminvtminvintutmforutmforintutminvutminvintvandgforvandgforintvandginvvandginvintwivforwivforintwivinvwivinvintwviiforwviiforintwviiinvwviiinvintIsin_fwdisinusforIsin_for_initIsin_for_freeisinusforinitIsin_invisinusinvIsin_inv_initIsin_inv_freeisinusinvinitfor_initinv_initcalc_utm_zonemlfne4fne3fne2fne1fne0fnadjust_lonsigntsfnzpakr2dmpakczphi4zphi3zphi2zphi1zqsfnzmsfnzasinztsincospblankgenrpt_longgenrptoffsetpstparl1stanparltrue_scaleorigincenlatcenlonmercenlonradius2radiusptitleclose_fileinitp_errorpakszsphdzuntfzgctpgctp_alberfor.o/ 1230061589 7356 20 100664 4828 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?!< !< !< ؉D;X@X'   @ @ '#<`!< `?! D?;X@X!< ;XX@@? ;XX;XX;X@X? ;XX;XX;X@X?p;XX@@ ;XX;XX;X@X? ;XX;XX;X@X?h;XX@@ ;XX;XX;X@X?x؉;X@X  D Dhpĉ !< !<  D#`pDD!< %?``xD;X@X` @`!<  @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X'H'D'H'L'P'T'XDH?LP?;X@X! ;XX;XX;X@X?! ?! ! @;X@X @ ? ?! ;X@X @??;X@X @! DT$ $ ! ??;X@X @! DX$ $ 'Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA=|׽?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07alberfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o alberfor.o alberfor.c <L4alberfor.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northinglon_centerr_majorr_minore3ns0crhcossinadjust_lonalberforoffsetporigincenlonmerstanparlradius2ptitleqsfnzmsfnztsincossqrtp_errorfabsalberforint H /=LW_ g(j0n8p@sw{X4         0 4 8P T \ ` d p t  ( ( ( ( (0 (P\ (| (     0$ 04 08 0D 0H 0X 8\ 8` d l 0 0 @ @ P P         , ( (   8 8 0 0  0 0$ ( 4Td h | @ @  4j Hj%+4C 4$ O XW L _ lh  alberinv.o/ 1230061590 7356 20 100664 5996 ` ELF`4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?!< !< !< ؉D;X@X'   @ D '#<`!< `?! D!< ;X@X!< ;XX@@? ;XX;XX;X@X? ;XX;XX;X@X?x;XX@@ ;XX;XX;X@X? ;XX;XX;X@X?p;XX@@ ;XX;XX;X@X?؉;X@X  D Dpxĉ !< !<  D#`xDD!< %?h`D;X@Xh @`!<  @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X'('D'H'L'P'T'XDH?LP?'! ??! 荡! D??! !  Z ZD;X@X?! ? Z ZD;X@X!?! ?! ? D 𑡉D艡D;XX;X@X?#`D! ?! D`??%?#`e! ?! 'D?Z;X@X @?;X@X! ?;X@X;X@X`` ؘ;XX;X@XX$ $ Ā @'!  ! DX$ $  %! DX$ $ ;XX;X@XX$ $ Ā '! ! D;X@XT$ $ 'Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREA=|׽??@ !TD-@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07alberinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o alberinv.o alberinv.c <L4alberinv.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northinglon_centerr_majorr_minorese3ns0crhadjust_lonphi1zlogatan2alberinvoffsetporigincenlonmerstanparlradius2ptitleqsfnzmsfnztsincossqrtp_errorfabsalberinvint P (/=LW_ g(j0m8q@sHvX8      "  0 4 8!P T \ ` d p t  ( (  0 0 0 0,4 0T` 0 0"  $ 8( 88 8< 8H 8L 8\ @` @d h p 8  8 H H T T           0   H H   8 8     H \ ` l p |  8 8   @ @ 8 0 0   $ ( 0 (4 (@ D p 0 4"""   0 4@ D X \ ` d      8 8  4j 8Pn H(% p+ p4 C $ O W @ _`  alconfor.o/ 1230061590 7356 20 100664 5860 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?+=`-=3`>`5>! %#`D/=! `D1 >  !$ ! ?;X@X%<! #`<`! <`! <`! <` ! <`(! <`0! #`<`! <`! <`! <` ! <`(! <`0? ;X@X @?') D D#`;X@X! ?! ĉD `;XX;X@X @;X@X` D D?;X@X @`;XX;X@X;X@X ;X@X`;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X#`?H;X@XH @?%'D荡D+`;X@X! ?@-ĉD ``;XX;X@X@ @;X@X` DD?`Ȗ;X@X#`ȑD! DЉDD?`D ?DؙD? ȑD`DЉDčD?L?X LFD?%, #`?, #`?, #`?, #`?x 'T@/X JD?px LD?hT'$, #` J?$, #` L?x??T 'T! @%D?D?xp?h? J NčH#`D! DT$ $  J NDR`D! DX$ $ 'ALASKA CONFORMAL@c?FR5@P?{s^?15,1?uULb!?}YzŘ?j;= ?sպ?szK?fs <7?s$ܙ?ȼNn?XS?vO@ !TD-?@?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07alconfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o alconfor.o alconfor.c <L4alconfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefsin_p26cos_p26adjust_lonalconforoffsetpcenlatcenlonradius2ptitletsincospowtanatansinsqrtalconforint  /7?M\ g(r0t8v@8|x8H$p t |                ( ( 0 0     8 8   @  @( (, (4 08 0@ 8D 8P @T @\ H` Hh Pl Pp xt x| X X ` ` h h p p x x 8       , 0 D 8H \px               8 8        0 84 H\d l p         0 04 0< @@ @L 0T xX xd 0l 8p 8| 0 p p 0 0 0 @ @ 0  x$ xL 0P 0       4j  %x+x4 C $ O W  _   alconinv.o/ 1230061590 7356 20 100664 7324 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?+=`-=3`>`5>! %#`D/=! `D1 >  !$ ! ?;X@X%<! #`<`! <`! <`! <` ! <`(! <`0! #`<`! <`! <`! <` ! <`(! <`0? ;X@X @?') D D#`;X@X! ?! ĉD `;XX;X@X @;X@X` D D?;X@X @`;XX;X@X;X@X ;X@X`;XX;X@X'X'D'H'L'P'T'XDH?LP?! #`?! `??H?@'HF?؍F@ DD?%, #`?, #`?, #`?, #`?'܍D?'܍D?$ '܍ȉD?$ '܍D? '@U HD? JD?'@<$, #`ЉH?$, %J??? HD?x JD?p$'܍$, DH?$'܍$, DJ??? '! @Џ%D?D???HJ@ LčH𡡈?h JLDN蝡?`H JD?X HJDJ?P L HD?8 LHD ?0L Hĉ ?(V?HF?@;X@X! ?(;X@Xн@??  '   @  '#`ȁ H D@ DD;X@X?! ;X@X D?;X@X! T$ $ ;X@X``  ! X$ $ '! D@D! DĉD;X@X?'?#`?;X@XЉ @?') DD%;X@X! ?! Dđ `;XX;X@X @;X@X D D轡??Z? '   @  0';X@X!  X$ $ ! ?H H! DD@! D H;XX;X@XЉ@;X@XT$ $ 'ALASKA CONFORMALToo many iterations in inversealcon-invToo many iterations in inversealcon-inv@c?FR5@P?{s^?15,1?uULb!?}YzŘ?j;= ?sպ?szK?fs <7?s$ܙ?ȼNn?XS?vO@ !TD-?@?=|׽@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07alconinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o alconinv.o alconinv.c <L4alconinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefsin_p26cos_p26atan2adjust_lonasinzp_errorfabsalconinvoffsetpcenlatcenlonradius2ptitletsincospowtanatansinsqrtalconinvint  /7?M\ g(r0t8v@8|x8H<$p t |                ( ( 0 0  $  8 8   @  @( (, (4 08 0@ 8D 8P @T @\ H` Hh Pl Pp xt x| X X ` ` h h p p x x 8#       !, 0 D 8H \ p"x                    0 0 @ @ 0 x  x 0  8$ 80 08 p< pH 0d 0 0 0 0 0  0$ @( @@ 0L xP x 0 0 0 0 0 0 <l p t  $  "   $ ( < (@ (\ ` t x  8 8#      !   $ 8 ( <  P" X ` d  @  @         , 0 L `4j   ( (j % @+ @4 Cl$ OW` _  azimfor.o/ 1230061590 7356 20 100664 4068 ` ELF 4(.shstrtab.text.bss.data1.rodata1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?;X@X;X@X?! D! ؉D @D?;X@X! D;X@X! (! ?! ! ! D! D! D?X`;X@X`@ {>';X@X! ?P?P;X@XP ?! ?@#`DؽD?H;X@XH @@DT$ $ ! `D! D! ؍DȉDĉDDX$ $ 'AZIMUTHAL EQUIDISTANTazim-forPoint projects into a circle of radius = %12.2lf=|׽?@ !TD-?@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07azimfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o azimfor.o azimfor.c <K4azimfor.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12sinacosp_errorsprintffabscosadjust_lonazimforoffsetporigincenlonmerradiusptitletsincosazimforint 88.6AL[ i(q0y}htH           ( ( 0 0       $ 4   ( ( 0 0  $ 08 < P T ` d x |  ( ( 0 0      $ ( 0 4 Tx |   0 0 ( (4s 8!1&8.4=L@$  Xd`L h <x  aziminv.o/ 1230061591 7356 20 100664 4540 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'8'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X! ??#`%D! D! ??> Z  @  }' ?ؔЖ;X@X+`T$ $ ;X@X-  ! X$ $ ') DЍD! DĉD;X@XX$ $ ';X@X``D?;X@X  4! ``?艠;XX;X@X@;X@XT$ $ V'``?;XX;X@X;X@XT$ $ A'?  ?X  ;X@X @?;X@X ;X@X '! ?ЍD! DD;XX;X@X@;X@XT$ $ 'AZIMUTHAL EQUIDISTANTInput data errorazim-inv@ !TD-?@=|׽@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07aziminv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o aziminv.o aziminv.c <K4aziminv.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12sinatan2adjust_lonasinzfabsp_errorsqrtaziminvoffsetporigincenlonmerradiusptitletsincosaziminvint 8(.6AL[ i(q0y}hH           ( ( 0 0       $ 4             8 < @px |      ( ( 0 0   (0 4 8 < PX \ p t x |     @ (D ,\|       0 04j @85(%@+@4Ch$ OW t _ T\  bceafor.o/ 1230061591 7356 20 100664 4380 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textX'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< !< !< `?! D#<`;X@X!< `!  !$ !$ %;X@X#<`;X@X!< `?! ! @ @;X@X !<  @! ! ;XX;X@X! ;X@X;X@X! ! ;XX;X@X'X'D'H'L'P'T'XDH?LP?! ;X@X?;X@X! ?! ! #`D%DDT$ $ ! ` JĉDX$ $ ;! ! ? J JĽ?! 'D ?ȉJĉD;X@Xȉ @ D?! #`%DDDT$ $ ! ` JD ĉDX$ $ 'Cylinderical Equal Area?>h@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07bceafor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o bceafor.o bceafor.c <K4bceafor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kzlogadjust_lonbceaforoffsetptrue_scalecenlonmerradius2ptitlesincossqrtbceaforint `.6>IT c(q0t8v@zHPX\           ( (      0 0  8$ 8( 0, 0 H @L @X @\ @` d lt Hx H|  P P H   0 0 X X          $, (0 (4 8 H   @ @ ( (    H  H8 < @ H Hh l p 0t 0 8 8   ( (   X X   $ , X0 4j h` %8+84C`$ OWl _ l  bceainv.o/ 1230061591 7356 20 100664 5628 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< !< !< `?% D'<;X@X)=  D!< D!<  !   !$ ! !< #!$ ??> ?  ! D ?ƉF;X@X @ D!< %;X@X#<`;X@X!< `?! ! @ @;X@X !<  @! ! ;XX;X@X! ;X@X;X@X! ! ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ?! ??! %؍ D#`;X@XX$ $ ! `D ĉD;X@XT$ $ y#`؍ D+`D) ! D ;X@X! ??! ! ! ! %DD! ! 'DD?`ȉ D;X@XЉ @ȽD?! ! D! ! DD?! D;X@X @D?! ! D?! D;X@X @DX$ $ !  `D ĉD;X@XT$ $ 'Cylinderical Equal Area?>h@@@?@f@(@@7@v@o`@@@@&@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07bceainv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o bceainv.o bceainv.c <K4bceainv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kzadjust_lonasinbceainvoffsetptrue_scalecenlonmerradius2ptitlesincoslogsqrtbceainvint x.6>IT c(q0t8v@{HPX`hp(           ( (      0 0"  8$ 8( 00 @4 @8 0@ HD HH 8L P h Pl Pp t x X| X P P   0 4 8 <  ! X X      `$ `( 08 h< h@ `H L P 0T 0h"x p| p          ( (  ` (d (t x  P P ` `      `    p$ p, 0 4 X8 XH` 0d 0h l t x | ( ( @ @ 0 0 8 8 H H  @ @ H H @ P  P X X H0 `4 `@\ h` hd ph pp H x x    p4j x%@+@4C h$ O W @ _ ,  ceafor.o/ 1230061591 7356 20 100664 4372 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textX'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< !< !< `?! D#<`;X@X!< `!  !$ !$ %;X@X#<`;X@X!< `?! ! @ @;X@X !<  @! ! ;XX;X@X! ;X@X;X@X! ! ;XX;X@X'X'D'H'L'P'T'XDH?LP?! ;X@X?;X@X! ?! ! #`D%DDT$ $ ! ` JĉDX$ $ ;! ! ? J JĽ?! 'D ?ȉJĉD;X@Xȉ @ D?! #`%DDDT$ $ ! ` JD ĉDX$ $ 'Cylinderical Equal Area?>h@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07ceafor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o ceafor.o ceafor.c <J4ceafor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kzlogadjust_lonceaforoffsetptrue_scalecenlonmerradius2ptitlesincossqrtceaforint `-5=HS b(p0s8u@yHPX\           ( (      0 0  8$ 8( 0, 0 H @L @X @\ @` d lt Hx H|  P P H   0 0 X X          $, (0 (4 8 H   @ @ ( (    H  H8 < @ H Hh l p 0t 0 8 8   ( (   X X   $ , X0 4j h` %8+84C\$ OWh _ h  ceainv.o/ 1230061591 7356 20 100664 5620 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< !< !< `?% D'<;X@X)=  D!< D!<  !   !$ ! !< #!$ ??> ?  ! D ?ƉF;X@X @ D!< %;X@X#<`;X@X!< `?! ! @ @;X@X !<  @! ! ;XX;X@X! ;X@X;X@X! ! ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ?! ??! %؍ D#`;X@XX$ $ ! `D ĉD;X@XT$ $ y#`؍ D+`D) ! D ;X@X! ??! ! ! ! %DD! ! 'DD?`ȉ D;X@XЉ @ȽD?! ! D! ! DD?! D;X@X @D?! ! D?! D;X@X @DX$ $ !  `D ĉD;X@XT$ $ 'Cylinderical Equal Area?>h@@@?@f@(@@7@v@o`@@@@&@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07ceainv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o ceainv.o ceainv.c <J4ceainv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kzadjust_lonasinzceainvoffsetptrue_scalecenlonmerradius2ptitlesincoslogsqrtceainvint x-5=HS b(p0s8u@zHPX`hp(           ( (      0 0"  8$ 8( 00 @4 @8 0@ HD HH 8L P h Pl Pp t x X| X P P   0 4 8 <  ! X X      `$ `( 08 h< h@ `H L P 0T 0h"x p| p          ( (  ` (d (t x  P P ` `      `    p$ p, 0 4 X8 XH` 0d 0h l t x | ( ( @ @ 0 0 8 8 H H  @ @ H H @ P  P X X H0 `4 `@\ h` hd ph pp H x x    p4j x%@+@4C d$ O W @ _ ,  eqconfor.o/ 1230061592 7356 20 100664 6060 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''DH?LP?TX?\`?dh?lp?tx?|?%<#<`!< !< !< `?! D#<`;X@X'<`;X@X+=``;X@X-=`;X@X/=`;X@X1 > ;XX@@;XX;XX;X@X?` ;XX;XX;XX#\#`#d#h@? Y؉D;X@X)   @ 0 Q';XX@@;XX;XX;X@X?``  ;XX;XX;XX#\#`#d#h@?؉;X@X   ĉ !< !< !< ! ĉD#<`! ! ! ! ;XX;XX;XX#\#`#d#h@!< %`D!<  * @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X% @! ;XX;X@X;X@X! ;X@X;X@X! ! ;XX;X@X'@'D'H'L'P'T'XDH?LP?! ! ! ! ;XX;XX;XX#\#`#d#h@?! ! D?! ?! ;X@Xȉ @?! ??;X@X @ȉDT$ $ ! ! D??;X@X @X$ $ 'Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONICEQUIDISTANT CONIC?=|׽@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07eqconfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o eqconfor.o eqconfor.c <L4eqconfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerfalse_northingfalse_eastingesee0e1e2e3nsgml0rhcossinadjust_loneqconforstparl1offsetporigincenlonmerstanparlradius2ptitlep_errorfabsmlfnmsfnztsincose3fne2fne1fne0fnsqrteqconforint x /7?JY g(j0l8o@rHuPxX{`}hp              $ 0 4 @ (D (L+T 0X 0\ (d*l 8p 8t (|) @ @ (( H H (' P P& 0%  8 @ HH$t#|    "& 0 4% 8 < @ D H  LD$`#h l  X X X X X X X X ` ` 8 8 @ @ H H P P8$@ hD hH L P `\ p` pt <x <|!            P P!$ ( , 0 @ PX \ dt|     8 8 @ @ H H  P P@$L P T `X `h Xl Xx |      p p4j @xbH%X+X4 C $ O W  _  eqconinv.o/ 1230061592 7356 20 100664 6404 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''DH?LP?TX?\`?dh?lp?tx?|?%<#<`!< !< !< `?! D#<`;X@X'<`;X@X+=``;X@X-=`;X@X/=`;X@X1 > ;XX@@;XX;XX;X@X?` ;XX;XX;XX#\#`#d#h@? Y؉D;X@X)   @ 0 Q';XX@@;XX;XX;X@X?``  ;XX;XX;XX#\#`#d#h@?؉;X@X   ĉ !< !< !< ! ĉD#<`! ! ! ! ;XX;XX;XX#\#`#d#h@!< %`D!<  * @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X% @! ;XX;X@X;X@X! ;X@X;X@X! ! ;XX;X@X'@'D'H'L'P'T'XDH?LP?'! ??! 荡! D??! !  Z ZD;X@X?! ? Z ZD;X@X!?! ?! ? D 𑡉D艡D;XX;X@X?! ! ĉ?! ! ! ! ;XX;XX;XX#\#`#d#h@#lX$ $ ! ! ĉD;X@XT$ $ Ā ''Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONICEQUIDISTANT CONIC?=|׽@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07eqconinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o eqconinv.o eqconinv.c <L4eqconinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerfalse_northingfalse_eastingesee0e1e2e3nsgml0rhadjust_lonphi3zatan2eqconinvstparl1offsetporigincenlonmerstanparlradius2ptitlep_errorfabsmlfnmsfnztsincose3fne2fne1fne0fnsqrteqconinvint x /7?JY g(j0l8o@rHuPxX{`}hp@              $ 0 4 @ (D (L+T 0X 0\ (d*l 8p 8t (|) @ @ (( H H (' P P& 0%  8 @ HH$t#|    "& 0 4% 8 < @ D H  LD$`#h l  X X X X X X X X ` ` 8 8 @ @ H H P P8$@ hD hH L P `\ p` pt <x <|!            P P!$ ( , 0 @ PX \ dt|       p p  $ 4 X8 X< @ t+  +     $ `( `0 4 D 8H 8L @P @T HX H\ P` P   X X4j xb % + 4 C L$ O p"W  _d  equifor.o/ 1230061592 7356 20 100664 2780 ` ELF4( .shstrtab.text.bss.data1.data.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !<  @`;X@X;X@X;X@X  ;XX;X@X'p'D'H'L'P'T'XDH?LP?! ;X@X?! ?#` @?! ;X@X؉ @ЉDT$ $ ! `艡DDX$ $ 'EQUIRECTANGULAR@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07equifor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o equifor.o equifor.c <K4equifor.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingcosadjust_lonequiforoffsetporigincenlonmerradiusptitleequiforint (.6AL[ imxP,                              4j 0(#+4cC$ O,WP _0  equiinv.o/ 1230061592 7356 20 100664 3092 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !<  @`;X@X;X@X;X@X  ;XX;X@X'p'D'H'L'P'T'XDH?LP?! ?! ?#`X$ $ X  ;X@X! ! D  @  ! ??``?! ;X@X @؉ ЉD;X@XT$ $ EQUIRECTANGULARInput data errorequi-inv@ !TD-?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07equiinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o equiinv.o equiinv.c <K4equiinv.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingcosadjust_lonp_errorfabsequiinvoffsetporigincenlonmerradiusptitleequiinvint (.6AL[ imxP<,                               , 0 8 < D h4j 0(0-`%p+p4C$ OW| _  gnomfor.o/ 1230061593 7356 20 100664 3348 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?!< !< #<`!< ;X@X @;X@X;X@X;X@X` ;XX;X@X'@'D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X;X@X?'ؑD%ЉD @D??!   @  1'!  ?! ?#`DнD?;X@X @DT$ $ ! `DؑDЍDȉDĉDDX$ $ 'GNOMONICPoint projects into infinitygnomfor-conv?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07gnomfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o gnomfor.o gnomfor.c <K4gnomfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsin_p13cos_p13sinp_errorcosadjust_longnomforoffsetpcenlatcenlonradiusptitletsincosgnomforint 0.0;IX `(hltx`@           ( (    ,     ( (  , 0 4H L \ ` h l     ( ,  $4j 09%+4C($ OLW _X  gnominv.o/ 1230061593 7356 20 100664 4244 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?!< !< !< #<`!< ;X@X @;X@X;X@X;X@X` ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X?! ;X@X?ؔЖ;X@X%T$ $ ;X@X)  ! X$ $ ''DЍD! DĉD;X@XX$ $ #`;X@X! ! D?;X@X   4``! ?艠;XX;X@X@;X@XT$ $ V'?;XX;X@X;X@XT$ $ A'??X  ;X@X @?;X@X  ;X@X  '! ?ЍD! DD;XX;X@X@;X@XT$ $ 'GNOMONIC=|׽@ !TD-?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07gnominv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o gnominv.o gnominv.c <K4gnominv.cBbss.bssDdata.dataDrodata.rodataRlon_centerlat_centerfalse_eastingfalse_northingsin_p13cos_p13sinatan2adjust_lonasinzfabsatansqrtgnominvoffsetpcenlatcenlonradiusptitletsincosgnominvint 8 .0;FT c(k0sw}hpH           ( ( 0 0    $ 4        ,4 8 L P l (p ( 0 0             ( , L`|   ( ,   <D H d h | 0 04j x8x  %+4+C$ OW _   goodfor.o/ 1230061593 7356 20 100664 5036 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿐'D'HDH?1 > %#`<`<`'<`<`+`<` -<`(`<`0<`8/<`@3``<`H<`P`<`X D! <  D<  D<  D<  `D<  D< ( `D< 0 D< 8 D< @ `D< H D< P `D< X @;X@X'('D'H'L'P'T'XDH?LP?! !   U! !    B) !   !    !    !   !    !      (-#`;X@X?-#`?#` @?;X@X @DT$ $ `艡DX$ $ ,#`;X@X??;X@X! D?Ȭ?;X@X@ȉĿ%?! ?;X@X@ ?؉F?;X@X% `2  @  Q'Ϭ`#`?! `?;X@X! ?-#`?#`! DཡD?;X@X @DT$ $ `?;X@X! D?;X@X'! D DX$ $ 'GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forward?]?R8-h@WJ<_?R8-@?WJM@5AI?iy?WJM?WJU@ !TD-?=|׽@?d)?f;? _@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07goodfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o goodfor.o goodfor.c <K4goodfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfeastsignp_errorfabssincosadjust_longoodforradiusptitlegoodforint .0`;h`AFNSW[fnu|, 0 8 < D H P \ ` h p t        ( (   h h   ( < P d x    8 0< 0T 8X 8 @ @ 8 8    4 H8 Hd h    H H$ ( 8H hL hX \ p    P P4 X8 XHt | ` `    h h P P h  ` d( @, @8 h< hH L P pT pp  x x   4j N%+4 C $ O W \P _   goodinv.o/ 1230061593 7356 20 100664 7572 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿐'D'HDH?1 > %#`<`<`'<`<`+`<` -<`(`<`0<`8/<`@3``<`H<`P`<`X D! <  D<  D<  D<  `D<  D< ( `D< 0 D< 8 D< @ `D< H D< P `D< X @;X@X'8'D'H'L'P'T'XDH?LP?! ! H! D  ]! ! D   I) D#! D  ! D   ! D   !! D  ! D   ! D   ,#`?  \'X$ $ X  ;X@X#`%D  @  X  ;X@X``D?;X@X! !-#`???X  ;X@X @ D?;X@XT$ $  -#`T$ $ s?%! D?;X@X'ȉ DD! D ?;X@X' ?;X@X?ء-#`??! D?;X@X @ DT$ $ T  #`! D g?! D?;X@X@``?;X@X N?;X@XX$ $ ! ! T  !  ! ! T  D! T  $ $ T  ! ! D  ! ?T  ! ! D  ! ?T  !  ! ! D Ѭ?T  !  ! ! D ?T  ! ! D  ! ?T  !  ! ?T  ! ! D  ! q?T  !  ! [?T  !  ! F? T  !  ! ! D /? T  !  ! ? T  !  ! ! D ?GOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverse?]?R8-h@WJ<_?R8-@?WJM@5AI?iy?WJM?WJU@ !TD-?=|׽? _?f;??d)@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07goodinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o goodinv.o goodinv.c <K4goodinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfeastsinasinsignadjust_loncosp_errorfabsgoodinvradiusptitlegoodinvint .0`;h`AEJOZ^fk sz, 0 8 < D H P \ ` h p t        ( (   h h   ( < P d x    8 < @ 0D 0` 8d 8 @ @ 8 8  , 0 T HX H     H H  h hl p  P P X X   P T X \ ` `4 8 L P h     h h    p$ p8@ xD xh x |      P P ` `  , < P@ TPX x\ |  @ @ P P ` ` @ @ P P ` `\ P` Pd `h ` 8 8 P P ` ` 8 8 $ 8 ( 8 @ P D P H ` L `  8  8  P  P  `  `  P  P  `  `   H L d h  P  P  `  `      $ \ ` x H | H  H  H  P  P  `  `   ( H , H ` H d H x P | P  `  `4j   X XB %0+04CX$ O|W` _h $  gvnspfor.o/ 1230061594 7356 20 100664 3660 ` ELF D4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.texth'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?!< ! 艡ĉD!< !< #<`%<;X@X! @;X@X (;X@X;X@X;X@X`;XX;X@X'8'D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X;X@X?'ؑD%ЉD @D??! ! ??>   @  5'! Dډ?! ?#`DнD?;X@X @DT$ $ ! `DؑDЍDȉDĉDDX$ $ 'GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07gvnspfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o gvnspfor.o gvnspfor.c <L4gvnspfor.cBbss.bssDdata.dataDrodata.rodataRplon_centerfalse_eastingfalse_northingsin_p15cos_p15sinp_errorcosadjust_longvnspforoffsetpcenlatcenlongenrptradiusptitletsincosgvnspforint 8 /13>L [(c0kow{             ( ( 0 0  (<L\d h x  $0 (4 (@ 0D 0` d h l  T T      $ ( , 8 0< 4H (L ,4j (8(z%+4;C$ OW _   gvnspinv.o/ 1230061594 7356 20 100664 4964 ` ELFX4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.texth'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?!< ! 艡ĉD!< !< !< #<`%<;X@X! @;X@X (;X@X;X@X;X@X`;XX;X@X'0'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X?! ??#`! D?`%D?ȉ ;X@X  @  '``?؍ DȍDЉĉ;X@Xؑ ƉĉD?;X@X?;X@X%T$ $ ;X@X)  ! X$ $ ''DD! DĉD;X@XX$ $ #`;X@X! ! D?;X@X   4``! ?艠;XX;X@X@;X@XT$ $ V'?;XX;X@X;X@XT$ $ A'??X  ;X@X @?;X@X  ;X@X  '! ?D! DD;XX;X@X@;X@XT$ $ 'GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-for?=|׽@ !TD-?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07gvnspinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o gvnspinv.o gvnspinv.c <L4gvnspinv.cBbss.bssDdata.dataDrodata.rodataRplon_centerlat_centerfalse_eastingfalse_northingsin_p15cos_p15sinatan2adjust_lonfabsasinzp_errorsqrtgvnspinvoffsetpcenlatcenlongenrptradiusptitletsincosgvnspinvint @ 0/13>I W(f0n8vzD             ( ( 0 0 8 8   0DTdl p (   ( ($0 4 D H L P \ ` d x X X    ,4 8 PX \ p t  0 0 8 8         , 0 4 (8 (L P p   0 48@ D `h l    8 84j @v0%H+H4C t$ O W  _   hamfor.o/ 1230061594 7356 20 100664 2972 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ;X@X?! ! D?! ?;X@X! ?#`;X@XЉ @ȉD;X@X ?! ?`D?;X@X @?`;X@XЉ @DT$ $ ! ??;X@X @DX$ $ 'HAMMER?fe>?@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07hamfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o hamfor.o hamfor.c <J4hamfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsincossqrtadjust_lonhamforoffsetpcenlonradiusptitlehamforint -/:HW[_dov~p t |          P T `l p t x           ( 4 X \ t 4j X X`%x+x4C$ OW`` _  haminv.o/ 1230061594 7356 20 100664 2900 ` ELF H4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'x'D'H'L'P'T'XDH?LP?! ?! ?'#` JD H ʍĉ L;X@X% ?! ? DD F H`č艡 D;XX;X@X D؉D;X@XT$ $ D Ɖ ;X@XX$ $ 'HAMMER@@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07haminv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o haminv.o haminv.c <J4haminv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingasinzatan2adjust_lonsqrthaminvoffsetpcenlonradiusptitlehaminvint -/:HW]cnslzp t |          P T d h t x |           $D T 4j ( (0%@+@4Cd$ OW,` _  imolwfor.o/ 1230061595 7356 20 100664 4756 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿐'D'HDH?%<! #`<`! <`! <`! <`! <` ! <`(#`D'<! D<! D<! D<! D< `D<( @;X@X'8'D'H'L'P'T'XDH?LP?! 9!  ! (!  ! ! D ! %! D  !   7!  ! ( !  ! ! D ! %! D  !   -#`;X@X??;X@X! D?Ȭ?;X@X@ȉĿ%?! ?;X@X@ ?؉F?;X@X%  2 @ Ӭ#`?! `?;X@X! ?-#`?#`! DཡD?;X@X @DT$ $ `! D?;X@X @X$ $ 'INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward?R8-@@ϕ?R8d?!TC@5AI?WJy@^?n\T@WE? 2?n\T?f ?f@ !TD-=++?]yk?5A?=|׽@?d)?f;@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07imolwfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o imolwfor.o imolwfor.c <L4imolwfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfeastp_errorfabscossinadjust_lonimolwforradiusptitleimolwforint h /10<80BJOSWbh$kryH, 0 4 8 < @ H L X \ h l t x  ( (  0 0 8 8  8 8  @ @  H H  P P   0   $4 X X ( ( ` ` h h p p x x8 p< pH L d h  ( (     p p x x p p$ ( @ D p t  p p   ( 0 4 \ $` $d x |  p p     X X 8 8     8 < @ T4j 0h0T%H+H4C t$ O W @ _ `(  imolwinv.o/ 1230061595 7356 20 100664 4700 ` ELFT4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿐'D'HDH?%<! #`<`! <`! <`! <`! <` ! <`(#`D'<! D<! D<! D<! D< `D<( @;X@X'X'D'H'L'P'T'XDH?LP?! ! ! D   ! D    ! ! D    ! D    -#`?%! D ;X@X?-#`??! D?;X@XЉ @ȉ D;X@XT$ $ ! D?;X@X@! ;X@XX$ $ T  !  ! ?#T  ! !  T  !  ! e?T  !  ! P?T  !  ! <?#T  ! !  T  !  ! ?T  !  ! ?INTERRUPTED MOLLWEIDE EQUAL-AREA?R8-@@ϕ?R8d?!TC@5AI?WJy@^?n\T@WE? 2?n\T?f~?+}8k=?f;?d)@@ !TD-?f ?]?]yk?5A@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07imolwinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o imolwinv.o imolwinv.c <L4imolwinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfeastsincosadjust_lonasinimolwinvradiusptitleimolwinvint h /10<80BFJUZhcjqH, 0 4 8 < @ H L X \ h l t x  ( (  0 0 8 8  8 8  @ @  H H  P P   0   $4 X X   ` ` h h  $ ( h, hP `T ` 8 8   p p    x x  0 4 D T X d ( (     ( (   8 (< (p t  ( ( ( (    , (0 (P T l (p (   ( (4j h!%h+h4C $ O }W 80 _ h  lamazfor.o/ 1230061595 7356 20 100664 3596 ` ELF 4(.shstrtab.text.bss.data1.rodata1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?!< !< #<`!< ;X@X @;X@X;X@X;X@X` ;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?Ȗ;X@Xؖ;X@X'ȑD%DЉDD?h?! ?`?>=hDt`! ! D@;X@X`@@ q.'! ?X! h`Z;X@XX @?D؍D! DT$ $ ȑDDЉDčD! DX$ $ 'LAMBERT AZIMUTHAL EQUAL-AREAlamaz-forwardPoint projects to a circle of radius = %lf ?@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07lamazfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o lamazfor.o lamazfor.c <L4lamazfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsin_lat_ocos_lat_osqrtp_errorsprintfadjust_lonlamazforoffsetpcenlatcenlonradiusptitletsincoslamazforint 0 /1<JY c(mrz`@           ( (    ,     ( (  L P T X \ ` px |        ( ,   $( , 4s P0.(,&X.h4h=L$  X` h 8  lamazinv.o/ 1230061595 7356 20 100664 4420 ` ELF<4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?!< !< !< #<`!< ;X@X @;X@X;X@X;X@X` ;XX;X@X'@'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X?! #`D ??!   @  s';X@X`` D?ؔЖ;X@X+`T$ $ ;X@X#` %ȑD'ЍD荡DĉD;X@XX$ $ ) ;X@X! ! D?;X@X`` 2??X  ;X@X @?! D``?ЍDD D;XX;X@X@;X@XT$ $ 2  ! ``?;XX;X@X;X@XT$ $ ``?艠;XX;X@X@;X@XT$ $ ! X$ $ 'LAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverse@?=|׽@ !TD-?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07lamazinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o lamazinv.o lamazinv.c <L4lamazinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerlat_centerfalse_eastingfalse_northingsin_lat_ocos_lat_oatan2adjust_lonsinfabsasinzp_errorsqrtlamazinvoffsetpcenlatcenlonradiusptitletsincoslamazinvint 8 0/1<GU d(n0x~hH           ( ( 0 0    $ 4             $@H L dl p    ( ( 0 0       (0 4 P (T ,l ( (   0 4    ( (( , L`|    4j 8B0%+4C<$ O`W H _ (  lamccfor.o/ 1230061596 7356 20 100664 5516 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?%<#<`!< !< ؉D;X@X)   @ @ )'``?! D!< ;X@X'<!< !< ;XX@@?;XX;XX;X@X?;XX;XX;X@X?x;XX@@;XX;XX;X@X?;XX;XX;X@X?p ;X@X? ;XX;XX;X@X?؉;X@X  ;X@X! ?hxp;X@Xh !< !< ?X#`?`x;XX`;X@X` @X !< %D?P`;XX;X@XP @!<  @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X'8'D'H'L'P'T'XDH?LP?;X@X! ! D;X@X?! #;X@X?! ;XX;XX;X@X?! ! D?! ;XX;X@X @?! D?! ??>   @ 2 ,?! ?! ;X@X @??;X@X @! DT$ $ ! ??;X@X @! DX$ $ Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedlamcc-for=|׽?@ !TD-?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07lamccfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o lamccfor.o lamccfor.c <L4lamccfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_northingfalse_eastingesecenter_loncenter_latnsf0rhcosadjust_lonlamccforoffsetporigincenlonmerstanparlradius2ptitlepowlogsintsfnzmsfnztsincossqrtp_errorfabslamccforint X (/7?N\ _(a0l8w@zH}P$        $$ ( < @ D#X \ ` d p t   " ( ( 0 0 8 8! (  ((D!L (l x ( 8 ( 8$   DT @X @h @l @x @| @ H H   @ P P L L    8@ 0D 0L\d h l p $    $  4@ (D (`l p t Hx H @ @ @ @   d d# @  @ 0 0(HX \ p Pt P  4j pXp(%(+(4 C T$ O xW ` _   lamccinv.o/ 1230061596 7356 20 100664 5684 ` ELF(4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?%<#<`!< !< ؉D;X@X)   @ @ )'``?! D!< ;X@X'<!< !< ;XX@@?;XX;XX;X@X?;XX;XX;X@X?x;XX@@;XX;XX;X@X?;XX;XX;X@X?p ;X@X? ;XX;XX;X@X?؉;X@X  ;X@X! ?hxp;X@Xh !< !< ?X#`?`x;XX`;X@X` @X !< %D?P`;XX;X@XP @!<  @! ;XX;X@X;XX;X@X! ;X@X;X@X! ! ;XX;X@X'P'D'H'L'P'T'XDH?LP?'! ??! 荡! D??! !  Z ZD;X@X?! ? Z ZD;X@X!?! ?! ? D 𑡉D艡D;XX;X@X?! F! (! ! ?! ! D ;XX;X@X?! ;XX;X@XX$ $ Ā ' ! ! DX$ $ ! ! D;X@XT$ $ 'Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC=|׽?@ !TD-?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07lamccinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o lamccinv.o lamccinv.c <L4lamccinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_eastingfalse_northingesecenter_loncenter_latnsf0rhadjust_lonphi2zatan2lamccinvoffsetporigincenlonmerstanparlradius2ptitlepowlogsintsfnzmsfnztsincossqrtp_errorfabslamccinvint X (/7?M\ _(a0l8w@zH}P        %$ ( < @ D$X \ ` d p t   # ( ( 0 0 8 8" (! (( D"L (l!x (  8 ( 8 %   DT @X @h @l @x @| @ H H   @ P P L L    8@ 0D 0L\d h l p    P P    @  @$ ( \#h l #       ( @, @@ D H @L @\ ` d Hh H ( (     @ @  0 04j @XdH(%p+p4 C $ O W p _@  merfor.o/ 1230061596 7356 20 100664 3932 ` ELF P4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?'<+=`-=/=1 > )= `?#` D%<;X@X!< ;X@X! ?`??;X@X @?;X@X @;X@X !<  @`;XX;X@X;X@X;X@X  ;XX;X@X'h'D'H'L'P'T'XDH?LP?;X@X! ! D;X@X!   @ 0< 5;X@X?! ;XX;XX;X@X?! ?#`%D?! ;X@XЉ @ȉDT$ $ ! ?`D?;X@XЉ @ȉX$ $ MERCATORTransformation cannot be computed at the polesmer-forward?@ !TD-?=|׽@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07merfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o merfor.o merfor.c <J4merfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1logadjust_lontsfnzp_errorfabsmerforoffsetporigincenlonmerradius2ptitlesincossqrtmerforint H -5=HS b(p0s8u@x|H$           ( (     0 0$ 8( 84H P 0`| @ @       (         8 8  ($ (, 0 4 @8 @H L X|    @4j xHxH %+4cC$ O(W _ H  merinv.o/ 1230061596 7356 20 100664 3580 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?'<+=`-=/=1 > )= `?#` D%<;X@X!< ;X@X! ?`??;X@X @?;X@X @;X@X !<  @`;XX;X@X;X@X;X@X  ;XX;X@X'x'D'H'L'P'T'XDH?LP?'! ?! ?蓠%#`%D ;X@X?! ;XX;X@XX$ $ ܀ '! ``D ĉD;X@XT$ $ 'MERCATOR?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07merinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o merinv.o merinv.c <J4merinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1adjust_lonphi2zexpmerinvoffsetporigincenlonmerradius2ptitlesincossqrtmerinvint H-5=HS b(p0s8u@xH$$           ( (     0 0$ 8( 84H P 0`| @ @       ( ( (     @ @ 8 8   ( , 0 @4 DH4j pH  %(+(4CL$ OpWD _ $  millfor.o/ 1230061596 7356 20 100664 2804 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'p'D'H'L'P'T'XDH?LP?! ;X@X?! #` @DT$ $ ! ?`?! ! ! ĉD;X@X;X@X؍ @! DЉDX$ $ 'MILLER CYLINDRICAL@ !TD-@@?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07millfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o millfor.o millfor.c <K4millfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingtanlogadjust_lonmillforoffsetpcenlonradiusptitlemillforint  .0;IX\`ks{p t |          P T `l p t x              4j (  %+4C($ OLWP _8  millinv.o/ 1230061597 7356 20 100664 2796 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'㿈'D'H'L'P'T'XDH?LP?! ?! ?! #` ĉD;X@XT$ $ `! ;X@X;X@X! ! č! DX$ $ 'MILLER CYLINDRICAL?@ !TD-@@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07millinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o millinv.o millinv.c <K4millinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingexpatanadjust_lonmillinvoffsetpcenlonradiusptitlemillinvint  .0;IX\alt|p t |          P T d h t x |             4j    %+4{C $ ODWP _0  molwfor.o/ 1230061597 7356 20 100664 3460 ` ELF x4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?#<`%<!< !<  @;X@X;X@X`;XX;X@X'@'D'H'L'P'T'XDH?LP?! ;X@X??;X@X! D?Ȯ?;X@X@ȉĿ%?! ?;X@X@ ?؉F?;X@X% `2 @ C Ю`#`?! `?;X@X! ?#`! DཡD?;X@X @! DT$ $ `! D?;X@X @! DX$ $ MOLLWEIDEIteration failed to convergeMollweide-forward@ !TD-?=|׽@?d)?f;@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07molwfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o molwfor.o molwfor.c <K4molwfor.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northingRlon_centerp_errorfabscossinadjust_lonmolwforoffsetpcenlonradiusptitlemolwforint 8.<KMX`eimxLp t |          P T `x        < @ D ` d p t x         ( (    0 0,< @ 4j h >H8%+4C$ OWtp _  molwinv.o/ 1230061597 7356 20 100664 3268 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?#<`%<!< !<  @;X@X;X@X`;XX;X@X'X'D'H'L'P'T'XDH?LP?! ?! ?! ! D ?;X@X! ?;X@X?! ??! ! D?;X@XЉ @ȉ D;X@XT$ $ T``! $`$`T``! $`$`! D?;X@X@! ?;X@X! ?;X@XX$ $ 'MOLLWEIDE?f;??d)@ !TD-@?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07molwinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o molwinv.o molwinv.c <K4molwinv.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northingRlon_centersincosadjust_lonasinfabsmolwinvoffsetpcenlonradiusptitlemolwinvint 0.<KMX\`kpu}p t |          P T d h t x |            @ D p t       ( (4j (  0%+4C0$ OTWp _lL  obleqfor.o/ 1230061597 7356 20 100664 4396 ` ELF$4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textX'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?#<`%<!< '<+=`-=/=1 > ) @`;X@X;X@X ;X@X ;X@X` (;X@X <;X@X ;XX;X@X ;X@X''D'H'L'P'T'XDH?LP?! ?Ȗ;X@Xؖ;X@X#`ȑD! DЉDD;X@X?ؙ D ȕD` HЉD;XX;X@X! D?;X@X';X@X D?D?D? ;X@X??p;X@Xp @?hD#`;X@Xh ?;X@X?x) %D?` D ;X@X` @! DX$ $ ` D?`D ;X@X` @?Xx;X@XX @?PxD ;X@XP ! DT$ $ 'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07obleqfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o obleqfor.o obleqfor.c <L4obleqfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerlat_omnthetafalse_eastingfalse_northingsin_lat_ocos_lat_ocosasinsinatan2acosobleqfortsincosoffsetpgenrptcenlatcenlonradiusptitleobleqforint P /1<BD F(L0Z8i@sH}(           (  (( 0, 04 88 8@ D HP X` hp x   ( 0  @ @ H H` d  @ @ H H H @ (  (8D H T\            (8 0< 0P T d t   8 84j PI%+4{C$$ OHW ( _ (  obleqinv.o/ 1230061598 7356 20 100664 4492 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textX'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?|?#<`%<!< '<+=`-=/=1 > ) @`;X@X;X@X ;X@X ;X@X` (;X@X <;X@X ;XX;X@X ;X@X''D'H'L'P'T'XDH?LP?! ?! ?%! ?#`D ;X@X @?'`D ?x D;X@Xx @?p;X@Xp ? ?;X@X @?;X@X D?;X@X D?D;X@X @?h;X@Xh ? DFD;X@X ?;X@X D?;XX;X@X?! ?;X@Xؖ;X@X%БD#`؍DDD;X@XX$ $ ! ?` D`ЕD HD;XX;X@X`@;X@XT$ $ 'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07obleqinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o obleqinv.o obleqinv.c <L4obleqinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerlat_omnthetafalse_eastingfalse_northingsin_lat_ocos_lat_oadjust_lonatan2sqrtsincosasinobleqinvtsincosoffsetpgenrptcenlatcenlonradiusptitleobleqinvint P /1<BD F(L0Z8i@sH}(           (  (( 0, 04 88 8@ D HP X` hp x   ( 0  @ @ H H` 0d 0t 8x 8           $ ( 8PX lt    $ (( (@X` @d @p Ht H   H @4j 0PI %(+(4CT$ OxW ` _ p  omerfor.o/ 1230061598 7356 20 100664 11964 ` ELF,4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㾀'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''''''''''DH?LP?TX?\`?dh?lp?tx?|?????%<#<`'<1 > !< !< `?+` D#<`;X@X-= /) ;XX@`` F F?``;X@X?`?`? ! ;XX;X@X @``ĉ D;X@X#<` @DD!<  ;X@X! ``?x``!< ``!< W  ;XX;XX;X@X?x;X@X?``D   @?! <  Z! D?!    ;X@X@ ?8;X@X?8?88?x! ;XX;X@X @!< #`@@! ! ;XX;X@X! `;X@X! ! ;XX;X@X 8! ƍ'D?0;X@X- ;X@X?(?0?;X@X @;X@X+` %<! D`@;X@X;X@X%;X@X;X@X! ?#` b! D;X@X`` S(;X@X#`;XX@@! ! ``? D! D;X@X`` ;X@X @!< ! ``Ŀ%? D! D;X@X`` ;X@X艧 @!<   @  e'b;X@X? ! ;XX;XX;X@X?p;X@X?  ;XX;XX;X@X?hp! ;XX;X@X?`h ;XX;X@X?X#`` ?8! ƍ! D?0` D JĉD ?PʉJ?H?@! )! H?@! ! FD??@D% F?P?/ F H;X@X @H;X@X 艧!< ;X@X?@ @;X@X0 ;X@X?(1  ?;X@X @;X@X?#`D+`;XX@@`D` ;X@X`D`@;X@X`D``;X@X;X@X'  `@` ';X@X! ? #`D;X@X   @  l'-;X@X``D;X@X  `@`Ԡ R'(;X@X#`;XX@@! ! ?   D! D;X@X`` ;X@X @!< ! ! Ŀ%?   D! D;X@X`` ;X@X艧 @!< ' 'D'H'L'P'T'XDH?LP?;X@X?! ;X@X?+` @;X@X?;X@X) %D;X@X! x! ;XX;XX;X@X?! ?``;XX;X@X ?#` ȍD?` ȍDD?%D#`Dĉ ?``D;X@X?;X@X!  ! ``DD*?'?``DDDЉ;X@X @``?!    D``ĉD?! ! ?! ?! 荡D! ?;X@X! D;X@X!   @ 5 ! ! D?! ĉD ;X@X @! ?! ?! #`DD% DDT$ $ ! ` DDDX$ $ OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-initPoint projects into infinityomer-for?@=|׽?@Lc˰@ !TD-@>z򚼯H@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07omerfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o omerfor.o omerfor.c <K4omerfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesesin_p20cos_p20blaldellon_originsingamcosgamsinazcosazulogcosomerforadjust_lonp_erroratancenlatcenlontansinasinzoffsetpgenrptradius2ptitletsfnzfabspowtsincossqrtomerforint P.6>KV e(s0v8x@HPX`hpx P4 "'+38 0X \ d h p t |     ( (     0 0/ 8 8 @ @ H H.  0  $ 00/< D 0P T d-t x 0/ P P   X X,       ` `    h h$ 8( <P+d/p Pt T ` `    //L PP P`-p ht hx | *    )  ( ( (  '    ( ($%, `0 `<&\$p&x P| P p p 0 0( p#  " ,    8 8 ( ,(,0 4 L xP xT X `.l p t x .     X X P T ` d  /!    X X  P$ T8 `< dD H T/l!|   ` ` % 8 8+% 8 +0 P4 PD-T Pd-p ht h   ( ( h 8 8  @  @  8  8 4 @ 8 @ \ ( ` ( t P x P $ !  P  p  p   P % !  `  ` % 0& @ 0 D 0 L P \( h 0 x(  0 (  0 ( ,      ,     4 8 8 8 < ( @ , P, X  \  p  t  x      ,  8  <  (  , ,       x  x   .    $ 0. 8  <  @ D X X \ X ` P d T |    / !    X  X  P  P     / ! ( , %  p  p   P  P % ,  8  8  (  (,     8$ 8D+P hT h\ P` Tp-   ( ,  ( , x x   P T , H H, X0 X4 P8 TP XT X` d p xt |! P T   X \ 8 < P T   x x$ x( x4 X8 XD PH P\,d h t,|   ` `  X X ( (   P P   ( (   , 0 H L P \ 4j ((P%+4C0$ OTCW _  omerinv.o/ 1230061598 7356 20 100664 11580 ` ELF+04( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㾈'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''''''''''DH?LP?TX?\`?dh?lp?tx?|?????%<#<`'<1 > !< !< `?+` D#<`;X@X-= /) ;XX@`` F F?``;X@X?`?`?  ! ;XX;X@X @``ĉ D;X@X#<` @DD!<  ;X@X! ``!< ``!< ``!< Y  ;XX;XX;X@X!< ;X@X?``D   @?! <  Z! D?!    ;X@X@ ?@;X@X?@?@@?! ! ;XX;X@X @!< #`@@! ! ;XX;X@X! `;X@X! ! ;XX;X@X @! ƍ'D?8;X@X- ;X@X?0?8?;X@X @;X@X+` %<! D`@;X@X;X@X%;X@X;X@X! ?#` b! D;X@X`` S0;X@X#`;XX@@! ! ``? D! D;X@X`` ;X@X @!< ! ``Ŀ%? D! D;X@X`` ;X@X @!<   @  e'b;X@X?(! ;XX;XX;X@X?h;X@X?( ;XX;XX;X@X?`h! ;XX;X@X?x` ;XX;X@X?p#`x ?@! ƍ! D?8` D JĉD ?XʉJ?P?H! )! H?H! ! FD??HD% F?X?/ F H;X@X荧 @P;X@X !< ;X@X?H @;X@X8 ;X@X?01  ?;X@X @;X@X?#`D+`;XX@@`D` ;X@X`D`@;X@X`D``;X@X;X@X'  `@` ';X@X! ? #`D;X@X   @  l'-;X@X``D;X@X  `@`Ԡ R'0;X@X#`;XX@@! ! ?   D! D;X@X`` ;X@X @!< ! ! Ŀ%?   D! D;X@X`` ;X@X @!< '('D'H'L'P'T'XDH?LP?! ?! ?'#`D! D?` D DD?! D?- L';X@X?% #`D? D`D?D;X@X?+` D) DD؉?;X@X! D;X@X!  #! T$ $ !  ! ``DX$ $  ! ``DX$ $ V?! ?Dĉ ;X@X ;XX;X@X?! ;XX;X@XX$ $  +'D;X@X?! ?``D  D;XX;X@X ?;X@XT$ $ 'OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-init?@=|׽?@Lc˰@ !TD-@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07omerinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o omerinv.o omerinv.c <K4omerinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesesin_p20cos_p20blaltsdellon_originsingamcosgamsinazcosazuatan2cosphi2zexpomerinvadjust_lonp_erroratancenlatcenlontansinasinzoffsetpgenrptradius2ptitletsfnzfabspowtsincossqrtomerinvint H.6>KV e(s0v8x@HPX`hpx `| $+16:BG <X \ d h p t |     ( (     0 02 8 8 @ @ H H1  0  $ 002< D 0P T d0t x 02 P P   X X/     ` `   h  h   p p( 8, <T.\ `` `l2x P| T h h    2$2P `T `X P\ Pl0| p p  -    ,  + ( (  *    ( (0(8 h< hH)h'|) P P x x 0 0+ x&  % /   8 8  ($ ,4/< @ X \ ` d l1x |   1     X X P T h l  2$  $ X( X, P0 TD hH lP T `2x$   ` `#( 8 8.( 8,.< P@ PP0` Pp0| p p   ( ( p 8 8  @  @ $ 8 ( 8 @ @ D @ h ( l (  P  P ' $  P  x  x "  P ( $  h  h (( <) L 0 P 0 X \ h+ t 0 +  0 +  0 + /     # / (  ,  @ 8 D 8 H ( L , \/ d  h  |    #     /  8  <  (  , /     #     1 $ ( , 0 <1 D  H  L P d X h X l P p T     2 $    X  X  P  P     2 $$ 4 8  (  (            P  P X X( 4 8 D (H (T ` (l Px X(    /  /   x x  ( 8, 80 (4 ,P 8T 8X (\ ,|   P T p p  20 8 8, P0 T< X@ \LX x\ xh l x |  P T"4j ^H%(+(4CP$ OtRW@ _(  orthfor.o/ 1230061598 7356 20 100664 3540 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ;X@X?;X@X;X@X?! D! ؉D @D?! ?!  ;X@X!  .! ?#`DؽD?;X@X @DT$ $ ! `D! D! ؍DȉDĉDDX$ $   @  ''ORTHOGRAPHICPoint can not be projectedorth-for?=|׽@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07orthfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o orthfor.o orthfor.c <K4orthfor.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14p_errorsinfabscosadjust_lonorthforoffsetporigincenlonmerradiusptitletsincosorthforint 8.6AL[ i(q0yhH           ( ( 0 0       $ 4   ( ( 0 0    $ <D H \ ` h l     0 0 ( (   4j 885%(+(4CP$ OtWP _   orthinv.o/ 1230061599 7356 20 100664 4468 ` ELFl4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'8'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X! ??! ?! D  @  ' ;X@X?ؔЖ;X@X%T$ $ ;X@X)  ! X$ $ ''DЍD! DĉD;X@XX$ $ #`;X@X! ! D?;X@X   4``! ?艠;XX;X@X@;X@XT$ $ T'?;XX;X@X;X@XT$ $ ?'??X  ;X@X @?;X@X   ;X@X  ! ?ЍD! DD;XX;X@X@;X@XT$ $ 'ORTHOGRAPHICInput data errororth-inv>z򚼯H=|׽@ !TD-?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07orthinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o orthinv.o orthinv.c <K4orthinv.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14sinatan2adjust_lonfabsasinzp_errorsqrtorthinvoffsetporigincenlonmerradiusptitletsincosorthinvint 8(.6AL[ i(q0y}hH           ( ( 0 0       $ 4           $H`h l      ( ( 0 0     $ ( , @H L ` d h l      0 (4 ,Llt x      0 04j (8-(% + 4CH$ OlW T _ 48  polyfor.o/ 1230061599 7356 20 100664 4588 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?+=`-=/=1 > 5>3`>``?! D#<`;X@X!< `;X@X%<`;X@X'<`;X@X)= `;X@X!<   ;XX;XX;XX#\#`#d#h@!<  @`;XX;X@X;X@X ;X@X`;XX;X@X' 'D'H'L'P'T'XDH?LP?! ;X@X?;X@X!  ! #`ЉDDT$ $ ! `! DX$ $ c;X@X! ! ! ! ;XX;XX;XX#\#`#d#h@?! ;XX;XX;X@X?D?! ?#` @?;X@X @DT$ $ ! ?`?! ??! ?;X@X DD DDX$ $ 'POLYCONIC?>z򚼯H@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07polyfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o polyfor.o polyfor.c <K4polyfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesee0e1e2e3ml0cossinmsfnztsincosfabsadjust_lonpolyforoffsetporigincenlonmerradius2ptitlemlfne3fne2fne1fne0fnsqrtpolyforint h.6>IT c(q0t8v@yH|PX`ptP           ( (      0 0$&, 80 84 0<%D @H @L 0T$\ H` Hd 0l#t Px P| 0" X X @ H P! ` `       <     ( (       `$ `T\ @` @d Hh Hl Pp Pt Xx X! 8 8 ( (  @ D L X `\ `p t 4j h %+4+C$ OW _ |h  polyinv.o/ 1230061599 7356 20 100664 4332 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?+=`-=/=1 > 5>3`>``?! D#<`;X@X%<`;X@X'<`;X@X)= `;X@X!<   ;XX;XX;XX#\#`#d#h@!<  @`;XX;X@X;X@X ;X@X`;XX;X@X'8'D'H'L'P'T'XDH?LP?! ?! ?! %ĉD?';X@X!  ! DT$ $ ! X$ $ ONĉ DD?! ! ! ! ! X;XX;XX;XX#\#`#d#h#l#p#t#x#|@#@''̀  J 'ЍD;X@X! ?X  ;X@X ! D;X@XT$ $ 'POLYCONIC?>z򚼯H@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07polyinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o polyinv.o polyinv.c <K4polyinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0sinasinzadjust_lonphi4zfabspolyinvoffsetporigincenlonmerradius2ptitlemlfne3fne2fne1fne0fnpolyinvint `.6>IT c(q0t8w@zH}PXX(8           ( (      0 0$#, 80 84 0<"D @H @L 0T!\ H` Hd 0l t Px P| 8 @ H X X     $ ( (   X X           $ H L ` 0d 0h 8l 8p @t @x H| H P P   <L P \4j  ` 0%H+H4Cp$ OWP _   psfor.o/ 1230061599 7356 20 100664 4740 ` ELFx4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textH'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< `?#` D!< ;X@X!< ;X@X!< !< !< !  ``!< ``!< ! #<`;X@X! ! D;X@X! *! $`$`! ! D?;X@X#`;XX;XX;X@X!< `;XX;XX;X@X!<  @! ! ;XX;X@X! ;X@X;XX;X@X'H'D'H'L'P'T'XDH?LP?#`?! ;X@X @?`艡D?;X@X?! ;XX;XX;X@X! ?! ! D ! ! D H!  ?! ! D H! ?#`нD?;X@X @! DT$ $ `%нD?;X@X @! DX$ $ 'POLAR STEREOGRAPHIC?@ !TD-?=|׽@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07psfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o psfor.o psfor.c <I4psfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_northingfalse_eastingesee4center_loncenter_latfacindmcstcscossinadjust_lonpsforoffsetpcenlonradius2ptitletsfnzmsfnztsincosfabse4fnsqrtpsforint h0,4<KY \(^0a8l@wH{PX`              " (  (! 0  0( 8, 84 @8 @< @ T X ` Hd Hp t x H| H   P P           P T H H @ @ ( (<D XH XL (lt `x `|       8 8D HH HT 8X 8dx H ( ( P P     X X ` `    ($ (0 04 0@ HD H\l p  H  4j h0%+4SC$ OW @ _ D4  psinv.o/ 1230061600 7356 20 100664 4820 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?%<#<`!< !< `?#` D?;X@X!< ;X@X!< !< !< !  ``!< ``!< ! #<`;X@X! ! D;X@X! *! $`$`! ! D?;X@X#`;XX;XX;X@X!< `;XX;XX;X@X!<  @! ! ;XX;X@X! ;X@X;XX;X@X'`'D'H'L'P'T'XDH?LP?'! #`D?! `D?荢 H DD;X@X! ?! ! D ! D! ! D  ?! D! ! D ?#`?! ؘ;XX;X@X @X$ $ ̀ )'! D ``! DT$ $ 艠;XX;X@X?`` @! D;X@XT$ $ 'POLAR STEREOGRAPHIC?@ !TD-?=|׽@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07psinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o psinv.o psinv.c <I4psinv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorfalse_eastingfalse_northingee4center_loncenter_latfacindmcstcsadjust_lonatan2phi2zpsinvoffsetpcenlonradius2ptitletsfnzmsfnztsincosfabse4fnsqrtpsinvint `0,4<JY [(^0i8t@xH|PX            !    ( ($ 0( 00 84 88 < P T \ @` @l p t @x @|   H H         H L @ @ 8 8   8@ PD PH hp Xt Xx |      0 0D H P @T @d h p @! H H   X X   P P ( (   ( ( @ @  $ <t x  @ D 0 0 @ D 0 04j `0%+4C$$ OHW 40 _ dd  robfor.o/ 1230061600 7356 20 100664 5524 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< !< !< #`+`=`%) = ! =`'= `=`= ! =` ! = ! =`(! = (! =`0! = 0! =`8! = 8! =`@! = @! =`H! = H! =`P! = P! =`X! = X! =``! = `! =`h! = h! =`p! = p! =`x! = x! =`! = ! =`! = ! =`! = ! =`! = =`! = +`%-'``D<` @;X@X;X@X! ! ;XX;X@X'p'D'H'L'P'T'XDH?LP?! ;X@X?! ! ;X@X?! DD''Љ?%-#`#`#`ʉD) ̝DRLĉJ D ̉D DD! DT$ $ ! ,#```#```#```ʉD  ЙDPĉJ D ЉDD! D ! DX$ $ ,%#```#```#```ʉD  ЙDPĉJ D ЉDD! D ! DX$ $ 'ROBINSON?vȴ9X?#??vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!R Z! #`ĉD? ' K @ N ;X@X!  }% @ 8 ! DX$ $ ! ``ġ-#`#`#`̉D! ΡDF NĉLD ΉDĉDT$ $ T  ;X@XT$ $ ROBINSONToo many iterations in inverserobinv-convToo many iterations in inverserobinv-conv?vȴ9X?#??vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rh?FR@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07robinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o robinv.o robinv.c <J4robinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingprxlradjust_lonp_errorfabsrobinvoffsetpcenlonradiusptitlerobinvint pp-/:HW Z^iqv8\}p t |                       ( ( 0  0 8 8  @$ @, H0 H8 P< PD XH XP `T `\ h` hh pl pt xx x                             ( , 4 8 @ D L P X \ d h p x  |   ( (        p t    0 0 8 8   @ @ H H P P 8 8( (, (D 0H 0P 0T 0t 0   0    , H0 H\ H` Hp Ht H P P     0 0 8 8 ( (  0 0< 8@ 8T X h 0l 0t 8x 8 ( ( 0 0 8 8 X X 8  8  @ D H`h `l ` 8 8 h h             0$ 0p4j  8p 8d p% + 4 C 4$ O XW p _l x  sinfor.o/ 1230061601 7356 20 100664 2548 ` ELF4( .shstrtab.text.bss.data1.data.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'x'D'H'L'P'T'XDH?LP?! ;X@X?#` @?;X@X؍ @! DT$ $ `荡D! DX$ $ 'SINUSOIDAL@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07sinfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o sinfor.o sinfor.c <J4sinfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingcosadjust_lonsinforoffsetpcenlonradiusptitlesinforint -/:HW[fmu|p t |          P T ` l p       4j   #+4C$ OWx0 _D  sininv.o/ 1230061601 7356 20 100664 3132 ` ELF 44( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'h'D'H'L'P'T'XDH?LP?! ?! ?'X$ $ X  ;X@X#`%D  @ ; X  ;X@X``D?;X@X! ! ???X  ;X@X؉ @Љ ȉD?;X@XT$ $ ! T$ $ SINUSOIDALInput data errorsinusoidal-inverse@ !TD-?=|׽@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07sininv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o sininv.o sininv.c <J4sininv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingadjust_loncosp_errorfabssininvoffsetpcenlonradiusptitlesininvint -/:HWbfnszp t |          P T d h t x             $ 8 < L P h    4j p p3%+4CC$ OW` _ (  somfor.o/ 1230061601 7356 20 100664 12212 ` ELF-4(.shstrtab.text.bss.data1.rodata.rodata1.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'''''DH?LP?\`?dh?lp?tx?|??%<!< !< !< !< ! ĉ D!<  ?! !< !< '44!< PT &! #`D?! ! !< ! ! ! X'44D`D!< ! $$$! #`D?! ! !< ! ! ! X'44D`D!< ! $$! !< #`@@! ! ;XX;X@X X@`T@`,#`D%;XX@! `D;X@X! ! ;XX;X@X! @;X@X;X@X#<`;X@X! $`$`;X@X#<`'! F F?` F F?%ĉ #<` D! D<`?!< ! ĉD H !< H!< ! ?xph`@ٚx?Xp?P?8h?H`?@ Q7'`hpx'44?@@@Xx! DD?XPp DD?P8 DD?8Hh DD?H@` DD?@  Q'  H7'`hpx'44?@@@Xx! DD?XPp DD?P8 DD?8Hh DD?H@` DD?@  H'! ?xph`@SXxD?XPpD?P8D?8HhD?H@`D?@#` !< ! !< ` !< ! !< ! !< ''D'H'L'P'T'XDH?LP?! ?0?(! ?! ?((! ?((? ?! ! ! ?8! ! D! ! D?8(! ! ! D?8'8?'! DD?;X@X?;X@X0 ! D?! ! ?@! ! ?@8?@?;X@X @! ! D D?! DD?;X@X?;X@X! ! D?! ! ? ;X@X @! D?;X@X! DD?;X@X?D?;X@X! ?;X@X?;X@X0   ' 2<?! #`D?! `DD?H '䀤 3(Ё! ! D?8H! ! D?8,`@`@ ' ;X@X?P'#`! D @?%? ;X@X @?;X@X @?`P F F;X@X ;X@X?X! +`#` ĉD?`;X@X;X@X?h;X@X?p @?x! D?;X@X @?x! x FD! FD! FDD ;X@Xx @%<' DFD;X@X?!  F?h! ?p`D;X@Xp @hD?`! ?`D;X@X @`DhDĉX$ $ #`X  D$ $ ! pD?h! ?p! D;X@Xp @hDhDĉDT$ $ `T  D$ $ X  ?T  ! DX$ $ ! DT$ $ 'P'D'H'L'P'T'XX``! D$`$`X  ;X@X? @?+`! D?X  ;X@Xн @?#`!  FD% FD' FDD ;X@Xȉ @-=` FD FD;X@X` FD FD D`! Dĉ D?#` D DD;X@X?`D Dĉ D$ $ D  ?X  ! D;X@X @H$ $ D  ?X  ! D;X@X @L$ $ `D Dཡ??X  ;X@X @P$ $ ?X  ! D;X@X @T$ $ SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: som-forward?@@XS?FR5@Yk6@` =p@v@o`?)O@X@Xl.@`)@m @Lc˰>. &֕@@@V@>@N@.@F>z򚼯H?!z@ !TD-@?z򚼯H?@?F50 iterations without conv @(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07somfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o somfor.o somfor.c <J4somfor.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northingabesp21lon_centerstartcasawqtxja2a4c1c3som_seriesslogsqrtasinp_errorsprintfatantansomforsinfabscosoffsetpgenrptgenrpt_longradius2ptitlesomforintgsat_ratio -;JLN Q(U0`8f@iHlPnXp`rhupxx{~XT. .      $ ( 0 4 8 < L P p t | ( ( 0 0 8 8         ( ( ( ( 0 0 8 8( 0 04 08 @< @@. D. P HT HX \ h Pl Pp t | ( ( X X 0 0 ` `  0 0 @ @. .  h h 8 8  ,    +0*<*H pL pT DX Dd)l 0p 0t p)    (. . )' @ @& x x @ D% H  H$ ( , @0 @@ D HT X ` l Pp Px |  P   X X    ` ` h h h h      d h       d h p pt px |  x x           $ ( < 0@ 0L P l p  h h     8 8 h h     h  h  $ ( , L ( P ( d' t&    h  h    h  h   %  $ ( , H ( L ( d' t& |        #  H  H %  @  @ " <& X& p& . .      D H L P t x |    !    %      @  @  H  H ' 0% L P h |       #  %  (  (  H'  `  `0 P4 P@ XD X\l p t hx h   p p % x x % 8 < X \ l p |  % h        % ( ( H H'   ` ` P P  X$ X<L P T X Xh P|  P X ( @ @ h h  h 4 8 D'|  '  h'   '4s H%.4=?L$  X`  h  sominv.o/ 1230061601 7356 20 100664 11756 ` ELF+4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|''?DH?LP?\`?dh?lp?tx?|?!< !< !< !< ! ĉ D!<  ?!< ! !< DT "! #`D?! ! !< ! ! ! X'<<D`D!<  ! #`D?! ! !< ! ! ! X'<<D`D!< %@! ! ;XX;X@XX@T@,#`DD;X@X! `D`;X@X! ! ;XX;X@X;X@X;X@X#<`;X@X! $`$`;X@X#<`'! F F?` F F?%ĉ #<` D! D<`?!< ! ĉD H !< !< H!< ! ?xph@?`x?X?@p?Ph?H Q7'hpx'<<?@@@`! DD?`Xx DD?X@ DD?@Pp DD?PHh DD?H  Q'  H7'hpx'<<?@@e@`! DD?`Xx DD?X@ DD?@Pp DD?PHh DD?H  H'! ?xph@7`D?`XxD?X@D?@PpD?PHhD?H#` !< ! !< ` !< ! !< ! !< 'P'D'H'L'P'T'XDH?LP??H! ?H! ?! ! D ?! ?خ?;X@X?ȉ @?! ! D?8;X@X8 @?0! !  FD! FD! FDD ;X@X0 @#<`!  ƍ H%ĽD? ! ?(! D;X@X( @ ?! ?! D;X@X @?`?! ?;X@X @?! ?! D;X@X @D D荧?! ?Љ?;X@X؁ 2u2 @ $? ;X@X?! ! D! Ɖ ƉD;X@X! ? ! ! D?! ?! D;X@X @ D;X@X?;X@X?! ! č! D? D?;X@X;X@X! ! D?;X@X? @?x%! ĉĽ?;X@X @! D?! D?! DDxʍD#`D;X@Xؽ @?;X@XЉ ȕx`DDĉ;X@X?p! ?hp! ! ?h;X@X! ! ?`;X@X! ! ?`p! ! #``č DhD?p! D?P! ;X@X! ?``! Ƒ DxDD;X@X ;X@X?X#`;X@X! (;X@X! ?p;X@X @?8! ?p;X@X @8! ! ``D ;X@X?XP! D;X@XT$ $ XX$ $ H'D'H'L'P'T'XX``! D$`$`X  ;X@X? @?+`! D?X  ;X@XȽ @?#`! 艡 FD% FD' FDD ;X@X @-=`艡 FD FD;X@X`艡 FD FD D`! Dĉ D?#` D DD;X@X?`D Dĉ D$ $ D  ?X  ! D;X@X @H$ $ D  ?X  ! D;X@X @L$ $ `D Dؽ??X  ;X@X @P$ $ ?X  ! D;X@X @T$ $ ! ?SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse?@@XS?FR5@Yk6@` =p@v@o`@X@Xl.@`)@m @Lc˰>. &֕@@@V@>@N@.@F@@ !TD->z򚼯Hz򚼯H?F@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07sominv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o sominv.o sominv.c <J4sominv.cBbss.bssDdata.dataDrodata.rodatafalse_eastingfalse_northingabeslon_centerp21casawqtuxja2a4c1c3som_seriessadjust_lonasintanatanexpp_errorsqrtsominvsinfabscosoffsetpgenrptgenrpt_longradius2ptitlesominvint -;JLN Q(\0`8c@fHhPjXl`nhqptxwz}hpP           $ ( H (L (T X ` 0d 0         0 0 ( ( 0 0 8 8  ( ( @ @    H H  $ , 00 04 P8 P< 0@ 0D XH Xh p (t (x | +    *)) ` `( ( ( `(      '4(D&L 8P 8X%` hd hx 8| <$ @ @   8 8  @    H H p p H   P P x x  4 X8 X@ `D `L hP hT X    4 L d  x x x x0 xH xl p    p p   x x       ( , 0 4 < @          h h $  0$ 0( @, @@&T X \ X` Xp Ht H P P"     h h p p x x $  x $ x 0 4 @$ \ ` h l p $     $     % @ D H! `$ l p t x  h  h "           $   ( 4 8 < @ L x P x p& |%     $       8  8  @  @ ( , P 0 P L ` P ` `" |&   `           &  $ 8 < L& T X l p    x  x    0  0  @  @ %        ,"@L @P @X%` d & 8 8$     @ D ( ($  $ 0 0 @ @&    X X  H$ H0 P4 PL"\ ` d h Px H"  H P 0 8 8 h h " h  D xH xT&  &  h&   ,&H L 4j `%+4+C$ OW _(  sterfor.o/ 1230061602 7356 20 100664 3572 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ;X@X?;X@X;X@X?'D%؉D @D?#`D;X@X!   @  g4'! ``D ?! ?#`DؽD?;X@X @DT$ $ ! `DD؍DȉDĉDDX$ $ 'STEREOGRAPHICPoint projects into infinityster-for?=|׽@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07sterfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o sterfor.o sterfor.c <K4sterfor.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sinp_errorfabscosadjust_lonsterforoffsetporigincenlonmerradiusptitletsincossterforint 8.6AL[ i(q0y}hH           ( ( 0 0       $ 4   ( ( 0 0  $, 0 D H L` d h l         0 4 ( ,4j 889%0+04CX$ O|WX _   sterinv.o/ 1230061602 7356 20 100664 4356 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?#<`%<'<)= !< ;X@X @`;X@X;X@X;X@X  ;XX;X@X'H'D'H'L'P'T'XDH?LP?! ?! ?荢 H DD;X@X?! ! D ;X@X D?ؔЖ;X@X%T$ $ ;X@X)  ! X$ $ ''DЍD! DĉD;X@XX$ $ #`;X@X! ! D?;X@X   4``! ?艠;XX;X@X@;X@XT$ $ V'?;XX;X@X;X@XT$ $ A'??X  ;X@X @?;X@X  ;X@X  '! ?ЍD! DD;XX;X@X@;X@XT$ $ 'STEREOGRAPHIC@=|׽@ !TD-?@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07sterinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o sterinv.o sterinv.c <K4sterinv.cBbss.bssDdata.dataDrodata.rodatar_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sinatan2adjust_lonasinfabsatansqrtsterinvoffsetporigincenlonmerradiusptitletsincossterinvint 8(.6AL[ i(q0y}hH           ( ( 0 0       $ 4         $ ( @H L ` d  ( ( 0 0           $ ( < @ `t   ( ,(0 4 PX \ x |  0 04j 8(%+4KC$ OW _   stplnfor.o/ 1230061602 7356 20 100664 7380 ` ELF4(.shstrtab.text.data.rodata1.data1.bss.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P?'%D@$'D +H 'D,#`' ' 'D,#`' '?$`DH@`@ 'H  L`@'P`@'  @ , ', , $, $@  @!   @  @@ $`DH@`@ '! @D@ H  ' S'`@?! ;X@X D?! E?;X@X;XX@@% D? O';X@X;XX@@ D? ='??;XX;XX;XX#\#`#d#h#l#p#t#x@ j;X@X;XX@@% D?  ';X@X;XX@@ D? ';X@X;XX@@ D? ';X@X;XX@@ D? '??;XX;XX;XX#\#`#d#h#l#p#t#x#|#@@;X@X;XX@@% D? ';X@X;XX@@ D? '??;XX;XX;XX#\#`#d#h#l#p@t! o?;X@X;XX@@% D? [';X@X;XX@@ D? I';X@X;XX@@ D? 7'?? '! ? ? ? ?;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#'㿀'D'H'L'P'T'XDH?LP?! `TX;XX;X@X B?`TX;XX;X@X -*`TX;XX;X@X `TX;XX;X@X ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldrrIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-forstate-initSTATE PLANEZone: Datum: NAD??FR5@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07stplnfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o stplnfor.o stplnfor.c <L4stplnfor.cBbss.bssDdata.dataDrodata.rodatainzoneNAD27NAD83idomerforpolyforlamccfortmforstplnforomerforintpolyforintlamccforinttmforintpakczpakszsqrtgenrpt_longptitlefclosefreadfseekfopenp_errorsprintfstplnforint 4 /6<BEMU^dmx, 0 D       $ 0!8 < @ h (l (p , ,     (0L 0P 0\!d Dh Dl  P P h h    (<D H t  8LT X     $, 0   0@H L      DT\ `          $ x  4s  X 44W w',4 =LL$  Xp`d0 h  stplninv.o/ 1230061603 7356 20 100664 7420 ` ELF4(.shstrtab.text.data.rodata1.data1.bss.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P?'%D@$'D +H 'D,#`' ' 'D,#`' '?#`DH@`@ 'H  L`@'P`@'  @ , ', , $, $@@  @!   @  @@ #`DH@`@ '! @D@ H  ' S'`@?! ;X@X D?! E?;X@X;XX@@% D? O';X@X;XX@@ D? ='??;XX;XX;XX#\#`#d#h#l#p#t#x@ j;X@X;XX@@% D?  ';X@X;XX@@ D? ';X@X;XX@@ D? ';X@X;XX@@ D? '??;XX;XX;XX#\#`#d#h#l#p#t#x#|#@@;X@X;XX@@% D? ';X@X;XX@@ D? '??;XX;XX;XX#\#`#d#h#l#p@t! o?;X@X;XX@@% D? [';X@X;XX@@ D? I';X@X;XX@@ D? 7'?? '! ? ? ? ?;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#'㿀'D'H'L'P'T'XDH?LP?! `TX;XX;X@X B?`TX;XX;X@X -*`TX;XX;X@X `TX;XX;X@X ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldrrIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-invstate-initSTATE PLANEZone: Datum: NAD??FR5@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07stplninv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o stplninv.o stplninv.c <L4stplninv.cBbss.bssDdata.dataDrodata.rodatainzonenad27nad83idomerinvpolyinvlamccinvtminvstplninvomerinvintpolyinvintlamccinvinttminvintpakczpakszsqrtgenrpt_longptitlefclosefreadftellfseekfopenp_errorsprintfstplninvint 4 /6<BEMU^dmx, 0 D       $ 0"8 < @!h (l (p  , ,   !   08T 0X 0d"l Dp Dt! P P h h     0DL P |  @T\ `     ,4 8    8HP T      L\d h          ,   (4s  ` 4<W w' ,4(=LT$  Xx`p@ h  tmfor.o/ 1230061603 7356 20 100664 6804 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'xDH?LP?TX?\`?dh?lp?tx?%<#<`!< !< +=`!< !< `?/ D-=;X@X#<`;X@X'<;X@X)= ;X@X!< ?` `;XX;XX;XX#\#`#d#h@ @!< Ɖ!< ! !< ! !< #`@@! ! ;XX;X@X! `;X@X! ;X@X! ;X@X! ! ;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X! %Di?;X@X @?;X@X! D;X@X!   @  ]'! ! D! D?x#`Dĉ ;X@Xx @T$ $ ?;X@X @?p` D;X@Xp ;X@X! ?)?! ! D! ĉ DX$ $ 'D?ȉ D?) Љ DD?;X@X? @?#`! ؉ DD?! ?h;X@Xh ? ?h! ! ! ! ;XX;XX;XX#\#`#d#h@h @?% VȥD`?P! P ?X?>Z! P #`! DĽ X?`?>Z! X DD 'DĉDDDDD! DT$ $ ! D! ! P `! X DDXX Z! DD! P !  D`Z! X DD ! DĉDDDDP DDDD! DX$ $ 'TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinitytm-for?>h=|׽?@@4@@2@R@M@8@"@@>@N@@t@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07tmfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o tmfor.o tmfor.c <I4tmfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espindtansqrtcosacoslogp_errorfabssintsincosadjust_lontmforoffsetporigincenlonmergenrptradius2ptitlemlfne3fne2fne1fne0fntmforint x,4<IT _(n0|8@HPX`hp             ( (  0 0  $ ( 4 88 8@,H @L @P 8X+` Hd Hh 8p*x P| P 8) X X  @ H P ( ` ` 8  h h 8   $ ( , p0 p< @ D pH pL P T'\ ` d h x&  %  $  # 0 0 ( ("H L X t| p p       @ @    ($ (, 0 < @ X         P hT hp   8 8    @ @ H H P P X X (4 8 L X 0\ 0 8 8 @ @ H H P P h X X 0 0  ` `, (0 (4 `8 `D @L hP hl pp p| x x   X   h   ( (4j  xg (% + 4 CC $ O (W 0 _|  tminv.o/ 1230061603 7356 20 100664 7668 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text@'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'xDH?LP?TX?\`?dh?lp?tx?%<#<`!< !< +=`!< !< `?- D/=;X@X#<`;X@X'<;X@X)= ;X@X!< ?` `;XX;XX;XX#\#`#d#h@ @!< Ɖ!< !  !$ #`@@! ! ;XX;X@X! `;X@X! ;X@X! ;X@X! ! ;XX;X@X'㾈'D'H'L'P'T'XDH?LP? 'L! e#`%D ;X@X?h' ! D?X! `D ĉD?P;X@X?` @X DD ;X@X?;X@XX$ $ P! X  $ $ X! F` F ! T$ $ X'X`;XX;X@X! D;X@XT$ $ F'! ?! ?! ! čD! ??'?8! ?@! D;X@X@ @8D?(! ?0%D;X@X0 @(?! ? ! D;X@X @D! ؑ?ЉH?;X@X!  L@  @  _'`';X@X! /D ؔ;X@X;X@X?+` DD? D? @? D?'#` DD?! ?;X@X ?`č D?! D??x Z?p D X - #`?)  JD! DD? D`! D! ! !  DD! DD?!  DD! D Jĉ Dĉ Dĉ DX$ $ ! ! !  FDZ! `F!  DD  D`! DD DDDĉD DĉD;X@XT$ $ ! D?;X@X'HH艧 DX$ $ ! T$ $ 'TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSE?>h?@@@=|׽@ !TD-@8@@@$@"@>@N@V@r@F@o@4@<@ @(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07tminv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o tminv.o tminv.c <I4tminv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espindsigntantsincosp_errorfabssinatan2adjust_lonasinzsqrtcosexptminvoffsetporigincenlonmergenrptradius2ptitlemlfne3fne2fne1fne0fntminvint t,4<IT _(n0|8@HPX`hp !&+           ( (  0 0  $ ( 4 88 8@.H @L @P 8X-` Hd Hh 8p,x P| P 8+ X X  @ H P * ` ` 8  h h 8   ( p, p0 4 8)@ D H L \(d h t'|  &  % 0 0 ( ($4 p8 pL P T X h"t x       !    D H p t    0 0 ( ( ` `    4 H8 HD H Tp Pt P ( ( X X 0 0 @ @ 8 8D @H @Lt| @ @   h h   8 8  $ 0 D H 8d h    H H P P X X ` ` ( , h  h h p  p( x, x0 4 D H \ ` p t     0 0     P   X  h  $ 0 H h  @  @         4j   t g % + 4 3C $ O 4W, _,  utmfor.o/ 1230061603 7356 20 100664 7052 ` ELF4( .shstrtab.text.data1.bss.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\'\DH?LP?TX?@\ @\ <  @  '!< !< !< %!< @\* * $ '̍! D!< ! !< \ ! ??!< ! #`?- D+=`;X@X%<`;X@X'<`;X@X)= `;X@X!< `? ! ;XX;XX;XX#\#`#d#h@ @!< `Ɖ!< `! !< #`@@\@`$! ! ;XX;X@X! `0;X@X! ;X@X''D'H'L'P'T'XDH?LP?! ;X@X?ؖ;X@X! %Di?;X@X @?;X@X! D;X@X!   @  ]'! ! D! D?x#`Dĉ ;X@Xx @T$ $ ?;X@X @?p` D;X@Xp ;X@X! ?)?! ! D! ĉ DX$ $ 'D?ȉ D?) Љ DD?;X@X? @?#`! ؉ DD?! ?h;X@Xh ? ?h! ! ! ! ;XX;XX;XX#\#`#d#h@h @?% VȥD`?P! P ?X?>Z! P #`! DĽ X?`?>Z! X DD 'DĉDDDDD! DT$ $ ! D! ! P `! X DDXX Z! DD! P !  D`Z! X DD ! DĉDDDDP DDDD! DX$ $ 'Illegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityutm-for?FR5AAc?>h=|׽?@@4@@2@R@M@8@"@@>@N@@t@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07utmfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o utmfor.o utmfor.c <J4utmfor.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espindtansqrtcosacoslogfabssintsincosadjust_lonutmforcenlonmergenrptradius2genrpt_longptitlemlfne3fne2fne1fne0fnp_errorlabsutmforint x-5=JU `(n0}8@HPX`hp  #X,l,  +          ,        ( (( , 8 < H 0L 0P T X \ h l x 8| 8* @ @ 8) H H 8( P P 8' X X  @ H P   &0 `4 `8 8< H hL hP 8T (X (l p $t px p|  %$    #  "  !@ D Plt px p|   0 0 8 8 t t+   @ @$ ( 4 8 P|          H hL hh|   8 8    @ @ H H P P X X&, 0 D P HT H| P P X X ` ` h h h p p ( (   ` `$ @( @, x0 x< XD H d h t x    p   h   0 04j  Tx X% + 4 C p$ O -W  _  utminv.o/ 1230061604 7356 20 100664 8028 ` ELFP4( .shstrtab.text.data1.bss.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textP'D'H'L'P'T'X\'\DH?LP?TX?@\ @\ <  @  '!< !< !< %!< @\* * $ '̍! D!< ! !< \ ! ??!< ! #`?+` D-=;X@X%<;X@X'<;X@X)= ;X@X!< `? ! ;XX;XX;XX#\#`#d#h@ @!< `Ɖ!< !  !$ !$ #`@@\@`$! ! ;XX;X@X! `0;X@X! ;X@X'㾈'D'H'L'P'T'XDH?LP? 'L! e#`%D ;X@X?h' ! D?X! `D ĉD?P;X@X?` @X DD ;X@X?;X@XX$ $ P! X  $ $ X! F` F ! T$ $ X'X`;XX;X@X! D;X@XT$ $ F'! ?! ?! ! čD! ??'?8! ?@! D;X@X@ @8D?(! ?0%D;X@X0 @(?! ? ! D;X@X @D! ؑ?ЉH?;X@X!  L@  @  _'`';X@X! /D ؔ;X@X;X@X?+` DD? D? @? D?'#` DD?! ?;X@X ?`č D?! D??x Z?p D X - #`?)  JD! DD? D`! D! ! !  DD! DD?!  DD! D Jĉ Dĉ Dĉ DX$ $ ! ! !  FDZ! `F!  DD  D`! DD DDDĉD DĉD;X@XT$ $ ! D?;X@X'HH艧 DX$ $ ! T$ $ 'Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE?FR5AAc?>h?@@@=|׽@ !TD-@8@@@$@"@>@N@V@r@F@o@4@<@ @(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07utminv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o utminv.o utminv.c <J4utminv.cBbss.bssDdata.dataDrodata.rodatar_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espindsigntantsincosfabssinatan2adjust_lonasinzsqrtcosexputminvcenlonmergenrptradius2genrpt_longptitlemlfne3fne2fne1fne0fnp_errorlabsutminvint t-5=JU `(n0}8@HPX`hp "*/X.l.  -          .        ( (( , 8 < H 0L 0P T X \ h l x 8| 8, @ @ 8+ H H 8* P P 8) X X  @ H P   (0 `4 `8 8< H hL hP 8T (X (p pt p p p  '&    %  $  #T pX pl p t x !   0 0      0 4 d h      ( (  0 0 `  `$ ( 4 8 T HX Hd 8h 8t P P @ @ X X H H @ @(0 P4 Pd th tl- X X 0 0 h h   $ 8( 8@ D Pd h 8   0 4 ` ` h h p p x x @ D( h, 0 < @ H L P T d h |        H H 8 8    h   , p < h @ D P `   X  X  0  4    4j    Lt P% + 4 C$ O9W _ h  vandgfor.o/ 1230061604 7356 20 100664 4908 ` ELF$4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X''D'H'L'P'T'XDH?LP?! ;X@X?;X@X#`  ! ! DDT$ $ ! X$ $ ') ;X@X' D;X@X?;X@X`` ;X@X  %D;X@X``  B! T$ $ ! ! ?! ! D?! D;X@X @DX$ $ ! ?! ! D?! D;X@X! DDX$ $ '   Ɖĉ;X@X D?Љ D?ؔ;X@XH! D ? H? D D? D?!   D?pЍʽ F?xȉ F FHʉD;X@Xx@p DȉD ?! )?! HT$ $ #`%D ;X@X! ?h?! $! ?``D?! hh Z! Dh Z;X@X @DX$ $ "! ?``D?! hh Z! Dh Z;X@X @X$ $ 'VAN DER GRINTEN=|׽@ !TD-@??@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07vandgfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o vandgfor.o vandgfor.c <L4vandgfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsqrttsincostanasinzfabsadjust_lonvandgforoffsetpcenlonradiusptitlevandgforint  8/1<JY^fjpu0p t |          P T `t|              $ @H L P T dl p               $ ( , 0 @ D P      ( (   (( , 0 4 p           0 4 < @ D H T 0X 0p t         0 0   4j H 8%0+04C \$ O W 4 _ p  vandginv.o/ 1230061604 7356 20 100664 4300 ` ELF4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X''D'H'L'P'T'XDH?LP?! ?! ?! ! D? ??؍F HD?;X@X!%ЉJD?#` D L DD?`) PD H LDJD? L `D N N ʉ ʍ ! D N ʉ ʍ! ĉD?N! ĉ ʉĉ ?% ;X@X` D? Dĉ ?;X@X ! ?)?;X@X% ??!  %?#`D;X@X @č`DX$ $  %?! D;X@X @ĉď% DX$ $ ;X@X!  ! T$ $ ,! ?! D?x!  D؉ D#`DDJD;X@Xx@! D`D;X@XT$ $ VAN DER GRINTEN@ !TD-?@@"@;@=|׽@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07vandginv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o vandginv.o vandginv.c <L4vandginv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingadjust_loncosacossqrtfabsvandginvoffsetpcenlonradiusptitlevandginvint  H/1<JYdhmrwHp t |          P T d h t x |        8 T X p t  ( ( (  (   0 0@H (L (` 0d 0   ( ,  ( ,    (  , 4 (8 ,T px 8| 8     @ @        < 4j ` H%X+X4C$ OW Tp _   wivfor.o/ 1230061604 7356 20 100664 3236 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< !< !<  @;X@X;X@X;XX;X@X'@'D'H'L'P'T'XDH?LP?! ;X@X??;X@X! D?Ȯ?;X@X@ȉĿ%?! ?;X@X@ ?؉F?;X@X!   @ Ӯ! ?#`! DཡD?;X@X @! DT$ $ `! D?;X@X @! DX$ $ 'WAGNER IVIteration failed to convergewagneriv-forward@DKL?=|׽@?랃%? 4\@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07wivfor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o wivfor.o wivfor.c <J4wivfor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingp_errorfabscossinadjust_lonwivforoffsetpcenlonradiusptitlewivforint 0-/:HW_dhlw~p t |        P T `x        8 < @ T X d h l p     ( (  4j  =0% + 4CD$ OhWp _  wivinv.o/ 1230061605 7356 20 100664 2876 ` ELF 04( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< !< !<  @;X@X;X@X;XX;X@X'`'D'H'L'P'T'XDH?LP?! ?! ?#`! D ;X@X?! ??`! D?;X@X؉ @Љ ȉD;X@XT$ $ ! D?;X@X@! ;X@XX$ $ 'WAGNER IV? 4\?랃%@@DKL@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07wivinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o wivinv.o wivinv.c <J4wivinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsincosadjust_lonasinwivinvoffsetpcenlonradiusptitlewivinvint  -/:HW[_joPv~p t |        P T d h t x |           ( , 84j h   %8+84C\$ OW ` _  wviifor.o/ 1230061605 7356 20 100664 3012 ` ELF 4( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'X'D'H'L'P'T'XDH?LP?! ;X@X?! Ĕؖ;X@X;X@X! D?#` D;X@X?! `Љ DD ;X@X?#`! DD @؍D! DT$ $ `! DȉD @! DX$ $ 'WAGNER VII@?}A5T?@@V|G?LPr@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07wviifor.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o wviifor.o wviifor.c <K4wviifor.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingsqrtsintsincosadjust_lonwviiforoffsetpcenlonradiusptitlewviiforint 0.0;IX]aitp|p t |          P T `l p                 $ 8 < (@ (T X 4j ( ( 80%h+h4C$ OWX` _  wviiinv.o/ 1230061605 7356 20 100664 3132 ` ELF 04( .shstrtab.text.bss.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textx'D'H'L'P'T'X\`'\'`DH?LP?TX?\`?!< !< #<`!<  @;X@X;X@X` ;XX;X@X'P'D'H'L'P'T'XDH?LP?! ?! ?% ?#`?؍ H? D?؉D;X@X?! ! D ;X@X D??;X@X @`! DЉD ;X@XX$ $ ! ??;X@X @D;XX;X@X! DD;X@XT$ $ 'WAGNER VII@V|G?LPr@?}A5T@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07wviiinv.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o wviiinv.o wviiinv.c <K4wviiinv.cBbss.bssDdata.dataDrodata.rodataRlon_centerfalse_eastingfalse_northingtanatan2adjust_lonsinasinzsqrtwviiinvoffsetpcenlonradiusptitlewviiinvint (.0;IX\bmqw|p t |          P T d h t x            $8 < T h |   4j p p (%+4+C$ OW _   isinusfor.o/ 1230061606 7356 20 100664 9268 ` ELF!4(.shstrtab.text.rodata1.data.rodata.bss.data1.comment.stab.indexstr.stab.index.strtab.symtab.rela.text.rela.data㿠'D'H `D@H 'D'H'L'P'T'X\`'\'`dh'd'hlp'l'pDH?LP?TX?\`?dh?lp?! @'   ?!    ?'?!  D'     ??! D ! ) ??>Z y }?ZD'';X@X  ??>  \ `?=  ?%  N R??= Z 5 9?ZD''';X@X    ?;XX;XX;XX#\#`#d@#h!$   ?0'D'H'L'P'T'X\`'\'`d'dh'hDH?LP?TX?\`?!   `@'f?! ! ??> Z??>=   `@q'CZ?! ! D?d!"  `@I'<  ?$   `@8' h    `@('@ `'Ԁ  `@'$\$$$$ $$! $$d'+`$ $$d$(d< < $,$8$Z y }?ZD'';X@X  ??>  \ `?=  ?%  N R??= Z 5 9?ZD''';X@X    ?;XX;XX;XX#\#`#d@#h!$   ?0'D'H'L'P'T'X\`'\'`d'dh'hDH?LP?TX?\`?!   `@'f?! ! ??> Z??>=   `@s'CZ?! ! D?d!"  `@K'<  ?$   `@:' h    `@*'@ `'Ԁ  `@'$\$$$$ $$! $$d'+`$ $$d$(d< < $,$8$U@Lc˰?#x@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07for_init.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o for_init.o for_init.c <L4for_init.cBbss.bssDdata.dataDrodata.rodataisinusforisinusforinitobleqforobleqforintwviiforwviiforintwivforwivforintalconforalconforintimolwforimolwforintmolwformolwforintgoodforgoodforintrobforrobforinthamforhamforintsomforsomforintomerforomerforintvandgforvandgforintmillformillforintequiforequiforintsinforsinforintgvnspforgvnspforintorthfororthforintgnomforgnomforintazimforazimforintlamazforlamazforintsterforsterforinttmfortmforinteqconforeqconforintpolyforpolyforintpsforpsforintmerformerforintlamccforlamccforintalberforalberforintstplnforstplnforintutmforutmforintcalc_utm_zonebceaforbceaforintceaforceaforintpakszsphdzfor_init  (/9GP\dov +3>FQXbkw%/8DMYbnu,d h J  XJxJI    (I0 4 < @ HG G I   ( , xI     F(E ,E tJI     I    $ ` d pD    CB B ,Ad@ h@ I    I     hIp t |  I    x?> > I     4I <  @ H  L  I        I        = < < I         hI p  t |    ; : : TI \  `  h  l  I        L9 h8 l8 I        I     76 6 I    `Ih l t x I    (I0 4 < @   5,4 04 xI    I    |32 2 I    <ID H P T 10 0 I$ ( 0 4 I    /$. (. `Ih l t x I    L-h, l, I     I    $ +* * I    PIX \ d h )( ( 0I8 < D H I    8'T& X& I    %,$ 0$ hIp t |  I    T#p" t" I    (!D H I      hIp t |    I     \Id h p t I     0I 8  < D  H  I        I! ! !  ! !! ! "h "l "I" " " " #I# #  # # $ $( $, $hI$p $t $| $ $% % %<I%D %H %P %T %% % &&  &$ &\I&d &h &p &t && & '$'@ 'D '' ' 'I' ' ( ( (l ( ( (I( ( ( ( )D )` )d )I) ) ) ) *I* *  * * *I* * * * +4 +P +T +I+ + + + ,L,h ,l 4c ,-((-P-P$-P-.</|$ H/P2h X7(  inv_init.o/ 1230061607 7356 20 100664 19660 ` ELFJ4( .shstrtab.text.rodata.bss.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\'\`'`'$$' Da!L``!   ``  ?'PPL@h-b$L``!   ``  ?'P 'PPL@hPL@hL 0 4?xL 8 U@Lc˰?#x@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07inv_init.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o inv_init.o inv_init.c <L4inv_init.cBbss.bssDdata.dataDrodata.rodataisinusinvisinusinvinitobleqinvobleqinvintwviiinvwviiinvintwivinvwivinvintalconinvalconinvintimolwinvimolwinvintmolwinvmolwinvintgoodinvgoodinvintrobinvrobinvinthaminvhaminvintsominvsominvintomerinvomerinvintvandginvvandginvintmillinvmillinvintequiinvequiinvintsininvsininvintgvnspinvgvnspinvintorthinvorthinvintgnominvgnominvintaziminvaziminvintlamazinvlamazinvintsterinvsterinvinttminvtminvinteqconinveqconinvintpolyinvpolyinvintpsinvpsinvintmerinvmerinvintlamccinvlamccinvintalberinvalberinvintstplninvstplninvintutminvutminvintcalc_utm_zonebceainvbceainvintceainvceainvintpakszsphdzinv_init  (/9GP\dov +3>FQXbkw%/8DMYbnu,Td h J  XJxJI    (I0 4 < @ HG G I   ( , xI     F(E ,E tJI     I    $ ` d pD    CB B ,Ad@ h@ I    I     hIp t |  I    x?> > I     4I <  @ H  L  I        I        = < < I         hI p  t |    ; : : TI \  `  h  l  I        L9 h8 l8 I        I     76 6 I    `Ih l t x I    (I0 4 < @   5,4 04 xI    I    |32 2 I    <ID H P T 10 0 I$ ( 0 4 I    /$. (. `Ih l t x I    L-h, l, I     I    $ +* * I    PIX \ d h )( ( 0I8 < D H I    8'T& X& I    %,$ 0$ hIp t |  I    T#p" t" I    (!D H I      hIp t |    I     \Id h p t I     0I 8  < D  H  I        I! ! !  ! !! ! "h "l "I" " " " #I# #  # # ## $ $<I$D $H $P $T $$ $ %I% % %$ %( %% % %% % &0I&8 &< &D &H && & &' ' 'l' ' 'I' ' ' ' (@ (\ (` (I( ( ( ( ) )4 )8 )pI)x )| ) ) )I) ) ) ) *XI*` *d *l *p + +$ +( +lI+t +x + + , ,< ,@ 4c ,h-(-(-($-(-.</T$ H/xP2@ X7  cproj.o/ 1230061607 7356 20 100664 12132 ` ELF-X4( .shstrtab.text.rodata.data1.bss.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿘'D'H'L'PDH?;X@XL$ $ ;X@XP$ $ 㿐'D'HDH?;X@X!   ?'?;X@X! ?%$%$p'D'H'L'P'T'XDH?LP?TX?艡D??! D;X@XЉ ?%$%$`'D'H'L'P'T'XDH?LP?TX?!  蕢 F?! H?JĽ?! ?ЍʉJ;X@XЉ @ȉ D?! D?0'D'H'L'P'TDH?LP?! D;X@X! ?! T? H?  D';X@XD?#`N?! L H?`č Ƚ? ?ΉN;X@X @D D?F?;X@X!  ?  ' @  T$ ! ?H'D'H'L'P'TDH?LP?T$ #`D?! `D?;X@X! D?غ;X@X? @?! ! D??! ȉH;XX;X@X @;X@X% Dؑ?ȉH?;X@X!  ?`` @  T$ ?('D'H'L'P'T'X\`'\'`dh'd'hl'lDH?LP?TX?\`?dh??Ȯ??! D;X@X @D??! D;X@X @??! D;X@X @D艡ȑ?H?;X@X!  l$ ? @ 0 l$ ! ?'D'H'L'P'T'X\`'\'`dh'd'hlp'l'ptx't'x|'|'DH?LP?TX?\`?dh?lp?tx?$ $   't  ;X@X?  ;X@X! ?h?' F F;X@Xh @|$ $   ) D;X@X?   H @?X?`#` D;X@X` @XD?H?P  %D;X@XP @H??8 F?@   F;X@X@ @8?0` F?H   F;X@XH @0D?  F?(   F;X@X( @ ? J|  RD PDȑ J RD D? J H RčD|   H? L|   V ʉč DL?D ?x  F$ $ ;X@X!  ! ?t  7't @ ! ?p'D'HDH? !  -;X@X?! 'DD'Х... . . 'Љ?! DD'Х/ / / 'Љ?'Ѝ! D'Ѝ! DDJ?/`<  -??%$%$p'D'HDH? ! D?!  -;X@X?艠@''Љ#`D?艠F''Љ`D?'Ѝ! D'Ѝ! DDJ?/`<  -??%$%$p'D'H'L'P'T'XDH?LP?TX?D?#`D?! ȉH;XX;X@X?! ` H艡ĉ H;X@X؉ ?%$%$㿐'D'HDH? ? @x'D'HDH?;X@X'  ;X@X@'耤 ?;X@X'葠! D D?) D ;X@X@''艠#`   DĉD''葠  D Dy?  D L ;X@X@''艠``   D HĉD''葠  D``D DH?  D%D ;X@X@''荠``  DDĉD''葠  DD D??;X@X'葠  D D؉?``2?%$%$㿐'D'HDH?  D   DDDD D?%$%$㿐'D'HDH? D  D DD DD D?%$%$㿐'D'HDH? D F  DDD?%$%$㿐'D'HDH? DD  ĉ D?%$%$x'D'HDH?! F? ?;XX;X@X! ?;XX;X@X؉ @;X@X! ?%$%$@'D'H'L'P'T'X\`'\'`dh'd'hDH?LP?TX?\`?dh?н F??! D;X@Xȉ @??! D;X@X @D??! D;X@X @?%$%$㿈'D'HDH? D  DD''?>z򚼯H?@=|׽@ !TD-@@@@È?PbM@YA.@@@Lc˰@NAC"?@0?????@A@@fConvergence errorphi1z-convConvergence errorphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07cproj.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o cproj.o cproj.c <I4cproj.cBbss.bssDdata.dataDrodata.rodatacalc_utm_zonemlfne4fne3fne2fne1fne0fnadjust_lonsigntsfnzpakr2dmpakcztanphi4zphi3zpowatanphi2zp_errorphi1zlogqsfnzsqrtmsfnzasinfabsasinzcossintsincos ,h:HL?D`IlN|SpXcxLhn@4v t|p4@h8#T"     4 8 X \ |    , 0 <!T X $      T \ `    ( (  $ 0( 0, @H L l# 0 0         L P Th l 0 4 @#h 8l 8x# @ @#   , @0 @4H HL H `# |        # $ 8 ( 8 4# d @ h @ t#   "  8 "  @ <" \       8  @ D X P \ P | |  |   8  8  P  P   X  X  `  ` d h h h p `  p  p  x  x` d p Pt P     p p x x     0 0 4 P P  0 00 \p 0t 4x |  0 4      0 4  $ 0( 4, 0 L 0P 4T X l    0 4   0 4     0 4  $ ( 8 X \ t 0x 4|     0 4     0 4          H H  $ ( 0 4 8 < D H       < @ D H      # 8 8 #H @L @X#   @ @  4j  G%G+G4Ch$ OWlP _  report.o/ 1230061607 7356 20 100664 11772 ` ELF+4(.shstrtab.text.bss.rodata1.data1.rodata.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿠'D'H!  H@D!  #`@@!$ `H@D@ 㿘'D'H'L'PD  !$ !$ 7!$ @L l  !$  @L" !$ @L  !$  @ P  !$  @L!$ !$ H  !$ !$ 7!$ @P ,  !$  @P" !$ @P  !$  @   !$  @P!$ !$ @㿠! @! @㿠'D!  @D!  #`@@!$ `@D@ 㿘'D'HDH?!   ;XX@\!  #`@@!$ `;X@X@ 㿐'D'H'L'PDH?LP?! ! ;XX@\ 4;XX@\!  #`@@!$ `;X@X `8;X@X@ 㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿐'D'H'L'PDH?LP?! #`! D@;XX@\`, D;XX@\!  #`@@!$ `%D;X@X `0D;X@X@ 㿘'D'HDH?!   ! D;XX@\!  #`@@%$`! D;X@X@㿐'D'H'L'PDH?LP?! ! ;XX@\ $;XX@\!  #`@@!$ `;X@X `(;X@X@ 㿘'D'H'LDH?!   L;X@X!  #`@@!$ `L;XX@\@ 㿠'D'H!  H@D!  #`@@!$ `H@D@ 㿠!  @!  #`@@!$ @`@ [%s] %s a[%s] %s %s PROJECTION PARAMETERS: a %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters a Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters a Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees a Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees a Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees a Latitude of Center: %lf degrees Latitude of Origin: %lf degrees a Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees a Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees a 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees a Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters a False Easting: %lf meters False Northing: %lf meters %s %lf a %s %lf %s %ld a %s %ld a Output file name not specifiedreport-fileOutput file name not specifiedreport-file@Lc˰@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07report.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o report.o report.c <J4report.cBbss.bssDdata.dataDrodata.rodataterminal_efile_efptr_eerr_fileterminal_pfile_pparm_filefptr_ppblankgenrpt_longgenrptoffsetpstparl1stanparltrue_scaleorigincenlatcenlonmercenlonradius2radiusptitleclose_filestrcpystrleninitfclosefprintffopenprintfp_error -8?F O Zakr|y h    8hHL$   0 4 <&D H X \ ` d h%p t $#       !$ ( , 0 4 T X \!p t x | '                   !$ ( , 0 4 T  X  \!p t x ,| ,'             #   #P  T  d h l&t x    < <%  $#       ` ` &( , < @ D H L%T X h$p#t       &&  $ ( , 0 4%< @ P$X h$p#t         &       %  ( , 8$@#D         &      %    $# P  T  d Ph Pp t &     | |%    $#    $  4 8 @ D T&\ ` p t x | %    $#           $& ,  0  @  D  H , L , P% X  \  h l x$ #        `  `   &  ,& 4  8  H  L  P  T  X% `  d  p t $    $ #             & $  (  8  <  @ < D < H% P  T  ` d p$ x# |       h  h & &     ,  0  4  8  <% D  H  X$ `  p$ x# |          &             %     4$ <# @  t  x      &          $  $ %     $ #         4$ 4(&0 4 D H L 8P 8T%\ ` d$l#p 4s 00>pX&.4=L8$  X\'` h  paksz.o/ 1230061608 7356 20 100664 2628 ` ELF<4( .shstrtab.text.data1.rodata.bss.data.comment.stab.indexstr.stab.index.strtab.symtab.rela.text 'D'H'LDH?L$ ! ! ?! ?;X@X! ??! ???> ډD'h  @ $\L$ ! [?'?? Z??! ???> ډD'<  @ $\L$ ! 4?'?? Z??! ??>  @ $\L$ ! ?!  D ZDZ D? ??Illegal DMS fieldpaksz-degIllegal DMS fieldpaksz-minIllegal DMS fieldpaksz-sec?A.@@@N@ @(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07paksz.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o paksz.o paksz.c <I4paksz.cBbss.bssDdata.dataDrodata.rodatap_errorfabspaksz 8,49X8 < P T ` d t      ( , h l p   ( ( @ @    0  0L 04j h^h8 %+4#C$ O?W( _t  sphdz.o/ 1230061608 7356 20 100664 3756 ` ELF 4( .shstrtab.text.data.data1.rodata.bss.comment.stab.indexstr.stab.index.strtab.symtab.rela.texth'D'H'L'P'TDH  ;X@X?H  ;X@X! ???! ?ЁA#`ȁL$ $ P$ $ T$ $ *ȁL$ $ T$ $ ``ȉ;X@X DP$ $ L$ $ T$ $ P$ $ Mȁ#`L$ $ `T$ $ ! P$ $ 7D#`L$ $ `T$ $ ! P$ $ ##`L$ $ `T$ $ ! P$ $ #`L$ $ `T$ $ ! P$ $ R@ !  @ ,@ 8 'D?- #`L$ $ #`P$ $ T$ $ ) - %L$ $ #`P$ $ T$ $ - %L$ $ #`P$ $ T$ $ 'AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕AX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕Invalid spheroid selectionINFORMATIONALReset to 0INFORMATIONAL?AXM˕AXMAXM@@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07sphdz.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o sphdz.o sphdz.c <I4sphdz.cBbss.bssDdata.dataDrodata.rodatamajorminorp_errorlabssqrtfabssphdz `(,28@EJO$H d     4 8 H           0 4 X \ l |            0 4 L P         4j 8`8F(&+4lC $ O 0UW _ x(  untfz.o/ 1230061608 7356 20 100664 2252 ` ELF4( .shstrtab.text.data.data1.rodata.bss.comment.stab.indexstr.stab.index.strtab.symtab.rela.text㿘'D'H'LH(%D ! , , #`,L$ $ L  ! D @  $M @ $ @?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07untfz.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o untfz.o untfz.c <I4untfz.cBbss.bssDdata.dataDrodata.rodatafactorsp_erroruntfz  , 4<d h      $ $ 4j  S&+4C4$ OXBW _Lx  gctp.o/ 1230061608 7356 20 100664 6996 ` ELFL4( .shstrtab.text.data.bss.data1.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.text'D'H'L'P'T'X\'\`'`d'dh'hl'lp'pt'tx'x|'|''''''$ \ d `@h$  '! ;'̡, #`$#`$#`$#`$#`$#`$'-/1  ̥.`.`$ȫ- <@ <  'Ƞ` e'̠ 'Ġ ' !$ |H :,#`L @#`X @ #`@ ''H , , $#`̥,@P``D 'Ġ 'p :,#`t @#` @ #`@ ''p , , $#`̥,@x``D ' 'H  d  @  $ E'p  d  @  $ 4'T 'X H  T  'X H T L <  d.! , #`'H  @$  @$ H T$  @'D  D?D  D?ĀH ,#`$X H , #`$L H , #`$'+`P̧- @``H , , $<  'H `X  '̦@P̥, @``<̠  '#`?@`?HL  P  `` DL , , $ '88! D?@L ! ?H! ?H?@P  ?HH L @X #`#\@#`L PX #`@#\@#` @3'H ??С, #`ؚ;XX;XX'< $ @'p ,#`$ p , #`$t p , #`$'+`x̧- @``p , , $<  'p `D  '̦@x̥, @``<̠  '#`?@`?Hx  ?0`0D ;X@X?@;X@X?H0?@x  ?Hp t @ #`#\@#`t x #`@#\@#` @'p ` l$ $ l$ $ ,`#`l ;XX;XX'< $ @`'| ' p  |  ' p | t <  d.! , #`'p  @$  @$ p |$ l  D$ $ l   D$ $ @'Insys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUTA.A@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun C 5.7 2005/01/07gctp.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o gctp.o gctp.c<H4gctp.cBbss.bssDdata.dataDrodata.rodataiterNADUTinpjindatinznoutpjoutdatoutznpdinpdoutinv_transfor_transfor_initpakr2dminv_initclose_fileuntfzp_errorinitgctpkP+06;A(FLPSY x/X^8/Xdh(nix        (  (( , 4 P8 P@ D P 8T 8X x\ x` d    ( (  4 8 | x x   P  P( , p 8t 8  ( , 0  0L     , (0 (< x@ x     P T t x    h( h( h( h($@| h( h(    P  P 0  4  @ 8 D 8     ( <  i  i   i  i   D i H i  T  X    4j   kP@# +84C$ OWl _<  br_gctp.o/ 1230061609 7356 20 100664 1328 ` ELFP4( .shstrtab.text.bss.data.rodata.comment.stab.indexstr.stab.index.strtab.symtab.rela.textp'D'H'L'P'T'X\'\`'`d'dh'hl'lp'pt'tx'x|'|'''DHLPTX\`dhlptx|#\#`#d#h#l#p#t#x#|##@#acomp: Sun C 5.7 2005/01/07br_gctp.cV=10.0;DBG_GEN=4.14.30;cd;backend;raw;Xa;R=Sun C 5.7 2005/01/07/ecs/hdfeos/gctp/src; /opt/SUNWspro/prod/bin/cc -DSUN9 -Dunix -c -o br_gctp.o br_gctp.c <K4br_gctp.cBbss.bssDdata.dataDrodata.rodatagctpgctp_ .34c $-<t$ H9Pp XD  hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibHP11.a0000644000175000017500000432527412024715435021013 0ustar amckinstryamckinstry! / 1074012727 0 0 0 15048 ` @LOKK0x P@$!P )p-.0. -+(+/*`p"h8",&(-p0%&( P*!(-X'0( .p@/`"%+x/8,@ ,)H'-0)(*8"@/-%/%$H,& `(*!#((X&P!+!.`./+(.H8*(0%8*&x+) -P)0P ;H0l<8(?,S7*c0,8- 0,h-0 K8h;("8@#'$,t+(W-7)x0( ":8"]<).lWX@(\"l,@N4t5)`T(8 !-!tOD&vt#/\</XQK P(p( ø,4(.\ -t Lp/ |@/ ,/ : h 7# [pd p\ X(( E+ qC CP l9 1A` sX  +` * L&"4#X$$}H,!Ũg-exP+(GV 07lor0 lnt0$;lnv04 lnt0Dlor0T lntX0dlnv00t lnt0zor0 znt0znv0 zntH0cor0 cnt0{cnv0 cnt0eor0 ent0{ env0 ent0,S qor0< qnt0LS qnv0\ qnt(0ls qor0x qnt0s qnv0 qnt0nor0 nnt0nnv0 nnth0oor0 ont0onv0 ont0vor0$ vnt04vnv0D vnt0Taor0` ant0panv0| antH0mor0 mnt0mnv0 mnt0 -swd0' sorx0 sit0 K see03 sit0 -(snv08' snv0H sit0 \? see0p3 sitx0aor0 ant0anv0 ant0Saor0 anth0Sanv@0 ant0eor`0 ent0 env0, entX0< ior0H int0X!inv0d! int0t"oor0" ontX0#onv00# ont0$bor0$ bnt0%bnv0% bnt 80C&mor0& mnt0G'mnv0' mnt 0$(ror00( rnt0@)rnv0L) rnt!x0\*oorp0h* ont0x+onv0+ ont"0[,sor0,snt0W-snv0-snt"0.oor0. ont0/onv0/ ont#X00ior00 int0 1inv0,1 int#0< 2oor#00H2 ont#GX2 sio0h3onv#0t3 ont$04tor04 tnt05tnv05 tnt%`06tor!0 U6 tnt07tnv0 U7 tnt&0?8mor08mnt$p0;9mnv0$9mnt&04:tor0@: tnt0P;tnv0\; tnt'@0l<aor0|< ant0=anv0= ant'0>ior#0> int$H0?inv$ 0? int(0@vor'0@ vnt0Avnv0 A vnt) 0 UBoit0 U,Cnit0< D ane0P CDlfn0\ D4fn0h D3fn0t D2fn0 D1fn0 SD0fn0 D don0 Dign0 ODsnz0 Dadm0 Dacz0Dh4z0Dh3z0Dh2z0gDh1z0 Dsnz+P0 Dsnz,h0 KDsnz,0 ,Dsos0 8 _Ebnk0 @ D E eng0 T GEept0 `Eftp0 l Etl10 x Etrl0 E rle0 Erin'h0 WEeat0 E eer0 'Eeon0 kEas20 Eaus0 cEtle0 #E lle0 U Enit0 @ E_or0 Fasz0 U $Gpdz0 Q 0Hnfz0 U <Ictp0 T HJcp_alberfor alberforintalberinv alberinvintalconfor alconforintalconinv alconinvintazimfor azimforintaziminv aziminvintbceafor bceaforintbceainv bceainvintceafor ceaforintceainv ceainvinteqconfor eqconforinteqconinv eqconinvintequifor equiforintequiinv equiinvintgnomfor gnomforintgnominv gnominvintgoodfor goodforintgoodinv goodinvintgvnspfor gvnspforintgvnspinv gvnspinvinthamfor hamforinthaminv haminvintimolwfor imolwforintimolwinv imolwinvintIsin_fwd isinusfor Isin_for_init Isin_for_free isinusforinitIsin_inv isinusinv Isin_inv_init Isin_inv_free isinusinvinitlamazfor lamazforintlamazinv lamazinvintlamccfor lamccforintlamccinv lamccinvintmerfor merforintmerinv merinvintmillfor millforintmillinv millinvintmolwfor molwforintmolwinv molwinvintobleqfor obleqforintobleqinv obleqinvintomerfor omerforintomerinv omerinvintorthfor orthforintorthinv orthinvintpolyfor polyforintpolyinv polyinvintpsforpsforintpsinvpsinvintrobfor robforintrobinv robinvintsinfor sinforintsininv sininvintsomfor somforint gsat_ratiosominv sominvintsterfor sterforintsterinv sterinvintstplnfor stplnforintstplninv stplninvinttmfortmforinttminvtminvintutmfor utmforintutminv utminvintvandgfor vandgforintvandginv vandginvintwivfor wivforintwivinv wivinvintwviifor wviiforintwviiinv wviiinvintfor_initinv_init calc_utm_zonemlfne4fne3fne2fne1fne0fn adjust_lonsigntsfnzpakr2dmpakczphi4zphi3zphi2zphi1zqsfnzmsfnzasinztsincospblank genrpt_longgenrptoffsetpstparl1stanparl true_scaleorigincenlat cenlonmercenlonradius2radiusptitle close_fileinitp_errorpakszsphdzuntfzgctpgctp_alberfor.o/ 1074012772 1032 20 100666 12472 ` 180@` hh8,(|3.hP\! G%/k?/,/-/.///0/1/2/3/4/5o`S=0HS=S=S+`0Hp&S=C4#p(S=s1p$"#S0, 0 *+`4:494>pnr1nSppS=c,%pdR1H7>7?S?s?S>PeR2`HS?s?0HPeRS>0H1H7>7?S?s?PeRS>S?s?0HPeRS>0H1H7>7?S?s?PeRS>0H1.0L0d *21N2.(&0npg2ps221NPd2,pgbD.%PfPe2+`4:0N0nphBPePgr1H1HPe"1HPePg4K=O>/05/04/03/02/01/00/0//0./0-@/0,k?/,/-o0H 0H7?A7?QS?Ss?+`4#P%RS?CPf2Pgb.%PhPg"Pf21N 1.1&n @Pf20N 1HPfK>1H,sPfBPe4K>,'0rK>O?!/0-@/0,=|׽?Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA `PX!44,X |8X!4D>(g@lP>(P@pH\\$$l 4$ 4|t Xt(  q(|! $TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4t %-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @ @ -@ @ !0@ $*@ ( @ 3 @ A @Q P( 0\@h@s@x@}@ @"@$@&A@A!@A$@A@A@A%@A'@A)@A&@A(@ ? '*)*Q O+ @ 7H6HI5@K4@M,A8@A9@A<@AF@AC@ 4Q6D7 (0(P1*;H<T=X>`P??@|B`B@DEFGHJKMNPRS(U8WHY`Zt\]^bcdefgi`iAj`jBnC0nDPsQyz${@|h}x~`\`]`^alberfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorce3rhns0lon_centerfalse_eastingfalse_northingalberforintfalse_northfalse_eastlat0lon0lat2lat1r_minr_majsin_pocos_poconestempms1ms2qs0qs1qs2alberforyxlatlonsin_phicos_phiqsthetarh1!8D(PAH|PAH|JC|C|C|C|C|C|0G@|0K@|0Dl|\h=>@X0=t@@|@0 ED8t8@|8!FD,A,YGH/0:t(@|(0xtxC||x0tC||AtYAtSAtPA(t\A8t_A`tV0A0@|0?00@|00I0 ^c @| AdDHCLCHCC@(K@@@0@AhD@AxG@@ @A 0>JYd(>PYd;ӽ<=DEFHMNRSWZ\]^cegP(;P<Խ=DEFHMNRSWZ\]^ceg>?;k =P>GYԄ@VV@2VB Bi EPFG DPUfH;kGHHPJJ;x MKMP; NMNP; NPP;x RP; SRSP; SUU;x WP; WY;kZZP\P]ӽ^P]P^;kPPbVVb1 ^PcPc; Pdd; e;hPf;hgPgi;Pj AXnyy?;x zӽ{|}~PzPz; {PP;kP|PP{|;kP|};kP~;k}~PP~># #F%%Go#H% %     a   1%      (@p 8$ H X0X h @ 0$74DLalberfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$alberfor $gntt_label $lntt_label alberforintS$21$alberforintfabsM$22p_errorsqrttsincosmsfnzqsfnzptitleradius2stanparl cenlonmeroriginoffsetpalberfor adjust_lonsincosalberinv.o/ 1074012773 1032 20 100666 14376 ` 18(@X 3.45t%tG%(k?/,/-/.///0/1/2/3/4/5o`S=0HS=S=S+`0Hp&S=C4#p(S=s1p$"#S0, 0 *+`4:494>pn1nSppS=c,%peRpdb1H7?7?S?s?S?Peb2`HS?s?0HPebS?0H1H7?7?S?s?PebS?S?s?0HPebS?0H1H7?7?S?s?PebS?0H1.0L0d *21N2.(&0npg2ps221NPd2,pgrD.%PfPe2+`4:0N0nphBPePg1H1HPe"1HPePg4K=O>/05/04/03/02/01/00/0//0./0-@/0,k?/,/-/.///0o0k>k>+`P+4#k?P&B0. P$P(20. K>1N 1,00 J 0HP10 PRpPbpPf2Pd"1n0K>s4K>YK>K>O>/00/0//0./0-@/0, 0P"1L0d 0H 1N1N0H Pd2PgPfrPeb0NP21n 0l),*1Dn0D PPgRPB1.01. 0n1$N2NPpb0n1.0H1H1.00 7?k?2H1HpK?=@Pf27?k?1HpK?=@ePf2=|׽??=|׽??!TD-!TD-Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREA `PX!88,X H(H8X!8D#>(l@tP>(P@xP\$$l  4$ 4| L XLd(( "t"t  "~.4%t$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4L( %-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @ @ 0@ @ !@ $3@ '-@ + @ 6 @ D @Q S* 4_@k@v@{@ @"@$@&@(A!@A$@A'@A@A(@A*@A,@A)@A+@ ? ',)*Q O+ @ ;H:HI9@K7@M,jAK@AW@AM@AQ@A< 2 5\E H^6lR Va7 ;c <`=n ?f BQcDQD`OfX\d ,0,P5,?H@TAXB`PC?D|F`F@HIJKLNOQRTV W,Y<[L]d^x`abfghijkm`mAn`nBrC0rDPwQLLL@XXP\dp`]P`Pcx`d`ePf`g`hPwQP^`_,8P`@pPa`b`ePf`gPf`g`h`i`palberinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorce3esrhns0lon_centerfalse_eastingfalse_northingalberinvintfalse_northfalse_eastlat0lon0lat2lat1r_minr_majsin_pocos_pocontempms1ms2qs0qs1qs2alberinvlatlonyxrh1qsthetaflag!8D,PAH|PAH|JC|C|C|C|C|C|4C@|4G@|4\l|\hAB@X4SxH@|H4 IH@x@@|@!JH,A,4Zx(KL(@|(4Xx0@|04xC||4xC||AxYAxSAxPA,x\A<x_AdxV4I4@|4U48@|84E4 bg @| !<HGAL`GAX`MC` C`@dt#4HCL`@`@` @`@`JAptJDx/,@;,Ax,@DYD@`H@`8A8@J@`0@`(@`A HBN]h,BT]h?ӽ@AHIJKLQRVW[^`abgikP,?P@ԽAHIJKLQRVW[^`abgik@PABB?;k APBK]ԄDVVD2VF Fm IPJK HPYjKL;kKPLPNN;x QOQP; RQRP; RTT;x VP; WVWP; WYY;x [P; [];k^^P`PaӽbPaPb;kPPfVVf1 bPgPg; Phh; i;hPj;hkPkm;Pn XPPӽPPӽPӽ?;k  PP;k;k;PPPPֽP;kԽP ;k;k;k;ӽP;P" #L%%}yH% %      a   %    A     (@x 8$ H X0X h( @ 0$; 48HT\halberinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$alberinv $gntt_label $lntt_label alberinvintS$22$alberinvintfabsM$23p_errorsqrttsincosmsfnzqsfnzptitleradius2stanparl cenlonmeroriginoffsetpalberinv S$25$alberinvatan2logphi1z adjust_lonalconfor.o/ 1074012773 1032 20 100666 16172 ` 1 8?,@,\\ 8:3|r<p \* G%=k?/,/-/.///0ok?Y+` S>p%S>4 4#p)RPh?Pp&rP"p(bPp$BPp'pd+`P2p'PBp&PRp Pp(Pbp)"Pp*2Pp$Prp+BPp'Pp6RPp&Pebp(bPhbPf"R1 0N0NPPh0H10.2  1N0n@1N1N4x04w 0.+`4:PePgPerPebPeRPgB4K>K?YO?Q/00/0//0./0-@/0,k?/,/-/.///0/1o+`P$r0H 4#0.0H7>7>1HPf#S"RS10N0NPh#S "0H1.2- 1N0n@2N1N7>7>0.Pj2S>+`45Pi"S>4!p61FNS>S>6`17N0NH,? 1WN6?. ,_ . 4=31n2N3N2N 0N) bh1) 7?P6?+` 4=P43?  v e.`0dH/ /@E'D(2H2H779?_7Z?a+` 4=P4:? \     e.`0dHS9"SX"E'D(2H2H7e.`0dH/0/PE'D(2H2H7e.`0dH/ /@E'D(2H2H7e.`0dH/1/QE'D(2H2H79?7~7Z?16N1@ PgPhR17NK=K=4:Hp_PjP~B\ p,K=O>a/01/00/0//0./0-@/0,9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO@?!TD-??@?!TD-??ALASKA CONFORMAL `PX!,X x8X!D=>(@P>(R@p\>(P@Ph \$$x 4$ 4 XL<%@% @ }3|* $TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4 %-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @ @ @ '@ 2 @ @@` @@ O8` @@ U [$@ c&@ k@ m Q o. {@@(@*@,9A@A"@A!@ "0'$0$(Q G) @ +@*@A)@C(@E*A.@A/@A0@A6@A7@A3@A<@A=@A?@A@@AF@AJ@AL@AR@A\@A_@A4@AB@AW ;v?x Dq Ep I<pIz[mqO|aspq 1#01$P60= ><?d@dAdBdCdEdFdHpIJKLMNOPQRSUVX0]8^D_P`Xa``b7clP60bl`b7`c8g;0g>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorlon_centerlat_centerfalse_eastingfalse_northingacoefbcoefsin_p26cos_p26enalconforintfalse_northfalse_eastr_minr_majeschiesphialconforyxlatlondlonsinloncoslonsinphicosphigsxpyparaibrbiarnainjHHCHC@i@Hp@@l>F@@<@k @`?>(d(@<(m ``@> d @\ , P`A>8d8@L8 X`B>0d0@T0D H`C>d@DK1@A|P<@/Y8V]/8@:@HA,GCCȀ@8A,4,C,@C,H@ApSd/Yt/C,PC,X@@Az8d>A$4}A0;!,,2A0d2DdAY4@A@``/@/!lbA/@,ate5085Xp5wxwA58488\p8tA8l<!8A<dbDbAlbeeee(8e$eP`eDLexeYlte@H@(@ ؽ=>?@ABCFUVX^_`aQABEHIJKLMOPQRSV? =Q@Cս>?@ABCFUVX^_`a?QACQB AQEF BQV@QVF?;k >QFQHIJKLMNOPQRSPH PI PJ ӽNPO ӽJPK ӽOPP PQ ӽKPL ӽQPR ӽLPM ӽRPS ӽMPUQ;k ӽSPVQUQԒUV;kQ; ;k XQQX;x VX]\]1 \^Q^;Q_;hQ`;hQaQab;Qc- QQgԽ?;k;x ;kQӽ;kQԽ; ;k ;x QPQԽPPӽPQPPPPPPPQQQQ#:%"%C%;# % %         !%  )  A     (@ 8@ H$ X X0h xx @ 0, <P `(alconfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. BS$alconfor SB$alconfor $gntt_label $lntt_label alconforintS$24$alconforintsqrtsintanpowatantsincosM$25ptitleradius2cenloncenlatoffsetpS$24DD$alconforintalconfor S$27$alconfor adjust_lonS$27DD$alconforalconinv.o/ 1074012774 1032 20 100666 21432 ` 1 S@  @ @ NCh Q @7(G%.k?/,/-/.///0ok?Y+` S>p%S>4 4#p)RPh?Pp&rP"p(bPp$BPp'pd+`P2p'PBp&PRp Pp(Pbp)"Pp*2Pp$Prp+BPp'Pp6RPp&Pebp(bPhbPf"R1 0N0NPPh0H10.2  1N0n@1N1N4x04w 0.+`4:PePgPerPebPeRPgB4K>K?YO?Q/00/0//0./0-@/0,k?/,/-/.///0/1/2/3/4/5o`k< s< s(@c@tP >(R@xp\>(P@Ph @$$x  d 4$ 4 L XL PP (424 .h"(.h"( Ch7($TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/ @ 4LP4%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @ @ @ '@ 2 @ @@` @@ O8` @@ U [$@ c&@ k@ m Q o. {@@(@*@,9A@A"@A!@ "0'$0$(Q G) h@ +@*@A)@C(@E*A@A=@A>@AT@AY@AO@AA@A^@A]@Ab@A_@Ah@Al@Av@A|@A@A@A@A@A2@A4@A@A @A@A@A@A@A@A!@A@A$@A)@A-e A/5 1=A L Mڀ ܀ ݀ I<QoWuI  1#01$P60= ><?d@dAdBdCdEdFdHpIJKLMNOPQRSTUW0\8]D^P_X```a7blP60al`a7`b8f;0f>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorlon_centerlat_centerfalse_eastingfalse_northingacoefbcoefsin_p26cos_p26enalconinvintfalse_northfalse_eastr_minr_majeschiesphialconinvlatlonyxsbrbiaiarcicrdidrarnaincrncinfxyrfxyifpxyrfpxyixpypdendxpdypdszcoszsinzrhdphiphijnnHHCHC@.@Hp@@l>F@@<@, @`?>(d(@<(0 ``@> d @\  P`A>8d8@L8 X`B>0d0@T0? H`C>d@DK@A|P<@/Y8U\/@@HhHhC|C|Ȁh@|(h@|Hh@| T|DYHPDA`|G!L!,04!0\`|!`AA8A;h@|L/!//!PP/Tt/!//!//!8V!<</@`/!/A@/2!@YDp2!2A2>L>LzzAp>ATALAApAA85AL,blbApbepeApeL$xAxw(|w|VAtVtxttt4tt(0tYY `YYY!h!h!DTh!h!,@hADph!k!k!HTk!k!4@kADpkAP_!qALq!>AL>! nALnA,L2ADL/AHl\l|/Y`h/A||,A/8||Ch8||Chh@|8h@|0h@|h@|A04MMMA44Mh@|CPpA/ؽ=>?@ABCFTUW]^_`QABEHIJKLMOPQRSU? =Q@Cս>?@ABCFTUW]^_`?QACQB AQEF BQU@QUF?;k >QFQHIJKLMNOPQRSPH PI PJ ӽNPO ӽJPK ӽOPP PQ ӽKPL ӽQPR ӽLPM ӽRPS ӽMPTQ;k ӽSPUQTQԒTU;kQ; ;k WQQW;x UW\\\1 \]Q];Q^;hQ_;hQ`Q`a;Qb/G@QQӽQQȽQQPPPPPսؽ          սؽ          սؽ          սؽ          սؽ          ½?;k;k˽֔ս;kӚӽᔔ;k ӽ;x Q;kQ ٽQԚQᔚ;k޽;kQ;kQ; ;k ;kQQ;Q;k\\2\ ˽\\2\ ## ##:%"%C%U1# % %         !%   i     !  (@x 8@ H$ X X0h x @ 0, <P\ht alconinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. BS$alconinv SB$alconinv $gntt_label $lntt_label alconinvintS$24$alconinvintsqrtsintanpowatantsincosM$25ptitleradius2cenloncenlatoffsetpS$24DD$alconinvintalconinv S$27$alconinvfabsp_errorasinzatan2 adjust_lonS$27DD$alconinvazimfor.o/ 1074012774 1032 20 100666 11000 ` 10*@X ``0'$(8TG%]k?o+`S>p%bS?4#47p%BS?48p&2p$"p'R+`4:PebPeRPeBPe"Pg2K?Y4@O?k?/,/-/.//o+`P$R0H 4#0.0H1H7>7>1HPhS>0H PfS>1 N 0N L1H# S-0.#@SE0, 0 1L0d PfbS>#S2Peb#77?0N+`4907?41H0H 1H1n PfbS>1N1H0NPw"K=4K=ĮrPkbPhS>PeS>1N1(NPj20N:LsK=O>A/0//0./0-@/0,?=|׽@ !TD-Point projects into a circle of radius = %12.2lfAZIMUTHAL EQUIDISTANTazim-for `PX!||,X!|||8zX xQTD>(@$P>(P@(8\T$$lx 4$ 4| X<0W$$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ )@ 8@ F@ N@Q V xa@m@x@@@#   Q 1 x@ **+@-@/A!@A$@A @A'@A-@A,@A1@A3@`O D@F! 'K (J) ,N 032&3 &0&P, 0124344464:<;H<P=X>``?!@lP, ?l`?!`@"E%0E&PJ3V$W4XDYXZlP[J\]P^Kb_`ab`bL`bMPfNgh`hOjk0m``mPn``nQ`oRazimfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12azimforintfalse_northfalse_eastcenter_latcenter_lonr_majazimforyxlatlonsinphicosphidloncoslonkspgconzmessHxHxCxCxCxxx/@x0x@x( <1:(@(x $021 4x @ x6 00314x@,x44x@0x(@xx*@xHxA$TDCCȀx@(A4Jx@@C$@xHHC$HAXDx@x@AlMpGa|\ZGx@05Y_a5AGx@x@012346;<=>P3 0P26ս1ֽ346;<=>6P 2P46P3P4P6?;x 1P:U:1U;;hP <;hP=;h P>P>?; P@ VY_jkPVPEԽY_jkV?;k VWW;xX;kYP XYPY Z;kԽ\\Z;k]jPb_P``:ӽ_`aUUa2b bmg;kӽgh;khjP;kPmkjjkPPPPknP###:%7% }g#(% %      !% A     (@( 8$ H X0Xh t@0  (4azimfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$azimfor $gntt_label $lntt_label azimforinttsincosM$20ptitleradius cenlonmeroriginoffsetpazimfor S$22$azimfor adjust_loncosfabsC$21sprintfp_erroracossinaziminv.o/ 1074012774 1032 20 100666 11320 ` 1,8@d (x$*0G%k?o+`S>p%bS?4#47p%BS?48p&2p$"p'R+`4:PebPeRPeBPe"Pg2K?Y4@O?k?/,/-/.///0/1o k>+`P&24#P$"K>k>0.0. 1NH#0H SPdb0N1,0 "P@1n7?qK>7?PdRp1H#S0L0d " S?sPgS?Pf1N 0N 1Mn N0HK>sPqB2 H"R"0.0l0D !x@2HPfS?..1H0 0 (@1H00 !S?sPd1N1N0NPfR0p4K>YK>O>/01/00/0//0./0-@/0,+`4:049`4PdBK>ˀes$2 0 :11HPfR0ˀ p11HPfR0.ˀpˀK>Y@ !TD-=|׽?!TD-AZIMUTHAL EQUIDISTANTInput data errorazim-inv `PX!||,X!|8$X   D3>(40@<P4>(P@@8\$$lL 4$ 4|M$ XO_ a  i[$$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4 $,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ )@ 8@ F@ N@Q V xa@m@x@@@#   Q 1 @ **+@-@/JA#@A&@A'@A+@A7@+ .>/ 2@35 8C9 <E =B (3A&3*B &0&P, 0124344464:<;H<P=X>``?!@lP, ?l`?!`@"E%0E&PJ3R<SDTDUXZt[x\]bcdqrtHvp`vHwtPJ3PV>WX`X?P^@_```APeBfPgChi`iDPlEmn`nF`nGs`vHw`wI`xLaziminv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12aziminvintfalse_northfalse_eastcenter_latcenter_lonr_majaziminvlatlonyxrhzsinzcoszconHxHxCxCxCxxx$@x0x/@x( <1:(@(x1 $021 4x @ x! 00314x@,x4x@0x3@xx5@xAD0D!@@SRJADJC0 C0@0@0AX0G@00Ax/CD0HpCD0@0(@0 @0@00JYcd/012346;<=>P3 0P26ս1ֽ346;<=>6P 2P46P3P4P6?;x 1P:U:1U;;hP <;hP=;h P>P>?; P@€RSUZ\_bcfhmqtPSPRԽUZ\_bcfhmqtRP S RT?;k UTUӽZPZ[\hmt[;x\P\];kԽdrbPP;kbcfP;kd;kcdq;kPqֽr;k r;ktP;P;ktvwWUUW2UX Xv_P `v_fh;P;kivӽhm;P;knvӽmֽ svw###:%7% k#(% %      )%  I     (@@ 8$ H X0Xh t@0 ,aziminv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$aziminv $gntt_label $lntt_label aziminvinttsincosM$20ptitleradius cenlonmeroriginoffsetpaziminv S$22$aziminvsqrtp_errorfabsasinzatan2 adjust_lonsinbceafor.o/ 1074012774 1032 20 100666 11552 ` 10- @X ``0)&HS+TG%k?/,op0nS?+`p)r#Sp%S?4#p&bh(S>p+RS>p*B1Hp'p(pd"PeR0, 0 4hx@h`Pebpd2Pebpd"Pf0Nh%Pe2+`4:0npfPePgPerPebPeBPgR4K?YO?@/0,k?/,/-/.///0o+`P$r0H 4#0.0H 1HH} PhPe2PfBK>1N K>,s7PjPi2PgR0N2n0r4K>O?Q/00/0//0./0-@/0,Pi#@SFPvSL0N0.,*, 2N,71Kn0n0n@PfPgPeBK>0N)K>*sPk1NPwPjR1lN2N3Xn1[s?>h?@Cylinderical Equal Area `PX!,X  8 8X!44D>(@P>(P@`\T$$lx 4$ 4| XTpHH  &H$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/ @ 4 $,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ @  @ +@ 6@ E@ S%@ [(@ c+@ f" Q j* u@@ @"@$@&@(5A@ / 1 ,",#Q C$ 0@ 2<1<=0@?/@A%RA5@A6@AE@) ,L1 5N -E78E/8 202P9,> ?H@PAPBPCPEPFPGPI\PJ/Kt`K0PN1O`O2RSTXYZ[\`]3^P9,]`]3`^4c70c8PhEo(p8r@PsLtLuh`uM`PPhEPxNy|}`}O`P`Q`Tbceafor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minoreeslon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzindbceaforintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempbceaforyxlatlondlonsinphiqHHCtCtCtxCtp;@tX@tP3 L@>8Pt8@8 4LA>0Pt0@00? @LB>(Pt(@<(9 HLC? Pt @D !LE>,APT,A\t@PXFG@@P@C@tH7|@t=@t@tFTY@tH0A(DC0LC0H0@08A8GA8<,0@00@0 0@0X0@00@0(0@0@0@0HA0b0@0!xE@>?սABCEFGIKORSTYZ[\P @PFT >PAԽ?@ֽBCEFGIKORSTYZ[\ APFBBPCCPG ?PG?;kFPGPIPKPӽOPR;kP RPS;kP SPTP;kPXXXX1 TPYPY; P Z;h P [;h P\P\]; P^Ƚortuy|}PoPcԽrtuy|}o?;ko p;krPtPPPutuPPPuyPӽ}ԏPԏ;k|PPP|}Py}PP}X%O%Mq#0% %           !%         (@ 8$ H X0X h8| @0 Hbceafor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$bceafor $gntt_label $lntt_label bceaforintS$24$bceaforintsqrtcossinM$25ptitleradius2 cenlonmer true_scaleoffsetpbceafor S$27$bceafor adjust_lonlogbceainv.o/ 1074012775 1032 20 100666 12332 ` 1,0,@T \\,,(.(P!PG%(wk?/,/-/.//o0nS>+`p)#S p%S>4#p&rh(S>cp+bS>sp*R1Hp'p(pdPe# S'0Npf0, 0N0 !@ph4hz#S"pdPer@pdBPerpd2Pf0Nh%PeB+`4:0npf"PePgPePerPeRPgb4K>O?A/0//0./0-@/0,h`1. "R"1.01n0N @0n1n@l%1NpfePerk?/,/-/.//ok?I+`P(R4#P&bH?0.  0.PgBPf0N1n@K>sPgPhBPf1N 1n 0K>sD PPf"PgPh0N 0N 0N 1jn@PkP0H P"Pg1vn P2Pi1NL(PbPRPhPBjPj1N1N FNPPrPgl1N0N K>l rPgPh"Pf0N 1n 0K>s$4K>K?IO?A/0//0./0-@/0,?>h@@@? ` `?B*B*?[[?U@?-m@Cylinderical Equal Area `PX!xx,*X p``8*X!xxxD+>(@P!>(P@x\P$$l"t 4$ 4|# X%l5T70 0 ?(!P$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/%@ 4 $,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ @  "@ %$@ * @ 5@ @@ O@ ]-@ e/@ m1@ p*@ s( Q w0 t@@&@(@*@,@.;A@ 5! $7 2&"2'Q I( t@ 9B8BC6@E5@G)TAJ@- 0N1 5P 6K;>K8< 5!05"P<2ABTC\D\E\F\I\J\K\LhM|OPP5QR`R6Z[\`abcd`e9fP<2ePU7V0W4`W8`e9`f:k=0k>PpKuv4x4PyNz<|\`|OPP0`Q`RTPpKT`R`S`Vbceainv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minoreese_p4e_p6lon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzqpindbceainvintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempbceainvlatlonyxbetaHtHtCtHCt@Ct8Ct0tB@tpt@thtD (XCA@\@@$@t @XDA8\8@<8t< LXEA0\0@H0t: TXFB(\(@P(!XIA,A\`,tKhX\dJKX@\Xt@t`tM@tPtOHMQH@|Ht>@ttHpt@t@@t t@ttF,\a@A4D@P,Y4<vz,CLCHt@(t@0t@t@ t@pt@@t@t@A Gt@Xt@Pt@HICABսDEFIJKLMOQRVWZ[\abcdP CPJW\ APDԽBCֽEFIJKLMOQRVWZ[\abcd DPJEEPFFPK BPK?;kJPKPLMWPOLPOMMPQPRRPZP;k ZP[;kP [P\P;kP`YY`1 \PaPa; P b;h P c;h PdPde;PfӽVPW;kWPZPuvxz|PuPӽvxz|vPxPuxvzPP?;kz|PPP;k|PPP;kPPP;kPPPPPP;kj%O%Ay#0% %              )%           (@ 8$ H X0X h| @0{ bceainv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$bceainv $gntt_label $lntt_label bceainvintS$27$bceainvintsqrtlogcossinM$28ptitleradius2 cenlonmer true_scaleoffsetpbceainv S$30$bceainvasin adjust_lonceafor.o/ 1074012775 1032 20 100666 11540 ` 10-@X ``0)&DS+TG%k?/,op0nS?+`p)r#Sp%S?4#p&bh(S>p+RS>p*B1Hp'p(pd"PeR0, 0 4hx@h`Pebpd2Pebpd"Pf0Nh%Pe2+`4:0npfPePgPerPebPeBPgR4K?YO?@/0,k?/,/-/.///0o+`P$r0H 4#0.0H 1HH} PhPe2PfBK>1N K>,s7PjPi2PgR0N2n0r4K>O?Q/00/0//0./0-@/0,Pi#@SFPvSL0N0.,*, 2N,71Kn0n0n@PfPgPeBK>0N)K>*sPk1NPwPjR1lN2N3Xn1[s?>h?@Cylinderical Equal Area `PX!,X  8 8X!44D>(@P>(P@`\T$$lx 4$ 4| XTpDD  &D$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4 #+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ @  @ *@ 5@ D@ R%@ Z(@ b+@ e" Q i* s@@ @"@$@&@(5A@ / 1 ,",#Q C$ 0@ 2<1<=0@?/@A%RA5@A6@AE@) ,L1 5N -E78E/8 101P8,= >H?P@PAPBPDPEPFPH\PI/Jt`J0PM1N`N2QRSWXYZ[`\3]P8,\`\3`]4b70b8PgEn(o8q@PrLsLth`tM`PPgEPwNx{|`|O`P`Q`Tceafor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minoreeslon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzindceaforintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempceaforyxlatlondlonsinphiqHHCtCtCtxCtp;@tX@tP3 L?=8Pt8@8 4L@=0Pt0@00? @LA=(Pt(@<(9 HLB> Pt @D !LD=,APT,A\t@PXEF@@P@C@tH7|@t=@t@tFSX@tH0A(DC0LC0H0@08A8GA8<,0@00@0 0@0X0@00@0(0@0@0@0HA0b0@0!xD?=>ս@ABDEFHJNQRSXYZ[P ?PES =P@Խ>?ֽABDEFHJNQRSXYZ[ @PEAAPBBPF >PF?;kEPFPHPJPӽNPQ;kP QPR;kP RPSP;kPWXXW1 SPXPX; P Y;h P Z;h P[P[\; P]Ƚnqstx{|PnPbԽqstx{|n?;kn o;kqPsPPPtstPPPtxPӽ|ԏPԏ;k{PPP{|Px|PP|X%O%Mq#0% %           !%         $@ 4$ D X0T d8x @0 Hceafor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$ceafor $gntt_label $lntt_label ceaforintS$24$ceaforintsqrtcossinM$25ptitleradius2 cenlonmer true_scaleoffsetpceafor S$27$ceafor adjust_lonlogceainv.o/ 1074012775 1032 20 100666 12320 ` 1,0 @T \\,,(. P!LG%([k?/,/-/.//o0nS>+`p)#S p%S>4#p&rh(S>cp+bS>sp*R1Hp'p(pdPe# S'0Npf0, 0N0 !@ph4hz#S"pdPer@pdBPerpd2Pf0Nh%PeB+`4:0npf"PePgPePerPeRPgb4K>O?A/0//0./0-@/0,h`1. "R"1.01n0N @0n1n@l%1NpfePerk?/,/-/.//ok?I+`P(R4#P&bH?0.  0.PgBPf0N1n@K>sPgPhBPf1N 1n 0K>sD PPf"PgPh0N 0N 0N 1jn@PkP0H P"Pg1vn P2Pi1NL(PbPRPhPBjPj1N1N FNPPrPgl1N0N K>l rPgPh"Pf0N 1n 0K>s$4K>K?IO?A/0//0./0-@/0,?>h@@@? ` `?B*B*?[[?U@?-m@Cylinderical Equal Area `PX!xx,*X p``8*X!xxxD+>(@P!>(P@x\P$$l"t 4$ 4|# X%l5T7|,| , ?(!L$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4 #+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ @ "@ $$@ ) @ 4@ ?@ N@ \-@ d/@ l1@ o*@ r( Q v0 t@@&@(@*@,@.;A@ 5! $7 2&"2'Q I( t@ 9B8BC6@E5@G)TAJ@- 0N1 5P 6K;>K8< 4!04"P;2@ATB\C\D\E\G\H\I\JhK|MPN5OP`P6XYZ^_`ab`c9dP;2cPS7T0U4`U8`c9`d:i=0i>PnKst4v4PwNx<z\`zOP}P~0`Q`RTPnKT`R`S`Vceainv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minoreese_p4e_p6lon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzqpindceainvintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempceainvlatlonyxbetaHtHtCtHCt@Ct8Ct0tB@tpt@thtD (XB@@\@@$@t @XC@8\8@<8t< LXD@0\0@H0t: TXEA(\(@P(!XG@,A\`,tKhX\dHIX@\Xt@t`tM@tPtOHKOH@|Ht>@ttHpt@t@@t t@ttF,Z_@A4D@P,Y4<tx,CLCHt@(t@0t@t@ t@pt@@t@t@A Gt@Xt@Pt@HGB@AսCDEGHIJKMOPTUXYZ_`abP BPHUZ @PCԽABֽDEGHIJKMOPTUXYZ_`ab CPHDDPEEPI API?;kHPIPJKUPMJPMKKPOPPPPXP;k XPY;kP YPZP;kP^YY^1 ZP_P_; P `;h P a;h PbPbc;PdӽTPU;kUPXPstvxz~PsPӽtvxz~tPvPsvtxPP?;kxzPPP;kz~PPP;kP~PP;kPPPPPP;kj%O%Ay#0% %              )%           $@ 4$ D X0T dx @0{ ceainv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$ceainv $gntt_label $lntt_label ceainvintS$27$ceainvintsqrtlogcossinM$28ptitleradius2 cenlonmer true_scaleoffsetpceainv S$30$ceainvasin adjust_loneqconfor.o/ 1074012776 1032 20 100666 14360 ` 148@\ dd43p-5X%HG%*k?/,/-/.///0/1/2o0nS=s?s+`# S&p%S=s4#p)¸,+S=Cp(BS=Sp*21`HS=p'p+bpdrPebpdPebpdPebpdPebpd1H7?7?!S?#s?PerS?Pfs?0HPhs?PePgK=9k>#00H1#S0,0 !s?s7?7?!1HS?#s?PerS?Pfs?0HPhs?PePg0H1.0L0d 1.2O.Phs?Pis?0npf"PePg0H@1nS=cs?s1 pjpdRPfPeK>0.0Nph+`4:49``4S?pd"Phs?1nPis?S=cs?sPePg1 pjpdRPfPeK>0.0Nph+`4:PePg1H1HPe1HPe2PgB(4S?pd"Phs?1nPis?S=cs?sPePg1 pjpdRPf+`4:PeK>0.0NphPePg1HPe1HPe2PgB4K=O>q/02/01/00/0//0./0-@/0,k?/,/-o+`P$s?sP&0H 4#s?P%s?P'PhPgPf1. 1.0N Pf"0N 1HPf2K>1H, sPgPhB1 K>4j%rK>O?!/0-@/0,?=|׽Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONICEQUIDISTANT CONIC `PX!PP,@X 8@X!PDA>(^@lP>(P@px\X$$l| 4$ 4| XHDH   "-%H$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/1@ 4H %-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @  @ @ '@ *!@ -#@ 0%@ 3@ 5@ 8>@ <@ K@ Y4@ \9@ ^C@Q a6 Lm r@&~@(@*@,@.@0@2@4A@A'@A+@A/@A2@A0@A3@ H !G& -K0 7M 98;"<Q ]= @ KVJVWI@YH@[>AT@A_@AY@ E_GRH +!0+"P58=h>h?l@lAlClDlElFxGHIKLMQPRGSXY,ZL[d\xPTHUV`VI^`^JbLcLdLiLPjKkLlXmdnpoxp`pL|aPsMtuvwxy`yN|$`|O}(`}PQ0RP_$<P`|`f`g`heqconfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorlon_centere0e1e2e3eesml0false_northingfalse_eastingnsgrheqconforintmodefalse_northfalse_eastcenter_latcenter_lonlat2lat1r_minr_majtempsinphicosphims1ms2ml1ml2eqconforyxlatlonmlthetarh1HLHLCxCxCxCxCxCxCxLU @d=p@hxpL@xhL] Lh?`@lx`Lb Xh@ @lx L` `hA@lx!(hC,Alp,Lxx0ltDE0@l0L@x8LL@xXLN@xPLP@xHLR@x@LLClxLLClxAxJxMYMSMALxSAdxVL[L@xLWL0@xLL((4(@x(Ld$auL@xA$TDHCLCH@X@P@H@@K@p@\DY@XD@@`A`G@@ @ CKMS[mvM=>?@ACDEFGHILMYZ\^abcdlnpuwyPD =P?Խ>ս@ACDEFGHILMYZ\^abcdlnpuwy ?PD@@PAAPE >PE?;kDPEPF;kPFPG;kPGPH;kPHPI;k PIPKK;x LP; MPLMPP; PQiMS;k Խ[ZXX;x YP; ZPYZPP; PZ[;k \cPP\PcPPbԽox; bPcPdPPi\dPU^^2^VV|^^PcPbPӽoxPP; bPcPdPPidPk^k1^lPl;Pmm; n;hPo;hpPp;P|aaPcPbPӽoxPP; bPcPdPt^^Pit1dPuPu;Pv;h w;hPx;hyPy|;P}APPPԽP?; PPPP;kP;kPPP;k9##j%%;#H% %          i    !%          (@p 8$ H X0X h @,<HT0`Speqconfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$eqconfor $gntt_label $lntt_label eqconforintS$27$eqconforintsqrte0fne1fne2fne3fntsincosmsfnzmlfnfabsM$28p_errorptitleradius2stanparl cenlonmeroriginoffsetpstparl1eqconfor adjust_lonsincoseqconinv.o/ 1074012776 1032 20 100666 15144 ` 1;(@| 6P/c8'G%#k?/,/-/.///0/1/2o0nS=s?s+`# S&p%S=s4#p)¸,+S=Cp(BS=Sp*21`HS=p'p+bpdrPebpdPebpdPebpdPebpd1H7?7?!S?#s?PerS?Pfs?0HPhs?PePgK=9k>#00H1#S0,0 !s?s7?7?!1HS?#s?PerS?Pfs?0HPhs?PePg0H1.0L0d 1.2O.Phs?Pis?0npf"PePg0H@1nS=cs?s1 pjpdRPfPeK>0.0Nph+`4:49``4S?pd"Phs?1nPis?S=cs?sPePg1 pjpdRPfPeK>0.0Nph+`4:PePg1H1HPe1HPe2PgB(4S?pd"Phs?1nPis?S=cs?sPePg1 pjpdRPf+`4:PeK>0.0NphPePg1HPe1HPe2PgB4K=O>q/02/01/00/0//0./0-@/0,k?/,/-/.//o@+`P+2k?QP&4#0. P$BP("0. 1N 1,00 0J@0H# (S$@#0S"1L0d 0H 1N1N0H PhPi7?Qk?iPds?1nPjs?Pks?sPg0.K>sPg"Pf1n0K>sDK?Q04K>YO>/0//0./0-@/0,?=|׽?Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONICEQUIDISTANT CONIC `PX!PP,@X (x(8@X!$P$DAF>(^@lP>(P@px\$$l  4$ 4|<L XLHd"Lh"L h /'$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/7@ 4L %-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @  @ @ '@ *!@ -#@ 0%@ 3@ 5@ 8>@ <@ K@ Y4@ \9@ ^C@Q a6 Lm r@&~@(@*@,@.@0@2@4A@A'@A+@A/@A2@A0@A3@ H !G& -K0 7M 98;"<Q ]=  @ KVJVWI@YH@[>AW@Ab@AY@A[@AL C FjG Jl T_VRW +!0+"P58=h>h?l@lAlClDlElFxGHIKLMQPRGSXY,ZL[d\xPTHUV`VI^`^JbLcLdLiLPjKkLlXmdnpoxp`pL|aPsMtuvwxy`yN|$`|O}(`}PQ0RP_$$4HPjT``kPll|`m`n`o`peqconinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorlon_centere0e1e2e3eesml0false_northingfalse_eastingnsgrheqconinvintmodefalse_northfalse_eastcenter_latcenter_lonlat2lat1r_minr_majtempsinphicosphims1ms2ml1ml2eqconinvlatlonyxrh1mlconthetaflagHLHLCxCxCxCxCxCxCxL` @d=p@hxpL@xhLk Lh?`@lx`LS Xh@ @lx LO `hA@lx!(hC,Alp,Lxx0ltDE0@l0L@x8Lc@xXLe@xPLg@xHLi@x@LLClxLLClxAxJxMYMSMALxSAdxVLUL@xL^L0@xLL((4(@x(LQ$auL@xA0PGAHPMCP CPl ThC$P @P @P @P  @P|JA`hJ,Alp, DDYD @P @PpY/ @PX @PP @PH @P@ @P` CKMS[mvM=>?@ACDEFGHILMYZ\^abcdlnpuwyPD =P?Խ>ս@ACDEFGHILMYZ\^abcdlnpuwy ?PD@@PAAPE >PE?;kDPEPF;kPFPG;kPGPH;kPHPI;k PIPKK;x LP; MPLMPP; PQiMS;k Խ[ZXX;x YP; ZPYZPP; PZ[;k \cPP\PcPPbԽox; bPcPdPPi\dPU^^2^VV|^^PcPbPӽoxPP; bPcPdPPidPk^k1^lPl;Pmm; n;hPo;hpPp;P|aaPcPbPӽoxPP; bPcPdPt^^Pit1dPuPu;Pv;h w;hPx;hyPy|;P} PPPԽPP?;k;k;PPPPPP;PP;k 9##j%%S#H% %          i    9%          (@p 8$ H X0X hx @,<HT0`S peqconinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$eqconinv $gntt_label $lntt_label eqconinvintS$27$eqconinvintsqrte0fne1fne2fne3fntsincosmsfnzmlfnfabsM$28p_errorptitleradius2stanparl cenlonmeroriginoffsetpstparl1eqconinv S$30$eqconinvatan2phi3z adjust_lonequifor.o/ 1074012776 1032 20 100666 8760 ` 1"8@x `  dG%dk?o+`S?p%B4#S>p&"S?+`4:phpg2pdPeBPe2Pe"PePgK?Y4@O?k?/,/-7`+`P$20H 0.+`P&BP%"0N +`P%K?4K?*rP&P'B, sK?Y7?/0-@/0,EQUIRECTANGULAR `PX!pp,X!xpx8n>(h@Dc>(P@(P$$`d 4$ 4pe| X||g wyllD$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/=@ 4|$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ ) @ 8@Q F lQ@]@h@m@x@ Q ~- t@ &&'@)@+A@ /" $ 0$P*./041424647<8D9L:T`;<`P*;``;`<A!0A"PF/KL$MTNd`N2Od`O3`P4equifor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorlon_centerlat_originfalse_northingfalse_eastingequiforintfalse_northfalse_eastlat1center_lonr_majequiforyxlatlondlonHlHlClClClxl@l l@ll 00/4l@l" 001/4l@,l@l4<27@4HtAtDCtCtt@tKtȀt@tt@t t@tt@tн./012789:P0 .Pӽ/012789:1 0P26TT1P /P6?12P7;hP 8;hP9;hP:P:;; P<@KPPAK?;k LPPP;k ԽMPPNLMPPMO.%7% /?#(% %    !%     (@ 8$ H X0X h@t0sequifor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$equifor $gntt_label $lntt_label equiforintM$18ptitleradius cenlonmeroriginoffsetpequifor adjust_loncosequiinv.o/ 1074012777 1032 20 100666 9112 ` 1 #@4 <<  XH !0G%1k?o+`S?p%B4#S>p&"S?+`4:phpg2pdPeBPe2Pe"PePgK?Y4@O?k?/,7pK?+`P(P&P$B0. 0. 1$nr#S0,0 *+`4: 49Ph4\+`P%"+`P'BP&20N1n 0K?s4K?Y7?@/0,?!TD-EQUIRECTANGULARInput data errorequi-inv `PX!pp,X!p8X D>(*@4P>(P@8(\0$$lT 4$ 4|| X|0 04DH$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/C@ 4|0$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ ) @ 8@Q F lQ@]@h@m@x@ Q ~- @ &&'@)@+ 0 "/$"% $ 0$P*./041424647<8D9L:T`;<`P*;``;`<A!0A"PF/J K(L(M,PN0OHPX`P1R`S`S2T`T3`U4equiinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorlon_centerlat_originfalse_northingfalse_eastingequiinvintfalse_northfalse_eastlat1center_lonr_majequiinvlatlonyxHlHlClClClxl@l l @ll" 00/4l@l 001/4l@,l@l4<27@4A(HD!$$KJ;A(0;CHCH@H@H@H @H@Hн./012789:P0 .Pӽ/012789:1 0P26TT1P /P6?12P7;hP 8;hP9;hP:P:;; P< LMKPPJPPKJLM?;k LMOTT2 TP PSRP;kPPPP;kRST ##.%7% /K#(% %    )%      (@8 8$ H X0X h@t0s equiinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$equiinv $gntt_label $lntt_label equiinvintM$18ptitleradius cenlonmeroriginoffsetpequiinv S$20$equiinvfabsp_errorcos adjust_longnomfor.o/ 1074012777 1032 20 100666 10020 ` 1'$@t #!Tw% xG% k?/,/-/.o0H S>0H +`p,BS>p$S>s1H4#p&47 480p-R+`4:1H1H1HPePg4K>O?1/0./0-@/0,k?/,/-/.7+`P$R0H 0.0H 1H7?Q7?a1H+`0H P'2S?SP%"S?c0N 0N J0, 0 *+`4: 49`4 #S+`P'B1H1n 1N 0N+`P7K>4K>ĮrP+BP("S?SP%2S?c1N1(NP*0N$LsK>7?1/0./0-@/0,?GNOMONICPoint projects into infinitygnomfor-conv `PX!,X!8X 0D>(@3@@P>(P@@0\$$l  4$ 4| 4$ X$XH|H TxTx(O!Tx$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/O@ 4$H$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @ @  @ ( @ 6@Q E P@\@g@r@@! Q ~/ @ (()@+@-A@A@A!@A#@A(@A)@ > %1'$( +0+P14 5<6H7H8H<P=\>d?l@t`ABP1A`A`B F#0F$PL1V W,X<YLZhP[>\t]`]?_`ad`d@e`eA`fBgnomfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRsin_p13cos_p13false_eastingfalse_northinggnomforintfalse_northfalse_eastcenter_latcenter_longgnomforyxlatlondlonsinphicosphicoslongksp!+DA DA GCHC@C8,@ T(@P5<(@<(* 0D64H@,. @D75H@<$@&@HA HDCtLCtH@t(A,tGC tC tALtD@t@tAht2AG@t@t @ta+8?45678@P4P66P7845678@7P8PP8?;x 5P;h?;h @P@A; PB`ؽVPPF?;k VWW;xX;kYP XYPPӽ`YZ\UU\2U] ]d_`PP_`;kԽaPPda``aPPPPae## 4%7% SQ#0% %     !% 1      (@@ 8$ H X0Xh t@0 gnomfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$gnomfor $gntt_label $lntt_label gnomforinttsincosM$19ptitleradiuscenloncenlatoffsetpgnomfor S$21$gnomfor adjust_loncosp_errorsingnominv.o/ 1074012777 1032 20 100666 11048 ` 1p+(@, p'l$(B(,G%Kk?/,/-/.o0H S>0H +`p,BS>p.RS>s1H4#p&47 480p$p-b+`4:1H1H1HPePg4K>O?1/0./0-@/0,k?/,/-/.///0/1o k>+`P&4#P$K>k>0.K>0. 1NH0H PfB1n@0H7?q7?Pdbp1H#S0,0 !S?sPg"S?Pf21N 0N 1Mn N0HK>sPqR2 H"R0.0L0d !H@2HPf2S?..1H0 0 (@1H00 JS?sPd"1N1N0NPfb0p4K>YK>O>/01/00/0//0./0-@/0,PdRK>sD2 l0D :11HPfb05p11HPfb0.p=|׽?!TD-GNOMONIC `PX!, X! 8 X D>( @ P>(P@8\$$l 4$ 4| XpXt t [$($TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/U@ 4 $,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @  @ !@ #@ +@ 3@ A@Q P [@g@r@}@@#   Q 1 @ **+@-@/HA$@A'@A(@A+@A7@+ .>/1 4A5 8C 9@ '3;&3)< ,0,P2 5 6<7L8L9L:L>T?`@hApBx`C!DP2 C`C!`D"H%0H&PN3V<WHXHYXZh[x]bcdqr s4t8`wFx`PN3w`P^>_```?Pe@fPgAhi`iBPlCmn`nD`nE`wF`xG`yJgnominv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerlat_centerRsin_p13cos_p13false_eastingfalse_northinggnominvintfalse_northfalse_eastcenter_latcenter_longgnominvlatlonyxrhzsinzcoszcon!,DA DA GCHC@C8%@ /X0@T6>0@<01 0H75(L(@,( @H86L@<"L@H3@5@AH D!@DWVJAHJC  C @ @ AX G@ AXd,CH 8\CH @ 0@ (@ @   JYcd/a,7:A56789:BP5P8 7P9:56789:B8P:PP9P:?;x 6P>U>1U?;h@;hA;h BPBC; PD€VWY[_bcfhmqtPWPVԽY[_bcfhmqtVP W[hmt VX?;k XYPY;kZZ;x[P[];kԽdrbPP;kbcfP;kd;kcdq;kPqֽr;k r;kstP;P;ktwx_P`_fh;P;kiӽhm;P;knӽm#:%7% eyk0% %      )%  A     (@ 8$ H X0Xh t@0  (gnominv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$gnominv $gntt_label $lntt_label gnominvinttsincosM$20ptitleradiuscenloncenlatoffsetpgnominv S$22$gnominvsqrtatanfabsasinzatan2 adjust_lonsingoodfor.o/ 1074012778 1032 20 100666 11704 ` 1-@x*,$7+$ G%k?/,7p"0H RR+`p,R"+`p71N1N R24?s1NRBs1NRR+`s1N 4:s1Ns"ss2ssBssRs"sbs2srsBssRssbssrs1H4K?Y7?@/0,k?/,/-/.///0/1/2ok> s?K> 0H k?!PK>k?1,0 @P0L 0d `P@1H11H0.002Fn100 #:_4+`4:@49@4d@1l0D :P0 0 b+`f8@P2PB10 0 0 h@PR0 0 j@Pb0, 0 pr@0L 0d lX@PR0l 0D n(@Pb00 t4f "` `0 ` r +`4=/ 0.+`4?/ +`P&1H0NK?+`K?!jrP%1Ns+`48/ P1HP40.0H 1HPr4dU0N#@SD1H1NP+`0.P$+`471H0P. 0 0H 0N1N K?1Hls&P1H0N k?P+`P$K?!_?0h(0N r4K>YS?K>O>/02/01/00/0//0./0-@/0,]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiy]WJM?WJU@ !TD-?=|׽@?!TD-?d)?f;? _?GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forward `PX!,qX |8qX!\  Ds}>(,I@PP>(R@P\>(P@h $$x 8 4$ 4l XP<kl!T@!T@'$$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/[@ 4l$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @` @@  ``  @@  Q  ؀@ %"&Q ))' @ 1"3"#5@%9@'(A= @AG@AM@AY@Ab Ad *J -8@L C:K S<T \>DN F@.P06 9D :C ;B o+q8<:G@^Bcr (0(P*-1$2@3h4l5x6789:;<@ABCDEFGHIJKOP`QRP*Q`Q`RV0VP[+eLPf8g\@gl`h9PBtPCt@PD`E`F`GPf8h`h9jPk:l@l`m;P@`APk:m`m;oPp<q@q r(@r8s@@sPtT`t=Pw>x\@xhyp@yz@z{`{?~P@`APB 44DLX`G`H`I`Rgoodfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tRlon_centerfeastgoodforintgoodforyxlatlondelta_lonthetadelta_thetaconstantiregionAD@H!<HVDALXDCX CXXhAG4HGA,@XdMP`MMM! 0MA4HMPPY8LP!(DAHHA/ 123456789:;<@ABCDEFGHIJKȅ(12@A34BC-Q-Q57DF123456789:;<@ABCDEFGHIJKP1P@ABC68EG123456789:;<@ABCDEFGHIJK @PDF9;HJ2PEG:+` `k?yP$0H PfK>0N1,0 @Pf0N0L 0d 0+`4?4/ 0. 1H0Nk?q+`PfP'0N_?q1 j Pm1Dn1H00 +@1H0H+`P'Pf+`47. 1H0N2NPe1n1p1,0 *jPd1N1H1Pg0n1H0L0d *@1HK?ys$1l 0D 2PPfPe0.00 R10 JPPfPe00 0 @0p JPPe00 )@Pe0,0 ( JPPe0L0d (@Pe0l0D ( JPPe00 (@Pe00 (b JPPe00 (@@Pe00 ( JPPe0,0 '@PeB0L0d 'Ҍ JPPeB0l0D '@PeR00 ' JPPe00 'h@PeB00 'B JPPeB00 ' @PeR0,0 & JPPeR0L0d &@Peb0l0D & JPPeb00 &@Pe00 &j JPPeR00 &H@Peb00 &" JPPeb0,0 &@Pe0L0d %4K>K?aK?YO?Q/00/0//0./0-@/0,4?4/ 0. 0" 0 8Pf1nK?ysNPmr1H00 #x@1H0.Pe+`48/ 00 #Jp4?4/ 0. 1l0D zPf0N0 0 (+`4?4/ 0. 4?4/ M0. Ph2PgB0N0N10 0 0 *+`4?4/ 0. PfR0N0 0 *+`4?4 / u0. Pfb0N0, 0 (+`4?4/ 0. 4?4/ 0. 0L 0d *+`4?4 / 0. PfR0N0l 0D *+`4?4/ U0. Pfb0N0 0 +`4?4/ 0. +`4:@49p]41H+`P&0N1n1-pϝK>ϝK>ϝK>ϝK>ϝK>ϝK>ϝK>ϝK>ϝK>ϝuK>ϝeK>ϝUK>ϝEK>ϝ5K>ϝ%K>ٿ]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiy]WJM?WJU?!TD-=|׽? _?f;??d) !TG@@ !TD-@ !TGGOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverse `PX!,qX $8qX!\Ds>(=@HP>(R@H\>(P@h $$x 4$ 4, X,<",StT''  +$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/`@ 4,T $,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @` @@  ``  @@  Q  ؀@ %"&Q ))' @ 1 "5 "#9 @%;@'(FA=@AA @AG@AL *H -4Z ^6` h8JJ L:OLr u=v y? U<.N 7B G++IP4V:i<qB{+R+T+V+ '0'P),0$1@2h3l4x56789:;?@ABCDEFGHIJNO`PQP)P`P`QU0UPZ+bDPc4dX@dl`e5PB <T`CdDp Lx`DPZ+Pt:x`x;z | P}<~,8T\`APc4e`e5gPh6i@ij`j7lPm8n@no(@o<pT@phq`q9Pt:u@uv@vw@w`x;P}P?(@`@`APB@P`C`DTPZ+PB@X`C`D\PZ+PB@``C`DdPZ+h`DlPZ+p`DtPZ+x`D|PZ+`DPZ+`DPZ+`DPZ+`DPZ+`DPZ+`DPZ+`DPZ+`DPZ+`D`E`Xgoodinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tRlon_centerfeastgoodinvintgoodinvlatlonyxargthetatempregionAD@`DD(<DDD$DA D!<@UGADTGCTLCTH@T t|HP$Ax,H/YXd/<`JAJA$J 0123456789:;?@ABCDEFGHIJȅ'01?@23AB,Q,Q46CE0123456789:;?@ABCDEFGHIJP0P?@AB57DF0123456789:;?@ABCDEFGHIJ ?PCE8:GI1PDF9;HJNV @PGINV2PHJ AP3P BP4P CP5P DP6P EP7P FP8P GP9P HP:P IP;PN?1 JPPO;hQ- bdilnopuvw~Qbdilnopuvwbdilnopuvw~QUbdzPP" dzz?;iQQ;k ;kQQPP;k ;k;k ;kӽԊԊzP ӽxzz|~~;k ;k ӊPP zP ӽezzgiPP" izzP ӽjzzlnuPP! nzzoPP' ozzpPP$ pzzP ӽqzzuPP! uzzvPP' vzzwPP$ wzzVV2 V;k QQ;kӽֽ : ## % %% {R#% %Y%  (@H 8@ H$ X X0h x @0  goodinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. BS$goodinv SB$goodinv $gntt_label $lntt_label goodinvintS$15$goodinvintM$16ptitleradiusgoodinv S$18$goodinvfabsp_errorcos adjust_lonsignasinsingvnspfor.o/ 1074012778 1032 20 100666 10616 ` 14)x@\ dd4%"'L,XG%k?/,/-/.//o0H S>0H #SS>S>sS>c+`1Hp,R1n4#p.b48047 p)p$0p'B+`4:1H+`1H48P1H1HPePg4K>O?A/0//0./0-@/0,k?/,/-/.o+`P$b0H 4#0.0H 1H7?Q7?a1H#SPeB0H Pi2S?S0nPh"S?c1*N 1NN1, 0 *+`4:49420.0. PiR1H0n 1N 0NPwK>4K>ĮrPkRPh"S?SPe2S?c1N1(NPj0N:LsK>O?1/0./0-@/0,??GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for `PX!,)X h8)X!LD*>(xw@PA>(P@8\X$$l\| 4$ 4|]T XT_XXo\qy]"$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/e@ 4TX%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @ @  @ @ #@ +@ 9@Q H  ȀT@`@k@v@@@% ""Q 3 @  ,,-@/@1A#@A$@A&@A(@A-@A0@ "B '5)(* .0.P5"8$9L:d;d<d=dAlBxCDEF`G#HP5"G`G#`H$M'0M(PS5\ ]0^@_X`xPaBbc`cCefgi`iDj`jE`kFgvnspfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRpsin_p15cos_p15false_eastingfalse_northinggvnspforintfalse_northfalse_eastcenter_latcenter_longhgvnspforyxlatlondlonsinphicosphicoslongksp! .DA$DA$GCHC@C8C03@(.p Pl9A @L ! P`:90d0@L01 ``;9d@\5 \`<9d@X)@+@HA TDCLCH@0A0GC C AXD@@Ax8@ AG@@(@.=E9Ȅ:D;<89:;<=FP8P9Խ:;<=F :P=PP0H#SS>S>sS>c+`1Hp,R1n4#p/r48047 p)p(0p'Bp-b+`4:1H+`1H48P1H1HPePg4K>O?A/0//0./0-@/0,k?/,/-/.///0/1/2ok>+`P&4#P$K>k?0.0. 1NH#PgBS0H PfR0.01n1n@2$,0 "21NK>2DN0n2.1n2/nPiB1$.0 1 ns?0H7?7?Pdrp1H#S0L0d "S?Pg"S?Pf21N 0N 1Mn N0HK?sPqb2 H"R"0.0l0D !@2HPf2S?..1H0 0 (@1H00 !S?Pd"1N1N0NPfr0p4K>YK>O>/02/01/00/0//0./0-@/0,+`4:49}46PdbK?ˀ]s$2 0 :11HPfr0ˀp11HPfr0.ˀpˀK>Y??=|׽?!TD-GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-for `PX!,<X (8(8<X!PhhD=>(o@|P >(P@@\$$l 4$ 4| X HTHTXXg'$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/k@ 4H%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @ @ "@ $ @ &@ .@ 6@ D@Q S" ̀_@k@v@@@@ ' $$Q 5 d@ #."./ @1@3RA(@A+@A.@A2@A8@A4@A9@1 4F5 8H9; >K? BM CJ .7G*70H -0-P4$7$8L9h:h;h<h=hApB|CDEF`G%HP4$G`G%`H&M)0M*PS7]@^H_H`datbtcthijklqr(s<Th`PPS7PdFef`fGPmHno `oIPtJuPvKw x8`xLP{M|@}X`}N`}O``Pd`Q`Tgvnspinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerlat_centerRpsin_p15cos_p15false_eastingfalse_northinggvnspinvintfalse_northfalse_eastcenter_latcenter_longhgvnspinvlatlonyxrhconcomzsinzcosz! -DA$DA$JCHC@C8C0)@(,@ = Pd988h8@L8?t0hp:A0@h0$ \d;8h@X& `d<8h@\A@C@AH|D!DD^]JAHdJC| C|d@|d@|Ad|Gd@|(At(Sd@| h|J,Drs/!lpa`MAtM!ppb`VAt|V@d  CH|A,@d  CH|Ȁd@|8d@|0d@|d@|-:=E8Ȅ9D;<789:;<=FP7P8Խ9:;<=F 9P=PP;P1H,r+`P%K>4*sK>7?Q/00/0//0./0-@/0,?fe>?@?HAMMER `PX!||,X!|8X  p D\>( @P>( @\]>(P@ l$$|e 4$ 4f d Xdhp xh}z4484$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTDATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/p@ 4d#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ %@Q 4 x>@J@U@@  Q a) @ h"j"#l@%p@'At@Ay@ + ) 0) P.2,3,4<5<9<:D;L<T`=>dP.=d`=`>B0BPH+N(PDQRT`T0U`U1`V2hamfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northinghamforintfalse_northfalse_eastcenter_longhamforyxlatlondlonfac!()DA,xDA,pGCxCxx (2@,xxHx0D3:@,x (84@<xx<x@8HA(DCLCH@ADdM@AJ@@@4)2P2P54P)9TT5P5P9?1 3P:;h;;hNPPB?;k PPPNP;k ԽQ;k PQ;k ;kPPRQRPPTRU#(%1% 5=|#(% %   !%   $@ 4$ D X0T d@p|0 p hamfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$hamfor $gntt_label $lntt_label hamforintM$17ptitleradiuscenlonoffsetphamfor S$19$hamfor adjust_loncossqrtsin S$19DD$hamforhaminv.o/ 1074012779 1032 20 100666 8904 ` 1"@$ G%5k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,/-/.///0/17+`"P7P&"R#@SD0. P)0N 1N0. 0N1N1N8%+`# P&"S0#S0N0N0N 1N1O. 1n.+`P&2,K>s+`1NP&"0n1n@K>s4K>7?a/01/00/0//0./0-@/0,@@??HAMMER `PX!||,X!|8X   Do>(@P>(@\p>(P@ l$$|x 4$ 4yL XL{h hxx8$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTDATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/w@ 4Lx#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ %@Q 4 x>@J@U@@  Q a) @ h"l"#p@%r@'At@ + ) 0) P.2,3,4<5<9<:D;L<T`=>dP.=d`=`>B0BPH+M NDOPPRS`S.T`T/`U0haminv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northinghaminvintfalse_northfalse_eastcenter_longhaminvlatlonyxfac!()DA,xDA,pGCxCxx (2@,xxHx0D3:@,x (84@<xx<x@8A@GAPDCLCH@@@AS@@4)2P2P54P)9TT5P5P9?1 3P:;h;;hMPOPPPՊ;:MNPOӽP;:NOӽP?;k PԊPԊԏOP; PP;k PRPP;kRST#(%1% /?](% %   !%    $@ 4$ D X0T d@p|0  haminv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$haminv $gntt_label $lntt_label haminvintM$17ptitleradiuscenlonoffsetphaminv S$19$haminvsqrtatan2 adjust_lonasinz S$19DD$haminvimolwfor.o/ 1074012780 1032 20 100666 10652 ` 1)@|&("'| G%k?/,7p"0H RbRrR+`p,+`1NRR4?sb1NR+`sR1N1NsrR"4:sR1NsR2s"RB1NsRRs2ssBssR1H4K?Y7?@/0,k?/,/-/.///0/1/2ok?y s?0H `Pd1,0 0L0d @Pd"0l 0D Ȁ`+`4:P491H11H0.002Fn100 "B_4U+`Pd200 (@PdB00 H@PdR00 0@Pdb0 0 ̂+`̄+`0,0 0@Pdr0L 0d ̆+`Pdr0l0D (@PdB00 @@PdR00 @Pd00 4 +`4?`/ Pq1HPn40.0H 1HPe4dM0N#S1H1N Pe+`0.P$+`471H0,Pf. 0 0H 0N1N K>+`Pf1Hls(P'0N K>41NsEK>S?K?yO?q/02/01/00/0//0./0-@/0,?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^?WJy?f ?f@ !TD-/ !TD-/]yk@5AIտ5A@ !TD-?=|׽@?!TD-?d)?f;?INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward `PX!,oX X8oX!DDq>(N@XP@>(R@X`\>(P@h$$xQ 4$ 4RT XTTXii,lkDD``s"$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/}@ 4Tl`%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @` @@ 0`  @@  Q  @ Q +) @ 4"6"#8@%<@'A@ @AJ @AP@A\@A` Ab B !88D ;:#@ %< L+N<'8/4:=O (0(P*-1(2h3h4x56:;<=>?CD`EFP*E`E`FJ0JPO+\4P]8^H@^h`c9olPv<@zp`z=u|Pv<wxy@yz`z=uP]8_b`c9oP]8c`c9o Pf:g$@gD`l;oHPf:hLkl`l;opqu| D``>``?`Fimolwfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tRlon_centerfeastimolwforintimolwforyxlatlondelta_lonthetadelta_thetaconiregionAD@HA4HDCHLCHHH\0Al (GAGLD|DMxyM!poMAMPYq|P!uoAA/@H 123456:;<=>?ȅ(:;1-Q-Q123456:;<=>?P:<=123456:;<=>?1P;2CV :P><=2P3CV ;P?>3P4 P6PC?1 ?PED;hF9 J^_ghqwy|Ȋ^g\2 ^oPzV?2V uw;k ;k wy;k xyӽz uyzV_ boP ӽcoPg2 goPh k ӽloPPwpyuo;k  oq;k yzq|;k|QQPPԊ ;k QQ;k   ##% %% qh#% %%  (@X 8@ H$ X X0h xX @0  8imolwfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. BS$imolwfor SB$imolwfor $gntt_label $lntt_label imolwforintS$15$imolwforintM$16ptitleradiusimolwfor S$18$imolwfor adjust_lonsincosfabsp_errorS$18DD$imolwforimolwinv.o/ 1074012780 1032 20 100666 11804 ` 1 .@| *%, lG% k?/,7p"0H RbRrR+`p,+`1NRR4?sb1NR+`sR1N1NsrR"4:sR1NsR2s"RB1NsRRs2ssBssR1H4K?Y7?@/0,k?/,/-/.//ok?Ik?Q0,+`P$0  `Pf0N0L 0d  @PhR+`47K>4. 0N 0. 0n@+`0H P'Pfb+`48`/ 1H0N1N1n1pPfr1N 1H1Pg0n@K>sPPe00 )H@Pe00 )" PPe0, 0 (@Pe0L0d (@Pe0l0D @Pe00 ( JPPe00 (h@Pe00 (B JPPe00 ( @Pe0,0 ' PPe0L 0d (@Pe0l0D '@Pe00 @Pe00 'b JPPe00 '@@Pe00 '4K>K?QK?IO?A/0//0./0-@/0,Pf"0N0l 0D 0@PhR+`47K>4. 0N 0. 0n@+`0H P'Pfb+`48`/ 1H0N1N1n1pPfr1N 1H1Pg0n@K>sPhR+`47K>4. 0N 0. 0n@+`0H P'Pfb+`48`/ 1H0N1N1n1pPfr1N 1H1Pg0n@K>sPf20N0 0 0@PhR+`47K>4. 0N 0. 0n@+`0H P'Pfb+`48`/ 1H0N1N1n1pPfr1N 1H1Pg0n@K>msPfB0N0 0 0@PhR+`47K>4. 0N 0. 0n@+`0H P'Pfb+`48`/ 1H0N1N1n1pPfr1N 1H1Pg0n@K> sPhR+`47K>4 . 0N 0. 0n@+`0H P'Pfb+`48`/ 1H0N1N1n1pPfr1N 1H1Pg0n@K>sϝ5K>ϝ%K>ϝK>ϝK>ϝK>ϝK>?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^f~?+}8k=+}8k=?f~?f;?d)@@ !TD-?WJy?f ]]yk@5AIտ5AINTERRUPTED MOLLWEIDE EQUAL-AREA `PX!,oX 8oX!DDq->(!@$P>(R@(`\>(P@h $$x 4$ 4 X4MP!,!@,@%l$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4P@%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @` @@ 0`  @@  Q  @ Q +) @ 4 "8 "#< @%>@'6A@@AF 8 !05 ;2 -+S+/:?C00+GKOT &0&P(+/(0h1h2x3489:;<=AB`CDP(C`C`DF0FPK+Q PR0S8@SP`U1]_`aef h`ijl m8`m4n>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tRlon_centerfeastimolwinvintimolwinvlatlonyxthetaregionAD @p$G G0GTGGA(GHC4LC4H@4T$ Ad$DDD|D,DDA<tD /0123489:;<=ȅ&89/+Q+Q/0123489:;<=P8:;/0123489:;<=/P90AV 8P<:;0P1AV 9P=<1P2 :P3=2P4 ;P3P 1K>k>0.00 "RK>R_7 @"RS=Peb00 "X@Per0,0 "20020.0L0d *# 7:@79ϟ0K>Y?yS>1H1Hs?S>s??q+`!h<ˀK>Y 4:@49`ϟK>Y#7@7ϟ`K>Y"6@6ϟ0K>Y"6@6`4?K>YO>/00/0//0./0-@/0,"6@6ϟK>Y"`6z@6yϟmK>Y#7@7pϟ=K>Y#707Pϟ K>Yk?/,/-/.///0/1/2ok> s? s?!0H Q0H1,0 !P@Q2L0d !bQ "2 l0D !BQ2K=20 2 2 0 2 .a 4 ARB4B@E!@K=pP@4!7+`"4:@60`p4|+`"4:060`84|+`"`4:06y044|K>YS?S?K>O>/02/01/00/0//0./0-@/0,+`#4:070`U4|+`# 4:0790`4|+`#4:070`4|h`_=2.RU6pl"QBҼh|XQRheP1 1nS>pg0 S>ph@1n pe2pjBppr0 pdb1pebhdHaXA Hh|4z+`#4:@70`4|k?qHXa4QrQb47Qk?!_?s8_?!000n 1. `@1QN@0N0$H @0?)K?) ] 7` $ 01n 0,7RW6 RX7 4k?qHX^u4 Hv7?&1N"68Ghh000nph0n 5pik?7K>+`s?K> 0Hs?H: @K>4@7?"66K>4?@7?k?7K? sK?@"rKS#78G"#S0,0 "@S"0L0d "@S?S20l0D "@SB00 "ZSFSH"0., rSJBKYX0N 1a?K?`KAP4"? SFbSR`40.1N0 0 :0?K?k?_?80Sb00 000.K]' _'SE4SFK?Y1@0 0N 1i.*s@7?+`"`4: 6yK?Y@7?+`#4:7K?Y@7?K?Y4?@7?K?Y4?@7?k?7 @7_+`"`4: 6yK?Y@7?K#?788G :+`#4:7K?Y@7?kKk?K?k@K?Y4@7?k?7KW+`k?78#KW4:@70K?Y4?@7?!TD-@!TD-? =pA3ƀ\)?zG{zG{@zG=|׽!TD-@!TD-@ !TD-? !TD-?!TD-?@!TD-@!TD-!TD-?!TD-?_0mȃ? error (isinusfor.c/%s : %s isinusforinitbad return from Isin_for_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valueIsin_for_initbad return from Isin_for_initisinusforbad return from Isin_fwdIsin_fwdIsin_for_free error (isinusfor.c/%s) : (%i) %s memory allocationinvalid parameterinvalid handleinvalid key@0 `P X!00,:X!X0X8: X   DG|X!PX!d$d\X!haX!Ht )X! T<< G>( P?@L >( $@P(   $$ $DL$L %] DL D ,;h V  gq_ iz z  l$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$CODE$$CODE$$CODE$$CODE$$CODE$$DATA$ $SHORTDATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ L D  &.6? G P Z e@m@v         % 2 @N[ j x    ʠנ     *5@ IOW]ci qz   CǠDϠԠߠ  ;    '-4;AHOEWB_<g o v~   `  h j l ɠnp Ҡq` @s u@w@ޠy{ ` @@`   ` `   @    ` @ @@&  / 7>G LCW]5c`?  mvv}xp` @     @ `     xp` @    `@   @  @    &  0  <CL `  [  l  @  ` @   ɠҠ  ! #% '  )' +/ -7 />` 1F@ 3N 5U 79 \;_ g= >@@nBwD@D@D@FHJ  M O Q S UW YZ  g= ]_@a@c@c@dfh& 1 km@@oI  L rt@OvXxa  f z|@k~v { K K @@       ` @       '@c@0c@`9 @ I T ] e n`   y @      ``  @@       8      5 @@```  @      &`   0 7 B K@@ S@@  [@@@  c@@  k@@ s@@ {@@@ @@ @@ @@ @@@ @@ @@ @@! @@@# @@% @@' @@) @@@+ @@- @@/ @@1 @@@3 @@5 @@7 @@9 @@@; @@= %@@? ,@@A 3@@@C :@@EG AI PK _  j M u O  Q ` S @ U  W  Y  [  ]  _  a ` c @ e  g  i  k  m % o 0 q ;` s F@ u Q w \ y g { r } }    `  @              `  @        "  -  8  C`  M@  W  a  k  u      `  @          `  @      / >  J ` ՠ @ V@ c @ k @ s @ {@ @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ) @ 6 @ C@ @P @X @` @f@ @n @v @|@@@@!@#@%@@'@)@+@-@@/@1@3@5@@7@9@;@=@@? @A@C@E @@G'@I.@K5@M;@@OB@QSNUVW >  J Y` ]  V@_[` ak cv e g i k` m@ o q s u w y { ` } @   " , 6 @ J ` T @ ^ h r |    `  @        `  @    + 6 A L ` W @ b r     ` @        ` +@ 6 A L U ^ i t` @        ` @          $`  /@ :  E P [ f q |` @   ! # % ' ) +` -@ /  1 3 5 7 9 ;$` =.@ ?8  AB CL EV G` Ii Kr` M|@ O` @S BU@QWY[  ] c` _ k@ a s c { e  g  i  k  m ` o @ q  s  u  w  y  {  } `  @           ` )@ 6 C P X ` f n` v@ |      ` @       ` @       '` .@ 5 ; \X` L   $'4@>   ` `<DLW `b o  z  % % % `  $$!&o#%   (@ , . @ 1 !3 /4 06 *7@:9D N  `? =@@YBb@ k E@ I sK GL`~N  Q S U` W@ Y [ ]_aʠc` e g i kpmho`q@ s u* wy@5{C}S@$Y}@%@aj(p@&&Y}@*v *c`  **%@**+             " -  7 ;  DI  R [ d l t {` @    @` @    @             `7 @8        `! `  @     ! "($1 9@` )0B+H@@@Q /Z 13_5j 7 n: 8r@@;@@@= ?@@A@@C` E@ G@@I@@K@@M@@@O@@QSU  X  Y[@] A   ,       _ "_ 0_ ?_W  K  Q P* T^@g@ @"@$@&@( IAm A As K( +4 30 377 :9> A;E H=L O?S VA CZ ]E ,`, M&/3',6O=D,KRYW aQ yabQ  W@Y@[@]@_cW Ad7 AngA A@A x {p r t v xo rz | ǀ ΀~ tcԀScvccQ  `@ #"!@ @׀As& ۀQ  @ ,+*@)@W 'An-@A2@A/@A. Q  W 3 A  8  8_ 6Ҁ  T0TPT V`VY$`Yj0jP,(P308`6<Ht P€C,<`ĀD`ЀG@P,Dlt`ЀGxP,P3P4|`5`6`ЀGP,P7`8`ЀGP,P9`:`ЀGP,P;`<`ЀGP,P=`>`ЀG P,P? `@`ЀG$P,PA(8`B`ЀGtP>~BFGPHIJ`J[@[ u yz$|<`|>L`p``0P,4`À0>PRT`WրX,PRW,`W`X`Yisinusfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listremquotdiv_tldiv_twchar_t__sival_ptr__svi_int__svi_int_ssigvalsigval_tpthread_attr_t__sigev_reserved__sigev_notify_attributes__sigev_notify_function__sigev_value__sigev_signo__sigev_notifysigeventsigevent_t__SIGEV_THREAD__SIGEV_SIGNAL__SIGEV_NONE__sigev_typestm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_tpad2pad1ki_timevalkt_trlim_maxrlim_currlimitru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusageSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__dev_id__lockpage__addr__gfault__band__fd__file__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tsigset__sigset_tsigset_tss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr27ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr27_loss_cr27_hiss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_low__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_size__stackstack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxt__sub_ctxt_tuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_tsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionpthread_tss_onstacksigstacksv_flagssv_masksv_handlersigvecfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsiglocal_misc_tsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsi__xsi_tsc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_doublepw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwdfloat_tdouble_t__iobncol_invicol_cenncolIsin_row_tkeyrowcol_dist_invcol_distijustifylon_cen_merref_lonnrow_halfnrowang_size_invsphere_invspherefalse_northfalse_eastIsin_tstrnumerror_terrortextroutineISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinisinusforinitdjustifydzonenzoneistatIsin_for_initthisIsinirowclatncol_cenisinusforyxlatlonIsin_fwdcolflonIsin_for_freeIsin_errorerr!TA A A(8DA0,GC,C,C,C,T$xxHt@,A04KTKT!@DDAHDPAHPCCCCYKTCx/YBG/KH`H`C`LC`H`@`K`!AHCCCAAKp,,A,APpbdx|A !>A A(XVUTӆUV?9YxQQj?6 ‰Չս‰;k Չ;k Æ2 Ľ; QQ 22 2 2 2 2 2 ̆2 ͽ# #$#4!#.#(#$#1# # ## #"#   '(,-BGIuȍ Ӿ-(,)*" 0.Fy?6 QQ 7: QQ  7: QQ 7: QQ7:QQ7:QQ7:#(GI,*&'Bu**-)(GI'$$-%%('(+-,-"-.2=2362415QQ7 6>ӾBվGIՍ[FBGI;k G[I;kJ IHAJ[ [uz|yuzz||>. >ӾBQ?:Q 2  ȔՔԔ$   +     QQ?7QQ7aa (.QQ?7;/QQ7251Ծ766; :; TU>ӆUT?9XW##"%%%%%% %@%U% %&?H% %%  (@ < @P P $ ` L @p|  03  0 K0  P A(4@0H'0 -X h isinusfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. DS$isinusfor SD$isinusfor $gntt_label $lntt_labelerror__iobC$22fprintf isinusforinitS$28$isinusforinit Isin_for_freefabs Isin_for_initS$29$Isin_for_init Isin_errormallocfreecos isinusforIsin_fwd S$31$Isin_fwdisinusinv.o/ 1074012781 1032 20 100666 41536 ` 1@@   $d xPG%4k?7+`7X77#4:@7K?Y@7?k?/,/-/.///0o0+`H:0H  0H @"z1,0 " `Pd1L0d "@Pd"1l0D "p@S=Pe200 "p@PeB00 "JPnR00>1K>k>0.00 "RK>R_7 @"RS=Peb00 "X@Per0,0 "20020.0L0d *# 7:@79ϟ0K>Y?yS>1H1Hs?S>s??q+`!h<ˀK>Y 4:@49`ϟK>Y#7@7ϟ`K>Y"6@6ϟ0K>Y"6@6`4?K>YO>/00/0//0./0-@/0,"6@6ϟK>Y"`6z@6yϟmK>Y#7@7pϟ=K>Y#7@70ϟ K>Yk?/,/-/.///0/1/2ok> s? s?!0H Q0H1,0 !P@Q2L0d !bQ "2 l0D !BQ2K=20 2 2 0 2 .a 4 ARB4B@E!@K=pP@4!7+`"4:@6p`p4|+`"4:06p`84|+`"`4:06yp44|K>YS?S?K>O>/02/01/00/0//0./0-@/0,+`#4:07p`U4|+`# 4:079p`4|+`#4:07p`4|h`_=2.RU6pl"QBҼh|XQRheP1 1nS>pg0 S>ph@1n pe2pjBppr0 pdb1pebhdHaXA Hh|4z+`#4:@7p`4|k?qHXa4QrQb47Qk?!_?s8_?!000n 1. `@1QN@0N0$H @0?)K?) ] 7` $ 01n 0,7RW6 RX7 4k?qHX^u4 Hv7?&1N"68Ghh000nph0n 5pik?7K>+`s?K> 0Hs?H: @K>4@7?"66K>4?@7?k?7K? sK?@"`rKT#78G"zSFS?#SE2S1. 1%Nr0,0 "`@S"0L0d ":0.SHBK]XKSSD0N 1! ?SI0.K? HKUP6? 6 H49 `4י \%P&0 L 1fN0l0D !zS200 !ZSGbSBSR.s00 @0.sSSb0 0 @0sK?Y4@7?+`#4: 7K?Y@7?+`# 4:79K?Y@7?rK?Y4?@7?rK?Y4?@7?k?7 @7_+`"`4: 6yK?Y@7?K#?788G :+`#4:7K?Y@7?kKk?K?k@K?Y4@7?k?7KW+`k?78#KW4:@70K?Y4?@7?!TD-@!TD-? =pA3ƀ\)?zG{zG{@zG=|׽!TD-@!TD-@ !TD-? !TD-?!TD-?@!TD-?!TD-?@!TD-@ !TD- !TD- error (isinusinv.c/%s) : %s isinusinvinitbad return from Isin_inv_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_inv_free error (isinusinv.c/%s) : (%i) %s memory allocationinvalid parameterinvalid handleinvalid key@0 `P X!00,:X!X0X8: X   DGyX!PX!d$d\X!h^ X!<t gX! H<< G>( D?@L C>( $@P( V $$ b8L$L c] tL t j;h, 0W 0 q\`H D{0D {0  dP$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$CODE$$CODE$$CODE$$CODE$$CODE$$DATA$ $SHORTDATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ L t 0 &.6? G P Z e@m@v         % 2 @N[ j x    ʠנ     *5@ IOW]ci qz   CǠDϠԠߠ  ;    '-4;AHOEWB_<g o v~   `  h j l ɠnp Ҡq` @s u@w@ޠy{ ` @@`   ` `   @    ` @ @@&  / 7>G LCW]5c`?  mvv}xp` @     @ `     xp` @    `@   @  @    &  0  <CL `  [  l  @  ` @   ɠҠ  ! #% '  )' +/ -7 />` 1F@ 3N 5U 79 \;_ g= >@@nBwD@D@D@FHJ  M O Q S UW YZ  g= ]_@a@c@c@dfh& 1 km@@oI  L rt@OvXxa  f z|@k~v { K K @@       ` @       '@c@0c@`9 @ I T ] e n`   y @      ``  @@       8      5 @@```  @      &`   0 7 B K@@ S@@  [@@@  c@@  k@@ s@@ {@@@ @@ @@ @@ @@@ @@ @@ @@! @@@# @@% @@' @@) @@@+ @@- @@/ @@1 @@@3 @@5 @@7 @@9 @@@; @@= %@@? ,@@A 3@@@C :@@EG AI PK _  j M u O  Q ` S @ U  W  Y  [  ]  _  a ` c @ e  g  i  k  m % o 0 q ;` s F@ u Q w \ y g { r } }    `  @              `  @        "  -  8  C`  M@  W  a  k  u      `  @          `  @      / >  J ` ՠ @ V@ c @ k @ s @ {@ @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ) @ 6 @ C@ @P @X @` @f@ @n @v @|@@@@!@#@%@@'@)@+@-@@/@1@3@5@@7@9@;@=@@? @A@C@E @@G'@I.@K5@M;@@OB@QSNUVW >  J Y` ]  V@_[` ak cv e g i k` m@ o q s u w y { ` } @   " , 6 @ J ` T @ ^ h r |    `  @        `  @    + 6 A L ` W @ b r     ` @        ` +@ 6 A L U ^ i t` @        ` @          $`  /@ :  E P [ f q |` @   ! # % ' ) +` -@ /  1 3 5 7 9 ;$` =.@ ?8  AB CL EV G` Ii Kr` M|@ O` @S BU@QWY[  ] c` _ k@ a s c { e  g  i  k  m ` o @ q  s  u  w  y  {  } `  @           ` )@ 6 C P X ` f n` v@ |      ` @       ` @       '` .@ 5 ; \X` L   $'4@>   ` `<DLW `b o  z  % % % `  $$!&o#%   (@ , . @ 1 !3 /4 06 *7@:9D N  `? =@@YBb@ k E@ I sK GL`~N  Q S U` W@ Y [ ]_aʠc` e g i kpmho`q@ s u* wy@5{C}S@$Y}@%@aj(p@&&Y}@*v *c`  **%@**+             " -  7 ;  DI  R [ d l t {` @    @` @    @             `7 @8        `! `  @     ! "($1 9@` )0B+H@@@Q /Z 13_5j 7 n: 8r@@;@@@= ?@@A@@C` E@ G@@I@@K@@M@@@O@@QSU  X  Y[@] A   ,       _ "_ 0_ ?_W  K  Q P* T^@g@ @"@$@&@( IAm A As K( +4 30 377 :9> A;E H=L O?S VA CZ ]E ,`, M&/3',6O=D,KRYW aQ yabQ  W@Y@[@]@_cW Ad7 AngA A@A x {p r t v xo rz | ǀ ΀~ tcԀScvccQ  `@ #"!@ @׀As& ۀQ  @ ,+*@)@W 'An-@A0@A2@A.      Q  W 3 A  8  8_ 6ր $!% T0TPT V`VY$`Yj0jP,(P308`6<Ht P€C,<`ĀD`ЀG@P,Dlt`ЀGxP,P3P4|`5`6`ЀGP,P7`8`ЀGP,P9`:`ЀGP,P;`<`ЀGP,P=`>`ЀG P,P? `@`ЀG$P,PA(8`B`ЀGt?tP?~CGHPIJK`K\@\ v z{$}<`}?L`p``0P,4`Ā0>PRT`XڀY,PRX,`X`Y`Zisinusinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listremquotdiv_tldiv_twchar_t__sival_ptr__svi_int__svi_int_ssigvalsigval_tpthread_attr_t__sigev_reserved__sigev_notify_attributes__sigev_notify_function__sigev_value__sigev_signo__sigev_notifysigeventsigevent_t__SIGEV_THREAD__SIGEV_SIGNAL__SIGEV_NONE__sigev_typestm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_tpad2pad1ki_timevalkt_trlim_maxrlim_currlimitru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusageSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__dev_id__lockpage__addr__gfault__band__fd__file__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tsigset__sigset_tsigset_tss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr27ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr27_loss_cr27_hiss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_low__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_size__stackstack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxt__sub_ctxt_tuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_tsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionpthread_tss_onstacksigstacksv_flagssv_masksv_handlersigvecfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsiglocal_misc_tsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsi__xsi_tsc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_doublepw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwdfloat_tdouble_t__iobncol_invicol_cenncolIsin_row_tkeyrowcol_dist_invcol_distijustifylon_cen_merref_lonnrow_halfnrowang_size_invsphere_invspherefalse_northfalse_eastIsin_tstrnumerror_terrortextroutineISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinisinusinvinitdjustifydzonenzoneistatIsin_inv_initthisIsinirowclatncol_cenisinusinvlatlonyxIsin_invcolflonIsin_inv_freeIsin_errorerr!TA A A(8DA0,GC,C,C,C,T$xxHt@,A04KTKT!@DDAHDPAHPCCCCY KTCx/YCH/KH`H`C`LC`H`@`K`!AHCCCA;AAY AA/dx|A !>A A(XVUTӆUV?9YxQQj?6 ‰Չս‰;k Չ;k Æ2 Ľ; QQ 22 2 2 2 2 2 ̆2 ͽ# $#4!#.#(#$#1##  ## #"#   ()-.CHJvȍ Ӿ.)-*+" 0/Gz?6  QQ  7:  QQ  7: QQ 7: QQ7:QQ7:QQ7:$)HJ-+'(Cv++.*)HJ(%%.&&)(),.-."./3>3463516QQ7 7?ӾCվHJՍ\GCHJ;k H\J;kK JHAK\ \v{}zv{{}}?. ?ӾCQ?:Q 2   ȔӾ $$    ӾԔ- QQ?7QQ7   X.QQ?7;/QQ7251Ծ766; :; ܾTU>ӆUT?9YX##"%%%%%% %@%a% %&KH% %%  (@ < @P P $ ` L @p|  03  0 ?0  H A(4@0H'0 -X h isinusinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. DS$isinusinv SD$isinusinv $gntt_label $lntt_labelerror__iobC$22fprintf isinusinvinitS$28$isinusinvinit Isin_inv_freefabs Isin_inv_initS$29$Isin_inv_init Isin_errormallocfreecos isinusinvIsin_inv S$31$Isin_invlamazfor.o/ 1074012782 1032 20 100666 10332 ` 1(\@< DD$"H&@8G%k?/,/-/.o0H S>0H +`p,BS>p$S>s1H4#p&47 480p-R+`4:1H1H1HPePg4K>O?1/0./0-@/0,k?/,/-7`+`P$R0H 0.0H 1H7>7>1H7>7>+`P)2S>#P$"S>1*NS>S0N .0,0 !@S"S00n@+`P*BS>4S>P+1DNK>K>3N:NrP6"S>P'2S>S>2N P$0NL8( sK>Y7>/0-@/0,+`SP%B#77?!0N+`49@7?!m4@?Point projects to a circle of radius = %lf LAMBERT AZIMUTHAL EQUAL-AREAlamaz-forward `PX!,X!DD8X `DDD>(+@0P>(P@00\8$$l#\ 4$ 4|$ X&,``6T8h0h0@O"H$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4`%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @ @ @ #@ - @ ;@Q J V@b@m@x@@! Q / @@ (()@+@-JA@A!@A"@A@A @A'@A*@`; @@B$ (F !1*$1#+ +0+P14 5<6H7H8H<P=\>d?l@t`ABP1A`A`B F#0F$PK1WX(Y8ZH[tabce`eHfPK1P\F] ^,_<`_G`eH`fI`gLlamazfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRsin_lat_ocos_lat_ofalse_eastingfalse_northinglamazforintfalse_northfalse_eastcenter_latcenter_longlamazforyxlatlondelta_lonsin_delta_loncos_delta_lonsin_latcos_latgkspmess!+DA DA GCHC@C8(@ T(@P5<(@<(+ 0D64H@,- @D75H@<#@%@H@ADC@ C@@@@(A(GC@pC@xC@`C@h@@@@@@At,@@@ A/@@@@@@a+8?45678@P4P66P7845678@7P8PP8?;x 5P;h?;h @P@A; PB@ؽWPPF?;k  WXX;xYY;xZPP[]aP֌Z[a;kԽcPPbebPabcbcPPPcf]PP]:^UU^2_ _e# #4%7% qW#0% %     !% )    (@0 8$ H X0Xh t@0  lamazfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$lamazfor $gntt_label $lntt_label lamazforinttsincosM$19ptitleradiuscenloncenlatoffsetplamazfor S$21$lamazfor adjust_lonC$20sprintfp_errorsqrtlamazinv.o/ 1074012782 1032 20 100666 11328 ` 1,@@   (%j*0G%?k?/,/-/.o0H S>0H +`p,BS>p.RS>s1H4#p&47 480p$p-b+`4:1H1H1HPePg4K>O?1/0./0-@/0,k?/,/-/.///070+`P&P$0.0. 1NH+`#SP'B0H S0N1n0,0 *+`4:@49p4@1N7?q7?K>k>+`1HP$bs"R"0L0d X+`P'"S?sP$2S?0N 1N 1Mn N0HK>r+`P&Rs>0H"R2S>s>0.0l0D S>2H+`P&2S?.%00 h@S?s+`P$"1N1N0N+`P&b0K>sD40 0 J11H+`P&b0.K>hs11H+`P&b0K>rdP$RK>s$4K>Y7>/00/0//0./0-@/0,@?=|׽?!TD-LAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverse `PX!, X! ((8 X H((D>(p<@HP>(P@H8\$$l8 4$ 4|ll Xlt`t`[%$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4l%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @  @ "@ $@ .@ 8@ F@Q U a@m@x@@@#   Q 1 $@ **+@-@/A$@A*@A+@A0@A'@ !>&F* .A /@ 83:&@1; .0.P4 7 8<9L:L;L<L@TA`BhCpDx`E!FP4 E`E!`F"J%0J&PO3XY0Z0[P\\P]>^h_x`_?abcdPe@fgh PiAj8kP@k``kB`nCqPe@m@mn`nCpq`qDr`rE`sHlamazinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerlat_centerRsin_lat_ocos_lat_ofalse_eastingfalse_northinglamazinvintfalse_northfalse_eastcenter_latcenter_longlamazinvlatlonyxRhzsin_zcos_ztemp!.DA DA GCHC@C8%@ 5X0@T8@0@<0; 0H97(L(@,( @H:8L@<"L@H7@9@A0hD!,,YXJA0hJCh Ch$@h$@hAPhG$@h P\/(gh/A\h/A/8\C0h`C0h$@h0$@h$@h$@h(a.9/05/04/03/02/01/00/0//0./0-@/0,2n@0H25n@1npeB]0Hk?/,/-o0H 0H 1H#S0.# S%0,0 @1Hs?+`1HP%r4#PfPh20HPgB0N 1N HPdb+`P$B4#1N0L0d 0H Pdb1.PfB0N 1HPfK>1H,sPf"Pe4K>,'0rK>O?!/0-@/0,+`4:494X=|׽??!TD-=|׽Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedlamcc-for `PX!PP,X (x(8X!(P(D9>( @P8>(P@X\$$lP4 4$ 4|Qh XS`t`ce  @ @m+# $TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4` @%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @  @ @ @ !@ ,@ 7-@ :0@ =3@ @@ N@Q ], Li@u@@ @"@$@&@(@*EA#@A%@A'@A(@A*@A@A,@A)@A+@ A '.,.)-Q S. $@ ;L:LM8@O7@Q/hA<@AG@A=@AK@A@@2 6`7jD Gc ;b @UJHUBbCK +0+P4.>D?T@XAXE`PFAG|I`IBLMNPQRSTUVWX0Y@ZL\`_t`|afghijkm`mCnP4.]$`mC`nDqG0qHPwU~0P`HPh`aPb`e`fPwUPbPc `d`e`f`g`llamccfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minoresecenter_loncenter_latnsf0rhfalse_eastingfalse_northinglamccforintfalse_northfalse_eastc_latc_lonlat2lat1r_minr_majsin_pocos_poconms1ms2tempts0ts1ts2lamccforyxlatlonrh1sinphithetats!4@+JAD|JAD|PC|C|C|C|C|C|LA @D>P@H|PL@|HLP LT@>X|@HLL@|A,Lx@MN@@|@L>L8@|8LIL0@|0Lx(QS(@|(LC||LC||AxVAxPAxSA0x\A@x_A`xYLExL @| LCL@|LNLag@|ADD!qGADGCDLCDHA/K$$@D8K$$@DP$@D$@D GAG$@D0AD$@D$@D$@DA `+@>?սALMNPQTUWXYZ]_`agikP >P+ERU\h@PEVX\h>?@ALMNPQTUWXYZ]_`agik ?PAAPE?;kԽM\ԄGVVG2VI ImLMQjսN;kMPNPPR PPRR;x  QPTSTP; UTU; PUVV;x WP; XWX; PXY;k P YZP; PZ\;kӽ_P`;ԽaPP`Pa;fVVf1aPgPg;Phh; i;hPj;hkPkm;Pn ];k ӽ]P` Aq~?;kȖ~;k ;k ӽPP; ԽPPP;PԽPPP;kP;k P;kPPVV2V I#2# #R%%e#H% %      Q   9%       (@ 8$ H X0X hx @$00<S L`plamccfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$lamccfor $gntt_label $lntt_label lamccforintS$23$lamccforintfabsM$24p_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparl cenlonmeroriginoffsetplamccfor S$26$lamccfor adjust_loncoslamccinv.o/ 1074012783 1032 20 100666 13796 ` 15@0 881X,D3`,$G%#k?/,/-/.///0/1/2/3/4/5o`0HS=S+`p.0HS=p&S=4#p0S=Cp$1#S0, 0 *+`4:494R2nSS=c,%pepdrS=s1H7?pfb7?pnRS?s?S?Per2@HS?s?0H1HPer0H1H7?7?S?s?PerS?S?s?0H1HPer0HPeRs?Pers?PgR0H1.0L0d !ZprB2@H2 HPgBPf2`H0N2n pi20N+`4:1Npe"PePg1H1HPeb1HPePg4K=O>/05/04/03/02/01/00/0//0./0-@/0,2n@0H25n@1npeB]0Hk?/,/-/.//o@k>K>+`4#k?P+k>P&"0.P$P(B0. 1N 1,00 J 0H PP2K>sPfBPdb1n0K>s4K>YK>O>/0//0./0-@/0, 0 P"1L0d 0H 1N1N0H 1l0D PdB00 PhPi2PPfB1 N 0n1n@7?k?0HPerK>s$K?>@MPfB=|׽??!TD-Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC `PX!PP,X 0008X!`P`Dq>(`b@hPp >(P@hX\,$$lyP 4$ 4|z X|\!! @ @,D$$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4 @%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @  @ @ @ !@ ,@ 7-@ :0@ =3@ @@ N@Q ], Li@u@@ @"@$@&@(@*EA#@A%@A'@A(@A*@A@A,@A)@A+@ A '.,.)-Q S. \@ ;L:LM9@O7@Q/hAJ@AL@AU@AO@A< 4 7`> AbF Ld ;UOHU=P *0*P3.>D?T@XAXE`PFAG|I`IBLMNPQRSTUVWX0Y@ZL\`_t`|aghijkln`nCoP3.]$`nC`oDsG0sHPyUDDDTP``l`at`fPyUPb`cPd $0LX`e\`f`g`jlamccinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minoresecenter_loncenter_latnsf0rhfalse_eastingfalse_northinglamccinvintfalse_northfalse_eastc_latc_lonlat2lat1r_minr_majsin_pocos_poconms1ms2tempts0ts1ts2lamccinvlatlonyxrh1tsthetaflag!4@*JAD|JAD|PC|C|C|C|C|C|LQ @D>P@H|PL@|HLB LT@>X|@HLF@|A,Lx@MN@@|@LVL8@|8LXL0@|0Lx(QS(@|(LC||LC||AxVAxPAxSA0x\A@x_A`xYLHxL @| LSL@|LDLah@|!<@JAD\JAT\MC\ C\$\`p#,@CD\\@\\@\\@\\@\ GAlpG$,5,At,DYD\@\P\@\K\\@\8\@\0A `*@>?սALMNPQTUWXYZ]_`ahjlP >P*ERU\i@PEVX\i>?@ALMNPQTUWXYZ]_`ahjl ?PAAPE?;kԽM\ԄGVVG2VI InLMQkսN;kMPNPPR PPRR;x  QPTSTP; UTU; PUVV;x WP; XWX; PXY;k P YZP; PZ\;kӽ_P`;ԽaPP`Pa;gVVg1aPhPh;Pii; j;hPk;hlPln;Po ];k ӽ]P` PPP PP?;kPP;k ;k;PPPP;;PPI#R%%_|H% %      Q   Y%    9    (@h 8$ H X0X h @$00<S L`lxlamccinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$lamccinv $gntt_label $lntt_label lamccinvintS$23$lamccinvintfabsM$24p_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparl cenlonmeroriginoffsetplamccinv S$26$lamccinvatan2phi2z adjust_lonmerfor.o/ 1074012783 1032 20 100666 10592 ` 1)`@   %"',4G%k?/,/-/.o0nS>+`p%#Sp'rS>4#p$bh%S>cp)S>sp(p%2p-RpdB1H0H1HPf21H0N h%1npe"+`4:PePgrPebPeRPePg4K>O?1/0./0-@/0,k?/,/-70H 0H 1H#S0.# S%0, 0 *+`4: 494j1Hs?+`1HP%B+`P(bP&0H P'"1.0N +`P&K>1H, rP'"P(1N +`P%K>4*&sK>7?!/0-@/0,??!TD-=|׽MERCATORTransformation cannot be computed at the polesmer-forward `PX!,qX P8qX!dDr>(hD@LPS>(P@PH\$$ld8 4$ 4|elT XTghhw(yc"$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/ @ 4Th#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ %@ 0@ 2@ 5!@ 8@ G@Q U$ _@k@v@@@ @"+A@ &&Q 9 @ '2&23$@5#@7A+@A(@ !@" 'B );+., )0)P0&678889T:T;T=T>T?T@`DEFGH`I)JP0&I`I)`J*O-0O.PT;ZP[@\D]T`]AP`Ba\bdcd`dCf`fDg`gE`hFmerfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorlon_centerlat_origineesm1false_northingfalse_eastingmerforintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempmerforyxlatlontssinphiHHCHC@C8C0.@@ 0476888@,82@0`(T\9?(@T(4 HP:8T@D, PP;8T@L!P=62ATX2T@P)@ 0@ADD!OGADGCDLCDHK@D AG@D@D@@D@D0@Da0=867ս9:;=>?@EFGHP 6P>@ 7P9@6ֽ89:;=>?@EFGH 8P>?::P;;P>P??;k 9P?P@;k;kP;k@PDXD1 XEPE; P F;h PG;h PHPHI; PJ@PO Z?;kȏZ;k\XX\2X] ]f a;kbP;PcPPPbcP;kԽdPPcdPP;kPPfddg#.#F%C%AY#0% %        1%      $@P 4$ D X0T dx @0  0merfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$merfor $gntt_label $lntt_label merforintS$21$merforintsqrtcossinM$22ptitleradius2 cenlonmeroriginoffsetpmerfor S$24$merforfabsp_errortsfnz adjust_lonlogmerinv.o/ 1074012784 1032 20 100666 10296 ` 1d(8@  d$"&, G%k?/,/-/.o0nS>+`p%#Sp'rS>4#p$bh%S>cp)S>sp(p%2p-RpdB1H0H1HPf21H0N h%1npe"+`4:PePgrPebPeRPePg4K>O?1/0./0-@/0,k?/,o+`P+k?P(4#0. P$P&"0. 0N 1 2n@7?k?0HPeBK>sK? @K>O?@/0,PfPg"Pdb0N1n 0K>r4?MERCATOR `PX!,qX  8qX!dDr>( @ P->(P@H\$$l5 4$ 4|6< X<8``H|J44Lc"$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4<`#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ %@ 0@ 2@ 5!@ 8@ G@Q U$ _@k@v@@@ @"+A@ &&Q 9 @ '2&23$@5#@7BA2@A( $;*.;&+ )0)P0&678889T:T;T=T>T?T@`DEFGH`I)JP0&I`I)`J*O-0O.PT;[\]8^8_D``dl`d@elPT;a|b|`d@`eA`fDmerinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorlon_centerlat_origineesm1false_northingfalse_eastingmerinvintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempmerinvlatlonyxtsflagHHCHC@C8C0.@@ 0476888@,85@0`(T\9?(@T(, HP:8T@D* PP;8T@L!P=62ATX2T@P3@ 0@A0hD!$4]\;A8@;CLCH8C4@@@@@A8@,@ @0a0=867ս9:;=>?@EFGHP 6P>@ 7P9@6ֽ89:;=>?@EFGH 8P>?::P;;P>P??;k 9P?P@;k;kP;k@PDXD1 XEPE; P F;h PG;h PHPHI; PJ!P\]^_bPP[\Pӽ]^_b ]^PP \^^?;k_;P_`adebPPP;kbd#F%C%;Wm0% %        9%      $@ 4$ D X0T dx @0merinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$merinv $gntt_label $lntt_label merinvintS$21$merinvintsqrtcossinM$22ptitleradius2 cenlonmeroriginoffsetpmerinvexpphi2z adjust_lonmillfor.o/ 1074012784 1032 20 100666 8592 ` 1!@$ ,, G%>k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,7p+`P$20H 0.#S+`P'"P(S1n K?H s+1F0H+`P'"#P%S"K?40N* rK?Y7?@/0,?!TD-@?MILLER CYLINDRICAL `PX!||,X!|8uX D0>(@P1>(P@ \ $$l9D 4$ 4|:xL XL< L||N00P8$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4L|$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ &@Q 5 x@@L@W@@  Q c) @ k"m"#o@%s@'Aw@ + ) 0) P.1,2,3<4<8<9D:L;T`<=dP.<d`<`=A0APG+LM NHP`P.Q`Q/`R0millfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingmillforintfalse_northfalse_eastcenter_longmillforyxlatlondlon!()DA,xDA,pGCxCxx (1@,xxHx0D29@,x (83@<xx<x@8HADCC@KȀ@@@@3)1P1P43P)8TT4P4P8?1 2P9;h:;h;PP;<;P= LPPAL?;k NMPPPԊMN;k ;k PPPPNQ#(%1% /;^(% %   !%    (@ 8$ H X0X h@t0 millfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$millfor $gntt_label $lntt_label millforintM$17ptitleradiuscenlonoffsetpmillfor S$19$millfor adjust_lontanlogmillinv.o/ 1074012785 1032 20 100666 8564 ` 1!t@( 00x$G%?k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,7p+`P)P&"P(P$20. 0. 1Fn 0K?s+`# P'"S&1n1n@0H#S"S4K?0.0NrK?Y7?@/0,@??!TD-MILLER CYLINDRICAL `PX!||,X!|8X D:>(@P;>(P@ \$$$lCH 4$ 4|D|4 X4F VwxX  `8$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 44x$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ &@Q 5 x@@L@W@@  Q c) @ k"o"#s@%u@' + ) 0) P.1,2,3<4<8<9D:L;T`<=dP.<d`<`=A0APG+K L$N(O<Q`Q,R`R-`S.millinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingmillinvintfalse_northfalse_eastcenter_longmillinvlatlonyx!()DA,xDA,pGCxCxx (1@,xxHx0D29@,x (83@<xx<x@8A$0>A(DCC@@@@@3)1P1P43P)8TT4P4P8?1 2P9;h:;h;PP;<;P= KPPNPLPP'&K'&LN?;k NOPP;k ;k QOR#(%1% )=v#(% %   !%     (@ 8$ H X0X h@t0 millinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$millinv $gntt_label $lntt_label millinvintM$17ptitleradiuscenlonoffsetpmillinv S$19$millinv adjust_lonexpatanmolwfor.o/ 1074012785 1032 20 100666 9972 ` 1@&@h pp@#!$ dG%Yk?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,/-/.///0/1/2ok?yk?0H+`P$2 `PqPm"40.0H 1HPe1H0Nd1H11H0.002Fn10,0 :_+`4: 49`4#S1H1NPeB+`0.Pdb1H0LP&"0d 0H 0N1N +`P'K>1HPfr. sP("1N +`P%K>4*rK>K?K?yO?q/02/01/00/0//0./0-@/0,@ !TD-?=|׽@?!TD-?d)?f;?MOLLWEIDEIteration failed to convergeMollweide-forward `PX!||,X!|||8eX xHHD >(9@DP!>(P@H \d$$l9 4$ 4|: X<LLHN  V7!$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@ 4 $,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @  @ @ &@Q 5 x@@L@W@@  Q c) x@ k"m"#o@%s@'Aw@A@A"@A@A <$ '7 !6 /+16#2 % 0% P*-,.,/<0<4<5D6L7T`89dP*8d`8`9=0=PB+K0LTMdQhQlPR6SpTU@UV`Y9QPR6PW7XY`Y8`Y9\abcd(eL`e:fL`f;`g>molwfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingmolwforintfalse_northfalse_eastcenter_longmolwforyxlatlondelta_lonthetadelta_thetaconi!(%DA,xDA,pGCxCxx% ((-@,xx'@xx# 8/@<xxHx<D05@<HxA0JCLCHx@DATDHJ\aJMTUMAdlMAhPp!HhQKAllA/x@x@x@@-%/P/P.-P%4TT.P.P4?1 0P5;h6;h7PP78;P9 =KPPMSU\acdSUaQK?;k  KM;k LMUV QS;k ;k SU;k'#TUӽV QXTT2TY Ye\a;k\acPԊP bc;k ԽdPPcdP;k PPeddf  ###(%1% Ye#(% %   !% a    (@H 8$ H X0X h@t0  8molwfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$molwfor $gntt_label $lntt_label molwforintM$17ptitleradiuscenlonoffsetpmolwfor S$19$molwfor adjust_lonsincosfabsp_errorS$19DD$molwformolwinv.o/ 1074012785 1032 20 100666 9204 ` 1#@`  xC!G%0k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,/-/.o+`P* `P&"Ph0. P$0N 0. 1+n 1HPe0,0 0H 1H0H +`Pf"P'"1H0N1N+`P&21n0Pe2K>s0L 0d sSPmB0l0D sPdR1N 1H10n 1HPeb00 0H 1HK>s4K>O?1/0./0-@/0,?f;??d) !TD-@ !TD-@?MOLLWEIDE `PX!||,X! | 8+X 88D>(T @ P>(P@ \$$l 4$ 4| d XdP P XX   7x$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/$@ 4dP $,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @  @ @ &@Q 5 x@@L@W@@  Q c) @ k"o"#s@%u@'Aw@A}@ &+() $ 0$ P),,-,.</<3<4D5L6T`78dP)7d`7`8<0<PA+GH8I8N<@NPOTP`Q@QR@RST@TUV`V0W`W1`X2molwinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingmolwinvintfalse_northfalse_eastcenter_longmolwinvlatlonyxthetaarg!($DA,xDA,pGCxCxx ((,@,xx@xx 8.@<xxHx<D/4@<A8G!,4HG;A8@;CLCH@@@DA<\DA`D@@,$.P.P-,P$3TT-P-P3?1 /P4;h5;h6PP67;P8aHPPINPQRSTIP+*HGPI+*GIӽN?;k  NO;k OPPP;k PP;kQԽRPQ%QRӽS"RS;kSӽT;k TU;k UVW  #(%1% 5S#(% %   )%     (@ 8$ H X0X h@t0 molwinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$molwinv $gntt_label $lntt_label molwinvintM$17ptitleradiuscenlonoffsetpmolwinv S$19$molwinvfabsasincos adjust_lonsinobleqfor.o/ 1074012786 1032 20 100666 12124 ` 1/\@P +'-,0! G%:k?o+`S?p%B4#S?p&S>+`4:phbS>piRS>pjrS>pgpepdPeBPePe+`Peb480+`PeR48`+`Per48PePgPe4x04w K?Y4@O?k?/,/-/.//o+`P$4#7>0. 0H7?1H7>7>Pi2S>Pd"S?1*NS>0N .S?Pi20H S>Pw"S>1&NS>0N3NVH'Pfr7?17?A0# S.#S 1N1NS?3S?C0N0N1N0H 1N1H1N Pfb1N1n@1n@0HPfRPgB1N 0N1n@PhK=H sPfbPgB1n0N 1H1N PfR1N 1n@1nPfK=40rK=O>A/0//0./0-@/0,@?OBLATED EQUAL-AREAParameter m: Parameter n: Theta:  `PX!,X!H8X xD>(F@XP>(P@XP\$$l' 4$ 4|(t Xt*:!\$<88  D}'! $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/)@ 4t$ %-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @  @ @ #@ %@ '@ )#@ 3%@ =@ K @Q Z* Āf@r@}@@ @"@$@&@(/ ,,Q = @ *6)67(@9'@;A-@A0@A1@A.@A/@A6@A9@A;@A<@A=@A ?@A@@AA@AD@ .?021 (0(P1,456H7H8H9H:H;L?L@TA\BdClD|EFK`L-MP1,L`L-`M.O10O2PT?fg0h8iHjxlmnopqrstHu`u\v`v]`w^obleqfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerlat_othetamnRsin_lat_ocos_lat_ofalse_eastingfalse_northingobleqforintfalse_northfalse_eastangleshape_nshape_mcenter_latcenter_longobleqforyxlatlondelta_lonsin_delta_loncos_delta_lonsin_latcos_latzAzsin_Azcos_Aztempx_primey_primeMNHHCCCxCpChC`G@ +@H D65@H@@@B 0D750H0@,0E 8D85(H(@4(7 @D958H8@<8IXLT:@@HKL@H2@4@HHCCȀ@HA,DC0xC0C0hC0p@@AxG@8/Y|jm/C0C0/A2A8A(MAG@0AJ@(@ @@H456789:;@ABCDEFKP64Pӽ56789:;@ABCDEFK76P8?TT7P98P:9P; 5P;P??1:P@;hPA;hPB;hPCTPC;t TDTPD;t TETPE;t TFPF; PKPPKL;x PM fijqstPfPӽijqstg fgg?;x hh;x iPP;kjPijP;Pll;x jlmӽpqstm;kmno n op;kpq;kԽtPqr;krsPPӽt;kPstPP;k;kPPutv# #L%I% }c #@% %         !% )  I     (@X 8$ H X0X h@t0 x   obleqfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$obleqfor $gntt_label $lntt_label obleqforintM$23ptitleradiuscenloncenlatgenrptoffsetptsincosobleqfor S$25$obleqforacosatan2sinasincosS$25DD$obleqforobleqinv.o/ 1074012786 1032 20 100666 12120 ` 1/X@\ +t'-@ G%;k?o+`S?p%B4#S?p&S>+`4:phbS>piRS>pjrS>pgpepdPeBPePe+`Peb480+`PeR48`+`Per48PePgPe4x04w K?Y4@O?k?/,/-/.///0o0+`P+P(P$R# #P)B0.S-4#0.S 0N 0N0n@1NPhbPiBPfR1N1(N 0n1n@1H1NPfb1n0N1N2H1N1H2 NPfb1N0n@1N2H1n1N,0N1N 1H1HPfr7?7?0.1H7>7?Pi2S?Pd"S>1*NS?0N .K>sS>Pi2S?Pw"S?1&NS?0N3NVH'Pf0K>r4K>YO>/00/0//0./0-@/0,@?OBLATED EQUAL-AREAParameter m: Parameter n: Theta:  `PX!,X!H8X D8>(F@XP9>(P@XP\$$lM 4$ 4|ND XDP``4b H H j}' $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?//@ 4D %-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @  @ @ #@ %@ '@ )#@ 3%@ =@ K @Q Z* Āf@r@}@@ @"@$@&@(/ ,,Q = @ +6*67(@9'@;A<@AD@AE@A=@A7@A:@A;@A9@A4@A@@AB@AC@ /?122 *0*P3,678H9H:H;H<H=LALBTC\DdElF|GHM`N-OP3,N`N-`O.Q10Q2PV?fgPhPidjklmnopqrs,tXv`vXw`wY`xZobleqinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerlat_othetamnRsin_lat_ocos_lat_ofalse_eastingfalse_northingobleqinvintfalse_northfalse_eastangleshape_nshape_mcenter_latcenter_longobleqinvlatlonyxzsin_zcos_zAztempx_primey_primeMNdiff_anglesin_diff_anglecos_diff_angleHHCCCxCpChC`2@ J@H D87@H@@@5 0D970H0@,00 8D:7(H(@4(> @D;78H8@<8,XLT<B@H.L@HF@H@AH|M!<Lgf2AP\2C C@@@(@ AdJ@0mn/A/APAMAJADK@8 (/Y pr/CPCPCPxCP@@@HH6789:;<=BCDEFGHMP86Pӽ789:;<=BCDEFGHM98P:ATT9P;:P<;P= 7P=PA?1)k>10n PS=S<+`4#p)S1K>)O>!/05/04/03/02/01/00/0//0./0-@/0,k?/,/-/.///0/1ok>i0H0H 2H+`P&0H4#1.0H PfP1N0H2HP0.0,0 s?2HPe0HPgPzRP2P"Pf23Dn Ph"Py1N@1In16. 161gN0N2N<3n@0H2 HPB0L 0d "PnrPd0N1N Pf2Pd"1N.1n@Pnr2 l Pe1N0n 0D Pb1N0n1 H1HPnrPo22Pd2N0 10n 1HP20.0 0 *+`4:49P42.1P"0n1N 1N PkPiB4PgPh1Kn1.PvK=K=HrPwPxPdiO>a/01/00/0//0./0-@/0,?@=|׽?@Lc˰?!TD- !TD-@!TD-@ !TD-?!TD-=|׽??>z򚼯H@ !TD-OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-initPoint projects into infinityomer-for `PX!@@,`X  8`X!X@XDb>( b@P j>(P@\l$$l  4$ 4|  X "PP 'flh .@.@ A2$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/4@ 4Ph$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @ @ (I@ 3@ >&@ @"@ C@ R@ `(@ h*@ p1@ s3@ v8@ x;@ {V@ }N@ P@ R@ T@Q H < @0 @2 @4 @6@8@:@<@>@@@B@D@FA @A,@A 0@A7@A]@A^@A_@A`@Aa@A!c@A#e@A(?@A*C@A,G@A1[@ i;< >l AkGP Upe hr Vok nvo rxs vz :u zJ|,kWl\oapbuj}Q 8~ T@ @mBlDj@Hi@ALn@AT|@A@AVz@AX@A[t@A^@Aa@Ad{@A#q@Aw@  /+0/,P=JIxJ|KLMNPQRTUVWXYPZi[\]`]jPu$0DL`t08Tlx$D`ɀ|P`kPelip`imlm`mnrstuwPxoyz{08@HPPpx`q`tP`kabcdPelf0g@`im`mnPxoPpT`qPr`s`tPuPv`wPx`yPz`{`ɀ|`ˀ}`̀~р0рPր,DThPP `P PX``lPp`P` 0`  0` ` omerfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorscale_factorlon_originlat_origineesfalse_northingfalse_eastingsin_p20cos_p20blaldelusingamcosgamsinazcosazomerforintmodelat2lon2lat1lon1false_northfalse_eastlat_origlon_origazimuthscale_factr_minr_majtempconcomtsts1ts2hljpdlonfggamasinphiomerforyxlatlonsin_phitqusvlulvssH<H<Cl@YCCxCpChC`CXCPJJCHC@C<<@<@< XK@< `Lx@x< lM`@`< tNX@X!<P,A,<hQRh@h<u@p<@P<@HHL,,PYUVPAM<r@@<8 XY8@8A,S<,M@0<x($(@(2,MlcMAMYYPYyzPT@VAM<o0@<8{@<}@<@<@<@<< p|  @ DH,A$,,ADVA`|SAtYAt|,!\A\!VAV04,,!,A,A,XD!((PA,PCCADMT@ATGT@@AhJT@pA,T@(A;A PAeT@T@M!xMA MA ST@8T2GhlGAPXGAT/T@ T@XT@T@T@`C( 8PQUVWY[\]dgiyǽȄQUVW[\]dgiyǽɄKLIJֽMNPQRTUVWXY\]acdfgilmstuz{ĽŽƽǽPKPM LPQNMPYNP IPR JPR?;kQPRPTPPT;xPUVPP;kUVWP;P;kWPXPPYaPY;kXPYӽ\P]]P ;k; P ;k; P;PӽP;PӽӽӽӽP;k;kP P;kP;k;k;kP;k ;t Z;t Z;t Z;t Z;k;kӽ;k ;kP;kP;xPP;xPPǽPPP;kP;kPi;kP im;PmPrtZr1 ZsPs; PtPt;t ZuPu;Pwyzք;kӽyzP;kz{;k;kPZ;t  {P;hP;hP;kP;kP;xPP;xPPPPP;kP;k PaP; Pab;kcPPlcdgiӽcPdgifP;kP gP;kP;k PZ2ZZ2ZZ2ZZ2ZP;kP;kP !€ Ș?;kPP ;kP;k ;k;k; P;PPꘘPӽPPӽӽ;k;kPPPP;kԽPP PPP ;kԾ;kZZ2Z  ;kPP PPPPPP # ## ###### ##%%Se#% %         )    Q      %   ! )      (@ 8$ H X0X h| @ $0<0LC Xltomerfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$omerfor $gntt_label $lntt_label omerforintS$32$omerforintsqrttsincospowfabstsfnzM$33ptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_error adjust_lonomerfor S$35$omerforcoslogomerinv.o/ 1074012787 1032 20 100666 20520 ` 1 P(@  KT@p M 2G%3k?/,/-/.///0/1/2/3/4/5ok>)k>10n PS=S<+`4#p)"S1K>)O>!/05/04/03/02/01/00/0//0./0-@/0,k?/,/-/.///0o+`P9k?P:4#0. P$P)0. P7K=1DN1INK=P&2P(B7 s>ai;d3vN3 0n@#SPvSPh1n1N @1Hn0. 0 1&N 0NPg20HPf"1NH 10n2H0.#S"0, 0 z2LPdK>a0d (rd#SBK>ihr P$RK>i@r21.Pf0n1n@PfR1H0n@7?k?0HPeK>isK? PfPd1N0n@Ph"Pf20H1N J%PgPf0n0.K>ar4K=O>Q/00/0//0./0-@/0,?@=|׽?@Lc˰?!TD- !TD-@!TD-@ !TD-??=|׽?!TD-!TD-OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-init `PX!DD,oX @8oX!DDq1>( @@@P N>(P@\ $$l  4$ 4| @| X| ! &il -0H-0@H@ @p2$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/9@ 4|l@$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @ @ (L@ 3@ >&@ @"@ C@ R@ `(@ h*@ p1@ s3@ v7@ y:@ {>@ ~Y@ Q@ S@ U@ W@Q J @ @2 @4 @6 @8@:@<@>@@@B@D@F@HA @A ,@A0@Ab@Ac@A`@Aa@Ad@A!f@A#h@A(B@A*F@A,J@A1^@ i;< >l AkGP Upe hr Vok nvo rxs vz :u zL|.kWl\oapbuj}Q 8~ @ @qDpHn@Jl@AL@AR@A @AT~@AW@AZ@A\@A@A^@Aa@Adv  0-00.P>LHxI|JKLMOPQSTUVWXPYiZ[\ `\jPu(4HPdx4<Xp|(H`Ȁ|P_kPdlht`hmkl`lnqrstvPwoxyz~4<DLTPp|`q`tP_k`abc Pdle4fD`hm`lnPwoPpX`qPr`s`tPuPv`wPx`yPz`{`Ȁ|`ʀ}`ˀ~Ѐ0ЀPՀhhhhlpxP$`P8Lh````omerinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorscale_factorlon_originlat_origineesfalse_northingfalse_eastingsin_p20cos_p20blaltsdelusingamcosgamsinazcosazomerinvintmodelat2lon2lat1lon1false_northfalse_eastlat_origlon_origazimuthscale_factr_minr_majtempconcomhlts1ts2jpdlonfggamasinphiomerinvlatlonyxthetatvsusqsvlulflagH@H@CpDYCCxCpChC`CXCPJJCHC@C<@@@@@ XJ@@ `K@@t lLh@h@r tM`@`!<O,A,@pPQp@p@@x@@X@@PLP,,PYTUPAM@@H@@ WX@@@@08@8@0M $0@0@(((@(2 0MkbMAMYYPYxyPXDVAM@4D@ <z@@@@@@|@@z@@@ t  @ HL,A(0,AHVAdSAxYAx,!\A\!VAV48, ,!,A,!4d>Ah>!@dAAhACCȀ@`@hLx#(dCht@@AlqxDAptt@ @H@@Ax,AGPYPAJ@@AP@ALM@(K@xY/C( POPTUVXZ[\cfhx~ƽȄPTUVZ[\cfhxƽȄJKHIֽLMOPQSTUVWXZ[\`bcefhklrstyzýĽŽƽPJPL KPPMLPXMP HPQ IPQ?;kPPQPSPPS;xPTUPP;kTUVP;P;kVPWPPX`PX;kWPXZPӽ[P\\P ;k; P ;k; P;PӽP;PӽӽӽӽP;k;kP P;kP;k;k;kP;k ;t Z;t Z;t Z;t Z;k;kӽ;k ;kP;kP;xPP;xPPƽPPP;kP;kPh;kP hlP;PlPqs~Zq1 ZrPr; PsPs;t ZtPt;Pvxy~ք;kӽxyP;kyz;k;kP~Z~;t  zP;hP;hP;kP;kP;xPP;xPPPPP;kP;k P`P; P`Pa;kbPPkbcfhӽbPcfheP;kP fP;kP;k PZ2ZZ2ZZ2ZZ2ZP;kP;kP  ߽PPPԽ+*PP+*PPP?;kPP;kPP ;k;kPP;kP;;PPP;kPP;PP;k# ## ### ##%%wAh#% %         )    Q      %  !     )   (@ 8$ H X0X h@| @ $0<0LG Xltomerinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$omerinv $gntt_label $lntt_label omerinvintS$33$omerinvintsqrttsincospowfabstsfnzM$34ptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_error adjust_lonomerinv S$36$omerinvexpphi2zcosatan2orthfor.o/ 1074012788 1032 20 100666 10252 ` 1( @\ $"%p%bS?4#47p%BS?48p&2p$"p'R+`4:PebPeRPeBPe"Pg2K?Y4@O?k?/,/-/.o+`P$R0H 4#0.0H 1H7?A7?Q1HPgS?C0H PfS?S0N 0N J0,0 2@#S"0L 0d Pdb1H1N Pw"K>4K>rPjS?CPfS?SPeb1jN Ph20NJ8HsK>O?1/0./0-@/0,+`4: 49`4?=|׽ORTHOGRAPHICPoint can not be projectedorth-for `PX!||,X!|8X D >((1@<P >(P@@8\$$l! 4$ 4|"l Xl$pp446@@8V"<$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"?/@@ 4lp@$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ )@ 8@ F@ N@Q V xa@m@x@@@#   Q 1 @ **+@-@/FA!@A#@A @A%@A+@A*@ "@' *B $3,&3&- &0&P, 0124344464:<;H<P=X>``?!@lP, ?l`?!`@"E%0E&PJ3S T0U@VTWhXhPY@Z[`[Ac`cDdPJ3P_B`a `aC`cD`dE`eHorthfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthforintfalse_northfalse_eastcenter_latcenter_lonr_majorthforyxlatlonsinphicosphidloncoslonkspgHxHxCxCxCxxx.@x0x@x( <1:(@(x $021 4x @ x0 00314x@,x,4x@0x&@xx(@xHA PDCtLCtH@t(A0tGC tC tATtD@t@tAht/Cht?@t@t0@t012346;<=>P3 0P26ս1ֽ346;<=>6P 2P46P3P4P6?;x 1P:U:1U;;hP <;hP=;h P>P>?; P@aSVZ[PPEԽVZ[?;k STT;xU;kVP UVPӽZVXX;kZP;kPc[ZZ[PPPP[d`UU2Ua ac ##:%7% _[q(% %      !% 1      (@@ 8$ H X0Xh t@0  orthfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$orthfor $gntt_label $lntt_label orthforinttsincosM$20ptitleradius cenlonmeroriginoffsetporthfor S$22$orthfor adjust_loncosfabssinp_errororthinv.o/ 1074012788 1032 20 100666 11316 ` 1,4@\ (t$*0G%k?o+`S>p%bS?4#47p%BS?48p&2p$"p'R+`4:PebPeRPeBPe"Pg2K?Y4@O?k?/,/-/.///0/1o k>+`P&24#P$"K>k>0.0. 1NH#0H PdbS01,0 "`@1nK>0H7?q7?PdRp1H#S0L0d " S?sPgS?Pf1N 0N 1Mn N0HK>sPqB2 H"R"0.0l0D !x@2HPfS?..1H0 0 (@1H00 JS?sPd1N1N0NPfR0p4K>YK>O>/01/00/0//0./0-@/0,+`4: 49P4"PdBK>ˀes$2 0 :11HPfR0ˀ p11HPfR0.ˀp>z򚼯H=|׽?!TD-ORTHOGRAPHICInput data errororth-inv `PX!||,X!|8X   D'>(4'@4P(>(P@88\$$l= 4$ 4|> X@PR||@@Z[$$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@" ?/E@ 4@$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ )@ 8@ F@ N@Q V xa@m@x@@@#   Q 1 @ **+@-@/JA#@A&@A'@A+@A8@+ .>/ 2@35 8C9 <E =B (3?&3*@ &0&P, 0124344464:<;H<P=X>``?!@lP, ?l`?!`@"E%0E&PJ3R<SDTDUXZt[|\]bcdqr$sPux`uHv|PJ3PV>WX`X?P^@_```APeBfPgChi`iDPlEmn`nF`nG`uH`vI`wLorthinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthinvintfalse_northfalse_eastcenter_latcenter_lonr_majorthinvlatlonyxrhzsinzcoszconHxHxCxCxCxxx$@x0x0@x( <1:(@(x2 $021 4x @ x! 00314x@,x4x@0x4@xx6@xAD8D!@@SRJAD JC8 C8@8@8AX8G@80At|,CD8PPCD8@8(@8 @8@8$8JYcd/012346;<=>P3 0P26ս1ֽ346;<=>6P 2P46P3P4P6?;x 1P:U:1U;;hP <;hP=;h P>P>?; P@€RSUZ\_bcfhmqsPSPRԽUZ\_bcfhmqsRP S RT?;k UTUZPԌZ;k\hms[[;x\P\];kԽdrbPP;kbcfP;kd;kcdq;kPqֽr;k!r;ksP;P;ksuvWUUW2UX Xu_P `u_fh;P;kiuӽhm;P;knuӽm ##:%7% k#(% %      )%  Q     (@8 8$ H X0Xh t@0 ,orthinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$orthinv $gntt_label $lntt_label orthinvinttsincosM$20ptitleradius cenlonmeroriginoffsetporthinv S$22$orthinvsqrtp_errorasinzfabsatan2 adjust_lonsinpolyfor.o/ 1074012789 1032 20 100666 11868 ` 18.\@` hh8)&p+p\ G%>k?o0nS>+`p%#Sp'S>4#p$J%S>cp*S>sp+p%2p&pdBPe2pdPe2pdrPe2pdbPe2pdRPhbs?Pfs?Pes?sPgrpd"+`4:PePgPePePePgK>4@O?k?/,/-/.//o@+`P$0H 4#0.0H1H#@SE0, 0 @PePgK>K>. rPdPf"PhH*s4K>YO>/0//0./0-@/0,s?s1H7?!7?1Pdbs?PfRs?PePgrS?3s?0H PeBS?#S?#0H Pf1N0N1H1NS?#Pf1HK>0n 0 s Pj"1. # S(S?#PePf1. K>1N 1Gn 1,=s?>z򚼯H?POLYCONIC `PX!,X P8X!lddD>( @ P>(P@h\\$$l 4$ 4| XlxPP  &p $TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@" ?/Q@ 4 $,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ &@ 1!@ 4#@ 7%@ :'@ =@ ?@ B)@ F@ U@Q c, n@z@"@$@&@(@*3A@ ..Q A `@ .:-:;,@=+@? TA;@A<@A1@AE@AH@# &N+ 2P 'C46C)5 (0(P/.45,6,7H8H9H;H<H=H>T?`@lAxBFGHIJ`K1LP/.K`K1`L2Q50Q6PVC]$^4P_N`Tal`aO`mRnPVCmPdPefghij$`jQ`mR`nS`oVpolyfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorlon_centerlat_origine0e1e2e3eesml0false_northingfalse_eastingpolyforintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtemppolyforyxlatlonsinphicosphiconmlmsHHCHC@C8C05@` $(54X,X@ X/@PTHHP7=H@HH7 <D86H@83 DD96H@@! D;48AHL8H@DF@ =@@?@8A@0C@(9@H`A$|DC` C``@`P`JA4J`@``@```@``@`C$`C$``@`@`@`8`@`0`@`(A,G`@` A`D;645ս789;<=>?@ABGHIJP 4P< 5P74ս6ֽ89;<=>?@ABGHIJ 6P<=88P99P;kP>P?;kP?P@;kP@PA;k PAPBPPP; PBPF[F1 [GPG; P H;hPI;hPJPJK;PL]`afgijP]PQԽ`afgij]?;k]^;k`PPa`aPPPamnfe;xPPP; PgfgP;hgiP3/hi;kPjijP;kPPj #^%C%Yku0% %            !%          (@ 8$ H X0X hP| @0 X0@LXdlpolyfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$polyfor $gntt_label $lntt_label polyforintS$25$polyforintsqrte0fne1fne2fne3fnmlfnM$26ptitleradius2 cenlonmeroriginoffsetppolyfor S$28$polyfor adjust_lonfabstsincosmsfnzsincospolyinv.o/ 1074012789 1032 20 100666 11636 ` 1-t@0 88)L%v+\,G%k?o0nS>+`p%#Sp'S>4#p$J%S>cp*S>sp+p%2p&pdrPe2pdbPe2pdRPe2pdBPhRs?Pfs?Pers?sPgbpd"+`4:PePgPePePePgK>4@O?k?/,/-/.oPk>+`P(4$P-P$"0. P&K>k>K>1-n 0. 01H# S%0, 0 8@1nPK>0sF p`s?c1n1NPbs?PR7?! s?APBs?,P2s?sPrs?S0>K> S?#P1N0n@0H PeP1n0K>s4K>YK>O>/0./0-@/0,4?>z򚼯HPOLYCONIC `PX!,X  8X!`@@D>( @ P>(P@`\,$$lP 4$ 4| XTH%$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"!?/V@ 4$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ &@ 1@ 4!@ 7#@ :%@ =@ @'@ D@ S@Q a* ܀l@x@ @"@$@&@(1A@ ,,Q ? <@ -8,89*@;)@=PA6@A:@AE@A7 % (J)R .L 0A74A2L38 (0(P/,45,6,7H8H9H;H<H=H>T?`@lAxEFGHI`J/KP/,J`J/`K0P30P4PUA]@^H_H`LaLPbJcld`dKPgLhijl`lMo`oNpPUAPgLk8`lM`oN`pO`qTpolyinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorlon_centerlat_origine0e1e2e3esml0false_northingfalse_eastingpolyinvintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtemppolyinvlatlonyxalbciflgHHCHC@C8C04@X $(54P,P@ P8@HT@HP7=@@H@0 <D86H@8. DD96H@@! D;48AHL8;H@D=@8?@0A@(C@ 2@AHhD!0D^;AHP;Ch Ch<@h<@h<@h<@hXALhJBLh<@hHA8<@h<@h8<@h0<@h(<@h C<x;645ս789;<=>?@AFGHIP 4P< 5P74ս6ֽ89;<=>?@AFGHI 6P<=88P99P;kP>P?;kP?P@;kP@PAPPP; PAPEZE1 ZFPF; P G;h PH;hPIPIJ;PKb]^_chilP^P]Խ_chil_chPP^]P_]_ֽa?;kcPcddihPPPӽhiPP;ijlP;k;kP;klopkko #X%C%Yq#0% %           )%          (@ 8$ H X0X h | @0 ($0<HPpolyinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$polyinv $gntt_label $lntt_label polyinvintS$24$polyinvinte0fne1fne2fne3fnmlfnM$25ptitleradius2 cenlonmeroriginoffsetppolyinv S$27$polyinvfabsphi4zasinzsin adjust_lonpsfor.o/ 1074012790 1032 20 100666 12180 ` 1h/@$ h+'-`4!`G%:k?/,/-/.//o0nS>c+`p%# S.p'S>s4#p,l%S>p-p%pd0Hpd1, S>pob0 per#S"pdRpnRp`@1H"R20.#SB0L0d pnBPdR7?q7?1N1HS?s?PeS?spd2S?s1Hs?Pepd"+`4:PePgPer1H1H4K>O?A/0//0./0-@/0,k?/,/-/.o+`P$r0H 4#0.PfR1N 0N 1Hs?1HPePeB0,0 PfPg2Pe"0N0N PdR1%n 1H0NPfK>1H,sPgR0 1N PeK>4*rK>O?1/0./0-@/0,#SPgPe0N0N PdR1%n 1H??!TD-=|׽@POLAR STEREOGRAPHIC `PX!XX,#X 8X88#X!XD$>(@P>(P@h\$$l  4$ 4|!D XD#(3l5@ @ ='!`$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"!?/[@ 4D "*2; C L V a@i@r{         ! . <JW f t|    ƠӠ     &1< EKSY_e mv   CàDˠР۠  ;   #)07=DKESB[<c k rz   `  h j l Šnp Πq` @s u@w@ڠy{ ` @@`   ` `   @     ` @ @@"  + 3:C HCSY5_`?  irryxp` @     @ `     xp` @    `ߠ@  @   @ @ @ @ @ !@ ,@ 7!@ ;$@ ?,@ C/@ G @ V@Q d, Tm@y@"@$@&@(@*;A@A'@A(@A*@ 7 .$.!%Q I& @ 5B4BC3@E2@G'XA:@A;@AI@A=@A@@ 2K8>K49 ,0,P4.:;<<<=@>L?L@LAXBdCpEpF|HIJPK7LMNOP`P8T UV$W,`Y9Z8P4.Y8`Y9`Z:^=0^>PdKk l8m8n@oPp`s|t@tv`vVwPdKrs`vV`wW`xZpsfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minoresee4center_loncenter_latfacindmcstcsfalse_northingfalse_eastingpsforintfalse_northfalse_eastc_latc_lonr_minr_majtempcon1sinphicosphipsforyxlatloncon2rhtsHTHTCxHCx@Cx8Cx0TC@x`T 48;:X<xX@0XTO@xTM@x!H>:,ALP,TXxPLT?@P@LPT>@xHTK@x@T88h|BF8@d8Tpx0@l0T6T(@x(TAT @x AHJTCLxTCLxTET@xTG T@xHA 4DCLCH@(@8A8|D!44lkGA8xGK@HK@ @`@@GA|G@@@@>?@ABCFHILMOPUVP :P?HL ;P=W:ֽ<=>?@ABCFHILMOPUVp-l%pd0Hpd1, S>pob0 per#S"pdRpnRp`@1H"R20.#SB0L0d pnBPdR7?a7?q1N1HS?ss?PeS?cpd2S?c1Hs?Pepd"+`4:PePgPer1H1H4K>YO>/0//0./0-@/0,k?/,/-/.o+`P(k?P&4#0. P$R0. 0N 0N 1N NPeB0H0,0 Ph"PdPe21N0N Pe0n7?k?PeRK>0NsK? 1L0d zPdRPerK>0NsFPh#SPe1N0N Pe0n-7?11HPfRPgr.K>s$4K>O?1/0./0-@/0,??!TD-=|׽@POLAR STEREOGRAPHIC `PX!TT,#X 888#X!(T(D$->(4@PQ>(P@`\$$lR 4$ 4|S, X,U4e$tgH H o'!($TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@""?/a@ 4, "*2; C L V a@i@r{         ! . <JW f t|    ƠӠ     &1< EKSY_e mv   CàDˠР۠  ;   #)07=DKESB[<c k rz   `  h j l Šnp Πq` @s u@w@ڠy{ ` @@`   ` `   @     ` @ @@"  + 3:C HCSY5_`?  irryxp` @     @ `     xp` @    `ߠ@  @   @ @ @ @ @ )@ 4@ 8!@ <)@ @,@ D@ S @Q a* Pj@v@ @"@$@&@(;A@A$@A%@A'@A@ 7 ,$,!%Q I& $@ 3B2BC0@E/@G'A=@AF@AN@A4 5 8T :K<>= +0+P3,:;<<<=@>H?H@HATB`ClElFxHIJPK7LMNOP`P8TUV W(`Y9Z4P3,Y4`Y9`Z:^=0^>PdKj k l<m<nPo\rxstuvqrPxTyz`zU} `}V~`~W`Xpsinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minoree4center_loncenter_latfacindmcstcsfalse_northingfalse_eastingpsinvintfalse_northfalse_eastc_latc_lonr_minr_majtempcon1sinphicosphiespsinvlatlonyxrhtsflagHPHPCtCtCtCtPB@tXP 48;:P<tP@0PP7@tP;@t!D>:,AHL,KPPJ@tHPH@t@PL|8dxBF8@`8Plt0@h0P9P(@t(P>P @t ADJPCHtPCHtPDP@tP@P@tA<xG!88lkDA<xDCxLCxH$<xC 8$@x$@x($@xAPxJ$@x $@x$@xX$@x5Ax5$@x@$@xH$@x8A,x>@ABCFHILMOPUVP :P?HL=W ;P?HL:;<=>@ABCFHILMOPUV0.+`P'"P)1,2?13 K?16y6x. 6z. . 0.2.F70N0N1w(L0N0NJ 0 s7P. . #. S+`7P*"PhR36.P)K>20N0NgN1^N0NJ pl7P. .  . P'+`9P7"PhR3v.P)K>22 0N0NL0N1N J pM4K>O?!/0-@/0,vȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!R(d @ P>(R@P\>(P@` h $$x 0 4$ 4d< X<h\!!@@7&4($TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@""?/n@ 4<@#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ % @` @ @@ 4 ` @@@ 7Q ;" ȀE@Q@\@@ )Ah a$f$cgQ j7h @ q0s01u@3y@5iBA}@A@A r9w,9tx +0+P0$5P6P78:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdcdcddcdcdcdcdcdc d cdc$d$c0d0c4d4c<d<cHdHcTdTc`d`cldlcxdxcdcdchijk`l'mP0$l`l'`m(q+0q,Pw9~4D4`@Pw9`@`A`Drobfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingprxlrrobforintfalse_northfalse_eastcenter_longirobforyxlatlondlonp2ip1!L+DAPDAPGCC (L5@P@ 7@ `86@\BHAGCLCH@A4D/A4@,KȀ@@@@H7+5Q7Q85Q:;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ad:ӽ;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`adP :P;?68Q ;P=`+c 

8Q@ >PA =PB ?PC @PD APE BPF CPG DPH EPI FPJ GPK HPL IPM JPN KPO LPP MPQ NPR OPS PPT QPU RPV SPW TPX UPY VPZ WP[ XP\ ZP] YP^ \P_ [Pa ^P ]P `Pd _P 6QdPP aPdhVVdddddddddddddddddddddh?1ci;hj;h kQQlk; Qm[A8~QQq~?;k ~;kPPՌՏQQQֽӽPQQQ PQQQ #.% %7% A#(% %   )% !    $@ 4@` D$ T X0d tx @0  robfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. BS$robfor SB$robfor $gntt_label $lntt_label robforintS$18$robforintM$19ptitleradiuscenlonoffsetprobfor S$21$robfor adjust_lonfabs S$21DD$robforrobinv.o/ 1074012791 1032 20 100666 14868 ` 1 D:@ 8 h h D6.LZ7 h!G%!=k?/,/-7`S?0H +`p&S?p,""R+`48sbR+`s R20H 4*spRBp(RRs Rbs"Rrs 2RsRs BRsRsRRsRsbRsRsrRs Rs R"s R2sRBsRRsRbsRrsRsRs Rs"RsRs 2RsRs BRsRsRRsbR"s R2srRBsRRss"sRbs2p-2+`47s BR?s+`4:R?R?c1$N r?sR?0Nr?R?1Nr?cR"2Nr?R?0Nr?R?0Nr"R?0Nr?. 1Nr?. 1dNr?.1DN..1$N.R20N.RB0N.RR1N r2Rb1DNrBRr1$NrRR0NrbR0NrrR0N r1N r2N r6P1H1H+`P%P'4K?Y7?/0-@/0,k?/,/-/.///0/1/2/3/4/5ok>) s>1 s>Ak>Q+`P7 `PlPn0.P-"P)Pf"Pd2s>1N0. s>1n 1mn2N@2n@PeBs>0.0>a?K>a 4k?PqR+`K?44'P44, , 4, 2H.&0.00.2n1N 0N 1rn0N670N 1@, 0 ™ 4?74k?+`4:494K=YK>QS>AS>1K>)O>!/05/04/03/02/01/00/0//0./0-@/0,k?_?1L00d 1ES>0N0S>0N1s>Ptr"RPu4 S>2Dn@S>1l0.0>i00.0D K>i77, , 7, 21NH&1.0 2'N 10N S(s1N1N33N77, , 7, 21NS>H&1.0 2'N 10N S(s2N1N3SN0.40N0n0n$a82G@00 P|K=+`4?+`S>#S2\NsP8"/ / 3Xn/ P&21H. K=k>qL62+N1J2N@0n 0rK>qsˀK=Y+`4: 49`4Կvȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rh?FR?ROBINSONToo many iterations in inverserobinv-convToo many iterations in inverserobinv-conv `PX!,X `8X!LD>(l_@lP>(R@pP\>(P@ h h$$x 4$ 4 XD"T''``#7.L!$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"#?/s@ 4`#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ % @` @ @@ 4 ` @@@ 7Q ;" ȀE@Q@\@@ )Ah a$f$cgQ j7h @ q0u01y@3{@5i^A}@A"@A*@A+@A-@A.@A@A0@A& Ah' s`bdf Q P Oz\ V }U N 9,U9NOPQ .0.P3$8P9P:;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdfgfgfggfgfgfgfgfgf g fgf$g$f0g0f4g4f<g<fHgHfTgTf`g`flglfxgxfgfgfklmn`o'pP3$o`o'`p(t+0t,Pz9HPN(PU<<`ÀX@PUPVHX`ÀW`ÀX`ÀY`рZ\Pz9PNPOPP$$0xPQ`R`S`T`ÀY<`p`рZtPz9PNPOPPPQx`R`S`T`ÀY`рZ`Ҁ[`Ӏhrobinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingprxlrrobinvintfalse_northfalse_eastcenter_longirobinvlatlonyxyyp2uvtcphidy1ip1!L.DAPDAPGCC (L8@P1@ :@ `;9@\BH!`|MAMC\C\@\@\@\A\PVVVAb$,S,(T>A,C\!A\A\V\\Y\AT/! 2AT2A,@\@H:.8Q:Q;8Q=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdg=ӽ>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdgP =P>B9;Q >P@c.f ?PA;QC APD @PE BPF CPG DPH EPI FPJ GPK HPL IPM JPN KPO LPP MPQ NPR OPS PPT QPU RPV SPW TPX UPY VPZ WP[ XP\ YP] ZP^ [P_ ]P` \Pa _Pb ^Pd aP `P cPg bP 9QgPP dPgkVVgggggggggggggggggggggk?1fl;hm;h nQQon; QpcG(8QQֽ76QQ76?;k PPӽӽ;k ӽӽӽ7070VV2Vý70  Ԍ ;k 7.     ;k njPPQQQӽ;kVV2V##".% %7% i#(% %   1%     $@p 4@ D$ T X0d t` @0  robinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. BS$robinv SB$robinv $gntt_label $lntt_label robinvintS$18$robinvintM$19ptitleradiuscenlonoffsetprobinv S$21$robinvfabsp_error adjust_lon S$21DD$robinvsinfor.o/ 1074012792 1032 20 100666 8416 ` 1 @ 0  G%<>k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,/-7`+`P$20H 0.+`P&"1H0N +`P%K?4K?*rP&P'", sK?Y7?/0-@/0,SINUSOIDAL `PX!||,X!x|x8n>(t @ D)>(P@ P$$`1 4$ 4p2 L XL|4X DH~FN8$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"#?/z@ 4L#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ %@Q 4 x>@J@U@@  Q a) t@ h"j"#l@%p@'At@ + & 0& P+.,/,0<1<5<6D7L8T`9:dP+9d`9`:>0>PC+HI$JTKd`K.Ld`L/`M0sinfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingsinforintfalse_northfalse_eastcenter_longsinforyxlatlondelta_lon!(&DA,xDA,pGCxCxx (.@,xxHx0D/6@,x (80@<xx<x@8HtAtDCtCtt@tKtȀt@tt@tt@t@0&.P.P10P&5TT1P1P5?1 /P6;h7;h8PP89;P:@HPP> H?;k IPP;k ԽJPPKIJPPJL #(%1% /;}#(% %   !%    $@ 4$ D X0T d@p|0sinfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$sinfor $gntt_label $lntt_label sinforintM$17ptitleradiuscenlonoffsetpsinfor adjust_loncossininv.o/ 1074012792 1032 20 100666 9136 ` 1l#@( l x#!G%0k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,/-/.7K>+`P(P$"P&0. 0. 1$n s1H#@SN0,0 *+`4: 49Pp4H1H0.# S%0L0d R+`P$2K>r4K>7?1/0./0-@/0,1H+`P'"P&20N1n 0K>ms?!TD-=|׽SINUSOIDALInput data errorsinusoidal-inverse `PX!||,X!|8X hD>(/@<P>(P@@ \$$l 4$ 4| X|` `yL|XX  8x$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"$?/@ 4`| #+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ %@Q 4 x>@J@U@@  Q a) @ h"l"#p@%r@'4At@ .% (0 "+*+$+ & 0& P+.,/,0<1<5<6D7L8T`9:dP+9d`9`:>0>PC+HI0J0K8PL.MTNd`N/PlQtVW`W2XPC+PR0ST`T1`W2`X3`Y6sininv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingsininvintfalse_northfalse_eastcenter_longsininvlatlonyxtemp!(&DA,xDA,pGCxCxx (.@,xxHx0D/6@,x (80@<xx<x@8A0TD!,,IH;A0<;CTLCTH@T@T@TST/Yp|PQ/@T@0&.P.P10P&5TT1P1P5?1 /P6;h7;h8PP89;P:`JKPSIPPJPHPIHJJK?;k ԽPMTT2 TN NWP;k Q;k PQӊVPPVWXS;k PPPT;kSTT ###(%1% AWx#(% %   )%     $@@ 4$ D X0T d@p|0 hsininv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$sininv $gntt_label $lntt_label sininvintM$17ptitleradiuscenlonoffsetpsininv S$19$sininvfabsp_errorcos adjust_lonsomfor.o/ 1074012793 1032 20 100666 25796 ` 1d@  88_Q@b,8AG%Fk?/,/-/.///0/1/2ok= s> s>0n PS<+`p)+`p%K<4#p'h*Ss>PiR7>7?k?1.1dNPk?1iN 7?P0N1.*h60N1N1npz2n0Np{7?!4k>439N0. pi0nphS?S?S>S?#S?3k?_>7>7?k?4$7?k>7?!0s>S?S?S>S?#S?3nlMh 4$k>4k?_>7>7?k?4$7?k>7?!0s>S?S?S>S?#S?3nlM h k?P7>7?s>7?7?!k?S?S?4S>S?#S?33P3qP"21. P2PB0PR0np|1np}1Knpz2npv0n piK=YS>S>K=O=/02/01/00/0//0./0-@/0,k?/,/-/.///0/1/2/3/4/5o`k< s< s< P0Hs=P+`4#P&"P+`4s<1,P4&0.PRs=4d0 0HP"Ps=#1L0d 0HPd"1l 0PBs<10D PB0 PR0 Pb PdrPdrd2@H0H 1H0LPdB1H0d 2O.1.Pfb2@H2N0NPfRĪ0n@2 2`H0H1H2d.0l0D b5^1H#77?+`49P7?4PS<4S=0Na@.10 10 ! 11 0 S=0 Ss?Q Pds?aPP0Npe+`P&rP'b0N Pe4%0NPPP1Njj j 1 N1vn@PP1N p2jj 1 n@PPP2Prj j PRP1N1)Nk1Xn;0N PP20H K?QP"1N L+1lnsPi1&N1NK?YsPfP2K?QR0N1N K?as)PP2Pe10N 1Ln @K?iPB1NsHPg0N1NK>sK>K?AK?9O?1/0./0-@/0,?@?=?[Ow@` =p?򽴆&?FR5?)O?l0a\j?SC~@`)?lī@Lc˰>. &֕@@@V@>@N@.@F>z򚼯H?!z!z?!TD-@jz)U8^@|3!?@ !TD-@!TD-?!TD-@@@??F?@@@50 iterations without conv SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: som-forward `PX!,X  t t8X!DDDX!LP |>( @\ *.>(P@h8$$x X\ L$ L Y  p  [&ptp r- t4#4@#@ |@Q@A$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"$?/@ L p@#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @0` @   )@ @ @ i@ l@ o@ "s@ %B@ 'F@ )<@ +J@ .#@ 26@ 53@ 8@ ;@ =0@ C@ Q@Q kD u @ . 0@2@4@6@8@: < >@@@BAc A @A9@A;@A@@AN@AQ@AR@AS@AT@AU@AV@AX@A]@A _@A[@ g j l "i& )oB IqL Ss bFd*eQ f @@ z|!y|}#x@w@gA' A) A+@A5@A9@A>@AC@AH@AJ@AP@AT@AX@A^@Ab@Ad@Ai@Al@Ar@Aw@A|@A@A@A@A{@A|@A@A@A@`O @y xA  @ ӀҀЀЀЀ΀Ѐ̀ЀʀЀAi@Ad@A@A@A@ ʀ̀̀ ))0)*P8F@8D\EpFxGxHxIxPJgKLMN`NhoPQiRPSjTUVW`WkPZl[\ ] ^,`^mc,`cnhXiXjXPkolXmd`mpoppqrtu@uvwxy z<{`|`}`~dddlptx|Pq`rPs048`t<D`h`u`vw0xPP||@@@@@@@@@@HL`@ttx@@@@@@@ @@ (@8@d@dx@X@`ɀ` 0 P8DLd4Xp ` !`!`"somfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centeraba2a4c1c3qtwxjp21sacaessstartfalse_eastingfalse_northinggsat_ratiosomforintsat_ratioflagstart1timefalse_northfalse_eastlonalf_inpathsatnumr_minorr_majorialfe2ce2sone_esdlamfbfa2fa4fc1fc3suma2suma4sumc1sumc3sumbsomforxylatnldelta_lonrlmtabstlamxlamcxlamtab2ab1xlampsavdsdsqsdtanlgxtantphidprlm2scltlampconvdelta_latradltradlntemperrorbufL230L240L250L260L300som_serieshsqfcHHCCCCxCpChC`C\CXCP<@@@ XtF@x@T dtGDx@` xHK @x  GGAG \[8 (8 UT88@8,(V[ MK@0@(@(0@0,hbY(wybA `8`H<\k@H!\{w/A`h/ 8\|yX`X@XpPdl}P@P D`~z@d@@@dp#`wpCXpCXxCXCXCXCX2ApS!88AtP/AxM>A|Je@DDAD#8H<HH#HHcP|zHx@xp@p hh@h ``@`H@APJCCA|MJ!PxJA|J@@APK@h!PAPAS@@!!pAYA YxA @@8Y/A  DK@HAd@\AVAHD@@ @@0@@(A@D/LDA@D,YPh/@@A,/Y/AxMK@0Y/A4JA0MA(S@@P@@H@@X@@@@@@@AX8G@@@@x@@p@@@@h@@`A@8@@@@#4 C8#4 C8#4 C8#4 C8CLCHADH,A\D@8@0@P@H@X@@(GYG@@AlDApD(  HӽLTUVW[\]^opuyz{}ȅHyz{@S @SDEFGHLMNUV\]cipqtuvwxyz{|}~PFPIjDEFGHLMNUV\]cipqtuvwxyz{|}~GPHDDPEEPIHPLhlmoprVNMhV MPLKLPNh?1 NPiPi;PNopR]UUPVTVW VP]\\P][] ]PcPW^S W ^ShlmoprVh1ViPi;Pl l2 Vm m2 VopVo;t pPVp;t qPq; PrSSr;t Vt;k tPu;k uPv;kvPwxy{}PwP{yx}wx}wy}~||Py~~PzzP} 4}P  4  4 4PPPPP \F@ȽĽŽƽͽνϽȑ ŽPPSͽӑ  ϑ PнđőƑ˽ѽԽPP?;k  ;k P;kP;kPԽ;k;k  ;k ׽ٽ۽蔔7VV2Sӽ˽ѽԽP;k ˽̽ѽԽ ;k Α;kԽP;kPP;k P;kP;k;k󚚑;k;k;kPP;k PPP;kPP;kP;kPPPPP;kPPPPPc     ț ԛվ?;kPPPӾ;k PPP;kPPP;kPPPPPPPP;k ;k PP;k   ;k  !####!#%%%S#`% % %                 A% ) 1   ! %I %          a%         $@ 4$ D pGT0d t  @ TO0    $ 0 h<HT`l t 8  @somfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$somfor $gntt_label $lntt_label gsat_ratio somforintS$32$somforintM$33ptitleradius2 genrpt_longgenrptoffsetpcosfabssin som_seriessomfor S$35$somfortanatanC$34sprintfp_errorsqrtasinlog S$35DD$somforS$36$som_seriessominv.o/ 1074012794 1032 20 100666 23724 ` 1\@  xXLKh Z@l;G%=Zk?/,/-/.///0/1/2ok= s> s>0n+`Ks>PjB7>7?k?1.3$NPk?3*N 7?P0N 1.Kh61KN0N18N2n1%np{0Np|r7?!4k>42N0. pj1n pk0npvS?S?S>S?#S?3k?_>7>7?k?4$7?k>7?!0s>S?S?S>S?#S?3nlMh 4$k>4k?_>7>7?k?4$7?k>7?!0s>S?S?S>S?#S?3nlM h k?P7>7?s>7?7?!k?S?S?4S>S?#S?33P3qP21. P"P20PB0np|1np}1Knpz2npv0n piK=YS>S>K=O=/02/01/00/0//0./0-@/0,`X_=P2pjbPRPBPb0P",)1$N pk"PpibPPPb0Pr,*0N pk"k?/,/-/.///0/1/2/3/4/5ok?) s?1+`P) P$P&44$P(0.P4d0.P"s?C0N PP2PB2 n 1H1HPbPR0N1H0NPPP2Nh h h 1*N1vn@P2Np"PrS?C1n 2n 1N0N 1hn16P1NĨ4PP"1HPr40n@P1N0N PPj)1&n 1.0,0 4c^'1Hf`*+`4:P4941HP"Pr0H0N1n 1&n 1PP0H1N1nH.P¸l'Pb2'N0HPRS?C1H2N0.1N0H0L1H0d 1. @0HP21H1N1.2n1.P1.P2DN PRPBh1jN1/N2N%2DN1H2DnP02'. h*@1*n@0H1H2 l 2 0D 1H0 P@0 1H0 1H@0PPbPR0 P1.0NH2100 @PR0, 0 ! P"2$K>s4K>rK>YS?1K?)O?!/05/04/03/02/01/00/0//0./0-@/0,P22N1.,1n@0H1H0H 2@H1N 2@HP2PBPR1. j*0N 1Kn@]0Hk?/,/-/.ok?9k?A: K>s?Q Pds?aPP0Npe+`P&bP'R0N Pe4%0NPPP1Njj j 1 N1vn@PP1N p"jj 1 n@PPP"Pbj j PBPr1N1)Nk1Xn;0N PrP"0H K?QP"1N L+1lnsPi1&N1NK?YsPfP2K?QR0N1N K?as)PrP"Pe10N 1Ln @K?iPB1NsHPg0N0HK>0H1NsK>K?AK?9O?1/0./0-@/0,?@?=?[Ow@` =p?򽴆&?FR5?l0a\j?SC~@`)?lī@Lc˰>. &֕@@@V@>@N@.@F>. &֕?@@@?!TD->z򚼯H?!TD-?F?@@@SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse `PX!,"X  (( (8"X!HD$X!`P y>( P@\ m0>(P@h$$x  4$ 4  X  % x * 1(!1(@!@  Kh;$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"%?/@ 4 @#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @ @ `@ b@ d@ "h@ %7@ ';@ )=@ +1@ -A@ 0#@ 4,@ 7*@ :@ =@ ? @ M@Q \B Āf @p .u@0z@2@4@6@8 : <@>@@sAZ A@A.@A/@A5@AE@AH@AI@AJ@AK@AL@AM@AO@AT@AV@AR@ ePR VhW [j \g- 4m7 >o MD^*DO_Q ` @  oznz{ m@}l@aAy@A|@A@A@A"@A'@A,@A0@A3@A9@A?@AD@AG@AL@AR@AX@A[@A_@Ad@Aip@An} h qx { vsA t@@ A@A"@A@A@A@  &)0&*P2D9p:p;p<p=p?pP@eAxBC`CfZ[\]^_`acd @d$e(fDghijklmnopqrstuvPwmxyz{(|,}0`~nv4>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centeraba2a4c1c3qtuwxjp21sacaessfalse_eastingfalse_northingsominvintsat_ratioflagtimefalse_northfalse_eastlonalf_inpathsatnumr_minorr_majorialfe2ce2sone_esdlamfbfa2fa4fc1fc3suma2suma4sumc1sumc3sumbsominvlatxytlonconvsavsdsdsqblondifstdefacactantlatddbigkbigk2xlamtslscldlatdlontempinumbsom_serieshsqfcHHCCCCxCpChC`C\CPq Xl9@ps hl:@pu Hl;@pw, `l<@p|px=A@pGGA\G BA@ PO00 xJI00 CA0@0@ @(A5!tgf;A;@e@@!Xjf/A/ kiXdX@X@PdHmqH@H ni8d8@8p#DofpC@pCxCCCC|2AS!88APx/AMp>AJeD8DDA8D#hHHDDH#0vxH4@HcviH@x@p (h,dh@h $(`,d`@`AlJA`tPC CK@@@@,,G\GADGK0taTAxYA,A\@0@(@P@@@X@@8@x@p@h@`AX`;Y\d/A@PA,A,4MYM!SA pSA8,MAD,P@@ @H,VASAVA,Y$,SY SAM@#4C8#4C8#4C8#4C8CLCHADH,A\D@0@(@P@@@X@@ GYG@8AlDApD(  =9:;<=BCJKPQ[_`cdefghijklmnP?;P9=CIJKOPQ^_dhijlz{|}~9:;<=BCJKPQ[_`cdefghijklmn9P=hijp%bS?4#47p%BS?48p&2p$"p'R+`4:PebPeRPeBPe"Pg2K?Y4@O?k?/,/-/.//7+`P$R0H 0.0H1H7?A7?Q1H+`P)S?C0H P&S?S# 1*NS'0N H21H#@SE0, 0 *+`4: 49`4#S"1H+`P$b0n1N1N +`P7"K>4K>rP+bP(S?CP%S?S1N1(NP*20N$LsK>7?A/0//0./0-@/0,?=|׽@STEREOGRAPHICPoint projects into infinityster-for `PX!||,X!8|88X 4D+>(L4@<P,>(P@@8\$$lA 4$ 4|B@T XTD``T V@@XV!$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"&?/@ 4T`@$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ )@ 8@ F@ N@Q V xa@m@x@@@#   Q 1 4@ **+@-@/A!@A#@A @A%@A+@A*@ !@" &B (3*&+ &0&P, 0124344464:<;H<P=X>``?!@lP, ?l`?!`@"E%0E&PJ3S$T0U@VXWtPX@YZ`ZAP]B^_```Cc`cDd`dE`eFsterfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterforintfalse_northfalse_eastcenter_latcenter_lonr_majsterforyxlatlonsinphicosphidloncoslonkspgHxHxCxCxCxxx.@x0x@x( <1:(@(x $021 4x @ x0 00314x@,x,4x@0x&@xx(@xH4A$TDCLCH4@(A0J4C$4C$AXD4@4@At|bA(J4@4@04@012346;<=>P3 0P26ս1ֽ346;<=>6P 2P46P3P4P6?;x 1P:U:1U;;hP <;hP=;h P>P>?; P@SPPE?;k STT;xU;kVPP UVPӽ_W^ՌVW^W;kYUUY2UZ Zc^_PP^_;kԽ`PPc`__`PPPP`d ##:%7% YWq(% %      !% 1      (@@ 8$ H X0Xh t@0 sterfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$sterfor $gntt_label $lntt_label sterforinttsincosM$20ptitleradius cenlonmeroriginoffsetpsterfor S$22$sterfor adjust_loncosfabsp_errorsinsterinv.o/ 1074012795 1032 20 100666 11152 ` 1d+@  d'$P)`0G% k?o+`S>p%bS?4#47p%BS?48p&2p$"p'R+`4:PebPeRPeBPe"Pg2K?Y4@O?k?/,/-/.///0/1o k>+`P&24#P$"K>k>0.K>0. 1NH#@SOPfb0H 0N1n@1N7?q7?PdRp1H#S0,0 !S?sPgS?Pf1N 0N 1Mn N0HK>sPqB2 H"R"0.0L0d !H@2HPfS?..1H0 0 (@1H00 JS?sPd1N1N0NPfR0p4K>YK>O>/01/00/0//0./0-@/0,PdBK>s2 l0D :11HPfR05p11HPfR0.p@=|׽?!TD-STEREOGRAPHIC `PX!||,X!|8X  p D>(@P>(P@8\$$l 4$ 4| X$<[$$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"&?/@ 4$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ )@ 8@ F@ N@Q V xa@m@x@@@#   Q 1 @ **+@-@/LA#@A&@A'@A*@A6@/ 2> N46 9B: =D >A$ )G *@ +3A&3-@3B &0&P, 0124344464:<;H<P=X>``?!@lP, ?l`?!`@"E%0E&PJ3R<SHTHUdVxWXP^@_`aPoGpqr@tD`tH`tI`xJylPJ3xlPY>Z[`[?P^@PbAcPdBef`fCPiDjk`kE`kF`tI`xJ`yK`zPsterinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterinvintfalse_northfalse_eastcenter_latcenter_lonr_majsterinvlatlonyxrhzsinzcoszconHxHxCxCxCxxx$@x0x.@x( <1:(@(x0 $021 4x @ x! 00314x@,x4x@0x2@xx4@xAH,D!@DSRJAHJC, C,@,@,Ad,G@,0Ax/CH,DhCH,@,(@, @,@,,JY`a/012346;<=>P3 0P26ս1ֽ346;<=>6P 2P46P3P4P6?;x 1P:U:1U;;hP <;hP=;h P>P>?; P@€RSUWZ_`cejptPSPRԽUWZ_`cejptRPSWejtRT?;k UPTU;kUVV;xWPWX;kԽaq_PP;k_`cP;ka;k`ap;kPӽpֽ q;k%q;krtP;P;ktxyZP[Zce;P;kfej;P;kkj #:%7% w#(% %      )%  A     (@ 8$ H X0Xh t@0 p,sterinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$sterinv $gntt_label $lntt_label sterinvinttsincosM$20ptitleradius cenlonmeroriginoffsetpsterinv S$22$sterinvsqrtatanfabsasinatan2 adjust_lonsinstplnfor.o/ 1074012795 1032 20 100666 17180 ` 18C@  ( X X8>7e@\\)TG%:k?/,/-/.///0/1o k; s;k<+`H47D7#7#@4?``h$#B+`44 490? #7@X #B ` 64P7#j U 4647<44@4+`4:4447PpK>و%0NS<0H7>K>و%2Ns?S<1H1Hs?SPqK>و#x2$NS<0H7>K>و#82$NSK>و"2$NS<0H7>K>و"2$Ns?S<1H1Hs?SPoK>و"1NS<0H7>K>و!1Ns?S<1H1Hs?SPqK>و!2$NSK>و 2$NS<0H7>K>و 2$Ns?S<41Hs?S<1Hs?ss?cs?Ss?Ck>s?1s?!s?s?4K;YK<S;K;O;/01/00/0//0./0-@/0,k?7+`H7K? xK? s? 28K?Y  s?04K?Y@7? 2 s??@4?m@ s??u@e4??FR5Illegal zone #%4ld for spheroid #%4ldrstate-initError opening State Plane parameter filestate-forstate-initSTATE PLANEZone: Datum: NADef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(Pef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QR `PX!,#X AXD8#X!8D3>(@P'>( @\'>(P@l\$$|( 4$ 4) X+!8D8@'|B-t- t J7)T$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTDATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"'?`@ 48 %-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @      `    `   Q "  .38 ? }AD AH AJ ` @(@@@Q(*` .@Wp0`c  4@]6Aa@Ag@Am@Ax$@A*@A0@A4@A>@AB@A@@AF@A8@AG@A;@AD A  AZ {  H K` _ ^ f e d ] k\ _m` do4 ?qf vsy u w B!]E!D^F_GdOeQkWQ  @ KJI@H@AN ŀƀ 505P:!KDLDMLPLPQ]RTPS^T\PU_Vh`YbTt`Yc`ejPkkl`nlPQ]P_dPaePcfde`eg`eh`ei`ejjqrtuz{|}~ 048<HXlPqtx`rO`yP:!PQ]PS^PU_PW`XY`Ya`Yb`Yc^P_d`Paeb`eh` `ei`ejPkkl,mDnT`nlPvmw\xl`xnPot`pPs ((0@`ɀtX\P΀u`|`׀vPۀw4<<DXXXXXX`x`y`z0PP,``0P4P<H`H`LPXP ` p` Pt`t xP`P````stplnfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tidinzoneNAD27NAD83stplnforintfn83fn27spherezoneindinadvaltablepnamebufr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northazimuthlat_origlon_origlon1lat1lon2lat2modeiflgptrstplnforyxlatlon!<@5AD!@@5ADAD!@5AD XdjXYPYDLKPXLTMR@L @xA`dKpL@<SA88KxGY\tGAPXll@Xltl\pllC,XlJdJ XJJJY|J,,,P, (,,Y,D|220P2A2T|88@P8A8XXPYPXXMYMMYM JYJ@|,Y <,!HTAXxCXCXHHC0C0@0A$ŀH LMQQ5ӽrKP MQRVP TVPTlj?7 rtjuzz8 {{9 |RR|9 }}9 ~6RRY1YYY 2  Y 2YĽϽҽݽㆽ;kͽRR;k ;wԽ ;k;w  ; O XY^bP `bP de`ll9mYYm2 n nwYY2 Yxx9YY2  ;k;wսĆ;k;w;k;w½ý ;k;wŽƽ   ;;k;wս҆нѽ ;k;wӽԽ   ;;k ;wԽㆽ޽߽ ;k;w ;k;w   ; >## RR ?; ;   ;   ; #(# # #""% %]%S#h% %! %%  (@ 8@ H@ X$ h X0 Ux X p @ (4@P`p0stplnfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. DS$stplnfor SD$stplnfor SB$stplnfor $gntt_label $lntt_label stplnforintS$16$stplnforintC$18sprintfM$17p_errorfopenfseekfreadfcloseptitle genrpt_longsqrtpakczpaksztmforint lamccforint polyforint omerforintstplnfortmforlamccforpolyforomerforstplninv.o/ 1074012796 1032 20 100666 17232 ` 1@CP@  0 ` `@>,7l@d)\G%:lk?/,/-/.///0/1o k; s;k<+`H47D7#7#P4?``h$#R+`44 490? #7@h #R ` 64P7#z U 46447<44@4+`4:4447PpK>و%0NS<0H7>K>و%2Ns?S<1H1Hs?SPqK>و#x2$NS<0H7>K>و#82$NSK>و"2$NS<0H7>K>و"2$Ns?S<1H1Hs?SPoK>و"1NSK>و!1Ns?S<1H1Hs?SPqK>و!2$NSK>و 2$NS<0H7>K>و 2$Ns?S<41Hs?S<1Hs?ss?cs?Ss?Ck>s?1s?!s?s?4K;YK<S;K;O;/01/00/0//0./0-@/0,k?7+`H7K? xK? s? 28K?Y  s?04K?Y@7? 2 s??@4?m@ s??u@e4??FR5Illegal zone #%4ld for spheroid #%4ldrstate-initError opening State Plane parameter filestate-invstate-initSTATE PLANEZone: Datum: NADef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(Pef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QR `PX!,*X A`D8*X!@D:>( @P'>( @\.>(P@ld$$|/ 4$ 40 X2!@D@G'I-|- | Q7)\$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTDATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"'?` @ 4@ %-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @      `    `   Q "  .38 ? }AD AH AJ ` @(@@@Q *` .@Wh0`c  4@]6Aa@Ag@Am@Ax$@A*@A0@A4@A>@AB@A@@AF@A8@AG@A;@AD A  AZ {  I L` _ ^ f e d ] k] `ma eo5 @qg wsz u w C!]F!E^G_HdPeRkXQ  @ KJI@H@AN ƀǀ 505P:!LDMDNLQLPR]STPT^U\PV_Wh`ZbUt`Zc`fjPlkm`olPR]P`dPbePdfef`fg`fh`fi`fjkrsuv{|}~ (8<@DP`tPq|`rP`yP:!PR]PT^PV_PX`YZ`Za`Zb`Zc_P`da Pbec`fha(`fi`fjPlkm4nLo\`olPwmxdyt`ynPo|`pPs(008H`ˀt`dPЀuh`ـvP݀w$$<DDL```````x`y`z0PP,``0P4P<H`H`LP XP  ` p` Pt`txP`P````stplninv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tidinzonenad27nad83stplninvintfn83fn27spherezoneindinadvaltablepnamebufr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northazimuthlat_origlon_origlon1lat1lon2lat2modeiflgptrstplninvlatlonyx!<@5AD!@@5ADAD!@5AD(`ekYZPYDLLQXLTNS@LHxA`dKpL@DSA@@KGYd|GAP`llH`l|ldxllC4`lJlJ`JJJYJ,,4X,0,,Y,L228X2A2\88HX8A8``PYP``MYMMYM(JY$JH,Y(D,!P\A`C`C`HHC0C0@0A$ŀH MNQQ5ӽsLQ NQSWP UWPUmk?7 sukv{{8 |6 }}9~RR~996RRY1YYY 2  Y 2YýƽѽԽ߽冽;kϽRR;k ;wԽ ;k;w  ; P YZ_cP acP efam9nYY2 ooxYY2 Yyy9YY2 ;k;wսýƆ;k;w½;k;wĽŽ ;k;wǽȽ   ;;k;wսԆҽӽ ;k;wսֽ   ;;k ;wԽ冽 ;k;w ;k;w   ; >## RR ?; ;    ;  ; #(# # #""% %]%S#h% %! %%  (@ 8@ H@ X$ h X0 Ux ` x @ (4@L\l|0stplninv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. DS$stplninv SD$stplninv SB$stplninv $gntt_label $lntt_label stplninvintS$16$stplninvintC$18sprintfM$17p_errorfopenfseekftellfreadfcloseptitle genrpt_longsqrtpakczpaksztminvint lamccinvint polyinvint omerinvintstplninvtminvlamccinvpolyinvomerinvtmfor.o/ 1074012796 1032 20 100666 14612 ` 19@ 4@.6%G%-$k?/,o0HS>#SS>+`p*0nS>s4#p)S>Sp+S>cp7"h%p6p$p'p%RpdPeRpdPeRpdrPeRs?Phrs?Pfs?sPepdbPgPeR"PhR1.1N pi20, 0n 0 pjBpl@p`+`4:PePg+`Pe48@PePePePg"4K>O?@/0,k?/,/-/.///0/1/2ok>y+`P$0H4#0.0H 2 H7>7>Pd0,0 @1HS>0N 1H#S0."`Re"0L 0d *+`4:494#@SF2Pg11. Pd0N 1 n0NK=1H1NsS>ӹl%0N 1n@2 lPgPePfK=0D 00N 0.1(N ˀs*s?sS>2 H PdBP0N1N0NS>PfR0H2N 0N2RNj%PfPhrs?Pibs?0nPePgPBPb1.1N PrPR2QN41nPrP1<1n PP2QN3.PPzB2PP2NP~P߮PPkK=PY=3NP2K=܈1n]j1n1ndN sP|BPn2P~»/Pd"3. O *1NJ( rK=K>yO>q/02/01/00/0//0./0-@/0,?>h?=|׽?@@4@@2@R@M@8@"@@>@N@@tTRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinitytm-for `PX!<<,1X 81X!<D3l>( ^@pP>(P@px\$$l 4$ 4|@ XD@\@  !!  .%$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"(?/@ 4@ "*2; C L V a@i@r{         ! . <JW f t|    ƠӠ     &1< EKSY_e mv   CàDˠР۠  ;   #)07=DKESB[<c k rz   `  h j l Šnp Πq` @s u@w@ڠy{ ` @@`   ` `   @     ` @ @@"  + 3:C HCSY5_`?  irryxp` @     @ `     xp` @    `ߠ@  @   @  @  @ &@ 1@ <%@ ?'@ B)@ E+@ H!@ K/@ O-@ S@ b@ p3@Q t2 8}@@&@(@*@,@.@09A@ 4""4#Q G$ @ 9@8@A7@C6@E%A<@A=@A@@AN@AO@AE@AR@AV@AT@AJ@AY@Ab@), /c0 7e 8b DIF<G 2!02"P:4?@TAXBXCXDXEXGXHXIXJdKpL|MNPQSWXYZ [\`]7^(P:4](`]7`^8d;0d>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindtmforintfalse_northfalse_eastcenter_latcenter_lonscale_factr_minr_majtemptmforyxlatlondelta_lonsin_phicos_phialalsbcttqconnmlA\,H8CHC@C8C0C(8F@p8@h8H (TA?`X`@$`8: 8TB?XXX@4X8L @TC?PXP@<P8g HTD?X@D8c PTE?X@L!,TG?2AX\28Wd(X`HI(@X(8Z@H8\@@8^@88`@08e@8P NQ @ 8C8@HA4dSCdCdȀ@dXADdD`h`C4d`hhC4dh@dAxG@dp@d`/A0T,@dPAd PA|D@d !lxJA|lJ!xxVA|VA,M@d(A$S@dH@d@@d8@d0A@}@d@d@d!2AHNQȄB?@AֽCDEGHIJKLMNPQSXYZ[\PAPGC?@ABCDEGHIJKLMNPQSXYZ[\ BPD CPEDPHIEP ?P @PI?;kHPIPJ;kPJPK;kPKPL;kPMPPPLPM; PNPPӄPԄMPPNNPQPSPWZW1 ZXPX; PYZPY;t Z Z;hP[;hP\P\];P^' sxPsPdԽxs?;k stt;xxPz;kz {;kԽ{;k}ZZ}2Z~ ~PP;k;k;kӽ;kPPP  P֒;kP;kPPPP; PӽԒPӽԒԒPPՒӒPԒPPPP # ##j%I% #8% %              !% 9    )       $@p 4$ D X0T dx @0 ? (8DLXdlttmfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11.SB$tmfor $gntt_label $lntt_labeltmforint S$27$tmforinte0fne1fne2fne3fnmlfnM$28ptitleradius2genrpt cenlonmeroriginoffsetptmfor S$30$tmfor adjust_lontsincossinfabsp_errorlogcossqrtacostantminv.o/ 1074012797 1032 20 100666 16736 ` 1 A`@@ H H  <+`G%@k?/,o0HS>#SS>+`p*0nS>s4#p)S>Sp+S>cp7"h%p6p$p'p%RpdPeRpdPeRpdrPeRs?Phrs?Pfs?sPepdbPgPeR"PgR1.0N pi20, 0n 0 pjB4hx+`4:PePg+`Pe48@PePePePg"4K>O?@/0,k?/,/-/.///0/1/2/3/4/5o`k= s=k=K<+`0H k=H?4#4 !xKP7>1HS>S>0HPfRPgBs=2N 1JN3N0N s=Ӹl22N1kN2@HPiPvRlPhP1$n1.PPPS=2N PPyB1N3N S=P1PK=3N2|n~(hJPP"Pq;PB?0N26.3.1Rn0n=@0n<@3nPwk0n P,20nrl=0N3n2Pp1Hk=K=_=01NsPfpˀKh??@@@=|׽?!TD-@8@@@$@"@>@N@V@r@F@o@4@<@ TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSE `PX!88, X 08 X!8D">(pa@tP>(P@xx\ <$$l ` 4$ 4|T XTPP8$$%\ %\@ @5+`$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@")?/@ 4TP$@"*2; C L V a@i@r{         ! . <JW f t|    ƠӠ     &1< EKSY_e mv   CàDˠР۠  ;   #)07=DKESB[<c k rz   `  h j l Šnp Πq` @s u@w@ڠy{ ` @@`   ` `   @     ` @ @@"  + 3:C HCSY5_`?  irryxp` @     @ `     xp` @    `ߠ@  @   @  @  @ &@ 1@ <%@ ?'@ B)@ E+@ H!@ K/@ O-@ S@ b@ p3 Q t2 4}@@&@(@*@,@.@09A@ 4!"4"Q G# @ ;@:@A6@C5@E$AJ@AV@Ad@AY Ae@Aj@Ao@As@Au@A v@A x@A|@A}@A~@A@AC@AI@AD@AG@A< ;E HsI Lu Mr-6 9y 3xR `|a d~ NIh<x5IPi 3!03"P;4@ATBXCXDXEXFXHXIXJXKdLpM|NOQRVWXYZ[`\7]$P;4\$`\7`]8c;0c>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindtminvintfalse_northfalse_eastcenter_latcenter_lonscale_factr_minr_majtemptminvlatlonyxconphidelta_phiisin_phicos_phitan_phiccsttsnddsfhgmax_iterA\,H4C4HC4@C48C40C4(4?@4p4@4h4A (TB@`X`@$`4N 8TC@XXX@4X4E @TD@PXP@<P4R HTE@X@D4P PTF@X@L!,TH@2AX\24zd(X`IJ(@X(4b@4H4\@4@4^@484`@404T@44q OR @ 4=@4AY!JJ!LXcDA\|DCLCHA\@@p@`A 4,AhJ@P!ddwvDAhDAtM!VVMAt,@X@@@GGAG!tA@@@8@0@HA/PTPPPPC PXTXXPXC XA|h@ AAA4_!\A`\!MAM@(A8wAh_!d5Ah5!Dd,Ah,!3BIOȄC@ABֽDEFHIJKLMNOQRWXYZ[PBPHD@ABCDEFHIJKLMNOQRWXYZ[ CPE DPFEPIJFP @P APJ?;kIPJPK;kPKPL;kPLPM;kPNPPPMPN; POQPӄPԄNPQOOPRRPVZV1 ZWPW; PXZPX;t Z Y;hPZ;hP[P[\;P]/E0suwPcsPӽuw osPPPPPԽՒ ?;kPPPP ;kLHӽ ZZ2ZuPP;kwPPvyPՒwӽvx;kӽxyy;kz;k{z||}P ;P;k ;kԽ;x;k PP;kPPPՒӽP֒ԒӽԒԒPP;k;iP# " #j%I%8% %              A%    9    1    i 9 0 $@x 4$ D X0T d0x @0 ; @(08DP\lttminv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11.SB$tminv $gntt_label $lntt_labeltminvint S$27$tminvinte0fne1fne2fne3fnmlfnM$28ptitleradius2genrpt cenlonmeroriginoffsetptminv S$30$tminvexpcossqrtasinzatan2 adjust_lonsinfabsp_errortsincostansignutmfor.o/ 1074012798 1032 20 100666 35868 ` 1 @H  Dp wG%hck?/,/-ok?)K>0H 0H k?9b@K?94xB+`p,S>4#p$K?9 p-p P"ph W X7>k?1PK?9_?100N b pg0Hpd"PdPfPB0nh%peRpdPeRpdPeRpdrPeRs?Phrs?Pfs?sPepdbPgPeRPhPR1.1N pi20, 0n 0 pjBpl+`4:P+`K?949PePg+`Pe48Pe4K>K?)O?!/0-@/0,+`4:490ϖK>P2k?/,/-/.///0/1/2ok>y+`P$0H4#0.0H 2 H7>7>Pd0,0 @1HS>0N 1H#S0."`Re"0L 0d *+`4:49P4#@SF2Pg11. Pd0N 1 n0NK=1H1NsS>ӹl%0N 1n@2 lPgPePfK=0D 00N 0.1(N ˀs*s?sS>2 H PdBP0N1N0NS>PfR0H2N 0N2RNj%PfPhrs?Pibs?0nPePgPBPb1.1N PrPR2QN41nPrP1<1n PP2QN3.PPzB2PP2NP~P߮PPkK=PY=3NP2K=܈1n]j1n1ndN sP|BPn2P~»/Pd"3. O *1NJ( rK=K>yO>q/02/01/00/0//0./0-@/0,?FR5AAc?>h?=|׽?@@4@@2@R@M@8@"@@>@N@@tIllegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityutm-for `PX!,xX x8xX!4Dzl>(@P >(P@x\ $$l I$I|SJ XN[Qdu0ku0 @k @$pw$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@")?/@ I @#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@   @  @   #  -  9@I `  X  i  @  ` @   ƠϠ  ! #% '  )$ +, -4 /;` 1C@ 3K 5R 79 Y;\ d= >@@kBtD@D@D@FHJ  M O Q S UW YZ  d= ]_@a@c@c@dfh# . km@=oF  I rt@LvUx^  c z|@h~s x K K @@       ` @       $@c@-c@`6 = F Q Z b k`   v |@      ``  @@       8      5 @@``` @       #`   - 4 ? H@@ P@@  X@@@  `@@  h@@ p@@ x@@@ @@ @@ @@ @@@ @@ @@ @@! @@@# @@% @@' @@) @@@+ @@- @@/ @@1 @@@3 @@5 @@7 @@9 @@@; @@= "@@? )@@A 0@@@C 7@@EG >I MK \  g M r O } Q ` S @ U  W  Y  [  ]  _  a ` c @ e  g  i  k  m " o - q 8` s C@ u N w Y y d { o } z    `  @              `  @          *  5  @`  J@  T  ^  h  r  |    `  @          `  @       , ;  G ` ՠ @ S@ ` @ h @ p @ x@ @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ & @ 3 @ @@ @M @U @] @c@ @k @s @y@@@@!@#@%@@'@)@+@-@@/@1@3@5@@7@9@;@=@@?@A@C@E@@G$@I+@K2@M8@@O?@QSKUSW ;  G Y` ]  S@_[] ah cs e~ g i k` m@ o q s u w y { ` } @    ) 3 = G ` Q @ [ e o y    `  @        `  @    ( 3 > I ` T @ _ o     ` @        ` (@ 3 > I R [ f q` |@        ` @           !`  ,@ 7  B M X c n y` @   ! # % ' ) +` -@ /  1 3 5 7  9 ;!` =+@ ?5  A? CI ES G] If Ko` My@ O` @S ?U@QWY[  ] `` _ h@ a p c x e  g  i  k  m ` o @ q  s  u  w  y  {  } `  @           ` &@ 3 @ M U ] c k` s@ y      ` @       ` @       $` +@ 2 8 \X` L   $$1@>   ] `9AIT `_ l  w  % % % `  $$!&l#%   (@ , . @ 1 3 /4 -6 *7@79A K  ]? =@@VB_@ h E@ I pK GL`{N  Q S U` W@ Y [ ]_aǠc` e g i kpmho`q@ s u' wy@2{@}P@$V}@%@^g(m@&&V}@*s} *c`  **%@**+               *   4 8  AF  O X a i q x` ~@    @` @    @             `7 @8        ` `  @     ! "%$. 6@  ?@ G@ O @ \@ g @ r@ u!@ x#@ {%@ ~@ )@ '@ @ @ ,@Q ,  @&@(@*5A@ #1 .*".&+Q C, @ 2<1<=0@?/@A-A5@A6@A9@AG@AH@A >@A K@A O@AM@AC@AR@A[@14 7_8 ?a @^ LEN8O 2!02"P7.: ?D@XA`B`C`DEGHIJKLMN P(Q4U8VDWTX`YpZx`Z3[|P7.P;1<=`=2`Z3[P7.DE`Z3`[4b70b8PgEq4rDvTPw^xhyxPz_{|`|`Pa,0<`b`cDd|||Hh`d`e`futmfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listremquotdiv_tldiv_twchar_t__sival_ptr__svi_int__svi_int_ssigvalsigval_tpthread_attr_t__sigev_reserved__sigev_notify_attributes__sigev_notify_function__sigev_value__sigev_signo__sigev_notifysigeventsigevent_t__SIGEV_THREAD__SIGEV_SIGNAL__SIGEV_NONE__sigev_typestm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_tpad2pad1ki_timevalkt_trlim_maxrlim_currlimitru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusageSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__dev_id__lockpage__addr__gfault__band__fd__file__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tsigset__sigset_tsigset_tss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr27ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr27_loss_cr27_hiss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_low__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_size__stackstack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxt__sub_ctxt_tuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_tsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionpthread_tss_onstacksigstacksv_flagssv_masksv_handlersigvecfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsiglocal_misc_tsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsi__xsi_tsc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_doublepw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwdfloat_tdouble_tr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindutmforintzonescale_factr_minr_majtemputmforyxlatlondelta_lonsin_phicos_phialalsbcttqconnml!2DA DA GCHCD?@p@hA T\A?```@P`ElP`hBCP@`P3dCEX@`X\ pDC@l`@A5P0(HI(@(S@HU@@W@8Y@0^@I$4NQ @ <8@0HA4dSCdCdȀ@dXADdD`h`C4d`hhC4dh@dAxG@dp@d`/A0T,@dPAd PA|D@d !lxJA|lJ!xxVA|VA,M@d(A$S@dH@d@@d8@d0A@}@d@d@dB:CEV2:?6ԽCEV:6?@ABCDEGHIJKLMNPQWXYP ?PAԽ@սBCDEGHIJKLMNPQWXYAPCӽDEHNPQ @PC6 BPDDPCE CPEEPGPPHNQGHI;kHPIPJ;k PJPK;k PKPL;k PMPPPLPM; PNPPPԄMPPNNPQPUVU1 VVV V2VWPW;PXVPX;tV YZ;hP[0H 0H k?9b @K?94xA+`p,S>4#p$K?9 p-p P"ph W X7>k?1PK?9_?100N axpg0Hpd"PdPfPB0nh%peRpdPeRpdPeRpdrPeRs?Phrs?Pfs?sPepdbPgPeRPgPR1.0N pi20, 0n 0 XpjB4Hh}+`4:490ϖK>P2h`+`4:P+`K?949PePg+`Pe48Pe4K>K?)O?!/0-@/0,k?/,/-/.///0/1/2/3/4/5o`k= s=k=K<+`0H k=H?4#4 !xKP7>1HS>S>0HPfRPgBs=2N 1JN3N0N s=Ӹl22N1kN2@HPiPvRlPhP1$n1.PPPS=2N PPyB1N3N S=P1PK=3N2|n~(hJPP"Pq;PB?0N26.3.1Rn0n=@0n<@3nPwk0n P,20nrl=0N3n2Pp1Hk=K=_=01NsPfpˀK<?FR5AAc?>h??@@@=|׽?!TD-@8@@@$@"@>@N@V@r@F@o@4@<@ Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE `PX!,X 88X!@D>(@P0>(P@x\ $$lK <I$I|LU($J$O[LP4_^4S4aymymd}$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"*?/@ I$4#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@   @  @   #  -  9@I `  X  i  @  ` @   ƠϠ  ! #% '  )$ +, -4 /;` 1C@ 3K 5R 79 Y;\ d= >@@kBtD@D@D@FHJ  M O Q S UW YZ  d= ]_@a@c@c@dfh# . km@=oF  I rt@LvUx^  c z|@h~s x K K @@       ` @       $@c@-c@`6 = F Q Z b k`   v |@      ``  @@       8      5 @@``` @       #`   - 4 ? H@@ P@@  X@@@  `@@  h@@ p@@ x@@@ @@ @@ @@ @@@ @@ @@ @@! @@@# @@% @@' @@) @@@+ @@- @@/ @@1 @@@3 @@5 @@7 @@9 @@@; @@= "@@? )@@A 0@@@C 7@@EG >I MK \  g M r O } Q ` S @ U  W  Y  [  ]  _  a ` c @ e  g  i  k  m " o - q 8` s C@ u N w Y y d { o } z    `  @              `  @          *  5  @`  J@  T  ^  h  r  |    `  @          `  @       , ;  G ` ՠ @ S@ ` @ h @ p @ x@ @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ & @ 3 @ @@ @M @U @] @c@ @k @s @y@@@@!@#@%@@'@)@+@-@@/@1@3@5@@7@9@;@=@@?@A@C@E@@G$@I+@K2@M8@@O?@QSKUSW ;  G Y` ]  S@_[] ah cs e~ g i k` m@ o q s u w y { ` } @    ) 3 = G ` Q @ [ e o y    `  @        `  @    ( 3 > I ` T @ _ o     ` @        ` (@ 3 > I R [ f q` |@        ` @           !`  ,@ 7  B M X c n y` @   ! # % ' ) +` -@ /  1 3 5 7  9 ;!` =+@ ?5  A? CI ES G] If Ko` My@ O` @S ?U@QWY[  ] `` _ h@ a p c x e  g  i  k  m ` o @ q  s  u  w  y  {  } `  @           ` &@ 3 @ M U ] c k` s@ y      ` @       ` @       $` +@ 2 8 \X` L   $$1@>   ] `9AIT `_ l  w  % % % `  $$!&l#%   (@ , . @ 1 3 /4 -6 *7@79A K  ]? =@@VB_@ h E@ I pK GL`{N  Q S U` W@ Y [ ]_aǠc` e g i kpmho`q@ s u' wy@2{@}P@$V}@%@^g(m@&&V}@*s} *c`  **%@**+               *   4 8  AF  O X a i q x` ~@    @` @    @             `7 @8        ` `  @     ! "%$. 6@  ?@ G@ O @ \@ g @ r@ u!@ x#@ {%@ ~@ )@ '@ @ @ - Q ,  @&@(@*5A@ 1 .)".*Q C+ @ 7<6<=2@?1@A,AF@AR@A`@AU Aa@Af@A k@Ao@Aq@Ar@At@Ax@Ay@A z@A"|@A%?@A'E@A)@@AC@A+8 CM PoQ Tq Un5~> Au ;tZ hxi lz VEp8t=EXq 4!04"P9.< ADBXC`D`E`FGIJKLMNOP R(S4P=1>@?P`?2`^3_TP9.FXGXU`YdZp[\]^`^3_`_4e70e8PjEq\u\dPt@`wPtPu`v`wPvnw x8yhzh{t|}~Po`pPq`r`s`|PjE8PxTh|hhh`yPz`{`|`}`utminv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listremquotdiv_tldiv_twchar_t__sival_ptr__svi_int__svi_int_ssigvalsigval_tpthread_attr_t__sigev_reserved__sigev_notify_attributes__sigev_notify_function__sigev_value__sigev_signo__sigev_notifysigeventsigevent_t__SIGEV_THREAD__SIGEV_SIGNAL__SIGEV_NONE__sigev_typestm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_tpad2pad1ki_timevalkt_trlim_maxrlim_currlimitru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusageSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__dev_id__lockpage__addr__gfault__band__fd__file__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tsigset__sigset_tsigset_tss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr27ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr27_loss_cr27_hiss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_low__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_size__stackstack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxt__sub_ctxt_tuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_tsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionpthread_tss_onstacksigstacksv_flagssv_masksv_handlersigvecfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsiglocal_misc_tsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsi__xsi_tsc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_doublepw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwdfloat_tdouble_tr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindutminvintzonescale_factr_minr_majtemputminvlatlonyxconphidelta_phiisin_phicos_phitan_phiccsttsnddsfhgmax_iter!4DA DA GCHCD;@p@h= T\CA```@P`AlP`hDEP@`PJdEGX@`XL pFE@lN@A5v0(JK(@(^@HX@@Z@8\@0P@m8< $4PS @ 9d@\@0AY!JJ!LXeDA\|DCLCHA\@@p@`A 4,AhJ@P!ddyxDAhDAtM!VVMAt,@X@@@GGAG!tA@@@8@0@HA/PTPPPPC PXTXXPXC XA|h@ AAA4_!\A`\!MAM@(A8wAh_!d5Ah5!Dd,Ah,BVV>2V ?^_UPYVY1 VZV Z2V[P[;P\VP\;tV ]^;hP_7E0ȽuwyPeuPӽwy quPPPPPԽՓ ?;kPPPP ;kLHӽ VV2VwPP;kyPPx{PՓyӽxz;kӽz{{;k|;k}|~~P ;P;k ;kԽ;x;k PP;kPPPՓӽP֓ԓӽԓԓPP;k;iP" #!#"zj%=%(% %             A%    9    1    i 9 0 $@ 4$ DJ0T dx @ 0 (8@HT`l|utminv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$utminv $gntt_label $lntt_label utminvintS$33$utminvintlabsM$34p_errore0fne1fne2fne3fnmlfnptitle genrpt_longradius2genrpt cenlonmerutminv S$36$utminvexpcossqrtasinzatan2 adjust_lonsinfabstsincostansignvandgfor.o/ 1074012799 1032 20 100666 11104 ` 1 +`@4 << ($T)T 0$G%+k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,/-/.///0/1/2/3/4opk> s>+`P$20H 4$ PK=0.0H1HK=0,0 "P"P1n@0N0H1H0L0d "P@1HP20.0l0D "@1n1nPb0.PR2H7?7?0NS?S?2NP"0 1n 0N11.1Q.@0n 1yN1kNN&'2fN2N0N%2d12EN0n0 0P0pP"0N 0n@&2N10 ,%@P*pfP"P*pPpfPp1P"PR0N 0 02N@P*`pf@0P,(pg@P*&pf4K=S>K>O>/04/03/02/01/00/0//0./0-@/0,=|׽@@ !TD-?!TD-??VAN DER GRINTEN `PX!||,X!|8X 88DY>(@PZ>(P@ \0$$l[T 4$ 4|\ X^ npddr9$T$$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"+?/@ 4%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @ @  @ '@Q 6 xB@N@Y@@  Q e) @ n"p"#r@%v@'HAz@A!@A"@A$@A/@A0@A1@A3@A5@A*@A%@( ,B- 3D 5+:+7; ) 0) P.1,2,3<4<8<9D:L;T`<=dP.<d`<`=A0APG+RdTdZx[def g h,i4j4k4mdnholpxqrPUBVWX`XCP\D]^_ab(`bEt0`vFwDPG+vD`vF`wG`xJvandgfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingvandgforintfalse_northfalse_eastcenter_longvandgforyxlatlondlonthetaalasqggsqmmsqconcosthsinth!()DA,xDA,pGCxCxx (1@,xxHx0D29@,x (83@<xx<x@8H!D`ADAdDCCȀ@!``RMAdM@@@APPYdePA DY0,Cd0,CdA,PAA4Ph!00ih8A4P8DP5Y4@jk5Ad,@3)1P1P43P)8TT4P4P8?1 2P9;h:;h;PP;<;P=$ RVW]_akoprtPRPAԽVW]_akoprtTZ[_adgikprtT[R?;k RTT;k Z_adkprtZi֊;k ;k Z[;k '[;k "[;k dgirtd;k ff;xdgiekPgigihjkjkjk;kmkmnoPoprtPp;k rtq;kPrVPPVWPXW]P]^_aP;kP_a;kPbat;kPtvw (%1% }wi(% %   )%     (@ 8$ H X0X h@t0 vandgfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$vandgfor $gntt_label $lntt_label vandgforintM$17ptitleradiuscenlonoffsetpvandgfor S$19$vandgfor adjust_lonfabsasinztantsincossqrtvandginv.o/ 1074012800 1032 20 100666 10884 ` 1`*@ `'#D(pTG% k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,/-/.///0/1/2/3/4/5o+`P* `Pfs?3P("P$0. s?CPm1N 0.Pn"Ppb1+n2n 2RNs?S1Ns?c2@H02NNS?cPk21PvB1Ns?sPfR2NH.9j0N 0H2.N(21N2)N2;NS?S2n3n 2=N@2n3n0.@3n 1Rn1rn3n2.2`1n3rn 1$@30n@2N1N0n0n2`H0,0 !J2`L0d *(1H@20n2dNS?3K>@0n0. 1@1(N s1HPe0 0 !B+`P$2K>sD4K>YO?!/05/04/03/02/01/00/0//0./0-@/0,Ps2`H0nS?CPg21l0D 0@20n2dNS?3K>@0n0.1(N rS?cS?SS?s1.0.j1(1S?3# S'+`P&21(N 1GN 1ln0K>-s@ !TD-?@@"@;@?R8-se=|׽?VAN DER GRINTEN `PX!||,X!|81X `0`D>( @P>(P@ \$$l 4$ 4| XxXtt 9#T$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"+?/@ 4%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @   @ @  @ '@Q 6 xB@N@Y@@  Q e) @ n"r"#v@%x@'HAz @A}!@A#@A%@A&@A'@A)@A+@A@A,@A(@$J 'B* -D .+:+0B2; ) 0) P.1,2,3<4<8<9D:L;T`<=dP.<d`<`=A0APG+Q0R`S`T`UpVpWXYZ\,],^<_DP`BaXbd`dCjllPmDno`oE`tFuPG+tP`Bd`dCfg h(qX`tF`uG`vLvandginv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingvandginvintfalse_northfalse_eastcenter_longvandginvlatlonyxxxyyxysc1c2c3a1m1conth1d!()DA,xDA,pGCxCxx (1@,xx-Hx0D29@,x (83@<xx<x@8A`eHCd Cd@d@d@dlYDdY!\\SQAA`AApdD!llUTVApVdMYtVWMA05AdSAdVA$d_!(\ZYA,@YA<d\A $2@d@3)1P1P43P)8TT4P4P8?1 2P9;h:;h;PP;<;P=A RPPSWXYZ\]^_bdfhjlqShj֊PQP RWY_bqS QXYZ]q\ս^fhjUTVZqսXW?;k VXqWսYԊZսqՊWXYZXӽYZYq\Z\Z]Z];k ^]^^_;k abbj;k jl;k nPPntu df;k fghj;k hq;k PP;kq(%1% w#(% %   !%     (@ 8$ H X0X h@t0 0 vandginv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$vandginv $gntt_label $lntt_label vandginvintM$17ptitleradiuscenlonoffsetpvandginv S$19$vandginvfabssqrtacoscos adjust_lonS$19DD$vandginvwivfor.o/ 1074012800 1032 20 100666 9868 ` 1&@8 @@#4 d$4G%k?/,/-/.//7S>0H+`p."S>p-0H 4?s+`4:s21H1H1H1H4K>7?A/0//0./0-@/0,k?/,/-/.///0/1ok?ik?q+`P$20H `PoPp"40.0H 1HPe4< 0N4: 49`1H11H0.002&n1 0,0 _4U+`+`#SPdBP&"1N 0N1H1N +`P'K>1HPfR. sP("1N +`P%K>4*rK>K?qK?iO?a/01/00/0//0./0-@/0,@DKL?=|׽@?랃%? 4\?WAGNER IVIteration failed to convergewagneriv-forward `PX!,X!TT8+X \88D>(8@DP>(P@H \4$$l X 4$ 4|  Xhp4p!p<p`<`); $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@",?/@ 4p`#+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ %@Q 4 >@J@U@@  Q a) P@ h"j"#l@%p@'At@A~@A$@A@A! : 6 *+,6- $ 0$ P),4-8.D/D3D4L5T6\`78hP)7h`7`8<0<PA+J4KPLPP`PQ6@Uh`U7PtPQ6RxST@TU`U7PWXYZ(`Z8[(`[9`\<wivfor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingwivforintfalse_northfalse_eastcenter_longwivforyxlatlondelta_lonthetadelta_thetaconi! 0$JA4xJA4DCHC@% (4,@8P<L-4@8' 0@.@D) <@/-D@8HPA4dGCdLCdHP@dAPdDHGGSTG!4LKJGAPdGltJYThLUJx!D`PJAddA/P@dP@dP@d.6$,-./P,P/6.P$,-ֽ//P3TT3?1 -P4;h5;h667;68À JPPK<LRTWXYRTPJ?;k  JL;k TULUT2T PR;k ;k RT;kSTӽU PTUTXPWԊPWX;k ԽYPPXYP;k PPZY[  ##(%1% S[#(% %   !% a    $@H 4$ D X0T d@p|0  wivfor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$wivfor $gntt_label $lntt_label wivforintM$17ptitleradiuscenlonoffsetpwivfor S$19$wivfor adjust_lonsincosfabsp_error S$19DD$wivforwivinv.o/ 1074012801 1032 20 100666 8848 ` 1L"@t ||L p@G%sk?/,/-/.//7S>0H+`p."S>p-0H 4?s+`4:s21H1H1H1H4K>7?A/0//0./0-@/0,k?/,/-/.7+`P*"P&"RP$0. 0N 0. 1+n@0H +`P&"# S'1H0N+`P&21N1n0#@SF"K>s1N 1H#1S20n@K>s4K>7?1/0./0-@/0,? 4\?랃%@@DKLWAGNER IV `PX!,X!8X  ` Dm>( @ Pn>(P@ \p$$lv 4$ 4|wL XLy z|    :@$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"-?/@ 4L| #+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @   @ @  @ %@Q 4 >@J@U@@  Q a) @ h"l"#p@%r@'At@ + # 0# P(+4,8-D.D2D3L4T5\`67hP(6h`6`7;0;P@+EF8G8HHIJ`J.K`K/`L0wivinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingwivinvintfalse_northfalse_eastcenter_longwivinvlatlonyxtheta! 0#JA4xJA4DCHC@ (4+@8P<L,3@8 0@-@D <@.,D@8A8G!04FE;A8@;CLCH@@@AHD@-5#+,-.P+P.5-P#+,ֽ..P2TT2?1 ,P3;h4;h556;57`FPPGPEPFGEG?;k GHPP;k PP;k IHI;k;k IJK #(%1% /?y#(% %   )%    $@ 4$ D X0T d@p|0 `wivinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$wivinv $gntt_label $lntt_label wivinvintM$17ptitleradiuscenlonoffsetpwivinv S$19$wivinvasincos adjust_lonsinwviifor.o/ 1074012802 1032 20 100666 9164 ` 1`#@ ` !HG%2:k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,/-/.o+`P$20H `Pn"0.Pf7?Q7?a0n@1HPf0N l%0H S?cPf2l0n@+`P("PiB4P&S?S1 N K>PeRK>1N0N,rP8"P+3N1NN sK>O?1/0./0-@/0,@?}A5T?@@V|G?LPrWAGNER VII `PX!||,X!|8X 0`0D>( @ P>(P@ \$$l 4$ 4| X,LL9H$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"-?/@ 4$,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ &@Q 5 x@@L@W@@  Q c) @ k"m"#o@%s@'Aw@A@A@A@A@A@ + ! # 0# P(+,,,-<.<2<3D4L5T`67dP(6d`6`7;0;P@+G H0IHJXKdL|MN`N8O`O9`P:wviifor.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingwviiforintfalse_northfalse_eastcenter_longwviiforyxlatlondelta_lonsin_loncos_lonsc0c1!(#DA,xDA,pGCxCxx (+@,xxHx0D,3@,x (8-@<xx"<x@8HA TDCLCH@KC C AXDAdGKȀ@@@@-#+P+P.-P#2TT.P.P2?1 ,P3;h4;h5PP56;P7aGPP;HIJKLM֊ G?;k HH;x I;k IJ;kJKK;kLMPPNPՊLMPPMO  #(%1% MC#(% %   !% 1    (@ 8$ H X0X h@t0 `wviifor.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$wviifor $gntt_label $lntt_label wviiforintM$17ptitleradiuscenlonoffsetpwviifor S$19$wviifor adjust_lontsincossinsqrtwviiinv.o/ 1074012802 1032 20 100666 9252 ` 1d$$@  d  " 8G%6k?/,/-7`S?0H +`p,"S?p$0H +`4:+`p&p-21H1H+`P%P'4K?Y7?/0-@/0,k?/,/-/.///0o+`P( `P&Pd0.PlPp"0. 1n 1n 1JN )N+`P&"0H0N1n@2N2HPf21N1N0n@K>s2H1N1N+`P&2PgB,K>r4K>O?Q/00/0//0./0-@/0,@V|G?LPr@? rt@WAGNER VII `PX!||,X!|8X (p(D>( @ P>(P@ \$$l 4$ 4| Xt( (  88$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@".?/@ 4($,4= E N X c@k@t}         # 0 >LY h v~    Ƞՠ     (3> GMU[ag ox   CŠD͠Ҡݠ  ;   %+29?FMEUB]<e m t|   `  h j l Ǡnp Рq` @s u@w@ܠy{ ` @@`   ` `   @    ` @ @@$  - 5<E JCU[5a`?  ktt{xp` @     @ `     xp` @    `@  @   @ @  @ &@Q 5 x@@L@W@@  Q c) @ k"o"#s@%u@'Aw@Az@A}@A"@ !+#$ & 0& P+.,/,0<1<5<6D7L8T`9:dP+9d`9`:>0>PC+HI@J@KHLHMHNLO`PtQR`R4S`S5`T6wviiinv.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tlon_centerRfalse_eastingfalse_northingwviiinvintfalse_northfalse_eastcenter_longwviiinvlatlonyxt1t2pc!(&DA,xDA,pGCxCxx (.@,xx#Hx0D/6@,x (80@<xx<x@8A@G!4<IHJA@JCLCH@@HTLN/AHH;LPAaDDKJ>A`M@AtP@@0&.P.P10P&5TT1P1P5?1 /P6;h7;h8PP89;P:IPPJKOPQHPKIJQOHKJ@?MN?;k @?LNOPPNO;k OP;k ;k PQ;k;PP;kQRS  #(%1% AI#(% %   )%   (@ 8$ H X0X h@t0 pwviiinv.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. SB$wviiinv $gntt_label $lntt_label wviiinvintM$17ptitleradiuscenlonoffsetpwviiinv S$19$wviiinvsqrtasinzsintanatan2 adjust_lonfor_init.o/ 1074012804 1032 20 100666 42028 ` 1D,@l DJ{*tha\G%Ck?/,/-/.///0/1/2/3/4/5o`k< s< sK;7'7$6P0,0 J0L0d 0@P0l0D 00 4?7>k?7=7>545X5wPbPr47>PBK> g#SK>S"0N$0NPR7>K> g2NK>$l1Ns?S= s?S>s?ss?ck>+`H4 |< /:P"7>K> z!@QRK>QO"2DN$1NP27>K> z2DNK> $1NPB7>K> x2DNK>$d1NPR7>K> 2DNK>`$,1NP0l0D $4s?S=s?S>s?ss?cs?Ss?Ck?9k>+iH)H |Li!P"7>K> v# S0K>S."2N"1NP27>K> k2NK>@!1NPR7>K> i2NK>!1NPB7>K> |2NK>!\1Ns?S=s?S>s?ss?cs?Ss?Ck>+dH!  | A("P"7>K> u#SK>S"2N 1NP27>K> b2NK> L1NPB7>K> |2NK> 1NPR7>K> u2NK>ኀ?1Ns?S=s?S>s?ss?cs?Ss?Ck>+eH"( | "P7>K> |2$N4K>!2NP7>K> u2$NK>ኀ 2NP7>K> s2$NK>ዠ 2NP7>K> |2$NK> t2Ns?S= s?S>s?ss?cs?Ss?Cs?3s?#s?s?k>k>+uH6 | 9PB7>K> y"`RrK>Ro"2DN!1NPR7>K> u2DNK>ኀ!1NPP"7>P2K> i2DNK>!D1Ns?1HS>s?s?ss?cs?Ss?Ck>+H7 |pWk?7=7>545X5wPbPr44Ĉ!PB7>K> b#@SPK>SN"2N:x1NPR7>K> b2NK> :@1Ns?S= s?S>s?ss?ck>+aH5 | 0*@*k?445X5w P7>K> a PK>P"1N981N P7>K> x1NK>91N P21N1L70d k?!QB s?S=S>k>+bH6 |X !PB7>K> t"RK>R"2N81NPR7>K> s2NK>ዠ8X1Ns?S=s?S>s?ss?ck>+fH&0 |8!PB7>K> s#SK>S"2N71NPR7>K> z2NK> 7X1Ns?S=s?S>s?ss?ck>+gH'8 |1@PB7>K> }!`QpK>Qn"2N`61NPR7>K> x2NK>6P1Ns?S=s?S>s?ss?ck>+hH(@ |!"PBP"7>! K> yQ1K>Q0"2$N52NPR7>K> 2$NK>`52Ns?S=s?S>s?ss?cs?Sk>+jH*P |! PB7>K> x!QK>Q"2N`41NPR7>K> j2NK> 41Ns?1HS>s?s?sk>+kH+X |K! PB7>K> w PK>P"2N@31NPR7>K> h2NK>31Ns?1HS>s?s?sk>+lH?` |?! PB7>K>  @PPK>PO"2N 21NPR7>K> f2NK>@21Ns?1HS>s?s?sk>+mH7h |x! PB7>K> k P0K>P/"2N11NPR7>K> a2NK>ዀ11Ns?1HS>s?s?sk>+nH8p | `! PB7>K> j#SK>S"2N01NPR7>K> v2NK>አ01Ns?1HS>s?s?sk>+oH9x | H%PB7>K> i"RK>R"2N@/1NPR7>K> j2NK> /1Ns?P" s?S>s?ss?ck>+pH: | ( z$PB7>K> h"RK>R"2N /1NPR7>K> s2NK>ዠ.1Ns?1HS> s?s?sk>+rH3 |  3!*PRP"7>K> g"RK>R"2$N. 2NP00  P27>K> b2$N4K> -2NPB7>K> b2$NK> -M2NϟK;4,#PP2P"000 07>K> y#4SK>S"2DN@-2%NPB7>K> j2DNK> ,2%NPPP 0 'e@K;K;45k> |K> )j+cH' 8 G4 D;4"PB7>K> h"`RfK>Re"0N*0Ns?S> s?k>+qH= |h ]4$ PB7>K> g#SK>S"0N@*X0Ns?S> s?k>+sH4 | 4&;4(PB7>K> f#@SFK>SE"0N )0Ns?S> s?k>+tH5 | 46 PB7>K> u# S&K>S%"0N*0Ns?S> s?k>+wH" | 4*)PB7>K> t#SK>S"0N)P0Ns?S>s?k>+xH& |@ FD)jPB7>K> s"RK>R"0N)0Ns?S>s?k>+zH( | PB7>K> }#SK>S"0N`)(0Ns?S>s?k>+}H+ |k4 :D&4 K> z!`QfK>Qe"0N@(h0Ns?S>s?k>+~H? |4ƀ 4> PB7>K> h"`RfK>Re"0N '0Ns?Ps?Ps?sS>s?ck>+`@H8 |84K;KP00 J00 0@P00 0,0 4(7>k?7=7>545X5wPbPr=4ϟUK;ϟEK;ϟ5K;ϟ%K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟuK;ϟeK;ϟUK;ϟEK;ϟ5K;ϟ%K;ϟK;ϟK;ϟK;ϟK;ϟK;s?ϟK;ϟK;ϟK;ϟK;ϟuK;ϟeK;ϟUK;ϟEK;ϟ5K;ϟ%K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟuK;ϟeK;ϟUK;ϟEK;ϟ5K;ϟ%K;ϟK;4?S= ?S>s?s?ss?cs?Ss?C?9k?1s?#k>+vH! |] ϟ]K;ϟMK;40642S>k>+yH' | 'ϟK;44 H@S>k>+{H) |m4.64 8s?S=s?S>k>+|H* |ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;@ >U@Lc˰?#x `PX!@@,X (@(8>(@DBh$$P 4$ 4`% Xl4Hx"OD4D%UD:UD&:&'{a\$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@".?\Ɗ@ 4D&%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @ Q   <@        $ ). @ 7? G AN AS @A[)@A_0@Ae@Aj$@Ao@At@Ay@A@A@A"@A@A8@A[@A@A@A@A.@A/@A- A+@A~@A A & A' A A,@A(2@A.3@A7  A=2^ b a f h e{ }k m o r t qR Ww3 CyE U{ }  ǀ 1ɀ Ԁր   Y ` )b ik rV1 :W e i@D O Pt! {}%  ' ' +- 1) - k/ z3  <U+>mŀoqtـwyy { {}#)/$*065;A<BHGMSNTX^]cidjou{pv| ɀ؀ـ߀#+% 271=C8>DJIOPV 606P?cldljlPkaltPnbo`ocr`rdPm,,@44Xd`nMlPNQtRSUVWYZ[]^_a de gLh\`hdPyl,<`zDP{Lppx     `|P$P9:$;@<D=D?L@hAhCpDEGHI`JLOP`P Pр88@\\dlp`Pk`lPo,,4PP@XX|`pPqPr`sPÀt `΀u$0HT`Ӏv\P}d!#$`$~'P(+,-/ 0<1<4D6d8t`8;|P<?@ACDEGIJ `Jk Plo p q @r @t Hu dv dx lz { `{~ P         ,` 4P < ` ` h     ` P        4 D` LP T x x      `À Pǀ     ( ( 0 L \`Հ dPـ l         ` P    ( D D L l x`# P$' ( ) * , P-. / 0 1 3 4 5 6`6`P`P?SPTW(X8Y8PZ[D\\]l^l`tabdef`f`qP׀w`ހxP  (@L` TP  ``P  ` t Pux,yPzP|X}p~|`~P`P0@`HPPtt|`PĀ`̀P HHPX`t``P?tPuevPxfy$`ygP~h(`i,`jPm``n`dP?Pmh`n`lP?Pop`p`tP?Pox`p`|P?PqPÀt`΀u`Ӏv`P?PqPÀt`΀u`Ӏv`P?P׀w`ހx`P?Py`z`P?Py`z`P?Py`z`P?Py`z`P?P{`|`P?P{`|`P?P{ `|`P?P{`|`P?P}`$~`P?P} `$~`P?P(.`8`P?P(2`8`P?P<B`J`P?P<F`J`P?PNT`h` P?PNX`h`P?PN\`h`P?PN` `h`$P?PNb(e,`hPls0`{`4P?Plw8`{``J`P`P?P$P9B`J`P`P?P$P9F`J`P`P?P$P9J`J`P`P?PTPZ_`f`q`P?PTPZc`f`q`P?PTin pHqT`qPu{\`~``P?Pd``hP?lPx`P``P?P`P`P``P?PĀ`̀`P?Pр ``$P?Pр(``,P?Pр0``4P?P8``<``5for_init.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tfor_initfor_transiflgfn83fn27outdatumoutparmoutzoneoutsyszoneazimuthalfanglelon1lon2lat1lat2center_longcenter_lathlon_originlat_originr_majorr_minorscale_factorfalse_eastingfalse_northingshape_mshape_nstarttimeradiustmpdatumpathsatnummodesat_ratiodzonedjustifythingiflg64!Th6Al!hh6AlAl(\hAtCCCC pp pPp ppDpxpp,p Xp\p@p @p pp`p |pPp l p `p T p Hp < p 0p  pt p pxpdpL pl@ppXpp,\phpC`ppt!LH\[!0,;:! /. $A  PDx,\@ @ ` |P l  ` T  H <  0  t  xdL l@X,\Ch  PDx,\@ @ ` |P l  ` T  H <  0  t  xdL l@X,\Ch @@ @P@ @D@@,@ X@\@@@ @@ @@`@ |@P@ l @ `@ T @ H@ < @ 0@  @t @ @x@d@L @l@@@X@@,\@Ch@K<K<Tl5$P5DJ@J555T|5 (5555\h50Xx|5555d 5 , |J (J,85(5 M p M  `J J J X J HJ J l J @ hJ 0J J L M HptM SY]S M?CM$xM +/MMhM V V$,,8M 4MhMYMtYPp?CY P d, , L, JxQUJH\,$D/4,,!,| MPxM@MpM XGG\t,8X,8P,Y4,BXXah8x`d8PVDL;?VXDYD M  JA0@,,GL, PUYP S|S@SYS J (,J p , L ltx, , ]a,,CG,, ,@VYV X\@ @ DA,hYDdY , , 4 D,  0, , ,  ,, , , l ,  ,Y ,A 5 @_Y /3_$2Y 362\YtCG\A8@THWY8DX[WxPY`t\`PK<8A2A<K< K<(,Yt,AXl,A`l2I@X6jc6jl  orr?9;wȃՃ;w ; XXMQ;wRRQUY]SQUY]SQU;wVVUWUY;wZZY[Y];w^^]_]ade; ehXXghh;w񃃽;w;w ;w; XX;w  ;w;w  ;w     ; XX;;w<<; := ;?;w@@?A ?C;wDDCE CG;wHHGI GLP ;2 LPXXOPP;wԾؾރփ;w ;w ;F XXӽ9;wՃ;w ;  XX9;wĽȽ̃ՃՃӽ;wӽ̃;i ӽ ЃЃ;  XX;wՃ;w !; !$XX#$$'+;w,+/-Ճ+/;w00/1/4; 48XX688;?;w@@?CAՃ?C;wDDCECG; GJXXIJJkpop;wԾtqqptrՃpt;wuutvtx; x{XXz{{~;wՃ;w; XX;wՃ;w;  XX;wՃ;w;" XX;wՃ;w;$ XX;wʾ΃Ճ;w;& XX;wܾՃ;w;( XX;wՃ;w ;, XX#('(;w))(/3;?CG*(/3;?CG(* (,/;w00/ .1 /3;w4435 36SYW\XWY X\;w]]\`[\`^Ճ\`;waa`b`fd ef9 XX;wԃ;* XX  ;w ԃ ;. XX#;wԃ ;0  XX  tx;wyyxzԃx|~;6 |~XX}~~;wԃ;8 XX;wԃ;< XX;wԃ;B XX;wǃԃǾ;D XX;w탃ԃ ;H XXtv  y 9Ǿ˾ݾ  .2BFTX\`besw;Ѿ߾+2>BFJ_cinq;4 nqXXpqq{;i: XX;i> XX;@ XXʾ׾۾ '' ' ''''''''''!'#'%''')'+'-'/'1'3'5'7'9';'='?'A'C'E'G'I%  ($ 8 X0 UH X@lx @ 0@P`p| ,<HXdt$0@L\hx (4DThfor_init.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. $gntt_label $lntt_labelfor_init S$12$for_initsphdzpaksz ceaforintceafor L$plab_start bceaforintbceafor calc_utm_zone utmforintutmfor stplnforintstplnfor alberforintalberfor lamccforintlamccfor merforintmerforpsforintpsfor polyforintpolyfor eqconforinteqconfortmforinttmfor sterforintsterfor lamazforintlamazfor azimforintazimfor gnomforintgnomfor orthforintorthfor gvnspforintgvnspfor sinforintsinfor equiforintequifor millforintmillfor vandgforintvandgfor omerforintomerfor somforintsomfor hamforinthamfor robforintrobfor goodforintgoodfor molwforintmolwfor imolwforintimolwfor alconforintalconfor wivforintwivfor wviiforintwviifor obleqforintobleqfor isinusforinit isinusforinv_init.o/ 1074012805 1032 20 100666 41916 ` 18@` 8J{`Ht\aG%k?/,/-/.///0/1/2/3/4/5o`k< s< sK;7'7$6P0,0 J0L0d 0@P0l0D 00 4?7>Qk?7>7>545X5wPbPr47>PBK> g#SK>S"0N$0NPR7>K> g2NK>$\1Ns?S> s?S>s?ss?ck>+`H4 |, /:P"7>K> z!@QRK>QO"2DN$1NP27>K> z2DNK> $1NPB7>K> x2DNK>$T1NPR7>K> 2DNK>`$1NP0l0D $4s?S>s?S>s?ss?cs?Ss?Ck?9k>+iH)H |<i!P"7>K> v# S0K>S."2N!1NP27>K> k2NK>@!1NPB7>K> i2NK>!1NPR7>K> |2NK>!L1Ns?S>s?S>s?ss?cs?Ss?Ck>+dH!  |x A("P"7>K> u#SK>S"2N t1NP27>K> b2NK> <1NPB7>K> |2NK> 1NPR7>K> u2NK>ኀ?1Ns?S>s?S>s?ss?cs?Ss?Ck>+eH"( | "P7>K> |2$N4K>! 2NP7>K> u2$NK>ኀ 2NP7>K> s2$NK>ዠ 2NP7>K> |2$NK> d2Ns?S> s?S>s?ss?cs?Ss?Cs?3s?#s?s?k>k>+uH6 | 9PB7>K> y"`RrK>Ro"2DN!1NPR7>K> u2DNK>ኀ!t1NPP"7>P2K> i2DNK>!,1Ns?1HS>Ss?s?ss?cs?Ss?Ck>+H7 |`Wk?7>7>545X5wPbPr44Ĉ!PB7>K> b#@SPK>SN"2N:h1NPR7>K> b2NK> :01Ns?S> s?S>s?ss?ck>+aH5 | 0@*k?445X5w P7>K> a PK>P"1N9(1N P7>K> x1NK>81N P21N1L70d k?!QB s?S>S>k>+bH6 |H !PB7>K> t"RK>R"2N81NPR7>K> s2NK>ዠ8H1Ns?S>s?S>s?ss?ck>+fH&0 |(!PB7>K> s#SK>S"2N71NPR7>K> z2NK> 7H1Ns?S>s?S>s?ss?ck>+gH'8 |1@PB7>K> }!`QpK>Qn"2N`6x1NPR7>K> x2NK>6@1Ns?S>s?S>s?ss?ck>+hH(@ |!"PBP"7>! K> yQ1K>Q0"2$N52NPR7>K> 2$NK>`52Ns?S>s?S>s?ss?cs?Sk>+jH*P |! PB7>K> x!QK>Q"2N`41NPR7>K> j2NK> 41Ns?1HS>Ss?s?sk>+kH+X |K! PB7>K> w PK>P"2N@31NPR7>K> h2NK>31Ns?1HS>Ss?s?sk>+lH?` |?! PB7>K>  @PPK>PO"2N 21NPR7>K> f2NK>@21Ns?1HS>Ss?s?sk>+mH7h |h! PB7>K> k P0K>P/"2N11NPR7>K> a2NK>ዀ11Ns?1HS>Ss?s?sk>+nH8p | P! PB7>K> j#SK>S"2N01NPR7>K> v2NK>አ01Ns?1HS>Ss?s?sk>+oH9x | 8$PB7>K> i"RK>R"2N@/1NPR7>K> j2NK> /1Ns?P" s?S>Ss?ss?ck>+pH: |  z$PB7>K> h"RK>R"2N .1NPR7>K> s2NK>ዠ.1Ns?1HS>S s?s?sk>+rH3 | 3!*PRP"7>K> g"RK>R"2$N.2NP00  P27>K> b2$N4K> -2NPB7>K> b2$NK> -M2NϟK;4,#PP2P"000 x07>K> y#4SK>S"2DN@,2%NPB7>K> j2DNK> ,2%NP P'u@K;K;45k> |K> )j+cH' 8 G4 D<4"PB7>K> h"`RfK>Re"0N*0Ns?S>S s?k>+qH= |h ]4$ PB7>K> g#SK>S"0N@*X0Ns?S>S s?k>+sH4 | 4&;4(PB7>K> f#@SFK>SE"0N )0Ns?S>S s?k>+tH5 | 46 PB7>K> u# S&K>S%"0N*0Ns?S>S s?k>+wH" | 4*)PB7>K> t#SK>S"0N)H0Ns?S>Ss?k>+xH& |@ FD)bPB7>K> s"RK>R"0N(0Ns?S>Ss?k>+zH( | PB7>K> }#SK>S"0N`) 0Ns?S>Ss?k>+}H+ |k4 :D&4 K> z!`QfK>Qe"0N@(`0Ns?S>Ss?k>+~H? |4ƀ 4> PB7>K> h"`RfK>Re"0N '0Ns?Ps?Ps?sS>Ss?ck>+`@H8 |84K;KQP00 J00 0@P00 0,0 4(7>Qk?7>7>545X5wPbPrM4ϟUK;ϟEK;ϟ5K;ϟ%K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟuK;ϟeK;ϟUK;ϟEK;ϟ5K;ϟ%K;ϟK;ϟK;ϟK;ϟK;ϟK;s?ϟK;ϟK;ϟK;ϟK;ϟuK;ϟeK;ϟUK;ϟEK;ϟ5K;ϟ%K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟuK;ϟeK;ϟUK;ϟEK;ϟ5K;ϟ%K;ϟK;4?S> ?S>s?s?ss?cs?Ss?Ck?9s?#k>+vH! |e ϟeK;ϟUK;40642S>Sk>+yH' | 'ϟK;44 H@S>Sk>+{H) |u4.64 8s?S>s?S>k>+|H* |ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;@ >U@Lc˰?#x `PX!44,X (8(8>(@DB\$$P 4$ 4`%p Xpl4$xN:4h<U:U&`:&`{`a$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"0?\Ƒ@ 4p<&`%-5> F O Y d@l@u~         $ 1 ?MZ i w    ɠ֠     )4? HNV\bh py   CƠDΠӠޠ  ;   &,3:@GNEVB^<f n u}   `  h j l Ƞnp Ѡq` @s u@w@ݠy{ ` @@`   ` `   @    ` @ @@%  . 6=F KCV\5b`?  luu|xp` @     @ `     xp` @    `@  @ Q   0@        $ ). @ 6= D AJ AO @AW/@A])@Aa@Af$@Ak@Ap@Au@A@A@A@A"@A8@A[@A@A@A@A~@A-@A.@A+@A& A' A A A,@A1@A$2@A-  A32\ ` _ d f cz |i k~ m p r oO Tu2 BwD Ty { } ŀ 0ǀ ҀԀ ހ   V ] '_ fh oU/ 8V d h>B L Mq xz#  % $ (* .' + j- y1  :R)<k€morրuwwy y{ &,}!'-328>9?EDJPKQU[Z`faglrxmsy~ ƀՀր܀! )"/4/:@5;AGFLMS 606P@dlelklPl_mtPo`p`pas`sbPk,,4Xd`lKlPLOtPQSTUWXY[\]_ bc eLf\`fdPwl,<`xDPyLppx     `zP#P89$:@;D<D>L?h@hBpCDFGH`ILOP`P PҀ88@\\dlp`Pi`jPm,,4PPX|`nPoPp`qPÀr `΀s$0HT`Ӏt\P{d!#$`$|'P(}+,-/ 0<1<3D5d6t`6~9|P:=>?ABCEGH `Hi Pjm n o @p @r Hs dt dv lx y `y| P}         ,` 4P < ` ` h     ` P        4 D` LP T x x      ` Pŀ     ( ( 0 L \`Ӏ dP׀ l         ` P    ( D D L l x`" P#& ' ( ) + P,- . / 0 2 3 4 5`5`P`P@SPTW(X8Y8PZ[D\\]l^l`tabde`e`rP׀u`ހvP 8D`LP  X ||`P`uPvy$zH{H}P~ht`|P`P  (8`@PHllt`Pŀ`΀P@@HPXl|``P@uPvcwPydz`zePf `g$`hPkX`l`\P@Pk``l`dP@Pmh`n`lP@Pmp`n`tP@PoPÀrx`΀s`Ӏt`|P@PoPÀr`΀s`Ӏt`P@P׀u`ހv`P@Pw`x`P@Pw`x`P@Pw`x`P@Pw`x`P@Py`z`P@Py`z`P@Py `z`P@Py`z`P@P{`$|`P@P{ `$|`P@P(}.`6~`P@P(}2`6~`P@P:@`H`P@P:D`H`P@PLR`f`P@PLV`f` P@PLZ`f`P@PL^`f`P@PL` c$`fPjq(`y`,P@Pju0`y`4P@P}8``>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tinv_initinv_transiflgfn83fn27indatuminparminzoneinsyszoneazimuthanglealflon1lon2lat1lat2center_longcenter_lathlat_originlon_originr_majorr_minorscale_factorfalse_eastingfalse_northingradiusshape_mshape_ntimepathsatnummodetmpdatumsat_ratiodzonedjustifythingiflg64!Th6Al!hh6AlAl ThAtCCCCpppHppp<plpp$xpLp\p@p @p ppXp |pHp l p `p T p Hp < p 0p  pt p pxpdpL pl@ppXpp$TphpC`ppt!LH\[!0,:9! .- $A|H<l$x\@ @ X |H l  ` T  H <  0  t  xdL l@X$TCh|H<l$x\@ @ X |H l  ` T  H <  0  t  xdL l@X$TCh|(((H((<(($x(L(\(@( @( ((X( |(H( l ( `( T ( H( < ( 0(  (t ( (x(d(L (l@((X(($T(Ch(K0K0 Ld5H5DJ@J55x5Lt5 5555T`5(Py}5555\ 5 , |J (J$05 5 M p M  `J J J X J HJ J l J @ hJ 0J J L M HnrM SW[S M=AM$xM +/MMhM V V@VV8M 4MhMYMtYPp>BY P d, , L, JxOSJH\,$D/3,,!,| MPxM@MpM XGG\t,8X,8P,Y4,BXXah8x`d8PVDL:>VXDYD M  JA0@,,FL, PSWP S|S@SYS J '+J p , L lrv, , [_,,AE,, ,$,Y,L\@ @ DA$hYDdY , , 4 D,  0, , ,  ,, , , l ,  ,Y ,A 5 @_Y .2_$2Y 252\YtBF\A8@THWY8DX[WxPY`t\`PA,A2K00K08,Yt,APd,AXd2I@X6kd6km  pss?9;wȃՃ;w ; XXKO;wP POSW[QOSW[QOS;wT TSUSW;wX XWYW[;w\ \[][_bc; cfXX eff;w 񃃽;w ;w ;w ; XX ;w   ;w ;w   ;w      ; XX :;w; ;: 9< :>;w? ?>@ >B;wC CBD BF;wG GFH FLP ;2 LPXX OPP;w վپ߃փ;w  ;w  ;F XX ӽ9;wՃ;w ;  XX 9;w ĽȽ̃ՃՃ ;w  ̃;i   ЃЃ;  XX ;w Ճ;w  !; !$XX #$$'+;w,,+/-Ճ+/;w0 0/1 /3; 36XX 5669=;w> >=A?Ճ=A;wB BACAE; EHXX GHHinmn;wԾro onrpՃnr;ws srtrv; vyXX xyy|;w Ճ;w ; XX ;w Ճ;w ;  XX ;w Ճ;w ;" XX ;w Ճ;w ;$ XX ;w Ⱦ̃Ճ;w ;& XX ;w ھރՃ;w ;( XX ;w Ճ;w  ;, XX "'&';w( ('.2:>BF)'.2:>BF') '+.;w/ /. -0 .2;w3 324 25SYW\XWY X\;w] ]\`[\`^Ճ\`;wa a`b`de e9  XX;w 탃ԃ;* XX  ;w    ԃ ;. XX ";w ԃ;0 XX uy;wz zy{ԃy};6 }XX ~;w ԃ;8 XX ;w ԃ;< XX ;w ԃ;B XX ;w ȃԃȾ;D XX ;w ԃ ;H XX uw  z 9Ǿ˾ݾ  .2@DRVZ^`cqu˾Ͼݾ*1=AEI_cior;4 orXX qrr|;i: XX ;i> XX ;@ XX ˾ؾܾ '' ' ''''''''''!'#'%''')'+'-'/'1'3'5'7'9';'='?'A'C'E'G'I%9#  ($ 8 X0 UH X8lx @ 0@P`p| ,<HXdt$0@L\hx (4DThinv_init.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. $gntt_label $lntt_labelinv_init S$12$inv_initsphdzpaksz ceainvintceainv L$plab_start bceainvintbceainv calc_utm_zone utminvintutminv stplninvintstplninv alberinvintalberinv lamccinvintlamccinv merinvintmerinvpsinvintpsinv polyinvintpolyinv eqconinvinteqconinvtminvinttminv sterinvintsterinv lamazinvintlamazinv aziminvintaziminv gnominvintgnominv orthinvintorthinv gvnspinvintgvnspinv sininvintsininv equiinvintequiinv millinvintmillinv vandginvintvandginv omerinvintomerinv sominvintsominv haminvinthaminv robinvintrobinv goodinvintgoodinv molwinvintmolwinv imolwinvintimolwinv alconinvintalconinv wivinvintwivinv wviiinvintwviiinv obleqinvintobleqinv isinusinvinit isinusinvcproj.o/ 1074012806 1032 20 100666 26588 ` 1g@D``_6S< Wc= G%8Ok?/,7p0H s?1HK?s1HK?rK?Y7?@/0,k?/,7p0H 1H#S0,0 *1L0d 0H S1HK?Y7?@/0,k?7#S0N(%S?K?Y0n@7?k?7#S0H0,0 "S2K>0N@7?SS"0N1ns?*) &s?0ns?#1Kn@S?S?#S?K>ٻ%0N@7?k?/,/-/.///0/1/2/3/4o#@SM0H0H 2MN#S0H1,0 !j#S"S24?1N1n1.@2En7?a7?q1HS?cS?s1N n)n kn&1*n0n0N0N2H.@2n@2Nl0L0d Rb/7?a+`4:490K># 4S.B1HK>YO?/04/03/02/01/00/0//0./0-@/0,k?/,/-/.///0/1/2/3o `Pd0H 0H K>k?Po"1H1NPpPr21PsB4?2 H@&1H0n@1N&0.2%0,0 Jbo2 H+`4:P49K?42 H1HK>O?/03/02/01/00/0//0./0-@/0,k?/,/-/.///0/1/2/3/4/5ok?)0H S> `s?3Pn4?1H PpS>Pr"S=Pt21N@1Nh1N$5dS?30n1 .1 0,0 R_o1N+`4:PmB49K=4K=1HK>YK?)O?!/05/04/03/02/01/00/0//0./0-@/0,k?/,/-/.///0/1/2/3/4/5o`k>k>S=c#0H s?3K=A0H 4?pdS=s>SS=s>S=ss>0Ns>S"S2S?30N s?S=Ss?#0N SB2Ns?Ss?CK=IPe0HPe0H1N%2dNpPf0NPh0HS>1N1N,3PfS>Ӹ0NPfS>30NS>Pfj50NS?PgĪ0NS?#1n1NPS?S?32nNs 1N&3.PuqJ? 0N1N0Ng3. $N=2n3N?1@3n0pyS?C0,0 :}@+`4: 49`1H0H1HK=K>K>O>/05/04/03/02/01/00/0//0./0-@/0,k?o0,4@0 4Z@"RR"#@_KR20nRBRRK?Y3&3A:G:ࢗ20. 3N @1Gn0;V?:K? X8 ? k?%J_?1`1V.0`0Z0@O?k?o#S4@0N0,0 4Z@0#S"S2SB4Z2 20.2N 3N9W:ࢊ:࢙&J1 . 0K?Y@O?k?/,/-/.7S>#SS0H H$H 0N0n@"R"0H0.1N0nK>7?1/0./0-@/0,0, 0 @4?@4k?/,/-/.///0/1/2o0H #SS4?S"S2SB1H0,0 @1n@0?K?`@1Hk?_?0h,bU@1HK>O?q/02/01/00/0//0./0-@/0,1n2@H000ό 0 2A0=%h,1n2@H000L 0d 2A0ݹh,1n2@H000l 0D 2A0}h,1Hk?_?0Eh,#S"RSBS20N S0NH.@.$#S"SS2S0N0N, ,@2N#SS"S0N. 0N @1jN0N#S0N@1Nk?/,/-7`#S00. 0H0H 1H1H1NK?Y7?/0-@/0,k?/,/-/.7S>s#S0H 0N1N0H"Rl-1N#S"S>1Nj S>h$K>7?1/0./0-@/0,7#SSS"01n 1$ 1A ?K?@7???>z򚼯H??@?=|׽?>z򚼯H??!TD-@?=|׽@@@=|׽@?@@@=|׽@È?PbM@YA.@@'@Lc˰@NA.@@???!TD-@ !TD-@!TD-AB !T!C!S~=??@0@??????????UUUUUU?@@@@f@?Convergence errorphi1z-convConvergence errorphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv `PX!HH,GX!\H\8GZX  t0 0DX!$00PFX!T\X!HdHhv(X!,  tX!8X!T@@IX!X!HX!tLtX! @ADX! \ttaX! 4 P4 -X! , , )X! 0$ $ <(X! T  d'X! lT T }X! @ hX! @4 4 p(>(@( )$$4 @ 4$ 4D !t XP 4@ $ \ K=B'Dh MD<. tD<.  US<= $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"1?/*@ 4 D"*2; C L V a@i@r{         ! . <JW f t|    ƠӠ     &1< EKSY_e mv   CàDˠР۠  ;   #)07=DKESB[<c k rz   `  h j l Šnp Πq` @s u@w@ڠy{ ` @@`   ` `   @     ` @ @@"  + 3:C HCSY5_`?  irryxp` @     @ `     xp` @    `ߠ@  @ Q   D@  @     Q !@X'@  Q +)@,1 @8 @%?@'A' @ +!!"Q F9#@1@8 @5? @7$BA'@* -> ';/1;)0Q LN1@D RIW@J?@L2AZ@Aa@A'@Af@Aj@Ap@Av@Az 8e @a HPJEaBKQ |qL@ R!l @m?@oMA"@Av#@A'(@Aa*@Aj'@Az& R X bsghZ_sdhQ i@ R10@/@.@-@+@jAv2@Aa6@Az5 my | q ~sxQ @<@ v@?>@=@<@;@:@9@?7@A8B@AD@AC@AE@AF@AG@AH@AJ@AaK@AzA Q @L@A'N@AS@AQ AR AM Q @T@A'V@A\@AZ A[ AU ȀʀQ @p8`@v_@ ?^@A'a@Afd@ ҀԀ Q  e@׀$ ڀ!߀!Q +@pf@:A j < 1 3 5 0 -'-0Q C@0k@ E ? Q M @(l@ OIQ W@ m@ YSQ !a@n@ c]Q &k @Po@!A'p@Afq@ %m'g(Q +)@|vv@u@yt@{s@}r@* ,.u/Q 00 0>w@1 356 303P44@4(`448P4Ѐ48`4`4;0;P<=P>?,@8B@`BDD`DEL`EJ 0J!PN+QR`R.S(`S/X00X1P\;_f `f@g,P\;P`>a4b@`b?`f@`gAlD0lEPpPz<{P|X}\~pPa`b~Pa`b`c`dg0hPs8DP`Phtt`P`P``Ps``0PDPP€d`ɀP€`ɀP€Pǀ`ɀ`ɀ`΀P`΀`πԀ0ԀPހPXP(``ڀPހP``ڀPހ`` 0 P  Ph``!0!P#)*+, -$.,/00X1\2l3l4t5x`56x`6<0< P@D(E(F4GL`GH\`HM0MPM!@MЀM `M"MPM!M`M"`M#R&0R'PT-U(VDPW0XDY\[\\|nop`p7`s8tPT-sPW0hPi5j`j6^P_1```2c(Pd3eH`e4mX`p7`s8`t9z>0z?PzE@z`zFz,`zG{H0{IP{O@{`{P{$`{Q|R0|SP|Y@|`|Z|`|[}\0}]P}c@}`}d}`}ef0gPm `r@`st0uP$`h`0P@`,``cproj.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_ttsincoscos_valsin_valasinzconmsfnzcosphisinphieccentqsfnzphi1zflagqseccntsdphicomsinpicospiphiiphi2ztseccnthphi3ze3e2e1e0mlphi4zcbasin2phtanphimlpcon1con2con3pakczpaksecsdegsminssgnapakr2dmtsfnzsignxadjust_loncounte0fne1fne2fne3fne4fnmlfncalc_utm_zonelon!3DADD#3CD#3CDDXDA8DH,H,C,A2A(,HCHA@leA<D!88lVA<|VCD JJAPJAp,KDC<DC<DAAA2A/!44DA8DA8GCLAPJSSA`hSB`hK8Yt|8A/!8@DADDHCCCCGGAPdGBPdA/!DLDAPDAPGCCCCCCCK<A\AYA\A(YA2Aw!8A8A}A/HA,`>A,KKA2A(/Ax,lt24,Xl8A$(,KK|,Q`x16,HpA(hGCpHLdJ!04FE;A8<;A4<5HppD(HDDA(@DB(@H0H(H HHPA$5A PDH|A$<GC|HC|@C|8H0 X34?;k 4;k 4 $;=?;kԽ?@BȆֆӽBֽ D;kERȊQR?;k St_bfȍՍXՍgbӽabӽabӽabcb?;kgӽf! dzȐl?;k{z{| } ;x    ;k  ;k ~aa2a  Ȕ ?;kՔ;k;;k;k aa2a B ӽƽȘ֘ØƘ?;ký;kaaΘ2a C 8ȚֽӽԽԾ՚֚ս?;k ӽ;k ӽ;k  ;k ӽ;k ;k     ;kaa2a  Ӿֽ?;kȝ՝՝ԝ֝Ӿֽ *Ƞ Ӿ)ֽ;4*-+,ֽ-?;k./1 Ӿ2Ӿ3/Ӿ/0123Ӿ1ֽ25456` DFȠ"ӾEGվ<DFDFEF?;G"FG G;kH lM*M;M RVXY[\^`cehjmȠ&VXY[&\^`m&hj^c֠&վe־jXV?;kY[[Y;k\;i#\osthjh;kjj^`^;k``cec;keem;i#mzȠ(Ӡ){Ƞ+ |Ƞ-}Ƞ/@Ƞ1?;; ;k `Ƞ3Ӿ"?;k32;k3B;k|Ƞ5# #:# #%.%% +% 7%d%^%%%7%%!1%#%%C%'%*%,%.%0%%21%4mA# $$ 4 X0DPX0`K l |0  0  0g  0 @0   X0<0D P 0` l |0     0   0 O  80   P0   X00 S <  L 0\  h 0x   0   0   0 C  0  cproj.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. $gntt_label $lntt_labeltsincossincosasinz S$13$asinzfabsasinmsfnz S$14$msfnzsqrtqsfnz S$15$qsfnzlogphi1z S$16$phi1zM$17p_errorphi2z S$19$phi2zatanpowphi3z S$20$phi3zphi4z S$21$phi4ztanpakcz S$22$pakcz S$22DD$pakczpakr2dm S$23$pakr2dmtsfnz S$24$tsfnzsign S$25$sign adjust_lonS$26$adjust_lone0fn S$27$e0fn S$27DD$e0fne1fn S$28$e1fne2fn S$29$e2fne3fn S$30$e3fne4fn S$31$e4fnmlfn S$32$mlfn calc_utm_zoneS$33$calc_utm_zonereport.o/ 1074012807 1032 20 100666 26072 ` 1He@0H_$Q b l<|G%<8k?7+`H8 k? k?#@K?7Z+`H9 @+`#4:7 +`h<"K?6K?7+`H:K?Y@7?k?ok? 7$ (s?+`h 4a h: B b+`h 4#7!4h+`K?4:D!+`4h9 4#7!4hx+`K?4:!B Zh`(K?!:4hw+`K?4:`4!:4hs(K? 4h}+`K?4:4όK?Yh`+`4:49@όK?Yh 4#h >@h`4Xht(όXK?Yh`+`4:`49ό K?Yh`(h`4K?YK?@O?k?7+`H:@ @+`H:@ @@K?Y@7?k?7+`H8( k?#@K?7Z0+`H9 x@+`#4:7 +`h<"K?607+`H:K?Y@7?k?/,7p+`H8(0H #@1H7Zp+`H9 x@+`#4:7 +`h<"1H6p7+`H:K?Y7?@/0,k?/,/-7`+`H9(0H @0H #1H7"`1H6z0+`H:@ @+`#4:7 +`h<"1H67+`#H:1H70+`H:K?Y7?/0-@/0,k?/,7p+`H9( 00H "`Rd#71N+`H:@ @+`#4:7 +`h<#S"61N7+`H:K?Y7?@/0,k?/,7p+`H9( 00H "`Rd#71N+`H:@ @+`#4:7 +`h<#S"61N7+`H:K?Y7?@/0,k?/,7p+`H9( 00H "`Rd#7p1N+`H:@ @+`#4:7 +`h<#S"61N7+`H:K?Y7?@/0,k?/,7p+`H9( 00H "`Rd#7 1N+`H:@ @+`#4:7 +`h<#S"6p1N7+`H:K?Y7?@/0,k?/,7p+`H9( 00H "`Rd#71N+`H:@ @+`#4:7 +`h<#S"601N7+`H:K?Y7?@/0,k?/,/-/.7+`H:(0H @ P0H "R"`6z1N"1N6+`H= @+`#4:7 +`h<# S."61N7+`#H:1N7+`H:K>7?1/0./0-@/0,k?/,7p+`H9( 00H "`Rd#7P1N+`H:@ @+`#4:7 +`h<#S"6P1N7+`H:K?Y7?@/0,k?/,/-7`+`H9(0H @0H #1H7"`1H6z+`H:@ @+`#4:7 +`h<"1H67+`#H:1H7+`H:K?Y7?/0-@/0,k?/,7k?+`H8(0H "#@1HK?7Z@+`H9 zs?+`#4:7 +`h<"K?6@7+`H:K>7?@/0,k?7+`H8(k? k?#@K?7Z`+`H9 @+`#4:7 +`h<"K?6`K?7+`H:K?Y@7?k?7+`H8( #@7Z+`H9 p@+`#4:7 +`h<"67+`H:K?Y@7?@Lc˰@Lc˰@Lc˰@Lc˰@Lc˰@Lc˰@Lc˰[%s] %s a %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld Output file name not specifiedreport-fileOutput file name not specifiedreport-file `PX!,X!8X!@ @DRX!`P}X!`\\X!hhX!$tX  P | oX!<zX!TX!lzX!X!X!p VX!  X! D X! T  &X! t \t >(lV@\ 3>(R@`>(P@`l$$, A 4$ 4< B X H Du. H HT 8#\` >)\l> )\ | :Q<|$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$LIT$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"3?`@ 4 H #+3< D M W b@j@s|         " / =KX g u}    ǠԠ     '2= FLTZ`f nw   CĠD̠Ѡܠ  ;   $*18>ELETB\<d l s{   `  h j l Ơnp Ϡq` @s u@w@۠y{ ` @@`   ` `   @     ` @ @@#  , 4;D ICTZ5``?  jsszxp` @     @ `     xp` @    `@  @          '$   .-   5`  <`  FQ O%  W"]"# ( 'Q b8  g1m 12s 4w 6W ;U7 9> = Y? CB %AH KEM PG'[R TJ ,I/]Z ^N 4Mc fQ ;:j-=6:=_GXA>IQMY:bkQ{l <m rftbuQ ov | /nw{ r qjQ { 7@ ~ }wQ  ?@>@ Q  F@ Q  M@ Q  T@ ɀ ʀ̀Q  [@ ׀ ؀ڀQ  b@ Q  j@i@ Q  q@      Q  y@x@   Q   @ $ ( )+,Q -   .2 6 79 :Q; p<@ D EGH :0:P='MNO,PP(Q<RXSp`S)`S*V|`V+Z,0Z-P`:aPb;cd(`d<g0Ph=i8j@nPo\`o@rhPsAtpu|{|`|DPI`LPM`P Ph=Pk>l`l?`o@`SP`:PsAPvBwxy,`yC`|D`S0P`:PE4<`F@PGHP`HPIPJX`K`L`S\P`:PMPN`dt`O`P`SxP`:PQ|`R`S`Ta0bPf,`g4`hi0jPq(Pr8Th`s`tt`uv0wP} ,PÀ~<Xl`ƀ`ƀx`Ȁʀ0ʀPˀP̀$4`πDPҀTp`ր`ր`؀ڀ0ڀPۀ4P߀D`|```0P4PD`|```0P4PD`|```0P4PD`|``` 0 P    4PD`|``̀`0P P(@`PP`| !`!`!܀#`#%0%P&'P()`)+4P,-D.`/|`/`/1`1303P45P67$84`8:DP;<T=p>?`?`?A`AC0CPDEF$G4PHIDJlKt`K`K M`M N 0N POPQR,PST<UXVp`V`VX|`XY0YPZ[\] P^ _0`La\`a!`a"ch`c#`d$report.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tterminal_pterminal_efile_efile_pfptr_pfptr_eparm_fileerr_filep_errorwherewhatinitpfileefilejpriprclose_fileptitleAradiusradius2Bcenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptSgenrpt_longpblank#:C(#:C(Ā@@ +@!ZA$A,#ZC,#ZC,̀8Tx<h 0cg@ T Th $(dc ,, @ 1 LX@h3 d LPTT@h<@<<5@<# C$|8@||:@||<@|A(D@@B@D@A@DA$GG@I@K@ADN@P@R@ADU@W@Y@AD\@^@`@ADc@e@g@ADk@m@o@A LGA(Dr@t@v@ADz@|@~@A@DA$G@@@A0D#CC0@@@#NC(#NC(Ā@@@p@pp@pp@pMQQ:NN?8OQQQPP7Q QQR9SQS6 QVDZacdQ dQcԽ cQginQ iQӽnj?6 n nQoPo7 PrQtw{ tw{Qu6 { {Q|P|7 P Q6  QP7 P Q6  QP7 Pl wQx]]2]y Qӽ Q Q Q Q]]2] Q QQQ?6 QQ6  QQ ?7QQPP7Q Q 8Q6 Q QQ ?:QQPP7Q QŅ :Q6 Q@LQQ΅ ?:υ :QQPP7Q Qԅ :QQ :Q6 Q  QQݓ?:QQPP7Q Qᓓ:Q6 Q@###$0#(2#x ",#*#&#" ## QQ镕?:QQPP7Q Q핕:Q6 Q ,QQ?:QQPP7Q Q:Q6 Q QQ?:QQPP7Q Q:Q6 Q  L QQ   ?: QQPP7Q Q:Q6 Q` ܾQQԅ?::QQPP7Q Q ԅ: QQ:!Q!6 Q#  'QQ%))?:+QQ-PP7Q -Q.:/Q/6 Q1@ D5QQ377?:88::QQQQ:?Q?6 QA  CEQQFF?:GQQJIPP7Q IQJ8KQK6 QM PQQNQQ?8RQQTPP7Q TQU9VQV6 QX lY[QQ\\?6]QQ_PP7Q _Q`7aQa6 Qc#"@% %(% %%"%%+%%%%%%+%%% %!(%"%## % %  9%    %  %   %   %   %   %   %   %   %   %   %   %   %!   !%"   %#    $@` 4@` D$ T X0 @d p |0 U @0 #0 c00k0'  0, < 0P W \ 0l  x 0   0   0   00 G0 @ 0  _report.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. BS$report SB$report $gntt_label $lntt_labelp_errorC$22printffopenfprintffcloseinitstrlenstrcpyM$21 close_fileptitleradiusradius2cenlon S$28$cenlon cenlonmerS$29$cenlonmercenlat S$30$cenlatorigin S$31$origin true_scaleS$32$true_scalestanparl S$33$stanparlstparl1 S$34$stparl1offsetpgenrpt genrpt_longpblankpaksz.o/ 1074012808 1032 20 100666 7924 ` 1,@T xx,,tPG%k?/,7k?!0, 0  @PL#@SHR($0L0d !# 0N S&bJ 0 1N2nK>#S"@"`Rg240n0?K?`b+`4:490K?!#4SK>7?@/0,0#SB4x($0n1?K?^o0+`4:P49K?!"R4=6+`4:49K?!#S4U?A.@@@N@ Illegal DMS fieldpaksz-degIllegal DMS fieldpaksz-minIllegal DMS fieldpaksz-sec `PX!HH,X 8H88>(T@tDP$$Pt 4$ 4` Xl| ,x.0LL,$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"3?/K@ 40"*2; C L V a@i@r{         ! . <JW f t|    ƠӠ     &1< EKSY_e mv   CàDˠР۠  ;   #)07=DKESB[<c k rz   `  h j l Šnp Πq` @s u@w@ڠy{ ` @@`   ` `   @     ` @ @@"  + 3:C HCSY5_`?  irryxp` @     @ `     xp` @    `ߠ@  @ Q  @D @ "A@A @A @A$@A( @A, $ ' +, 0  2 !3 505P8 @BC a,e,f8mDn\PMPd`Ppd`p qdP8 EhIpJxKLPMNOP`Pp`p qP8 SWXYZP[\]^`^Pgh i0j@`j`p `q!`r&paksz.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tpaksziflgangfacdegminsectmpiHD# 5CpDA,dD\db8X,,Apt,A5KD`d,A/5A,d5 X5B@CȃCfmefmnԃmnpqEEI?;kJJLKNUUN2UOPpOPpԃqSXXZWYZa\UU\2U]^p]hUUh2Uijpi # #%_g-#w $$ 4 X0D PH` l@xpaksz.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11. $gntt_label $lntt_labelpaksz S$12$pakszfabsM$13p_errorsphdz.o/ 1074012809 1032 20 100666 30800 ` 1<xP@d <u rv`kG%tk?/,ok?k?!K>76k?1B@k?9S%K?90H S1,0 P%0L0d ppdp0l0D ppl0.1Npe00 :+`P%bpP$bpP&`pfK?14?׊ B+`P%p P$pP"pfK?14?ً @+`P%pP$p P2pfP%p @P$pPFB`pf@4*@J+`4:49@+`4:`494 J+`4?`/ p44. pf/ p4(+` @4?`/ p43.| pfP$8p/ p4=/ pfP$p4K>K?!K?O?@/0,?AXM˕AXMAXM@Invalid spheroid selectionINFORMATIONALReset to 0INFORMATIONALAX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕ `PX!,X ((8>(@D`$$PI$I`QplJll TM|xWPdqLiqLirk$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"4?@ Il"*2; C L V a@i@r{         ! . <JW f t|    ƠӠ     &1< EKSY_e mv   CàDˠР۠  ;   #)07=DKESB[<c k rz   `  h j l Šnp Πq` @s u@w@ڠy{ ` @@`   ` `   @     ` @ @@"  + 3:C HCSY5_`?  irryxp` @     @ `     xp` @    `ߠ@   @  @   "  ,  8?H `  W  h  @  ` @   ŠΠ  ! #% '  )# ++ -3 /:` 1B@ 3J 5Q 79 X;[ c= >@@jBsD@D@D@FHJ  M O Q S UW YZ  c= ]_@a@c@c@dfh" - km@<oE  H rt@KvTx]  b z|@g~r w K K @@       ` @       #@c@,c@`5 < E P Y a j`   u {@      ``  @@       8      5 @@``` @       "`   , 3 > G@@ O@@  W@@@  _@@  g@@ o@@ w@@@ @@ @@ @@ @@@ @@ @@ @@! @@@# @@% @@' @@) @@@+ @@- @@/ @@1 @@@3 @@5 @@7 @@9 @@@; @@= !@@? (@@A /@@@C 6@@EG =I LK [  f M q O | Q ` S @ U  W  Y  [  ]  _  a ` c @ e  g  i  k  m ! o , q 7` s B@ u M w X y c { n } y    `  @              `  @          )  4  ?`  I@  S  ]  g  q  {    `  @          `  @       + :  F ` ՠ @ R@ _ @ g @ o @ w@ @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % @ 2 @ ?@ @L @T @\ @b@ @j @r @x@@@@!@#@%@@'@)@+@-@@/@1@3@5@@7@9@;@=@@?@A@C@E@@G#@I*@K1@M7@@O>@QSJURW :  F Y` ]  R@_[\ ag cr e} g i k` m@ o q s u w y { ` } @    ( 2 < F ` P @ Z d n x    `  @        `  @    ' 2 = H ` S @ ^ n ~    ` @        ` '@ 2 = H Q Z e p` {@        ` @            `  +@ 6  A L W b m x` @   ! # % ' ) +` -@ /  1 3 5 7  9 ; ` =*@ ?4  A> CH ER G\ Ie Kn` Mx@ O` @S >U@QWY[  ] _` _ g@ a o c w e  g  i  k  m ` o @ q  s  u  w  y  {  } `  @          ` %@ 2 ? L T \ b j` r@ x      ` @       ` @       #` *@ 1 7 \X` L   $#0@>   \ `8@HS `^ k  v  % % % `  $$!&k#%   (@ , . @ 1 3 /4 ,6 *7@69@ J  \? =@@UB^@ g E@ I oK GL`zN  Q S U` W@ Y [ ]_aƠc` e g i kpmho`q@ s u& wy@1{?}O@$U}@%@]f(l@&&U}@*r| *c`  **%@**+               )   3 7  @E  N W ` h p w` }@    @` @    @             `7 @8        ` `  @     ! "$$- 5@ ` @@ >`  @@ D Q J @ PW_gl DAq @Ay @A  ( * , ' "/$ (1* .3/ 35 4&5F8 =9E I;K O=P T? >8 ?[AX8C\ l0lPrx$Py&z,{<}DP~'PP(dhl`)tP,`-P*`+`.P/`0P1`2P3 `4P5,4@`6`7P8LTP9`l||`:`ˀA`΀BPrP8P;`<P€=`ŀ>PȀ?`ˀ@`ˀA`΀BPr`΀B`πC`ЀHsphdz.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listremquotdiv_tldiv_twchar_t__sival_ptr__svi_int__svi_int_ssigvalsigval_tpthread_attr_t__sigev_reserved__sigev_notify_attributes__sigev_notify_function__sigev_value__sigev_signo__sigev_notifysigeventsigevent_t__SIGEV_THREAD__SIGEV_SIGNAL__SIGEV_NONE__sigev_typestm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_tpad2pad1ki_timevalkt_trlim_maxrlim_currlimitru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusageSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__dev_id__lockpage__addr__gfault__band__fd__file__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tsigset__sigset_tsigset_tss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr27ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr27_loss_cr27_hiss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_low__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_size__stackstack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxt__sub_ctxt_tuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_tsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionpthread_tss_onstacksigstacksv_flagssv_masksv_handlersigvecfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsiglocal_misc_tsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsi__xsi_tsc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_doublepw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwdfloat_tdouble_tmajorminorsphdzradiusr_minorr_majorparmispht_majort_minorjsph# lC$P# lC$P! lA$P! lA$PCPLA<PDA<@,|ALP#lxz?;k{ z {;k}Ȅ        ;k PP P P PP P  PP P  P P  6XX2 XXX2 XPP P  ýĽŽɽʽPýP P P  P P  # # [z% %#g $@P 4$ DJ0 UT `p| @sphdz.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11.DS$sphdz $gntt_label $lntt_labelsphdz S$20$sphdzfabssqrtlabsM$21p_erroruntfz.o/ 1074012810 1032 20 100666 7208 ` 1p(@ p`G%|k?7 p P “@p@P +` Z _47_ W / s0,0 :+`4:490K?Y4@7?K?Y4@7?+`4:P49K?Y4 @7?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ? `PX!,X 8>( v@D $$P 4$ 4` Xl  xp- 0  `$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"5?/@ 40"*2; C L V a@i@r{         ! . <JW f t|    ƠӠ     &1< EKSY_e mv   CàDˠР۠  ;   #)07=DKESB[<c k rz   `  h j l Šnp Πq` @s u@w@ڠy{ ` @@`   ` `   @     ` @ @@"  + 3:C HCSY5_`?  irryxp` @     @ `     xp` @    `ߠ@  @ ` @@`    Q  @  & "     ' 0'P+,P./ 0$untfz.c<<>>int8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_tmqd_tdev_tino32_tino64_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tpaddr_tpage_tpgcnt_tphyspfn_tiophyspfn_tpgaddr_tspace_tprot_tulong_tcnt_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tlk_padlk_flagslk_namelkinfolkinfo_tpl_tdm_messageaid_tsid_t__fd_maskfds_bitsfd_setfd_maskdir_off_t__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_listfloat_tdouble_tfactorsuntfzfactoroutunitinunit!'A!'A!'Aн,/PP /02UU?2U=3<=<=8UU2U 9<="#K"% %;1,#/ $@` 4$ D X0 QT ` p@|untfz.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11.DS$untfz $gntt_label $lntt_labeluntfz S$13$untfzM$14p_errorgctp.o/ 1074012811 1032 20 100666 22208 ` 1V@< DDS`BxT 8/G%0k?/,/-o`k< s< s+`@4 H K=I+`@4+  KQ JK=Q4* _ Je "4+  >g+`4Hp"4ȃPHxp h2K=AK<JXIW p60 R4  7>145z4K=9<H?@0 K=y^!+`Q4+00N8E=#K=! l 7>145z4K=9\HK=90 KK.@K=qS>3SFSE0N &0N H+``4.K=A H4/KK=y 4.0H +`@K 4?H,  Y 9 /"H4,  \ .V"H6,  K k .="H7,  R L ."H7Y,  1 M -"H78,   N -"H7,  O -"H6,  P  -"H6Q,  R R -q"H60,  W -P"H6,  k X  -/"H5,  J Y 9 ,N"H5,  ) Z Z ,-"H5, B ] /"H5,  ) A! /S"H6wB"4, 7>/"7, / "5", /"4L5, / "5r6J, / "5I5", /"4M5, / "560, / " 6, /", / ", / ", /", /"s>K=ys>I? @P0l0D R W YK=y7?>k=)#S_=)00Ns>HR@h@S"s>K=yK=Y4K=a s?K=9K=AH9+`4/J7 s?K=9I@(@H(s>Cs>S&Hs+`@4"K=QS Ht46J 4!K=IHb" +`If 4?`4Hb, B Y 9 /"Ha! J,  J .U"H}6,  P  .!"Hz4<,  Z Q 1 ."Hy7,  9 R R -"Hx6,   W -"Hw6,  X  -"Hr6,  R Y 9 -"Hq6},  1 Z Z -}"Hp7,   ] -Z"Ho7Y,  S s -9"Hn78,  T -"Hm7,  U ,"Hl6,  V ,"Hv6F,  K k ."HzB" 44, 7>,"7, ,"5, ,"641, ,"6)5', ,"44A, ,"456, ,"65, ," 7, ,", ,", ,", ,", ,"s>s>P00 $"s>Ps>K=YK=a s?+`K=9K=I4<0< s?K=Q4HzKIK=9K=IK=Y+`4K=a s?K=9K=QJy430S s?IK=9I'#*H#:S>CK=ipS>SpK=QK;HWH7#Hh0 „H"MHH+`4:K=94904  +`4:PK=9494 H @04S2s>s>Ps>K=YK=a +`s?K=941Q s?K=yK=AHKJK=9@X4s>+`7>AK=9s=7>Q4! ? * s?1H1HK>K> K=K=76 @4S>Cs>S>Ss>K=Y@84S>Cs=+`410S>Ss>K=ik?6k?? K=K=K>K> 7K=93Q0NqS>30N q4K(@hD!>(@hP?>(R@pkl`8$$l@\$|At L< LB" d.p588f/p/@p@n B/$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$ $SHORTDATA$$BSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"6?`@  L8@ "@  +$ `d    0i؀`d   5h@ `d    ;f` @@`d z @7P`d  !  E5#`d  '  K4 )`d  -  R2/` 3@@`d z75 X09@ = `d  @?  ^B@ F `d  IH  hK` O  rQQx  }Z ][]^Z`Zb@ fdZgZifk ]m Zo ]q Zs ZuZwfyZ{Z}fAv@Aw@Af@Ay@A @A & AZ A A A*` ` @@@/H   < ABCT V  GI[ ]  M N   qɀ      ǀU рy | ~ ր    V%*/49PRY FU0FVP^opqstu|P}~P((P`P`P`P`P`P`P`P``~   `PP(<P``Pdx``PPP``PP4```8LXh| $88P@Xt $(,088@DHLTT\`dhppx| 444P<DHLXXhhxxP0<``H` P   ` P !"#$#$$$ $$#(#0$0$8$<$@#D#L$L$T$X$\#`#h$h$p$t$x#|#$$$$##$$$$##$$$$##$$$$##$$$ $ # # $ $ $ $ # $# ,$ ,$ 4$ 8$ <# @# H$ H$ P$ T$ X# \# d$ d$ l$ p$ t# x# $ # $ % P&' ( ' ( ' ( ' ( ' ( ' ( ' ( ' ( ' ( ( ' $( $( (' ,( ,( 0' 4( 4( 8' <( <( @' D) D* H+ LP12 \3 ``35 l`59 8 9 `<B PCD E `EP S (T <X @PPP D D`` HPP L L``` PP T h l`P t `PՀ `׀`cԀd P^c PPP `P ` ` P  ```cԀd P^c  P ` h``cԀd lP^c lPP&P,- p. |`.`5P:; < `<`<`cԀd P^c H PIJ K `K`cԀd P^c U V X DY P[ l] ^ ` a b `cԀd P^c `c`d`egctp.c<<>>float_tdouble_titerinpjindatinznpdinoutpjoutdatoutznpdoutfor_transinv_transNADUTgctpiflgfn83fn27outdatumoutunitoutparmoutzoneoutsysoutcoorpfilejprefileiprindatuminunitinparminzoneinsysincoorxyfactorlonlatijininit_flagoutinit_flagunitdummy#FC$!XFA$#FC$!dFA$C$ C$C$C$C$C$C$C$C$C$C$C$C$C$C$ L p  D H 8 ,` ( !ho A  T p L P8X $!tpA@$   d | H ` , D  ( hLd0HXp8  pTl8P4     <H t  !#$,!# LT !@t8`!~ $A!<D !HL!PP !T a8 D h ( <  t| Y\p  l P h   < p   l H    t  T pC$A8DDGY8@G l  P h        l   |    l   H        t   T p C$  l( P h( ( ( ( p (  l( (H ( ( ((( t ( T p(C$(P80FqstϽѽFoqpFqstϽѽs?9st|RRQ5Q4 Q2Q7PQ~QfQh@QiQQ ~Q          ~ ~             ~           ~ RR7PQ Q ǽɽQfQh@QiQQ Q2Q4 Q5QQ ǽɽӽǽսѾY[8 PPѾY[8 Խ589HY[ ӽԽ589HY[ӽӽQiQh@QfQQ7PQ ӽ               ӽӽՆ  QQ9     $%8BHSUX] !"Q5Q !4 Q!"2Q$Q"$Q#$$$#$$#$$#$$#$$#$$#$$#$$#$$#$$#$$#$$#$$#$$%8# '(Ӿ5 Ӿ(ֽ'( ֽ'( ֽ''( ֽ''( ֽ''( ֽ''( ֽ''( ֽ'( ֽ ) *+2 23 35QQ998QQBHD DE ESUPվ^PSTX  ǽɽXX2 XXX2 X5 c   QQ9 5 cQQ>v; ?5 c-;k -.;k .5;5 <cHQQ >v; HJ?5 KcUVPPVXY8 Y][8 []` ^]`a `ab5  acd # ##9!?%% %4# % % $@P 0@p <@h H$ X<0 Uh t @  0gctp.c /tmp_mnt/net/htsc/htsc/pgs/sni/gctp/src ccom options = -g -ESconstlit -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,lb,uj,dp,Fs,bp,wp,Ex,mp,rp,ap,dn,Sg,pt,kt,Em,pc,np! -AeHPC HP92453-01 B.11.11.DS$gctpBS$gctpSD$gctp $gntt_label $lntt_labelgctp S$18$gctpinitM$19p_erroruntfz close_fileinv_init $$dyncallpakr2dmfor_init S$18DD$gctpbr_gctp.o/ 1074012811 1032 20 100666 3020 ` 1x @t x  J p\8G%k?7K>K>t s?K>K> s?K>YK>Q s?QK>iK>a_ s?aK>yK>q s?qK>IK>A s?AK>9K>1 s?1K>@7? `PX!,6$$86$Hd$dT7$XX`?|l@xxxH 8$TEXT$ $PRIVATE$$DEBUG$$CODE$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@"7='@ dX Q-  #( - 2 @ :BJQ Y _ c i m !u#|%')+ /   0P/|`0|`1`2br_gctp.c<<>>gctp_iflgfn83fn27outunitoutparmoutzoneoutsysoutcoorpfilejprefileiprindatuminunitinparminzoneinsysincoor!A!A!Ax!AxCLCHCDC@C / 1295031715 0 0 0 2394 ` ::TjTjuu66,^,^77D6D6QQcc|B|B>>چچ"""""EETTff22߂߂  PPVVnn""33=b=bIIIBBŢŢRR((HHl&l&rr>>NN i.8zGnP*o.alberforintalberforalberinvintalberinvalconforintalconforalconinvintalconinvazimforintazimforaziminvintaziminvbceaforintbceaforbceainvintbceainvceaforintceaforceainvintceainveqconforinteqconforeqconinvinteqconinvequiforintequiforequiinvintequiinvgnomforintgnomforgnominvintgnominvgoodforintgoodforgoodinvintgoodinvgvnspforintgvnspforgvnspinvintgvnspinvhamforinthamforhaminvinthaminvimolwforintimolwforimolwinvintimolwinvisinusforinitIsin_for_freeIsin_for_initisinusforIsin_fwdisinusinvinitIsin_inv_freeIsin_inv_initisinusinvIsin_invlamazforintlamazforlamazinvintlamazinvlamccforintlamccforlamccinvintlamccinvmerforintmerformerinvintmerinvmillforintmillformillinvintmillinvmolwforintmolwformolwinvintmolwinvobleqforintobleqforobleqinvintobleqinvomerforintomerforomerinvintomerinvorthforintorthfororthinvintorthinvpolyforintpolyforpolyinvintpolyinvpsforintpsforpsinvintpsinvrobforintrobforrobinvintrobinvsinforintsinforsininvintsininvsomforintgsat_ratiosomforsominvintsominvsterforintsterforsterinvintsterinvstplnforintstplnforstplninvintstplninvtmforinttmfortminvinttminvutmforintutmforutminvintutminvvandgforintvandgforvandginvintvandginvwivforintwivforwivinvintwivinvwviiforintwviiforwviiinvintwviiinvfor_initinv_inittsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zonep_errorinitclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblankpakszsphdzuntfzgctpgctp_alberfor.o/ 1295031710 7356 20 100664 5640 ` ELF>8@@ UHHEMU]emxpHxHHpHHEHEf(XMfTf.wDžlkHEHHEH f(^f(EEf(YM\EQE``f.`zt HEHXX`H`HHuH}HEHXXHEHEHEHUH HXXHXXHXXXHXHEHEHUH HXXHXXHXXXHXHEHuH}HEHXXHEHUH HXXHXXHXXXHXHEHEHUH HXXHXXHXXXHXHEHuH}HEHXXHEHUH HXXHXXHXXXHXHEEf(\MfTf.w<Ef(YMEYE\E\Ef(^f( HEHEf(YMYEX YEf(\f(f(Yf(^f(HHHXXHXXHEHUHXXHXXHHXXHEHXXHHHXXHXXDžllUHH`EMH}HuHuH}HEHEEHEHUH HEUHUMHMEEHEHE YEf(\f(f(Yf(^f(E E\f(YEHEHEEf(YMXHEEHEHEEYEM\XHEalber-forinitEqual latitudes for St. Parallels on opposite sides of equatorALBERS CONICAL EQUAL-AREA|=?zRx AC <aAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @|x` &,H1>PX90 H.Qax 0   8@)04<DG(KM  P\diqw}aalberfor.cfalse_eastingfalse_northinglon_centerr_majorr_minore3ns0crhalberforintp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lonsincosC4Q<\,rl~|  3Ii9HzBklw|$$$  $'$;@ OELSv,<4KZz $$,$ $48O!e< @ alberinv.o/ 1295031710 7356 20 100664 6840 ` ELF> @@ UHHEMU]emxpHxHHpHHEHEf(XMfTf.wDždvHEHHEH f(^f(EEf(YM\hQhXXf.XzthXHXHHuH}HEHPPHEHEHEHUH HPPHPPHPPPHPHEHEHUH HPPHPPHPPPHPHEHuH}HEHPPHEHUH HPPHPPHPPPHPHEHEHUH HPPHPPHPPPHPHEHuH}HEHPPHEHUH HPPHPPHPPPHPHEEf(\MfTf.w<Ef(YMEYE\E\Ef(^f( HEHEf(YMYEX YEf(\f(f(Yf(^f(HHHPPHPPHEHUHPPHPPHHPPHEHPPHHHPPHPPDžddUHHpEMH}HuHE E\Ef(\MXE fWf.s>Ef(YMEYEXEHEHEH?HEDEf(YMEYEXf(fWEHHEHEfWf.Euz*Ef(YMEYEEHEHEf(YMf(^f(E EYE\f(^f(Ef.s` f(\f(f(YU f(\ Xf(^f(MY^XEMf(fTMfTf(\fTf.wOHH}HEHEMHUEEHUHEHHEHHE؉EfWEf.sHUH-DT!?H[HUH-DT!HHHH}HEHEMHUEEHUHEHHEHt HE؉EA Ef(^f(XEHUHEHEEalber-invinitEqual latitudes for Standard Parallels on opposite sides of equatorALBERS CONICAL EQUAL-AREA|=??|=zRx &AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @0X &,P1 > X90 H( .QV V a `  X @H)84<D GJ0NP( S&_gltz&alberinv.cfalse_eastingfalse_northinglon_centerr_majorr_minorese3ns0crhalberinvintp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberinvatan2logphi1zadjust_lonC<QD\4rl~|  >TtDS Mvl|,,,  ,&2,F$K TPW^4D<L<b$sD,G \,m ,2!CO`u"+J"t,4# @ &alconfor.o/ 1295031710 7356 20 100664 6488 ` ELF>( @@ UHH`EMU]HEHHEHHEHHEHH#9HH5RF?HHH^s{?HEQEEMf.MztHEHEEEHEHH1,51?HH!bLUu?HHzY}?HH =;jHHs?HHKzs?HHH7< sfHHə$s?HHnNȿHHSXHHOvҿHHHEEf(YE Xf(^f(E f(^f(\UMXf(^f(f(EHEHEEYEf(Xf(\f(EHEHEEHHHEMHUEHHEEHHEEHHHEMHUEUHHXPHHH@ X\0H0HEHxH}HEH00HPH00f(YEPXf(^f(8 f(^f(\UMXf(^f(f(Y8f(Xf(\f(EHhHpHEH00 pf(Y hYxYXEMX^Ehf(YMEYE pf(Y hYxYf(\f(YEEEXEEf(YMEYEXEHHHEHHHEHHHHEHHHHEHEEYEXEEEYEXEEHH9E}nHH+E EYEf(\f(EHH+E EYEf(\f(EHEHEHEHEHEHH9EGMfWYEEMfWYEEHEHEHEHEEf(YMEYEf(\f(f(XMYXHHEf(YMEYEXf(XMYXH@ALASKA CONFORMAL-DT!?@?-DT!?@?zRx  AC <~AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ &, 1`>@X9(0 H.Qah H    *(9DOQS@8Y8_g o { ~alconfor.cr_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefcos_p26sin_p26alconforintsqrtsintanpowatantsincosptitleradius2cenloncenlatoffsetpalconforadjust_lon#.9D$U fmDLT\dl+<M^o$$+GWq v   $ : K",44<<5BR,<4+ @  @ %2 @Ta LL)eq$ @  alconinv.o/ 1295031710 7356 20 100664 8520 ` ELF>@@ UHH`EMU]HEHHEHHEHHEHH#9HH5RF?HHH^s{?HEQEEMf.MztHEHEEEHEHH1,51?HH!bLUu?HHzY}?HH =;jHHs?HHKzs?HHH7< sfHHə$s?HHnNȿHHSXHHOvҿHHHEEf(YE Xf(^f(E f(^f(\UMXf(^f(f(EHEHEEYEf(Xf(\f(EHEHEEHHHEMHUEHHEEHHEEHHHEMHUEUHHPHH f(\f(f(^f( f(\f(f(^f(HHEHHEHEEXEf(YMEYEXHHH0HHH(HHHHHHHH HH*Y0@HH*Y(8HHH*YPHHH*Y HHEY0XXY(X `HH9EHH+E Y0f(\f(HH+E Y(f(\f( HXH0H`H(Y@XPhY8XHpHH+EH*HH+EYY@f(\f(PHH+EH*HH+EYY8f(\f(HHhH@HpH8HEHH9EfWY0fWY( HXH0H`H(Ef(Y0EY(f(\f(X\xEf(Y0EY(XX \EEf(Y@EY8f(\f(XPEEf(Y@EY8XX8EEf(YMEYEXExf(YMEYEXfW^EEEf(YMxYE\fW^EEEXEEEXEEMf(fTMfTXEHEH}~Dž(Ef.Ef(YMEYEXHHEMf(^f(XEHHHEHHHHMfTf.s HHHDžBf(Yf(YMY^EXHHEHEHEHEHEHf(YMXf(^f( f(^X\f(^f(f(Yf(Xf(\f(\EEEXEEHEH}~DžMfTf.HHEHf(YMf(Yf(YMYf(\YEf(XHHHDžALASKA CONFORMAL-DT!?@?alcon-invToo many iterations in inverse|=@-DT!??zRx  AC <- AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @: X &| , 1 > X9!0 Hx .Q  aH    *(9DOQS@8Y8_g o { - alconinv.cr_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefcos_p26sin_p26alconinvintsqrtsintanpowatantsincosptitleradius2cenloncenlatoffsetpalconinvp_errorasinzatan2adjust_lon#.9D$U fmDLT\dl+<M^o$$+GWq v   $ :Vr$ @ (4 @BN \x!2? @jw  @JZg \\L\\ll 0 @" |: Z k    l |   / #j v          " X 0] @b "y l |   $  % @  azimfor.o/ 1295031710 7356 20 100664 4224 ` ELF>`@@ UHH0EMU]eHEHHEHHEHHEHHEHHEHEEHHEEHHEEHHEEHHHEMHUEUHHh`HXHP h\8H8HEHuH}H`H88HEH888H8HE Ef(Y EYYEXEMfT\fTf.wH?HEfWf.Ew YEHEHpH88HpDžD{'HEH888H8HEHEH88f(E^Ef(YMEf(YHHEH88HYXHXf(Y] Ef(Y EYYEf(\f(f(YXHPDžDDAZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-for?|=-DT! @zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @0  &,81>xX9P0 H.Qa  p  )8 F0N( Vaipwazimfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p12sin_p12azimforinttsincosptitleradiuscenlonmeroriginoffsetpazimforadjust_loncossprintfp_erroracossin(3> IT] 0b (pu z ']u$,\l\t&|N Xd Ii 6G,\$ @ aziminv.o/ 1295031710 7356 20 100664 4808 ` ELF>(@@ UHH0EMU]eHEHHEHHEHHEHHEHHEHEEHHEEHHEEHHEEHHHEMHUEUHHĀEMH}Hu E\E E\EEf(YMEYEf(XUQEEMf.MztEEHEHE YEf.wE} E^EHuH}HEHEEHHEHMfTf.sHHEHEQMf(YEf(YMY^EXEHUHEH fTf(\f(EMfTf.s fWf.sXMfWHEf(HEEf(XEHUHEHEGEMfWHEHEMM\f(EHUHEHEUUHEHHEEf(YM\f(EMfTf.w*MfTf.w E]Ef(YUEf(YMYf(f(XEHUHEHEEAZIMUTHAL EQUIDISTANTazim-invInput data error-DT! @|=-DT!?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &,81p>@X90 H.Qah   8  )8 F0N( Vaipwaziminv.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p12sin_p12aziminvinttsincosptitleradiuscenlonmeroriginoffsetpaziminvsqrtp_errorasinzatan2adjust_lonsin(3> IT] 0b (pu z r,  <L! A$_,q <T<L \ "FS\n$<L<LL,Yen @ bceafor.o/ 1295031710 7356 20 100664 5024 ` ELF>@@ UHH`EMU]emHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\EQMMUf.UztEEHEH f.w H HHHEEEHEHHHEEEHEHE YY\M^f(HHHEMHUEHHEEHHEEHHHEMHUEUHH`EMH}Hu E\EHEHEHEHEEEHEHEHHtgf(YMYXHEf(YM^XHEK f(\UYEf(YMf(\f(Ef(^U Yf(^Uf(YMf(\f(YMXf(^f(YEXEYEE Yf(YMXHEf(YMX^XHECylinderical Equal Area?h㈵>?zRx <AC <!AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @]  &,`18>X9p0 H0.Q^^a      &(10@8NQSXW@_HgP j<uz~<!bceafor.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kzbceaforintsqrtcossinptitleradius2cenlonmertrue_scaleoffsetpbceaforadjust_lonlog-8CN$Y,d4lt PP$+;<B$P`Dh<u}DDL $ ,41ZhT<4<,$,B$h p,|$ $ $ L4%6LF, @ <bceainv.o/ 1295031710 7356 20 100664 6256 ` ELF>@@ UHHĀEMU]emHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\EQMMUf.UztEEHEH Y Y f.w!HH@HH f(\U f(\f(f(^U Yf(^U f(\ Xf(^f(YEXEYEHHEEEHEHHHEEEHEHU YY\M^f(HHHEMHUEHHEEHHEEHHHEMHUEUHH`EMH}Hu E\E E\EHHf(YMf(^f(EHUHEH YEf(^f(XEHUHEHEf(Xf(Y Yf(^f(EHEHE f(^ YX Yf(XMEXYEf(XUU f(Y Yf(XMMYYEUXU f(YUMYYEXEHE YEf(^f(XEHUHEHCylinderical Equal Area?h㈵>@` ` ?*B*B?[[?U?@m-?@zRx SAC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @0 &$,(x1(p>X9@0 H.Qa x  8 0&81@@HNQS X(]pahdPlXt` wSSbceainv.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kzbceainvintsqrtlogcossinptitleradius2cenlonmertrue_scaleoffsetpbceainvasinadjust_lon-8C,N4Y<dDlt  $& .=hRd^hjr $  -d44BRLY4gwTLTT\ ,4# *<1DH!qD<lL#L ,$?\OWdl#,4$<D $L1T:U$]\wd\,$ @ Sceafor.o/ 1295031710 7356 20 100664 5024 ` ELF>@@ UHH`EMU]emHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\EQMMUf.UztEEHEH f.w H HHHEEEHEHHHEEEHEHE YY\M^f(HHHEMHUEHHEEHHEEHHHEMHUEUHH`EMH}Hu E\EHEHEHEHEEEHEHEHHtgf(YMYXHEf(YM^XHEK f(\UYEf(YMf(\f(Ef(^U Yf(^Uf(YMf(\f(YMXf(^f(YEXEYEE Yf(YMXHEf(YMX^XHECylinderical Equal Area?h㈵>?zRx <AC <!AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @]  &,`18>X9p0 H0.Q^^a      %(00?8MPRXV@^HfP i<sx|<!ceafor.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kzceaforintsqrtcossinptitleradius2cenlonmertrue_scaleoffsetpceaforadjust_lonlog-8CN$Y,d4lt PP$+;<B$P`Dh<u}DDL $ ,41ZhT<4<,$,B$h p,|$ $ $ L4%6LF, @ <ceainv.o/ 1295031710 7356 20 100664 6256 ` ELF>@@ UHHĀEMU]emHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\EQMMUf.UztEEHEH Y Y f.w!HH@HH f(\U f(\f(f(^U Yf(^U f(\ Xf(^f(YEXEYEHHEEEHEHHHEEEHEHU YY\M^f(HHHEMHUEHHEEHHEEHHHEMHUEUHH`EMH}Hu E\E E\EHHf(YMf(^f(EHUHEH YEf(^f(XEHUHEHEf(Xf(Y Yf(^f(EHEHE f(^ YX Yf(XMEXYEf(XUU f(Y Yf(XMMYYEUXU f(YUMYYEXEHE YEf(^f(XEHUHEHCylinderical Equal Area?h㈵>@` ` ?*B*B?[[?U?@m-?@zRx SAC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @0 &$,(x1(p>X9@0 H.Qa x  8 0%80@?HMPR W(\p`hcPkXs` vSSceainv.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kzceainvintsqrtlogcossinptitleradius2cenlonmertrue_scaleoffsetpceainvasinzadjust_lon-8C,N4Y<dDlt  $& .=hRd^hjr $  -d44BRLY4gwTLTT\ ,4# *<1DH!qD<lL#L ,$?\OWdl#,4$<D $L1T:U$]\wd\,$ @ Seqconfor.o/ 1295031711 7356 20 100664 7160 ` ELF> @@ UHHEMU]emu}HxHEHHEHHEHHEHHEH f(^f(EEf(YM\hQh``f.`zth`H`HHHXXXHXHHHXXXHXHHHXXXHXHHHXXXHXHHuH}HEHXXHEHUH HXXHXXHXXXHXHEHH H5H=HEHXXHXXHXXHXXHXXXHXHEHxEf(XMfTf.wDžtQHuH}HEHXXHEHUH HXXHXXHXXXHXHEHH H5H=HEHXXHXXHXXHXXHXXXHXHEEf(\MfTf.s.Ef(\ME\Ef(^f(HEH HEH E^XEHH H5H=HEHXXHXXHXXHXXHXXXHXH \YHxHHHXXHXXHEHUHXXHXXHHXXHEHXXHHHXXHXXHHHXXHXXHEHXXHHXXHEHXXHHHXXHXXDžttUHHPEMH}HuHH H5H=HEHEeHU]HMUHuMH}EEHEHEf(\MYE E\f(YEHEHEEf(YMXHE f(XUHEHEEYEM\f(HEeqcon_forStandard Parallels on opposite sides of equatorEQUIDISTANT CONIC?|=zRx AC <EAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @6Px &x,xx1x>X90 HP .Q~ ~ a 8  X 'P6XD@G8IL O(R0U`XhZH^p amrw|Eeqconfor.cr_majorr_minorlon_centerfalse_northingfalse_eastingesee0e1e2e3nsgml0rheqconforintsqrte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconforadjust_lonsincosALW bLmTu}T<<4<"8?<Sip<$<,4,F,M$T[ \l   !8G4y,$ %\1la\n\{\\d,$  D'd/D;GlZ @_"fm#$ %&LT') @."5<_#w(~ %&LT',$#Y nd *\+TLl, @ eqconinv.o/ 1295031711 7356 20 100664 7472 ` ELF> @@ UHHEMU]emu}HxHEHHEHHEHHEHHEH f(^f(EEf(YM\hQh``f.`zth`H`HHHXXXHXHHHXXXHXHHHXXXHXHHHXXXHXHHuH}HEHXXHEHUH HXXHXXHXXXHXHEHH H5H=HEHXXHXXHXXHXXHXXXHXHEHxEf(XMfTf.wDžtQHuH}HEHXXHEHUH HXXHXXHXXXHXHEHH H5H=HEHXXHXXHXXHXXHXXXHXHEEf(\MfTf.s.Ef(\ME\Ef(^f(HEH HEH E^XEHH H5H=HEHXXHXXHXXHXXHXXXHXH \YHxHHHXXHXXHEHUHXXHXXHHXXHEHXXHHHXXHXXHHHXXHXXHEHXXHHXXHEHXXHHHXXHXXDžttUHH`EMH}HuHE E\Ef(\MXE fWf.s>Ef(YMEYEXEHEHEH?HEDEf(YMEYEXf(fWEHHEHEfWf.Euz*Ef(YMEYEEHEHE E^f(\f(EHHH H5H}LEHEeHU]HMUHuMLEEEHUHEH Ef(^f(XEHUHEHHEHt HE؉EEEeqcon-forStandard Parallels on opposite sides of equatorEQUIDISTANT CONIC?|=zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ @ &L ,P x1P > X90 H8 .Qf f a8  @ 'P6XD@G8IL O(R0U`XhZH^p amrw|eqconinv.cr_majorr_minorlon_centerfalse_northingfalse_eastingesee0e1e2e3nsgml0rheqconinvintsqrte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconinvatan2phi3zadjust_lonALW bLmTu}T<<4<"8?<Sip<$<,4,F,M$T[ \l   !8G4y,$ %\1la\n\{\\d,$  D'd/D;GlZ @_"fm#$ %&LT') @."5<_#w(~ %&LT'T-l>LO\||*'d/P,W$^e+\ , @ equifor.o/ 1295031711 7356 20 100664 2848 ` ELF>@@ UHH0EMU]eHEHHEHHEHHEHHEHHHEEHHEEHHEEHHHEMHUEUHH@EMH}Hu E\EHEHEf(YMMHHEEMYXHEf(YMXHEEQUIRECTANGULARzRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @~@ &,(1>X9 0 H(.QVVa(    )8  FQX_ipxequifor.cr_majorlon_centerlat_originfalse_northingfalse_eastingequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncos(3> ITY ^esz # 1BVg @ equiinv.o/ 1295031711 7356 20 100664 3136 ` ELF>@@@ UHH0EMU]eHEHHEHHEHHEHHEHHHEEHHEEHHEEHHHEMHUEUHH0EMH}Hu E\E E\E E^HEHEfTf.wEܮ^HHEEf(YEf(^f(XEHUHEHEEEQUIRECTANGULARequi-invInput data error-DT!?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @X  &,(1H>XX9 0 H.Qa@   )8  FQX_ipxequiinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingequiinvintptitleradiuscenlonmeroriginoffsetpequiinvp_errorcosadjust_lon(3> ITY ^esz 8,D<M R Wg u @ gnomfor.o/ 1295031711 7356 20 100664 3456 ` ELF>@@ UHH0EMU]eHEHHEHHEHHEHHEHEEHEHEEHEHEEHEHEEHHHEMHUEUHHpEMH}Hu E\EHEHEHuH}HEHEEHEHEEEHEHE Ef(Y EYYEXEfWf.EsE^EEf(YMEf(YUHEHEEMYXHEf(Y] Ef(Y EYYEf(\f(f(YXHEEEGNOMONICgnomfor-convPoint projects into infinity?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @{P  &,01@>X9P 0 HX.Qa(      &(5= EPX_fmt|gnomfor.cRlon_centerfalse_eastingfalse_northingcos_p13sin_p13gnomforinttsincosptitleradiuscenloncenlatoffsetpgnomforadjust_loncosp_errorsin(3>I$R W ej o$(:O d   4 5 _$ @ gnominv.o/ 1295031711 7356 20 100664 4536 ` ELF>@@ UHH0EMU]eHEHHEHHEHHEHHEHHEHEEHEHEEHEHEEHEHEEHHHEMHUEUHHĀEMH}Hu E\E E\EEf(YMEYEf(XUQEEMf.MztEEHEHE E^EHEHEHuH}HEHEEHHEHMfTf.sHHEHEQMf(YEf(YMY^EXEHUHEH fTf(\f(EMfTf.s fWf.sXMfWHEf(HEEf(XEHUHEHEGEMfWHEHEMM\f(EHUHEHEUUHEHHEEf(YM\f(EMfTf.w*MfTf.w E]Ef(YUEf(YMYf(f(XEHUHEHEEGNOMONIC|=-DT!?zRx AC <vAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @V  &,81@>X90 H8.Qffa      #(10@ H P[cjqxvgnominv.cRlon_centerlat_centerfalse_eastingfalse_northingcos_p13sin_p13gnominvinttsincosptitleradiuscenloncenlatoffsetpgnominvsqrtatanasinzatan2adjust_lonsin( 3>I$T,]  b pu z,$$,i~   '9QY e$~ ,,6H  !-6 @ goodfor.o/ 1295031711 7356 20 100664 6176 ` ELF> @@ UHHEHEHHɠ]HHɠ]HHh-8R?HHh-8R?HH_X90 H.Q& & a   _   `` W)07W?JNRZgoodfor.cRlon_centerfeastgoodforintptitleradiusgoodforadjust_loncossinp_errorsign%6$G,X4i<zDLT\dlt|  ($4<D$PX`,lt|4,4<D<$D05 : L}|0R{  < Lr  $:jv P ^ 1O \d   @ Wgoodinv.o/ 1295031711 7356 20 100664 8128 ` ELF>0 @@ UHHEHEHHɠ]HHɠ]HHh-8R?HHh-8R?HH_H X90 H .Q  ap  d   `` W)07W?GKV[`goodinv.cRlon_centerfeastgoodinvintptitleradiusgoodinvp_errorcosadjust_lonsignasinsin%6$G,X4i<zDLT\dlt|  ($4<D$PX`,lt|4,4<D<$D05 : Lu}ltt|9AckC  P ^*  DPy  %Ke  rz &7].tUkttt " I _       = S w     @ Wgvnspfor.o/ 1295031711 7356 20 100664 3936 ` ELF>@@ UHH@EMU]emHEH Ef(^f(XHEHHEHHEHHEHEEHEHEEHEHEEHEHEEHEHEEHHHEMHUEUHHpEMH}Hu E\EHEHEHuH}HEHEEHEHEEEHEHE Ef(Y EYYEXE ^f.EwE \\Ef(^f(Ef(YMEf(YUHEHEEMYXHEf(Y] Ef(Y EYYEf(\f(f(YXHEEEGENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: ?gvnsp-forPoint cannot be projected?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @X  &4,8818>X900 H .QNNa    ()08 @ HT\cjqxgvnspfor.cRplon_centerfalse_eastingfalse_northingcos_p15sin_p15gvnspforinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspforadjust_loncosp_errorsin-5NTZ ep${,    (,$<Jq  ` j  6ct$, @ gvnspinv.o/ 1295031711 7356 20 100664 5512 ` ELF>@@ UHH@EMU]emHEH Ef(^f(XHEHHEHHEHHEHHEHEEHEHEEHEHEEHEHEEHEHEEHHHEMHUEUHHEMH}Hu E\E E\EEf(YMEYEf(XxQxppf.pztxpHpHE E^E f(\f(E XEE^Ef(Ef.wE{EEYEYEf(^M\U\Ef(^ME^EXf(^f(EHEHhhhHhHEHuH}HEHhhHHEHMfTf.sHHEHE{Mf(YEf(YMY^EXhHhHEH fTf(\f(EMfTf.s fWf.sdMfWHEf(Hhhf(XhHhHEHE_EMfWHEHhhM\f(hHhHEHEUUHEHHhhf(YM\f(EMfTf.w*MfTf.w EcEf(YUEf(YMYf(f(XhHhHEHEEGENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: ?gvnsp-forInput data error?|=-DT!?zRx )AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @x &,,0@10>X9X0 HH.Qvva    &048C(K  S)_gnu|)gvnspinv.cRplon_centerlat_centerfalse_eastingfalse_northingcos_p15sin_p15gvnspinvinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspinvsqrtp_errorasinzatan2adjust_lonsin- 5 NTZep{,4 (    (4,J,`4 |!|9O `T jYm|#2CRr$%JV_:K[l$ @ )hamfor.o/ 1295031711 7356 20 100664 3072 ` ELF>x@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHHpEMH}Hu E\EHEHE f(YUHEHEEEMf(^f(MYf(XUQEEMf.MztEEEU^f(EEf(XMHEHEEUYUMf(^f(MYXHEHEHEEf(YMXHEHAMMER>ef?@?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @0` p &p,p 1p >X9 0 H.Qa(  z  % 4>ELS[bmqvhamfor.cRlon_centerfalse_eastingfalse_northinghamforintptitleradiuscenlonoffsetphamforadjust_loncossqrtsin#.9 DI N`ry   ->m   @ haminv.o/ 1295031711 7356 20 100664 3184 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHHPEMH}Hu E\E E\E Yf(YEf(YMf(^f(f(XEYEf(\UQ]]Ef.EztEEMf(^f(Ef(Xf(YEf(YMf(^f(f(XEYE\EYEf(XXEHUHEHEf(YM^f(^f(EHUHEHHAMMER@@zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @l  &, 1 >X9@ 0 H(.QVVa(   ~  % 4>ELS[bgmxhaminv.cRlon_centerfalse_eastingfalse_northinghaminvintptitleradiuscenlonoffsetphaminvsqrtatan2adjust_lonasinz#.9 DI N`ry   k} 4@Q @ imolwfor.o/ 1295031711 7356 20 100664 4832 ` ELF>0@@ UHHEHEHH@-8R?HHωHHd8RHHCT!?HHIA5HH֠yJWֿH Y Y Y Y Y YHEHEEUHHĀEMH}HufWEf.sEf.u(Mf.u HEEf.uMf.s,Ef.u"Mf.w HEHEEf.u%Mf.u HEhEf.uMf.s,Ef.uMf.w HEHEHE E\EHEHEHEHEHEHEEf(YEHEHEHEEXEf(\MMHEH?HEHEHEEf(XM^f(EEXEEMfTf.w H}1~HEDMf(^f(EMfTf(\f(f.w HEHEE Yf(YMMHEHEEYEXEHE f(YUHEHEEYEHEINTERRUPTED MOLLWEIDE EQUAL-AREA^T\nĿE؎W@2 ާT\n?^@IntMoll-forwardIteration failed to converge֠yJW? f?f?/-DT! @/-DT! ky]IA5@ˡA5-DT! @?|=@-DT!?)d?;f?zRx IAC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &,  1 (>HX90 H.Qap   P ]  0`0 I+29IBMQUimolwfor.cRlon_centerfeastimolwforintptitleradiusimolwforadjust_lonsincosp_error%6$G,X4i<zD$\,d4l<tD|L"' , >/Fk  7Mq} X h ,J `W_ @ Iimolwinv.o/ 1295031711 7356 20 100664 4792 ` ELF>@@ UHHEHEHH@-8R?HHωHHd8RHHCT!?HHIA5HH֠yJWֿH Y Y Y Y Y YHEHEEUHH`EMH}HufWEf.s[ Yf.Es HE Yf.Es HE`HEV Yf.Es HE/ Yf.Es HEHEHE E\E YE^EHEHEHEE f(YUHEHEEMYE^XEEHUHEHEf(XMEXMXf(^f(EHUHEHH}u6HEf.wHEf.w EH}unHEf.uHEf.w2HEf.u$HEf.w E-H}u6HEf.wHEf.w EH}u6HEf.wHEf.w EH}ukHEf.uHEf.w2HEf.u!HEf.w EAH}u3HEf.wHEf.w EEEINTERRUPTED MOLLWEIDE EQUAL-AREA^T\nĿE؎W@2 ާT\n?^@~f=k8}+?=k8}+~f?;f?)d?-DT! @֠yJW? f?ɠ]ky]IA5@ˡA5zRx IAC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &T,` 1`> X90 Hx.QaH   ( Z  0`0 I+29IBGKVimolwinv.cRlon_centerfeastimolwinvintptitleradiusimolwinvasincosadjust_lonsin%6$G,X4i<zD$\,d4l<tD|L"' , >xT\dl. `DLt^x  | AW~ 0Fm @ Iisinusfor.o/ 1295031711 7356 20 100664 8744 ` ELF>@@ UHHH}HuH=HMHUUHHPEMU]emHHt0H=E}tzE?fWf.EsREMf.wEf.wEMf.wEf.wEMXH,HEH*MEf(\f(fTf.wpE5HEtJEMf.wEf.w EMX,E*MEf(\f(fTf.wEruH}HEHUHMLEHE]HUUHMMLEEHHHu?EEEUHHpEMU]H}uMf.wZHEMf.wEf.wHEMf.wE XEEf.sE \EH}~ H}~HEHEttHE}x}~LHEpHEH}uHEHEH@hHUHEHHUHEHBHUHEHB^EHE@H*Mf(^f(HE@ HUHEHB(HUHH?HHHHEHP0HUHEHB@Mf(\f(HE@8HEH8f.wHEH8XHE@8HU؋EBHHEH@0HHHHHHHHEHP`HEH@`Hu%H}HE(HEH@`HEHEbH*MXHEH@0H*^f(\f(YE}>HEHEEf(XH*EYXH,HEHJHEHEEf(H*EYXH,HEHHEHHHEHHEHH HEHHEHH*^HE@}u%HEHHPHH?HHHHEHPHEHHH?HHHHEHPHEHEHEH@0H;EHEH@`HHHEH@0HHHHHHHHEMYH*Ef(^f(HE@PH*UMYf(^f(HE@XHEH@h#ܫ HEHEHEUHH@EMH}HuH=HUHuHEHMHEMHMEE}tEEEUHHPH}EMHuHUHUHHUHH}uE)HEH@hH=#ܫ tEMf.wEf.w EMf.wEf.w EHEHHE@YEXHEf(\MHE@ YEEH,HEHEH@0H;EHEH@(HH+EHEH}yHEHEH8Ef(\f(YEfWf.Ew%EH,иH)H*EXE Ef.wEH,H*E\EHEHH`HUHHHHHHH*f(YMHEHH`HUHHHHHH@H*f(\f(EHEHE@PYEXHEEEUHHH}H}ukEaHEH@hH=#ܫ tGE=HEH@hHEHx`HEH@`H}HEEEUHHH}HuHEHHHEH=HUIȉ error (isinusfor.c/%s : %s memory allocationinvalid parameterinvalid handleinvalid keybad return from Isin_for_freeisinusforinitbad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_for_initIsin_for_init-DT!-DT!@ףp= ?)\3A{Gz?{GzGz@|=-DT!-DT!@-DT! @?-DT! ?-DT!?bad return from Isin_fwdisinusforIsin_fwd-DT!-DT!@-DT!-DT!?m0_??Isin_for_free error (isinusfor.c/%s) : (%i) %s zRx 0AC <AC \AC |uAC AC AC DAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.rela.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  + @& !` 1@ 6@ CX>! MP.V~~fhp   0!/ >0JOw D  Zai0w uhisinusfor.cerrorISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinIsin_errorstderrfprintfisinusforinitIsin_for_freeIsin_for_initmallocfreecosisinusforIsin_fwd *Yejx \} z  z  z  # zAmy  z @ z,4 p z 3?H M z  <  3DFLO T sTLTL     " >N S \TT4dML  l\t:Tlxl\LL7E J      0 / j  )    " ' 0J _    /(A8P @ 0`   h  w isinusinv.o/ 1295031712 7356 20 100664 8856 ` ELF>(@@ UHHH}HuH=HMHUUHHPEMU]emHHt0H=E}tzE?fWf.EsREMf.wEf.wEMf.wEf.wEMXH,HEH*MEf(\f(fTf.wpE5HEtJEMf.wEf.w EMX,E*MEf(\f(fTf.wEruH}HEHUHMLEHE]HUUHMMLEEHHHu?EEEUHHpEMU]H}uMf.wHEMf.wEf.wLHEMf.wE XEEf.sE \EH}~ H}~HEHEtHE}x}~~HEpHEH}uMHEHEH@hHUHEHHUHEHBHUHEHB^EHE@H*Mf(^f(HE@ HUHEHB(HUHH?HHHHEHP0HUHEHB@Mf(\f(HE@8HEH8f.wHEH8XHE@8HU؋EBHHEH@0HHHHHHHHEHP`HEH@`Hu%H}HE(HEH@`HEHEbH*MXHEH@0H*^f(\f(YE}>HEHEEf(XH*EYXH,HEHJHEHEEf(H*EYXH,HEHHEHHHEHHEHH HEHHEHH*^HE@}u%HEHHPHH?HHHHEHPHEHHH?HHHHEHPHEHEHEH@0H;EHEH@`HHHEH@0HHHHHHHHEMYH*Ef(^f(HE@PH*UMYf(^f(HE@XHEH@h#ܫ HEHEHEUHH@EMH}HuH=HUHuHEHMHEMHMEE}tEEEUHHPH}EMHuHUHUHHUHH}uE[HEH@hH=#ܫ tE4HEHEf(\f(HE@YHEHEf.wHEf.wHUHEHEf(\f(HE@ YEEH,HEHEH@0H;EHEH@(HH+EHEH}yHEHEEf(\f(HE@XYEHEHH`HUHHHHHH@H*f(XMHEHH`HUHHHHH@YEfWf.Ew Ef.wHUHEHEP8MYXHEHEf.s$HEf(\f(HEHEf.wHEXHEEEUHHH}H}ukEaHEH@hH=#ܫ tGE=HEH@hHEHx`HEH@`H}HEEEUHHH}HuHEHHHEH=HUIȉ error (isinusinv.c/%s) : %s memory allocationinvalid parameterinvalid handleinvalid keybad return from Isin_inv_freeisinusinvinitbad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_init-DT!-DT!@ףp= ?)\3A{Gz?{GzGz@Isin_inv_init|=-DT!-DT!@-DT! @?-DT! ?-DT!?bad return from Isin_invisinusinvIsin_inv-DT!-DT!??-DT!@-DT! @-DT! Isin_inv_free error (isinusinv.c/%s) : (%i) %s zRx 0AC <AC \AC |uAC AC AC DAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.rela.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  +0 @&!` 1p 6p #C>! M.Vfp   0!/ >0JO D  Zai0w uhisinusinv.cerrorISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinIsin_errorstderrfprintfisinusinvinitIsin_inv_freeIsin_inv_initmallocfreecosisinusinvIsin_inv *Yejx ]} {  {  { # {A my   { H {,4 x {  3? H M {  {L @ 3TF\O @T sd\d\ @  @  @" >N @S ldd4tM\ @ |l:T|x|l\\7E J      0 4 ` U      0 5  T Y 0|     0(B8Q @ 0`   h   lamazfor.o/ 1295031712 7356 20 100664 3744 ` ELF>@@ UHH0EMU]eHEHHEHHEHHEHHEHEEHEHEEHEHEEHEHEEHHHEMHUEUHHxpHhH` x\8H8HEHuH}HpH88HuH}HEH88 Ef(Y EYEYXEEf.zt<XH}H}DžTqMXf(^XQXHHf.HztXHHYEEf(YMEYXHh Ef(Y EYEYf(\f(f(YMXH`DžTTLAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward?@zRx AC <5AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ ( H &L,P01Px>X9p0 H .QNNa  x   '(6@ JV^elsz5lamazfor.cRlon_centerfalse_eastingfalse_northingcos_lat_osin_lat_olamazforinttsincosptitleradiuscenloncenlatoffsetplamazforadjust_lonsprintfp_errorsqrt(3>I$R W ej o$Iiq \   Ld lJb $ @ lamazinv.o/ 1295031712 7356 20 100664 4576 ` ELF>@@ UHH0EMU]eHEHHEHHEHHEHHEHHEHEEHEHEEHEHEEHEHEEHHHEMHUEUHHĀEMH}Hu E\E E\EEf(YMEYEf(XUQEEMf.MztEEHEHEf(XE^E Ef.wEsrHEHEEXEHuH}HEHEEHHEHMfTf.w Ef(Y EYYE^EXEHUHEH fTf(\f(EMfTf.wEEHEHHEEf(YM\f(EfWf.EuzEf(YUEf(YMYf(f(XEHUHEH fWf.wTUMfWHEHEMM\f(EHUHEH\MfWHEf(HEEf(XEHUHEHHHEHEELAMBERT AZIMUTHAL EQUAL-AREAlamaz-inverseInput data error?|=-DT!?zRx AC <_AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @?  &,81>X90 HX.Qa(     $(20A K Uaipw~_lamazinv.cRlon_centerlat_centerfalse_eastingfalse_northingcos_lat_osin_lat_olamazinvinttsincosptitleradiuscenloncenlatoffsetplamazinvsqrtp_errorasinzsinatan2adjust_lon( 3>I$T,]  b pu z,$$,i~ <  +L \/D`xLdL\4AMVsll( @ lamccfor.o/ 1295031712 7356 20 100664 6448 ` ELF> @@ UHHEMU]emxpHEHHEHHpHHxHEf(XMfTf.wDžT) f(^f(EEf(YM\XQXHHf.HztXHHHHHEHHEHHuH}HEH@@HEHEHEHUH H@@H@@H@@@H@HEHUH HEH@@H@@H@@@H@HEHuH}HEH@@HEHUH H@@H@@H@@@H@HEHUH HEH@@H@@H@@@H@HEHH@@@H@HEHEHH H@@H@@H@@@H@HEEf(\MfTf.w@E^E`E^E`^f( HEHHHUH@@H@@@H@H@@YE^ f(YhHHUH@@H@@YhHHH@@H@@HEHUH@@H@@HH@@HEH@@HHH@@H@@DžTTUHHpEMH}HuMfT\fTEEf.wHEHEEEHEHEH HEHUHEUHUMHMEEHEHE f(YUHHUHEMHUEYEEG EYEfWf.EsE,HE E\f(YEHEHEEf(YMXHEEHEHEEYEM\XHEEElamcc-forEqual Latitiudes for St. Parallels on opposite sides of equatorLAMBERT CONFORMAL CONIC|=?Point can not be projected-DT!?|=zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @8 &,X1>X90 H.Q& & a   X P+H9<> I(T0W8Z@ ]iqv~lamccfor.cr_majorr_minorfalse_northingfalse_eastingesecenter_loncenter_latnsf0rhlamccforintp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccforadjust_loncos@KYLgD}l|    3IT_$O^$0$7il|,,,A,V4^f4},< P!5 M!TL[D~":OW4k,,  $,'D;<R%hL @ lamccinv.o/ 1295031712 7356 20 100664 6432 ` ELF> @@ UHHEMU]emxpHEHHEHHxHHpHEf(XMfTf.wDžT) f(^f(EEf(YM\XQXHHf.HztXHHHHHEHHEHHuH}HEH@@HEHEHEHUH H@@H@@H@@@H@HEHUH HEH@@H@@H@@@H@HEHuH}HEH@@HEHUH H@@H@@H@@@H@HEHUH HEH@@H@@H@@@H@HEHH@@@H@HEHEHH H@@H@@H@@@H@HEEf(\MfTf.w@E^E`E^E`^f( HEHHHUH@@H@@@H@H@@YE^ f(YhHHUH@@H@@YhHHH@@H@@HEHUH@@H@@HH@@HEH@@HHH@@H@@DžTTUHH`EMH}HuHE E\Ef(\MXE fWf.w>Ef(YMEYEXEHEHEH?HEDEf(YMEYEXf(fWEHHEHEfWf.Euz*Ef(YMEYEEHEHEfWf.Euz fWf.w ^E YE^HEHEMEHEHEHH}HEHEMHUEEHUHEHHEHtHE؉ERHUH-DT!H Ef(^f(XEHUHEHEElamcc-invEqual Latitiudes for St. Parallels on opposite sides of equatorLAMBERT CONFORMAL CONIC|=??zRx AC <JAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @h & , X1 >X90 H( .QV V a    H*P9<> I(T0W8Z@ ]iqv~Jlamccinv.cr_majorr_minorfalse_eastingfalse_northingesecenter_loncenter_latnsf0rhlamccinvintp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccinvatan2phi2zadjust_lon@KYDgL}l|    3IT_$O^$0$7il|,,,A,V4^f4},< P!5 M!TL[D~"D<L,]i$,,4.Ba%,& @ merfor.o/ 1295031712 7356 20 100664 4360 ` ELF>@@ UHHpEMU]emHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\EQMMUf.UztEEHEHHEHEEEHEHEEf(f(YUHEHEEMY\M^f(HHHEMHUEHHEEHHEEHHHEMHUEUHH`EMH}HuMfT\fTf.sE5HEHEEEHEHEH HEHUHEUHUMHMEEHEHE f(YU E\MYXHEE f(YUHEHEEYEM\f(HEEEMERCATOR?mer-forwardTransformation cannot be computed at the poles-DT!?|=zRx AC <{AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @m  &,H1>0X90 H.QaX  X  %08?@M(P R0 U_dhls{{merfor.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1merforintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerforp_errortsfnzadjust_lonlog-8C NY4d<lt $$$:K Ti,n sz 4<\!l-\9tF K (Pn, <4$,C @ merinv.o/ 1295031712 7356 20 100664 4016 ` ELF>@@ UHHpEMU]emHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\EQMMUf.UztEEHEHHEHEEEHEHEEf(f(YUHEHEEMY\M^f(HHHEMHUEHHEEHHEEHHHEMHUEUHH@EMH}HuHE E\E E\EMf(fW Yf(^f(EHEHEHH}HEHEMHUEEHUHEHHEHt HEEM YEf(^f(XEHUHEHEEMERCATOR?zRx AC </AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @!`  &d,hH1p0>X90 H.Q&&a    %08?@M(P R0 U_dhls{/merinv.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1merinvintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerinvexpphi2zadjust_lon-8C NY4d<lt $$$:K Ti,n sz 4<<.4DYa,v,  @ millfor.o/ 1295031712 7356 20 100664 2776 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHH@EMH}Hu E\EHEHEf(YMXHEM^XEHEHEEf(YYXHEMILLER CYLINDRICAL@-DT!??zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @t &, 10>X9 0 H@.Qnna   x  & 5@GNU]eptmillfor.cRlon_centerfalse_eastingfalse_northingmillforintptitleradiuscenlonoffsetpmillforadjust_lontanlog#.9 DI N`ry  "9EQ$] @ millinv.o/ 1295031712 7356 20 100664 2816 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHH0EMH}Hu E\E E\E Ef(^f(XEHUHEH Ef(^f(f(^f(EHEHEEf(\YHEMILLER CYLINDRICAL?-DT!?@zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ &, 10>X9 0 H`.Qa0  @y  & 5@GNU]eptmillinv.cRlon_centerfalse_eastingfalse_northingmillinvintptitleradiuscenlonoffsetpmillinvadjust_lonexpatan#.9 DI N`ry  &?Pgs$ @ molwfor.o/ 1295031712 7356 20 100664 3640 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHHĀEMH}Hu E\EHEHEHEHEHEHEEf(YEHEHEHEEXEf(\MMHEH?HEHEHEEf(XM^f(EEXEEMfTf.w,H}1~E HE8Mf(^f(EMfTf(\f(f.w HE Yf(YMMHEHEEMYXHE f(YUHEHEEMYXHEEEMOLLWEIDEMollweide-forwardIteration failed to converge-DT! @?|=@-DT!?)d?;f?zRx AC <AAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ ` &$,( 10>X90 H0.Q^^a(  (  (* 5@GNU]Aeptxmolwfor.cfalse_eastingfalse_northingRlon_centermolwforintptitleradiuscenlonoffsetpmolwforadjust_lonsincosp_error# .9DI N`ry <$:L^j\l|   l%|>Fj{  @ molwinv.o/ 1295031712 7356 20 100664 3352 ` ELF>0@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHHPEMH}Hu E\E E\E YE^EMfTf.wH?HEHEHEEEHEHE f(YUHEHEEMYEf(^f(XEHUHEHHEf.wHUH-DT! HHEf.wHUH-DT! @HEf(XMEXMXf(^f(EMfTf.wH?HEHEHEEEHUHEHMOLLWEIDE;f??)d?-DT! -DT! @?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &, 1X>HX9 0 H.Qap(   } (* 5@GNU]ejnymolwinv.cfalse_eastingfalse_northingRlon_centermolwinvintptitleradiuscenlonoffsetpmolwinvasincosadjust_lonsin# .9DI N`ry   ,CX`4<D(9DRcL @ obleqfor.o/ 1295031712 7356 20 100664 5112 ` ELF>@@ UHHPEMU]emu}HEHHEHHEHHEHHEHHEHHEHHEHHHEEHHEEHHEEHHEEHHEEHHEEHHHEMHUEHHEEUHHEMHxHp E\EHuH}HEH88HuH}HEH88 Ef(Y EYEYX8H8HE Ef(Y EYEY\MEYf(f(XEHuH}HEH88Mf(^f(XEMEYEMEYEMf(^f(8H8HEMf(^@HEH88@YHEf(Xf(^f(H^f(EHEH888H8HE f(YPEf(Xf(^f(PYXHp f(YXEf(Xf(^f(XY`HEH88`YhEf(Xf(^f(h^XHxOBLATED EQUAL-AREAParameter m: Parameter n: Theta: @zRx jAC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &\,`P1`P>X90 H.Q66a     (! #)@7HF8P0 Zjfmt{jobleqfor.cRlon_centerlat_omnthetafalse_eastingfalse_northingcos_lat_osin_lat_oobleqforintptitleradiuscenloncenlatgenrptoffsetptsincosobleqforacosatan2sinasincos7$BMXcn y<D $  &  9"D)<@GL 8Q 0_,424G,t DD4D\  $ 0<GO$t  D @ jobleqinv.o/ 1295031712 7356 20 100664 5296 ` ELF>@@ UHHPEMU]emu}HEHHEHHEHHEHHEHHEHHEHHEHHHEEHHEEHHEEHHEEHHEEHHEEHHHEMHUEHHEEUHHEMH}Hu E\E E\E f(^H YE^YHE YEf(^PEf(Xf(^f(PYXHEH88X^f(E f(^`HEH88Y`EHEH88XEHEH88f(XhEf(Xf(^f(hYpHEH88p^f(EEf(YMEYEf(XxQx@@f.@ztx@@f(^f(EHEH88XEHEHUH88H888H8HE E\EHuH}HEH88HuH}HEH88 Ef(Y EYEYX8H8HEH Ef(Y EYEY\MEYf(f(X8H8HEHOBLATED EQUAL-AREAParameter m: Parameter n: Theta: @zRx jAC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @8H &,P1P>X90 Hp.Qa@ 0  p  (! #)@7HF8P0 Zjfmt{jobleqinv.cRlon_centerlat_omnthetafalse_eastingfalse_northingcos_lat_osin_lat_oobleqinvintptitleradiuscenloncenlatgenrptoffsetptsincosobleqinvasincossinsqrtatan2adjust_lon7$BMXcn y<D $  &  9"D)<@GL 8Q 0_<DD$$<MyD 1BnDQ l ,44%,R ^g! @ jomerfor.o/ 1295031712 7356 20 100664 15048 ` ELF>@@ UHH xph`XPH@H8HxHHpHHhHHPHH@HHHH f(^f(EEf(YM\Qf.ztHHHH YY\E \HHEHH@HHHHf(Y \f(^XHH YYYE^E fTf.w5H?HEH?HH?HHHH HHHHHEHEHHHEf(YMYEf(^f( Y\fWf.w fWf.sD Yf(\f(f(XE_ Yf(\f(\f(E HHEHHUHHYEHHHHHHHHHHH8^Ef(XMYEH`Hf(f(^f(HHEHEHYEf(^X\`YHHHH fTEEf.M\fTf.pHEHH`H fWf.s f(^ Yf(\f(f(f(^f(Yb ^HH?H Yf(\f(f(f(^f(YDžHEHHHEH HEHUHHHHHEHE(HHHEH HEHU(HHHHHEHHUHHHHEHHUHHHHE^EE^Ef(XMYE YEYEf(\ YEYEXf(^f(EEf(\MEXEf(^f(EE\E EMf.wE  \E Ef.wE  XE E\E EEf(XM f(Y  YYEYE^Ef(f(^f(X  E\HHEYE^EHHEHEHf(YHH`MYMYM YM(YEf(\M(fTf.sDžCMfTEMf.s-M\fTf.sDž fT\fTf.sDžuHEHH`H fWf.s f(^( Yf(\f(f(f(^f(Y( ^HH?H0 Yf(\f(f(f(^f(Y0DžUHHEMH}HuHEH```H`HE E\`H`HEYE`H`HEMfT\fTf.w'H HEHUH``H``H```H`HEhHHUH``H``h^f(E^Ef(XMYE^Ef(XMYEf(YMYEf(\f(^EEYE`H`HEMfTf.w# YYEEf(YMYEX^Ef(Yf(^f(EfWf.Ew Y^EXEafWEf.s HHE fWEf(YMf(^f(EMfT\fTf.sDžt  f(Yxf(\UMXf(^f(xYf(^f(E E\Ef(YMXYEXHEf(YMXYEf(\f(HEDžttOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: omer-initInput data errorLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: ?|=?cܥL@-DT!?-DT! -DT!@-DT! @omer-forPoint projects into infinity-DT!?|=??Hz>-DT! @zRx %AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &(,(10>0X9:0 H.QaX   ( 38B@P0S(UP]HeXh`khmpp{x % %omerfor.cr_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesecos_p20sin_p20blaldellon_origincosgamsingamcosazsinazuomerforintsqrttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerforcoslog\jx 4<,,&<$CH PM Hai,qD}D,L ,(,0DMcTksT \ dlD$5!`{TLddddd!d4dDdLdXidT l "#   !$(4/<R%h~&d'('T($1 A6$=Q)Xl*t| ,     "6\>TVd^dj{+t\T<dd.+>tH ^M hR,y&$!& $L !f T  T  l  " l* lH lP l L T \ T" : TB dP (_ +k T   - T & + & d '/ $8 y= $J $S X $e $n s $ $  $    ^ h ,    , $  1 ^6 h; ,R Z f ,r ~   ^ h ,       \T'd/d;LXi+yt\T<dd+tV&q-T&$0!KlZT | T*/EVf\nT|+\T\T.|<|DU\fT p y,\ !05TNtdu<4 @ %omerinv.o/ 1295031713 7356 20 100664 14624 ` ELF>P@@ UHHEMxph`XPHHHEHHEHHxHH`HHPHHXH f(^f(EEf(YM\Qf.ztHHHH YY\E \HHEHH@HHHHf(Y \f(^XHH YYYE^E fTf.w8H?HH?HH?HHHH HHHHHHEHHHEf(YMYEf(^f( Y\fWf.w fWf.sD Yf(\f(f(XE_ Yf(\f(\f(E HHEHHHHYEHHHHHHHHHHHH^Ef(XMYEHpHf(f(^f(HHEHEHYEf(^h\pYHHHH fTEEf.M\fTf.pHEHHpH fWf.s f(^ Yf(\f(f(f(^f(Yb ^HH?H  Yf(\f(f(f(^f(Y Dž,HEHHHEH HEHUHHHHHEHE(HHHEH HEHU(HHHHHEHHUHHHHEHHUHHHHE^EE^Ef(XMYE YEYEf(\ YEYEXf(^f(EEf(\MEXEf(^f(EE\E EMf.wE  \E Ef.wE  XE E\E EEf(XM f(Y0 YYEYE^Ef(f(^f(X0 E\HHEYE^EHHEHEHf(YHHpMYMYM YM(YEf(\M(fTf.sDž,CMfTEMf.s-M\fTf.sDž, fT\fTf.sDž,uHEHHpH fWf.s f(^8 Yf(\f(f(f(^f(Y8 ^HH?H@ Yf(\f(f(f(^f(Y@Dž,,UHHEMH}Hu E\E E\EHEf(YMYEf(\f(Ef(YMYEXE EXE fWf(YMf(^f(`H`HE^Ef(XMYE^Ef(XMYEf(YMf(^f(`H`HEf(YMYEX^EEMfT\fTf.sKHHEHfWEf.sHUH-DT!?HHUH-DT!H ^EhMX\Ef(^f(h^f(HEH```H`HEHH}HEH``H```H`HEHHEHtHEtf(YMf(^f(`H`HExf(YMYEf(\f(HEH``f(f(^f(x\f(EHEH```H`HEHDžttOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: omer-initInput data errorLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: ?|=?cܥL@-DT!?-DT! -DT!@-DT! @??|=zRx "AC <0AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @RP &,1>hX980 H.Qa  p* ( 38B@P0S(UP]HeXh`khnppxs~ ""0 $omerinv.cr_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesecos_p20sin_p20blaltsdellon_origincosgamsingamcosazsinazuomerinvintsqrttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerinvexpphi2zcosatan2S^l z4<,,0$7< PA HU ],eDqD},L! ,,$8AWT_gTs \ dltD$,"BdZuTLllllll.l>lFlRclTd!t #$   %%4,<O&e${,'l()(T%4. A3%:N*Ui+qy <       3\;TSl[lgx,|\TLll+,;|E ^J hO-v'$"' $I "c T ! T ! t $ , t' tE tM t \ d l d ,7 T? tM )\ ,h T   . T ' , ' l (, 45 : %G 4P U %b 4k p %} 4  %    ^ h -    <  ! . ^3 h8 -O W  c <o  {  ^ h -       \ T$l,l8IUf,v|\TLll, |C<Y4w|T|\0,BSizT\' gTot!$$1ZTk\|23T&. @ "orthfor.o/ 1295031713 7356 20 100664 3696 ` ELF>0@@ UHH0EMU]eHEHHEHHEHHEHHEHHEHEEHHEEHHEEHHEEHHHEMHUEUHHpEMH}Hu E\EHEHEHuH}HEHEEHEHEEEHEHE Ef(Y EYYEXEH?HEfWEf.w$MfTf.sf(YMEf(YUHEHEEMYXHEf(Y] Ef(Y EYYEf(\f(f(YXHEEEEORTHOGRAPHICorth-forPoint can not be projected|=zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ x &,81X>HX9@0 H.Qap    )8 F0N( Vaipworthfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p14sin_p14orthforinttsincosptitleradiuscenlonmeroriginoffsetporthforadjust_loncossinp_error(3> IT] 0b (pu z <Nc$x,<L*;,P$z    @ orthinv.o/ 1295031713 7356 20 100664 4816 ` ELF>@@ UHH0EMU]eHEHHEHHEHHEHHEHHEHEEHHEEHHEEHHEEHHHEMHUEUHHĀEMH}Hu E\E E\EEf(YMEYEf(XUQEEMf.MztEEHEHE XEf.wE E^EHEHEHuH}HEHEEHHEHMfTf.sHHEHE>Mf(YEf(YMY^EXEHUHEH fTf(\f(EMfTf.s fWf.sXMfWHEf(HEEf(XEHUHEHE4EMfWHEHEMM\f(EHUHEHEUUHEHHEEf(YM\f(EMfTf.sMfTf.sVEf(YUEf(YMYf(f(XEHUHEHEEORTHOGRAPHICorth-invInput data errorHz>|=-DT!?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &,81`>0X90 H.QaX   (  )8 F0N( Vaipworthinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p14sin_p14orthinvinttsincosptitleradiuscenlonmeroriginoffsetporthinvsqrtp_errorasinzatan2adjust_lonsin(3> IT] 0b (pu z r$   ,<. N$l,~ ,D,< L&/S`L{$,< ,<F,S_h @ polyfor.o/ 1295031713 7356 20 100664 5296 ` ELF>(@@ UHH`EMU]emHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\EQUUEf.EztEEHEHHHEEEHEHHHEEEHEHHHEEEHEHHHEEEHEHHHH H5H=HEeHU]HMUHuMH}EEHEHHHHEMHUEHHEEHHEEHHHEMHUEUHHpEMH}Hu E\EHEHEMfTf.sZf(YMXHE Yf(\f(HEHuH}HEHEEHH H5H=HEHEeHU]HMUHuMH}EEHEHEHEHUH HEUHUMHMEEHEHEMEYEf(YUUHEHEEMYE^XHE Ef(\UHEHEEf(\f(YMEf(^f(MXYXHEPOLYCONIC?Hz>?zRx hAC <TAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @x &,h1@>@X90 H.Qah   (  &1X@`NHQ@S V(Y0\8_P chnsx}hTpolyfor.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesee0e1e2e3ml0polyforintsqrte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyforadjust_lontsincosmsfnzsincos-8C NYTd\lt DD<D D 0$7DEU,\Djz44,$L  #*8 ?TF\]! #,\TL6$=4D,K$R<% &&\:L^'j4T @ hpolyinv.o/ 1295031713 7356 20 100664 4920 ` ELF>@@ UHHPEMU]emHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\HHEEEHEHHHEEEHEHHHEEEHEHHHEEEHEHHHH H5H=HEeHU]HMUHuMH}EEHEHHHHEMHUEHHEEHHEEHHHEMHUEUHH`EMH}Hu E\E E\E Ef(^f(XEHEMfTf.s> Ef(^f(XHEHUH<Ef(Y] Ef(^ E^YXEH LL LLHuH}HEHUHEuHUmHMeLE]LMULUML]EH,HEH}t EJrEf(YMf(^f(EHEHHEEM^XEHUHEHEEPOLYCONIC?Hz>zRx )AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @H8  &,`18>X90 H .QNNax  h  &1P@XN@Q T(W0Z8]H a)lqv{)polyinv.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0polyinvinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyinvphi4zasinzsinadjust_lon-8C NYLdTlt <<<$<,<+;4BI4P,W$^D  LTGT]LsD, 'D4K,R$Y`<!"# ($ @ )psfor.o/ 1295031713 7356 20 100664 4936 ` ELF>@@ UHHpEMU]emHEHHEHHEHHEH f(^f(EEf(YM\EQUUEf.EztEEHEHHHEEEHEHHEHHEHfWf.EwHHH?HHMfT\fTf.wH?H YEHuH}HEHEEHEHUH HEUHUMHMEEHEHHUH HEHUUHEMHMEEHEHHHHEMHUEHHEEHEHUHEMHUEUHHpEMH}Hu E\f(YEYEEHEHEEEHEHEH HEHUHEUHUMHMEEHEHE fWf.uz8 Yf(YMf(^f(E.Xf(YMf(^f(Ef(YMMHEHEEMYXHE fWf(YUUHEHEEMYXHEPOLAR STEREOGRAPHIC?-DT!?|=zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @{`  &,h1P>X90 Hh.Qa8 `    X(`69; >(I0T8X@\H`P dmrwpsfor.cr_majorr_minorfalse_northingfalse_eastingesee4center_loncenter_latfacindmcstcspsforintsqrte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsforadjust_lonsincos-8CTN\V^  $ ,)4<4H<Pa,my4<4,D2BLG LSZqx$$!44")Qf<|DL4"\'4/<S#dT @ psinv.o/ 1295031713 7356 20 100664 4952 ` ELF>8@@ UHHpEMU]emHEHHEHHEHHEH f(^f(EEf(YM\EQEEUf.UztHEHEEEHEHHHEEEHEHHEHHEHfWf.EwHHH?HHMfT\fTf.wH?H YEHuH}HEHEEHEHUH HEUHUMHMEEHEHHUH HEHUUHEMHMEEHEHHHHEMHUEHHEEHEHUHEMHUEUHHPEMH}HuHE Ef(\f(YE Ef(\f(YEEf(YMEYEXEHEHE fWf.uz8f(YU Yf(^f(E.f(YMXf(^f(EHH}HEHEMHUEf(YHEHEHt HEEfWf.Ezt YHEfMfWHEf(HEEEHEHEf(YMXEHUHEHEEPOLAR STEREOGRAPHIC?-DT!?|=zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &,`1P>PX9(0 H.Qax H    X'P68; F(Q0U8Y@]H ajot|psinv.cr_majorr_minorfalse_eastingfalse_northingee4center_loncenter_latfacindmcstcspsinvintsqrte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsinvphi2zatan2adjust_lon-8CTNLV^  $!,4,@4HY,eq44,$ < *:D? DKRip~T,L,;P4fDw<  ,.,6L<k!," @ robfor.o/ 1295031713 7356 20 100664 6240 ` ELF>8 @@ UHH@EMU]HEHHEHHEHHEHHX9vHH#?HHH?HHX9v?HH#?HHX9v?HH_Q?HH+?HHGz?HHX9v?HH2ı.n?HHףp= ?HHA`"?HH+?HHQ?HH-?HH 0*?HHV/?HHH}?HHO@a?HH=U?HHN@a?HHKY8?HHa2U0*?HHQ?HHׁ?HHPX900 H.Qax   t  %4 7 ;ELSZb irobfor.cRlon_centerfalse_eastingfalse_northingprxlrrobforintptitleradiuscenlonoffsetprobforadjust_lon#.9 DU$fr,4<DL  T->\O`dq$l,t4|<D L,=TN_\pdlt|    ( -?QX_ v,</ @ Q nD  L D M  ^  o  D    L  D%1T=DIbj\      D    L+  ?D_TkDw @ robinv.o/ 1295031713 7356 20 100664 7856 ` ELF> @@ UHH@EMU]HEHHEHHEHHEHHX9vHH#?HHH?HHX9v?HH#?HHX9v?HH_Q?HH+?HHGz?HHX9v?HH2ı.n?HHףp= ?HHA`"?HH+?HHQ?HH-?HH 0*?HHV/?HHH}?HHO@a?HH=U?HHN@a?HHKY8?HHa2U0*?HHQ?HHׁ?HHRFߑ?zRx AC <*AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  & ,  1 > X90 H .QN N a(  |  %4 7 ;ELSZb*iqrobinv.cRlon_centerfalse_eastingfalse_northingprxlrrobinvintptitleradiuscenlonoffsetprobinvp_erroradjust_lon#.9 DU$fr,4<DL  T->\O`dq$l,t4|<D L,=TN_\pdlt|    ( -?QX_ v DLT$\:lw        t  \   Otd|x|TT \"lp          t  ,HTD`~        "  *tG  [{DD  ( \! 4 H f w      t " B c   (  @ sinfor.o/ 1295031713 7356 20 100664 2584 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHH@EMH}Hu E\EHEHEf(YMMHEHEEMYXHEf(YMXHESINUSOIDALzRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @P8 &, 1 >X9 0 H.Q&&a  q  % 4>ELS[bmsinfor.cRlon_centerfalse_eastingfalse_northingsinforintptitleradiuscenlonoffsetpsinforadjust_loncos#.9 DI N`ry  (9 @ sininv.o/ 1295031713 7356 20 100664 3112 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHH@EMH}Hu E\E E\E E^HEHEfTf.wE̤HEfTf(\f(EMfTf.wkHEHHEEf(YEf(^f(XEHEHEEEHUHEHHHEHEESINUSOIDALsinusoidal-inverseInput data error-DT!?|=zRx AC <iAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ X  &L,P 1PP>X9 0 H.Q&&a  y  % 4>ELS[ibjnsininv.cRlon_centerfalse_eastingfalse_northingsininvintptitleradiuscenlonoffsetpsininvp_errorcosadjust_lon#.9 DI N`ry   ,<"  ' ,H,T<m,~D @ somfor.o/ 1295031713 7356 20 100664 13632 ` ELF>@@ UHHxpHhH`XPH@8H0H( H HHHHH@HHxHHpHpf(^xp^xY\H(tSHXHE8f(^f(HPHH*0HhgH=?HEHwO[?HH*`YXYHO)?HeHj\a0l?HEH~CS?HH*`YXYHO)?HHHHHHH(u"H`HhMY YHHHHHHHEHHH fTf.wH& .>HHEHHH YYE YYEf(\U \f(^f( Yf(\f( \EE^E \f(YMEYEf(^f(EYEYEHEHEHUHMHuH}LUIIHHLc HEHEHEHEHEHEHEHEHEHEHE H*EEHEHUHMHuH}LUIIHHL MYEXEMYEXEMYEXEMYEXEMYEXEHEH}QHEH*EEHEHUHMHuH}LUIIHHL Ef(XEXEEf(XEXEEf(XEXEEf(XEXEEf(XEXEHEH}H2HV@HEHEHUHMHuH}LUIIHHL7 MEXEMEXEMEXEMEXEMEXEMf(^f(Mf(^f(Mf(^f(Mf(^f(Mf(^f(UHHHHHHz>HEHHE \0Ef.wHz!?HEMf.wHz!HEHEHEH0HEfWEf.sH-DT!?HE fWf.uzH^8U)zj@HEfWf.EwH!3|@HEHDž HEHEHDž(YEXExHxH888H8HppfTEf.wx \xfWpf.sH?HEfWf.pwHHEHEH88f(YMYXEhYEXE`H`H888H8HXXfTf.w` \` f(\PHEH88PYf(YXH`H88f(YXX^XPHPH888H8HHHXhHMf(fTHfTf(\f(@@fTEf.w&H(H(2HHHE  Y88XEH H Hf.8wHEf.H8f.wH^8U)zj@HEHf.EsFH-DT!?HE3H50 i@tera@tion@ s wi@thou@t co@nv HDždHEH888H8HE f(\f(Yf(YMhHEH88f(f(YpH`H88Yph\xYEf(YMf(\QHHf.HztHHx^f(8H8HEM^XEHEH888H8H888H8HEHHH888H8HEEYEE f(YHHH88Yf(YMf(Xf(YMf(Xf(YMXYf(^f(Y f(Y YX8H8HEf(YHHXf(YXHYf(YXYE^Ef(\f(HHYHf(YMHYf(YXYE^EXHHYHHHHEHXHXEHDžddUHHH}HuHUHMLELMHEYHEHEHHxxxHxHEEYEE f(YUHEHHxxMYMf(YMf(Xf(YMf(Xf(YMXYf(^f(YEf(YMf(Xf(YMXf(^f(f(f(YMf(Xf(YMf(Xf(YMXYf(^ Yf(\f(YE f(Y YXxHxHEf(YU Yf(\f(^EHEHEUHEXYEHEHEEHEYYEHEf(XMY^EEHEHHxxYEHEHEYYEHESPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: ?@&p= `@5RFߑ?l)`@cܥL@& .>@@>@N@.@F@som-forwardHz>z!?z!?-DT!-DT! @-DT!@@-DT!?@@Fߑ??@@zRx FAC <, AC \AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @H! &8,81@>x94H Hh.Qa88  p  ')+p.X2=ChF`IHK8M@OPRr]` c(f0ix kFuF, somfor.cfalse_eastingfalse_northingabesp21lon_centerstartcasawqtxjsom_seriesa2a4c1c3ssomforintgsat_ratioptitleradius2genrpt_longgenrptoffsetpcossinsomfortanatanp_errorsqrtasinlogq l T,=|kT|T$|) .5 <_ u z! (! >" X"# z"-$CdKdS_xd%\lddl\\ l)D1D9DEYDali4l<L $' ;,,4 |{ T $ < $S %d T} T $ < $ $ l L8 'L \w % d ( < <- <r z \ dp u ) % l L d$ \7%[lqL*+lt$'G,u%T\$<LD L04ALZ*jtrLzLtt* %|%(@tt$%,L5L%T\"$8<IYDjz4*t4D* D-4>N4_wTdLLtt*Ltt<$fo$Lt$$ @ F` rsominv.o/ 1295031713 7356 20 100664 14104 ` ELF>@@ UHHxpHhH`XPH@8H0(HHHH@HHxHHpHpf(^xp^xY\H0tBHXHEHPH8f(^f(HhVH=?HEHwO[?HH*`YXYTHj\a0l?HEH~CS?HH*`YXYHHH  H  H`HhMY YHHH  H  H(H  HEH   H H fTf.wH& .>HHEH   H H YYE YYEf(\U \f(^f( Yf(\f( \EE^E \f(YMEYEf(^f(E^EEYEYEHEHEHUHMHuH}LUIIHHL HEHEHEHEHEHEHEHEHEHEHE H*EEHEHUHMHuH}LUIIHHL/ MYEXEMYEXEMYEXEMYEXEMYEXEHEH}QHEH*EEHEHUHMHuH}LUIIHHL@ Ef(XEXEEf(XEXEEf(XEXEEf(XEXEEf(XEXEHEH}H2HV@HEHEHUHMHuH}LUIIHHLo MEXEMEXEMEXEMEXEMEXEMf(^f(Mf(^f(Mf(^f(Mf(^f(Mf(^f(UHHpH@H8H0HHHE @\H E\@ Y@^XH& .>H`HEHHXHhHXHHHppYpx f(YHXHYf(Yxf(Xf(Yxf(Xf(YxXYf(^Qf.ztY @f(^ Hf(^f(Yf(^f(f(XXYf(YXXYf(YX f(^HXHf(f(YXYf(YXY\f(E E^XX\hEMfT`f.wHEH}1H}1~Dž5HXHHHE Y^^X Hf(^f(YEf(\XYf(YXYHHEHEHHHEMf(\f(XEEYEEHXHf(fTf.wX \XHEHHHEEYEE f(\f(Ef(^f(f(\HXHYf(Yf(Y]f(YMX\EYYEf(\f(YHXH^f(\ Xf(YM\f(^f(HHEfWEf.sH?HEfWf.EwHHEHXHf(fWf.sH?HEHXHf(fWf.wHHEf(\MYf(YMEXEf(YXE\E fTf.wo f(\ \f(YYEXf(E^HHE fTf.sHXH HEH Y(HEHf(Y(\ f(\f(Yf(^f(HHEXEHH8HH0HEHDžUHHH}HuHUHMLELMHEYHEHEHHxxxHxHEEYEE f(YUHEHHxxMYMf(YMf(Xf(YMf(Xf(YMXYf(^f(YEf(YMf(Xf(YMXf(^f(f(f(YMf(Xf(YMf(Xf(YMXYf(^ Yf(\f(YE f(Y YXxHxHEf(YU Yf(\f(^EHEHEUHEXYEHEHEEHEYYEHEf(XMY^EEHEHHxxYEHEHEYYEHEHxxSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: ?@&p= `@5RFߑ?l)`@cܥL@& .>@@>@N@.@F@som-inverse50 iterations without convergence?@-DT!?Hz>-DT!Fߑ??@@zRx AC <d AC \AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @X!x &8,81@>x96H Hx.QaH8    ')+x.9`=p@hCPE8G@IHKXN^Y\ _(b0e gqxd sominv.cfalse_eastingfalse_northingabeslon_centerp21casawqtuxjsom_seriesa2a4c1c3ssominvintptitleradius2genrpt_longgenrptoffsetpcossinsominvsqrtp_errorexpatantanasinadjust_lonjx t\E\Vbnz\     ( (- :C >H!PXa Xf!mt" z!#lll2$HdPtXldlut}ddtLLLLt &4.t6a<sDT8WvWkx $ ,2Ngo $ \ d7 #S <g Lw L L 4 L & | 8 T |` T T $  \ $  | T1 $= $] df $r ,  l  ( '8 $S |[ |g Ts T L &  $ | $ , (2 )R  # l   $tL<Lg*{ld4LLD&#CDKL`Lu)##<LMp\dltLtLt& +%d-l9[*{#$ltLd)!,$\d#$<5ELVf4w&|4L&L 4*:4Kc\klTT||&T||(#R[#pT|## @ ` ^sterfor.o/ 1295031713 7356 20 100664 3792 ` ELF>H@@ UHH0EMU]eHEHHEHHEHHEHHEHHEHEEHHEEHHEEHHEEHHHEMHUEUHHpEMH}Hu E\EHEHEHuH}HEHEEHEHEEEHEHE Ef(Y EYYEXEMXfTf.sEgMX^Ef(YMEf(YUHEHEEMYXHEf(Y] Ef(Y EYYEf(\f(f(YXHEEESTEREOGRAPHICster-forPoint projects into infinity?|=@zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &,81`>`X90 H.Qa  (  )8 F0N( Vaipwsterfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p10sin_p10sterforinttsincosptitleradiuscenlonmeroriginoffsetpsterforadjust_loncosp_errorsin(3> IT] 0b (pu z <Nc$x,4<L  4T.?Sd,y$ @ sterinv.o/ 1295031714 7356 20 100664 4632 ` ELF>@@ UHH0EMU]eHEHHEHHEHHEHHEHHEHEEHHEEHHEEHHEEHHHEMHUEUHHĀEMH}Hu E\E E\EEf(YMEYEf(XUQEEMf.MztEEHEHEf(XE^XEHuH}HEHEEHHEHMfTf.sHHEHE]Mf(YEf(YMY^EXEHUHEH fTf(\f(EMfTf.s fWf.sXMfWHEf(HEEf(XEHUHEHESEMfWHEHEMM\f(EHUHEHEUUHEHHEEf(YM\f(EMfTf.u0MfTf.u E]Ef(YUEf(YMYf(f(XEHUHEHEESTEREOGRAPHIC|=-DT!?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @o @ &,81@>X90 HH.Qvva     )8 F0N( Vaipwsterinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p10sin_p10sterinvinttsincosptitleradiuscenlonmeroriginoffsetpsterinvsqrtatanasinatan2adjust_lonsin(3> IT] 0b (pu z r  $4,F^ f r$  ,(,CU$  -,:FO @ stplnfor.o/ 1295031714 7356 20 100664 10272 ` ELF>@@ UHSHHHH@H8H0HDžHHH;HtHHHHHDž$ H@uLHDžP0HPHH;HuHPHHkHPHP~TH@uJHDžP0HPHH;HuHPHHHPHP~HHuDH@HHHpHpDž$ H@uH8HEH0HEH}uDž$; HHHHHHHHHH}غHMH HMغHMH H}HEHDžP,HPHPH)HE PHPHPHvHPHDžPtHPHHHHHEHE#HMHUH)HE PHEHEHvHPHPHHHPHP~DH@HHHpHpDž$ HHH@u HDžX HDžXSHXHH`f(\(Q(f.zt(YhHHpHHHHhHf(YxHhHtHh$H0HHHhHf(YEHhHtHh$H8HEH@HEHEHUHMHxHpLhL`HHHHHLLH(HHHhHf(YEHhHtHh$gH HHHhHf(YEHhHtHh$HHHHhHf(YxHhHtHh$tH0HHHhHf(YEHhHtHh$H8HEH@HEHEHUHMHxH}LELhL`HHHHHLLL1HHHHhHf(YxHhHtHh$HHHHhHf(YEHhHtHh$9H HEH(HEHEHUHMHxHhL`HHHHHLHHpH(HHHhHf(YEHhHtHh$ HHHHhHf(YEHhHtHh$H0HHHhHf(YEHhHtHh$H8HEH@HEHEHEHEHEHEH}HUHMHuLELMLpLhH`HEHD$HEHD$HEHD$HEH$HHHLLLLHDž$$H[UHH@EMH}HuЋuDHuH}HEHUHEMHUEHHEH}HEEuDHuH}HEHUHEMHUEHHEH}HEEu=HuH}HEHUHEMHUEHHEH}tQHEEOu=HuH}HEHUHEMHUEHHEH}t HEEEEef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrstate-forError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD?5RFߑ?zRx  AC H<TAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @a &p ,0 10>X9'0 H(.QVVa0  ( 0@0 " .6>DJPW^jou{ Tstplnfor.cinzoneNAD27NAD83idstplnforintsprintfp_errorfopenfseekfreadfcloseptitlegenrpt_longsqrtpakczpaksztmforintlamccforintpolyforintomerforintstplnfortmforlamccforpolyforomerfor6M  @9 CO 'Ty 2~ 2 4 @  :CK 1O Ye 'j~ i u &P'35_k%O[  c   V a     5 A     ) U x     ;! @  stplninv.o/ 1295031714 7356 20 100664 10328 ` ELF>@@ UHSH(H8H0H(H HDžHHH;8tH8HH8Dž H0uLHDžP0HPHH;8uHPHHkHPHP~TH0uJHDžP0HPHH;8uHPHHHPHP~HHuDH0H8H`H`Dž H0uH(HEH HEH}uDžD HHHHHHHHHH}غH}HMH HMغHMH H}HEHDžP,HPHPH)HE @HPHPHvH@HDžPtHPHHHHHEHE#HMHUH)HE @HEHEHvHPH@HHHPHP~DH0H8H`H`Dž H8H0u HDžX HDžXSHXHH`f(\Qf.ztYhHHpHHHHXHf(YxHXHtHXH0HHHXHf(YEHXHtHXH8HEH@HEHEHUHMHxHpLhL`HHHHHLLH(HHHXHf(YEHXHtHXgH HHHXHf(YEHXHtHXHHHHXHf(YxHXHtHXtH0HHHXHf(YEHXHtHXH8HEH@HEHEHUHMHxH}LELhL`HHHHHLLL1HHHHXHf(YxHXHtHXHHHHXHf(YEHXHtHX9H HEH(HEHEHUHMHxHhL`HHHHHLHHpH(HHHXHf(YEHXHtHX HHHHXHf(YEHXHtHXH0HHHXHf(YEHXHtHXH8HEH@HEHEHEHEHEHEH}HUHMHuLELMLpLhH`HEHD$HEHD$HEHD$HEH$HHHLLLLHDžH([UHH@EMH}HuЋuDHuH}HEHUHEMHUEHHEH}HEEuDHuH}HEHUHEMHUEHHEH}HEEu=HuH}HEHUHEMHUEHHEH}tQHEEOu=HuH}HEHUHEMHUEHHEH}t HEEEEef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrstate-invError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD?5RFߑ?zRx  AC H<TAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @j  &p ,0 10>X9((0 H(.QVVaH  @ 0@0 " .6>DJPV]dpu{ Tstplninv.cinzonenad27nad83idstplninvintsprintfp_errorfopenfseekftellfreadfcloseptitlegenrpt_longsqrtpakczpaksztminvintlamccinvintpolyinvintomerinvintstplninvtminvlamccinvpolyinvomerinv6M  @9 CO 'Ty 2~ 2 4 @$ )CLT :X bn 's i u /Y0<>ht.Xd ' l   _ j     > J     2 ^     !D" @  tmfor.o/ 1295031714 7356 20 100664 7928 ` ELF>@ @@ UHHPEMU]emuHEHHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\HHEEEHEHHHEEEHEHHHEEEHEHHHEEEHEHHHH H5H=HEeHU]HMUHuMH}Ef(Y \f(^f( f.wH?H HHHHEMHUEHHEEHHEEHHEEHHHEMHUEUHHEMH}Hu E\HHHHEHuH}HEHHH fWf.uz HEHHHf(EYEMfT\fTf.wDž\] Yf(Y`MX\Ef(^f(Y`HEHEHHHf(Ef(YhEf(YMf(\pQpPPf.PztpPPh^f(HHHHEfWf.Ew u f(Y E\YHEDž\EYEEEYEEMEYYEHEHHHHHHHEEYEEMEYY\ExHEHHHx^f(EHH H5H=HEHHHHHHHHHHHHHHHf(YEYEf(Y]Mf(^\Ef(XmMf(^MYXEYEf(XMYX YXYXf(YXf(YXHE Ef(\Ef(YeMf(^f(\UMYXEf(YMYf(XMf(^MYXEYEf(XMYX YXYXf(YXYEYf(XYXHEDž\\TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: ?h㈵>tm-forPoint projects into infinity?|=?@4@2@R@M8@"@@>@N@@tzRx AC <&AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ &( ,( x10 (>X X90 H .Q  aP   &1 <`KhYH\(_0b8e@hXlPpp t}&tmfor.cr_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espindtmforinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptmforadjust_lontsincossinp_errorlogcossqrtacostan2=H S^i\td|DDD$D,D&4-D;K<RY<`4g,n$TDDDLDLll$ )07NU Z  h o}!"\d#%$&,lU'o|| X _( )A*p+,  "zL-D+,<34:,A$  <LLTtdT!6B euL} \ @ tminv.o/ 1295031714 7356 20 100664 9168 ` ELF>(@@ UHHPEMU]emuHEHHEHHEHHEHHEHHEHHEH f(^f(EEf(YM\HHEEEHEHHHEEEHEHHHEEEHEHHHEEEHEHHHH H5H=HEeHU]HMUHuMH}Ef(Y \f(^f( f.w HHHHEMHUEHHEEHHEEHHEEHHHEMHUEUHHXPHHH@HEHHm YX^HHE^Ef(XMYE YPf(^f(XEHEHHHEEf(YMf(\Ef(YMXf(^Qf.ztHHpHpHHH@HfWf.Ew"H@fWH@fWf.E!Ѓu8fWf.E!Ѓu HHHHDž$HEHUHHf(XHHHHDž$) X\X P\P Pf(^f(Xf(^f(pHpHxHExXf(Yf(Xp(xYf(Y(X0xYf(Y0Xf(^f(\xExXExMfTf.s2HEH;E|Dž$_sHExfTf.wH`HhHxHHxHHHE``YYEEYEEEYEEEYEEhhYY\p8HpH8^f(E \YE^pEf(YMX^EEYEEEYEYEf(^]Mf(^MYf(XMYXMYX Yf(XMf(^MYf(XMYXMYX YXMYXYXf(YXf(Yx\H@Mf(^Ef(XXf(XeMf(^MYf(XMYXMYX YXMYXYXf(YXf(YM`^XHHHHGHPH*YH@HHHHDž$$TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: ?h㈵>TM-INVERSELatitude failed to converge??@|=-DT!?8@@$@">V@N@r@F@o4<@ @8@zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  & , x1 p>@ X9#0 H .Q  ah    &1 <`KhYH\(_0b8e@hXlPpp t}tminv.cr_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espindtminvinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcossqrtasinzatan2adjust_lonsinp_errortsincostansign2=H S^i\td|DDD$D,D&4-D;K<RY<`4g,n$TDDDLDLh #:A F  T [i!p~"\d#l %+|ARZ z&''X()'0*`d|\ T+,/8+D4lu+<$ X c, 4h-.LD$G'dDl  # 3 L; T i  u   $ L , 4  <9 S Dh Lt  T 4 L \ d   *K /W m  @ utmfor.o/ 1295031714 7356 20 100664 8072 ` ELF> @@ UHHPEMUH}H}xH}~HEHH?HH3EH)H<~E HEHHEHHEHHHEH?HH3UH)HHHHH-H*YHAHH}y ]]E f(^f(EEf(YM\HHEEEHEHHHEEEHEHHHEEEHEHHHEEEHEHHHH H5H=HEeHU]HMUHuMH}Ef(Y \f(^f( f.wH?HH}оHHHEMHUEHHEEHHEEEEUHHEMH}Hu E\HHHHEHuH}HEHHH fWf.uz HEHHHf(EYEMfT\fTf.wDž\] Yf(Y`MX\Ef(^f(Y`HEHEHHHf(Ef(YhEf(YMf(\pQpPPf.PztpPPh^f(HHHHEfWf.Ew u f(Y E\YHEDž\EYEEEYEEMEYYEHEHHHHHHHEEYEEMEYY\ExHEHHHx^f(EHH H5H=HEHHHHHHHHHHHHHHHf(YEYEf(Y]Mf(^\Ef(XmMf(^MYXEYEf(XMYX YXYXf(YXf(YXHE Ef(\Ef(YeMf(^f(\UMYXEf(YMYf(XMf(^MYXEYEf(XMYX YXYXf(YXYEYf(XYXHEDž\\utm-forintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: 5RFߑ?cA?h㈵>utm-forPoint projects into infinity?|=?@4@2@R@M8@"@@>@N@@tzRx AC <&AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @5 H &x ,x x1 h> X9X0 H@ .Qn n a8  H ' 2=hK`ZH](`0c8f@iXmPqp u&utmfor.cr_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espindutmforintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutmforadjust_lontsincossinlogcossqrtacostanE J  Ofq| td|\-9D@DN^$eDs,D4D<<4,$".:TBDJDRjLrDzl   D !  P"#0>%q&yl'  ' DPf()*#+KW_ oL, D,=]*y<4,$ *EZ fL$dT,!74U<nD$LTL\   \ @ utminv.o/ 1295031714 7356 20 100664 9392 ` ELF>@@ UHHPEMUH}H}xH}~HEHH?HH3EH)H<~E HEHHEHHEHHHEH?HH3UH)HHHHH-H*YHAHH}y ]]E f(^f(EEf(YM\HHEEEHEHHHEEEHEHHHEEEHEHHHEEEHEHHHH H5H=HEeHU]HMUHuMH}Ef(Y \f(^f( f.w H HH}оHHHEMHUEHHEEHHEEEEUHHXPHHH@HEHHm YX^HHE^Ef(XMYE YPf(^f(XEHEHHHEEf(YMf(\Ef(YMXf(^Qf.ztHHpHpHHH@HfWf.Ew"H@fWH@fWf.E!Ѓu8fWf.E!Ѓu HHHHDž$HEHUHHf(XHHHHDž$) X\X P\P Pf(^f(Xf(^f(pHpHxHExXf(Yf(Xp(xYf(Y(X0xYf(Y0Xf(^f(\xExXExMfTf.s2HEH;E|Dž$_sHExfTf.wH`HhHxHHxHHHE``YYEEYEEEYEEEYEEhhYY\p8HpH8^f(E \YE^pEf(YMX^EEYEEEYEYEf(^]Mf(^MYf(XMYXMYX Yf(XMf(^MYf(XMYXMYX YXMYXYXf(YXf(Yx\H@Mf(^Ef(XXf(XeMf(^MYf(XMYXMYX YXMYXYXf(YXf(YM`^XHHHHGHPH*YH@HHHHDž$$utm-invintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: 5RFߑ?cA?h㈵>UTM-INVERSELatitude failed to converge??@|=-DT!?8@@$@">V@N@r@F@o4<@ @8@zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &8 ,8 x1@ > X9$0 HH.Qvvah    ' 2=hK`ZH](`0c8f@iXmPqp uutminv.cr_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espindutminvintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutminvexpcossqrtasinzatan2adjust_lonsintsincostansignE J  Ofq| td|\-9D@DN^$eDs,D4D<<4,$".:TBDJDRjLrDzhh   D !  P"#Jl[c x% &,J'(?)*d\ T(c+o,+4+<$7H ] b g,-LlDx'D @ U $a ,v 4  L < D L T \ d L l4 tT  |    ,  t L 3 S t } * .   @ vandgfor.o/ 1295031714 7356 20 100664 5216 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHHEMH}Hu E\0H0HEMfTf.sBf(YMXHEHHEHDžDM^fTX0H0HEMfTf.s<MfT\fTf.sHHEHfWEf.sX f(YHMYHYXHEV f(YPMYPYXHEDžDf(^UMf(^f(f(XfTYEEYEEHuH}HEH00UMEXf(\f(f(^f(EEYEEMf(^f(f(\f(YEEEYEE f(YXE\Ef(Y]`E\Ef(YME\Ef(YEf(XME\EYf(\hQh88f.8zth88X`XYEXEf(^f(EfWf.Ew uXEHE YEf(^f(fTEfWEf.s f(YpEf(YMf(\MYYEXpYXHE} f(YxEf(YMf(\MYYEXxYXHEDžDDVAN DER GRINTEN|=-DT! @-DT!??-DT! ?@zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @E0 &, 1x>X900 H`.Qa0 @  p  ' 6BIPW_hsy}vandgfor.cRlon_centerfalse_eastingfalse_northingvandgforintptitleradiuscenlonoffsetpvandgforadjust_lonasinztantsincossqrt#.9 DI N`ry    1T$` m  ,   $'40DZb$<$D 45PLTL$\ $ ;C$iL~lDLl# @ vandginv.o/ 1295031714 7356 20 100664 4752 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHHEMH}Hu E\E E\E YEE^EEE^EEEf(YMEYEXEMfTf(fWMXYEMYYEf(XMEYEXEMYXEXYEXEYEXEEYEf(^]EXYEYE^E^Ef(^UMYYE^E^Ef(Xf(^f(XEEf(YMf(^f(^EXE^EEMf(^XQXPPf.PztXPPXEMY^E^EEMfTf.w/fWEf.sH?HEHHEHEHHHf(f(^f(EfWEf.sMHHHH?H`MX`YMf(^f(^Ef(XYHEMHHHH?HhMXhYMf(^f(^Ef(XYHEMfTf.wHHEHDžtMf(\xEf(YMEYEf(\f(f(XXEYEXxXYf(^f(f(^MXHHHHEHDžttVAN DER GRINTEN-DT! @?";@@es-8R?-DT! |=@zRx AC <EAC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &(,( 10>X9`0 H.QFFa (    ' 6BIPW_Ehmrvvandginv.cRlon_centerfalse_eastingfalse_northingvandginvintptitleradiuscenlonoffsetpvandginvsqrtacoscosadjust_lon#.9 DI N`ry   GX,m<DD<4LWT\\d1B<d,l\: S,l\t|<^<u  @ wivfor.o/ 1295031714 7356 20 100664 3400 ` ELF>H@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHEHUHEMHUEUHHpEMH}Hu E\EHEHEHEHEHEHEEf(YEHEHEHEEXEf(\MMHEH?HEHEHEEf(XM^f(EEXEEMfTf.w H}~HEDMf(^f(E Yf(YMMHEHEEMYXHE f(YUHEHEEMYXHEWAGNER IVwagneriv-forwardIteration failed to convergeLKD@?|=@%䃞?\4 ?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @0  &, 1>`X9 0 H.Qa(   }  % 4>ELS[bmquwivfor.cRlon_centerfalse_eastingfalse_northingwivforintptitleradiuscenlonoffsetpwivforadjust_lonsincosp_error#.9 DI N`r44<XdL\l   t|+ ?Gfw @ wivinv.o/ 1295031714 7356 20 100664 2896 ` ELF>(@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHEHUHEMHUEUHHPEMH}Hu E\E E\E YE^EHEHE f(YUHEHEEMYEf(^f(XEHUHEHEf(XMEXMXf(^f(EHUHEHWAGNER IV\4 ?%䃞?LKD@zRx AC <8AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  &, 1(>@X9 0 H.Qah(  z  % 4>ELS[8bgkvwivinv.cRlon_centerfalse_eastingfalse_northingwivinvintptitleradiuscenlonoffsetpwivinvasincosadjust_lonsin#.9 DI N`r  <^g @ wviifor.o/ 1295031714 7356 20 100664 3168 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHHpEMH}Hu E\EHEHEMf(^f(HuH}HEHEEf(YEEf(YMf(\UQEEUf.UztEEHEHEEf(YMX^EHEHE YYEf(YMEYXHE YYEf(YMXHEWAGNER VII@T5A}??@G|V@rPL?zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @2  &t,x 1x@>X90 0 H.Q>>a(     & 5@GNU]epx|wviifor.cRlon_centerfalse_eastingfalse_northingwviiforintptitleradiuscenlonoffsetpwviiforadjust_lontsincossinsqrt#.9 DI N`ry  >m$, 4 @ wviiinv.o/ 1295031714 7356 20 100664 3240 ` ELF>@@ UHH0EMU]HEHHEHHEHHEHHEHEEHEHEEHHHEMHUEUHH`EMH}Hu E\E E\EMf(^f(EMf(^f(EEYEEEYEEEf(XMMQUUEf.EztEEHEHEf(XE^XEHEHEEf(YUMYf(^f(EHUHEHMf(YUHEHEEYEMf(YXEHUHEHWAGNER VIIG|V@rPL?tr ?@zRx AC <AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @k  &, 10>X9x 0 H8.QffaX  `   & 5@GNU]ejptx~wviiinv.cRlon_centerfalse_eastingfalse_northingwviiinvintptitleradiuscenlonoffsetpwviiinvsqrtasinzsintanatan2adjust_lon#.9 DI N`ry   s /;$GP @ for_init.o/ 1295031715 7356 20 100664 24072 ` ELF>8@@ UHAUATSHXHLLHDžHHEaHfWf.wIHfWf.w4HHfWf.wHHfWf.w DžHcHHHHIbHfWf.wIHfWf.w4HHfWf.wHHfWf.w Dž DžHcHHHHI-HcHHHHIHH0HHxHH8HHEaHH HH}Hf(YYHHEHHEHEHHtDž5HH(HH}Hf(YY8HEHHEHEHHtDž4HLHEHxH8HHHHHHHLHcHEHHEHHEHHHEH3bHH HH}Hf(YYHHEHHEHEHHtDžT3HH(HH}Hf(YY8HEHHEHEHHtDž2HLHEHxH8HHHHHHHLHcHEHHEHHEHHHEH2y0HEHHHHH}IHHHHHH}Hf(YY(HEHHEHEHHtDžR1HHHH}Hf(YY8HEHHEHEHHtDž0(YHfWf.8wHHx#?HpHHHHpHHHHcHEHHEHHEHHHEH 0uuHcHcHHHcHEHHEHHEHEHHtDž/HHHEH/HHHH}Hf(YY8HEHHEHEHHtDž/HHHH}Hf(YY@HEHHEHEHHtDž.HH(HH}Hf(YYhHEHHEHEHHtDž,.HH HH}Hf(YYHHEHHEHEHHtDž-LLHEHxHhHHH@L8HHHHHLLLHcHEHHEHHEHHHEH,HHHH}Hf(YY8HEHHEHEHHtDžP,HHHH}Hf(YY@HEHHEHEHHtDž+HH HH}Hf(YYHHEHHEHEHHtDžh+HH(HH}Hf(YYhHEHHEHEHHtDž*LLHEHxHhHHH@L8HHHHHLLLHcHEHHEHHEHHHEH*HH HH}Hf(YYHHEHHEHEHHtDž)HH(HH}Hf(YY8HEHHEHEHHtDž)HLHEHxH8HHHHHHHLHcHEHHEHHEHHHEHS(HH HH}Hf(YYHHEHHEHEHHtDž'HH(HH}Hf(YY8HEHHEHEHHtDžh'HLHEHxH8HHHHHHHLHcHEHHEHHEHHHEH&HH HH}Hf(YYHHEHHEHEHHtDž,&HH(HH}Hf(YYhHEHHEHEHHtDž%HLHEHxHhHHHHHHHLHcHEHHEHHEHHHEH$HHHH}Hf(YY8HEHHEHEHHtDž|$HHHH}Hf(YY@HEHHEHEHHtDž$HH HH}Hf(YYHHEHHEHEHHtDž#HH(HH}Hf(YYhHEHHEHEHHtDž #HH@fWf.zt HEHELLH}HEHxHhHHL@L8HHHHLLLLHcHEHHEHHEHHHEH! HHHHpHH HH}Hf(YYHHEHHEHEHHtDžp!HH(HH}Hf(YYhHEHHEHEHHtDž LLHEHxHhHHHpHHHHHLLHcHEHHEHHEHHHEH! HH HH}Hf(YYHHEHHEHEHHtDžHH(HH}Hf(YYPHEHHEHEHHtDž6HHEHxHPHHHHHHHHcHEHHEHHEHHHEH HH HH}Hf(YYHHEHHEHEHHtDžHH(HH}Hf(YYPHEHHEHEHHtDžHHEHxHPHHHHHHHHcHEHHEHHEHHHEH HH HH}Hf(YYHHEHHEHEHHtDžvHH(HH}Hf(YYPHEHHEHEHHtDžHHEHxHPHHHHHHHHcHEHHEHHEHHHEHS HH HH}Hf(YYHHEHHEHEHHtDžHH(HH}Hf(YYPHEHHEHEHHtDžhHHEHxHPHHHHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYHHEHHEHEHHtDžBHH(HH}Hf(YYPHEHHEHEHHtDžHHEHxHPHHHHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYHHEHHEHEHHtDžHH(HH}Hf(YYPHEHHEHEHHtDž4HHHHXLHEHxHPHHHXHHHHHLHcHEHHEHHEHHHEHZHH HH}Hf(YYHHEHHEHEHHtDžHHEHxHHHHHHHcHEHHEHHEHHHEHJHH HH}Hf(YYHHEHHEHEHHtDžHH(HH}Hf(YY8HEHHEHEHHtDž_HHEHxH8HHHHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYHHEHHEHEHHtDž9HHEHxHHHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYHHEHHEHEHHtDž)HHEHxHHHHHHHcHEHHEHHEHHHEHHHHHpHH(HH}Hf(YYhHEHHEHEHHtDžHH`fWf.uzHEHHHH}Hf(YYHEHHEHEHHtDžhHH HH}Hf(YY`HEHHEHEHHDžHEHH@HH}Hf(YY(HEHHEHEHHtDžtHHHHH}Hf(YY8HEHHEHEHHtDžHHPHH}Hf(YY0HEHHEHEHHtDžHHXHH}Hf(YY@HEHHEHEHHtDžHHH}HuLxLhL`LHpH@HD$H0HD$H8HD$H(H$HLLLLHHHHcHEHHEHHEHHHEH }HHH,HEHHH,HEHH`fWf.zt.HEHHHH}Hf(YYHEHHEHEHHtDž% HH HH}Hf(YY(HEHHEHEHHtDž HH@HHEHHHHHEHHPH,HEHELLHEHMHUHuH}LxL(LL]H]HHHLLLLHLLHcHEHHEHHEHHHEHj HH HH}Hf(YYHHEHHEHEHHtDž HHEHxHHHHHHHcHEHHEHHEHHHEHZ HH HH}Hf(YYHHEHHEHEHHtDžHHEHxHHHHHHHcHEHHEHHEHHHEHJuPHHHcHEHHEHHEHHHEHHH HH}Hf(YYHHEHHEHEHHtDžzHHEHxHHHHHHHcHEHHEHHEHHHEHuPHHHcHEHHEHHEHHHEHHHHEHxHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYHHEHHEHEHHtDžuHHEHxHHHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYHHEHHEHEHHtDžeHHEHxHHHHHHHcHEHHEHHEHHHEHaHH HH}Hf(YYHHEHHEHEHHtDžUHH(HH}Hf(YYPHEHHEHEHHtDžHHHHEHHHHEHH@HH}Hf(YY HEHHEHEHHtDžILHEHxH HuH}LPLHHHHHHLLLHcHEHHEHHEHHHEH^ct HHH HH}Hf(YYHHEHHEHEHHtDžHH@HHEHHPHHELHEHUHMHxHHHHHHHLHcHEHHEHHEHHHEHDžHX[A\A] @U>cܥL@zRx 7AC LGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @7F &7,717>789] H(8.QV8V8a;h  `C  7!+2=ES]dpy "-5@HS[gpz  (4=IR\cnvfor_init.cfor_initsphdzpakszceaforintceaforbceaforintbceaforcalc_utm_zoneutmforintutmforstplnforintstplnforalberforintalberforlamccforintlamccformerforintmerforpsforintpsforpolyforintpolyforeqconforinteqconfortmforinttmforsterforintsterforlamazforintlamazforazimforintazimforgnomforintgnomfororthforintorthforgvnspforintgvnspforsinforintsinforequiforintequiformillforintmillforvandgforintvandgforomerforintomerforsomforintsomforhamforinthamforrobforintrobforgoodforintgoodformolwforintmolwforimolwforintimolwforalconforintalconforwivforintwivforwviiforintwviiforobleqforintobleqforisinusforinitisinusfor   ' 3? o   K WcO   M Ye 1a   #/   s    s     O  [ g    7  C O 7 g     + O [g   s Gw  # /;   #>n  / ;G!I "   # $ '3 M%} & ) 5A' (O [g ) * ] iu+K ,     -! .H! T!`!!/ " 0X" d"p"" ""#1# 2# # $$3$ 4% %%%5% 6'& 3&?&& &&7' C'O'' ''+( 7(C(( (() )+)F*7v* 8+ ++z+ ++,9- :8- D-P--;. <H. T.`..= / >I/?y/ @/ //Y0A0 B0C0 DN1E~1 F1 11^2G2 H2 22n3I3 J3 33J4 V4b44 445K 6 LM6 Y6e6?7Mo7 N inv_init.o/ 1295031715 7356 20 100664 23928 ` ELF>(8@@ UHATSH`HLLHDžHHE能aHfWf.wIHfWf.w4HHfWf.wHHfWf.w DžHcHHHHIbHfWf.wIHfWf.w4HHfWf.wHHfWf.w Dž DžHcHHHHI-HcHHHHIHH0HHEHH8HHEaHH HH}Hf(YYXHEHHEHEHHtDž4HH(HH}Hf(YYHHEHHEHEHHtDž 4HLHEHUHHHXHHHHHLHcHEHHEHHEHHHEHI3bHH HH}Hf(YYXHEHHEHEHHtDž2HH(HH}Hf(YYHHEHHEHEHHtDž^2HLHEHUHHHXHHHHHLHcHEHHEHHEHHHEH1y0HEHHHHH}IHHHHHH}Hf(YY8HEHHEHEHHtDž0HHHH}Hf(YYHHEHHEHEHHtDž_08YHfWf.HwHHx#?HEHHHHEHHHHcHEHHEHHEHHHEH/uuHcHcHHHcHEHHEHHEHEHHtDž8/HHHEH/HHHH}Hf(YYHHEHHEHEHHtDž.HHHH}Hf(YYPHEHHEHEHHtDž'.HH HH}Hf(YYXHEHHEHEHHtDž-HH(HH}Hf(YYpHEHHEHEHHtDž?-LLHEHUHpHXHPLHHHHHHLLLHcHEHHEHHEHHHEHQ,HHHH}Hf(YYHHEHHEHEHHtDž+HHHH}Hf(YYPHEHHEHEHHtDžf+HH HH}Hf(YYXHEHHEHEHHtDž*HH(HH}Hf(YYpHEHHEHEHHtDž~*LLHEHUHpHXHPLHHHHHHLLLHcHEHHEHHEHHHEH)HH HH}Hf(YYXHEHHEHEHHtDž)HH(HH}Hf(YYHHEHHEHEHHtDž(HLHEHUHHHXHHHHHLHcHEHHEHHEHHHEH'HH HH}Hf(YYXHEHHEHEHHtDžl'HH(HH}Hf(YYHHEHHEHEHHtDž&HLHEHUHHHXHHHHHLHcHEHHEHHEHHHEH6&HH HH}Hf(YYXHEHHEHEHHtDž%HH(HH}Hf(YYpHEHHEHEHHtDžK%HLHEHUHpHXHHHHHLHcHEHHEHHEHHHEH$HHHH}Hf(YYHHEHHEHEHHtDž$HHHH}Hf(YYPHEHHEHEHHtDž#HH HH}Hf(YYXHEHHEHEHHtDž*#HH(HH}Hf(YYpHEHHEHEHHtDž"HH@fWf.zt HEHELLH}HEHUHpHXLPLHHHHHLLLLHcHEHHEHHEHHHEH! HHHHEHH HH}Hf(YYXHEHHEHEHHtDž !HH(HH}Hf(YYpHEHHEHEHHtDž LLHEHUHpHXH}HHHHHLLHcHEHHEHHEHHHEH HH HH}Hf(YYXHEHHEHEHHtDžLHH(HH}Hf(YY`HEHHEHEHHtDžHHEHUH`HXHHHHHHcHEHHEHHEHHHEH, HH HH}Hf(YYXHEHHEHEHHtDžHH(HH}Hf(YY`HEHHEHEHHtDžAHHEHUH`HXHHHHHHcHEHHEHHEHHHEH HH HH}Hf(YYXHEHHEHEHHtDžHH(HH}Hf(YY`HEHHEHEHHtDžHHEHUH`HXHHHHHHcHEHHEHHEHHHEH HH HH}Hf(YYXHEHHEHEHHtDžHH(HH}Hf(YY`HEHHEHEHHtDžHHEHUH`HXHHHHHHcHEHHEHHEHHHEHgHH HH}Hf(YYXHEHHEHEHHtDžHH(HH}Hf(YY`HEHHEHEHHtDž|HHEHUH`HXHHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYXHEHHEHEHHtDžYHH(HH}Hf(YY`HEHHEHEHHtDžHHHHhLHEHUH`HXHhHHHHHLHcHEHHEHHEHHHEHHH HH}Hf(YYXHEHHEHEHHtDžHHEHUHXHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYXHEHHEHEHHtDžHH(HH}Hf(YYHHEHHEHEHHtDžHHEHUHHHXHHHHHHcHEHHEHHEHHHEHjHH HH}Hf(YYXHEHHEHEHHtDžHHEHUHXHHHHHcHEHHEHHEHHHEH]HH HH}Hf(YYXHEHHEHEHHtDžHHEHUHXHHHHHcHEHHEHHEHHHEHPHHHHEHH(HH}Hf(YYpHEHHEHEHHtDžHH`fWf.uzHEHHHH}Hf(YY HEHHEHEHHtDž+HH HH}Hf(YYxHEHHEHEHHDžHEHH@HH}Hf(YY8HEHHEHEHHtDž7HHHHH}Hf(YYHHEHHEHEHHtDžHHPHH}Hf(YY@HEHHEHEHHtDžOHHXHH}Hf(YYPHEHHEHEHHtDž HHH}HuLELpLxL H]HPHD$H@HD$HHHD$H8H$HLLLLHHHHcHEHHEHHEHHHEH ^HHH,HEHHH,HEHH`fWf.ztHEHHHH}Hf(YY0HEHHEHEHHtDž HH HH}Hf(YY8HEHHEHEHHtDžz HH@HHEHHHHHEHEHLHEHUHMHuH}L8L0LUL]HHHHLLLLHLHcHEHHEHHEHHHEHR HH HH}Hf(YYXHEHHEHEHHtDž HHEHUHXHHHHHcHEHHEHHEHHHEHE HH HH}Hf(YYXHEHHEHEHHtDžHHEHUHXHHHHHcHEHHEHHEHHHEH8uPHHHcHEHHEHHEHHHEHHH HH}Hf(YYXHEHHEHEHHtDžhHHEHUHXHHHHHcHEHHEHHEHHHEHuPHHHcHEHHEHHEHHHEHyHHHEHUHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYXHEHHEHEHHtDžiHHEHUHXHHHHHcHEHHEHHEHHHEHHH HH}Hf(YYXHEHHEHEHHtDž\HHEHUHXHHHHHcHEHHEHHEHHHEH^HH HH}Hf(YYXHEHHEHEHHtDžOHH(HH}Hf(YY`HEHHEHEHHtDžHHHHEHHHHEHH@HH}Hf(YY(HEHHEHEHHtDžCLHEHUH(HuH}L`LXHHHHHLLLHcHEHHEHHEHHHEH[ct EHH HH}Hf(YYXHEHHEHEHHtDžHH@HHEHHPHHELHEHUHMHuHXHHHHHLHcHEHHEHHEHHHEHDžH`[A\ @U>cܥL@zRx 7AC JGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @7xE &H7,H71H7>`789`] H7.Q77ah;h  B  7!+2=ES]dpy "-5@HS[gpz  (4=IR\cnvinv_init.cinv_initsphdzpakszceainvintceainvbceainvintbceainvcalc_utm_zoneutminvintutminvstplninvintstplninvalberinvintalberinvlamccinvintlamccinvmerinvintmerinvpsinvintpsinvpolyinvintpolyinveqconinvinteqconinvtminvinttminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvintgvnspinvsininvintsininvequiinvintequiinvmillinvintmillinvvandginvintvandginvomerinvintomerinvsominvintsominvhaminvinthaminvrobinvintrobinvgoodinvintgoodinvmolwinvintmolwinvimolwinvintimolwinvalconinvintalconinvwivinvintwivinvwviiinvintwviiinvobleqinvintobleqinvisinusinvinitisinusinv   " .: g   C O[D   B NZ  P   z   b  n z _     ;  G S    #  / ;  P       5 AM z  V bn'W   w  K    !! "U am # $ ` lx%K &  ' ( &2 I)y * % 1=+ ,H T`  - . ! !"!!/! 0" #"/"" ""F#1v# 2# ##S$3$ 4$ $$`%5% 6% %%v& &&& &'j' v''' ''R( ^(j(( (()7#* 8* **'+ 3+?+^,9, :, ,,k-;- <- --x.=. >.?/ @9/ E/Q//A0 B70Cg0 D0E1 F81 D1P11G 2 HE2 Q2]22I3 JR3 ^3j33 33^4 j4v4U5K5 L5 556M6 N cproj.o/ 1295031715 7356 20 100664 13264 ` ELF>8@@ UHH EH}HuHEHEEEHUHEHHEHEEEHUHEHUHHEMfTf.w3 Ef.wH?HEHHEHEHEEEHEHEEUHH@EMUEYEEEf(YMf(\UQEEUf.UztEEME^EHEHEEUHHPEMUEf.wEYEEEf(YMf(\UEf(YMf(\f(Ef(^Uf(^MMf(\UMXf(^f(YEXEUYUEf(XMHEHEEUHHĀEMH}MYEHEHEMf.w E]EYEEHEKHuH}HEHEEMEYEEf(YM\EMYf(YMEf(^Uf(\MEf(^f(E^Ef(\Uf(^MMf(\UMXf(^f(YEXEYEEEXEEMfTf.sE]3HEH}HEH]HEHEEUHH`EMH}HEHMYEHEHEEf(YXEHEHEHEEEHEHEEYEEf(\UMXf(^f(HEHEMEHEHEEYEf(YX\EEEXEEMfTf.sE]3HEH}HEH]HEHEEUHHpEMU]eH}HEHEHEEXYEf(XMMMYYEMXMMYYEXE^E\EEEXEEMfTf.sHEHE]3HEH}4HEH]HEHEEUHHEMU]emxHpHhHhHEHHEHhHH   H HEHhHH   H HEEYEf(YM\YEHpHhX H HEHhf(YMEYEf(\(HhYYE(X0HhYYEX0EMf(Y8HhXY8f(XM@Mf(YHHhYYH@XPMf(YXHhYYXXPEEf(XHpEYEXxYXMf(YHpf(YMXYXEEf(Y]EYEf(XxMYYEXf(YHpXf(^f(EE\Ef(XHpf(YM^EXYMYXEEf(XME^EHhXEHhMfTf.s ݝ`+HEH}$ݝ`H`H  UHEE fWf.EwE-MfTEM^XH,HEHEHi'H*E\EM^XH,HEHUHHHHHHH*E\EH*Mf(YH*MYXXEE؀}-u u߀HEHEEUHEE MYEfWf.EwE-MfTEEH,HEH*MEf(\f(YEEH,HEH*MEf(\f(YEH*Mf(YH*MYXXEE؀}-u u߀HEHEEUHH0EMUEYEEMYEf(\UMXf(^f(HEHEMEHEHEf(\MY^EEHEHEEUHEfWf.Ew EEEUHH EHEMfTf.M^fTH,H5HEHEE*YEXEM^fTH,H*f.wBMf(^f(H,H*YEXEM^fTH,H*f.wBMf(^f(H,H*YEXEM^fTH,H*f.w?Mf(^f(H,H*YEXE0HEHEE*YEXEHEH}HEHEEUHEMf(YMf(^MYXf(YXf(YXEHEHEEUHEMf(YMf(YMYXf(YXYEHEHEEUHEMYf(YUMYXYEHEHEEUHEEYEf(YMYEHEHEEUHH0EMXE\EEHEHUHEMHUEEHEHUHEMHUEYEEHEHEEUHHPEMU]eEf(YMMMYYEMXMMYYEMXMMYYEXEEHEHEEUHEMX^XH,??Hz>?phi1z-convConvergence error?|=?Hz>phi2z-conv?-DT!??|=@PHI3Z-CONVLatitude failed to converge after 15 iterations@|=@phi4z-convLattitude failed to converge?@@|=@MbP?Y@.A@@cܥL@N@.A@@??-DT!?-DT! @-DT!-DT!@A!T! B!T! =~S!C=~S!п0@?@????????UUUUUU??@f@@?zRx [AC <AC \AC |AC AC AC 8AC iAC %AC < AC \AC |+AC MAC AC |AC XAC <AC <AC \AC |9AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @["0 &,1p>91 H.Qax  "  [[$*/t59?GMRV'8\_ibf %l t z+M6|>X<h"9cproj.ctsincossincosasinzasinmsfnzsqrtqsfnzlogphi1zp_errorphi2zatanpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zone# E l}   I$$ ,$5$JT \ =dSTzdTddl0|U 8Z C_p  /Eg  Ck  $ ,<. 3 8ID 2t;_ |   4  Z |} |     / S t   ^ o  P [  |   I U      % ` , , 4 < L)\:dPdrl\|*6|Wc| |"7Uy|H]r~   Pjv$,44"FP< D L 4T@\Ld @ [`  t   ' _   @  `     6  >  @ ` h "report.o/ 1295031715 7356 20 100664 13256 ` ELF>x@@ UHHH}HuHHtHUHuHHt@HH=HMHUH=UHH0H}HuHUHMH}uHHH}u=HHEu EmHHutH}uWHHEu&HEHHuHHH}uHHH}u=HHEu EHHuqH}uTHHEu#HE8HHuHHEEUHHHt H=HHt H=UHHH}HHtHuHHt<HH=HUH=UHHEHHtHEHEEHHtEHH=HEHEEH=UHH EMHHt8HEHEEHEHEEHHthHH=HEHEEH=HEHEEH=UHHEHHt E YHHtIHMYH=H=UHHEHHt E YHHtIHMYH=H=UHHEHHt E YHHtIHMYH=H=UHHEHHt E YHHtIHMYH=H=UHHEHHt E YHHtIHMYH=H=UHHEMHHt@MYMYHHtpHMYH=MYH=H=UHHEHHt E YHHtIHMYH=H=UHH EMHHt8HEHEEHEHEEHHthHH=HEHEEH=HEHEEH=UHH EH}HHt HEHuHEEHHtIHH=HEHUHEEH=UHHH}HuHHtHUHuHHt@HH=HMHUH=UHHHt HHt3HH5 H=[%s] %s areport-fileOutput file name not specified %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees cܥL@ Longitude of Central Meridian: %lf degrees cܥL@ Latitude of Center: %lf degrees Latitude of Center: %lf degrees cܥL@ Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees cܥL@ Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees cܥL@ 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees cܥL@ Standard Parallel: %lf degrees cܥL@ False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld zRx AC <AC \6AC |uAC AC AC AC AC AC <AC \AC |AC AC AC AC AC [AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @  & , @ 1 >8902 H.Qa    @%(,7>@H  OW^dlsxV6uUu%]  r [report.cterminal_efile_eerr_filefptr_eterminal_pfile_pparm_filefptr_pp_errorprintffopenfprintffcloseinitstrcpyclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblankputcharfputc% /6 @  E @JQ$X$e ov${ @ (  - 2ER @W`k} @    ) @.7B]$i$nu 7   @ 7( X29C  H @MT[m Xw~     @  '9 CJOew    @ \ (!+  0 @5<I\TY (cjo h   @ '0 :AK  P @U\ity  (   @  X:LU _lu    @  #, 6=G  L @QXepu  ( P   @   (( / A PK R W q  t    @    t      ' 1  6 @; B I V ` g l y  '   @    (   @ ` V    U   u@ `  %   ]    r paksz.o/ 1295031715 7356 20 100664 2408 ` ELF>X@@ UHHPEH}HEHfWf.EwHHEH?HEMfTEH.AHEE^EH,HEH}h~(HEH\]1H*EEEf(YME\EH@@HEE^EH,HEH}<~(HEH\]H*EEEf(YME\EEf.w%HEH\]]Mf(YMYXXEYEEMf(^f(EE]HEHEEpaksz-degIllegal DMS fieldpaksz-minpaksz-secN@ @zRx AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ &0,010`>89P  H.Qa    paksz.cpakszp_errorK<    ,    ,WL` &e  j {,TLT sphdz.o/ 1295031715 7356 20 100664 3768 ` ELF>@@ UHH`H}HuHUHMLEH}@HEfTEHEHfTEfWEf.w Ef.w&HUHEHHUHEHHUHEHfWEf.wjHUHEHHUHEHf(\MMQEEMf.MztEEEYEHEHUHEHHUHEHHUHEHafWEf.w/HHEHHHEHHHEH!H}u/HHEHHHEHHHEHH}u2HHEHHHEHHUH˯MXAHH}u2HHEHHHEHHUHMXAHyHHEHHHEHHUH@MXAHGHEHH?HH3EHEH)UH}~3HEHEH}u9HEHHEHHEHHEHHHEHH}u;HEHHEHHEHHEHHEHHEHqH}u6HEHHEHHEHHEHHHEH4HEHHEHHEHHEHHHEHTXAGITXAISXA`TXATXATXASXA@TXA@TXAbXTXA'1SXAu SXA@TXATXATXA@TXATXATXATXA@MXAMXA˯MXA@TXA333?XA ?XA+?XA ?XAd?XAIF?XA؁s?XA =?XA?XAp=:H?XA~!?XA1?XA?XAoT?XA?XA4?XAX?XAp'?XAR_?XA@MXAMXA˯MXAX9\?XAINFORMATIONALInvalid spheroid selectionReset to 0?zRx AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @X H &x ,x1X>89 H.Q>>a P  0 (   sphdz.cmajorminorsphdzsqrtp_error3<P<uLL ao}l8F     )      0 L _ m   untfz.o/ 1295031715 7356 20 100664 2176 ` ELF>@@@ UHH H}HuHUH}xtH}mH}xfH}_HUHMHHHHHHHEHHEfWf.ztHEM!HEHEHE?y1s- AcܥL@?;pjځ?u:?X%? @?(? @U>?xV42?:RFߑ? @?B?ׁ??untfz-codeUncompatable unit codesuntfz-unitIllegal source or target unit codezRx AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ &  , 1 S>x89h H.Qa      untfz.cfactorsuntfzp_errorK m r  w # 0 gctp.o/ 1295031715 7356 20 100664 7880 ` ELF>@@ UHH0H(H HHLLHEHEHEpHHE H0HEH8HM(HUHcHEpHHEpHHtDžl HHHEHEHHEHHEHHEHHEHHEHHEKHUHMHHH)HHHUHMHHH)HHHEH}~HEH}d4HEHEHH HHH HHHHH9uRH HHHHH9u1H HHH HH9uH HHu HEaHEPH HHMHHH)H HEHHf.uz HE HEH} ~HE8HHHE8HHHE@HH9uCHE8HHHEXHH9u(HE8HHHE8HH9u HE8HHu HE[HEJHE8HHMHHH)H HEHHEHf.uz HE HEH} ~H HHxH HHd~)HEpHDžW HE8HHx HE8HHd~)HEpHDž HHHEHHHu(H HHuHHHuHEHHHuoH HHu_HHHuOHHDž ףpDž= ףHHH HHHH?HH)HHHEH HHu#HUH}HcHEpH!HUH}HcHEpHH HHuHHEHHEpHHtDžH(EYEH(HEYEH}H HH HHH HHHHH HHHHHE:H HHuHEHHHHHH)HHHEH}~H HH`HE#HUHEHHHH0HEH}~ָH0H8HHHuHfWf.ztjHHHHHHH-H*Y0HHHxHAH89HH8&HHH0HHHH8HH8HLH LHUhHM`H0HD$HEpH$IIHHLL߸ZHH8HLH LHUhHM`HHD$HEpH$IIHHLL߸HEpHHtDžH HHuHEHEHEHEvH HH HuH}HEHUHHHHEpHHEpHHtDžQH}EHE8HHE8HHHE8HHEXHHHE8HHE@HHHE4HE8HHuHEHHEHHHHH)HHHEH}~HE8HH:HE HUHEHHEHHH0HEH}~ٸH0H8HEHfWf.zthHEHHH0HEHHH8 HEHHH0HEHHHH8HEXH8HE@LHE8LHUhHM`H0HD$HEpH$IIHHLL߸NHEXH8HE@LHE8LHUhHM`HuHHD$HEpH$IIHHLL߸HEpHHtDžHE8HHuHUHE0HHU0HHEHwHE8HH Hu0HHEHUH}0HHHHEpHHEpHHtDžbHEPHHEHEXHHu"HE8HHuHEPHHuHEHEXHHufHE8HHuYHEPHHuLHE@HDž ףpDž= ףHHH HHHH?HH)HHHEHE8HHu#HUHuHcHEpH!HUHuHcHEpHHE8HHu HUPHEHHE0EYHE0HU0HHE0HEYDžGCTP-INPUTInsys is illegalGCTP-OUTPUTOutsys is illegal.AzRx  AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.eh_frame.comment.note.GNU-stack @ @p &` 0 ,x 1H>89 H .QNNa   0 (`((#@9()<(0?(6 X/;CX/Au(K`r( U Z_gmxgctp.citerNADUTinpjindatinznoutpjoutdatoutznpdinpdoutinv_transfor_transgctpinitp_erroruntfzclose_fileinv_initpakr2dmfor_initl  `  @9 <  ?;  ^ C  `  X   ? < @9. C     ( 3   `   <p u uH u @9 < ?2 C  c `r  `r  3 `r C j    br_gctp.o/ 1295031715 7356 20 100664 1528 ` ELF>@@ UHHH}HuHUHMLELMHUHMHuH}LUL]HEhHD$XE`D$PEXD$HHEPHD$@HEHHD$8HE@HD$0HE8HD$(HE0HD$ HE(HD$HE HD$HEHD$HEH$IIHHLL߸zRx AC GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rela.text.data.bss.rela.eh_frame.comment.note.GNU-stack @ &,681 @8.IffY   br_gctp.cgctp_gctp hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibMAC.a0000644000175000017500000172320012024715435020726 0ustar amckinstryamckinstry! #1/20 1295536343 505 505 100644 3316 ` __.SYMDEF SORTED"FEPE_E 8 8"!".>(8>(E[HO[H\eqXzX88ppHHf-n-v--  H H>H >HH"HG8@--.T7TCbpLbpXsasmv@@  XXxx- ,7nEyEnpnp|| (4@=@IR^hhhu%8%8-99v`v`--$f--4;BӨӨ "-I--,'84'8?H8GH8PRq Zq ezmzx``00 n-  -;;\P\P~~-V]}( (+X3X>HHHUH_Hlt$$..::(_alberfor_alberforint_alberinv_alberinvint_alconfor_alconforint_alconinv_alconinvint_azimfor_azimforint_aziminv_aziminvint_bceafor_bceaforint_bceainv_bceainvint_ceafor_ceaforint_ceainv_ceainvint_eqconfor_eqconforint_eqconinv_eqconinvint_equifor_equiforint_equiinv_equiinvint_gnomfor_gnomforint_gnominv_gnominvint_goodfor_goodforint_goodinv_goodinvint_gvnspfor_gvnspforint_gvnspinv_gvnspinvint_hamfor_hamforint_haminv_haminvint_imolwfor_imolwforint_imolwinv_imolwinvint_Isin_for_free_Isin_for_init_Isin_fwd_isinusfor_isinusforinit_Isin_inv_Isin_inv_free_Isin_inv_init_isinusinv_isinusinvinit_lamazfor_lamazforint_lamazinv_lamazinvint_lamccfor_lamccforint_lamccinv_lamccinvint_merfor_merforint_merinv_merinvint_millfor_millforint_millinv_millinvint_molwfor_molwforint_molwinv_molwinvint_obleqfor_obleqforint_obleqinv_obleqinvint_omerfor_omerforint_omerinv_omerinvint_orthfor_orthforint_orthinv_orthinvint_polyfor_polyforint_polyinv_polyinvint_psfor_psforint_psinv_psinvint_robfor_robforint_robinv_robinvint_sinfor_sinforint_sininv_sininvint_somfor_somforint_sominv_sominvint_sterfor_sterforint_sterinv_sterinvint_stplnfor_stplnforint_stplninv_stplninvint_tmfor_tmforint_tminv_tminvint_utmfor_utmforint_utminv_utminvint_vandgfor_vandgforint_vandginv_vandginvint_wivfor_wivforint_wivinv_wivinvint_wviifor_wviiforint_wviiinv_wviiinvint_for_init_inv_init_adjust_lon_asinz_calc_utm_zone_e0fn_e1fn_e2fn_e3fn_e4fn_mlfn_msfnz_pakcz_pakr2dm_phi1z_phi2z_phi3z_phi4z_qsfnz_sign_tsfnz_tsincos_cenlat_cenlon_cenlonmer_close_file_genrpt_genrpt_long_init_offsetp_origin_p_error_pblank_ptitle_radius_radius2_stanparl_stparl1_true_scale_paksz_sphdz_untfz_gctp_gctp_#1/20 1295536313 505 505 100644 5476 ` alberfor.o8 `T__text__TEXTT lÀ__picsymbolstub1__TEXT8 __cstring__TEXT`j __literal8__TEXT $__bss__DATAH__la_symbol_ptr__DATA8 4D$\ P  |! |> xB>^~؞ؾ<_8B8<_8B@<_8B0ɾ *<_8BA<_8B<_8B<_8Bɢ<_8B $`ɾ``2<_h(h>hH<_8B8x8^>|x|FxHIxp<_8Bɾxɞ @h``HX<_8Bɾxɞ @h``H@8x8^>|x|FxH<_8Bɾxɞ @h``H-P<_8Bɾxɞ @h``Ha88x8^>|x|FxHa<_8Bɾxɞ @h``HHɾ (<_8BAPH$<_8bH<_8H98Hh<_8B(pɾXX2<_8B(ɢ@ 2 *<_8B<_8Bɂ<_8B(ɢH 2 ( H<_8B2<_8B( $<_8B <_8bH<_8Bɢ<_8B h@H>^Hq<_8B0 H>Hu<_8B8ɢ<_8B@ h@Hq8H@ɾXX2ɾPP 2(ɾ8@ ( $<_8B(K|x!|N |!p|> xB>h^p8P8^X>p|x|FxH%<_8BɾPɞX @h``HH<_8Bɂ<_8B,ɢH 2 ( H <_8B2<_8B, $8<_8B4ɢhh( H%<_8B, 2@>@H%82<_8B< *^<_8B$>@H8 2(<_8BD *^8|x!|N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA=|׽?TXPXD8ë,8(8$PP<ë@@,ëHH4@@,ë|@x@,p(l(`ëD0@0<ë@@(ëX|X@tPpP8ldëXHTH0PDë4 0 ($ ë8 8 @@(ë@@(((((@@(|@x@(hëd`\`X`HDС@С$ë00ë00ë00pëT0P0Dë(0$0ë00ëءء    С|С`H\H0PXLX@@P<P8HH((t l TL 4Ȭ,<ȫ XthhHH((tlTL4Ȭ,ȫ 84P0P,P(P$P PPPPP PPPP      PXH 0@(8fO?Fq7T1z]_alberforint_alberfordyld_stub_binding_helper_sqrt_ptitle_msfnz_offsetp_cos_radius2_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_sin_qsfnz_false_easting_false_northing_lon_center_r_major_r_minor_e3_ns0_c_rh#1/20 1295536314 505 505 100644 6932 ` alberinv.o8  T __text__TEXTT __picsymbolstub1__TEXT T< __cstring__TEXT n 4__literal8__TEXT P@ __bss__DATA P__la_symbol_ptr__DATA <  P  8|! |> xB>^~؞ؾ<_8B <_8B <_8B ɾ *<_8B 8A<_8B <_8B <_8B ɢ<_8B  $`ɾ``2<_ @h(<_8B <_8B  H<_8B 8p8^x>|x|FxHph<_8B ɾpɞx @h``H X<_8B ɾpɞx @h``H=@8p8^x>|x|FxH=<_8B ɾpɞx @h``HP<_8B ɾpɞx @h``H88p8^x>|x|FxH<_8B ɾpɞx @h``HHɾ (<_8B 8APH$<_8b <_8 H8Hh<_8B hɾXX2<_8B ɢ@ 2 *<_8B <_8B ɂ<_8B ɢH 2 ( H <_8B 2<_8B  $<_8B <_8b H <_8B ɢ<_8B  h@HI>^H<_8B  H>H<_8B ɢ<_8B  h@H8H@ɾXX2ɾPP 2(ɾ8@ ( $<_8B K|x!|N |!p|> xB>h^p8X<_8Bɢhh(h<_8Bɢp(<_8B *p<_8Bɢ<_POAlɾhh2ɾpp 2 * H=PP<@8`^@~D8@8`^8~<ɾP<_P@LHDɾhh2ɾpp 2 * HP<@?8`^@~DKH0ɾ@h2ɾ@p 2 `@H18<_8BɢP2<_8B $@<_8Bɂɾ@@ 2(<_8B $H<_8Bɢ<_8B8OA@<_8B8X ^H|xH^X/A0H<_8Bɢ<_Xh(<_`2<_8Bɢ<_Xh(<_8Bɢ<_X * $ H2<_8B$<_X *@@H (<_8B8A ɾH<_POAHH<_8B8X ^H|xH^X/A$XxH><_8BH <_8Bɢ8h$<_8B * H^8xH(><_8B@ K^X^xHx|x!|N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREA=|׽?=|׽?!TD-!TD-? h( h@(ët (p (` (\ (P p(L pH( ë ( ( x( xP( `( `8( ( X( ( (ë (| X(t (p (h (d X(\ (X (P (L `(D (@ X(8 (4 (ë ( ( `( `8( ( ( ( ( ( ( С( С( (| (p,ë x( xP(ë x( xP( ( (t (p (` (\ (H (D (  ë      xël h  dXëH ءD ء < С8 С 4ë0 4, 4 $     С С ë          |ëx $t $ p l X PT P 88ë  ë  ë  ëh d Xë< 8 ,ë  ë     X X @ С С  ء ء  ء ء  С С  P| P 8` \  P L  @ <   ȡ Ȭ ȡ ȫ ġ  ġ   8 t hl T hT HL p H4 (,  (      Ȭ ȫ    t hl 4hT HL PH4 (, l(  8P4P0P,P(P$P PPPPP PPPP             m7DKx]<T1d_alberinvint_alberinvdyld_stub_binding_helper_sqrt_log_ptitle_msfnz_offsetp_radius2_phi1z_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_atan2_qsfnz_false_easting_false_northing_lon_center_r_major_r_minor_es_e3_ns0_c_rh#1/20 1295536314 505 505 100644 7396 ` alconfor.o8  dT __text__TEXT8T j__picsymbolstub1__TEXT@ L0 __cstring__TEXT  __literal8__TEXT ,__bss__DATA __la_symbol_ptr__DATA x0    P  ,|!p|> xB>X^`~h؞p<_8B X<_8B `<_8B h<_8B p<_9" <_8B  <_9" <_8B  <_8B D8<_8B H>HH}<_8B <<_9" <_8B  <_9" <_8B  <_9" <_8B  <_9" <_8B  <_9" <_8B  (<_9" <_8B  0<_9" 8@8`Ii <_9" <_8B  <_9" <_8B  <_9" <_8B  <_9" <_8B  (<_9" <_8B $ 0<_8B  H<_8B < 28<_8B ɢ<_8B ,*<_ 4 $ H<_ɢ <8(ɾ8<_ < *$<_8B <ɢ<_ 4 $ `@H2 Hm*<_8B , (@>@<_8 ,<_8 4H<_8b Hm<_8B ɢ<_8B  h@H<_8B  H5<_8B  H<_8B ɢ<_8B  h@H8|x!|N |!|> xB>^(,<_8Bɢh( Hq88^>|x|FxH>H<_8B 2ɾ<_8B*<_ $ H<_ɢ(ɾ<_ *$<_8Bɢ<_ $ `@H2 H*<_8B (H88^>H|x|FxH<_8Bɢ2<_8Bɢ2 2 *ɾ<_*<_h$ɾ2 2<_8Bɢ2<_8Bɢ2 2( 2*@ɾ2ɾ 2 *<_8B<_8B4T8|@x<_8B<_8BlT8|@p<_8BB8<_8B4T8|@h<_8BB8<_8BlT8|@`88Hɾ@x2h *Xɾ@p2` *P<_8BB8@<_8BB8|P<_8B4T8|@ɂɾx 2 (h<_8BB8|P<_8BlT8|@ɂɾp 2 (`XxPp^888<_8BB8@Px 2hPp 2`XxPpɾx2ɾp 2(h*<_8B2<_8B$ *^(ɾx2ɾp 2*`*<_8B2<_8B, *^,8|x!|N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N ALASKA CONFORMAL9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO?!TD-@??!TD-@? С С,   ȡ ȡ$  4 `0 `  l ` ` ء ء4 ` ` ` `4 0 l$ ` ` ء ء4 ` `  l ` ` ء ء4 ` `\ HX HH PD P h h p p P P H Hë ` `ë| hx hp Xl X` p\ pL pH p<ë0 h, h ` ` X Xë  dëT СP С H ȡD ȡ @ë4 0 ,ë  ë    ë  ë P P 4 H H , H H ,ë P P 4 X X <x Xt X <d X` X <TëH PD P 48 H4 H ,, (  X X <ë   @ @ $    8 8     0 0     ( (         l h  \ X  T ءP ء D @  < ء8 ء , (  $ ء ء    ء ء    ء ء    ء ء  X X <ë   ` ` D    | ءx ء t p d С` С T ȡP ȡ D @ 4 0 t l T L  4 h, 4 h H P H ( l (      Ȭ ȫt l T L 4 |h, |h xH x0H,P(P$P PPPPP PPPP       ` X   H PmgQy?7H1bY_alconforint_alconfordyld_stub_binding_helper_sqrt_ptitle_offsetp_radius2_cenlat_tsincos_tan_atan_adjust_lon_cenlon_pow_sin_r_major_r_minor_false_easting_false_northing_lon_center_lat_center_n_e_acoef_bcoef_sin_p26_cos_p26 #1/20 1295536314 505 505 100644 9756 ` alconinv.o8 T__text__TEXT T@π__picsymbolstub1__TEXT 4 < __cstring__TEXT>__literal8__TEXTT__bss__DATA__la_symbol_ptr__DATA<"#$ P #|!p|> xB>X^`~h؞p<_8BX<_8B`<_8Bh<_8Bp<_9"<_8B <_9"<_8B <_8B8<_8BH>HH <_8B<_9"<_8B <_9"<_8B <_9"<_8B  <_9"<_8B <_9"<_8B (<_9"<_8B$ 0<_9"<8@8`Ii <_9"<<_8B, <_9"<<_8B4 <_9"<<_8B< <_9"<<_8BD (<_9"<<_8BL 0<_8B H <_8B 28<_8Bɢ<_8BT*<_\ $ H m<_ɢd8(ɾ8<_d *$<_8Bɢ<_\ $ `@H 2 H M*<_8BT (@>@<_8t<_8|H <_8bH <_8Bɢ<_8B h@H I<_8B H <_8B H A<_8Bɢ<_8B h@H 8|x!|N |!`|> xB>H^Pȑ<_8B lɢHh(<_8B L $H<_8B tɢPh(<_8B L $PHP88* ɾ2ɾ 2 *<_8B <_8B |T8|@<_8B <_8B T8|@<_8B B8<_8B |T8|@<_8B B8<_8B T8|@<_8B <@C0=?ɩ l\^XXh( 2<_8B <@C0=?ɩ ld^``h( 2<_8B B8<@C0=?ɩ ll^hhh( 2<_8B B8<@C0=?ɩ lt^pph( 28`|x|FxHa<_8B \^X<_8B OA\ɾ0<_8B 2ɾ82<_8B 2X $ * HiP88P@>@H<_8B  2(ɾP<_8B *<_ $ Hɾ(<_ *=?ɩ ( ($<_8B ɢ<_ $ `@H2 H*<_8B (@ (Hɾ@H *@^8888/@HH$<_8B d^8H<_8b 0<_8 PH8HH<_8B A^@ɾ8m2<_8B ɢX202<_8B ɢ28 2 ( X@H<_8B \ * Hy^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|x}N |B}h=k|\}N |B}h=k|@}N ALASKA CONFORMALToo many iterations in inversealcon-inv9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO?!TD-@?=|׽?!TD-C0@? ë   \ ë d `  H D     ë   P ԡ ԡ 0   d    | lë \ X  P L  < 8  0 ,  ë           ë     |  d `  H D \ @ ë    ë    ë   P ԡ ԡ 0 XX  hd PL $   |    tXpX `\ 8 4 |$      lh XT 0,     XX    | X|X tp \ X |PL  L t L ldëTPHD@ë40,ë ëëë|tppTëxx\xtdd`dTëHxDx\8p4pT,(ëhhLXX<``DXX<XX<XX<PP4XX<HH,XX<lXhX<\@X@$T P D8@8< 8 ,0(0$   ((          ë|xtpd`TPD@40@\hxhtܡHlܡHTء(Lء(4ԡ,ԡС  С ̡ Ȭ̡ ȫȡ ȡ ġ ġ<  hX ht Hlt HT (L (4 ,   8P4P0P,P(P$P PPPPP PPPP X}?wXFn7O1i`_alconinvint_alconinvdyld_stub_binding_helper_sqrt_ptitle_asinz_offsetp_radius2_cenlat_tsincos_tan_p_error_atan_adjust_lon_cenlon_pow_atan2_sin_r_major_r_minor_false_easting_false_northing_lon_center_lat_center_n_e_acoef_bcoef_sin_p26_cos_p26 #1/20 1295536314 505 505 100644 4220 ` azimfor.o8 T__text__TEXTT__picsymbolstub1__TEXT ,0 __cstring__TEXT Ut__literal8__TEXTx __bss__DATA8__la_symbol_ptr__DATA0  lt P  |!|> xB>8^@~H؞PؾX<_8B8<_8B@<_8BH<_8BX<_8BP>H<_8<_8H<_8bH<_8B H<_8B H<_8B H<_8Bɢ<_8B h@H8|x!|N |!|> xB>^А<_8Bɢh( Hy`8h8^p>|x|FxH>`HqX<_8Bɢh2<_8Bɢp2X 2 *HH<_L (<_8B<A>HH8>8H8h$P<_8BɢP2p2>`H2<_8B *^<_8BɢPm2<_8Bɢh2<_8Bɢp2X 2 (2<_8B *^8H<@?8`^P~TɾH<_TAK(<_8Bɢ<_8BD 2@8x>@^D@|x<_8}%Kx}FSx Hq8x|x<_80H=8{H|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N AZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-for=|׽@ !TD-?dë`l<\l0<Pë@8<<8<<D< ȡ<ȡ<<T<<<<<<<tȡ<pȡ<\<X<Lë0ȡ<,ȡ<ëx<x<<<L<<<<<hëTС<PС<ëëءءëССëȡȡë  ëtpd`TءPءDС@С4ȡ0ȡtġlġTL4Ȭ,ȫ ,hHhHdH((tlTL4Ȭ,ȫ ,P(P$P PPPPP PPPP        WfRIy/q7]_azimforint_azimfordyld_stub_binding_helper_ptitle_sprintf$LDBLStub_offsetp_cos_acos_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_sin_r_major_lon_center_lat_origin_false_northing_false_easting_sin_p12_cos_p12 #1/20 1295536315 505 505 100644 4772 ` aziminv.o8  T__text__TEXTT <__picsymbolstub1__TEXT4d0 __cstring__TEXT`5__literal8__TEXT __bss__DATA8__la_symbol_ptr__DATA0    P D|!|> xB>8^@~H؞PؾX<_8B8<_8B@<_8BH<_8BX<_8BP>H<_8<_8H<_8bHHa<_8B H<_8B H<_8B H<_8Bɢ<_8B h@HA8|x!|N |!p|> xB>h^p<_8Bɢhh(h<_8Bɢph(pɾhh2ɾpp 2 * HAH<_8Bɢ<_8B\2HAl<_8BɢHh$@8P8^X>@|x|FxHa<_8B^H<_8BdOAH$<_8b<<_8PHu8}xH\ɾX<_8B2ɾPp2<_8B2H $ * H^<_8B<_8Bl (88<_8BdOA|H$<_8B^8xHX^ H<_8B 2(88<_8BdA(H<_8Bɢ<_tOAL<_8BhP ^pH}( HM^8xHpP>h@HA<_8B * H^8xHɾPh2<_8B2ɾ8H 2 `@H<_8B * H^8xH0h<_8BdAKx8@^xHx|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N |B}h=k|`}N |B}h=k|D}N |B}h=k|(}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N AZIMUTHAL EQUIDISTANTInput data errorazim-inv@ !TD-=|׽?!TD-<d<lë\<X<Lë,<(<ë<<ë<<x<tt<l<h<T<Pd<4<0<$ë<<<d<<l<<<ë<|<d<`<LëH<DP<@x<<x<<$< d<<<ë<<<\<<<ël<h<T<P<ëëëëë``Hëtpd`TPD@40tHlHT(L(4ܡ,ܡء ءԡȬԡ ȫСС(̡̡Dȡhȡ`htġHlġ|HT(L(4, ,P(P$P PPPPP PPPP        z=VDri5a/M_aziminvint_aziminvdyld_stub_binding_helper_sqrt_ptitle_asinz_offsetp_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_atan2_sin_r_major_lon_center_lat_origin_false_northing_false_easting_sin_p12_cos_p12#1/20 1295536315 505 505 100644 5284 ` bceafor.o8 T__text__TEXTT__picsymbolstub1__TEXT@T( __cstring__TEXT@__literal8__TEXTX __bss__DATA\__la_symbol_ptr__DATAx(  t P  $|!p|> xB>H^P~X؞`ؾhp<_8BH<_8BP<_8BX<_8B`<_8Bp<_8Bh<_8Bɢ<_8B $8ɾ882<_Dh(<_8B<_8B H<_8B<_8Bɢ<_8B<A<_8B8H<_8B8H<_8B H)<_8B<_8B H<_8B<_8B<_8Bɢ<_8B2<_8B2<_Dh( H)$<_8B<_8b$HI<_8Bɢ<_8B h@H<_8B H<_8B H<_8Bɢ<_8B h@H8|x!|N |ۡ!p|> xB>X^`<_8BɢXh( HH>`H@<_8BH/A<_8BɢH2<_8B02<_8B( *^<_8Bɢ@2<_8B0$<_8B  *^HL<_8Bɢ<_h(<_8Bɢ@2@2<_h(@h$<_8Bɢ<_2<_h$<_8Bɢ@2<_h(<_8Bɢ@2<_ * $ H2*28<_8Bɢ<_8B@2H2<_8B( *^<_8Bɢ82<_8B@*$<_8B  *^8|x!|ˡN |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N Cylinderical Equal Area>h??СС @|ءxء(d`@XT<ë,h(h hhhhpphhhhpСlС `\0LH4ء0ء($ 0 HëhëXСTСLءHءDë8ȡ4ȡ0ë$ ë ë@@$ë``D|ëpȡlȡd`XëLȡHȡ84$ X X<ë``Dءء|СxСlȡhȡ\XLH<84(,t( ȬȫthlhTHL8H4|(,|T(x xp$P PPPPP PPPP dYK5B:Pp/u_bceaforint_bceafordyld_stub_binding_helper_sqrt_log_ptitle_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_ind_cosphi1_sinphi1_kz #1/20 1295536315 505 505 100644 6684 ` bceainv.o8  T__text__TEXTT U__picsymbolstub1__TEXT`, __cstring__TEXT T__literal8__TEXTX l__bss__DATAt__la_symbol_ptr__DATAp,    P P|ۡ!`|> xB>H^P~X؞`ؾhp<_8B|H<_8BP<_8BX<_8B`<_8Bp<_8Bh<_8Bɢ<_8B| $8ɾ882<_h(<_8B<_8B H<_8B<_8Bɢ<_8B 2<_8B<_8Bɢ<_8B 2<_8B<_8Bɢ<_8BA<_8B8<_8Bɢ<_h(<_8Bɢ<_h(<_h$<_8Bɢ<_2<_h$<_8Bɢ<_h(<_8Bɢ<_ * $ H2*2<_8BH0<_8B8<_9"<@@8`IiH<_8B H<_8B<_8B H<_8B<_8B<_8Bɢ<_8B2<_8B2<_h( H$<_8B<_8bH<_8B|ɢ<_8B h@H<_8B H <_8B Hu<_8Bɢ<_8B h@Hq8|x!|ˡN |!|> xB>H^P<_8B ɢHh(H<_8BɢPh(P<_8B4/A<_8BɢP2<_8B $ He^<_8Bɢ<_8B2Hh$<_8B * H^HP*<_8B$2<_8Bɢ<_8B, 2 $ H8<_8Bɢ<_|$<_8Bɢ<_8BT 2*<_8Bɢ<_8B\ 2*8* H=28*<_8Bɢ<_8Bd2<_8Bɢ<_8Bl 2*ɾ8<_ 2 H2*<_8Bɢ<_8Bt2ɾ8<_ 2 H2*^<_8Bɢ<_8B$2Hh$<_8B * H)^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N Cylinderical Equal Area>h?? ` `?B*B*?[[?U?-m@@@XëHСܬDСܫ0 ܬ, $ܫ$ܬ ëhܬhܫPܬPtܫȡܬȡë`ܬ`ܫHܬHlܫȡܬȡܫ@ܬ@dܫ|ܬxdëH8ܬD8\ܫ<ȡܬ8ȡܫ(0ܬ$0TܫܬܫXܬ X|ܫܬë ܬ ,ܫܬܫ ܬ $ëСܬСܫ|ܬxܫpܬl\ëLܬHܫ8ܬ4ܫ$ ܬ 4ܫ ܬܫܬ ë$|$t$p$lë`ء$\ء$XëLС$HС$Dë4$0$($$|$ ë$$ $ $ë $ $$$$$$$$$$$ëء$ء$$$ëtء$pء$X $T $H $D $8 $4 $ ë $  $$$ $ $$$ $ $($($$$ $ $ $ $$$ $ $$$| $x $h$d$\$X$Pȡ$Lȡ$@$<$4$0$($$$$$ $$$$ë$$$$ $ $$|$$$$$$$tء$pء$dС$`С$T$P$D$@|$TL4Ȭ,ȫ h hH<H(X(t|l|tTxLx4tȬ,tȫp p(P$P PPPPP PPPP   duYK5B:Pp/{_bceainvint_bceainvdyld_stub_binding_helper_sqrt_log_ptitle_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_asin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_e_p4_e_p6_ind_qp_cosphi1_sinphi1_kz#1/12 1295536316 505 505 100644 5276 ` ceafor.o8 T__text__TEXTT__picsymbolstub1__TEXT@T( __cstring__TEXT@__literal8__TEXTX __bss__DATA\__la_symbol_ptr__DATAx(  t P  $|!p|> xB>H^P~X؞`ؾhp<_8BH<_8BP<_8BX<_8B`<_8Bp<_8Bh<_8Bɢ<_8B $8ɾ882<_Dh(<_8B<_8B H<_8B<_8Bɢ<_8B<A<_8B8H<_8B8H<_8B H)<_8B<_8B H<_8B<_8B<_8Bɢ<_8B2<_8B2<_Dh( H)$<_8B<_8b$HI<_8Bɢ<_8B h@H<_8B H<_8B H<_8Bɢ<_8B h@H8|x!|N |ۡ!p|> xB>X^`<_8BɢXh( HH>`H@<_8BH/A<_8BɢH2<_8B02<_8B( *^<_8Bɢ@2<_8B0$<_8B  *^HL<_8Bɢ<_h(<_8Bɢ@2@2<_h(@h$<_8Bɢ<_2<_h$<_8Bɢ@2<_h(<_8Bɢ@2<_ * $ H2*28<_8Bɢ<_8B@2H2<_8B( *^<_8Bɢ82<_8B@*$<_8B  *^8|x!|ˡN |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N Cylinderical Equal Area>h??СС @|ءxء(d`@XT<ë,h(h hhhhpphhhhpСlС `\0LH4ء0ء($ 0 HëhëXСTСLءHءDë8ȡ4ȡ0ë$ ë ë@@$ë``D|ëpȡlȡd`XëLȡHȡ84$ X X<ë``Dءء|СxСlȡhȡ\XLH<84(,t( ȬȫthlhTHL8H4|(,|T(x xp$P PPPPP PPPP bWI3@8Nn-s_ceaforint_ceafordyld_stub_binding_helper_sqrt_log_ptitle_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_ind_cosphi1_sinphi1_kz #1/12 1295536316 505 505 100644 6676 ` ceainv.o8  T__text__TEXTT U__picsymbolstub1__TEXT`, __cstring__TEXT T__literal8__TEXTX l__bss__DATAt__la_symbol_ptr__DATAp,    P P|ۡ!`|> xB>H^P~X؞`ؾhp<_8B|H<_8BP<_8BX<_8B`<_8Bp<_8Bh<_8Bɢ<_8B| $8ɾ882<_h(<_8B<_8B H<_8B<_8Bɢ<_8B 2<_8B<_8Bɢ<_8B 2<_8B<_8Bɢ<_8BA<_8B8<_8Bɢ<_h(<_8Bɢ<_h(<_h$<_8Bɢ<_2<_h$<_8Bɢ<_h(<_8Bɢ<_ * $ H2*2<_8BH0<_8B8<_9"<@@8`IiH<_8B H<_8B<_8B H<_8B<_8B<_8Bɢ<_8B2<_8B2<_h( H$<_8B<_8bH<_8B|ɢ<_8B h@H<_8B H)<_8B Hu<_8Bɢ<_8B h@H8|x!|ˡN |!|> xB>H^P<_8B ɢHh(H<_8BɢPh(P<_8B4/A<_8BɢP2<_8B $ H^<_8Bɢ<_8B2Hh$<_8B * H^HP*<_8B$2<_8Bɢ<_8B, 2 $ H 8<_8Bɢ<_|$<_8Bɢ<_8BT 2*<_8Bɢ<_8B\ 2*8* H]28*<_8Bɢ<_8Bd2<_8Bɢ<_8Bl 2*ɾ8<_ 2 H2*<_8Bɢ<_8Bt2ɾ8<_ 2 H2*^<_8Bɢ<_8B$2Hh$<_8B * HI^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N Cylinderical Equal Area>h?? ` `?B*B*?[[?U?-m@@@XëHСܬDСܫ0 ܬ, $ܫ$ܬ ëhܬhܫPܬPtܫȡܬȡë`ܬ`ܫHܬHlܫȡܬȡܫ@ܬ@dܫ|ܬxdëH8ܬD8\ܫ<ȡܬ8ȡܫ(0ܬ$0TܫܬܫXܬ X|ܫܬë ܬ ,ܫܬܫ ܬ $ëСܬСܫ|ܬxܫpܬl\ëLܬHܫ8ܬ4ܫ$ ܬ 4ܫ ܬܫܬ ë$|$t$p$lë`ء$\ء$XëLС$HС$Dë4$0$($$|$ ë$$ $ $ë $ $$$$$$$$$$$ëء$ء$$$ëtء$pء$X $T $H $D $8 $4 $ ë $  $$$ $ $$$ $ $($($$$ $ $ $ $$$ $ $$$| $x $h$d$\$X$Pȡ$Lȡ$@$<$4$0$($$$$$ $$$$ë$$$$ $ $$|$$$$$$$tء$pء$dС$`С$T$P$D$@|$TL4Ȭ,ȫ h hH<H(X(t|l|tTxLx4tȬ,tȫp p(P$P PPPPP PPPP   i@^P3G8Uu-z_ceainvint_ceainvdyld_stub_binding_helper_sqrt_log_ptitle_asinz_offsetp_cos_radius2_cenlonmer_adjust_lon_sin_true_scale_r_major_r_minor_lon_center_lat_truesc_false_northing_false_easting_es_e_e_p4_e_p6_ind_qp_cosphi1_sinphi1_kz#1/20 1295536316 505 505 100644 7284 ` eqconfor.o8  hT __text__TEXTT @5__picsymbolstub1__TEXT` 4L __cstring__TEXT @N __literal8__TEXT  __bss__DATA x__la_symbol_ptr__DATA L Hx%4( P&|! |> xB>^~؞ؾ<_8B <_8B <_8B <_8B (<_8B 0<_8B ɢ<_8B  $hɾhh2<_ h(<_8B <_8B  H<_8B <_8B  H=<_8B <_8B  H<_8B <_8B  H<_8B <_8B  H<_8B 8p8^x>|x|FxH)<_8B ɾpɞx @h``HE`<_8B b<_8B ɢ<_8B ɂ<_8B  X@h``ȾHP8/AHɾ *<_8B xA8p8^x>|x|FxHe<_8B ɾpɞx @h``HX<_8B b<_8B ɢ<_8B ɂ<_8B  X@h``ȾHQHɾ (<_8B xOA^H<_8B  HY>H<_8B 0ɢ<_8B ( h@HH|<_8b dH]<_8B ɢ<_8B  h@H>H<_8B  H>Hu<_8B 0ɢ<_8B ( h@H18Ȁ|x!|N |!p|> xB>h^p<_8Bb<_8Bɢ<_8Bɂ<_8B X@h``ȾpHUX<_8BɢX(<_8B| 2H<_8Bɢhh( H<_8B 2P>PHH2<_8B *^<_8Bɢ<_8B*>PHH 2(^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONIC=|׽?ët `tp `th @td @tP HtL Ht8ë$ Pt Ptë t t t |t Xt Xtë t t t t t t t t0ë @ @ ( H H 0 ë  ë    ë | | dë @ @ ( H H 0ë| x thëX T L H Dë@ |< | d( `$ ` H   8 8  X X @ 8 8 ë            X X @| Px P 8p Pl P 8\ PX P 80 P, P 8ë p p X @ @ (  xë           ëd (` ( \ë8 4 x ë           ë ( ( ë| x pëd 0` 0 X T  Lë@ 0< 0 4 0  (ë 0 0    ë 0 0  ( ( ë 0 0  0 0        H| H 0p @l @ (` \ P L @ < T (L (4 ,    ܡȬ ܡȫ ء ء0 ԡ ԡL Сh Сhht ̡Hl ̡HT ȡ(L ȡ(4 ġ, ġ   Ȭ ȫ    , h Hht Hl dHT (L (4 ,   H$PD$P@$P<$P8$P4$P0$P,$P($P$$P $P$P$P$P$P $P$P$P$P #!" #!"    @ H 0 (      P X 8$ `XkTE}7vK=Y1b_eqconforint_eqconfordyld_stub_binding_helper_sqrt_e3fn_ptitle_e0fn_offsetp_cos_radius2_tsincos_cenlonmer_msfnz_e2fn_p_error_stanparl_origin_adjust_lon_sin_stparl1_e1fn_mlfn_r_major_r_minor_lon_center_false_northing_false_easting_es_e_e0_e1_e2_e3_ns_g_ml0_rh #1/20 1295536316 505 505 100644 7620 ` eqconinv.o8  PT __text__TEXTT (B__picsymbolstub1__TEXT` 8L __cstring__TEXT N t__literal8__TEXT p __bss__DATA x__la_symbol_ptr__DATA L %, P0&|! |> xB>^~؞ؾ<_8B <_8B <_8B <_8B <_8B <_8B ɢ<_8B  $hɾhh2<_ `h(<_8B <_8B  H<_8B <_8B  H<_8B <_8B  H<_8B <_8B  H<_8B <_8B  Hq<_8B 8p8^x>|x|FxH<_8B ɾpɞx @h``H`<_8B b<_8B ɢ<_8B ɂ<_8B  X@h``ȾHP8/AHɾ *<_8B XA8p8^x>|x|FxH%<_8B ɾpɞx @h``HAX<_8B b<_8B ɢ<_8B ɂ<_8B  X@h``ȾH1Hɾ (<_8B XOA^H<_8B  H>H<_8B ɢ<_8B  h@HH|<_8b DH=<_8B ɢ<_8B  h@Hy>H<_8B  H>H5<_8B ɢ<_8B  h@H8Ȁ|x!|N |!`|> xB>x^ȑ8h<_8Bɢxh(x<_8Bɢ(<_8B *<_8Bɢ<_OAlɾxx2ɾ 2 * HP`<@8`^P~T8@8`^H~Lɾ`<_@LHDɾxx2ɾ 2 * HM`<@?8`^P~TKH0ɾPx2ɾP 2 `@HH<_8Bɂ<_8Bhɢ`h$ (X<_8Bɂ<_8Bb<_8B<_8Bɢ8h@>X@``XhH^<_8BɢHh$<_8Bx * H^h/AhH 8@^|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONIC=|׽?pë` p\ xpL 8pH 8p8ë p p p p p p p p ءp ءhp @p @ptëD p@ p ë p p 8p 8p (p (p Hp Hp 0p 0p0ë ( (  0 0  ë  ë   ء ء ë \ \ Dë ( (  0 0 ë| x thëX T L ءH ء Dë@ \< \ D( H$ H 0 ء ء    @ @ (  ë          @ @ (| 8x 8 p 8l 8 \ 8X 8 0 8, 8 ë P P 8   p p Xë         ëd `  \ë8 p4 p X ë         ë   ë| x  pëd `  X T Lë@ <  4 0 (ë     ë      ë       x x ` ء ء    0| 0 p (l ( ` \ P L @ ء< ء T С L С 4 ̡ , ̡  ȡ Ȭ ȡ ȫ ġ  ġ   8  h T h H p Ht (l  (T L  4 ,  Ȭ ȫ     h 4h H PHt (l l(T L 4 ,  Ȭ H$PD$P@$P<$P8$P4$P0$P,$P($P$$P $P$P$P$P$P $P$P$P$P #!" #!"    ( 0         8  @# ( HXfEx7qK~=T1]_eqconinvint_eqconinvdyld_stub_binding_helper_sqrt_e3fn_ptitle_e0fn_offsetp_radius2_tsincos_cenlonmer_msfnz_e2fn_p_error_stanparl_origin_adjust_lon_atan2_stparl1_e1fn_phi3z_mlfn_r_major_r_minor_lon_center_false_northing_false_easting_es_e_e0_e1_e2_e3_ns_g_ml0_rh#1/20 1295536317 505 505 100644 2620 ` equifor.o 8 __text__TEXTK__picsymbolstub1__TEXTt __cstring__TEXT__bss__DATA(__la_symbol_ptr__DATAT x P|!|> xB>8^@~H؞PؾX<_8B8<_8B@<_8BH<_8BX<_8BP<_8bHy<_8B H<_8B H<_8B H<_8Bɢ<_8B h@H98|x!|N |!|> xB>H^P<_8BɢHh( Hq8<_8Bɢ82<_8B H2<_8B  *^<_8BɢP2<_8B *^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|x}N |B}h=k|\}N |B}h=k|@}N EQUIRECTANGULAR($($$$0$0 $ët $p $`$\$Pë<$8$ë((00ë  ëëët0p0d(`(T P D@40Ȭ@ȫ\xthlhTHLH4(,( PPP PPPP    lu (0 `E@7X/P_equiforint_equifordyld_stub_binding_helper_ptitle_offsetp_cos_cenlonmer_radius_origin_adjust_lon_r_major_lon_center_lat_origin_false_northing_false_easting #1/20 1295536317 505 505 100644 3004 ` equiinv.o8 T__text__TEXT@TX__picsymbolstub1__TEXT@  __cstring__TEXT@-__literal8__TEXTp__bss__DATA(__la_symbol_ptr__DATAx   , P |!|> xB>8^@~H؞PؾX<_8B8<_8B@<_8BH<_8BX<_8BP<_8b(H<_8B H%<_8B H<_8B H=<_8Bɢ<_8B h@Hy8|x!|N |!|> xB>8^@<_8Bɢ8h(8<_8Bɢ@h(@<_8Bxɢ@h$^^<_8BPAh<_8B H<_8Bx28h$<_8B * H9^8HH$<_8b0<_8DH8HHH|x!|N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N EQUIRECTANGULARInput data errorequi-inv?!TD-ëd  dD P P0 ë   x ë  p pP h dx P L 8 4 ëëëëë@@(tpd`TPD@40(l(ȬȫtlTL4|h,|hxH x0HPPPP PPPP    u~ iE@7aX/P_equiinvint_equiinvdyld_stub_binding_helper_ptitle_offsetp_cos_cenlonmer_radius_p_error_origin_adjust_lon_r_major_lon_center_lat_origin_false_northing_false_easting #1/20 1295536317 505 505 100644 3452 ` gnomfor.o8 Tx__text__TEXTTc__picsymbolstub1__TEXT@ ( __cstring__TEXT9T__literal8__TEXT@__bss__DATAx0__la_symbol_ptr__DATAP( $    P t|!|> xB>8^@~H؞PؾX<_8Bh8<_8B`@<_8BP<_8BX>H<_8p<_8xH<_8bH1>8H>@H!>HHy<_8Bɢ<_8B h@H8|x!|N |!p|> xB>h^p<_8Bpɢhh( HmP8X8^`>p|x|FxH>PHH<_8BɢX2<_8Bɢ`2H 2 *@ɾ@<_8OA<_ɢ@@ $8<_8Bxɢ82`2>PH2<_8B *^<_8Bxɢ8m2<_8BɢX2<_8Bɢ`2H 2 (2<_8B *^8xH$<_8b<_8$H8xHx|x!|N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N GNOMONICPoint projects into infinitygnomfor-conv?ë,,$  `\<8($xëxHH@@@8|lh\T4ë xxpëëë|xxtpd`TPDx@x`40h4t,tpȬ pȫllhhdhdh`H`Ht\(l\4(TXLXP4T,TlPȬ P$P PPPPP PPPP      x gEs@7^/V{M_gnomforint_gnomfordyld_stub_binding_helper_ptitle_offsetp_cos_cenlat_tsincos_radius_p_error_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing_sin_p13_cos_p13#1/20 1295536318 505 505 100644 4396 ` gnominv.o8 TX__text__TEXTpT__picsymbolstub1__TEXT 0 __cstring__TEXT T__literal8__TEXTd__bss__DATAX8__la_symbol_ptr__DATA(0|t  4< P |!|> xB>8^@~H؞PؾX<_8BP8<_8B@@<_8BHH<_8BhP<_8BpX>H<_8X<_8`H<_8bH>8H>@H>HHI<_8Bhɢ<_8Bp h@H8|x!|N |!p|> xB>h^p<_8Bhɢhh(h<_8Bpɢph(pɾhh2ɾpp 2 * HH<_8BPɢHh$ H@8P8^X>@|x|FxHa<_8B@^H<_8BOAɾX<_8BX2ɾPp2<_8B`2H $ * H^<_8BH<_8B (88<_8BOA|H$<_8BH^8xHX^ H!<_8BX 2(88<_8BA(H<_8BHɢ<_OAL<_8B@hP ^pH( H1^8xHpP>h@HE<_8B@ * H^8xHɾPh2<_8B`2ɾ8H 2 `@H<_8B@ * Hy^8xH0h<_8BAKx8@^xHx|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N GNOMONIC=|׽?!TD-0,ëXX@ëxx`ëXX@|P@ë(X$X@  ``HppXë``Hxt\XL`H`H8ëxx`ppXXX@ëhhP|ëHDp0,hëphëëxx`ppXtppd`hT`P`HDX@X@4h0hPtTlTlTPȬLPȫ4L,LH HDhDh@H@H<(<(880t4l4LT0ȬL0hȫ4,,,( (,P(P$P PPPPP PPPP        hX`px l=fMxD5^/U_gnominvint_gnominvdyld_stub_binding_helper_sqrt_ptitle_asinz_offsetp_cenlat_tsincos_radius_atan_adjust_lon_cenlon_atan2_sin_R_lon_center_lat_center_false_easting_false_northing_sin_p13_cos_p13 #1/20 1295536318 505 505 100644 7052 ` goodfor.o8  T __text__TEXTT __picsymbolstub1__TEXT  __cstring__TEXT N __literal8__TEXT D__bss__DATA __la_symbol_ptr__DATA  ` | P(|!|> xB>8<_8B 8<_9" <_8B  <_9" <_8B  <_9" <_8B  <_9" <_8B  <_9" <_8B  <_9" <_8B  (<_9" <_8B  0<_9" <_8B  8<_9" <_8B  @<_9" <_8B  H<_9" <_8B  P<_9" <_8B  X<_8B ɢ<_8B  2<_8B <_8B ɢ<_8B  2<_8B <_8B ɢ<_8B  2<_8B <_8B ɢ<_8B  2<_8B <_8B ɢ<_8B  2<_8B  <_8B ɢ<_8B  2<_8B (<_8B ɢ<_8B  2<_8B 0<_8B ɢ<_8B  2<_8B 8<_8B ɢ<_8B  2<_8B @<_8B ɢ<_8B  2<_8B H<_8B ɢ<_8B  2<_8B P<_8B ɢ<_8B  2<_8B X<_8b H>8H8|x!|N |!P|> xB>h^pؑɾp<_8BOA ɾp<_OA\H8ɾh<_8BOA88Hp88Hdɾp<_8BOA\H8ɾh<_8BOA88H88Hɾh<_8BOAHɾh<_8BOA$ɾh<_8BOA4H88Hɾh<_8BOA H88H|8 8Hp88Hdɾh<_8BOA4H88H8ɾh<_8BOA,H88H 8 88/APH8 8K8/A48/A(8/A8/A8/ @8<_8BHT8|@ɢhh( HX8<_8BT8|@<_8B@ɢX2>pH2*^<_8B@ɢp 2^H<8<_8BHT8|@ɢhh( HXpP>pH<_8B 2@8<>PHP*@ (P>PH<_ *$HɾPH *PH<_8BA@PH2*^>PHm<_8B2>pH|`x<@C0=?ɩl|^xxh(<_8B 2*<_8B@ 2^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forward]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiy]WJM?WJU@ !TD-=|׽?!TD-?d)?f;㿫 _?@C0t p @` x\ xD @ 4ë$ p pë h h  @ ( ( X X ` `l h Dë@ < `8 4 @ X X  ë P PtëX ȡT ȡH4 0 @ë  @ ( (ë ȡ ȡH4 H0 H @ @ H H @ @| 8x 8\ 8X 8( ($ ( 0 0 ( (    @8ë4 0 ( ($ (       ( (       ( (       ( (       ( ( x t  l h ` (\ ( P L D @ 8 (4 ( ( $     ( (      ( (      ( (      ( (   | x p (l ( ` \ T P D @  < ȡ8 ȡ , (  $ ȡ ȡ     ȡ ȡ     ȡ ȡ     ȡ ȡ    ȡ ȡ     ȡ ȡ    ȡ ȡ   | ȡx ȡ l h d ȡ` ȡ T P L ȡH ȡ < 8 4 ȡ0 ȡ $   0 h L h H h Ht (l  (T L  4 ,  Ȭ  P P P P P P P    d g s ( `S7J/B<__goodforint_goodfordyld_stub_binding_helper_ptitle_cos_sign_radius_p_error_adjust_lon_sin_R_lon_center_feast#1/20 1295536318 505 505 100644 9828 ` goodinv.o8 T __text__TEXT Tt&__picsymbolstub1__TEXTT#  __cstring__TEXTBT__literal8__TEXTH__bss__DATA __la_symbol_ptr__DATA T$%$% P $|!|> xB>8<_8B8<_9"<_8B0 <_9"<_8B0 <_9"<_8B8 <_9"<_8B8 <_9"<_8B@ <_9"<_8BH (<_9"<_8B@ 0<_9"<_8BH 8<_9"<_8BP @<_9"<_8BX H<_9"<_8BP P<_9"<_8BX X<_8Bɢ<_8B0 2<_8Bp<_8Bɢ<_8B0 2<_8Bp<_8Bɢ<_8B8 2<_8Bp<_8Bɢ<_8B8 2<_8Bp<_8Bɢ<_8B@ 2<_8Bp <_8Bɢ<_8BH 2<_8Bp(<_8Bɢ<_8B@ 2<_8Bp0<_8Bɢ<_8BH 2<_8Bp8<_8Bɢ<_8BP 2<_8Bp@<_8Bɢ<_8BX 2<_8BpH<_8Bɢ<_8BP 2<_8BpP<_8Bɢ<_8BX 2<_8BpX<_8bH >8H !8|x!|N |!`|> xB>X^`ȑ<_8B ɢ<_8B 2`OA ɾ`<_ hOA|HH<_8B ɢ<_8B 2XOA88H88H<_8B ɢ<_8B 2`OA|HH<_8B ɢ<_8B 2XOA88H|88Hp<_8B ɢ<_8B 2XOAH<_8B ɢ<_8B 2XOA4<_8B ɢ<_8B 2XOADH88H<_8B ɢ<_8B 2XOA H88H8 8H88H<_8B ɢ<_8B 2XOADH88HH<_8B ɢ<_8B 2XOAPH88H 8 88<_8B T8|@ɢXh(X8/APH8 8KĀ8/A48/A(8/A8/A8/ @,<_8B ɢ`h$^^<_8B (AD^<_8B ( (@@<_8B 0ALH$<_8b <_8 Hy8pHĀ8<_8B T8|@^H8<_8B T8|@^ H<_8B 2Xh$*@>@H^H<_8B ɢ<_8B 82>`H}|`x<@C0=?ɩ pll^hhh(2`*<_8B ɢ<_8B @ 2 $PP<_ xA>PHH8<_8B T8|@<_8B ɢ<_8B H2>HH2Xh$*^^ɢ<_8B PAdH8pHH*H* H*<_8B X $PP<_ xA@H9 >pH>PH^X<_ɢ hh@@H9 >pH^ɢ<_8B Xh(<_8B 0AHX<_ɢ hh@H^ɢ<_8B X*<_8B 0AH^P^8/@<^ɢ<_8B PA0^ɢ<_8B A8/@LH9 >pH^ɢ<_8B PA0^ɢ<_8B A8/@LH8pHH^ɢ<_8B A0^ɢ<_8B `A8/@LH8@^pH^ɢ<_8B A0^ɢ<_8B `A8/@LH9 >pH^ɢ<_8B PA0^ɢ<_8B A8/@LH8pHL^ɢ<_8B A0^ɢ<_8B A8/@LH8@^pH^ɢ<_8B PA0^ɢ<_8B A8/@LH9 >pH^ɢ<_8B A0^ɢ<_8B A8/@LH8pHP^ɢ<_8B A0^ɢ<_8B A8/ @LH8@^pH^ɢ<_8B A0^ɢ<_8B `A8/ @LH9 >pH^ɢ<_8B A0^ɢ<_8B A8/ @LH8pHT^ɢ<_8B A,^ɢ<_8B `A8@^pH9 >pHp|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N GOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverse]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiy]WJM?WJU?!TD-=|׽? _?f;?d) !TG@ !TD-@ !TGC0?   `    \ X  @ <    `          ` \  D @     С С P       d `  HС DС P   `      `    h d  LС HС P    С С P   0 ء ء X   h x t 0 hء dء X @ < h (ë   xءء XëСС P|ëlȡhȡ H` \ L(H( 8ë($ x @   pë 8  ëp l `ëD(@(  (( ë44    0 ( ( |        <8 0 ,          `\ T P 0, $       hxx   @8ë40($pppX   phhP  pppX  phhP  px`t`Hl h `\pPXLX@D @ 84p(`$`H   pXX@  pPP8  pPP8  pHH0| x plp`H\H0T P Dp@pX<(8(,h(hP$( (ppX ((hhP((``H((XX@((``H((XX@((PP8|(x(lPhP8d(`(THPH0L(H(<H8H04(0($   4ȬPȫlt hl hTHLH4(,(  P P P P P P P P      j m(y `Sd7J/B<__goodinvint_goodinvdyld_stub_binding_helper_ptitle_cos_sign_radius_p_error_adjust_lon_sin_asin_R_lon_center_feast #1/20 1295536319 505 505 100644 4004 ` gvnspfor.o8 T\__text__TEXT,T__picsymbolstub1__TEXT@` , __cstring__TEXTz__literal8__TEXT t__bss__DATA`8__la_symbol_ptr__DATA0,     P h|!|> xB>8^@~H؞PؾX`<_8BP8<_8BPɢ@h$<_ *<_8BX<_8BHH<_8BpX<_8Bx`>P<_8`<_8hH <_8bH>8H>@<_8H)>HH>PH<_8Bpɢ<_8Bx h@HU8|x!|N |!p|> xB>h^p<_8Bɢhh( HP8X8^`>p|x|FxH->PHH<_8B0ɢX2<_8B8ɢ`2H 2 *@<_8B(ɢ<_h$@A<_8B(ɢ<_(<_8B(ɢ@ ( $8<_8B ɢ82`2>PH)2<_8B@ *^<_8B ɢ8m2<_8B8ɢX2<_8B0ɢ`2H 2 (2<_8BH *^8xH$<_8b<_8H%8xHx|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|x}N |B}h=k|\}N |B}h=k|@}N |B}h=k|$}N |B}h=k|}N |B}h=k|}N |B}h=k|}N GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for??ëHHHHHHHxHx0HH8HhH|h HhHd@HXë<hH8h H pHp(H(H(HpHp(H(H(HpHp(HH8HxHx0Htë``H\`H ëxpëȡȡëëhxx`xpt`p`HhpdpX\ X HhDhP8h4hPTXLX4Th,ThPH PHL(L$(HH@DD\@Ȭ@xȫt<l<T8L844h,4h0H 0H(P$P PPPPP PPPP      hp`x,qG}B`9h1XO_gvnspforint_gvnspfordyld_stub_binding_helper_ptitle_offsetp_cos_cenlat_tsincos_radius_genrpt_p_error_adjust_lon_cenlon_sin_R_p_lon_center_false_easting_false_northing_sin_p15_cos_p15 #1/20 1295536319 505 505 100644 5372 ` gvnspinv.o8 xT4__text__TEXTT __picsymbolstub1__TEXTp4 __cstring__TEXT`v __literal8__TEXT( ,__bss__DATA8@__la_symbol_ptr__DATA4 T   P x|!|> xB>8^@~H؞PؾX`<_8B08<_8B0ɢ@h$<_ *<_8B8<_8B H<_8B(P<_8BPX<_8BX`>P<_8@<_8HH<_8bHH>8H>@<_8pH>HH>PHI<_8BPɢ<_8BX h@H8|x!|N |!`|> xB>x^ȑ<_8Bɢxh(x<_8Bɢh(ɾxx2ɾ 2 * HX<_8BɢXh$P<_8Bɢ<_ (H<_8Bɢ<_ *@ɾH@ $ HPA<_8BɾPP2@2H$<_h( HI(ɾHP$ɾPH $ * $`` HQ88`8^h>8|x|FxH<_8B^X<_8BOAH$<_8b`<_8tH8H\ɾh<_8B2ɾ`2<_8B2X $ * H^<_8B<_8B (HH<_8BOA|H$<_8B^8Hh^ HM<_8B 2(HH<_8BA(H<_8Bɢ<_OAL<_8BxP ^H( H]^8HP>x@Hq<_8B * H^8Hɾ`x2<_8B2ɾHX 2 `@H<_8B * H^8H0x<_8BAKx8@^H|x!|N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-for?=|׽?!TD-?dX`X<ë,8X(8Xë`X`Xë8X8Xtë\8XX8XHXDX<@X8@X$X XXXXXë@X@XXXXX@X|@XlëP`XL`X4XX0XXë̡X̡tXX `XXX8X8XxëlXhXDPX@PX(ë XXPXPXXXPXPXHXHXëpXpXphXlhXë ppXhhPëpë``Hë``HXX@ppXhhP@@(t8p8 hPdP8\ءXءHHDH08H4H00H0Ht,(l,(T(L( 4$,$< Ȭ  XȫthhHHt (l (TL4,Ȭ 80P,P(P$P PPPPP PPPP        HP8@hpX`<y?OhFp7`1W_gvnspinvint_gvnspinvdyld_stub_binding_helper_sqrt_ptitle_asinz_offsetp_cenlat_tsincos_radius_genrpt_p_error_adjust_lon_cenlon_atan2_sin_R_p_lon_center_lat_center_false_easting_false_northing_sin_p15_cos_p15#1/12 1295536319 505 505 100644 2788 ` hamfor.o8 T__text__TEXT0TG__picsymbolstub1__TEXT@  __cstring__TEXT@__literal8__TEXTH__bss__DATA __la_symbol_ptr__DATA`    @ P L|!|> xB>8^@~H؞P<_8Bp8<_8Bh@<_8BxH<_8BP<_8b(H>8HE>@H}<_8Bxɢ<_8B h@H8|x!|N |!|> xB>H^P<_8BɢHh( H@<_8Bɢ<_8B`2>PHaɾ@<_h $ HA2<_p * H$88*>PH 2ɾ@<_h $ Hi2<_8B *^>PHA82<_8B *^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N HAMMER?fe>@?ëëPPh|ëpXlXp`ëTPPPh@ë0H,H`$ ëëx|tëp@l@(`\PLx@<h0,p|(|T(xxpttpȬpȫtlllThLh4dh,dh`H `HPPPP PPPP     jmy Q]D;3Ie-_hamforint_hamfordyld_stub_binding_helper_sqrt_ptitle_offsetp_cos_radius_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing#1/12 1295536319 505 505 100644 3028 ` haminv.o8 T__text__TEXTT4X__picsymbolstub1__TEXT  __cstring__TEXT__literal8__TEXT__bss__DATA __la_symbol_ptr__DATA   t ( P 4|!|> xB>8^@~H؞P<_8B8<_8B@<_8BH<_8BP<_8bHM>8H>@H<_8Bɢ<_8B h@HY8|x!|N |!|> xB>H^P<_8BɢHh(H<_8BɢPh(P<_8Bɢ<_2<_8B2ɾHH2<_ $*ɾPP 2 ( H%<_ $8ɾH8m2<_8B*<_8B2ɾHH2<_ $*ɾPP 2 ( X@H*<_8B * H)^ɾP82<_8B$<_8B $ H^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N HAMMER@@XëHD84ëë|ë\X@<40($ ë|tëpl`\PL@<0,ܡܡTءhءphԡHԡHС(С(t̡l̡TȡLȡ4ġȬ,ġȫ PPPP PPPP      nq} S;g_B3K-_haminvint_haminvdyld_stub_binding_helper_sqrt_ptitle_asinz_offsetp_radius_adjust_lon_cenlon_atan2_R_lon_center_false_easting_false_northing #1/20 1295536320 505 505 100644 5164 ` imolwfor.o8 XT__text__TEXTT D__picsymbolstub1__TEXT4 __cstring__TEXTT__literal8__TEXT L__bss__DATAh__la_symbol_ptr__DATA , x P |!|> xB>8<_8B8<_9"<_8B <_9"<_8B <_9"<_8B <_9"<_8B <_9"<_8B <_9"<_8B (<_8Bɢ<_8B 2<_8B<_8Bɢ<_8B 2<_8B<_8Bɢ<_8B  2<_8B<_8Bɢ<_8B( 2<_8B<_8Bɢ<_8B0 2<_8B <_8Bɢ<_8B8 2<_8B(<_8bH)>8Ha8|x!|N |!`|> xB>h^pȑɾp<_OA$ɾh<_8BXOAHɾh<_8BXOA(ɾh<_8B`@88H ɾh<_8BhOA ɾh<_8BpOADɾh<_8BxOAɾh<_8BA88H88Hɾh<_8B@88Hxɾh<_8BOA ɾh<_8BpOAɾh<_8BxOAɾh<_8BA888<_8BT8|@ɢhh( HXpP>pH<_8B 2@8<>PHqP*@ (P>PH<_ *$HɾPH *PH<_8BADH88KPH2*^<_8Bɢ<_8B2>PH2^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^?WJy?f ?f@ !TD-/ !TD-/]yk@5AIտ5A@ !TD-=|׽?!TD-?d)?f;?@ë|xplTë<80,(((ССëġġplDȡ@ȡ4ëëtxpxxXpTpp<8xxxppphhhp`l``TXPXX4X0XXë((PP8(|(pHlH0d`X(T(H@D@(<80(,( 88 ((00((((  |xlhd`TPLH<840$ dhhtHlHT(L(4ܡ,ܡء ء P P P P P P    `co(O9F1>[_imolwforint_imolwfordyld_stub_binding_helper_ptitle_cos_radius_p_error_adjust_lon_sin_R_lon_center_feast #1/20 1295536320 505 505 100644 5492 ` imolwinv.o8  T__text__TEXTT __picsymbolstub1__TEXT 4< __cstring__TEXT! __literal8__TEXT __bss__DATAh__la_symbol_ptr__DATA \ t P, |!|> xB>8<_8B8<_9"<_8B <_9"<_8B <_9"<_8B <_9"<_8B <_9"<_8B <_9"<_8B (<_8Bɢ<_8B 2<_8B<_8Bɢ<_8B 2<_8B<_8Bɢ<_8B 2<_8B<_8Bɢ<_8B 2<_8B<_8Bɢ<_8B 2<_8B <_8Bɢ<_8B 2<_8B(<_8bH)>8Ha8|x!|N |!|> xB>H^PɾP<_OA4<_8Bɢ<_8B82HOAH<_8Bɢ<_8B(2HOA4<_8Bɢ<_8B02HOA H88H`88HT88HH<_8Bɢ<_8B@2HOA,H88H 888<_8BT8|@ɢHh(H<_8Bɢ<_8BH2Ph$ H@8<_8BT8|@<_8Bɢ<_8BP2>@HQ2Hh$* Hu^@*@* Hq*<_8BX $ Hq^8/@LH88K^ɢ<_8B`A0^ɢ<_8BhA8/@H8XH^ɢ<_8Bh@ ^ɢ<_8B`AL^ɢ<_8Bp@ ^ɢ<_8B`A8/@LH8@^XH^ɢ<_8BxA0^ɢ<_8B`A8/@LH8XH4^ɢ<_8B`A0^ɢ<_8BA8/@H8@^XH^ɢ<_8B@ ^ɢ<_8B`AL^ɢ<_8B@ ^ɢ<_8B`A8/@LH8XHT^ɢ<_8BA,^ɢ<_8B`A8@^XH8XHX|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|x}N |B}h=k|\}N |B}h=k|@}N |B}h=k|$}N INTERRUPTED MOLLWEIDE EQUAL-AREA?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^f~?+}8k=+}8k=?f~?f;?d)@ !TD-?WJy?f ]]yk@5AIտ5Ax`t``\X$` `````|`x``D`@``(x$xx```ppp```hhhdh`hhH`D``ëXXXëPPP|lëTHPHHHD($@@@000l(h((`\<88880,ë  |pld`XTHD<80, |xlءhءd`TСPСLH<ȡ8ȡ40$ $h@htHl\HT(Lx(4,  P P P P P P    ]`lFW91>R_imolwinvint_imolwinvdyld_stub_binding_helper_ptitle_cos_radius_adjust_lon_sin_asin_R_lon_center_feast#1/20 1295536320 505 505 100644 10444 ` isinusfor.o X|__text__TEXTX__picsymbolstub1__TEXT%`  __cstring__TEXTg__data__DATAh D&`__bss__DATA|__literal8__TEXTd__la_symbol_ptr__DATAX 4&__nl_symbol_ptr__DATAxT'' P &|!|> xB~hl<_B`8|x<_8耾hlH!|N |!@|> xB>X^`~h؞pؾx<_8B/AL<_8B|xH|`xHH/A$<_8b<_8K%8HɾX<_LOA ɾ`<_8BA\H$<_8b<_8 K8Hɾ`<_8BA ɾx<_8B$AH$<_8b<_8HK}8HLɾx<_8B,Apɾx<_8B4 *PP<@C0=?ɩTl^h(xh(<_8B4AX^`~hȞpH |`x<_8B<_8B/@HH$<_8b<_8(K]8H,<_8b\<_8lK=8H 8@^|x!|N |! |> xB>X^`~h؞pɾX<_8BA ɾ`<_8BA\H$<_8b`<_8H Y8Hɾ`<_8BA ɾ`<_8BA,H$<_8b`<_8H 8HHɾ`<_8B *`ɾ`<_8BOAHɾ`<_8B (`/@<@`Bƀ@$<_8b`<_8H q8H T/A$<_8b`<_8H A8H܀/A/@$<_8b`<_8H 8H8``H 5|`xPP/@$<_8bX<_8H 8Hh^P8X^Ph^Pp^PX<_ɢX $^P<@C0=?ɩl|^xxh(<_8B $^P ^P(|p|^P,^P`8ɾ`<_8B (^P0^Pɢ0<_8BAH$^Pɢ0<_8B *^P0^P@^P,T 6|xH|`x^PT^PT/@,~PH Q<_8bX<_8H ]8H^PTL8HHH<@C0=?ɩl^h(<_*^P,<@C0=?ɩl^h($<_h(<_8B 2@/A`>@H)*<@C0=?ɩl^h(2<_ *^LHp>@H<@C0=?ɩl^h(2<_ *^L^LT<^L^L/A^L8^L<@C0=?ɩl^h(<_h$^L/@$^LB8|p|^LH^L|p|^L^H8H^L8L^PB,HA^P"T^P,T 6|I8B8ɾX<_8B28<@C0=?ɩl^h( $^PD8<@C0=?ɩlĐ^h(ɾX<_8B 2 $^PL^P< `#XPȀ|x!|N |!|> xB>H^P<_8B |x>H^P>HQ|`x88/A$<_8bd<_8pK 8XH 8XX|x!|N |!@|> xB~>X^`>>8@8`Ii>8@8`Ii/@$<_8b4<_8H!|`xHԀ^؀BX< `#A$<_8b<<_8H|`xHɾX<_8BA8ɾX<_8BA ɾ`<_8BAH8HDɾ`<_8BAx^ɂ^ɢ` 2 *^<_8Bɢ`(^ 2PPhl8^؀B,8A,H8@^H^؀B(8|@P888/@ 88^ɢ0Xh(<_8B 2@ɾ@=? AHD@pt <@C0=?ɩ l|^xxh(@h*@@<_ɢ hAH@@<@C0=?ɩ l^h(@h(@^؀BT8T 6|B<@C0=?ɩ l^h(@2^؀BT8T 6|B<@C0=?ɩ l^h( (H^ɂ^ɢDH 2 *^8|x!|N |!|> xB~hh/@$<_8b<_8H|`x8H|^hBX< `#A$<_8b<_8H|`x8HD^h8X^hT|xHi^h8T~hHU8h888|x!|N |!|> xB~hl<_B8^h"^hb|x<_8l}&Kx}g[xH 8|x!|N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N error (isinusfor.c/%s : %s memory allocationinvalid parameterinvalid handleinvalid keyisinusforinitbad return from Isin_for_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valueIsin_for_initbad return from Isin_for_initisinusforbad return from Isin_fwdIsin_fwdIsin_for_free error (isinusfor.c/%s) : (%i) %s  4HX!TD-@!TD-? =pA3ƀ\)?zG{zG{@zGC0=|׽!TD-@!TD-@ !TD- !TD-?!TD-?C0?!TD-@!TD-!TD-?!TD-?_0mȃC0?ëDDxxL8ë 44ë44xx4H D0H  D H D H  D H D H  D P D P D \H D XH  D 0@ D ,@ D 8 D 8 D 0 D |0 D H0 D D0 D ( D ( D  D   D  D  D ë ( D ( D  D < D ë ( D ( D x D x4 D ë   p  d ë | | 8 4       $   tëPL0,ëdë`С\СXhThXP,ëtpXT84ëССhhXëССpp`ë|СxСtppp`PëLСHСDp@p` ëССpp`|hëdС`С\pXp`Dء@ء,С(СëtltСtС\tët(tdtdt|t||tt|tp|th8ë4tt0tt,dt(dtt4tȡtȡTtt4ttDtt<t|ëxHttHtpdtldt\ëXtTtPdtLdt(ë$t tdtdtt4tȡtȡTtt4tt,tët|Htxdttdt`t\$tHtDt0ë,t( t$dt dt tttLtëttttdtdtë|t|t|t|tDë84(x$x`ttpȬpȫllhhtdhldhT`HL`H4\(,\4(X XP@@ @@PPPP PPPP   hpx||4* , \\juobC_isinusforinit_Isin_for_init_isinusfor_Isin_fwd_Isin_for_freedyld_stub_binding_helper___sF_malloc_cos_free_fprintf$LDBLStub_error_ISIN_BADALLOC_ISIN_BADPARAM_ISIN_BADHANDLE_ISIN_BADKEY_isin_Isin_error#1/20 1295536321 505 505 100644 10380 ` isinusinv.o X`\__text__TEXT8__picsymbolstub1__TEXT%  __cstring__TEXTg__data__DATAH $& __bss__DATA\__literal8__TEXThD__la_symbol_ptr__DATA8 &@__nl_symbol_ptr__DATAX4&' P &|!|> xB~hl<_B@8|x<_8ȀhlH}!|N |!@|> xB>X^`~h؞pؾx<_8B/AL<_8B|xH|`xHH/A$<_8b<_8K%8HɾX<_,OA ɾ`<_8BA\H$<_8b<_8K8Hɾ`<_8BA ɾx<_8BAH$<_8b<_8(K}8HLɾx<_8B Apɾx<_8B *PP<@C0=?ɩ4l^h(xh(<_8BAX^`~hȞpH |`x<_8B<_8B/@HH$<_8b<_8K]8H,<_8b<_8 xB>X^`~h؞pɾX<_8BA ɾ`<_8BA\H$<_8b@<_8H 8Hɾ`<_8BA ɾ`<_8BA,H$<_8b@<_8H 8HHɾ`<_8B *`ɾ`<_8BOAHɾ`<_8B (`/@<@`Bƀ@$<_8b@<_8H 18H T/A$<_8b@<_8H 8H܀/A/@$<_8b@<_8H 8H8``H |`xPP/@$<_8b8<_8H 8Hh^P8X^Ph^Pp^PX<_ɢX $^P<@C0=?ɩl|^xxh(<_8B $^P ^P(|p|^P,^P`8ɾ`<_8B (^P0^Pɢ0<_8BAH$^Pɢ0<_8B *^P0^P@^P,T 6|xH|`x^PT^PT/@,~PH<_8b8<_8H 8H^PTL8HHH<@C0=?ɩl^h(<_*^P,<@C0=?ɩl^h($<_h(<_8B 2@/A`>@H*<@C0=?ɩl^h(2<_ *^LHp>@H<@C0=?ɩl^h(2<_ *^L^LT<^L^L/A^L8^L<@C0=?ɩl^h(<_h$^L/@$^LB8|p|^LH^L|p|^L^H8H^L8L^PB,HA^P"T^P,T 6|I8B8ɾX<_8B28<@C0=?ɩl^h( $^PD8<@C0=?ɩlĐ^h(ɾX<_8B 2 $^PL^P< `#XPȀ|x!|N |!|> xB>H^P<_8B |x>H^P>Hq|`x88/A$<_8bD<_8PK 8XH 8XX|x!|N |!p|> xB~>X^`>>8@8`Ii>8@8`Ii/@$<_8b<_8H|`xxH^BX< `#A$<_8b<_8H|`xxH^ɢ`h(^ 2^^ɢ<_8BAt^ɢ<_8BAX^ɢ<_8Bh(^ 2PPhl8^B,8A@H$>8@8`Ii8xH^B(8|@P888/@ 88^ɢXh(^L 2H^BT8T 6|B<@C0=?ɩlt^pph(H*^BT8T 6|B 2@ɾ@<_Ad@=?ɩhAP^ɂ0ɾ@<_8B 2 *^^ɢ<_8BOA,H$>8@8`Ii8xHpH$^ɢ<_8B (^^ɢ<_8BAH$^ɢ<_8B *^8@^xx|x!|N |!|> xB~hh/@$<_8b<_8|H|`x8H|^hBX< `#A$<_8b<_8|H|`x8HD^h8X^hT|xH^h8T~hH8h888|x!|N |!|> xB~hl<_B8^h"^hb|x<_8l}&Kx}g[xH 8|x!|N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N error (isinusinv.c/%s) : %s memory allocationinvalid parameterinvalid handleinvalid keyisinusinvinitbad return from Isin_inv_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_inv_free error (isinusinv.c/%s) : (%i) %s (8!TD-@!TD-? =pA3ƀ\)?zG{zG{@zGC0=|׽!TD-@!TD-@ !TD- !TD-?!TD-?C0?!TD-?!TD-@!TD-@ !TD- !TD-C0?ë$x$xXxXx0ë|``ë|XXH DD D( D$ D D D  D  D  D  D 0 D |0 D l( D h( D $ D   D P D L D 4 D 0 D  D  D ë  D  D ` D ` D ë  D  D X D X D ë  P  D ë \ \ 8 4       $   tëPL0,ëءءdë`С\СXHTH8P,ëССȡȡtȡpȡXT84ëССHH8ëССPP@ë|СxСtPpP@PëLСHСDP@P@ ȡȡëССPP@ȡȡ|hëdС`С\PXP@D@,(ët<tDtDtë|t|tDtDt\t|\tt\tp\th8ë4Tt0Tt,Dt(Dtttt4tttt$ttt|ëx(tt(tpDtlDt\ëXtTtPDtLDt(ë$ԡt ԡ`tDtDtttt4tttt tët|(txDttDt`xt\xtHptDpt0ë,tt(tt$Dt Dt hthtt,tëTtTtDtDtë\t\t\t\tDë84(X$X@TȬTȫPPLLHhHhtDHlDHT@(L@(4<,<48 8P@@ @@PPPP PPPP     HPX`\`* ,4 \\juobC_isinusinvinit_Isin_inv_init_isinusinv_Isin_inv_Isin_inv_freedyld_stub_binding_helper___sF_malloc_cos_free_fprintf$LDBLStub_error_ISIN_BADALLOC_ISIN_BADPARAM_ISIN_BADHANDLE_ISIN_BADKEY_isin_Isin_error#1/20 1295536321 505 505 100644 3652 ` lamazfor.o8 0T__text__TEXTTTh__picsymbolstub1__TEXT @t ( __cstring__TEXT`Z__literal8__TEXT__bss__DATA0__la_symbol_ptr__DATA(,   t X P $|!|> xB>8^@~H؞PؾX<_8B8<_8B@<_8BP<_8BX>H<_8<_8H=<_8bHH>8HI>@H>HH<_8Bɢ<_8B h@H8|x!|N |!|> xB>^<_8Bɢh( HH8`8^h>|x|FxHq8P8^X>H|x|FxHY<_8B ɢ`2<_8Bɢh2X 2 *@ɾ@<_Aɾ@<_*<_h$ HI<_8B 28ɾh82P2<_8B *^<_8Bɢ`2<_8B ɢh2X 2(82<_8B$ *^8Hx<_8B*8pЀ^Ѐ~|jx|Ix^А~ɾh|x<_8|}%Kx}FSx H8p|x<_8H8qH|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|x}N |B}h=k|\}N |B}h=k|@}N |B}h=k|$}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N LAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward?@ëë|d(`($<8 ($   ëССȡȡpl hP0ëë((  ë``Hë|xtd(`(T P D@404H,H( (Ȭ$ȫ@tl\ThLxh4ܡH,ܡHء( ء($P PPPPP PPPP         (|ZQs7k?1b_lamazforint_lamazfordyld_stub_binding_helper_sqrt_ptitle_sprintf$LDBLStub_offsetp_cenlat_tsincos_radius_p_error_adjust_lon_cenlon_R_lon_center_false_easting_false_northing_sin_lat_o_cos_lat_o #1/20 1295536321 505 505 100644 4508 ` lamazinv.o8 Tx__text__TEXT\T__picsymbolstub1__TEXT` \0 __cstring__TEXTB4__literal8__TEXT( |__bss__DATAx8__la_symbol_ptr__DATAH0   P <|!|> xB>8^@~H؞PؾX<_8Bp8<_8B`@<_8BhH<_8BP<_8BX>H<_8x<_8Hm<_8bH>8Hy>@H>HH)<_8Bɢ<_8B h@H8|x!|N |!p|> xB>h^p<_8Bɢhh(h<_8Bɢph(pɾhh2ɾpp 2 * HH<_8Bp*Hh$8ɾ8<_ Ad>8H*@8P8^X>@|x|FxH!<_8B`^H<_8BAHH$<_8b<_8H8sxH<_8Bh^8@^xH<_8BxɢX2<_8BɢP2p2H $ * H ^<_8Bh<_8B (88<_8BA$<_8Bhɢ<_(AHX^ H<_8Bx 2(8ɾ8<_(@KɾPh2<_8B2ɾ8H 2 `@H<_8B` * H^KpP>h@H<_8B` * Hy^KT<_8B`hP ^pH( H9^Kx|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N LAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverse=|׽?!TD-?(ëxx`ëxx`ëxx`ëd`D@@@(($xë@@(h((00hëpl\Xx<8h(ë$ ((xx`ë88 p|ëHD0,ëëëxtpd`TPhDx@x`40pttȬltȫTpLp4l,lhh hhdHdH`(`8(\\TXXptTȬlTȫTPLP4L,LHh Hh,P(P$P PPPPP PPPP      xq?O}Fh7`1W_lamazinvint_lamazinvdyld_stub_binding_helper_sqrt_ptitle_asinz_offsetp_cenlat_tsincos_radius_p_error_adjust_lon_cenlon_atan2_sin_R_lon_center_lat_center_false_easting_false_northing_sin_lat_o_cos_lat_o#1/20 1295536322 505 505 100644 6300 ` lamccfor.o8  T H__text__TEXTDT __picsymbolstub1__TEXT`@ __cstring__TEXT` __literal8__TEXT( 4__bss__DATA HX__la_symbol_ptr__DATA @ \| P   |! |> xB>^~؞ؾ<_8B ,<_8B 4<_8B |<_8B tɾ *<_8BA<_8B 4ɢ<_8B , $PɾPP2<_h(<_8B <<_8B < Hi<_8B D<_8B L<_8B T8p8^x>|x|FxH!ph<_8B Dɾpɞx @h``HU`<_8B Dɾp ^`hH@8p8^x>|x|FxH<_8B Dɾpɞx @h``HX<_8B Dɾp ^`hHA8<_8B T H%p<_8B Dɂ<_8B Tɾp `@`hHHɾ (<_8BALH$<_8bD<_8H 8)Hp<_8B \h<_8B \>@@HY<_8B \2`h$<_8B d<_8B ,ɢ<_8B d2<_8B \>H@H2<_8B l<_8bHY<_8B ,ɢ<_8B 4 h@H>^HI<_8B L H>HM<_8B tɢ<_8B | h@H)8HLɾ`X $ Hɾ@8 $ H$<_8B \K|x!|N |!p|> xB>h^pp<_8B (XɾX<_8BA8<_8B,ɢprXɾX<_OA@H|>pHqH<_8B ^p~HHM8<_8Bɢ<_8B42<_8B,>8@H2PH8@8`^P~T<_8Bɢhh( H<_8B, 2@>@HP2<_8BD *^<_8B<>@H9P 2(<_8BL *^8xH$<_8bx<_8TH8,xHx|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projected=|׽??!TD-=|׽ëL TLġLġxL L LLë L <L L DLëx xLt x,LlëX hLT hL0ë xL x,L L 4L HL HLë `L `Lë L L xL x,LLLlLhL x x \ë  |  të h| h Lxlë\ PX P 4P HL H ,HëD@8 4 l(ë x x \  d H H ,  d x x \ë x x \ x x \ë``DplPë8 p4 p T, `( ` Dë p p Të ` ` Dë ` ` Dë| `x ` DlëP `L ` D@ë p p T h h L ` ` Dë X X < X X < H H , P P 4t p td ` |T PP P 4D H@ H , DH DH @( @( < <4 8 8Pt 4Ȭl 4lȫT 0L 04 ,, , (h (h $H $H ( (    0t Ȭl LȫT L h4 ,  h h<P8P4P0P,P(P$P PPPPP PPPP   H P   X ` h p x  0rT7DK}<Y1bi_lamccforint_lamccfordyld_stub_binding_helper_sqrt_log_ptitle_msfnz_offsetp_cos_radius2_tsfnz_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_pow_sin_r_major_r_minor_false_northing_false_easting_es_e_center_lon_center_lat_ns_f0_rh#1/20 1295536322 505 505 100644 6564 ` lamccinv.o8  0T __text__TEXTT (__picsymbolstub1__TEXT 4D __cstring__TEXT d T__literal8__TEXT h( __bss__DATA X__la_symbol_ptr__DATA D | P  "|! |> xB>^~؞ؾ<_8B <_8B <_8B <_8B ɾ *<_8B LA<_8B ɢ<_8B  $PɾPP2<_ Th(<_8B <_8B  H<_8B <_8B <_8B 8p8^x>|x|FxHph<_8B ɾpɞx @h``H`<_8B ɾp ^`hH @8p8^x>|x|FxH <_8B ɾpɞx @h``HiX<_8B ɾp ^`hH8<_8B  Hp<_8B ɂ<_8B ɾp `@`hHQHɾ (<_8B LALH$<_8b<_8 $Hm8)Hp<_8B h<_8B >@@H<_8B 2`h$<_8B <_8B ɢ<_8B 2<_8B >H@Hy2<_8B <_8b 0H<_8B ɢ<_8B  h@H>^H<_8B  HU>H<_8B ɢ<_8B  h@H8HLɾ`X $ H)ɾ@8 $ H $<_8B K|x!|N |!p|> xB>h^p8X<_8Bɢhh(h<_8Bɢp(<_8B *p<_8Bɢ<_8Alɾhh2ɾpp 2 * HPP<@8`^H~L8@8`^8~<ɾP<_8@LHDɾhh2ɾpp 2 * HP<@?8`^H~LKH0ɾHh2ɾHp 2 `@H58P<_ɢ8h@x<_8Bɢ<_8A\><_8B0 <_8Bɢ8h$<_8B * H]^8xH<_8Bɢ<_@h$H<_8Bɢ<_8B2Ph$ ^HH9@<_8B8X ^@|xH^X/A4XxHx|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC=|׽?!TD-?ëx Ht HhëL HH H@ ءH< ءH0 H, @H$ H Hë H H H H xH x0H H 8H H H H 8HHë H 8Hë H 8H H H (H (H H| Hh Hd H   ë ( (   ë | xlë\ X P ءL ء HëD L@ L 08 4  (ë       ء ء       ë      ë @ @ $  p hl h LPë8 4 , ( ë  ë  ë  ë| x lëP L @ë      ë     p p T ء ء    h h Lt (p ( d ` T P D ء@ ء  С С ̡Ȭ ̡ȫ ȡ ȡ  ġ ġ< h Xht Hl tHT (L (4 ,    Ȭ ȫ     h 8ht Hl THT (L p(4 ,   @P<P8P4P0P,P(P$P PPPPP PPPP      (        0m7DKx<T1]d_lamccinvint_lamccinvdyld_stub_binding_helper_sqrt_log_ptitle_msfnz_offsetp_radius2_tsfnz_tsincos_cenlonmer_p_error_stanparl_origin_adjust_lon_phi2z_pow_atan2_sin_r_major_r_minor_false_easting_false_northing_es_e_center_lon_center_lat_ns_f0_rh#1/12 1295536322 505 505 100644 4364 ` merfor.o8 T__text__TEXTT__picsymbolstub1__TEXT 0 __cstring__TEXT Ht__literal8__TEXTh__bss__DATAH__la_symbol_ptr__DATA0<   P  |!`|> xB>H^P~X؞`ؾhp<_8BH<_8BP<_8BX<_8B`<_8Bp<_8Bh<_8Bɢ<_8B $8ɾ882<_Hh(<_8B<_8B H<_8B>`H>`H<_8B2>`H2<_Hh( HM$<_8B<_8bHm<_8Bɢ<_8B h@H<_8B H<_8B H<_8Bɢ<_8B h@H8|x!|N |!|> xB>H^PP<_8BD (<_8BLOA>PH8<_8B ^P~8H@<_8Bɢ<_8B2<_8BɢHh( H2<_8B *^<_8B<_8Bɢ<_8B2>@H2(^8XH$<_8b<_80HA85XHX|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N MERCATORTransformation cannot be computed at the polesmer-forward??!TD-=|׽`ë\\,X\0,T,,P,,,ë,,, ,,,,,ë,,,,,,ëС,С,xë`x,\xL,Lp,HpD,ë    ëȡ ȡ ë  ë  | x tëp l  d ` TëHh DhH 8ë(ء $ء ëС С ëء ء ء ء h hH        | pȡ lȡ ` \ P L @ < tlTL4Ȭ,ȫ h0hHLH(h(tlTL4Ȭ,ȫ ,P(P$P PPPPP PPPP        z^I3@ri8N-W_merforint_merfordyld_stub_binding_helper_sqrt_log_ptitle_offsetp_cos_radius2_tsfnz_cenlonmer_p_error_origin_adjust_lon_sin_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e_m1 #1/12 1295536323 505 505 100644 3980 ` merinv.o8 PT__text__TEXTXTX__picsymbolstub1__TEXT`` , __cstring__TEXT __literal8__TEXT$__bss__DATAH__la_symbol_ptr__DATA,,    P  8|!`|> xB>H^P~X؞`ؾhp<_8BH<_8BP<_8BX<_8B`<_8B p<_8B(h<_8Bɢ<_8B $8ɾ882<_h(<_8B<_8B Hq<_8B>`H>`H<_8B2>`Hi2<_h( H $<_8B<_8bH <_8Bɢ<_8B h@Hi<_8B Hu<_8B H<_8B(ɢ<_8B  h@H8|x!|N |!|> xB>H^P8@<_8B$ɢHh(H<_8BɢPh(PPP<_8Bɢ<_8B 2 $ H8<_8B8@ ^8|xH^@/A@XHT<_8Bɢ<_8B2Hh$<_8B * H=^8XX|x!|N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N MERCATOR?$ë$$8$8$$$ë($($ë8$8$|$x$\@$X@$DH$@H$$ë@ @ H H( ë   ë  ë  | x tëp l d8 `8 TëHС DС 8ë(0 $0 ë( ( ë0 0 0 0 С С     H H( @ |@ p l  ` \ P L @ < TLX4,th hHH((tȬlȫTL84ܡ,ܡTءh ءph(P$P PPPPP PPPP       @H0(8  jWI;@bv3N}-_merinvint_merinvdyld_stub_binding_helper_sqrt_ptitle_exp_offsetp_cos_radius2_cenlonmer_origin_adjust_lon_phi2z_sin_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e_m1 #1/20 1295536323 505 505 100644 2588 ` millfor.o8 0T __text__TEXTT`C__picsymbolstub1__TEXT4x __cstring__TEXT__literal8__TEXT,__bss__DATA __la_symbol_ptr__DATADX p P|!|> xB>8^@~H؞P<_8B8<_8B@<_8BH<_8BP<_8bH>8H>@H<_8Bɢ<_8B h@Hy8|x!|N |!|> xB>H^P<_8B0ɢHh( Hu8<_8B8ɢ82<_8B@ *^ɾP<_$<_8B * H Hm<_8B82<_2<_8BH *^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N |B}h=k|`}N MILLER CYLINDRICAL?!TD-@?((H8thëXءTءLH0 , @8 ë0ë((  |tëpl`(\(P L @<0,`|hhtHlHT(L(4,  P P P P P P P  fiu ( R^/<4EM_millforint_millfordyld_stub_binding_helper_log_ptitle_offsetp_radius_tan_adjust_lon_cenlon_R_lon_center_false_easting_false_northing #1/20 1295536323 505 505 100644 2588 ` millinv.o8 0T __text__TEXTT`C__picsymbolstub1__TEXT4x __cstring__TEXT__literal8__TEXT,__bss__DATA __la_symbol_ptr__DATADX p P|!|> xB>8^@~H؞P<_8B8<_8B@<_8BH<_8BP<_8bHm>8H>@H<_8Bɢ<_8B h@Hy8|x!|N |!|> xB>8^@<_8B@ɢ8h(8<_8BHɢ@h(@<_8B8ɢ8h$<_8B0 * H5^<_8B8ɢ@h$<_ $ H H<_8B(<_ 2^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N |B}h=k|`}N MILLER CYLINDRICAL?!TD-?@ءءëtp`\8Lë<80($8( (H  @ë((  |tëpl`(\(P L @<0,`|hhtHlHT(L(4,  P P P P P P P  gjv ( SM_7</E_millinvint_millinvdyld_stub_binding_helper_ptitle_exp_offsetp_radius_atan_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/20 1295536323 505 505 100644 3340 ` molwfor.o8 T__text__TEXT T c__picsymbolstub1__TEXT t $  __cstring__TEXT >t__literal8__TEXT`8__bss__DATA __la_symbol_ptr__DATA  $  X P d|!|> xB>8^@~H؞P<_8BH<_8BP<_8B8<_8B@<_8bH>8H>@H]<_8Bɢ<_8B h@H8|x!|N |!p|> xB>h^p<_8Bɢhh( HXpP>pH<_8B| 2@88>PHP*@ (P>PH<_ *$HɾPH *PH<_8BA@8/1@$<_8bH<_8hH8xH^888KTɾP<_ $Pp<_8Bh(<_8BAH8@8`^X~\<_8Bɢ<_8B2X2>PH2<_8B *^<_8Bɢ<_8B2>PHA2<_8B *^8xx|x!|N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N MOLLWEIDEIteration failed to convergeMollweide-forward@ !TD-=|׽?!TD-?d)?f;?@ССëȡȡ|ëdx`xXT0h,h ppëLLh,,HhhxTë8`4`|(ëëССȡȡ|tëp l `\PL@С<С0ȡ,ȡȬȫtlThL8h4H,TH( p(PPPP PPPP     o~ Vb@7M/Ej_molwforint_molwfordyld_stub_binding_helper_ptitle_offsetp_cos_radius_p_error_adjust_lon_cenlon_sin_false_easting_false_northing_R_lon_center#1/20 1295536324 505 505 100644 3236 ` molwinv.o8 T`__text__TEXTTa__picsymbolstub1__TEXTT  __cstring__TEXT T__literal8__TEXT0d__bss__DATA` __la_symbol_ptr__DATA@   < P |!|> xB>8^@~H؞P<_8BXH<_8B`P<_8BP8<_8BH@<_8bH>8H>@H<_8BXɢ<_8B` h@Hy8|x!|N |!|> xB>H^P<_8BɢHh(H<_8BɢPh(P<_8Bɢ<_8B,2Ph$88<_8B4AH<_8B48>8H]@<_8Bɢ<_8B<2>@H2Hh$<_8B| * H^^ɢ<_8BDAH><_8BD ^ɢ<_8BLAH><_8BL @*@* H]*<_8BL $88<_TAH<@?8`^8~<>8H-^8|x!|N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N MOLLWEIDE?f;??d) !TD-@ !TD-?ë88Tt0p0LdëD0@0L(0$0L( (D((Dë``|ë  <hhëtp4\X484,,h(hxxppëxx`ppX|tëpl``\`HPhLhP@x<x`0p,pX\\tXȬXȫTTPPtLhlLhTHHLHH4D(,D(@ @8PPPP PPPP    lp{xh` MfY@7/Ea_molwinvint_molwinvdyld_stub_binding_helper_ptitle_offsetp_cos_radius_adjust_lon_cenlon_sin_asin_false_easting_false_northing_R_lon_center #1/20 1295536324 505 505 100644 5012 ` obleqfor.o8 8T__text__TEXTT <__picsymbolstub1__TEXT440 __cstring__TEXT`I__literal8__TEXT __bss__DATAP__la_symbol_ptr__DATA0   t P  |!p|> xB>8^@~H؞PؾX`hp<_8B8<_8B@<_8BH<_8BP<_8BX<_8B`<_8Bh<_8Bp<_8bHH<_8B H<_8B H<_8B Ha<_8B <_8\H<_8B <_8pH<_8B <_8Hm<_8Bɢ<_8B h@H<_8B <_8<_8H8|x!|N |!0|> xB>^<_8Bɢh(p88^>|x|FxHi8x8^>p|x|FxHQ<_8B@ɢ2<_8BHɢ2 2 * Hhɾxm2<_8BHɢ2<_8B@ɢ2 2 ( X@HA<_8B  *`88^>`|x|FxHɾh<_ $ H*XɾXrPɾXrHɾP<_ $ H@ɾH<_$>@H2@*<_8B( $ H$X>XH8<_8B0ɢ<_8B828*<_8B0 $ H12<_8BP *^<_8B(ɢ<_8B82@*<_8B( $ H2>8H28*<_8B0 $ H$<_8BX *^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N |B}h=k|`}N |B}h=k|D}N |B}h=k|(}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @0ج0Xëtجp0\Lë<ج8(ث$ج 8ثج(ث(ج(Pëج0ثج8ثج0ëج(pëdج`PëDج@ ëجëج ëج@ث ج HlëL جH Hث8ج4@0ëجë  |xëh0d0\(X(TëPL@<8ë40p$ ëtt\ëëëë``H00((|pl`\PL@<tHlHT(L(4ܡ,ܡء ءԡȬԡ ȫСС(̡̡Dȡhȡ`htġHlġ|HT(L(4, ,P(P$P PPPPP PPPP    (0 GvMnBf91^}U_obleqforint_obleqfordyld_stub_binding_helper_ptitle_offsetp_cos_acos_cenlat_tsincos_radius_genrpt_cenlon_atan2_sin_asin_R_lon_center_lat_o_m_n_theta_false_easting_false_northing_sin_lat_o_cos_lat_o#1/20 1295536324 505 505 100644 5172 ` obleqinv.o8 T,__text__TEXTT __picsymbolstub1__TEXTT4 __cstring__TEXTI__literal8__TEXT D__bss__DATA0P__la_symbol_ptr__DATA4 L(  0 P  |!p|> xB>8^@~H؞PؾX`hp<_8B@8<_8B@<_8B H<_8B0P<_8B8X<_8B(`<_8BXh<_8B`p<_8bH]<_8B@ H<_8B H5<_8B  H<_8B0 <_8H<_8B8 <_8H<_8B( <_8H<_8BXɢ<_8B` h@H<_8B  <_8H<_8PH8|x!|N |!@|> xB>^<_8Bɢh(<_8Bɢh(<_8Bxɢ<_$<_8Bxɢ<_8B2h$ H%2@<_8Bpɢ<_8B2h$@*<_8Bx $ H2>@H$`<_8Bpɢ<_$>`H2H>HHe*X>@HQ*H*<_8Bp $ H)2>HH$PɾXX2ɾPP 2 * H<_ $`>`H*p>X^PHh<_8Bhɢhh(888^>8|x|FxH8x8^>p|x|FxH<_8Bɢ2<_8Bɢx2 2 * HE^ɾxm2<_8Bɢ2<_8Bɢx2 2 ( X@H<_8BX * HM^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @ë0ج0Xëp`جl`ث\hجXh<ëhجhث`ج`ë@ج@hëجxH8ë(Hج$HpëجثHجHpëPجPxث|XجxXثpHجlHp\ëDXج@Xث8Pج4Pxث,ج(ث PجPxثxجxثpجpëhhP``H8|8 xëhxdx`\pXpXTëPܡLܡ@@<@(8ë4ȡ0ȡ$P P8ëHH0ë88 ë00ëXX@ëxx`ppX@@(P|P8pHlH0`8\8 P0L0@X<X@((t$hl$hT HL H4(,( ,ȬHȫ  dthlhTHLH4(,( 0P,P(P$P PPPPP PPPP    X08HP@px`hnMzHf?7^1U_obleqinvint_obleqinvdyld_stub_binding_helper_sqrt_ptitle_offsetp_cos_cenlat_tsincos_radius_genrpt_adjust_lon_cenlon_atan2_sin_asin_R_lon_center_lat_o_m_n_theta_false_easting_false_northing_sin_lat_o_cos_lat_o #1/20 1295536325 505 505 100644 15484 ` omerfor.o8 T__text__TEXTTl__picsymbolstub1__TEXT@5H __cstring__TEXT)T__literal8__TEXT0__bss__DATA__la_symbol_ptr__DATAH$89$);T P8$|!|> xB>^~؞ؾ>^~ٞ<_8B<_8B<_8B <_8B<_8B4<_8B<<_8Bɢ<_8B $ɾ2<_Dh(<_8B,<_8B, H<_8B$<_8B <_8D<_8LH<_8B,ɢ<_8BD2<_8BD2<_Dh(<_8B,ɢ<_Dh( H-<_8BL <_BLH <_8B,2<_8B,ɢ<_Dh($<_D * H<_8BT<_8Bɢ<_8BT2<_8B 22 $<_8B\<_8B<_8BA<_8B$ɂ<_8Bɢ<_8BD `@h`H>H<_8BTɢ2<_8BLɢ 2 $<_8Bd<_8Bdɢ<_8Bd2<_D(<_TAHH<@?8`^~<_9"d<@?8`Ii<_9"l<@?8`IiHH<_8BdP<_8BT>@HP 2<_8Bl<_8bH1<_8Bɢ<_8B h@H<_8B  <_8H<_8B<ɢ<_8B4 h@H /AH<_8Bɢ<_TOAP<_8Bd<_8Bdɢ<_8Bd2<_D ( H!(PK<_8Bdɢ<_8Bd2<_D ( H <_8Bd *PK<_ɢ\P$P*<_d 2H>H<_8Bd $ H @>@HH 2 H <_8BT$h(<_8Bɾ<_8B 2 <_8$H]<_8B H<_8B H <_8Bɾ<_8B@ɾ<_8B$ (<_8B@`>@<_8|<_8H ><_8<_8H m<_8Bɢ<_TOA<_8B\ɢ<_8BT $P<_8Bdɢ<_8Bd2<_D ( H <_8B $ H ]2<_8BtH<<_8B\ɢ<_8BT$<_8Bdɢ<_8Bd2<_D ( H Y<_8B $ H 2<_8BtH<_8bD<_8XH 8ɐH(>H 8<_8B$ ^~8H >H 8<_8B$ ^~8H <_8BT>@H x<_8BT>@H ap<_8Blɢx $P<_ɢ\P$P*<_d 2H<_8Blɢ<_8Bl2ɾpx 2l(<_8Blɢ<_8Bl2ɾpx 2 * $hɾpx(ɾpx * $`ɾ (XɾX<_8B,AHɾ<_8B4 (ɾX<_8B<AHɾ<_8B4 *ɾ (Xɾ*<_d2<_8BTɢ<_l2X 2 H h2` $ H Q<_8BT $*<_8B<_8Bɢh( H -X<_8BTɢX 2 H iH $ H @>@H A<_8Bd 2 Haɾ<_8B 2 <_8dH 5ɾ<_8B 2 <_8H ɾ<_8B 2 <_8Hɾ<_8B 2 <_8Hɾ (<_8BOA0ɾ<_8BOAH$<_8bD<_8XH8ʐHɾ<_8B$ (<_8BOAD<_8B<_8B$ (<_8BOA|H$<_8bD<_8XH8ʐH>@<_8|<_8Hm><_8<_8HU<_8Bɢ<_TOAH$<_8bD<_8XH}8ʐH<_8B\ɢ<_8BT $P<_8Bdɢ<_8Bd2<_D ( H<_8B $ H!2<_8Bt8H<_8B\ɢ<_8BT$<_8Bdɢ<_8Bd2<_D ( H<_8B $ H2<_8BtKt|x!|N |!@|> xB>^>H<_8B ɢh( H!@<_8B Lɢ@ 2 H]`<_8Bl (<_8BtA ɾ<_OAH <_8B  ^~H8<_8B d<_8B L>8@H$p<_ɢp$p*<_ 2H<_ɢp$p*<_ 2<_8B tɢH2<_8B |ɢ` 2( $X<_8B Lɢ@ 2 Hxx<_8B|A<_8B |ɢH2<_8B tɢ` 2*x $ H1<_8B T2<_8B L $hɾx<_A8H0<_8B Tɢ<_8B L2@ 2hHH|<_8B Tɢ<_8B2<_8B L$hh*hH@<_8B tPX<_8B Tɢ2<_8B L $hX<_ (<_8BtOA(H<_8B tXK<_8B Tɢ<_2<_ɢX(ɾX<_ * $ H92<_8B L $P<_8B lɢhh(h<_8B ɢP2<_8B 4*<_8B ɢh 2 *^<_8B ɢh2<_8B ,*<_8B ɢP 2 (^8H$<_8b<_8H8͐H|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N |B}h=k|`}N |B}h=k|D}N |B}h=k|(}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Point projects into infinityomer-for=|׽@Lc˰?!TD- !TD-@!TD-@ !TD-?@??!TD-=|׽>z򚼯H@ !TD-??ë $| $x$t$L$H $<P$8P ,$($$ $$ $X$X 4$$ $$ l$p$p L$ëȡ$ȡ$ȡ$ȡ$x$t$lx$hx T$X$T t$<$8t$,ȡ$(ȡ$p$ p L$x$x T$$ t$p$p L$$$x$x T$p$p L$|x$xx T$h$d$Pp$Lp L$@x$<x T$0ë$  t$$ |$$|$ëp$p L$$ |$$ t$t$p$\ȡ$Xȡ$L$H$4$0$ ëp$ p L$$ d$ë@$@ $$$$t$$l$ëpp$lp L$`ëL0$H0 $<ë  t ë   ë ` `D  d  d tp ppT hx dx\ P Lt @ë 0 , ë ` `D  d  d p pT x x\ ë t tX ` `D p pT 8 8 ë    | të p l h d| Pë Lt HtX D` @`D (0 $0 @ @$ 8 8 0 0 @ @$ ë t tX ` `D 0 0 p0 l0 Xë T P @8 <8 4ë 0 , 8 8 ë   8 8 ë  d 8 8 ë  d   xë dp `pT Të @0 <0 40 00 p pT  ë  l p pT  d P P4 xX tX< `P \P4 DH @H,lllldxx\pll`ëPpLpT@ë0p,pT ë @@$ë@@$ëttX``Dtëxthë\`X`DLHd@<d0p,pT$x x\tëë``DddppTxx\ppT|8x8tëplhd\ëXTPL|8040$@ @$ 0088ë88ë00ë@@$8800ppTx`Pë@<d0ë dxx\dë``Dddë``DdxtdlhdXpTpTL8H84ë$P P4XX<ë (( ë  ëlëppTdlhlTPd0p,pT$` `DdddhhLppTë``D88@@$p0l0`8\8TxPx\4(0( $p pT ppTë``D``DHH,HH,ëhhLhhLë``D|HxH,l`h`D\`X`DL`H`D@H<H,8ë4h0hL,`(`D88@ @$ëHH,HH,``D  XX<PP488t(p( d ` TP4,,Ȭ Hȫ  dhhHHt(l(TL4, Ȭ (ȫD`h|hHHtܡ(lܡ(TءLء4ԡ,ԡСȬ СD(P@(P<(P8(P4(P0(P,(P((P$(P (P(P(P(P(P (P(P(P(P$!"&'% #$!"&'% # (8PXH@` hpx!%019AHO BgR}5I:W/x`o_omerforint_omerfordyld_stub_binding_helper_sqrt_log_ptitle_asinz_offsetp_cos_radius2_tsfnz_cenlat_tsincos_tan_genrpt_p_error_atan_adjust_lon_cenlon_pow_sin_r_major_r_minor_scale_factor_lat_origin_false_northing_false_easting_es_e_sin_p20_cos_p20_bl_al_d_el_lon_origin_singam_cosgam_sinaz_cosaz_u #1/20 1295536325 505 505 100644 15220 ` omerinv.o8 0T__text__TEXTTj__picsymbolstub1__TEXT t4,P __cstring__TEXT__literal8__TEXT__bss__DATA__la_symbol_ptr__DATA8P67,9d P7L(|!|> xB>^~؞ؾ>^~ٞ<_8Bl<_8Bt<_8B|<_8B<_8B<_8B<_8Btɢ<_8Bl $ɾ2<_h(<_8B<_8B H<_8B<_8B <_8<_8H <_8Bɢ<_8B2<_8B2<_h(<_8Bɢ<_h( H<_8B <_BH<_8B2<_8Bɢ<_h($<_ * H!<_8B<_8Blɢ<_8B2<_8B|22 $<_8B<_8B<_8BA<_8Bɂ<_8Bɢ<_8B `@h`HQ<_8B>HY<_8Bɢ2<_8Bɢ 2 $<_8B<_8Bɢ<_8B2<_(<_A$HP<_9"<@?8`Ii<_9"<@?8`Ii<_9"<@?8`IiHT<_8BP<_8Bɢ<_8B h@H}P 2<_8B<_8bHU<_8Blɢ<_8Bt h@H<_8B| <_8HU<_8Bɢ<_8B h@HQ/AH<_8Bɢ<_OAP<_8B<_8Bɢ<_8B2<_ ( H e(PK<_8Bɢ<_8B2<_ ( H %<_8B *PK<_ɢP$P*<_ 2H>H5<_8B $ H @>@H H 2 H <_8B$h(<_8Bɾ<_8B 2 <_8H <_8B H <_8B H <_8Bɾ<_8B@ɾ<_8B (<_8B@`>@<_8<_8H ><_8<_8 H <_8Bɢ<_OA<_8Bɢ<_8B $P<_8Bɢ<_8B2<_ ( H !<_8B  $ H 2<_8BH<<_8Bɢ<_8B$<_8Bɢ<_8B2<_ ( H <_8B  $ H 2<_8BH<_8b<_8H 8ɐH(>H 8<_8B ^~8H x>H i8<_8B ^~8H p<_8B>x@H <_8B>p@H <_8Bɢ $P<_ɢP$P*<_ 2H<_8Bɢ<_8B2ɾ 2l(<_8Bɢ<_8B2ɾ 2 * $hɾ(ɾ * $`ɾ (XɾX<_8BAHɾ<_8B (ɾX<_8BAHɾ<_8B *ɾ (Xɾ*<_2<_8Bɢ<_2X 2 H Uh2` $ H <_8B $*<_8B<_8Bɢh( H qX<_8BɢX 2 H H $ H @>@H <_8B 2 Hɾ<_8B 2 <_8Hyɾ<_8B 2 <_8$HUɾ<_8B 2 <_8DH1ɾ<_8B 2 <_8dH ɾ (<_8BOA0ɾ<_8BOAH$<_8b<_8H8ʐHɾ<_8B (<_8BOAD<_8B<_8B (<_8BOA|H$<_8b<_8H58ʐH>@<_8<_8H><_8<_8 H<_8Bɢ<_OAH$<_8b<_8H8ʐH<_8Bɢ<_8B $P<_8Bɢ<_8B2<_ ( H<_8B  $ He2<_8B8H<_8Bɢ<_8B$<_8Bɢ<_8B2<_ ( HY<_8B  $ H2<_8BKt|x!|N |!@|> xB>^<_8Bɢh(<_8Bɢh(8<_8Bɢ2<_8Bɢ 2 (h<_8Bɢ2<_8Bɢ 2 *`<_8Bɢ`h*`<_8BPh2<_8B $ H1X<_ɢX$X*<_ 2P<_ɢX$X*<_ 2x<_8Bɢ`2<_8B $ H@<_8Bɢ@2<_8BɢP 2*x $88<_ (<_8BOA<_8Bɢ<_h$p<_8Bɾ8<_*<_ɢ8 ( $ H$ ^pHH<_8Bp8 ^H|xHm^/ApH`<_8B`^ɾ8<_OA><_8B Hԁ><_8B HH<_8Bɢ`2<_8B $ H]p<_8B`<_8BɢP2<_8Bɢ@ 2 ( ^pH<_8B $(>H ^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: =|׽@Lc˰?!TD- !TD-@!TD-@ !TD-?@?=|׽?!TD-!TD-??ë@@ë@@@|@t@p`@dëT@P@@@<@ @@@@0@0@@`@ë@p@xëd(@`(@X(@T(@H@D@8(@4(@,@(@@@(@(@@@@@ë@@@@ @| @h(@d(@X @T @@@<@0ë @@@@@@ @ @(@(@ @ @(@(@p@l@Xȡ@Tȡ@   ë ( (  ë С С         l h \ë L( H(  <ë 0С ,С         ë         ë ( (      ë     lë h d ` \ D @ 0 ,       ë         të p ld \ X Pë L` H`D 8 4 ,ë (@ $@$   ë       ë     ë  | pë \ X P L < 8 , ë         ȡ ȡ | x ` \  |ëlh\ëLH<ë($ëëë(( ëxСtСhd\XLH@<0, ë( ( ëССë((   xëtplhTP@<($ ëëë|lë\XLë<8$  ëССëССtphdPë@<4ȡ0ȡ,ë($|ëtlëë|xd`LH84,С(С ءءëëССpl`\TP40|$ l ëССССëءءءءëСС|xlСhС\СXСLСHС@<8ë4ء0ء,С(С ëССltȡȡtp|d`tTPltlThLh4|H,|4Hx( xP(ttlpplȬlȫhhtdldT`hL`h4\H,\HX( X0(TTLPPhLȬLȫHHtDlDT@hL@h4<H,<H8( 8(L+PH+PD+P@+P<+P8+P4+P0+P,+P(+P$+P +P+P+P+P+P +P+P+P+P'$ %)*(!"#&'$ %)*(!"#& $(,037CKS Z(a $BgR=}I5W/x`o_omerinvint_omerinvdyld_stub_binding_helper_sqrt_ptitle_exp_asinz_offsetp_cos_radius2_tsfnz_cenlat_tsincos_tan_genrpt_p_error_atan_adjust_lon_cenlon_phi2z_pow_atan2_sin_r_major_r_minor_scale_factor_lat_origin_false_northing_false_easting_es_e_sin_p20_cos_p20_bl_al_ts_d_el_lon_origin_singam_cosgam_sinaz_cosaz_u#1/20 1295536325 505 505 100644 3708 ` orthfor.o8 T__text__TEXT T$s__picsymbolstub1__TEXT @t ( __cstring__TEXT`5__literal8__TEXT__bss__DATA8__la_symbol_ptr__DATA(    P L|!|> xB>8^@~H؞PؾX<_8B8<_8B@<_8BH<_8BX<_8BP>H<_8<_8H<_8bHH<_8B H <_8B H<_8B H%<_8Bɢ<_8B h@HA8|x!|N |!p|> xB>h^p<_8Bɢhh( HP8X8^`>p|x|FxH>PHH<_8BɢX2<_8Bɢ`2H 2 *8<@?8`^@~Dɾ8<_dAD8<_8B\OA$<_8b4<_8PH8xH<_8Bɢ@2`2>PH2<_8B *^<_8Bɢ@m2<_8BɢX2<_8Bɢ`2H 2 (2<_8B *^8xHx|x!|N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N ORTHOGRAPHICPoint can not be projectedorth-for=|׽<<<<<<С<|С<h<d<Xë<С<8С<(ë$< P<p<p4<<\<<d<<<<<hëTء<Pء<ëëëءءëССë``Hëtpd`TPDء@ء4С0С4̡H,̡Hȡ( ȡ(ġġȬȫtl,ThLHh4H,dH( ($P PPPPP PPPP        rN@7ja/Y~E_orthforint_orthfordyld_stub_binding_helper_ptitle_offsetp_cos_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_sin_r_major_lon_center_lat_origin_false_northing_false_easting_sin_p14_cos_p14 #1/20 1295536326 505 505 100644 4772 ` orthinv.o8 T__text__TEXTT 4__picsymbolstub1__TEXT4d0 __cstring__TEXT`-__literal8__TEXT __bss__DATA8__la_symbol_ptr__DATA0    P D|!|> xB>8^@~H؞PؾX<_8B8<_8B@<_8BH<_8BX<_8BP>H<_8<_8H<_8bHHa<_8B H<_8B H<_8B H<_8Bɢ<_8B h@HA8|x!|N |!p|> xB>h^p<_8Bɢhh(h<_8Bɢph(pɾhh2ɾpp 2 * HAH<_8Bɢ<_8BT*HAx<_8BɢHh$ H5@8P8^X>@|x|FxHU<_8B^H<_8B\OAH$<_8b4<_8HHi8xHTɾX<_8B2ɾPp2<_8B2H $ * Hy^<_8B<_8Bd (88<_8B\OAH$<_8B^8xHX^ H<_8B 2(88<_8B\OAH<_8Bɢ<_lOAL<_8BhP ^pHm( H=^8xHpP>h@H1<_8B * H^8xHh<_8B\OAHdɾPh2<_8B2ɾ8H 2 `@H<_8B * Ha^8xx|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N ORTHOGRAPHICInput data errororth-inv>z򚼯H=|׽?!TD-ë<<ë`<\<8<4\<ë<<ë<<<l<|<x<`<\\<@<<<0ë<<<\<<d<<<ë<<p<l<XëT<PH<Lp<Hp4<0<,\<<< ë<<<T<<<ël<h<T<P<ëëëëë``Hëtpd`TPD@40tܡHlܡHTء(Lء(4ԡ,ԡС С̡Ȭ̡ȫȡȡ ġġ<hXhtHltHT(L(4, ,P(P$P PPPPP PPPP        z=VDri5a/M_orthinvint_orthinvdyld_stub_binding_helper_sqrt_ptitle_asinz_offsetp_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_atan2_sin_r_major_lon_center_lat_origin_false_northing_false_easting_sin_p14_cos_p14#1/20 1295536326 505 505 100644 5668 ` polyfor.o8 TH__text__TEXTT ݀__picsymbolstub1__TEXT4@ __cstring__TEXT 4__literal8__TEXT D__bss__DATAHh__la_symbol_ptr__DATA@ \  P  |!`|> xB>X^`~h؞pؾx<_8B0X<_8B8`<_8B@h<_8BHp<_8B<_8Bx<_8B8ɢ<_8B0 $HɾHH2<_h(<_8Bx<_8Bx H<_8Bp<_8Bx H5<_8BP<_8Bx Hq<_8BX<_8Bx H<_8B`<_8Bx H<_8Bh<_8BPɂ<_8BXb<_8B`B<_8Bhɢ<_8BH `@X`PhH<_8B<_8bH)<_8B0ɢ<_8B8 h@H<_8B@ H<_8BH H<_8Bɢ<_8B h@H8|x!|N |!`|> xB>x^ȑ<_8Bɢxh( HX<_8BTOA\8`8^h>|x|FxH<_8Bb<_8Bɢ<_8Bɂ<_8B X@h``ȾHiP<_8Bɾ`ɞh @h``H}Hɾ`XrX<_8BɢH2>XH2`$<_8B *^<_8BɢPh(>XH<_\h(H2` $*<_8B2<_8B *^Hh<_8BɢX2<_8B *^<_8Bɂ<_8Bɢ<_8B 2 (^H8|x!|N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|x}N |B}h=k|\}N |B}h=k|@}N |B}h=k|$}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N POLYCONIC?>z򚼯H?HHlhXHTH<8,H(H \ëëHHëhdXë<80x,x$p phhëTëXXhëXTLHDë8`4`H0ë$X X@ë PP8HH0ëë``Hhxx`ppXhhPhxëlhx`x\x`TëHDx<p8pX0ë$ xhhP ëxpëxxHH0PP8xth`d`HXXTX@HPDP88H4H0DȬD|ȫ@@<<8h8ht4Hl4HT0(L0(4,,,$( (@$Ȭ$\ȫ  xhhtHlHT(L(4 ,   <P8P4P0P,P(P$P PPPPP PPPPHPX`hpx iRC{5tI;W/`_polyforint_polyfordyld_stub_binding_helper_sqrt_e3fn_ptitle_e0fn_offsetp_cos_radius2_tsincos_cenlonmer_msfnz_e2fn_origin_adjust_lon_sin_e1fn_mlfn_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e_e0_e1_e2_e3_ml0#1/20 1295536326 505 505 100644 5260 ` polyinv.o8 8T__text__TEXTT ,ʀ__picsymbolstub1__TEXT|8 __cstring__TEXT __literal8__TEXT__bss__DATA`__la_symbol_ptr__DATA8<x P |!`|> xB>X^`~h؞pؾx<_8BX<_8B`<_8Bh<_8Bp<_8B<_8Bx<_8Bɢ<_8B $HɾHH2<_xh(<_8B<_8B H9<_8B<_8B H5<_8B<_8B H<_8B<_8B Hm<_8B<_8Bɂ<_8Bb<_8BB<_8Bɢ<_8B `@X`PhH<_8B<_8bhH-<_8Bɢ<_8B h@H<_8B H<_8B H<_8Bɢ<_8B h@H8|x!|N |!P|> xB>x^ؑ<_8Bɢxh(x<_8Bɢh(<_8BXɢh$<_8B *h8Xh<_8BOAɾhhm2<_8BXɢxh$<_8BXɢxh$ 2 *`<_8BB<_8Bxɢ<_8Bɂ<_8Bb<_8B8pPܐT P@h``Xh`H%XX/AXHH<_8BXɢxh$<_8Bh *^>8@8`IiHt8JHpɾpx2<_8BX $ H^ H$<_8Bh * Hy^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N POLYCONIC?>z򚼯HëxthhTëDء@ءXhءءXë|xpld`xXT8ء4ءX$ء ءX  ءءX((00Dë4(0((0$0 ë ëëءءëh  ëxtlh`\TëHD<80ë$  ëëxءء00x(t(hdXTHD8ء4ءԡhԡlhСHСHt̡(l̡(TȡLȡ4ġ,ġȬ ȫ0hLhHhHt(l(TL4,Ȭ 4P0P,P(P$P PPPPP PPPP(0 d|JcDn/Qt5<Z_polyinvint_polyinvdyld_stub_binding_helper_e3fn_phi4z_ptitle_e0fn_asinz_offsetp_radius2_cenlonmer_e2fn_origin_adjust_lon_sin_e1fn_mlfn_r_major_r_minor_lon_center_lat_origin_false_northing_false_easting_es_e0_e1_e2_e3_ml0 #1/12 1295536327 505 505 100644 5060 ` psfor.o8 T__text__TEXTT ƀ__picsymbolstub1__TEXT40 __cstring__TEXT@__literal8__TEXTX(__bss__DATAh__la_symbol_ptr__DATA0  t P  |!`|> xB>X^`~h؞pؾx<_8BX<_8B`<_8B<_8Bx<_8Bɢ<_8B $@ɾ@@2<_Ph(<_8B<_8B H<_8B<_8B H5<_8B<_8Bh<_8Bpɾp<_XAh<_9"<@?8`Ii<_9"8@8`Iip<_8B@ (<_8BHA(H <_9"<@8`IiKH<_9"<@?8`Ii<_8Bɢ<_8B 288H8^P>8|x|FxH<_8BɾHɞP @h``H<_8B<_8BɾH ^8`hH)<_8B<_8b(Hm<_8Bɢ<_8B h@H<_8B H5>x^Hi8|x!|N |!p|> xB>h^p<_8Bɢhh( H<_8B 2X<_8Bɢp 2P>PH@<_8B ^P~@H8<_8Bɢ<_@4<_8B*82<_8B $HH@<_8Bɢ<_8B282<_8B  $HH<_8BɢH2>XH2<_8B *^<_8BPH2>XH2<_8B *^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N POLAR STEREOGRAPHIC?!TD-=|׽?xthëPL84(ë ССxx|ëhȡdȡXë@<,( ë ءءëءءë|xtëp@l@(d`Xë@ȡ<ȡ40(ë ȡȡë``HpXlX@PL84(p$pXءءССëȡȡȡȡëhhPxthdXTHD84t(l(TL4,Ȭ ȫh,hHHHt(ld(TL4,Ȭ ,P(P$P PPPPP PPPP gsI9@1N{+W^_psforint_psfordyld_stub_binding_helper_sqrt_ptitle_msfnz_offsetp_cos_radius2_tsfnz_tsincos_adjust_lon_cenlon_sin_e4fn_r_major_r_minor_false_northing_false_easting_es_e_e4_center_lon_center_lat_fac_ind_mcs_tcs #1/12 1295536327 505 505 100644 5164 ` psinv.o8 pT__text__TEXTT dɀ__picsymbolstub1__TEXT t0 __cstring__TEXT__literal8__TEXT( __bss__DATA`__la_symbol_ptr__DATA0 4,  0 P  |!P|> xB>h^p~x؞ؾ<_8Bh<_8Bp<_8BP<_8BH<_8Bɢ<_8B $HɾHH2<_h(8>8Hm<_8B<_8B H<_8B<_8Bx<_8B ɾ<_Ah<_9"(<@?8`Ii<_9"08@8`Ii<_8B (<_8BA(H <_9"(<@8`IiKH<_9"0<@?8`Ii<_8B(ɢ<_8B  2@8P8^X>@|x|FxH<_8BɾPɞX @h``HM<_8B8<_8BɾP ^@`hH}<_8B@<_8bH<_8Bɢ<_8B h@H<_8B H>^H8|x!|N |!|> xB>X^`8P<_8BɢXh(<_8Bd 2X<_8Bɢ`h(<_8Bd 2`ɾXX2ɾ`` 2 * HH<_8Blɢ<_@|<_8BLɢH2<_8B4* $@<_8BD8P ^@|xHi<_8Bd 2^P/APH@<_8B|ɢH2<_8B4ɢ<_8Bt 2 $@K|PhHH<_ɢhAd`P>X@H8<_8Bdɢ82<_8BT * HY^8hH,<_8Bdɢ<_8BT 2^KЀh|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N POLAR STEREOGRAPHIC?!TD-=|׽?0ܬ0Tܫ@ܬ@dë0ܬ0Tܫ@ܬ@dtëXءܬTءܫ,Pܬ(Ptܫ ܬ4ܫ XܬX|ܫ@ܬ@dë ܬ Dܫܬ4ܫ(ܬ(LܫءܬءܫxHܬtHlhë8@ܬ4@dܫ$`ܬ `ܫ@ܬ @dܫhܬhë00ëtphd`ë\XPXLX@Dë, (  PP8ë  ë88 @@(HH0@@(pl\X<H8H0$@ @(СС88 00((ë    ëȡȡxth`d`HXhThPHD84t l ThLh4H,H( (Ȭ,ȫHtldThLh4H,H( (,P(P$P PPPPP PPPPh` (08@HPX b}n9@v1I+RY_psinvint_psinvdyld_stub_binding_helper_sqrt_ptitle_msfnz_offsetp_radius2_tsfnz_tsincos_adjust_lon_cenlon_phi2z_atan2_e4fn_r_major_r_minor_false_easting_false_northing_e_e4_center_lon_center_lat_fac_ind_mcs_tcs#1/12 1295536327 505 505 100644 8388 ` robfor.o8  @T __text__TEXT T  __picsymbolstub1__TEXT  __cstring__TEXT @ __literal8__TEXT Ph __bss__DATA p__la_symbol_ptr__DATA  (x PP |!|> xB>H^P~X؞`<_8B H<_8B P<_8B X<_8B `<_9" <_8B 8 <_9" <_8B @ <_9" 8@8`Ii<_9" <@?8`Ii<_9" <_8B H <_9" <_8B @ <_9" <_8B P <_9" <_8B X <_9" <_8B ` (<_9" <_8B h (<_9" <_8B p 0<_9" <_8B x 0<_9" <_8B  8<_9" <_8B  8<_9" <_8B  @<_9" <_8B  @<_9" <_8B  H<_9" <_8B  H<_9" <_8B  P<_9" <_8B  P<_9" <_8B  X<_9" <_8B  X<_9" <_8B  `<_9" <_8B  `<_9" <_8B  h<_9" <_8B  h<_9" <_8B  p<_9" <_8B  p<_9" <_8B  x<_9" <_8B  x<_9" <_8B  <_9" <_8B  <_9" <_8B  <_9" <_8B ( <_9" <_8B 0 <_9" <_8B 8 <_9" <_8B @ <_9" <_8B H <_9" <@?8`Ii<_9" <_8B P 88HP>88<_8B T8|@ɢ<_8B X 2<_8B U 8|@^8888/@<_8b (H >HHA>PHy<_8B ɢ<_8B  h@H8|x!|N |!p|> xB>X^`<_8BɢXh( HHɾ`<_$<_8Bt $@ɾ@<_8B| (hl88<@C0=?ɩlt^pph(@h(@^88<_8BT8|@ɂ^88<_8BT8|@ɢ^88<_8BT8|@(@2<_ $l*ɾ@@M2^88<_8BT8|@ɂ^88<_8BT8|@ɢ=?  2*^88<_8BT8|@ *2<_ $*<_8B2H2<_8B *^ɾ`=? OAH<_8B`P^88<_8BT8|@ɂ^88<_8BT8|@ɢ^88<_8BT8|@(@2<_ $L*ɾ@@-2^88<_8BT8|@ɂ^88<_8BT8|@ɢ=?  2*^88<_8BT8|@ *2<_ $ *2<_8B2=? $<_8B *^HD^88<_8BT8|@ɂ^88<_8BT8|@ɢ^88<_8BT8|@(@2<_ $l*ɾ@@M2^88<_8BT8|@ɂ^88<_8BT8|@ɢ=?  2*^88<_8BT8|@ *2<_ $*<_8B2<_8B2=? $<_8B *^H8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N ROBINSONvȴ9X?#?vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!R_robforint_robfordyld_stub_binding_helper_ptitle_offsetp_radius_adjust_lon_cenlon_R_lon_center_false_easting_false_northing_pr_xlr #1/12 1295536328 505 505 100644 10412 ` robinv.o8 PT__text__TEXT $T4__picsymbolstub1__TEXT @&, __cstring__TEXT8T__literal8__TEXT8__bss__DATAp__la_symbol_ptr__DATA&'L( P' |!|> xB>H^P~X؞`<_8BH<_8BP<_8BX<_8B`<_9"<_8B  <_9"<_8B( <_9"8@8`Ii<_9"<@?8`Ii<_9"<_8B0 <_9"<_8B( <_9"<_8B8 <_9"<_8B@ <_9"<_8BH (<_9"<_8BP (<_9"<_8BX 0<_9"<_8B` 0<_9"<_8Bh 8<_9"<_8Bp 8<_9"<_8Bx @<_9"<_8B @<_9"<_8B H<_9"<_8B H<_9"<_8B P<_9"<_8B P<_9"<_8B X<_9"<_8B X<_9"<_8B `<_9"<_8B `<_9"<_8B h<_9"<_8B h<_9"<_8B p<_9"<_8B p<_9"<_8B x<_9"<_8B x<_9"<_8B <_9"<_8B <_9"<_8B <_9"<_8B <_9"<_8B <_9"<_8B  <_9"<_8B( <_9"<_8B0 <_9"<@?8`Ii<_9"<_8B8 88HP>88<_8BT8|@ɢ<_8B@ 2<_8BU 8|@^8888/@<_8b H>HH>PH 9<_8Bɢ<_8B h@H8|x!|N |! |> xB>^ <_8B ɢh(<_8B ɢh(*<_8B \$<_8B  $xɾx<_8B d 2HɾH<_ $pɾp<_8B l (<h?FR@?C0@ ë , , (     ë     |  d `  L H  8 4                    l h  T P | 0ë ,, (, ( $       ` ` \                | x  X T  8 4           ` ` \ x x t    t` p` \ ` \  D @  , (        | hd TP 0,    pp l  lh PL ,(      xt `\ LH 0,    pp l |hxh dd` T`P` \40  ëë hdXXTX@D@ PP8HH0@@(88 00((x t pl`\XTHD@<0,($ ءءСС|pȡlȡhdXTPL@<84($  xphx|x`xthpdpX`\PhLhPHD8`4`H0, XX@PP8@@(HH0@@(x8t8 pl`\PL@<0,ܡ ܡ ء Ȭء ȫtԡ lԡ, TС LСH 4̡ h,̡d hȡ H ȡ HPP PPPP   cfr O[5F->_robinvint_robinvdyld_stub_binding_helper_ptitle_offsetp_radius_p_error_adjust_lon_cenlon_R_lon_center_false_easting_false_northing_pr_xlr #1/12 1295536328 505 505 100644 2236 ` sinfor.o __text__TEXT6__picsymbolstub1__TEXTd __cstring__TEXT __bss__DATA __la_symbol_ptr__DATA$  PT |!|> xB>8^@~H؞P<_8B8<_8B@<_8BH<_8BP<_8bhHM>8H>@H<_8Bɢ<_8B h@H98|x!|N |!|> xB>H^P<_8BɢHh( H18<_8Bɢ82>PH2<_8B *^<_8BɢP2<_8B *^8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N SINUSOIDALpl\XD@4ë ëë|tëplh`\PL@<0,h8hHTHt(lp(TL4,Ȭ  P P P P P P    _bn} KW>5-C_sinforint_sinfordyld_stub_binding_helper_ptitle_offsetp_cos_radius_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/12 1295536328 505 505 100644 2828 ` sininv.o8 T__text__TEXTXTO__picsymbolstub1__TEXT`p __cstring__TEXT@3__literal8__TEXTx__bss__DATA __la_symbol_ptr__DATA P  h P |!|> xB>8^@~H؞P<_8B8<_8B@<_8BH<_8BP<_8b(H>8HE>@H<_8Bɢ<_8B h@H8|x!|N |!|> xB>H^P<_8BɢHh(H<_8BɢPh(P<_8BɢPh$^^<_8BAD^<_8B (88<_8BAHH$<_8bl<_8H18XH<_8B^8XH`^ H<_8B2Hh$<_8B *8>8H^KX|x!|N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|x}N SINUSOIDALInput data errorsinusoidal-inverse?!TD-=|׽(ëëë``LLlpxlxPxLx($ ë|tëp@l@(`\PL@<0,(x(tȬlȫTL4,h  h P P P P P P P    hkw T`>5K-C_sininvint_sininvdyld_stub_binding_helper_ptitle_offsetp_cos_radius_p_error_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/12 1295536329 505 505 100644 14996 ` somfor.o| D__text__TEXT0(__picsymbolstub1__TEXT@58 __cstring__TEXT__literal8__TEXTHX__bss__DATAH__la_symbol_ptr__DATA86__nl_symbol_ptr__DATA@7%9| P7L|!|> xB>^X\~؞ؾ<_B(<_8B<_8B<_8B8<_8B@ɾ$ɾ $2<_ h(<_8B/Apxɾ<_8B $<_8B<_8B0<@C0=?ɩ(l^h(<_8BHlX/A<_8Bx<_9"<_8B \<@C0=?ɩ(l^h(<_8B2<_8B*<_8B 2<_8B0<_"(<_8B H<_8Bx<_9"<_8B \<@C0=?ɩ(l ^h(<_8B2<_8B*<_8B 2<_8B0<_"(<_8B <_9"8@8`Ii<_8bHQ<_8B8ɢ<_8B@ h@H/@$~\<_8Hр~X<_8Hɾx<_8B 2 <_8,H<_8B0ɢ<_8B 2 <_8HH<_8Bɢ<_8B h@H-<_B( <_8lH>xH)<_8B<_8B<_8BAH<_9"<_8B >xH<_8B<_8Bɢ<_8B2<_8B 2p<_8Bɢ<_8B2<_8B 2h<_ɢ p(<_8Bɢ=?  h( $<_8Bx<_8Bxɢ<_8Bx2<_ (<_8Bx<_8Bɢ=?  h(`ɾh` $<_8Bh<_8Bɢ<_0h(h2ɾ`` 2 $<_8Bpɾ``2` 2<_8B8@8`^~88^9>9~9^9|x|Dx}%Kx}f[x}GSxHEXP8H@8 H<@C0=?ɩ(l^h(88^9>9~9^9|x|Dx}%Kx}f[x}GSxHɾ<_82Xh*Xɾ=? 82Ph*Pɾ<_828h*8ɾ=? 82Hh*Hɾ<_82@h*@^8/Q@8H̀<@C0=?ɩ(l^h(88^9>9~9^9|x|Dx}%Kx}f[x}GSxH*Xh*X*Ph*P*8h*8*Hh*H*@h*@^8/H@0<_8B88^9>9~9^9|x|Dx}%Kx}f[x}GSxH ɾXh*XɾPh*Pɾ8h*8ɾHh*Hɾ@h*@ɾX<_@ $<_8BHɾP=? H $<_8BPɾ8<_@ $<_8B@ɾH=? P $<_8BXɾ@<_8B $<_8B`8|x!|N |!`|> xB>h^pȑ<_8BdXpP<_8B<ɢhh(ɾP<_8BlAH<_8BlPɾP<_8BtAH<_8BtPPH@ɾP<_OAH<_8B|`<_8Bɢ<_@H<_8B`P<_ɢhAH<_8B`8 H`8<_8Bɢ`2@ *>H EXAHɾ<_8Bd (ɾ<_OAH<@?8`^h~l<_ɢhAH<@8`^h~l>`H h2<_8B2` *<_8Bɢ2@ *>H ]<_8BdAHɾ<_8Bd (<_8Bɢ<_h(>HH ]2<_8B2>H <_8B 2* $>H mɾ * (XA(^8/2AK<_B4ɢ<_8B 2ɾ<_8B *p^ 8  /AɾhAHɾphAɾhAH<_8B`ɾpOAK<_8B|`K9><_8BbB iI bB iI8|x<_8H8֐xH>HHx<_8Bɢ<_h(<_8B2x2>HH<_8B2>H2(<_8Bɢx2x2<_h( H$ Hɾ<_$<_8B *>H H>Hɾ 2<_8Bɢ<_8B2>H2<_8B|ɢ2<_m*<_8Bɢ2<_*<_8Btɢ2<_ * 2 $ H2<_8B<_8Bɢ<_8B2<_8Bɢ<_8B 2 * H<_8BLɢ2* H<_8BT 2*ɾ<_ 2 H<_8B\ 2*<_8Bɢ2 $ (^^ɢ<_8BD 2^<_8Bdɢ2ɾ<_ 2 H<_8Bl 2*<_8Bɢ2 $ *^^ɢ<_8BD 2^^8^ɢ<_8B *^<_8Bɢ8 *^8xx|x!|N |!|> xB~^ɢ<_8BL 2^^ HXɾXX 2P<_8Bɢ<_8B 2^ H2<_8BɢP2<_Tm*<_8BɢP2<_T*<_8BɢP2<_T * 2 $ H2<_8B$<_8BɢP2<_T*<_8BɢP2<_T * $ HA@<_8BɢP2<_Tm*<_8BɢP2<_T*<_8BɢP2<_T * 2$<_8Bɢ<_8B 2 ( 2H<_8Bɢ<_8B2<_8B$ɢ<_8B$ 2 * He@<_8BɢH2<_8B$ɢ<_8B$ 2(@ $^^^* H}2^^^ɢ<_\ 2 HI2^<_8BɢH*<_8B$2@ $8^ H8 2^^ɢ<_d 2 H8 2^!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without conv som-forward@?=?[Ow򽴆&@` =p?FR5?)O?l0a\j?SC~lī@`)@Lc˰>. &֕@V@F?C0@@@>@N@.>z򚼯H?!z!z?!TD-@jz)U8^@|3!ҿ!TD-@ !TD-@!TD-?!TD-?@@@?F?@@ëdë$xëlh\Dë $$ë$$xtd`TPLD@T0,$ T ëTT$ëTxtlhTXTLHT84(ë  ëL<ء 8ء $С  С P PD   x xl ë  p |pd hP dPD 8 4 $h  h\ ëء ء ` `T ëX XL ë      x t l h \ëHȡ Dȡ 4 0t (ȡ $ȡ   ȡ ȡ  | ë    ëx t lС hС XHë<ȡ 8ȡ     ë   ë   ȡ ȡ    ë   L H 4 0|       @ @4 ë   ë   ë ȡ ȡ   p pd |p xpd dë D @ ( $ ë     p pd |ë \ X 0 ,       ȡ ȡ  |    t  t px lxl Xx Txl <H 8H< $p pd xx`00ppXhhPXX@X|X@phlhPd```HT`P`HHXDX@ë((0ë@@(PP8PP8lPhP8PPLP84P0P8(ë@@(ëXT84pHH0h88 x88 xxx88 xth8d8 TPD@84$ ë    ël|@x@(tëdء`ءXСTСPëL`H`H84,H(H0$ë DD, ë,,ëëXX@PP8ëȡȡ|@x@(pHlH0`\PL@<$@ @( @@(HH0ءء@|@(hСdС`\PȡLȡ4ȡ0ȡ@@(HH088 XX@xPtP8hءdءXСTСH@D@(<<T8Ȭ8pȫt4l4T0L04,h,,h(H (H$($(  4ȬPȫtllTL4 h, hH H4$P0$P,$P($P$$P $P$P$P$P$P $P$P$P$P" #!" #!PXH`hpx yVhHMp[?9c _somforint_somfor_gsat_ratiodyld_stub_binding_helper_sqrt_radius2_log_offsetp_cos_ptitle_tan_genrpt_p_error_atan_sin_genrpt_long_asin_false_easting_false_northing_a_b_es_p21_lon_center_start_ca_sa_w_q_t_xj_a2_a4_c1_c3_s_som_series#1/12 1295536329 505 505 100644 14924 ` sominv.o8 XT__text__TEXTT3__picsymbolstub1__TEXT4< __cstring__TEXT__literal8__TEXTh__bss__DATA__la_symbol_ptr__DATA<67x%94 P7|!|> xB>^X\~؞ؾ<_8B0<_8B8<_8B<_8Bɾ$ɾ $2<_h(<_8B /A@x<_8Bɾ<_8BP $<_8BH$X/A<_8BXx<_9"<_8B` \<@C0=?ɩl^h(<_8Bh2<_8Bp*<_8Bx 2<_8BH<_8Bx<_9"<_8B \<@C0=?ɩl^h(<_8B2<_8B*<_8Bx 2<_8B<_8bH<_8Bɢ<_8B h@H5~\<_8H~X<_8Hɾx<_8B 2 <_8H1<_8Bɢ<_8B 2 <_8H<_8B0ɢ<_8B8 h@HA><_8 H>xHI<_8B<_8B<_8BAH<_9"<_8B >xH<_8B<_8B ɢ<_8B2<_8B 2p<_8B ɢ<_8B2<_8B 2h<_ɢp(<_8B ɢ=? h( $<_8B<_8Bɢ<_8B2<_ (<_8B<_8B ɢ=? h(`ɾh` $<_8B<_8B ɢ<_h(h2ɾ`` 2 $<_8Bɾp` $<_8Bɾ``2` 2<_8B8@8`^~88^9>9~9^9|x|Dx}%Kx}f[x}GSxHMXP8H@8 H<@C0=?ɩl ^h(88^9>9~9^9|x|Dx}%Kx}f[x}GSxHɾ<_2Xh*Xɾ=? 2Ph*Pɾ<_28h*8ɾ=? 2Hh*Hɾ<_2@h*@^8/Q@8H̀<@C0=?ɩl^h(88^9>9~9^9|x|Dx}%Kx}f[x}GSxH*Xh*X*Ph*P*8h*8*Hh*H*@h*@^8/H@0<_8B88^9>9~9^9|x|Dx}%Kx}f[x}GSxH ɾXh*XɾPh*Pɾ8h*8ɾHh*Hɾ@h*@ɾX<_ $<_8BɾP=?  $<_8Bɾ8<_ $<_8BɾH=?  $<_8Bɾ@<_8B $<_8B8|x!|N |ۡ!|> xB>^HL@<_8Bɢh(<_8Bɢ@h(<_8B@ɢ<_8BH2h$<_8B88HT>H ɾ 2<_8Bɢ<_8B2>H 2<_8Bxɢ2<_m*<_8Bɢ2<_*<_8Bpɢ2<_ * 2 $ H 2<_8B<_8B@ɢh$<_8B@ɢh$<_8B2<_8B $*ɾ<_ 2 H <_8BP 2*ɾ<_ 2 H <_8BX 2*<_8Bɢ<_8B$>H }<_8B`2ɾ<_ 2 H M<_8Bh 2*2(<_8BHɢh$ɾ (A^8888/1@8/1@$<_8b<_8H Q8֐H$>H <_8Bɢ<_8B2<_8B$<_8B$<_ * H<_8B@ɢh$<_8B`ɢ 2(ɾ<_ 2 H <_8Bh 2*2 H>H ɾ<_8B (*ɾ 2>H<_8BAHɾ<_8B (>H Exɾxx 2p<_8Bɢ<_h(ph$<_h(>HY2<_8B2<_8Bɢx2<_8Bpɢ2<_*<_ɢp (2<_8Bɢp 2 ( H2>Hi$(<_8Bɢ<_*p2<_h( $ Hhɾh<_OAH<@?8`^`~dh<_ɢhAH<@8`^`~d>H<_OAH<@?8`^X~\>H<_AH<@8`^X~\<_ɢX(<_8B2`2hh*h<_8Bɢ2hh(H<_8B<_8BAHx<_8Bɢ<_h(<_8Bɢ<_h(2<_8Bɢp 2 * H xh$ HP<_8B<_8BOAH>H>hH)2>hH<_8B 2(<_8Bɢ<_h(<_8B 2 $ HP<_8B8ɢH * H^H^LP8|x!|ˡN |!p|> xB~^ɢ<_8B\ 2^^ HXɾXX 2P<_8Bɢ<_8B$2^ H2<_8BɢP2<_dm*<_8B ɢP2<_d*<_8BɢP2<_d * 2 $ H2<_8B<<_8BɢP2<_d*<_8B ɢP2<_d * $ HY@<_8B ɢP2<_dm*<_8BɢP2<_d*<_8BɢP2<_d * 2$<_8Bɢ<_8B, 2 ( 2H<_8Bɢ<_8B2<_8B<ɢ<_8B< 2 * H}@<_8BɢH2<_8B<ɢ<_8B< 2(@ $^^^* H2^^^ɢ<_l 2 Ha2^<_8BɢH*<_8B<2@ $8^ H8 2^^ɢ<_t 2 H8 2^8@8`^p~tp !|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse@?=?[Ow򽴆&@` =p?FR5?l0a\j?SC~lī@`)@Lc˰>. &֕@V@F?C0@@@>@N@.>. &֕?!TD->z򚼯H!TD-?@?F?@@dëXxTxt0ë @@<ëpplët@p@<h@d@<TPDë0@,@<$@ @<00,  hhdhhdhhdxt hëXhThdD@ 8h4hd$ @@<ëhhdhhd hhdëx(t($l h Lë,`(`\ë8xëd(`(X0T0L8H88040(ë  ((ë88008|8t0p0h8d8P L @(<(   ((00XXëXXë\XXX0X,Xë 00 0 0    ë   0 0 0 0 | xp h( d( X0 T0 Hë <0 80 (0 $0 8 8 ë         ë    pë X Th Hë <P 8P  ` ȡ ȡ@ ë 0 0     @ @ @ @  ë \ \ 8 8 $С СH  h ë H H  ` ë   @ @  X ë x@ t@ `ء \ءP Pë D8 @8 , ( @ @ ȡ ȡ@ ȡ ȡ@ @ @ ë 0 0  p 0 0   0 0 p lx `ë P( L( D  @  $ë ССHȡȡ@PPHH@<0С,С ССءءdë,ȡ(ȡë`\ëXTëtph8d8 \X@ء<ء4808 ($ءء ءء88 ءء((((88 00t0p0h8d8 \(X(Pë@<8040 0 000ë$$ ëPP8HH0ëëxtlëh̡d̡\ëXTLë<С8С0ȡ,ȡ(ë$ x  |xxlhp\Xh@<(x$x`   p pX  hhP88 ءءxСtСhȡdȡXPTP8HHDH00hLhHhHt(l(TL4,Ȭ ȫh,hHHHt(ld(TL4,Ȭ 8$P4$P0$P,$P($P$$P $P$P$P$P$P $P$P$P$P" #!" #!HP8 0(@ dsmI;\@d3N-W_sominvint_sominvdyld_stub_binding_helper_sqrt_ptitle_exp_offsetp_cos_radius2_tan_genrpt_p_error_atan_adjust_lon_sin_genrpt_long_asin_false_easting_false_northing_a_b_es_lon_center_p21_ca_sa_w_q_t_u_xj_a2_a4_c1_c3_s_som_series #1/20 1295536329 505 505 100644 3788 ` sterfor.o8 T__text__TEXTT4{__picsymbolstub1__TEXT @t ( __cstring__TEXT`9__literal8__TEXT__bss__DATA8__la_symbol_ptr__DATA(  L    P |!|> xB>8^@~H؞PؾX<_8B8<_8B@<_8BH<_8BX<_8BP>H<_8<_8H<_8bHH<_8B H <_8B H<_8B H%<_8Bɢ<_8B h@HA8|x!|N |!p|> xB>h^p<_8Bɢhh( HP8X8^`>p|x|FxH>PHH<_8BɢX2<_8Bɢ`2H 2 *8ɾ8<_l *<_8BdOAɾ8<_l*<_th$@<_8Bɢ@2`2>PH2<_8B *^<_8Bɢ@m2<_8BɢX2<_8Bɢ`2H 2 (2<_8B *^8xH$<_8b4<_8TH8gxHx|x!|N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N STEREOGRAPHICPoint projects into infinityster-for=|׽?@ë<T<p<p4<<<<<|<x<h<d<P<L<@ë$< <<t<<l<<d<<l<<<<<hëT<P<ëëëëë``Hëtpd`TPD@404ܡH,ܡHء( ء(ԡԡСС̡Ȭ̡ȫȡȡ tġlġ<ThLXh4H,tH( ($P PPPPP PPPP        rN@7ja/Y~E_sterforint_sterfordyld_stub_binding_helper_ptitle_offsetp_cos_tsincos_cenlonmer_radius_p_error_origin_adjust_lon_sin_r_major_lon_center_lat_origin_false_northing_false_easting_sin_p10_cos_p10 #1/20 1295536330 505 505 100644 4532 ` sterinv.o8 Tx__text__TEXTT__picsymbolstub1__TEXT t0 __cstring__TEXT t__literal8__TEXT0__bss__DATAx8__la_symbol_ptr__DATAH0   P T|!|> xB>8^@~H؞PؾX<_8B`8<_8Bh@<_8BpH<_8BxX<_8BP>H<_8<_8Hm<_8bH!<_8B` H<_8Bh HY<_8Bp H<_8Bɢ<_8Bx h@H8|x!|N |!p|> xB>h^p<_8B\ɢhh(h<_8BTɢph(pɾhh2ɾpp 2 * HH<_8B<*Hh$ H*@8P8^X>@|x|FxH<_8BD^H<_8BOAɾX<_8Bd2ɾPp2<_8Bl2H $ * H^<_8BL<_8B (88<_8BOA|H$<_8BL^8xHX^ H<_8Bd 2(88<_8B@H<_8BLɢ<_OAL<_8BDhP ^pH5( H^8xHpP>h@H<_8BD * H^8xHh<_8B@8@^xHlɾPh2<_8Bl2ɾ8H 2 `@He<_8BD * H%^8xx|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N STEREOGRAPHIC=|׽?!TD-\ëL<HD<<ë<l<0<0<ë<D<|lëT<PD<@@<<@<4<0L<0<0<<d<ë<L<0<0<8<8<x<tL<dëH<Dl<,<(d<0< 0<<D<ëx<x<<ël<hT<T<P\<ëxëpëhëxx`ë  ëtpd`xTPpD@h4x0x`ttltlTpLp4lȬ,lȫh hdd`h`h\H\HX(X0(tTlTLTPLPh4LȬ,LȫH H,P(P$P PPPPP PPPP      x  j}vO=b5Z/F_sterinvint_sterinvdyld_stub_binding_helper_sqrt_ptitle_offsetp_tsincos_cenlonmer_radius_origin_adjust_lon_atan2_atan_sin_asin_r_major_lon_center_lat_origin_false_northing_false_easting_sin_p10_cos_p10 #1/20 1295536330 505 505 100644 8140 ` stplnfor.o| LD__text__TEXT €__picsymbolstub1__TEXT ` XL __bss__DATAD__data__DATA 0__cstring__TEXTP__literal8__TEXT__la_symbol_ptr__DATALL| P&|!|> xB~ $8<_8B,BA$<_8B,/AH8H/@\8H@<_8B T:|@B@H^8/@Hd/@X8H@<_8B T:|@B@H^8/@8@@@8x|x<_88H =8x|x<_8`H 8H/@ ~ <_8lH|`xH~$<_8lHe|`x/@$<_8bp<_8H }8HD~|x8H 8X|x88 H!<_8b088H 8|x88 H~H i<_8B0/A@8x|x<_88H8x|x<_8`H8H<_8bH~<_8H݀/@8H 8S~<_8Hɾ<_h( H 2<_8B0/@( H8 |xH<_8B 2/AܐH@ HA8 |xH<_8B 2؀/AܐHPHP>^~ȞȾHH<_8B0/@|8 H8 |xH5<_8B 2/AܐH0 HY8 |xH<_8B 2/AܐHh H 8 |xH<_8B 2/AܐH@ H8 |xHE<_8B 2؀/AܐHHP>^~ȞȾH!H<_8B0/@ H8 |xH<_8B 2/AܐH,( H8 |xHY<_8B 2؀/AܐH08>^~ȞȾH]H<_8B0/@(8 H18 |xH<_8B 2/AܐH@ H8 |xHm<_8B 2/AܐH@ H8 |xH<_8B 2/AܐHHP88@8`^~8@8`^~8@8`^~8@8`^~x>^~ȞȾ>^~ɞH8|x!|N |!|> xB>H^P<_8B/@8>H^PHA|`x88/A8XH<_8B/@8>H^PHY|`x88/A8XH<_8B/@8>H^PHQ|`x88/AX8XHT<_8B/@8>H^PH|`x88/A8XH 8XX|x!|N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrError opening State Plane parameter filestate-forSTATE PLANEZone: Datum: NAD?FR5? xë XHh THh 0ë Hh HhëHhHhëHh|Hh(ëpldPë ëëHH0ë40(ëëHH0ëHD<(ëëëXTL8ë HH0ëëpldPë0H,H0ëëءءë̡̡ëëxx`ë|PxP8`H\H0XP8ë(H$H0 ëpëlëlxëtxpx`dëXPTP888   PDLD,8D4D,T@ L@8 4< ,<T 8 Ȭ 8p ȫ4 4 0 0 , h, h( H( Ht$ (l$ (T L  4 ,4  Ȭ P ȫ l    h  h H Ht (l (T L 4 ,  Ȭ 0 HPDP@P<P8P4P0P,P(P$P PPPPP PPPP        D 8HPMT~c;[lG1_stplnforint_stplnfordyld_stub_binding_helper_tmforint_polyforint_sqrt_fopen_fread_ptitle_polyfor_sprintf$LDBLStub_lamccforint_tmfor_omerforint_omerfor_lamccfor_p_error_paksz_genrpt_long_fclose_pakcz_fseek_inzone_NAD27_NAD83_id #1/20 1295536330 505 505 100644 8284 ` stplninv.o| __text__TEXT  À__picsymbolstub1__TEXT  x8P __bss__DATA__data__DATA `0__cstring__TEXT(__literal8__TEXT(__la_symbol_ptr__DATA8P< PX(|!|> xB~ $8<_8BpBA$<_8Bp/AH8HȀ/@\8H@<_8B HT:|@B@H^8/@Hd/@X8H@<_8B`T:|@B@H^8/@8@@@8y|x<_8xH ]8y|x<_8H 8H/@ ~ <_8Ha|`xH~$<_8HE|`x/@$<_8b<_8H }8HL~|x8H ~H8X|x88 H<_8bt88H8|x88 H~H <_8Bt/A@8y|x<_8xH18y|x<_8H8H<_8bHŀ~<_8H/@8H 8S~<_8Hɾ<_h( H 2<_8Bt/@( H8 |xH5<_8B 2/AH@ HY8 |xH<_8B 2؀/AHPHP>^~ȞȾHH<_8Bt/@|8 H8 |xHM<_8B 2/AH0 Hq8 |xH<_8B 2/AHh H!8 |xH<_8B 2/AH@ H8 |xH]<_8B 2؀/AHHP>^~ȞȾHyH<_8Bt/@ H58 |xH<_8B 2/AH,( H8 |xHq<_8B 2؀/AH08>^~ȞȾHH<_8Bt/@(8 HI8 |xH<_8B 2/AH@ H8 |xH<_8B 2/AH@ H8 |xH5<_8B 2/AHHP88@8`^~8@8`^~8@8`^~8@8`^~x>^~ȞȾ>^~ɞH8|x!|N |!|> xB>H^P<_8B /@8>H^PHy|`x88/A8XH<_8B /@8>H^PH|`x88/A8XH<_8B /@8>H^PH |`x88/AX8XHT<_8B /@8>H^PH|`x88/A8XH 8XX|x!|N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrError opening State Plane parameter filestate-invSTATE PLANEZone: Datum: NAD?FR5? ë `p \ p 8ë p  pëp pëp p0ëx(t(lXë(($(ë((ëtë<(8(0ë((ëtëP(L(D0ë((ë((ë`(\(T@ë($të((ëx(t(lXë84të0 0ëë  ëëëxhdt`X@ë0,t(ëȡȡëġġëġġxëtpdëXTxxx` ` ` HPLp84pt Hl< HT (LX (4| ,|t x  x t Ȭt ȫp p l l h hh htd Hld HT` (L`8 (4\ ,\T X  Xp T ȬT ȫP P L L H hH htD HlD HT@ (L@ (4< ,<4 8 8P LPHPDP@P<P8P4P0P,P(P$P PPPPP PPPP         `xX7E`LXj1>|_stplninvint_stplninvdyld_stub_binding_helper_sqrt_fopen_tminv_fread_polyinvint_ptitle_lamccinv_sprintf$LDBLStub_tminvint_ftell_lamccinvint_omerinvint_p_error_omerinv_paksz_genrpt_long_fclose_pakcz_fseek_polyinv_inzone_nad27_nad83_id #1/12 1295536331 505 505 100644 8708 ` tmfor.o8  T p__text__TEXTT__picsymbolstub1__TEXT 4P __cstring__TEXT g t__literal8__TEXT __bss__DATA px__la_symbol_ptr__DATA Pt& 8 PT(|!`|> xB>X^`~h؞pؾx<_8B XX<_8B ``<_8B hh<_8B pp<_8B xx<_8B <_8B <_8B `ɢ<_8B X $HɾHH2<_ xh(<_8B <_8B  H%<_8B <_8B  H <_8B <_8B  H<_8B <_8B  HY<_8B <_8B ɂ<_8B b<_8B B<_8B ɢ<_8B x `@X`PhH 5<_8B X 2<_8B <_8B ɂ<_8B ɢ<_ xh( $<_8B <_8B ɢ<_8B pA <_9" 8@8`IiH <_9" <@?8`IiH<_8b H}<_8B Xɢ<_8B ` h@H<_8B h <_8 $H}<_8B p H <_8B x H<_8B ɢ<_8B  h@H18|x!|N |!0|> xB>^<_8B <ɢh( H)88^>|x|FxH)<_8B ɢ<_l@8ɾ 2ɾ 2ɾ2<_8B t 2p>H%`ɾ`` 2hɾ2<_8B l2<_th(X<_8B $>XHM$P<_8B Lb<_8B Tɢ<_8B \ɂ<_8B d X@h``ȾHY<_8B $ 2H<_8B 4ɢP2m2ɾ<_|M$<_ɢth(p-*ɾ<_ $ɾh<_2<_*ɾhh 2*ɾp<_ 2*<_8B tɢ<_ 2 *2 *2<_t *2<_8B  *^<_8B |ɢH`h(ɾP`M2ɾ<_-$<_ɢh(ɾp<_ 2*ɾpp2<_ 2 *ɾ<_$ɾh<_2<_8BT*ɾhh 2*ɾp<_8B\ 2*<_8B tɢ<_8Bd 2 *2*2<_* 2 2*<_8B 42<_8B  *^8H>H 2xx<_t (<_8BLA<_8B $ɢ<_2<_8B 42ɾx<_t*<_ɢtx ( $ H]2^>H2ɾxx2<_th( H$ HXɾ<_lA,H$<_8b<_84HQ8]H\HXPX<_8B $ɢ<_8B 42<_8B DɢXh( 2^8@^H|x!|N |B}h=k|x}N |B}h=k|\}N |B}h=k|@}N |B}h=k|$}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N |B}h=k|`}N |B}h=k|D}N |B}h=k|(}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinitytm-for>h?=|׽@N@t?@@42@@RM@8@"@@>?P LL DL@ L< 4L4 pL0 p $Lë L 4L `L `L L lLë L tLëp Ll tLd L` tLP LL 4LD L@ L8 pL4 p $L$ L LL L tLë СL С L L 4L L L L| dLt Lp tL` L\ \L< L8 TL0 L, L L L L L L L L L L L ȡL ȡ |L ءL ء L L tLh Ld L\ LX tLL LH L, L( L ءL ءL СL СL L tL ȡL ȡ|L L 4L pL p $Lë L dL L| \Lt Lp TLh Ld LLTëH pLD p $L8 L4 tL( L$ lLë L tL L lL L Lxëd L` <Lë С С  ء ء ë  xë  pë < < $  hë x x ` p p Xë | d ` H D 4 0 p( $     x     ȡ ȡ  p p Xë  x       | t p hë\ X P L Dë8 4 , (  ë    ë      x p p X x x ` ء ء  С С | x xl h p\ X hL xH x `< p8 p Xt l l ld T h L h 4 d Ȭ, d ȫ `  `  \  \  X h X h T H T H P ( P( (t L l LD T H L H` 4 D Ȭ, D| ȫ @  @ < < 8 h 8 h 4 H 4 H 0 ( 0 (t , l ,$ T (L (@4 $Ȭ, $\ȫ  xL%PH%PD%P@%P<%P8%P4%P0%P,%P(%P$%P %P%P%P%P%P %P%P%P%P" $#!" $#! p x         # ' , 1 0XpSD{17J<^+g_tmforint_tmfordyld_stub_binding_helper_sqrt_e3fn_log_ptitle_e0fn_offsetp_cos_acos_radius2_tsincos_cenlonmer_e2fn_tan_genrpt_p_error_origin_adjust_lon_sin_e1fn_mlfn_r_major_r_minor_scale_factor_lon_center_lat_origin_false_northing_false_easting_es_e0_e1_e2_e3_ml0_esp_ind #1/12 1295536331 505 505 100644 10076 ` tminv.o8 T(__text__TEXT T|Ҁ__picsymbolstub1__TEXT   X __cstring__TEXT g__literal8__TEXT <__bss__DATA(t__la_symbol_ptr__DATAX$"$,(& D P#|,|!`|> xB>X^`~h؞pؾx<_8BX<_8B`<_8B h<_8B(p<_8B0x<_8Bp<_8Bx<_8Bɢ<_8B $HɾHH2<_ h(<_8BX<_8BX H %<_8B8<_8BX H !<_8B@<_8BX H <_8BH<_8BX H y<_8BP<_8B8ɂ<_8B@b<_8BHB<_8BPɢ<_8B0 `@X`PhH <_8B 2<_8Bh<_8BXɂ<_8BXɢ<_ h( $<_8B`<_8BXɢ<_8B AH<_8B8<_8b hH<_8Bɢ<_8B h@H <_8B  <_8 H <_8B( H M<_8B0 H <_8Bxɢ<_8Bp h@Hu8|x!|N |!|> xB>^8<88<_8B p/A<_8B ɢ<_8B 2h$ HX<_ɢ X$X*=?  2H<_8B ɢ<_8B 2h$<_8B  *@>@HPɾPP2<_ h(ɾHH2=?  * $ H>H^<ɾ@<_ AH^<P^<H=?ɩ h@8P<_ɢ h@$<_8B ^89 >H>H^PH1<_8B  * H^88H<_8B hɢh(<_8B `ɢh(<_8B ɢh$<_8B X*<_8B  $8* H<_8B 02*ɾ<_ ( 2 HY<_8B 8 2*ɾ<_ 0 2 H%<_8B @ 2*<_8B ($ (ɾ *<_8B OAD^8A$<_8b <_8 H8_H^8K<_8B Ah>H|`x<@C0=?ɩ 8l^h(<_8B  2^<<_8B ^88Ht88^>|x|FxH>Hɾ2<_8B P 2ɾ 2ɾ 2ɾ 2ɾ2<_8B H2<_ h(<_8B >H$x<_8B Hɢ<_ h(x2 $p<_8B ɢx2h$hɾhh 2`ɾx2`2pm$ɾ`=? @M$ɾ<_ H2=? P*ɾ<_ X 2*ɾ=? ( 2*<_8B Pɢ<_ ` 2,*ɾ`=? h $ɾ<_8B 2<_8B *ɾ<_8B  2*ɾ<_8B  2*<_8B Pɢ<_8B  2*ɾ<_ p 2 *2 *2=?  *2h(^<ɾ`<_ xm$*=? *M*ɾ`<_ -$ɾ=? 2<_ P*ɾ=? 2*ɾ<_ p 2*<_8B Pɢ=? 2*ɾ<_ 2 * 2 *2=? *h2$<_8B  * H]^8K|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N |B}h=k|`}N |B}h=k|D}N |B}h=k|(}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSE>h?=|׽?!TD-@V@N@r@Fo??@C08@@@$">4@<@ @8 ë t@( p@ ( X@( T@ ( <ȡ( 8ȡ ( (( $ ( x( x P( (  p( (  ( x( x P( (  ( (  ( @( @ ( (  x( |8( x8 ( `( \ p( H(( D( ( <x( 8x P( ( ( $ ( (  (( (( (( h(( `(x(x P(P(P ((( X(x(x P(|p(xp H(lh(hh @(8(8 (@(@ (p(p H(ë((( (@(@ (p(p H(`x(\x P(D<ë @(@ (( (`(` 8(ë( (ë ܡ( ܡ (| (x (T (P ( P(P (( h(h @(ëX(X 0(`(` 8(ëP(P ((X(X 0(ëd((`( (T(P X(@8(<8 ((($ `((  h(ë@(@ (ë@(@ (H(H (H(H (\H(XH (D4ë$@( @ ( @(@ (ëH(H (8(8 (((( (8(8 (0(0 (ëh8(d8 (\((X( (H(D p(ëpxëHH0ë@@(ë  88 ët0p0h(d(`ë\ X hLH4 0 (p$pXxx`  ppXppXh((ëHH0hhP``HXX@P|P8thphPhë\pXpXP`L`HDë8p4pX,X(X@ ëppXPP8ëppXppX  ((00xp|HxH0l@h@(\8X8 L0H0<(8($ h$ h H  Ht (l (T L 4 ,,  Ȭ H ȫ  d    h h H Ht (l (T L 4 ,  Ȭ ( ȫ D  `  h| h H Htܡ (lܡ (Tء Lء 4ԡ ,ԡ С Ȭ С T'PP'PL'PH'PD'P@'P<'P8'P4'P0'P,'P('P$'P 'P'P'P'P'P 'P'P'P'P$ !"&%#$ !"&%#(08@H!p%P)X-`1h5:x?  ErU?1}L7Zc+i_tminvint_tminvdyld_stub_binding_helper_sqrt_e3fn_ptitle_e0fn_asinz_offsetp_cos_radius2_sign_tsincos_cenlonmer_exp_e2fn_tan_genrpt_p_error_origin_adjust_lon_atan2_sin_e1fn_mlfn_r_major_r_minor_scale_factor_lon_center_lat_origin_false_northing_false_easting_es_e0_e1_e2_e3_ml0_esp_ind#1/12 1295536332 505 505 100644 8948 ` utmfor.o8  T D__text__TEXT ,T__picsymbolstub1__TEXT @` hL __cstring__TEXT __literal8__TEXT @__bss__DATA Hx__la_symbol_ptr__DATA LL%!4 P`&|!`|> xB>X^`~h>Ѐ/A/@|p|@x|P/<@$<_8b <_8 H u8 H0<_8B 0X<_8B 8`<_8B @h<_9" P8@8`Ii|p|@x|P@8I<@C0<ɣ Hlt^pph(<_8B ( 2<_8B H<_9" <_8B 0 /@<_8B 8xH8@8`^x~|<_8B >x^|"B<_8B 8ɢ<_8B 0 $HɾHH2=_ Ph(<_8B x<_8B x H<_8B X<_8B x H q<_8B `<_8B x Hm<_8B h<_8B x H)<_8B p<_8B Xɂ<_8B `b<_8B hB<_8B pɢ<_8B P `@X`PhH<_8B 0 2<_8B <_8B xɂ<_8B xɢ<_ Ph( $<_8B <_8B xɢ<_8B @AH<_9" <@?8`Ii<_8b Hi~<_8 H<_8B 0ɢ<_8B 8 h@H<_8B @ <_8 H9<_8B H H8|x!|N |!0|> xB>^<_8B ɢh( H88^>|x|FxH<_8B ɢ<_@8ɾ 2ɾ 2ɾ2<_8B  2p>H`ɾ`` 2hɾ2<_8B 2<_h(X<_8B h>XHY$P<_8B b<_8B ɢ<_8B ɂ<_8B  X@h``ȾHE<_8B h 2H<_8B xɢP2m2ɾ<_M$<_ɢh(p-*ɾ<_ $ɾh<_2<_*ɾhh 2*ɾp<_ 2*<_8B ɢ<_ 2 *2 *2<_ *2<_8B  *^<_8B ɢH`h(ɾP`M2ɾ<_-$<_ɢh(ɾp<_ 2*ɾpp2<_ 2 *ɾ<_ $ɾh<_2<_8B*ɾhh 2*ɾp<_8B 2*<_8B ɢ<_8B 2 *2*2<_ * 2 2*<_8B x2<_8B  *^8H>H 2xx<_ (<_8BA<_8B hɢ<_ 2<_8B x2ɾx<_*<_ɢx ( $ Hi2^>H2ɾxx2<_h( H$ HXɾ<_A,H$<_8b4<_8TH=8]H\HXPX<_8B hɢ<_8B x2<_8B ɢXh( 2^8@^H|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|x}N |B}h=k|\}N |B}h=k|@}N |B}h=k|$}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N |B}h=k|`}N |B}h=k|D}N |B}h=k|(}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N Illegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityutm-for?FR5AAc>hC0?=|׽@N@t?@@42@@RM@8@"@@>? h h  X X x H H hë 4 4T  4  p`ëT P 0ë     X X x   H H h p p  ë` \ P XL X x4 0        x x ȡ ȡ     ء ءp l d С` С@ < ( $    ȡ ȡ            | x \ XX X xH HD H h<ë     x x  p p ë H H h    ë| x @ < 4 0 , ë ` ` ë ` ` Hë  t Xp X @lë\ PX P 8P HL H 0HëD @ 8ë4 0    X X @  x   h h P  x  x   H H 0ë h| h Pt p ph d h\ xX x `P pL p XD @ p8ë, ( x  hë  x x x `ë  x p p Xë  x  x h h P H H 0| Px P 8d ` @ P< P 8$ H H 0   ` ` H @ @ ( ` ` H h h P X X @ P P 8 H| H 0lëh d ` \ T @ L @ 4 < h, < h 8 H 8 H 4 ( 4 ( 0  0(  ,  ,D  ( Ȭ (` ȫt $ l $| T L  4  h,  h  H  H  (  (     $  Ȭ @ ȫt  l \ T L x 4 h,  h H  HH$PD$P@$P<$P8$P4$P0$P,$P($P$$P $P$P$P$P$P $P$P$P$P!#" !#"  H P X h `    p x ! % * / QiLFt39>W-z`_utmforint_utmfordyld_stub_binding_helper_sqrt_e3fn_log_ptitle_e0fn_cos_acos_radius2_tsincos_cenlonmer_e2fn_tan_genrpt_p_error_adjust_lon_sin_genrpt_long_e1fn_mlfn_r_major_r_minor_scale_factor_lat_origin_lon_center_false_easting_false_northing_es_e0_e1_e2_e3_ml0_esp_ind#1/12 1295536332 505 505 100644 10420 ` utminv.o8 T__text__TEXT |Tp__picsymbolstub1__TEXT  !T __cstring__TEXT t__literal8__TEXT__bss__DATA t__la_symbol_ptr__DATAT$@%''dD P$*|!`|> xB>X^`~h>Ѐ/A/@|p|@x|P/<@$<_8b<_8H 8 H<<_8BX<_8B`<_8Bh<_9"(8@8`Ii|p|@x|P@8I<@C0<ɣlt^pph(<_8B 2<_8B <_9"p<_8B /@<_8BxH8@8`^x~|<_8Bh>x^|"B<_8Bɢ<_8B $HɾHH2=_ h(<_8BP<_8BP H <_8B0<_8BP H <_8B8<_8BP H <_8B@<_8BP H i<_8BH<_8B0ɂ<_8B8b<_8B@B<_8BHɢ<_8B( `@X`PhH e<_8B 2<_8B`<_8BPɂ<_8BPɢ<_h( $<_8BX<_8BPɢ<_8BA<_8Bx8<_8b(H~<_8LH <_8Bɢ<_8B h@H<_8B <_8XH <_8B  H 8H<_8Bx8Kt|x!|N |!|> xB>^8<88<_8B /A<_8B 4ɢ<_8B D2h$ H}X<_ɢ <X$X*=? D 2H<_8B 4ɢ<_8B D2h$<_8B T *@>@HmPɾPP2<_ Lh(ɾHH2=? L * $ H>H^<ɾ@<_ TAH^<P^<H=?ɩ Th@8P<_ɢ Th@$<_8B L^89 >H>H^PH<_8B L * H^88H<_8B ɢh(<_8B ɢh(<_8B Dɢh$<_8B *<_8B 4 $8* HM<_8B d2*ɾ<_ \ 2 H<_8B l 2*ɾ<_ d 2 H<_8B t 2*<_8B \$ (ɾ *<_8B OAD^8A$<_8b <_8 H8_H^8K<_8B Ah>H|`x<@C0=?ɩ ll^h(<_8B  2^<<_8B L^88Ht88^>|x|FxH>Hɾ2<_8B  2ɾ 2ɾ 2ɾ 2ɾ2<_8B |2<_ Lh(<_8B 4>H$x<_8B |ɢ<_ Lh(x2 $p<_8B Dɢx2h$hɾhh 2`ɾx2`2pm$ɾ`=? tM$ɾ<_ |2=? *ɾ<_ 2*ɾ=? \ 2*<_8B ɢ<_ 2,*ɾ`=? $ɾ<_8B 2<_8B *ɾ<_8B $ 2*ɾ<_8B , 2*<_8B ɢ<_8B 4 2*ɾ<_ 2 *2 *2=? D *2h(^<ɾ`<_ m$*=? L*M*ɾ`<_ -$ɾ=? 2<_ *ɾ=? 2*ɾ<_ 2*<_8B ɢ=? 2*ɾ<_ 2 * 2 *2=? L*h2$<_8B L * H^8K|x!|N |B}h=k|@}N |B}h=k|$}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k||}N |B}h=k|`}N |B}h=k|D}N |B}h=k|(}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|d}N |B}h=k|H}N |B}h=k|,}N |B}h=k|}N Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE?FR5AAc>hC0?=|׽?!TD-@V@N@r@Fo??@C08@@@$">4@<@ @8 Hë 88 48 L 8 8 L       p p        p p        x8 t8 L d `  @0 <0 D $      4 p p    ,   $             p |p  pH lH \ \x Xx  Lp Hp  @h <h | 0` ,` t00 D88 Lhh |ë  488 Lthph |$p p ë88 L XX lëxt LëHD @<  HH \`` tëPP dXX lëH|H \dP`P dTë( $ 4xx 00 D  ë88 Lëp8l8 L`@\@ TL@H@ T @@ Të88 L88 Lë@@ T00 D| x 4l0h0 DT(P( <Dë,0(0 D   4  xë88 |ëxptpXh0d0`ëP(L(D @ <ë8d4dL,ë(@$@(xءءhhPppXhhPhhPxx`  ë@|@(t`p`HhXdX@\PXP8PHLH0D`@`H8ë,h(hP XX@ëhhPPP8ëhhPHH0ëhhPhhP  |(x(d`h@С<С$ȡ ȡp8 8 @@(00(( | lëh4d4` \ t l, T ȬLH ȫ4 , d     h h H H ( (  t l T ȬL( ȫ4 ,D   `  h| h H Hܡ (ܡ (ء ء tԡ lԡ TС ȬLС ȫ4̡ ,̡$ ȡ ȡ@ P&PL&PH&PD&P@&P<&P8&P4&P0&P,&P(&P$&P &P&P&P&P&P &P&P&P&P# !%$"# !%$" (0@8h#H'P+X/`3x8p= GkNA{3v9S\-b_utminvint_utminvdyld_stub_binding_helper_sqrt_e3fn_ptitle_e0fn_asinz_cos_radius2_sign_tsincos_cenlonmer_exp_e2fn_tan_genrpt_p_error_adjust_lon_atan2_sin_genrpt_long_e1fn_mlfn_r_major_r_minor_scale_factor_lat_origin_lon_center_false_easting_false_northing_es_e0_e1_e2_e3_ml0_esp_ind#1/20 1295536332 505 505 100644 5060 ` vandgfor.o8 T__text__TEXTT Ѐ__picsymbolstub1__TEXT  t$ __cstring__TEXT@ __literal8__TEXTPP __bss__DATA __la_symbol_ptr__DATA$   H P |!|> xB>8^@~H؞P<_8B8<_8B@<_8BH<_8BP<_8b(H>8HE>@H<_8Bɢ<_8B h@H8|x!|N |!0|> xB>^<_8Bɢh( Hx<_8BhOATɾ<_8Bp $* Hpx<_8BhOAHP<_8Bɢx2<_8B *^<_8B^8H<_8Bx (<_8BhOA<_8Bpɢx$ɾx<_8B $ *<_ 2hɾhh 2`88^>p|x|FxH-ɞɾ*<_ ( $XɾXX 2Pɾ<_h$<_(X 2HɾHH 2@<_8Bɢ<_8Bp2ɾX@(h2ɾX@(`2ɾX@ (l2ɾ@`*ɾP@ ( 2 ( H*2ɾ@` * $8ɾx<_AH<_8B^ɾ<_OAd<_8Bɢ<_8Bp2ɾp<_ 2 H2<_8B *^8H<_8Bɢ<_8Bp2ɾp<_ 2 H2<_8B *^KH8P8<_8Bɢ8 *^<_8Bɢ<_8Bp28h$8ɾ<_OA<_8Bɢ<_8B2ɾ882<_h(ɾh<_28 2 * H2<_8B *^8H<_8Bɢ<_8Bp2ɾ882<_h(ɾh<_28 2 * H]2<_8B *^K||x!|N |B}h=k|x}N |B}h=k|\}N |B}h=k|@}N |B}h=k|$}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N VAN DER GRINTEN=|׽@ !TD-?!TD- !TD-??@ëxxX|XptСpСPL@ë($xxhhССXXpССءءd`TëHpDp4X0Xp(С$СëXXpССءء\ëXXpССxxxxtëDp@p,h(hXXpPPh``xءءССxPtPh`ëHXDXp,P(Phëȡȡëءء|tëp@l@(`\PءLء@ȡ<ȡ0С,С( (Ȭȫtl$ThL@h4H,\H( x( PPPPP PPPP      y|e?qF7X1`O_vandgforint_vandgfordyld_stub_binding_helper_sqrt_ptitle_asinz_offsetp_tsincos_radius_tan_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/20 1295536333 505 505 100644 4444 ` vandginv.o8 PT0__text__TEXTT __picsymbolstub1__TEXTt  __cstring__TEXT__literal8__TEXT` __bss__DATA0 __la_symbol_ptr__DATA dt P |!|> xB>8^@~H؞P<_8B 8<_8B@<_8B(H<_8B0P<_8bHM>8H>@H<_8B(ɢ<_8B0 h@H98|x!|N |!@|> xB>^<_8B\ɢh(<_8Bdɢh(<_8BTɢ<_8B 2HɾH $ɾH $ɾ2ɾ 2 *xPɾx<_ * 2pɾ<_22p*ɾ 2 *hɾp<_2<_** 2*ɾxx 2 *`ɾ2`m$h*h2h2`$`$`$ɾp<_2h2`$` $*<_ $ *8ɾhh2<_ $`$p*` $XɾX<_ $ H*Pɾ8<_2X$P $HH<_AH,ɾH<_OAP<@8`^H~L>HH<_ $@ɾ<_OAH<@?8`^H~LKPPɾ@<_8B * H)2ɾh<_ $` $*<_8B 2^<_8BAHhPPɾ@<_8B * H2ɾh<_ $` $*<_8B 2^Kɾx<_(ɾ2ɾ 2 (*<_*ɾxx 2 * H*<_8B2<_$$$<_8BL * H1^8H$<_8BL^8@^H|x!|N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N VAN DER GRINTEN@ !TD-?R8-se !TD-=|׽?"@;@@P0L0L0ë 00L $ëССССlh XëHD$ȡ ȡ ë|xlëHD0С,Сë  plССءءءءСС84,8(8THHd@@\ëHH0@@(|tëpl`H\H0P@L@(@0<008,8 ,,(h(h$H$H ( (tlTL04Ȭ,Lȫ hPPPP PPPP    o8r0~@HM[gH?7S1_vandginvint_vandginvdyld_stub_binding_helper_sqrt_ptitle_offsetp_cos_acos_radius_adjust_lon_cenlon_R_lon_center_false_easting_false_northing#1/12 1295536333 505 505 100644 3068 ` wivfor.o8 PT0__text__TEXTTS__picsymbolstub1__TEXT   __cstring__TEXT=__literal8__TEXT04__bss__DATA0 __la_symbol_ptr__DATA d   P P \|!|> xB>8^@~H؞P<_8B 8<_8B@<_8B(H<_8B0P<_8bH->8H>@H>H^PH18|x!|N |!p|> xB>h^p<_8Bdɢhh( HIXpP>pHq<_8B 2@88>PHEP*@ (P>PH<_4 *$HɾPH *PH<_8BA48/@<_8b<_8HY^888K`ɾP<_< $P<_8Blɢ<_8B$2X2>PH2<_8Bt *^<_8Blɢ<_8B,2>PH%2<_8B| *^8|x!|N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N WAGNER IVIteration failed to convergewagneriv-forward@DKL=|׽?랃%? 4\?@lH̬hH|\ëL̬H,̫@8̬<8l̫(@̬$@të̬$̫8̬8l̫̬<ë̡̡̬̫̬̫̬̫p̬l4`<ë ̬ë0̬0d|tëpl`H\H0P@L@(@0<008,8 ,,(h(h$H$H ( (tlTL04Ȭ,Lȫ hPPPP PPPP     m8p0|@H T`>5K-Ch_wivforint_wivfordyld_stub_binding_helper_ptitle_offsetp_cos_radius_p_error_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing #1/12 1295536333 505 505 100644 2652 ` wivinv.o8 hTH__text__TEXTT=__picsymbolstub1__TEXTT  __cstring__TEXT T__literal8__TEXTd__bss__DATAH __la_symbol_ptr__DATA( |  P |!|> xB>8^@~H؞P<_8B88<_8B0@<_8B@H<_8BHP<_8bH>8H>@H>H^PH8|x!|N |!|> xB>H^P<_8BɢHh(H<_8BɢPh(P<_8Bɢ<_8BD2Ph$ H8<_8Bɢ<_8BL2>8H2Hh$<_8B| * H^8*8* H*<_8BT $ H^8|x!|N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|x}N |B}h=k|\}N WAGNER IV? 4\?랃%@DKLë ̬ Të|H̬xH|dëT̬PL̫HP̬DP8ë ̬D̫P̬P̫`̬`̫X̬X|tëpl``\`HPXLX@@H<H00P,P8DD\@Ȭ@xȫ<<88t4hl4hT0HL0H4,(,,(( ( PPPP PPPP    jPmHyX` KdW>5-C__wivinvint_wivinvdyld_stub_binding_helper_ptitle_offsetp_cos_radius_adjust_lon_cenlon_sin_asin_R_lon_center_false_easting_false_northing#1/20 1295536333 505 505 100644 3012 ` wviifor.o8 T__text__TEXTlT4U__picsymbolstub1__TEXT  __cstring__TEXT __literal8__TEXT0__bss__DATA __la_symbol_ptr__DATA   \  P |!|> xB>8^@~H؞P<_8B8<_8B@<_8BH<_8BP<_8bhH->8H>@H<_8Bɢ<_8B h@H8|x!|N |!p|> xB>h^p<_8Bɢhh( HPɾP<_ $8X8^` |x|FxH>pH<_8B 2HɾHH2<_h( H@ɾ`@2<_*<_h$ H8<_8Bɢ<_8B2@282X2<_8B *^<_8Bɢ<_8B2H282<_8B *^8|x!|N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N WAGNER VII?}A5T@V|G?LPr@?@<8 ëëtpTPD<ë  ëë|tëplh`\PL@<0,ܡhܡthءHءHԡ(ԡ(ССt̡l̡TȡȬLȡȫ4ġ,ġ 8PPPP PPPP     ps Wc=5Ok/F_wviiforint_wviifordyld_stub_binding_helper_sqrt_ptitle_offsetp_tsincos_radius_adjust_lon_cenlon_sin_R_lon_center_false_easting_false_northing#1/20 1295536334 505 505 100644 3148 ` wviiinv.o8 XT8__text__TEXTTK__picsymbolstub1__TEXT@( __cstring__TEXT 4__literal8__TEXT D__bss__DATA8 __la_symbol_ptr__DATA(d $    P t|!|> xB>8^@~H؞P<_8B(8<_8B @<_8B0H<_8B8P<_8bHM>8H>@H<_8B0ɢ<_8B8 h@HY8|x!|N |!|> xB>X^`<_8BhɢXh(X<_8Bpɢ`h(`ɾX<_8B $Pɾ`<_8B $HɾPP 2PɾHH 2HɾPH * H@<_8B`*@h$ H5*8>8H`2ɾ@<_8B  2 $ H^>8H=X2ɾ@<_8B 2 `@Hm<_(2<_8BX * H^8|x!|N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N WAGNER VII@V|G?LPr? rt@`ëP8L8XD@(4ë ë ë@@`ëD@,(P PpHHhëPP8HH0|tëpl`P\P8PHLH0@8<8 0@,@(44Ȭ,4lȫ0 0,,(h(h$H$H ( (tlTL04Ȭ,Lȫ h$P PPPPP PPPP        z@}8HP Z=nfD5Mu/U_wviiinvint_wviiinvdyld_stub_binding_helper_sqrt_ptitle_asinz_offsetp_radius_tan_adjust_lon_cenlon_atan2_sin_R_lon_center_false_easting_false_northing#1/20 1295536334 505 505 100644 22956 ` for_init.o 11__text__TEXT+3__picsymbolstub1__TEXT,.L __literal8__TEXT0(2__la_symbol_ptr__DATA02P$$__nl_symbol_ptr__DATA183HHSHGV PFQi|!P|> xB~Ȑ̐АԐܑؑ>^8p8p/a@^ɢ<_0AX^ɢ<_0A@^8Bɢ<_0A$^8Bɢ<_0AH 88X8^`9>h~Ԁ|x|Fx}'KxH.H؀/b@^ɢ<_0A^ɢ<_0Al^8Bɢ<_0AP^8Bɢ<_0A488X8^`9>h~Ԁ|x|Fx}'KxH-qH48K8X8^`9>h~Ԁ|x|Fx}'KxH-=^8B0^8B8؀/a@@^8B  H)<_8B0h2<_8B0p 2^^^/A8H)x^8B( H)<_8B0h2<_8B0p 2 ^^^/A8H) Xɾ` @h~Ȟ ȾH,|`x^^^T:|x}"<_1 H(/b@@^8B  H(<_8B0h2<_8B0p 2^^^/A8H(0^8B( H(E<_8B0h2<_8B0p 2 ^^^/A8H'Xɾ` @h~Ȟ ȾH*-|`x^^^T:|x}"<_1T H'X/@؀/@088X8^`9>h~|x|Fx}'KxH*I̐PP/@ ^ H'!<_8B0h2<_8B0p 20^^^/A8H&^8B H&<_8B0h2<_8B0p 2 ^^^/A8H&4ɾ0<_8B0x 2 H'|`xPɾ <_0AHP|АP<_8B0Xɾ` @h~>PH&-|`x^^^T:|x}"<_1 H%x/@t~̀Ԁ؀H' |`x^^^^/A8H%(T:|x}"<_1 H$/@ ^8B H% <_8B0h2<_8B0p 2 ^^^/A8H$^8B H$<_8B0h2<_8B0p 2^^^/A8H$ ^8B( H$5<_8B0h2<_8B0p 2^^^/A8H#^8B  H#<_8B0h2<_8B0p 2^^^/A8H#HXɾ` @h~ ȞȾH&)|`x^^^T:|x}"<_1 H"Ԁ/@ ^8B H"<_8B0h2<_8B0p 2 ^^^/A8H"d^8B H"y<_8B0h2<_8B0p 2^^^/A8H!^8B  H" <_8B0h2<_8B0p 2^^^/A8H!^8B( H!<_8B0h2<_8B0p 2^^^/A8H! Xɾ` @h~ ȞȾH!A|`x^^^T:|x}"<_1p H /@@^8B  H <_8B0h2<_8B0p 2^^^/A8H <^8B( H Q<_8B0h2<_8B0p 2 ^^^/A8HXɾ` @h~Ȟ ȾH#|`x^^^T:|x}"<_1( Hd/@@^8B  Hu<_8B0h2<_8B0p 2^^^/A8H^8B( H <_8B0h2<_8B0p 2 ^^^/A8HXɾ` @h~Ȟ ȾH"Q|`x^^^T:|x}"<_1, H/@@^8B  H-<_8B0h2<_8B0p 2^^^/A8H^8B( H<_8B0h2<_8B0p 2^^^/A8H@Xɾ` @h~ȞȾH|`x^^^T:|x}"<_14 HԀ/@X^8B H<_8B0h2<_8B0p 2 ^^^/A8Hd^8B Hy<_8B0h2<_8B0p 2^^^/A8H^8B  H <_8B0h2<_8B0p 2^^^/A8H^8B( H<_8B0h2<_8B0p 2^^^/A8H ^8B@ɢ<_0A8Xɾ`X @h~ ȞȾH|`x^^^T:|x}"<_1t H8K/ @T^8B^8B  Hu<_8B0h2<_8B0p 2^^^/A8H^8B( H <_8B0h2<_8B0p 2^^^/A8HXɾ` @h~ȞȾHm|`x^^^T:|x}"<_1d H/ @8^8B  H)<_8B0h2<_8B0p 2^^^/A8H^8B( H<_8B0h2<_8B0p 2^^^/A8H<h ^~ȞȾH|`x^^^T:|x}"<_1L H؀/ @8^8B  H<_8B0h2<_8B0p 2^^^/A8Hh^8B( H}<_8B0h2<_8B0p 2^^^/A8Hh ^~ȞȾH |`x^^^T:|x}"<_1| H/ @8^8B  H<_8B0h2<_8B0p 2^^^/A8H(^8B( H=<_8B0h2<_8B0p 2^^^/A8Hh ^~ȞȾH-|`x^^^T:|x}"<_1 HX/ @8^8B  Hi<_8B0h2<_8B0p 2^^^/A8H^8B( H<_8B0h2<_8B0p 2^^^/A8H|h ^~ȞȾH|`x^^^T:|x}"<_1< H/@8^8B  H)<_8B0h2<_8B0p 2^^^/A8H^8B( H<_8B0h2<_8B0p 2^^^/A8H<h ^~ȞȾHm|`x^^^T:|x}"<_18 H؀/@L^8B  H<_8B0h2<_8B0p 2^^^/A8Hh^8B( H}<_8B0h2<_8B0p 2^^^/A8H^8Bh ^~ȞȾH|`x^^^T:|x}"<_1 H/@Ȁ^8B  H<_8B0h2<_8B0p 2^^^/A8Hh ^~ȞHi|`x^^^T:|x}"<_1\ H/@8^8B  H<_8B0h2<_8B0p 2^^^/A8HD^8B( HY<_8B0h2<_8B0p 2 ^^^/A8Hh ^~ ȞȾH|`x^^^T:|x}"<_1D Ht/@Ȁ^8B  H<_8B0h2<_8B0p 2^^^/A8Hh ^~ȞHY|`x^^^T:|x}"<_1l H/@Ȁ^8B  H<_8B0h2<_8B0p 2^^^/A8H4h ^~ȞH|`x^^^T:|x}"<_1 H Ԁ/@^8B^8B( H <_8B0h2<_8B0p 2^^^/A8H T^8B`ɢ<_0@p8^8B@ H E<_8B0h2<_8B0p 20^^^/AH8^8B H <_8B0h2<_8B0p 2H^^^/A8H X^8B  H m<_8B0h2<_8B0p 2^^^/A`8H 8@^H ^8BH H <_8B0h2<_8B0p 2 ^^^/A8H t^8BP H <_8B0h2<_8B0p 2(^^^/A8H ^8BX H <_8B0h2<_8B0p 2^^^/A8H Xɾ`x @h~ȞHȾ>0^ ~(ɞH |`x^^^T:|x}"<_10 H /@^8Bx|^8B^8B`ɢ<_0A8Xɾ`X\ @h~@Ȟ0ȾH 9|`x^^^T:|x}"<_1$ H $8^8B H 9<_8B0h2<_8B0p 2@^^^/A8H^8B  H<_8B0h2<_8B0p 20^^^/A8HL^8B@^8BH^8BPK`/@Ȁ^8B  H<_8B0h2<_8B0p 2^^^/A8Hh ^~ȞH |`x^^^T:|x}"<_1 H4/@Ȁ^8B  HE<_8B0h2<_8B0p 2^^^/A8Hh ^~ȞH|`x^^^T:|x}"<_1` Hd/@Ph H|`x^^^T:|x}"<_1X H /@Ȁ^8B  H<_8B0h2<_8B0p 2^^^/A8Hh ^~ȞH|`x^^^T:|x}"<_1@ H</@Ph H|`x^^^T:|x}"<_1h H/@`Xɾ` @h~ȞH|`x^^^T:|x}"<_1 H|/@Ȁ^8B  H<_8B0h2<_8B0p 2^^^/A8H h ^~ȞH|`x^^^T:|x}"<_1H H/@Ȁ^8B  H<_8B0h2<_8B0p 2^^^/A8H<h ^~ȞH|`x^^^T:|x}"<_1x H܀/@Ѐ^8B  H<_8B0h2<_8B0p 2^^^/A8Hl^8B( H<_8B0h2<_8B0p 2^^^/A8H^8BЀ^8BȀ^8B@ H<_8B0h2<_8B0p 28^^^/A8Hth ^~ȞȾ8H|`x^^^T:|x}"<_1P H/cA/@^8B  H <_8B0h2<_8B0p 2^^^/A8H^8B@^8BPh ^~ȞȾH|`x^^^T:|x}"<_1 8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N @ >U@Lc˰?#x+1+11+ë+0+00p+0+00h*ë*1h*1h1P*ë*(0*$00p*0*00h* ë)0)00p)0)00h)ë)00),00p) 0)00h)ë(1(11x(ë(`0(\00p(P0(L00h(Dë(1`(1`1H'ë'0'00p'0'|00h'të'H1'D11'ë&1&11h&ë&1X&1X1@&Pë&0%00p%0%00h%ë%1p%1p1X%ë%`1x%\1x1`%(ë$0$00p$0$00h$ë$1$11$Xë$0$00p#0#00h#ë#P0#L00p#@0#<00h#4ë"0"00p"0"00h"ë"1<"1<1$"hë"0"00!1H!1H10!|ë!0 00p 0 00h ë 0 00p 0 00h xë (0 $00p 0 00h ë000p000hëD0@00p40000h(ë000p000hë000H0D00p80400h,ë111ëh0d00pX0T00hLë 111lë000p000h|ëP1\L1\1Dë000p000hëX0T00pH0D00h<ë1t 1t1\ë000px0t00hlë@1<11ë000p000hë40000p$0 00hë1P1P18ë`0\00pP0L00hDë000p000hë1T1T1<të 000p0 00hë000p000hël1h114ë000p000hët0p00pd0`00hXë,1(11|ë000p000hë40000p$0 00hë1d1d1Lë`0\00pP0L00hDë000p000hë1|1|1dtë000p000hë000p000hëD1@11t ë000|0x00pl0h00h`ë0 00p000hë000p000hë80400p(0$00hë1L1L14ë\0X00pL0H00h@ë 0 00p 0 00h ë 1D 1D1, pë 0 00p 0 00h ë 0 00p 0 00h ë `1@ \1@1( (ë 0 00p 0 00h ë `0 \00p P0 L00h Dë 1 11p ë |0 x00p l0 h00h `ë 0 00p 0 00h ë 0 00p 0 00h ë 80 400p (0 $00h ë111ëT0P00pD0@00h8ë000p000hë|0x00pl0h00h`ë0 00p000hë111tëL1H11ë000000ë000xh0d00pX0T00hLë000p000hël1lh1l1T4ë000p000hël0h00p\0X00hPë$18 181 ë000p0|00htë$0 00p000hë\0X00@0<00$0 00 000ë000000|0x00d0`00t140hl140hT100HL100H41,0(,1,0(1(0 1( 01$/1$</1 /Ȭ1 X/ȫ1/1t/1/1/t1/hl1/hT1/HL1/H41 /(,1 /(1/ 1/1.1.1.Ȭ18.ȫ0.0T.0.0p.t0.hl0.hT0.HL0.H40.(,0.(0. 0.0-0-0-Ȭ0-ȫ0ܡ-0ܡ4-0ء-0ءP-t0ԡ-hl0ԡl-hT0С-HL0С-H40̡-(,0̡-(0ȡ- 0ȡ-0ġ,0ġ,0,Ȭ0,ȫ0,0,0,00,t0,hl0L,hT0,HL0h,H40,(,0,(0, 0,FPFPFPFP|FPxFPtFPpFPlFPhFPdFP`FP\FPXFPTFPPFPLFPHFPDFP@FP<FP8FP4FP0FP,FP(FP$FP FPFPFPFPFP FPFPFPFP,? 9A;.2)#'C7%!E 60=+4,? 9A;.2)#'C7%!E 60=+4 5 /(-*$B8&31<" D:@>1f' 5$p^lAxT4)gzNCUML<,sEa;y[ _for_initdyld_stub_binding_helper_ceafor_somfor_merfor_psfor_omerfor_polyfor_orthfor_gnomfor_molwfor_equifor_wivfor_sterfor_obleqfor_bceafor_goodfor_sinfor_robfor_tmfor_imolwfor_millfor_lamccfor_eqconfor_wviifor_lamazfor_stplnfor_hamfor_azimfor_isinusfor_gvnspfor_alconfor_alberfor_vandgfor_utmfor_paksz_lamccforint_utmforint_goodforint_isinusforinit_gvnspforint_calc_utm_zone_eqconforint_alconforint_gnomforint_sterforint_vandgforint_stplnforint_polyforint_equiforint_robforint_omerforint_hamforint_millforint_bceaforint_imolwforint_obleqforint_wivforint_alberforint_sphdz_molwforint_merforint_wviiforint_ceaforint_somforint_psforint_tmforint_lamazforint_orthforint_sinforint_azimforint #1/20 1295536335 505 505 100644 22924 ` inv_init.o 11__text__TEXT+3__picsymbolstub1__TEXT+-K __literal8__TEXT0`(2p__la_symbol_ptr__DATA02Pd$$__nl_symbol_ptr__DATA13(HS(GV| PFQi|!`|> xB~Đȑ̑>Б^8h8h/a@^ɢ<_0hAX^ɢ<_0hA@^8Bɢ<_0hA$^8Bɢ<_0hAH 88P8^X9>`~Ā|x|Fx}'KxH-H؀/b@^ɢ<_0hA^ɢ<_0hAl^8Bɢ<_0hAP^8Bɢ<_0hA488P8^X9>`~Ā|x|Fx}'KxH,H48K8P8^X9>`~Ā|x|Fx}'KxH,^8B0؀^8B8Ѐ/a@@^8B  H)<_8B0H2<_8B0P 2^^А^/A8H)T^8B( H)m<_8B0H2<_8B0P 2^^А^/A8H(PɾX @h~ȞȾH+5|`x^^^АT:|x}"<_1p H(|/b@@^8B  H(<_8B0H2<_8B0P 2^^А^/A8H( ^8B( H(%<_8B0H2<_8B0P 2^^А^/A8H'PɾX @h~ȞȾH) |`x^^^АT:|x}"<_1 H'4/@؀/@088P8^X9>`~|x|Fx}'KxH)ɀHH/@ ^ H'<_8B0H2<_8B0P 2(^^А^/A8H&|^8B H&<_8B0H2<_8B0P 2^^А^/A8H&ɾ(<_8B0X 2 H)|`xHɾ<_0hAHH|АH<_8B0`PɾX @h~>HH)-|`x^^^АT:|x}"<_1d H%T/@t~ĀȀH&M|`x^^^А^/A8H%T:|x}"<_1P H$؀/@ ^8B H$<_8B0H2<_8B0P 2^^А^/A8H$h^8B H$<_8B0H2<_8B0P 2^^А^/A8H#^8B  H$<_8B0H2<_8B0P 2^^А^/A8H#^8B( H#<_8B0H2<_8B0P 2^^А^/A8H#$PɾX @h~ȞȾH$|`x^^^АT:|x}"<_1\ H"/@ ^8B H"<_8B0H2<_8B0P 2^^А^/A8H"@^8B H"Y<_8B0H2<_8B0P 2^^А^/A8H!Ԁ^8B  H!<_8B0H2<_8B0P 2^^А^/A8H!h^8B( H!<_8B0H2<_8B0P 2^^А^/A8H PɾX @h~ȞȾH$A|`x^^^АT:|x}"<_1H H /@@^8B  H <_8B0H2<_8B0P 2^^А^/A8H ^8B( H 1<_8B0H2<_8B0P 2^^А^/A8HPɾX @h~ȞȾH!|`x^^^АT:|x}"<_1 H@/@@^8B  HU<_8B0H2<_8B0P 2^^А^/A8HЀ^8B( H<_8B0H2<_8B0P 2^^А^/A8HdPɾX @h~ȞȾH |`x^^^АT:|x}"<_1x H/@@^8B  H <_8B0H2<_8B0P 2^^А^/A8H^8B( H<_8B0H2<_8B0P 2^^А^/A8HPɾX @h~ȞȾH)|`x^^^АT:|x}"<_1 H/@X^8B H<_8B0H2<_8B0P 2^^А^/A8H@^8B HY<_8B0H2<_8B0P 2^^А^/A8HԀ^8B  H<_8B0H2<_8B0P 2^^А^/A8Hh^8B( H<_8B0H2<_8B0P 2^^А^/A8H^8B@ɢ<_0hA8PɾXX @h~ȞȾH|`x^^^АT:|x}"<_1L H\8K/ @T^8B^8B  HU<_8B0H2<_8B0P 2^^А^/A8HЀ^8B( H<_8B0H2<_8B0P 2^^А^/A8HdPɾX @h~ȞȾH|`x^^^АT:|x}"<_1@ H/ @8^8B  H <_8B0H2<_8B0P 2^^А^/A8H^8B( H<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞȾHM|`x^^^АT:|x}"<_1 H/ @8^8B  H<_8B0H2<_8B0P 2^^А^/A8HD^8B( H]<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞȾH|`x^^^АT:|x}"<_1 Ht/ @8^8B  H<_8B0H2<_8B0P 2^^А^/A8H^8B( H<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞȾH|`x^^^АT:|x}"<_1T H4/ @8^8B  HI<_8B0H2<_8B0P 2^^А^/A8HĀ^8B( H<_8B0H2<_8B0P 2^^А^/A8HX` ^~ȞȾH|`x^^^АT:|x}"<_1 H/@8^8B  H <_8B0H2<_8B0P 2^^А^/A8H^8B( H<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞȾH |`x^^^АT:|x}"<_1l H/@L^8B  H<_8B0H2<_8B0P 2^^А^/A8HD^8B( H]<_8B0H2<_8B0P 2^^А^/A8H؀^8B` ^~ȞȾH|`x^^^АT:|x}"<_1, H`/@Ȁ^8B  Hu<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞH |`x^^^АT:|x}"<_14 H/@8^8B  H<_8B0H2<_8B0P 2^^А^/A8H ^8B( H9<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞȾH |`x^^^АT:|x}"<_1 HP/@Ȁ^8B  He<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞH|`x^^^АT:|x}"<_10 H/@Ȁ^8B  H<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞH|`x^^^АT:|x}"<_1| H /@^8B^8B( H <_8B0H2<_8B0P 2^^А^/A8H 0^8B`ɢ<_0h@p8^8B@ H %<_8B0H2<_8B0P 2(^^А^/AH8^8B H <_8B0H2<_8B0P 2@^^А^/A8H 4^8B  H M<_8B0H2<_8B0P 2^^А^/A`8H 8@^H ^8BH H <_8B0H2<_8B0P 2^^А^/A8H P^8BP H i<_8B0H2<_8B0P 2 ^^А^/A8H ^8BX H <_8B0H2<_8B0P 2^^А^/A8H xPɾXx @h~Ȟ@Ⱦ>(^~ ɞH |`x^^^АT:|x}"<_1 H /@^8Bx|^8B^8B`ɢ<_0hA8PɾXX @h~0Ȟ(ȾH |`x^^^АT:|x}"<_1` H 8^8B H !<_8B0H2<_8B0P 20^^А^/A8H^8B  H<_8B0H2<_8B0P 2(^^А^/A8H0^8B@^8BHK/@Ȁ^8B  H<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞH |`x^^^АT:|x}"<_1h H4/@Ȁ^8B  HI<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞH |`x^^^АT:|x}"<_1< Hd/@P` H |`x^^^АT:|x}"<_1t H /@Ȁ^8B  H!<_8B0H2<_8B0P 2^^А^/A8H` ^~ȞH|`x^^^АT:|x}"<_1 H</@P` H|`x^^^АT:|x}"<_1 H/@`PɾX @h~ȞH U|`x^^^АT:|x}"<_1X H|/@Ȁ^8B  H<_8B0H2<_8B0P 2^^А^/A8H ` ^~ȞH|`x^^^АT:|x}"<_18 H/@Ȁ^8B  H<_8B0H2<_8B0P 2^^А^/A8H<` ^~ȞHu|`x^^^АT:|x}"<_1$ H܀/@Ѐ^8B  H<_8B0H2<_8B0P 2^^А^/A8Hl^8B( H<_8B0H2<_8B0P 2^^А^/A8H^8BȀ^8B^8B@ H<_8B0H2<_8B0P 28^^А^/A8Ht` ^~ȞȾ8H}|`x^^^АT:|x}"<_1( H/cA/@^8B  H <_8B0H2<_8B0P 2^^А^/A8H^8B@^8BP` ^~ȞȾH9|`x^^^АT:|x}"<_1D 8|x!|N |B}h=k|}N |B}h=k|}N |B}h=k|h}N |B}h=k|L}N |B}h=k|0}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|p}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N @ >U@Lc˰?#x+1\+1\1D+hë*0h*0h0P*0`*0`0H*ë*1@*1@1(*dë*0h*0h0P)0`)0`0H)ë)x0h)t0h0P)h0`)d0`0H)\ë) 0h)0h0P(0`(0`0H(ë(1<(1<1$(ë(<0h(80h0P(,0`((0`0H( ë'1P'1P18'ë'l0h'h0h0P'\0`'X0`0H'Pë'$1p' 1p1X&ë&1&11&ë&d1,&`1,1&,ë%0h%0h0P%0`%0`0H%ë%1%11t%\ë%<1T%81T1<%ë$0h$0h0P$0`$0`0H$ë$l1$h11h$4ë#0h#0h0P#0`#0`0H#ë#H0h#D0h0P#80`#40`0H#,ë"0h"0h0P"0`"0`0H"ë"1x"1x1`"`ë"0"00h!1!11!|ë!0h 0h0P 0` 0`0H ë 0h 0h0P 0` 0`0H xë (0h $0h0P 0` 0`0H ë0h0h0P0`0`0HëD0h@0h0P40`00`0H(ë0h0h0P0`0`0Hë000hH0hD0h0P80`40`0H,ë111|ëh0hd0h0PX0`T0`0HLë 1H1H10ë0h0h0P0`0`0H|ëP10L101ë0h0h0P0`0`0HëX0hT0h0PH0`D0`0H<ë1L 1L14ë0h0h0Px0`t0`0Hlë@1D<1D1,ë0h0h0P0`0`0Hë40h00h0P$0` 0`0Hë111lë`0h\0h0PP0`L0`0HDë0h0h0P0`0`0Hë1(1(1të 0h0h0P0` 0`0Hë0h0h0P0`0`0Hël1lh1l1T4ë0h0h0P0`0`0Hët0hp0h0Pd0``0`0HXë,1 (1 1ë0h0h0P0`0`0Hë40h00h0P$0` 0`0Hë14141ë`0h\0h0PP0`L0`0HDë0h0h0P0`0`0Hë1X1X1@të0h0h0P0`0`0Hë0h0h0P0`0`0HëD1d@1d1L ë000h|0hx0h0Pl0`h0`0H`ë0h 0h0P0`0`0Hë0h0h0P0`0`0Hë80h40h0P(0`$0`0Hë18181 ë\0hX0h0PL0`H0`0H@ë 0h 0h0P 0` 0`0H ë 1 11x pë 0h 0h0P 0` 0`0H ë 0h 0h0P 0` 0`0H ë `1 \11 (ë 0h 0h0P 0` 0`0H ë `0h \0h0P P0` L0`0H Dë 1` 1`1H ë |0h x0h0P l0` h0`0H `ë 0h 0h0P 0` 0`0H ë 0h 0h0P 0` 0`0H ë 80h 40h0P (0` $0`0H ë1t1t1\ëT0hP0h0PD0`@0`0H8ë0h0h0P0`0`0Hë|0hx0h0Pl0`h0`0H`ë0h 0h0P0`0`0Hë1h1h1PtëL1|H1|1dë0x0x0`000hë0p0p0Xh0hd0h0PX0`T0`0HLë0h0h0P0`0`0Hël1$h1$1 4ë0h0h0P0`0`0Hël0hh0h0P\0`X0`0HPë$1 11pë0h0h0P0`|0`0Htë$0h 0h0P0`0`0Hë\0X00h@0<00h$0 00h 000hë000h000h|0x00hd0`00ht10Hl10HT10(L10(41 0,1 01/ 1 /1/Ȭ1</ȫ1/1X/0/0t/0/h0/ht0/Hl0/HT0/(L0/(40/,0/0. 0.0.Ȭ0.ȫ0.08.0ܡ.0ܡT.0ء.h0ءp.ht0ԡ.Hl0ԡ.HT0С.(L0С.(40̡.,0̡.0ȡ- 0ȡ-0ġ-Ȭ0ġ-ȫ0-0-0-04-0-h0P-ht0-Hl0l-HT0-(L0-(40-,0-0, 0,0,Ȭ0,ȫ0,0,0,0,0,h00,ht0,Hl0L,HT0,(L0h,(40,,0,0+ 0+FPFPFPFP|FPxFPtFPpFPlFPhFPdFP`FP\FPXFPTFPPFPLFPHFPDFP@FP<FP8FP4FP0FP,FP(FP$FP FPFPFPFPFP FPFPFPFP,9%A#;.)6C'! 0=7+4E?  2,9%A#;.)6C'! 0=7+4E?  2($8-D&"3B1< :5>* /@ A#%\J+$`7K{ESm .XMn40dDeT: ;ywo _inv_initdyld_stub_binding_helper_imolwinv_omerinv_lamazinv_bceainv_gnominv_molwinv_equiinv_sterinv_polyinv_wviiinv_obleqinv_gvnspinv_millinv_sininv_wivinv_robinv_tminv_isinusinv_lamccinv_eqconinv_stplninv_aziminv_alconinv_alberinv_sominv_utminv_haminv_orthinv_ceainv_goodinv_psinv_vandginv_merinv_paksz_sterinvint_imolwinvint_molwinvint_vandginvint_millinvint_isinusinvinit_stplninvint_polyinvint_omerinvint_equiinvint_bceainvint_sominvint_wivinvint_alberinvint_aziminvint_obleqinvint_merinvint_ceainvint_psinvint_tminvint_sphdz_lamazinvint_orthinvint_sininvint_wviiinvint_lamccinvint_utminvint_goodinvint_calc_utm_zone_gvnspinvint_haminvint_eqconinvint_robinvint_gnominvint_alconinvint #1/12 1295536335 505 505 100644 12972 ` cproj.o __text__TEXT__picsymbolstub1__TEXT .$ __literal8__TEXT(__cstring__TEXT__la_symbol_ptr__DATA$/  0P1 P 0|!|> x>8pt>8H}^p>8H^t!|N |!|> xB>88<_lAH@8<_ɢlhA<@8`^8~8H !|N |!|> xB>H^P~XɾHP 28ɾ882<_h( HuXh$ !|N |ۡ!p|> xB>H^P~XɾH<_8BTAP*`HɾHP 28ɾHH2<_\h(ɾ882<_\h(Ph$<_ɢdH$<_ɢ\8(ɾ8<_\ * $ H2*2۾`H` !|ˡN |ۡ!P|> xB>x^ɾ<_\ 2 K}@ɾx<_8BLA ɾxx 2`88H(@Hh8h8^p>@|x|FxKɾhxrPɾPP2<_dh(HɾH<\2H2p$<_ɢd`(h$ɾhH $(<ɣ\x$<_ɢdP(ɾP<d * $ H2*2Xɾ@X *@X<_8BTOA ^8888/@H@H4<_8bL<_8`Hр^8<@8`^~ !|ˡN |!p|> xB>h^p^8ɾh<_h 2`>pH]<_p2<_8BX *X88H>XHa@ɾh@ 2P<_ɢxP(ɾP<x * $ ^`Hp 2 H<_p2<_8BX*X (HɾXH *XH<_8B`OA ^8888/@$HXxH4<_8b8<_8XH^8<@@8`^x~|x !|N |!`|> xB>X^`~h؞pؾxXH88HH* Hh2X*ɾH<_ 2 Hp 2*ɾH<_ 2 Hyx 2*`$H (@ɾH@ *H@<_8BOA ^8888/@(H^8HH4<_8b<_8Hy^8<@@8`^~ !|N |!|> xB>^~؞ؾ^D88H ^D H5^D Hpɾ22<_Hh( H p 2^@^D* Hx^Dɢ2ɾx 2(^Dɢ<_P 2 H} 2*^Dɢ<_X 2 HM 2*hɾ<_`2^D* Hq2*ɾ<_P2^Dɢ<P 2 H52*ɾ<_X2^Dɢ<h 2 H 2*`h`*^@ɂɾhh2 * 2k*ɾ<_`2^@ɢh2<H * 2 *Xɾxm2ɾhh2*ɾ<_`2h 2 *2^@* $Pɾh (`*^@ɢ`2<ɣ`x $ *2ɾ`<_` 2 *HɾPH*Xh$@^Dɢ@ *^D@<_8B@OA ^8888/@H8@8`^~H(<_8bH<_8hH <@@8`^~ !|N !|> x|B}H|>88 ɾ8 x|B}H|>88 ɾ8 xB>H^P~XɾHX 2@ɾH<_ 28<_ɢ @(ɾ@<_ * $ ^8H@<_8B ɢP(<_ 2 H@ $ !|N !|> x|B}H|> xB>H88H<_8B pOAɾH<_8B p $PT/A>HK)|`x<@C0=?ɩ l\^XXh(<_8B x2Hh*HH|ɾH<_8B  $<@C0=?ɩ l^h(<_8B 2Hh*HHɾH<_8B  $`d<@C0=?ɩ ll^hhh(<_8B A`ɾH<_8B  $<@C0=?ɩ l^h(<_8B AHdɾH<_8B  $pt<@C0=?ɩ l|^xxh(<_8B x2Hh*HHɾH<_8B  $<@C0=?ɩ l^h(<_8B A8HdɾH<_8B  $<@C0=?ɩ l^h(<_8B 2Hh*HHL>HK|`x<@C0=?ɩ lĐ^h(<_8B x2Hh*H^8888/@HH !|N !|> x|B}H|>ɾ x|B}H|>ɾ x|B}H|>ɾ x|B}H|>ɾ22 xB>HɾH<_ *@<_ɢH (8>@^@H]>8^8HI2 Hy !|N |!|> xB>8^@~H؞PؾXɾ8X2ɾX<_P 2 H@ 2*ɾX<_X 2 HH 2*ɾX<_` 2 HP 2* !|N !|> x|B}H|>ɾz򚼯H?=|׽>z򚼯H???!TD-=|׽??=|׽@=|׽?@@@È?PbMA.@@C0@Y@Lc˰A.@@C0@N?!TD-??@ !TD-!TD-@!TD-AB !T! !T!C!S~=!S~=C0@0?@?????????UUUUUU?@@f@?Convergence errorphi1z-convphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv````t`p`ë `ëXëءءPH8$ë ССССȡȡ8`(\(T(P(<(8(|xllhl\XdPxLx\@p<pT0h,hL(( x`` ëlHhH P`L` 0@,@ 88 `` PP (( x`` t0p0 X8T8 <`8` @@ 88 `` 00 XX `|` `P\P <(8( x `` ë  p  p`L\ L ë| || |ë| || || | Ĭ  ī Ĭ , īء Ĭء  ī Ĭ , ī Ĭ 4 ī Ĭ , ī` Ĭ\ 4 ī< Ĭ8 , ī  Ĭ  $ ī С Ĭ С ī d ` H D 0 ,       ȡ ȡ  | T P D @   ë ( h( p( pH( \h( Xh@( ( `( ( `( ( `( hp( dpH( L( H`( ë ( h( ( X( ë x( xP( x( xP( ë x( t`( Të H( DX( $ë x( xP(ëp(pH(lëdd44pPlP(ë``ëXX<ë8(Ь4(XЫ0Ь,8Ы0Ь0`Ы(Ь(XЫ@Ь@pëtHЬpHxЫ`HЬ\Hx@ë (Ь(XЫ@Ь@pë8Ь8hpëlh`d`L$ Të  d  d\  dxt\d ` d@ëLë\TëD@\0,\ d \\TLë@<ëtlttlt8$ëȬ ȫ,hHhHdHt(l(TL4,Ȭ  PPPPP PPPPX \Ldjpv||l; B &-x4xR8Kd_tsincos_asinz_msfnz_qsfnz_phi1z_phi2z_phi3z_phi4z_pakcz_pakr2dm_tsfnz_sign_adjust_lon_e0fn_e1fn_e2fn_e3fn_e4fn_mlfn_calc_utm_zonedyld_stub_binding_helper_sqrt_log_cos_tan_p_error_atan_pow_sin_asin #1/12 1295536336 505 505 100644 14492 ` report.o8 T__text__TEXTXTB__picsymbolstub1__TEXT`4 __cstring__TEXT2T__literal8__TEXT88__bss__DATA__la_symbol_ptr__DATAp557L@ P5 |!|> xB~hl<_8Bp/A<_8b耞lhHY<_8Bt/A`<_8b<_8H|`x<_8B<_8B|x<_8耾lhH=<_8B|xH !|N |!|> xB~hlpth/@(<_8B8<_8B8Hh/@X<_8B8^p|t/@88H<_8B8<_8bpHHh/@|<_8B8^p|t/@4<_8B8<_8b(<_8HK%88H<_8B8<_8bpHYH$<_8B8<_8B8l/@(<_8B8<_8B8Hl/@X<_8B8^t|t/@88H<_8B8<_8btHHl/@|<_8B8^t|t/@4<_8B8<_8b(<_8HK88HP<_8B8<_8btH%H$<_8B8<_8B8888|x!|N |!|> xB<_8B/A<_8B|xH<_8B/A<_8B|xHр!|N |!|> xB~h<_8Bd/A<_8bhHY<_8Bp/A\<_8b|<_8H|`x<_8Bt<_8Bt|x<_8hHA<_8Bt|xH !|N |!|> xB>8<_8B/A(>8^<8<_8bx}$Kx}ESx H<_8B/Ap<_8b<_8(H9|`x<_8B<_8B>8^<8|x<_8x}%Kx}FSx HU<_8B|xH!!|N |!|> xB>8^@<_8B/AL>8^<8<_8b}$Kx}ESx H>@^D@<_8b}$Kx}ESx Hm<_8B/A<_8b<_88^<8|x<_8}%Kx}FSx HA<_8BĀ>@^D@|x<_8}%Kx}FSx H <_8BĀ|xH ـ!|N |!|> xB>8<_8Bl/ATɾ8<_8B  2@^@~D|jx|Ix^@~Dɾ@h<_8b}$Kx}ESx H !<_8Bx/A<_8b<_8 H |`x<_8B|<_8B|ɾ8<_8B  2@^@~D|jx|Ix^@~Dɾ@h|x<_8}%Kx}FSx H <_8B||xH !|N |!|> xB>8<_8B(/ATɾ8<_8B 2@^@~D|jx|Ix^@~Dɾ@h<_8b }$Kx}ESx H <_8B4/A<_8b@<_8 H |`x<_8B8<_8B8ɾ8<_8B 2@^@~D|jx|Ix^@~Dɾ@h|x<_8 }%Kx}FSx H <_8B8|xH Q!|N |!|> xB>8<_8B/ATɾ8<_8B 2@^@~D|jx|Ix^@~Dɾ@h<_8b }$Kx}ESx H <_8B/A<_8b<_8 lH Q|`x<_8B<_8Bɾ8<_8B 2@^@~D|jx|Ix^@~Dɾ@h|x<_8 }%Kx}FSx H A<_8B|xH !|N |!|> xB>8<_8B /ATɾ8<_8B l 2@^@~D|jx|Ix^@~Dɾ@h<_8b }$Kx}ESx H U<_8B /A<_8b <_8 (H |`x<_8B <_8B ɾ8<_8B l 2@^@~D|jx|Ix^@~Dɾ@h|x<_8 }%Kx}FSx H<_8B |xHɀ!|N |!|> xB>8<_8B \/ATɾ8<_8B 0 2@^@~D|jx|Ix^@~Dɾ@h<_8b }$Kx}ESx H<_8B h/A<_8b t<_8H|`x<_8B l<_8B lɾ8<_8B 0 2@^@~D|jx|Ix^@~Dɾ@h|x<_8 }%Kx}FSx H<_8B l|xH!|N |!|> xB>8^@<_8B /Aɾ8<_8B  2P^P~T|jx|Ix^P~TɾPh<_8b }$Kx}ESx Hɾ@<_8B  2P^P~T|jx|Ix^P~TɾPh<_8b }$Kx}ESx Hy<_8B $/A<_8b 0<_8H1|`x<_8B (<_8B (ɾ8<_8B  2P^P~T|jx|Ix^P~TɾPh|x<_8 }%Kx}FSx H!<_8B (ɾ@<_8B  2P^P~T|jx|Ix^P~TɾPh|x<_8 }%Kx}FSx H<_8B (|xH!|N |!|> xB>8<_8B /ATɾ8<_8B  2@^@~D|jx|Ix^@~Dɾ@h<_8bD}$Kx}ESx H<_8B ,/A<_8b 8<_8H|`x<_8B 0<_8B 0ɾ8<_8B  2@^@~D|jx|Ix^@~Dɾ@h|x<_8D}%Kx}FSx H}<_8B 0|xHI!|N |!|> xB>8^@<_8B܀/AL>8^<8<_8b(}$Kx}ESx H>@^D@<_8bL}$Kx}ESx H<_8B/A<_8b<_8dHM|`x<_8B<_8B>8^<8|x<_8(}%Kx}FSx Hi<_8B>@^D@|x<_8L}%Kx}FSx H5<_8B|xH!|N |!|> xB>8p<_8B/A,>8^<8<_8b(p}%Kx}FSx Hm<_8B/At<_8b<_8H%|`x<_8B<_8B>8^<8|x<_8(p}&Kx}GSx H=<_8B|xH !|N |!|> xB~hl<_8B/A<_8b<lhH<_8B/A`<_8b<_8$HA|`x<_8B<_8B|x<_8<lhHm<_8B|xH9!|N |!|> xB<_8B̀/A<_8bxH<_8B؀/AX<_8b<_8TH|`x<_8Bܐ<_8B܀|x<_8xH<_8B܀|xH!|N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N [%s] %s aOutput file name not specifiedreport-file %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld @Lc˰@Lc˰@Lc˰@Lc˰@Lc˰@Lc˰@Lc˰@ë40,ë(0$0x ë  Të00xë|xtëh$d$<XTLH@ë< 8 $40 ë $$<ëë(tphd\ëX T PL<84ë (ëëL|xëhСdС(LH@<4ë0 , d($ ëLëСС(xëldh 0ddëTdPDdhdh d d 0dd 0dë d dd 8dd ,dëdDdhdh dpdl d4ë( l$ ( l ë| l |  l` l` l l ( lëP lP lx` lt` lh ld ( l\ lX ( lPëL lH  lD l@ 0 l0 l, $ l(ë| l|  l ` l ` l ë P l P l ` l ` l | l x  l <ë 0 ( , l ( (ë  (  ( X ( X 0 (  (  l (  (  l ( ë  (   (  (  t (  (  h ( ë  ( | ( LX ( HX 0 ( 4 ( 0 \ ( ë   ë ȡ ȡ P P l    | të p l ( h d T P Lë < 8 P P l   ë   ë x x XH TH H D < 8 0ë , ( l $    ë L L H H   pë d\ `8\ \ë L\ H \ @\ @\ \ 8\\8\ë \ \\@\\4\ë\ \@\|@\h\d(\,ë |ë88 ||ë  xëpl<888 $ lëЬëЬЫЬëЬЫtЬpЫhЬd\ëX ЬT <ЫPЬLЫ<Ь84ë$Ь ëЬЫЬëë|\x\x`\TPHëD @ (<8($ ë\ \xë t ë< <  t | xt pël  h  d `| P Lp Hë@< << , (d ëëXTHD<ë40$ ë 00H(ëplPL@<$ ëë00H(ë|xlh<8 ëë|xpël h d`PLtHë<8($pt|Ȭl|ȫTxLx4t,tph phP PPPP"*5H 5=D wP $,d TnLX _p_error_init_close_file_ptitle_radius_radius2_cenlon_cenlonmer_cenlat_origin_true_scale_stanparl_stparl1_offsetp_genrpt_genrpt_long_pblankdyld_stub_binding_helper_strcpy_fopen_printf$LDBLStub_fclose_fprintf$LDBLStub_terminal_e_file_e_err_file_fptr_e_terminal_p_file_p_parm_file_fptr_p #1/12 1295536336 505 505 100644 1988 ` paksz.o ,,__text__TEXT<?__picsymbolstub1__TEXT 4 __cstring__TEXT6__literal8__TEXT0__la_symbol_ptr__DATA(8Td, P\|!P|> xB>hЀ^8ɾh<_A\<@?8`^`~dhH<_8B@ɾH@ $pt88/h@PH<@8`^`~dK<_8b<_8H^8\<@8`^~H8<@C0<ɣl|^xxh(XɾX@2Hh(H<_8B@ɾH@ $88/<@8<_8b<_8H5^8\<@8`^~H8<@C0<ɣl^h(PɾP@2Hh(HɾH=? AdɾX<_8B2ɾP<_ 2*H*` 2HɾH<_8B $XXH8<_8b<_8HM^8\<@8`^~H !|N |B}h=k|}N Illegal DMS fieldpaksz-degpaksz-minpaksz-secA.@@@ C0@NTëPLHD($    lëhd`\($ëԡԡd`84( (P!_pakszdyld_stub_binding_helper_p_error #1/12 1295536337 505 505 100644 3804 ` sphdz.o8 T__text__TEXTT L__picsymbolstub1__TEXT@4  __data__DATA pt__cstring__TEXT7__literal8__TEXT( __la_symbol_ptr__DATA D$D@ P4|!|> xB~/@^H^8B@ɾH<_A@<_ɢhAH@<_ɢhA@<_ɢhAXH,^H^@^HHԀ^H^H^HH^H^H<_ɢ@ ( HH 2^H`8@@HD<_8B^<_8B^<_8B^H <_8B^<_8B^<_8B^H̀8@@D<_8B^<_8B^><_8B H|8@@D<_8B^<_8B^><_8B H,<_8B^<_8B^><_8B H|p|@x|P88/@@<_8bx<_8H <_8b<_8H888H8/@\8<_8BT8|@^8<_8BT8|@^<_8B^H,8/@h8<_8BT8|@^8<_8BT8|@^8<_8BT8|@^H8/@\8<_8BT8|@^8<_8BT8|@^<_8B^HX8<_8BT8|@^8<_8BT8|@^<_8B^8|x!|N |B}h=k|}N |B}h=k|}N AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕AXT@AX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕AX?\9XInvalid spheroid selectionINFORMATIONALReset to 0AXM˕AXMAXM@?  ءءd ` H D ,ء(ء     ءء  t p XءTء8 4  ëëxءء    xСtС` \ L H (ȡ$ȡ     ءء    ءء | l h 4ë$ |xhd4, PP0 7'!_sphdzdyld_stub_binding_helper_sqrt_p_error_major_minor #1/12 1295536337 505 505 100644 1676 ` untfz.o8 T__text__TEXTT__picsymbolstub1__TEXT t __data__DATA@ __cstring__TEXT`S__literal8__TEXT __la_symbol_ptr__DATAH4 P|!|> xB~hlpl/Al/Ah/Ah/Ath>l<_8B(|JT8|@^p^pɢ<_A88HD<_8bH<_8`Hi8M8H$<_8bl<_8HI88H8|x!|N |B}h=k|}N ?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unitëlëxx```Hd@`@(( (P*@!_untfzdyld_stub_binding_helper_p_error_factors #1/12 1295536337 505 505 100644 7804 ` gctp.o| ~__text__TEXT@TÀ__picsymbolstub1__TEXT@l __bss__DATAkX__data__DATA __cstring__TEXT8@__literal8__TEXTx(__la_symbol_ptr__DATA8L P  |!|> xB~HLPTX\>`^d8@8<^8^`"^h}#Kx|xdlH)|`x^^/A8H<_8B/@x8HH<H<_8BT:|@8H<_8B@T:|@8H<_8BT:|@8H<_8BFT:|@8H<_8BHTT:|@8H<_8BIT:|@88DHpH>D<_8Bh|JT8} 8@8`IiH>D<_8BK|JT8} 8@8`Ii^D8DD/@^H8HH/d@8@8<<_8B8HX^L/A^L<_8BT:|@"^P@l^L<_8B@T:|@"^\@@^L<_8BT:|@"^L@^L/@8@H|8HHX^L>H<_8Bh|JT8|@ɢHT8|xT|B@ ^H8HH/ @H 8@^t/A H^t<_8BIT:|@"^x@l^t<_8BHTT:|@"^@@^t<_8BFT:|@"^t@^t/@8H<_8BK|JT8|@ɢHT8|x||B@ ^H8HH/ @H 8<^L/AH^L/d@0<_8b <_84H ^88H X^t/A^t/d@0<_8b@<_8TH ^88H ^X8^\/@,^L/@^X/@ 88^\/@\^L/@L^X/@<^P"<Q`| |.p} p|P<_8BT:|@8^L/@(8`~88|xH |`x^H$8`~88|xH |`x^^L/@^X8^/AH 98HЀ^Hɢ` 2X^H8Bɢ` 2P@/A^L^L"<_8BT:|@"^L^\"<_8B@T:|@"^L^P"<_8BT:|@"8HHP^L"~HHT8|xT|B<_8Bh |ZT8|@^H8HH/@^L/@8HH@>HHT8|xT|BU"888|B8B@^H8HH/@8@8`^x~|8@8`^~^P/@^Tɢ<_xAh^Tx^T8B^Lb^P"^\B8x}c[x}$Kx|x|Fx><_9B|lHH^P@8I<@C0=?ɩl^h(<_8B` 2x^P/A<_8BhKT<_8BpK@^L^P"^\B|x}$KxT|Fx><_9B|lH^/AHE8H܀^L/@$XhPpP^TɾP8h9~p|dx|Cx }%Kx}FSx@h|x}h[xx}N!|`x^^/ApH8H^t^t"<_8BFT:|@"^t^"<_8BHTT:|@"^t^x"<_8BIT:|@"8HHP^t"~HHT8|x||B<_8BK |ZT8|@^H8HH/@^t/@x8HH@>HHT8|x||BU"888|B8B@^H8HH/@8@8`^x~|8@8`^~^|ɢ<_xAh^|x^|8B^tb^x"^B8x}c[x}$Kx|x|Fx><_9BzH Hh^~|jx|Ix^~ɾh}#Kx}DSx HMxp^~|jx|Ix^~ɾh}#Kx}DSx H K8^t^x"^B|x}$Kx||Fx><_9BzHA^/AH8Hd^t/@@h^p^p8Bp^8^/@HԀ^t<_8BzT:|@hɾp^p9^~|jx|Ix}+Kx}LSx^~پ^~|jx|Ix^~ɾh}c[x}cx `}%Kx}FSx@p| x}N!|`x^^/A$H8HH^t/@^/@ 88^/@\^t/@L^/@<^x"<Q`| |.p} p|P<_8BT:|@8^t/@(8`8`8|xHq|`x^H$8`8`8|xHM|`x^^t/@^8^pɢ` 2^p^p9"^p8Bɢ` 2 Hi8|x!|N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N Insys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUTA.AC0ë\ X  ë z zz  ë z zz T  ë z zz p lx K KK lJ hJI HHl DHlHT $Fء FءF ë | ||l < (ë $| ||lphxx`hëd|`||lx0,hXX@ġġH ë  ëllTXX@ëLL488 $K KKFءFءFHlHlHTtJpJIhġġtXpX@HDKKKhXJTJI<Hl8HlHT FءFءFXX@ġġxëȬȫtlTL 4h,<hH XHPPP PPPP  _e lrXyFHlJK|z3N? E*X_gctpdyld_stub_binding_helper_inv_init_pakr2dm_close_file_init_p_error_for_init_untfz_iter_NADUT_inpj_indat_inzn_outpj_outdat_outzn_pdin_pdout_inv_trans_for_trans#1/20 1295536337 505 505 100644 772 ` br_gctp.ol __text__TEXTl__picsymbolstub1__TEXT Ht __la_symbol_ptr__DATAh( P|!|> x~>^8<@ĐDȐH̐LАPԐTؐXܐ\~>^H!|N |B}h=k|}N ëȬ P!_gctp_dyld_stub_binding_helper_gctphdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibIRIX62-64.a0000755000175000017500000307500412024715435021507 0ustar amckinstryamckinstry! /SYM64/ 1074016424 0 0 0 3152 ` 11ZdZddddd$$  FFhhttTT77XtXtDDӴӴtt,t,tPPsssss4$4$UU~~TT4466RRxxTTtt--KdKdmTmT44&D&D]t]tuu$$CtCtdd   BT BT p p 4 4   5 5 Qd + + + + + + + + + + + + + + + + + + + + T T T T T T T T T T T T T T T T T   / ialberforintalberforalberinvintalberinvalconforintalconforalconinvintalconinvazimforintazimforaziminvintaziminvbceaforintbceaforbceainvintbceainvceaforintceaforceainvintceainveqconforinteqconforeqconinvinteqconinvequiforintequiforequiinvintequiinvgnomforintgnomforgnominvintgnominvgoodforintgoodforgoodinvintgoodinvgvnspforintgvnspforgvnspinvintgvnspinvhamforinthamforhaminvinthaminvimolwforintimolwforimolwinvintimolwinvisinusforinitIsin_for_freeIsin_for_initisinusforIsin_fwdisinusinvinitIsin_inv_freeIsin_inv_initisinusinvIsin_invlamazforintlamazforlamazinvintlamazinvlamccforintlamccforlamccinvintlamccinvmerforintmerformerinvintmerinvmillforintmillformillinvintmillinvmolwforintmolwformolwinvintmolwinvobleqforintobleqforobleqinvintobleqinvomerforintomerforomerinvintomerinvorthforintorthfororthinvintorthinvpolyforintpolyforpolyinvintpolyinvpsforintpsforpsinvintpsinvrobforintrobforrobinvintrobinvsinforintsinforsininvintsininvsomforintgsat_ratiosomforsominvintsominvsterforintsterforsterinvintsterinvstplnforintstplnforstplninvintstplninvtmforinttmfortminvinttminvutmforintutmforutminvintutminvvandgforintvandgforvandginvintvandginvwivforintwivforwivinvintwivinvwviiforintwviiforwviiinvintwviiinvfor_initinv_inittsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zonep_errorinitclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblankpakszsphdzuntfzgctpgctp_alberfor.o/ 1074016362 1032 20 100644 9428 ` ELF0@@ '/7=CJR[elt}#6J.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataalberforintp_errortsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lonsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:alberfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $gP`X<$!!-pxפ8ף@ע0נסF!F ׁF! I 3 @ @A0 AA A@  @0 A`AA@A @8?xalberforint`alberforxZr_majorxr_minorce3rhns0lon_centerfalse_easting?false_northing08hp {p7\    @ Xh^($P* hH00 h6 xj>p! bP HP f q h{p (PpxxppgpKp@p#Gpj  (@ h x / C Wp alberinv.o/ 1074016363 1032 20 100644 10372 ` ELF!0@@ '/7=CJR[elt} +>R.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataalberinvintp_errortsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberinvatan2logphi1zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:alberinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $gPXP<$!!-pxפ@ףHע8נסF!F ׁF!E רXשXF)BשPתPM J!F Bׇ ׫X׬XF,Z׬P׭PMmbF ZF Z׊Dx׭DpF.i2E ׬P׭F-c׭X׮F.kBߙ @׳ה0F4הF4אױײN9ב0F1 ׏׎F/r>EA׌׍F-c׍׎F.k@F-cߙ אבג F2Aג F2BF1BגF2CF1ׯF {װ F F0{F {׎F/sEו(ߥhז0ߦh׌׭ gߙ @ߨhߧ(׌8׭׎0F.kCF-cߙ @ߪ`@((ߢ(߼8߿0gp=|׽???!TD-!TD-Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREAb       $ ( , 0 4 8 < @ J N R V Z ptxH|H%%%0 %P%h% %% %pXtX| % % % %%% %t%%d%%<DL`     , L Xd x   (0DHLTdlx      0<@T $4@DTX`dp | ,@T`  (xxalberinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c alberinv.c,alberinvintd(M-r_maj7@.r_min7H/lat17P0lat27X1lon07`2lat07h3false_east7p4false_north7x6sin_po7~6cos_po7~7con7~8temp7~9ms17~:ms27;qs07<qs17~=qs27ralberinvd`7sx7`ty7hu lonkpv latkxxrh17yqs7zcon7{theta7|flagvdoubler_major7  r_minor7 !c7 "e37 #es7  $rh7 (%ns07 0&lon_center7 8'false_easting7 @(false_northing7 Hint7long0 /ecs/hdfeos/gctp/src/usr/includealberinv.cʿ*stdio.hostandards.hDsgidefs.h7getopt.hˍ 4 -)$$,-%,-%-,A(  !  $!,0 8$(!`50  !u09% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 AA A@  @0 ApAA@ @8?alberinvintMalberinvAr_major_r_minor}ce3esrhns0lon_centerfalse_easting?false_northing08hp hpxWu7\    @0 phf>($p* PP00 P86 r>p! bP `P fq {p PppP8pgpp@pGp  @   !8 / !XC !hWp !xalconfor.o/ 1074016363 1032 20 100644 11460 ` ELF%x0@@  (,048=ELT[bj0s~$8.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodataalconforintsinpowtanatantsincosptitleradius2cenloncenlatoffsetpalconforadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:alconfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g <%.-08@H׳0ײ8ױ@ װH(׏׎$ H׍׬F c@׋ߌ׊ ߋj׉(ߊI׈0߉(ׇ8߈׆@߇D(߆ׄP߅׃X߄ׂ`߃bׁh߂A׀p߁ ׌ߙ ׎@F s׌x׭F-c׭׎xF.k@F-c׍@׎F.kBߙ (׌׍F-c׍F-cߙ ׬(F cߙ ׍׎Ma׬g0g8ߙ ߄dߙ ׌׍ߙ ׌ߙ ׌ߙ ׌ ׍(ߙ %߼ ߿gPg0<$!!-׬׍F-cߙ ׬ggߙ ׬ߙ ׎@F s׌x׭F-c׭׎xF.k@F-c׍@׎F.kBߙ ׬׍F-c׍F-cߙ ׬F cߙ ׍׎Ma ׬ g(g0ߙ ש(׊0F*JBת׫0׌8F,ZM+Ra8׆ק8׈xF(9F'1@ףפ0ץ@F%!F$H׷@נס0ׂ0F"BF!ס(ׂ8L)F P׵H׶HF6@X׳P״PF4״H׵HNu@߈e߉H H @-`߇d߈H@8-h߆d߇Hd80-p߅d߆Hd0(-ԯx$ߣ߂HC*@4׮pׯ`װXM{׫x׬h׭XMmbߩߊH*H* ߌeߍH߮h/ h`-Ֆ׷@נ`NpߋekߌH߭`/ `lX-s״@׵hNuxײ`ױh߯e߮ߍHh*ׯ@װ`F0{F {p׭@׮hF.kBF kGx׬`׫h׆ ׇרpשPתhF*JBתH׫`M+RiF)BL9߹&ׁ(ׂףxפPץ`F%!ץHצhL)!F$L#a߸%߼߿g9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO???!TD-!TD-@ALASKA CONFORMALX       $ ( , 6 : > B F J N x|  ((00@@HHPPXX``hh %L%p % % % % %%%%<@h% %%% % %8 %8 8$(D8H888,4<DHLPT\`pt  0<@H X\dl        \d      4 DTdl,Lp<(x1alconfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c alconfor.c1alconforint%((~2r_maj~`3r_min~h4false_east~p5false_north~x7es~8chi~@9esphi~galconfor%0`~hlon~`ilat~hj x,pk y,xndlon~~osinlon~~ocoslon~~psinphi~~pcosphi~~qesphi~~rg~~ss~~txp~~uyp~var~wai~xbr~ybi~zarn~{ain~@|chi~~}r~~jdouble"r_major~ #r_minor~ $lon_center~ %lat_center~ &false_easting~  'false_northing~ (~8d(acoefO ~8)bcoef 8*sin_p26~ 0+cos_p26~ 8,e~ @long- n Hint~ /ecs/hdfeos/gctp/src/usr/includealconfor.cʿ'stdio.hostandards.hDsgidefs.h7getopt.hˍ 5  (    $($0$$ (((,,! !<<w  @A% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A0( APAA@ @00 AAA@ @8?9alconforint~alconfor9r_majorr_minorlon_centerlat_centerfalse_easting*false_northingdacoefbcoefsin_p26cos_p26e n08hp "Gx      @ @mL($0* 8P0 8p50 8; Cp! XU H  khv pp `Pp9p#p! yp!p"@p"]Gp" # #@ #@! % 4 %@H %P\p %`alconinv.o/ 1074016364 1032 20 100644 13620 ` ELF-0@@  (,048=ELT[bj0|s{%8L.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodataalconinvintsinpowtanatantsincosptitleradius2cenloncenlatoffsetpalconinvp_errorasinzatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:alconinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g <%.-08@H׳0ײ8ױ@ װH(׏׎$ H׍׬F c@׋ߌ׊ ߋj׉(ߊI׈0߉(ׇ8߈׆@߇D(߆ׄP߅׃X߄ׂ`߃bׁh߂A׀p߁ ׌ߙ ׎@F s׌x׭F-c׭׎xF.k@F-c׍@׎F.kBߙ (׌׍F-c׍F-cߙ ׬(F cߙ ׍׎Ma׬g0g8ߙ ߄dߙ ׌׍ߙ ׌ߙ ׌ߙ ׌ ׍(ߙ %߼ ߿gPg <$!!-08@Hפ0ׅ F%!ׅF%!0ע8׃(F#׃F#8ס0נ8װױF1׮ׯF/sׯװM{ ߌeߍH h`-Ս(ߋekߌH `lX-l0ߊeJߋHek XKP-K8߉e)ߊHeJ P*H-*@߈HDHFJaת(F*JBH߇HD@FB!ש0F)BP߆HdD8F9ר8F(9X߅HdD0F1ק@F'1`$hߣh߂HC*@f׵8׶׷(Napײ@׳״0NTx߭hߎHh*O߄d߅Hߦh(/( -ԑײ ׳(N3y8߃dc߄Hߥh / d-nׯ װ0M{@׭p(׬x0שXת׫HM+Raצ`קרPL9פ ץHF%!߁Hߢh"/D(F)aߟg߁Hߢh"/-L))Xע ףPF#ߘH߹h/DFߏeߘH߹h/x-LD`סHנPߧhdhߦh߅H(*׷ נ(F F 8׵ ׶0F6BF G@״p(׳x0װ8ױ0ײF2Bײ(׳N3iF1ױ0F1׭@׮(ׯF/sׯ0װM{F.k@׮8F.kAתX׫P׬F,Z׬H׭MmbF+RקPרHשF)BשPתM J!F(9ץצF&)BצקL1aףפF$פץLe F פF$סעF"BעףL#iF GעF"C׷נF ׵׶F6@״F ׵F EF5ߩe)ߨ) ߄d߅dߙ $עׁF"EדߧHt׌8׭׮F.kBF-c׭F-c׭׎0Mk!ߙ (ׯ׬ߙ ׎@F s׬׍xF-c׍x׮F.kAF-c׍@׎F.kBߙ (׬׍F-c׍F-cߙ ׬(F cߙ ׏אMװF0{׭׮F.k@ߩe)ߨ) ߄d߅dߙ $$ײF בF2 I !/ I 3 @ @A0( APAA@ @00| AAA@ @8 ?[alconinvint~alconinv[r_majorr_minorlon_centerlat_center(false_eastingLfalse_northingacoefbcoefsin_p26cos_p26e/n08hp  Di?      @H m`U($ *0P00p500;BCp!hU ` kv p !pPp![p(np)yp*p*@p*Gp+! , ,@ ,X@! - 4 -H -\p -azimfor.o/ 1074016364 1032 20 100644 8276 ` ELFP0@@  (/6@GOWbf lt|+?.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataazimforinttsincosptitleradiuscenlonmeroriginoffsetpazimforadjust_loncos.lit8sprintfp_erroracossin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:azimfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0פףע ס0נ( ׬ g(g0ߙ ߄dߙ ׌ߙ ׌ߙ ׌ߙ ׌ ׍ߙ %߼߿g@g0<$!!-׬׍F-cߙ ׬ggߙ ׬ߙ ׯװב0F1F0{װב(M ׮ F s׏F/sF s׏F/p B d%lpx%%% % %   %4%D %%PP%%0%P%08@HPX\` t       0 @ Xh|   , L Xd|=|׽?@ !TD-(]xazimfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c azimfor.c&azimforint(^'r_majP(center_lonX)center_lat`*false_easth+false_northpEazimfor`Flon`GlathH xpI yxKsinphi~Kcosphi~Ldlon~Mcoslon~Nksp~Og~Pcon~QzPORmess~doubler_major lon_center lat_origin false_northing  false_easting  !sin_p12 ("cos_p12 0intchar /ecs/hdfeos/gctp/src/usr/includeazimfor.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ +      ($ 01!,${  -@I% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/ $> I 3 @ @A0 A@AA@r @0 AAA@y @8=azimforint^azimforr_majorlon_centerlat_originfalse_northing8false_easting\sin_p12zcos_p1208hp x 0Tr     @ @hS'$0* 80 Y8p! aJJ ` @k u0`({p Pppp}wpp@pEp  @   / C (Wp 8aziminv.o/ 1074016365 1032 20 100644 8580 ` ELFx0@@  (/6@GOW ]ekq|&:.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataaziminvinttsincosptitleradiuscenlonmeroriginoffsetpaziminv.lit8p_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:aziminv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0פףע ס0נ( ׬ g(g0ߙ ߄dߙ ׌ߙ ׌ߙ ׌ߙ ׌ ׍ߙ %߼߿g@g80<$!!-PX`hקP׈ F(9PץX׆F&)AXףXפXF$פPץPLe F ס׀ׂF"F!E׍ߧh(s׌0׭X׮F.kBF-c׭F-c׭׎(Mk!ߙ @ߨhאF בF1 ׯ F {אF0z>E*גDF2>E ׬P׭XF kGߙ @׌F cߙ Hߩ` (A׬PF c׭Xߙ @׌F cߙ Hߪ`@(/߫hlߙ ׮׏(M{ ׭ F kE׎F.l B F J d%lpx%%% % %  dhl0p0x %% %%%%%%%%08@HPX\` t      LP t    4< P `      0 H d  @ !TD-=|׽!TD-(]x?aziminv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c aziminv.c&aziminvint3(^'r_majDP(center_lonDX)center_latD`*false_eastDh+false_northDpEaziminv3`DFxD`GyDhH lon:pI lat:xKrhDLzDMsinzDM coszDNconDdoubler_majorD lon_centerD lat_originD false_northingD  false_eastingD  !sin_p12D ("cos_p12D 0intD /ecs/hdfeos/gctp/src/usr/includeaziminv.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ +     ,)($%L %!HH0<]% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@r @0 ApAA@ @8=Gaziminvint^aziminvGNr_majorllon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p1208hp xd +    @ (hN'$* 80 98p! !RJ x` pk u0 {p (PpxGppgp)p@pEpF  @ @ 0 / PC `Wp pbceafor.o/ 1074016365 1032 20 100644 8532 ` ELFP0@@ &*.5=GRZbmq}+.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatabceaforintcossinptitleradius2cenlonmertrue_scaleoffsetpbceaforadjust_lonlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:bceafor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08@H׭ ׬(׫0 ת8(שH0ר@8׆ׇF'1׃פץF%!F$ׂF ׀ׁF!h@Cylinderical Equal Area:       * . 2 %%%0 %@ %P %d %  %%h%4<DLT\`dp    $(, 8< HL X\`   $@HPXd t(xbceafor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c bceafor.c2bceaforint(3r_majHP4r_minHX5center_lonH`6center_latHh7false_eastHp8false_northHx:tempHcbceafor$`HdlonH`elatHhf xpg yxidlonHjsinphiHkqH@double#r_majorH $r_minorH %eH &esH 'lon_centerH  (lat_truescH ()false_northingH 0*false_eastingH 8+cosphi1H @,sinphi1H H-kzH Plong. ind XintH /ecs/hdfeos/gctp/src/usr/includebceafor.cʿ"stdio.hostandards.hDsgidefs.h7getopt.hˍ 8 $!       (!, 0 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 APAA@ \ @0 APAA@` @8$=bceaforintbceaforRr_majorpr_minoreeslon_centerlat_truescfalse_northing&false_eastingJcosphi1hsinphi1kzind08hp hB`~    @ h`?'$$* `00 6 >p! (:P h f q @{p Pp(ppgphp@p@Ep h x@ @  / C (Wp 8bceainv.o/ 1074016366 1032 20 100644 9732 ` ELF0@@ &*.29AKV^ fkv 0.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatabceainvintlogcossinptitleradius2cenlonmertrue_scaleoffsetpbceainvasinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:bceainv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08@Hױ װ(ׯ00׮88׭H@׬@H׊׋F+RׇרשF)BF(9׆F 1ׅׄF%! ׂ׃ F#(׀ׁF!h@@@@? ` `?B*B*?[[?U?-mCylinderical Equal AreaN       $ . 2 6 : > B F %T%h% % % % % %,0%%%%8%T%%4<DLT\`dp   $(8<HLP \`d ptx|     L\hx    ,4 HP `dlp| (xbceainv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c bceainv.c5bceainvint(6r_maj P7r_min X8center_lon `9center_lat h:false_east p;false_north x=temp kbceainv (` lx `my hn lonpo latxq beta double#r_major $r_minor %e &es 'e_p4  (e_p6 ()lon_center 0*lat_truesc 8+false_northing @,false_easting H-cosphi1 P.sinphi1 X/kz `0qp hlong1 ind pint  /ecs/hdfeos/gctp/src/usr/includebceainv.cʿ%stdio.hostandards.hDsgidefs.h7getopt.hˍ ; $!       5A4 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 APAA@  @0  APAA@ } @8(=bceainvintbceainv*r_majorHr_minorfe~ese_p4e_p6lon_centerlat_truescfalse_northing4false_eastingXcosphi1vsinphi1kzqpind08hp @^v,Pn    @ hxD'$(* x00 X6 p>p! NP  f q  {p Pp@p< pHgppG@pEp  @ (p  / C Wp  ceafor.o/ 1074016367 1032 20 100644 8532 ` ELFH0@@ %)-4<FQY`ko{).symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataceaforintcossinptitleradius2cenlonmertrue_scaleoffsetpceaforadjust_lonlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:ceafor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08@H׭ ׬(׫0 ת8(שH0ר@8׆ׇF'1׃פץF%!F$ׂF ׀ׁF!h@Cylinderical Equal Area:       * . 2 %%%0 %@ %P %d %  %%h%4<DLT\`dp    $(, 8< HL X\`   $@HPXd t(xceafor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c ceafor.c1ceaforint(2r_majDP3r_minDX4center_lonD`5center_latDh6false_eastDp7false_northDx9tempDbceafor$`DclonD`dlatDhe xpf yxhdlonDisinphiDjqD@double"r_majorD #r_minorD $eD %esD &lon_centerD  'lat_truescD ((false_northingD 0)false_eastingD 8*cosphi1D @+sinphi1D H,kzD Plong- ind XintD /ecs/hdfeos/gctp/src/usr/includeceafor.cͿ"stdio.hostandards.hDsgidefs.h7getopt.hˍ 7 $!       (!, 0 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 APAA@ \ @0 APAA@` @8$;ceaforintceaforNr_majorlr_minoreeslon_centerlat_truescfalse_northing"false_eastingFcosphi1dsinphi1kzind08hp d>\z    @ h`=&$$* `00 6 >p! (:P h f q @{p Pp(ppgpcp@p;Cp~ ` p@ @  / C  Wp 0ceainv.o/ 1074016367 1032 20 100644 9700 ` ELF0@@ %)-18@JU] dit..symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataceainvintlogcossinptitleradius2cenlonmertrue_scaleoffsetpceainvasinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:ceainv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08@Hױ װ(ׯ00׮88׭H@׬@H׊׋F+RׇרשF)BF(9׆F 1ׅׄF%! ׂ׃ F#(׀ׁF!h@@@@? ` `?B*B*?[[?U?-mCylinderical Equal AreaN       $ . 2 6 : > B F %T%h% % % % % %,0%%%%8%T%%4<DLT\`dp   $(8<HLP \`d ptx|     L\hx    ,4 HP `dlp| (xceainv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c ceainv.c4ceainvint(5r_majP6r_minX7center_lon`8center_lath9false_eastp:false_northx<tempiceainv (`jx`kyhl lonpm latxo betadouble"r_major #r_minor $e %es &e_p4  'e_p6 ((lon_center 0)lat_truesc 8*false_northing @+false_easting H,cosphi1 P-sinphi1 X.kz `/qp hlong0 ind pint /ecs/hdfeos/gctp/src/usr/includeceainv.cο%stdio.hostandards.hDsgidefs.h7getopt.hˍ : $!       5A4 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 APAA@  @0  APAA@ } @8(;ceainvintceainv&r_majorDr_minorbezese_p4e_p6lon_centerlat_truesc false_northing0false_eastingTcosphi1rsinphi1kzqpind08hp <Zr(Lj    @ hxB&$(* x00 X6 `>p! xNP  f q  {p Pp0p(p/gpp.@pnCp  @ p x / C Wp  eqconfor.o/ 1074016368 1032 20 100644 10964 ` ELF#0@@ ',16;CINV]enx .>Qe.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataeqconforinte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconforadjust_lonsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:eqconfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g`H@<$!!-`hpxת`שhרקPצXׅׄF%!ׁעףF#F"A@׀@F 8׌@ߙ P׌@ߙ P ׌@ߙ P(׌@ߙ P0׬pggߙ ׌8׭׮ߙ P׌׍ ׎(׏0װpߙ P ߢ@B׫p׬xF,ZF Z׌F,XE װױ(F1ױ0ײ F2AF1`ײ`׳`״ ׵ז`F6CF5h׌׍ ׎(׏0װߙ PHח׀hׁHF!F pߦ߄dߙ ׌׍ߙ ׬p׭xߙ ׌ߙ ׬ߙ ׌X׍Pߙ ߄dߙ ׌׍ߙ ׬pߙ ׌ߙ ׬ߙ ׌X׍Pߙ 88ߢ8߼H߿@gg <$!!-08@H׌׍ ׎(׏0װ8ߙ (׎׏hװF0{F/s׬0׍F-cߙ (ב`F B׬ߙ גX׳N@ߢ@R׬ߙ הPוpF5׵N9ߣHt%߼ ߿gP?=|׽Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONIC       $ ( , 0 4 8 < @ D H L P T X \ ` d n r v z %%% % % %D %00 % % % % %@@%%%%$%8%H@L@T%h%x%%%% %X%x%%<DLT\`dp       ,048@ p    HXht        ,04 P \`d t      04LT dt  (xeqconfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c eqconfor.c+eqconforint(E,r_maj@-r_minH.lat1P/lat2X0center_lon`1center_lath2false_eastp3false_northx4mode6temp~7sinphi~7cosphi~8ms1~8 ms29ml19 ml2eqconfor`lon`lath xp yxmltheta@rh1doubler_major r_minor lon_center e0 e1  e2 (e3 0 e 8 es @!ml0 H"false_northing P#false_easting X$ns `%g h&rh pintlong /ecs/hdfeos/gctp/src/usr/includeeqconfor.cʿ!stdio.hostandards.hDsgidefs.h7getopt.hˍ 4$$$$%$, -($,4,5}$4     4$409% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 AA A@  @0 APAA@y @8?eqconforintEeqconforr_major-r_minorKlon_centerle0e1e2e3eesml0false_northing@false_eastingdns}grh08hp `hp%Cd}8\u    @ h8y($* x00 6 R>p! P  fpq 0{p Pp`p*pEgpp D@p Gp  ! !@ "p # / #C #Wp #eqconinv.o/ 1074016368 1032 20 100644 11140 ` ELF$0@@ ',16;CINV]enx!2BUi.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.lit8.rodataeqconinvinte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconinvatan2phi3zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:eqconinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g`H@<$!!-`hpxת`שhרקPצXׅׄF%!ׁעףF#F"A@׀@F 8׌@ߙ P׌@ߙ P ׌@ߙ P(׌@ߙ P0׬pggߙ ׌8׭׮ߙ P׌׍ ׎(׏0װpߙ P ߢ@B׫p׬xF,ZF Z׌F,XE װױ(F1ױ0ײ F2AF1`ײ`׳`״ ׵ז`F6CF5h׌׍ ׎(׏0װߙ PHח׀hׁHF!F pߦ߄dߙ ׌׍ߙ ׬p׭xߙ ׌ߙ ׬ߙ ׌X׍Pߙ ߄dߙ ׌׍ߙ ׬pߙ ׌ߙ ׬ߙ ׌X׍Pߙ 88ߢ8߼H߿@gg80<$!!-PX`hץP׆XF&)APׂP׃pפXF$F#Xׁ`DF!>E רXשXF)BשPתPM J!F Bׇ ׫X׬XF,Z׬P׭PMmbF ZF Z׊Dx׭DpF.i2E ׬P׭F-c׭X׮F.kBߙ @׎hׯאF0{F/s ׬ ׍׎ ׏(א0gߙ @ߢh@׌׭׎`F.kCF-cߙ @ߤ`ߣ`(((ߢ(߼8߿0gp?=|׽Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONIC~       $ ( , 0 4 8 < @ D H L P T X \ ` d n r v %%% % % %D %00 % % % % %@@%%%%$%8%H@L@T%h%x%%%%% %L%<DLT\`dp       ,048@ p    HXht        ,04 P \`d t     4h   4<H (xeqconinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c eqconinv.c+eqconinvint(E,r_maj/@-r_min/H.lat1/P/lat2/X0center_lon/`1center_lat/h2false_east/p3false_north/x4mode6temp/~7sinphi/~7cosphi/~8ms1/~8 ms2/9ml1/9 ml2/eqconinv`/x/`y/h lonp latxrh1/ml/con/theta/flagdoubler_major/ r_minor/ lon_center/ e0/ e1/  e2/ (e3/ 0 e/ 8 es/ @!ml0/ H"false_northing/ P#false_easting/ X$ns/ `%g/ h&rh/ pintlong/, /ecs/hdfeos/gctp/src/usr/includeeqconinv.cʿ#stdio.hostandards.hDsgidefs.h7getopt.hˍ 4$$$$%$, -($,4,5}$4      $!,0 8$<9 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 AA A@  @0 ApAA@l @8?eqconinvintEeqconinv9r_majorWr_minorulon_centere0e1e2e3ees+ml0Efalse_northingjfalse_eastingnsgrh08hp `hpOm #=b    @ W'}($* xx00 x 6 R>p! ~P h f(q {p Pp p4p Hgp p!G@p!Gp! " "@ #p $ / $C $equifor.o/ 1074016369 1032 20 100644 6500 ` ELF0@@  '.8?GOZ^ jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:equifor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (0פףע ס0נ( ߄dߙ ׌ߙ ׌ߙ ׌ߙ ׌ ׍ߙ %߼߿g@g<$!!- (08׬ ׍F-cߙ ׌ߙ ב ײדF3N2aߣ0q׎ׯ(אM{ߢ8N%߼߿g@EQUIRECTANGULAR.      " & TX`%p%%% %   % %08@HP\ hl x|     $,@H(@xequifor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c equifor.c$equiforint(X%r_majP&center_lonX'lat1`(false_easth)false_northpAequiforp`Blon`ClathD xpE yxGdlon@doubler_major lon_center lat_origin false_northing  false_easting  int /ecs/hdfeos/gctp/src/usr/includeequifor.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ )      (8$% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@l @0 A@AA@c @8p=equiforintXequifor}r_majorlon_center8lat_originYfalse_northing~false_easting08hp rz0Qv     @p b,>'$pp*(08p!.J  `8k pup  HPp pNp!gpp @p`Ep 0 @@   P ) p= Qp equiinv.o/ 1074016370 1032 20 100644 6916 ` ELF0@@  '.8?GO U]alx&.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataequiinvintptitleradiuscenlonmeroriginoffsetpequiinv.lit8p_errorcosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:equiinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (0פףע ס0נ( ߄dߙ ׌ߙ ׌ߙ ׌ߙ ׌ ׍ߙ %߼߿g@g<$c#- (08צ ׇ F'1 פ(ׅF%!(ע(׃F#ߢ8Bߡ8!F E׀F! 4: ; 9 I I 3 @ @A0 A@AA@l @0 A@AA@{ @8=equiinvintXequiinv}r_majorlon_center$lat_originEfalse_northingjfalse_easting08hp rz=b     @ hH:'$*(018p!2J ` xk (u0 {p  Pp ppgpp@pEp  @   / C Wp gnomfor.o/ 1074016370 1032 20 100644 7524 ` ELF`0@@  (/6=DLxT_ck qu/.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatagnomforinttsincosptitleradiuscenloncenlatoffsetpgnomforadjust_loncosp_error.lit8sin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gnomfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0ףעס( נ0(׬ ggߙ ߄dߙ ׬ߙ ׬ߙ ׬ ߙ ׌ ׍(ߙ %߼߿g@g@8<$!!-PX`h׬P׍F-cߙ ׬Xggߙ ׬ߙ װױגF2BF1ױגN! ׮ DxF/p>E ߄d߅dߙ $0$ד״ F4(׬ߙ F F׀ עף(ׄF$F#L!ߧ`ו(׶(חF7׷נׁF!F נׁNNaߦh00ߢ0߼@߿8gpGNOMONICPoint projects into infinitygnomfor-conv>       & * . 2 6 \%dhp%%% % %   %4%D %00%%08@HPTX l |     0 @ Xh  $?([x2gnomfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c gnomfor.c+gnomforint&([,r^P-center_long^X.center_lat^`/false_east^h0false_north^pFgnomfor&X`^Glon^`Hlat^hI x-pJ y-xMdlon^Nsinphi^Ncosphi^Ocoslon^Pg^Qksp^double"lon_center^ #R^ $sin_p13^ %cos_p13^ &false_easting^  'false_northing^ (int^ /ecs/hdfeos/gctp/src/usr/includegnomfor.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ 0       ($ 0!(D% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@p @0x ApAA@Y @8X=:gnomforint[gnomfor:hlon_centerRsin_p13cos_p13false_eastingfalse_northing08hp u}     @ hxC'$X* H00 H=8p! >J ` k u0P{p `Pp:ppgp3p@p EpP  @ 0  / 0C @Wp Pgnominv.o/ 1074016371 1032 20 100644 8260 ` ELF80@@  (/6=DLTY _ekvz  4.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatagnominvinttsincosptitleradiuscenloncenlatoffsetpgnominvatan.lit8asinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gnominv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0פףע ס((נ00׬ gg ߙ ߄dߙ ׬ߙ ׬ߙ ׬ ߙ ׌(׍0ߙ %߼߿g@g80<$!!-PX`hײPד(F3PװXב0F1X׮XׯXF/sׯPװPM{F s׬׍F-cߙ ׬ggߙ וߢ`U״F וF5>Eזߣhv(s׌ ׭X׮F.kBF-c׭F-c׭׎Mk!ߙ @ߤhאF בF1 ׯ F {אF0y>E*גDF2>E׬P׭XF kGߙ @׌F cߙ Hߥ`(A׬PF c׭Xߙ @׌F cߙ Hߦ`(/ߧhߙ ׮׏M{ ׭ F kE׎F.k B F J d%lpx%%% % %  X %t%%H%`%%%%L%d%08@HPX\` t     LT p |    $D T\      (H X` =|׽!TD-(](x6gnominv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c gnominv.c,gnominvint*([-rAP.center_longAX/center_latA`0false_eastAh1false_northApHgnominv*`AIxA`JyAhK lon1pL lat1xOrhAPzAP sinzAPcoszAQconAdouble"lon_centerA #lat_centerA $RA %sin_p13A &cos_p13A  'false_eastingA ((false_northingA 0intA /ecs/hdfeos/gctp/src/usr/includegnominv.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ 1     ,($%L %!HH0<% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@r @0 ApAA@ @8=>gnominvint[gnominv>Klon_centerllat_centerRsin_p13cos_p13false_eastingfalse_northing08hp u}d"     @ (hH'$* 80 8p! RJ ` k u0{p Pp@>p~p~gpp}@pEp  @   / C Wp (goodfor.o/ 1074016371 1032 20 100644 10804 ` ELF"0@@  +29ALPT\amy.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodatagoodforintptitleradiusgoodforadjust_loncossinp_errorsign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:goodfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g< %k+-׬׋ߊK׊߉*׉߈ ׈߇ׇ߆׆߅ׅ߄ׄ߃d׃ ߂Cׂ(߁"ׁ ߟ׀(ߙ זחF7ߘהוF5ߏגדF3ߎאבF1ߍ׎׏F/sߌ׌׍F-cߋl׊׋F+RߊJ׈׉F)B߉(׆ׇ F'1߈ׅׄ(F%!߇ׂ׃ F#߆׀ׁ(F!߅߄dߙ ׬ߙ %߼߿g g@8<$!!-`hpxסh׀0F!>E ע`׃8F#>E$TץhD F%">Eצ`ׇ8F'3>E $$Bשh׈HF)D>E ת`׋F+U>E$׬`׍PF-f>E$ ׮`׏XF/w>E$$ װ`בF1>E$ ײ`דPF3>E$  ״`וXF5>E$ $ ߭$߯$߹$? ߡ$" ߣ$dߥ$ %׬`߇dߨ@8-F-cߙ H׬hߙ ߊeJ߫ XKP-PױגF2BN!ߩp0׮h׏F/sߨx׬`ߋek߬ `lX-mF-cߙ H׮h׬hߙ ׏`F/ $ 3׬ߙ P׬ߙ ׳״PF4״F4F הhF4F4(ױײ(F2@װ(F בpF1 I !/ I 3 @ @A0 A AA@s @0 AAA@ - @8=goodforintgoodforE R8lon_centernfeast08hp  Q      @ mM/|'$* X0 X50 X; NCp!FDU  k`Pv p 0Ppp&pyp +p @p!Ep!HM ! !@ !! " 4 "H "\p "goodinv.o/ 1074016372 1032 20 100644 12580 ` ELF)0@@  +29 \AIMX]bfr~  .symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodatagoodinvintptitleradiusgoodinvp_errorcosadjust_lonsignasinsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:goodinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g< %k+-׬׋ߊK׊߉*׉߈ ׈߇ׇ߆׆߅ׅ߄ׄ߃d׃ ߂Cׂ(߁"ׁ ߟ׀(ߙ זחF7ߘהוF5ߏגדF3ߎאבF1ߍ׎׏F/sߌ׌׍F-cߋl׊׋F+RߊJ׈׉F)B߉(׆ׇ F'1߈ׅׄ(F%!߇ׂ׃ F#߆׀ׁ(F!߅߄dߙ ׬ߙ %߼߿g g0(<$!!-@HPXסH׀ׂ0F"F!>Eף@ׅׄ8F%!F$>E$dקHD0F'2>Eר@׉׊8F*JBF)C>E $$P׬H׋׍HF-ZF,\>E&׮@׏אF0{F/u>E$ױ@גדPF3F2>E$״@וזXF6BF5>E$$ $׷@׀ׁF!F >E$ ע@׃ׄPF$F#>E$ ץ@׆ׇXF'1F&*>E$ $ ר@ߏe߸x-F)B@߭$߸$߿$ ߢ$C ߤ$ߦ$ G׬H׍F-cߩX,ߨX F Z׊`F+S     $ ( , 0 4 (,48@DLPX \ d(h(p0t0|88@@HHPPXX``hhppxx$(8<LP`dtx%%  ``  88 % % D %\` %% %%% $0<HT`lx,0@DTXhl|   (,tx$(`dp  (@    ,0Tx  4<t,d|   T l     D \    ( xfgoodinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c goodinv.c'goodinvintR ((rpUgoodinvR <`Vx`WyhX lonYpY latYx[arg\theta]temp^regionddouble!R ` "lon_center `6 #feast! `intlong /ecs/hdfeos/gctp/src/usr/includegoodinv.cʿ7stdio.hostandards.hDsgidefs.h7getopt.hˍ (    )"' !"' )!' '' $' }!' '' $' 1m )($%P -{ L# X#<#tHLLLLLLLLLLL% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A0 A AA@s @0 \ A`AA@R @8 <=ngoodinvintgoodinvEnRlon_center6feast08hp  J     @ me4'$ <*050;FCp!>U @ k v p "Pp"`np$p&yp'p'@p'Ep(8M ( (@ (! ) 4 )H )\p )gvnspfor.o/ 1074016373 1032 20 100644 7988 ` ELF00@@ '/6=DKRZcnrz~$8.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatagvnspforinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspforadjust_loncosp_errorsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gvnspfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08ץףׄF$ׄF$ע ס0(נ80׬(gg ߙ ߄dߙ ׬ߙ ׬߅dߙ ׬ ߙ ׬(ߙ ׌(׍0ߙ %߼߿g@g@8<$!!-PX`h׬P׍F-cߙ ׬Xggߙ ׬ߙ ױײד F3F2BײדN3a ׮ ׏אF0{F/p I 3 @ @A0 A@AA@} @0 ApAA@^ @8?ggvnspforintogvnspforg}lon_centerRpsin_p15cos_p15 false_easting.false_northing08hp &K    @ (hL($* 800 6 >p! BBP  f X@q P{p Pp8gppgpp@pGp  @   / C Wp  gvnspinv.o/ 1074016373 1032 20 100644 9204 ` ELF0@@ '/6=DKRZckqw ,@.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatagvnspinvinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspinvp_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gvnspinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08צפׅF%!ׅF%!ף ע(ס00נ88׬(g g(ߙ ߄dߙ ׬ߙ ׬߅dߙ ׬ ߙ ׬(ߙ ׌0׍8ߙ %߼߿g@gH@<$!!-`hpx׭`׎0F.kA`׫h׌8F,ZhשhתhF*JBת`׫`M+RaF JDק׈F(9ׅ׆F&)@׃ׄF$סנעF"F F!Eזߧx8s׌(׭h׮ F.kBF-c׭F-c׭0׎ Mk!ߙ PߨxאF בF1ׯF {אF0z>E*גDF2>E ׬`׭hF kGߙ P׌F cߙ Xߩp 8A׬`F c׭hߙ P׌F cߙ Xߪp@8/߫xlߙ ׮0׏ M{׭F kE׎F.l B F J N R %%%(( % % % %  XXpp%P%p%%D%\%%%%H%`%4<DLT\dltx|    <L| L l x  @ PX    $D T\ ((xgvnspinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c gvnspinv.c-gvnspinvint}(o.r|P/h|X0center_long|`1center_lat|h2false_east|p3false_north|xMgvnspinv}`|Nx|`Oy|hP lonpQ latxTrh|Ur|Vcon|Wcom|Xz|X sinz|Xcosz|double"lon_center| #lat_center| $R| %p| &sin_p15|  'cos_p15| ((false_easting| 0)false_northing| 8int| /ecs/hdfeos/gctp/src/usr/includegvnspinv.cʿ!stdio.hostandards.hDsgidefs.h7getopt.hˍ 3 $ $    ,-(`$$%L %!HH0<]% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@ @0 AAA@ @8?gvnspinvintogvnspinvlon_centerlat_centerRpsin_p15cos_p154false_eastingXfalse_northing08hp ,Pu    @ @hT($0* @00 (6 z>p! jZP 0 f q p{p 8Ppp p#gpp"@pbGp X h@   / C Wp hamfor.o/ 1074016374 1032 20 100644 6740 ` ELFP0@@ &-4< CNR X\ht.symtab.shstrtab.strtab.comment.text.sbss.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.srdatahamforintptitleradiuscenlonoffsetphamforadjust_loncos.lit8sin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:hamfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (ףעס נ(gߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g<$!!-08@H׬0׍F-cߙ ׬8ߙ ׬׍F-cߙ ׎׏F/s׏װ MF {F/s׬׍F-cߙ (׬8ߙ אײדF3F2ױ(N!ߢ@P׬8ߙ ה׵N!ߣHt%߼߿gPHAMMER:      " & * . 2 P%`%p%%   % % %T %h % %,4<DHL \ l x|     $ , H P d px  ??fe>?@([xhamfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c hamfor.c)hamforintt0(=*r`+center_longh,false_eastp-false_northxBhamfort`Clon`DlathE x{pF y{xIdlonJfacdouble"lon_center #R $false_easting %false_northing int /ecs/hdfeos/gctp/src/usr/includehamfor.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ -     )\\1% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@d @0 APAA@C @8;hamforint=hamfordlon_centerR+false_eastingOfalse_northing08hp V^f #Gl      @ h0*Z&$*P 0P8p!W:J ` HPk u0 8 {p  XPp p0pgphp@p@Cpl  @ @  /  C 0Wp @haminv.o/ 1074016374 1032 20 100644 6596 ` ELF0@@ &-4<HC IOZ`lx.symtab.shstrtab.strtab.comment.text.sbss.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.srdatahaminvintptitleradiuscenlonoffsetphaminv.lit8atan2adjust_lonasinz.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:haminv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (ףעס נ(gߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g<$!!- (08ײ דF3 װ(בF1(׮ ׯ F/s׏F/s׏אבF1M{ׯ(װ(M{F s׏F/s׬ ׭F-c׭ ׮ F.kB׎F.kB׎׏אF0{Msi׮(ׯ(Msyߙ ׌׍M!ߙ ߢ0@׬(׭F-c׍F-c׍F-cߙ ߣ8`%߼߿g@HAMMER.      " & P%`%p%%   % % %,4<DHL \ l x|    0 T \`d |    ?@?@([xjhaminv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c haminv.c)haminvint^0(=*r`+center_longh,false_eastp-false_northxBhaminv^`Cx`DyhE lonepF latexIfac@double"lon_center #R $false_easting %false_northing int /ecs/hdfeos/gctp/src/usr/includehaminv.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ -     P}@% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@d @0H A@AA@M @8;rhaminvint=haminvdrlon_centerRfalse_easting9false_northing08hp V^f 1V    @ W.M&$*x 0x8p!.J ` 0k 8u0  {p  (Pp xrppgp#p@pCp>l  @   / C imolwfor.o/ 1074016375 1032 20 100644 9044 ` ELF0@@   ,3: \CNRV^jv.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodataimolwforintptitleradiusimolwforadjust_lonsincosp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:imolwfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<'?-ײבߘאߏ׏ߎ׎ߍ׍ ߌ׌(ߋl׊׋0F+RߊJ׈׉8F)B߉(׆ׇ@F'1߈ׅׄHF%!߇ׂ׃PF#߆׀ׁXF!߅߄dߙ ׬ߙ %߼߿g g80<$!!-PX`hסXDF!>E*ףPׂhF#>E פPׅpF%"E רP׉F)D>E ׫P׊F+U>E ׬P׍F-fE װPבF1E״PוF5>E ׷PזF7>E נPׁF! I !/ I 3 @ @A0 A AA@C @0 \ ApAA@ @8|?imolwforintimolwforE R7lon_centermfeast08hp P      @ m5,a($|* 0 `50 ; XCp! H6U  k hv  p Ppp<pypRp@p*GpqM  @ !  4 H \p imolwinv.o/ 1074016376 1032 20 100644 9060 ` ELF0@@   ,3: <CHLW[gs.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodataimolwinvintptitleradiusimolwinvasincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:imolwinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<'?-ײבߘאߏ׏ߎ׎ߍ׍ ߌ׌(ߋl׊׋0F+RߊJ׈׉8F)B߉(׆ׇ@F'1߈ׅׄHF%!߇ׂ׃PF#߆׀ׁXF!߅߄dߙ ׬ߙ %߼߿g g <$!!-08@Hס8DF!>Eע0׃ׄhF$F#>Eץ0׆ׇpF'1F&*>E$$ר0׉׊xF*JBF)C>E $׫0׌׍F-cF,\>E$$ׯ0߇dߨ@8-F0{0׬8׍׎F.kBF-cߙ ׬ߙ ߈eߩ H @- ׭0׎׏F/sF.F.kCF-cߙ ߩ@ ׬׍F-cߙ ׬׍L c!׍F-cߙ ߫H`ߪ@߬@Վ׏F/u|@K@K=|?K% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A0 A AA@C @0 < APAA@  @8\?IimolwinvintimolwinvEIRlon_centerfeast08hp %       @ m5)^($\* 0 `50 ; !Cp! 0U  k v xp PpXIp4pypNp@p&GpmM  @ !  4 H \p isinusfor.o/ 1074016376 1032 20 100644 20708 ` ELFG0@@$ D! '/P= K Q_Tjqvz  !2BUi ~!".symtab.shstrtab.strtab.comment.text.data.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.content.data.rel.MIPS.content.data.rel.data.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenames.rel.debug_varnames.MIPS.interfaces.text.data.sbss.rodataerror__iobfprintfisinusforinitIsin_for_free.lit8Isin_for_initIsin_errormallocfreecosisinusforIsin_fwd.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:isinusfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $ident:::$Revision: 7.41 $g߄d@߅dߦߧߙ ߿g g( <$B"-08@HPX߁ ߄ߙ ` ߄d߅dߙg9 $נ0DF!>E ߄d߅dߙg9 $ע8׃F#E׬X׍F-cXߥp(ߧp<4ƀ0* ߄d߅dߙg9 ()ߦp?(&(/07(&(/ ߄d߅dߙg9 (||( ߄d߅dߙg9 ($pߙ @ߥ ߄d߅dߙg9 (߿hנ`߹ ׷h߸׶P߯הP׵PF5߮߭pDFהHF4߬ ߪp߫j(ߩp G @-@{ߩ(0ײXߧ@װXבXF1ߦ8ߥԮ8׏XF/u Isin_error p>&err .p>7routine x __file_s N _cntN _ptrg _baseg _reservedr _flag _file long unsigned char VV unsigned short unsigned intFILE c__iob= >num ? str' int char @error_t]ISIN_BADALLOC2 ^ISIN_BADPARAM2 _ISIN_BADHANDLE2  `ISIN_BADKEY2 0'p ; ( false_east ; ) false_north ; * sphere ; + sphere_inv ; , ang_size_inv ; -nrowN( .nrow_halfN0 / ref_lon ;8 0 lon_cen_mer ; 1ijustify 2 col_dist ; 4 col_dist_inv ; 6row  7keyN double  ncolN !icol_cenN " ncol_inv ;#Isin_row_t E 8Isin_t eisin   ; 2 % /ecs/hdfeos/gctp/src/usr/includeisinusfor.c˿stdio.hoisin.hܐstandards.hDsgidefs.h7getopt.hˍ stdlib.hˍOlocale_attr.hˍlimits.hˍN : 5  , ,4,5,$4,4,5,$4,5, )  3+43+43+43+(3+$3+ ($  #$8,UD5.B 0   0, ' @"#@&3(3 ($#$(41(@"#   % B .: ; 9 ' @ @: ; 9 I .: ; 9 I? ' @ @4: ; 9 I .: ;9 I? ' @ @: ;9 I 4: ;9 I .: ;9 I' @ @ : ; 9   : ; 9 I8 $> I 3 I !/ : ; 9 II 4: ; 9 I< ? : ; 9 &I @ @A(D A A@M @0P A`AA@ @0 AA A@  @0  A@AA@e @0  ApAA@  @0  A0AA@{ @(T A A@Q @8 ;isinusforinitIsin_for_init\isinusforIsin_fwdIsin_for_free; ;errorNIsin_errorj ;__file_sFILE2error_t Isin_row_t Isin_t~ ;FISIN_BADALLOCjISIN_BADPARAMISIN_BADHANDLEISIN_BADKEY isin08`h@Hx  (09AIy ($jrzb       @H vv$*@06>p!P h  fhq -p{01`p 1 2 2@p 2PPp2 ;p<p?TpApB@pBpCC&pCr7pD:G DW Dh Ex Gp  G G G Gp Gisinusinv.o/ 1074016377 1032 20 100644 20756 ` ELFH0@@$ D! '/P= K Q_Tjqvz   !2BUi ~!".symtab.shstrtab.strtab.comment.text.data.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.content.data.rel.MIPS.content.data.rel.data.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenames.rel.debug_varnames.MIPS.interfaces.text.data.sbss.rodataerror__iobfprintfisinusinvinitIsin_inv_free.lit8Isin_inv_initIsin_errormallocfreecosisinusinvIsin_inv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:isinusinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $ident:::$Revision: 7.41 $g߄d@߅dߦߧߙ ߿g g( <$B"-08@HPX߁ ߄ߙ ` ߄d߅dߙg9 $נ0DF!>E ߄d߅dߙg9 $ע8׃F#E׬X׍F-cXߥp(ߧp<4ƀ0* ߄d߅dߙg9 ()ߦp?(&(/07(&(/ ߄d߅dߙg9 (||( ߄d߅dߙg9 ($pߙ @ߥ ߄d߅dߙg9 (߿hנ`߹ ׷h߸׶P߯הP׵PF5߮߭pDFהHF4߬ ߪp߫j(ߩp G @-@{ߩ(0ײXߧ@װXבXF1ߦ8ߥԮ8׏XF/uE߬XՅ׆F&)@߫Xe߭Xէ׈XF(= Isin_error $p>&err .p>7routine x __file_s N _cntN _ptrg _baseg _reservedr _flag _file long unsigned char VV unsigned short unsigned intFILE c__iob= >num ? str' int char @error_t]ISIN_BADALLOC2 ^ISIN_BADPARAM2 _ISIN_BADHANDLE2  `ISIN_BADKEY2 0'p ; ( false_east ; ) false_north ; * sphere ; + sphere_inv ; , ang_size_inv ; -nrowN( .nrow_halfN0 / ref_lon ;8 0 lon_cen_mer ; 1ijustify 2 col_dist ; 4 col_dist_inv ; 6row  7keyN double  ncolN !icol_cenN " ncol_inv ;#Isin_row_t E 8Isin_t eisin   ; 2 % /ecs/hdfeos/gctp/src/usr/includeisinusinv.c˿stdio.hoisin.hܐstandards.hDsgidefs.h7getopt.hˍ stdlib.hˍOlocale_attr.hˍlimits.hˍN : 5  , ,4,5,$4,4,5,$4,5, *  3+43+43+43+(3+$3+ ($  #$8,UD5.B 0   0, % @"# 0<,$#$d4,#$#% (@"#   % B .: ; 9 ' @ @: ; 9 I .: ; 9 I? ' @ @4: ; 9 I .: ;9 I? ' @ @: ;9 I 4: ;9 I .: ;9 I' @ @ : ; 9   : ; 9 I8 $> I 3 I !/ : ; 9 II 4: ; 9 I< ? : ; 9 &I @ @A(D A A@M @0P A`AA@ @0 AA A@  @0  A@AA@e @0  ApAA@  @0  A0AA@{ @(T A A@Q @8$ ;isinusinvinitIsin_inv_init\isinusinvIsin_invIsin_inv_free; ;errorNIsin_errorj ;__file_sFILE2error_t Isin_row_t Isin_t~ ;FISIN_BADALLOCjISIN_BADPARAMISIN_BADHANDLEISIN_BADKEY isin08`h@Hx  (09AIy ($jrzb       @H vv$$*@06>p!P x  fhq .{01p 2 2( 28@p 2xPp2 ;p=p?TpALpB@pC,pCC&pCr7pDhG DW Eh Ex G  G G G Gp Hlamazfor.o/ 1074016378 1032 20 100644 7636 ` ELF0@@ !)07>EMVa gow 1.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.rodatalamazforinttsincosptitleradiuscenloncenlatoffsetplamazforadjust_lon.lit8sprintfp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:lamazfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0ףעס( נ0(׬ ggߙ ߄dߙ ׬ߙ ׬ߙ ׬ ߙ ׌ ׍(ߙ %߼߿g@gP<$!!-׬׍F-cߙ ׬ggߙ ׬gg ߙ װבF1ױ ײדF3N!(׮(׏F/p2Eg0߅dגדF3D&ߙ g0߅dߙ $qx!ׅ׆ק(׈F(9F'1F 1F&)Bpׁ עףפpF$L#aߨה(׵p׶ ׷׀F F7׷׀NN!ߧxxߢx߼߿gLAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward>       & * . 2 6 \%dhp%%% % %   %4%L%  %PP%08@HPTX l |     0 H Xh|       0@@?([xlamazfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c lamazfor.c+lamazforint{(^,rP-center_longX.center_lat`/false_easth0false_northpFlamazfor{t`Glon`HlathI xpJ yxLdelta_lon~Msin_delta_lon~Ncos_delta_lon~Osin_lat~Pcos_lat~Qg~Rksp@<;Smessdouble"lon_center #R $sin_lat_o %cos_lat_o &false_easting  'false_northing (intchar /ecs/hdfeos/gctp/src/usr/includelamazfor.c˿stdio.hostandards.hDsgidefs.h7getopt.hˍ 0       ($$0!4$0,A% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/ $> I 3 @ @A0 A@AA@p @0 AAA@` @8t?lamazforint^lamazforlon_centerRsin_lat_ocos_lat_o2false_eastingVfalse_northing08hp y *Ns    @ WOE($t* 800 8^8p! >J ` k u0{p Ppppowpp~@pGp  @   / C lamazinv.o/ 1074016378 1032 20 100644 8580 ` ELFx0@@ !)07>EMV \djnt%9.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatalamazinvinttsincosptitleradiuscenloncenlatoffsetplamazinv.lit8p_errorasinzsinatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:lamazinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0פףע ס((נ00׬ gg ߙ ߄dߙ ׬ߙ ׬ߙ ׬ ߙ ׌(׍0ߙ %߼߿g@g80<$!!-PX`hשP׊(F*JAPקX׈0F(9XץXצXF&)BצPקPL1aF )Dע׃ׄF$F#ס׀F! B F J N d%lpx%%% % %  t x |88 %%%(%t%%%%4%`%x%08@HPX\` t     LP d      $ <D X p    (0 \ lt @?=|׽!TD-(]xAlamazinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c lamazinv.c.lamazinvint5(^/rHP0center_longHX1center_latH`2false_eastHh3false_northHpJlamazinv5`HKxH`LyHhM lon<pN lat<xPRhHQzHRsin_zHScos_zHTtempHdouble$lon_centerH %lat_centerH &RH 'sin_lat_oH (cos_lat_oH  )false_eastingH (*false_northingH 0intH /ecs/hdfeos/gctp/src/usr/includelamazinv.c˿ stdio.hostandards.hDsgidefs.h7getopt.hˍ 3      ,$!(,$%L %0[  Pz% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@r @0 ApAA@ @8?Ilamazinvint^lamazinvIRlon_centerslat_centerRsin_lat_ocos_lat_ofalse_eastingfalse_northing08hp yk-    @ (hM($* 80 F8p! VJ p ` k u0({p  PppIp pgp)p@pGpH  @ @ 0 / PC `Wp plamccfor.o/ 1074016379 1032 20 100644 10420 ` ELF!0@@ ,'/7=CGKOV^gqx0 +>R.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatalamccforintp_errortsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:lamccfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $gPXP<$!!-pxץpפxףPעHנסF!F ׁF!E ߄d߅dߙ $,(#DH׬P׍ F-cߙ @׎0F s ׬ ߙ ׏HװMߦ`׬ ߙ בPג@׳N@F2@ߧh((ߢ(߼8߿0gp=|׽?!TD-Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedz       $ ( , 0 4 8 < @ D H L P Z ^ b f j n r x|@@%%%8 %X%p% % % % % %P %| %PP %%%%%%<@ % % %hh@@$%T%t %%<DLTh   (4 T `l      0@HL `ltx       `t     HP `p | (xlamccfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c lamccfor.c+lamccforint,(O,r_maj;@-r_min;H.lat1;P/lat2;X0c_lon;`1c_lat;h2false_east;p3false_north;x5sin_po;~6cos_po;~7con;~8ms1;~9ms2;:temp;~;ts0;<ts1;~=ts2;qlamccfor0`;rlon;`slat;ht xpu yxxcon;yrh1;zsinphi;{theta;|ts;doubler_major; r_minor; es;  e; !center_lon;  "center_lat; (#ns; 0$f0; 8%rh; @&false_easting; H'false_northing; Pint; /ecs/hdfeos/gctp/src/usr/includelamccfor.c˿,stdio.hostandards.hDsgidefs.h7getopt.hˍ 3 -)$$,,$,, -,U8  !   $! , !(409% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0, AA A@  @00 ApAA@f @8?lamccforintOlamccforEr_majorcr_minoresecenter_loncenter_latns f0&rh?false_eastingcfalse_northing08hp jrz[y7[      @H hfV($* `X00 ` 6 >p! zP  f0q {p Ppplp|gpp{@pGp  @ 0 !P / !pC !Wp !lamccinv.o/ 1074016380 1032 20 100644 10308 ` ELF!@0@@ ,'/7=CGKOV^gqx0#3FZ.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatalamccinvintp_errortsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccinvatan2phi2zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:lamccinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $gPXP<$!!-pxץpפxףHעPנסF!F ׁF! I 3 @ @A0, AA A@  @00 ApAA@ @8@?lamccinvintOlamccinvCr_majorar_minoresecenter_loncenter_latns f0$rh=false_eastingafalse_northing08hp jrzYw5Y~      @` hnv($@* X00 (6 h>p! pnP  f`q x{p PpXp%pgpp@p^Gp p @ 0 / !C ! Wp !0merfor.o/ 1074016381 1032 20 100644 8100 ` ELF0@@ d%)-4<FMUp0\djuy 3.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatamerforintcossinptitleradius2cenlonmeroriginoffsetpmerforp_errortsfnzadjust_lonlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:merfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!-08@HPX׫0ת8ש@רHקX8צP@ׅׄF%!ׁעףF#F"A(׀(F  ׬Hߙ ׬Hߙ ׬Hߙ ׍׏(F {׮ MsyF kD׬F-c0߄dߙ ׌׍ߙ ׌ߙ ׌ߙ ׌@׍8ߙ %߼߿g`g <$!!-08@Hנ8F ׁF!F ׁF!>E ߄d߅dߙ $5)׬8ߙ ׌ ׭8׮ߙ (׬0׍F-cߙ (׎@׏א0F0{Mߦ@׬ߙ ב8גד0F3N2yߧHߢ߼ ߿gP?!TD-=|׽MERCATORTransformation cannot be computed at the polesmer-forwardF       $ . 2 6 : > %%%% % %0 %D %|  @@%% %,%\%4<DLT\`dp      (, 8<@     ( 8<@X dhl(xXmerfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c merfor.c)merforintLd(*r_maj1P+r_min1X,center_lon1`-center_lat1h.false_east1p/false_north1x1temp1OmerforLp`1Plon1`Qlat1hR xSpS ySxUts1Vsinphi1doubler_major1 r_minor1 lon_center1  lat_origin1 !e1  !es1 ("m11 0#false_northing1 8$false_easting1 @int1 /ecs/hdfeos/gctp/src/usr/includemerfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ / $     1( ,D9% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0d A`A A@ T @0p0 APAA@G @8;`merforintmerfor`;r_majorYr_minorwlon_centerlat_origineesm1false_northing(false_easting08hp Qo D    @ (hG&$* H00 6 L>p! FP P f 0(q X{p Pph`ppgpp@pCp-  @ 8 H / hC xWp merinv.o/ 1074016381 1032 20 100644 7700 ` ELF0@@ d%)-4<FMUp\`fq}+.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatamerinvintcossinptitleradius2cenlonmeroriginoffsetpmerinvexpphi2zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:merinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!-08@HPX׫0ת8ש@רHקX8צP@ׅׄF%!ׁעףF#F"A(׀(F  ׬Hߙ ׬Hߙ ׬Hߙ ׍׏(F {׮ MsyF kD׬F-c0߄dߙ ׌׍ߙ ׌ߙ ׌ߙ ׌@׍8ߙ %߼߿g`g <$!!-08@Hׯ0א@F0{0׭8׎8F.kA8׬8F c׍׎0F.kBF-cߙ ׌ ׭gߙ (ߣH`ߢ@׌׭0׎׏0F/sF.kCF-cߙ (ߥ@ߢ߼ ߿gP?MERCATOR>       $ . 2 6 %%%% % %0 %D %|  %%D%4<DLT\`dp      (, 8<@   $,0@ (xx^merinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c merinv.c)merinvintJd(*r_maj/P+r_min/X,center_lon/`-center_lat/h.false_east/p/false_north/x1temp/OmerinvJpx`/Px/`Qy/hR lonQpS latQxUts/Vflag\doubler_major/ r_minor/ lon_center/  lat_origin/ !e/  !es/ ("m1/ 0#false_northing/ 8$false_easting/ @int/long /ecs/hdfeos/gctp/src/usr/includemerinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ / $     40A% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0d A`A A@ T @0p APAA@} @8x;fmerinvintmerinvf9r_majorWr_minorulon_centerlat_origineesm1false_northing&false_easting08hp OmB    @ hx?&$x* XH00 X6 ` >p! i>P  f hq {p Ppfp6pgp}p@pUCp P `@   / C Wp millfor.o/ 1074016382 1032 20 100644 6484 ` ELFP0@@  '.5=EP VZ^jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatamillforintptitleradiuscenlonoffsetpmillforadjust_lon.lit8tanlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:millfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g<$!!- (08׬ ׍F-cߙ ׎ׯאM{ߢ0N׬(׍F-c׍F-cߙ F ߙ בגF דN3aߣ8q%߼߿g@MILLER CYLINDRICAL.      " & HLT%d%t%%   %$ %4 %,4<DP ` p |     0 <@H @?!TD-?(hxomillfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c millfor.c)millforintc0(@*r`+center_longh,false_eastp-false_northxAmillforcp`Blon`ClathD xjpE yjxHdlon@double"lon_center #R $false_easting %false_northing int /ecs/hdfeos/gctp/src/usr/includemillfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ -     ($Y% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@e @0 A@AA@k @8p=wmillforint@millfordwlon_centerRfalse_easting>false_northing08hp Zbj6[      @ h0,\'$p* 08p!.J H`8k Pu0 P{p  hPp wp/pgpgp@p?Epl  @ @  /  C 0Wp @millinv.o/ 1074016383 1032 20 100644 6484 ` ELFP0@@  '.5=EP VZ_kw.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatamillinvintptitleradiuscenlonoffsetpmillinvadjust_lon.lit8expatan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:millinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g<$!!- (ױגF2AׯאF0{׌׭׎F.kCF-cߙ ߢ @׬׍F-c׍F-cߙ F ߙ ׎F.׏F/sߣ(n%߼߿g0MILLER CYLINDRICAL.      " & HLT%d%t%%   %8 %H %,4<DP ` p |  $, 4 D P X ?!TD-@(ЈxZmillinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c millinv.c)millinvintN0(@*r`+center_longh,false_eastp-false_northxAmillinvN0`Bx`CyhD lonUpE latUxdouble"lon_center #R $false_easting %false_northing int /ecs/hdfeos/gctp/src/usr/includemillinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ -     4U% B .: ; 9 I? ' @ @: ; 9 I $> 4: ; 9 I I 3 @ @A0 A0AA@e @0 A0AA@o @8=bmillinvint@millinvdblon_centerRfalse_easting)false_northing08hp Yai!F      @ h0-]'$* 08p!#.J X`8k Pu0 `{p  xPp bp*pgpcp@p;Epl  @ @  /  C 0Wp @molwfor.o/ 1074016383 1032 20 100644 7476 ` ELF00@@  '.5=EPT Z^fr~  .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatamolwforintptitleradiuscenlonoffsetpmolwforadjust_lonsin.lit8cosp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:molwfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ף ע(סנ߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g80<$!!-PX`h׬P׍F-cߙ ׮X׬Xߙ ׏F/$@3׬ߙ @׬ߙ ׳״@F4״F4F הF4F4 ױײ F2@װ F בF1      " & * . 2 6 HLT%d%t%%   % %0 %D %00%0 %d %,4<DP ` p |    , @ d      , 8@D ` lpt @ !TD-?=|׽??!TD-?d)?f;(Xxmolwfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c molwfor.c%molwforint0(@&r5`'center_long5h(false_east5p)false_north5x=molwfor`5>lon5`?lat5h@ xpA yxCdelta_lon5Dtheta5Edelta_theta5Fcon5Gidoublelon_center5 R5  false_easting5 !false_northing5 int5long /ecs/hdfeos/gctp/src/usr/includemolwfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ )      (X$( x ,@8% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@e @0 ApAA@y @8=molwforint@molwford?lon_center`Rxfalse_eastingfalse_northing08hp ZbjXp      @ hH4|'$* X 0 XB8p! >J ` k u0p@{p PpppgpCp@pEp`l  @    / C Wp  molwinv.o/ 1074016384 1032 20 100644 7092 ` ELF0@@  '.5=E KPT_co{ .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatamolwinvintptitleradiuscenlonoffsetpmolwinv.lit8asincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:molwinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ף ע(סנ߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g<$!!- (08ק ׈F(9 ץ(׆F&)A(ע(׃ׄF$F#סF E׀F!yh? lon~p@ lat~xBthetaHCarg@doublelon_center R false_easting  false_northing int /ecs/hdfeos/gctp/src/usr/includemolwinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ (      # P##<#$% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@e @0 A@AA@c @8P=molwinvint@molwinvdlon_centerR.false_eastingRfalse_northing08hp Zbj&Jo      @ hH1y'$P* 0 8p!6J 0` hk 8u0 H8{p  Pp p[pLgppK@pEpl @ P@  P / pC Wp obleqfor.o/ 1074016385 1032 20 100644 9684 ` ELF0@@ H!(/6=DLTP]bh nrw{!5.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataobleqforintptitleradiuscenloncenlatgenrptoffsetptsincosobleqforacosatan2.lit8sinasincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:obleqfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (08@Hק(צץ פ(ף0 ע8ס@@נHH߄dߙ ׌(ߙ ׌ߙ ׌ߙ ׌߅dߙ ׌ ߅dߙ ׌߅dߙ ׌@׍Hߙ ׌g0g8ߙ %߼߿gPg@xp<$!!-נׁF!׬ggߙ ׬gg ߙ ׬׍0F-c׭ ׮׏8F/sMk!ߙ (׬׭F-c׭ ׮׏0F/sF.kB׮׏8Msiߙ ׎F s0׬0g8g@ߙ ׬(׍F-cߙ גF2Hװ8ױHF1P׮@ׯHF/sX׬P׍F-cߙ `׬`ߙ ׬`׍F-c׍F-cߙ ׯXאF0{׮F/sF sH׬Hߙ h׬h׍F-c׍ F-cߙ ׎@׏ א(F0{MߢN׬hߙ ׬`׍F-c׍F-cߙ ׬h׍F-c׍ F-cߙ ׎Hבג(F2BװF1ׯF0{F {F/sߣn%߼x߿pgOBLATED EQUAL-AREAParameter m: Parameter n: Theta: n       $ ( 2 6 : > B F J N R V Z ^ b f x|%%%% %00 %HH % %( %\ `  % % %%< %T%%%%% %L%p%%<DLT\dlt         $ |      8 HP \      (,0H \dl  ?@(\xobleqfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c obleqfor.c(obleqforintH()rg@*center_longgH+center_latgP,shape_mgX-shape_ng`.anglegh/false_eastgp0false_northgxOobleqforP`gPlong`QlatghR xpS yxUdelta_long~Vsin_delta_long~Wcos_delta_long~Xsin_latg~Ycos_latg~Zzg~[Azg~\sin_Azg~]cos_Azg^tempg_x_primeg`y_primegaMgbNgdoublelon_centerg lat_og thetag  mg !ng  "Rg (#sin_lat_og 0$cos_lat_og 8%false_eastingg @&false_northingg Hintg /ecs/hdfeos/gctp/src/usr/includeobleqfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 0 $$$$ $$ I 3 @ @A0H APA A@ M @0P AA A@  @8?obleqforintobleqforqlon_centerlat_othetamnRsin_lat_o2cos_lat_oRfalse_eastingvfalse_northing08hp  *Jn     @ @hI($ * P0 U8p! ]nJ ` PHk  u0{p Ppppgpp@pGp7  @ H  h / C Wp  obleqinv.o/ 1074016385 1032 20 100644 9732 ` ELF0@@ H!(/6=DLTP]b hlpv';.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataobleqinvintptitleradiuscenloncenlatgenrptoffsetptsincosobleqinvasin.lit8cossinatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:obleqinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (08@Hק(צץ פ(ף0 ע8ס@@נHH߄dߙ ׌(ߙ ׌ߙ ׌ߙ ׌߅dߙ ׌ ߅dߙ ׌߅dߙ ׌@׍Hߙ ׌g0g8ߙ %߼߿gPgPh`<$!!-ױג@F2AׯאHF0{׬׍ ׎(F.kBF-cߙ ׎ ׏F/sF.׬׍F-c׍ F-cߙ p׬ߙ ױגד(F3F2CװpF1F ׬ߙ הוF5F4׬ߙ ׎F.׬׍F-c׍F-cߙ x׬ߙ ׬ߙ דײF3ױxF2BF C ׯ װ F0{װױMF {אF0{׬ߙ הF4(׬׭ ߙ 0׵0זF6A8׬8g@gHߙ ׬(gPgXߙ ׬H׭P׎8F.kBF-c׭X׎0Mk!ߙ ߢ@׬P׭@F-c׭H׮P׏0F/sF.kB׮X׏8Msiߙ ׌F cߙ ߣ`%߼h߿`gOBLATED EQUAL-AREAParameter m: Parameter n: Theta: r       $ ( 2 6 : > B F J N R V Z ^ b f j x|%%%% %00 %HH % %( %\ `  %%%, %P%|%%% %%H %` % %%%<DLT\dlt         $ |   ( 48L Xhpx     ,D \ p   ?@(_xxobleqinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c obleqinv.c*obleqinvintlH(+r8@,center_long8H-center_lat8P.shape_m8X/shape_n8`0angle8h1false_east8p2false_north8xQobleqinvlP `8Rx8`Sy8hT lonspU latsxWz8~Xsin_z8Ycos_z8ZAz8[temp8~\x_prime8~]y_prime8~^M8~_N8~`diff_angle8asin_diff_angle8bcos_diff_angle8doublelon_center8  lat_o8 !theta8 "m8 #n8  $R8 (%sin_lat_o8 0&cos_lat_o8 8'false_easting8 @(false_northing8 Hint8 /ecs/hdfeos/gctp/src/usr/includeobleqinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 2 $$$$ @d0(p4(($$@e% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0H APA A@ M @0P AA A@  @8 ?obleqinvintobleqinvBlon_centerclat_othetamnRsin_lat_ocos_lat_o#false_eastingGfalse_northing08hp [w?d     @ @hO($  * 0P0 0U8p! rJ ` `k 0u0{p (PpxppgpJp@p"Gpi 0 @@    / C Wp omerfor.o/ 1074016386 1032 20 100644 18404 ` ELF@0@@  &.28?GNVZ`dkrw h -@T.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataomerforinttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerforcoslog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:omerfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g <$!!-׫תשר ק8צ@ׅׄF%!ׁעףF#F"A0׀0F (׌ gHgPߙ ׎׏Hא0בHF1M{׌׍0F-cF c׌P׍ߙ ח0F ׀ׁ0F!F ׀F F X׳הוזXF6BF5F4״F4`ג F דF3E ׌h׍׎h׏hMsaF kDF-c  אhבגhדhN3aF DF1 הh ׬׍Xߙ ׵ F Bp߄dߙ ׌׍ߙ ׌߅dߙ ׌@׍8ߙ ߦ׶ חנ F F7ח(F7(׬ߙ ׌hF,ߙ 0׬0ߙ ׬(F cߙ ׮׏XF/F/s׬׍0F-c߅dߙ ׌ߙ ׌ ߙ ג F ױאF1E׌׍h׎hMk!F c׍F-cߙ ׏`אXF0{F/x׌׍h׎hMk!F c׍F-cߙ ׏`אXF0{F/F {x ߄d߅dߙ $x3/׬ߙ 8׌(׭׮8ߙ @׬ߙ 8׌(׭׮8ߙ H׬@׍Xߙ P׬H׍Xߙ XׄpץPF%! ס ׂף F#F"Aׂ(F"B(׷PנXF ׀pׁpN׀pׁpF!סPעXL!F `׵X׶PF6A׶P׷XF7F6Ch׳״F4pױpג@F2E ߄d߅dߙ $xdװF ױגF2>E ׳ה8F4F הF4>E ߄d߅dߙ $xIו F Eז8F6@F EזF6>E ߄d߅dߙ $x5׬0ggߙ ׬ggߙ ח DF7>E׌׍h׎hMk!F c׍F-cߙ ׏`אXF0{F/x׌׍h׎hMk!F c׍F-cߙ ׏`אXF0{F/F {xxxߢx߼߿gg`h`<$!!-׬ߙ ׬׍F-cߙ p׬׍XF-cߙ ׯF {א8F0{F {׎F/pE ז8חF 8נׁ`F!ׁXF!Hע8F ׃F#F ׃F#>E ߄d߅dߙ $X*׌׭8F-c׭8׎F.k@F-cߙ ז`ח(F7F6חXF7P״HוxF5Hב@ײPדN3aײHדN3aߧ׎8ׯHאM{ׯPאM{ߦXXߢX߼h߿`g?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD->z򚼯HOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Point projects into infinityomer-for       $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                 %%%h% % %   % % %%4%H%tHxH %%%%%L%%hh% %%( %D%`%|%%%% %%0 %D%`dl % % % %hh%`hdhhlt%hh%% % @% %   % % < % |% % $% % P T X0 \0 d% %<DLT\dhlx   (,0HLTdlptx  ,048T`d |      0 D Xdl|      ,04@H TXdptx     $ 4@ X\ tx (<L`     , 8@ Xh x    0DPp       $ ( 4 < H L X d h l x       0 8 P \ l x            8 L P l x           4 @ ` |            (xomerfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c omerfor.c/omerforint ()0r_maj@1r_minH2scale_factP3azimuthX4lon_orig`5lat_origh6false_eastp7false_northx8lon19lat1:lon2;lat2<mode >temp~?con~? com~@ts~Ats1~A ts2~Bh~B l~CjC pC dlonDf~D g~D gama~Esinphi~omerfor 8`lon`lath xp yxsin_phi~tconq us vl~ul vssdlon~ts1~doubler_major r_minor scale_factor lon_origin  lat_origin  !e (!es 0"false_northing 8#false_easting @$sin_p20 H$cos_p20 P%bl X&al `'d h(el p(u x)singam )cosgam *sinaz *cosaz intlong /ecs/hdfeos/gctp/src/usr/includeomerfor.c̿:stdio.hostandards.hDsgidefs.h7getopt.hˍ < $$( L4%,,- 5}  $!,8,A$$ Q}(t , ,((,D,  h,< ,,,--(A(1($$ QM     ,(1,0,,0(%L x  %1(P01% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 AA A@ l @0 h AAA@ @8 8=omerforint)omerforFr_majorr_minorscale_factorlon_origin lat_origin.eFes_false_northingfalse_eastingsin_p20cos_p20blald.elGu_singam|cosgamsinazcosaz08hp CKS&>W|&?Wt     @x h h'$ 8*00h6P9>p!P p` fq #X@{p 2Pp2p9p;gp;p<@p<Ep=N >` >p@ > @p / @C @Wp @(omerinv.o/ 1074016387 1032 20 100644 18004 ` ELF?P0@@  &.28?GNVZ`dkrw )9L`.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataomerinvinttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerinvexpphi2zcosatan2.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:omerinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g0x<$!!-׫תשר ק8צ@ׅׄF%!ׁעףF#F"A0׀0F (׌ gHgPߙ ׎׏Hא0בHF1M{׌׍0F-cF c׌P׍ߙ ח0F ׀ׁ0F!F ׀F F X׳הוזXF6BF5F4״F4`ג F דF3E ׌p׍׎p׏pMsaF kDF-c אpבגpדpN3aF DF1הp׌h׍Xߙ ׵F Bx߄dߙ ׌׍ߙ ׌߅dߙ ׌@׍8ߙ ߦ׶חנF F7ח(F7 ׬ߙ ׌pF,ߙ (׬(ߙ ׬ F cߙ ׮׏XF/F/s׬׍0F-c߅dߙ ׌ߙ ׌ ߙ ג F ױאF1E׌׍p׎pMk!F c׍F-cߙ ׏`אXF0{F/׌׍p׎pMk!F c׍F-cߙ ׏`אXF0{F/F { ߄d߅dߙ $p3/׬ߙ 0׌(׭׮0ߙ 8׬ߙ 0׌(׭׮0ߙ @׬8׍Xߙ H׬@׍Xߙ PׄxץHF%!סׂףF#F"Aׂ(F"B ׷HנPF ׀xׁxN׀xׁxF!סHעPL!F X׵P׶HF6A׶H׷PF7F6C`׳״F4hױhג@F2E ߄d߅dߙ $pdװF ױגF2>E ׳ה8F4F הF4>E ߄d߅dߙ $pIו F Eז8F6@F EזF6>E ߄d߅dߙ $p5׬(ggߙ ׬ggߙ ח DF7>E׌׍p׎pMk!F c׍F-cߙ ׏`אXF0{F/׌׍p׎pMk!F c׍F-cߙ ׏`אXF0{F/F {ppߢp߼߿xgg`h`<$!!-׶ח@F7״ו8F5ײדF3׳הNTװבF1ױגN!׮׏F/s׬׍XF-cF c׍`F-cߙ ױג׳F3F2Aג(F2B ׮׏װF0{F/s׏(F/s(׬׍XF-c׍`F-cߙ 0׵0זF6B׶ חNa׶(F6C8״8F וF5F וF5>EׁߢAנ8DF >Eׂ`ߣb׃8ߤE׏אXF0{@׌x׭8׎F.k@׎ׯ8F/sF.kCF kDF-c׭@ߙ pH׌(׭Hgߙ pߦߥX#׬׍XF-c׍`F-cߙ @׬0׍F-c׭ ׎Mk)׭@ߙ p׎׏XF/F/sP׬Pߙ pߨXXߢX߼h߿`g?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD-?!TD-OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point:        $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                %%%h% % %   % % %%4%H%tHxH %%%%%L%%hh% %%( %D%`%|%%%% %%0 %D%`dl % % % %hh%`hdhhlt%hh%% % @% %   % % % % (% T% |%<DLT\dhlx   (,0HLTdhlptx  ,048T\`d |      0 D Xdl|      ,04@H TXdptx     $ 4@ X\ tx (<L`     , 8@ Xh x    0DPp       $ ( 4 < H L X d h l x        , < H X h t |          ( 8 X l           $ 8 D P ` d x (xomerinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c omerinv.c0omerinvint (1r_majn@2r_minnH3scale_factnP4azimuthnX5lon_orign`6lat_orignh7false_eastnp8false_northnx9lon1n:lat1n;lon2n<lat2n=mode ?tempn~@conn~@ comn~Ahn~A lnA ts1n~Ats2n~BjnB pnB dlonnCfn~C gn~C gaman~Dsinphin~omerinv `nxn`ynh lonp latxthetantnconnvsn~ usn~qn~snts1nvln ulnflag~doubler_majorn r_minorn scale_factorn lon_originn  lat_originn  !en (!esn 0"false_northingn 8#false_eastingn @$sin_p20n H$cos_p20n P%bln X&aln `'tsn h(dn p)eln x)un *singamn *cosgamn +sinazn +cosazn intlongn /ecs/hdfeos/gctp/src/usr/includeomerinv.c̿8stdio.hostandards.hDsgidefs.h7getopt.hˍ = $$( L4%,,- 5}  $!,8,A$$ Q}(t , ,((,D,  h,< ,,,--(A(1($$ QM    ((4,,001 !}L00L)% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 AA A@ l @0  AAA@ @8 =omerinvintomerinvQxr_majorr_minorscale_factorlon_originlat_origine1esJfalse_northingofalse_eastingsin_p20cos_p20blaltsd2elKucsingamcosgamsinazcosaz08hp 08@)Bg*C[x     @ hPt'$ *00h6>p!P @ f8q "0{p 1Pp1Pp8Ap9gp:Rp:@p;*Ep;oY < <@ = > / ?C ?Wp ?((orthfor.o/ 1074016388 1032 20 100644 7716 ` ELF0@@  (/6@GOWbf lpx 2.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataorthforinttsincosptitleradiuscenlonmeroriginoffsetporthforadjust_loncos.lit8sinp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:orthfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0פףע ס0נ( ׬ g(g0ߙ ߄dߙ ׌ߙ ׌ߙ ׌ߙ ׌ ׍ߙ %߼߿g@g@8<$!!-PX`h׬P׍F-cߙ ׬Xggߙ ׬ߙ ױײד0F3F2Bײד(N3a א(ׯ DpF/pE ׬ߙ F F׀ עף(ׄF$F#L!ߣ``ו׶(חF7׷נׁ(F!F נׁ0NNaߢhU ߄d߅dߙ $000ߢ0߼@߿8gpORTHOGRAPHICPoint can not be projectedorth-for>       & * . 2 6 d%lpx%%% % %   %4%D %%$(,0008%08@HPX\` t       0 @ Xht 4 ?=|׽([Px\orthfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c orthfor.c&orthforintP(^'r_majaP(center_lonaX)center_lata`*false_eastah+false_northapEorthforPp`aFlona`GlatahH xWpI yWxKsinphiaKcosphiaLdlonaMcoslonaNkspaOgadoubler_majora lon_centera lat_origina false_northinga  false_eastinga  !sin_p14a ("cos_p14a 0inta /ecs/hdfeos/gctp/src/usr/includeorthfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ +      ($ 09D(% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@r @0 ApAA@_ @8p=dorthforint^orthfordkr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p142cos_p1408hp x *H     @ hxF'$p* `80 `98p! >J ` k  u0{p Ppdp|p_gpp^@pEp  @   / C Wp orthinv.o/ 1074016389 1032 20 100644 8628 ` ELF0@@  (/6@GOW ]ekq|&:.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataorthinvinttsincosptitleradiuscenlonmeroriginoffsetporthinv.lit8p_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:orthinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0פףע ס0נ( ׬ g(g0ߙ ߄dߙ ׌ߙ ׌ߙ ׌ߙ ׌ ׍ߙ %߼߿g@g80<$!!-PX`hקP׈ F(9PץX׆F&)AXףXפXF$פPץPLe F ס׀ׂF"F!Eאߧh(p׌0׭X׮F.kBF-c׭F-c׭׎(Mk!ߙ @ߨhאF בF1 ׯ F {אF0z>E*גDF2>E ׬P׭XF kGߙ @׌F cߙ Hߩ` (>׬PF c׭Xߙ @׌F cߙ Hߪ`@(,߫hlߙ ׯא(M ׮ F s׍F.l>EײPF בF2>E׌0׭P׮F.kBF-c׭׮ F.kBߙ @׌F cߙ H߬`((ߢ(߼8߿0gpORTHOGRAPHICInput data errororth-invV       & * . 2 6 : > B F J N d%lpx%%% % %  dhl(p(x %%%0%%%%% %%%08@HPX\` t      LP t    $, DL ` p     ,@ X h  >z򚼯H=|׽!TD-(\x?orthinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c orthinv.c&orthinvint3(^'r_majDP(center_lonDX)center_latD`*false_eastDh+false_northDpEorthinv3`DFxD`GyDhH lon:pI lat:xKrhDLzDMsinzDM coszDNconDdoubler_majorD lon_centerD lat_originD false_northingD  false_eastingD  !sin_p14D ("cos_p14D 0intD /ecs/hdfeos/gctp/src/usr/includeorthinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ +     ,)(,$%L %!HH0<]% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@r @0 ApAA@ @8=Gorthinvint^orthinvGNr_majorllon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p1408hp xd +    @ (hN'$* 80 18p! VJ p ` k  u08 {p XPpGppgpXp@p0Epu   0@ p ` / C Wp polyfor.o/ 1074016389 1032 20 100644 8980 ` ELF0@@ &+05:?FNX_goz#6J.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatapolyforinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyforadjust_lontsincosmsfnzsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:polyfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08@H׫ ת(ש0ר8קHXצ@`ׅׄF%!ׁעףF#F"AH׀HF @׌Hߙ  ׌Hߙ (׌Hߙ 0׌Hߙ 8׌ ׍(׎0׏8אߙ P߄dߙ ׌׍ߙ ׌ߙ ׌ߙ ׌`׍Xߙ %߼߿gPg0(<$!!-@HPX׬@׍F-cߙ 8׮HF s׏F/p>Eג`׳הNTߣPr׏XאבPMߢXO>׬Hggߙ ׌ ׍(׎0׏8װHߙ 8׌@׭׮ߙ 8 ׵׶F6B׬ߙ ח`ע ׃F#F"סF!F ߤP׬ߙ ׄXׅצ ׇF 9F'1קF'1ק׈PF(9F'1L)!ߥX%߼0߿(g`?>z򚼯HPOLYCONICR       $ ( , 6 : > B F J %%% % % ( %< %L %\%p%%8%X %x%%%4<DLT\`dp     $ 048 DH TX dhl   4 @DHLT ht   (8xpolyfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c polyfor.c(polyforint()r_majrP*r_minrX+center_lonr`,center_latrh-false_eastrp.false_northrx0temprQpolyfor4`rRlonr`SlatrhT xpU yxWsinphirWcosphirXconrX mlrYmsr@doubler_majorr r_minorr lon_centerr lat_originr  e0r   e1r ( e2r 0 e3r 8!er @!esr H"ml0r P#false_northingr X$false_eastingr `intr /ecs/hdfeos/gctp/src/usr/includepolyfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ . $$$$$     ,%$$4,D% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 APAA@ _ @0 A`AA@d @84=polyforintpolyfor|r_majorr_minorlon_centerlat_origine0e1,e2Ee3^evesml0false_northingfalse_easting08hp  $=Vn    @H h^N'$4* h00 6 >p! RP ( f 8q H {p hPpppgpp@pEp1  (@ hP  / C Wp polyinv.o/ 1074016390 1032 20 100644 8708 ` ELF0@@ &+05:?FNX_gou{ 0D.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatapolyinvinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyinvphi4zasinzsinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:polyinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08@Hת ש(ר0ק8צHPץ@X׃ׄF$׀סעF"BF!@׌@ߙ  ׌@ߙ (׌@ߙ 0׌@ߙ 8׌ ׍(׎0׏8אߙ H߄dߙ ׌׍ߙ ׌ߙ ׌ߙ ׌X׍Pߙ %߼߿gPg@8<$!!-PX`hצPׇXF'1PפXׅPF%!XׁHעX׃F#F"@נF ׁF!>E ׉תP׋F+RF*J@ߣ`iD@ߢhH;׬P׍F-c׭P׎F.kCF-c׭׮Mk! ׌@׍ ׎(׏0א8ױײ g(ߤhߙ HF D&pߥ$J0׬P׭(F-c׍F-cߙ Hߨh ߙ ׌׭HF kCF-cߙ ߩ` 00ߢ0߼@߿8gp?>z򚼯HPOLYCONICJ       $ ( , 6 : > B %%% % % %0 %@ %P%d%%%%%4<DLT\`dp       $(, 8< HL X\`  @Lhlptx    (xpolyinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c polyinv.c(polyinvint()r_majWP*r_minWX+center_lonW`,center_latWh-false_eastWp.false_northWx0tempWPpolyinvD`WQxW`RyWhS lonpT latxValWWbWXcWYiflgdoubler_majorW r_minorW lon_centerW lat_originW  e0W   e1W ( e2W 0 e3W 8!esW @"ml0W H#false_northingW P$false_eastingW XintWlong /ecs/hdfeos/gctp/src/usr/includepolyinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ . $$$$$      $%(8P% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 APAA@ \ @0 ApAA@h @8D=polyinvintpolyinvar_majorr_minorlon_centerlat_origine0e1e2*e3Ces\ml0vfalse_northingfalse_easting08hp w ";Tn    @0 phX0'$`D* `00 6 >p! JP  f q {p Ppppgp.p@pEpK ( 8@ x@  / C Wp psfor.o/ 1074016391 1032 20 100644 8724 ` ELF0@@ $)17=DLS[`alpt..symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatapsforinte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsforadjust_lonsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:psfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g( <$!!-@HPX`hש@רHקhXצ``ׅׄF%!ׁעףF#F"A׀F ׌ߙ 0 ׭P(׬X0תXDXF+P %,%D%d %tx % % % %%H%d %%%4<DLPT`tx  ( 4@ PT` p|      $4D T` t   (x1psfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c psfor.c,psforint%(-r_majP.r_minX/c_lon`0c_lath1false_eastp2false_northx5temp6con17sinphi8cosphi^psfor%@`_lon``latha x,pb y,xecon1fcon2grh@hsinphiitsdoubler_major r_minor es e  e4  !center_lon ("center_lat 0#fac 8$ind @%mcs H&tcs P'false_northing X(false_easting `int /ecs/hdfeos/gctp/src/usr/includepsfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 3 $$ 1$, !  4 , 5,89% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 ApA A@ q @0` A`AA@S @8@99psforintpsfor9r_majorr_minoresee42center_lonScenter_lattfacindmcstcsfalse_northingfalse_easting08hp *Kl    @ (hB%$@* @h00 @06 p>p! FP  f q x{p 8Pp9ppgpp@pAp2  (@ hP  / C Wp psinv.o/ 1074016391 1032 20 100644 8564 ` ELF0@@ $)17=DLS[agmx 2.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.lit8.rodatapsinvinte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsinvphi2zatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:psinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g0(<$!!-@HPX`hש@רHק`XצhPׅׄF%!ׁעףF#F"AנF ׌ߙ 8׭P ׬X(תXDXF+P       $ . 2 6 %,%D%d %tx % % % %%@%d%4<DLPT`  ( 4@ PT` p|     $,\t| < PX` (xpsinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c psinv.c+psinvint (,r_majP-r_minX.c_lon`/c_lath0false_eastp1false_northx4temp5con16sinphi7cosphi8es^psinv `_x``yha lonpb latxerhftsgtemphflagdoubler_major r_minor e e4  center_lon  !center_lat ("fac 0#ind 8$mcs @%tcs H&false_northing P'false_easting Xintlong /ecs/hdfeos/gctp/src/usr/includepsinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 2 $$ 1$, !  $$, 5,8 , % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 ApAA@ q @0 A`AA@i @89%psinvintpsinv%r_majorr_minoree4center_lon7center_latXfacrindmcstcsfalse_northingfalse_easting08hp /Pj    @ (WF%$* `00 06 >p! >P  f q h{p PpX%p}pgpp@pAp  @ 0@ p / C robfor.o/ 1074016392 1032 20 100644 12068 ` ELF(0@@  *18?GNYeq.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.bss.lit8.rodatarobforintptitleradiuscenlonoffsetprobforadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:robfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$&- (08׳ ײ(ױ0װ8׏߅׎߄Dh߃m׌߂L׋ ߁+׊ߟ׉(ߙ)׈0ߘׇ8ߏ׆@ߎׅHߍׄPߌ׃Xߋcׂ`ߊBׁh߉!׀p߈חx߇ז߆ו߅ה߄ד߃sג߂Rב߁1אߟ׏ߙ/׎ߘ׍ߏ׌ߎ׋ߍ׊ߌ׉ߋi׈ߊHׇ߉'׆߈ׅ߇ׄ߆׃߅ׂ ߄ׁ߃a׀(߂@ߡ(! ߊeJ߫ XKP-Tו0F5߉e)ߪ P*H-4ߨeߧ(߄dߙ ׬ ߙ ׬(ߙ ׌׍ߙ %߼߿g@g <$!!-08@H׬0׍F-cߙ ף8ׄ8F$ׄ@F$F סׂHF"@F ID*׷ߩDF!F אױג߈eߩe) H @-״߇dߨe@8-߆dߧd80-F6AF5וPNu״׵F5߅dߦd0(-Ե߄dߥd( -Ԗ߃dcߤd d-w׀XNF6@F5וPNuF3N!ߢ@Pׯ8DpF/p>EDׅ׆ߙg9߿g?-'רߘg߹g9- ߏe߸gx-F*JAF)B׉PLAרשF)Bߎe߯exp-ߍe߮eph-ժߌe߭e h`-Ջ׌XMLZF*J@F)B׉PLAF'1ׇ`F'1ׇPL1a߫HeB׋׌߆dߧd80-׮߅dߦd0(-ԯ߄dߥd( -ԐF0{F/s׏PMsa׮ׯF/s߃dcߤd d-o߂dBߣdcC-P߁d!ߢdB"-1גXN9F0{F/s׏PMsaF-c׍hF-c׍PMmb߿H%߼ ߿gPvȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!R I !/ I 3 @ @A0 A@AA@ @0 APAA@ @8;robforintOrobfor{lon_center7ROfalse_eastingsfalse_northingprxlr08hp hpx/Gk    @p \ '3&$`*  0 P50 p; Cp!*U ` k Hv hp  Pp Xp#i!p$yp%p%@p%Cp& & &@ &! ' 4 'H (robinv.o/ 1074016393 1032 20 100644 14068 ` ELF/0@@  *18?GNVamy.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.bss.lit8.rodatarobinvintptitleradiuscenlonoffsetprobinvp_erroradjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:robinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$&- (08׳ ײ(ױ0װ8׏߅׎߄Dh߃m׌߂L׋ ߁+׊ߟ׉(ߙ)׈0ߘׇ8ߏ׆@ߎׅHߍׄPߌ׃Xߋcׂ`ߊBׁh߉!׀p߈חx߇ז߆ו߅ה߄ד߃sג߂Rב߁1אߟ׏ߙ/׎ߘ׍ߏ׌ߎ׋ߍ׊ߌ׉ߋi׈ߊHׇ߉'׆߈ׅ߇ׄ߆׃߅ׂ ߄ׁ߃a׀(߂@ߡ(! ߊeJ߫ XKP-Tו0F5߉e)ߪ P*H-4ߨeߧ(߄dߙ ׬ ߙ ׬(ߙ ׌׍ߙ %߼߿g@gp`X<$c#-pxתp׋F+Rpרx׉F)Bxצxׇ8F'1ׇ@F'1ׇF'1פׅHF%!ע׃PF#F נׁXF!F D"ߡ $ $=ߋek߬e `lX-aߊeJ߫ek XKP-BF"A(߉e)ߪeJ P*H-5߈eߩe) H @-߇dߨe@8-׀8NF6@0״F ߆dߧd80-F5ו8F5׵(F58ײ0׳(F3@׮8׏װ8ױ@F1בײ8׳@ה8F4N3yMF/s׭D`F-`>E߬$ פxDF$>E ߮D(F)aצF&)@׆PF&)B ߯D0F1קF'1ׇ`F'1׭׎PF.kCF kE׫׌XF,ZF ZD9Xש߸DPFRF*JAרxD8F(:>EB׏߅dߦd0(-԰ױ߄dߥd( -Ԓ߃dcߤd d-sF3F2BגhN!ױײF2B߂dBߣdcC-R߁d!ߢdB"-3ߟgߡd!-ו8NuF3F2BגhN!F0{א@F0{אhF0{H@הߋek߬e `lX-u׶ߊeJ߫ek XKP-W߉e)ߪeJ P*H- F F7חhNa׶׷F7߈eߩe) H @-߇dߨe@8-߆dߧd80-ׂ8L9F F7חhNaF5וpF5וhF5HסעHףxF#׃xF#׃@F#׃F#F"@߭ e ߬ )L ߄d߅dߙ $PmץHצxF&)AF )EׄF%#h?FRROBINSONToo many iterations in inverserobinv-conv2     " & * LPX\dhpt|  ((0088@@ HH$P(P04<X@XHLT`X``dlhphx|ppxx  ((0088@ @ H$H<@\`%% % %  04dh04LPhl48PTlp 00 %ptx0|0 %   @ D \ ` x | %,4<DHTlx ,8DP\htT    ,<DL\lL,Tdx  @  ,   (q8xrobinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c robinv.c.robinvintv(O/r`0center_longh1false_eastp2false_northx4i}@trobinvv `ux`vyhw lonpx latx{yy~|p2}u} v} t}c~phid~y1ip1}i}double%lon_center &R 'false_easting (false_northing .)pr \*xlrG intlongm /ecs/hdfeos/gctp/src/usr/includerobinv.c̿1stdio.hostandards.hDsgidefs.h7getopt.hˍ 2    B     , $LpHE1 5  $% A ?< (m (Z*@)% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A0 A@AA@ @0 AAA@ @8 ;robinvintOrobinv{lon_centerRfalse_eastingfalse_northing.pr\xlr08hp hpx?n    @ \$/S&$ *x 0xP50x;<Cp!D2U x kXv !Pp 'Pp'`p*up,gyp,p-x@p-Cp- . .@ .! / 4 /H /sinfor.o/ 1074016394 1032 20 100644 6164 ` ELFH0@@ &-4<CNR ^jx .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatasinforintptitleradiuscenlonoffsetpsinforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sinfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g<$!!- (08׬ ׍F-cߙ ׬(ߙ בײדF3N2aߣ0q׎ׯ(אM{ߢ8N%߼߿g@SINUSOIDAL*      " HLT%d%t%%   % %,4<DP ` p |    ((xpsinfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c sinfor.c&sinforintd0(='r`(center_longh)false_eastp*false_northx>sinfordP`?lon`@lathA xkpB ykxDdelta_lon@doublelon_center  R !false_easting "false_northing int /ecs/hdfeos/gctp/src/usr/includesinfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ *     (8$% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@e @0 A@AA@c @8P;xsinforint=sinfordxlon_centerRfalse_easting?false_northing08hp  V^f7\     @X b &$@P* 0 8p!*J p`8 k Xup  hPp xp 0pgpgp@p?Cpl  @ @   )  = 0Qp @sininv.o/ 1074016395 1032 20 100644 6788 ` ELF0@@ &-4<PC IQU`lx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatasininvintptitleradiuscenlonoffsetpsininv.lit8p_errorcosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sininv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g<$c#- (08צ ׇF'1 פ(ׅF%!(ע(׃F#ߢ8Bߡ8!F E׀F!sininv_`?x`@yhA lonfpB latfxDtemp@doublelon_center  R !false_easting "false_northing int /ecs/hdfeos/gctp/src/usr/includesininv.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ *      )($%<-% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@e @0P A@AA@O @8;ssininvint=sininvdslon_centerRfalse_easting:false_northing08hp V^f2W     @ h0.^&$* 0;8p!.J ` k `u0 x{p  Pp spSp5gpp4@ptCpl ( 8@ x 8 / XC hWp xsomfor.o/ 1074016397 1032 20 100644 19204 ` ELFC@0@@  8*5<DPW_cg dr@y}/?Rf{.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodatasomforintgsat_ratioptitleradius2genrpt_longgenrptoffsetpcossinsom_seriessomfortanatansprintfp_errorasinlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_varnamesbe::7.30-1276837810:somfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g0<$c#-ק߂Gצץפף׀סעF"CעףF#F"BF!pߡ ׬ת׋F+RXשߤD@FB!+ߥ(באX׎ ߧDxF{א(F0{F/s׏0F/s׍8߆ז@וHXדPߩDF!וXF5F4ה0F4ג8߈D߄dߙ ׌׍ߙ ߥ ߤ߅dߙ ߤ߅dߙ ׬׍hF-c߅dߙ ׌׍hF-c߅dߙ ׌׍ߙ ߆߅dߙ ׬ߙ h׎hF s׏pF/pE׎(׏DF0{2E ב(ײDF3E׆XקPD@F(?Eא(Wg߅dߙ g߅dߙ $0׬ߙ ׬hߙ X׬ߙ ׍`F kB׬XF-c׭׎h׏אpF0{F/sMk)׍׮ׯאpF0{MsyF kDF-cߙ ׮׏F/s׏F/s׬ߙ F ߙ ׬ߙ װױF1׬ߙ אXב`F1F0בײד@N3aג׳ה8NTד״וHNuF3F2CF DF1x׎x׏xF/s׏PאPM{F s ׬׍F-cߙ `׬׍F-cߙ אױ`F1ױגN!ב N!ױגxF2Bײ F2CF1ߩ0ߨ׏F/sߧ׬׍F-cߙ סׂPF"Bע F"Cׂ0F ףׄ(LDF"@߸߯׀F ߮߭ն(߬ՔוF5߫tײ(דF3ߪR00ߢ0߼@߿8gg(08@HPXߣX`ׁF!ߢX@ߡX,ߙ עףF#ߤXԌߙ וXז`F6BF5Bז׷׀@Nחנׁ8N׀סׂHL!F F7F F6Bxג׳הHNTד״ו8Nuה׵ז8N!F4F3דXהhNTד״ו8Nuה׵זHN!F4F F3אxבxF1בPגPN!F ׎x׏xF/sׯאPM{ׯF/sߦ0ߥXԬ׍F-cߙ ߩ0.F sߨ8ߧX׍F-cߙ ߬0ՒF ߫@r׏xװבPF1F0{װF0{ ߪXLߙ ׮ F s߮H߭Xլ׍F-cߙ ׯ F {߯P߿(g`?@?=?[Ow@` =p?򽴆&?FR5?)O?l0a\j?SC~@`)?lī@Lc˰>. &֕@@@V@>@N@.@F>z򚼯H?!z!z?!TD-@jz)U8^@|3!Ҿz򚼯H@ !TD-@!TD-??!TD-@?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without conv som-forward      $ ( , 2 8 > D N R V Z ^ b f j n r v z ~       <hx|% % %00 %HH %h h %( %08<D %T %%x|%%%ptx%LPP %% %<%P%%    %   % % ,% @ % % % % % % % % $% % < %h % % % %HPX`d ,48<LX`dt       $ @ P \`hx|  <T0DX(P h|<L x  (8 L X\`t        ( < H \ ` d t           $ , 4 < D L d h l t x            0 @ L h     8 D H T \ d l t |              ,0<\d    (x somfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c somfor.c)somforint 8(4*r_major{@+r_minor{H,satnum P-path X.alf_in{`/lon{h0false_east{p1false_north{x2time{3start1 4flag 5sat_ratio{9i :alf{~: e2c{~:e2s{~:one_es{~;dlam{~; fb{~;fa2{~;fa4{~;fc1{~;fc3{~; suma2{;&suma4{;,sumc1{;2sumc3{;8sumb{somfor @ `ilon{`lat{h y p x xn }l }delta_lon{}rlm{~ tabs{}tlam{}xlam{}c{}xlamt{}#ab2{}'ab1{}+xlamp{}1sav{}d{ sdsq{sd{tanlg{~xtan{~tphi{~"dp{~%rlm2{~scl{} tlamp{}conv{|delta_lat{|!radlt{}'radln{}temp{ POerrorbuf~L230(L240L250 L260 L300  som_series 4{  fb P  fa2 X  fa4 `  fc1 h  fc3 p  dlam x sd{  sdsq{ h{ sq{ fc{@ double!lon_center{ !a{ !b{ !a2{ !!a4{  !$c1{ (!'c3{ 0!*q{ 8!,t{ @!.w{ H!0xj{ P!3p21{ X!7sa{ `!:ca{ h!=es{ p!@s{ x!Bstart{ "false_easting{ #false_northing{  'gsat_ratio{  int long { char /ecs/hdfeos/gctp/src/usr/includesomfor.cͿ>stdio.hostandards.hDsgidefs.h7getopt.hˍ 7444 $%,, ) # $$, 4$44 x 4 x 4   #4 #` $$ T$$  $0 p,$X$ $$t,4<<,08% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/  .: ;9 ' @ @ : ;9 I 4: ;9 I $> 4: ; 9 I ? I 3 @ @A08 AA A@  @0@ AA A@  @0 d A`A@ @84N somforint4somfor }gsat_ratio- isom_series lon_centeraba2a4c1!c3:qRtjwxjp21sacaes s start 4false_easting Xfalse_northing08hp MU](6DR`~2Jbz  , P u       @ c&$ 4*X0X50X ;xCp!LU  kv #H @p 0Pp0 p:p<p=bp>2@p>rVp>5p> @ @ `" @@2 B E BY Bn Cp C0sominv.o/ 1074016398 1032 20 100644 18676 ` ELFAp0@@ %,4@GOSW PhbHiquz~"2EYn.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatasominvintptitleradius2genrpt_longgenrptoffsetpcossinsom_seriessominvp_errorexpatantanasinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_varnamesbe::7.30-1276837810:sominv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g0<$B"-צץפף׀סעF"CעףF#F"BF!xߡ תשק׈F(9`#ߣ(c`׎׍`׋ ߤD`Fc!׍(F-cF,Z׌0F,Zג8ב@`׏HߥDF!בPF1F0{א0F0{߄dߙ ׌׍ߙ ߤ߅dߙ ߤ߅dߙ ׬׍XF-c߅dߙ ׌׍XF-c߅dߙ ׌׍ߙ ׬߅dߙ ׬ߙ p׎pF s׏`F/pEאױDF2Eו׬ߙ DF6E׬ߙ ׬ߙ ׬ߙ ׌p׭F-c׭Mk)׍h׎׏xF/sF.kBF-cߙ ׬׍F-cߙ ߧ׮ߦߢ߼߿gg(08@HPXߣX`ׁF!ߢX@ߡX,ߙ עףF#ߤXԌߙ ו`זhF6BF5Bז׷׀@Nחנׁ8N׀סׂPL!F F7F F6Bג׳הPNTד״ו8Nuה׵ז8N!F4F3ד`הpNTד״ו8Nuה׵זPN!F4F F3אבF1בXגXN!F ׎׏F/sׯאXM{ׯF/sߦ0ߥXԬ׍pF-cߙ ߩ0.F sߨ8ߧX׍F-cߙ ߬0ՒF ߫@r׏װבXF1F0{װF0{ ߪXLߙ ׮ F s߮H߭Xլ׍F-cߙ ׯ F {߯PD߿(g`?@?=?[Ow@` =p?򽴆&?FR5?l0a\j?SC~@`)?lī@Lc˰>. &֕@@@V@>@N@.@F@!TD->z򚼯Hz򚼯H?!TD-?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse       $ ( , 2 8 > D N R V Z ^ b f j n r v z ~       <@H%\%hlt%00%HH %hh % % % %< %< @ D %   %   %4 8 < %  % %$ %@ %\ %p %HLPT\%| % %% % @ % t % % % D% % % d% % % % % % % % % %` % %<DLTX| $08D PTX p       ,08 DHLP`dhx4DTXh   4< PX l xX x      < L ` p           $ , 0 @ d         0 4 < @ P ` p x         x            ( 0 8 @ P T \ d l t           4<\  (xssominv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c sominv.c&sominvint_('r_majora@(r_minoraH)satnumfP*pathfX+alf_ina`,lonah-false_eastap.false_northax/timea0flagf1sat_ratioa3if4alfa~4 e2ca~4e2sa~4one_esa~5dlama~5 fba~5fa2a~5fa4a~5fc1a~5fc3a~5 suma2a5&suma4a5,sumc1a52sumc3a58sumbasominv_ H`Sya`xah lonnp latnxtlona} conva~sava~sda~sdsqa~blona~#difa~'sta~*defaca~0actana~6tlata~;dda~>bigka~Cbigk2a~Ixlamta~sla~ scladlatadlonatempa}inumbf~som_seriesa Pa fbnP fa2nX fa4n` fc1nh fc3np dlamnxsda sdsqahasqafca@double lon_centera  aa  ba  a2a  !a4a   $c1a ( 'c3a 0 *qa 8 ,ta @ .ua H 0wa P 2xja X 5p21a ` 9saa h I 3 @ @A0 AA A@ z @0H AA A@  @0 Ph A`A@ @8;{sominvintsominv-{Ssom_series{klon_centeraba2a4c1c3 q8tPuhwxjp21sacaessfalse_easting:false_northing08hp 7?Gow0H`x2W       @` .&$*006x>p!TP ( fq "0{p 0Pp18{p9p;p<p<@p=Cp=Y5p=  > >` ?- @ @ AT A i A0}p A@0sterfor.o/ 1074016398 1032 20 100644 7748 ` ELF80@@  (/6@GOWbf ltx 2.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatasterforinttsincosptitleradiuscenlonmeroriginoffsetpsterforadjust_loncos.lit8p_errorsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sterfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0פףע ס0נ( ׬ g(g0ߙ ߄dߙ ׌ߙ ׌ߙ ׌ߙ ׌ ׍ߙ %߼߿g@g@8<$!!-PX`h׬P׍F-cߙ ׬Xggߙ ׬ߙ װױג0F2BF1ױג(N! ׮ ׏F/sF s׏F/p>E ߄d߅dߙ $g0%ד״ וF5F4(׬ߙ ׁ עף(ׄF$F#L"aߧ`ז׷(׀F נסׂ(F"BF!סׂ0L)Nߦh00ߢ0߼@߿8gpSTEREOGRAPHICPoint projects into infinityster-for>       & * . 2 6 d%lpx%%% % %   %4%D %00%%08@HPX\` t       0 @ Xhx   $4?=|׽@([Px\sterfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c sterfor.c&sterforintP(^'r_majaP(center_lonaX)center_lata`*false_eastah+false_northapEsterforPh`aFlona`GlatahH xWpI yWxKsinphiaKcosphiaLdlonaMcoslonaNkspaOgadoubler_majora lon_centera lat_origina false_northinga  false_eastinga  !sin_p10a ("cos_p10a 0inta /ecs/hdfeos/gctp/src/usr/includesterfor.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ +      ($ 0-($@% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@r @0 ApAA@] @8h=dsterforint^sterfordkr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p102cos_p1008hp x *H     @ hxF'$h* X80 X98p! >J ` k @u0{p Pp0dpp{gppz@pEp  @   / C Wp (sterinv.o/ 1074016399 1032 20 100644 8420 ` ELF0@@  (/6@GOW ]bgmx|"6.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatasterinvinttsincosptitleradiuscenlonmeroriginoffsetpsterinv.lit8atanasinatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sterinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (0פףע ס0נ( ׬ g(g0ߙ ߄dߙ ׌ߙ ׌ߙ ׌ߙ ׌ ׍ߙ %߼߿g@g80<$!!-PX`h׳Pה F4PױXגF2AXׯXװXF0{װPױPMF {׬׍׎F.kBF-cߙ וF5B׬ggߙ חߢ`W׶F חF7>E׀ߣh`(t׌0׭X׮F.kBF-c׭F-c׭׎(Mk!ߙ ߤhאF בF1 ׯ F {אF0y>E,גDF2>E׬P׭XF kGߙ @׌F cߙ Hߥ`(C׬PF c׭Xߙ @׌F cߙ Hߦ`(1-ߧhߙ ׮׏(M{ ׭ F kE׎F.k B F J d%lpx%%% % %  ` %%%T%l%%%%`%x%08@HPX\` t      LP \ h      0P `h      <\ lt @=|׽!TD-(\x?sterinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c sterinv.c&sterinvint3(^'r_majDP(center_lonDX)center_latD`*false_eastDh+false_northDpEsterinv3`DFxD`GyDhH lon:pI lat:xKrhDLzDMsinzDM coszDNconDdoubler_majorD lon_centerD lat_originD false_northingD  false_eastingD  !sin_p10D ("cos_p10D 0intD /ecs/hdfeos/gctp/src/usr/includesterinv.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ +     ,8$%H %!HHx 0 <% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A@AA@r @0 ApAA@ @8=Gsterinvint^sterinvGNr_majorllon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p1008hp xd +     @ (hJ'$* 80 8p! RJ ` 0k @u0P {p pPpGp pgpwp@pOEp @ P@   / C Wp stplnfor.o/ 1074016400 1032 20 100644 16164 ` ELF7X0@@  # )5=EKQW^eqw} "3CSdt.symtab.shstrtab.strtab.comment.text.sbss.data.rodata.srdata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnames.text.sbss.data.rodata.srdata.lit8stplnforintsprintfp_errorfopenfseekfreadfcloseptitlegenrpt_longpakczpaksztmforintlamccforintpolyforintomerforintstplnfortmforlamccforpolyforomerfor.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:stplnfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<%(-$0ߡ߂"ߩ"ߪ@<߫`8߬8)ߍe߮8ph-ݭ߮߮80߸8g8߯8)߹$?8ߡ8(! ߂dBߣ8C-BߣCߣ80ߥ8d8ߤ8(ߦ0$g@߅dߦߧߙ g@߅dߙ $ߧ ߤgߙ ߤgߙ ߨ ߄d߅dߙ $ߤߦ0((/((/)80%ߙ g$$ ߧߙ g$$ߧߙ g$$ ߧߙ ߤߙ g@߅dߦߧߙ g@߅dߙ $t߄dߙ ߤ߅dߙ ߦ$$Sߤ߅dߙ ף נׁעF"AF DF!($=פ0׬ߙ F g8ߙ ׅF%B@ߨ8<6׬ߙ F g8ߙ ׆F&Hߪ8@<!רPקX׬ ׭(׮0ׯ@װHױPײXߙ $ f׬ߙ F g8ߙ ׉F)B`߮8<׬ߙ F g8ߙ ׊F*h߸8<׬ߙ F g8ߙ ׋F+@߿8<׬ߙ F g8ߙ ׌F,Hߢ8@<׮P׭X׬ ׭(׮`ׯhװ@ױHײP׳Xߙ $:׬ߙ F g8ߙ ׏F/@ߦ8<׬ߙ F g8ߙ אF0Hߨ8<zײPױX׬ ׭(׮@ׯHװPױXߙ i$ Ke׳0׬ߙ F g8ߙ הF4p߬8<P׬ߙ F g8ߙ וF5Bx߮8<;׬ߙ F g8ߙ זF6߸8<&רPקX$D0D(D `Dh׬ ׭(׮0ׯpװxױײP׳Xעס`נ׷h߿ ߙ ߢ߼߿gg<$c#-08@H$"׬0׭8ߦ@ߧHߙ @ %(HD$׬0׭8ߦ@ߧHߙ @@%(1-$ K׬0׭8ߦ@ߧHߙ @`%($׬0׭8ߦ@ߧHߙ @%(ߢ߼߿gPef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-forSTATE PLANEZone: Datum: NADr??FR5      $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                00hl|%(( % % %88 hh %T %p % % % %%(( %xx %,08%hlt%%%%,%%%% %$%`%x%%%4%\%t%%%(%X%p%%%%%%   L% % % `%4Dx     P l x      4 p    ( 8      0\ t   0 DX p   $ 8T l |    $ ( H     < \ (xstplnfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c stplnfor.c5stplnforint (t6zone-`7sphere-h8 fn27p9 fn83x;ind-|<i-|=nadval-~H>tableq} ?pname}dc@buf|Ar_maj~Ar_min~Ascale_fact~Acenter_lon~Bcenter_lat~Bfalse_east~Bfalse_north~CazimuthClat_origClon_origC"lon1C'lat1~C,lon2C1lat2~Dmode-D iflg-~EptrT}stplnfor  ` lon`lath xp yxiflg-int id long inzone-  -0i  NAD27R  -0 ( NAD83 0chardouble __file_s l _cnt- _ptr} _base} _reserved _flag _fileunsigned charl lunsigned shortunsigned intFILE /ecs/hdfeos/gctp/src/usr/includestplnfor.c:stdio.hostandards.hDsgidefs.h7getopt.hˍ 9   1{   1{ ,$1((8(((,$ $%DD DDDD DD DDD   @@@@% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/ I 3 $> I  !/ : ; 9   : ; 9 I8 I : ; 9 I @ @A0 AAA@ 9 @0  APAA@g @8 ?stplnforinttstplnfor8__file_sFILEPid5inzoneiNAD27NAD8308hp %J}     @ 0($ *`0``6>hF0pLp!^ P t 0 &pp +HPp+p1up3|p4Ap4@p5Gp5`@p5X 5 6@+ 6H; 7 N 7(b 78w 7Hstplninv.o/ 1074016401 1032 20 100644 16292 ` ELF70@@  # ) 5=EKQW]dkw}  (9IYjz.symtab.shstrtab.strtab.comment.text.sbss.data.rodata.srdata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnames.text.sbss.data.rodata.srdata.lit8stplninvintsprintfp_errorfopenfseekftellfreadfcloseptitlegenrpt_longpakczpaksztminvintlamccinvintpolyinvintomerinvintstplninvtminvlamccinvpolyinvomerinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:stplninv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<%(-$0ߡ߂"ߩ&ߪ@<߫`8߬8)ߍe߮8ph-ݭ߮߮80߸8g8߯8)߹$?8ߡ8(! ߂dBߣ8C-BߣCߣ80ߥ8d8ߤ8(ߦ0$g@߅dߦߧߙ g@߅dߙ $ߧ ߤgߙ ߤgߙ ߨ ߄d߅dߙ $ߤߦ0((/((/)80%ߙ ߤߙ g$$ ߧߙ g$$ߧߙ g$$ ߧߙ ߤߙ g@߅dߦߧߙ g@߅dߙ $t߄dߙ ߤ߅dߙ ߦ$ $S ߤ ߅dߙ ף(נׁעF"AF DF!0$=פ8׬ߙ F g@ߙ ׅF%BHߨ@D6׬ߙ F g@ߙ ׆F&Pߪ@@D!רXק`׬(׭0׮8ׯHװPױXײ`ߙ $ f׬ߙ F g@ߙ ׉F)Bh߮@D׬ߙ F g@ߙ ׊F*p߸@D׬ߙ F g@ߙ ׋F+H߿@D׬ߙ F g@ߙ ׌F,Pߢ@@D׮X׭`׬(׭0׮hׯpװHױPײX׳`ߙ $:׬ߙ F g@ߙ ׏F/Hߦ@D׬ߙ F g@ߙ אF0Pߨ@DzײXױ`׬(׭0׮HׯPװXױ`ߙ i$ Ke׳8׬ߙ F g@ߙ הF4x߬@DP׬ߙ F g@ߙ וF5B߮@D;׬ߙ F g@ߙ זF6߸@D&רXק`$D0D(D hDp׬(׭0׮8ׯxװױײX׳`עסhנ׷p߿ ߙ ߢ߼߿gg<$c#-08@H$"׬0׭8ߦ@ߧHߙ @ %(HD$׬0׭8ߦ@ߧHߙ @@%(1-$ K׬0׭8ߦ@ߧHߙ @`%($׬0׭8ߦ@ߧHߙ @%(ߢ߼߿gPef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-invSTATE PLANEZone: Datum: NADr??FR5      $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                 00hl|%(( % % %88 hh %T %d % % % %%%(( %$x(x0%<@H%x|%%%$%<%%%%%4%p%%%%D%l%%%%8%h%%%%%(%%   \% % % p%4Dx     P ` |      , D      8 H    0 @l    @ Th    4 Hd |     $ 4 8 X     L l (xstplninv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c stplninv.c5stplninvint (t6zone.`7sphere.h8 fn27p9 fn83x;ind.|<i.|=nadval.~H>tableq}! ?pname}dc@buf|Ar_maj~Ar_min~Ascale_fact~Acenter_lon~Bcenter_lat~Bfalse_east~Bfalse_north~Cazimuth~Clat_origClon_origC"lon1C'lat1~C,lon2C1lat2~Dmode.D iflg.~EptrT}stplninv  `x`yh lonp latxiflg. int id  long inzone.  .0j  nad27S  .0 ( nad83 0 char double __file_s m _cnt. _ptr~ _base~ _reserved _flag _file unsigned charmm unsigned short unsigned intFILE /ecs/hdfeos/gctp/src/usr/includestplninv.c;stdio.hostandards.hDsgidefs.h7getopt.hˍ 9   1{   1{ ,$1((8(((,$ $)DD DDDD DD DDD   @@@@% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/ I 3 4: ;9 I $> I  !/ : ; 9   : ; 9 I8 I : ; 9 I @ @A0  AA A@ = @0  APAA@g @8 ?stplninvinttstplninv8__file_sFILEPid6inzonejnad27nad8308hp &K~     @ H($ *0`6>F0Lp!^  t x '8p +Pp,p1p3p4p5\@p5Gp5@p6#X 6 6@+ 6; 7 N 7b 7w 7tmfor.o/ 1074016402 1032 20 100644 11428 ` ELF%X0@@ $).38=DLS]dlr}  -=Pd.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatatmforinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptmforadjust_lontsincossin.srdatap_errorlogcosacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:tmfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08@HP׫ ת(ש0ר8ק@ צP`ץHh׃ׄF$׀סעF"BF!H׌Hߙ (׌Hߙ 0׌Hߙ 8׌Hߙ @׌(׍0׎8׏@א ߙ בF BX׎H׏אHF0{F/sP׌H׍F-`h=|׽?@@4@@2@R@M@8@"@@>@N@@tTRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinityb       $ ( , 0 : > B F J N R V Z %%% % %hlt % %   %%%% 8%X%|%HH%%,%X%%X %8@HPX`hlp|      $(,8<@PTdp |     ,4 T `x    ( <T  ,@DHLT dp|(08H\hpxtm-for(xtmfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c tmfor.c2tmforint(3r_maj@4r_minH5scale_factP6center_lonX7center_lat`8false_easth9false_northp;tempdtmfor`elon`flathg xph yxjdelta_lon~ksin_phi~kcos_phi~lall alsmb~ncn tntqocono nomldouble#r_major $r_minor %scale_factor &lon_center 'lat_origin  (e0 ((e1 0(e2 8(e3 @)es H)esp P*ml0 X+false_northing `,false_easting h-ind pint  /ecs/hdfeos/gctp/src/usr/includetmfor.cͿ)stdio.hostandards.hDsgidefs.h7getopt.hˍ 9 $$$$$<%  $     ,!(1$TL 0$ ( =%0% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A`A A@ x @0 AAA@ @89tmforinttmforr_major8r_minorVscale_factorylon_centerlat_origine0e1e2e3es8espRml0lfalse_northingfalse_eastingind08hp 0Nq0Jd    @ ppx%$* x00 6e>p!bP XP fq x{Xp `Pppp gp!p!@p!Ap"( #0 #@@ #p$ $ 7 %K % _p %0(tminv.o/ 1074016404 1032 20 100644 12644 ` ELF*X0@@ $).38=DLS]dlrvz 1ATh.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatatminvinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcosasinzatan2adjust_lonsinp_errortsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:tminv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- (08@HP׫ ת(ש0ר8ק@ צP`ץHh׃ׄF$׀סעF"BF!H׌Hߙ (׌Hߙ 0׌Hߙ 8׌Hߙ @׌(׍0׎8׏@א ߙ בF BX׎H׏אHF0{F/sP׌H׍F-`E ߪ8߫KP*@ ߄d߅dߙ $_ߧ8d8$״0F ו@F5h?@@@=|׽?!TD-@8@@@$@"@>@N@V@r@F@o@4@<@ TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSEt       $ ( , 0 : > B F J N R V Z ^ b h l %%% % %X\d %x %   %%%%D%%%`%x%%%4%HHhh%%,%T%x%8@HPX`hlp|      $(,8<@T` lpt      04@ Tdpx|  <\ lt    (0 @LX`  ( 8 (0<HPT`hp|  $0P t (xtminv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c tminv.c3tminvintw(4r_maj@5r_minH6scale_factP7center_lonX8center_lat`9false_easth:false_northp<tempctminvw`dx`eyhf lon~pg lat~xicon~i phi~jdelta_phi~kiU~lsin_phi~lcos_phi~ltan_phi~mc~m cs~mtmtsmnmrmdmdsnf~n h~ng~ntemp~omax_iterU~double$r_major %r_minor &scale_factor 'lon_center (lat_origin  )e0 ()e1 0)e2 8)e3 @*es H*esp P+ml0 X,false_northing `-false_easting hlong. indU pintA /ecs/hdfeos/gctp/src/usr/includetminv.cͿ/stdio.hostandards.hDsgidefs.h7getopt.hˍ : $$$$$<%  $    0,, 8(  5@,"$!( t%$ $( ,$1-4% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A`A A@ t @0 AAA@ p @89tminvinttminvr_majorr_minorscale_factorlon_center:lat_origin[e0te1e2e3esespml0 false_northing1false_easting]ind08hp 2Sl)Mo    @ h|%$0*x006s>p!#tP  f(`q {p Ppp$cIp%gp&p&@p&Ap', (8 (H@ (p ) / *C *(Wp *8 utmfor.o/ 1074016404 1032 20 100644 11796 ` ELF&0@@ %-27<AFMYahry  ,<Oc.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodata.lit8utmforintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutmforadjust_lontsincossin.srdatalogcosacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:utmfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $g<$B"-08@HߡH"&"/ ߣH'd&d/(c=` ߄d߅dߙ $ zץ0פ8ף@D ߨHO @& @/88/8xdIDFaׂF"B׀hߦH׆ D8 ׭ `׋׌F,Z׈ שתF*JBF)BH׌Hߙ ((׌Hߙ (0׌Hߙ (8׌Hߙ (@׌(׍0׎8׏@א ߙ (דF XאHב גHF2AF1P׎H׏(F/ph=|׽?@@4@@2@R@M@8@"@@>@N@@tb       $ ( , 0 : > B F J N R V Z \`dhp%@%X%p % % %(( %PP %4%@`D`L%\%%% %DHT%%%%% %l   48< LPT dhl |    (,0 <H TX    (4LP px   $d    ,@HPltx$,0utm-for(0xutmfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c utmfor.c2utmforint~(J3r_maj`4r_minh5scale_factp6zonex8tempbutmfor~t`clon`dlathe xpf yxhdelta_lon~isin_phi~icos_phi~jalj alskb~lcl tltqmconm nmmldouble$r_major %r_minor &scale_factor 'lon_center (lat_origin  )e0 ()e1 0)e2 8)e3 @*es H*esp P+ml0 X,false_northing `-false_easting h.ind pintlong: /ecs/hdfeos/gctp/src/usr/includeutmfor.cͿ(stdio.hostandards.hDsgidefs.h7getopt.hˍ stdlib.hˍOlocale_attr.hˍ 6 A(@9$$$$$<%  $ $    ,!(1$TL 0$ ( =%0% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 APAA@ @0 AAA@ @8t;utmforintJutmforr_majorr_minorscale_factor(lon_centerIlat_originje0e1e2e3esespml0false_northing@false_eastingdind08hp cks Ab{8\v    @ pXwY$0t*x080P>p!bP hP f`q {p Pp@p Bp"gp"p#@p#[Cp# $ $@ $p$ &h 7 &K &_p &(utminv.o/ 1074016405 1032 20 100644 13044 ` ELF+0@@ %-27<AFMYahry}0@Sg.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodata.lit8utminvintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutminvexpcosasinzatan2adjust_lonsintsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:utminv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $g<$B"-08@HߡH"&"/ ߣH'd&d/(c=` ߄d߅dߙ $ }ץ0פ8ף@D ߨHO @& @/88/8xdIDFaׂF"B׀hߦH׆ D8 ׭ `׋׌F,Z׈ שתF*JBF)BH׌Hߙ ((׌Hߙ (0׌Hߙ (8׌Hߙ (@׌(׍0׎8׏@א ߙ (דF XאHב גHF2AF1P׎H׏(F/pE ߪ8߫KP*@ ߄d߅dߙ $_ߧ8d8$״0F וXF5h?@@@=|׽?!TD-@8@@@$@"@>@N@V@r@F@o@4@<@ t       $ ( , 0 : > B F J N R V Z ^ b h l \`dhp%@%X%p % % %( ( % P$P, %@%L`P`X%h%%8%x%%%%%%PTX\d%%%%%l   48< LPT dhl |   ( 48< HT `d  4 DTt    8HT\h   ,`    $<TXx(04@\dlx  (8(x2utminv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c utminv.c4utminvint&(J5r_maj_`6r_min_h7scale_fact_p8zonex:temp_eutminv&d`_fx_`gy_hh lon-pi lat-xkcon_~k phi_~ldelta_phi_~mi~nsin_phi_~ncos_phi_~ntan_phi_~oc_~o cs_~ot_ots_on_or_od_ods_pf_~p h_~pg_~ptemp_~qmax_iter~double%r_major_ &r_minor_ 'scale_factor_ (lon_center_ )lat_origin_  *e0_ (*e1_ 0*e2_ 8*e3_ @+es_ H+esp_ P,ml0_ X-false_northing_ `.false_easting_ hlong/ ind pint_p /ecs/hdfeos/gctp/src/usr/includeutminv.cͿ/stdio.hostandards.hDsgidefs.h7getopt.hˍ stdlib.hˍOlocale_attr.hˍ 8 A(@9$$$$$<%  $ $  0,, 8(  5@,"$!( t%$ $( ,$1-4% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 APAA@ @0 AAA@ p @8d;:utminvintJutminv:ir_majorr_minorscale_factorlon_centerlat_origin e0#e1p!0tP  f8q ({p  8Pp :p%xp':gp'p(9@p(yCp( ) )@ *p + / +C +Wp + vandgfor.o/ 1074016406 1032 20 100644 8228 ` ELF0@@ !(/6>GR X^bjv$.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatavandgforintptitleradiuscenlonoffsetpvandgforadjust_lon.lit8asinztantsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:vandgfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g`h`<$!!-׬׍F-cߙ p׮F s׏F/p>E אױגN!ߣp׏ߢOX׬׍F-cF c׍F-cߙ p׮F s׏F/q>E ׯF {אF0{F {אF0z>E(גߤױDF1>E ׬׍(F-cߙ ׎׏אF0{Mߥ׬׍(F-cߙ ׎׏אF0{MߦXד״F4״וF5F4F ה(F4ױײF2B׬g g(ߙ ר(ש(ת F*J@׊0F*J@F)B0צ0ק0F'18ף0ׄץ F%!ׅ0F%!F$@ס@ע@F"BHח׀F נסHF!ס8עHF"AF!סע0ףHF#F"Bע0ףHF#L)F סע0ףHF#L!F נסHF!F P׵DF6EדהוF5ו8׶P׷PNy׶P׷׀F NyF DNuߨזח׀F ׀8סPעPL9סPע׃F#L9F Nߩ6XXߢX߼h߿`gVAN DER GRINTEN6      " & * . HLT%d%t%%   %\ % % %%,4<DP ` p |   (D P X t         $ D T d          $(, 4 L =|׽@ !TD-@!TD-??(x=vandgfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c vandgfor.c)vandgforint10(C*r`+center_longh,false_eastp-false_northxAvandgfor1`Blon`ClathD x8pE y8xHdlon~Itheta~Jal~J asq~KgK gsqLmL msqMconNcosthNsinthdouble"lon_center #R $false_easting %false_northing int /ecs/hdfeos/gctp/src/usr/includevandgfor.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ -      -%$8I I@8$,,  ( YQ% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@e @0 AAA@ @8?EvandgforintCvandgfordElon_centerRfalse_easting false_northing08hp ^fn)     @ hH8($* 8 0 88p! H6J ` hk pu0@{p 8PpEppgp2p@p GpQl  @   / C Wp vandginv.o/ 1074016407 1032 20 100644 8068 ` ELF0@@ !(/6>G MRVamy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatavandginvintptitleradiuscenlonoffsetpvandginv.lit8acoscosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:vandginv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0gph`<$!!-pxפpׅF%!pעx׃F#x׀ׁF!׶p׷F7״x׵F5ײ׳F3׳״NTױF EײדF3F2BF G ׭ ׮ׯאF0{Msy׮ׯMsa(׊׫ ׌MLZ׫׬׍F-cMLZ׫׬MLZ0רשF)Bש0F)Bש(ת(׫(׌F,ZF+RF*JBת0F*JCת0F*JCת0F*JCת(׫ ׌ F,ZF+R׫0F+R׫0F+RF*JA׊(F*JCF)B8ץ צ(ק(F'1ׇ0F'1ק0F'1F&)Aצ0F&)C@פ@F !ׅ0F%!F !ׅF%!Hע8׃0F#ף@F#ףHF#סF E׀F!E׈׉@׬ߙ ׌0F,P׫xDPF+R>E׬P׍HF-cߙ ׮(׏0F/sׯ0F/sׯHM{F s׏F/sߢN׬P׍HF-cߙ ׮(׏0F/sׯ0F/sׯHM{F s׏PF/sߣnװF בXF1 I 3 @ @A0 A0AA@e @0 AAA@ @8?9vandginvintCvandginvd9lon_centerRfalse_eastingfalse_northing08hp ^fn      @ h0/_($*  0 8p! (4J `` Pk @u0@h{p Pp9p1p+gpp*@pjGpl   0@ p 0 / PC `Wp pwivfor.o/ 1074016408 1032 20 100644 7300 ` ELF0@@ &-4<CNR X\dp| .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatawivforintptitleradiuscenlonoffsetpwivforadjust_lonsin.lit8cosp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:wivfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׬ ׭(ߙ %߼߿g0g0(<$!!-@HPX׬@׍F-cߙ ׮H׬Hߙ ׏F/$@/׬ߙ 8׬ߙ ׳״8F4״F4F הF4F4 ױײ F2@װ F בF1      " & * . 2 6 HLT%d%t%%   % %0 %D %00% %, %,4<DP ` p     , @ d      ( 48< @DKL?=|׽??랃%? 4\(Xxwivfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c wivfor.c$wivforint0(=%r0`&center_long0h'false_east0p(false_north0x<wivforh`0=lon0`>lat0h? xp@ yxBdelta_lon0Ctheta0Ddelta_theta0@Econ0Fidoublelon_center0 R0 false_easting0  false_northing0 int0long /ecs/hdfeos/gctp/src/usr/includewivfor.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ (      (X$ {@8% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@e @0 A`AA@i @8h;wivforint=wivford:lon_center[Rsfalse_eastingfalse_northing08hp V^fSk      @ hH2z&$h*  0 A8p! I>J ` Hk @u0 0{p Pp`p8p+gpp*@pjCpl   0@ p 0 / PC `Wp pwivinv.o/ 1074016409 1032 20 100644 6692 ` ELF 0@@ &-4<C INR]amy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatawivinvintptitleradiuscenlonoffsetpwivinv.lit8asincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:wivinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׬ ׭(ߙ %߼߿g0g<$!!- (08ױ גF2A ׯ(אF0{(׬(׍׎F.kBF-cߙ ׬ߙ ׌׭ ׎׏F/sF.F.kCF-cߙ ߢ0@׬׍F-cߙ ׬׍L c!׍F-cߙ ߣ8`%߼߿g@WAGNER IV6      " & * . HLT%d%t%%   %$ %P %p% %,4<DP ` p     ,48 L d l |   ? 4\?랃%@@DKL(xlwivinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c wivinv.c#wivinvint`0(=$r`%center_longh&false_eastp'false_northx;wivinv``<x`=yh> longp? latgxAtheta@doublelon_center R false_easting false_northing int /ecs/hdfeos/gctp/src/usr/includewivinv.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ '     0PL% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@e @0 A@AA@} @8;twivinvint=wivinvdtlon_centerRfalse_easting;false_northing08hp V^f3X      @ hH/w&$*X 0X 8p!b6J ` 8hk pu0  {p  0Pp tppgp-p@pCpHl  @   / C Wp wviifor.o/ 1074016411 1032 20 100644 6772 ` ELFp0@@  '.5=(EP V^bnz.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatawviiforintptitleradiuscenlonoffsetpwviiforadjust_lon.lit8tsincossin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:wviifor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g80<$!!-@HPX׬@׍F-cߙ ׬׍F-cggߙ ׬Hߙ ׈F(ׅצקL1yF )D ׁׂףפ LDF"CF D(ד״׵(׶ ח׀ F F7F6BNuߣPs׎ׯ(װבג(F2BF1M{ߢXN%߼8߿0g`WAGNER VII.      " & HLT%d%t%%   % % %,4<DP ` p |    $ 0 H L hx|  @?}A5T?@@V|G?LPr(XHxwviifor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c wviifor.c#wviiforint0(@$rC`%center_longCh&false_eastCp'false_northCx;wviifor`C<lonC`=latCh> xp? yxAdelta_lonCBsin_lonCBcos_lonCCsCC c0C@Cc1CHdoublelon_centerC RC false_eastingC false_northingC intC /ecs/hdfeos/gctp/src/usr/includewviifor.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ '     (,($,<4% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0 A0AA@e @0( A`AA@E @8=wviiforint@wviifordMlon_centernRfalse_eastingfalse_northing08hp Zbjf~     @ h00`'$*h 0h 8p!s.J ` (8k `u0 0{p  Pp ppSp(gpp'@pgEpl  (@ h ( / HC XWp hwviiinv.o/ 1074016412 1032 20 100644 7012 ` ELF`0@@  '.5=xE KQUY_jv$.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatawviiinvintptitleradiuscenlonoffsetpwviiinv.lit8asinzsintanatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:wviiinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$%- (ףעס נ(߄dߙ ׬ߙ ׬ߙ ׌׍ߙ %߼߿g0g( <$!!-@HPXף@ׄF$@סHׂF"AH׷@׀F ׵HזF6C׳״F4ױײF2BׯװF0{F {׬׍׎F.kBF-cߙ 0ׅF%B׬ߙ ׬HF c׭׎F.kBF-cߙ 0ߢX@׬ߙ ׬@F c׭׎F.kBߙ 0׌׍ M!ߙ ߣP`%߼(߿ g`WAGNER VII:      " & * . 2 HLT%d%t%%  d % % % %%%,4<DP ` p |   PT ` p         @V|G?LPr@? rt@(XHxwviiinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c wviiinv.c&wviiinvint0(@'r `(center_long h)false_east p*false_north x>wviiinv(` ?x `@y hA lonpB latxDt1 D t2 Dp Dc doublelon_center  R !false_easting "false_northing int  /ecs/hdfeos/gctp/src/usr/includewviiinv.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ *      I 3 @ @A0 A0AA@e @0x A`AA@Y @8(=wviiinvint@wviiinvdlon_center8RPfalse_eastingtfalse_northing08hp Zbj0Hl      @ h`8'$(* 0 8p!:J 0` k `u0 ({p  8Pp p5p gptp @pLEpl  @ P  / 0C @Wp Pfor_init.o/ 1074016413 1032 20 100644 27940 ` ELFg`0@@ )X",3>FT^eqz#.6AIT\hq{!)5>JS]dow  ':.symtab.shstrtab.strtab.comment.text.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.lit8for_initsphdzpakszceaforintceaforbceaforintbceaforcalc_utm_zoneutmforintutmforstplnforintstplnforalberforintalberforlamccforintlamccformerforintmerforpsforintpsforpolyforintpolyforeqconforinteqconfortmforinttmforsterforintsterforlamazforintlamazforazimforintazimforgnomforintgnomfororthforintorthforgvnspforintgvnspforsinforintsinforequiforintequiformillforintmillforvandgforintvandgforomerforintomerforsomforintsomforhamforinthamforrobforintrobforgoodforintgoodformolwforintmolwforimolwforintimolwforalconforintalconforwivforintwivforwviiforintwviiforobleqforintobleqforisinusforinitisinusfor.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:for_init.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g`@8< %,-dlp|0g08d$a"'߭pաDF!d$i| xߤxߥpg@gHgPߙ lߧ@ߩp,ߥ8ߙ HזF6חF7߫8k߬ߪ8J@$ 0 ߭pլߥ8ߙ HחF7׀F p߯8߸߮8$0׬׍F-cߙ ׮pDxF/pU@Lc˰?#x        $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                     !   #   %   '  )   +   -  /    $ ( , 0 4 81 < @ D3 H L5 P T7 X9 \ `; d= h? l pA t xC |   E  G %%%%d%%4%%%$ |%%%h % %  %\%%\%%0%T%% T% % (% L % % X% | % % %  % L% % %|%%<%% \%%,%P%%X%|%%% %H%!%"%t%#%$@%%%%,&l%%H'%l(%)%4*t%%<+%`,%-%(.h%/%0@%%$%%%P%%L1%p2 % d%!<3%!`4!%"5%"(6"h%"7%"8#(9%#L:#%#;%$<$L=%$p>$?%$@%%%|A%%B%%&DC%&hD&%'%'%'E%( F(p%(G%) H    ` px 0 @H  x   \d     X hp ,     P ` h    $       T     ( 0     H X `   (0x  8 HP X hp (   T   (0  D T\!   (p # < LT % h x D'   ) p  8+  - d t|/ < LT   08  L \d H1    ` p x!83 ! !!"5 "d "t"|"7 #$9 # ###; $H= $? % %$%,%xA % %%&@C & &&' ''' '''E (l (|((G (xfor_init.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c for_init.c6for_init)X(7outsysD8outzoneL9 outparmP:outdatum\;fn27`<fn83h=iflgp>for_transx@zone}Aazimuth~Balf~Cangle~Dlon1}Elon2~Flat1}Glat2}Hcenter_long}Icenter_lat~Jh~Klon_origin~Llat_origin~Mr_major}Nr_minor}Oscale_factor}Pfalse_easting}Qfalse_northing}Rshape_m~Sshape_n~Tstart~Utime~Vradius}Wtmpdatum}Xpath~Ysatnum~Zmode~[sat_ratio~\dzone]djustify_thing}aiflg64o}intdoublecharlong /ecs/hdfeos/gctp/src/usr/includefor_init.cstdio.hostandards.hDsgidefs.h7getopt.hˍ >$5 <<=<<= -< < ( 44<<<<E<<<<E<<=<<=<<=<<<<(M<<A<<9<<9<<9<<9<<9<<=<4<<8<4<4<  )<   <   <   <   <   <  $$)< < e<4<4(<4(4<4<4<<<E<=% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I 3 $> I' @ @A0)X AA A@  Q @8)X+for_init0L8 KJL I  I@  % EN ($ )X*07(0p!7@B 8@X? c K mp YP{pYp^pemppe`pf=@pf}3 f  f  fP  g0  gPinv_init.o/ 1074016414 1032 20 100644 27860 ` ELFg0@@ )8",3>FT^eqz#.6AIT\hq{!)5>JS]dow  ':.symtab.shstrtab.strtab.comment.text.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.lit8inv_initsphdzpakszceainvintceainvbceainvintbceainvcalc_utm_zoneutminvintutminvstplninvintstplninvalberinvintalberinvlamccinvintlamccinvmerinvintmerinvpsinvintpsinvpolyinvintpolyinveqconinvinteqconinvtminvinttminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvintgvnspinvsininvintsininvequiinvintequiinvmillinvintmillinvvandginvintvandginvomerinvintomerinvsominvintsominvhaminvinthaminvrobinvintrobinvgoodinvintgoodinvmolwinvintmolwinvimolwinvintimolwinvalconinvintalconinvwivinvintwivinvwviiinvintwviiinvobleqinvintobleqinvisinusinvinitisinusinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:inv_init.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $gp80< %,-T\`lpx0g08T$a"'߭`աDF!U@Lc˰?#x        $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                     !   #   %   '  )   +   -  /    $ ( , 0 4 81 < @ D3 H L5 P T7 X9 \ `; d= h? l pA t xC |   E  G %%%%d%%4%%%$ |%%%h % %  %\%%\%%0%T%% T% % (% L % % X% | % % %  % L% % %|%%<%% \%%,%P%%X%|%%% %H%!%"%t%#%$@%%%%,&l%%H'%l(%)%4*t%%<+%`,%-%(.h%/%0@%%$%%%P%%L1%p2 % d%!3%!@4!%!5%"6"H%"7%"8#9%#,:#l%#;%#<$,=%$P>$?%$@$%%\A%%B%%&$C%&HD&%&%'h%'E%(F(P%(G%)H    ` px 0 @H  x   \d     X hp ,     P ` h    $       T     ( 0     H X `   (0x  8 HP X hp (   T   (0  D T\!   (p # < LT % h x D'   ) p  8+  - d t|/ < LT   08  L \d H1    ` p x!3 !| !!!5 "D "T"\"7 #9 #h #x##; $(= $? $ %% %XA % %%& C & &&& &&'d 't'|'E (L (\(d(G (xinv_init.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c inv_init.c6inv_initx)8(x7insysxD8inzonexL9 inparmP:indatumx\;fn27`<fn83h=iflgp>inv_transxAzone}Bazimuth~CangleDalf~Elon1}Flon2~Glat1}Hlat2~Icenter_long}Jcenter_lat~Kh~Llat_origin~Mlon_origin~Nr_major}Or_minor}Pscale_factor~Qfalse_easting}Rfalse_northing}Sradius}Tshape_m~Ushape_n~Wtime~Xpath~Ysatnum~Zmode~[tmpdatum}\sat_ratio~]dzone^djustify`thing}biflg64U}intdoublecharxxlongh /ecs/hdfeos/gctp/src/usr/includeinv_init.cstdio.hostandards.hDsgidefs.h7getopt.hˍ ?$5 -<<=<<= - <  <  (  4 4  <  <  <  <  E <  <  <  <  E <  <  =<  <  = <  <  = < < < <( M <  <  A <  <  9 <  <  9 <  <  9 <  <  9 <  <  9 <  <  = <  4 <  <  9 < 4 < 4 <  )<  <  <  <  <  <  $$) <  <  ] < 4 < 4 ( <  4 ( 4 <  4 <  4 < < < E < =% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I 3 $> I' @ @A0)8 AA A@  I @8)8+inv_init0L8 KJL I  I@  % EN ($ )8*06(0p!7 B 8@X> c K mp YxP{pYp^ppeppe`pe@pf$3 fX  fh  fP  f  fcproj.o/ 1074016415 1032 20 100644 21828 ` ELFO0@@hp #(T.`48P> FN@TY]|cPxim Ls { @ XPPXT`H<@D 0@S.symtab.shstrtab.strtab.comment.text.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.rodata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.texttsincossincosasinz.lit8asinmsfnzqsfnzlogphi1z.rodatap_errorphi2zatanpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zone.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:cproj.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$!!- ׬ߙ ߢ@׬ߙ ߣ `߼߿g0g<$!!-סF E׀F!Eס@ߥdߤ(߄d߅dߙ $ߦpׂ@@נ@߼P߿Hgg@8<$B"-PX`ߡ` נPׁF!׬Xߙ ׂ0׃ LCߣ(c`5׬ߙ ׮PׯF/s ׌׭ F-c׭ ׎F.k@F-c׭ߙ ׬XF cߙ א0ב N9ױF1(׮ׯ(F/s׭(F kE׎(F.h>Eײ0ߥdߤ(߄d߅dߙ $ߦ`ד 00נ0߼@߿8gpg( <$B"-@HPX`hנ@ߡ(! :׬׍ F-cߙ 0׬׍8F-cߙ 8׬׍@F-cߙ ױ@ײP׳0N3aײX׳8N3yײ`N aײHF2CײF2AׯװF0{׮F s׏(F/p>Eߣh`״ߥdߤ(߄d߅dߙ $ߦhוHנ߼(߿ gpg@`X<$$-נߣ`$ߡ(! ߥԬߙ ߦߙ ׮׏װױײF2BMF {F/sߨߧ׍ F-cߙ ߩ,׍8F-cߙ hߪL׍@F-cߙ ׮ׯF/s߬ՏװM{ׯװhM{ׯM{ ߫l׍ F-cߙ p߭լ׍8F-cߙ x߮׍@F-cߙ עפׅ F%!ףpLDפׅ8F%!ףxLDףׄ@F$LC(נ ׁ F!ߢAעף פ LDL!סׂ F"Bׂߡ#פ LDL90׶׷F7׷נ ס Nנ סׂ F"BNF7߿׀ F F78״(ו F5׵׶ F6Aז F6Bז ׷F7߹7נ(NN)@ױ0ײ8׳@F3F2CH߸װHF0{߯׮HF s׏(F/p>ED0Pߤdߣ(c`J߄d߅dߙ ׇ8PPנP߼`߿Xgg(<$c#-0$ נ0DF!E|ס ׂF"CF EF ID#(c`׬ ߙ ף D F!!ׅF%!F$ [צ ׇF'1F 1F 1D$0D(F)a׆F&)z򚼯H?@=|׽?!TD-@@@@È?PbM@Y@@A.@Lc˰@N@ !TD-@!TD-AB !T!C!S~=????????UUUUUU@fConvergence errorphi1z-convphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv(Xx cproj.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c cproj.c3tsincos0h(3val _`3"sin_val ih33cos_val ip;asinz _ p`\;con _pJmsfnz _0TK eccent _`L sinphi _hM cosphi _pOcon _PXqsfnz _`LwY eccent _`Z sinphi _h[ cosphi _p]con _@lphi1z _P<m eccent _`n qs _ho flag |pqeccnts _rdphi _scon _tcom _usinpi _vcospi _wphi _xi tphi2z _@8eccent _`ts _hflag |peccnth _phi _con _dphi _sinpi _i tphi3z _Lpeml _Pe0 _Xe1 _`e2 _he3 _pflag |xphi _dphi _i tphi4z _P eccent _@e0 _He1 _Pe2 _Xe3 _`a _hb _p c ix phi isinphi _~sin2ph _~tanphi _~ml _~mlp _~con1 _~con2 _~con3 _dphi _i t~ pakcz _  pak _p con _H secs _` degs tPmins tX sgna @!pakr2dm _ <"pak _p$con _H%secs _`& degs tP&mins tX' sgna @<tsfnz _ @ P &= eccent _`> phi _h? sinphi _pA con _@B com _HMsign  H pMx _pRadjust_lon _0P Sx _pUcount tPze0fn _ zx _p{e1fn _T j{x _p|e2fn _`P |x _p}e3fn _ }x _pe4fn _| qx _p con _@ com _Hmlfn _@ e0 _Pe1 _X*e2 _`5e3 _h@phi _pcalc_utm_zone t@ _lon _p double _ long t char int /ecs/hdfeos/gctp/src/usr/includecproj.cʿ\stdio.hostandards.hDsgidefs.h7getopt.hˍ 3/#-#(%      !   (   $  $w (   , e$x (  %x (    $$8}\XP$$$k(  ,@,8@ ,,@  <#4 ($0E===<XXH D8 %" % B .: ; 9 ? ' @ @: ; 9 I .: ; 9 I? ' @ @4: ; 9 I .: ;9 I? ' @ @: ;9 I 4: ;9 I $> I 3 @ @A0h A0AA@U @0p A AA@\ @(T A0R0` A@AA@v @0P AAA@v @0@ ApAA@^ @0| ApA A@ Z @0Px AA A@  @0 L A@A@O @0  A@A@C @0 @ A@AA@g @( X A A@R @0PP A0AA@ @(X AS(T AR(`H AO(< AL0 A@AA@^ @0 APA A@ k @(@D AN8< tsincosasinz\msfnzqsfnzwphi1zphi2zphi3zephi4zpakczpakr2dmtsfnz &sign padjust_lon e0fn e1fn je2fn e3fn e4fn qmlfn calc_utm_zone0#8h#p###@#Hx### #(X#`###(#0X#`###(#0 "!#(08#s{# ####}#-5=### = E M#   #   # 7 ? G#   #   #   &#   # * 2 :#    @ H>g%$ *p! < @RX] 'H g00hm1hup 2Pp2` p>pApBWPpF@pFD H0 H@ J  N  N-p N0report.o/ 1074016417 1032 20 100644 25716 ` ELF\0@@  "*17?FKRY@ddk`rz@      @/@P`q.symtab.shstrtab.strtab.comment.text.sbss.bss.rodata.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnames.text.sbss.bss.rodata.srdatap_errorprintffopenfprintffcloseinitstrlenstrcpyclose_fileptitleradiusradius2cenlon.lit8cenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblank.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:report.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.41 $g<$B"-߁ ߄dߥߦߙ ߅߄dgߙ (߄(߅dߦߧߙ ߄(ߙ ߼߿g g<$B"- (08ߡ  $@ߤ $ߤ0ߙ @$y$߄dߥ0ߙ &ߦ $ $ߤ0ߙ @ ߄d߅dߙ $V$߄dߥ0ߙ ߦ($@ߨ($  ߤ8ߙ @$ 2$߄dߥ8ߙ &ߦ($ $ߤ8ߙ @ ߄d߅dߙ $$߄dߥ8ߙ ߢ߼߿g@g<$B"-߁( ߄(ߙ ߃ `߄ ߙ ߼߿gg<$B"-߁ ߄dߥߙ ߅߄dgߙ ߄ ߅dߦߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנD%ߙ ߅߄dgߙ ߄ ߅dסD&ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנD%ߙ ߄dסD%ߙ ߅߄dgߙ ߄ ߅dעD&ߙ ߄ ߅dףD&ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנׁF!D%ߙ ߅߄dgߙ ߄ ߅dע׃F#D&ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנׁF!D%ߙ ߅߄dgߙ ߄ ߅dע׃F#D&ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנׁF!D%ߙ ߅߄dgߙ ߄ ߅dע׃F#D&ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנׁF!D%ߙ ߅߄dgߙ ߄ ߅dע׃F#D&ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנׁF!D%ߙ ߅߄dgߙ ߄ ߅dע׃F#D&ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנׁF!D%ߙ ߄dע׃F#D%ߙ ߅ ߄dgߙ ߄ ߅dפׅF%!D& ߙ ߄ ߅dצׇF'1D&0ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנׁF!D%ߙ ߅߄dgߙ ߄ ߅dע׃F#D&ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dנD%ߙ ߄dסD%ߙ ߅߄dgߙ ߄ ߅dעD&ߙ ߄ ߅dףD&ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dߥנD&ߙ ߅߄dgߙ ߄ ߅dߦסD'ߙ ߄ ߙ ߼߿g g<$B"-߁ ߄dߥߦߙ ߅߄dgߙ ߄ ߅dߦߧߙ ߄ ߙ ߼߿g g<$B"-߁ gߙ ߃`߄dgߙ ߄ gߙ ߄ ߙ ߼߿g[%s] %s Output file name not specifiedreport-file %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld a       " & * . 2 6 : > B L P Z ^ b f p t x |                    " & 0 4 8 < F J N R V Z d h l p z ~       ,0@%TXd%tx % %  $ %PT` % %00% %@ %lp| % %00% %LPl % %@@% %@ @, %< %lp``%%`` % % <@P%X\l%% % % % (,D%X\h%x| % %((%(%8(<(T %d %``%% %$ %LPhl%% % %   ( , D% X \ h% x@ |@ % %   p p %   ,% @ D P% `p dp | %   % %     % ( , 8% H L d % t %     %   %   %  $ 4 % @ D T % d %   H H %   % H H  % % L P lX pX %   % X X % % ,%@DP%h %x % < H\` lp   L\    4< hx    Xdh t   ( 48 |    0L h t    4@ L`d pt     $ 04DP \`     \t     4 @ L ` d p t       ( 4 H L X \ l x        0 4 @ D T ` l p         0 < P \ `          ` |       $( 4HL X\`d pt @Lc˰(+hxreport.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c report.c:p_error (; whatp< wherexZinit@`[ipr`\jprh]efilep^pfilexclose_file@ptitle XApradius `2Apradius2 @ApBxcenlon xApcenlonmer  Apcenlat @OAporigin @  Ap true_scale X Apstanparl 1Ap Bx%stparl1 v%Ap3offsetp 3Ap3BxCgenrpt <8#CApCSxNgenrpt_long @ p~NApN SxYpblank long / terminal_p  0 terminal_e  1 file_e  2 file_p  __file_s  _cnt _ptr _base _reserved _flag _file unsigned char  unsigned short unsigned intFILE*  3fptr_p%  4fptr_e% ( charj 5 parm_filer j 6 err_file  j int doubler /ecs/hdfeos/gctp/src/usr/includereport.cIstdio.hostandards.hDsgidefs.h7getopt.hˍ string.h2 <((, 4))())($( $ ((( ( (,, () (,,(0(4(0(4(0(4(0(4!(0(4,01(44(1(4,()(,,,,(0%,((,-$( % B .: ; 9 ? ' @ @: ; 9 I .: ; 9 I? ' @ @.: ; 9 ? @ @.: ;9 ? ' @ @: ;9 I .: ;9 ? @ @ $> 4: ; 9 I : ; 9   : ; 9 I8 I 3 I !/ : ; 9 II !/ @ @A0 A AA@h @0 A@AA@ @0@d AAA@T @0 A AA@e @0` A AA@g @0 A AA@w @0 A AA@k @0 A AA@k @0 A AA@k @0@ A AA@k @0 A AA@k @0  A AA@ @0 A AA@k @0 A AA@w @0 A AA@j @0 @ A AA@h @0 AAA@` @8-p_errorinitclose_fileptitleradius2radius2cenloncenlonmer cenlatOorigintrue_scalestanparl1stparl1voffsetpgenrpt#genrpt_long~pblank8*__file_sFILEterminal_pterminal_efile_e file_p0fptr_pMfptr_eparm_fileerr_file0!8h!p!!!H!P!!!(!0`!h!!!@!Hx!! !"!!!!CKS!!!%-!_go!!!CKS!!!9AI!!"Eb     @8 x@$ *005c=Ep! W  m!0x 6 00Dp D PpDppLmzpN5pPpS@pT<5pUq@pU VX Vh * X: \X M \xa \v \paksz.o/ 1074016418 1032 20 100644 5444 ` ELF@0@@ $# /;IVeu.symtab.shstrtab.strtab.comment.text.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.lit8.rodatapakszp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:paksz.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g@8<$B"-PXߡX נPDF!i|doublelong| /ecs/hdfeos/gctp/src/usr/includepaksz.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 7 $( $( !(8 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A0$ A`AA@ @8$(paksz0 8     @ -%$$*0(80`B8p!J @`k up  xPp p Yp Rgp `p@pY0    P    0sphdz.o/ 1074016418 1032 20 100644 7620 ` ELF0@@ !)5AO\k{.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.data.lit8.rodatasphdzp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sphdz.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $g <$B"-08@HPߡ0!ߤ8ԃF ߣ8dcbF סDF! I !/ I 3 @ @A0 A`AA@  @8(sphdz6majorminor0 8      @  WwnX$* `00 (6 H;>p! P 0 f q Pp{p Ppp ypyp`pr@p0p>   0  Pp  / C untfz.o/ 1074016420 1032 20 100644 5572 ` ELF0@@ (!)5AO\k{.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.data.lit8.rodatauntfzp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:untfz.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $g<$B"- (0ߡ( ,ߣ((c`(ߤ %ߥ (!߈eߩ(߫ PKP/ Px*H- H @-ߧ0ߦ0DF!2E ߄d߅dߙ $M ߄d߅dߙ $ߢ߼߿g@?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit   \`%((PP%  (xzuntfz.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c untfz.c'untfzm(((inunitm`)outunitmh* factorupdouble09$ Ofactors9 long  /ecs/hdfeos/gctp/src/usr/includeuntfz.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ *0@%(}(% B .: ; 9 I? ' @ @: ; 9 I $> I !/ I 4: ; 9 I I 3 @ @A0( A@AA@E @8((untfz*Ofactors0 8  e    @  Wwn%$(* 006[>p!KP `0 fPq {p  Pp Pp p p *`p @p 0p 2 0 @  ``  / C gctp.o/ 1074016421 1032 20 100644 14820 ` ELF2`0@@   &+08>IRZco{ .symtab.shstrtab.strtab.comment.text.sbss.bss.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.data.lit8.rodatagctpinitp_erroruntfzclose_fileinv_initpakr2dmfor_init.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gctp.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.11 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $g< %,- (08ߥߤ0܄ߥ@ܥߦ8ߧHߙ ߮߭ݭߏ[߸+eN߅dߦ0(-߄dߥ( -߃dcߤ d-`߂dBߣC-@߁d!ߢ"- ߟgߡ-߹+9 D߉e)ߪ߬ Y8lX/KP- P*H-!D߈eߩ߫ Q8KP/*H- H @-ߧdߦ(߫ekߪ)Je@$$ $ ߯N߸ߙg9߿?-9߹(9ߟgߡ!-?߿߁d!ߢB"-!ߡ!$"$$ߣ(c `ߥߦ0(-Ԣ߄dߥߧ180/(-( -ԃF#2E$ߩe)ߨ) ߪXJ@N߫`kߌe߭Xݭ h`-݌l߬x݌ߍe߮Xph-ݭ߭Xݭߎe߯Xxp-߮X$$$߸+ ߿hߡ-ߙg9߿ߢXB 8"/-?-%F%!2E$ߤdߣ(c `ߥܥߦ(e߄d߅dߙ $ߦpߧXߨX)e߄d߅dߙ $ߦZߨ  ߧ( ߩ)$ *ߪ J$ K$  ߬(݌$ ߭ݭ$߮ $ ߏe߹9$d?x- ߸ ߤ (%g(ߙ ߹" ߤ $g(ߙ ߿ߡ!$"ߢ ߣ bߤ܄ߙ ߧש(F)B0ߦdק(F'18ߥ߫kߌe߭ݭ h`-ߪ(Jߋek߬݌ `lX-jߩ)ߊeJ߫k XKP-Iߨ)߯߸x-ߎe߯߹98/x-xp-߭e߬)߹9$?U$߿+ߦߧ80-g@ߥ( -ߣdcߢ(B@Dh@D`Hߨߩ.DxF/r2E߬݌ XlX/ XxekIDF!בF1@ߪJ@בHגH߮@߭eճHߤ܄ߥܥg@ߧ(ߨߩߪߋekߙ ߤ܄ߥܥߦߧ(ߨߩߪߋekߙ ߥܥߙ Lߦ׶0׵8׬0׭8ggߙg9߿?-9 @%ߡ?ߙ (ߢ@ߦX߇dߨX@8-ߥxܥ߆dߧX80-ߤ`܄߅dߦX0(-ߣ(c`ߪh߫ XKP-W߉e)ߪ߬X݌ Y8lX/KP- P*H-7ߨeߧ(߬X݌$ H$߭)ߡhߢ"- g@߿?- ߸g߯)D @DHߣhaDF" 2E ׬ߙ @׬ߙ HߥhԦ@ߤhdԅHߤX܄ߥ`ܥg@ߧxߨߩߪߋekߙ ߤX܄ߥ`ܥߦhߧxߨߩߪߋekߙ ߥܥߙ ߦX רߨPקߧPd׬׭ߦPߧPdߙg9߿X?-9 @@%ߩ(ߙ a߫pk ߪxJ@ ߬X݌$ ߭pݭ$$ ߯x$߸X$߹p9$? ߟgߢ`B$dC- ߡX! %ߥ g(ߙ ߣb $ߥ g(ߙ ߤߥXܥ$ߦ ߧp߫Pk׬(F,ZߪPKߩPe))ת(F*JBߨPe ߙ ߢ߼߿g@A.AInsys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUT\       $ ( , 0 4 8 < @ D H L P T d%((PP88;;,? 0? \ x` xBHBH P$PL(P(x| x xd? h? ;;88,BH0BH % ((@@ % %@ % %(($P(Ph xl xtt  % <t @t H % d % t t % 8 8 @; D; d? h? BH BH % % q q % Hq Lq T% p % q q  %   %$ % %`    <  x D `  P l   (`x>gctp.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c gctp.cFgctp(hI incoor@Jinsys&HKinzone&PL inparmXMinunit&`Nindatum&hOipr&pQefile9xRjpr&Tpfile9U outcoorWoutsys&Xoutzone& Y outparm(Zoutunit&0Voutdatum&8[fn279\fn839]iflg&_x}`y}afactor}blon~clatfih}fjh}gininit_flagh}houtinit_flagh}junith}xkdummyD~long% iterh h(d& inpj h(d' indat (h(d( inzn Pdouble x>)/XTd)pdin>  xh(d* outpjo 8h(d+ outdat ;h(d, outzn ? x/X1d-pdout BH h MV(wd.for_transa q h (d/inv_trans th0 6 NADUT int  hchar 1Ng /ecs/hdfeos/gctp/src/usr/includegctp.cQsgidefs.h7standards.hD < $$$$$ $ 8 }!x &   Y| &   Y| 1(1(DH 90  00 0J) ! 2) 58  }H ] 00 0J) ! 2) %$HaDH991 $,% B .: ; 9 I? @ @: ; 9 I 4: ; 9 I I !/ $> I  I  I I 3 !/ @ @A0 AA A@ @8'FgctpFpiterinpjindatinznTpdinoutpjoutdatoutzn1pdoutwfor_transinv_transNADUT|08 gE      @ sS1$*@0@w5@0;0p ALIp!\[ 8@ qx| $0p %Pp&Fp,FVp.p/5`p/@p//p0 0 0  1' 2 : 28N 2Hbp 2Xbr_gctp.o/ 1074016422 1032 20 100644 4132 ` ELF 0@@   * 8ETdt.symtab.shstrtab.strtab.comment.text.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.textgctp_gctp.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:br_gctp.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=64:isa=mips4 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cg`XP<$!!-`hpxߤ`ߥhߦpߧxߨߩߪ߫߿߹߸߯߮ ߭(߬0ܯ<䯢DߡHߙ ߼X߿Pg  % (,xbr_gctp.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -64 -mips4 -g -DSGI64 -Dunix -O -c br_gctp.cgctp_(V incoor`@ insyssH inzonesP inparm`X inunits` indatumshiprspefilexjprspfile outcoor`outsyssoutzones  outparm`(outunits08fn27<=fn83iflgsdoubleVlongkchar~int]7 /ecs/hdfeos/gctp/srcbr_gctp.c D% B .: ; 9 ? @ @: ; 9 I $> I 3 @ @A0 AA A@ m @8(gctp_L08    @h $ *p!<  RH] `gp pPuppZepRp `p q@p 0    P  h  hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibIRIX62-64mips3.a0000755000175000017500000223306412024715435022464 0ustar amckinstryamckinstry! /SYM64/ 877725131 0 0 0 2960 ` Zt$$ƴƴDD--HHdddddddddddddddddddd˄˄DD33NNmTmT$$11JTJTeeddtt$$$$55RRpTpT$$4%D%DAA]]ydydDDDDDDDDDDDDDDDD&d&d::Q$Q$Q$$$ D DU@Lc˰?#x       $ * 0 6 < B F L R X ^ b h n r x ~                           !   #  $% ( . 4' 8 >) B H+ L R X ^ d j p v- z  /  1  3 5  7 9 ;  =  ?    A  C PT t \   h 8   "$0&(*,. 024D68:4<><@pBD\    HL \hp    08h x  4T X   ,4d   @ x   Lh l   < @t   L      P       ( ` x |     0 H L        P ` h      0 8 h  !   8 p#  % H X` '  Pd) h + $ 8Dl  4 HP     ,-  D Xh/ $ \p1 t 3 ,5 \ 7 9 ; L =  ?  T dl  0PA T C ?(uаxfor_init.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW for_init.c -o /ecs/hdfeos/obj/sgi64//for_init.o!for_init$(AI /ecs/formal/TOOLKIT/src/GCT/freewarefor_init.c * !} , $ $$* $ z $o,$,$,$,Ao,$,$,$,Au,$(=s,$) u,$(=k,$,$,$$$Mu($(Au,$(9u,$(9u,$(9u,$(9u,$(9t,$)= y$8v,$(8 y$8 y$8(]  $ 4  $$   0  $,  $$  $( 1h{~u( $4 ~I y$8 y$8| y$8||$ y$8 y$8p,$,~,A % B .: ; 9 ? @ @ @ @A0$ CBCD@EC8$+for_init^0H8 GFH E  E  ??? !#?%')+- / 13579;=?AC?@ 6* $ $*0&(0p!' B )X.c 1 0mp ?P{p?hp@^IpE'pE`pF.@pFn3 F  F  FP  G(  GH%p GXinv_init.o/ 877725096 467 20 100664 20084 ` ELFHh @@ $"0:AMVbkw %08DMW^iq|&/9@KS_hv  .symtab.shstrtab.strtab.comment.text.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.lit8inv_initsphdzpakszcalc_utm_zoneutminvintutminvstplninvintstplninvalberinvintalberinvlamccinvintlamccinvmerinvintmerinvpsinvintpsinvpolyinvintpolyinveqconinvinteqconinvtminvinttminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvintgvnspinvsininvintsininvequiinvintequiinvmillinvintmillinvvandginvintvandginvomerinvintomerinvsominvintsominvhaminvinthaminvrobinvintrobinvgoodinvintgoodinvmolwinvintmolwinvimolwinvintimolwinvalconinvintalconinvwivinvintwivinvwviiinvintwviiinvobleqinvintobleqinvisinusinvinitisinusinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//inv_init.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on%$0g%0-% %$ 8@%$ @<$B"-ߙ@-8- @(%B8$A0M߬ ߬ %@(%$0$8$@ߙ@-8- 0-߬18%ߙ (% L׃F#ׄF$-߼߰߿߲߱gpߙ (% L! ߼߰߿߲߱gp׍ߙ׬ F-c׃סF#BׂF"BׂF"<E@8%8/ߙ׎ ׭8 ׬0"߭`߃`-$$ߤߙߥߦ ߧ@"߼߰߿߲߱gp߭`߃`-Z$ߙ (% LׄF$׀F !#`߼߰߿߲߱gpߙ (% LׂF"ׁF!,p߼߰߿߲߱gpߙ (% L ׃F#ׄF$-@߼߰߿߲߱gpߙ (% L(! ߼߰߿߲߱gp׳וױײװ@F5Bׯp׮׭8ߙה׬0 F4B"߭`߃`-Z$ߙ (% LׂF"ׁF!#`߼߰߿߲߱gpߙ (% L׃F#ׄF$,`߼߰߿߲߱gpߙ (% L ׄF$ׁF!!-0߼߰߿߲߱gpߙ (% L(! ߼߰߿߲߱gp׳וױײװ0F5Bׯ`׮׭8ߙה׬0 F4B"߭`߃`-G4$ ߙ (% L ׂF"ׁF!#`߼߰߿߲߱gpߙ (% L(,߼߰߿߲߱gpאׯױF0{׮׭8׬0ߙגװ F2{"ߣߍ#-- 4$ߙ (% L ׂF"ׁF!-x߼߰߿߲߱gpߙ (% L(! ߼߰߿߲߱gpאׯױF0{׮x׭8׬0ߙגװ F2{"߭`߃`-4$ ߙ (% L ׂF"ׁF!#`h߼߰߿߲߱gpߙ (% L(,߼߰߿߲߱gpאׯױF0{׮h׭8׬0ߙגװ F2{"ߣߍ#-- b$ ߙ (% LׂF"ׁF!-X߼߰߿߲߱gpߙ (% L׃F#ׄF$!  ߼߰߿߲߱gpߙ (% L ׄF$ׁF!!#`߼߰߿߲߱gpߙ (% L(,߼߰߿߲߱gpA@ׂF"2E$%׭8׬0גױ׳F2Bװׯ ׮Xߙהײ F4B"ߣߍ#-E- 7$  (%ߙSL  HׂF"ׁF!-P߼߰߿߲߱gpߙ (% L(! ߼߰߿߲߱gpבװײׯPF1׮H׭8׬0ߙדױ F3"߭`߃`- 3$ ߙ (% L ׂF"ׁF!#`8߼߰߿߲߱gpߙ (% L(,߼߰߿߲߱gp׏׮F/sװ׭8׬@ߙבׯ F1s"ߣߍ#-- 3$ ߙ (% L ׂF"ׁF!-(߼߰߿߲߱gpߙ (% L(! ߼߰߿߲߱gp׏׮F/sװ׭(׬@ߙבׯ F1s"߭`߃`-3$ ߙ (% L ׂF"ׁF!#`߼߰߿߲߱gpߙ (% L(,߼߰߿߲߱gp׏׮F/sװ׭׬@ߙבׯ F1s"ߣߍ#-q- 3$ߙ (% L ׂF"ׁF!-߼߰߿߲߱gpߙ (% L(! ߼߰߿߲߱gp׏׮F/sװ׭׬@ߙבׯ F1s"߭`߃`-=3$ ߙ (% L ׂF"ׁF!#`߼߰߿߲߱gpߙ (% L(,߼߰߿߲߱gp׏׮F/sװ׭׬@ߙבׯ F1s"ߣߍ#- - 4$ߙ (% L ׂF"ׁF!-߼߰߿߲߱gpߙ (% L(! ߼߰߿߲߱gpאׯױF0{׮M׬@ߙגװ F2{"߭`߃`- $ߙ (% L #`߼߰߿߲߱gp׎׭F.kBׯ׬@ߙא׮ F0kB"ߡhߌh-3$ ߙ (% L ׂF"ׁF!,߼߰߿߲߱gpߙ (% L(-߼߰߿߲߱gp׏׮F/sװ׭׬@ߙבׯ F1s"߬߁l-a $ߙ (% L ! ߼߰߿߲߱gp׎׭F.kBׯ׬@ߙא׮ F0kB"߭`߃`-^ $ߙ (% L #`߼߰߿߲߱gp׎׭F.kBׯ׬@ߙא׮ F0kB"ߡhߌh-=$ (%ߙOL( ׅF%B,׀F )B߼߰߿߲߱gpׂA`F"2E- (%ߙL$  ׃F#ׄF$! ߼߰߿߲߱gpߙ (% L אF0#ׁ`F!߼߰߿߲߱gpץ`עPצXסHMߙ (% L@׃F#ׄF$,߼߰߿߲߱gpߙ (% LHׄF$ׁF!!-߼߰߿߲߱gpߙ (% LPׅF%B!ׁ F!)B߼߰߿߲߱gpߙ (% LX׆F&#ׁץ`F!1߼߰߿߲߱gpסhװp׭8׬0׳ײױׯ׮עߤףߙ  "ߡhߌh-U$ AF ILB`׃F a F#2D$D% E0% ߙ  (%אF0,׀F ߼߰߿߲߱gpߙ (% L ׅF%Bߥߤ ׆-ߢF&)Bצ߼߰߿߲߱gpGPF 9@HD(8G@ߨנקצxץH׭8׬0׳ײF ,FߙF 48% 0%"߬߁l-U@Lc˰?#x       $ * 0 6 < B F L R X ^ b h n r x ~                           !   #  $% ( . 4' 8 >) B H+ L R X ^ d j p v- z  /  1  3 5  7 9 ;  =  ?    A  C PT t \   h 8   "$0&(*,. 024D68:4<><@pBD\    HL \hp    08h x  4T X   ,4d   @ x   Lh l   < @t   L      P       ( ` x |     0 H L        P ` h      0 8 h  !   8 p#  % H X` '  Pd) h + $ 8Dl  4 HP     ,-  D Xh/ $ \p1 t 3 ,5 \ 7 9 ; L =  ?  T dl  0PA T C ?(uаxinv_init.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW inv_init.c -o /ecs/hdfeos/obj/sgi64//inv_init.o!inv_init$(QI /ecs/formal/TOOLKIT/src/GCT/freewareinv_init.c * !}   ,  $  $$* $ z  $o, $, $, $ ,Ao, $, $, $ ,Au, $ (=u, $ (=u, $ (=k,$,$,$$$Mu( $ (Au, $ (9u, $ (9u, $ (9u, $ (9u, $ (9t, $ )= y $8u, $ (9 y$8 y$8)\  $ 4  $$   0  $,  $$  $(  g{~u( $4 ~I y$8 y$8| y $8||$ y $8 y $8p,$,~,A % B .: ; 9 ? @ @ @ @A0$ CBCD@EC8$+inv_init^0H8 GFH E  E  ??? !#?%')+- / 13579;=?AC?@ 6* $ $*0&(0p!' B )X.c 1 0mp ?P{p?hp@^YpE'pE`pF>@pF~3 F  F  FP  G8  GX%p Ghalberfor.o/ 877725097 467 20 100664 7508 ` ELF @@ '/7=CJR[elt}&.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataalberforintp_errortsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lonsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//alberfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF `g`PHF 8F vF@XF/p@<$!!-ׂF EF ~F"<0@E8߅ߙ$(-߄$ -$߼X׸@߿P׹8׺HgF hF#ׂF#F F $0-ߙ$(- ׮פߙ׌F #F (F Fߙ׮׭ ׌F F $ߙ$0- (-ߙ׮׭ ׌F  ߙ׮׭ ׌F 0F $ߙ$0- (-ߙ׮׭ ׌F8ȁׁF F"<צE ץF&2ק F'9ס0F%AF'AF!9ק(F&2F%:BF'F(J@F*JF R׈F*BF'B(߄ߙ$ - ߙ׍ ׌ߙF  F Fߙ׌0׸@ ׹8ߙ F ߙ׍@׌8 ׺H߿P%߼XgF h$g(-F gF k(% 0<$!!-ߙ8$ 0-ߙ׮׭ ׌ׁ(F!׀F"F מF ׌0ߙF, F!ן(F ߙ F F>B׀8ߙF!F  F>׃ %F$ׂ@߼0׾F#߾8׿߿ ߾(g`=|׽?Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREAd       " & * . 2 6 : > B L P T X \ (,T@\@dhPP4DHPX     , <H Xl     $( 8 <L X \`    ,0 HT?(uаxalberfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW alberfor.c -o /ecs/hdfeos/obj/sgi64//alberfor.o'alberforint(palberfor`r_major r_minor c e3 rh   ns0 (!lon_center 0"false_easting 8#false_northing @-H /ecs/formal/TOOLKIT/src/GCT/freewarealberfor.ĉ! 0qq}-{~~())())!,-~{| ! xx $$ ~~~% B .: ; 9 ? @ @4: ; 9  @ @A0 BA@ A B B A 0 C`A B CB@A8?alberforintalberfor]08hp  /EUfw       @ (Dl:$X* H00 6 j>p! RdP P f q @{p 8Pppm5p6ppp@pG  @ H X  x3p Halberinv.o/ 877725098 467 20 100664 8404 ` ELFH @@ '/7=CJR[elth} ..symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataalberinvintp_errortsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberinvatan2logphi1zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//alberinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF `g`PHF 8F vF@XF/p@<$!!-ׂF EF ~F"<8HE@߅ߙ$(-߄$ -$߼X׸@߿P׹8׺HgF iF$!׃F$F F $0-$ߙ(-  ׮ץߙ׌F +F (F ߙ׮׭ ׌F F $ߙ$0- (-ߙ׮׭ ׌F  ߙ׮׭ ׌F F0F $ߙ$0- (-ߙ׮׭ ׌F8ȁׁF F"<צE ץF&2ק F'9ס0F%AF'AF!9ק(F&2F%:BF'F(J@F*JF R׈F*BF'B0߄ߙ$ - (ߙ׍ ׌ߙF  F Fߙ׌8׸@ ׹8ߙ F ߙ׍H׌@ ׺H߿P%߼Xgg 0@<$!!-ׄ@כ0ׅF$a8׌(F;(>%F-c׆H(EF,1F&0F$'F ׇF F&0F$'F F ׇF F%2EF .FF'3Bߙ F'#ׅF FטׁF8>EEׂ0ׁ(ab׏F/sF.s׍F ߙF.kA$0- F;kC`ߧ כ0߼@߳8׸׹߿0׻׼ gpF;Cߙ׌8 F-c%߼@׸׹׻߳(׼ ߿0`߳8gp=|׽???!TD-!TD-Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREAh       " & * . 2 6 : > B L P T Z ` (,TH\HdhXX4DHPX     0 @L \p     (, < @P \ `d, 8@DX` pt| ,0DPX | ?(uаxalberinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW alberinv.c -o /ecs/hdfeos/obj/sgi64//alberinv.o+alberinvint(talberinv`r_major r_minor  c !e3 "es  #rh ($ns0 0%lon_center 8&false_easting @'false_northing HH /ecs/formal/TOOLKIT/src/GCT/freewarealberinv.cʺ- 4qq}-{}~~())())!,-~{| !  u  r    r!H1$   ~4 !~% B .: ; 9 ? @ @4: ; 9  @ @A0 BA@ A B B A @h ApA A A@B AHL C9E 8?alberinvintalberinv]08hp  /EUfw       @ @DB$x* hP00 h86 r>p! hP P f q P{p Pp`pVp6pp@pG P `@     3p Xalconfor.o/ 877725099 467 20 100664 8260 ` ELF @@  ,049AHPW^floz~.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodataalconforintsinpowatantsincosptitleradius2cenloncenlatoffsetpalconforadjust_lontan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//alconfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$g$<$$-H׀ߙׁ ׂ(׃0ׄ8ׅ@׆HׇP׈X׉`׊h׋p(׏ ׎׍F s@߁"-+h*`)X(P'H&@%0$(# "! ׎F.׏xF.{ߙF/s׍ F.cߙ׌ F,׌$0$8F,$(-0-ߙ׍(- F-cߙ߄$ -ߙ׍ ׌ߙ ׌ߙ ׌ߙ׍( ׌ ߿%߼g0gHP%0F nFX<$!!-ߙ׀@ F cF $ߙ$0- (-ߙ F ׍@F-׏F/kB׏xF.{ߙF/s F.c׌ߙF,׍8 F-cߙ׬8׹0 F c׌F c$$0-ߙ׍(- F-cׁ8׭׏0F!h׬F/aנF F$׃xF#׎F"sF/kF!cF {$ߦH$߈F/cF-sB@-߿@߇HF.c׮(F.kBH-F0GE@8F c F kF-jF,`BF-j$ H-F!ZF RF%RBF&B* F'J@F YF%X/H-F8F'1GF IFF 9F @$(-U%F R( ק(F.8BF'aF,aF-iף F/F#hF&!F !F%!F!F'F !F 1F$ׄF&F$F$ׁ ׀(F#@%߼XF"߾Pg?FR5?īDR9#?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO??īDR@Sni]ڇ@!TD-??!TD-ALASKA CONFORMALR       $ ( 2 6 : > B F J |(, $(, 048<@DHLPTX\`dhlpx   $ 8 <DH PT \` dl     , @T Xhp?(uаx%alconfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW alconfor.c -o /ecs/hdfeos/obj/sgi64//alconfor.o0alconforint0(ialconforX!r_major "r_minor #lon_center $lat_center %false_easting  &false_northing ('acoef (bcoef 8)sin_p26 0*cos_p26 8+e @, n H"H /ecs/formal/TOOLKIT/src/GCT/freewarealconfor.cς( qz    tmq|   s 9~~~   $$Y~~  q}}u| ~x t ~~~w}pp |p~~% B .: ; 9 ? @ @4: ; 9  @ @A( B0A@B@l ABB BF@ @98?-alconforintalconfor]08`h .D]v#       @ IY($0* P0 p50 ; Cp! RU 8 k Hv 8@p xPp-p*p6pUp@p5G  @ @  $ 08p @@alconinv.o/ 877725100 467 20 100664 9588 ` ELF @@  ,049AHPW^fow}(.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodataalconinvintsinpowatantsincosptitleradius2cenloncenlatoffsetpalconinvp_errorasinztanatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//alconinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$g$<$$-H׀ߙׁ ׂ(׃0ׄ8ׅ@׆HׇP׈X׉`׊h׋p(׏ ׎׍F s@߁"-+h*`)X(P'H&@%0$(# "! ׎F.׏xF.{ߙF/s׍ F.cߙ׌ F,׌$0$8F,$(-0-ߙ׍(- F-cߙ߄$ -ߙ׍ ׌ߙ ׌ߙ ׌ߙ׍( ׌ ߿%߼g0gPH< %k+-מ F>g׀F @ן(F?oF pצקx%߉߈H$ *H-D)-F38`8F6$ 2 `-DPF6F!50X$ FF?AF HF"sF!JBF-sF. F.pF sF.J@F"RF JGF*JCF#BF BF*B$AP-F()DF9N@߅ߙ$(-߄$ -$߼߳׸P׹`׺X׼8߿p׾H׿@gF HF @EF!F <EF F9F8F F ߙמל F>F $ߙ$0- (-F F:>ׁEa%׃߼׸P׹`׺X׼8׾H߳x׿@߿pc߳g׮F8s׍8F.kBF?kC׌0׮F.chߙ ( F-c0׍מ@׌ߙF-BF,F % F-cF ߙ F F>׎xF.{ߙF/sF F F.cߙ F?F ׅF%1$F;1-* F&߅ߙ$(-߄$ -$߼߳ߵh׸P׹`׺X׻(׼8׽ ߿p׾H׿@gF 0F <Eߙߧx׮0׍8F.kB׎0F8sׯF/kB׬F,s׽ ߙߵhF9c F.kAߙ׌׻( F c%߼`߳׸P׹`׺X׼8߿p׾H׿@g?FR5?īDR9#?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO??īDR@Sni]ڇ@!TD-=|׽??!TD-ALASKA CONFORMALToo many iterations in inversealcon-invj       $ ( 4 : > D H L P T X ^ b |(,8888 $(, 048<@DHLPTX\`dhlpx   $ 8 <DH PT \` dl4 < @DX t  $ 4< P `    4 8?(uаx%alconinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW alconinv.c -o /ecs/hdfeos/obj/sgi64//alconinv.o0alconinvint0(ialconinv|X!r_major "r_minor #lon_center $lat_center %false_easting  &false_northing ('acoef (bcoef 8)sin_p26 0*cos_p26 8+e @, n HH /ecs/formal/TOOLKIT/src/GCT/freewarealconinv.cЂ2 qz    ulr{   t 9~~~  ) S-f  ~  ~{~ y {zz z}tmm w w ~|,S- %Q~  }~,x | % B .: ; 9 ? @ @4: ; 9  @ @A( B0A@BH AA AHD@DK AF D  BA8|?-alconinvintalconinv]08`h .D]v#       @ XI<$|* P0 p50 ; BCp!jU pP kv pp 0Pp-pp46pjp@pRG  @ @ 0 $ P8p `Hazimfor.o/ 877725101 467 20 100664 6756 ` ELF @@  (/6@GOWbf lt|.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataazimforinttsincosptitleradiuscenlonmeroriginoffsetpazimforadjust_loncos.lit8sprintfp_erroracossin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//azimfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$(g$<$&-$0F s ߙ(-0- (-ߙ߄$ -ߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g@g F n<$!!-ߙ׀ F cF FpF $ߙ$0- (-ߙ׬ ׻׌0צF,3ׁ(F FF cנF!F c׃F `F#׃F F#<EׂhF"`<ׁxE#׃ׄ F$$ -ߙ߅$D& (-$ -ߙ߅$ (-߿${߼gߙx hߙF  `ס`F ߙ ׬pסׄF!!ףxF# F ׂ F#߿ס׀(׃0F!סF!סhF!F F$%ׂߥ߿F#߼gAZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-forL       & * . 2 6 < @ D (048<@ T h pt |      ,DPdp     ,@DhX\  PP=|׽?@ !TD-?(uаxazimfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW azimfor.c -o /ecs/hdfeos/obj/sgi64//azimfor.o(azimforint(JazimforXr_major lon_center lat_origin !false_northing "false_easting  #sin_p12 ($cos_p12 0G /ecs/formal/TOOLKIT/src/GCT/freewareazimfor.c˺ . t z~    ,(A8( !@5~~~% B .: ; 9 ? @ @4: ; 9  @ @A( C@A@B8 AC BF@ h @;8=azimforintazimfor\08`h  *C\y      @ DT/$4*80Y8p! LJ h` Xpj u0 ({p  Pp0pp6pp@pE 0 @@  p  3p 8aziminv.o/ 877725102 467 20 100664 7188 ` ELF @@  (/6@GOW ]ekq|.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataaziminvinttsincosptitleradiuscenlonmeroriginoffsetpaziminv.lit8p_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//aziminv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$(g$<$&-$0F s ߙ(-0- (-ߙ߄$ -ߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g@gP<$!!-׀0י F hF9fA(F  F9BF @F Dׁ׀F!BF9<8@EH߅ߙ$(-߄$ -$}߿8߼P׹0gF $ߙ0-$ (-׃F ȅߡHF#>ׁE !ׄ߼P׹0ߢ@߿8gD%ׯ(׮F/s׍0F.kBF9kC׌(׮F.cߙ F-cׅ׃F (EF#@ׂF EF">ߣ@E'`ׄF% >Eߙ׭(׬  F kGߙ׌ F c%߼P׹0߿8ߤHgߙ׬ ׭( F cߙ׌ F c%߼P׹0߿8ߥHgߙ F ׂ(F ץF )AׁF (F!<E ף ׄF F$<E%߿8߼P׹0gׯ ׮F/sF%B׌0F.cߙ ߙ׬ ׭ߙ׌ F c߿H%߿8߼P׹0gAZIMUTHAL EQUIDISTANTInput data errorazim-inv`       & , 2 6 : @ D J P T X (048<@ T h pt |    P d t        $P d h      , 0X\  00 $@ !TD-=|׽!TD-?(uаxaziminv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW aziminv.c -o /ecs/hdfeos/obj/sgi64//aziminv.o%aziminvint(Eaziminv\Xr_major lon_center lat_origin false_northing false_easting   sin_p12 (!cos_p12 0G /ecs/formal/TOOLKIT/src/GCT/freewareaziminv.c҂ + v z~   !-,)=~~0&0&,4<1~% B .: ; 9 ? @ @4: ; 9  @ @A( C@A@Bh AAE N@ e @9C@ i @9B@ O @9B@ 8\=aziminvintaziminv\08`h  *C\y     @ D<*f$\* p80 p98p! `J  ` 0j0u0 {p @Ppp[p^6pp\@pE  @ 8 (  H3p X8cproj.o/ 877725104 467 20 100664 17284 ` ELF=8 @@hh\ #((.48> FNTY]cim s |{ x x0  @D < 0 hx,4 0@S.symtab.shstrtab.strtab.comment.text.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.rodata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.texttsincossincosasinz.lit8asinmsfnzqsfnzlogphi1z.rodatap_errorphi2zatanpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zone.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//cproj.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=ong %<$!!-ߙF g F cߙF  ߼߾׿߿ߢ gP@g<$!!-ׅF `F (EF ߼h߲`ߵXF ׸(׹0׺8׻H׼@׽߿p׾ ׿g$A-UF ߲P$߅߄ߙ(-$ -׀߼h׸(׹0׺8׻H׼@׽׾ ׿$U߿p߲`ߵXggHP8(0F n F fF k@X<$!!-ߙך0 י F מן(ם$%F=BF<ߙ F F8F.ߙF>sF F F.cߙ F;F F F<F EF?>EF ߼XߵH߷P׸ ׹׺׻F ׼8׽߿@׾(׿0g$-ߙ߅ߙ$(-߄$ -߼X߷P׸ F ׹׺׻׼8׽׾(׿0$߿@ߵHgg`@P$H%X %0F F F vF nFF f8F f(`<$!!-׀ מ8ߙ F ߙF F F>ߙ׌@F  F,F;FEF8߼`ߵH߷P߾XF ׸8׹׺׻׼ ׽߿@׾(׿0gמ8$-׀ ߅ߙ$(-߄$ -׀H߼`߷P׸8׹׺׻׼ ׽׾(׿0$߿@ߵH߾XggpPX`$$`%<$!!-ן hF nF?pBׂ8xF gF"x׃@08F#@(F?߰ מH ߙ F ߙF F F F<F9!F$F !F !F?Bߙ F ׌8F,ߙF  ׌@F,ߙF F F;Bװ@F:ׯ8F/׮0F.F0kAF/k@ߙF.kAF  ߙF F׬ ׽ߙ ׬F:רF(Aש F(IBקF:F'!F%!AF&)BF?F&)CF=!צףF&ɂסF#BףHF#F&F(F!ס(F(AF?BF#F F?BF?F"9F>1F!9F)1F(!F 9F&!F')@F%!F$ׅ(F !F% >E׀P߼߰߱ߴߵ׸p׹P׺X׻h׼x׽`߿׾׿g $"-5ߙ߅ߙ$(-߄$ -׀8߼߰߱ߴߵ׸p׹P׺X׻h׼x׽`߿׾׿g <$B"- PF `EE߼0F9F F D"(BP@ F:Cߙ F DFF:׀-F#F )F ! F!!F; <EFz򚼯H?@=|׽?!TD-@@@?PbM@È@YA.@@@Lc˰@NB !T!@!TD-AC!S~=@ !TD-????????UUUUUU@fConvergence errorphi1z-convphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv?(uаxcproj.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW cproj.c -o /ecs/hdfeos/obj/sgi64//cproj.o2tsincosh(:asinz hhKmsfnzYqsfnzmphi1zphi2zXphi3zphi4z pakcz |P'pakr2dm | xCtsfnz xTsign x Yadjust_lon @e0fn @ @e1fn he2fn e3fn e4fn0xmlfnx,calc_utm_zone,`X`E /ecs/formal/TOOLKIT/src/GCT/freewarecproj.cԂ] 2/-# $!~ | }}      5 ~  ~    w  -6  " x12z {x -6  s   J  ~ $ zQ~ |}}*~~~~k 4 *~  L"3~(9%%},i D<0{5< !" % B .: ; 9 ? @ @.: ;9 ? @ @ @ @A8h APBB AF@ L @?(h\ A AI@ ( @ APAHJ@R @;BPH AAA ABB B AF@RCB CH AAAA AA A A B CA@AEH AAA@ A B B BBBBBB BAP AAAAAA@ A B BCA EDI C  | 0 x A@AL@N @ x0 8  APA@ABBA A AA @D  <  0  0h A0AH@N @8x AD BBF@ \ @8? ,4 8`<tsincosasinzmsfnz6qsfnz]phi1zphi2zphi3zphi4zpakcz pakr2dmItsfnzqsignadjust_lone0fne1fne2fn6e3fn\e4fnmlfncalc_utm_zoneZ0#8p#x###`#h##X#`####H#Pp#x### #(`#h "!##&.#EMU#lt|#####19A#Yai#####&.#DLT#jrz###    @ H>g$`*p!< @RX@] @g0&m'up (Pp(p,hp0?p0Qp4@p5D 6X 6h 8  <  <-p <@eqconfor.o/ 877725104 467 20 100664 8868 ` ELF @@ <',16;CINV]enx< .A.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataeqconforinte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconforadjust_lonsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//eqconfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hg`F"P<$!!-ׁF"AF (F ~F8F v0F H`XߙF H @ߙ׌H ߙ׌H (ߙ׌H 0F 8$ߙ0-$ (- ߙ׮׭ ׌@F F ׏8ߙ׎0׍( ׌ ߥ=F F9ׄF F$<E@߅ߙ$(-߄$ -$Q߼P׸8׹(׺0߿H׻ ׼gF $ߙ$0- (-ߙ׮׭ ׌@F F ׏8ߙ׎0׍( ׌ F9ׁF F">EF<AץF%AF!)Cץ@ץF%كF ׏8׎0׍(ߙF<1׌ h pלpF כFB׀`ߙF!F  F>ׂXׄx߼ F$߾׾׿F#ߢ(߿gPB%?=|׽Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONIC       $ * . 2 6 : > B F J N R V Z ^ b f p t x | $0,048X@\@@@dhDHLPTX\ dlp t|     ( t      (,4<HT h ltx          pt x|   ?(uаx[eqconfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW eqconfor.c -o /ecs/hdfeos/obj/sgi64//eqconfor.o+eqconforint<(eqconfor<hr_major r_minor lon_center lat_origin e0  e1 (e2 0e3 8 e @ es H!ml0 P"false_northing X#false_easting `$ns h%g p&rh x5H /ecs/formal/TOOLKIT/src/GCT/freewareeqconfor.cՂ# qqm ~~((|),5((((%{   x    $ !~~% B .: ; 9 ? @ @4: ; 9  @ @A8< BB GB BB@ `F@< BPA BB B@Ai @>?8?ceqconforinteqconfor]08px  /E^w '8HY       @` DU9$* 00 6 R>p! bP  f  q p{p HPpcp=p86pnp@p^G  @  x  3p peqconinv.o/ 877725105 467 20 100664 9044 ` ELF @@ <',16;CINV]enx<8"2E.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataeqconinvinte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconinvatan2phi3zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//eqconinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hg`F"P<$!!-ׁF"AF (F ~F8F v0F H`XߙF H @ߙ׌H ߙ׌H (ߙ׌H 0F 8$ߙ0-$ (- ߙ׮׭ ׌@F F ׏8ߙ׎0׍( ׌ ߥ=F F9ׄF F$<E@߅ߙ$(-߄$ -$Q߼P׸8׹(׺0߿H׻ ׼gF $ߙ$0- (-ߙ׮׭ ׌@F F ׏8ߙ׎0׍( ׌ F9ׁF F">EF<AץF%AF!)Cץ@ץF%كF ׏8׎0׍(ߙF<1׌ h pלpF כF%F-cׅXEF,)@F%(F$'F (׆F F%(F$'F F (׆F F'20EF ?F&+Bߙ F&#F בF1Cא8׏0׎(׍ $ ߙ׌pH- F1c׍hF-Cߙ׌׾  F-c߾ߧ׿(߿0߾߼g`%߼g`?=|׽Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONIC       $ * . 2 6 : > B F J N R V Z ^ b f p t x $0,048X@\@@@LPDHLPTX\ dlp t|     ( t      (,4<HT h ltx          X\`l|  $ (?(uаx[eqconinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW eqconinv.c -o /ecs/hdfeos/obj/sgi64//eqconinv.o+eqconinvint<(eqconinv<thr_major r_minor lon_center lat_origin e0  e1 (e2 0e3 8 e @ es H!ml0 P"false_northing X#false_easting `$ns h%g p&rh x^H /ecs/formal/TOOLKIT/src/GCT/freewareeqconinv.cւ% qqm ~~((|),5((((%{   x   t ~q !<) % B .: ; 9 ? @ @4: ; 9  @ @A8< BB GB BB@ `F8<8 A`AB H LC?ED@8t?ceqconinvinteqconinv]08px  /E^w '8HY       @` DY=$t* `00 ` 6 R>p! P X f q 8{p Pp(cpfp6p'p@pG X h@  (  H3p Xxequifor.o/ 877725106 467 20 100664 5364 ` ELF @@  '.8?GOZ^ jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//equifor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$g<$&- ߙ߄ -ߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g@g(%F o <$!!-ߙ׀ F cߙF F ׌סׄF! BF F?!ׂ׃ ߼ ߢ(F ߿׿F$߾gPB%EQUIRECTANGULAR.      " & 0   $(, 4@ HL TX `d hp  ?(uаxequifor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW equifor.c -o /ecs/hdfeos/obj/sgi64//equifor.o#equiforint(Aequifor$Xr_major lon_center lat_origin false_northing false_easting  G /ecs/formal/TOOLKIT/src/GCT/freewareequifor.cׂ 5tx    $% B .: ; 9 ? @ @4: ; 9  @ @A( B@A@A8 APBB BF@W @?8$=equiforintequifor\08`h  *C\y     @@ >$t$*(08p!.J `Xk `up  HPp p 7p 6p p @p E 8 H@   X  x-p (equiinv.o/ 877725107 467 20 100664 5732 ` ELF @@  '.8?GO U]alx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataequiinvintptitleradiuscenlonmeroriginoffsetpequiinv.lit8p_errorcosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//equiinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$g<$&- ߙ߄ -ߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g@g <$!!-׀F hׁF!ׁ F!`AׂF F#<E߅ߙ$(-߄$ -߿$߼ gPߙ ׌׮F.׭F.kCߙ׌ F-c߿߿%߼ gPEQUIRECTANGULARInput data errorequi-inv4      " ( , 0  (( $(, 4@ HL TX `d hp   ( ,?!TD-?(uаxequiinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW equiinv.c -o /ecs/hdfeos/obj/sgi64//equiinv.o#equiinvint(BequiinvTXr_major lon_center lat_origin false_northing false_easting  G /ecs/formal/TOOLKIT/src/GCT/freewareequiinv.c؂ 6s x  &,!@% B .: ; 9 ? @ @4: ; 9  @ @A( B@A@A( APAM@8T=equiinvintequiinv\08`h  *C\y    @p D $T*(018p!A4J x`k u0 x{p  Pp p op 6p Rp @pE ` p@    3p (gnomfor.o/ 877725108 467 20 100664 6276 ` ELF @@  (/6=DLhT_c iqu .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatagnomforinttsincosptitleradiuscenloncenlatoffsetpgnomforadjust_loncos.lit8p_errorsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//gnomfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$gF gF s$ <$&-$ 0(ߙ(-0- (-ߙ߄$ -ߙ F ߙ׬ ׿ߙ F ߙ׍0׌( ׿߿%߼ g`gPHF nX<$!!-ߙ׀@ F c8F F F $ߙ$0- (-ߙ׬8 ׻ץׁ ׂ0F!)BסF"BF )BF!)@׃F#(>(EF ߅ߙ$(-߄$ -߿@$߼XgׂF%ߙ׬  עׁF"Bפ0F$ F !׃(F$ߡH#ע׀ׄ F"עF"!ע(F"F !F!!׃0F$߿P߿@%߼XgGNOMONICPoint projects into infinitygnomfor-conv@       & * . 2 8 $<@DHLP d x    ( <@\t   ,0hl  p0x0??(uаxgnomfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW gnomfor.c -o /ecs/hdfeos/obj/sgi64//gnomfor.o+gnomforint(Hgnomfor0X!lon_center "lat_center #R $sin_p13 %cos_p13  &false_easting ('false_northing 0G /ecs/formal/TOOLKIT/src/GCT/freewaregnomfor.cق 1xx     ,(A~,!D% B .: ; 9 ? @ @4: ; 9  @ @A( C`B D@ B0h AC BF@80=gnomforintgnomfor\08`h  -FVl      @ D$C$0*(80(=8p!e@J ` hj 8u0 ({p  8Pp pMp 6pCp@pE X h@    3p 0gnominv.o/ 877725109 467 20 100664 6852 ` ELF8 @@  (/6=DLpTY _ekvz.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatagnominvinttsincosptitleradiuscenloncenlatoffsetpgnominvatan.lit8asinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//gnominv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$gF gF s$ <$&-$ 0(ߙ(-0- (-ߙ߄$ -ߙ F ߙ׬ ׿ߙ F ߙ׍0׌( ׿߿%߼ g`g@<$!!-׀0 כ(F hF;fF F;F F 8%0%ߙ׌( F,F $ߙ$0- (-׃F ؅F#>ׁE %ׄ߼@߰0׻ ߿(߾8gpׯ׮F/s׍ F.kBF;kC׌׮F.cߙ F-cׅ׃F (EF#@ׂF EF">E)ׄF% >Eߙ׭׬ F kGߙ׌ F c%߼@߰0߿(߾8׻ gpߙ׬׭ F cߙ׌ F c%߼@߰0߿(߾8׻ gpߙ F ׂF צF 1ׁF 0F!<EץׄF (F$<E%߼@߰0߿(߾8׻ gp׮F%sF&Bߙ׌  F.cߙ׌ F c%߼@߰0߿(߾8׻ gpGNOMONICZ       & * 0 4 8 > B H N R $<@DHLP d x   4 H Td      8 L P     ,0hl  =|׽!TD-?(uаxgnominv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW gnominv.c -o /ecs/hdfeos/obj/sgi64//gnominv.o+gnominvint(Hgnominv8X!lon_center "lat_center #R $sin_p13 %cos_p13  &false_easting ('false_northing 0G /ecs/formal/TOOLKIT/src/GCT/freewaregnominv.cۂ 1xx    u !~~= ~00,4, }% B .: ; 9 ? @ @4: ; 9  @ @A( C`B D@ B0p ApAE JBD@ 88=gnominvintgnominv\08`h  -FVl      @ D<$`$8* H80 H 8p! QZJ ` j pu0{p Pphp- p96pop@p?E  @    3p @goodfor.o/ 877725110 467 20 100664 7796 ` ELF @@  +29(ALPT\amy.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodatagoodforintptitleradiusgoodforadjust_loncossinp_errorsign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//goodfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄$߁׀ׂ"-  F `ׄ "0" F"`ׅ$P$@F$a׃%X%HF%aBׁ(#8#(F#` -!!F!`B%$%$#"#"!x!p h `ߙ F %߿߼׿g0g(HX<$!!-׀08 F->F n@EF `ׁ8F!>E$(%$ $ $ $$R$ׂ@F8>EׄH׃8F#>E$$$(%$(%$ $ $ =$F8 >E"ׁׄF!>EׂP$ $ $ $,(%F">E׃X$ $ $   (%F#>E$ $ $ @(%$ `(%$ $F$>EׁP $F!>EׂX$F">E$ $ $ $ $ $$$ ߙ ߙߙߙߙTߙ߃$d-C-LP F,ߙF  F ׃F:F ߢPA`F8F"@ߡ@߿8!q߿Hߙ߄$ -d-lP F,0F FߙF F F כ`לh%F;ߙ F ߙF  F F9ЀׅpF;F%@F F!F EF<<EF9@*2 $߅ߙ$(-߄$ -$߼Xߴ0׸ ׹׺(߿H׻׼g-׃xF F$F<<׻ߴ0E׼ל@׼ךF:΂ߙ F ׁׂF"BעF"BF BߣP``F ߙF!ߢ@׹ @ߙF  F DׄFaF$ׂF"BF!!׃F$ߤ8߿H%߼X׸ ׺(gWJ<_]R8-@@5AI?WJM?R8-h?iyWJMiyWJM?WJU@ !TD-=|׽??!TD-??d)?f;? _GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forwardF     $ ( , 0 6 : > ,04  LT@@   $( 8<P`p 4hx|\t       H     Llx   ?(uаxRgoodfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW goodfor.c -o /ecs/hdfeos/obj/sgi64//goodfor.o'goodforint0(Ugoodfor X!R "lon_center #feast `G /ecs/formal/TOOLKIT/src/GCT/freewaregoodfor.c܂/ ["c {~x~u~p~ e q  u    -}   % y  $% "   % " ~~~~~ ( - |A{ , x88% B .: ; 9 ? @ @4: ; 9  @ @A( B0AB@AH( AA A@AF o9[K AA c9;<8 =Zgoodforintgoodfor\08`h  #<P    @p I $ * 0 50 ; xNCp! FU  k v `p PPpZp p6p;p@p#E h x@  h $ 8p goodinv.o/ 877725111 467 20 100664 9524 ` ELFp @@  +29 $AFNR]bfr~.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodatagoodinvintptitleradiusgoodinvsignp_errorcosadjust_lonasinsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//goodinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄$߁׀ׂ"-  F `ׄ"0" F"`ׅ $P$@F$a׃%X%HF%aBׁ(#8#(F#` -!!F!`B%$%$#"#"!x!p h `ߙ F %߿߼׿g0gH<$!!-׀0יF (%@(F nPF->% EF f׆8F&BF!>E$ %$ @%׈׉P$ $ $$Tׅ@ׅ@F:(>E׃X׆8F&ȂF">E$$$%$%׈׉P$ =$ F#F:>E׈׈F(F >E׉P׉P$ $  %F)BF!>EׂH$ `%F"ȂF">E$ $$ $ ׆8F(F#>E׉P׉P$F)F >EׁH$F!BF!>E$ $ $ $ ׆8$$$ ߁0$"-0-` F"Q F9Q6 F9QvF9$PvF9$ <ߙF9׃`F aF$<E߅ߙ$(-߄$ -$߼H߱P߶@׸ ߿(׹׺g׀pF ׇhF F 8<Eߙ 8F9BF-Cߧ8ߙ F-c$$$ $ $ ׅ@׆8ׇh׈׉P ךdיx80 F ׀יF D`Fc!F c׀F F:cF cׁF `F"<E $߼H߱P߶@׸ ߿(׹׺gߙ ߙF  ׂF"ȂF F"ߡ8!F"@ךF:<E !$߼H߱P߶@׸ ߿(׹׺g׍׬F-cߙ ׬F,יxF9cׁF `F"<E $߼H߱P߶@׸ ߿(׹׺gߙ $$$ $ $ ׅ@׆8׈ߢ0׉Pׇh@F%<EF8(<$F$F'<E F F8(<E $F9 @F'<EF "$F: <E$F$0<E $߼H߱P߶@׸ ߿(׹׺g$F: <E$F$0<E $߼H߱P߶@׸ ߿(׹׺gV$F& <E׃F$<E $߼H߱P߶@׸ ߿(׹׺gׅ$F& <E$F$(<E $߼H߱P߶@׸ ߿(׹׺g6$F: <E$F$@<E $߼H߱P߶@׸ ߿(׹׺gv$$F( <E$F$H<E $$߼H߱P߶@׸ ߿(׹׺g$v$$F: <E$F$@<E $$߼H߱P߶@׸ ߿(׹׺g$$$F( <E$F$H<E $$߼H߱P߶@׸ ߿(׹׺g$6$ $F) <E׀HF$<E $ $߼H߱P߶@׸ ߿(׹׺g$ V$ ׁH$F! <E$F$(<E $ $߼H߱P߶@׸ ߿(׹׺g$ v$ $F) <EׂHF$<E $ $߼H߱P߶@׸ ߿(׹׺g$ ׃H$F# <E$F$(<E %$߼H߱P߶@׸ ߿(׹׺g%߼H߱P߶@׸ ߿(׹׺gWJ<_]R8-@?WJM@5AI?R8-h?iyWJM?WJUWJMiy?!TD-=|׽!TD-@ !TD- !TG?? _?f;?d)@@ !TGGOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverse\     " & , 0 6 < ,04  H8P8X \ $( 8<P`p Hpt8l( 0L    (,DT   $,h  ` ?(uаxRgoodinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW goodinv.c -o /ecs/hdfeos/obj/sgi64//goodinv.o&goodinvint0(Tgoodinv X R !lon_center "feast `G /ecs/formal/TOOLKIT/src/GCT/freewaregoodinv.c݂8 ["c {~x~u~p~ e q  w w " 5} " % }! $' $ }! ' $ 9~o, } } YDA4@,`04$4$4444$4$8$8$888(888$4 % B .: ; 9 ? @ @4: ; 9  @ @A( B0AB@A8 $ AA AHA@ ABC 8 =Zgoodinvintgoodinv\08`h  #<P     @ I!$ *050;FCp!\U P kPv P@p PpZp:p6pp@pE   0@ p  $ @8p P gvnspfor.o/ 877725112 467 20 100664 6644 ` ELFh @@ '/6=DKRZxcnrz~.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatagvnspforinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspforadjust_loncosp_errorsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//gvnspfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hF x$ gF gF { $(<$&-$(80ׁ(-ߙF!0-(- ߙ߄$ -ߙ F ׬׿ߙ߅$ (-ߙ F ߙ׬ ׿ߙ׍8 ׌0߿ %߼(g`gPHF nX<$!!-ߙ׀@ F c8F F F $ߙ$0- (-ߙ׬8 ׻ׅ׃F%צׁ(ׂ 0F!1סF"BF 1F!1F#0<(EF ߅ߙ$(-߄$ -߿@$߼XgׄF$)F&)AF%!ߙ׬  ףׂF#ס0F!BF B׀0F!ߡH פ׃ ׁ(F$פF$Bפ(F$F#AF"B׀8F!߿P߿@%߼Xg?GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-forD       * . 2 6 < ,DHLPTX` tx   @ T dhtx  $(H48|((  xxXX?(uаxgvnspfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW gvnspfor.c -o /ecs/hdfeos/obj/sgi64//gvnspfor.o.gvnspforint(OgvnspforlX#lon_center $lat_center %R &p 'sin_p15  (cos_p15 ()false_easting 0*false_northing 8H /ecs/formal/TOOLKIT/src/GCT/freewaregvnspfor.cނ 9| w w ~{{     ,(!~1~,!DE% B .: ; 9 ? @ @4: ; 9  @ @A( D`C D@B0x AC BF@8l?gvnspforintgvnspfor]08`h  2K[k       @ D<(d$l*@006>p! DP X f (p 8 {p  XPp pp_6pp%@peG  @     3p 08gvnspinv.o/ 877725113 467 20 100664 7604 ` ELF( @@ '/6=DKRZckqw .symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatagvnspinvinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspinvp_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//gvnspinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hF x$ gF gF { $(<$&-$(80ׁ(-ߙF!0-(- ߙ߄$ -ߙ F ׬׿ߙ߅$ (-ߙ F ߙ׬ ׿ߙ׍8 ׌0߿ %߼(g`g@<$!!-׈ׅ׆F()F&)F'0CF D׀8 כ0F hF;fF F;F F ׀F F <(0E8߅ߙ$(-߄$ -$߿(߼@׻ gpF BF'IF&9F'AF 9F 2F&CF')F)BF(9ߙF ; F $ߙ$0- (-׃F ؅ߡ8F#>ׁE !ׄ߼@׻ ߢ0߿(gpD%ׯ׮F/s׍(F.kBF;kC׌ ׮F.cߙ F-cׅ׃F (EF#@ׂF EF">ߣ0E'`ׄ F% >Eߙ׭׬ F kGߙ׌ F c%߼@׻ ߿(ߤ8gpߙ׬׭ F cߙ׌ F c%߼@׻ ߿(ߥ8gpߙ F ׂ F ץF )AׁF (F!<E ףׄF F$<E%߿(߼@׻ gpׯ׮F/sF%Bߙ׌( F.cߙ׌ F c߿8%߿(߼@׻ gp?=|׽!TD-GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-ford       * 0 4 : > B H L R X \ ,DHLPTX` tx   $,Pp   DP\ hlx    ( 4D\  48|((  lptp|XX?(uаxgvnspinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW gvnspinv.c -o /ecs/hdfeos/obj/sgi64//gvnspinv.o,gvnspinvint(MgvnspinvX!lon_center "lat_center #R $p %sin_p15  &cos_p15 ('false_easting 0(false_northing 8#H /ecs/formal/TOOLKIT/src/GCT/freewaregvnspinv.c" 7| w w ~{{    {!,%=~~0&0&,4$A~% B .: ; 9 ? @ @4: ; 9  @ @A( D`C D@Bh ApAL M@ s @;Cp@ i @;Bp@ O @;Bp@ 8?gvnspinvintgvnspinv]08`h  2K[k       @ DT0$4* @00 (6 8z>p! dP 0 f H ph {p Ppp+p6pp@pG h x@    3p @hamfor.o/ 877725114 467 20 100664 5636 ` ELF @@ &-4<CNR X\ht.symtab.shstrtab.strtab.comment.text.sbss.srdata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.srdatahamforintptitleradiuscenlonoffsetphamforadjust_loncos.lit8sin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//hamfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$%- -ߙ ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g(%F n <$!!-ߙ׀ F c8ߙ0F  F מF>ׂߙF F F F ׁF!F ךׁF!ւߙF  F փߙF F F ׃F#F9F ׂߙF#F ׾8 F:ׄ߼ ߾׹0׺ߢ(F8!߿׸g`D%HAMMER:      " & * . 2 ,0 48@D P ` dl      0 @D `   ??fe>?@?(uаxshamfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW hamfor.c -o /ecs/hdfeos/obj/sgi64//hamfor.o(hamforint(ChamforX!lon_center "R #false_easting $false_northing F /ecs/formal/TOOLKIT/src/GCT/freewarehamfor.cႦ 9t  |{y  %~H0~~% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@AH A`A B B BF@ CBn @89:>8;{hamforinthamfor[08`h (8Tq    @X D$*( 0(8p!/:J p`  j `u0  {p  0Pp {p p 6p p @p C   0@ p 0  P3p ` haminv.o/ 877725115 467 20 100664 5524 ` ELF @@ &-4<C IOZ`lx.symtab.shstrtab.strtab.comment.text.sbss.srdata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.srdatahaminvintptitleradiuscenlonoffsetphaminv.lit8atan2adjust_lonasinz.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//haminv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$%- -ߙ ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g <$!!-׀בׁF F!cF,c׎F1אF.kF0xBF.sF!F.F ׍F-BF1kBF0{ׁF!(F/kA%ߙF.kAF, ׍F-Bߙ׌ F-c׭׬F-c׍F-cߙ F-c߼ ߾ߢ(߿gP@%HAMMER.      " & ,0 48@D P ` dl       $<D    @?@??(uаxshaminv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW haminv.c -o /ecs/hdfeos/obj/sgi64//haminv.o(haminvint(ChaminvtX!lon_center "R #false_easting $false_northing F /ecs/formal/TOOLKIT/src/GCT/freewarehaminv.c₦ 9t  |{y  =~u =~~% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@A8 APA[C@Y @8t;{haminvinthaminv[08`h (8Tq     @X D $t* 08p!.J @` j @`u0 {p  Pp {p p T6p p "@p bC  @    3p (imolwfor.o/ 877725116 467 20 100664 7380 ` ELF @@  ,3:CNRV^jv.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodataimolwforintptitleradiusimolwforadjust_lonsincosp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//imolwfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-׀0ߙF `ׁ8ׇ߄F!`B׃H -$F#`ׅX߁ׄPF%aB"-'׆(F$aׂ@&(׆ F"`%X& ׆$P#H&׆"@!8&׆ 0 &ߙ F %߿߼׿g0gp80 (@XP<$!!-׀`F nF->H%E#F `ׁhF >E ׃xׂpF"<E׃x9(%׃xF >EׁׄF$>E ׁF >EׂF"<E%$#$׃hF >E ׁׄF$<Eׁ$ׁF >E׃ׂF">E ׃F >E $ׄF$<E$$$ߙ߃$d-C-L` F,ߙF F  F לכי%F;ߙ F ߙF F F F8F;F<@F F!F EF9<EF8*2 $߅ߙ$(-߄$ -$-׃F F$׼F9<׻׽E߷8מ`יF9Bߙ F ׁטF!BF>BF Bߢ`@0ߙF!F  ׂF"%߼P߾H׹ F ׺׾(ߣX߿@׸0gb?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^?WJy?f ?f@ !TD-/ !TD-/]yk@5AIտ5A@ !TD-=|׽??!TD-??d)?f;INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward6      " & * . <LX  LTHH(($(, 48DT\lt| 8HL\hx|(H p    8<D PTl ?(uаxWimolwfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW imolwfor.c -o /ecs/hdfeos/obj/sgi64//imolwfor.o'imolwforint0(IimolwforX!R "lon_center #feast 0H /ecs/formal/TOOLKIT/src/GCT/freewareimolwfor.cウ& gswwxzs~zv w x~  n r  2 22  | }~||= { { 44% B .: ; 9 ? @ @4: ; 9  @ @A( B0AB@A` AA A AAAAA A@ BEC  @89:;<=>8?_imolwforintimolwfor]08`h (AU    @X I$* X0 X`50 X; 8XCp! 6U  k hPv  p Pp(_ppJ6pp@@pG  @   $ 8p imolwinv.o/ 877725117 467 20 100664 7364 ` ELF @@  ,3:CHLW[gs.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodataimolwinvintptitleradiusimolwinvasincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//imolwinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-׀0ߙF `ׁ8ׇ߄F!`B׃H -$F#`ׅX߁ׄPF%aB"-'׆(F$aׂ@&(׆ F"`%X& ׆$P#H&׆"@!8&׆ 0 &ߙ F %߿߼׿g0(%g0<$!!-׀`8F->%EF gמׁhF!BF!>Eׂp%F"F">E$$ (@מ׃xF#F#>E׀$F F >E$$ (@׌ߘ$F,--֮0ߙF. F,kߙF  F ׍F-BF kBF-Cߙ֬ F-cלF<ߙߵ@ F ߙF<׍ F-c ׀F <EׁF$<E ׆$߼0߰8߱ߵ(׼߿ ׾׿gp׆$1ׅF& <EׂF$(<E ׂF$<E$F% <E $$߼0߰8߱ߵ(׼߿ ׾׿gp$Q$׃F# <E$F$(<E $$߼0߰8߱ߵ(׼߿ ׾׿gp$q$F% <E׀F$<E $$߼0߰8߱ߵ(׼߿ ׾׿gp$׆F& <EׁF$(<E ׁF$<E$F% <E $$߼0߰8߱ߵ(׼߿ ׾׿gp$1׆F& <E$F$(<E %$߼0߰8߱ߵ(׼߿ ׾׿gp%߼0߰8߱ߵ(׼߿ ׾׿gp?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^f~?+}8k=+}8k=?f~?f;?d)@@ !TD-?WJy?f ]]yk@5AIտ5AINTERRUPTED MOLLWEIDE EQUAL-AREA:      " & <LX  $(, 48DT\lt|  4hl    0 8P`p0`?(uаxWimolwinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW imolwinv.c -o /ecs/hdfeos/obj/sgi64//imolwinv.o%imolwinvint0(EimolwinvXR  lon_center !feast 0H /ecs/formal/TOOLKIT/src/GCT/freewareimolwinv.c䂦! ?gswwxzs~zv w x~  nx $! #   %  ~ ~}<|@/D@>P<@'@<@7<@=P<=??8 % B .: ; 9 ? @ @4: ; 9  @ @A( B0AB@AH BpA AEAC R@ A B @P@ A L 8?_imolwinvintimolwinv]08`h (AU     @X I$* x0 x`50 x; P!Cp! q:U  k 0v p Pp0_ppH6p~p&@pfG  @   $ 8p lamazfor.o/ 877725118 467 20 100664 6420 ` ELF @@ !)07>EMVa gow .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatalamazforinttsincosptitleradiuscenloncenlatoffsetplamazforadjust_lon.lit8sprintfp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//lamazfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$gF gF s$ <$&-$ 0(ߙ(-0- (-ߙ߄$ -ߙ F ߙ׬ ׿ߙ F ߙ׍0׌( ׿߿%߼ g`gPx`F o<$!!-ߙ׀p F chF $ߙ$0- (-׬h$ߙ$0- (-ץ׀ F (סF!סׂF"BF!ׁF!2EׁׁׂF"B$  -ߙ߅$D& (-$  -ߙ߅$ (-$q߿p߼׿`gF!@׀F!F ןF F%פF$ׂ(F#߿ס׀ׄ F!סF!!סF!F !F?!%ߥx׃0߼߿pF$׿`gLAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward@       & * . 2 6 $<@DHLP d x     ( @T` p tx     8,0hl    PP@??(uаxlamazfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW lamazfor.c -o /ecs/hdfeos/obj/sgi64//lamazfor.o,lamazforint(HlamazforXX"lon_center #lat_center $R %sin_lat_o &cos_lat_o  'false_easting ((false_northing 0H /ecs/formal/TOOLKIT/src/GCT/freewarelamazfor.c̺ 1xx     $,I~8( (5~~~% B .: ; 9 ? @ @4: ; 9  @ @A( C`B D@ B8 AC BF@V @?8X?lamazforintlamazfor]08`h  2K[s      @ D !-$X*8808^8p!@J ` j u0 {p  Pp pp6pp^@pG  @ 8 (  H3p X0lamazinv.o/ 877725118 467 20 100664 7012 ` ELF @@ !)07>EM@V \djnt.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatalamazinvinttsincosptitleradiuscenloncenlatoffsetplamazinv.lit8p_errorasinzsinatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//lamazinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$gF gF s$ <$&-$ 0(ߙ(-0- (-ߙ߄$ -ߙ F ߙ׬ ׿ߙ F ߙ׍0׌( ׿߿%߼ g`g@<$!!-׀0י(F hF9fA F F9BF @F Dׁ׀F!F ׁF <(0E8߅ߙ$(-߄$ -$s߿(߼@׹gpߙ F $$0-ߙ׌(- F,ׂF ߡ8F#<ׁEN!׮׍ F.kB׮ F.kBF9kC׌׮F.cߙ F-cׅ׃F (F#ׁF F"<ߢ0E@ߙ F ׁF ץF )Aׄ F$(2E0%ׯ׮F/sF%Bߙ׌  F.cߙ׌ F cߣ8 `ׁ F!(<E ߙߙ׬׭  F cߙ׌ F cߤ8׭ ׬ F kGߙ׌ F cߡ8 ߢ0ׁA%߿(߼@׹gpLAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverseX       & , 0 4 8 < @ D H L P $<@DHLP d x     4 h        $ H LX \t     ,0hl  0888@ D @?=|׽!TD-?(uаxlamazinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW lamazinv.c -o /ecs/hdfeos/obj/sgi64//lamazinv.o-lamazinvint(IlamazinvX#lon_center $lat_center %R &sin_lat_o 'cos_lat_o  (false_easting ()false_northing 0H /ecs/formal/TOOLKIT/src/GCT/freewarelamazinv.c邦! 2xx     %,%-=~~(z I <9% B .: ; 9 ? @ @4: ; 9  @ @A( C`B D@ B(@ ApAE P@ 8?lamazinvintlamazinv]08`h  2K[s     @ D<)e$* 80 F8p! fXJ  ` j u0({p Pp(pp6p#p@pG 8 H@  x  3p 8lamccfor.o/ 877725119 467 20 100664 8356 ` ELF @@ '/7=CGKOV^gqx ..symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatalamccforintp_errortsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//lamccfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=ong0phF XF v`F ~FxF/p<$!!-HׁF PF!<EF `߅ߙ$(-߄$ -$)߼x׸X߿p׹`׺hgF hF#ׂF#F DF ( $0-$ߙ(- ׮פߙ׌F #F F FPߙ׮F F ׌F F $ߙ$0- (-ߙ׮׭ ׌F (ߙ׮F F ׌F ߙ׌(0 HF FF ߙ׭H׌ F9ׁF F"E߅ߙ$(-߄$ -$,߼0߿ ׹׻g`(F &׹ߙ׌  F,+׍0F kBߙF k F;׎HߙF/sߧ(׬ F;B׀@F!כPF ߿%߿ ߼0׻g`=|׽?!TD-Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projected~       " & * . 2 6 : > B F J N R \ ` d h n r v (,X@`@hl@PDP@@hh48@HL\       4 DP `h l      0H LX\ `hl |    $ 48 @LPdl    ?(uаxlamccfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW lamccfor.c -o /ecs/hdfeos/obj/sgi64//lamccfor.o*lamccforint(slamccforDpr_major r_minor es e  center_lon  !center_lat ("ns 0#f0 8$rh @%false_easting H&false_northing P9H /ecs/formal/TOOLKIT/src/GCT/freewarelamccfor.cꂦ/ 3 m{z- {|(((($~H( { !  v v   {,-$$%~% B .: ; 9 ? @ @4: ; 9  @ @A@ AA@ A BBB j I;A 0 A`AK B@A 8D?lamccforintlamccfor]08x  /EVf     @ XDB$D* X00 6 >p! {~P  f Pq {p Pp`pnAp6pp@pG  (@ h0   3p Plamccinv.o/ 877725120 467 20 100664 8276 ` ELF @@ '/7=CGKOV^gqx#6.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatalamccinvintp_errortsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccinvatan2phi2zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//lamccinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=ong0phF XF v`F ~FxF/p<$!!-PׁF HF!<EF `߅ߙ$(-߄$ -$)߼x׸X߿p׹`׺hgF hF#ׂF#F DF ( $0-$ߙ(- ׮פߙ׌F #F F FPߙ׮F F ׌F F $ߙ$0- (-ߙ׮׭ ׌F (ߙ׮F F ׌F ߙ׌(0 HF FF ߙ׭H׌ F9ׁF F" B F J N R \ ` d j (,X@`@hl@PDP48@HL\       4 DP `h l      0H LX\ `hl |   (TXt   ( ,?(uаxlamccinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW lamccinv.c -o /ecs/hdfeos/obj/sgi64//lamccinv.o)lamccinvint(ulamccinv`pr_major r_minor es e center_lon   center_lat (!ns 0"f0 8#rh @$false_easting H%false_northing P^H /ecs/formal/TOOLKIT/src/GCT/freewarelamccinv.c낦( 2 l{z- {|(((($~H( z !  w  t   $} z0(, "% B .: ; 9 ? @ @4: ; 9  @ @A@ AA@ A BBB j I;A @ ApA A@B A AHM C>E 8`?lamccinvintlamccinv]08x  /EVf     @0 pDJ$`* X00 (6 8h>p! rP  f q {p PppfpL6pp:@pzG  @ 0 H  h3p xXmerfor.o/ 877725121 467 20 100664 6612 ` ELFP @@ %)-4<FMU \djuy.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatamerforintcossinptitleradius2cenlonmeroriginoffsetpmerforp_errortsfnzadjust_lonlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//merfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hgF"(<$!!-ׁF"AF F ~ F {@8ߙ( ߙ F ߙ F צץF&)BF )BׄF%!F !ףF$׸߄ߙ$ - 0ߙ׍ ׌ߙ ׌ߙ ׌ߙ׍8 ׌@߿ %߼(g`g8<$!!-ׂF hEF `F"@ ׂF EF nF">0(E߅ߙ$(-߄$ -$5߿ ߼8׻g`ߙ F ߙF F F ׌ F ׍ߙ׬׻ F-cב0אF1F0׏@ߙF0{ߧ(׬ סF B׀8F!߿0߿ %߼8g`?!TD-=|׽MERCATORTransformation cannot be computed at the polesmer-forwardH       $ . 4 8 < @   \@d@lp4<@DHLP X`d t      $<`      ?(uаxmerfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW merfor.c -o /ecs/hdfeos/obj/sgi64//merfor.o(merforint(Omerfor0Xr_major r_minor lon_center lat_origin  e   es (!m1 0"false_northing 8#false_easting @F /ecs/formal/TOOLKIT/src/GCT/freewaremerfor.c삦 :u u q { ~| xx!, X!% B .: ; 9 ? @ @4: ; 9  @ @A( B`BG B@( A`AH@A 80;merforintmerfor[08`h %;Tm}       @ D<#_$ 0*@H00@6XL>p!HP  f q `{p  Pp ppRp@6pvp@p>C  @    3p 8merinv.o/ 877725122 467 20 100664 6260 ` ELF @@ %)-4<FMU\`fq}.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatamerinvintcossinptitleradius2cenlonmeroriginoffsetpmerinvexpphi2zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//merinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hgF"(<$!!-ׁF"AF F ~ F {@8ߙ( ߙ F ߙ F צץF&)BF )BׄF%!F !ףF$׸߄ߙ$ - 0ߙ׍ ׌ߙ ׌ߙ ׌ߙ׍8 ׌@߿ %߼(g`g(<$!!-א0׎׏8F0s F/kא@%F0dߙF { F.cF Fߙ׌ $ 0-`ߧ߿߼(߳ gP׏0׎F/s׭F.kCߙ׌߳ F-c%߼(߿`߳ gP?MERCATOR@       $ . 2 8   4<@DHLP X`d t      $(0@T l p ?(uаxmerinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW merinv.c -o /ecs/hdfeos/obj/sgi64//merinv.o(merinvint(OmerinvXr_major r_minor lon_center lat_origin  e   es (!m1 0"false_northing 8#false_easting @F /ecs/formal/TOOLKIT/src/GCT/freewaremerinv.c킦 :u u q { ~|  ~t  $$5~% B .: ; 9 ? @ @4: ; 9  @ @A( B`BG B@( APAIF@8;merinvintmerinv[08`h %;Tm}       @ D$?$*H006 >p!@P 0 fq @{p  Pp p p6pp@pC   0@ p   3p 8millfor.o/ 877725123 467 20 100664 5428 ` ELF @@  '.5=EP VZ^jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatamillforintptitleradiuscenlonoffsetpmillforadjust_lon.lit8tanlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//millfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g%F o <$!!-ߙ׀ F c׌F,׏(F/׎F/sߙ׍ F-cߙF ׿( ߾F ׁF!ןF %߼ ߿߾׿gPMILLER CYLINDRICAL.      " &  8  (,04 <H T d hp     @?!TD-??(uаxxmillfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW millfor.c -o /ecs/hdfeos/obj/sgi64//millfor.o(millforint(Amillfor<X!lon_center "R #false_easting $false_northing G /ecs/formal/TOOLKIT/src/GCT/freewaremillfor.c 7v y   @!~% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@A0 APBB BF@ 8<=millforintmillfor\08`h  -=Yv      @X D$<* 08p!.J `k (@u0 h{p  Pp p Pp 6p )p @p E @ P@  P  p3p 0millinv.o/ 877725124 467 20 100664 5460 ` ELF @@  '.5=EPT Z_kw.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatamillinvintptitleradiuscenlonoffsetpmillinvadjust_lonexp.lit8atan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//millinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g <$!!-׎F.c׏F/sן%ߙF?o׌ F.c׌F,ߙ׍ F-cߙF ׿ ߾ׂF"ׁF!%߼ ߿߾gPMILLER CYLINDRICAL.      " &  8  (,04 <H T d hp     ?!TD-@?(uаxxmillinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW millinv.c -o /ecs/hdfeos/obj/sgi64//millinv.o(millinvint(Amillinv4X!lon_center "R #false_easting $false_northing G /ecs/formal/TOOLKIT/src/GCT/freewaremillinv.c 7v y ~y ~L~% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@A0 APAIA F@ 84=millinvintmillinv\08`h  -=Yv      @X D $4* 08p!.J `k  Pu0 p{p  Pp p Xp 6p Hp @p E ` p@  p  3p 0molwfor.o/ 877725125 467 20 100664 6276 ` ELF @@  '.5=EPT Z^fr~.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatamolwforintptitleradiuscenlonoffsetpmolwforadjust_lonsin.lit8cosp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//molwfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g (8%H0F nX<$!!-ߙ׀P F c@ߙF F  F ליכ%F9Bߙ F ߙF F F F8F9F<@F F!F EF;<EF8*b2@$߅ߙ$(-߄$ -$߼X߳8׸׹ ׺0׻׼߿P׽(׾ga-׃F F$׼F;<׽(׹ E߳8מ כ(F;ߙ F ׁ0ךF!BF>BF B׀F ߙF!ߢH׸ @׃8F#F %ׂ߼X׻׾ߣ@߿PF#׺0gbMOLLWEIDEIteration failed to convergeMollweide-forward@      " & * . 4 8  8  X0`0hl(,04 <H T d hp      \       $ 4@ !TD-=|׽??!TD-??d)?f;?(uаxxmolwfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW molwfor.c -o /ecs/hdfeos/obj/sgi64//molwfor.o$molwforint(<molwfor`Xlon_center R false_easting  false_northing G /ecs/formal/TOOLKIT/src/GCT/freewaremolwfor.c񂦡 2v y  )~||= {,  x00% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@AX AAA AA AA C BF@D ^ @89:;<=>8`=molwforintmolwfor\08`h  -=Yv    @p D$`* 0B8p!Z@J ` `k Pu0 @{p  `Pp p0p&6p\p@pTE  @    3p  molwinv.o/ 877725125 467 20 100664 5860 ` ELFX @@  '.5=HE KPT_co{.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatamolwinvintptitleradiuscenlonoffsetpmolwinv.lit8asincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//molwinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g8<$!!-ׅכF%BׄF$iF%!׀(F `0ׅF E%F!(< %EF )ߙ F #ߙF  ׎F.ۂF s׭F.kCߙ׌ F-c׆F&<ץE׻׀ F!<Eׂ ׌(F,+ߙ߰  ׬F,ׁ F!cׅ0F `F (<EߙF +ߙ %߼8߿(߾0g`MOLLWEIDE6      " & * .  8  (,04 <H T d hp      , L \ d l     ??f;?d) !TD-@ !TD-@??(uаxxmolwinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW molwinv.c -o /ecs/hdfeos/obj/sgi64//molwinv.o#molwinvint(;molwinvXlon_center R false_easting false_northing G /ecs/formal/TOOLKIT/src/GCT/freewaremolwinv.c󂦡 1v y "rr <0!% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@A0H A`A AK@BE8=molwinvintmolwinv\08`h  -=Yv     @p D $* 0 8p!6J ``k u0 8{p  Pp Hp p 6p pf@pE  @ @    3p 0(obleqfor.o/ 877725126 467 20 100664 7508 ` ELF @@  !(/6=DLS[ 4dios y~.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataobleqforintptitleradiuscenloncenlatgenrptoffsetppblanktsincosobleqforacosatan2sin.lit8asincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//obleqfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$g<$&-H@ ߙ߄( -ߙ ׌(ߙ ׌ߙ ׌׌ߙ߅$ (-׌ ߙ߅$ (-׌ߙ߅$ (-ߙ׍H ׌@ߙ ׌$8$(-ߙ0-$0 (-߿%߼gPF h$g0@(-x%$h<$!!-טߙ0-F8f F kF $ߙ$0- (-ל8׿׭F<מ0pF>kB׸F8cߙ F-cF F>׭pF׭(F.kB׬ F.cߙ` F?cߙF  F F>׍F-cߙF 8 0׬`F?cF8cߙל  F cF>F B F J N R V Z ^ b f j <x|00HH< @  $(,048 @L TX `d lpt     HL p     , < PX x |    ?@?(uаxobleqfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW obleqfor.c -o /ecs/hdfeos/obj/sgi64//obleqfor.o'obleqforint (Pobleqfor @Xlon_center lat_o theta m  n  !R ("sin_lat_o 0#cos_lat_o 8$false_easting @%false_northing HH /ecs/formal/TOOLKIT/src/GCT/freewareobleqfor.c􂦡 >r  u $$$0 hhh(@9,%-~P~(T% B .: ; 9 ? @ @4: ; 9  @ @A( BPA@ A 8 4 CAB@ B C AJA8@?obleqforintobleqfor]08`h  2FZjz      @ (Dl,$H@* P0 U8p! rJ P`  k Pu0P{p `Pppp6ppb@pG  @ @  `  3p @obleqinv.o/ 877725127 467 20 100664 7556 ` ELF @@  !(/6=DLS[ ,d josw} .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataobleqinvintptitleradiuscenloncenlatgenrptoffsetppblanktsincosobleqinv.lit8asincossinatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//obleqinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$g<$&-H@ ߙ߄( -ߙ ׌(ߙ ׌ߙ ׌׌ߙ߅$ (-׌ ߙ߅$ (-׌ߙ߅$ (-ߙ׍H ׌@ߙ ׌$8$(-ߙ0-$0 (-߿%߼gPg`hX%PH8( `<$!!-י(ך @׀HF9B0כ@F hלߙF;fט F!FF,F:cߙ F cFcߙF  F F8F>F F9BF;F-cF cߙx F B F J N R V Z ^ b f j n <x|00HH4 8  $(,048 @L TX `d lpt     @DLX`d l       ( D p t     @??(uаxobleqinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW obleqinv.c -o /ecs/hdfeos/obj/sgi64//obleqinv.o)obleqinvint (Qobleqinv 8Xlon_center lat_o  theta !m "n  #R ($sin_lat_o 0%cos_lat_o 8&false_easting @'false_northing HH /ecs/formal/TOOLKIT/src/GCT/freewareobleqinv.c ?r  u $$$0 L-,XU~% B .: ; 9 ? @ @4: ; 9  @ @A( BPA@ A H , AAA C@ A AAAF CPf88?obleqinvintobleqinv]08`h  2FZjz      @ (Dl2$P8* P0 U8p! vJ X`  k u0{p Pppp6pp@pG   0@ p    3p @omerfor.o/ 877725128 467 20 100664 14084 ` ELF0x @@ \&.28?GNVZ`dkrw\ 0.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataomerforinttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerforcoslog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//omerfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hCg(F!B<$&-טF!AF F $HXF FPF ~$$PF @8 (-0-ߙ(-0 (ל0FEF 7F 7F%FE׌h׌hF,c׍F-cF cߙ׍ F-cׁ`ׂXF"CF .xF,c׍F-cF cߙ׍ F-cׁ`ׂXF"CF F x߅ߙ$(-߄$ -$߼׸(׹X׺P׻߿׼׽g׺ F ߙF F F ׌(F ߙ׽p F ߙF F F ׌(F ߙכX׬p F FߙF F  F F׆pF>1F$׼קF8!ט(F<9F8!׀@F 8<׸E@טHF8׸ׁPF'<E׮ׂXF"׮F>s׍(F-B`F&3F<ߙF-c h׮`׭hF.kF.k@F-c׮F>sAF>sF.kCF cߙ F-cF;F<ב(F1{F0{ߙ׾F/ ߙ׌X׻@ F cߙ F;ߙF  F ߙ׌hH F cF $߅ߙ׌0(- F,$ט0ߙ߅F8 (-F8ߙ߅$ (-F8ߙ߅$ (-F=AF EF9>EF ߅ߙ$(-߄$ -$߼׸(׹X׺P׻߿׼׽gF9>Eׅ8F%F F9>E׃ ߅ߙ$(-߄$ -$߼׸(׹X׺P׻߿׼׽gF F%F F9>E׬H߅ߙ$(-߄$ -$߼׸(׹X׺P׻߿׼׽g$$$ߙ(-0- (-F $$$ߙ(-0- (-ׁ ׄ F! >E׌h׌hF,c׍F-cF cߙ׍ F-cׁ`ׂXF"CF xF,c׍F-cF cߙ׍ F-cׁ`ׂXF"CF F x%߼׸(׹X׺P׻߿׼׽gg`h`0F nFPp<$!!-ߙF fX F kF Fߙ׌8 F,F ߙךX@ F:ׂ8F EF"@׆F EF!0<EKHߙ׮8F F ׌((F ߙךX׹@ F FׅpF (ׄF !F9F$A׃(ׂF#BץHכF%F$F;F#ߙF" F ׁ`F F!<׆Eׇׅ`F%B+F9)B׭H׬׮F-c׭F.kBߙ׎`F-c׭  F-cץׁ F )Bנ F!<׆ׇEF:)CׂPסF"BF:CF% @׃ F9>E(ככF ׅ`F9)BׇF:)CׂF EF"@F EF&>Ex߅ߙ$(-߄$ -$߼p׹0߿X׺P׻(gF'@ߙF;;׹x F-cׂ(סF"BF F:ׁxׄF!AF !׃F!ׂ@F$F#ߡ`"כF!ךF ւי8F;@%F:A߿h߼p׻(߿X׺P׹0g?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD->z򚼯HOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Point projects into infinityomer-for       $ ( , 0 4 8 < @ D H L P T Z ^ b f j n r v z ~                   tHHhh8@HhLhhh$h(hx| l0 t0 |  T\dhlpt  $,4 8PXhp       $ 0 4@ X` lx     (,<@HT Xdhx    ( < LX \l  < P\ lp t       <   hl     ,        $ 4 8 D ` x           , 0 8 D L p         ?(uаxomerfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW omerfor.c -o /ecs/hdfeos/obj/sgi64//omerfor.o/omerforint\(omerfor\ Hxr_major r_minor scale_factor lon_origin  lat_origin  !e (!es 0"false_northing 8#false_easting @$sin_p20 H$cos_p20 P%bl X&al `'d h(el p(u x)singam )cosgam *sinaz *cosaz ZG /ecs/formal/TOOLKIT/src/GCT/freewareomerfor.c= llhfu z }~}$&~A~~ ~ $e8 |||100 m,  !~~ y ,|($%,  |, ), ,0 m%   $$!(|} %  -,I,%~~% B .: ; 9 ? @ @4: ; 9  @ @AH\ BAB IAAABB@  >8\ ACB AF@ ]D;E8 H=omerforintomerfor\08  *@[t$5EVf{      @H DD$ H*00h6p9>p!P ` fq  `{p &Pp'@p*bp,d6p,p-R@p-E - -@ .( /  03p 0`omerinv.o/ 877725130 467 20 100664 13652 ` ELF. @@ `&.28?GNVZ`dkrw`)<.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataomerinvinttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerinvexpphi2zcosatan2.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//omerinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hCg(F!B<$&-טF!AF F $HXF FPF ~$$PF @8 (-0-ߙ(-0 (ל0FEF 7F 7F%FE׌p׌pF,c׍ F-cF cߙ׍ F-cׁ`ׂXF"CF .F,c׍ F-cF cߙ׍ F-cׁ`ׂXF"CF F ߅ߙ$(-߄$ -$߼׸(׹X׺P׻߿׼׽g׺ F ߙF F F ׌(F ߙ׽p F ߙF F F ׌(F ߙכX׬p F FߙF F  F F׆xF>1F$׼קF8!ט(F<9F8!׀@F 8<׸E@טHF8׸ׁPF'<E׮ׂXF"׮F>s׍(F-B`F&3F<ߙF-c h׮`׭hF.kF.k@F-c׮F>sAF>sF.kCF cߙ F-cF;F<ב(F1{F0{ߙ׾F/ ߙ׌X׻@ F cߙ F;ߙF  F ߙ׌pH F cF $߅ߙ׌0(- F,$ט0ߙ߅F8 (-F8ߙ߅$ (-F8ߙ߅$ (-F=AF EF9>EF ߅ߙ$(-߄$ -$߼׸(׹X׺P׻߿׼׽gF9>Eׅ8F%F F9>E׃ ߅ߙ$(-߄$ -$߼׸(׹X׺P׻߿׼׽gF F%F F9>E׬H߅ߙ$(-߄$ -$߼׸(׹X׺P׻߿׼׽g$$$ߙ(-0- (-F $$$ߙ(-0- (-ׁ ׄF! >E׌p׌pF,c׍ F-cF cߙ׍ F-cׁ`ׂXF"CF F,c׍ F-cF cߙ׍ F-cׁ`ׂXF"CF F %߼׸(׹X׺P׻߿׼׽ggP<$!!-ב8א@F1kA׏F0dF-{F0{׏F-{BF0{@HF-c ךXF/s׍F:c8F.k@מ`ߙ0F c F>c׬0F:cߙF F( F>cפ(ׇF$8CF!'׃(F#ׂF ׆F$@F>1F#BF"1F!1ׂ F 0EF"@ׂF EF">EF 1FׁߢHF%>׀׺ E@ߣ@ׂ`7bߤ@׃83F'3F&;F/sF sF:;Cߙ׌x F.cF Fߙ׌($ 0-ߨ@ߨ߼P߿8׺ ׾g׬ךXF,ߙ׍` F-cׯ׎F/s׌F>cߙF F F.cF:Cߙ׌ F-cߡH׺ %߿8߼P׾g?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD-?!TD-OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point:        $ ( , 0 4 8 < @ D H L P T Z ^ b f j n r v z ~                  xHHhh<DLhPhhh (h,hhl T\dhlpt  $(08 <PXhp|     $ ( 4 8D \d p|     ,0@DLX \hl|   $, @ P\ `p  @ T` pt x       @   lp      0tx     $ < H ` l          $ , 4 H L?(uаxomerinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW omerinv.c -o /ecs/hdfeos/obj/sgi64//omerinv.o0omerinvint`(omerinv` |xr_major r_minor scale_factor lon_origin  lat_origin  !e (!es 0"false_northing 8#false_easting @$sin_p20 H$cos_p20 P%bl X&al `'ts h(d p)el x)u *singam *cosgam +sinaz +cosaz kG /ecs/formal/TOOLKIT/src/GCT/freewareomerinv.c< nnjhu z }~}$&~~=~~} ~ $e8 |||100 m,  !~~ y ,|($%,  |, ), ,0 m%  }}}}M*4(( "-% B .: ; 9 ? @ @4: ; 9  @ @AH` BAB IAAABB@  >0` AAR E@ B8 |=omerinvintomerinv\08  *@[t$5FVgw      @x DPL$ |*x00xh6>p!P @ f0q H {p %Pp%Xp(+sp*6p*p+@p+E , , @ ,` .0  .P3p .`horthfor.o/ 877725131 467 20 100664 6324 ` ELF( @@  (/6@GOpWbf lpx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataorthforinttsincosptitleradiuscenlonmeroriginoffsetporthforadjust_loncos.lit8sinp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//orthfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$(g$<$&-$0F s ߙ(-0- (-ߙ߄$ -ߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g@gH@F nP<$!!-ߙ׀8 F c0F F(F $ߙ$0- (-ߙ׬0 ׻ׇ0צF'1ׁ(F FF 9נF!F 9ׂF'<EׂF 8EF">E! ߙ  ׬(ׁפ F!!F !׃ F$ߡ@#ע׀(ׄ0F"עF"!עF"F !F!!׃F$߿H߿8%߼Pg߅ߙ$(-߄$ -߿8$߼PgORTHOGRAPHICPoint can not be projectedorth-for@       & * . 2 8 (048<@ T h pt |      ,DTl  X\  00=|׽?(uаxorthfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW orthfor.c -o /ecs/hdfeos/obj/sgi64//orthfor.o%orthforint(Forthfor Xr_major lon_center lat_origin false_northing false_easting   sin_p14 (!cos_p14 0G /ecs/formal/TOOLKIT/src/GCT/freewareorthfor.c + u z~    ,( 5@},% B .: ; 9 ? @ @4: ; 9  @ @A( C@A@B0p ACBF@ 8 =orthforintorthfor\08`h  *C\y      @ D$"F$ *8098p!Q@J ` Xj Xu0 H{p  XPp psp66plp@p<E  @    3p 0orthinv.o/ 877725132 467 20 100664 7140 ` ELFX @@  (/6@GOW ]ekq|.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataorthinvinttsincosptitleradiuscenlonmeroriginoffsetporthinv.lit8p_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//orthinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$(g$<$&-$0F s ߙ(-0- (-ߙ߄$ -ߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g@g@<$!!-׀ כ F hF;fF F;F F ׁ׀F!@F;<(0E8߅ߙ$(-߄$ -$߿(߼@׻ gpߙ F F $ߙ$0- (-׃F ؅ߡ8F#>ׁE !ׄ߼@׻ ߢ0߿(gpD%ׯ׮F/s׍0F.kBF;kC׌(׮F.cߙ F-cׅ׃F (EF#@ׂF EF">ߣ0E'`ׄF% >Eߙ׭׬ F kGߙ׌ F c%߼@׻ ߿(ߤ8gpߙ׬׭ F cߙ׌ F c%߼@׻ ߿(ߥ8gpߙ F ׂ(F ץF )AׁF (F">Eפ׃F !F$>E%ׯ׮F/sF%Bߙ׌0 F.cߙ׌ F cߡ8 %߿(߼@׻ gpORTHOGRAPHICInput data errororth-inv^       & , 0 6 : > D H N R V (048<@ T h pt |    H \ p      , 0\ p t      X\  (( $>z򚼯H=|׽!TD-?(uаxorthinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW orthinv.c -o /ecs/hdfeos/obj/sgi64//orthinv.o%orthinvint(Eorthinv<Xr_major lon_center lat_origin false_northing false_easting   sin_p14 (!cos_p14 0G /ecs/formal/TOOLKIT/src/GCT/freewareorthinv.c + v z~   !-,%%=~~0&0&, ~E% B .: ; 9 ? @ @4: ; 9  @ @A( C@A@Bh ApAE N@ h @;Cp@ i @;Bp@ O @;Bp@ 8<=orthinvintorthinv\08`h  *C\y     @ D<*f$<* P80 P18p! ^J  ` ju0 {p Pp`p+p,6pbp*@pjE  @    3p  8paksz.o/ 877725132 467 20 100664 4820 ` ELF @@ # /;IVeu.symtab.shstrtab.strtab.comment.text.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.lit8.rodatapakszp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//paksz.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=ong<$!!-׀F aFF `<E׀F ׀ׇF )F 0IFa׉F)CF ID%(i@$߅߄ߙ(-$ -ߡ$\?߿׀߼g0D@FB!F)ABF%1AF (F׊ F*F D&(=@$߅߄ߙ(-$ -ߡ$\?߿׀߼g0DHFJaF*IF&)׋(F&X<EF+H߅ߙ$(-߄$ -ߡ$\?߿׀߼g0ׁ0F!@F"F&F'߿߼g0F!?A.@@@N@ Illegal DMS fieldpaksz-degpaksz-minpaksz-sec     lpt((P8X8`d0<@Px  <T ?(uаxpaksz.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW paksz.c -o /ecs/hdfeos/obj/sgi64//paksz.o4paksz0(E /ecs/formal/TOOLKIT/src/GCT/freewarepaksz.cѤ 7 ~ , ,  x, % B .: ; 9 ? @ @ @ @A0 A0AH@b @8(pakszZ0 8     @ -$*0880pB8p!J @`Pk `up  @Pp p yp )'p P`p @p 0  0  PP   polyfor.o/ 877725133 467 20 100664 7236 ` ELF @@ &+05:?FNX_goz&.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatapolyforinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyforadjust_lontsincosmsfnzsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//polyfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hgF"<$!!-ׁF"AF `XߙF H @ߙ׌H ߙ׌H (ߙ׌H 0F אF ׎0ߙ׍(׌  8Pߙ߄$ -ߙ׍ ׌ߙ ׌ߙ ׌ߙ׍X ׌`߿%߼g@gHP%0F nFX<$!!-ߙ׀@ F cׂF EF">F E8׃F#ׁPF#Bי`ׄXF"@ߢHF!!׹0=DF $ߙ$0- (-F ׏8ߙ׎0׍( ׌ F  ׮ߙ׭׌@ ׹0׬8צF,3F Fߙ( 8׈ש(F)BF BשF)Bׇ`ߙF(9׬8 ׂF ף(F#ףF#ס ׃PF#AF"@עF"B׀XF!ߡH %߿@߼X߾Pg?>z򚼯HPOLYCONICR       $ ( , 6 : > B F J ,0,048<@D LTX \dh ltx |     8 <Ldltx    04 Hdx?(uаx$polyfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW polyfor.c -o /ecs/hdfeos/obj/sgi64//polyfor.o'polyforint(RpolyforXr_major r_minor lon_center lat_origin e0  e1 (e2 0e3 8 e @ es H!ml0 P"false_northing X#false_easting `G /ecs/formal/TOOLKIT/src/GCT/freewarepolyfor.c 9u u | ~&     (0$@% B .: ; 9 ? @ @4: ; 9  @ @A( B@BG@0 ABB BF@8=,polyforintpolyfor\08`h  *@Yr"       @ XD:$* (h00 (6 8 >p! BRP  f q 8{p Pp8,pdpE6p{p @pKE  @ P 0  P3p ``polyinv.o/ 877725134 467 20 100664 7060 ` ELF @@ &+05:?FNX_g<ou{  .symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatapolyinvinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyinvphi4zasinzsinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//polyinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hgF"<$!!-ׁF"AF `XߙF H @ߙ׌H ߙ׌H (ߙ׌H 0F אF ׎0ߙ׍(׌  8Pߙ߄$ -ߙ׍ ׌ߙ ׌ߙ ׌ߙ׍X ׌`߿%߼g@g8<$!!-כXF;n׀F בPF;@(%ׂF E0F">כ`%EF;fF ׂF#ׁ.F (א8F1׏0׎(׍ F3׌H ߙ$ X- F3F D! $J߼8߿ ߰0׻g`׬F;cߙ׍ F-cߙF  F Cߙ׌ F-cߢ(߿ @%߼8߰0׻g`?>z򚼯HPOLYCONICL       $ ( , 6 < @ D  ,048<@D LTX \dh ltx |     (08DThp    ?(uаx$polyinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW polyinv.c -o /ecs/hdfeos/obj/sgi64//polyinv.o'polyinvint(RpolyinvLXr_major r_minor lon_center lat_origin e0  e1 (e2 0e3 8 e @ es H!ml0 P"false_northing X#false_easting `G /ecs/formal/TOOLKIT/src/GCT/freewarepolyinv.c 9u u | ~&  q|r|D(% B .: ; 9 ? @ @4: ; 9  @ @A( B@BG@0< A`A AMW@b @8L=,polyinvintpolyinv\08`h  *@Yr"        @ @D4$hL*h006 >p!LP ( f q p{p Pph,pp6ppQ@pE  @ (P x  3p `psfor.o/ 877725135 467 20 100664 7060 ` ELF @@ |$)17=DLS[|(alpt .symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatapsforinte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsforadjust_lonsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//psfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hgF"8<$!!-ׁF"AF F ~ F v(F F0`XߙF  ׅF%<0(E ׄ׻ ׄ׻ ׁF F!׃ F F <@E88F: $$0-׃(-ߙ@F  @׮ߙ׭׌ ׺@׮ߙF F׌ HPߙ߄$ -ߙ׍ ׌ߙ ׌(ߙ׬ F F%߼8߿0׹(׺gg08(%F o <$!!-ߙ׀( F cי8F>ߙF9B F F ߙF F׌ ׾ׁׂ@F"2EןׁHF!F ׁPF!ןׁ(F!F ׁ F!ߙ F ׃8F?F#ׂ`ߙF#F  ׹F9BׄX߼ ߾׿8ߢ(F9!߿׹0g`D%?!TD-=|׽@POLAR STEREOGRAPHICF       $ . 2 6 : > $(HLPTX \hltx    4 8@D LP     $08 DTX t?(uаxpsfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW psfor.c -o /ecs/hdfeos/obj/sgi64//psfor.o+psforint|(apsfor|`r_major r_minor es e e4   center_lon (!center_lat 0"fac 8#ind @$mcs H%tcs P&false_northing X'false_easting `E /ecs/formal/TOOLKIT/src/GCT/freewarepsfor.c ?t t r ~~| ~4$    )~  )$,~~% B .: ; 9 ? @ @4: ; 9  @ @A0| BB GB C B@ H|( A`AAB B BF@ x @9>?89%psforintpsforZ08hp   6GWh       @ D<Z$*h0006>p!FP @ f q `{p Pp`%pp6ppr@pA  @ HP   3p @psinv.o/ 877725136 467 20 100664 7076 ` ELF @@ x$)17=DLS[xagmx.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatapsinvinte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsinvphi2zatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//psinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hCgF!B8<$!!-׀F!F F ~ F v(F F0PXߙF  ׅF%<( Eׄ׻ ׄ׻ ׀F F ׂ F F#<8E00F: B$$0-ׂ(-ߙ8F  @׮ߙ׭׌ ׺@׮ߙF F׌ @Hߙ߄$ -ߙ׍ ׌ߙ ׌ ߙ׬ F F%߼8߿0׹(׺g(%g(@<$!!-׀0 כPׁׄ8F;nטXF$2F8fF 8%E F F;BF8BF-)@F )Dׁ@׀F!׍HF%kB0 F kCF;BF8BF-)@F )Dׁ(׀F!׍F%kB0F kCߙ׌$ 0-ׅ0F%`ߧ ׂ߼@߳8߿(׸׻ gpסF"2E߳8׃ F%׻ ߡ0׸#ߙF  F G׭F-B׻ ߙ׌ ׸ F-cߢ0@߿(%߼@gp?!TD-=|׽@POLAR STEREOGRAPHIC@       $ . 4 8  $HLPT Xdhpt|     0 4<@ HL  4 8H\  ?(uаx psinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW psinv.c -o /ecs/hdfeos/obj/sgi64//psinv.o*psinvintx(apsinvx`r_major r_minor e e4 center_lon   center_lat (!fac 0"ind 8#mcs @$tcs H%false_northing P&false_easting X$E /ecs/formal/TOOLKIT/src/GCT/freewarepsinv.c! ?s s s y~| ~4$    ~|v }=,,, $ % B .: ; 9 ? @ @4: ; 9  @ @A0x BB GB B C@ 0x BpA@ AE E F89psinvintpsinvZ08hp   6FWp        @ D<"^$ * `00 06 @>p! T@P  f Xq P{p 8Ppp,p6pp@pA  (@ h@   3p Hreport.o/ 877725137 467 20 100664 20484 ` ELFI@ @@ X&- 5XT@GNU ]ckTrzt4    p $$4EUh.symtab.shstrtab.strtab.comment.text.sbss.bss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.sbss.bss.rodatainitstrlenstrcpyp_errorclose_filefcloseptitleprintf.srdatafopenfprintfradiusradius2cenlon.lit8cenlonmercenlatoriginstanparlstparl1offsetpgenrptgenrpt_longpblank.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//report.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onH%g% <$!!-$$Q]ߙߤ ߰@M߿$߼ gP$$$ߙ % @$߿߼ ߰gPߥ$߄$ߙ -$ -$'$%#ߙߤ$ @ߥ߅ߙ$(-߄$ -$߿߼ ߰gP$߄$ߙ -$ -$$.߰$$߄ߙ - ߥ%߿V ߤߙ߰$ @$߅ߙ$(-߄$ -߿$߼ gP$߄ߙ - ߥ߿߰߿%߼ gPg<$!!-߄(ߙ ߄ ߿ߙ ߿߼gg<$c#-߁% ߥߙ߄$ -߁ ߿$(-ߙ߄$ -@@%ߦ@ % ߙ߅$ (-ߙ ߄ ߿߼g0g<$B"-߁F ` $סߙ߄D% -߁ ߿$(-ߙ߄$ -@@%@ % $עߙ߅D& (-ߙ ߄ ߿߼g0F `g<$B"-߁ $סߙ߄D% -$עߙ߄D% -߁ ߿$(-ߙ߄$ -@@%@ % $ףߙ߅D& (-߄ $פߙ߅D&  (-ߙ ߄ ߿߼g0g<$B"-߁F ` ׂסF"B$ߙ߄D% -߁ ߿$(-ߙ߄$ -ׄףF$@@%@ % $ߙ߅D& (-ߙ ߄ ߿߼g0g<$B"-߁F ` ׂסF"B$ߙ߄D% -߁ ߿$(-ߙ߄$ -ׄףF$@@%@ % $ߙ߅D& (-ߙ ߄ ߿߼g0g<$B"-߁F ` ׂסF"B$ߙ߄D% -߁ ߿$(-ߙ߄$ -ׄףF$@@%@ % $ߙ߅D& (-ߙ ߄ ߿߼g0g<$B"-߁F ` ׂסF"B$ߙ߄D% -߁ ߿$(-ߙ߄$ -ׄףF$@@%@ % $ߙ߅D& (-ߙ ߄ ߿߼g0F `g<$B"-߁ ׂסF"B$ߙ߄D% -ׄףF$$ߙ߄D% -߁ "߿$(-ߙ߄$ -׆ץF&)B@@%@ % $ߙ߅D&( (-׈קF(9߄ $ߙ߅D&8 (-ߙ ߄ ߿߼g0g<$B"-߁F ` ׂסF"B$ߙ߄D% -߁ ߿$(-ߙ߄$ -ׄףF$@@%@ % $ߙ߅D& (-ߙ ߄ ߿߼g0F `g<$B"-߁ $סߙ߄D% -$עߙ߄D% -߁ ߿$(-ߙ߄$ -@@%@ % $ףߙ߅D& (-߄ $פߙ߅D&  (-ߙ ߄ ߿߼g0F `g<$B"-߁ ߥ$סߙ߄D& -߁ ߿$(-ߙ߄$ -@H%ߦ@ % $עߙ߅D' (-ߙ ߄ ߿߼g0%g<$c#-߁ ߦߥߙ߄$ -߁ ߿$(-ߙ߄$ -@H%ߧߦ@ % ߙ߅$ (-ߙ ߄ ߿߼g0g<$B"-߁ ߙ$  -߁ ߿$(-ߙ߄$ -@0%@ %ߙ $ (-ߙ ߄ ߿߼g%g<$c#-߁ ߦߥߙ߄$ -߁ ߿$(-ߙ߄$ -@H%ߧߦ@ %(ߙ߅$ (-ߙ ߄(߿߼g0Output file name not specifiedreport-file %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %d [%s] %s       " & * . 4 > B L P T X b f j n x |                    " & * . 2 6 @ D H L V Z ^ b l p t x        HL  ` d   00(0,0\`|PPPP0x<xLXxx(0X\@H|PP<@hp,4P0X000   8` @` h l ` `       @ D \ h |        8 D |        , 0 l p       < @0<D L|     DP pt     $<lx      $ 8 @h     8 T ht |    , @L T h|     (<D X `      H\l       0 DT ht |      , < P \  d x      ( 4  < X d x       4 @ T \         8 D H  T `  h          4 8 L Ta @Lc˰?(uаxreport.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW report.c -o /ecs/hdfeos/obj/sgi64//report.o7initX(close_fileXXptitle0Tradius0Tradius20cenlon0cenlonmer0tHcenlat0t4xorigin04stanparl0 stparl10  offsetp0 8genrpt0 ph genrpt_long0 p $+pblank $ 9p_error0 h, terminal_p - terminal_e . file_p / file_e 0fptr_p  1fptr_e (2 parm_file 3 err_file dF /ecs/formal/TOOLKIT/src/GCT/freewarereport.cF =, `&V{~}{,)~} ot,}$    |,   ( |,($ !() {,(, 0|,$ 0|,$ 0|,$ 0|,$$!8){,,, 1|,$$!(){,(,$ ,|,($$$|,  |,$${, % B .: ; 9 ? @ @.: ;9 ? @ @4: ; 9  @ @A(X BPA@ A C(XT AAF@( A0AF@(T A0AF@( B0AE@( A0AF@( A0AF@(t A0AF@(4 A0AF@( B0AE@(  A0AF@( B0AE@( B0AE@( p B0AE@( $ AAF@( B0AE@8 hinitclose_fileptitleNp>(pA@pB;" C` Cp Ep I , I0robfor.o/ 877725139 467 20 100664 7748 ` ELFx @@  *18?GNYeq.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodatarobforintptitleradiuscenlonoffsetprobforadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//robfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$g <'?-ׄ0߅׃߁(-$"- 0%##F gׂ׌׎׏׍/׏-׍.8׎,0׌"ׂ,p׌"ׂ.x׎-׍/ ׏-X׍`/`׏p.׎h"PׂP,׌X"ׂ,8׌ .@׎0/׏8-׍(/(.- ,ׁ("׀ !Hׁ @׀!(ׁ ׀!hׁ ׀x!ׁH H׀@!0ׁ ׀!! F$$0-Tߙ߄$ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼ gPg %F o<$!!-ߙ׀ F cׇHF'׈PF(9ׁXF 9F!8@F I׉@ߟ$D&-Fa00-F)"F!9F%F'9F(F'F%F&׈8F(F(F$F#ׅF%F ׃ׁF?>F"@ߥ ߿EF)F#F$AF'F#@F&BF(F(BF"F!F%ׁ`F!F(ןF ߾׿F)F#F$AF'F#@F&BF(F(BF"F!F%ׁhF!F(ןF ߾׿%߼gP?#?vȴ9X?vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!REF%H>H$F%H>ED F!!F'!F/!D F!!F'!׀`F !ד׍x׌pבhF/"F BF0@F FF%H>D(F.BH%EF CE-@F*RBF"F(@BF#F(9F"F!F-9F-F 9F29F&9F+9F-9e-`F*rbF"F(@BF#F(9F"F!F-9F-F 9F29F&9F39F-9F%:F,@F+F&$0-(LF$߅ߙ$(-߄$ -$߿߼߰g@F @EF!<EF/"F&C @@-F*B F*9F.rBF+9F.1F*9F)9F-1F-9F(1F'1F&)C׃ׂF# F%ߙF  %߼߿߰g@$@-a!H-߅ߙ$(-߄$ -$߿߼߰g@?#?vȴ9X?vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rhf? !TD-?FRROBINSONToo many iterations in inverserobinv-conv4     & , $,4  <0D0LP 0(004 (TX\`dhlpt| (08@HPX`hpx    $,4<D\x|8@DHL@  $ ?(uаxrobinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW robinv.c -o /ecs/hdfeos/obj/sgi64//robinv.o-robinvint(trobinvXX$lon_center %R &false_easting 'false_northing (pr )xlr F /ecs/formal/TOOLKIT/src/GCT/freewarerobinv.c1 M3M3 }][ &\ &[ &X &yyyyyyy yy y~y yyyyw x yyy~#[#xyyyyyyyw| *  Rqyy~"` %  x ~   | ~ ,  k%x}~n ,% B .: ; 9 ? @ @4: ; 9  @ @A( BPBA@O (X A@AT@A8X;robinvintrobinv[08`h (8Tq      @X I $X* 0 P50 ; <Cp! 4U  k xv XPp Pppp6ppS@pC  @ (  $ (8p 8 sinfor.o/ 877725140 467 20 100664 5156 ` ELF @@ &-4<CNR ^jx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatasinforintptitleradiuscenlonoffsetpsinforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//sinfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g(%F o <$!!-ߙ׀ F cߙF  F ׃F?F !F<ׁׂ߼ ߢ(߿F$׼׿F#@߾gPA%SINUSOIDAL*      "  8  (,04 <H T d hp  ?(uаxssinfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW sinfor.c -o /ecs/hdfeos/obj/sgi64//sinfor.o%sinforint(=sinfor$Xlon_center R  false_easting !false_northing F /ecs/formal/TOOLKIT/src/GCT/freewaresinfor.c 3v y    ~% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@A@ APA BB BF@V @<?8$;{sinforintsinfor[08`h  (8Tq    @( h>$P$*x 0x 8p!*J p` k up Pp {p {p $6p Zp @p :C  @    -p  sininv.o/ 877725141 467 20 100664 5668 ` ELF @@ &-4<C IQU`lx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatasininvintptitleradiuscenlonoffsetpsininv.lit8p_errorcosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//sininv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g <$!!-ׇF'iׅF%9(%׍F 9ׄF&h<F$aE߅ߙ$(-߄$ -߿$߼ gPׁF!0@׀F EF!<Eߙ F ;׮F.׭F.kCߙ׌ F-cߡ ׀߿%߼ gPSINUSOIDALInput data errorsinusoidal-inverse0      $ (  8  (((,04 <H T d hp    $ D H`?!TD-!TD-=|׽?(uаxssininv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW sininv.c -o /ecs/hdfeos/obj/sgi64//sininv.o%sininvint(=sininv|Xlon_center R  false_easting !false_northing F /ecs/formal/TOOLKIT/src/GCT/freewaresininv.c 3v y y ~},- 5% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@A( APAM@8|;{sininvintsininv[08`h (8Tq    @X D $|* 0;8p!K0J `k Pu0 @{p  XPp {p #p 6p )p @p C 8 H@  H  h3p x somfor.o/ 877725143 467 20 100664 14532 ` ELF1x @@   *5<DKW_cg r y}/BV.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.MIPS.interfaces.text.sbss.bss.lit8.rodatasomforintgsat_ratioptitleradius2genrptgenrpt_longoffsetpcossinsom_seriessomfortanatansprintfp_errorasinlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//somfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hF-F,g0H`PX08h%p%<$!!-x߰@לס߄F xׂסF"CߢDFF כ&`*`DF!׀0F ׃(F8ט8F8ׁ@׀ ט`DFaׂ`F"B׀XF!ׁ8F!ׂ@ׁPטH`כߙ߄$ -ߙ׍ ׌ߙ %ߙ߅$ (- %ߙ߅$ (-ߙ߅$ךh(- F:ߙ߅$׌(- F:cߙ׍ ׌$߇ߙ߅ (-ߙ F F ׅpF F%<EߙF .ߙ F ׂxF"BF )BF"F&(ןxF"BF"F&1F%F'F:BF& F!AF&Cph$$$$ $($ H-@-8-F'10-(-ߐF!B -$-%ׅXHF%@8@ Pמ$c$ ׺(׻ ׼׽׸%$$$$ $($ H-@-D8-0-F(- - ף(F>ע F>סF>BנF:F>ףF;F>F<$F=@!-5F8$Z$׾0%$$$$ $($ H-@-D 8-0-F!!(- - נ(F?ף F?עF?סF:F?BנF;F?F<$F=@!-5F8%׿8ߵp߱h$$$$ $($ H-@-8-0-(-ׁ - ס(F:׀F փףפF=FEׁׁׂׄF! 2ףEhׂhׄףpF$<E׬pׁh׬p%ׂxןל`׸hׁF?F<׀hF"Aߙx F?סF סxכF!߂ׄpףBߙ׺h% F ׂF >EF F׃ׄF$<Eߙׁߙ ׬hעF ׁF!׽hF AF:F?ߙF  F F FF F;<EߙטF8ߙ F ׬F,׭ߙF-c F9cF @F F EF!F F;<E$D-*C3P`"׼F Ά$-* 7ׁץF!)BF9(<׀EF (F <E.ߙF%<EF9>ׂhF9>E׸h׃h׸hF<F?׿׻׽׹߲ߵ$$ߙ߅ - (-$ -ߙ߅$ (-$߼׸`߿׺׾g@ߙ F ߙ ׬pߙF  ׬pߙF F F ׮F:sF:s׍F.kAF kD׬׮F.c׮xF.F:cF sߙF.c F-c׌F,ߙ׍ F-cߙ F ߙF  F F ߙF F  F אPF;׎8F;s׏׍@F/F;kBF/sF0sF/k@F.kCF kDסxF!BF F hמXF>BF ׌xF,ߙF! F F Fߙ׌׼ F,F:F8sאF=׍F9kB׏ F {F0k@F/k@F.kAכF;kB׌ߙߥF, F:F8ם0F Bך(F?ւF=րF<ր%׾߿F;ւ׿יט߼ߵ߲׽F:@Z׼ֺ׻F:ߵ׹׺X߲׸`g@g`@%׀?X%F hP`8 %ߙHF  ?F BߙF  0װ0ׂPF0׃8F0בF1F1F"F ׏@F0{F"F1{F0{F {ׄ`אhF$F F0{ׁXF! F/xF sF sF#F#׃pF$F#F"F!F F.׍xߙ?(  F-cF?ߙ ׍ F-c/F {׿ߡhߙ߾P/ ׯF?{׮(F.{װ F0{F/߱@׍ߙ  F-c׿F?߰8ߢ`߾X߿H_׿g?@?=?[Ow@` =p?򽴆&?FR5?)O?l0a\j?SC~@`)?lī@Lc˰>. &֕@@@V@>@N@.@F?!z!z?!TD-@jz)U8^@|3!Ҿz򚼯H@!TD->z򚼯H@ !TD-??!TD-@?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without conv som-forward      $ ( , 2 8 > D N R V Z ^ b f j p t x |         <@hLP|00HHhh#L##x#@DP8<HLP`p| $(,48<DH \ `hp x       , 4 @T|pLt   HTp       0   4 h t        0 8 @ D t              8 <       , 0 @ \ |   ?(uаxsomfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW somfor.c -o /ecs/hdfeos/obj/sgi64//somfor.o'somforint (somfor som_series H lon_center  a  b  a2  !a4   $c1 ( 'c3 0 *q 8 ,t @ .u H 0w P 2xj X 5p21 ` 9sa h ע F>סF>BנF:F>ףF;F>F<$F=@!-5F8$Z$׾0%$$$$ $($ H-@-D 8-0-F!!(- - נ(F?ף F?עF?סF:F?BנF;F?F<$F=@!-5F8%׿8ߵp߱h$$$$ $($ H-@-8-0-(-ׁ - ס(F:׀F փףפF=Fߙ F ւߙF F F<ߙF  F ߙ׌F  F,׸F:עF"F"ЃF?ףF#סF!BF נףF F#F"F!F F>׾F>F;ǁׅhF F%<Eמpמp$"-2ל*#2`׼߅ߙ$(-߄$ -$߼8߱ ߲׸׹0׺׻(׼׽8߿׾׿g`ߙF  ߱ ߙ׌F F F,F:׭F-cF-cF=cF cF9׮F.׭F/kAߙF.kA F-cߙF  ׿ߙF F  ׁF F!<E׌ׂF"׌ߙF, F>cF BhF pߙF ׾ xF FF ךpכאxߙ׏HX `׮hF.sׯF/sׯxF/AF=sF1s׭`F/lBF1sF s׬XF,HF,{ױpF1BF1sF9sF,F=k@F cF/kBF:cF-A ߙF.cF P F-cF >EF F;<סE@ׂx@ߙF  יxF >EߙߙF  ׹F;<׆Eץ@יxF9ׄF$F%F F&<EF#ցׯx׮XF/s׭HF-kBF.k@F kDߙ׬p F-c׆F;0>E׹ߙ F ߙF F F ׮ F.׬PF,׭HF. &֕@@@V@>@N@.@F@>z򚼯Hz򚼯H!TD-?!TD-?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse       $ ( , 2 8 > D N R V Z ^ b f l p t x |      @D04X\p0t0HHhh   #$ # #P # LTXdhpt (, @ DLT l        ,T\H`xLPTX\hlp|  ( 4 D T X X h l     <@DH L   ( 0 D P X      l        0 P T |   ?(uаxsominv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW sominv.c -o /ecs/hdfeos/obj/sgi64//sominv.o%sominvint(sominv `som_series ` lon_center a b a2 !a4  $c1 ('c3 0*q 8,t @.u H0w P2xj X5p21 `9sa hu ~}~}~.. $$((% |zyx v  ~uu y|y .}}z{.}}z{Fx}xy&~~~   }~%~D"v 0y, 0{ {;X%&~  }5$1~8(% B .: ; 9 ? @ @.: ; 9 @ @4: ; 9  @ @AP DA AAAAAAA B B EN@ G @`@ H| AAAE&G'A@ A BDA%AAG)0 ` AA CB F C@ 8 ;sominvintsominv-som_series[08 *2:Scs+<M]q      @0 pj^8$ *006>p!P  fXpq  P{p $Pp$hp'Zp*vLp*p+@p, Cp,M5 , ,` , . 0 /D /Yp /(@sphdz.o/ 877725145 467 20 100664 5364 ` ELF @@ !%-9ES`o.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.data.lit8.rodatasphdzabsp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//sphdz.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onP%g %<$!3!-Ԧԧ׈F 1F 9F&@;F$@<E ߉߂$C-BA. ׃(ߙ @ %@P%(J@@ %߅ߙ$(-߄$ -߅ߙ$(-߄$ - %߂ߡ$ I-ߩb-cbA"!%߿ ߼߾g`AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@?AXM@Invalid spheroid selectionINFORMATIONALReset to 0      $(4 < D0H0X`0L  8 ?(uаx sphdz.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW sphdz.c -o /ecs/hdfeos/obj/sgi64//sphdz.obsphdz(Pmajor Vminor 9E /ecs/formal/TOOLKIT/src/GCT/freewaresphdz.cҤ( z~~} { |~  ~~~$,-}|~% B .: ; 9 ? @ @4: ; 9  @ @A( B`A@A B 8(sphdzZ0 8      @ 3;$*h@006;>p!P @ fXq `{p  8Pp p Ap 6p Xp i@p 0   p   sterfor.o/ 877725146 467 20 100664 6340 ` ELF@ @@  (/6@GOtWbf ltx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatasterforinttsincosptitleradiuscenlonmeroriginoffsetpsterforadjust_loncos.lit8p_errorsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//sterfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$(g$<$&-$0F s ߙ(-0- (-ߙ߄$ -ߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g@gPHF nX<$!!-ߙ׀@ F c8F F F $ߙ$0- (-ߙ׬8 ׻ץׁ0ׂ(0F!)BסF"BF )BF!)@ׁF!)@ׄF (F$>(EF ߅ߙ$(-߄$ -߿@$g߼XgׂF%ߙ׬  עׁF"Bפ0F$ F !׃ F$ߡH#ע׀(ׄ0F"עF"!ע(F"F !F!!׃F$߿P߿@%߼XgSTEREOGRAPHICPoint projects into infinityster-for@       & * . 2 8 (048<@ T h pt |     $(DLh  X\  d0l0tx?=|׽@?(uаxsterfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW sterfor.c -o /ecs/hdfeos/obj/sgi64//sterfor.o%sterforint(Fsterfor$Xr_major lon_center lat_origin false_northing false_easting   sin_p10 (!cos_p10 0G /ecs/formal/TOOLKIT/src/GCT/freewaresterfor.c + u z~    ,(I~,D% B .: ; 9 ? @ @4: ; 9  @ @A( C@A@B0t AC BF@8$=sterforintsterfor\08`h  *C\y      @ D$"F$$*8098p!Q@J ` Xj hu0 X{p  pPp ppR6pp@pXE  @    3p 0sterinv.o/ 877725147 467 20 100664 6916 ` ELFx @@  (/6@GOW ]bgmx|.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatasterinvinttsincosptitleradiuscenlonmeroriginoffsetpsterinv.lit8atanasinatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//sterinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF p$(g$<$&-$0F s ߙ(-0- (-ߙ߄$ -ߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g@g@<$!!-׀(כ F hF;fF F;F F ׍׌F-cH%8ߙ%0 F,$$0-ߙ׌(- F cׂF E׀F"> E %׃߼@߱8׻(߿0ߵHgpׯ׮F/s׍0F.kBF;kC׌(׮F.cߙ F-cׅ׃F (EF#@ׂF EF">E)׀F%>Eߙߙ׭׬ F kGߙ׬  F,%߼@ ߱8߿0ߵH׻(gp׬׭ F cߙ׬  F c%߼@ ߱8߿0ߵH׻(gpߙ ׂ֬(F צF 1ׁF 0F!<Eץ׀F (F <E%߼@߱8߿0ߵH׻(gp׮F%sF&Bߙ׌0 F.cߙ׬  F,%߼@ ߱8߿0ߵH׻(gpSTEREOGRAPHICZ       & * 0 4 8 > B H N R (048<@ T h pt |    ( , < D\       D x     X\  @=|׽!TD-?(uаxsterinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW sterinv.c -o /ecs/hdfeos/obj/sgi64//sterinv.o%sterinvint(Gsterinv0Xr_major lon_center lat_origin false_northing false_easting   sin_p10 (!cos_p10 0G /ecs/formal/TOOLKIT/src/GCT/freewaresterinv.c + t z~    u u & ~{0,, 4- |% B .: ; 9 ? @ @4: ; 9  @ @A( C@A@B0 ApAE MBC@80=sterinvintsterinv\08`h  *C\y      @ D<&b$0* @80 @8p! NZJ ` j u0 {p 8PppS%px6pp>@p~E  @    (3p 8@stplnfor.o/ 877725148 467 20 100664 12788 ` ELF* @@  # )5;AGNU]eqw}"2CSf.symtab.shstrtab.strtab.comment.text.sbss.data.rodata.srdata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.data.rodata.srdata.lit8stplnforintfopenfseekfreadfcloseptitlesprintfp_errorgenrpt_longpakczpaksztmforintlamccforintpolyforintomerforintstplnfortmforlamccforpolyforomerfor.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//stplnfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$ g0%<$B"-߁%$U`%q _H%߅$ $(-ܡ0R$+h %V ~ߙ %$ (-@}@%` %0%ߙ((/((/ )8`8%$ ߙ$$  -`8%$ߙ$$  -`8%$ ߙ$$  -ߙ ` %jߙ 8%0%$0 -ߙ߅$ (-$0 -ߙ߅$ (-$߼߰߱߿߲߳g%߼߰߿߲߱g$!H-*(-$"H%߅$ $(-ܡ00$ %$#H-*(-K 8%0%$0 -ߙ߅$ (-$0 -ߙ߅$ (-$߼߰߿߲߱gߙ %$ (-@@%߳$߅߄ߙ(-$ -$߼߰߿߲߱g߄$ - %ߙ߅$ (- $S$ߙ߅$ (-עׁF"AF DעF"B$F x8pߙף׬ `ߙF $ (-ׄF$ߤ h߼߰߱߿߲߳gߙ ׬ߙF $ (-ߤ ߼߰߱߿߲߳g׬x׭p׮`ׯhײߙאױ F0%$c$ߙ ׬ߙF $ (-ׁF!ߤ H߼߰߱߿߲߳gߙ ׬ߙF $ (-ׂF"ߤ 0߼߰߱߿߲߳gߙ ׬ߙF $ (-׃F#ߤ (߼߰߱߿߲߳gߙ ׬ߙF $ (-ߤ ߼߰߱߿߲߳g׬x׭p׮Hׯ0װ(׳ߙבײ F1B%5$ߙ ׬ߙF $ (-ׁF!ߤ @߼߰߱߿߲߳gߙ ׬ߙF $ (-ߤ ߼߰߱߿߲߳g׬x׭p׮@ױߙ׏װ F/Z%X%ߙװ׬ PߙF $ (-ׁF!ߤ X߼߰߱߿߲߳gߙ ׬ߙF $ (-ׂF"ߤ 8߼߰߱߿߲߳gߙ ׬ߙF $ (-ߤ ߼߰߱߿߲߳g׬x׭p׵׳ײ׮P״ׯXװ8$פבߙF1Bף  %߼߰߱߿߲߳gg<$B"-F a$ ߙ F #@+@0%߿߼g0$ $ߙ F #@@0%߿߼g0 $ߙ F #@@0%߿߼g0 ߿ߙ F #@@0%߿߼g0߿%߼g0ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4d for spheroid #%4dstate-initError opening State Plane parameter filestate-forSTATE PLANEZone: Datum: NADr??FR5      $ , 0 6 : @ D H L P V Z ` d h n r x |                     LT<@X(\( $<(@(hh88xx(@|    $ 8 T  8 l t   0D X l   , 8 L    4 @       p t    L X  $8 l   ?(uаxhstplnfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW stplnfor.c -o /ecs/hdfeos/obj/sgi64//stplnfor.o5stplnforint(stplnfor0 p id  inzone  NAD27 ( NAD83 0eH /ecs/formal/TOOLKIT/src/GCT/freewarestplnfor.c9 : } !~ n}0((( y0(    !~ | 0( ,%$~{800  7Mn8080800  #a u800  nq80800    | | | % B .: ; 9 ? @ @4: ; 9  @ @A@ BA@ ABAFQ Ex ( A0AH@8 ?pstplnforintstplnfor]08x )>Rf   ? @ R"z$L *X0X`6>`F0hLp!x^ h tHp p #Pp$pp%mp'6p(+p(@p) G )X )h@ ) *h - *Ap *Pstplninv.o/ 877725150 467 20 100664 12852 ` ELF+( @@  # )5;AGMT[ckw} (8IYl.symtab.shstrtab.strtab.comment.text.sbss.data.rodata.srdata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.data.rodata.srdata.lit8stplninvintfopenfseekftellfreadfcloseptitlesprintfp_errorgenrpt_longpakczpaksztminvintlamccinvintpolyinvintomerinvintstplninvtminvlamccinvpolyinvomerinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//stplninv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$ g %<$B"-߁%$X`%t bH%߅$ $(-ܡ0U$+k %V ߙ %$ (-@@%@ %0%ߙ((/((/ )8ߙ @ %@8%$ ߙ$$  -@8%$ߙ$$  -@8%$ ߙ$$  -ߙ @ %jߙ 8%0%$0 -ߙ߅$ (-$0 -ߙ߅$ (-$߼߰߱߿߲߳g%߼߰߿߱߳g$!H-*(-$"H%߅$ $(-ܡ00$ %$#H-*(-k 8%0%$0 -ߙ߅$ (-$0 -ߙ߅$ (-$߼߰߿߱߳gߙ %$ (-@@%߲$߅߄ߙ(-$ -$߼߰߿߱߳g߄$ - %ߙ߅$ (- $S$ߙ߅$ (-עׁF"AF DעF"B$F 8xߙף׬ hߙF $ (-ׄF$ߤ p߼߰߱߿߲߳gߙ ׬ߙF $ (-ߤ ߼߰߱߿߲߳g׬׭x׮hׯpײߙאױ F0%$c$ߙ ׬ߙF $ (-ׁF!ߤ P߼߰߱߿߲߳gߙ ׬ߙF $ (-ׂF"ߤ 8߼߰߱߿߲߳gߙ ׬ߙF $ (-׃F#ߤ 0߼߰߱߿߲߳gߙ ׬ߙF $ (-ߤ ߼߰߱߿߲߳g׬׭x׮Pׯ8װ0׳ߙבײ F1B%5$ߙ ׬ߙF $ (-ׁF!ߤ H߼߰߱߿߲߳gߙ ׬ߙF $ (-ߤ ߼߰߱߿߲߳g׬׭x׮Hױߙ׏װ F/Z%X%ߙװ׬ XߙF $ (-ׁF!ߤ `߼߰߱߿߲߳gߙ ׬ߙF $ (-ׂF"ߤ @߼߰߱߿߲߳gߙ ׬ߙF $ (-ߤ ߼߰߱߿߲߳g׬׭x׵׳ײ׮X״ׯ`װ@$פ בߙF1Bף(  %߼߰߱߿߲߳gg<$B"-F a$ ߙ F #@+@0%߿߼g0$ $ߙ F #@@0%߿߼g0 $ߙ F #@@0%߿߼g0 ߿ߙ F #@@0%߿߼g0߿%߼g0ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4d for spheroid #%4dstate-initError opening State Plane parameter filestate-invSTATE PLANEZone: Datum: NADr??FR5      $ ( 0 4 : > D H L P T Z ^ d h l r v |                      LTHLd(h(,0H(L(hh88xx$((@|    (0 D ` ( D x     $<P d x   8 D X    @ L      , |       X d  0D x   ?(uаxhstplninv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW stplninv.c -o /ecs/hdfeos/obj/sgi64//stplninv.o5stplninvint(stplninv0 p id  inzone  nad27 ( nad83 0bH /ecs/formal/TOOLKIT/src/GCT/freewarestplninv.c: : } !~ n}0((( y0(    !~ | 0( ,&$~}800  8Ln8080800  $` u800  mp80800    | | | % B .: ; 9 ? @ @4: ; 9  @ @A@ BA@ AB AFQ Hx ( A0AH@8 ?pstplninvintstplninv]08x )>Rf   ? @ R:$l *0`6>F0Lp!^  tp  p $Pp$`pp%jp(:6p(pp)@p)PG ) )@ ) * - *Ap *Ptmfor.o/ 877725151 467 20 100664 9524 ` ELFh @@ d$).38=DLS]dldr}  -@.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatatmforinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptmforadjust_lontsincossin.srdatap_errorlogcosacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//tmfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hgF"<$!!-ׁF"AF ph ߙF P Hߙ׌P (ߙ׌P 0ߙ׌P 8F א F ׎8ߙ׍0׌( @ׁPׅF!)F$ ׃F ׂF"<`EXx׀xߙ߄$ -ߙ׍ ׌׌ߙ߅$ (-ߙ ׌ߙ ׌ ߙ׍h ׌p߿%߼gPgP@phF n<$!!-ߙ׀x F cF FF FPF $ߙ$0- (-׃ׂxF#2ENߙ F ץF )B׀F .EF @׀ F EF h=|׽?@@M@2@R@4@@"@@N@@t@>@8TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinityf       $ ( , 0 : > B F L P T Z ^   $H(H,048<@DH PX\ `hl px|      ( 04 <@ DL     LP X\t  4 T`l|  08D\|tm-for?(uаxYtmfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW tmfor.c -o /ecs/hdfeos/obj/sgi64//tmfor.o1tmforintd(ftmfordX"r_major #r_minor $scale_factor %lon_center &lat_origin  'e0 ('e1 0'e2 8'e3 @(e H(es P(esp X)ml0 `*false_northing h+false_easting p,ind xE /ecs/formal/TOOLKIT/src/GCT/freewaretmfor.c, t t | ~&}~ $  ,! "($@ z{(4-}{{{ {}}}}}}~}}}|}}|}|% B .: ; 9 ? @ @4: ; 9  @ @A(d BPB G@ Xd AAC BF@] @89B@ s @8989atmforinttmforZ08`h   6Qj )EW       @ LTp$* 00 6 e>p! fP pP fq  {p Pp(app6ppn@pA  @ @  ' ;p xtminv.o/ 877725152 467 20 100664 10276 ` ELF! @@ \$).38=DLS]dl\rvz!1D.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatatminvinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcosasinzatan2adjust_lonsinp_errortsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//tminv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=onF,hgF"<$!!-ׁF"AF ph ߙF P Hߙ׌P (ߙ׌P 0ߙ׌P 8F א F ׎8ߙ׍0׌( @ׁPׄF!!F$ ׃F ׂF"<`EX$xߙ߄$ -ߙ׍ ׌׌ߙ߅$ (-ߙ ׌ߙ ׌ ߙ׍h ׌p߿%߼gP(%g0@%p<$B"-߁xF nx MF f׀יF Bߙ F9F9؃ׁ F"@F ߙPF  H׺P׎F F:pF ց׀F ւF;F:BF,sF.k@F-cߙ F cׅסHF%ߙ׌(F  F,ף`F#F<סXF!BF?F"F!F=F8ׅ0F EF%>EF8מ * ׀8߅ߙ$(-߄$ -$_߼߳ߵ׸ ׹@׺x׻p׼0׽8߿׾(׿hg$-׽8י@F ׼0F9 <׾(׿hEtߵF $ߙ$0- (-F כXיPצߙץ סF9 F!׍F7mF בF2CF9lF1F7׎F1sF.ӃF BF.uF6BF2CׁF!Cד(F3׃F#ׂPF"CF פF;%F7F$ה8F4F4F6׉F)BׅX׊HF%"׆F4UF&قF)F"F(F%F&׆F&׉`F)B׈pF*F(׈F-F(F)׉x׆F)F&قF(F%!Bׇ F F'!׀hF&F F%F$F#F"F F!F7F6F5F4׏F3F2{F1{F0kAF/F.kBo׮F.kCߙ׌ F-cߡ׸  ߙF  ׸ DFF9ߢׂcB%߼߳׹@߿׺x׻pg?>h?@@=|׽@?!TD-@@8@@$@"@V@N@r@F@o@>@<@ @4TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSEx       $ ( , 0 : > B H L R V Z ^ d h l p   |hhHH,048<@DH PX\ `hl px|      (, 48 <D    T   08 D T X $L dhp $DLT`pt  4?(uаxYtminv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW tminv.c -o /ecs/hdfeos/obj/sgi64//tminv.o3tminvint\(ftminv\dX$r_major %r_minor &scale_factor 'lon_center (lat_origin  )e0 ()e1 0)e2 8)e3 @*e H*es P*esp X+ml0 `,false_northing h-false_easting p. ind xE /ecs/formal/TOOLKIT/src/GCT/freewaretminv.c1 t t | ~&}~ $   s 1=,,2  {{, t-(1x~}w w t  }}}}}}}}}} , % B .: ; 9 ? @ @4: ; 9  @ @A(\ BPB G@ \ BAA@ AB AF y @9:;B@  Q @9:;B@  E FBBBC8d9atminvinttminvZ08`h   6Qj )EW       @ D,X$0d* 00 6Ps>p!xP @ f q {p Ppapq p|6pp@pA   0@ p  !3p ! untfz.o/ 877725153 467 20 100664 4804 ` ELF @@ !)5AO\k{.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.data.lit8.rodatauntfzp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//untfz.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on@%g<$!#!-(P@!߅)` / x -߁ $"- -ԀׁF!2E߅ߙ$(-߄$ -߿$M߼g0߅ߙ$(-߄$ -߿$߼g0߿%߼g0?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit   (PHPt|PP((`x  ?(uаxuntfz.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW untfz.c -o /ecs/hdfeos/obj/sgi64//untfz.o&untfz0(factors E /ecs/formal/TOOLKIT/src/GCT/freewareuntfz.cҤ *  t5,,% B .: ; 9 ? @ @4: ; 9  @ @A( B0A@A8(untfzZ0 8     @ 3#$* 006[>p!P 80 fh8q 0{p Pp p p 6p Xp I@p 0   ` P  pvandgfor.o/ 877725154 467 20 100664 6644 ` ELFh @@ !(/6>GR X^bjv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatavandgforintptitleradiuscenlonoffsetpvandgforadjust_lon.lit8asinztantsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//vandgfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g(8% F nF@<$!!-ߙ׀0 F c׃F ȅF#>F FEׁF יׄF @߼@ߢ(߿0߾8׹ gpD%׌F,ߙ׍F c F-cסׂF EF">EׄעF$׃F F#>E%ׂ F9>ׁEיߙ׌(߾( F,ׁF9BF B׀F! ߙ׌(י F,ׁF9BF B׀F!ߣ(`%߼@߿0߾8׹ gpF $ߙ$0- (-ע׀F"CסF!ׄ0F$F"C׃עF#F"F$J@F! F(9F!JB׈(F 9F(9F)JBF'9BF)!F)AF%J@F% F)!F!BF$BF BF'B׆F#1F!BF&BF)B׉ F)<EF AFF AGF&(ׄF%!F9H>EF EF 8F%)F%ׂ8F$F#F F&ׁF"@ߡ( !F 8F%(F%ׁ8F#AF"AF DF&BׄF!!ߢ(D%߼@߿0߾8׹ gpVAN DER GRINTEN:      $ ( , 2  8  (,04 <H T d hp   $ ( < P \ p x        $ 4 @ `    4=|׽@@ !TD-!TD-???(uаx}vandgfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW vandgfor.c -o /ecs/hdfeos/obj/sgi64//vandgfor.o(vandgforint(Avandgfor`X!lon_center "R #false_easting $false_northing H /ecs/formal/TOOLKIT/src/GCT/freewarevandgfor.c 7v y  )~~~ =(+~~A=% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@AH ApBB BF@U @9Cp@ 8`?vandgforintvandgfor]08`h  2B^{      @p D$`*  0 8p! (:J h` k u0 x@{p  Pppp6ppe@pG  @ @    3p 08vandginv.o/ 877725154 467 20 100664 6532 ` ELF @@ !(/6>G MRVamy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatavandginvintptitleradiuscenlonoffsetpvandginv.lit8acoscosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//vandginv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@gph<$!!-׏׃F/HךF:fF#փ8םF=oAF#CF-iF:҂׎F.kF'R׋F+@F-cF hEF"BF, @F%QAF%(0לF<F. F(BBF+1F,1F)1F&F!F F&F FE PP@ ( F \@ (א8( @ߙP F ׁ0F=>EF<Cߙ׌@׽ F,+ע@F<F=ףF#F"ׁF F!ߙ׌@ F,+ס@F<CעF"CעF"F!ׁHF F!׃PF ЅF#<E ׄ߼h߾`׺H׼0׽8ߢP߿XgD%ײ׭F2kAבF1kB׏F/k@ׯ(F/k@F kDא8ׯ F0{F/k@׎F.kB׎XF.kBF:kCߙ׌ F-c%߼h߾`׺H׼0׽8߿XߣPg`VAN DER GRINTEN4      " & ,  8  (,04 <H T d hp    P h    0 D H p       , < D P T@?@ !TD-@"@;?R8-se !TD-=|׽??(uаx}vandginv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW vandginv.c -o /ecs/hdfeos/obj/sgi64//vandginv.o(vandginvint(AvandginvX!lon_center "R #false_easting $false_northing H /ecs/formal/TOOLKIT/src/GCT/freewarevandginv.c 7v y 5re@MMI! }% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@Ah AAG D Q e@BW @:<=C@ ` @:<=8?vandginvintvandginv]08`h  2B^{     @X D $* ( 0 (8p! 84J p` k `u0 `{p  PPp p%p6p:p@pBG  @    3p (wivfor.o/ 877725155 467 20 100664 6100 ` ELFP @@ &-4<CNR X\dp|.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatawivforintptitleradiuscenlonoffsetpwivforadjust_lonsin.lit8cosp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//wivfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g (<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙF  ׭%߿ ߼(׿gPgp`(0 8%P%F nX<$!!-ߙ׀H F c@F FߙF  F לךכ%F:ߙ F ߙF F F F8F:F;@F F!F EF<<EF8*@ $߅ߙ$(-߄$ -$-׌F,׼0׻(׽ ߙ׺߷8 ׎׏ F/sׯF/sF s׍ߙF.k@׬׸` ׂ(סF"BF B׀߾Pߢ@F!߿H߼Xg@%WAGNER IVIteration failed to convergewagneriv-forward>      " & * . 2 6 $(@  d0l0tx048< DP \ l       h      @DKL?=|׽??랃%? 4\?(uаxswivfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW wivfor.c -o /ecs/hdfeos/obj/sgi64//wivfor.o#wivforint(;wivfor(Xlon_center R false_easting false_northing F /ecs/formal/TOOLKIT/src/GCT/freewarewivfor.c 1v y  )||= { { @ % B .: ; 9 ? @ @4: ; 9  @ @A( BPD B@AX AAA A AA BBBF@ P @8:;<=8(;{wivforintwivfor[08`h (8Tq    @p D$(* 0A8p!>J X` k u0 0{p  Pp {p pz6pph@pC  @ @    3p 0 wivinv.o/ 877725156 467 20 100664 5556 ` ELF0 @@ &-4<C INR]amy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatawivinvintptitleradiuscenlonoffsetpwivinv.lit8asincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//wivinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g (<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙF  ׭%߿ ߼(׿gPg0<$!!-ׁן ׂF!B(׀F"`%ߙF h F!ߙF  ׎F.F s׭F.kCߙ׌ F-cׁ׿F!ߙ F ߙF?׍߾  F-c%߼0߿߾(׿g`WAGNER IV6      " & * . $(@  048< DP \ l    ( 8 @ ? 4\?랃%@@DKL?(uаxswivinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW wivinv.c -o /ecs/hdfeos/obj/sgi64//wivinv.o"wivinvint(:wivinvpXlon_center R false_easting false_northing F /ecs/formal/TOOLKIT/src/GCT/freewarewivinv.c 0v y z%D,% B .: ; 9 ? @ @4: ; 9  @ @A( BPD B@A0 A`A AIF@ 8p;{wivinvintwivinv[08`h (8Tq     @p D $p* 0 8p!*6J ``k Pu0 {p  Pp P{p p x6p p >@p ~C  @    3p (wviifor.o/ 877725157 467 20 100664 5588 ` ELFP @@  '.5=EPX ^bnz.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatawviiforintptitleradiuscenlonoffsetpwviiforadjust_lontsincos.lit8sin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//wviifor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g0 %F o(<$!!-ߙ׀ F c$0-$ߙ׌(- F,ߙ F ׄF$F$!B׀F%AF )D׿F%F ׃F?F ׂ ׁF"F%ׅ(F%BF#F$BפF$F#B׀ןF"%F!߾0߿߼(߾ ׿g`WAGNER VII.      " &  8  (,04 <H T d hp      $0 LP@??}A5T@@V|G?LPr?(uаxxwviifor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW wviifor.c -o /ecs/hdfeos/obj/sgi64//wviifor.o"wviiforint(:wviiforXlon_center R false_easting false_northing G /ecs/formal/TOOLKIT/src/GCT/freewarewviifor.c 0v y   ,}% B .: ; 9 ? @ @4: ; 9  @ @A( B@BB@A0 A`BB BF@ 8=wviiforintwviifor\08`h  -=Yv     @X D $* 0 8p!+.J ``k ppu0 0{p  Pp `p p 6p p ^@p E  @ 8   3p ((wviiinv.o/ 877725158 467 20 100664 5780 ` ELF @@  '.5=E KQUY_jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatawviiinvintptitleradiuscenlonoffsetpwviiinv.lit8asinzsintanatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//wviiinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on$gF g<$&-ߙ߄ -ߙ F ߙ׬ ׿ߙ׍ ׌߿%߼g@g8<$!!-לFEׁ߅$(-߄ߙ$$?- -$߼(׸׹߿ ׺׻gpF!<EׂF8<E׃߅$(-߄ߙ$$?- -$߼(׸׹߿ ׺׻gpF#<E׀ F9<E׆(߅$(-߄ߙ$$?- -$߼(׸׹߿ ׺׻gpF&@F IFF"ȁF F"0F(F88>E*F)* <4cƀt*`$߅$(-߄ߙ$$?- -%߼P߰@߿0ߴH׸(g ߅$(-߄ߙ$$?- -%߼P߰@߿0ߴH׸(g߅*  ߅$(-߄ߙ$$?- -%߼P߰@߿0ߴH׸(gߙ8 $p@@%߅$(-߄ߙ$$?- -%߼P߰@߱8߿0ߴH׸(gףךPF#ЃDFׁHF!CX@T(@hנפ C׃X4-DF#{@A0F# Isin_error @ x__iob\ISIN_BADALLOC ]ISIN_BADPARAM ^ISIN_BADHANDLE  _ISIN_BADKEY 0disin g /ecs/formal/TOOLKIT/src/GCT/freeware/usr/includeisinusfor.c傦stdio.hb ::~5x  4 |4 |4 ~40}|4 |4 ~40}z4 !~4  ) mmm;31G(;3,~%;3,;3-;3;3 ;x$~zz;y z{{{| 4 |=,|-*B  }}y{|4'~DD(& (|! |, A~~(H}~% B .: ; 9 @ @.: ; 9 ? @ @.: ;9 ? @ @.: ;9 @ @4: ; 9 < ? 4: ; 9  @ @A(< A A@8< CpA@ A B B A F@XP DA@A A F C YC} C( D0AF@0 0, A@AF@ @( \ A0A@AB( @D A A@8 isinusforinit!Isin_for_initPisinusfor{Isin_fwdIsin_for_free;errorIsin_error|08`h PX  8@Hcks <Ys    @ (]$ *P2@8 >p!  P 0  fP`q ){0,`p ,! - - @p -`Pp-p0@ p4Jp4p6}@p6p7DC& 76 7G 8xW :8 j :X~ :hisinusinv.o/ 877725161 467 20 100664 16916 ` ELF:H @@<! '/<= <K QXP_ Djqvz  0 !4H.symtab.shstrtab.strtab.comment.text.rodata.data.sbss.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.content.data.rel.MIPS.content.data.rel.data.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.text.rodata.data.sbsserror__iobfprintfisinusinvinitIsin_inv_free.lit8Isin_inv_initIsin_errormallocfreecosisinusinvIsin_inv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//isinusinv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=ong$0%8%߅߄ߙ(-$@ -߿g F qFF yg F fF n(<$!!-߄F FF ߙ0 8ץ0@פ8߅$(-߄ߙ$$?- -$߼(׸׹߿ ׺׻gp׀F >Eׁ߅$(-߄ߙ$$?- -$߼(׸׹߿ ׺׻gpF!<EׂF8<E׃߅$(-߄ߙ$$?- -$߼(׸׹߿ ׺׻gpF#<E׀ F9<E׆(߅$(-߄ߙ$$?- -$߼(׸׹߿ ׺׻gpF&@F IFF"ȁF F"0F(F88>E*F)* <4cƀt*`$߅$(-߄ߙ$$?- -%߼P߰@߿0ߴH׸(g ߅$(-߄ߙ$$?- -%߼P߰@߿0ߴH׸(g߅*  ߅$(-߄ߙ$$?- -%߼P߰@߿0ߴH׸(gߙ8 $p@@%߅$(-߄ߙ$$?- -%߼P߰@߱8߿0ߴH׸(gףךXF#ЃDFׁHF!CX@T(@hנפ C׃P4-DF#{@A0F# EׁF!)@ׂPF"(<E߿F&(߿%߼g@g%<$!!-߅$(-߄ߙ$$?- -߿߼߷g0h< 4B#"߅$(-߄ߙ$$?- -߿߼߷g0ߙ` hߙ % `%߿߼߷g0g$ ܈0%߅߄ߙ(-$ @ -߿$g memory allocationinvalid parameterinvalid handleinvalid key error (isinusinv.c/%s) : %s isinusinvinitbad return from Isin_inv_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_inv_free error (isinusinv.c/%s) : (%i) %s 0@      ( 0 8 @ H P V \ j r z         PPdhpp# pp #lpxp|p#pp#H(L(TpX\p`h#XXpp# p$(p,4#pp#pp#t x    #   $ , #   #   #<TX`d hl t #   #   #   ( (     # 8 < \H `H h l  p t  | # H H 0  0  # P  T  `X dX l p  t x  # X X 0  0  # (h 8h < p  X h             D t    $ P \  (    D           @ !TD-@!TD-? =pA3ƀ\)?zG{zG{@zG=|׽@ !TD- !TD-??@?!TD-!TD-8!7777 8(?(uаxisinusinv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW isinusinv.c -o /ecs/hdfeos/obj/sgi64//isinusinv.oS error <(iisinusinvinit<XX Isin_inv_initX isinusinv0 0Isin_inv 0 <Isin_inv_free0 < @> Isin_error dp__iob\ISIN_BADALLOC ]ISIN_BADPARAM ^ISIN_BADHANDLE  _ISIN_BADKEY 0disin g /ecs/formal/TOOLKIT/src/GCT/freeware/usr/includeisinusinv.c悦stdio.hb ::~5x  4 |4 |4 ~40}|4 |4 ~40}z4 !~4  * mmm;31G(;3,~%;3,;3-;3;3 ;x$~zz;y z{{{| 4 |=,|-*B  }}y{|4%~D|  %(%~(H}~% B .: ; 9 @ @.: ; 9 ? @ @.: ;9 ? @ @.: ;9 @ @4: ; 9 < ? 4: ; 9  @ @A(< A A@8< CpA@ A B B A F@XP DA@A A F C YC} C( D0AF@( 0 A@AF@( < A0A@AB( D A A@8 disinusinvinit!Isin_inv_initPisinusinv{Isin_invIsin_inv_free;errorIsin_error|08`h HPx  8@Hcks <Ys    @ (]$ d*02@8>p! P   f0`q ){0,@p ,! , ,@p -8Pp-p0 p4"p4p6M@p6p7C& 7X6 7hG 8HW : j :(~ :8utmfor.o/ 877725162 467 20 100664 10132 ` ELF @@ ,%)16;@EJQ]elv,}  0C.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodata.lit8utmforintabsp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutmforadjust_lontsincossin.srdatalogcosacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//utmfor.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on %F `g(<$!!-ߙ%  (B@ߙ  %(C=` %߅ߙ$(-߄$ -$ ߿ ߼(߰gPׁߙפףע "#@$!IDF!ׁF!ׁpׅׄׄ׃F%F#ׂ F#F DhߙF P Hߙ׌P (ߙ׌P 0ߙ׌P 8F א F ׎8ߙ׍0׌( @׃Pׅ F#(AF!CׂF ׄ(F$<`EXxߙ߄$ - %ߙ߅$ (-ߙ׍׌ ߰׌ߙ߅$ (-ߙ ׌߿ %߼(gPgP@phF n<$!!-ߙ׀x F cF FF FPF $ߙ$0- (-׃ׂxF#2ENߙ F ץF )B׀0F .EF @׀8F EF h=|׽?@@M@2@R@4@@"@@N@@t@>@8t       " & * . 2 6 : > H L P T Z ^ b h l  \dlp((PP``HL( D `    $,0 4<@ DLP T\dlp tx      T X|     $<T p  (4DHL PT`lt| $DL|utm-for?(uаx^utmfor.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW utmfor.c -o /ecs/hdfeos/obj/sgi64//utmfor.o0utmforint,(cutmfor,X"r_major #r_minor $scale_factor %lon_center &lat_origin  'e0 ('e1 0'e2 8'e3 @(e H(es P(esp X)ml0 `*false_northing h+false_easting p,ind xF /ecs/formal/TOOLKIT/src/GCT/freewareutmfor.c* 9| |  y,$~0~ |~&}~ $ $  ,! "($@ z{(4-}{{{ {}}}}}}~}}}|}}|}|% B .: ; 9 ? @ @4: ; 9  @ @A(, CPCAF@X, AAC BF@] @89B@ s @898;futmforintutmfor[08`h %;Vo.J\       @ LWs$ * 0 80 x>p!(tP  f q p{p Pphfpp6p!p@pC ` p@  0 ' P;p  `hutminv.o/ 877725163 467 20 100664 10964 ` ELF$H @@ 8%)16;@EJQ]elv8}$4G.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodata.lit8utminvintabsp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutminvexpcosasinzatan2adjust_lonsintsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.10-1263486820:/ecs/hdfeos/obj/sgi64//utminv.obe-options:::-PHASE:w:c -G8 -TENV:PIC -m1 -LNO:plower=off -TARG:abi=64:isa=mips3 -O2 -LANG:=ansi_c -TARG:t5_ll_sc_bug=on %F `g(<$!!-ߙ%  (B@ߙ  %(C=` %߅ߙ$(-߄$ -$ ߿ ߼(߰gPׁߙפףע "#@$!IDF!ׁF!ׁpׅׄׄ׃F%F#ׂ F#F DhߙF P Hߙ׌P (ߙ׌P 0ߙ׌P 8F א F ׎8ߙ׍0׌( @׃Pׁ F#AF!CׂF ׄ(F$<`EX$xxߙ߄$ - %ߙ߅$ (-ߙ׍׌ ߰׌ߙ߅$ (-ߙ ׌߿ %߼(gP(%g0@%p<$B"-߁xF nx MF f׀יF Bߙ F9F9؃ׁ F"@F ߙPF  H׺P׎ F F:pF ց׀0F ւF;F:BF,sF.k@F-cߙ F cׅסHF%ߙ׌PF  F,ף`F#F<סXF!BF?F"F!F=F8ׅ8F EF%>EF8מ@* ׀H߅ߙ$(-߄$ -$_߼߳ߵ׸ ׹@׺x׻p׼0׽8߿׾(׿hg$-׽8יXF ׼0F9 <׾(׿hEtߵF $ߙ$0- (-F כXיPצߙץ סF9 F!׍ F7mF בF2CF9lF1F7׎F1sF.ӃF BF.uF6BF2CׁF!CדPF3׃F#ׂ`F"CF פF;%F7F$הHF4F4F6׉F)Bׅp׊hF%"׆F4UF&قF)F"F(F%F&׆F&׉xF)B׈F*F(׈F-F(F)׉׆F)F&قF(F%!Bׇ@F F'!׀F&F F%F$F#F"F F!F7F6F5F4׏0F3F2{F1{F0kAF/F.kBo׮F.kCߙ׌ F-cߡ׸  ߙF  ׸ DFF9ߢׂcB%߼߳׹@߿׺x׻pgIllegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE?FR5AAc?>h?=|׽@@@?!TD-@8@@@$@"@V@N@r@F@o@>@<@ @4       " & * . 2 6 : > H L P V Z ` d h l r v z ~  \dlp((PP` `X\( D `    $,0 4<@ DLP T\dlp tx      dx|   0\ l p    0 4l ( @DL lx (0<LPdp  ?(uаx^utminv.ccc -64 -mips3 -c -O -xansi -D_POSIX_SOURCE -DIRIX -I/ecs/formal/TOOLKIT/include -I/ecs/formal/TOOLKIT/include/FW utminv.c -o /ecs/hdfeos/obj/sgi64//utminv.o3utminvint8(gutminv8@X$r_major %r_minor &scale_factor 'lon_center (lat_origin  )e0 ()e1 0)e2 8)e3 @*e H*es P*esp X+ml0 `,false_northing h-false_easting p. ind x+F /ecs/formal/TOOLKIT/src/GCT/freewareutminv.c0 <| |  y,$~0~ |~&}~ $ $   s 1=,,2  {{, t-(1x~}w w t  }}}}}}}}}} , % B .: ; 9 ? @ @4: ; 9  @ @A(8 CPCAF@8 BAA@ AB AF y @9:;B@  Q @9:;B@  E FBBBC8@;futminvintutminv[08`h %;Vo.J\       @ D,[$4@*x0x800>p!P  fHq P{p HPpfp3p 16p gp!O@p!C ! !@ "( #  #3p #phdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibIRIX65-64.a0000644000175000017500000235532412024715435021514 0ustar amckinstryamckinstry! /SYM64/ 1230066461 0 0 0 3152 ` **JJk$k$tt$$4499\\TTtt4488VtVtk$k$ddddddd88PPll$$ddȄȄ$$  !!88VtVtttttTT55QQkk44%%[$[$ss??eeTTؤؤTT4rtʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄʄ                  gt y$ alberforintalberforalberinvintalberinvalconforintalconforalconinvintalconinvazimforintazimforaziminvintaziminvbceaforintbceaforbceainvintbceainvceaforintceaforceainvintceainveqconforinteqconforeqconinvinteqconinvequiforintequiforequiinvintequiinvgnomforintgnomforgnominvintgnominvgoodforintgoodforgoodinvintgoodinvgvnspforintgvnspforgvnspinvintgvnspinvhamforinthamforhaminvinthaminvimolwforintimolwforimolwinvintimolwinvisinusforinitIsin_for_freeIsin_for_initisinusforIsin_fwdisinusinvinitIsin_inv_freeIsin_inv_initisinusinvIsin_invlamazforintlamazforlamazinvintlamazinvlamccforintlamccforlamccinvintlamccinvmerforintmerformerinvintmerinvmillforintmillformillinvintmillinvmolwforintmolwformolwinvintmolwinvobleqforintobleqforobleqinvintobleqinvomerforintomerforomerinvintomerinvorthforintorthfororthinvintorthinvpolyforintpolyforpolyinvintpolyinvpsforintpsforpsinvintpsinvrobforintrobforrobinvintrobinvsinforintsinforsininvintsininvgsat_ratiosomforintsomforsominvintsominvsterforintsterforsterinvintsterinvstplnforintstplnforstplninvintstplninvtmforinttmfortminvinttminvutmforintutmforutminvintutminvvandgforintvandgforvandginvintvandginvwivforintwivforwivinvintwivinvwviiforintwviiforwviiinvintwviiinvfor_initinv_inittsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zonep_errorinitclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblankpakszsphdzuntfzgctpgctp_alberfor.o/ 1230063476 7356 20 100664 7492 ` ELF0@@ 8'/7=CJR[elt@}%.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataalberforintp_errortsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lon__dcis.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:alberfor.o<$!g!-ׁF/pXPF @F HF! B L P T X X@\`@d%h%% %%%( %@%T %PP % % % %%%@Dx% %%%<DHT       $0 H X`       T    (W6x?alberfor.cr_major r_minor c e3  rh  !ns0 ("lon_center 0#false_easting 8$false_northing @(alberforint8 nalberfor@XX8 /ecs/hdfeos/gctp/srcalberfor.cɿ 0 s s s t s)Y'_{z~~~%% %%!~%{|!  zzz ( ~% B 4: ; 9  .: ; 9 ? @ @x@ @A08 C`A D@ABB0@ C@ADCC@8?Galberforintalberfor "8N^o -5=M(0`h   @ DT9$*H006j>p! B`P @ f q @{p Pp0Gpw`p7pp@pG ( 8 H@   3p alberinv.o/ 1230063516 7356 20 100664 8356 ` ELF0@@ <'/7=CJR[elt@$} ..symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataalberinvintp_errortsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberinvatan2logphi1zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:alberinv.o<$!g!-ׁF/pXPF @F HF!׆HF-BF'aF(1F'8L0!0H%׈EF ׈F F F%2EQߙ@DH8 כ׃ׂF:BF;>F"CיO!yE!F:C׍ߙF;kF-@׸H F-cא ׏ב F0|F1F0F;F0{F F {F0{׎F {F/s<ג(ד0E 3DF9>׹8E׻@׹8rߙF F׸Hg F `ߧ׻@׹8߿0׺(߳߼gPs׭ F:kCߙ׌8 F-cߢ߿0@%߼߳׺(gPF(3B F(; @8ך0ߙF Fg F `ߧ׻@׹8߿0ך0=|׽???!TD-!TD-Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREAf       " & * . 2 6 : > B L P V \ ` XH\`Hd%h%% %%%, %D%X %XX % % % %%%@H%%%%4%<DHT       (4 L \d       \`dl   DPT|  $( `(W6xPalberinv.cr_major  r_minor !c "e3 #es  $rh (%ns0 0&lon_center 8'false_easting @(false_northing H,alberinvint< ralberinv@dX8 /ecs/hdfeos/gctp/srcalberinv.cʿ* 4 s s s t s)Y'^{}~~~%% %%!~%{|!  ~u ux   u $({ t 1cp$ % B 4: ; 9  .: ; 9 ? @ @x@ @A0< C`A D@ABB@@$ BPBBN@AALBM9;EB8d?Xalberinvint+alberinv "8N^o#>FNM(0`h   @ @DB$d* HP00 H86 r>p! fP XP f q x{p PpXp0p 7pDp@p$G p   @   3p alconfor.o/ 1230063557 7356 20 100664 8180 ` ELF(0@@  H,05=DLSZbPkvz~.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodataalconforintpowatantsincosptitleradius2cenloncenlatoffsetpalconforadjust_lonsintan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:alconfor.o<$cg#-ߙ׍׌x$H׀ׁ ׂ(׃0ׄ8ׅ@ׇP׈X׉`׊h׋p ׎א(׏@߁d!+h*`)XD0(P'H&@%0$(# "! ߙ׌ F,ߙ׍g8׌g0 M!ߙ߄ dߙ׍ ׌ߙ ׌ߙ ׌ߙ׍( ׌ ߿%߼g<$!g@!-ߙH׀8%0XF n F cߙgF  gߙ F ׍@׎M9׏MߙF/kB F.c׌ߙ׍F,P F-cߙ׬P F cߙטg׌g M!׏0׎8שױװF.LF/BMaגߊHF2k@)BF-CF/KߌF1s߿0M{߸He l-ר$g0F)jBeKfeHF.kBeFe8@F)C0` @-F-je 8׸X@BMlbMB`*L*ae)dL!L8F @L)F IFeh{p*L*aL!L'F @L)F IFdx*L*aL!dL'F @L)F IFeee)F(kMcF)kBMc)F%[M9׊F z׉ F.Z׈(M,RaM R!߼@%߾8g`ר(ש 9#?FR5?īDR?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO?W'?īDR@Sni]ڇ!TD-@???!TD-ALASKA CONFORMALN       $ . 2 6 : > B F x%% % % % % %,%PT% %%%%% %Pd  $(048<@DHLPTX\`dhlpt|      $ (0d l      8<(W6xalconfor.c"r_major #r_minor $lon_center %lat_center &false_easting  'false_northing ((acoef )bcoef 8*sin_p26 0+cos_p26 8,e @- n H1alconforintH galconforPP28 /ecs/hdfeos/gctp/srcalconfor.cʿ' 5 `gm lzp u }  r   jj|=~  x tcx u ~u }t}~w~w|w}}}~y% B 4: ; 9  .: ; 9 ? @ @x@ @A(H CAC@0P C`AEB@A8?5alconforintbalconfor "8Ng -JRZu}M(0X`   @ IY($* pP0 pp50 p; (Cp! 9NU  k Xv p Pp@p:p 7p@p@pG P@  @  $ 8p alconinv.o/ 1230063597 7356 20 100664 10004 ` ELF P0@@  H,05=DLSZbPXkquy(.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodataalconinvintpowatantsincosptitleradius2cenloncenlatoffsetpalconinvasinztansinatan2adjust_lonp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:alconinv.o<$cg#-ߙ׍׌x$H׀ׁ ׂ(׃0ׄ8ׅ@ׇP׈X׉`׊h׋p ׎א(׏@߁d!+h*`)XD0(P'H&@%0$(# "! ߙ׌ F,ߙ׍g8׌g0 M!ߙ߄ dߙ׍ ׌ߙ ׌ߙ ׌ߙ׍( ׌ ߿%߼ggp0<`&(0-כ ׁF;fF!Xל(FF 1F FF 8F F F$F DF 1F#<H%F FP%%F f$*EF F8MF8 0*NfaeJe)NFN!NƪF IFF QF5{BF7{Lo9FaLOM M iF8OyF ߙ׌ל F,ߙgg F<F ؅F:>ׁE!߿8׃߼(߰0߱@׸P׹p׺h׻`ߧ %׼Xg߿8߼(߰0߱@׸P׹p׺h׻`׼Xg׭׌8F9kBF-cF;cߙ׮׍0Hx Mk!׍מ@F-׍ߙF F- F-cF Fן%ߙ F ׏@׎M{!M{ߙF F F.cߙ F=fOa*F;)A/F;.F )F&?HK=>?8?5alconinvintbalconinv "8Ng -JRZu}M(0X`   @ XI<$* P0 p50 ; hBCp! dU @ kPxv p xPppWp7p3p@p+G x@  @  $ (8p  8azimfor.o/ 1230063637 7356 20 100664 6644 ` ELFp0@@  (/6@GO U]hotx .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataazimforinttsincosptitleradiuscenlonmeroriginoffsetp.lit8azimforadjust_lon__dcisacossinsprintfp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:azimfor.o<$!g!-ߙ g0F sg( ߙ߄ dߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g<$!gPx!-ߙh׀`pF n F cߙgF g ߙ׀(עׁ0׺׬F"BF ւ ׬O@c!ׄF `F$ׄF F$ׁׄ%E߿@߼ ׸8gP׮0׭׌0F.kBF-cF8cߙ׮׍( Mk!ׅאF +F0{אF {F0z>ߨDEF%>E טߙ׭0׬( F kGߙ F8ߩ% ߙ׬(׭0 F cߙ F ߪ%@ߙ F ׆(ץL1y׎F +EF.l<ר(E%F BF.E B F J N 8%DH%LT%`%l %| %  00 %8%%%% %,%H%%%  $(,4<@ P X\ dh pt x  , @ TX      ( D P\   @ !TD-=|׽!TD-(W6x&aziminv.cr_major lon_center lat_origin false_northing  false_easting  !sin_p12 ("cos_p12 0&aziminvint EaziminvP37 /ecs/hdfeos/gctp/srcaziminv.cʿ + vz| {   ~u (e!~}l9~~~008A~% B 4: ; 9  .: ; 9 ? @ @x@ @A( CAC@(, BPBBQ@8=.aziminvintaziminv !7Pi$L(0X`   @ D<*f$*P80P98p!TJ ` pk `u00 {p PPp.p;p 7p@p@pE H 8 H@   3p bceafor.o/ 1230063718 7356 20 100664 6692 ` ELF0@@ &-4<FQYTalpt .symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatabceaforint__dcisptitleradius2cenlonmertrue_scaleoffsetpbceaforadjust_lonsinlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:bceafor.oF,h<$Bg"-ׁL"yF ߙ80( ׂF"<$XF { פF$׃LdF F#ߙH߄@d Pߙ׍ ׌ߙ ׌ ߙ ׌(ߙ׍0 ׌8߿%߼g <$!g!-ߙ׀ %(F n  F c߂Xׅ8@טׁ@F8ߙLaF  ׅ@F F%!߿׃0߼߾׸ ߣ%׻(F$cg0׆PF81ߙLF  ׎׍M9MaߙF  F-cגהבF2F4דF3N09F0N9F3AF1בPF0F2BF1߿߾ߤ׏0׻(߼%׸ F0{g0?>h@Cylinderical Equal Area<       & * 0 4 d%%% % % %  ( %T%%%$ ,048<@DT\ht      04<@H \l   (W6xbceafor.c#r_major $r_minor %e &es 'lon_center  (lat_truesc ()false_northing 0*false_easting 8+cosphi1 @,sinphi1 H-kz P. ind X2bceaforint cbceafor0DP7 /ecs/hdfeos/gctp/srcbceafor.cʿ" 8 s  g  v}pu {z|  yy u u u |}}% B 4: ; 9  .: ; 9 ? @ @x@ @A( D AF@0T C0AD@BBB8D=0bceaforint\bceafor !7M]n(DLTmu}L(0X`   @ D *$@D*`006>p!<P  fq ({p  Pp hpp7pp@@pE @  @ X  x3p bceainv.o/ 1230063758 7356 20 100664 7700 ` ELF0@@ d&-4<FQY]pejuy.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatabceainvint__dcisptitleradius2cenlonmertrue_scaleoffsetplogbceainvasinadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:bceainv.ogF,n<$!!- טO9F Dׅ(ׄH@80F8 F#F%<($F ~E'hpߙ F F8ׁL#yF DF!Cߙ׻X߄Pd `ߙ׸ ׍ ׌ߙ ׌0ߙ ׌8ߙ׍@ ׌H߿(%߼g0׎ߙF!sF. @pF8s F-cבװ׏F1F0|׮F.{MF/sh<$Bg"-߁p@0׀@כH8F h%ט F;f׌PߙF, F8c׍PF-BF-Cߙ׌0 F-c߿@߼߾׸8ߣ%׻0`gP׌׍h׎`F,ߙF8kBF.c F-cߙ׌( F,ߙ׍׬(  F-cߙ׍ ׬( F-cו(הF5׍`F8kBF-Cׁ0ו ז8׏(ד@F!BחH׮(F6}F!ײ F3|בPF7BF6װF5F4F1{F3F2sߙ׌0F0sMF-c ߿@߼߾׸8ߤ%׻0gP?@>h@@@? ` `?B*B*?U?[[?-mCylinderical Equal AreaL       " * . 4 8 < @ D %%% % % %0 %p t %%0%D%\%t%% ,48<@DHLTXdx|       $8@`  $ 8 <L Pd h| (W6xbceainv.c#r_major $r_minor %e &es 'e_p4  (e_p6 ()lon_center 0*lat_truesc 8+false_northing @,false_easting H-cosphi1 P.sinphi1 X/kz `0qp h1 ind p5bceainvint0d kbceainvp,X7 /ecs/hdfeos/gctp/srcbceainv.cʿ% ;rw ~~~k| {z|  rx{z}!~rrx{{{}}% B 4: ; 9  .: ; 9 ? @ @x@ @A0d A0ADBE@0p CPA D@ACA 8,=gbceainvintbceainv !7M]n+<M_{L(0`h    @ D$#G$`,*x00X6>p! LP P f @q @{p `Pppop'7p^p@p.E xp  @ 8  X3p h ceafor.o/ 1230063798 7356 20 100664 6692 ` ELF0@@ %,3;EPXT_jnr~.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataceaforint__dcisptitleradius2cenlonmertrue_scaleoffsetpceaforadjust_lonsinlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:ceafor.oF,h<$Bg"-ׁL"yF ߙ80( ׂF"<$XF { פF$׃LdF F#ߙH߄@d Pߙ׍ ׌ߙ ׌ ߙ ׌(ߙ׍0 ׌8߿%߼g <$!g!-ߙ׀ %(F n  F c߂Xׅ8@טׁ@F8ߙLaF  ׅ@F F%!߿׃0߼߾׸ ߣ%׻(F$cg0׆PF81ߙLF  ׎׍M9MaߙF  F-cגהבF2F4דF3N09F0N9F3AF1בPF0F2BF1߿߾ߤ׏0׻(߼%׸ F0{g0?>h@Cylinderical Equal Area<       & * 0 4 d%%% % % %  ( %T%%%$ ,048<@DT\ht      04<@H \l   (W6x|ceafor.c"r_major #r_minor $e %es &lon_center  'lat_truesc ((false_northing 0)false_easting 8*cosphi1 @+sinphi1 H,kz P- ind X1ceaforint bceafor0DP6 /ecs/hdfeos/gctp/srcceafor.cͿ" 7 s  g  v}pu {z|  yy u u u |}}% B 4: ; 9  .: ; 9 ? @ @x@ @A( D AF@0T C0AD@BBB8D;/ceaforintZceafor  6L\m'BJRjrzK(0X`   @ D ($@D*`006>p!<P  fq ({p  Pp hpp}7pp<@p|C @  @ P  p3p ceainv.o/ 1230063838 7356 20 100664 7700 ` ELF0@@ d%,3;EPX\pcitx.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataceainvint__dcisptitleradius2cenlonmertrue_scaleoffsetplogceainvasinzadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:ceainv.ogF,n<$!!- טO9F Dׅ(ׄH@80F8 F#F%<($F ~E'hpߙ F F8ׁL#yF DF!Cߙ׻X߄Pd `ߙ׸ ׍ ׌ߙ ׌0ߙ ׌8ߙ׍@ ׌H߿(%߼g0׎ߙF!sF. @pF8s F-cבװ׏F1F0|׮F.{MF/sh<$Bg"-߁p0׀@כH8F h%ׅ F;f׌PߙF c F%c׎P׍F.kBF-Cߙ׌0 F-c߿8߼߾ߣ%׻0`g@׎׍h׌`F.ߙF%kBF.c F-cߙ׌( F,ߙ׍׬(  F-cߙ׍ ׬( F-cו(הF5׎`׍F.kBF-Cׁ0ו ז8׏(ד@F!BחHװF6}F!ײ F3|בPF7BF6׮(F5F4F1{F3F2sߙ׌0F0sMF-c ߿8߼߾ߤ%׻0g@?@>h@@@? ` `?B*B*?U?[[?-mCylinderical Equal AreaL       " * . 4 8 < @ D %%% % % %0 %p t %%,%@%X%p%% ,48<@DHLTXdx|       $8@`    4 8H L` dx| (W6xceainv.c"r_major #r_minor $e %es &e_p4  'e_p6 ((lon_center 0)lat_truesc 8*false_northing @+false_easting H,cosphi1 P-sinphi1 X.kz `/qp h0 ind p4ceainvint0d iceainvp(X6 /ecs/hdfeos/gctp/srcceainv.c% : s x ~~~l| {z|  rx{z}!~rrv1{{{}}% B 4: ; 9  .: ; 9 ? @ @x@ @A0d A0ADBE@0p C@ADC@A8(;fceainvintceainv  6L\m*;L^yK(0`h    @ D$"F$`(*x00X6>p!LP H f 8q `{p xPppp<7psp@pCC p  @ H  h3p xeqconfor.o/ 1230063879 7356 20 100664 8996 ` ELF0@@ ',16;CINU]fpw -@.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataeqconforinte0fne1fne2fne3fntsincosmsfnzmlfnptitleradius2stanparlcenlonmeroriginoffsetpp_errorstparl1eqconforadjust_lon__dcis.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:eqconfor.oF,h<$!gp!-ׁL"yF ߙ0(8XPF F ~FF v@F  8ߙ׌@ ߙ׌@ ߙ׌@ (ߙggF  0ߙ׮׭׌8 @ߙ׏0׎(׍ F ׌F  HߥץgF F9ׄF F$E7ץ F<F%AF&)C`F%كߙ׏0׎(׍ ׌F&F  h׈hHׇߢF B׼H׻@F(9@4pߙ߄ dߙ׍ ׌ߙF F F ߙ ׌ߙ F ߙ׍P ׌X߿߼׸0%׹(׺8gץ`ߙ߅߄׼Hd׻@ d߿߼׸0$Q׹(׺8g`ߙ߄ dߙ׍ ׌ߙ F ߙ ׌ߙ F ߙ׍P ׌X߿<$!g!-ߙ ׏0׎(F l׍ %F g ׌׍hߙׁ׌F hF F, (ߙ׌`׿  F c׍Pׯ(אp׎X߿M{߼F0k@M{yߢM%߾g0?=|׽Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONIC       $ ( , 0 4 8 < @ D H N T X \ ` d h p t x `%p%% % % % % %0 %P % %@ %@%%%% %X0\d0l%p@ %@%%%%%@ %d%x%$ 8<@HPXdh ltx |     $ 48 <@DH\|        $PT        (,4DHL PTl p(W6xeqconfor.cr_major r_minor lon_center e0 e1  e2 (e3 0 e 8 es @!ml0 H"false_northing P#false_easting X$ns `%g h&rh p+eqconforint eqconfor0`8 /ecs/hdfeos/gctp/srceqconfor.cʿ! 4qo v wx~$"p| , {{ bw'Z&e yyy ~% B 4: ; 9  .: ; 9 ? @ @x@ @A8 DAF@A A A d I 0 C0AD@AA8?Qeqconforinteqconfor "8Ngx(8IgowM(0hp   @H DT $@* x00 6 R>p! bP  f q Pp{p PpppF7p}p@pUG p   @ `  3p eqconinv.o/ 1230063919 7356 20 100664 9140 ` ELFh0@@ ',16;CINU]fpw!2E.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.sbss.lit8.rodataeqconinvinte0fne1fne2fne3fntsincosmsfnzmlfnptitleradius2stanparlcenlonmeroriginoffsetpp_errorstparl1eqconinvphi3zadjust_lonatan2.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:eqconinv.oF,h<$!gp!-ׁL"yF ߙ0(8XPF F ~FF v@F  8ߙ׌@ ߙ׌@ ߙ׌@ (ߙggF  0ߙ׮׭׌8 @ߙ׏0׎(׍ F ׌F  HߥץgF F9ׄF F$E7ץ F<F%AF&)C`F%كߙ׏0׎(׍ ׌F&F  h׈hHׇߢF B׼H׻@F(9@4pߙ߄ dߙ׍ ׌ߙF F F ߙ ׌ߙ F ߙ׍P ׌X߿߼׸0%׹(׺8gץ`ߙ߅߄׼Hd׻@ d߿߼׸0$Q׹(׺8g`ߙ߄ dߙ׍ ׌ߙ F ߙ ׌ߙ F ߙ׍P ׌X߿<$!g!-D8׉`׈pׅXF)8>׆PF-BF%aAF(1F%(L0!(0%׈EF ׈F F F'2E DP בF1Cߙא0׌h׏(׎ g׍ F1c׎`׭ F.kCߙ׌׸0 F-cߤ߿(ߣ߾߼g@ ߙF(3B F(+ ?=|׽Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONIC       $ ( , 0 4 8 < @ D H N T X \ ` d h p t z `%p%% % % % % %0 %P % %@ %@%%%% %X0\d0l%p@ %@%%%%%%%%$ 8<@HPXdh ltx |     $ 48 <@DH\|        $PT        (Xd   (W6xeqconinv.cr_major r_minor lon_center e0 e1  e2 (e3 0 e 8 es @!ml0 H"false_northing P#false_easting X$ns `%g h&rh p+eqconinvint eqconinv`8 /ecs/hdfeos/gctp/srceqconinv.cʿ# 4qo v wx~$"p| , {{ bw'Z&e  ~s sx8"!~x% B 4: ; 9  .: ; 9 ? @ @x@ @A8 DAF@A A A d I H C@AO@AAg @8C@@8?Qeqconinvinteqconinv "8Ngx(8IgowM(0hp   @` 3Y,$@* Xx00 X 6 xR>p! P P f q {p XPppTp7p=p@p-G xp  @ 8  Xequifor.o/ 1230063959 7356 20 100664 5188 ` ELF0@@  '.8?GOZ^ jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:equifor.o<$g%-ߙ ߄ dߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g<$!g!-ߙ׀% F n F cߙ׌ (׃פ(߿ׂ F#!ׁ߼L@ ߢL#a׻ A%߾g0EQUIRECTANGULAR.      " & (4%8@%L%X%h %   % %  $,0< DH PT \` dl  (W6xequifor.cr_major lon_center lat_origin false_northing  false_easting  $equiforint Aequifor0 P7 /ecs/hdfeos/gctp/srcequifor.cʿ ) ty  {{0~~% B 4: ; 9  .: ; 9 ? @ @x@ @A( CAC@0 C0AEB@A8 =equiforintequifor !7PiL(0X`    @@ >$ *(08p!.J @`8k `up  XPp p p ]7p p @p \E   x @  -p  equiinv.o/ 1230063999 7356 20 100664 5604 ` ELFX0@@  '.8?G MU]alx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataequiinvintptitleradiuscenlonmeroriginoffsetp.lit8equiinvp_errorcosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:equiinv.o<$g%-ߙ ߄ dߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g<$!g!-ׁׂF!hAF"C׃F ׂ F$<F"`E ߙ߅߄d d߿$߼g ߙ ׌׎׭F sF.kCߙ׌ F-c߿ߦ%߼g EQUIRECTANGULARInput data errorequi-inv4      " ( , (4%8@%L%X%h %  (( % %,%  $,0< DH PT \` dl   $ (?!TD-(W6xequiinv.cr_major lon_center lat_origin false_northing  false_easting  $equiinvint Aequiinv PP7 /ecs/hdfeos/gctp/srcequiinv.cʿ ) ty  }y(@% B 4: ; 9  .: ; 9 ? @ @x@ @A( CAC@( C AK@8P=equiinvintequiinv !7PiL(0X`    @p D $ P*p(0p18p!4J `hk u0 {p  Pp p p 7p p x@p E   @   @3p Pgnomfor.o/ 1230064040 7356 20 100664 6020 ` ELF0@@  (/6=DL R,Zelt .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatagnomforinttsincosptitleradiuscenloncenlatoffsetp.lit8gnomforadjust_lon__dcisp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:gnomfor.o<$!g!-ߙ ( F gggF s ߙ߄ dߙ F ߙ׿ ׬ ߙ ׬ߙ׍( ׌ ߿%߼g0<$!g(!-ߙ׀ 0F n F cߙgF g @ߙ׀עׁ׺׬@F"BF ւ 8ק8׊׉O@9׮D׍ ߣ׈(F#8>߿ ߢF E׺0F'RF*JBF.KMam׌ת׋F,R׬F*MLZM J!H%߼(gPߙ߅߄d d߿ $߼(׺0gPGNOMONICPoint projects into infinitygnomfor-conv<       & * . 4 D%PT%X`%p%| % %   %% %00% (,48<HL \ h x     , 0@Hx ?(W6xgnomfor.c"lon_center #R $sin_p13 %cos_p13 &false_easting  'false_northing (+gnomforint0 FgnomforP7 /ecs/hdfeos/gctp/srcgnomfor.cʿ 0y{|}   v v  zy }y |  xy% B 4: ; 9  .: ; 9 ? @ @x@ @A( C0AE@A(, CPAF@A8=gnomforintgnomfor !:J`vL(0X`   @ D *$@* 00 =8p!]<J `Pk 0u0 {p  Pp @p OpU7pp @pLE  x @   3p gnominv.o/ 1230064080 7356 20 100664 6772 ` ELF0@@  (/6=DL R Z_ekvz.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatagnominvinttsincosptitleradiuscenloncenlatoffsetp.lit8gnominvatanasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:gnominv.o<$!g!-ߙ 0(F gg gF s ߙ߄ dߙ F ߙ׿ ׬ ߙ ׬ߙ׍0 ׌(߿%߼g0<g$!!-@ט(׀0F8fF h0F8O!F ߙ ׌%(%8 F,ߙgF  g׃F ߿ F#>ׁׄ%E߼߰(׸@߾gP߿ ߼߰(߾׸@gP׮8׭׌ F.kBF-cF8cߙ׮׍ Mk!ׅאF +F0{אF {F0y>DEF%>E טߙ׭8׬0 F kGߙ F8%ߙ׬0׭8 F cߙ F %ߙ F ׆ץL1y׎F +EF.k<ר0E %F BF.D B F J N H%TX%\d%t% % %   %%%%%%$%<%%% (,08<@LP ` l |   $ 48         8 DP   =|׽!TD-(W6x gnominv.c"lon_center #lat_center $R %sin_p13 &cos_p13  'false_easting ((false_northing 0,gnominvint0 HgnominvP>7 /ecs/hdfeos/gctp/srcgnominv.cʿ 1x{{|  t t f~f~h k9)~~008}% B 4: ; 9  .: ; 9 ? @ @x@ @A( C0AE@A0 BPBBJ@BB8=(gnominvintgnominv !:ScyL(0X`    @ D<$`$*@80@ 8p!ITJ ` k u0P{p hPp(pFp&7p]p@p%E p ` p@   3p goodfor.o/ 1230064120 7356 20 100664 7588 ` ELF0@@  +29LALPX_dht.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodatagoodforintptitleradiusgoodforadjust_lonsinp_error__dcissigncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:goodfor.o<$Bg"-ߙ߄ׅ(ׄ ׃ׂ߁׀ׁ d! !!"0" #8#($P%X%HF%aB$@F$a%$%F#`$F"`#"#F!`B"!xF `!p hF gd `ߙ F ߿%׿߼g <$!g!-׀0F->8D$(F o$PElF `ׁ8F!a>$$(t$r$ $o$m$lߟiߊߙHeJ*H-,` F,ߙ0F XF HF F @ׁ`ךpכh%F!B`kߙߙ F F8F9F;F F$F F:"<* 2fEF8׍xF ׌F.kAߙD F:kחHו8EזF5e>$(F->F6f>E0(2$ߟߙg-  F,ߙF  F F׍߄ߣdF-d-n`߿8M{ߢߡF-BN-߅߄d d߿8׸`׻X׽P׺H׹@߰0$߼׼(gp בPg$אPF0`>EגX$F1a>EדX\$F2b>$ $(F3c>$ $ (E$]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiyWJM?WJU@ !TD-?=|׽?!TD-??d)? _?f;GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forward<      " & , 0 4 $8DH%%  t| % % %@ %\l% ,< %L%X`@ @ %  (,04<@ 8     (0 H PT$ D T(W6xgoodfor.c"R #lon_center $feast `(goodforint Vgoodfor<P\7 /ecs/hdfeos/gctp/srcgoodfor.cʿ/ )%["k}u~y~~~p||}}i%q  v lyv  | {  {-{~~~D G}~} ~ 4 <U  z% % z% % B 4: ; 9  .: ; 9 ? @ @x@ @A( C AC@A`L CpA F@C C[DBBCA89:;qQ89:;8<=fgoodforintgoodfor !1J^zL(0X`     @ I#$@<* 0 50 ; NCp! n<U  k `v `Pp Pppdp"7pYp@pQE  H X@  $ 8p goodinv.o/ 1230064160 7356 20 100664 9140 ` ELF0@@  +29AFKOZbfr~.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodatagoodinvintptitleradiusgoodinvsignasincosadjust_lonp_errorsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:goodinv.o<$Bg"-ߙ߄ׅ(ׄ ׃ׂ߁׀ׁ d! !!"0" #8#($P%X%HF%aB$@F$a%$%F#`$F"`#"#F!`B"!xF `!p hF gd `ߙ F ߿%׿߼g <$!g!-ׁ0ךF!B8 F->(%F nF%F fEh0ׂ8F"ЂF"a>$$߆d-c` F#$ $$  $  $  cߙF:ׅ`F aF$*E3׎H׎8F.ӂF.c>$$ ߆d$F/fߙ F ׎hD`ךF.ӂFc!׍pO.c!F-BF-cאxF dEF1F-e>$E0߆d$mF/fߙ ߙF F F דF3F3F2ă߇@d8-בF2F1߿8דX$F3#<הE $F$EׄX߆d$F!fׂPF"ЂF"`>EׅX߇d$F#fF$F$a>$ $F%BF%b>$ $ (o$]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiyWJM?WJU?!TD-? _?f;??d) !TG@@ !TD-!TD-=|׽@ !TGGOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverseB    $ * . 2 8 < $8DH%%  X` , % % %$p % %8 8% % %$(PT (,04<@  @ $ 4<HX   0l  (@Tl   @Lt  <L(W6xgoodinv.c!R "lon_center #feast `'goodinvint UgoodinvP7 /ecs/hdfeos/gctp/srcgoodinv.cʿ7 (%["k}u~y~~~p||}}i%q xxx!~ p  \=} (X( - L&[%Q )W6K5\,  y   a Z  | v' % B 4: ; 9  .: ; 9 ? @ @x@ @A( C AC@A8 C@ACC@ABCD8=fgoodinvintgoodinv !1J^zL(0X`     @ I!$@* 0 50 ; FCp! BU   kHv @p XPppfpS7pp@pZE  P `@  $ 8p gvnspfor.o/ 1230064201 7356 20 100664 6388 ` ELFp0@@ '/6=DKRZ<cnu}.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatagvnspforinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspforadjust_lon__dcisp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:gvnspfor.oF,h<$!g!-ߙ (0ׂ(F gg F"gF { ߙ߄ dߙ F ߙ߅׿׬( dߙ ׬ ߙ ׬ߙ׍0 ׌(߿%߼g0<$!g(!-ߙ׀ 0F n F cߙgF g @ߙ׀עׁ ׺׬@F"BF ւ 8׈׃F(ק8׉O@9ׅתߣׄ0F#8<߿ ߢF E׺0F'AF)B@F'IF')BF**׉(M*ai׈צׇ F(1רF&L9L)!D%߼(gPߙ߅߄d d߿ $߼(׺0gP?GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for@       * . 2 8 X%dh%lt%( %( % % %  %%@%xXx%X 048<DHP\` p |     $,HLX`l (W6xgvnspfor.c$lon_center %R &p 'sin_p15 (cos_p15  )false_easting (*false_northing 0.gvnspforint0 Mgvnspfor P 8 /ecs/hdfeos/gctp/srcgvnspfor.cʿ 4|x}{{|$   w w {y ~y }$1yz% B 4: ; 9  .: ; 9 ? @ @x@ @A( D0AF@A(< CPAF@A8 ?"gvnspforintgvnspfor ";K[qM(0X`   @ D$'K$` *p800p6>p!@P H f (q 0{p  0Pp "pp7ppn@pG   @ 8  X3p hgvnspinv.o/ 1230064241 7356 20 100664 7508 ` ELF0@@ '/6=DKRZckqw .symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatagvnspinvinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspinvp_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:gvnspinv.oF,h<$!g!-ߙ (80ׂF gg(F"g F { ߙ߄ dߙ F ߙ߅׿׬( dߙ ׬ ߙ ׬ߙ׍8 ׌0߿%߼g0<$!g !-׀0ׁ8F `F!hA(F L!F ׈ׇ׆F(9@F&90F%0CF Dׂ8F"F <E @ߙ߅߄d d߿@$߼ gPF F,+F&cF&F,CF cF 3CF.k@F,;F-cߙ ߙgF  g׮8׏F sߦ׍F/q>ߧ%E׏߿@߼ gP׮0׭׌(F.kBF-c׭8F-cߙ׮׍  Mk!ׅאF +F0{אF {F0z>ߨDEF%>E ߙߙ׭0׬( F kGߙ׌ F,ߩ% ׬(׭0 F cߙ׌ F cߪ%@ߙ F ׆ ץL1y׎F +EF.l<ר(E%F BF.E B F J N R V \%hl%px%( %( % % %  Xp\X`pd%hX%%0%|%%%%%8%H% 048<@HLT`d t 4T   $ ,8<Hl p      ,@ D(W6x3gvnspinv.c"lon_center #lat_center $R %p &sin_p15  'cos_p15 ((false_easting 0)false_northing 8-gvnspinvint0 Mgvnspinv`PH8 /ecs/hdfeos/gctp/srcgvnspinv.cʿ! 3| w}{ z{ $   {p(c4}}l=-~~{408E~% B 4: ; 9  .: ; 9 ? @ @x@ @A( D0AF@A( CPAY@8`?;gvnspinvintgvnspinv ";Tdt!)1M(0X`   @ DT0$`* @00 (6 (z>p! \P 0 f 0q  {p  Ppp;pPp7p2p@pG @ @ P@   3p hamfor.o/ 1230064281 7356 20 100664 5236 ` ELF 0@@ &-4< BIT[gs.symtab.shstrtab.strtab.comment.text.sbss.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.srdatahamforintptitleradiuscenlonoffsetp.lit8hamforadjust_lon__dcis.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:hamfor.o<$!g!-ߙF gg ߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g!-ߙ׀% F o F c׃ׁׂߙF#F!B0F  8ߙ׬8F  (׈M!F Bק0F(9׈F(:߿F(׆Lר(ߢׅ߼L9a׿ E%߾g@HAMMER.      " & 8%D%T%d%   % % % $(,4<@ L \ `h     ,??fe>?@(W6xhamfor.c"lon_center #R $false_easting %false_northing )hamforint BhamforTP6 /ecs/hdfeos/gctp/srchamfor.cʿ - u{ y  zzt~}% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A0 C@AEB@A8T;hamforinthamfor  9IeK(0X`    @@ D$T*8 088p!?.J p`k `u0 X {p  xPp p p `7p p @p _C  h x@  3p  haminv.o/ 1230064321 7356 20 100664 5236 ` ELF00@@ &-4< BIOZ`lx.symtab.shstrtab.strtab.comment.text.sbss.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.sbss.srdatahaminvintptitleradiuscenlonoffsetp.lit8haminvatan2adjust_lonasinz.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:haminv.o<$!g!-ߙF gg ߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g!-׏׎בהF.cF/׏F.tF1cF/kM9M{9F cגߙאF2F4BMiF0c(M{y%  F.cߙ׍׌ M!׮(׬ ׍F.cF-cߙ F-c߿ߢ߾@%߼g0HAMMER.      " & 8%D%T%d%   % %8 % $(,4<@ L \ `h      $0 @??@(W6xhaminv.c"lon_center #R $false_easting %false_northing )haminvint Bhaminv0`P6 /ecs/hdfeos/gctp/srchaminv.cʿ - u{ y  ~~xxxx)~$% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A( C0AU@B8`;haminvinthaminv  9IeK(0X`   @X 3 $`*P 0P8p!W.J `k u0 {p  Pp p p 7p p l@p C   @    imolwfor.o/ 1230064362 7356 20 100664 6996 ` ELF0@@  ,3:CNRYamy.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.lit8.rodataimolwforintptitleradiusimolwforadjust_lonsin__dcisp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:imolwfor.o<$Bg"-ߙ߄׆ׇ׈׉ ߁׋׊(+d!*() ('&׀0ׁ8ׅXׄP׃Hׂ@F%aBF$a%XF#`$PF"`#HF!`B"@F `!8F gd 0ߙ F ߿%׿߼g g<D($!!-׀`F- > F,>$F oF%׃pׅF `E(hדxF#bזהE$F4>EוF >EF6׃חE$F7>E ׁF >EF#$!!-%F fE יׂhF"ȂF"a>Eb(8%0׃xF#F#b>ׄ$E(8$0F$F$c>8$0L߃׌dcߙ-e0F,@F,k F%ߙF  F ׍F-BF-BF-C߄dߙ -Ԍ F-cטߙF8߷8  F ߙ׍F ׿@ F-cߥ߿0*$:$J$S$  \$  %׎$߱׸F.$<׹ ׏$E%߰(F$}0$ $xב$F1'<׸׹ גE$F$@@@@=~=% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AC@Ah, APCACB JAC@ @GAC@ @CB@JC @?CB@D8 ?gimolwinvintimolwinv "2K_|M(0X`      @X I$ * 0 `50 ; !Cp! 2U @ k v p pPppp57plp,@plG  h x@  $ 8p isinusfor.o/ 1230064443 7356 20 100664 16500 ` ELF8p0@@   !) /5 C Q_ <jquzp|!4H.symtab.shstrtab.strtab.comment.text.data.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.MIPS.content.data.rel.MIPS.content.data.rel.data.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.MIPS.interfaces.text.data.sbss.rodataerrorfprintf__iob.lit8isinusforinitIsin_for_freeIsin_for_initIsin_errormalloccosfreeisinusforIsin_fwd.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnamesbe::7.42:isinusfor.oߙ߂0%߁8%dE d$@<$!g!-߄F FF aF  F nF(ߙ0 8פ8@ץ0ߙ߅߄g9d d$߿(߼׸׹ g@DF >EdׁF!E*F)*`<4ƀ *P-{B(-(/ ߙ߅߄g9d d߿P%@ߙ@*_80ߙ $p@ק0XיPF'ׅX`DF%ׂHF֡F%% Isin_error f /ecs/hdfeos/gctp/src/usr/include/internalisinusfor.c˿stdio_core.hˤג : :~:~8x (6Po  {(hk~,(%~V((t((t((,nn%~%$3+ ||{~z{{x{ |  $o+.B>B;|F|.|l  }}|~3+3+3+s3+3+ , {} ' tx(ru z{{y$zu w$vx=&d" c. 8(" {}t  ~~% B 4: ; 9 < ? 4: ; 9  .: ; 9 @ @.: ; 9 ? @ @.: ;9 ? @ @.: ;9 @ @x@ @A 0  C@AGBC@x CAEC BD@ s DdGBBBBB;<=\9:x O(p| CAE@( BA@B( A AC@B( < BG@8 isinusforinitIsin_for_init?isinusforkIsin_fwdIsin_for_free;errorIsin_error #Kg'/7S[c~{(0PX8@hp    @ (])$@ * @0`6`>p!P   f p{p *0 *H  *X@0*p + Pp+pp-dp2"p2p4n@p4p55C& 5x6 78F 7HW 8( j 8H~ 8Xp 8hisinusinv.o/ 1230064483 7356 20 100664 16532 ` ELF80@@   !) /5 C Q_ <jquzp|!4H.symtab.shstrtab.strtab.comment.text.data.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rel.text.rela.text.MIPS.content.data.rel.MIPS.content.data.rel.data.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.MIPS.interfaces.text.data.sbss.rodataerrorfprintf__iob.lit8isinusinvinitIsin_inv_freeIsin_inv_initIsin_errormalloccosfreeisinusinvIsin_inv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnamesbe::7.42:isinusinv.oߙ߂0%߁8%dE d$@<$!g!-߄F FF aF  F nF(ߙ0 8פ8@ץ0ߙ߅߄g9d d$߿(߼׸׹ g@DF >EdׁF!E*F)*`<4ƀ *P-{B(-(/ ߙ߅߄g9d d߿P%@ߙ@*_80ߙ $p@ק0XיPF'ׅX`DF%ׂHF֡F%%F$Aׇ߼%EF')@F(- Isin_error f /ecs/hdfeos/gctp/src/usr/include/internalisinusinv.c˿stdio_core.hˤג : :~:~8x (6Po  {(hk~,(%~V((t((t((-nn%~%$3+ ||{~z{{x{ |  $o+.B>B;|F|.|l  }}|~3+3+3+s3+3+ , {} % tx tu z v wyv$ @{}gx"a2 9(" {}t  ~~% B 4: ; 9 < ? 4: ; 9  .: ; 9 @ @.: ; 9 ? @ @.: ;9 ? @ @.: ;9 @ @x@ @A 0  C@AGBC@x CAEC BD@ s DdGBBBBB;<=\9:x O(p| CAE@( BA@B( A AC@B( < BG@8 isinusinvinitIsin_inv_init?isinusinvkIsin_invIsin_inv_free;errorIsin_error #Kg'/7S[c~{(0PX8@hp    @ (])$@ * @0`6`>p!P   f p{p *@ *X  *h@0*p +(Pp+xp-lp26p2p4@p4p5IC& 56 7PF 7`W 8@ j 8`~ 8pp 8lamazfor.o/ 1230064523 7356 20 100664 6100 ` ELF0@@ !)07>EM ST\gow .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.sbss.rodatalamazforinttsincosptitleradiuscenloncenlatoffsetp.lit8lamazforadjust_lonsprintfp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:lamazfor.o<$!g!-ߙ ( F gggF s ߙ߄ dߙ F ߙ׿ ׬ ߙ ׬ߙ׍( ׌ ߿%߼g0<$!gpx!-ߙh׀`pF o F cߙgF g ߙgg ׬׃צׂנסF&F#L!ׁ׈ׄ׫F!2׊ ߣ`EׅF$F$AF !F$)F&#MLZj׉רקץ׆F)BF()BL1i׃(߿pLe ߢh׿C%߼xgߙ߅F()Bg D&( dߙ߅g  d߿p$q߼x׿gLAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward@       & * . 4 8 D%PT%X`%p%| % %   %% % % P%P (,48<HL \ h x    4 8 < HTt  @?(W6xlamazfor.c"lon_center #R $sin_lat_o %cos_lat_o &false_easting  'false_northing (+lamazforint0 FlamazforP8 /ecs/hdfeos/gctp/srclamazfor.c˿ 0y{|}   t t $! yy1~~x(z% B 4: ; 9  .: ; 9 ? @ @x@ @A( C0AE@A0T CAF@A8?lamazforintlamazfor ";Kc{ M(0X`   @ 3!$0*8008^8p!@J `k u0 p{p  Pp p p7pp@pG 0   @ `  lamazinv.o/ 1230064563 7356 20 100664 7028 ` ELF0@@ !)07>EM S \bjp{.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatalamazinvinttsincosptitleradiuscenloncenlatoffsetp.lit8lamazinvasinzp_erroratan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:lamazinv.o<$!g!-ߙ 0(F gg gF s ߙ߄ dߙ F ߙ׿ ׬ ߙ ׬ߙ׍0 ׌(߿%߼g0<$!g !-׀(ׁ0F `F!hA(F L!F ׂ0ׁF"B8F!ׁF <E@ߙ F ߙ׌gg F,ׯ8׎F {ߣߢF/q<׍אEMp߿@%߼ gPߙ߅߄d d߿@$s߼ gP׎ ׭׬0F.kBF-c׭8F-cߙ׮׍ Mk!ׅב F ,F1׏F F0z<ߦD0E F&+ B F J N R H%TX%\d%t% % %   %0%|8 8%  %%(%D%T%l%%% (,08<@LP ` l |      $ < PTx         $L Ph t  @?=|׽!TD-(W6x'lamazinv.c$lon_center %lat_center &R 'sin_lat_o (cos_lat_o  )false_easting (*false_northing 0.lamazinvint0 JlamazinvP8 /ecs/hdfeos/gctp/srclamazinv.c˿ 3x{{|   }s % t t m(u= ~  < }3% B 4: ; 9  .: ; 9 ? @ @x@ @A( C0AE@A( CPAU@8?/lamazinvintlamazinv ";Td|%M(0X`   @ D<)e$*P80PF8p!XJ  ` k u0h({p Pp/pp-7pdp@p$G p ` p@   3p lamccfor.o/ 1230064604 7356 20 100664 8516 ` ELF0@@ |'/7=CGKRZcmt|< 1.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatalamccforintp_errortsincosmsfnztsfnzsinpowptitleradius2stanparlcenlonmeroriginoffsetploglamccforadjust_lon__dcis.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:lamccfor.o<$!g!-ׁpF/p`XF hF HF!E,F &ߙ׌  F,+ߙ׌0 F c߿ ׎H׏@׍PM߼MáߣߢnF/k@M%׸g0ߙ( F kߙF F F ׌ߙF  ׍0׃8ׁF#Bץ(F!ߙ߅߄d d߿ $,߼׸g0=|׽?!TD-Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedz       " & * . 2 6 : > B F J P T \ ` f j n r \@`d@h%l%% %%%0 %@ %X % % %PP % %%%%%L%d%%%H %\ %l %@h@%h4@HLX        (8 DH LPd|        @ T x   @ P `d ptx (W6xglamccfor.cr_major r_minor es  e !center_lon  "center_lat (#ns 0$f0 8%rh @&false_easting H'false_northing P+lamccforint| qlamccfor0X8 /ecs/hdfeos/gctp/srclamccfor.c˿, 3oo o t o&\$`{|$$ $},{{{!pxxw $}o0(% B 4: ; 9  .: ; 9 ? @ @x@ @A0| CAC@BAB(< C0AJ@B8?olamccforintClamccfor "8N_o +3;U]eM(0`h    @ XDE$* X00 6 >p! czP  f q (0{p XPpopp7ppl@pG 0 ( 8@ x  3p lamccinv.o/ 1230064644 7356 20 100664 8452 ` ELF0@@ |'/7=CGKRZcmt|h#6.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatalamccinvintp_errortsincosmsfnztsfnzsinpowptitleradius2stanparlcenlonmeroriginoffsetploglamccinvphi2zadjust_lonatan2.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:lamccinv.o<$!g!-ׁpF/p`XF hF PF! B F J P T \ ` f l \@`d@h%l%% %%%0 %@ %X % % %PP % %%%%%L%d%( %@%%%4@HLX        (8 DH LPd|        @ T x 0 Dp|  (W6xhlamccinv.cr_major r_minor es e  center_lon  !center_lat ("ns 0#f0 8$rh @%false_easting H&false_northing P*lamccinvint| slamccinvX8 /ecs/hdfeos/gctp/srclamccinv.c˿& 2nnn s n'[%_{|$$ $},zzz!o ~~v vx ,z{(t{% B 4: ; 9  .: ; 9 ? @ @x@ @A0| CAC@BAB0h B@BBP@AA8?plamccinvintClamccinv "8N_o +3;V^fM(0`h    @0 pDJ$ * X00 (6 0h>p! rP  f q  {p Pppppp7pp7@pwG 0  @ @  `3p pmerfor.o/ 1230064684 7356 20 100664 6372 ` ELFX0@@ %,3;ELT[cgmx|.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatamerforint__dcisptitleradius2cenlonmeroriginoffsetpmerforp_errorsintsfnzadjust_lonlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:merfor.oF,h<$!g!-ׁL"yF ߙ@8(F { פF$׃LdF F#ߙ߄d 0ߙ׍ ׌ߙ ׌ߙ ׌ߙ׍8 ׌@߿%߼g <$!g!-ׂF hEF"@ׂF EF"> (F nE 0ߙ߅߄d d߿0$5߼׻(g@ߙ F kߙF F F ׌ ߙ׍׬  F-cׁ0כF!׎@ߙMߦ׬ ߿0ׂ8߼L[ߧ%׻(g@?!TD-=|׽MERCATORTransformation cannot be computed at the polesmer-forward@       & , 0 4 8 P%tx|%% % % %  @ $@( %,L%`%x%%$ ,048<@HT`p      H T dh l (W6x?merfor.cr_major r_minor lon_center  lat_origin !e  !es ("m1 0#false_northing 8$false_easting @)merforint OmerforP6 /ecs/hdfeos/gctp/srcmerfor.c̿ /rp r|  zz( |,$~~% B 4: ; 9  .: ; 9 ? @ @x@ @A( D AF@( C@AKC@8;Gmerforintmerfor  6Le~ -5=K(0X`   @ D<&b$*PH00P6hL>p!@P  fq @{p  Pp @Gppv7pp-@pmC   @   03p @merinv.o/ 1230064724 7356 20 100664 5988 ` ELF0@@ %,3;ELT[_ep|.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatamerinvint__dcisptitleradius2cenlonmeroriginoffsetpmerinvexpphi2zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:merinv.oF,h<$!g!-ׁL"yF ߙ@8(F { פF$׃LdF F#ߙ߄d 0ߙ׍ ׌ߙ ׌ߙ ׌ߙ׍8 ׌@߿%߼g <$!g!-ߙ׀8׃0ׁׂ@ F#BF-F"`%( F!ߙF Fg ׌ `ߧ߳߿ ߼g0׏0׎׭(F/sF.kCߙ׌ F-c߿ ߢ߼@%߳g0?MERCATOR8       & * 0 P%tx|%% % % %   %0%x%$ ,048<@HT`p      $ 4\`p t(W6x>merinv.cr_major r_minor lon_center  lat_origin !e  !es ("m1 0#false_northing 8$false_easting @)merinvint Omerinv0P6 /ecs/hdfeos/gctp/srcmerinv.c̿ /rp r|   |}x ux,|}~1~~% B 4: ; 9  .: ; 9 ? @ @x@ @A( D AF@( C0AI@C8;Fmerinvintmerinv  6Le~ ,4<K(0X`    @ D &$@*H006 >p!8P 0 fhq 8 {p  XPp Fp  p 7p1p@pC 8 H X@   3p millfor.o/ 1230064765 7356 20 100664 5284 ` ELF0@@  '.5= CKVZ^jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatamillforintptitleradiuscenlonoffsetp.lit8millforadjust_lontanlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:millfor.o<$g%-ߙ߄F g dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g!-ߙ׀% F n F c׌F,׏ߙ׎׍M F-cߙ׻ ߾ F ׎׏F s׍߿MsaߢM%߼g0MILLER CYLINDRICAL.      " & ,<%@H%X%h%   % % % $(08D P ` dl      @?!TD-?(W6xmillfor.c"lon_center #R $false_easting %false_northing )millforint Amillfor08P7 /ecs/hdfeos/gctp/srcmillfor.c̿ - vz|  {{I% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A0 C0AEB@A88=millforintmillfor !:JfL(0X`     @X D$8*8 088p!K.J `8k 8Pu0 {p  Pp p p 7p p C@p E   @  3p millinv.o/ 1230064805 7356 20 100664 5316 ` ELF80@@  '.5= CKVZ_kw.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatamillinvintptitleradiuscenlonoffsetp.lit8millinvadjust_lonexpatan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:millinv.o<$g%-ߙ߄F g dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g!-׎׏F.cF/sߙ ן׌F?o% F.c׌F,ߙ׍ F-cߙ׿ ߾ F ׍׎߿F-@ߢF.kBM%߼g0MILLER CYLINDRICAL.      " & ,<%@H%X%h%   % % % $(08D P ` dl     ?!TD-@(W6xmillinv.c"lon_center #R $false_easting %false_northing )millinvint Amillinv0<P7 /ecs/hdfeos/gctp/srcmillinv.c̿ - vz|  }yy{E% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A0 C0AGD@B8<=millinvintmillinv !:JfL(0X`     @X D $<*@ 0@8p!S.J `8k @Pu0 {p  Pp p p 7p p a@p E   @  3p (molwfor.o/ 1230064845 7356 20 100664 6036 ` ELF0@@  '.5= CKVZaiu.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatamolwforintptitleradiuscenlonoffsetp.lit8molwforadjust_lonsin__dcisp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:molwfor.o<$g%-ߙ߄F g dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g!-ߙP׀(F o  F cߙ0F HF @F F 8ׁךכ%F!Bߙ F F8F9F;F F$F F: <*2fEF8@ߙ߅߄d d߿׸P׻H׽ ׺@׹8߰0$߼׼(g`׍ F ׌(F.kAߙD F:i B F J N R V Z ^ 4@%DL%X%d%px %|0 %0H %H % %   %4 %\%% %%%%%$%@%h%  $(,08<H PT \` hl t     ( <H Ph            , 0 4HLTX pt?@(W6xVobleqfor.clon_center lat_o theta  m !n  "R (#sin_lat_o 0$cos_lat_o 8%false_easting @&false_northing H(obleqforint OobleqforP8 /ecs/hdfeos/gctp/srcobleqfor.c̿ 0r  v  $mnm 4*=\$<% B 4: ; 9  .: ; 9 ? @ @x@ @A( CAC@0 CpACA@AE8?^obleqforint1obleqfor ";Ocs!)DLTM(0X`   @ (Dl,$*pP0pU8p!fJ 0`` k u0X{p hPp^pp7pp@pG 0  P `@   3p (obleqinv.o/ 1230064966 7356 20 100664 7620 ` ELF80@@ !(/6=DLT Zchosy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataobleqinvintptitleradiuscenloncenlatgenrptoffsetptsincos.lit8obleqinvasin__dciscosatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:obleqinv.o<$g%-ߙH@ ߄( dߙ ׌(ߙ ׌ߙ ׌ߙ߅׌ dߙ߅׌  dߙ߅׌ dߙ׍H ׌@ߙg8g0 ׌߿%߼g<$!g0!-ߙ8X`ט ׁ(׀Hׂל@(F hF8B% F"xF B F J N R V Z ^ b 4@%DL%X%d%px %|0 %0H %H % %  8%P%t%%%%% %(%@ %l%%%  $(,08<H PT \` hl t       @ X \ `p|       $ 0 H L\t  ?@(W6xVobleqinv.clon_center  lat_o !theta "m #n  $R (%sin_lat_o 0&cos_lat_o 8'false_easting @(false_northing H*obleqinvint QobleqinvP8 /ecs/hdfeos/gctp/srcobleqinv.c̿ 2r  v  $l}|pl|}Y~$08Y% B 4: ; 9  .: ; 9 ? @ @x@ @A( CAC@8 CA DAF D@ BFA8?^obleqinvint1obleqinv ";Ocs!)DLTM(0X`   @ DT.$*xP0xU8p!jJ 8p` 0k u0x{p Pp^p6p-7pdp@p4G    @   3p  omerfor.o/ 1230065007 7356 20 100664 14548 ` ELF2P0@@ &.29AHPTZ^elqy 0.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataomerforinttsincospowptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_errortsfnzadjust_lonomerforlogcos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:omerfor.oF,hC<g$!!-pטOyF ߙhx@8 F ~FgP0F gH (ך0׀HߙF:A׍F:׌PF  Oֹ׍ ׂ0לF hF"F<M{!F cׁXט`F!׍E !F-cߙ F x߿߼%׸p׹xg߿߼׸p׹xgߙ߅߄d׼ d߿߼$׸p׹xgߙ F BF Gxߙ׽׎H ׌(F ׅXׇPF%قF(9F'1ׇL1D@׺F'D<׉ ׻F EhF)E>׻׺EF 8F 2ߙ׹ F ߙF F F ׌(ߙ  ׬ߙ׭F  ׌(ߙיX׬ P F Fߙ׬PF F ץ׈pצקF%B׍@F&9F->EVߙF F<>EIׅ8F%F {FE Dא F F%F F<>E 0ߙ׼gg ׬ߙgg F ׎ Dh׏h׌F.l>M{!F cׁXט`F!׍EF-cߙ F  xߙ F +FײF2pF 4ߙ F F xߙ߅߄d׼ d߿߼$׸p׹xgߙ߅߄d׼ d$߅߄d׼ d$<$!g!-ߙ׀PF nH F cߙכX8 F;ׄ8F F$׆F F#0׀ׅ`EXF F0F G0F%ƂF;փׂF EF"@F EF& >Eߙ׻H߅߄׹Xd׺0 d߿$߼׸Pg`׍ߙט(׎xF9kF-@F8.F.ց F-cF F;הדג@NP߿NZߧ׹Xב׎8׏׸PMڋߦ׻HM{߼%׺0g`ߙ F ߙF F F ׌(ߙכX׸8F X F F׃pF ׂF ׄ׹@ׁ(F"F$BׄF!F"O$iߙF!F;( F Cׇ`F E׆F'+< 0E ׅ`F;.F:Ƃ׍׬@׎F-c׭(Mk!ߙ F cר DHׅ`F)DךPF:.F;փF:>?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD->z򚼯HOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Point projects into infinityomer-for       $ ( , 0 4 8 < @ D L R V Z ^ b f j n r v z ~                  p%%%  %$ , %0 < %P %` %p% %HH %%%%$%d%h%h%%x %% %%%%%%% %% % %$( %<@D %TX\ %px| %%%8%T%|%h%hh%hh%hD%X %00%(% %%% % d%( DHLPTX`dltx|    (4 8@L X \h         ,48HLT` p    (<Lp       (4@l        0 4L Pd h     (4 HP hx   $ 0L P`l   8<@\`d      $ 8 H P ` t  (W6xomerfor.cr_major r_minor scale_factor lon_origin  lat_origin  !e (!es 0"false_northing 8#false_easting @$sin_p20 H$cos_p20 P%bl X&al `'d h(el p(u x)singam )cosgam *sinaz *cosaz /omerforint omerfor `7 /ecs/hdfeos/gctp/srcomerfor.c̿: <lit}l~~~~~~" ( |||1$  @ D<E; @V!$!{ /1~(!}|{,|($-!$ @ |w v o(x$" s s k|% y}}~~~],A~~~-0 % B 4: ; 9  .: ; 9 ? @ @x@ @A8 CBBF A A A@AVH C`A F@ ABUC:Bz9:M[8 =&omerforintomerfor !7Mh  1BRcs L(0hp    @H DD$0 *00h6@9>p!yP h` fq P {p ) Pp)p&p+p.v7p.p/]@p/E / 1 1@ 1  23p 2((omerinv.o/ 1230065047 7356 20 100664 14276 ` ELF1@0@@ &.29AHPTZ^elqy )<.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodataomerinvinttsincospowptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_errortsfnzadjust_lonomerinvexpphi2zcosatan2.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:omerinv.oF,hC<g$!!-pטOyF ߙhx@8 F ~FgP0F gH (ך0׀HߙF:A׍F:׌PF  Oֹ׍ ׂ0לF hF"F<M{!F cׁXט`F!׍E !F-cߙ F ߿߼%׸p׹xg߿߼׸p׹xgߙ߅߄d׼ d߿߼$׸p׹xgߙ F BF Gߙ׽׎H ׌(F ׅXׇPF%قF(9F'1ׇL1D@h׺F'D<׉ ׻F EpF)E>׻׺EF 8F 2ߙ׹ F ߙF F F ׌(ߙ  ׬ߙ׭F  ׌(ߙיX׬ P F Fߙ׬PF F ץ׈xצקF%B׍@F&9F->EVߙF F<>EIׅ8F%F {FE Dא F F%F F<>E 0ߙ׼gg ׬ߙgg F ׎ Dh׏p׌F.l>M{!F cׁXט`F!׍EF-cߙ F  ߙ F +FײF2xF 4ߙ F F ߙ߅߄d׼ d߿߼$׸p׹xgߙ߅߄d׼ d$߅߄d׼ d$<$!g!-׀@ׁ8ׂ׃F `ߙF!hAF"M 9׍X8F#יL!F-c׍`HF c @F @ F-cטF ׌Xߙ׍`ׁ(F,F 0F8F-c F!ׅ׆F )BL1aצ0ׇ(F&ـF'1F&)C׃F (F#׃ߣF ׈`ߤF#>׉8ߢ(ED8F%9>׆EFh߿ ׻H׸@%߼׹8gP׍F%kF-+F/sF s׏XF/kCߙ׌x F.cߙF Fg ׌(ߥߨ׻H߿ ׸@߼׹8gP׌Xߙ׍`F, F-cߙׯ(׌׎F FF/c Ms)׍XF-Cߙ׌ F-cߦ?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD-?!TD-OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point:        $ ( , 0 4 8 < @ D L R V Z ^ b f j n r v z ~                 p%% % %( 0 %4 @ %T %d %t% %HH %%%%(%h%h%h% % %% %%%%%%% %% % %$,0 %DHL %\`d %x %%%@%\%%h%hh%hh% h $% %%%% % %( DHLPTX`dltx|    $ ,8 <DP \ `l         $08<LPXd t   ,8DTx      0<Ht         8 <T Xl p   $(0< PX p   48<@H `l|  0h|       (W6x/omerinv.cr_major r_minor scale_factor lon_origin  lat_origin  !e (!es 0"false_northing 8#false_easting @$sin_p20 H$cos_p20 P%bl X&al `'ts h(d p)el x)u *singam *cosgam +sinaz +cosaz 0omerinvint omerinv 4`7 /ecs/hdfeos/gctp/srcomerinv.c̿8 =nkv}n~~~~~~" ( |||1$  @ D<E; @V!$}{ /1~(!}|{,|($-!$ @ |w v o(x$" {zuoo}o~~~0|z}} x8 {}D % B 4: ; 9  .: ; 9 ? @ @x@ @A8 CBBF A A A@AV0  CPANGB@A8 4=7omerinvint omerinv !7Mh  1BSct%-L(0hp    @x DPL$` 4*00h6>p!P @ f8q 0 {p 'Pp(07p*gp-n7p-p.=@p.}E . 0 0@ 0  13p 1(orthfor.o/ 1230065087 7356 20 100664 6132 ` ELFp0@@  (/6@GO U4]how .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataorthforinttsincosptitleradiuscenlonmeroriginoffsetp.lit8orthforadjust_lon__dcisp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:orthfor.o<$!g!-ߙ g0F sg( ߙ߄ dߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g<$!g(!-ߙ׀ 0F n F cߙgF g @ߙ׀(עׁ0׺׬@F"BF ւ 8ר8׊ױO@B!׌Dא ߣ׋F(<߿ F ߢF E׺0F BEF*I>EߙF1dBN4!p׏(׭׎0F/kBׯF-;BMsiMmbK%߼(gP߅߄d d߿ $߼(׺0gPORTHOGRAPHICPoint can not be projectedorth-for<       & * . 4 8%DH%LT%`%l %| %   %%%00%  $(,4<@ P X\ dh pt x    (08d t|=|׽(W6x&orthfor.cr_major lon_center lat_origin false_northing  false_easting  !sin_p14 ("cos_p14 0&orthforint EorthforP7 /ecs/hdfeos/gctp/srcorthfor.c̿ + vz| {    w w E~} u} uz }~% B 4: ; 9  .: ; 9 ? @ @x@ @A( CAC@(4 CPAF@A8=.orthforintorthfor !7Pi$L(0X`   @ D !-$@*8098p!Q<J `@k u0 {p  Pp p.p p7ppo@pE   @ 8  X3p horthinv.o/ 1230065127 7356 20 100664 7012 ` ELF0@@  (/6@GO U(]cit|.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodataorthinvinttsincosptitleradiuscenlonmeroriginoffsetp.lit8orthinvasinzatan2adjust_lonp_errorsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:orthinv.o<$!g!-ߙ g0F sg( ߙ߄ dߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g<g$! !-8ט ׀F8fF h(F8O!F ׁ0׀F!@F8<E>@ߙ F ߙgF  g׃F ߣߢF#>ׁׄEA%d߿@߼ ׸8gP׮0׭׌0F.kBF-cF8cߙ׮׍( Mk!ׅאF +F0{אF {F0z>ߤDE(F%>E טߙ׭0׬( F kGߙ F8ߥ%ߙ߅߄d d߿@$߼ ׸8gPߙ׬(׭0 F cߙ F ߦ%ߙ F ׆(ץL1y׍F +F.l>Eש(F JEF)m>Eׯ(׮ߙ׌0F/sF%B F.cߙ׌ F cߧ%ORTHOGRAPHICInput data errororth-invX       & * 0 4 8 < B F J N R 8%DH%LT%`%l %| %   %% %%%((%,%8%T%%%  $(,4<@ P X\ dh pt x    04dt |       4 P \h   >z򚼯H=|׽!TD-(W6x&orthinv.cr_major lon_center lat_origin false_northing  false_easting  !sin_p14 ("cos_p14 0&orthinvint EorthinvP&7 /ecs/hdfeos/gctp/srcorthinv.c̿ + vz| {   ~u ~~m9-~~0o(x0DI% B 4: ; 9  .: ; 9 ? @ @x@ @A( CAC@(( BPBBQ@8=.orthinvintorthinv !7Pi$L(0X`   @ D<*f$*H80H18p!yXJ  ` k u0` {p Pp.p.p,7pcp@p#E h X h@   3p polyfor.o/ 1230065168 7356 20 100664 7220 ` ELF0@@ &+05:?FNX_ghoz%.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatapolyforinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyforadjust_lontsincosmsfnz__dcis.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:polyfor.oF,h<$!g!-ׁL"yF ߙ`XHF  @ߙ׌H ߙ׌H (ߙ׌H 0ߙא׎0׍(׌ F  8ߙ߄P dߙ׍ ׌ߙ ׌ߙ ׌ߙ׍X ׌`߿%߼g<$!g!-ߙ (׀%@F n8 F c׃F E߿(ׅ`F#>ׄXׇ׆PE F ߼׸@La׻8L19ߢ D%߾gPߙgg F ߙ׏8׎0׍(F  ׌ ߙ׮׭׌@ 0ߙ׬F  F,׎F.BײF1BF2Cא`׏F1F {װF/F0{בPװ0߿(F1׻8ߣ F0{׍X׸@Msa߼%߾mgP?>z򚼯HPOLYCONICP       $ ( , 6 < @ D H L%\%l%| % % % % %%%H%% %%%$ ,048<@DPT X`d hpt x      $ 0P\dhl    8T(W6xpolyfor.cr_major r_minor lon_center lat_origin  e0   e1 ( e2 0 e3 8!e @!es H"ml0 P#false_northing X$false_easting `(polyforint QpolyforxPT7 /ecs/hdfeos/gctp/srcpolyfor.c̿ . s q |  yys~}s t x (%~,}}}}% B 4: ; 9  .: ; 9 ? @ @x@ @A( DAF@0h CPAD@BBB8x=7polyforintcpolyfor !7Mf/KS[u}L(0X`   @ @D9$x*Hh00H6X >p!bPP  f q {p PPpp/\p7ppJ@pE P   0@ p  3p polyinv.o/ 1230065208 7356 20 100664 6932 ` ELF0@@ &+05:?FNX_g,ou{  .symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatapolyinvinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyinvphi4zasinzsinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:polyinv.oF,hC<$!g!-ߙXP׀L9@ F ߙ׌@ ߙ׌@ (ߙ׌@ 0ߙא׎0׍(׌ F  8ߙ߄H dߙ׍ ׌ߙ ׌ߙ ׌ߙ׍P ׌X߿%߼g<$!g !-גPׁF2lF!בHF2@׃F ׀XF#>(F `(%Dה%8E F!F %߼ ߰(gPߙ׌@׍ ׎(׏0א8F NQ@ gF D"@߿@$J߼ ߰(gP׮8׬ߙ׍F.c F-cߙ  0׭0F kCߙ׌ F-cߣ߿@`?>z򚼯HPOLYCONICL       $ ( , 8 > B F D%T%d%t % % % % %%%%%%% $(,48<@L PX\ `hl px|      $,4L     (W6xwpolyinv.cr_major r_minor lon_center lat_origin  e0   e1 ( e2 0 e3 8!es @"ml0 H#false_northing P$false_easting X(polyinvint Ppolyinv,P7 /ecs/hdfeos/gctp/srcpolyinv.c̿ . sr {z|   }|txr z@}% B 4: ; 9  .: ; 9 ? @ @x@ @A( DAC@(, CPAL[@8,='polyinvintSpolyinv !7Mf;CKemuL(0X`   @ @D4$,*`006 >p!"LP p f `q @P{p Ppp_ p7pp6@pvE @  @ P  p3p psfor.o/ 1230065248 7356 20 100664 6820 ` ELF 0@@ `$)08?GOU[`alpw .symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatapsforinte4fnptitleradius2cenlonoffsetptsincosmsfnztsfnzpsforadjust_lonsin__dcis.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:psfor.oF,h<$!g!-ׁL"yF ߙ80(@`XF FF ~F v F ׉F ׄ F)B0D8׆F Bׅ F'p! BP P f q {p  Pp pIp7p-p@pA @P  @   3p psinv.o/ 1230065289 7356 20 100664 6804 ` ELFP0@@ \$)08?GOU[`Lagmx.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.sbss.lit8.rodatapsinvinte4fnptitleradius2cenlonoffsetptsincosmsfnztsfnzpsinvphi2zatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:psinv.oF,hC<$!g!-׀L9F ߙ80(@PF FXF ~F v F ׅF ׃ F%!(D8׆F !ׅF'p!T@P  f Xq {p  Pp@|p~p:7pqp @pIA @  @   @robfor.o/ 1230065329 7356 20 100664 7364 ` ELF@0@@  *18?G\NYeq.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.sbss.bss.lit8.rodatarobforintptitleradiuscenlonoffsetprobforadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:robfor.og<$B"-ןדהו߁חזd!76X54P3?`ב ג(א׏׎׋׊׉׈ׇ׆ׁׂׅ׃!hׁ#p%ׅ "ׂ&x׆(' ׇ0(׈8)(׉@*׊H+0׋P.׎X/8׏`0אh2Hגx1@בp2H10@/.8+*0)(('& "%ׄ׀$$ׄ0D  #"!F$F gd%d&P ԴԳdF$F$ߙ߄ dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g!-ߙ׀% F o F c׊8F*׋@F+R׋HF RF+RF Z߃D"Xdc׌XC-DhBCFZEF?h>F+R׋PIF#)LyGF*RMF$QM;9F%F)kALK F#@F-R׆LKׅF,J@߿LQߤF)B׿ F"(ׁLAߣL"a׍h׌`%F')BE F,+߿߼Lb߾%׿ kg0F-+BLka߼߾g0vȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!RE eF+1>D8$ HF9ׄ`׌x@% \F%9F.9[ׅhF(1F%9F+9F,5F(F)HF4!F 5EF5h?FRROBINSONToo many iterations in inverserobinv-conv2     ( , 8D%% % %  `x %L0PT0X %\p0tx0| % $(,04<@`dhlptx| LP\     ,48DXt, H l (W6xrobinv.c%lon_center &R 'false_easting (false_northing )pr *xlr .robinvint  trobinv P6 /ecs/hdfeos/gctp/srcrobinv.c̿1 2 {c b }Z %Z %}}~hihjjjjjjjjjij]&Y  X *L3        z myemebq+^"` {   ~r q s~~  {x}~ q(s( k s% B 4: ; 9  .: ; 9 ? @ @x@ @A( A B@BB( B BQG@8;robinvintrobinv  9IeK(0X`   @X 8 $* 0 P50 ; (<Cp! d2U  k Xv p0p Pppp7pHp@pC P 0 @@  $ sinfor.o/ 1230065410 7356 20 100664 4980 ` ELF (0@@ &-4<CNR ^jx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatasinforintptitleradiuscenlonoffsetpsinforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:sinfor.o<$g%-ߙ߄F g dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g!-ߙ ׀%(F n F cߙF  F ׃߿ׁׂF#߼ߢL@ L#a׸(׻ A%߾g0SINUSOIDAL*      " ,<%@H%X%h%   % % $(08D P ` dl  (W6xsinfor.clon_center  R !false_easting "false_northing &sinforint >sinfor0$P6 /ecs/hdfeos/gctp/srcsinfor.c̿ * vz|  {{~% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A0 C0ACCB@A8$;sinforintsinfor  9IeK(0X`    @( h>$$* 0 8p!*J  p` k up Pp p p 7p p X@p C    @  -p  sininv.o/ 1230065450 7356 20 100664 5524 ` ELF0@@ &-4< BIMX`lx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatasininvintptitleradiuscenlonoffsetp.lit8sininvcosadjust_lonp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:sininv.o<$g%-ߙ߄F g dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g!-ׇ׈F'iF(9׉F 9׆F$H<׊(%F&aE׉F*"F RF*I<ׅE߿%߼g ߙ F ;׎׭F sF.kCߙ׌ F-cߢ@ߙ߅߄d d߿$߼g SINUSOIDALInput data errorsinusoidal-inverse0     $ ( ,<%@H%X%h%   %8 %P(TX(\ %` $(08D P ` dl     0 4L ?!TD-!TD-=|׽(W6xsininv.clon_center  R !false_easting "false_northing &sininvint >sininv xP6 /ecs/hdfeos/gctp/srcsininv.cͿ * vz|  }yy}y( % B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A( C AH@8x;sininvintsininv  9IeK(0X`    @X D $x*x 0x;8p!0J `hk `u0 `{p  xPp p p 7p p =@p }C   @   3p somfor.o/ 1230065490 7356 20 100664 14228 ` ELF0P0@@  +(5<DKSZeq0|x|%6I].symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.MIPS.interfaces.text.sbss.bss.lit8.rodatagsat_ratiosomforintptitleradius2genrptoffsetp__dcissom_seriesgenrpt_longsomfortansprintfcossinatanp_errorasinlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnamesbe::7.42:somfor.oF,hCg ߨPHפx@<`$!8!-XךOAyD %F pׅףF%߰ߢ0hD(ߒpDF)a%Xߙ߄ dߙ׍ ׌ߙכh߅d F;ߙ׌߅d F;cߙ׍ ׌ߙ߅L dߙߑF  f1גpF2F2AF.F1sדpF F3af׶O^O~O!O!gg(g g׃׽gg % ץ׊F<)@F*)Cר(׉F9BF)Bק ׉F:9F)9צ׉F;1F)1פF8!F)!߿p׾߰x߲߱׸@׹`׺X׻P׼H0 (%߼8g߰h(0D ׅ ׆%ߒ F!!׈8ׇ0L!׈(ט@XF&9 ׊X׉PM*"y׊Hט`XF&JB%p0Eߙ߅ % dߙ߅ߤ0 d.ߙ<$!g!-ߙׁhpF- <ׂF0hQF" <נDׄF,ׅטF">ׁןF#)2F) םF$ׁpF#<xF=gAF F  F!כ`( צ߂ׄ`F EF$%8`LߙלXO!ߙF  F FF EF; ׉צF'1BF9/<ׄEL1!F$F)OF%Gߙ׌XF  Oc!Dx׹אF ˆF |>F1׍xߙF/. &֕@@@V@>@N@.@F?!z!z?!TD-@jz)U8^@|3!>z򚼯Hz򚼯H@ !TD-@!TD-??!TD-@?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without conv som-forward      & , 2 8 > B J N R V Z ^ b f l p t x |        08% %HH %hh % %$ %(0 8 %<  % %x % %%0%004%8%\%x%%8%T\%`|% %%0 %%%%%@% % % % % %DLPX`pt      , @TpPTX\d   $ D H\|$ (0 PX dp    $ @d    8@DHd lp|     (Llpx     , 0 @ D \ p t        (W6xsomfor.c!lon_center !a !b !a2 !!a4  !$c1 (!'c3 0!*q 8!,t @!.w H!0xj P!3p21 X!7sa `!:ca h!=es p!@s x!Bstart "false_easting #false_northing 'gsat_ratio )somforint( somfor0x som_series 4A6 /ecs/hdfeos/gctp/srcsomfor.cͿ> 7poxq~}{t}~$$~y!w{ ~||}z {"x{"x{{~{z{z}y}{o~~  %}kkk!}~i}i~4 ~}~sh{ gp|||I~~~~u~~xx{z~|}} |8{~~,% B 4: ; 9  4: ; 9  ? .: ; 9 ? @ @.: ;9 @ @x@ @AP( BBAB A A A A ABBCU@ @_@H0| CAFC B A PB@IAAAA0 BPAD@CA C 8 4N&gsat_ratiosomforintsomfor-&som_series  9IYj{#3Gc K(0     @x o'r$ 4*050 ;Cp!U 0 kv @ Pp $Pp$&p'Ip+O^p+p,@p,Vp-C5 -x /h /x`" / 5 /I 0^p 08sominv.o/ 1230065531 7356 20 100664 13668 ` ELF.`0@@ %,4@GOVPa\hlpuy)<P.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.MIPS.interfaces.text.sbss.lit8.rodatasominvintptitleradius2genrpt_longgenrptoffsetp__dcissom_seriessominvsinexpatantanadjust_lonp_errorcosasin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnamesbe::7.42:sominv.oF,hCg0ߡ`XH0P<8$B@"-hיO!y%F % xׄףF$x`ߙ߄ dߙ׍ ׌ߙ߅ % dߙ߅ % dߙךX߅d F:ߙ׌߅d F:cߙ׍ ׌ߙ߅׬ dߙߑF  f1׎xF.F.́F/F2|CמpF.F2F0{F3{ה`F F4af׷O^O~O!O!gg(g gׄ׽gg % צ׋F<1F+1ש(׊F9J@F*JCר ׊F:BF*Bק׊F;9F*9ץF8)@F*)C߿x׾߲p߰0߱8׸P׹h׺`׻X׼H0 (%߼@gׅ(ׇ(D ׆ ט0׉HF!!L!ׇx`F%1/׈@M "9טP׉8x`F%B&<g@$!8!-׃ׅF#hF%hיF9fAF%C ׄ0׆`F%!ׅh(`מF&)BXp$2%F$CxߙF  F ׃8F"BׄPׅ@OO !OaF$F#CF D׻׌pߙF F F, F!ߙ׌F  F,ߙ׌F F F,סp׃XF;BF#CF#׿xF!ׁOׁ0ׄ(F BL$aׄ O'OׁF!F8A׎`F kEF.hk@F kD׎(׬XM9׎0Ms9ߙ F-cߙ F ׅF EםF% <ׁpF=F:BEiF!ߙן F ߙךxF F  F:א8Oy׎HO!F BF.kMF {F:l׌hF,F/cF8cF0F>s׏pF0HOkyM{)ߙP@ F-cלhF D(F?<ספF .>׃hF8->F%E5׼׿׻׾׍`ߙOMy׌׸ F-c߿׺߼8߰0߱(׹hߤߣ %~׾`gߙ׸׼׻׿߅߄׺d׽ d߿߼8߰0߱($׹h׾`gיߙF9@ F F ߙ׼׿ F ׌p׎h׭PF,M)ߙF.kB F-c׻F ׏x׭P׮HF-kBMsaF kDߙ׬@ F-cߙgH (0׍, %%F-c% ,ׄ8F"B׃P׏א@M!!MMF#$F0{F {F# CF Dׅ`׎hF%sF.F/sׂXF.vO!F F$!F$ׄpLe F#BO)F ߙ׍p8 8@ F-cߙ׍F   F-c׃XF נ8ߙט!F#ߡ0F נ@߾F"B!  F ߙߢ(׍F ÂN ߱ F-c߿߰ߣ F D׸HogP?@?FR5?[Ow@` =p?򽴆&?=?SC~@`)?lī?l0a\j@Lc˰>. &֕@@@V@>@N@.@F@!TD->z򚼯Hz򚼯H?!TD-?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse       $ ( . 4 : @ J N R V Z ^ b f j n r v |        (%%%0%0HH %hh % % % ( %,  %$ % % %   %%%% %%%%$%<%%(%|%% %%<% % ,% H% % %4<@HP`dpx|        0DX| `dhltHPXd    (04@LXt |      , 0DLh   h    4 P l    4 8 P \ `  (W6xsominv.c lon_center  a  b  a2  !a4   $c1 ( 'c3 0 *q 8 ,t @ .u H 0w P 2xj X 5p21 ` 9sa h L@ D @E@ H\ BBF F@AAAAAABDA 0P BPAD@CA C 8 ;sominvintsominv-som_series  9IYj{"3C_|K(0     @H jeW$p *H00H6(>p!P @ fXq P{p #0Pp#p%p)Mp)p*@p+ Cp+c5 + -x -` - 0 .D .Yp .(8sterfor.o/ 1230065571 7356 20 100664 6180 ` ELF0@@  (/6@GO U8]how .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatasterforinttsincosptitleradiuscenlonmeroriginoffsetp.lit8sterforadjust_lon__dcisp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:sterfor.o<$!g!-ߙ g0F sg( ߙ߄ dߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g<$!g(!-ߙ׀ 0F n F cߙgF g @ߙ׀(עׁ0׺׬@F"BF ւ 8ק8ׄO@9׈׊׉F(9׮׍ F 8ߣ߿ F$>ߢ׺0F E׈F'RF*JBF.KMam׌(ת׋0F,R׬F*MLZM J!H%߼(gPߙ߅߄d d߿ $g߼(׺0gPSTEREOGRAPHICPoint projects into infinityster-for<       & * . 4 8%DH%LT%`%l %| %   %%%00%  $(,4<@ P X\ dh pt x    $ ( ,8\t| ?=|׽@(W6x&sterfor.cr_major lon_center lat_origin false_northing  false_easting  !sin_p10 ("cos_p10 0&sterforint EsterforP7 /ecs/hdfeos/gctp/srcsterfor.cͿ + vz| {    w w xxt t   v w % B 4: ; 9  .: ; 9 ? @ @x@ @A( CAC@(8 CPAF@A8=.sterforintsterfor !7Pi$L(0X`   @ D !-$@*8098p!Q<J `@k u0 0{p  HPp .p %p7p"p@pE (  (@ h  3p sterinv.o/ 1230065612 7356 20 100664 6900 ` ELFh0@@  (/6@GO U]bgmx|.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatasterinvinttsincosptitleradiuscenlonmeroriginoffsetp.lit8sterinvatanasinatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:sterinv.o<$!g!-ߙ g0F sg( ߙ߄ dߙ ׌ߙ ׌ߙ ׌ߙ׍ ׌ ߿%߼g<g$!!-@ט ׀F8fF h0F8O!F ׍׌ߙ F-c%(%8 F,ߙ׌gg F,׏F Å׀F/p>׍߿ %E ߼߰(߾׸@gP߿ ߼߰(߾׸@gP׮8׭׌0F.kBF-cF8cߙ׮׍( Mk!ׅאF +F0{אF {F0y>DEF%>E ߙߙ׭8׬0 F kGߙ׌ F,%׬0׭8 F cߙ׌ F c%ߙ F ׆(ץL1y׎F +EF.k<ר0E %F BF.D B F J N 8%DH%LT%`%l %| %   %%%%%%$%<%%%  $(,4<@ P X\ dh pt x     (0        8 DP   @=|׽!TD-(W6x&sterinv.cr_major lon_center lat_origin false_northing  false_easting  !sin_p10 ("cos_p10 0&sterinvint EsterinvP87 /ecs/hdfeos/gctp/srcsterinv.cͿ + vz| {   t t - `!b g9)~~{40$  ~|% B 4: ; 9  .: ; 9 ? @ @x@ @A( CAC@0 BPBBL@AC8=.sterinvintsterinv !7Pi$L(0X`    @ D<&b$*@80@8p!NTJ ` k u0 {p Pp(.pV@p7ppU@pE   @   @3p Pstplnfor.o/ 1230065652 7356 20 100664 12724 ` ELF*0@@  # )5=EKQW^eqw}"2BSf.symtab.shstrtab.strtab.comment.text.sbss.data.rodata.srdata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.sbss.data.rodata.srdata.lit8stplnforintsprintfp_errorfopenfseekfreadfcloseptitlegenrpt_longpakczpaksztmforintpolyforintomerforintlamccforintstplnforomerfortmforlamccforpolyfor.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:stplnfor.o<$cgp(#-߁% %$7 $߂dBP%dK0CpdBKeJߙ ߂P%dBdK`dB0Cp#dBKeJߙ 8%߅0%g0 dߙ߅g0 d߿߼($߰ ߱g߿߼(߰ ߱g߼(%%߰ ߱g@%$Hߙ Rߙg %@Rߧ(ߙ(/(0%ߤ(/ )8ߙ$ $ߧ gߙ$$ߧ gߙ$ $ߧ gߙ ߤFߙ߄ dߙ߅ % dߙ$$S߅  dףׂF#F ס$pF"BF:x$GE$HO$ I߿߼(%߰ ߱g@%ߙg %@ߙ߅߄d d$ߙפ׬ hߙF  gߤ7`ߙ 8%߅0%g0 dߙ߅g0 ds$ߙצ׬ hߙF  gߤ'Xeߙ ׬ߙF  gߤ'PYߙ ׬ߙF  gߤ'HMߙ ׬ߙF  gߤ'@Aߙ ׬ߙF  gߤ'ߙ5ߙ ׬ߙF  gߤ'8)ߙ ׬ߙF  gߤ'ߙߙ ׬ߙF  gߤ2ߙ׮h׭xדׯX׬pײF3ױ F3{a߿ߙ ׬ߙF  gߤ0׭xג׮H׬pױF2װ F2sJ߿ߙ ׬ߙF  gߤߙ׮h׳ײ$ ׭xD׬pהװ@ׯ`F4BF4 F4{)߿׭xהװ0ׯ8׮PF4B׬pF4׳F4{ײ F4s߿<$Bg"-$A$C$D"$E%߿߼gߙ ߿@@0%߼gߙ ߿@@0%߼gߙ @@0%ߙ @@0%ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-forSTATE PLANEZone: Datum: NADr??FR5     " & * . 2 6 < @ D H L P T X \ ` d h l p t x |                  @Dpx%( %(D %t % % % % %x%x%% %h8h %8%%%( %(4%D%d%t%%%%%%%$%4%T%d%%%%%%,%@%P%%%T%|%%%4h  0 < @\ |       ,      ( < ` l          , P \ t      < H ` P x   (W6xstplnfor.c id  inzone  NAD27 * NAD83 07stplnforint stplnfor`s8 /ecs/hdfeos/gctp/srcstplnfor.c׾; ;n} v~r -~ (ba 4$$$ { ~  }$(( ( (((N(} ((}( wP  ( m(}([3|$j$p  % B 4: ; 9  .: ; 9 ? @ @x@ @A8 CA CBC@xE@( CAE@8?xstplnforintstplnfor "3H\pM(0hp   @ Az$* x0 x`6>F0Lp!^ p tP p $Pp%p%{p(U7p(p)@p)\G ) *h *x@ * - *stplninv.o/ 1230065692 7356 20 100664 12836 ` ELF+X0@@  # )5=EKQW]dkw} (8HYl.symtab.shstrtab.strtab.comment.text.sbss.data.rodata.srdata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.sbss.data.rodata.srdata.lit8stplninvintsprintfp_errorfopenfseekftellfreadfcloseptitlegenrpt_longpakczpaksztminvintpolyinvintomerinvintlamccinvintstplninvomerinvtminvlamccinvpolyinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:stplninv.o<$cgp0#-߁ %(%$7 $߂dBP%dK0CpdBKeJߙ ߂P%dBdK`dB0Cp#dBKeJߙ 8%߅0%g0 dߙ߅g0 d߿߼0$߰(߱ g߿߼0߰(߱ g߼0%%߰(߱ g@%$Hߙ Uߙg %@Uߧ(ߙ(/(0%ߤ(/ )8ߙ ߤߙ$ $ߧ gߙ$$ߧ gߙ$ $ߧ gߙ ߤFߙ߄ dߙ߅ % dߙ$$S߅  dףׂF#F ס$xF"BF:$GE$HO$ I߿߼0%߰(߱ g@%ߙg %@ߙ߅߄d d$ߙפ׬ pߙF  gߤ7h~ߙ 8%߅0%g0 dߙ߅g0 dp$ߙצ׬ pߙF  gߤ'`bߙ ׬ߙF  gߤ'XVߙ ׬ߙF  gߤ'PJߙ ׬ߙF  gߤ'H>ߙ ׬ߙF  gߤ'ߙ2ߙ ׬ߙF  gߤ'@&ߙ ׬ߙF  gߤ'ߙߙ ׬ߙF  gߤ2ߙ׮p׭דׯ`׬xײF3ױ F3{a߿ߙ ׬ߙF  gߤ8׭ג׮P׬xױF2װ F2sJ߿ߙ ׬ߙF  gߤߙ׮p׳ײ$ ׭D׬xהװHׯhF4BF4 F4{)߿׭הװ8ׯ@׮XF4B׬xF4׳F4{ײ F4s߿<$Bg"-$A$C$D"$E%߿߼gߙ ߿@@0%߼gߙ ߿@@0%߼gߙ @@0%ߙ @@0%ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-invSTATE PLANEZone: Datum: NADr??FR5     " & * . 2 6 : @ D H L P T X \ ` d h l p t x |                   @Dpx%( %(D %t % % % % %%x%x%%  %h8h %8%%%($ %((@%P%p%%%%%%%%0%@%`%p%%%%%%8%L%\%%%d%%%%4h  0 < @\ |        (8      4 H l x         , 8 \ h        H T l $`    (W6xstplninv.c id  inzone  nad27 ( nad83 05stplninvint stplninv`x8 /ecs/hdfeos/gctp/srcstplninv.c; 9m} v~r -~ (ba 4$$$ } ~  }$(( ( (((N(} ((}( wP  ( m(}([4|$j$p  % B 4: ; 9  .: ; 9 ? @ @x@ @A8 CA CB C@xE@( CAE@8?xstplninvintstplninv "3H\pM(0hp   @ A)$* 0 `6>F0Lp!^  t !Xp %(Pp%xp&Jp(7p)p)@p)G * * *@ +( - +Htmfor.o/ 1230065733 7356 20 100664 9284 ` ELFx0@@ H$).38=DLS]dl tPz ,?.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatatmforinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetp.srdatatmforadjust_lontsincos__dcisp_errorlogacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:tmfor.oF,h<$!g!-ߙh` ןO9H F ߙ׌H (ߙ׌H 0ߙ׌H 8ߙא ׎8׍0׌(F  @ׄHF$AF! Cׅ׃DߙF% <߄F XF pd Pߙ׿׍ ׌ߙ߅׌ dߙ ׌ߙ ׌ ߙ׍` ׌h߿%߼g <$!g(!-ߙ׀ hF n F cߙgF g pDׁpF#2נpECץߙ F ץF%B׆`F )EF&)@׆ F )EF&)h=|׽?@@M@@4@2@R@8@"@@>@N@@tTRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinity`       $ ( , 0 : > B F J N T X L%\%l%| % % % %  % %%,%PT%%%H%H %l% %(% $(04<@DHT X`d hpt x        $ (0d l     ,<@Dd x|   0<DLX\dhpxtm-for(W6xtmfor.c#r_major $r_minor %scale_factor &lon_center 'lat_origin  (e0 ((e1 0(e2 8(e3 @)es H)esp P*ml0 X+false_northing `,false_easting h-ind p2tmforint H dtmforP@P!5 /ecs/hdfeos/gctp/srctmfor.cͿ) 9rq wzy }yvw     v v % ) ($ ~}~ v,y{~}}}}}}}}}}}}}}}|}}y|% B 4: ; 9  .: ; 9 ? @ @x@ @A(H D AC@D0P CA F@ A8@9dtmforinttmfor 5Kf.J\v~J(0X`   @x LSW$p@* x00 6 He>p! `P @ f Pq {p Pp@p)p!7pXp@p A hp  @ ( ' H;p X tminv.o/ 1230065773 7356 20 100664 10212 ` ELF!X0@@ H$).38=DLS]dlP@rvz 1D.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.lit8.rodatatminvinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcosasinzatan2adjust_lonp_errorsintsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:tminv.oF,hC<$!g!-ߙh` ׀L9H F ߙ׌H (ߙ׌H 0ߙ׌H 8ߙא ׎8׍0׌(F  @ׄHׂF$F" ׃ׅߙ߄߆pF F% <$X(pd Pߙ׍ ׌ߙ߅׌ dߙ ׌ߙ ׌ ߙ׍` ׌h߿%߼g<$cgP(#-߁p F n׀%F fF EׅߙF + F,טF ׭F-Cߙ׌ ׁF8F-c F!׍M9MaF-cߙF F F cD(׮F%p<א%߿EF%2F E߰ F%2E׺׸߼(ߤ׹g߼(߰ ׹׺gߙF F F ߙ׌׸ F cߥ߿%ׂ`F"nF%CטXF!F ׍hF-fAXߙߙ׍0׃(׌ F-BF#`F, hߙ׬h pߙ׬` xה0׳xױXF4F3@ד8ג@װpN3yF2F1ב(F1F8ג8F EF2>ߢ(FdBE F8ז@F EF6h?@@@=|׽?!TD-@@8@@$@"@>@N@V@r@F@o@4@<@ TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSEt       $ ( , 0 : > B J N R V Z ^ b f j n H%X%h%x % % % %  % %%,%PT%%%x%%%% %%%%8%lhpHthx%|H $(,08<@DP T\` dlp t|        $ (0d   p      (<@T`  $,0DHT\dpx  0 DT(W6xtminv.c$r_major %r_minor &scale_factor 'lon_center (lat_origin  )e0 ()e1 0)e2 8)e3 @*es H*esp P+ml0 X,false_northing `-false_easting h. ind p3tminvintH ctminvPP\5 /ecs/hdfeos/gctp/srctminv.cͿ/ :rq zy {}}y    u u (~~{>C;E;G9G9L8|{ w  w  y w} }}}}}}}}}} ,c(% B 4: ; 9  .: ; 9 ? @ @x@ @A(H DAC@8P@ CAD@AAAA89dtminvinttminv 5Kf.J\v~J(0X`   @ D,X$* 0x00 06 s>p! [tP  f``q {p Pppdp7p3p@pA Hp  @ !  !(3p !8 utmfor.o/ 1230065813 7356 20 100664 9700 ` ELF 0@@ %-27<AFMYahr z +>.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodata.lit8utmforintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmer.srdatautmforadjust_lontsincos__dcislogacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:utmfor.oG0&0/g< %$!F a!-(= ߙ߅߄d d߿$ ߼g F,kߙׄ8h8/ׁ8xׂDdIߦD׌ ( F&F!M{9`F! Hߙ׌H (ߙ׌H 0ߙ׌H 8ߙא ׎8׍0׌(F  @׉HצF)1AF%IC׊(׈ׇpߙF*H<߄F BXF 9pd Pߙ߅ߤ dߙ׍ ׌ߙ߅׌ dߙ ׌߿%߼g <$!g(!-ߙ׀ hF n F cߙgF g pDׁpF#2נpECץߙ F ץF%B׆0`F )EF&)@׆8F )EF&)h=|׽?@@M@@4@2@R@8@"@@>@N@@tb       " & * . 2 < @ D H L P V Z @DHL%P%% % % %L(`(d %pPx %|P%`%`%%%<%t|%%% %%< l ptx     $(8<@D T\hl      $8 L\p x  DLX` dhltx  0<DPlutm-for(W6xutmfor.c$r_major %r_minor &scale_factor 'lon_center (lat_origin  )e0 ()e1 0)e2 8)e3 @*es H*esp P+ml0 X,false_northing `-false_easting h.ind p2utmforint  butmforPe6 /ecs/hdfeos/gctp/srcutmfor.cͿ( 6}}(nx|}~| }}~}~}{xy    v v % ) ($ ~}~ v,y{~}}}}}}}}}}}}}}}|}}y|% B 4: ; 9  .: ; 9 ? @ @x@ @A( D C@C0 CA F@ A8;eutmforintutmfor  6Lg/K]xK(0X`   @` LR>$P* x0 80 >p! hbP @ fHq X{Hp PPpp[mp7pp@pC p  @  ' ;p  utminv.o/ 1230065854 7356 20 100664 10580 ` ELF"0@@ %-27<AFMYahr@y}0C.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodata.lit8utminvintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutminvexpcosasinzatan2adjust_lonsintsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:utminv.oG0&0/g< %$!F a!-(= ߙ߅߄d d߿$ ߼g F,kߙׄ88/h8xDׂdIߦDׁ(׌ F&F! M{9`F! Hߙ׌H (ߙ׌H 0ߙ׌H 8ߙא ׎8׍0׌(F  @ׇHׅ F')AF%9C׆׈(ߙ߄F 1F(8<$X(pd Pߙ߅ߤ dߙ׍ ׌ߙ߅׌ dߙ ׌߿%߼g <$cgP(#-߁p F n׀%F fF EׅߙF + F,ט F ׭F-Cߙ׌ ׁ0F8F-c F!׍ M9MaF-cߙF F F cD(׮F%p<א%߿EF%2F E߰ F%2E׺׸߼(ߤ׹g߼(߰ ׹׺gߙF F F ߙ׌׸ F cߥ߿%ׂ`F"nF%CטXF!F ׍hF-fAXߙߙ׍H׃@׌8F-BF#`F, hߙ׬h pߙ׬` xה0׳xױXF4F3@ד8ג@װpN3yF2F1ב(F1F8גPF EF2>ߢ(FdBE F8זXF EF6h?@@@=|׽?!TD-@@8@@$@"@>@N@V@r@F@o@4@<@ v       " & * . 2 < @ D L P T X \ ` d h l p @DHL%P%% % % %@(\(` %lPt %xP%`%`%%D%d%%%p%%% %p%%%%< l pt|      $(48< PXdh |    , 04L\ x  $0H P TX\x    ,4HT x$(4P|  (W6xutminv.c%r_major &r_minor 'scale_factor (lon_center )lat_origin  *e0 (*e1 0*e2 8*e3 @+es H+esp P,ml0 X-false_northing `.false_easting h/ ind p4utminvint  eutminvP6 /ecs/hdfeos/gctp/srcutminv.cͿ/ 8}}(lx}~~|}~}~v}w     u u (~~{>C;E;G9G9L8|{ w  w  y w} }}}}}}}}}} ,c(% B 4: ; 9  .: ; 9 ? @ @x@ @A( D C@C8@ CAD@AAAA8;eutminvintutminv  6Lg/K]xK(0X`   @ DWk$* x0 80 8>p!vP  fq {p Ppppt7pp ;@p {C p "0 "@@ "  "3p " vandgfor.o/ 1230065894 7356 20 100664 6388 ` ELFh0@@ !(/6> DdMX^fjv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatavandgforintptitleradiuscenlonoffsetp.lit8vandgforadjust_lonasinztsincostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:vandgfor.o<$g%-ߙ߄F g dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g!-ߙ (׀%@F n8 F cׂF E߿(׃F">ׅׄF FE0߼׸@L)!׹8ߢ C%߾gP߿(߼߾׸@׹8gP׌F,ߙ׍F c F-c׎F Eׯ0ׁF.i>א׌ ׂEDhF0{F {F.z>EߙF8k>יF,E F!Bߙ ׎Mߣ nߙ ׏Mߤ %gg F ׁF!CF9 ׭׈F-B׫׌0F+k@F,k@F-ZF)9F,R׌ F 9DHF,9F+RF)׊EF 1FF 1GF *F ZF(;׆8LYLYF%REF 1׌M!׍My߿(VAN DER GRINTEN8      & * . 2 ,<%@H%X%h%   %T %%% % $(08D P ` dl  @ H L \ h p t x      8 t =|׽@ !TD-@!TD-??(W6xvandgfor.c"lon_center #R $false_easting %false_northing )vandgforint AvandgforP}8 /ecs/hdfeos/gctp/srcvandgfor.cͿ - vz|   u u u}|t u  x(}~} x-,I~~{~~~~l% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A0d CPAD@BBB8?vandgforintvandgfor ";KgM(0X`   @p D$ * 08p!(8J `` hk hpu0 @{p  Pp hpNp7p p@pG    @ 0  P3p `vandginv.o/ 1230065936 7356 20 100664 6356 ` ELFH0@@ !(/6> DMRVamy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatavandginvintptitleradiuscenlonoffsetp.lit8vandginvacoscosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:vandginv.o<$g%-ߙ߄F g dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <g$!!-@טׇ׆F'1F8fF&ׅF%iAF&)F8B L&0a׊F 3׋F* ׇF0sF+2MGyL1L F&1F'!F(1Lqב(LF1{F/3F'{F'{F+3BF-3BF-3BF'kCF'kC׈ F&3F(cF'cF'kCMs!F cF'cF bGF(JC׎0F/kAF.kCF JDF-!F(!F,!F+JBF)!PF 0F!BF"P<(ׁ@%8EDHF$I>F F%QF(6F%J>HEF'փߙ F #׌ F,ߙ׍H F-c׭8O@ka׎F kGF.kBߙ F #׌ F,ߙ׍H F-c׭8O@ka׎PF kGF.kBאXF ߿H׺PF0{<ߢ߾E ׄD%߼׸@g`װׯ F0{א׎M{׭(F.k@F kD׬0׎@F.c׎F-c׍`F.cF-cF8cߙ׺P F,#߿H߼߾ߣ%׸@`g`VAN DER GRINTEN8      " & * 0 ,<%@H%X%h%   % %$ %< % % $(08D P ` dl     @ h        , 4 8 L \ |      @ !TD-@?@@"@;?R8-se !TD-=|׽?(W6xvandginv.c"lon_center #R $false_easting %false_northing )vandginvint AvandginvP28 /ecs/hdfeos/gctp/srcvandginv.cͿ - vz|    u v M~~ ~~ ihf MI!x}}}% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A0 B`B B{B O@8?vandginvintvandginv ";KgM(0X`     @X D $* 08p!(8J `` hk hpu0 h{p  @Pp pv:p7ppo@pG   @   (3p 8wivfor.o/ 1230065976 7356 20 100664 5844 ` ELFH0@@ &-4< BPITX_gs.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatawivforintptitleradiuscenlonoffsetp.lit8wivforadjust_lonsin__dcisp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:wivfor.o<$g%-ߙ (߄F g dߙ F ߙ׿ ׬(ߙ׭ ׬ ߿%߼g0<$!g!-ߙ(׀% F n F cߙ08F @F  Hׁכך%F!Bfߙ F F8F9F:F F$F F; <*E F8@ߙ߅߄d dfߙ׌ F,߿׹8׺@א ׏׻H׸ ב(F0|߰0׎F0׍F1{߼MߦMa׿(%߾gPWAGNER IVIteration failed to convergewagneriv-forward6      " & * . 4D%HP%`%p%   % % %P0TX0\%`t % ,08@L X h     L l p   @DKL?=|׽??랃%? 4\(W6xwivfor.clon_center R false_easting  false_northing $wivforint0 <wivforP6 /ecs/hdfeos/gctp/srcwivfor.cͿ ( vz|   w w z 3-{ 8~~% B 4: ; 9  .: ; 9 ? @ @x@ @A( C0AF@A@P CPACC B@ AEABC8;wivforintwivfor  9IeK(0X`     @p D$ * 0A8p!A6J x`k pu0 P0{p  Pp p p 7p po@pC   @   (3p 8wivinv.o/ 1230066016 7356 20 100664 5492 ` ELF0@@ &-4< BINR]amy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatawivinvintptitleradiuscenlonoffsetp.lit8wivinvasincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:wivinv.o<$g%-ߙ (߄F g dߙ F ߙ׿ ׬(ߙ׭ ׬ ߿%߼g0<$!g!-ߙ׀ׁׂ(כF"BF h%F;f F!ߙF  0׎׍F.kBF-BF-Cߙ׌ F-c׍׬0ߙ׻(F-c ׬ ߙ׍F c߾ F-cߢ߿@%߼g@WAGNER IV6      " & * . 4D%HP%`%p%   % % %,%H % ,08@L X h      8 < ? 4\?랃%@@DKL(W6xwivinv.clon_center R false_easting false_northing #wivinvint0 ;wivinvlP6 /ecs/hdfeos/gctp/srcwivinv.cͿ ' vz|  yy{z0@% B 4: ; 9  .: ; 9 ? @ @x@ @A( C0AF@A0 C@AGB@C8l;wivinvintwivinv  9IeK(0X`     @p D $ l* 0 8p!6J `phk `u0 8 {p  XPp p p Q7p p @p PC  X h@   3p wviifor.o/ 1230066057 7356 20 100664 5396 ` ELF0@@  '.5= CKV^bnz.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatawviiforintptitleradiuscenlonoffsetp.lit8wviiforadjust_lontsincossin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:wviifor.o<$g%-ߙ߄F g dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <$!g !-ߙ(׀%0F o F cߙ׌gg F,ߙ F אF0בN0F ׳N2a׏F1{F {ו דה(F5B߿F5F4ױ׿0F2|׎F3׍Mҋߢ(M{a߼ M%߾g@WAGNER VII.      " & ,<%@H%X%h%   % % % $(08D P ` dl       @H@?}A5T?@@V|G?LPr(W6xwviifor.clon_center R false_easting false_northing #wviiforint ;wviifortP7 /ecs/hdfeos/gctp/srcwviifor.cͿ ' vz|  yy@~% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A0 C@AEB@A8t=wviiforintwviifor !:JfL(0X`    @X D $t*x 0x 8p!.J `88k ppu0 0{p  Pp `p Cp 7p :p @p E H  @ X  x3p wviiinv.o/ 1230066097 7356 20 100664 5716 ` ELF0@@  '.5= CKQUY_jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.rodatawviiinvintptitleradiuscenlonoffsetp.lit8wviiinvasinzsintanatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:wviiinv.o<$g%-ߙ߄F g dߙ F ߙ׿ ׬ߙ׍ ׌߿%߼g <g$!!-8ט ןF8f(F?ן׀F?oF F8O!F ׌׍ߙF-c% F,׌ߙF, 0׍ߙF F-B F-cߙ׿ ׬0 ߙ׍׬(F-B߾ F cߙ׍ ׌׸8 M!ߢ߿@%߼g@WAGNER VII:      " & * . 2 ,<%@H%X%h%   % %( %< %X%p% $(08D P ` dl        0 D H ` d h@V|G?LPr@? rt@(W6xwviiinv.clon_center  R !false_easting "false_northing &wviiinvint >wviiinvP7 /ecs/hdfeos/gctp/srcwviiinv.cͿ * vz|  { yzzt t 8L% B 4: ; 9  .: ; 9 ? @ @x@ @A( C AD@A0 B@BBBO@B8=wviiinvintwviiinv !:JfL(0X`     @ D  $@* 0 8p!:J  `k Pu0 ({p  (Pp xp [p 27p ip @p1E x 8 H@   3p for_init.o/ 1230066138 7356 20 100664 22532 ` ELFR@0@@ ",3=DP^hs{!-6@GQXcku|!*5=HP\eqz  ':.symtab.shstrtab.strtab.comment.text.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.lit8for_initsphdzpakszutmforintutmforsomforintsomforstplnforintisinusforinitceaforintgoodforintgoodforimolwforintimolwforalconforintalconforstplnforbceaforintmerforintpsforintisinusforpolyforinttmforintgvnspforintceaforsinforintsinformillforintmillforvandgforintvandgforhamforinthamforrobforintrobformolwforintmolwforwivforintwivforwviiforintwviiforbceaformerforcalc_utm_zonepsforpolyfortmforsterforintsterforlamazforintlamazforazimforintazimforgnomforintgnomfororthforintorthforgvnspforequiforintequiforomerforintomerforobleqforintobleqforalberforintalberforlamccforintlamccforeqconforinteqconfor.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:for_init.og0$a%%%<%$cz#-$bD(F (U@Lc˰?#x      " & , 0 6 < @ D H L P T X \ ` d h l p t x |                                  " $ &   ( $* ( , 0 4 8 <. @ D H L P T X2 \4 `6 d8 h: l p= t x? |    A C E G  ,8%%%%%% % %H%%%%8%h%%%%8%h%%%%(%X%%%%%P%%% % % <% x%  %  %  $% T% % % % (% X% % % %  0% `% % % % 0% `% % % % %p %%% %8` %x!"%#$%% &%8'P%(%)*%+ %\%t,%%0%H-t.%%/%40L%|%%%41h2%34%56%7L8%d9:%;%<4=%L>t%?%@ %P%%% A%8BC%DE%FpG%H%  d l   h   @    0 T `    0 `      P t     4@ x    ( 4 P X t     @ L |       P       ( L X       ( L X |        < HP    H L" $ &  H dl( *  4<  X`d. l|D t  HL2 4 6 ,08 x|: = \ ?  <H lx  A XdC E  8G  (W6xOfor_init.c6for_init 9 /ecs/hdfeos/gctp/srcfor_init.c >$U +U5}}} |i     0!        z}y{{%~|{{${|||||~~ }~      ~ %| {-   ~ |~;~ ~~|   ~~ ~~ ~} - - -- --~~ - - { ~} 0 ( ~~   ~~     ~ ~       9 ~}{   ~ |  ~~ % B .: ; 9 ? @ @x@ @A0 AE'C$B&C@B%8+W*for_init K"J=EMLN(L0 I  I@  % EN $ *0&(0p!&B (h@X. c ;8 mp F8P{pFWpF pP(pPXpQ@pQ[3 QP  Q  Q  R  R0inv_init.o/ 1230066178 7356 20 100664 22484 ` ELFR0@@ ",3=DP^hs{!-6@GQXcku|!*5=HP\eqz  ':.symtab.shstrtab.strtab.comment.text.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.lit8inv_initsphdzpakszutminvintutminvsominvintsominvstplninvintisinusinvinitceainvintgoodinvintgoodinvimolwinvintimolwinvalconinvintalconinvstplninvbceainvintmerinvintpsinvintisinusinvpolyinvinttminvintgvnspinvintceainvsininvintsininvmillinvintmillinvvandginvintvandginvhaminvinthaminvrobinvintrobinvmolwinvintmolwinvwivinvintwivinvwviiinvintwviiinvbceainvmerinvcalc_utm_zonepsinvpolyinvtminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvequiinvintequiinvomerinvintomerinvobleqinvintobleqinvalberinvintalberinvlamccinvintlamccinveqconinvinteqconinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:inv_init.og0$a%%%<%$cz#-$bD(F (ߙg0 , ߨ4ߦ0׍:$ߙ g0߫4jׅߩ0׆F%BF&)B *$ߙ ׬H߭ph-߮ߌߙF ׭@F  ׬8߸-߹ߏ" ߙg0 , ߣ4a߿0׍$0߄(-ߙg0 , ߩ4(ߧ0׍$ߙg0 , ߬4ߪ0@0$ߙgHg@g8 (% %ߧ'`F(92Ew8ߙg0 ,4߯׊߭0F*B׊F*JB!x$ߙg0 ,(߿4߸0ߙ$ߙg0 ,ߤ4ߡ0 ($ߙg0 ,ߧ4ߥ0 $ߙg0 ,(ߪ4Iߨ0ߙ$ߙg0 ,(߭4߫0`ߙ$ׯ׍1Pג0@F-B׮׬H F2kB߯x-߸ߎuߙg0 ,(ߡ4?߹0 ߙq$ߙg0 ,ߥ4ߣ0`e$ߙg0 ,@4ߨאߦ0F0אF0{hU$ߙg0 ,(߫4jߩ0 ߙI$ߙg0 ,߮4߬0L=$ߙg0 ,(߹48߯0ג1$ߙg0 ,(ߣ4a߿0ג%$ߙg0 ,(ߦ4ߤ0ג$ߙg0 ,(ߩ4(ߧ0ג $ߙg0 ,(߬4ߪ0@ג$ߙg0 ,(߯4߭0ߙ$ד׮גױF3װF3s׭@F2{׬8 F2s߹?-߿ߘ8ߙאׯF-B׮׬H F0kBߣ d-ߤ߁aߙg0 ,(ߧ4ߥ0ג$ߙאׯF-B׮׬H F0kBߩP*H-ߪ߈B(ߙאׯF-B׮׬H F0kB߬h`-߭ߋߙאׯF-B׮׬H F0kB߯x-߸ߎߙאׯF-B׮׬H F0kB߿-ߡߙ"}ߙאׯF-B׮׬H F0kBߤ( -ߥ߃mߙg0 , ߨ4ׅߦ0׆F%BCF&)Bf$ߙאׯF-B׮׬H F0kBߪXKP-߫߉bNIߙאׯF-B׮׬H F0kB߭ph-߮ߌ>ߙg0 ,(߹48߯0J:$ד׮גױF3װF3s׭@F2{׬8 F2sߡ#-ߣߟb?נߢ'H$u&@ߙg0 , ߦ4ߤ0S$ߙg0 , ߩ4(ߧ0S$ד׮גױF3װF3s׭@F2{׬8 F2s߫`lX-߬ߊj׍׬x׎ߙF-c׍F.c F-c׏׮אF/sDxF0sF/r<(/H(ד׮גױF3װF3s׭@F2{׬8 F2s߮xp-߯ߍד׮גױF3װF3s׭@F2{׬8 F2s߹?-߿ߘ8ߙg0 , ߤ4ߡ0 $ߙg0 , ߧ4אߥ0בF0F1$ߙg0 ,H4ߪגIߨ0F2BגF2B`$ײהׯדױF4׮F4{׭@F3׬8 F3{߬h`-߭ߋq׭pבߙF2װF2kBׯF1s׬H F1kB߯x-߸ߎ^׭hבߙF2װF2kBׯF1s׬H F1kB߿-ߡߙ"K׭`בߙF2װF2kBׯF1s׬H F1kBߤ( -ߥ߃8׭XבߙF2װF2kBׯF1s׬H F1kBߧ@8-ߨ߆%׭PבߙF2װF2kBׯF1s׬H F1kBߪXKP-߫߉bIד׮HגױF3װF3s-F2{׬H F2s߭ph-߮ߌ׭@בߙF2װF2kBׯF1s׬H F1kB߸-߹ߏ"ߙ,@43g0 ߣ4a߿0Vו$ץX$צPߙ׳ײ׭@׬8ׯx׶`׵h הױ8F4Bה׮ F4Bߥ0(-ߦ߄ߙg0 ,(ߩ4(ߧ0Cו$ߙg0 ,(߬4ߪ0@Qו$ߙg0 ,(߯4߭0_ו$ߙg0 ,P4߿ז߸0F6BזF6BoX$׭0ߙ׮הF5kB׳F5BײF5sװF4BׯF4s׬H F4kBߣ d-ߤ߁pa׮ׯ(װF5sהF5{F5BߙF5׳F4BײF4׭@F4{׬8 F4sߦ80-ߧ߅V׮ׯ װF5sהF5{F5BߙF5׳F4BײF4׭@F4{׬8 F4sߩP*H-ߪ߈B<(׮ׯהװF5sD6@F5{ߙF5B׳F5ײF72F4B׭@$ F4׬8F4{ X F4s߭ph-߮ߌߙg0 ,X߹48׆߯0ׇF&F'1$ץXװp2 %@ >U@Lc˰?#x      " & , 0 6 < @ D H L P T X \ ` d h l p t x |                                  " $ &   ( $* ( , 0 4 8 <. @ D H L P T X2 \4 `6 d8 h: l p= t x? |    A C E G  ,8%%%%%% % %@%%%%0%`%%%%0%`%%%% %P%%%%%H%x%% % % 4% p%  %  %  % L% % % % % P% % % %  (% X% % % % (% X% % % %%h %%%%0X %p!"%#$%%&%0'H%(%)*%+%T%l,%%%4-`.%%/% 08%h%%% 1T2%l34%56%788%P9:%;%< =%8>`%?%@ %<%l%% A%$BtC%DE%F\G%tH%  d l   d   8    ( L X    ( X     H l x    ,8 p     , H P l     8 D t       H x       D P        D P t       4 @H   @ D" $ & @ \d|( *  ,4  DLP. Xhp0 ` | 482 4 6 8 dh: = H |?  (4 Xd  A DPC E  $G  (W6xOinv_init.c6inv_init 9 /ecs/hdfeos/gctp/srcinv_init.c ?$U +U5}}} }i     1"        z}y{{%  ~   |{{ $    {|  ||    ||   ~  ~             }~                    ~   %    |     {- ~ |~;          ~ ~|    ~~ ~  ~             ~} -     -   -  -   -  -   ~~ -   -    { }        0 (        ~~   ~ ~                          ~  }     { ~   |       ~~ % B .: ; 9 ? @ @x@ @A0 AE&C#B%C@B$8+W*inv_init K"J=EMLN(L0 I  I@  % EN $ *0&(0p!&B (P@X. c ; mp F P{pFpWpF pPh(pPXpP@pQ(3 Q`P  Q  Q  Q  Rcproj.o/ 1230066219 7356 20 100664 17476 ` ELF=0@@L PT"'$-37 ?EM@|SX\`f`lpv h~ x  t @8 4 ,  t @0 "2CV.symtab.shstrtab.strtab.comment.text.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.rodata.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.texttsincos__dcis.lit8asinzasinmsfnzqsfnzlog.rodataphi1zp_errorphi2zatansinpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zone.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:cproj.o<$!g!-ߙ %߿߼ߢ߾@g <$!g!-ׄF `EF! <EׂF,!kׁ(F!F:C F ւ׮F.ӃF9MF/tבF F1>fEOv!ߙߙ߅߄d d׹`׺h׽8׼H׿P߱߰ߧ ׌$߿(׸@߼0׻xF `׾pg߿(߼0߰߱F ׸@׹`׺h׻x׼H׽8׾p׿Pg<$!g!-ߙ@80(P XHF n`F fFך F k ם0לן(O9$מ%F<ߙ F OˡO9ߙF F F.cߙ F OF8{F |F?>fEF8~ߙߙ߅߄d d߿ ߼߰߱׸(׹`F ׺X׻H׼0׽P׾8ߧ׿@$gp߿ ߼߰߱F ׸(׹`׺X׻H׼0׽P׾8׿@gpgh80(X P@`<F FH$!F !-F w׀@F g$ׅ % %F f׆8ߙF BF& F%ߙF  F ߙF  F OءL@L]aעhF"CF8A׃(F F#>ׅ ׆8f׀@EF8ߙߙ߅߄d d߿׀H߼߰ ߱$ߵ׸X׹(׺0׻8׼P׽`׾H׿@gp߿߼߰ ߱ߵF ׸X׹(׺0׻8׼P׽`׾H׿@gpgxpXPH@80(h `<߰$!!-׃ ׄ8F ׁ@F#BF$F#p$F!xBF fF$`%ߙ F ߙF  F F:BלO9F ߙ׌ F<\ F,ߙמ8F ׌@F F>ǂ F,ߙF F F F ׉ F;JקxץpרF;9L)LAרLAצרM:!M19F;F$תF)F$LQyתLQaתLQyפF)8BFF!f1E3ߙߙ߅߄d d߿׀@߼߲߰߱(߳ ׸`׹h׺0׻@׼H׽8׾P׿Xg߿߼߲߰߱(߳ ׸`׹h׺0׻@׼H׽8D׾P׿Xg<$$-%XF aF%1C)`F))@F )ID$(d-d/8D@d-8D8F(`E"߿F9F F D$(ߙF:F F ! F!!F;!9 F D@FB!ׅOF9߿߼߰F ׸(׹׺8׻0׼ g@F%F EF JIFJaF;Kz򚼯H?@=|׽?!TD-@@@@È?PbMA.@Y@@@Lc˰@N@ !TD-@!TD-AB !T!C!S~=????????UUUUUU@fConvergence errorphi1z-convphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv(W6xIcproj.c3tsincos L ;asinzPPJmsfnzXqsfnz0lphi1z@phi2z@`phi3zXphi4z` pakcz X!pakr2dm <tsfnz Msign Radjust_lon 4ze0fn @ xP{e1fn x|e2fn }e3fn e4fn  mlfn <0calc_utm_zone@pp5 /ecs/hdfeos/gctp/srccproj.cʿ\ 3--- !  | }|| v v   s / Lxy  @  ~x yz%:zz{| %z t s  s s zzxzzLm m $}<`@ z 4#4< eh$)w u}  @@0{D DD  " % B .: ; 9 ? @ @.: ;9 ? @ @x@ @A(L C ADA@(PT CAE@ $ @ C0AEF8B0F@Q @8h CA ECB@ AJBAB CA Cp9:<=?H  H@| CpA E AAAAA AA@ AABH ApB@AAA AA A A AAACC P` AG@ AAAAAAAAAAAAD   h 8 x C AGB@O @;  8 t A@A@AAAAABB @8  4  ,  8 t C AEB@P @;8 CPA ECB@ [ @8? @0 8p<Q'tsincosPasinzwmsfnzqsfnzphi1zphi2zphi3z=phi4zepakczpakr2dmtsfnzsignadjust_lon4e0fn[e1fne2fne3fne4fnmlfncalc_utm_zone "!8@H#_go#### #%-5#MU]#u}####$,#CKS#jrz#####7?G#J(#0X#`###h#p##`#h#### X#`####8#@x#    @ H>j$p*p!< R] g0'm(up )8Pp)Qp,p0@p1p5@p5D 7(  ; ; =  =-p =0report.o/ 1230066259 7356 20 100664 22580 ` ELFQh0@@  "*17?FKRYPdkr@zp  p    Px/?O`s.symtab.shstrtab.strtab.comment.text.sbss.bss.rodata.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.sbss.bss.rodata.srdatap_errorprintffopenfprintffcloseinitstrlenstrcpyclose_fileptitleradiusradius2.lit8cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblank.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:report.o<$cg#-߁%% ߙ߄0% d߅ߙ߄g dߙ8%߅@ % 0%( dߙ ߄(߿߰߱߼g g$<% $!!-7$ߙ=$ߙ%߿ ߼߰g0 %@(% @Aߙ߄ߥ$d d$ߤ$ @;ߙ߄ߥ$ d%ߙ % @ߙ߄ߥ$d d$ߙߤ @ߙ߄ߥ$ d%߿ $߼߰g0߿ $߼߰g0ߙ߅߄d d$ߙ߅߄d d$<$!g!-߄(ߙ ߄ ߙ ߿߼g<$cg#-߁% ߙ߄(% d߅ߙ߄g dߙ߅@ %0%  dߙ ߄ ߿߰߼g <$cg#-߁F f ߙ߄D%` d߅ߙ߄g dߙ߅@ %D&  dߙ ߄ ߿׸߼g <$cg#-߁F nFF f ߙ߄D%` dߙ߄D% d߅ߙ߄g dߙ߅@ %D&  dߙ߅D&߄  dߙ ߄ ߿׹׸߼g <$cg#-߁F f ׀ߙ߄F `d D%߅ߙ߄g dׁߙ߅F!B@ % d D&ߙ ߄ ߿׸߼g <$cg#-߁F f ׀ߙ߄F `d D%߅ߙ߄g dׁߙ߅F!B@ % d D&ߙ ߄ ߿׸߼g <$cg#-߁F f ׀ߙ߄F `d D%߅ߙ߄g dׁߙ߅F!B@ % d D&ߙ ߄ ߿׸߼g <$cg#-߁F f ׀ߙ߄F `d D%߅ߙ߄g dׁߙ߅F!B@ % d D&ߙ ߄ ߿׸߼g <$cg#-߁F f ׀ߙ߄F `d D%߅ߙ߄g dׁߙ߅F!B@ % d D&ߙ ߄ ߿׸߼g <$cg#-߁F nFF f ׀ߙ߄F `d D%ׁߙ߄F!Bd D%߅ߙ߄g dׂߙ߅F"@ % d D&׃ߙ߅F#߄ d D&ߙ ߄ ߿׹׸߼g <$cg#-߁F f ׀ߙ߄F `d D%߅ߙ߄g dׁߙ߅F!B@ % d D&ߙ ߄ ߿׸߼g <$cg#-߁F nFF f ߙ߄D%` dߙ߄D% d߅ߙ߄g dߙ߅@ %D&  dߙ߅D&߄  dߙ ߄ ߿׹׸߼g <$cg#-߁%F f ߙ߄D&` d߅ߙ߄g dߙ߅@ %0%D'  dߙ ߄ ߿׸߰߼g <$cg#-߁%% ߙ߄0% d߅ߙ߄g dߙ8%߅@ % 0%  dߙ ߄ ߿߰߱߼g <$cg#-߁ ߙ g߄ ߙ߄g dߙg@ % ߙ ߄ ߿߼g[%s] %s Output file name not specifiedreport-file %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld a      $ ( , 0 4 8 < D H P T ^ b f j t x |                   " & * 4 8 < @ J N R V Z ^ h l p t ~        4<%@PX%\hx %| %  P %`lt % % % % % % %$d0hl0t%x00% % %,@4%8@HP%T\@l %p@x %`%`%` %` %@Dt|%%% % % %@HL%`h%lx % %((%%((8(< %H %pt``%% % % $PX\%px%| % % % (%,8@H@L %X %pp%%%  p p % 0 < @ % L % p t   %  %    % %  $ T \% ` h p% t  %   %   %  %   $H ,% 0H @ H% L TH h % lH t %   X % X  %  X  % X $ % P T t%  %  % %0 DL T` t   08<DT\ p     ` p   ( <D LX ht |    Tp      $8< T\ dpt      $ 4D L    4HL dl t    $04 DT \       ( , 8 H P          4 P d x        4 < D P d p x       ( d p x |     @Lc˰(W6xreport.c/ terminal_p 0 terminal_e 1 file_e 2 file_p 3fptr_p  4fptr_e (5 parm_file 6 err_file :p_error Zinit0Xclose_fileptitle radius 4radius2 @ cenlon Pcenlonmer dcenlat porigin   true_scale tstanparl  l@%stparl1 p x3offsetp Cgenrpt Ngenrpt_long DYpblank P P6 /ecs/hdfeos/gctp/srcreport.cI <p   $    `#pEG9iS!      !     !   !  $% ( ! ( ! ( ! ( !% ( ! () ,% ) !  ! $%   %%   %%  % B 4: ; 9  .: ; 9 ? @ @.: ;9 ? @ @x@ @A0 C ACBC@( A0CC@B(P CAD@( C ACC@( C ACC@0@ C ACBC@( C ACC@( C ACC@(p C ACC@( C ACC@( C ACC@0 C ACBC@( p C ACC@0 C ACBC@0 C ACAD@0 C ACBC@( Px CAD@8 -p_errorinit,close_fileXptitleradiusradius2cenloncenlonmer$cenlatLoriginttrue_scalestanparlstparl1offsetp genrptIgenrpt_longwpblank  9Rg|!$!@HP!hpx!!!! !4<D!\dl!!!!!19A!_go!!K(!0`!h!!! !(X!`!!!! H!P!!! !(X!`   @ @X$ *005c=,Ep!0W  m0x 2 0?p ? Pp?ppCpEOpF<pI@pI5 K8 O O  Q8 , QXpaksz.o/ 1230066299 7356 20 100664 4468 ` ELF p0@@ X# /;IVeu.symtab.shstrtab.strtab.comment.text.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.lit8.rodatapakszp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:paksz.o<$Bg"-׉F aEF)(F D!(!i 3ןF!LA׊F*9F 1D#0(c=`4ߙF1aL*y׋F)XF J( 0   @ -$X*0H80B8p!J @` k up HPpPpp (p hp I@p 0 P    @  `sphdz.o/ 1230066340 7356 20 100664 5492 ` ELF00@@ !)5AO\k{.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.data.lit8.rodatasphdzp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:sphdz.o<g$!!-O(&(/߄($ d@6PԀ߼DP-$ E%JD%߼g%߼gԥD0F )E׈ ԤF%0<ߋ$ $ ׇ%iE$F !F$9p!P 0 f (q H`{p  Pp xp pp Z7p Xp @p)0 `p       untfz.o/ 1230066380 7356 20 100664 4468 ` ELF (0@@ !)5AO\k{.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.text.data.lit8.rodatauntfzp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:untfz.og<%$!!-(@߇(`@@/@x@-d@8-DF!2E%߼gߙ߅߄d d߿$߼gߙ߅߄d d߿$M߼g?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit   (H|P(P%(%x  (W6x^untfz.cfactors 'untfz 5 /ecs/hdfeos/gctp/srcuntfz.cͿ *$}( (y(% B 4: ; 9  .: ; 9 ? @ @x@ @A0 AB@ABB@8(f=untfz 5LT\ J( 0   @ 3#$* 006[>p!cP 0 fPq  {p  Pppfpp g7p Xp @p 60 h`    gctp.o/ 1230066421 7356 20 100664 11524 ` ELF%0@@   & T+08>IRZco{.symtab.shstrtab.strtab.comment.text.sbss.bss.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.text.sbss.bss.data.lit8.rodatagctpinitp_erroruntfzclose_fileinv_initpakr2dmfor_init.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:gctp.o<$cg#-ߙߧX߱ߡP `%%`0% D@"%߿߼߱gP߅ߤX܄ߊD eJeBBHe_ eE xeG? eO;eN8eYPeX(eP(@h% egDppDhhD``DXXDPPDHHD@@D88D00D((D DDgxDdeeg9DdxdBxU$ ߰%`8%$(e^߮hߙ߅߄d d߿߼%$&߱gPߊߧeJJ-HP$߫L(kl$L$$ i8h/ߢ hMh-dEhe xբAF"2eEdBE8%$ߢhB@n(ߣp(-ܦ? cfߦܨ;ܨ8$$ Iq8p/߭xpNp-eheBHգF$2eEe(%$(eߙ@(Oe߭߯ݭ%$$ ߙg$ ߤߦ@8%"߹9$? ߡߤߙ ߿%߼߱gP߿?'ߤצԇԅߣF&9F&)B`ߧߤ߈܄ߥeHܥ(H-Q8%PDP/'( P$ @- (08@HPX`ph         d x$ ߨA߮g ((0088@@HHPPXX``hhppD ߥܥ888/8xdIDp׏׍Fs׌ ߦF/s(F&kߙߤߥߧߋ P%H%gܥek܄ ekt ,ߙߋ P%H%ek ekt, ߤߙ ߿%߼߱gPߤ܄gװׯߥߦx߯ߤh߂܄ߪpdB@E@-8? d/;h%8C- (08@HPX`phHBGBFBEBDBCBBBABWBxVBpUBhTB`SBXRBPdQBH$ ߨ4ߢ  ((0088@@HHP PX X` `h hp pDF6"2E ߙߙߤhߥpߧߋ P%@H%gܥek܄ ekq ,ߙߋ P%@H%ek ekq,#ߤhߙ ߿%߼߱gPߊ8%eJ(%ߙg9?-9tg׭g ׬g@p"ߙ %ߤh܄F׬ߥ`נߧߥߤhܥ܄n%$y$ pߙg@(% $"ߩh)$ *Oߪ`פCAF$CעߙF"B A߿%߼߱gP$ ~$ $`&w  ߙg(% ߤߦ@8%}"o$\߬mߙg9?-9qߦ`׭ d@"ߙ %ߙ߅߄d d$&%$:$F$+2E 8ߨߧ ׬ߙ׬ ߨߢI$ $ $ P&j ߙg@(% %"$ ߙߩp)߈ 8/ /%8 01߂/ dBC-tB݌ߋ H/ 7H +@A߂/ dBC-B =p A.AInsys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUTd     $ ( . 2 6 < @ D J N R V Z ^ T% %t % % % % %P`%% %4@LT % % 8 % %   % @ ( @  % ( ` % p % %   4 @ |  h  dhp         0 t h  (W6x<gctp.c% iter & inpj ' indat (( inzn P)pdin  x* outpj 8+ outdat ;, outzn ? -pdout BH.for_trans q/inv_trans t6 NADUT Fgctp T =4 /ecs/hdfeos/gctp/srcgctp.cQ kk~m~!}!~  !v  !u  !v  !v&|~~ } } } (  }   } (  } |||,{~|~~}~ p $ ( v~~~}~ p ( y(~A0}}})~ z9~$ `?  O%|{~% B 4: ; 9  .: ; 9 ? @ @x@ @A0 T CAH@ C` x8 T'Dgctp 1DXk~*2:I(0    @p O  $ T*x0xw5x0;0(ALIp!d[ @ q(| p PpDp<Ep#7p#Xp$@p$P/ $ % %  % * %>p %br_gctp.o/ 1230066461 7356 20 100664 3284 ` ELFP0@@   * 8ETdt.symtab.shstrtab.strtab.comment.text.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnames.textgctp_gctp.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_info.rel.debug_line.rel.debug_frame.rel.debug_aranges.rel.debug_pubnamesbe::7.42:br_gctp.o<$Bg`X"-ߙPߡ߿߸߯߮ ߭(߬0ܯ<䯢Dߡ H߿P߼Xg  h% (W6xKbr_gctp.cgctp_ _7 /ecs/hdfeos/gctp/srcbr_gctp.c  % B .: ; 9 ? @ @x@ @A( CA C@ 8(S)gctp_ !9AIL(0   @h $*p! < 0 RPH] gp PupSpKgp(pPp*@pj0 P        @hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibSOL28.a0000644000175000017500000417363012024715435021146 0ustar amckinstryamckinstry! / 1073924792 0 0 0 26792 ` hhhhhhhhhhhhhPPPPPPPPPPPPPPZLZLZLZLZLZLZLZLZLZLZLtttttttttttttttttttPPPPPPPPPPPPPPPPPPPhhhhhhhhhhhhhhhhhhh(X(X(X(X(X(X(X(X(XNNNNNNNNNNwwwwwwwwwww\\\\\\\یییییییIIIIIIIIIIII|0|0|0|0|0|0|0|0ŠŠŠŠŠŠŠ#<#<#<#<#<#<#<#<#<#<MMMMMMMMMMM|||||||||||||||lllllllllllllFTFTFTFTFTFTFTFTj<j<j<j<j<j<j<j<LLLLLLLL@@@@@@@@@@@@@@,,,,,,,,,,,,,,AAAAAAAAAAAAAAAAAAAAAAAA-\-\-\-\-\-\-\-\-\-\-\\\\\\\\\\\\\\\\\\¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼ ) ) ) ) ) ) ) ) ) ) ` ` ` ` ` ` ` ` ` ` Đ Đ Đ Đ Đ Đ Đ Đ Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np @ @ @ @ @ @ @ @ @ @ @         K K K K K K K K d d d d d d d d d d d d d d d d d d d 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 T T T T T T T T T T T T T T T T T T T W W W W W W W W W W W W W W W W W W W h h h h h h h h а а а а а а а а $ $ $ $ $ $ $ $ H H H H H H H H np np np np np np np np                 D(D(װװjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj??````LLL$$$$$$$$$$$$$$$XBEBTnbYpsAAG8o.alberfor.__func__alberfor$XAEBTnbYpsAAG8o.rh$XAEBTnbYpsAAG8o.c$XAEBTnbYpsAAG8o.ns0$XAEBTnbYpsAAG8o.e3$XAEBTnbYpsAAG8o.r_minor$XAEBTnbYpsAAG8o.r_major$XAEBTnbYpsAAG8o.lon_center$XAEBTnbYpsAAG8o.false_northing$XAEBTnbYpsAAG8o.false_easting$XBEBTnbYpsAAG8o.alberforint.__func__alberforint$XBEBTnbZpsAAG9o.alberinv.__func__alberinv$XAEBTnbZpsAAG9o.rh$XAEBTnbZpsAAG9o.c$XAEBTnbZpsAAG9o.ns0$XAEBTnbZpsAAG9o.e3$XAEBTnbZpsAAG9o.es$XAEBTnbZpsAAG9o.r_minor$XAEBTnbZpsAAG9o.r_major$XAEBTnbZpsAAG9o.lon_center$XAEBTnbZpsAAG9o.false_northing$XAEBTnbZpsAAG9o.false_easting$XBEBTnbZpsAAG9o.alberinvint.__func__alberinvint$XBEBTnbapsAAG_o.alconfor.__func__alconfor$XAEBTnbapsAAG_o.cos_p26$XAEBTnbapsAAG_o.sin_p26$XAEBTnbapsAAG_o.bcoef$XAEBTnbapsAAG_o.acoef$XAEBTnbapsAAG_o.e$XAEBTnbapsAAG_o.n$XAEBTnbapsAAG_o.lat_center$XAEBTnbapsAAG_o.lon_center$XAEBTnbapsAAG_o.false_northing$XAEBTnbapsAAG_o.false_easting$XAEBTnbapsAAG_o.r_minor$XAEBTnbapsAAG_o.r_major$XBEBTnbapsAAG_o.alconforint.__func__alconforint$XBEBTnbapsAAG$o.alconinv.__func__alconinv$XAEBTnbapsAAG$o.cos_p26$XAEBTnbapsAAG$o.sin_p26$XAEBTnbapsAAG$o.bcoef$XAEBTnbapsAAG$o.acoef$XAEBTnbapsAAG$o.e$XAEBTnbapsAAG$o.n$XAEBTnbapsAAG$o.lat_center$XAEBTnbapsAAG$o.lon_center$XAEBTnbapsAAG$o.false_northing$XAEBTnbapsAAG$o.false_easting$XAEBTnbapsAAG$o.r_minor$XAEBTnbapsAAG$o.r_major$XBEBTnbapsAAG$o.alconinvint.__func__alconinvint$XBEBTnbbpsAAGAp.azimfor.__func__azimfor$XAEBTnbbpsAAGAp.cos_p12$XAEBTnbbpsAAGAp.sin_p12$XAEBTnbbpsAAGAp.false_easting$XAEBTnbbpsAAGAp.false_northing$XAEBTnbbpsAAGAp.lat_origin$XAEBTnbbpsAAGAp.lon_center$XAEBTnbbpsAAGAp.r_major$XBEBTnbbpsAAGAp.azimforint.__func__azimforint$XBEBTnbcpsAAGBp.aziminv.__func__aziminv$XAEBTnbcpsAAGBp.cos_p12$XAEBTnbcpsAAGBp.sin_p12$XAEBTnbcpsAAGBp.false_easting$XAEBTnbcpsAAGBp.false_northing$XAEBTnbcpsAAGBp.lat_origin$XAEBTnbcpsAAGBp.lon_center$XAEBTnbcpsAAGBp.r_major$XBEBTnbcpsAAGBp.aziminvint.__func__aziminvint$XBEBTnbdpsAAWCp.bceafor.__func__bceafor$XAEBTnbdpsAAWCp.kz$XAEBTnbdpsAAWCp.sinphi1$XAEBTnbdpsAAWCp.cosphi1$XAEBTnbdpsAAWCp.ind$XAEBTnbdpsAAWCp.e$XAEBTnbdpsAAWCp.es$XAEBTnbdpsAAWCp.false_easting$XAEBTnbdpsAAWCp.false_northing$XAEBTnbdpsAAWCp.lat_truesc$XAEBTnbdpsAAWCp.lon_center$XAEBTnbdpsAAWCp.r_minor$XAEBTnbdpsAAWCp.r_major$XBEBTnbdpsAAWCp.bceaforint.__func__bceaforint$XBEBTnbepsAAWDp.bceainv.__func__bceainv$XAEBTnbepsAAWDp.kz$XAEBTnbepsAAWDp.sinphi1$XAEBTnbepsAAWDp.cosphi1$XAEBTnbepsAAWDp.qp$XAEBTnbepsAAWDp.ind$XAEBTnbepsAAWDp.e_p6$XAEBTnbepsAAWDp.e_p4$XAEBTnbepsAAWDp.e$XAEBTnbepsAAWDp.es$XAEBTnbepsAAWDp.false_easting$XAEBTnbepsAAWDp.false_northing$XAEBTnbepsAAWDp.lat_truesc$XAEBTnbepsAAWDp.lon_center$XAEBTnbepsAAWDp.r_minor$XAEBTnbepsAAWDp.r_major$XBEBTnbepsAAWDp.bceainvint.__func__bceainvint$XBEBTnbfpsAAWEp.ceafor.__func__ceafor$XAEBTnbfpsAAWEp.kz$XAEBTnbfpsAAWEp.sinphi1$XAEBTnbfpsAAWEp.cosphi1$XAEBTnbfpsAAWEp.ind$XAEBTnbfpsAAWEp.e$XAEBTnbfpsAAWEp.es$XAEBTnbfpsAAWEp.false_easting$XAEBTnbfpsAAWEp.false_northing$XAEBTnbfpsAAWEp.lat_truesc$XAEBTnbfpsAAWEp.lon_center$XAEBTnbfpsAAWEp.r_minor$XAEBTnbfpsAAWEp.r_major$XBEBTnbfpsAAWEp.ceaforint.__func__ceaforint$XBEBTnbfpsAAWFp.ceainv.__func__ceainv$XAEBTnbfpsAAWFp.kz$XAEBTnbfpsAAWFp.sinphi1$XAEBTnbfpsAAWFp.cosphi1$XAEBTnbfpsAAWFp.qp$XAEBTnbfpsAAWFp.ind$XAEBTnbfpsAAWFp.e_p6$XAEBTnbfpsAAWFp.e_p4$XAEBTnbfpsAAWFp.e$XAEBTnbfpsAAWFp.es$XAEBTnbfpsAAWFp.false_easting$XAEBTnbfpsAAWFp.false_northing$XAEBTnbfpsAAWFp.lat_truesc$XAEBTnbfpsAAWFp.lon_center$XAEBTnbfpsAAWFp.r_minor$XAEBTnbfpsAAWFp.r_major$XBEBTnbfpsAAWFp.ceainvint.__func__ceainvint$XBEBTnbhpsAAWGp.eqconfor.__func__eqconfor$XAEBTnbhpsAAWGp.rh$XAEBTnbhpsAAWGp.ml0$XAEBTnbhpsAAWGp.g$XAEBTnbhpsAAWGp.ns$XAEBTnbhpsAAWGp.e3$XAEBTnbhpsAAWGp.e2$XAEBTnbhpsAAWGp.e1$XAEBTnbhpsAAWGp.e0$XAEBTnbhpsAAWGp.e$XAEBTnbhpsAAWGp.es$XAEBTnbhpsAAWGp.false_easting$XAEBTnbhpsAAWGp.false_northing$XAEBTnbhpsAAWGp.lon_center$XAEBTnbhpsAAWGp.r_minor$XAEBTnbhpsAAWGp.r_major$XBEBTnbhpsAAWGp.eqconforint.__func__eqconforint$XBEBTnbipsAAWHp.eqconinv.__func__eqconinv$XAEBTnbipsAAWHp.rh$XAEBTnbipsAAWHp.ml0$XAEBTnbipsAAWHp.g$XAEBTnbipsAAWHp.ns$XAEBTnbipsAAWHp.e3$XAEBTnbipsAAWHp.e2$XAEBTnbipsAAWHp.e1$XAEBTnbipsAAWHp.e0$XAEBTnbipsAAWHp.e$XAEBTnbipsAAWHp.es$XAEBTnbipsAAWHp.false_easting$XAEBTnbipsAAWHp.false_northing$XAEBTnbipsAAWHp.lon_center$XAEBTnbipsAAWHp.r_minor$XAEBTnbipsAAWHp.r_major$XBEBTnbipsAAWHp.eqconinvint.__func__eqconinvint$XBEBTnbjpsAAWIp.equifor.__func__equifor$XAEBTnbjpsAAWIp.false_easting$XAEBTnbjpsAAWIp.false_northing$XAEBTnbjpsAAWIp.lat_origin$XAEBTnbjpsAAWIp.lon_center$XAEBTnbjpsAAWIp.r_major$XBEBTnbjpsAAWIp.equiforint.__func__equiforint$XBEBTnbnpsAA2Jp.equiinv.__func__equiinv$XAEBTnbnpsAA2Jp.false_easting$XAEBTnbnpsAA2Jp.false_northing$XAEBTnbnpsAA2Jp.lat_origin$XAEBTnbnpsAA2Jp.lon_center$XAEBTnbnpsAA2Jp.r_major$XBEBTnbnpsAA2Jp.equiinvint.__func__equiinvint$XBEBTnbnpsAA2Kp.gnomfor.__func__gnomfor$XAEBTnbnpsAA2Kp.cos_p13$XAEBTnbnpsAA2Kp.sin_p13$XAEBTnbnpsAA2Kp.false_northing$XAEBTnbnpsAA2Kp.false_easting$XAEBTnbnpsAA2Kp.lon_center$XAEBTnbnpsAA2Kp.R$XBEBTnbnpsAA2Kp.gnomforint.__func__gnomforint$XBEBTnbopsAA2Lp.gnominv.__func__gnominv$XAEBTnbopsAA2Lp.cos_p13$XAEBTnbopsAA2Lp.sin_p13$XAEBTnbopsAA2Lp.false_northing$XAEBTnbopsAA2Lp.false_easting$XAEBTnbopsAA2Lp.lat_center$XAEBTnbopsAA2Lp.lon_center$XAEBTnbopsAA2Lp.R$XBEBTnbopsAA2Lp.gnominvint.__func__gnominvint$XBEBTnbppsAA2Mp.goodfor.__func__goodfor$XAEBTnbppsAA2Mp.feast$XAEBTnbppsAA2Mp.lon_center$XAEBTnbppsAA2Mp.R$XBEBTnbppsAA2Mp.goodforint.__func__goodforint$XBEBTnbqpsAA2Np.goodinv.__func__goodinv$XAEBTnbqpsAA2Np.feast$XAEBTnbqpsAA2Np.lon_center$XAEBTnbqpsAA2Np.R$XBEBTnbqpsAA2Np.goodinvint.__func__goodinvint$XBEBTnbrpsAA2Op.gvnspfor.__func__gvnspfor$XAEBTnbrpsAA2Op.cos_p15$XAEBTnbrpsAA2Op.sin_p15$XAEBTnbrpsAA2Op.false_northing$XAEBTnbrpsAA2Op.false_easting$XAEBTnbrpsAA2Op.lon_center$XAEBTnbrpsAA2Op.p$XAEBTnbrpsAA2Op.R$XBEBTnbrpsAA2Op.gvnspforint.__func__gvnspforint$XBEBTnbtpsAA2Pp.gvnspinv.__func__gvnspinv$XAEBTnbtpsAA2Pp.cos_p15$XAEBTnbtpsAA2Pp.sin_p15$XAEBTnbtpsAA2Pp.false_northing$XAEBTnbtpsAA2Pp.false_easting$XAEBTnbtpsAA2Pp.lat_center$XAEBTnbtpsAA2Pp.lon_center$XAEBTnbtpsAA2Pp.p$XAEBTnbtpsAA2Pp.R$XBEBTnbtpsAA2Pp.gvnspinvint.__func__gvnspinvint$XBEBTnbupsAA2Qp.hamfor.__func__hamfor$XAEBTnbupsAA2Qp.false_northing$XAEBTnbupsAA2Qp.false_easting$XAEBTnbupsAA2Qp.lon_center$XAEBTnbupsAA2Qp.R$XBEBTnbupsAA2Qp.hamforint.__func__hamforint$XBEBTnbvpsAA2Rp.haminv.__func__haminv$XAEBTnbvpsAA2Rp.false_northing$XAEBTnbvpsAA2Rp.false_easting$XAEBTnbvpsAA2Rp.lon_center$XAEBTnbvpsAA2Rp.R$XBEBTnbvpsAA2Rp.haminvint.__func__haminvint$XBEBTnbwpsAA2Sp.imolwfor.__func__imolwfor$XAEBTnbwpsAA2Sp.feast$XAEBTnbwpsAA2Sp.lon_center$XAEBTnbwpsAA2Sp.R$XBEBTnbwpsAA2Sp.imolwforint.__func__imolwforint$XBEBTnbxpsAA2Tp.imolwinv.__func__imolwinv$XAEBTnbxpsAA2Tp.feast$XAEBTnbxpsAA2Tp.lon_center$XAEBTnbxpsAA2Tp.R$XBEBTnbxpsAA2Tp.imolwinvint.__func__imolwinvint$XBEBTnbypsAA2Up.lamazfor.__func__lamazfor$XAEBTnbypsAA2Up.cos_lat_o$XAEBTnbypsAA2Up.sin_lat_o$XAEBTnbypsAA2Up.false_northing$XAEBTnbypsAA2Up.false_easting$XAEBTnbypsAA2Up.lon_center$XAEBTnbypsAA2Up.R$XBEBTnbypsAA2Up.lamazforint.__func__lamazforint$XBEBTnbzpsAA2Vp.lamazinv.__func__lamazinv$XAEBTnbzpsAA2Vp.cos_lat_o$XAEBTnbzpsAA2Vp.sin_lat_o$XAEBTnbzpsAA2Vp.false_northing$XAEBTnbzpsAA2Vp.false_easting$XAEBTnbzpsAA2Vp.lat_center$XAEBTnbzpsAA2Vp.lon_center$XAEBTnbzpsAA2Vp.R$XBEBTnbzpsAA2Vp.lamazinvint.__func__lamazinvint$XBEBTnb_psAA2Wp.lamccfor.__func__lamccfor$XAEBTnb_psAA2Wp.rh$XAEBTnb_psAA2Wp.f0$XAEBTnb_psAA2Wp.ns$XAEBTnb_psAA2Wp.center_lat$XAEBTnb_psAA2Wp.center_lon$XAEBTnb_psAA2Wp.e$XAEBTnb_psAA2Wp.es$XAEBTnb_psAA2Wp.false_easting$XAEBTnb_psAA2Wp.false_northing$XAEBTnb_psAA2Wp.r_minor$XAEBTnb_psAA2Wp.r_major$XBEBTnb_psAA2Wp.lamccforint.__func__lamccforint$XBEBTnbAqsAA2Xp.lamccinv.__func__lamccinv$XAEBTnbAqsAA2Xp.rh$XAEBTnbAqsAA2Xp.f0$XAEBTnbAqsAA2Xp.ns$XAEBTnbAqsAA2Xp.center_lat$XAEBTnbAqsAA2Xp.center_lon$XAEBTnbAqsAA2Xp.e$XAEBTnbAqsAA2Xp.es$XAEBTnbAqsAA2Xp.false_northing$XAEBTnbAqsAA2Xp.false_easting$XAEBTnbAqsAA2Xp.r_minor$XAEBTnbAqsAA2Xp.r_major$XBEBTnbAqsAA2Xp.lamccinvint.__func__lamccinvint$XBEBTnbBqsAA2Yp.merfor.__func__merfor$XAEBTnbBqsAA2Yp.m1$XAEBTnbBqsAA2Yp.e$XAEBTnbBqsAA2Yp.es$XAEBTnbBqsAA2Yp.false_easting$XAEBTnbBqsAA2Yp.false_northing$XAEBTnbBqsAA2Yp.lat_origin$XAEBTnbBqsAA2Yp.lon_center$XAEBTnbBqsAA2Yp.r_minor$XAEBTnbBqsAA2Yp.r_major$XBEBTnbBqsAA2Yp.merforint.__func__merforint$XBEBTnbCqsAA2Zp.merinv.__func__merinv$XAEBTnbCqsAA2Zp.m1$XAEBTnbCqsAA2Zp.e$XAEBTnbCqsAA2Zp.es$XAEBTnbCqsAA2Zp.false_easting$XAEBTnbCqsAA2Zp.false_northing$XAEBTnbCqsAA2Zp.lat_origin$XAEBTnbCqsAA2Zp.lon_center$XAEBTnbCqsAA2Zp.r_minor$XAEBTnbCqsAA2Zp.r_major$XBEBTnbCqsAA2Zp.merinvint.__func__merinvint$XBEBTnbCqsAA2ap.millfor.__func__millfor$XAEBTnbCqsAA2ap.false_northing$XAEBTnbCqsAA2ap.false_easting$XAEBTnbCqsAA2ap.lon_center$XAEBTnbCqsAA2ap.R$XBEBTnbCqsAA2ap.millforint.__func__millforint$XBEBTnbDqsAA2bp.millinv.__func__millinv$XAEBTnbDqsAA2bp.false_northing$XAEBTnbDqsAA2bp.false_easting$XAEBTnbDqsAA2bp.lon_center$XAEBTnbDqsAA2bp.R$XBEBTnbDqsAA2bp.millinvint.__func__millinvint$XBEBTnbEqsAA2cp.molwfor.__func__molwfor$XAEBTnbEqsAA2cp.lon_center$XAEBTnbEqsAA2cp.R$XAEBTnbEqsAA2cp.false_northing$XAEBTnbEqsAA2cp.false_easting$XBEBTnbEqsAA2cp.molwforint.__func__molwforint$XBEBTnbGqsAA2dp.molwinv.__func__molwinv$XAEBTnbGqsAA2dp.lon_center$XAEBTnbGqsAA2dp.R$XAEBTnbGqsAA2dp.false_northing$XAEBTnbGqsAA2dp.false_easting$XBEBTnbGqsAA2dp.molwinvint.__func__molwinvint$XBEBTnbHqsAA2ep.obleqfor.__func__obleqfor$XAEBTnbHqsAA2ep.cos_lat_o$XAEBTnbHqsAA2ep.sin_lat_o$XAEBTnbHqsAA2ep.false_northing$XAEBTnbHqsAA2ep.false_easting$XAEBTnbHqsAA2ep.theta$XAEBTnbHqsAA2ep.n$XAEBTnbHqsAA2ep.m$XAEBTnbHqsAA2ep.lat_o$XAEBTnbHqsAA2ep.lon_center$XAEBTnbHqsAA2ep.R$XBEBTnbHqsAA2ep.obleqforint.__func__obleqforint$XBEBTnbIqsAAGgp.obleqinv.__func__obleqinv$XAEBTnbIqsAAGgp.cos_lat_o$XAEBTnbIqsAAGgp.sin_lat_o$XAEBTnbIqsAAGgp.false_northing$XAEBTnbIqsAAGgp.false_easting$XAEBTnbIqsAAGgp.theta$XAEBTnbIqsAAGgp.n$XAEBTnbIqsAAGgp.m$XAEBTnbIqsAAGgp.lat_o$XAEBTnbIqsAAGgp.lon_center$XAEBTnbIqsAAGgp.R$XBEBTnbIqsAAGgp.obleqinvint.__func__obleqinvint$XBEBTnbIqsAAGhp.omerfor.__func__omerfor$XAEBTnbIqsAAGhp.u$XAEBTnbIqsAAGhp.cosaz$XAEBTnbIqsAAGhp.sinaz$XAEBTnbIqsAAGhp.cosgam$XAEBTnbIqsAAGhp.singam$XAEBTnbIqsAAGhp.lon_origin$XAEBTnbIqsAAGhp.el$XAEBTnbIqsAAGhp.d$XAEBTnbIqsAAGhp.al$XAEBTnbIqsAAGhp.bl$XAEBTnbIqsAAGhp.cos_p20$XAEBTnbIqsAAGhp.sin_p20$XAEBTnbIqsAAGhp.e$XAEBTnbIqsAAGhp.es$XAEBTnbIqsAAGhp.false_easting$XAEBTnbIqsAAGhp.false_northing$XAEBTnbIqsAAGhp.lat_origin$XAEBTnbIqsAAGhp.scale_factor$XAEBTnbIqsAAGhp.r_minor$XAEBTnbIqsAAGhp.r_major$XBEBTnbIqsAAGhp.omerforint.__func__omerforint$XBEBTnbKqsAAGip.omerinv.__func__omerinv$XAEBTnbKqsAAGip.u$XAEBTnbKqsAAGip.cosaz$XAEBTnbKqsAAGip.sinaz$XAEBTnbKqsAAGip.cosgam$XAEBTnbKqsAAGip.singam$XAEBTnbKqsAAGip.lon_origin$XAEBTnbKqsAAGip.el$XAEBTnbKqsAAGip.d$XAEBTnbKqsAAGip.ts$XAEBTnbKqsAAGip.al$XAEBTnbKqsAAGip.bl$XAEBTnbKqsAAGip.cos_p20$XAEBTnbKqsAAGip.sin_p20$XAEBTnbKqsAAGip.e$XAEBTnbKqsAAGip.es$XAEBTnbKqsAAGip.false_easting$XAEBTnbKqsAAGip.false_northing$XAEBTnbKqsAAGip.lat_origin$XAEBTnbKqsAAGip.scale_factor$XAEBTnbKqsAAGip.r_minor$XAEBTnbKqsAAGip.r_major$XBEBTnbKqsAAGip.omerinvint.__func__omerinvint$XBEBTnbLqsAAGjp.orthfor.__func__orthfor$XAEBTnbLqsAAGjp.cos_p14$XAEBTnbLqsAAGjp.sin_p14$XAEBTnbLqsAAGjp.false_easting$XAEBTnbLqsAAGjp.false_northing$XAEBTnbLqsAAGjp.lat_origin$XAEBTnbLqsAAGjp.lon_center$XAEBTnbLqsAAGjp.r_major$XBEBTnbLqsAAGjp.orthforint.__func__orthforint$XBEBTnbMqsAAGkp.orthinv.__func__orthinv$XAEBTnbMqsAAGkp.cos_p14$XAEBTnbMqsAAGkp.sin_p14$XAEBTnbMqsAAGkp.false_easting$XAEBTnbMqsAAGkp.false_northing$XAEBTnbMqsAAGkp.lat_origin$XAEBTnbMqsAAGkp.lon_center$XAEBTnbMqsAAGkp.r_major$XBEBTnbMqsAAGkp.orthinvint.__func__orthinvint$XBEBTnbNqsAAGlp.polyfor.__func__polyfor$XAEBTnbNqsAAGlp.ml0$XAEBTnbNqsAAGlp.e3$XAEBTnbNqsAAGlp.e2$XAEBTnbNqsAAGlp.e1$XAEBTnbNqsAAGlp.e0$XAEBTnbNqsAAGlp.e$XAEBTnbNqsAAGlp.es$XAEBTnbNqsAAGlp.false_easting$XAEBTnbNqsAAGlp.false_northing$XAEBTnbNqsAAGlp.lat_origin$XAEBTnbNqsAAGlp.lon_center$XAEBTnbNqsAAGlp.r_minor$XAEBTnbNqsAAGlp.r_major$XBEBTnbNqsAAGlp.polyforint.__func__polyforint$XBEBTnbOqsAAGmp.polyinv.__func__polyinv$XAEBTnbOqsAAGmp.ml0$XAEBTnbOqsAAGmp.e3$XAEBTnbOqsAAGmp.e2$XAEBTnbOqsAAGmp.e1$XAEBTnbOqsAAGmp.e0$XAEBTnbOqsAAGmp.es$XAEBTnbOqsAAGmp.false_easting$XAEBTnbOqsAAGmp.false_northing$XAEBTnbOqsAAGmp.lat_origin$XAEBTnbOqsAAGmp.lon_center$XAEBTnbOqsAAGmp.r_minor$XAEBTnbOqsAAGmp.r_major$XBEBTnbOqsAAGmp.polyinvint.__func__polyinvint$XBEBTnbPqsAAGnp.psfor.__func__psfor$XAEBTnbPqsAAGnp.tcs$XAEBTnbPqsAAGnp.mcs$XAEBTnbPqsAAGnp.ind$XAEBTnbPqsAAGnp.fac$XAEBTnbPqsAAGnp.center_lat$XAEBTnbPqsAAGnp.center_lon$XAEBTnbPqsAAGnp.e4$XAEBTnbPqsAAGnp.e$XAEBTnbPqsAAGnp.es$XAEBTnbPqsAAGnp.false_easting$XAEBTnbPqsAAGnp.false_northing$XAEBTnbPqsAAGnp.r_minor$XAEBTnbPqsAAGnp.r_major$XBEBTnbPqsAAGnp.psforint.__func__psforint$XBEBTnbQqsAAGop.psinv.__func__psinv$XAEBTnbQqsAAGop.tcs$XAEBTnbQqsAAGop.mcs$XAEBTnbQqsAAGop.ind$XAEBTnbQqsAAGop.fac$XAEBTnbQqsAAGop.center_lat$XAEBTnbQqsAAGop.center_lon$XAEBTnbQqsAAGop.e4$XAEBTnbQqsAAGop.e$XAEBTnbQqsAAGop.false_northing$XAEBTnbQqsAAGop.false_easting$XAEBTnbQqsAAGop.r_minor$XAEBTnbQqsAAGop.r_major$XBEBTnbQqsAAGop.psinvint.__func__psinvint$XBEBTnbRqsAAGpp.robfor.__func__robfor$XAEBTnbRqsAAGpp.xlr$XAEBTnbRqsAAGpp.pr$XAEBTnbRqsAAGpp.false_northing$XAEBTnbRqsAAGpp.false_easting$XAEBTnbRqsAAGpp.lon_center$XAEBTnbRqsAAGpp.R$XBEBTnbRqsAAGpp.robforint.__func__robforint$XBEBTnbTqsAAGqp.robinv.__func__robinv$XAEBTnbTqsAAGqp.xlr$XAEBTnbTqsAAGqp.pr$XAEBTnbTqsAAGqp.false_northing$XAEBTnbTqsAAGqp.false_easting$XAEBTnbTqsAAGqp.lon_center$XAEBTnbTqsAAGqp.R$XBEBTnbTqsAAGqp.robinvint.__func__robinvint$XBEBTnbUqsAAGrp.sinfor.__func__sinfor$XAEBTnbUqsAAGrp.false_northing$XAEBTnbUqsAAGrp.false_easting$XAEBTnbUqsAAGrp.lon_center$XAEBTnbUqsAAGrp.R$XBEBTnbUqsAAGrp.sinforint.__func__sinforint$XBEBTnbVqsAAGsp.sininv.__func__sininv$XAEBTnbVqsAAGsp.false_northing$XAEBTnbVqsAAGsp.false_easting$XAEBTnbVqsAAGsp.lon_center$XAEBTnbVqsAAGsp.R$XBEBTnbVqsAAGsp.sininvint.__func__sininvint$XBEBTnbWqsAAGtp.som_series.__func__$XAEBTnbWqsAAGtp.s$XBEBTnbWqsAAGtp.somfor.__func__somfor$XAEBTnbWqsAAGtp.c3$XAEBTnbWqsAAGtp.c1$XAEBTnbWqsAAGtp.a4$XAEBTnbWqsAAGtp.a2$XAEBTnbWqsAAGtp.xj$XAEBTnbWqsAAGtp.t$XAEBTnbWqsAAGtp.q$XAEBTnbWqsAAGtp.w$XAEBTnbWqsAAGtp.sa$XAEBTnbWqsAAGtp.ca$XAEBTnbWqsAAGtp.start$XAEBTnbWqsAAGtp.lon_center$XAEBTnbWqsAAGtp.p21$XAEBTnbWqsAAGtp.es$XAEBTnbWqsAAGtp.b$XAEBTnbWqsAAGtp.a$XAEBTnbWqsAAGtp.false_northing$XAEBTnbWqsAAGtp.false_eastinggsat_ratio$XBEBTnbWqsAAGtp.somforint.__func__somforint$XBEBTnbYqsAAGup.som_series.__func__$XAEBTnbYqsAAGup.s$XBEBTnbYqsAAGup.sominv.__func__sominv$XAEBTnbYqsAAGup.c3$XAEBTnbYqsAAGup.c1$XAEBTnbYqsAAGup.a4$XAEBTnbYqsAAGup.a2$XAEBTnbYqsAAGup.xj$XAEBTnbYqsAAGup.u$XAEBTnbYqsAAGup.t$XAEBTnbYqsAAGup.q$XAEBTnbYqsAAGup.w$XAEBTnbYqsAAGup.sa$XAEBTnbYqsAAGup.ca$XAEBTnbYqsAAGup.p21$XAEBTnbYqsAAGup.lon_center$XAEBTnbYqsAAGup.es$XAEBTnbYqsAAGup.b$XAEBTnbYqsAAGup.a$XAEBTnbYqsAAGup.false_northing$XAEBTnbYqsAAGup.false_easting$XBEBTnbYqsAAGup.sominvint.__func__sominvint$XBEBTnbZqsAAGvp.sterfor.__func__sterfor$XAEBTnbZqsAAGvp.cos_p10$XAEBTnbZqsAAGvp.sin_p10$XAEBTnbZqsAAGvp.false_easting$XAEBTnbZqsAAGvp.false_northing$XAEBTnbZqsAAGvp.lat_origin$XAEBTnbZqsAAGvp.lon_center$XAEBTnbZqsAAGvp.r_major$XBEBTnbZqsAAGvp.sterforint.__func__sterforint$XBEBTnbaqsAAGwp.sterinv.__func__sterinv$XAEBTnbaqsAAGwp.cos_p10$XAEBTnbaqsAAGwp.sin_p10$XAEBTnbaqsAAGwp.false_easting$XAEBTnbaqsAAGwp.false_northing$XAEBTnbaqsAAGwp.lat_origin$XAEBTnbaqsAAGwp.lon_center$XAEBTnbaqsAAGwp.r_major$XBEBTnbaqsAAGwp.sterinvint.__func__sterinvint$XBEBTnbbqsAAWxp.stplnfor.__func__stplnfor$XAEBTnbbqsAAWxp.id$XBEBTnbbqsAAWxp.stplnforint.__func__stplnforint$XAEBTnbbqsAAWxp.NAD83$XAEBTnbbqsAAWxp.NAD27$XAEBTnbbqsAAWxp.inzone$XBEBTnbcqsAAWyp.stplninv.__func__stplninv$XAEBTnbcqsAAWyp.id$XBEBTnbcqsAAWyp.stplninvint.__func__stplninvint$XAEBTnbcqsAAWyp.nad83$XAEBTnbcqsAAWyp.nad27$XAEBTnbcqsAAWyp.inzone$XBEBTnbeqsAAWzp.tmfor.__func__tmfor$XAEBTnbeqsAAWzp.ind$XAEBTnbeqsAAWzp.esp$XAEBTnbeqsAAWzp.ml0$XAEBTnbeqsAAWzp.e3$XAEBTnbeqsAAWzp.e2$XAEBTnbeqsAAWzp.e1$XAEBTnbeqsAAWzp.e0$XAEBTnbeqsAAWzp.es$XAEBTnbeqsAAWzp.false_easting$XAEBTnbeqsAAWzp.false_northing$XAEBTnbeqsAAWzp.lat_origin$XAEBTnbeqsAAWzp.lon_center$XAEBTnbeqsAAWzp.scale_factor$XAEBTnbeqsAAWzp.r_minor$XAEBTnbeqsAAWzp.r_major$XBEBTnbeqsAAWzp.tmforint.__func__tmforint$XBEBTnbfqsAAW0p.tminv.__func__tminv$XAEBTnbfqsAAW0p.ind$XAEBTnbfqsAAW0p.esp$XAEBTnbfqsAAW0p.ml0$XAEBTnbfqsAAW0p.e3$XAEBTnbfqsAAW0p.e2$XAEBTnbfqsAAW0p.e1$XAEBTnbfqsAAW0p.e0$XAEBTnbfqsAAW0p.es$XAEBTnbfqsAAW0p.false_easting$XAEBTnbfqsAAW0p.false_northing$XAEBTnbfqsAAW0p.lat_origin$XAEBTnbfqsAAW0p.lon_center$XAEBTnbfqsAAW0p.scale_factor$XAEBTnbfqsAAW0p.r_minor$XAEBTnbfqsAAW0p.r_major$XBEBTnbfqsAAW0p.tminvint.__func__tminvint$XBEBTnbgqsAAW1p.utmfor.__func__utmfor$XAEBTnbgqsAAW1p.ind$XAEBTnbgqsAAW1p.esp$XAEBTnbgqsAAW1p.ml0$XAEBTnbgqsAAW1p.e3$XAEBTnbgqsAAW1p.e2$XAEBTnbgqsAAW1p.e1$XAEBTnbgqsAAW1p.e0$XAEBTnbgqsAAW1p.es$XAEBTnbgqsAAW1p.false_northing$XAEBTnbgqsAAW1p.false_easting$XAEBTnbgqsAAW1p.lon_center$XAEBTnbgqsAAW1p.lat_origin$XAEBTnbgqsAAW1p.scale_factor$XAEBTnbgqsAAW1p.r_minor$XAEBTnbgqsAAW1p.r_major$XBEBTnbgqsAAW1p.utmforint.__func__utmforint$XBEBTnbhqsAAW2p.utminv.__func__utminv$XAEBTnbhqsAAW2p.ind$XAEBTnbhqsAAW2p.esp$XAEBTnbhqsAAW2p.ml0$XAEBTnbhqsAAW2p.e3$XAEBTnbhqsAAW2p.e2$XAEBTnbhqsAAW2p.e1$XAEBTnbhqsAAW2p.e0$XAEBTnbhqsAAW2p.es$XAEBTnbhqsAAW2p.false_northing$XAEBTnbhqsAAW2p.false_easting$XAEBTnbhqsAAW2p.lon_center$XAEBTnbhqsAAW2p.lat_origin$XAEBTnbhqsAAW2p.scale_factor$XAEBTnbhqsAAW2p.r_minor$XAEBTnbhqsAAW2p.r_major$XBEBTnbhqsAAW2p.utminvint.__func__utminvint$XBEBTnbiqsAAW3p.vandgfor.__func__vandgfor$XAEBTnbiqsAAW3p.false_northing$XAEBTnbiqsAAW3p.false_easting$XAEBTnbiqsAAW3p.lon_center$XAEBTnbiqsAAW3p.R$XBEBTnbiqsAAW3p.vandgforint.__func__vandgforint$XBEBTnbjqsAAW4p.vandginv.__func__vandginv$XAEBTnbjqsAAW4p.false_northing$XAEBTnbjqsAAW4p.false_easting$XAEBTnbjqsAAW4p.lon_center$XAEBTnbjqsAAW4p.R$XBEBTnbjqsAAW4p.vandginvint.__func__vandginvint$XBEBTnbkqsAAW5p.wivfor.__func__wivfor$XAEBTnbkqsAAW5p.false_northing$XAEBTnbkqsAAW5p.false_easting$XAEBTnbkqsAAW5p.lon_center$XAEBTnbkqsAAW5p.R$XBEBTnbkqsAAW5p.wivforint.__func__wivforint$XBEBTnblqsAAW6p.wivinv.__func__wivinv$XAEBTnblqsAAW6p.false_northing$XAEBTnblqsAAW6p.false_easting$XAEBTnblqsAAW6p.lon_center$XAEBTnblqsAAW6p.R$XBEBTnblqsAAW6p.wivinvint.__func__wivinvint$XBEBTnbmqsAAW7p.wviifor.__func__wviifor$XAEBTnbmqsAAW7p.false_northing$XAEBTnbmqsAAW7p.false_easting$XAEBTnbmqsAAW7p.lon_center$XAEBTnbmqsAAW7p.R$XBEBTnbmqsAAW7p.wviiforint.__func__wviiforint$XBEBTnboqsAAW8p.wviiinv.__func__wviiinv$XAEBTnboqsAAW8p.false_northing$XAEBTnboqsAAW8p.false_easting$XAEBTnboqsAAW8p.lon_center$XAEBTnboqsAAW8p.R$XBEBTnboqsAAW8p.wviiinvint.__func__wviiinvint$XBEBTnbpqsAAW9p.Isin_error.__func__$XBEBTnbpqsAAW9p.Isin_for_free.__func__$XBEBTnbpqsAAW9p.Isin_fwd.__func__Isin_fwd$XBEBTnbpqsAAW9p.isinusfor.__func__isinusfor$XBEBTnbpqsAAW9p.Isin_for_init.__func__Isin_for_initIsin_for_free$XBEBTnbpqsAAW9p.isinusforinit.__func__isinusforinit$XAEBTnbpqsAAW9p.isin$XAEBTnbpqsAAW9p.ISIN_BADKEY$XAEBTnbpqsAAW9p.ISIN_BADHANDLE$XAEBTnbpqsAAW9p.ISIN_BADPARAM$XAEBTnbpqsAAW9p.ISIN_BADALLOC$XBEBTnbpqsAAW9p.error.__func__$XBEBTnbqqsAAW_p.Isin_error.__func__$XBEBTnbqqsAAW_p.Isin_inv_free.__func__$XBEBTnbqqsAAW_p.Isin_inv.__func__Isin_inv$XBEBTnbqqsAAW_p.isinusinv.__func__isinusinv$XBEBTnbqqsAAW_p.Isin_inv_init.__func__Isin_inv_initIsin_inv_free$XBEBTnbqqsAAW_p.isinusinvinit.__func__isinusinvinit$XAEBTnbqqsAAW_p.isin$XAEBTnbqqsAAW_p.ISIN_BADKEY$XAEBTnbqqsAAW_p.ISIN_BADHANDLE$XAEBTnbqqsAAW_p.ISIN_BADPARAM$XAEBTnbqqsAAW_p.ISIN_BADALLOC$XBEBTnbqqsAAW_p.error.__func__$XBEBTnbsqsAAW$p.for_init.__func__for_init$XBEBTnbuqsAAmAq.inv_init.__func__inv_init$XBEBTnbwqsAAGCq.calc_utm_zone.__func__calc_utm_zone$XBEBTnbwqsAAGCq.mlfn.__func__mlfn$XBEBTnbwqsAAGCq.e4fn.__func__e4fn$XBEBTnbwqsAAGCq.e3fn.__func__e3fn$XBEBTnbwqsAAGCq.e2fn.__func__e2fn$XBEBTnbwqsAAGCq.e1fn.__func__e1fn$XBEBTnbwqsAAGCq.e0fn.__func__e0fn$XBEBTnbwqsAAGCq.adjust_lon.__func__adjust_lon$XBEBTnbwqsAAGCq.sign.__func__sign$XBEBTnbwqsAAGCq.tsfnz.__func__tsfnz$XBEBTnbwqsAAGCq.pakr2dm.__func__pakr2dm$XBEBTnbwqsAAGCq.pakcz.__func__pakcz$XBEBTnbwqsAAGCq.phi4z.__func__phi4z$XBEBTnbwqsAAGCq.phi3z.__func__phi3z$XBEBTnbwqsAAGCq.phi2z.__func__phi2z$XBEBTnbwqsAAGCq.phi1z.__func__phi1z$XBEBTnbwqsAAGCq.qsfnz.__func__qsfnz$XBEBTnbwqsAAGCq.msfnz.__func__msfnz$XBEBTnbwqsAAGCq.asinz.__func__asinz$XBEBTnbwqsAAGCq.tsincos.__func__tsincos$XBEBTnbyqsAAGDq.pblank.__func__pblank$XBEBTnbyqsAAGDq.genrpt_long.__func__genrpt_long$XBEBTnbyqsAAGDq.genrpt.__func__genrpt$XBEBTnbyqsAAGDq.offsetp.__func__offsetp$XBEBTnbyqsAAGDq.stparl1.__func__stparl1$XBEBTnbyqsAAGDq.stanparl.__func__stanparl$XBEBTnbyqsAAGDq.true_scale.__func__true_scale$XBEBTnbyqsAAGDq.origin.__func__origin$XBEBTnbyqsAAGDq.cenlat.__func__cenlat$XBEBTnbyqsAAGDq.cenlonmer.__func__cenlonmer$XBEBTnbyqsAAGDq.cenlon.__func__cenlon$XBEBTnbyqsAAGDq.radius2.__func__radius2$XBEBTnbyqsAAGDq.radius.__func__radius$XBEBTnbyqsAAGDq.ptitle.__func__ptitle$XAEBTnbyqsAAGDq.fptr_p$XBEBTnbyqsAAGDq.close_file.__func__close_file$XAEBTnbyqsAAGDq.parm_file$XAEBTnbyqsAAGDq.file_p$XAEBTnbyqsAAGDq.terminal_p$XBEBTnbyqsAAGDq.init.__func__init$XAEBTnbyqsAAGDq.err_file$XAEBTnbyqsAAGDq.fptr_e$XAEBTnbyqsAAGDq.file_e$XAEBTnbyqsAAGDq.terminal_e$XBEBTnbyqsAAGDq.p_error.__func__p_error$XBEBTnbzqsAAGEq.paksz.__func__paksz$XBEBTnb0qsAAGFq.sphdz.__func__sphdz$XAEBTnb0qsAAGFq.minor$XAEBTnb0qsAAGFq.major$XBEBTnb1qsAAGGq.untfz.__func__untfz$XAEBTnb1qsAAGGq.factors$XAEBTnb2qsAAGHq.for_trans$XAEBTnb2qsAAGHq.inv_trans$XAEBTnb2qsAAGHq.pdout$XAEBTnb2qsAAGHq.pdin$XAEBTnb2qsAAGHq.outzn$XAEBTnb2qsAAGHq.outdat$XAEBTnb2qsAAGHq.outpj$XAEBTnb2qsAAGHq.inzn$XAEBTnb2qsAAGHq.indat$XAEBTnb2qsAAGHq.inpj$XBEBTnb2qsAAGHq.gctp.__func__gctp$XAEBTnb2qsAAGHq.NADUT$XAEBTnb2qsAAGHq.iter$XBEBTnb4qsAAGIq.gctp_.__func__gctp_alberfor.o/ 1073924697 1032 20 100644 13096 ` ELF04(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ؅B;X@X!  !  @@@ '! $ $ ! $ $ !   !    ?! B?;X@X! $ $ ;XX@@?!   ;XX;XX;X@X?!   ;XX;XX;X@X?pؠ;XX@@!   ;XX;XX;X@X?!   ;XX;XX;X@X?hȠ;XX@@!   ;XX;XX;X@X?x؅;X@X! BBhp…! $ $ ! $ $ B!   p BB! $ $ !   ?`!   !   x B;X@X` @   ! $ $ ! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?;XX@@!   ;XX;XX;X@X?!   ?!   !   Ѕ B;X@X @   ?!   ?!   ;X@X @??;X@X @!   BT$ $ !   ??;X@X @!   BX$ $ 'Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA=|׽?alberforintalberforL d"d-8.8/<@X4$ C$L o        3 alberfor.c/ecs/hdfeos/gctp/src/alberfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbYpsAAG8o./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o alberfor.o alberfor.c -W0,-xp\$XAEBTnbYpsAAG8o.alberforint$XBEBTnbYpsAAG8o.alberforint.__func__alberfor$XBEBTnbYpsAAG8o.alberfor.__func__$XAEBTnbYpsAAG8o.false_northing$XAEBTnbYpsAAG8o.false_easting$XAEBTnbYpsAAG8o.lon_center$XAEBTnbYpsAAG8o.ns0$XAEBTnbYpsAAG8o.rh$XAEBTnbYpsAAG8o.e3$XAEBTnbYpsAAG8o.c$XAEBTnbYpsAAG8o.r_minor$XAEBTnbYpsAAG8o.r_majorU d"d-8.8/<@XӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z      ʠ ݠ|     " . 9 Dx Op Zh eD;|D<D=D>DADB DD DE DF4DG\DHtDJDKDMDNDP,DRLDSDUDWDYDZDD\D]D^Db8DcHDd|DeDfDgDi p, Dj $  TX4(7ANDy4DzTD{D|D}4D~tDY, D(!/\(!/=(!/|(!07.(!0_J(!0#f(!0L(!0 (!/$$$$*$I$g$$$$$$$.$A$Tbalberfor.c/ecs/hdfeos/gctp/src/alberfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbYpsAAG8o.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.halberforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)lon0:p(0,18)lat0:p(0,18)false_east:p(0,18)false_north:p(0,18)sin_po:(0,18)cos_po:(0,18)con:(0,18)es:(0,18)temp:(0,18)ms1:(0,18)ms2:(0,18)qs0:(0,18)qs1:(0,18)qs2:(0,18)alberfor.c$XBEBTnbYpsAAG8o.alberforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)alberfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sin_phi:(0,18)cos_phi:(0,18)qs:(0,18)theta:(0,18)rh1:(0,18)$XBEBTnbYpsAAG8o.alberfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbYpsAAG8o.false_northing:S(0,18)$XAEBTnbYpsAAG8o.false_easting:S(0,18)$XAEBTnbYpsAAG8o.lon_center:S(0,18)$XAEBTnbYpsAAG8o.ns0:S(0,18)$XAEBTnbYpsAAG8o.rh:S(0,18)$XAEBTnbYpsAAG8o.e3:S(0,18)$XAEBTnbYpsAAG8o.c:S(0,18)$XAEBTnbYpsAAG8o.r_minor:S(0,18)$XAEBTnbYpsAAG8o.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)qsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06alberfor.cBbss.bssDdata.dataDrodata.rodatacossinadjust_lon$XBEBTnbYpsAAG8o.alberfor.__func__alberforoffsetporigincenlonmerstanparlradius2ptitleqsfnzmsfnztsincossqrtp_errorfabs$XAEBTnbYpsAAG8o.rh$XAEBTnbYpsAAG8o.c$XAEBTnbYpsAAG8o.ns0$XAEBTnbYpsAAG8o.e3$XAEBTnbYpsAAG8o.r_minor$XAEBTnbYpsAAG8o.r_major$XAEBTnbYpsAAG8o.lon_center$XAEBTnbYpsAAG8o.false_northing$XAEBTnbYpsAAG8o.false_easting$XBEBTnbYpsAAG8o.alberforint.__func__alberforint H /37B e8nv}@80( .Gc            $ 4 8 D H T X l p       0T\ `     4< @ x |             8 < H PL PPX \ h l                 ( , @ D X |      4 (HjP%%u+x 7 hLF 0  QU_&9h'p)0 x+  alberinv.o/ 1073924697 1032 20 100644 14908 ` ELF74(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ؅B;X@X!  !  D@@ '! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ ;XX@@?!   ;XX;XX;X@X?!   ;XX;XX;X@X?xؠ;XX@@!   ;XX;XX;X@X?!   ;XX;XX;X@X?pȠ;XX@@!   ;XX;XX;X@X?؅;X@X! BBpx…! $ $ ! $ $ B!   x BB! $ $ !   ?h!   !    B;X@Xh @   ! $ $ ! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?'!   ?!   艡!   B?!   ! B腠BB;X@X?! ?B腠BB;X@X!?! ?! ?! B  B腡 B;XX;X@X?!    B!    ?!   ЅB!    ?!   ! l! ?!   ! B?!   B ;X@X @   ?;X@X! ?;X@X;X@X! !   ؠ;XX;XX@X$ $ Ā J'!  ! ! BX$ $  ! ! BX$ $ !   ؠ;XX;XX@X$ $ Ā '!    !   B;X@XT$ $ 'Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREA=|׽??@ !TD-alberinvintalberinv` d"d-8.8/<@Y4$ C$L o        . G alberinv.c/ecs/hdfeos/gctp/src/alberinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbZpsAAG9o./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o alberinv.o alberinv.c -W0,-xp\$XAEBTnbZpsAAG9o.alberinvint$XBEBTnbZpsAAG9o.alberinvint.__func__alberinv$XBEBTnbZpsAAG9o.alberinv.__func__$XAEBTnbZpsAAG9o.false_northing$XAEBTnbZpsAAG9o.false_easting$XAEBTnbZpsAAG9o.lon_center$XAEBTnbZpsAAG9o.ns0$XAEBTnbZpsAAG9o.rh$XAEBTnbZpsAAG9o.es$XAEBTnbZpsAAG9o.e3$XAEBTnbZpsAAG9o.c$XAEBTnbZpsAAG9o.r_minor$XAEBTnbZpsAAG9o.r_major d"d-8.8/<@YӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z      ʠ ݠ|     $ / : Ex Pp [D?|D@DADBDEDF DH DI DJ4DK\DLDNDODQDR DTDDVdDWDYD[D],D^\D`DaDbDfPDg`DhDiDjDkDm f, Dn  $   TX4$/<D4D8DTDDDDDDD(DDDpDDDDDDD$08D8DTD|DDDDD@G, DPP(!/\(!/=(!/|(!0P(!0x8(!0(T(!0<p(!0e(!0(!/$$$/$E$^$}$$$$$$:$N$b$u$balberinv.c/ecs/hdfeos/gctp/src/alberinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbZpsAAG9o.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.halberinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)lon0:p(0,18)lat0:p(0,18)false_east:p(0,18)false_north:p(0,18)sin_po:(0,18)cos_po:(0,18)con:(0,18)temp:(0,18)ms1:(0,18)ms2:(0,18)qs0:(0,18)qs1:(0,18)qs2:(0,18)alberinv.c$XBEBTnbZpsAAG9o.alberinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)alberinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh1:(0,18)qs:(0,18)con:(0,18)theta:(0,18)flag:(0,4)$XBEBTnbZpsAAG9o.alberinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbZpsAAG9o.false_northing:S(0,18)$XAEBTnbZpsAAG9o.false_easting:S(0,18)$XAEBTnbZpsAAG9o.lon_center:S(0,18)$XAEBTnbZpsAAG9o.ns0:S(0,18)$XAEBTnbZpsAAG9o.rh:S(0,18)$XAEBTnbZpsAAG9o.es:S(0,18)$XAEBTnbZpsAAG9o.e3:S(0,18)$XAEBTnbZpsAAG9o.c:S(0,18)$XAEBTnbZpsAAG9o.r_minor:S(0,18)$XAEBTnbZpsAAG9o.r_major:S(0,18)phi1z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)qsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06alberinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonphi1zlogatan2$XBEBTnbZpsAAG9o.alberinv.__func__alberinvoffsetporigincenlonmerstanparlradius2ptitleqsfnzmsfnztsincossqrtp_errorfabs$XAEBTnbZpsAAG9o.rh$XAEBTnbZpsAAG9o.c$XAEBTnbZpsAAG9o.ns0$XAEBTnbZpsAAG9o.e3$XAEBTnbZpsAAG9o.es$XAEBTnbZpsAAG9o.r_minor$XAEBTnbZpsAAG9o.r_major$XAEBTnbZpsAAG9o.lon_center$XAEBTnbZpsAAG9o.false_northing$XAEBTnbZpsAAG9o.false_easting$XBEBTnbZpsAAG9o.alberinvint.__func__alberinvint P 8/:@DJD mP`v~H@8 0(1 Jc8 0" " ! !       $ 4 8 D H T X l p            Hlt x     0LT X               4P T ` Td Thp t     " " ! !  " "   ! !       $ L` d l p |            $ ( 4 8 L P X \ p t      ( , P     ( ( 0 0 ( (   P T d h |4   hP hn M% %+ ( 7 $`F  Q@_*h,xp.hP x0,  alconfor.o/ 1073924698 1032 20 100644 15360 ` ELF94(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! ! B! $ $ ! ! B! $ $  !$ ! ?;X@X! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4!   ?!   ;X@X @?%' B!   B#` ;X@X! ?! …B!   ` ;XX;X@X @;X@X` B B?! #`;XX@@! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?آ;XX@@!   ?H;X@XH @?%' B艡B#` ;X@X! ?@! …B!   ` ;XX;X@X@ @;X@X` B B?``Ȣ;XX@@!   ȍ B!    BЅ BB?! ! B? B؅ B?!   ȍ B!    BЅ B… B?B?XBBB?! , #`  ?! , #`  ?! , #`  ?! , #`  ?x 'TT! @?X BB?pxX BB?hT! @$! T$, #`   B?! T$, #`   B?xp?h?T 'TT! @# B?# B?xp?h? B BB!    B!   BT$ $  B BBxB!    B!   BX$ $ 'ALASKA CONFORMALc?FR5@P?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO@ !TD-?@?alconforintalconfor d"d-8.8/<@Z4$ C$L o        4 P l  alconfor.c/ecs/hdfeos/gctp/src/alconfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbapsAAG_o./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o alconfor.o alconfor.c -W0,-xp\$XAEBTnbapsAAG_o.alconforint$XBEBTnbapsAAG_o.alconforint.__func__alconfor$XBEBTnbapsAAG_o.alconfor.__func__$XAEBTnbapsAAG_o.n$XAEBTnbapsAAG_o.e$XAEBTnbapsAAG_o.cos_p26$XAEBTnbapsAAG_o.sin_p26$XAEBTnbapsAAG_o.bcoef$XAEBTnbapsAAG_o.acoef$XAEBTnbapsAAG_o.false_northing$XAEBTnbapsAAG_o.false_easting$XAEBTnbapsAAG_o.lat_center$XAEBTnbapsAAG_o.lon_center$XAEBTnbapsAAG_o.r_minor$XAEBTnbapsAAG_o.r_majorg d"d-8.8/<@ZӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ ^ l z L    ÄD=LD>`D?tD@DADBDCDEDFDHDI4DJLDKdDL|DMDNDODPDQDR DS$DU<DWxDX8D]`D^pD_D`DaDb , Dc  $ K W cT mX4 w      Ȁ р ڀ    xp!h,`7X@TD4D\D|DD`DDDDD@DLDdDDDDDD,DD\D\DDDDDD D8D@DHDDH, D(!/(!0(!0Z(!0A(8!0*6(8!0h(!/(!/v(!/(!/(!/] (!/DA$[$y$$$$$$$,$?$R$fbalconfor.c/ecs/hdfeos/gctp/src/alconfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbapsAAG_o.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.halconforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)false_east:p(0,18)false_north:p(0,18)es:(0,18)chi:(0,18)esphi:(0,18)alconfor.c$XBEBTnbapsAAG_o.alconforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)alconfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinlon:(0,18)coslon:(0,18)sinphi:(0,18)cosphi:(0,18)esphi:(0,18)g:(0,18)s:(0,18)xp:(0,18)yp:(0,18)ar:(0,18)ai:(0,18)br:(0,18)bi:(0,18)arn:(0,18)ain:(0,18)chi:(0,18)r:(0,18)j:(0,4)$XBEBTnbapsAAG_o.alconfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbapsAAG_o.n:S(0,4)$XAEBTnbapsAAG_o.e:S(0,18)$XAEBTnbapsAAG_o.cos_p26:S(0,18)$XAEBTnbapsAAG_o.sin_p26:S(0,18)$XAEBTnbapsAAG_o.bcoef:S(0,26)=ar(0,4);0;6;(0,18)$XAEBTnbapsAAG_o.acoef:S(0,27)=ar(0,4);0;6;(0,18)$XAEBTnbapsAAG_o.false_northing:S(0,18)$XAEBTnbapsAAG_o.false_easting:S(0,18)$XAEBTnbapsAAG_o.lat_center:S(0,18)$XAEBTnbapsAAG_o.lon_center:S(0,18)$XAEBTnbapsAAG_o.r_minor:S(0,18)$XAEBTnbapsAAG_o.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06alconfor.cBbss.bssDdata.dataDrodata.rodataadjust_lon$XBEBTnbapsAAG_o.alconfor.__func__alconforoffsetpcenlatcenlonradius2ptitletsincospowtanatansinsqrt$XAEBTnbapsAAG_o.cos_p26$XAEBTnbapsAAG_o.sin_p26$XAEBTnbapsAAG_o.bcoef$XAEBTnbapsAAG_o.acoef$XAEBTnbapsAAG_o.e$XAEBTnbapsAAG_o.n$XAEBTnbapsAAG_o.lat_center$XAEBTnbapsAAG_o.lon_center$XAEBTnbapsAAG_o.false_northing$XAEBTnbapsAAG_o.false_easting$XAEBTnbapsAAG_o.r_minor$XAEBTnbapsAAG_o.r_major$XBEBTnbapsAAG_o.alconforint.__func__alconforint  /: ]Pfnu|x8@8 80/(K g 0` d t x                        , 0 4 8 D (H (L P \ 0` 0d h t 8x 8|   @ @   H H   P P   X X   ` `   h h    p  p$ ( 4 x8 x< @ L P ` d t             $, 4 8 L P T X hp t x                          (< @ T X d x           L P d h                $ , 0 P T           D H       ( , 4  h   8% +  7 F t  Qg_*h,% p.00 x0` H  alconinv.o/ 1073924699 1032 20 100644 18188 ` ELFD4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! ! B! $ $ ! ! B! $ $  !$ ! ?;X@X! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4!   ?!   ;X@X @?%' B!   B#` ;X@X! ?! …B!   ` ;XX;X@X @;X@X` B B?! #`;XX@@! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'h'X'T'P'L'H'DDH?LP?!   !    ?!   !    ??H?@'HB?HB@BB?! , #`  ?! , #`  ?! , #`  ?! , #`  ?! '܉ B?! '܉ B?! $ '܉ȅ B?! $ '܉ B? '! @{ BB? BB?! @`! $, #`   B?! $, #`   B??? BB?x BB?p%$'܉$, #`   B B?%$'܉$, #`   B B?x?p? '! @Ћ# B?Ћ# B???H B@ BȉB?h@ BH BBB腡?`H B@ BB?X@ BHFBF?PXBPBB?8hX B`P BB#8 ?0`X BhP B‹#8 ?(H0B?H@(B?@0;X@X! ?(;X@XЅ@?  '  !  @@ ' !  HB@BB;X@X?! ;X@X B?;XX@@!   T$ $ ;X@X!  !   X$ $ '!    B@ B!    B …B;X@X?'?!   ?;X@XЅ @?%' BB#` ;X@X! ?! B!   ` ;XX;X@Xȅ @;X@X` B B腡?B? '  !  @@ 9';X@X!  X$ $ !   ?HF!    B B@!    BF;XX;X@XЅ@;X@XT$ $ 'ALASKA CONFORMALToo many iterations in inversealcon-invToo many iterations in inversealcon-invc?FR5@P?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO@ !TD-?@?=|׽alconinvintalconinv d"d-8.8/<@[4$ D$M p        5 Q m  alconinv.c/ecs/hdfeos/gctp/src/alconinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbapsAAG$o./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o alconinv.o alconinv.c -W0,-xp\$XAEBTnbapsAAG\$o.alconinvint$XBEBTnbapsAAG$o.alconinvint.__func__alconinv$XBEBTnbapsAAG$o.alconinv.__func__$XAEBTnbapsAAG$o.n$XAEBTnbapsAAG$o.e$XAEBTnbapsAAG$o.cos_p26$XAEBTnbapsAAG$o.sin_p26$XAEBTnbapsAAG$o.bcoef$XAEBTnbapsAAG$o.acoef$XAEBTnbapsAAG$o.false_northing$XAEBTnbapsAAG$o.false_easting$XAEBTnbapsAAG$o.lat_center$XAEBTnbapsAAG$o.lon_center$XAEBTnbapsAAG$o.r_minor$XAEBTnbapsAAG$o.r_major"c d"d-8.8/<@[Ӏ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ ^ l z L    ÄD=LD>`D?tD@DADBDCDEDFDHDI4DJLDKdDL|DMDNDODPDQDR DS$DT<DVxDW8D\`D]pD^D_D`Da , Db  $ K U _T kX4 w        Ȁ Ҁ ܀   xph`*X7PDHN@X8c0n(y ŀЀ؀D4DdDDDDDDDDD8D\D|DDDDDD4LDLDDDDDDD\DDDDDDD D(DXDDDDDDLD\DlDDDDDDD$DLDlDDDDD(D,4D4DdD D0D<LDLDdppDpDDD <, D L L&(!/@(!0[(!0Z|(!0A(8!0*(8!0(!/)(!/vP(!/t(!/(!/](!/D$$ $'$=$S$q$$$$$$ $$2$N$bbalconinv.c/ecs/hdfeos/gctp/src/alconinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbapsAAG$o.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.halconinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)false_east:p(0,18)false_north:p(0,18)es:(0,18)chi:(0,18)esphi:(0,18)alconinv.c$XBEBTnbapsAAG$o.alconinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)alconinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)esphi:(0,18)r:(0,18)s:(0,18)br:(0,18)bi:(0,18)ai:(0,18)ar:(0,18)ci:(0,18)cr:(0,18)di:(0,18)dr:(0,18)arn:(0,18)ain:(0,18)crn:(0,18)cin:(0,18)fxyr:(0,18)fxyi:(0,18)fpxyr:(0,18)fpxyi:(0,18)xp:(0,18)yp:(0,18)den:(0,18)dxp:(0,18)dyp:(0,18)ds:(0,18)z:(0,18)cosz:(0,18)sinz:(0,18)rh:(0,18)chi:(0,18)dphi:(0,18)phi:(0,18)j:(0,4)nn:(0,4)$XBEBTnbapsAAG$o.alconinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbapsAAG$o.n:S(0,4)$XAEBTnbapsAAG$o.e:S(0,18)$XAEBTnbapsAAG$o.cos_p26:S(0,18)$XAEBTnbapsAAG$o.sin_p26:S(0,18)$XAEBTnbapsAAG$o.bcoef:S(0,26)=ar(0,4);0;6;(0,18)$XAEBTnbapsAAG$o.acoef:S(0,27)=ar(0,4);0;6;(0,18)$XAEBTnbapsAAG$o.false_northing:S(0,18)$XAEBTnbapsAAG$o.false_easting:S(0,18)$XAEBTnbapsAAG$o.lat_center:S(0,18)$XAEBTnbapsAAG$o.lon_center:S(0,18)$XAEBTnbapsAAG$o.r_minor:S(0,18)$XAEBTnbapsAAG$o.r_major:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06alconinv.cBbss.bssDdata.dataDrodata.rodataatan2adjust_lonasinzp_errorfabs$XBEBTnbapsAAG$o.alconinv.__func__alconinvoffsetpcenlatcenlonradius2ptitletsincospowtanatansinsqrt$XAEBTnbapsAAG$o.cos_p26$XAEBTnbapsAAG$o.sin_p26$XAEBTnbapsAAG$o.bcoef$XAEBTnbapsAAG$o.acoef$XAEBTnbapsAAG$o.e$XAEBTnbapsAAG$o.n$XAEBTnbapsAAG$o.lat_center$XAEBTnbapsAAG$o.lon_center$XAEBTnbapsAAG$o.false_northing$XAEBTnbapsAAG$o.false_easting$XAEBTnbapsAAG$o.r_minor$XAEBTnbapsAAG$o.r_major$XBEBTnbapsAAG$o.alconinvint.__func__alconinvint  /5@FNS vP \x8 @8"850H(d  0`$ d$ t# x# " " ! !                   , 0 4 8 D (H (L P \ 0` 0d h t 8x 8|   @ @   H H   P P   X X   ` `   h h    p  p$ ( 4 x8 x< @ L P ` d t             $, 4 8 L P T X hp t x$ $ # #     " " ! ! " " $ $ ! ! $ $    ( , @ D L P d h p t             @ D           T X p        $ (        8 < h x |         ( , H L l                 0 D L T X  @  @       < @ d x4  hhj%+ 7FL  Q c_3Sh4#p7p x9 (  azimfor.o/ 1073924700 1032 20 100644 11616 ` ELF*4(.shstrtab.text.bss.data1.rodata1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?;XX@@;X@X?!    B!   ؉ Bȅ BB?;X@X! B;X@X! .! ?! "! ! B! B!    B?X#`@;X@XX#`@@ {L';X@X??P;X@XP ?!   ?@!    Bؽ B?H;X@XH @@BT$ $ !   !    B!    B!   ؉ Bȅ B… BBX$ $ 'AZIMUTHAL EQUIDISTANTazim-forPoint projects into a circle of radius = %12.2lf=|׽?@ !TD-?@azimforintazimfor) d!d+8,8-<@\4 $ =$E g       azimfor.c/ecs/hdfeos/gctp/src/azimfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbbpsAAGAp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o azimfor.o azimfor.c -W0,-xp\$XAEBTnbbpsAAGAp.azimforint$XBEBTnbbpsAAGAp.azimforint.__func__azimfor$XBEBTnbbpsAAGAp.azimfor.__func__$XAEBTnbbpsAAGAp.cos_p12$XAEBTnbbpsAAGAp.sin_p12$XAEBTnbbpsAAGAp.false_easting$XAEBTnbbpsAAGAp.false_northing$XAEBTnbbpsAAGAp.lat_origin$XAEBTnbbpsAAGAp.lon_center$XAEBTnbbpsAAGAp.r_major| d!d+8,8-<@\р=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B N ZT dX4 n |      À ̀PXDV4DW\DX|DYDZD\D]8D_8D`pDaDbDgDhDjDlXDm , Dn/(!/P(!/q(!/(!/w(!/[(!/?(!/&)$C$a$w$$$$$$$&$9$M${bazimfor.c/ecs/hdfeos/gctp/src/azimfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbbpsAAGAp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hazimforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)azimfor.c$XBEBTnbbpsAAGAp.azimforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)azimfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sinphi:(0,18)cosphi:(0,18)dlon:(0,18)coslon:(0,18)ksp:(0,18)g:(0,18)con:(0,18)z:(0,18)mess:(0,24)=ar(0,4);0;79;(0,1)$XBEBTnbbpsAAGAp.azimfor.__func__:V(0,25)=ar(0,4);0;7;(0,26)=k(0,1)$XAEBTnbbpsAAGAp.cos_p12:S(0,18)$XAEBTnbbpsAAGAp.sin_p12:S(0,18)$XAEBTnbbpsAAGAp.false_easting:S(0,18)$XAEBTnbbpsAAGAp.false_northing:S(0,18)$XAEBTnbbpsAAGAp.lat_origin:S(0,18)$XAEBTnbbpsAAGAp.lon_center:S(0,18)$XAEBTnbbpsAAGAp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)acos:P(0,18);(0,18)sprintf:P(0,3);(10,3);(0,27)=*(0,28)=k(0,1);0@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06azimfor.cBbss.bssDdata.dataDrodata.rodatasinacosp_errorsprintffabscosadjust_lon$XBEBTnbbpsAAGAp.azimfor.__func__azimforoffsetporigincenlonmerradiusptitletsincos$XAEBTnbbpsAAGAp.cos_p12$XAEBTnbbpsAAGAp.sin_p12$XAEBTnbbpsAAGAp.false_easting$XAEBTnbbpsAAGAp.false_northing$XAEBTnbbpsAAGAp.lat_origin$XAEBTnbbpsAAGAp.lon_center$XAEBTnbbpsAAGAp.r_major$XBEBTnbbpsAAGAp.azimforint.__func__azimforint 88.27?GLP[C}0( %A]v8 l p                   $ 4< @ PX \ h l   4D P T h l              ( (  0 0  4 8 L X \ d        ( , @ D X \ 4 p8p!1&K.4  @)O @  ZX|h!q#zy%  '  aziminv.o/ 1073924701 1032 20 100644 12152 ` ELF- 4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?! ! B! B!    B !  @@ }'!    ?ؠТ;XX@@!   T$ $ ;X@X!  !   X$ $ '!    BЉ B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ b'!   ?;XX;X@X;X@XT$ $ K'?!   ?X  ;X@X @?;X@X! ;X@X! #'!   ?Љ B!    B B;XX;X@X@;X@XT$ $ 'AZIMUTHAL EQUIDISTANTInput data errorazim-inv@ !TD-?@=|׽aziminvintaziminv) d!d+8,8-<@\4 $ =$E g       aziminv.c/ecs/hdfeos/gctp/src/aziminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbcpsAAGBp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o aziminv.o aziminv.c -W0,-xp\$XAEBTnbcpsAAGBp.aziminvint$XBEBTnbcpsAAGBp.aziminvint.__func__aziminv$XBEBTnbcpsAAGBp.aziminv.__func__$XAEBTnbcpsAAGBp.cos_p12$XAEBTnbcpsAAGBp.sin_p12$XAEBTnbcpsAAGBp.false_easting$XAEBTnbcpsAAGBp.false_northing$XAEBTnbcpsAAGBp.lat_origin$XAEBTnbcpsAAGBp.lon_center$XAEBTnbcpsAAGBp.r_major% d!d+8,8-<@\р=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B L VT bX4 n x   DR4DSPDTlDUDWDXDZD[D\8D]T|D_|D`DbDcDd4\Df\DhDiDmDn4<<Dq<DrDsDtDvP , Dw`` (!/ (!/*(!/Q(!/wy(!/[(!/?(!/&$$$/$E$^$t$$$$$$$$baziminv.c/ecs/hdfeos/gctp/src/aziminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbcpsAAGBp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.haziminvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)aziminv.c$XBEBTnbcpsAAGBp.aziminvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)aziminv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)con:(0,18)$XBEBTnbcpsAAGBp.aziminv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbcpsAAGBp.cos_p12:S(0,18)$XAEBTnbcpsAAGBp.sin_p12:S(0,18)$XAEBTnbcpsAAGBp.false_easting:S(0,18)$XAEBTnbcpsAAGBp.false_northing:S(0,18)$XAEBTnbcpsAAGBp.lat_origin:S(0,18)$XAEBTnbcpsAAGBp.lon_center:S(0,18)$XAEBTnbcpsAAGBp.r_major:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06aziminv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonasinzfabsp_errorsqrt$XBEBTnbcpsAAGBp.aziminv.__func__aziminvoffsetporigincenlonmerradiusptitletsincos$XAEBTnbcpsAAGBp.cos_p12$XAEBTnbcpsAAGBp.sin_p12$XAEBTnbcpsAAGBp.false_easting$XAEBTnbcpsAAGBp.false_northing$XAEBTnbcpsAAGBp.lat_origin$XAEBTnbcpsAAGBp.lon_center$XAEBTnbcpsAAGBp.r_major$XBEBTnbcpsAAGBp.aziminvint.__func__aziminvint 8(.28CINV[3}p0( %A]v( l p                   $ 4< @ PX \ h l     D T X \ ` h l t x         $ ( < @ d h                 , 0 D H p      (L T X t |       4 085 ;%[+\ 74)F `  Q %_#1h$p& x(p  bceafor.o/ 1073924701 1032 20 100644 12444 ` ELF.D4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textX'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   !  !$ !$ !   ;X@X! $ $ !   ;X@X! $ $ !   ?! !   !   DD;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'X'X'T'P'L'H'DDH?LP?!   ;X@X?;X@X?! *!   !    B!    BBT$ $ !   !   ؉ B!    …BX$ $ P! !   ?؅DD½ ?!   ! B ?ȅD…B ;X@Xȅ @ B?!   !   !    B BBT$ $ !   !   Ѝ B!   ! B…BX$ $ 'Cylinderical Equal Area?>h@bceaforintbceafor d!d+8,8-<@]4 $ =$E g |       9 M ` y bceafor.c/ecs/hdfeos/gctp/src/bceafor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbdpsAAWCp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o bceafor.o bceafor.c -W0,-xp\$XAEBTnbdpsAAWCp.bceaforint$XBEBTnbdpsAAWCp.bceaforint.__func__bceafor$XBEBTnbdpsAAWCp.bceafor.__func__$XAEBTnbdpsAAWCp.ind$XAEBTnbdpsAAWCp.kz$XAEBTnbdpsAAWCp.sinphi1$XAEBTnbdpsAAWCp.cosphi1$XAEBTnbdpsAAWCp.false_easting$XAEBTnbdpsAAWCp.false_northing$XAEBTnbdpsAAWCp.lat_truesc$XAEBTnbdpsAAWCp.lon_center$XAEBTnbdpsAAWCp.es$XAEBTnbdpsAAWCp.e$XAEBTnbdpsAAWCp.r_minor$XAEBTnbdpsAAWCp.r_majorm d!d+8,8-<@]р=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ i w    d Ҁ ބD>dD?xD@DADBDCDEDFDG(DIT|DK|DODRDSDTDX\DYlDZD[D\D] , D^ 0$ c o {T X4   Do4Dp\DrpDtDu$D{$D|D}\D\ , Dll (!0(!0N.(!05O(!0p(!/(!/(!/(!/i(!/#(!/>(!/P_(!/7$$$$$ $$3$F$Y$lbbceafor.c/ecs/hdfeos/gctp/src/bceafor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbdpsAAWCp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hbceaforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)bceafor.c$XBEBTnbdpsAAWCp.bceaforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)bceafor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinphi:(0,18)q:(0,18)$XBEBTnbdpsAAWCp.bceafor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbdpsAAWCp.ind:S(0,4)$XAEBTnbdpsAAWCp.kz:S(0,18)$XAEBTnbdpsAAWCp.sinphi1:S(0,18)$XAEBTnbdpsAAWCp.cosphi1:S(0,18)$XAEBTnbdpsAAWCp.false_easting:S(0,18)$XAEBTnbdpsAAWCp.false_northing:S(0,18)$XAEBTnbdpsAAWCp.lat_truesc:S(0,18)$XAEBTnbdpsAAWCp.lon_center:S(0,18)$XAEBTnbdpsAAWCp.es:S(0,18)$XAEBTnbdpsAAWCp.e:S(0,18)$XAEBTnbdpsAAWCp.r_minor:S(0,18)$XAEBTnbdpsAAWCp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)true_scale:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06bceafor.cBbss.bssDdata.dataDrodata.rodatalogadjust_lon$XBEBTnbdpsAAWCp.bceafor.__func__bceaforoffsetptrue_scalecenlonmerradius2ptitlesincossqrt$XAEBTnbdpsAAWCp.kz$XAEBTnbdpsAAWCp.sinphi1$XAEBTnbdpsAAWCp.cosphi1$XAEBTnbdpsAAWCp.ind$XAEBTnbdpsAAWCp.e$XAEBTnbdpsAAWCp.es$XAEBTnbdpsAAWCp.false_easting$XAEBTnbdpsAAWCp.false_northing$XAEBTnbdpsAAWCp.lat_truesc$XAEBTnbdpsAAWCp.lon_center$XAEBTnbdpsAAWCp.r_minor$XAEBTnbdpsAAWCp.r_major$XBEBTnbdpsAAWCp.bceaforint.__func__bceaforint `.2=#_P|gozXPH@80"(A a} ,x |                 ( , 8 < LT X d h t x                    , 0 L\ ` l p t|                           $ 0 4 H L t x |           ( , T X d h |    4 `+%+ 7F tX  Qm_#9h$p& x(X  bceainv.o/ 1073924702 1032 20 100644 14108 ` ELF44(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   B! $ $ !   !    B! $ $ !   !   !$ ! ! $ $ )!$ ! !   ??>?!   ! B?ąD ;X@X @ B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?! !   !   DD;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'P'X'T'P'L'H'DDH?LP?!   ?!   ?! +!    B!    ;X@XX$ $ !   !   !    B…B;X@XT$ $ ! B!    B!   !    B;X@X??!   ! ! ! #``` BB! ! % BB?! Ѕ B;X@X؅ @нB?! ! `` B! !  BB?! B;X@Xȅ @B?! !  B?! B;X@X @BX$ $ !   !   !    B…B;X@XT$ $ 'Cylinderical Equal Area?>h@@@?@f@(@@7@v@o`@@@@&@bceainvintbceainv d!d+8,8-<@^4 $ =$E g |       1 M c y    bceainv.c/ecs/hdfeos/gctp/src/bceainv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbepsAAWDp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o bceainv.o bceainv.c -W0,-xp\$XAEBTnbepsAAWDp.bceainvint$XBEBTnbepsAAWDp.bceainvint.__func__bceainv$XBEBTnbepsAAWDp.bceainv.__func__$XAEBTnbepsAAWDp.ind$XAEBTnbepsAAWDp.qp$XAEBTnbepsAAWDp.kz$XAEBTnbepsAAWDp.sinphi1$XAEBTnbepsAAWDp.cosphi1$XAEBTnbepsAAWDp.false_easting$XAEBTnbepsAAWDp.false_northing$XAEBTnbepsAAWDp.lat_truesc$XAEBTnbepsAAWDp.lon_center$XAEBTnbepsAAWDp.e_p6$XAEBTnbepsAAWDp.e_p4$XAEBTnbepsAAWDp.es$XAEBTnbepsAAWDp.e$XAEBTnbepsAAWDp.r_minor$XAEBTnbepsAAWDp.r_major d!d+8,8-<@^р=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ i w    d Ҁ ބDAdDBxDCDDDEDFDIDJDK(DLTDMxDODQDRDVDWDZD[D\D``DapDbDcDdDe , Df  0$ c m wT X4 Du4DvPDxlDzD|$D$DD\D\ , Dll (!0@ (!0U(!03(!0T(!0iu(!/(!/(!/(!/v (!0**(!0H(!/d(!0(!/](!/D$$$$,$J$`$t$$$$bbceainv.c/ecs/hdfeos/gctp/src/bceainv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbepsAAWDp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hbceainvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)bceainv.c$XBEBTnbepsAAWDp.bceainvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)bceainv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)beta:(0,18)$XBEBTnbepsAAWDp.bceainv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbepsAAWDp.ind:S(0,4)$XAEBTnbepsAAWDp.qp:S(0,18)$XAEBTnbepsAAWDp.kz:S(0,18)$XAEBTnbepsAAWDp.sinphi1:S(0,18)$XAEBTnbepsAAWDp.cosphi1:S(0,18)$XAEBTnbepsAAWDp.false_easting:S(0,18)$XAEBTnbepsAAWDp.false_northing:S(0,18)$XAEBTnbepsAAWDp.lat_truesc:S(0,18)$XAEBTnbepsAAWDp.lon_center:S(0,18)$XAEBTnbepsAAWDp.e_p6:S(0,18)$XAEBTnbepsAAWDp.e_p4:S(0,18)$XAEBTnbepsAAWDp.es:S(0,18)$XAEBTnbepsAAWDp.e:S(0,18)$XAEBTnbepsAAWDp.r_minor:S(0,18)$XAEBTnbepsAAWDp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)true_scale:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06bceainv.cBbss.bssDdata.dataDrodata.rodataadjust_lonasin$XBEBTnbepsAAWDp.bceainv.__func__bceainvoffsetptrue_scalecenlonmerradius2ptitlesincoslogsqrt$XAEBTnbepsAAWDp.kz$XAEBTnbepsAAWDp.sinphi1$XAEBTnbepsAAWDp.cosphi1$XAEBTnbepsAAWDp.qp$XAEBTnbepsAAWDp.ind$XAEBTnbepsAAWDp.e_p6$XAEBTnbepsAAWDp.e_p4$XAEBTnbepsAAWDp.e$XAEBTnbepsAAWDp.es$XAEBTnbepsAAWDp.false_easting$XAEBTnbepsAAWDp.false_northing$XAEBTnbepsAAWDp.lat_truesc$XAEBTnbepsAAWDp.lon_center$XAEBTnbepsAAWDp.r_minor$XAEBTnbepsAAWDp.r_major$XBEBTnbepsAAWDp.bceainvint.__func__bceainvint x.9>`P|hp{ph`XPH*@@8S0g(  50x" |" ! !       ! ! " "   ( , 8 < LT X d h x |                       $ H L X \ |                $ 0 4 P` d p t x" " ! !                    " "   (" ," 8 < Xx |   " "          ( (     0$ 0( 8, 84 8 P T d @ @ H H P P X X ` ` h h p p  x$ x0T X h" l" x | 4 x% 3+ 48 7 lF @  Q_&h(H@p*P x,  ceafor.o/ 1073924703 1032 20 100644 12424 ` ELF.04(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textX'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   !  !$ !$ !   ;X@X! $ $ !   ;X@X! $ $ !   ?! !   !   DD;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'X'X'T'P'L'H'DDH?LP?!   ;X@X?;X@X?! *!   !    B!    BBT$ $ !   !   ؉ B!    …BX$ $ P! !   ?؅DD½ ?!   ! B ?ȅD…B ;X@Xȅ @ B?!   !   !    B BBT$ $ !   !   Ѝ B!   ! B…BX$ $ 'Cylinderical Equal Area?>h@ceaforintceafor d d)8*8+<@_4 $ 7$> _ t       1 E X q ceafor.c/ecs/hdfeos/gctp/src/ceafor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfpsAAWEp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o ceafor.o ceafor.c -W0,-xp\$XAEBTnbfpsAAWEp.ceaforint$XBEBTnbfpsAAWEp.ceaforint.__func__ceafor$XBEBTnbfpsAAWEp.ceafor.__func__$XAEBTnbfpsAAWEp.ind$XAEBTnbfpsAAWEp.kz$XAEBTnbfpsAAWEp.sinphi1$XAEBTnbfpsAAWEp.cosphi1$XAEBTnbfpsAAWEp.false_easting$XAEBTnbfpsAAWEp.false_northing$XAEBTnbfpsAAWEp.lat_truesc$XAEBTnbfpsAAWEp.lon_center$XAEBTnbfpsAAWEp.es$XAEBTnbfpsAAWEp.e$XAEBTnbfpsAAWEp.r_minor$XAEBTnbfpsAAWEp.r_majore d d)8*8+<@_π;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ f t    d π ۄD=dD>xD?D@DADBDDDEDF(DHT|DJ|DNDQDRDSDW\DXlDYDZD[D\ , D] *$ \ h tT ~X4   Dn4Do\DqpDsDt$Dz$D{D|\D\ , Dll (!/ (!/&(!/G(!/h(!/X(!/8(!/(!/(!/w(!/6(!.W(!.x$$$$$$$+$>$Q$dbceafor.c/ecs/hdfeos/gctp/src/ceafor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfpsAAWEp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hceaforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)ceafor.c$XBEBTnbfpsAAWEp.ceaforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)ceafor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinphi:(0,18)q:(0,18)$XBEBTnbfpsAAWEp.ceafor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbfpsAAWEp.ind:S(0,4)$XAEBTnbfpsAAWEp.kz:S(0,18)$XAEBTnbfpsAAWEp.sinphi1:S(0,18)$XAEBTnbfpsAAWEp.cosphi1:S(0,18)$XAEBTnbfpsAAWEp.false_easting:S(0,18)$XAEBTnbfpsAAWEp.false_northing:S(0,18)$XAEBTnbfpsAAWEp.lat_truesc:S(0,18)$XAEBTnbfpsAAWEp.lon_center:S(0,18)$XAEBTnbfpsAAWEp.es:S(0,18)$XAEBTnbfpsAAWEp.e:S(0,18)$XAEBTnbfpsAAWEp.r_minor:S(0,18)$XAEBTnbfpsAAWEp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)true_scale:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06ceafor.cBbss.bssDdata.dataDrodata.rodatalogadjust_lon$XBEBTnbfpsAAWEp.ceafor.__func__ceaforoffsetptrue_scalecenlonmerradius2ptitlesincossqrt$XAEBTnbfpsAAWEp.kz$XAEBTnbfpsAAWEp.sinphi1$XAEBTnbfpsAAWEp.cosphi1$XAEBTnbfpsAAWEp.ind$XAEBTnbfpsAAWEp.e$XAEBTnbfpsAAWEp.es$XAEBTnbfpsAAWEp.false_easting$XAEBTnbfpsAAWEp.false_northing$XAEBTnbfpsAAWEp.lat_truesc$XAEBTnbfpsAAWEp.lon_center$XAEBTnbfpsAAWEp.r_minor$XAEBTnbfpsAAWEp.r_major$XBEBTnbfpsAAWEp.ceaforint.__func__ceaforint `-1<"]P|dlwXPH@8 0(> ^z ,x |                 ( , 8 < LT X d h t x                    , 0 L\ ` l p t|                           $ 0 4 H L t x |           ( , T X d h |    4 `)%+ 7F lX  Qe_#)h$p& x(X  ceainv.o/ 1073924705 1032 20 100644 14088 ` ELF44(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   B! $ $ !   !    B! $ $ !   !   !$ ! ! $ $ )!$ ! !   ??>?!   ! B?ąD ;X@X @ B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?! !   !   DD;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'P'X'T'P'L'H'DDH?LP?!   ?!   ?! +!    B!    ;X@XX$ $ !   !   !    B…B;X@XT$ $ ! B!    B!   !    B;X@X??!   ! ! ! #``` BB! ! % BB?! Ѕ B;X@X؅ @нB?! ! `` B! !  BB?! B;X@Xȅ @B?! !  B?! B;X@X @BX$ $ !   !   !    B…B;X@XT$ $ 'Cylinderical Equal Area?>h@@@?@f@(@@7@v@o`@@@@&@ceainvintceainv d d)8*8+<@`4 $ 7$> _ t       ) E [ q    ceainv.c/ecs/hdfeos/gctp/src/ceainv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfpsAAWFp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o ceainv.o ceainv.c -W0,-xp\$XAEBTnbfpsAAWFp.ceainvint$XBEBTnbfpsAAWFp.ceainvint.__func__ceainv$XBEBTnbfpsAAWFp.ceainv.__func__$XAEBTnbfpsAAWFp.ind$XAEBTnbfpsAAWFp.qp$XAEBTnbfpsAAWFp.kz$XAEBTnbfpsAAWFp.sinphi1$XAEBTnbfpsAAWFp.cosphi1$XAEBTnbfpsAAWFp.false_easting$XAEBTnbfpsAAWFp.false_northing$XAEBTnbfpsAAWFp.lat_truesc$XAEBTnbfpsAAWFp.lon_center$XAEBTnbfpsAAWFp.e_p6$XAEBTnbfpsAAWFp.e_p4$XAEBTnbfpsAAWFp.es$XAEBTnbfpsAAWFp.e$XAEBTnbfpsAAWFp.r_minor$XAEBTnbfpsAAWFp.r_major d d)8*8+<@`π;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ f t    d π ۄD@dDAxDBDCDDDEDGDHDI(DJTDKxDMDODPDTDUDXDYDZD^`D_pD`DaDbDc , Dd  *$ \ f pT |X4 Ds4DtPDvlDxDz$D~$DD\D\ , Dll (!/ (!/(!02+(!0L(!0m(!/e(!/E(!/)(!/ (!/"(!/@(!/\(!/w(!.(!.$$$ $$$B$X$l$$$$bceainv.c/ecs/hdfeos/gctp/src/ceainv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfpsAAWFp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hceainvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)ceainv.c$XBEBTnbfpsAAWFp.ceainvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)ceainv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)beta:(0,18)$XBEBTnbfpsAAWFp.ceainv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbfpsAAWFp.ind:S(0,4)$XAEBTnbfpsAAWFp.qp:S(0,18)$XAEBTnbfpsAAWFp.kz:S(0,18)$XAEBTnbfpsAAWFp.sinphi1:S(0,18)$XAEBTnbfpsAAWFp.cosphi1:S(0,18)$XAEBTnbfpsAAWFp.false_easting:S(0,18)$XAEBTnbfpsAAWFp.false_northing:S(0,18)$XAEBTnbfpsAAWFp.lat_truesc:S(0,18)$XAEBTnbfpsAAWFp.lon_center:S(0,18)$XAEBTnbfpsAAWFp.e_p6:S(0,18)$XAEBTnbfpsAAWFp.e_p4:S(0,18)$XAEBTnbfpsAAWFp.es:S(0,18)$XAEBTnbfpsAAWFp.e:S(0,18)$XAEBTnbfpsAAWFp.r_minor:S(0,18)$XAEBTnbfpsAAWFp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)true_scale:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06ceainv.cBbss.bssDdata.dataDrodata.rodataadjust_lonasin$XBEBTnbfpsAAWFp.ceainv.__func__ceainvoffsetptrue_scalecenlonmerradius2ptitlesincoslogsqrt$XAEBTnbfpsAAWFp.kz$XAEBTnbfpsAAWFp.sinphi1$XAEBTnbfpsAAWFp.cosphi1$XAEBTnbfpsAAWFp.qp$XAEBTnbfpsAAWFp.ind$XAEBTnbfpsAAWFp.e_p6$XAEBTnbfpsAAWFp.e_p4$XAEBTnbfpsAAWFp.e$XAEBTnbfpsAAWFp.es$XAEBTnbfpsAAWFp.false_easting$XAEBTnbfpsAAWFp.false_northing$XAEBTnbfpsAAWFp.lat_truesc$XAEBTnbfpsAAWFp.lon_center$XAEBTnbfpsAAWFp.r_minor$XAEBTnbfpsAAWFp.r_major$XBEBTnbfpsAAWFp.ceainvint.__func__ceainvint x-8=^P|emxph`XPH'@=8P0d(  10x" |" ! !       ! ! " "   ( , 8 < LT X d h x |                       $ H L X \ |                $ 0 4 P` d p t x" " ! !                    " "   (" ," 8 < Xx |   " "          ( (     0$ 0( 8, 84 8 P T d @ @ H H P P X X ` ` h h p p  x$ x0T X h" l" x | 4 x% 1+ 48 7 lF 8  Q_&h(8;p*tP x,  eqconfor.o/ 1073924706 1032 20 100644 15448 ` ELF:4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ ;XX@@!   ;XX;XX;X@X?!   !   !   !   ;XX;XX;XX#\#`#d#h@? k؅B;X@X!  !  0@@ Q'ؠ;XX@@!   ;XX;XX;X@X?!   !   !   !   ;XX;XX;XX#\#`#d#h@?؅;X@X! …! $ $ ! $ $ ! $ $ !    …B! $ $ !   !   !   !   ;XX;XX;XX#\#`#d#h@! $ $ !   !   !   …B! $ $  4! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X/! @!   !   ;XX;X@X;X@X!   ;X@X;X@X!   !   ;XX;X@X'@'X'T'P'L'H'DDH?LP?!   !   !   !   ;XX;XX;XX#\#`#d#h@?!   !   …B?!   ?!   ;X@Xȅ @?!   ??;X@X @ȅBT$ $ !   !   B??;X@X @X$ $ 'Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONICEQUIDISTANT CONIC?=|׽eqconforinteqconfor d"d-8.8/<@b4$ C$L o        % 9 M a u   eqconfor.c/ecs/hdfeos/gctp/src/eqconfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbhpsAAWGp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o eqconfor.o eqconfor.c -W0,-xp\$XAEBTnbhpsAAWGp.eqconforint$XBEBTnbhpsAAWGp.eqconforint.__func__eqconfor$XBEBTnbhpsAAWGp.eqconfor.__func__$XAEBTnbhpsAAWGp.rh$XAEBTnbhpsAAWGp.g$XAEBTnbhpsAAWGp.ns$XAEBTnbhpsAAWGp.false_easting$XAEBTnbhpsAAWGp.false_northing$XAEBTnbhpsAAWGp.ml0$XAEBTnbhpsAAWGp.es$XAEBTnbhpsAAWGp.e$XAEBTnbhpsAAWGp.e3$XAEBTnbhpsAAWGp.e2$XAEBTnbhpsAAWGp.e1$XAEBTnbhpsAAWGp.e0$XAEBTnbhpsAAWGp.lon_center$XAEBTnbhpsAAWGp.r_minor$XAEBTnbhpsAAWGp.r_majorP d"d-8.8/<@bӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$      ɠ ܠ  |   ) 7 B M X cD=|D>D?D@DADCDDDE,DFXDGDHDIDKDL(DM`DQDSDUDV0<DX<DY\DZD[ D\<D^pDaDbDcDdTDiDkDlDmDn Do(Dp8ltDttDuDvDwDxDy(D|( n, D}88 $  T X4!.D4DDD DhD9, D~(!0(!0(!0|(!/(!/ (!0=(!/Y(!/t(!0"(!0(!/(!/(!/d(!/K)(!/2J$a$$$$$$$$/$H$g$$$$$$$)$<$Obeqconfor.c/ecs/hdfeos/gctp/src/eqconfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbhpsAAWGp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.heqconforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)mode:p(0,4)temp:(0,18)sinphi:(0,18)cosphi:(0,18)ms1:(0,18)ms2:(0,18)ml1:(0,18)ml2:(0,18)eqconfor.c$XBEBTnbhpsAAWGp.eqconforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)eqconfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)ml:(0,18)theta:(0,18)rh1:(0,18)$XBEBTnbhpsAAWGp.eqconfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbhpsAAWGp.rh:S(0,18)$XAEBTnbhpsAAWGp.g:S(0,18)$XAEBTnbhpsAAWGp.ns:S(0,18)$XAEBTnbhpsAAWGp.false_easting:S(0,18)$XAEBTnbhpsAAWGp.false_northing:S(0,18)$XAEBTnbhpsAAWGp.ml0:S(0,18)$XAEBTnbhpsAAWGp.es:S(0,18)$XAEBTnbhpsAAWGp.e:S(0,18)$XAEBTnbhpsAAWGp.e3:S(0,18)$XAEBTnbhpsAAWGp.e2:S(0,18)$XAEBTnbhpsAAWGp.e1:S(0,18)$XAEBTnbhpsAAWGp.e0:S(0,18)$XAEBTnbhpsAAWGp.lon_center:S(0,18)$XAEBTnbhpsAAWGp.r_minor:S(0,18)$XAEBTnbhpsAAWGp.r_major:S(0,18)stparl1:P(0,20);(0,18)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06eqconfor.cBbss.bssDdata.dataDrodata.rodatacossinadjust_lon$XBEBTnbhpsAAWGp.eqconfor.__func__eqconforstparl1offsetporigincenlonmerstanparlradius2ptitlep_errorfabsmlfnmsfnztsincose3fne2fne1fne0fnsqrt$XAEBTnbhpsAAWGp.rh$XAEBTnbhpsAAWGp.ml0$XAEBTnbhpsAAWGp.g$XAEBTnbhpsAAWGp.ns$XAEBTnbhpsAAWGp.e3$XAEBTnbhpsAAWGp.e2$XAEBTnbhpsAAWGp.e1$XAEBTnbhpsAAWGp.e0$XAEBTnbhpsAAWGp.e$XAEBTnbhpsAAWGp.es$XAEBTnbhpsAAWGp.false_easting$XAEBTnbhpsAAWGp.false_northing$XAEBTnbhpsAAWGp.lon_center$XAEBTnbhpsAAWGp.r_minor$XAEBTnbhpsAAWGp.r_major$XBEBTnbhpsAAWGp.eqconforint.__func__eqconforint x /37B ehnv~ph `X0PDHX@l80( 4 ZH+ + * * ) ) ( ( ' ' * * + +   ,& 0& <& @& PX% \% h& l& |$ $ & & # # & & " " & & !  ! 08% <% dp$ t$ # # " " ! !   ( , 8dl% p% $ $ # # " " ! ! ,4 8 h l         $ $ # # " " ! ! LT X d+ h+ t x      < <+ + * * )  ) 0@H' L' X( \( t  P P+ + * *  ) ) ' ' ( ( 0 $ $ # # " " ! ! + + $ ( D H \) `) t ' ' ( (   4  P x b p%% + 8 7 F D  QP_+(h,fp/4 x2  eqconinv.o/ 1073924707 1032 20 100644 16096 ` ELF<4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ ;XX@@!   ;XX;XX;X@X?!   !   !   !   ;XX;XX;XX#\#`#d#h@? k؅B;X@X!  !  0@@ Q'ؠ;XX@@!   ;XX;XX;X@X?!   !   !   !   ;XX;XX;XX#\#`#d#h@?؅;X@X! …! $ $ ! $ $ ! $ $ !    …B! $ $ !   !   !   !   ;XX;XX;XX#\#`#d#h@! $ $ !   !   !   …B! $ $  4! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X/! @!   !   ;XX;X@X;X@X!   ;X@X;X@X!   !   ;XX;X@X'P'X'T'P'L'H'DDH?LP?'!   ?!   艡!   B?!   ! B腠BB;X@X?! ?B腠BB;X@X!?! ?! ?! B  B腡 B;XX;X@X?!   !    …?!   !   !   !   ;XX;XX;XX#\#`#d#h@#lX$ $ !   !    …B;X@XT$ $ Ā ''Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONICEQUIDISTANT CONIC?=|׽eqconinvinteqconinv d"d-8.8/<@c4$ C$L o        % 9 M a u   eqconinv.c/ecs/hdfeos/gctp/src/eqconinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbipsAAWHp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o eqconinv.o eqconinv.c -W0,-xp\$XAEBTnbipsAAWHp.eqconinvint$XBEBTnbipsAAWHp.eqconinvint.__func__eqconinv$XBEBTnbipsAAWHp.eqconinv.__func__$XAEBTnbipsAAWHp.rh$XAEBTnbipsAAWHp.g$XAEBTnbipsAAWHp.ns$XAEBTnbipsAAWHp.false_easting$XAEBTnbipsAAWHp.false_northing$XAEBTnbipsAAWHp.ml0$XAEBTnbipsAAWHp.es$XAEBTnbipsAAWHp.e$XAEBTnbipsAAWHp.e3$XAEBTnbipsAAWHp.e2$XAEBTnbipsAAWHp.e1$XAEBTnbipsAAWHp.e0$XAEBTnbipsAAWHp.lon_center$XAEBTnbipsAAWHp.r_minor$XAEBTnbipsAAWHp.r_major d"d-8.8/<@cӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$      ɠ ܠ  |   ) 7 B M X cD=|D>D?D@DADCDDDE,DFXDGDHDIDKDL(DM`DQDSDUDV0<DX<DY\DZD[ D\<D^pDaDbDcDdTDiDkDlDmDn Do(Dp8ltDttDuDvDwDxDy(D|( n, D}88 $   T X4",7DD4D8DTDDDDDDD(DDDpDD$DhDxDO, D(!0(!0(!0|(!/(!/6(!0S(!/o(!/(!0"(!0(!/(!/(!/d(!/K?(!/2`$w$$$$$$6$P$n$$$$$$"$8$V$j$~$beqconinv.c/ecs/hdfeos/gctp/src/eqconinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbipsAAWHp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.heqconinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)mode:p(0,4)temp:(0,18)sinphi:(0,18)cosphi:(0,18)ms1:(0,18)ms2:(0,18)ml1:(0,18)ml2:(0,18)eqconinv.c$XBEBTnbipsAAWHp.eqconinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)eqconinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh1:(0,18)ml:(0,18)con:(0,18)theta:(0,18)flag:(0,4)$XBEBTnbipsAAWHp.eqconinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbipsAAWHp.rh:S(0,18)$XAEBTnbipsAAWHp.g:S(0,18)$XAEBTnbipsAAWHp.ns:S(0,18)$XAEBTnbipsAAWHp.false_easting:S(0,18)$XAEBTnbipsAAWHp.false_northing:S(0,18)$XAEBTnbipsAAWHp.ml0:S(0,18)$XAEBTnbipsAAWHp.es:S(0,18)$XAEBTnbipsAAWHp.e:S(0,18)$XAEBTnbipsAAWHp.e3:S(0,18)$XAEBTnbipsAAWHp.e2:S(0,18)$XAEBTnbipsAAWHp.e1:S(0,18)$XAEBTnbipsAAWHp.e0:S(0,18)$XAEBTnbipsAAWHp.lon_center:S(0,18)$XAEBTnbipsAAWHp.r_minor:S(0,18)$XAEBTnbipsAAWHp.r_major:S(0,18)stparl1:P(0,20);(0,18)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)phi3z:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06eqconinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonphi3zatan2$XBEBTnbipsAAWHp.eqconinv.__func__eqconinvstparl1offsetporigincenlonmerstanparlradius2ptitlep_errorfabsmlfnmsfnztsincose3fne2fne1fne0fnsqrt$XAEBTnbipsAAWHp.rh$XAEBTnbipsAAWHp.ml0$XAEBTnbipsAAWHp.g$XAEBTnbipsAAWHp.ns$XAEBTnbipsAAWHp.e3$XAEBTnbipsAAWHp.e2$XAEBTnbipsAAWHp.e1$XAEBTnbipsAAWHp.e0$XAEBTnbipsAAWHp.e$XAEBTnbipsAAWHp.es$XAEBTnbipsAAWHp.false_easting$XAEBTnbipsAAWHp.false_northing$XAEBTnbipsAAWHp.lon_center$XAEBTnbipsAAWHp.r_minor$XAEBTnbipsAAWHp.r_major$XBEBTnbipsAAWHp.eqconinvint.__func__eqconinvint x /:@F, ihrzph ` X4PHH\@p80( 8 ^H+ + * * ) ) ( ( ' ' * * + +   ,& 0& <& @& PX% \% h& l& |$ $ & & # # & & " " & & !  ! 08% <% dp$ t$ # # " " ! !   ( , 8dl% p% $ $ # # " " ! ! ,4 8 h l         $ $ # # " " ! ! LT X d+ h+ t x      < <+ + * * )  ) 0@H' L' X( \( t  P P+ + * *  ) ) ' ' ( ( 0 ' '   ( (     ,8 < dx |        + + $ $ # # ," 0" <! @! x ) ) 4   x b 05% e+ h8 7 Fd   Qt_-h.jp1  x4  equifor.o/ 1073924708 1032 20 100644 9368 ` ELF"@4(.shstrtab.text.bss.data1.data.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'p'X'T'P'L'H'DDH?LP?!   ;X@X?!   ?!   ཡ B?!   ;X@X؅ @ЅBT$ $ !   !   腡 BBX$ $ 'EQUIRECTANGULARequiforintequifor d!d+8,8-<@c4 $ =$E g     equifor.c/ecs/hdfeos/gctp/src/equifor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbjpsAAWIp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o equifor.o equifor.c -W0,-xp\$XAEBTnbjpsAAWIp.equiforint$XBEBTnbjpsAAWIp.equiforint.__func__equifor$XBEBTnbjpsAAWIp.equifor.__func__$XAEBTnbjpsAAWIp.false_easting$XAEBTnbjpsAAWIp.false_northing$XAEBTnbjpsAAWIp.lat_origin$XAEBTnbjpsAAWIp.lon_center$XAEBTnbjpsAAWIp.r_major d!d+8,8-<@cр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D.XD/lD0D1D2D6D7D8D9D: D;T , D<dd $ < H TT ^X4 hDK4DL\DMDN t, DO  (!/ (!/g(!/K+(!//O(!/p$$$$$$$bequifor.c/ecs/hdfeos/gctp/src/equifor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbjpsAAWIp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hequiforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)lat1:p(0,18)false_east:p(0,18)false_north:p(0,18)equifor.c$XBEBTnbjpsAAWIp.equiforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)equifor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)$XBEBTnbjpsAAWIp.equifor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbjpsAAWIp.false_easting:S(0,18)$XAEBTnbjpsAAWIp.false_northing:S(0,18)$XAEBTnbjpsAAWIp.lat_origin:S(0,18)$XAEBTnbjpsAAWIp.lon_center:S(0,18)$XAEBTnbjpsAAWIp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06equifor.cBbss.bssDdata.dataDrodata.rodatacosadjust_lon$XBEBTnbjpsAAWIp.equifor.__func__equiforoffsetporigincenlonmerradiusptitle$XAEBTnbjpsAAWIp.false_easting$XAEBTnbjpsAAWIp.false_northing$XAEBTnbjpsAAWIp.lat_origin$XAEBTnbjpsAAWIp.lon_center$XAEBTnbjpsAAWIp.r_major$XBEBTnbjpsAAWIp.equiforint.__func__equiforint (.2= _gov  Ctl p                  ( 0 4 @ D \        $ ( 8\ ` l p 4 p(p#+ 7TFL  Q _hNp` x T  equiinv.o/ 1073924711 1032 20 100644 9808 ` ELF#4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'p'X'T'P'L'H'DDH?LP?!   ?!   ?!    X$ $ X  ;X@X! ! B  !  @@ %'!   ??!   ?!   ;X@X @؅ ЅB;X@XT$ $ 'EQUIRECTANGULARInput data errorequi-inv@ !TD-?equiinvintequiinv d!d+8,8-<@g4 $ =$E g     equiinv.c/ecs/hdfeos/gctp/src/equiinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbnpsAA2Jp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o equiinv.o equiinv.c -W0,-xp\$XAEBTnbnpsAA2Jp.equiinvint$XBEBTnbnpsAA2Jp.equiinvint.__func__equiinv$XBEBTnbnpsAA2Jp.equiinv.__func__$XAEBTnbnpsAA2Jp.false_easting$XAEBTnbnpsAA2Jp.false_northing$XAEBTnbnpsAA2Jp.lat_origin$XAEBTnbnpsAA2Jp.lon_center$XAEBTnbnpsAA2Jp.r_major= d!d+8,8-<@gр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D.XD/lD0D1D2D6D7D8D9D: D;T , D<dd $ < F PT \X4DJ4DKPDLlDMDODPDRDSl h, DT|| (!/ (!/g (!/K(!//C(!/d$~$$$$$$$)$Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b l   X D4XD5lD6D7D8D<D=D>D?D@DAD , DBTT $ ? K WT aX4 k w    DV4DW\DX|DYDZD\D]D_D`$DbDd , De (!/k!(!/LH(!/i(!/(!/(!/0$$$$-$C$h$~$$$bgnomfor.c/ecs/hdfeos/gctp/src/gnomfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbnpsAA2Kp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgnomforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)gnomfor.c$XBEBTnbnpsAA2Kp.gnomforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)gnomfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinphi:(0,18)cosphi:(0,18)coslon:(0,18)g:(0,18)ksp:(0,18)$XBEBTnbnpsAA2Kp.gnomfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbnpsAA2Kp.false_northing:S(0,18)$XAEBTnbnpsAA2Kp.false_easting:S(0,18)$XAEBTnbnpsAA2Kp.cos_p13:S(0,18)$XAEBTnbnpsAA2Kp.sin_p13:S(0,18)$XAEBTnbnpsAA2Kp.R:S(0,18)$XAEBTnbnpsAA2Kp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gnomfor.cBbss.bssDdata.dataDrodata.rodatasinp_errorcosadjust_lon$XBEBTnbnpsAA2Kp.gnomfor.__func__gnomforoffsetpcenlatcenlonradiusptitletsincos$XAEBTnbnpsAA2Kp.cos_p13$XAEBTnbnpsAA2Kp.sin_p13$XAEBTnbnpsAA2Kp.false_northing$XAEBTnbnpsAA2Kp.false_easting$XAEBTnbnpsAA2Kp.lon_center$XAEBTnbnpsAA2Kp.R$XBEBTnbnpsAA2Kp.gnomforint.__func__gnomforint 0.2:>Ik s{( ,? ddl p               $ 0 4 L       0 4 \ ` t x           $ 8 < P T 4 `0`9#%+ 7Ft  Q _h uop! x#|  gnominv.o/ 1073924713 1032 20 100644 11672 ` ELF+@4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @;X@X;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?!    ;X@X?ؠТ;XX@@!   T$ $ ;X@X!  !   X$ $ '!    BЉ B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ b'!   ?;XX;X@X;X@XT$ $ K'?!   ?X  ;X@X @?;X@X! ;X@X! #'!   ?Љ B!    B B;XX;X@X@;X@XT$ $ 'GNOMONIC=|׽@ !TD-?gnominvintgnominv# d!d+8,8-<@h4 $ =$E g       gnominv.c/ecs/hdfeos/gctp/src/gnominv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbopsAA2Lp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o gnominv.o gnominv.c -W0,-xp\$XAEBTnbopsAA2Lp.gnominvint$XBEBTnbopsAA2Lp.gnominvint.__func__gnominv$XBEBTnbopsAA2Lp.gnominv.__func__$XAEBTnbopsAA2Lp.false_northing$XAEBTnbopsAA2Lp.false_easting$XAEBTnbopsAA2Lp.cos_p13$XAEBTnbopsAA2Lp.sin_p13$XAEBTnbopsAA2Lp.R$XAEBTnbopsAA2Lp.lat_center$XAEBTnbopsAA2Lp.lon_center d!d+8,8-<@hр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b l   X D5XD6lD7D8D9D:D>D?D@DADB$DCX , DDhh $ ? I ST _X4 k u ~  DV4DWPDXlDYDZD[D]D_D`8@Db@DcDdDf$Dh$DixDmDnDqDr$DstDt|Dw , Dx (!/ (!/s4(!/U(!/v(!/((!/W(!/;$$$&$<$R$h$$$$$$$bgnominv.c/ecs/hdfeos/gctp/src/gnominv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbopsAA2Lp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgnominvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)gnominv.c$XBEBTnbopsAA2Lp.gnominvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)gnominv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)con:(0,18)$XBEBTnbopsAA2Lp.gnominv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbopsAA2Lp.false_northing:S(0,18)$XAEBTnbopsAA2Lp.false_easting:S(0,18)$XAEBTnbopsAA2Lp.cos_p13:S(0,18)$XAEBTnbopsAA2Lp.sin_p13:S(0,18)$XAEBTnbopsAA2Lp.R:S(0,18)$XAEBTnbopsAA2Lp.lat_center:S(0,18)$XAEBTnbopsAA2Lp.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gnominv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonasinzfabsatansqrt$XBEBTnbopsAA2Lp.gnominv.__func__gnominvoffsetpcenlatcenlonradiusptitletsincos$XAEBTnbopsAA2Lp.cos_p13$XAEBTnbopsAA2Lp.sin_p13$XAEBTnbopsAA2Lp.false_northing$XAEBTnbopsAA2Lp.false_easting$XAEBTnbopsAA2Lp.lat_center$XAEBTnbopsAA2Lp.lon_center$XAEBTnbopsAA2Lp.R$XBEBTnbopsAA2Lp.gnominvint.__func__gnominvint 8 .28CINSX+z0( ;Wj xl p                ,4 8 D H `     , 0 D hp t           4 8 H P T X \ t |           DX |          4 8 `t 4 `8` p3%+ 7|#F p  Q_"h#p%` x'P  goodfor.o/ 1073924714 1032 20 100644 13812 ` ELF34(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿐'H'DDH?! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4! ! $ 8$ Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ F PD-D1,D2DD3\D4tD5D6D7D8D9D:D;D<4D@LDAxDBDCDDDE(DFTDGDHDIDJDK0DO\DPlDQ| Z, DR $ ՠ  T X4    2 B JDe4PDgPDht|DjDlDmDoDqDrDsDDtlt|Dx|DyDzD{D~\D\DD$D$DXD`DDDDD$4D4DLXDXDdlDlDDDDHD W, D (`!/% (`!/ (!.!$4$N$d$z$$$$bgoodfor.c/ecs/hdfeos/gctp/src/goodfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbppsAA2Mp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgoodforint:F(0,3);(0,18)r:p(0,18)goodfor.c$XBEBTnbppsAA2Mp.goodforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)goodfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)theta:(0,18)delta_theta:(0,18)constant:(0,18)i:(0,4)region:(0,4)$XBEBTnbppsAA2Mp.goodfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbppsAA2Mp.feast:S(0,26)=ar(0,4);0;11;(0,18)$XAEBTnbppsAA2Mp.lon_center:S(0,27)=ar(0,4);0;11;(0,18)$XAEBTnbppsAA2Mp.R:S(0,18)sign:P(0,3);(0,18)adjust_lon:P(0,18);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06goodfor.cBbss.bssDdata.dataDrodata.rodatasignp_errorfabssincosadjust_lon$XBEBTnbppsAA2Mp.goodfor.__func__goodforradiusptitle$XAEBTnbppsAA2Mp.feast$XAEBTnbppsAA2Mp.lon_center$XAEBTnbppsAA2Mp.R$XBEBTnbppsAA2Mp.goodforint.__func__goodforint .3;@DHSu}h`` , 0 < @ D H T X \ ` l p t x                          ( (   , 0 4 8 D (H (L P \ ` l p x |                         ( , 8 < H L T X d h t x                  ( (    $ ( 0 4 @ D P (T (\ ` l p t 0 0 8 8H @L @d 8h 8 H H   P P X  X@ D h Pl P X X( , D X \ p t       ( 0 `4 `P t hx h   p p  0 x4 x@ `D `H xL x` p pt p @ @          $  , 0 D X \ 4   X XN % S+ T 7 F  Q`_&3h'p(` x*< `  goodinv.o/ 1073924715 1032 20 100644 17120 ` ELF@4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿐'H'DDH?! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4! ! $ 8$ Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ F PD,D0,D1DD2\D3tD4D5D6D7D8D9D:D;4D?LD@xDADBDCDD(DETDFDGDHDIDJ0DN\DOlDP| Z, DQ $ ՠ ߠ T X4    %Db4dDddDeDgDiDj DlDDnDDoDpDqDuDvDDwDxDzD|LD~LDpDDDD,D,DDDD`DDD$DdDDDDDDDDxDDDD XD dD D D 0D <D D D D D lD xD D D @D LD D 2, D  v(`!/% (`!/ (!. $$)$?$U$s$$$$bgoodinv.c/ecs/hdfeos/gctp/src/goodinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbqpsAA2Np.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgoodinvint:F(0,3);(0,18)r:p(0,18)goodinv.c$XBEBTnbqpsAA2Np.goodinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)goodinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)arg:(0,18)theta:(0,18)temp:(0,18)region:(0,4)$XBEBTnbqpsAA2Np.goodinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbqpsAA2Np.feast:S(0,26)=ar(0,4);0;11;(0,18)$XAEBTnbqpsAA2Np.lon_center:S(0,27)=ar(0,4);0;11;(0,18)$XAEBTnbqpsAA2Np.R:S(0,18)sign:P(0,3);(0,18)adjust_lon:P(0,18);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06goodinv.cBbss.bssDdata.dataDrodata.rodatasinasinsignadjust_loncosp_errorfabs$XBEBTnbqpsAA2Np.goodinv.__func__goodinvradiusptitle$XAEBTnbqpsAA2Np.feast$XAEBTnbqpsAA2Np.lon_center$XAEBTnbqpsAA2Np.R$XBEBTnbqpsAA2Np.goodinvint.__func__goodinvint .27<GKSXz h`` , 0 < @ D H T X \ ` l p t x                          ( (   , 0 4 8 D (H (L P \ ` l p x |                         ( , 8 < H L T X d h t x                  ( (    $ ( 0 4 @ D P (T (\ ` l p t   0  0( , 8 8< 8p @t @   8 8   H H     D H T PX P   X X        P PD H T XX X    @ H `L `P hT hl p |   ` ` h h  p p    8 d      x x    (  0 4 \ p t       `  `  p  p ( , < L ` P ` d  l p   @  @  `  `  p  p  @  @  `  ` , p 0 p x ` | `  p  p  8  8  `  `  p  p  8 $ 8 ` 8 d 8  `  `  p  p  8  8  `  `  p  p @ ` D ` H p L p t x    P  P ` `  p$ pL P    P P P P X XT XX Xx `| ` p p P P X X( X, XL `P `T pX p4 XXB%S+T 7F  Qt_.6h/p0p x2T4  gvnspfor.o/ 1073924716 1032 20 100644 10948 ` ELF(l4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.texth'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! !    …B! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @;X@X! ;XX@;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ;X@X?آ;XX@@;X@X?!   ؍ B!   Љ Bȅ BB?! !     !  @@ H'!   ! B…?!   ?!    Bн B?;X@X @BT$ $ !   !    B!   ؍ B!   Љ Bȅ B… BBX$ $ 'GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for?gvnspforintgvnspfor" d"d-8.8/<@k4$ C$L o       gvnspfor.c/ecs/hdfeos/gctp/src/gvnspfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbrpsAA2Op./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o gvnspfor.o gvnspfor.c -W0,-xp\$XAEBTnbrpsAA2Op.gvnspforint$XBEBTnbrpsAA2Op.gvnspforint.__func__gvnspfor$XBEBTnbrpsAA2Op.gvnspfor.__func__$XAEBTnbrpsAA2Op.false_northing$XAEBTnbrpsAA2Op.false_easting$XAEBTnbrpsAA2Op.cos_p15$XAEBTnbrpsAA2Op.sin_p15$XAEBTnbrpsAA2Op.p$XAEBTnbrpsAA2Op.R$XAEBTnbrpsAA2Op.lon_center d"d-8.8/<@kӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ l v    d ΄D8dD9xD:D;D<D=DADB DC0DDLDE\DFlDG , DH "$ V b nT xX4      D\4D]\D^|D_D`DbDc$De$DfPDgDi, , Dj<<(!/9(!/b`(!/(!/(!/3(!/ (!/F$$3$Q$g$}$$$$$$bgvnspfor.c/ecs/hdfeos/gctp/src/gvnspfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbrpsAA2Op.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgvnspforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)h:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)gvnspfor.c$XBEBTnbrpsAA2Op.gvnspforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)gvnspfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinphi:(0,18)cosphi:(0,18)coslon:(0,18)g:(0,18)ksp:(0,18)$XBEBTnbrpsAA2Op.gvnspfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbrpsAA2Op.false_northing:S(0,18)$XAEBTnbrpsAA2Op.false_easting:S(0,18)$XAEBTnbrpsAA2Op.cos_p15:S(0,18)$XAEBTnbrpsAA2Op.sin_p15:S(0,18)$XAEBTnbrpsAA2Op.p:S(0,18)$XAEBTnbrpsAA2Op.R:S(0,18)$XAEBTnbrpsAA2Op.lon_center:S(0,18)genrpt:P(0,20);(0,18);(10,3)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gvnspfor.cBbss.bssDdata.dataDrodata.rodatasinp_errorcosadjust_lon$XBEBTnbrpsAA2Op.gvnspfor.__func__gvnspforoffsetpcenlatcenlongenrptradiusptitletsincos$XAEBTnbrpsAA2Op.cos_p15$XAEBTnbrpsAA2Op.sin_p15$XAEBTnbrpsAA2Op.false_northing$XAEBTnbrpsAA2Op.false_easting$XAEBTnbrpsAA2Op.lon_center$XAEBTnbrpsAA2Op.p$XAEBTnbrpsAA2Op.R$XBEBTnbrpsAA2Op.gvnspforint.__func__gvnspforint 8 /3;?J mLv~0( 6I\ x |                   $ (8D (H (Tdt|       0 Td p t        T T    0 4 D H p        4 08zh%%+ 7h"F  Q<_ Oh!p# x%T  gvnspinv.o/ 1073924718 1032 20 100644 12876 ` ELF/4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.texth'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! !    …B! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @;X@X! ;XX@;X@X;X@X!   !   ;XX;X@X'8'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?!    ?!   ! B?!   ! B??ȅ ;X@X !  @@ '!   ?! ؉Bȉ BЅ …;X@X؍ą …B ?;X@X?;XX@@!   T$ $ ;X@X!  !   X$ $ '!    B B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ b'!   ?;XX;X@X;X@XT$ $ K'?!   ?X  ;X@X @?;X@X! ;X@X! #'!   ? B!    B B;XX;X@X@;X@XT$ $ 'GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-for?=|׽@ !TD-?gvnspinvintgvnspinv> d"d-8.8/<@m4$ C$L o       " gvnspinv.c/ecs/hdfeos/gctp/src/gvnspinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbtpsAA2Pp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o gvnspinv.o gvnspinv.c -W0,-xp\$XAEBTnbtpsAA2Pp.gvnspinvint$XBEBTnbtpsAA2Pp.gvnspinvint.__func__gvnspinv$XBEBTnbtpsAA2Pp.gvnspinv.__func__$XAEBTnbtpsAA2Pp.false_northing$XAEBTnbtpsAA2Pp.false_easting$XAEBTnbtpsAA2Pp.cos_p15$XAEBTnbtpsAA2Pp.sin_p15$XAEBTnbtpsAA2Pp.p$XAEBTnbtpsAA2Pp.R$XAEBTnbtpsAA2Pp.lat_center$XAEBTnbtpsAA2Pp.lon_center} d"d-8.8/<@mӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ l v    d ΄D7dD8xD9D:D;D<D=DA$DB4DCDDD`DEpDFDG , DH "$ V ` jT vX4       D]4D^PD_lD`DaDbDc De Df8DDhDDiDjDkDl$Dn$Do@HDqHDrDsDu,Dw,DxD|D}DD,D|DD , D(!/9(!/`(!/(!/(!/>(!/+(!/m(!/Q $=$R$l$$$$$$$%$9$M$`$|bgvnspinv.c/ecs/hdfeos/gctp/src/gvnspinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbtpsAA2Pp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgvnspinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)h:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)gvnspinv.c$XBEBTnbtpsAA2Pp.gvnspinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)gvnspinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)r:(0,18)con:(0,18)com:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)$XBEBTnbtpsAA2Pp.gvnspinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbtpsAA2Pp.false_northing:S(0,18)$XAEBTnbtpsAA2Pp.false_easting:S(0,18)$XAEBTnbtpsAA2Pp.cos_p15:S(0,18)$XAEBTnbtpsAA2Pp.sin_p15:S(0,18)$XAEBTnbtpsAA2Pp.p:S(0,18)$XAEBTnbtpsAA2Pp.R:S(0,18)$XAEBTnbtpsAA2Pp.lat_center:S(0,18)$XAEBTnbtpsAA2Pp.lon_center:S(0,18)genrpt:P(0,20);(0,18);(10,3)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gvnspinv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonfabsasinzp_errorsqrt$XBEBTnbtpsAA2Pp.gvnspinv.__func__gvnspinvoffsetpcenlatcenlongenrptradiusptitletsincos$XAEBTnbtpsAA2Pp.cos_p15$XAEBTnbtpsAA2Pp.sin_p15$XAEBTnbtpsAA2Pp.false_northing$XAEBTnbtpsAA2Pp.false_easting$XAEBTnbtpsAA2Pp.lat_center$XAEBTnbtpsAA2Pp.lon_center$XAEBTnbtpsAA2Pp.p$XAEBTnbtpsAA2Pp.R$XBEBTnbtpsAA2Pp.gvnspinvint.__func__gvnspinvint @ 0/39DIOW\< 80( ,Hdw0 x |                   ,4 8 <LX (\ (hx    0 4 L P |             X X( < @ P T x          D H d h                ( ($ ( Pd      , 4 8 T \ ` |     4 @v@E%+ 7 l>F 0  Q}_%Yh&p( x*(  hamfor.o/ 1073924719 1032 20 100644 9340 ` ELF"$4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ;X@X?!   ! B?! ?;X@X! ?! ;X@XЅ @ȅB;X@X ?!   ?! B?;X@X @? ;X@XЅ @BT$ $ !   ??;X@X @BX$ $ 'HAMMER?fe>?@hamforinthamfor d d)8*8+<@n4 $ 7$> _    hamfor.c/ecs/hdfeos/gctp/src/hamfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbupsAA2Qp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o hamfor.o hamfor.c -W0,-xp\$XAEBTnbupsAA2Qp.hamforint$XBEBTnbupsAA2Qp.hamforint.__func__hamfor$XBEBTnbupsAA2Qp.hamfor.__func__$XAEBTnbupsAA2Qp.false_northing$XAEBTnbupsAA2Qp.false_easting$XAEBTnbupsAA2Qp.R$XAEBTnbupsAA2Qp.lon_center d d)8*8+<@nπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D2LD3`D4tD5D9D:D;D<D= , D> $  * 6T @X4 J VDN4DP\DQDR`DT a, DU (!. (!. (!.(!.2$L$j$$$$$$bhamfor.c/ecs/hdfeos/gctp/src/hamfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbupsAA2Qp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hhamforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)hamfor.c$XBEBTnbupsAA2Qp.hamforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)hamfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)fac:(0,18)$XBEBTnbupsAA2Qp.hamfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbupsAA2Qp.false_northing:S(0,18)$XAEBTnbupsAA2Qp.false_easting:S(0,18)$XAEBTnbupsAA2Qp.R:S(0,18)$XAEBTnbupsAA2Qp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06hamfor.cBbss.bssDdata.dataDrodata.rodatasincossqrtadjust_lon$XBEBTnbupsAA2Qp.hamfor.__func__hamforoffsetpcenlonradiusptitle$XAEBTnbupsAA2Qp.false_northing$XAEBTnbupsAA2Qp.false_easting$XAEBTnbupsAA2Qp.lon_center$XAEBTnbupsAA2Qp.R$XBEBTnbupsAA2Qp.hamforint.__func__hamforint -15:E"f@mu|  ` d t x            x |           ( , @ D Xp |  4  )%+ 7Fx  Q _h&pp x ,  haminv.o/ 1073924720 1032 20 100644 9340 ` ELF"$4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'x'X'T'P'L'H'DDH?LP?!   ?!   ?!   ! F BBƉ腠B;X@X! ?!   ?B!   #` BDF! ‰腠B;XX;X@X` B؅B;X@XT$ $  B!   ą;X@XX$ $ 'HAMMER@@haminvinthaminv d d)8*8+<@o4 $ 7$> _    haminv.c/ecs/hdfeos/gctp/src/haminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbvpsAA2Rp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o haminv.o haminv.c -W0,-xp\$XAEBTnbvpsAA2Rp.haminvint$XBEBTnbvpsAA2Rp.haminvint.__func__haminv$XBEBTnbvpsAA2Rp.haminv.__func__$XAEBTnbvpsAA2Rp.false_northing$XAEBTnbvpsAA2Rp.false_easting$XAEBTnbvpsAA2Rp.R$XAEBTnbvpsAA2Rp.lon_center d d)8*8+<@oπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D2LD3`D4tD5D9D:D;D<D= , D> $  ( 2T >X4 JDM4DNPDOlDQDR`DS U, DT (!. (!. (!.(!.&$;$U$s$$$$$bhaminv.c/ecs/hdfeos/gctp/src/haminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbvpsAA2Rp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hhaminvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)haminv.c$XBEBTnbvpsAA2Rp.haminvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)haminv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)fac:(0,18)$XBEBTnbvpsAA2Rp.haminv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbvpsAA2Rp.false_northing:S(0,18)$XAEBTnbvpsAA2Rp.false_easting:S(0,18)$XAEBTnbvpsAA2Rp.R:S(0,18)$XAEBTnbvpsAA2Rp.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06haminv.cBbss.bssDdata.dataDrodata.rodataasinzatan2adjust_lonsqrt$XBEBTnbvpsAA2Rp.haminv.__func__haminvoffsetpcenlonradiusptitle$XAEBTnbvpsAA2Rp.false_northing$XAEBTnbvpsAA2Rp.false_easting$XAEBTnbvpsAA2Rp.lon_center$XAEBTnbvpsAA2Rp.R$XBEBTnbvpsAA2Rp.haminvint.__func__haminvint -39DIj@qy   ` d t x            x |            $ ( 4 8 H L px    4  !%+ 7Fh  Q _h*pp x   imolwfor.o/ 1073924721 1032 20 100644 11972 ` ELF,l4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿐'H'DDH?! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,!   ! B! $ $ !   ! B! $ $ !   ! B! $ $ !   ! B! $ $ !   ! B! $ $ $!   ! B! $ ($ ,! @;X@X'8'X'T'P'L'H'DDH?LP?! ;!  ! )'!  ! ! B! ! B !  ' ':!  !  )'!  ! ! B! ! B !  ' ', #`  ;X@X??;X@X! B?'?;X@X@ȅ¿#?! ?;X@X@ ?ЅB?;X@X! Ā 2!  @@Ġ '! ?! ! ?;X@X! ! ?, #`  ?!   ! Bཡ B?;X@X @BT$ $ !   ! B?;X@X @X$ $ 'INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^?WJy?f ?f@ !TD-=+ !TD-+]yk@5AIտ5A?=|׽@?d)?f;imolwforintimolwfor  d"d-8.8/<@p4$ C$L o   imolwfor.c/ecs/hdfeos/gctp/src/imolwfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbwpsAA2Sp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o imolwfor.o imolwfor.c -W0,-xp\$XAEBTnbwpsAA2Sp.imolwforint$XBEBTnbwpsAA2Sp.imolwforint.__func__imolwfor$XBEBTnbwpsAA2Sp.imolwfor.__func__$XAEBTnbwpsAA2Sp.feast$XAEBTnbwpsAA2Sp.lon_center$XAEBTnbwpsAA2Sp.R d"d-8.8/<@pӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ I SD-D1,D2DD3\D4tD5D6D:D;D<D=@D>lD?DCDDDE ^, DF $ ۠  T X4   % 8 C KD\4PD^PDaDbDc$,4Dg4DjxDkDl DoDpHDqPDuptDwtDxDyDzDu<D{HPD|PDdDDD,Dp X, D (0!/& (0!/ (!.!$;$Q$g$$$$bimolwfor.c/ecs/hdfeos/gctp/src/imolwfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbwpsAA2Sp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.himolwforint:F(0,3);(0,18)r:p(0,18)imolwfor.c$XBEBTnbwpsAA2Sp.imolwforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)imolwfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)theta:(0,18)delta_theta:(0,18)con:(0,18)i:(0,4)region:(0,4)$XBEBTnbwpsAA2Sp.imolwfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbwpsAA2Sp.feast:S(0,26)=ar(0,4);0;5;(0,18)$XAEBTnbwpsAA2Sp.lon_center:S(0,27)=ar(0,4);0;5;(0,18)$XAEBTnbwpsAA2Sp.R:S(0,18)adjust_lon:P(0,18);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06imolwfor.cBbss.bssDdata.dataDrodata.rodatap_errorfabscossinadjust_lon$XBEBTnbwpsAA2Sp.imolwfor.__func__imolwforradiusptitle$XAEBTnbwpsAA2Sp.feast$XAEBTnbwpsAA2Sp.lon_center$XAEBTnbwpsAA2Sp.R$XBEBTnbwpsAA2Sp.imolwforint.__func__imolwforint h /7<@DO r({800 , 0 < @ D H T X \ ` l p t x          ( (     0 0     8  8  $ ( 4 @8 @@ D P T ` Hd Hl p |   P P     X X    ` `d `| h h p p x x         ( , ` hd h|              H L d           L $P $\|         ` `      0 T X d h | 4 phpT%+ 7 hF   Q0_!h#p$P x%  imolwinv.o/ 1073924722 1032 20 100644 11872 ` ELF,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿐'H'DDH?! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,!   ! B! $ $ !   ! B! $ $ !   ! B! $ $ !   ! B! $ $ !   ! B! $ $ $!   ! B! $ ($ ,! @;X@X'X'X'T'P'L'H'DDH?LP?! #!   ! B '!   ! B  'ܠ '"!   ! B  '!   ! B  'ܠ 'ܡ, #`  ?!   ! B;X@X?ܡ, #`  ??!   ! B?;X@XЅ @ȅ B;X@XT$ $ ! B?;X@X@! ;X@XX$ $ ܀ T  !  T  ! ?'܀ )T  !  T  !  T  ! T  ! ?|'܀ T  !  T  ! ?c'܀ T  !  T  ! ?J'܀ )T  !  T  !  T  ! T  ! ?'܀ T  !  T  ! ?''INTERRUPTED MOLLWEIDE EQUAL-AREA?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^f~?+}8k=+}8k=?f~?f;?d)@@ !TD-?WJy?f ]]yk@5AIտ5Aimolwinvintimolwinv  d"d-8.8/<@q4$ C$L o   imolwinv.c/ecs/hdfeos/gctp/src/imolwinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbxpsAA2Tp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o imolwinv.o imolwinv.c -W0,-xp\$XAEBTnbxpsAA2Tp.imolwinvint$XBEBTnbxpsAA2Tp.imolwinvint.__func__imolwinv$XBEBTnbxpsAA2Tp.imolwinv.__func__$XAEBTnbxpsAA2Tp.feast$XAEBTnbxpsAA2Tp.lon_center$XAEBTnbxpsAA2Tp.Rk d"d-8.8/<@qӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ I SD+D/,D0DD1\D2tD3D4D8D9D:D;@D<lD=DADBDC ^, DD $ ۠  T X4  DQ4PDSPDTDUDYDZD[LTD]TD_|D`Da8DeDgDhDiDk\DlDml !, Dn|| f(0!/& (0!/ (!. $$$0$C$V$jbimolwinv.c/ecs/hdfeos/gctp/src/imolwinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbxpsAA2Tp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.himolwinvint:F(0,3);(0,18)r:p(0,18)imolwinv.c$XBEBTnbxpsAA2Tp.imolwinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)imolwinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)theta:(0,18)region:(0,4)$XBEBTnbxpsAA2Tp.imolwinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbxpsAA2Tp.feast:S(0,26)=ar(0,4);0;5;(0,18)$XAEBTnbxpsAA2Tp.lon_center:S(0,27)=ar(0,4);0;5;(0,18)$XAEBTnbxpsAA2Tp.R:S(0,18)adjust_lon:P(0,18);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06imolwinv.cBbss.bssDdata.dataDrodata.rodatasincosadjust_lonasin$XBEBTnbxpsAA2Tp.imolwinv.__func__imolwinvradiusptitle$XAEBTnbxpsAA2Tp.feast$XAEBTnbxpsAA2Tp.lon_center$XAEBTnbxpsAA2Tp.R$XBEBTnbxpsAA2Tp.imolwinvint.__func__imolwinvint h /37BG j(sz800 , 0 < @ D H T X \ ` l p t x          ( (     0 0     8  8  $ ( 4 @8 @@ D P T ` Hd Hl p |   P P     X X     ` `d `|   h h   p p   x x< @ L P              (L d h x       , 0 P T t x       < @ ` d          L P p t 4 php!% +  7 0F h  QPk_!h#ap$\@ x%l  lamazfor.o/ 1073924722 1032 20 100644 10760 ` ELF'4(.shstrtab.text.bss.data1.rodata1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @;X@X;X@X;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?Ȣ;XX@@آ;XX@@!   ȍ B!    BЅ BB?! Bt%!   ! B@;X@Xt#`@@ q>'!   ?h! ! B;X@Xh @? B؉ B!   BT$ $ !   ȍ B!    BЅ B‰ B!   BX$ $ 'LAMBERT AZIMUTHAL EQUAL-AREAlamaz-forwardPoint projects to a circle of radius = %lf @?lamazforintlamazfor d"d-8.8/<@r4$ C$L o      lamazfor.c/ecs/hdfeos/gctp/src/lamazfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbypsAA2Up./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o lamazfor.o lamazfor.c -W0,-xp\$XAEBTnbypsAA2Up.lamazforint$XBEBTnbypsAA2Up.lamazforint.__func__lamazfor$XBEBTnbypsAA2Up.lamazfor.__func__$XAEBTnbypsAA2Up.false_northing$XAEBTnbypsAA2Up.false_easting$XAEBTnbypsAA2Up.cos_lat_o$XAEBTnbypsAA2Up.sin_lat_o$XAEBTnbypsAA2Up.R$XAEBTnbypsAA2Up.lon_center, d"d-8.8/<@rӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ e o   X D4XD5lD6D7D8D<D=D>D?D@DAD , DBTT $ E Q ]T gX4 q     ʀ Ӏ ހ@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ e o   X D7XD8lD9D:D;D<D@DADBDCDD$DEX , DFhh $ E O YT eX4 q {   DX4DYPDZlD[D\D^D_DaDbDc8DdT|Df|DgDh8Dj8DkDmDnDpDq , Dr$$ (!/(!/x>(!/a(!/(!/-(!/\(!/@$$$4$J$`$v$$$$$$ $&blamazinv.c/ecs/hdfeos/gctp/src/lamazinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbzpsAA2Vp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hlamazinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)lamazinv.c$XBEBTnbzpsAA2Vp.lamazinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)lamazinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)Rh:(0,18)z:(0,18)sin_z:(0,18)cos_z:(0,18)temp:(0,18)$XBEBTnbzpsAA2Vp.lamazinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbzpsAA2Vp.false_northing:S(0,18)$XAEBTnbzpsAA2Vp.false_easting:S(0,18)$XAEBTnbzpsAA2Vp.cos_lat_o:S(0,18)$XAEBTnbzpsAA2Vp.sin_lat_o:S(0,18)$XAEBTnbzpsAA2Vp.R:S(0,18)$XAEBTnbzpsAA2Vp.lat_center:S(0,18)$XAEBTnbzpsAA2Vp.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06lamazinv.cBbss.bssDdata.dataDrodata.rodataatan2adjust_lonsinfabsasinzp_errorsqrt$XBEBTnbzpsAA2Vp.lamazinv.__func__lamazinvoffsetpcenlatcenlonradiusptitletsincos$XAEBTnbzpsAA2Vp.cos_lat_o$XAEBTnbzpsAA2Vp.sin_lat_o$XAEBTnbzpsAA2Vp.false_northing$XAEBTnbzpsAA2Vp.false_easting$XAEBTnbzpsAA2Vp.lat_center$XAEBTnbzpsAA2Vp.lon_center$XAEBTnbzpsAA2Vp.R$XBEBTnbzpsAA2Vp.lamazinvint.__func__lamazinvint 8 0/5@DIOW\< 40(  )Eat0 xl p                ,4 8 D H `     , 0 < @ T X l p |           , 0 \ p t             (  (4 8 T X    ( (  4 8 `t  4 8BE%+ 7/F @  Q`'_"h$-p% x',  lamccfor.o/ 1073924734 1032 20 100644 14300 ` ELF54(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ؅B;X@X!  !  @@@ )'!   !    ?! B! $ $ !   ;X@X! $ $ ! $ $ ! $ $ ;XX@@?!   ;XX;XX;X@X?!   ;XX;XX;X@X?xؠ;XX@@!   ;XX;XX;X@X?!   ;XX;XX;X@X?p!   ;X@X?!   !   ;XX;XX;X@X?؅;X@X!  ;X@X! ?hxp ;X@Xh ! $ $ ! $ $ ?X!   ?`x;XX`;X@X` @X ! $ $ !   !    B?P!   ;XX;X@XP @! $ $ ! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X'@'X'T'P'L'H'DDH?LP?;X@X! ! B;X@X?! .;X@X?!   ;XX;XX;X@X?!   !    B?!   ;XX;X@X @?!    B?!  !  @@ ,A'! ?!   ?!   ;X@X @??;X@X @!   BT$ $ !   ??;X@X @!   BX$ $ 'Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedlamcc-for=|׽?@ !TD-?lamccforintlamccfor{ d"d-8.8/<@~4$ C$L o       " 5 I b lamccfor.c/ecs/hdfeos/gctp/src/lamccfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb_psAA2Wp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o lamccfor.o lamccfor.c -W0,-xp\$XAEBTnb_psAA2Wp.lamccforint$XBEBTnb_psAA2Wp.lamccforint.__func__lamccfor$XBEBTnb_psAA2Wp.lamccfor.__func__$XAEBTnb_psAA2Wp.false_northing$XAEBTnb_psAA2Wp.false_easting$XAEBTnb_psAA2Wp.rh$XAEBTnb_psAA2Wp.f0$XAEBTnb_psAA2Wp.ns$XAEBTnb_psAA2Wp.center_lat$XAEBTnb_psAA2Wp.center_lon$XAEBTnb_psAA2Wp.e$XAEBTnb_psAA2Wp.es$XAEBTnb_psAA2Wp.r_minor$XAEBTnb_psAA2Wp.r_major d"d-8.8/<@~Ӏ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z      ̠ ߠ|     % 0 < Gx Rp ]D>|D?D@DADEDHDI DL DMHDNlDPDQDRDSDTDU DVXDWxDXDYDZD\LD]|D_D`DaDDfDgDhDi Dj(Dk8Dml h, Dn|| $   TX4'5BD~4DlDDD08D8DTpDpDDDDD$DL, D(!/h(!/(!0(!0p(!0\4(!0@X(!0$|(!0(!/(!/O(!/6$$-$C$\${$$$$$$8$L$`$z$$$blamccfor.c/ecs/hdfeos/gctp/src/lamccfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb_psAA2Wp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hlamccforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)c_lon:p(0,18)c_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)sin_po:(0,18)cos_po:(0,18)con:(0,18)ms1:(0,18)ms2:(0,18)temp:(0,18)ts0:(0,18)ts1:(0,18)ts2:(0,18)lamccfor.c$XBEBTnb_psAA2Wp.lamccforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)lamccfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)con:(0,18)rh1:(0,18)sinphi:(0,18)theta:(0,18)ts:(0,18)$XBEBTnb_psAA2Wp.lamccfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnb_psAA2Wp.false_northing:S(0,18)$XAEBTnb_psAA2Wp.false_easting:S(0,18)$XAEBTnb_psAA2Wp.rh:S(0,18)$XAEBTnb_psAA2Wp.f0:S(0,18)$XAEBTnb_psAA2Wp.ns:S(0,18)$XAEBTnb_psAA2Wp.center_lat:S(0,18)$XAEBTnb_psAA2Wp.center_lon:S(0,18)$XAEBTnb_psAA2Wp.e:S(0,18)$XAEBTnb_psAA2Wp.es:S(0,18)$XAEBTnb_psAA2Wp.r_minor:S(0,18)$XAEBTnb_psAA2Wp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06lamccfor.cBbss.bssDdata.dataDrodata.rodatacosadjust_lon$XBEBTnb_psAA2Wp.lamccfor.__func__lamccforoffsetporigincenlonmerstanparlradius2ptitlepowlogsintsfnzmsfnztsincossqrtp_errorfabs$XAEBTnb_psAA2Wp.rh$XAEBTnb_psAA2Wp.f0$XAEBTnb_psAA2Wp.ns$XAEBTnb_psAA2Wp.center_lat$XAEBTnb_psAA2Wp.center_lon$XAEBTnb_psAA2Wp.e$XAEBTnb_psAA2Wp.es$XAEBTnb_psAA2Wp.false_easting$XAEBTnb_psAA2Wp.false_northing$XAEBTnb_psAA2Wp.r_minor$XAEBTnb_psAA2Wp.r_major$XBEBTnb_psAA2Wp.lamccforint.__func__lamccforint X (/3>4 ajryPH@ 8%0A(T h( $ $ # # " " ! !      0# 4# @$ D$ X \ l p |          $0 4 \         ( , Plt x       ,D H T$ X$ d h      L L$ $ # #    0 @ H! L! X" \" t       $ @L P x$ $            d$ d0D H P T h l ! !   " " 4 P X  =% +  7 {F \  QX_) h* p,p x/0T  lamccinv.o/ 1073924736 1032 20 100644 14612 ` ELF64(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ؅B;X@X!  !  @@@ )'!   !    ?! B! $ $ !   ;X@X! $ $ ! $ $ ! $ $ ;XX@@?!   ;XX;XX;X@X?!   ;XX;XX;X@X?xؠ;XX@@!   ;XX;XX;X@X?!   ;XX;XX;X@X?p!   ;X@X?!   !   ;XX;XX;X@X?؅;X@X!  ;X@X! ?hxp ;X@Xh ! $ $ ! $ $ ?X!   ?`x;XX`;X@X` @X ! $ $ !   !    B?P!   ;XX;X@XP @! $ $ ! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X'`'X'T'P'L'H'DDH?LP?'!   ?!   艡!   B?!   ! B腠BB;X@X?! ?B腠BB;X@X!?! ?! ?! B  B腡 B;XX;X@X?! B !   ! 4! !    ?!   !    B;XX;X@X?!   Р;XX;XX@X$ $ Ā "' ! ! BX$ $ !    !   B;X@XT$ $ 'Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC=|׽?@ !TD-?lamccinvintlamccinv{ d"d-8.8/<@ʀ4$ C$L o       " 5 I b lamccinv.c/ecs/hdfeos/gctp/src/lamccinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbAqsAA2Xp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o lamccinv.o lamccinv.c -W0,-xp\$XAEBTnbAqsAA2Xp.lamccinvint$XBEBTnbAqsAA2Xp.lamccinvint.__func__lamccinv$XBEBTnbAqsAA2Xp.lamccinv.__func__$XAEBTnbAqsAA2Xp.false_northing$XAEBTnbAqsAA2Xp.false_easting$XAEBTnbAqsAA2Xp.rh$XAEBTnbAqsAA2Xp.f0$XAEBTnbAqsAA2Xp.ns$XAEBTnbAqsAA2Xp.center_lat$XAEBTnbAqsAA2Xp.center_lon$XAEBTnbAqsAA2Xp.e$XAEBTnbAqsAA2Xp.es$XAEBTnbAqsAA2Xp.r_minor$XAEBTnbAqsAA2Xp.r_major d"d-8.8/<@ʀӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z      ̠ ߠ|     % 0 < Gx Rp ]D>|D?D@DADEDHDI DL DMHDNlDPDQDRDSDTDU DVXDWxDXDYDZD\LD]|D_D`DaDDgDhDiDj Dk(Dl8Dnl h, Do|| $   TX4'1>D4D8DTDDDDDDD(DDDpDDDDXDhtD|DDI, D(!/(!/h(!0(!0p(!0\1(!0@U(!0$y(!0(!/(!/O(!/6$$6$T$j$$$$$$+$A$_$s$$$$$blamccinv.c/ecs/hdfeos/gctp/src/lamccinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbAqsAA2Xp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hlamccinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)c_lon:p(0,18)c_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)sin_po:(0,18)cos_po:(0,18)con:(0,18)ms1:(0,18)ms2:(0,18)temp:(0,18)ts0:(0,18)ts1:(0,18)ts2:(0,18)lamccinv.c$XBEBTnbAqsAA2Xp.lamccinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)lamccinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh1:(0,18)con:(0,18)ts:(0,18)theta:(0,18)flag:(0,4)$XBEBTnbAqsAA2Xp.lamccinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbAqsAA2Xp.false_northing:S(0,18)$XAEBTnbAqsAA2Xp.false_easting:S(0,18)$XAEBTnbAqsAA2Xp.rh:S(0,18)$XAEBTnbAqsAA2Xp.f0:S(0,18)$XAEBTnbAqsAA2Xp.ns:S(0,18)$XAEBTnbAqsAA2Xp.center_lat:S(0,18)$XAEBTnbAqsAA2Xp.center_lon:S(0,18)$XAEBTnbAqsAA2Xp.e:S(0,18)$XAEBTnbAqsAA2Xp.es:S(0,18)$XAEBTnbAqsAA2Xp.r_minor:S(0,18)$XAEBTnbAqsAA2Xp.r_major:S(0,18)phi2z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06lamccinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonphi2zatan2$XBEBTnbAqsAA2Xp.lamccinv.__func__lamccinvoffsetporigincenlonmerstanparlradius2ptitlepowlogsintsfnzmsfnztsincossqrtp_errorfabs$XAEBTnbAqsAA2Xp.rh$XAEBTnbAqsAA2Xp.f0$XAEBTnbAqsAA2Xp.ns$XAEBTnbAqsAA2Xp.center_lat$XAEBTnbAqsAA2Xp.center_lon$XAEBTnbAqsAA2Xp.e$XAEBTnbAqsAA2Xp.es$XAEBTnbAqsAA2Xp.false_northing$XAEBTnbAqsAA2Xp.false_easting$XAEBTnbAqsAA2Xp.r_minor$XAEBTnbAqsAA2Xp.r_major$XBEBTnbAqsAA2Xp.lamccinvint.__func__lamccinvint X 0/:@F< irzPH@8-0I(\ p0 % % $ $ # # " "      0$ 4$ @% D% X \ l! p! |! !         $0 4 \         ( , Plt x       ,D H T% X% d h      L L% % $ $    0@ H# L# X" \" t # #   "  " 4 8 D H t         $ ( < @ L P d h l p % %     , 0 4 (8 (T X h l 4  pX pd E% +  7 ({F P  Q_)h+~p- x0  merfor.o/ 1073924737 1032 20 100644 11564 ` ELF*4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ ;X@X! ?! ?!   ?;X@X @?;X@X @;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'h'X'T'P'L'H'DDH?LP?;X@X! ! B;X@X!  !  0@@ 5R';X@X?!   ;XX;XX;X@X?!   ?!   !    B?!   ;X@XЅ @ȅBT$ $ !   ?!   !    B?;X@XЅ @ȅX$ $ 'MERCATORTransformation cannot be computed at the polesmer-forward?@ !TD-?=|׽merforintmerforC d d)8*8+<@ʁ4 $ 7$> _ ~       * merfor.c/ecs/hdfeos/gctp/src/merfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbBqsAA2Yp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o merfor.o merfor.c -W0,-xp\$XAEBTnbBqsAA2Yp.merforint$XBEBTnbBqsAA2Yp.merforint.__func__merfor$XBEBTnbBqsAA2Yp.merfor.__func__$XAEBTnbBqsAA2Yp.false_easting$XAEBTnbBqsAA2Yp.false_northing$XAEBTnbBqsAA2Yp.m1$XAEBTnbBqsAA2Yp.es$XAEBTnbBqsAA2Yp.e$XAEBTnbBqsAA2Yp.lat_origin$XAEBTnbBqsAA2Yp.lon_center$XAEBTnbBqsAA2Yp.r_minor$XAEBTnbBqsAA2Yp.r_majorM d d)8*8+<@ʁπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ f t    d π ۄD6dD7xD8D9D:D;D=D>D?(D@TDDDEDF4DGPDHlDI , DJ *$ \ h tT ~X4  DZ4D\D]DaDbDcDdlDf , Dg (!/D (!/$2(!/N(!/cj(!/w(!/(!.(!.(!.$)$G$]$v$$$$$$$&$9$Lbmerfor.c/ecs/hdfeos/gctp/src/merfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbBqsAA2Yp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmerforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)merfor.c$XBEBTnbBqsAA2Yp.merforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)merfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)ts:(0,18)sinphi:(0,18)$XBEBTnbBqsAA2Yp.merfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbBqsAA2Yp.false_easting:S(0,18)$XAEBTnbBqsAA2Yp.false_northing:S(0,18)$XAEBTnbBqsAA2Yp.m1:S(0,18)$XAEBTnbBqsAA2Yp.es:S(0,18)$XAEBTnbBqsAA2Yp.e:S(0,18)$XAEBTnbBqsAA2Yp.lat_origin:S(0,18)$XAEBTnbBqsAA2Yp.lon_center:S(0,18)$XAEBTnbBqsAA2Yp.r_minor:S(0,18)$XAEBTnbBqsAA2Yp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06merfor.cBbss.bssDdata.dataDrodata.rodatalogadjust_lontsfnzp_errorfabs$XBEBTnbBqsAA2Yp.merfor.__func__merforoffsetporigincenlonmerradius2ptitlesincossqrt$XAEBTnbBqsAA2Yp.m1$XAEBTnbBqsAA2Yp.e$XAEBTnbBqsAA2Yp.es$XAEBTnbBqsAA2Yp.false_easting$XAEBTnbBqsAA2Yp.false_northing$XAEBTnbBqsAA2Yp.lat_origin$XAEBTnbBqsAA2Yp.lon_center$XAEBTnbBqsAA2Yp.r_minor$XAEBTnbBqsAA2Yp.r_major$XBEBTnbBqsAA2Yp.merforint.__func__merforint H -1<BJO*pw@80( &B^w x |                 ( , 8 < LT X l            $ <D H X` d t|     $ ( , 0 @ H L ` d p            (L P ` d p t 4 HH1% +  7CF @  QM_!ah#p$ x&  merinv.o/ 1073924738 1032 20 100644 11076 ` ELF(4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ ;X@X! ?! ?!   ?;X@X @?;X@X @;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'x'X'T'P'L'H'DDH?LP?'!   ?!   ?菠#!   !    B;X@X?!   ;XX;XX@X$ $ ܀ '!   !   !    B…B;X@XT$ $ 'MERCATOR?merinvintmerinvC d d)8*8+<@ʂ4 $ 7$> _ ~       * merinv.c/ecs/hdfeos/gctp/src/merinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbCqsAA2Zp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o merinv.o merinv.c -W0,-xp\$XAEBTnbCqsAA2Zp.merinvint$XBEBTnbCqsAA2Zp.merinvint.__func__merinv$XBEBTnbCqsAA2Zp.merinv.__func__$XAEBTnbCqsAA2Zp.false_easting$XAEBTnbCqsAA2Zp.false_northing$XAEBTnbCqsAA2Zp.m1$XAEBTnbCqsAA2Zp.es$XAEBTnbCqsAA2Zp.e$XAEBTnbCqsAA2Zp.lat_origin$XAEBTnbCqsAA2Zp.lon_center$XAEBTnbCqsAA2Zp.r_minor$XAEBTnbCqsAA2Zp.r_major d d)8*8+<@ʂπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ f t    d π ۄD6dD7xD8D9D:D;D=D>D?(D@TDDDEDF4DGPDHlDI , DJ *$ \ f pT |X4  D[4D\8D]TD^pD_D`DaDb Ddd , Dett (!/D(!/$/(!/K(!/cg(!/w(!/(!.(!.(!. $6$P$n$$$$$$$ $bmerinv.c/ecs/hdfeos/gctp/src/merinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbCqsAA2Zp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmerinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)merinv.c$XBEBTnbCqsAA2Zp.merinvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)merinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)ts:(0,18)flag:(0,4)$XBEBTnbCqsAA2Zp.merinv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbCqsAA2Zp.false_easting:S(0,18)$XAEBTnbCqsAA2Zp.false_northing:S(0,18)$XAEBTnbCqsAA2Zp.m1:S(0,18)$XAEBTnbCqsAA2Zp.es:S(0,18)$XAEBTnbCqsAA2Zp.e:S(0,18)$XAEBTnbCqsAA2Zp.lat_origin:S(0,18)$XAEBTnbCqsAA2Zp.lon_center:S(0,18)$XAEBTnbCqsAA2Zp.r_minor:S(0,18)$XAEBTnbCqsAA2Zp.r_major:S(0,18)phi2z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)exp:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06merinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonphi2zexp$XBEBTnbCqsAA2Zp.merinv.__func__merinvoffsetporigincenlonmerradius2ptitlesincossqrt$XAEBTnbCqsAA2Zp.m1$XAEBTnbCqsAA2Zp.e$XAEBTnbCqsAA2Zp.es$XAEBTnbCqsAA2Zp.false_easting$XAEBTnbCqsAA2Zp.false_northing$XAEBTnbCqsAA2Zp.lat_origin$XAEBTnbCqsAA2Zp.lon_center$XAEBTnbCqsAA2Zp.r_minor$XAEBTnbCqsAA2Zp.r_major$XBEBTnbCqsAA2Zp.merinvint.__func__merinvint H-8>Bcjry@80( 5Qj x |                 ( , 8 < LT X l            $ <D H X` d t |        8 < \ ` l p          04 h H 0%I+L 7<CF  Q_ 7h!p# x%l  millfor.o/ 1073924739 1032 20 100644 9132 ` ELF!T4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'p'X'T'P'L'H'DDH?LP?!   ;X@X?!   !    BBT$ $ !   ?!   ?! ! ! …B;X@X;X@X؉ @! BЅBX$ $ 'MILLER CYLINDRICAL@ !TD-@@?millforintmillfor d!d+8,8-<@ʃ4 $ =$E g    millfor.c/ecs/hdfeos/gctp/src/millfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbCqsAA2ap./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o millfor.o millfor.c -W0,-xp\$XAEBTnbCqsAA2ap.millforint$XBEBTnbCqsAA2ap.millforint.__func__millfor$XBEBTnbCqsAA2ap.millfor.__func__$XAEBTnbCqsAA2ap.false_northing$XAEBTnbCqsAA2ap.false_easting$XAEBTnbCqsAA2ap.R$XAEBTnbCqsAA2ap.lon_center d!d+8,8-<@ʃр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D1LD2`D3tD4D8D9D:D;D< , D= $ % 1 =T GX4 QDL4DM\DNDP$ ], DQ44 (!/[ (!/< (!/  (!/ /$I$g$}$$$$bmillfor.c/ecs/hdfeos/gctp/src/millfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbCqsAA2ap.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmillforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)millfor.c$XBEBTnbCqsAA2ap.millforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)millfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)$XBEBTnbCqsAA2ap.millfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbCqsAA2ap.false_northing:S(0,18)$XAEBTnbCqsAA2ap.false_easting:S(0,18)$XAEBTnbCqsAA2ap.R:S(0,18)$XAEBTnbCqsAA2ap.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)log:P(0,18);(0,18)tan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06millfor.cBbss.bssDdata.dataDrodata.rodatatanlogadjust_lon$XBEBTnbCqsAA2ap.millfor.__func__millforoffsetpcenlonradiusptitle$XAEBTnbCqsAA2ap.false_northing$XAEBTnbCqsAA2ap.false_easting$XAEBTnbCqsAA2ap.lon_center$XAEBTnbCqsAA2ap.R$XBEBTnbCqsAA2ap.millforint.__func__millforint  .26A+c@Dksz  ` d t x             x |                (4D H 4 @ @X3%+ 7@Fl  Q _Th&p ` x  millinv.o/ 1073924740 1032 20 100644 9116 ` ELF!D4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'㿈'X'T'P'L'H'DDH?LP?!   ?!   ?!   !    …B;X@XT$ $ !    ! ;X@X;X@X! ! ‰! BX$ $ 'MILLER CYLINDRICAL?@ !TD-@@millinvintmillinv d!d+8,8-<@ʄ4 $ =$E g    millinv.c/ecs/hdfeos/gctp/src/millinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbDqsAA2bp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o millinv.o millinv.c -W0,-xp\$XAEBTnbDqsAA2bp.millinvint$XBEBTnbDqsAA2bp.millinvint.__func__millinv$XBEBTnbDqsAA2bp.millinv.__func__$XAEBTnbDqsAA2bp.false_northing$XAEBTnbDqsAA2bp.false_easting$XAEBTnbDqsAA2bp.R$XAEBTnbDqsAA2bp.lon_center d!d+8,8-<@ʄр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D1LD2`D3tD4D8D9D:D;D< , D= $ % / 9T EX4DK4DLPDNlDODQ Q, DR,, (!/[ (!/< (!/ (!/ #$=$[$q$$$$bmillinv.c/ecs/hdfeos/gctp/src/millinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbDqsAA2bp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmillinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)millinv.c$XBEBTnbDqsAA2bp.millinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)millinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)$XBEBTnbDqsAA2bp.millinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbDqsAA2bp.false_northing:S(0,18)$XAEBTnbDqsAA2bp.false_easting:S(0,18)$XAEBTnbDqsAA2bp.R:S(0,18)$XAEBTnbDqsAA2bp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)exp:P(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06millinv.cBbss.bssDdata.dataDrodata.rodataexpatanadjust_lon$XBEBTnbDqsAA2bp.millinv.__func__millinvoffsetpcenlonradiusptitle$XAEBTnbDqsAA2bp.false_northing$XAEBTnbDqsAA2bp.false_easting$XAEBTnbDqsAA2bp.lon_center$XAEBTnbDqsAA2bp.R$XBEBTnbDqsAA2bp.millinvint.__func__millinvint  .27B+d@<lt{  ` d t x             x |             $, 0 4 8 D H 4 8 8P3%+ 78Fl  Q |_Ah'p` xp  molwfor.o/ 1073924741 1032 20 100644 10236 ` ELF%4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'@'X'T'P'L'H'DDH?LP?!   ;X@X??;X@X! B?'?;X@X@ȅ¿#?! ?;X@X@ ?ЅB?;X@X! Ā 2 !  @@ S'Ġ '! ?! ! ?;X@X! ! ?!   ! Bཡ B?;X@X @!   BT$ $ !   ! B?;X@X @!   BX$ $ 'MOLLWEIDEIteration failed to convergeMollweide-forward@ !TD-?=|׽@?d)?f;molwforintmolwfor d!d+8,8-<@ʅ4 $ =$E g    molwfor.c/ecs/hdfeos/gctp/src/molwfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbEqsAA2cp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o molwfor.o molwfor.c -W0,-xp\$XAEBTnbEqsAA2cp.molwforint$XBEBTnbEqsAA2cp.molwforint.__func__molwfor$XBEBTnbEqsAA2cp.molwfor.__func__$XAEBTnbEqsAA2cp.false_northing$XAEBTnbEqsAA2cp.false_easting$XAEBTnbEqsAA2cp.R$XAEBTnbEqsAA2cp.lon_center: d!d+8,8-<@ʅр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D-LD.`D/tD0D4D5D6D7D8 , D9 $ % 1 =T GX4 Q b o  DK4DL\DMdDQDSDTDUDV(8DX8DYP\DQ\D[hpD\pDaDbDcDd8De , Df (!/,(!/ ((!/LC(!/_g$$$$$$$$&$9bmolwfor.c/ecs/hdfeos/gctp/src/molwfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbEqsAA2cp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmolwforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)molwfor.c$XBEBTnbEqsAA2cp.molwforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)molwfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)theta:(0,18)delta_theta:(0,18)con:(0,18)i:(0,4)$XBEBTnbEqsAA2cp.molwfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbEqsAA2cp.false_northing:S(0,18)$XAEBTnbEqsAA2cp.false_easting:S(0,18)$XAEBTnbEqsAA2cp.R:S(0,18)$XAEBTnbEqsAA2cp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06molwfor.cBbss.bssDdata.dataDrodata.rodatap_errorfabscossinadjust_lon$XBEBTnbEqsAA2cp.molwfor.__func__molwforoffsetpcenlonradiusptitle$XAEBTnbEqsAA2cp.lon_center$XAEBTnbEqsAA2cp.R$XAEBTnbEqsAA2cp.false_northing$XAEBTnbEqsAA2cp.false_easting$XBEBTnbEqsAA2cp.molwforint.__func__molwforint 8.6;?CNCp@x8 ( ` d t x           x |         @H L x |              ( (, (H X \ x |  0 0   4  >K%3+4 7F  QL:_h ,3p!` x"  molwinv.o/ 1073924742 1032 20 100644 9912 ` ELF$`4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'X'X'T'P'L'H'DDH?LP?!   ?!   ?!   ! B?;X@X! ! ?;X@X?!   ??!   ! B?;X@XЅ @ȅ B;X@XT$ $ T  ! ! T$ $ T  ! ! T$ $ ! B?;X@X@! ?;X@X! ! ?;X@XX$ $ 'MOLLWEIDE?f;??d) !TD-@ !TD-@?molwinvintmolwinv d!d+8,8-<@ʆ4 $ =$E g    molwinv.c/ecs/hdfeos/gctp/src/molwinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbGqsAA2dp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o molwinv.o molwinv.c -W0,-xp\$XAEBTnbGqsAA2dp.molwinvint$XBEBTnbGqsAA2dp.molwinvint.__func__molwinv$XBEBTnbGqsAA2dp.molwinv.__func__$XAEBTnbGqsAA2dp.false_northing$XAEBTnbGqsAA2dp.false_easting$XAEBTnbGqsAA2dp.R$XAEBTnbGqsAA2dp.lon_center d!d+8,8-<@ʆр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D,LD-`D.tD/D3D4D5D6D7 , D8 $ % / 9T EX4 Q ^DG4DHPDIlDNDODPDQXDRDSDTDU4DVP i, DW`` (!/, (!/ (!/L(!/_;$U$s$$$$$$$bmolwinv.c/ecs/hdfeos/gctp/src/molwinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbGqsAA2dp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmolwinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)molwinv.c$XBEBTnbGqsAA2dp.molwinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)molwinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)theta:(0,18)arg:(0,18)$XBEBTnbGqsAA2dp.molwinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbGqsAA2dp.false_northing:S(0,18)$XAEBTnbGqsAA2dp.false_easting:S(0,18)$XAEBTnbGqsAA2dp.R:S(0,18)$XAEBTnbGqsAA2dp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06molwinv.cBbss.bssDdata.dataDrodata.rodatasincosadjust_lonasinfabs$XBEBTnbGqsAA2dp.molwinv.__func__molwinvoffsetpcenlonradiusptitle$XAEBTnbGqsAA2dp.lon_center$XAEBTnbGqsAA2dp.R$XAEBTnbGqsAA2dp.false_northing$XAEBTnbGqsAA2dp.false_easting$XBEBTnbGqsAA2dp.molwinvint.__func__molwinvint 8.26AFKCm@pu}8 % ` d t x           x |                8 < H L `           ( ( 0 4 H P 0T 0h 0l 0| 4 h h xK%+ 7xFP  Q@_Dh0p  x!  obleqfor.o/ 1073924743 1032 20 100644 12720 ` ELF/X4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textX'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! @!   ;X@X!   ;X@X!   ;X@X!   ! ;XX@!   ! ;XX@!   ! ;XX@!   !   ;XX;X@X!   ! #`;XX@@''X'T'P'L'H'DDH?LP?!   ?Ȣ;XX@@آ;XX@@!   ȍ B!    BЅ BB;X@X?ؕB!   ȑ B!   FЅ B;XX;X@X!   B?;XX@@! ;X@X B? B? B?! ;X@X?! ?p;X@Xp @?h B!    ;X@Xh ?;X@X?x!   !   B?`x! B;X@X` @!   BX$ $ !   !   B?`! B;X@X` @?Xx;X@XX @?Px B!    ;X@XP !   BT$ $ 'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @obleqforintobleqforg d"d-8.8/<@ʇ4$ C$L o        4 K obleqfor.c/ecs/hdfeos/gctp/src/obleqfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbHqsAA2ep./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o obleqfor.o obleqfor.c -W0,-xp\$XAEBTnbHqsAA2ep.obleqforint$XBEBTnbHqsAA2ep.obleqforint.__func__obleqfor$XBEBTnbHqsAA2ep.obleqfor.__func__$XAEBTnbHqsAA2ep.false_northing$XAEBTnbHqsAA2ep.false_easting$XAEBTnbHqsAA2ep.cos_lat_o$XAEBTnbHqsAA2ep.sin_lat_o$XAEBTnbHqsAA2ep.R$XAEBTnbHqsAA2ep.n$XAEBTnbHqsAA2ep.m$XAEBTnbHqsAA2ep.theta$XAEBTnbHqsAA2ep.lat_o$XAEBTnbHqsAA2ep.lon_center( d"d-8.8/<@ʇӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z     ˠ ٠ | D4|D5D6D7D8D9D:D;D?D@,DAHDBdDCDDDEDFDK,DL` , DMpp T$   T X4  ŀ ڀ    .<HWfoxDf4DgPDhpDiDkDlLDmlDnDoDpDqDr<DsPDtDux, Dv(!/(!/ (!0m/(!0RR(!/2m(!/(!/x(!/(!/a(!/E$"$@$V$l$$$$$$$$'bobleqfor.c/ecs/hdfeos/gctp/src/obleqfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbHqsAA2ep.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hobleqforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)shape_m:p(0,18)shape_n:p(0,18)angle:p(0,18)false_east:p(0,18)false_north:p(0,18)obleqfor.c$XBEBTnbHqsAA2ep.obleqforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)obleqfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)sin_delta_lon:(0,18)cos_delta_lon:(0,18)sin_lat:(0,18)cos_lat:(0,18)z:(0,18)Az:(0,18)sin_Az:(0,18)cos_Az:(0,18)temp:(0,18)x_prime:(0,18)y_prime:(0,18)M:(0,18)N:(0,18)$XBEBTnbHqsAA2ep.obleqfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbHqsAA2ep.false_northing:S(0,18)$XAEBTnbHqsAA2ep.false_easting:S(0,18)$XAEBTnbHqsAA2ep.cos_lat_o:S(0,18)$XAEBTnbHqsAA2ep.sin_lat_o:S(0,18)$XAEBTnbHqsAA2ep.R:S(0,18)$XAEBTnbHqsAA2ep.n:S(0,18)$XAEBTnbHqsAA2ep.m:S(0,18)$XAEBTnbHqsAA2ep.theta:S(0,18)$XAEBTnbHqsAA2ep.lat_o:S(0,18)$XAEBTnbHqsAA2ep.lon_center:S(0,18)genrpt:P(0,20);(0,18);(10,3)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)asin:P(0,18);(0,18)acos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06obleqfor.cBbss.bssDdata.dataDrodata.rodatacosasinsinatan2acos$XBEBTnbHqsAA2ep.obleqfor.__func__obleqfortsincosoffsetpgenrptcenlatcenlonradiusptitle$XAEBTnbHqsAA2ep.cos_lat_o$XAEBTnbHqsAA2ep.sin_lat_o$XAEBTnbHqsAA2ep.false_northing$XAEBTnbHqsAA2ep.false_easting$XAEBTnbHqsAA2ep.theta$XAEBTnbHqsAA2ep.n$XAEBTnbHqsAA2ep.m$XAEBTnbHqsAA2ep.lat_o$XAEBTnbHqsAA2ep.lon_center$XAEBTnbHqsAA2ep.R$XBEBTnbHqsAA2ep.obleqforint.__func__obleqforint P /38<BG js{H@80(2 EXo                   , 0 4< @ PX \ lt x        ( (   < <     4< @ L P T X h  (0 4 H L p           ( X \ hx |           0 @ D ` d p t         4 HPIP%m+p 7lgF   Q(_$h&Np(  x*0(  obleqinv.o/ 1073924744 1032 20 100644 12860 ` ELF/4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textX'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! @!   ;X@X!   ;X@X!   ;X@X!   ! ;XX@!   ! ;XX@!   ! ;XX@!   !   ;XX;X@X!   ! #`;XX@@''X'T'P'L'H'DDH?LP?!   ?!   ?!   ! ?!    B;X@X @?!   !    B?x! B!    ;X@Xx @?p;X@Xp ?!   ! ?;X@X @?;X@X! B?;X@X! B? B!    ;X@X @?h;X@Xh ?BBB;X@X! ?;X@X! B?;XX;X@X?!   ?;XX@@آ;XX@@!   Ѝ B!   ؉ B BB;X@XX$ $ !   ?`B!   Б B!   F B;XX;X@X`@;X@XT$ $ 'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @obleqinvintobleqinvg d"d-8.8/<@ʈ4$ C$L o        4 K obleqinv.c/ecs/hdfeos/gctp/src/obleqinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbIqsAAGgp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o obleqinv.o obleqinv.c -W0,-xp\$XAEBTnbIqsAAGgp.obleqinvint$XBEBTnbIqsAAGgp.obleqinvint.__func__obleqinv$XBEBTnbIqsAAGgp.obleqinv.__func__$XAEBTnbIqsAAGgp.false_northing$XAEBTnbIqsAAGgp.false_easting$XAEBTnbIqsAAGgp.cos_lat_o$XAEBTnbIqsAAGgp.sin_lat_o$XAEBTnbIqsAAGgp.R$XAEBTnbIqsAAGgp.n$XAEBTnbIqsAAGgp.m$XAEBTnbIqsAAGgp.theta$XAEBTnbIqsAAGgp.lat_o$XAEBTnbIqsAAGgp.lon_center% d"d-8.8/<@ʈӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z     ˠ ٠ | D6|D7D8D9D:D;D<D=DADB,DCHDDdDEDFDGDHDM,DN` , DOpp T$   T X4   ʀ ׀    /EDf4DgPDhlDiDjHDkDlDmDnDDodDpDqDrDsDu4Dv[, Dw(!/(!/(!0m(!0R5(!/2P(!/k(!/x(!/(!/a(!/E$$$=$S$i$$$$$$$$$bobleqinv.c/ecs/hdfeos/gctp/src/obleqinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbIqsAAGgp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hobleqinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)shape_m:p(0,18)shape_n:p(0,18)angle:p(0,18)false_east:p(0,18)false_north:p(0,18)obleqinv.c$XBEBTnbIqsAAGgp.obleqinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)obleqinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)z:(0,18)sin_z:(0,18)cos_z:(0,18)Az:(0,18)temp:(0,18)x_prime:(0,18)y_prime:(0,18)M:(0,18)N:(0,18)diff_angle:(0,18)sin_diff_angle:(0,18)cos_diff_angle:(0,18)$XBEBTnbIqsAAGgp.obleqinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbIqsAAGgp.false_northing:S(0,18)$XAEBTnbIqsAAGgp.false_easting:S(0,18)$XAEBTnbIqsAAGgp.cos_lat_o:S(0,18)$XAEBTnbIqsAAGgp.sin_lat_o:S(0,18)$XAEBTnbIqsAAGgp.R:S(0,18)$XAEBTnbIqsAAGgp.n:S(0,18)$XAEBTnbIqsAAGgp.m:S(0,18)$XAEBTnbIqsAAGgp.theta:S(0,18)$XAEBTnbIqsAAGgp.lat_o:S(0,18)$XAEBTnbIqsAAGgp.lon_center:S(0,18)genrpt:P(0,20);(0,18);(10,3)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06obleqinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonatan2sqrtsincosasin$XBEBTnbIqsAAGgp.obleqinv.__func__obleqinvtsincosoffsetpgenrptcenlatcenlonradiusptitle$XAEBTnbIqsAAGgp.cos_lat_o$XAEBTnbIqsAAGgp.sin_lat_o$XAEBTnbIqsAAGgp.false_northing$XAEBTnbIqsAAGgp.false_easting$XAEBTnbIqsAAGgp.theta$XAEBTnbIqsAAGgp.n$XAEBTnbIqsAAGgp.m$XAEBTnbIqsAAGgp.lat_o$XAEBTnbIqsAAGgp.lon_center$XAEBTnbIqsAAGgp.R$XBEBTnbIqsAAGgp.obleqinvint.__func__obleqinvint P /:@EIMR u~H@80&(= Pcz                   , 0 4< @ PX \ lt x        ( (   < <     4< @ L P T X h          0 4 L d h t x            , 4 8 L T X l p         ( , Xx            8L4 8P8I%+ 7gF   Q%_$h&p(` x*d  omerfor.o/ 1073924745 1032 20 100644 24820 ` ELF^4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㾀'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?????! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ! #`;XX@@! !   !   DD?! !   ;X@X?#`?%?!   ! ;XX;X@X @`…B;X@X! $ $ !   !    B!    B B ! $ $ !   ;X@X! ! ?x! ! $ $ ! ! $ $ !   !   !   ;XX;XX;X@X?x;X@X?!    B!    B! $ $ !   B! B! 3!   ! !   ??> Z! B;X@X@?8!   ??> Z! B;X@X?8!   ?88?x!   ;XX;X@X @! $ $ ! @!   !   ;XX;X@X!   ! ;XX@!   !   ;XX;X@X 8! ĉ! B?0;X@X!    ;X@X?(?0?(;X@X @;X@X!    ! $ $ ! B! ;XX@!   ;X@X!   ;X@X!   ;X@X?! |! ! B;X@X! l(! #`;XX@@! #`;XX@@!   ! '!   !    ?!   B! B;X@X!    ;X@X @! $ $ '!   !    ¿#?!   B! B;X@X!    ;X@X腧 @! $ $  !  @@ ';X@X? !    ;XX;XX;X@X?p;X@X? !    ;XX;XX;X@X?hp!   ;XX;X@X?`h!   ;XX;X@X?X!   ` ?88! ĉ! B?0!   BX` B…B ?PX`…B?H?@@!  ! ! B?@!  ! ! BB??@B! D?P?!   D@ B;X@X @H ;X@X   腧! $ $ !   ;X@X?@!   @ B;X@X0 ;X@X?(!   ?(;X@X @;X@X?! B! ;XX@! B! ;XX@! B! ;XX@! B! ;XX@;X@X!  !  @@ ';X@X?! ! ! B;X@X!  !  @@ '!   ;X@X! ! B;X@X!  !  @@ n'(! #`;XX@@! #`;XX@@!   ! '!   !    ?!   B! B;X@X!    ;X@X @! $ $ '!   !    ¿#?!   B! B;X@X!    ;X@X腧 @! $ $ ' 'X'T'P'L'H'DDH?LP?;X@X?!   ;X@X?!    B;X@X?;X@X! ! B;X@X! !   ;XX;XX;X@X?!   ?!   ;XX;X@X ?! ĉ! B?! ĉB! B?!    B!    B؅ ?!    B;X@X?;X@X! !   !    B B?7!   ?!    B!    BBЅ ;X@X @!    ?! !   ! B!    …B?!! !   ?!   ?!   艡 B!    ?;X@X! B;X@X!  !  @@ P'!   ! B?! …B;X@X @!    ?!   ?!   !    BB!    BBT$ $ !   !    BB!    BX$ $ 'OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-initPoint projects into infinityomer-for?@=|׽?@Lc˰@ !TD- !TD-@>z򚼯HomerforintomerforG d!d+8,8-<@ʉ4 $ =$E g ~        ' @ Y x       . omerfor.c/ecs/hdfeos/gctp/src/omerfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbIqsAAGhp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o omerfor.o omerfor.c -W0,-xp\$XAEBTnbIqsAAGhp.omerforint$XBEBTnbIqsAAGhp.omerforint.__func__omerfor$XBEBTnbIqsAAGhp.omerfor.__func__$XAEBTnbIqsAAGhp.cosaz$XAEBTnbIqsAAGhp.sinaz$XAEBTnbIqsAAGhp.cosgam$XAEBTnbIqsAAGhp.singam$XAEBTnbIqsAAGhp.u$XAEBTnbIqsAAGhp.el$XAEBTnbIqsAAGhp.d$XAEBTnbIqsAAGhp.al$XAEBTnbIqsAAGhp.bl$XAEBTnbIqsAAGhp.cos_p20$XAEBTnbIqsAAGhp.sin_p20$XAEBTnbIqsAAGhp.false_easting$XAEBTnbIqsAAGhp.false_northing$XAEBTnbIqsAAGhp.es$XAEBTnbIqsAAGhp.e$XAEBTnbIqsAAGhp.lat_origin$XAEBTnbIqsAAGhp.lon_origin$XAEBTnbIqsAAGhp.scale_factor$XAEBTnbIqsAAGhp.r_minor$XAEBTnbIqsAAGhp.r_majorI d!d+8,8-<@ʉр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$    Ƞ ؠ    ! . ; H U a m x x p h ` X P H ǀ@ Ӏ8 ܀0 (  DIDJDKDLDMDNDP$DQLDRpDTDUDVDW4DXDYLD[LD\XD]pDaDbDcDd8pDfpDgDi,Dl4DmHDrDsDtDuDw0@Dy@DzdD{DD D<DXDxDDD$DLD t |D |D    D D D D D @D lD D D D D D 0D LD lD D D D DD lD D D D 4D \D  D D  D D HDHD`lDlDDDDD8D`DD , DQ$TX4ȀӀ܀ D4DHDpDDDDdDDDD<D<ltDtDD HHPDPDlDDD D D$0D0DDDD X$, D hhh(!1(!1(!1u(!1](!1(!0(!08(!0T(!0p(!0o(!0V(!0(!/(!0/(!0C8(!/\(!1(!/(!/(!/$$$4$R$h$~$$$$$$,$@$Z$m$$$$bomerfor.c/ecs/hdfeos/gctp/src/omerfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbIqsAAGhp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.homerforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)azimuth:p(0,18)lon_orig:p(0,18)lat_orig:p(0,18)false_east:p(0,18)false_north:p(0,18)lon1:p(0,18)lat1:p(0,18)lon2:p(0,18)lat2:p(0,18)mode:p(0,4)temp:(0,18)con:(0,18)com:(0,18)ts:(0,18)ts1:(0,18)ts2:(0,18)h:(0,18)l:(0,18)j:(0,18)p:(0,18)dlon:(0,18)f:(0,18)g:(0,18)gama:(0,18)sinphi:(0,18)omerfor.c$XBEBTnbIqsAAGhp.omerforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)omerfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sin_phi:(0,18)t:(0,18)con:(0,18)q:(0,18)us:(0,18)vl:(0,18)ul:(0,18)vs:(0,18)s:(0,18)dlon:(0,18)ts1:(0,18)$XBEBTnbIqsAAGhp.omerfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbIqsAAGhp.cosaz:S(0,18)$XAEBTnbIqsAAGhp.sinaz:S(0,18)$XAEBTnbIqsAAGhp.cosgam:S(0,18)$XAEBTnbIqsAAGhp.singam:S(0,18)$XAEBTnbIqsAAGhp.u:S(0,18)$XAEBTnbIqsAAGhp.el:S(0,18)$XAEBTnbIqsAAGhp.d:S(0,18)$XAEBTnbIqsAAGhp.al:S(0,18)$XAEBTnbIqsAAGhp.bl:S(0,18)$XAEBTnbIqsAAGhp.cos_p20:S(0,18)$XAEBTnbIqsAAGhp.sin_p20:S(0,18)$XAEBTnbIqsAAGhp.false_easting:S(0,18)$XAEBTnbIqsAAGhp.false_northing:S(0,18)$XAEBTnbIqsAAGhp.es:S(0,18)$XAEBTnbIqsAAGhp.e:S(0,18)$XAEBTnbIqsAAGhp.lat_origin:S(0,18)$XAEBTnbIqsAAGhp.lon_origin:S(0,18)$XAEBTnbIqsAAGhp.scale_factor:S(0,18)$XAEBTnbIqsAAGhp.r_minor:S(0,18)$XAEBTnbIqsAAGhp.r_major:S(0,18)genrpt:P(0,20);(0,18);(10,3)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06omerfor.cBbss.bssDdata.dataDrodata.rodatalogcos$XBEBTnbIqsAAGhp.omerfor.__func__omerforadjust_lonp_erroratancenlatcenlontansinasinzoffsetpgenrptradius2ptitletsfnzfabspowtsincossqrt$XAEBTnbIqsAAGhp.u$XAEBTnbIqsAAGhp.cosaz$XAEBTnbIqsAAGhp.sinaz$XAEBTnbIqsAAGhp.cosgam$XAEBTnbIqsAAGhp.singam$XAEBTnbIqsAAGhp.lon_origin$XAEBTnbIqsAAGhp.el$XAEBTnbIqsAAGhp.d$XAEBTnbIqsAAGhp.al$XAEBTnbIqsAAGhp.bl$XAEBTnbIqsAAGhp.cos_p20$XAEBTnbIqsAAGhp.sin_p20$XAEBTnbIqsAAGhp.e$XAEBTnbIqsAAGhp.es$XAEBTnbIqsAAGhp.false_easting$XAEBTnbIqsAAGhp.false_northing$XAEBTnbIqsAAGhp.lat_origin$XAEBTnbIqsAAGhp.scale_factor$XAEBTnbIqsAAGhp.r_minor$XAEBTnbIqsAAGhp.r_major$XBEBTnbIqsAAGhp.omerforint.__func__omerforint X.26cXx`ksx'x?p[ho`XPH@80(" B^|X / / . . - - , , + + $* (* 4. 8. D/ H/ \ ` p) t) ) ) ( ( , , ' ' & &   ) ) ' '    ) $) 8D H P) T) d& h& t x  % % / / % % - - $ $ (, ,, <D H \ ` h l p# t#   " " ( ( , , ' ' % % &  & 8# <# H# L# \ ` h l , ,   # #   # #   (D# H# d% h% " "   / / . . - -    * * +  + 8T X d (h (|# # % % ! !   0 0 @ @(0! 4! DL, P, `h, l, |   8 8 ( (          ,4, 8, D H \$ `$ l% p% # #        $ $ % % # $# 4  8  D L P d  t x  `  `   ( (   ( ( D T% X% p % %  " "    (  ( " " D @ H @ ` H d H h 8 l 8  8  8  H  H  8  8  (  ( % %  (  D! H! X! \! p  |% %   # #    0  0     0 $ 0 , 0 < H 0 L 0 T X d p 0 t 0 |                8  8$ (( (8@ D X  \  h |, ,  8 8 ( (   @ @     $ ( , 0 @H, L, X \ p$ t$ % % # #        $ $ % % 4# 8# H L X` d x   ! ! , 8% <% Thp 8t 8x (| (  ( ( " " % % 0 4 @ (D (T X d (h (x |   % %  P P$ $ % % <$ @$ T X l p  % %   $ $  8 8% %    4 8 L P d$ h$ |% %      ` ` $ $  (  (  4D% H% ` d x* |*     + +     4 @k%+t 7hGFx  Q-(_@hBpEh xH  omerinv.o/ 1073924746 1032 20 100644 24520 ` ELF]p4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㾈'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?????! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ! #`;XX@@! !   !   DD?! !   ;X@X?#`?%? !   ! ;XX;X@X @`…B;X@X! $ $ !   !    B!    B B ! $ $ !   ;X@X! ! ! $ $ ! ! $ $ ! ! $ $ !   !   !   ;XX;XX;X@X! $ $ ;X@X?!    B!    B! $ $ !   B! B! 3!   ! !   ??> Z! B;X@X@?@!   ??> Z! B;X@X?@!   ?@@?!   !   ;XX;X@X @! $ $ ! @!   !   ;XX;X@X!   ! ;XX@!   !   ;XX;X@X @! ĉ! B?8;X@X!    ;X@X?0?8?0;X@X @;X@X!    ! $ $ ! B! ;XX@!   ;X@X!   ;X@X!   ;X@X?! |! ! B;X@X! l0! #`;XX@@! #`;XX@@!   ! '!   !    ?!   B! B;X@X!    ;X@X @! $ $ '!   !    ¿#?!   B! B;X@X!    ;X@X @! $ $  !  @@ ';X@X?(!   (;XX;XX;X@X?h;X@X?(!   (;XX;XX;X@X?`h!   ;XX;X@X?x`!   ;XX;X@X?p!   x ?@@! ĉ! B?8!   Bpx B…B ?Xpx…B?P?HH!  ! ! B?H!  ! ! BB??HB! D?X?!   DH B;X@X艧 @P ;X@X   ! $ $ !   ;X@X?H!   H B;X@X8 ;X@X?0!   ?0;X@X @;X@X?! B! ;XX@! B! ;XX@! B! ;XX@! B! ;XX@;X@X!  !  @@ ';X@X?! ! ! B;X@X!  !  @@ '!   ;X@X! ! B;X@X!  !  @@ n'0! #`;XX@@! #`;XX@@!   ! '!   !    ?!   B! B;X@X!    ;X@X @! $ $ '!   !    ¿#?!   B! B;X@X!    ;X@X @! $ $ '('X'T'P'L'H'DDH?LP?!   ?!   ?'!    B!    B?!    B!    BB?!   B?!   #ȉ B!    ;X@X?! ĉ! B?! ĉB! B?!    B!    ;X@X?!    B!    BB؅ ?;X@X! B;X@X!  %!   T$ $ !  ! ! BX$ $  ! ! BX$ $ m! !    ?!   ?! B…;X@X ;XX;X@X?!   ;XX;XX@X$ $  <'!    B!    ;X@X?!   ?!    B!    B;XX;X@X!    ?;X@XT$ $ 'OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-init?@=|׽?@Lc˰@ !TD- !TD-@omerinvintomerinv[ d!d+8,8-<@ʊ4 $ =$E g ~        ' ; T m       ) B omerinv.c/ecs/hdfeos/gctp/src/omerinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbKqsAAGip./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o omerinv.o omerinv.c -W0,-xp\$XAEBTnbKqsAAGip.omerinvint$XBEBTnbKqsAAGip.omerinvint.__func__omerinv$XBEBTnbKqsAAGip.omerinv.__func__$XAEBTnbKqsAAGip.cosaz$XAEBTnbKqsAAGip.sinaz$XAEBTnbKqsAAGip.cosgam$XAEBTnbKqsAAGip.singam$XAEBTnbKqsAAGip.u$XAEBTnbKqsAAGip.el$XAEBTnbKqsAAGip.d$XAEBTnbKqsAAGip.ts$XAEBTnbKqsAAGip.al$XAEBTnbKqsAAGip.bl$XAEBTnbKqsAAGip.cos_p20$XAEBTnbKqsAAGip.sin_p20$XAEBTnbKqsAAGip.false_easting$XAEBTnbKqsAAGip.false_northing$XAEBTnbKqsAAGip.es$XAEBTnbKqsAAGip.e$XAEBTnbKqsAAGip.lat_origin$XAEBTnbKqsAAGip.lon_origin$XAEBTnbKqsAAGip.scale_factor$XAEBTnbKqsAAGip.r_minor$XAEBTnbKqsAAGip.r_majorC d!d+8,8-<@ʊр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$    Ƞ ؠ    ! . ; H U a m x x p h ` X P H ɀ@ Ҁ8 ۀ0 ( DHDIDJDKDLDMDO$DPLDQpDSDTDUDV4DWDXLDZLD[dD\|D`DaDb DcPDeDfDhDDkLDl`DqDrDsDt DvTdDxdDyDzD~DDD`D|DDD DHDpD   D D    D D D D ,D dD D D D D ,D DD TD pD D D D D hD D D D 0D XD D  D D  D DlDlDDDD D D4D\DDD , DG$zTX4ǀрۀ D4DPDlDpDDDD@DdDDDDDDD`D|DDDDLDDDDD`|D|, D[(!1z(!1(!1(!1q(!1(!0(!0+(!0G(!0c(!0(!0o(!0V(!0(!/(!0/,(!0CG(!/k(!12(!/(!/(!/$$)$S$m$$$$$$$3$Q$e$y$$$$$$$bomerinv.c/ecs/hdfeos/gctp/src/omerinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbKqsAAGip.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.homerinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)azimuth:p(0,18)lon_orig:p(0,18)lat_orig:p(0,18)false_east:p(0,18)false_north:p(0,18)lon1:p(0,18)lat1:p(0,18)lon2:p(0,18)lat2:p(0,18)mode:p(0,4)temp:(0,18)con:(0,18)com:(0,18)h:(0,18)l:(0,18)ts1:(0,18)ts2:(0,18)j:(0,18)p:(0,18)dlon:(0,18)f:(0,18)g:(0,18)gama:(0,18)sinphi:(0,18)omerinv.c$XBEBTnbKqsAAGip.omerinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)omerinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)theta:(0,18)t:(0,18)con:(0,18)vs:(0,18)us:(0,18)q:(0,18)s:(0,18)ts1:(0,18)vl:(0,18)ul:(0,18)flag:(0,4)$XBEBTnbKqsAAGip.omerinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbKqsAAGip.cosaz:S(0,18)$XAEBTnbKqsAAGip.sinaz:S(0,18)$XAEBTnbKqsAAGip.cosgam:S(0,18)$XAEBTnbKqsAAGip.singam:S(0,18)$XAEBTnbKqsAAGip.u:S(0,18)$XAEBTnbKqsAAGip.el:S(0,18)$XAEBTnbKqsAAGip.d:S(0,18)$XAEBTnbKqsAAGip.ts:S(0,18)$XAEBTnbKqsAAGip.al:S(0,18)$XAEBTnbKqsAAGip.bl:S(0,18)$XAEBTnbKqsAAGip.cos_p20:S(0,18)$XAEBTnbKqsAAGip.sin_p20:S(0,18)$XAEBTnbKqsAAGip.false_easting:S(0,18)$XAEBTnbKqsAAGip.false_northing:S(0,18)$XAEBTnbKqsAAGip.es:S(0,18)$XAEBTnbKqsAAGip.e:S(0,18)$XAEBTnbKqsAAGip.lat_origin:S(0,18)$XAEBTnbKqsAAGip.lon_origin:S(0,18)$XAEBTnbKqsAAGip.scale_factor:S(0,18)$XAEBTnbKqsAAGip.r_minor:S(0,18)$XAEBTnbKqsAAGip.r_major:S(0,18)genrpt:P(0,20);(0,18);(10,3)asinz:P(0,18);(0,18)phi2z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)exp:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06omerinv.cBbss.bssDdata.dataDrodata.rodataatan2cosphi2zexp$XBEBTnbKqsAAGip.omerinv.__func__omerinvadjust_lonp_erroratancenlatcenlontansinasinzoffsetpgenrptradius2ptitletsfnzfabspowtsincossqrt$XAEBTnbKqsAAGip.u$XAEBTnbKqsAAGip.cosaz$XAEBTnbKqsAAGip.sinaz$XAEBTnbKqsAAGip.cosgam$XAEBTnbKqsAAGip.singam$XAEBTnbKqsAAGip.lon_origin$XAEBTnbKqsAAGip.el$XAEBTnbKqsAAGip.d$XAEBTnbKqsAAGip.ts$XAEBTnbKqsAAGip.al$XAEBTnbKqsAAGip.bl$XAEBTnbKqsAAGip.cos_p20$XAEBTnbKqsAAGip.sin_p20$XAEBTnbKqsAAGip.e$XAEBTnbKqsAAGip.es$XAEBTnbKqsAAGip.false_easting$XAEBTnbKqsAAGip.false_northing$XAEBTnbKqsAAGip.lat_origin$XAEBTnbKqsAAGip.scale_factor$XAEBTnbKqsAAGip.r_minor$XAEBTnbKqsAAGip.r_major$XBEBTnbKqsAAGip.omerinvint.__func__omerinvint P.48>B[dlw3Kxgp{h`XPH@80#(B b~P 2 2 1 1 0 0 / / . . $- (- 41 81 D2 H2 \ ` p, t, , , + + / / * * ) )   , , * *    , $, 8D H P, T, d) h) t x  ( ( 2 2 ( ( 0 0 ' ' (/ ,/ <D H \ ` d& h& t x |% %   $ $ + + / / * * & & (  ( 4) 8) P% T% `% d% t x   / /   % %    % % 0 4 @\% `% x& |& ( ( $ $   2 2 1 1 0  0   (0- 4- @. D. \x |  ( (% % ( ( #  # 0 04 0< @@ @LT# X# hp/ t/ / /    8 8 ( (   " " ! ! (4 8 < @ PX/ \/ h l ' ' ( ( % %       ' ' $( (( D% H% X  \  h p t     `  `   + +  0 <+ @+ h x( |(  ( (  $ $    (  ( $ $ h @ l @  H  H  8  8  8  8  H  H  8  8  (  ( ( ( 0 L h# l# |# #  ( (   % %    0  0 ( , 8 D 0 H 0 P T ` l 0 p 0 x |   0  0             $ ( @ 8D 8H (L (\d h |    / /  8 8 ( (   @ @ " $" (! ,! <H L P T dl/ p/ |  ' ' ( ( % %       (' ,' 8( <( X% \% l p |    (- ,- D. H. d h |        ( (  ' ' $ 4 8 D (H (X \ h (l (x( |( ' ' ! ! " "      4# 8# T X l 8p 8t (x ( 8 8 ( (  ( ( $ $   0<+ @+ d ( ( ' ' # # ! ! " " (0( 4( X 4 HH^c% +  7[F0  Q,_@(hApDP xHT  orthfor.o/ 1073924747 1032 20 100644 10824 ` ELF'4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ;X@X?;XX@@;X@X?!    B!   ؉ Bȅ BB?! ?!  ;X@X!  ;!   ?!    Bؽ B?;X@X @BT$ $ !   !    B!    B!   ؉ Bȅ B… BBX$ $  !  @@ ''ORTHOGRAPHICPoint can not be projectedorth-for?=|׽orthforintorthfor) d!d+8,8-<@ʋ4 $ =$E g       orthfor.c/ecs/hdfeos/gctp/src/orthfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbLqsAAGjp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o orthfor.o orthfor.c -W0,-xp\$XAEBTnbLqsAAGjp.orthforint$XBEBTnbLqsAAGjp.orthforint.__func__orthfor$XBEBTnbLqsAAGjp.orthfor.__func__$XAEBTnbLqsAAGjp.cos_p14$XAEBTnbLqsAAGjp.sin_p14$XAEBTnbLqsAAGjp.false_easting$XAEBTnbLqsAAGjp.false_northing$XAEBTnbLqsAAGjp.lat_origin$XAEBTnbLqsAAGjp.lon_center$XAEBTnbLqsAAGjp.r_major d!d+8,8-<@ʋр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B N ZT dX4 n |    DS4DT\DU|DVDWDX DZ D\D`Da(Dc( , Dd88 (!/(!/>(!/e(!/w(!/[(!/?(!/&$$.$D$]$s$$$$$$borthfor.c/ecs/hdfeos/gctp/src/orthfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbLqsAAGjp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.horthforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)orthfor.c$XBEBTnbLqsAAGjp.orthforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)orthfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sinphi:(0,18)cosphi:(0,18)dlon:(0,18)coslon:(0,18)ksp:(0,18)g:(0,18)$XBEBTnbLqsAAGjp.orthfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbLqsAAGjp.cos_p14:S(0,18)$XAEBTnbLqsAAGjp.sin_p14:S(0,18)$XAEBTnbLqsAAGjp.false_easting:S(0,18)$XAEBTnbLqsAAGjp.false_northing:S(0,18)$XAEBTnbLqsAAGjp.lat_origin:S(0,18)$XAEBTnbLqsAAGjp.lon_center:S(0,18)$XAEBTnbLqsAAGjp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06orthfor.cBbss.bssDdata.dataDrodata.rodatap_errorsinfabscosadjust_lon$XBEBTnbLqsAAGjp.orthfor.__func__orthforoffsetporigincenlonmerradiusptitletsincos$XAEBTnbLqsAAGjp.cos_p14$XAEBTnbLqsAAGjp.sin_p14$XAEBTnbLqsAAGjp.false_easting$XAEBTnbLqsAAGjp.false_northing$XAEBTnbLqsAAGjp.lat_origin$XAEBTnbLqsAAGjp.lon_center$XAEBTnbLqsAAGjp.r_major$XBEBTnbLqsAAGjp.orthforint.__func__orthforint 8.6:?CN#pHx0( 4Pi l p                   $ 4< @ PX \ h l    4D P T h l             D H T X l p     4 85+%#+$ 7)F(  Q_h!p#  x$  orthinv.o/ 1073924748 1032 20 100644 12080 ` ELF,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?!   ! B !  @@ '!    ;X@X?ؠТ;XX@@!   T$ $ ;X@X!  !   X$ $ '!    BЉ B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ `'!   ?;XX;X@X;X@XT$ $ I'?!   ?X  ;X@X @?;X@X!  ;X@X! !   ?Љ B!    B B;XX;X@X@;X@XT$ $ 'ORTHOGRAPHICInput data errororth-inv>z򚼯H=|׽@ !TD-?orthinvintorthinv) d!d+8,8-<@ʌ4 $ =$E g       orthinv.c/ecs/hdfeos/gctp/src/orthinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbMqsAAGkp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o orthinv.o orthinv.c -W0,-xp\$XAEBTnbMqsAAGkp.orthinvint$XBEBTnbMqsAAGkp.orthinvint.__func__orthinv$XBEBTnbMqsAAGkp.orthinv.__func__$XAEBTnbMqsAAGkp.cos_p14$XAEBTnbMqsAAGkp.sin_p14$XAEBTnbMqsAAGkp.false_easting$XAEBTnbMqsAAGkp.false_northing$XAEBTnbMqsAAGkp.lat_origin$XAEBTnbMqsAAGkp.lon_center$XAEBTnbMqsAAGkp.r_major% d!d+8,8-<@ʌр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B L VT bX4 n x   DR4DSPDTlDUDWDXDZD[ D\,D]HpD_pD`DbDcDd(PDfPxDhxDiDmDn(00Dq0DrxDsDu< , DvLL (!/ (!/*(!/Q(!/wy(!/[(!/?(!/&$$$/$E$^$t$$$$$$$$borthinv.c/ecs/hdfeos/gctp/src/orthinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbMqsAAGkp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.horthinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)orthinv.c$XBEBTnbMqsAAGkp.orthinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)orthinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)con:(0,18)$XBEBTnbMqsAAGkp.orthinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbMqsAAGkp.cos_p14:S(0,18)$XAEBTnbMqsAAGkp.sin_p14:S(0,18)$XAEBTnbMqsAAGkp.false_easting:S(0,18)$XAEBTnbMqsAAGkp.false_northing:S(0,18)$XAEBTnbMqsAAGkp.lat_origin:S(0,18)$XAEBTnbMqsAAGkp.lon_center:S(0,18)$XAEBTnbMqsAAGkp.r_major:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06orthinv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonfabsasinzp_errorsqrt$XBEBTnbMqsAAGkp.orthinv.__func__orthinvoffsetporigincenlonmerradiusptitletsincos$XAEBTnbMqsAAGkp.cos_p14$XAEBTnbMqsAAGkp.sin_p14$XAEBTnbMqsAAGkp.false_easting$XAEBTnbMqsAAGkp.false_northing$XAEBTnbMqsAAGkp.lat_origin$XAEBTnbMqsAAGkp.lon_center$XAEBTnbMqsAAGkp.r_major$XBEBTnbMqsAAGkp.orthinvint.__func__orthinvint 8(.28CHNV[3}\0( %A]v( l p                   $ 4< @ PX \ h l     D T X d h            0 4 X \ x |                $ 8 < dx      @ H L h p t      4  8-;%C+D 7)F H  Q%_# h$p&\ x(L  polyfor.o/ 1073924749 1032 20 100644 13216 ` ELF1H4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   !   !   !   !   ;XX;XX;XX#\#`#d#h@! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X' 'X'T'P'L'H'DDH?LP?!   ;X@X?;X@X!  #!   !   Ѕ BBT$ $ !   !   !    BX$ $ |;XX@@!   !   !   !   ;XX;XX;XX#\#`#d#h@?!   ;XX;XX;X@X? B?!   ?!    B?;X@X @ BT$ $ !   ?!   ?!   ??! ?;X@X B B BBX$ $ 'POLYCONIC?>z򚼯Hpolyforintpolyfor d!d+8,8-<@ʍ4 $ =$E g         2 N j  polyfor.c/ecs/hdfeos/gctp/src/polyfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbNqsAAGlp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o polyfor.o polyfor.c -W0,-xp\$XAEBTnbNqsAAGlp.polyforint$XBEBTnbNqsAAGlp.polyforint.__func__polyfor$XBEBTnbNqsAAGlp.polyfor.__func__$XAEBTnbNqsAAGlp.false_easting$XAEBTnbNqsAAGlp.false_northing$XAEBTnbNqsAAGlp.ml0$XAEBTnbNqsAAGlp.es$XAEBTnbNqsAAGlp.e$XAEBTnbNqsAAGlp.e3$XAEBTnbNqsAAGlp.e2$XAEBTnbNqsAAGlp.e1$XAEBTnbNqsAAGlp.e0$XAEBTnbNqsAAGlp.lat_origin$XAEBTnbNqsAAGlp.lon_center$XAEBTnbNqsAAGlp.r_minor$XAEBTnbNqsAAGlp.r_major] d!d+8,8-<@ʍр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ i w    d Ҁ ބD4dD5xD6D7D8D9D;D<D=(D>TD?D@DADBDFDGDHDIDJDKD , DLTT 0$ c o {T X4     D]4D^\D`DaDeDf(DgDhDiDjLDm , Dn(!/5(!/](!0Dz(!/(!/(!00(!0(!0(!/!(!/rE(!/Vi(!/=(!/$$$$$$+$E$c$y$$$$$$"$6$I$\bpolyfor.c/ecs/hdfeos/gctp/src/polyfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbNqsAAGlp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpolyforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)polyfor.c$XBEBTnbNqsAAGlp.polyforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)polyfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sinphi:(0,18)cosphi:(0,18)con:(0,18)ml:(0,18)ms:(0,18)$XBEBTnbNqsAAGlp.polyfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbNqsAAGlp.false_easting:S(0,18)$XAEBTnbNqsAAGlp.false_northing:S(0,18)$XAEBTnbNqsAAGlp.ml0:S(0,18)$XAEBTnbNqsAAGlp.es:S(0,18)$XAEBTnbNqsAAGlp.e:S(0,18)$XAEBTnbNqsAAGlp.e3:S(0,18)$XAEBTnbNqsAAGlp.e2:S(0,18)$XAEBTnbNqsAAGlp.e1:S(0,18)$XAEBTnbNqsAAGlp.e0:S(0,18)$XAEBTnbNqsAAGlp.lat_origin:S(0,18)$XAEBTnbNqsAAGlp.lon_center:S(0,18)$XAEBTnbNqsAAGlp.r_minor:S(0,18)$XAEBTnbNqsAAGlp.r_major:S(0,18)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06polyfor.cBbss.bssDdata.dataDrodata.rodatacossinmsfnztsincosfabsadjust_lon$XBEBTnbNqsAAGlp.polyfor.__func__polyforoffsetporigincenlonmerradius2ptitlemlfne3fne2fne1fne0fnsqrt$XAEBTnbNqsAAGlp.ml0$XAEBTnbNqsAAGlp.e3$XAEBTnbNqsAAGlp.e2$XAEBTnbNqsAAGlp.e1$XAEBTnbNqsAAGlp.e0$XAEBTnbNqsAAGlp.e$XAEBTnbNqsAAGlp.es$XAEBTnbNqsAAGlp.false_easting$XAEBTnbNqsAAGlp.false_northing$XAEBTnbNqsAAGlp.lat_origin$XAEBTnbNqsAAGlp.lon_center$XAEBTnbNqsAAGlp.r_minor$XAEBTnbNqsAAGlp.r_major$XBEBTnbNqsAAGlp.polyforint.__func__polyforint h.26<DITv~`XPH@)8<0P(o  dx& |& % % $ $ # # " " ! ! % % & &   ( , 8 < LT X d h x                $ ( 4 8 D H T# X#     & & % % $ $ # #  ! $! 0" 4" L$ $      ! ! &  & D" H" T& X& d h          ( , T p! t! & & " " & &     $ 44 PhP `#%+  7F @  Q]_%Ih&)p) x+  polyinv.o/ 1073924750 1032 20 100644 12764 ` ELF/4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   !   !   !   !   ;XX;XX;XX#\#`#d#h@! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'8'X'T'P'L'H'DDH?LP?!   ?!   ?!   !    …B?';X@X!  !    !   BT$ $ ! X$ $ bB!    …BB?!   !   !   !   !   ؠX;XX;XX;XX#\#`#d#h#l#p#t#x#|@#@''̀  J''Љ B!    ;X@X! ?X  ;X@X !   B;X@XT$ $ 'POLYCONIC?>z򚼯Hpolyinvintpolyinv d!d+8,8-<@ʎ4 $ =$E g         ; W p polyinv.c/ecs/hdfeos/gctp/src/polyinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbOqsAAGmp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o polyinv.o polyinv.c -W0,-xp\$XAEBTnbOqsAAGmp.polyinvint$XBEBTnbOqsAAGmp.polyinvint.__func__polyinv$XBEBTnbOqsAAGmp.polyinv.__func__$XAEBTnbOqsAAGmp.false_easting$XAEBTnbOqsAAGmp.false_northing$XAEBTnbOqsAAGmp.ml0$XAEBTnbOqsAAGmp.es$XAEBTnbOqsAAGmp.e3$XAEBTnbOqsAAGmp.e2$XAEBTnbOqsAAGmp.e1$XAEBTnbOqsAAGmp.e0$XAEBTnbOqsAAGmp.lat_origin$XAEBTnbOqsAAGmp.lon_center$XAEBTnbOqsAAGmp.r_minor$XAEBTnbOqsAAGmp.r_major! d!d+8,8-<@ʎр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ i w    d Ҁ ބD4dD5xD6D7D8D9D;D<D=(D>TD?D@DADEhDFxDGDHDIDJ , DK(( 0$ c m wT X4    D]4D^PD_lD`DaDcDdDhDiHDjDk DlDo , Dp (!/!(!/I(!0/f(!/(!0(!0(!/(!/(!/p(!/T:(!/;[(!/"|$$$$$$$^$x$$$$$$ $ bpolyinv.c/ecs/hdfeos/gctp/src/polyinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbOqsAAGmp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpolyinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)polyinv.c$XBEBTnbOqsAAGmp.polyinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)polyinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)al:(0,18)b:(0,18)c:(0,18)iflg:(0,4)$XBEBTnbOqsAAGmp.polyinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbOqsAAGmp.false_easting:S(0,18)$XAEBTnbOqsAAGmp.false_northing:S(0,18)$XAEBTnbOqsAAGmp.ml0:S(0,18)$XAEBTnbOqsAAGmp.es:S(0,18)$XAEBTnbOqsAAGmp.e3:S(0,18)$XAEBTnbOqsAAGmp.e2:S(0,18)$XAEBTnbOqsAAGmp.e1:S(0,18)$XAEBTnbOqsAAGmp.e0:S(0,18)$XAEBTnbOqsAAGmp.lat_origin:S(0,18)$XAEBTnbOqsAAGmp.lon_center:S(0,18)$XAEBTnbOqsAAGmp.r_minor:S(0,18)$XAEBTnbOqsAAGmp.r_major:S(0,18)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)asinz:P(0,18);(0,18)phi4z:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,23);(0,23)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06polyinv.cBbss.bssDdata.dataDrodata.rodatasinasinzadjust_lonphi4zfabs$XBEBTnbOqsAAGmp.polyinv.__func__polyinvoffsetporigincenlonmerradius2ptitlemlfne3fne2fne1fne0fn$XAEBTnbOqsAAGmp.ml0$XAEBTnbOqsAAGmp.e3$XAEBTnbOqsAAGmp.e2$XAEBTnbOqsAAGmp.e1$XAEBTnbOqsAAGmp.e0$XAEBTnbOqsAAGmp.es$XAEBTnbOqsAAGmp.false_easting$XAEBTnbOqsAAGmp.false_northing$XAEBTnbOqsAAGmp.lat_origin$XAEBTnbOqsAAGmp.lon_center$XAEBTnbOqsAAGmp.r_minor$XAEBTnbOqsAAGmp.r_major$XBEBTnbOqsAAGmp.polyinvint.__func__polyinvint `.28CIN#pXxXPH@ 802(Q q 8x# |# " " ! !     " " # #   ( , 8 < LT X d h x                   ( , `h l x | # # " " ! !              # #     $# (# 8! <! X \ # #           < |# # ! !  4 ` +% +  7 F   Q4!_$Uh% p(` x*h  psfor.o/ 1073924751 1032 20 100644 12996 ` ELF0l4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textH'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ ! $ $ ! $ $ !  ! ! $ $ ! ! $ $ ! ! $ $ ;X@X! ! B;X@X! <! ! $ $ !   !    B?;XX@@!   ;XX;XX;X@X! $ $ !   ;XX;XX;X@X! $ $ ! @!   !   ;XX;X@X!   ;X@X;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ;X@X @?!   腡 B?;X@X?!   ;XX;XX;X@X?!   ! B!   !    B B!    ?!   ! B B!    ?!   н B?;X@X @!   BT$ $ !   #н B?;X@X @!   BX$ $ 'POLAR STEREOGRAPHIC?@ !TD-?=|׽@psforintpsfor dd'8(8)<@ʏ4$ 1$7 W v       " 6 I ] v psfor.c/ecs/hdfeos/gctp/src/psfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbPqsAAGnp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o psfor.o psfor.c -W0,-xp\$XAEBTnbPqsAAGnp.psforint$XBEBTnbPqsAAGnp.psforint.__func__psfor$XBEBTnbPqsAAGnp.psfor.__func__$XAEBTnbPqsAAGnp.false_easting$XAEBTnbPqsAAGnp.false_northing$XAEBTnbPqsAAGnp.tcs$XAEBTnbPqsAAGnp.mcs$XAEBTnbPqsAAGnp.ind$XAEBTnbPqsAAGnp.fac$XAEBTnbPqsAAGnp.center_lat$XAEBTnbPqsAAGnp.center_lon$XAEBTnbPqsAAGnp.e4$XAEBTnbPqsAAGnp.e$XAEBTnbPqsAAGnp.es$XAEBTnbPqsAAGnp.r_minor$XAEBTnbPqsAAGnp.r_major dd'8(8)<@ʏ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ c q    d € ΀ ڀ  D:dD;xD<D=D>D?D@DA,DBXDClDEDFDHDIDJ8DL8DMPDNxDODP DT DU0DVdDWDY , DZ C$ t  T X4    € ЀDk4DlxDmDnDoDpDrPDsDtDv< , DwLL(!/ C(!.k(!/(!/(!/(!/(!/(!/d'(!/PC(!/=^(!/)z(!.(!.$$$$$<$_$$$$$$$ bpsfor.c/ecs/hdfeos/gctp/src/psfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbPqsAAGnp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpsforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)c_lon:p(0,18)c_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)con1:(0,18)sinphi:(0,18)cosphi:(0,18)psfor.c$XBEBTnbPqsAAGnp.psforint.__func__:V(0,21)=ar(0,4);0;8;(0,22)=k(0,1)psfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)con1:(0,18)con2:(0,18)rh:(0,18)sinphi:(0,18)ts:(0,18)$XBEBTnbPqsAAGnp.psfor.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)$XAEBTnbPqsAAGnp.false_easting:S(0,18)$XAEBTnbPqsAAGnp.false_northing:S(0,18)$XAEBTnbPqsAAGnp.tcs:S(0,18)$XAEBTnbPqsAAGnp.mcs:S(0,18)$XAEBTnbPqsAAGnp.ind:S(0,18)$XAEBTnbPqsAAGnp.fac:S(0,18)$XAEBTnbPqsAAGnp.center_lat:S(0,18)$XAEBTnbPqsAAGnp.center_lon:S(0,18)$XAEBTnbPqsAAGnp.e4:S(0,18)$XAEBTnbPqsAAGnp.e:S(0,18)$XAEBTnbPqsAAGnp.es:S(0,18)$XAEBTnbPqsAAGnp.r_minor:S(0,18)$XAEBTnbPqsAAGnp.r_major:S(0,18)e4fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06psfor.cBbss.bssDdata.dataDrodata.rodatacossinadjust_lon$XBEBTnbPqsAAGnp.psfor.__func__psforoffsetpcenlonradius2ptitletsfnzmsfnztsincosfabse4fnsqrt$XAEBTnbPqsAAGnp.tcs$XAEBTnbPqsAAGnp.mcs$XAEBTnbPqsAAGnp.ind$XAEBTnbPqsAAGnp.fac$XAEBTnbPqsAAGnp.center_lat$XAEBTnbPqsAAGnp.center_lon$XAEBTnbPqsAAGnp.e4$XAEBTnbPqsAAGnp.e$XAEBTnbPqsAAGnp.es$XAEBTnbPqsAAGnp.false_easting$XAEBTnbPqsAAGnp.false_northing$XAEBTnbPqsAAGnp.r_minor$XAEBTnbPqsAAGnp.r_major$XBEBTnbPqsAAGnp.psforint.__func__psforint h8,04?A_\emt|`XPH@820F(Y m8 x" |" ! !   ! ! " "       $, 0 < @ PX \ l p                      (0 (4 (H L P T ` d p t         $ 0 4 8@" D" P! T! lt x     , 0 D X \ |      " "     0" 4" @ 0D 0T X l p       4 @hG%W+X  7xF   Q _$h&r p(|P x*  psinv.o/ 1073924752 1032 20 100644 13080 ` ELF04(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B?;X@X! $ $ !   ;X@X! $ $ ! $ $ ! $ $ !  ! ! $ $ ! ! $ $ ! ! $ $ ;X@X! ! B;X@X! <! ! $ $ !   !    B?;XX@@!   ;XX;XX;X@X! $ $ !   ;XX;XX;X@X! $ $ ! @!   !   ;XX;X@X!   ;X@X;XX;X@X'`'X'T'P'L'H'DDH?LP?'!   !    B?!   !    B?B腠BB;X@X?!   ! B!    B!   !    B?!    B!   ! B?!   ?!   ؠ;XX;XX@ @X$ $ ̀ 5'! B!   !    BT$ $ 腠;XX;X@X?!   Љ B!   B;X@XT$ $ 'POLAR STEREOGRAPHIC?@ !TD-?=|׽@psinvintpsinv{ dd'8(8)<@ʐ4$ 1$7 W v       " 6 I b psinv.c/ecs/hdfeos/gctp/src/psinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbQqsAAGop./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o psinv.o psinv.c -W0,-xp\$XAEBTnbQqsAAGop.psinvint$XBEBTnbQqsAAGop.psinvint.__func__psinv$XBEBTnbQqsAAGop.psinv.__func__$XAEBTnbQqsAAGop.false_easting$XAEBTnbQqsAAGop.false_northing$XAEBTnbQqsAAGop.tcs$XAEBTnbQqsAAGop.mcs$XAEBTnbQqsAAGop.ind$XAEBTnbQqsAAGop.fac$XAEBTnbQqsAAGop.center_lat$XAEBTnbQqsAAGop.center_lon$XAEBTnbQqsAAGop.e4$XAEBTnbQqsAAGop.e$XAEBTnbQqsAAGop.r_minor$XAEBTnbQqsAAGop.r_major dd'8(8)<@ʐ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ c q    d € ΀ ڀ   D:dD;xD<D=D>D?D@DADB@DCTDEhDFDHDIDJ DL DM8DN`DODPDTDUDVLDWhDY , DZ M$ ~  T X4    ʀDj4Dk8DlhDmDnDoDq,DrhDsDtDuDv0Dy0DzTD} , D~(!.>(!/ f(!/(!/(!/(!/(!/l(!/P"(!/<>(!/)Y(!.z(!.$$$$$'$E$h$$$$$$ bpsinv.c/ecs/hdfeos/gctp/src/psinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbQqsAAGop.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpsinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)c_lon:p(0,18)c_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)con1:(0,18)sinphi:(0,18)cosphi:(0,18)es:(0,18)psinv.c$XBEBTnbQqsAAGop.psinvint.__func__:V(0,21)=ar(0,4);0;8;(0,22)=k(0,1)psinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)ts:(0,18)temp:(0,18)flag:(0,4)$XBEBTnbQqsAAGop.psinv.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)$XAEBTnbQqsAAGop.false_easting:S(0,18)$XAEBTnbQqsAAGop.false_northing:S(0,18)$XAEBTnbQqsAAGop.tcs:S(0,18)$XAEBTnbQqsAAGop.mcs:S(0,18)$XAEBTnbQqsAAGop.ind:S(0,18)$XAEBTnbQqsAAGop.fac:S(0,18)$XAEBTnbQqsAAGop.center_lat:S(0,18)$XAEBTnbQqsAAGop.center_lon:S(0,18)$XAEBTnbQqsAAGop.e4:S(0,18)$XAEBTnbQqsAAGop.e:S(0,18)$XAEBTnbQqsAAGop.r_minor:S(0,18)$XAEBTnbQqsAAGop.r_major:S(0,18)e4fn:P(0,18);(0,18)phi2z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06psinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonatan2phi2z$XBEBTnbQqsAAGop.psinv.__func__psinvoffsetpcenlonradius2ptitletsfnzmsfnztsincosfabse4fnsqrt$XAEBTnbQqsAAGop.tcs$XAEBTnbQqsAAGop.mcs$XAEBTnbQqsAAGop.ind$XAEBTnbQqsAAGop.fac$XAEBTnbQqsAAGop.center_lat$XAEBTnbQqsAAGop.center_lon$XAEBTnbQqsAAGop.e4$XAEBTnbQqsAAGop.e$XAEBTnbQqsAAGop.false_northing$XAEBTnbQqsAAGop.false_easting$XAEBTnbQqsAAGop.r_minor$XAEBTnbQqsAAGop.r_major$XBEBTnbQqsAAGop.psinvint.__func__psinvint `8,7=CAciqxXPH@806(J ]}8 x! |!     ! !      $ ( 8@ D T X h l |                   ( (0 4 8 < H L X \             (! ,! 8 < T\ ` p      4 8 H L x      ! !      ! !  0  00 4 D H l          4 8 L4 8`8PG%+ 7{F (  Q( _%3h&p(@ x+  robfor.o/ 1073924753 1032 20 100644 14196 ` ELF54(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ $ $! ! $ ($ ,! ! $ ($ ,! ! $ 0$ 4! ! $ 0$ 4! ! $ 8$ _ t     robfor.c/ecs/hdfeos/gctp/src/robfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbRqsAAGpp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o robfor.o robfor.c -W0,-xp\$XAEBTnbRqsAAGpp.robforint$XBEBTnbRqsAAGpp.robforint.__func__robfor$XBEBTnbRqsAAGpp.robfor.__func__$XAEBTnbRqsAAGpp.xlr$XAEBTnbRqsAAGpp.pr$XAEBTnbRqsAAGpp.false_northing$XAEBTnbRqsAAGpp.false_easting$XAEBTnbRqsAAGpp.R$XAEBTnbRqsAAGpp.lon_center3 d d)8*8+<@ʑπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L  D5LD6`D7tD8D:D;D<D=D>D?D@,DADDB\DCtDDDEDFDGDHDIDJDK4DLLDMdDN|DODPDQDRDSDT DU$DV<DWTDXlDYDZD[D\D]D^D_D`,DaDDc\DdDcDhDiDjDkDl, , Dm<< $ & 2 >T HX4 R ^ hD~4D\DDDD|DD`D( r, D88 (!// (!/(!.>(!.e(!.(!.$$$$$$2brobfor.c/ecs/hdfeos/gctp/src/robfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbRqsAAGpp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hrobforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)i:(0,4)robfor.c$XBEBTnbRqsAAGpp.robforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)robfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)p2:(0,18)ip1:(0,4)$XBEBTnbRqsAAGpp.robfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbRqsAAGpp.xlr:S(0,26)=ar(0,4);0;20;(0,18)$XAEBTnbRqsAAGpp.pr:S(0,27)=ar(0,4);0;20;(0,18)$XAEBTnbRqsAAGpp.false_northing:S(0,18)$XAEBTnbRqsAAGpp.false_easting:S(0,18)$XAEBTnbRqsAAGpp.R:S(0,18)$XAEBTnbRqsAAGpp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06robfor.cBbss.bssDdata.dataDrodata.rodatafabsadjust_lon$XBEBTnbRqsAAGpp.robfor.__func__robforoffsetpcenlonradiusptitle$XAEBTnbRqsAAGpp.xlr$XAEBTnbRqsAAGpp.pr$XAEBTnbRqsAAGpp.false_northing$XAEBTnbRqsAAGpp.false_easting$XAEBTnbRqsAAGpp.lon_center$XAEBTnbRqsAAGpp.R$XBEBTnbRqsAAGpp.robforint.__func__robforint p`-2=j^pHemt{ ` =L` d t x                          $ ( , 0 < (@ (D H T 0X 0\ ` l 8p 8t x  @ @   H H   P P   X X   ` `   h h   p p   , x0 x4 8 D H L P \ ` d h t x |                              $ ( 4 8 < @ L P T X d h l p |                             $  (  , 0 < @ D H T (X (\ `  0 0           4    8 8 @ @ H H4 8 L P d h x |  P P         $ 8 < L P h Pl P X X            8 P< Ph Xl Xx | 4  pp p  q% +  7 F   Q3_%h'mGp(p x*$  robinv.o/ 1073924755 1032 20 100644 16600 ` ELF>4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ $ $! ! $ ($ ,! ! $ ($ ,! ! $ 0$ 4! ! $ 0$ 4! ! $ 8$ h?FRrobinvintrobinv d d)8*8+<@ʓ4 $ 7$> _ t     robinv.c/ecs/hdfeos/gctp/src/robinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbTqsAAGqp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o robinv.o robinv.c -W0,-xp\$XAEBTnbTqsAAGqp.robinvint$XBEBTnbTqsAAGqp.robinvint.__func__robinv$XBEBTnbTqsAAGqp.robinv.__func__$XAEBTnbTqsAAGqp.xlr$XAEBTnbTqsAAGqp.pr$XAEBTnbTqsAAGqp.false_northing$XAEBTnbTqsAAGqp.false_easting$XAEBTnbTqsAAGqp.R$XAEBTnbTqsAAGqp.lon_center d d)8*8+<@ʓπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L  D8LD9`D:tD;D=D>D?D@DADBDC,DDDDE\DFtDGDHDIDJDKDLDMDN4DOLDPdDQ|DRDSDTDUDVDW DX$DY<DZTD[lD\D]D^D_D`DaDbDc,DdDDf\DgDfDkDlDmDnDo, , Dp<< $ & 0 :T FX4 R \ f o x     D4DPDlDDDDDD DDHDDDD4`D`D|DDDDD4DPDDDDDD((D(DX``D`Dl|D|DDDDDD|D , D (!//&(!/V(!.~(!.(!.(!.$$$2$H$^$|$brobinv.c/ecs/hdfeos/gctp/src/robinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbTqsAAGqp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hrobinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)i:(0,4)robinv.c$XBEBTnbTqsAAGqp.robinvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)robinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)yy:(0,18)p2:(0,18)u:(0,18)v:(0,18)t:(0,18)c:(0,18)phid:(0,18)y1:(0,18)ip1:(0,4)i:(0,4)$XBEBTnbTqsAAGqp.robinv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbTqsAAGqp.xlr:S(0,26)=ar(0,4);0;20;(0,18)$XAEBTnbTqsAAGqp.pr:S(0,27)=ar(0,4);0;20;(0,18)$XAEBTnbTqsAAGqp.false_northing:S(0,18)$XAEBTnbTqsAAGqp.false_easting:S(0,18)$XAEBTnbTqsAAGqp.R:S(0,18)$XAEBTnbTqsAAGqp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06robinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonp_errorfabs$XBEBTnbTqsAAGqp.robinv.__func__robinvoffsetpcenlonradiusptitle$XAEBTnbTqsAAGqp.xlr$XAEBTnbTqsAAGqp.pr$XAEBTnbTqsAAGqp.false_northing$XAEBTnbTqsAAGqp.false_easting$XAEBTnbTqsAAGqp.lon_center$XAEBTnbTqsAAGqp.R$XBEBTnbTqsAAGqp.robinvint.__func__robinvint px-8@Efpmu| !x EL` d t x                          $ ( , 0 < (@ (D H T 0X 0\ ` l 8p 8t x  @ @   H H   P P   X X   ` `   h h   p p   , x0 x4 8 D H L P \ ` d h t x |                              $ ( 4 8 < @ L P T X d h l p |                             $  (  , 0 < @ D H T (X (\ `  0 0          4      8 8 @ @   H H( P, P8 H XL X         8 8   , 0 D 8H 8p t  8 8     P P8 P< PL PP P\ l Xp X              8 $ 8 P @ T @ h l              8  8  @  @ $ ` ( ` 0 @ 4 @ < @ t x    h  h  8  8   p  p 4 8 H L d  h  |         8  8 4  0 p d P%+ 7F L  Q_,}h.#Op/t x0  sinfor.o/ 1073924756 1032 20 100644 8832 ` ELF (4(.shstrtab.text.bss.data1.data.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'x'X'T'P'L'H'DDH?LP?!   ;X@X?!   ཡ B?;X@X؉ @!   BT$ $ !   艡 B!   BX$ $ 'SINUSOIDALsinforintsinfor d d)8*8+<@ʔ4 $ 7$> _    sinfor.c/ecs/hdfeos/gctp/src/sinfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbUqsAAGrp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sinfor.o sinfor.c -W0,-xp\$XAEBTnbUqsAAGrp.sinforint$XBEBTnbUqsAAGrp.sinforint.__func__sinfor$XBEBTnbUqsAAGrp.sinfor.__func__$XAEBTnbUqsAAGrp.false_northing$XAEBTnbUqsAAGrp.false_easting$XAEBTnbUqsAAGrp.R$XAEBTnbUqsAAGrp.lon_center d d)8*8+<@ʔπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D.LD/`D0tD1D5D6D7D8D9 , D: $  * 6T @X4 JDH4DI\DJDK [, DL (!. (!. (!.(!.,$F$d$z$$$bsinfor.c/ecs/hdfeos/gctp/src/sinfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbUqsAAGrp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsinforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)sinfor.c$XBEBTnbUqsAAGrp.sinforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)sinfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)$XBEBTnbUqsAAGrp.sinfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbUqsAAGrp.false_northing:S(0,18)$XAEBTnbUqsAAGrp.false_easting:S(0,18)$XAEBTnbUqsAAGrp.R:S(0,18)$XAEBTnbUqsAAGrp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sinfor.cBbss.bssDdata.dataDrodata.rodatacosadjust_lon$XBEBTnbUqsAAGrp.sinfor.__func__sinforoffsetpcenlonradiusptitle$XAEBTnbUqsAAGrp.false_northing$XAEBTnbUqsAAGrp.false_easting$XAEBTnbUqsAAGrp.lon_center$XAEBTnbUqsAAGrp.R$XBEBTnbUqsAAGrp.sinforint.__func__sinforint -1< ]@dlsz  ` d t x              x |          4 H   # + 7F`  Q _h`p@ xh  sininv.o/ 1073924757 1032 20 100644 9656 ` ELF#`4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'h'X'T'P'L'H'DDH?LP?!   ?!   ?!    X$ $ X  ;X@X! ! B  !  @@ F'X  ;X@X! ! B?;X@X! $!   ??!   ?X  ;X@X؅ @Ѕ ȅB?;X@XT$ $  !   T$ $ 'SINUSOIDALInput data errorsinusoidal-inverse@ !TD-?=|׽sininvintsininv d d)8*8+<@ʕ4 $ 7$> _    sininv.c/ecs/hdfeos/gctp/src/sininv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbVqsAAGsp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sininv.o sininv.c -W0,-xp\$XAEBTnbVqsAAGsp.sininvint$XBEBTnbVqsAAGsp.sininvint.__func__sininv$XBEBTnbVqsAAGsp.sininv.__func__$XAEBTnbVqsAAGsp.false_northing$XAEBTnbVqsAAGsp.false_easting$XAEBTnbVqsAAGsp.R$XAEBTnbVqsAAGsp.lon_center d d)8*8+<@ʕπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D.LD/`D0tD1D5D6D7D8D9 , D: $  ( 2T >X4 JDH4DIPDJlDKDMDNDPDQ$LDSLDTDVDW V, DX (!. (!. (!.(!.'$A$_$u$$$$$bsininv.c/ecs/hdfeos/gctp/src/sininv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbVqsAAGsp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsininvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)sininv.c$XBEBTnbVqsAAGsp.sininvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)sininv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)temp:(0,18)$XBEBTnbVqsAAGsp.sininv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbVqsAAGsp.false_northing:S(0,18)$XAEBTnbVqsAAGsp.false_easting:S(0,18)$XAEBTnbVqsAAGsp.R:S(0,18)$XAEBTnbVqsAAGsp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sininv.cBbss.bssDdata.dataDrodata.rodataadjust_loncosp_errorfabs$XBEBTnbVqsAAGsp.sininv.__func__sininvoffsetpcenlonradiusptitle$XAEBTnbVqsAAGsp.false_northing$XAEBTnbVqsAAGsp.false_easting$XAEBTnbVqsAAGsp.lon_center$XAEBTnbVqsAAGsp.R$XBEBTnbVqsAAGsp.sininvint.__func__sininvint -8<DI"j@qy   ` d t x            x |              @ H L P T l t x       4 P 3@)%i+l 7 F  Q _h*pp x! @  somfor.o/ 1073924758 1032 20 100644 25520 ` ELFa04(.shstrtab.text.bss.data1.rodata.rodata1.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?\`?dh?lp?tx?|??! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !  …B! $ $  ?! ! $ $ ! $ $ '44! $ $ `T -! ! B?! ! ! $ $ ! ! ! X'44 B! B! $ $ ! ! $ $ +! ! B?! ! ! $ $ ! ! ! X'44 B! B! $ $ ! ! $ $ ! ! $ $ ! @!   !   ;XX;X@X X#`@@T#`@@! B! ;XX@!   ! B! ;XX@!   !   ;XX;X@X!   ! ;XX@;X@X! $ $ !   ;X@X! ! ! $ $ ;X@X! $ $ !   !   DD?!   !   DD?! !   …! $ $ #```B! B$`$`! !   ? ! $ $ ! !   ‰BB ! $ $ B B! $ $ ! ?xph`@@@jx?Xp?P?8h?H`?@ ' Q>`hpx'44?@@H@Xx! BB?XPp! BB?P8! BB?8Hh! BB?H@`! BB?@ ' Q ' H>`hpx'44?@@@Xx! BB?XPp! BB?P8! BB?8Hh! BB?H@`! BB?@ ' H! ?xph`@@@̚XxB?XPpB?P8B?8HhB?H@`B?@X! ! $ $ P! ! $ $ 8! ! $ $ H! ! $ $ @! ! $ $ ''X'T'P'L'H'DDH?LP?! ?0?(!   ?(! ! ?((! ! ?((? ?(! ! ! ?8!   ! B! ! B?8(! ! ! B?8'8?'!   8 BB?;X@X?;X@X0 ! B?! ! ?@! ! ?@8?@?;X@X @! ! BB?!    BB?;X@X?;X@X! ! B?! !   ? ;X@X @!    B?;X@X!    BB ?;X@X?B?;X@X! ?;X@X?;X@X0  ' 2G?!   ! B?! ! BB?H '䀤 9Ё  H +Ё ! ! B?8H ! ! B?8 #`@@#`@@ ' ;X@X?P#`%!    BP B?!   ? ;X@X @?;X@X @?`PDD;X@X ;X@X?X! ! X! …B?``;X@X;X@X?h;X@X?ppB?x!   !    B?;X@X @?x! !   xDB!   DB!   DB B;X@Xx @! $ $ !   B!   BB;X@X?!   D?h!   ?p! B;X@Xp @hB?`!   ?! B;X@X @`Bh!    B …X$ $ !   X   B$ $ !   p B?h!   ?p! B;X@Xp @hBh!    B …BT$ $ !   T   B$ $ X  ?T  !   BX$ $ !   BT$ $ 'X'X'T'P'L'H'DX``! B$`$`X  ;X@X?B?!   !    B?X  ;X@Xн @?! !   DB!   DB!   DB B;X@Xȅ @! $ $ #`%DB!   DB ;X@X`  DBDBB !   !    B… B?!   B!   BB;X@X?!    B!   B D$ $ D  ?X  ! B;X@X @H$ $ D  ?X  ! B;X@X @L$ $ !   !   BB ??X  ;X@X @P$ $ ?X  ! B;X@X @T$ $ SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: som-forward?@@XS?FR5@Yk6@` =p@v@o`?)O@X@Xl.@`)@m @Lc˰>. &֕@@@V@>@N@.@F>z򚼯H?!z!z@ !TD-@?z򚼯H?@?Fsomforintsomforsom_series50 iterations without conv ( d d)8*8+<@ʖ4 $ 7$> _         4 I ] p         somfor.c/ecs/hdfeos/gctp/src/somfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbWqsAAGtp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o somfor.o somfor.c -W0,-xp\$XAEBTnbWqsAAGtp.somforint$XBEBTnbWqsAAGtp.somforint.__func__somfor$XBEBTnbWqsAAGtp.somfor.__func__$XBEBTnbWqsAAGtp.som_series.__func__gsat_ratio$XAEBTnbWqsAAGtp.false_northing$XAEBTnbWqsAAGtp.false_easting$XAEBTnbWqsAAGtp.start$XAEBTnbWqsAAGtp.s$XAEBTnbWqsAAGtp.es$XAEBTnbWqsAAGtp.ca$XAEBTnbWqsAAGtp.sa$XAEBTnbWqsAAGtp.p21$XAEBTnbWqsAAGtp.xj$XAEBTnbWqsAAGtp.w$XAEBTnbWqsAAGtp.t$XAEBTnbWqsAAGtp.q$XAEBTnbWqsAAGtp.c3$XAEBTnbWqsAAGtp.c1$XAEBTnbWqsAAGtp.a4$XAEBTnbWqsAAGtp.a2$XAEBTnbWqsAAGtp.b$XAEBTnbWqsAAGtp.a$XAEBTnbWqsAAGtp.lon_centerz d d)8*8+<@ʖπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$   T X Ơ ՠ     # /| A I T _ j x  x p h ` X ǀP ԀH @ 8 D@|DDDEDFDGDHDI DKDL$DMDDNXxDRDTDUDVDW4<D[<D\TD]xD^DcDhDiDj<LDlLDmd|Do|DpDqDr Dt4DuTDvDwDxDyDzPD{xD|D}D~DDDPDXD`DhDpDxDDDDDD,DHDdDDDDDDD4DPDlDDDDDDD D D 8D XD xD D , D  I${TX4ȀӀ߀ #0;DxPpZhg`sXPH@80(ʀ ׀PD4D@DHDdDDDDDD8DlDpDxD|DDDDD<DDDDDDDDD DD0D8D@D`DDDDD D<DDD\DtDDDdDDDDDDDDD PD xD D D , D  V$DHLP TΠXۀDD<DXDdD0DDD\DDD$D X, D!V i(!/K(!/,(!/(!2k(!/(!0*(!0F(!/c(!0(!0(!0(!0(!1O(!1;(!1'$(!1@(!/~[(!/kv(!/$$$$$*$H$\$p$$$$$$$bsomfor.c/ecs/hdfeos/gctp/src/somfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbWqsAAGtp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsomforint:F(0,3);(0,18);(0,18);(0,4);(0,4);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4);(0,4);(0,18)r_major:p(0,18)r_minor:p(0,18)satnum:p(0,4)path:p(0,4)alf_in:p(0,18)lon:p(0,18)false_east:p(0,18)false_north:p(0,18)time:p(0,18)start1:p(0,4)flag:p(0,4)sat_ratio:p(0,18)i:(0,4)alf:(0,18)e2c:(0,18)e2s:(0,18)one_es:(0,18)dlam:(0,18)fb:(0,18)fa2:(0,18)fa4:(0,18)fc1:(0,18)fc3:(0,18)suma2:(0,18)suma4:(0,18)sumc1:(0,18)sumc3:(0,18)sumb:(0,18)somfor.c$XBEBTnbWqsAAGtp.somforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)somfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)y:p(0,23)x:p(0,23)n:(0,4)l:(0,4)delta_lon:(0,18)rlm:(0,18)tabs:(0,18)tlam:(0,18)xlam:(0,18)c:(0,18)xlamt:(0,18)ab2:(0,18)ab1:(0,18)xlamp:(0,18)sav:(0,18)d:(0,18)sdsq:(0,18)sd:(0,18)tanlg:(0,18)xtan:(0,18)tphi:(0,18)dp:(0,18)rlm2:(0,18)scl:(0,18)tlamp:(0,18)conv:(0,18)delta_lat:(0,18)radlt:(0,18)radln:(0,18)temp:(0,18)errorbuf:(0,24)=ar(0,4);0;79;(0,1)$XBEBTnbWqsAAGtp.somfor.__func__:V(0,25)=ar(0,4);0;6;(0,26)=k(0,1)som_series:f(0,20);(0,23);(0,23);(0,23);(0,23);(0,23);(0,23)fb:p(0,23)fa2:p(0,23)fa4:p(0,23)fc1:p(0,23)fc3:p(0,23)dlam:p(0,23)sd:(0,18)sdsq:(0,18)h:(0,18)sq:(0,18)fc:(0,18)$XBEBTnbWqsAAGtp.som_series.__func__:V(0,27)=ar(0,4);0;10;(0,28)=k(0,1)gsat_ratio:G(0,18)$XAEBTnbWqsAAGtp.false_northing:S(0,18)$XAEBTnbWqsAAGtp.false_easting:S(0,18)$XAEBTnbWqsAAGtp.start:S(0,18)$XAEBTnbWqsAAGtp.s:S(0,18)$XAEBTnbWqsAAGtp.es:S(0,18)$XAEBTnbWqsAAGtp.ca:S(0,18)$XAEBTnbWqsAAGtp.sa:S(0,18)$XAEBTnbWqsAAGtp.p21:S(0,18)$XAEBTnbWqsAAGtp.xj:S(0,18)$XAEBTnbWqsAAGtp.w:S(0,18)$XAEBTnbWqsAAGtp.t:S(0,18)$XAEBTnbWqsAAGtp.q:S(0,18)$XAEBTnbWqsAAGtp.c3:S(0,18)$XAEBTnbWqsAAGtp.c1:S(0,18)$XAEBTnbWqsAAGtp.a4:S(0,18)$XAEBTnbWqsAAGtp.a2:S(0,18)$XAEBTnbWqsAAGtp.b:S(0,18)$XAEBTnbWqsAAGtp.a:S(0,18)$XAEBTnbWqsAAGtp.lon_center:S(0,18)genrpt_long:P(0,20);(0,4);(10,3)genrpt:P(0,20);(0,18);(10,3)offsetp:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan:P(0,18);(0,18)asin:P(0,18);(0,18)sprintf:P(0,3);(10,3);(0,29)=*(0,30)=k(0,1);0@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06somfor.cBbss.bssDdata.dataDrodata.rodatasom_series$XBEBTnbWqsAAGtp.som_series.__func__logsqrtasinp_errorsprintfatantan$XAEBTnbWqsAAGtp.s$XBEBTnbWqsAAGtp.somfor.__func__somforsinfabscosoffsetpgenrptgenrpt_longradius2ptitle$XAEBTnbWqsAAGtp.c3$XAEBTnbWqsAAGtp.c1$XAEBTnbWqsAAGtp.a4$XAEBTnbWqsAAGtp.a2$XAEBTnbWqsAAGtp.xj$XAEBTnbWqsAAGtp.t$XAEBTnbWqsAAGtp.q$XAEBTnbWqsAAGtp.w$XAEBTnbWqsAAGtp.sa$XAEBTnbWqsAAGtp.ca$XAEBTnbWqsAAGtp.start$XAEBTnbWqsAAGtp.lon_center$XAEBTnbWqsAAGtp.p21$XAEBTnbWqsAAGtp.es$XAEBTnbWqsAAGtp.b$XAEBTnbWqsAAGtp.a$XAEBTnbWqsAAGtp.false_northing$XAEBTnbWqsAAGtp.false_eastinggsat_ratio$XBEBTnbWqsAAGtp.somforint.__func__somforint -8! ]afks{  x2pFhZ`mXPH@80( *=]|  . . - - , , + + * *    ) ) 8 < D( H( X' \' x& |&         ( (  ( ( 0 0 8 8  '  ' , @0 @4. 8. L HP HT X d Ph Pl p x( |(  X X 0 0 ` `  ' '  @ @. .  h h& &    + + (* ,* D` d lx ,| , p p D D' '  p p ` `- - , , .  . , 0 <LT% X% d% h% x x x x x% % $ $ ) ) % % ) )  $ $ ( , 8) <) P# T# `# d# t x   ) ) " "   ) ) ! !     h$ h     ( , D H ` d     0 4 L P h l   , 0 8 < L P X \ l p x* |*         , 0 D' H' ` d x |      h  h     & &  h  h    $ 4 h 8 h L P T X x( |(      h  h    h  h ( , L \ ` d h ( (         ) )  ,$ 0$ L T% X%    8. <. H L \ ` d h        $ ( @ D LX \ d   ) ) % % $ $  < P \ ` d h t x  ( ( $ $    ! ! 0# 4# H" L" l |       * *     $ ( < @ Lh l + +         H+ L+ - - , , ( , Ld( h( t$ x$   ! ! # # " "    $ 0 4 8" <" T# X# t | ( ( % %        0 4 x |       <l p |4 hh,%<.X4X  @(O  Z0hEqG}yJ4 MD sominv.o/ 1073924761 1032 20 100644 24304 ` ELF\4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ !  …B! $ $  ?! $ $ ! ! $ $ NT '! ! B?! ! ! $ $ ! ! ! X'<< B! B! $ $ %! ! B?! ! ! $ $ ! ! ! X'<< B! B! $ $ ! @!   !   ;XX;X@XX#`@@T#`@@! B! ;XX@!   ! B! ;XX@!   !   ;XX;X@X! ;XX@;X@X! $ $ !   ;X@X! ! ! $ $ ;X@X! $ $ !   !   DD?!   !   DD?! !   …! $ $ #```B! B$`$`! !   ? ! $ $ ! !   ‰BB ! $ $  ! $ $ B B! $ $ ! ?xph@@@L?`x?X?@p?Ph?H ' Q>hpx'<<?@@*@`! BB?`Xx! BB?X@! BB?@Pp! BB?PHh! BB?H ' Q ' H>hpx'<<?@@@`! BB?`Xx! BB?X@! BB?@Pp! BB?PHh! BB?H ' H! ?xph@@@`B?`XxB?X@B?@PpB?PHhB?H`! ! $ $ X! ! $ $ @! ! $ $ P! ! $ $ H! ! $ $ 'P'X'T'P'L'H'DDH?LP??H!   ?H!   ?!   !    B?! ?'DD 2?;X@X?ȅB?!   !    B?8;X@X8 @?0! !   DB!   DB!   DB B;X@X0 @! $ $ !   #``` B% ½B? !   ?(! B;X@X( @ ?!   ?! B;X@X @?`` ?!   ?;X@X @?!   ?! B;X@X @B B腧?!    ?Ѕ?;X@X؁  D 'DD 2MD 2 !  $@@ k';X@X?! !   B!   ąąB;X@X! ? !    !    B?!   ?! B;X@X @ B;X@X?;X@X?! ! ‰! B?B?;X@X;X@X! ! B?;X@X?B?x#`x!   … ½?;X@X @!    B?!    B?`!    BBxȉ B!    B;X@Xؽ @?;X@XЅ ȑ`x  B B… ;X@X?pp! ! ?hp! ! ?h;X@X! ! ?`;X@X! ! ?`p! ! ! `‰Bh B?pp!    B?P!   ;X@X! ?! !   čBx BB;X@X ;X@X?X!   ;X@X! .;X@X! ?p;X@X @?8!   ?p;X@X @8! !   !    B;X@X?XP!   B;X@XT$ $ XX$ $ 'P'X'T'P'L'H'DX``! B$`$`X  ;X@X?B?!   !    B?X  ;X@XȽ @?! !   腠DB!   DB!   DB B;X@X @! $ $ #`%腠DB!   DB ;X@X`  腠DBDBB !   !    B… B?!   B!   BB;X@X?!    B!   B؅ D$ $ D  ?X  ! B;X@X @H$ $ D  ?X  ! B;X@X @L$ $ !   !   BB؅ ??X  ;X@X @P$ $ ?X  ! B;X@X @T$ $ ! ?#"SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse?@@XS?FR5@Yk6@` =p@v@o`@X@Xl.@`)@m @Lc˰>. &֕@@@V@>@N@.@F@@ !TD->z򚼯Hz򚼯H?Fsominvintsominvsom_series d d)8*8+<@ʘ4 $ 7$> _        ' ; N a t        sominv.c/ecs/hdfeos/gctp/src/sominv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbYqsAAGup./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sominv.o sominv.c -W0,-xp\$XAEBTnbYqsAAGup.sominvint$XBEBTnbYqsAAGup.sominvint.__func__sominv$XBEBTnbYqsAAGup.sominv.__func__$XBEBTnbYqsAAGup.som_series.__func__$XAEBTnbYqsAAGup.false_northing$XAEBTnbYqsAAGup.false_easting$XAEBTnbYqsAAGup.s$XAEBTnbYqsAAGup.es$XAEBTnbYqsAAGup.ca$XAEBTnbYqsAAGup.sa$XAEBTnbYqsAAGup.p21$XAEBTnbYqsAAGup.xj$XAEBTnbYqsAAGup.w$XAEBTnbYqsAAGup.u$XAEBTnbYqsAAGup.t$XAEBTnbYqsAAGup.q$XAEBTnbYqsAAGup.c3$XAEBTnbYqsAAGup.c1$XAEBTnbYqsAAGup.a4$XAEBTnbYqsAAGup.a2$XAEBTnbYqsAAGup.b$XAEBTnbYqsAAGup.a$XAEBTnbYqsAAGup.lon_centerX] d d)8*8+<@ʘπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$   T X  Ϡ ۠    p - 5 @ K V d p z x p h ` X P ̀H ڀ@ D9pD:D;D<D=D?DADBDC8@DG@PDIPDJhDKDODPDQ ppDZpD[D\D]D^D_ D`@DatDcDdDeDfDgHDhtDiDjDkDlDmPDnlDoDpDqDrDsDtDuDvDxDy0DzPD{lD|D}D~DvD$D$D8DXDtDDDDDD D@DPD`DpDDDDDD D 0 , D @ @5$gq{TX4̀؀)x6pChM`XXdPpH|DD4DtDDDDDDDD$D@DPD|DDDDDDDDD DTDhDtDDDDDPDDD<D D PD `, D p p$DHL+P7TCXPZfoyDD<DXDdD0DDD\DDD$DXD, D(!/<(!/(!15(!/Q(!0xm(!0(!/(!0(!0(!0(!0(!0.(!1<J(!1(f(!1(!1(!/o(!/\(!/$$6$P$n$$$$$$$$!$4$H$\bsominv.c/ecs/hdfeos/gctp/src/sominv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbYqsAAGup.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsominvint:F(0,3);(0,18);(0,18);(0,4);(0,4);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4);(0,18)r_major:p(0,18)r_minor:p(0,18)satnum:p(0,4)path:p(0,4)alf_in:p(0,18)lon:p(0,18)false_east:p(0,18)false_north:p(0,18)time:p(0,18)flag:p(0,4)sat_ratio:p(0,18)i:(0,4)alf:(0,18)e2c:(0,18)e2s:(0,18)one_es:(0,18)dlam:(0,18)fb:(0,18)fa2:(0,18)fa4:(0,18)fc1:(0,18)fc3:(0,18)suma2:(0,18)suma4:(0,18)sumc1:(0,18)sumc3:(0,18)sumb:(0,18)sominv.c$XBEBTnbYqsAAGup.sominvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)sominv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)y:p(0,18)x:p(0,18)lon:p(0,23)lat:p(0,23)tlon:(0,18)conv:(0,18)sav:(0,18)sd:(0,18)sdsq:(0,18)blon:(0,18)dif:(0,18)st:(0,18)defac:(0,18)actan:(0,18)tlat:(0,18)dd:(0,18)bigk:(0,18)bigk2:(0,18)xlamt:(0,18)sl:(0,18)scl:(0,18)dlat:(0,18)dlon:(0,18)temp:(0,18)inumb:(0,4)$XBEBTnbYqsAAGup.sominv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)som_series:f(0,18);(0,23);(0,23);(0,23);(0,23);(0,23);(0,23)fb:p(0,23)fa2:p(0,23)fa4:p(0,23)fc1:p(0,23)fc3:p(0,23)dlam:p(0,23)sd:(0,18)sdsq:(0,18)h:(0,18)sq:(0,18)fc:(0,18)$XBEBTnbYqsAAGup.som_series.__func__:V(0,26)=ar(0,4);0;10;(0,27)=k(0,1)$XAEBTnbYqsAAGup.false_northing:S(0,18)$XAEBTnbYqsAAGup.false_easting:S(0,18)$XAEBTnbYqsAAGup.s:S(0,18)$XAEBTnbYqsAAGup.es:S(0,18)$XAEBTnbYqsAAGup.ca:S(0,18)$XAEBTnbYqsAAGup.sa:S(0,18)$XAEBTnbYqsAAGup.p21:S(0,18)$XAEBTnbYqsAAGup.xj:S(0,18)$XAEBTnbYqsAAGup.w:S(0,18)$XAEBTnbYqsAAGup.u:S(0,18)$XAEBTnbYqsAAGup.t:S(0,18)$XAEBTnbYqsAAGup.q:S(0,18)$XAEBTnbYqsAAGup.c3:S(0,18)$XAEBTnbYqsAAGup.c1:S(0,18)$XAEBTnbYqsAAGup.a4:S(0,18)$XAEBTnbYqsAAGup.a2:S(0,18)$XAEBTnbYqsAAGup.b:S(0,18)$XAEBTnbYqsAAGup.a:S(0,18)$XAEBTnbYqsAAGup.lon_center:S(0,18)genrpt_long:P(0,20);(0,4);(10,3)genrpt:P(0,20);(0,18);(10,3)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)exp:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sominv.cBbss.bssDdata.dataDrodata.rodatasom_series$XBEBTnbYqsAAGup.som_series.__func__adjust_lonasintanatanexpp_errorsqrt$XAEBTnbYqsAAGup.s$XBEBTnbYqsAAGup.sominv.__func__sominvsinfabscosoffsetpgenrptgenrpt_longradius2ptitle$XAEBTnbYqsAAGup.c3$XAEBTnbYqsAAGup.c1$XAEBTnbYqsAAGup.a4$XAEBTnbYqsAAGup.a2$XAEBTnbYqsAAGup.xj$XAEBTnbYqsAAGup.u$XAEBTnbYqsAAGup.t$XAEBTnbYqsAAGup.q$XAEBTnbYqsAAGup.w$XAEBTnbYqsAAGup.sa$XAEBTnbYqsAAGup.ca$XAEBTnbYqsAAGup.p21$XAEBTnbYqsAAGup.lon_center$XAEBTnbYqsAAGup.es$XAEBTnbYqsAAGup.b$XAEBTnbYqsAAGup.a$XAEBTnbYqsAAGup.false_northing$XAEBTnbYqsAAGup.false_easting$XBEBTnbYqsAAGup.sominvint.__func__sominvint -8 ]hmqvz p  !x5pIh]`pXPH@80( )<\{  P, , + + * * ) )   ( ( ' ' , 0 8& <& ` d h l x |   & &  ( ( 0 0 8 8  ' '  @ @    H H   & $& 0 P4 P8 0< 0@ XD Xd h p' t'   * * ) )    , , ` ` D D'  ' , `0 `8 `< `HP, T, `+ d+ |  % % % %  h h h h% % $  $ ,( 0( <% @% X( \( h$ l$   ( ( # # # #  p p  ( ( " " $ x( x,( 0( P! T! l p     h l         p xt x x x x x x x x x            ) )     $ ( 0 4 , , + + * * ) )  h  h D \& `& l$ p$    ! ! # # " "    $* (* @ D T X p t  x  x         , @ D X \ h ) )    ( D P T X \ l p  * *       $ 8 H L P T ` xd x      ( (  (% ,% D$ H$ \ `" d"        $ ( 4 8 L pP p`h l      p p   x x  & &  $ $$ 4< @ \ ` d( h(  $ $    % % 4L P T( X( h$ l$  ' '  ( , Ld& h& t$ x$   ! ! # # " "   $ 0 4 8" <" T# X# t| & & % %         0 4 x x| x      <l p |  4 H%D+Dt 7F,  Q.]_B]hDpF xI  sterfor.o/ 1073924762 1032 20 100644 10856 ` ELF(4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ;X@X?;XX@@;X@X?!    B!   ؉ Bȅ BB?! B;X@X!  !  @@ gE'! ! B?!   ?!    Bؽ B?;X@X @BT$ $ !   !    B!    B!   ؉ Bȅ B… BBX$ $ 'STEREOGRAPHICPoint projects into infinityster-for?=|׽@sterforintsterfor) d!d+8,8-<@ʚ4 $ =$E g       sterfor.c/ecs/hdfeos/gctp/src/sterfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbZqsAAGvp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sterfor.o sterfor.c -W0,-xp\$XAEBTnbZqsAAGvp.sterforint$XBEBTnbZqsAAGvp.sterforint.__func__sterfor$XBEBTnbZqsAAGvp.sterfor.__func__$XAEBTnbZqsAAGvp.cos_p10$XAEBTnbZqsAAGvp.sin_p10$XAEBTnbZqsAAGvp.false_easting$XAEBTnbZqsAAGvp.false_northing$XAEBTnbZqsAAGvp.lat_origin$XAEBTnbZqsAAGvp.lon_center$XAEBTnbZqsAAGvp.r_major d!d+8,8-<@ʚр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B N ZT dX4 n |    DS4DT\DU|DVDWDYDZ((D^(D_HDa$Dc$ , Dd44 (!/(!/>(!/e(!/w(!/[(!/?(!/&$$.$D$]$s$$$$$$bsterfor.c/ecs/hdfeos/gctp/src/sterfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbZqsAAGvp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsterforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)sterfor.c$XBEBTnbZqsAAGvp.sterforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)sterfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sinphi:(0,18)cosphi:(0,18)dlon:(0,18)coslon:(0,18)ksp:(0,18)g:(0,18)$XBEBTnbZqsAAGvp.sterfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbZqsAAGvp.cos_p10:S(0,18)$XAEBTnbZqsAAGvp.sin_p10:S(0,18)$XAEBTnbZqsAAGvp.false_easting:S(0,18)$XAEBTnbZqsAAGvp.false_northing:S(0,18)$XAEBTnbZqsAAGvp.lat_origin:S(0,18)$XAEBTnbZqsAAGvp.lon_center:S(0,18)$XAEBTnbZqsAAGvp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sterfor.cBbss.bssDdata.dataDrodata.rodatasinp_errorfabscosadjust_lon$XBEBTnbZqsAAGvp.sterfor.__func__sterforoffsetporigincenlonmerradiusptitletsincos$XAEBTnbZqsAAGvp.cos_p10$XAEBTnbZqsAAGvp.sin_p10$XAEBTnbZqsAAGvp.false_easting$XAEBTnbZqsAAGvp.false_northing$XAEBTnbZqsAAGvp.lat_origin$XAEBTnbZqsAAGvp.lon_center$XAEBTnbZqsAAGvp.r_major$XBEBTnbZqsAAGvp.sterforint.__func__sterforint 8.2:?CN#pDx0( 4Pi l p                   $ 4< @ PX \ h l    4D P T h l                  Hl p |      4 89+%++, 7)F0  Q_h!p#( x$  sterinv.o/ 1073924763 1032 20 100644 11928 ` ELF,@4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?!   ! B;X@X B?ؠТ;XX@@!   T$ $ ;X@X!  !   X$ $ '!    BЉ B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ b'!   ?;XX;X@X;X@XT$ $ K'?!   ?X  ;X@X @?;X@X! ;X@X! #'!   ?Љ B!    B B;XX;X@X@;X@XT$ $ 'STEREOGRAPHIC@=|׽@ !TD-?sterinvintsterinv) d!d+8,8-<@ʚ4 $ =$E g       sterinv.c/ecs/hdfeos/gctp/src/sterinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbaqsAAGwp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sterinv.o sterinv.c -W0,-xp\$XAEBTnbaqsAAGwp.sterinvint$XBEBTnbaqsAAGwp.sterinvint.__func__sterinv$XBEBTnbaqsAAGwp.sterinv.__func__$XAEBTnbaqsAAGwp.cos_p10$XAEBTnbaqsAAGwp.sin_p10$XAEBTnbaqsAAGwp.false_easting$XAEBTnbaqsAAGwp.false_northing$XAEBTnbaqsAAGwp.lat_origin$XAEBTnbaqsAAGwp.lon_center$XAEBTnbaqsAAGwp.r_major d!d+8,8-<@ʚр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B L VT bX4 n x   DR4DSPDTlDUDVDWDX0DZ0D[LTTD_TD`DaDc8De8DfDjDkDpDq8DrDtDx , Dy (!/ (!/*(!/Q(!/wy(!/[(!/?(!/&$$$0$I$_$$$$$$$$bsterinv.c/ecs/hdfeos/gctp/src/sterinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbaqsAAGwp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsterinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)sterinv.c$XBEBTnbaqsAAGwp.sterinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)sterinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)con:(0,18)$XBEBTnbaqsAAGwp.sterinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbaqsAAGwp.cos_p10:S(0,18)$XAEBTnbaqsAAGwp.sin_p10:S(0,18)$XAEBTnbaqsAAGwp.false_easting:S(0,18)$XAEBTnbaqsAAGwp.false_northing:S(0,18)$XAEBTnbaqsAAGwp.lat_origin:S(0,18)$XAEBTnbaqsAAGwp.lon_center:S(0,18)$XAEBTnbaqsAAGwp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)atan:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sterinv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonasinfabsatansqrt$XBEBTnbaqsAAGwp.sterinv.__func__sterinvoffsetporigincenlonmerradiusptitletsincos$XAEBTnbaqsAAGwp.cos_p10$XAEBTnbaqsAAGwp.sin_p10$XAEBTnbaqsAAGwp.false_easting$XAEBTnbaqsAAGwp.false_northing$XAEBTnbaqsAAGwp.lat_origin$XAEBTnbaqsAAGwp.lon_center$XAEBTnbaqsAAGwp.r_major$XBEBTnbaqsAAGwp.sterinvint.__func__sterinvint 8(.28CHMRW3y$0( !=Yr( l p                   $ 4< @ PX \ h l     D T X d h x           8 < \ p t               $8 T X        ( 0 4 P T p t  4 8;%+ 7)F   Q_"h$Pp% x'\  stplnfor.o/ 1073924764 1032 20 100644 17340 ` ELFA<4(.shstrtab.text.data.rodata1.data1.bss.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'P'L'H'D?'! D@D!$ h'D >H ' D, #`'  ' H ' D, #`'  ' ?$#`DH@@$#`@@ 'H  L#`@@ 'P#`@@' !  ,@@ ', , $, $@  @@!   @@  @@@! $#`DH@@$#`@@ '! @D#`@@H  ' S'#`@@?! ;X@X B?! I?;X@X;XX@! B? o';X@X;XX@! B? ['??;XX;XX;XX#\#`#d#h#l#p#t#x@:! r;X@X;XX@! B? %';X@X;XX@! B? ';X@X;XX@! B? ';X@X;XX@! B? '??;XX;XX;XX#\#`#d#h#l#p#t#x#|#@! D;X@X;XX@! B? ';X@X;XX@! B? '??;XX;XX;XX#\#`#d#h#l#p@~! y?;X@X;XX@! B? g';X@X;XX@! B? S';X@X;XX@! B? ?'?? '! ?! ?! ?! ?;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#'㿀'X'T'P'L'H'DDH?LP?! TX;XX;XX@@'䀤 T'N! TX;XX;XX@@'䀤 :'4! TX;XX;XX@@'䀤  '! TX;XX;XX@@'䀤 ''ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldrrIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-forstate-initSTATE PLANEZone: Datum: NAD??FR5stplnforintstplnfor d"d-8.8/<@ʜ4 ) @ W$c $  stplnfor.c/ecs/hdfeos/gctp/src/stplnfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbbqsAAWxp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o stplnfor.o stplnfor.c -W0,-xp\$XAEBTnbbqsAAWxp.$XAEBTnbbqsAAWxp.inzone$XAEBTnbbqsAAWxp.NAD27$XAEBTnbbqsAAWxp.NAD83stplnforint$XBEBTnbbqsAAWxp.stplnforint.__func__stplnfor$XBEBTnbbqsAAWxp.stplnfor.__func__$XAEBTnbbqsAAWxp.id4 d"d-8.8/<@ʜӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /& N& & $ D H L P   ' 4H T td$     Ѐ  &6BNZfq|DKDLDM4DOHDPP`DR`pDTpDVDXDYDTD^D`Db$Dd$De,4D`4PPPDjP`Dl`DmDnDqDrDtDuDwDx ,Dz,D{XD||D}D~DDDD(4D4DDD\DlDxDDDDDDDD(D4DhDxDDDD D D@DPD\DDDDDDD0D@DLDTD\DDDD$D0DdDtDDDDDDD8DHDTDDDDDDDD D D D $D 0D < D , D  $".T8X4BD4HDHDDD D D DDXdDlDDDM, D(!/$$$$$:$$$$;$w$$$$-$T$$$$bstplnfor.c/ecs/hdfeos/gctp/src/stplnfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbbqsAAWxp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h$XAEBTnbbqsAAWxp.inzone:S(0,4)$XAEBTnbbqsAAWxp.NAD27:S(0,21)=ar(0,4);0;133;(0,4)$XAEBTnbbqsAAWxp.NAD83:S(0,22)=ar(0,4);0;133;(0,4)stplnforint:F(0,3);(0,4);(0,4);(10,3);(10,3)zone:p(0,4)sphere:p(0,4)fn27:p(10,3)fn83:p(10,3)ind:(0,4)i:(0,4)nadval:(0,4)table:(0,23)=ar(0,4);0;8;(0,18)pname:(0,24)=ar(0,4);0;31;(0,1)buf:(0,25)=ar(0,4);0;99;(0,1)r_maj:(0,18)r_min:(0,18)scale_fact:(0,18)center_lon:(0,18)center_lat:(0,18)false_east:(0,18)false_north:(0,18)azimuth:(0,18)lat_orig:(0,18)lon_orig:(0,18)lon1:(0,18)lat1:(0,18)lon2:(0,18)lat2:(0,18)mode:(0,4)iflg:(0,4)ptr:(0,26)=*(2,2)stplnfor.c$XBEBTnbbqsAAWxp.stplnforint.__func__:V(0,27)=ar(0,4);0;11;(0,28)=k(0,1)stplnfor:F(0,3);(0,18);(0,18);(0,29)=*(0,18);(0,29)lon:p(0,18)lat:p(0,18)x:p(0,29)y:p(0,29)iflg:(0,4)$XBEBTnbbqsAAWxp.stplnfor.__func__:V(0,30)=ar(0,4);0;8;(0,31)=k(0,1)$XAEBTnbbqsAAWxp.id:S(0,3)genrpt_long:P(0,20);(0,4);(10,3)pakcz:P(0,18);(0,18)paksz:P(0,18);(0,18);(0,32)=*(0,4)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)omerforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)omerfor:P(0,3);(0,18);(0,18);(0,29);(0,29)tmforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)tmfor:P(0,3);(0,18);(0,18);(0,29);(0,29)polyforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)polyfor:P(0,3);(0,18);(0,18);(0,29);(0,29)lamccforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)lamccfor:P(0,3);(0,18);(0,18);(0,29);(0,29)sqrt:P(0,18);(0,18)fseek:P(0,3);(0,33)=*(7,2);(0,4);(0,3)fread:P(2,3);(0,34)=*(0,20);(0,14);(0,14);(0,33)sprintf:P(0,3);(10,3);(0,35)=*(0,36)=k(0,1);0fopen:P(0,26);(0,37)=*(0,38)=k(0,1);(0,39)=*(0,40)=k(0,1)fclose:P(0,3);(0,33)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06stplnfor.cBbss.bssDdata.dataDrodata.rodataomerforpolyforlamccfortmfor$XBEBTnbbqsAAWxp.stplnfor.__func__stplnforomerforintpolyforintlamccforinttmforintpakczpakszsqrtgenrpt_longptitlefclosefreadfseekfopenp_errorsprintf$XAEBTnbbqsAAWxp.id$XBEBTnbbqsAAWxp.stplnforint.__func__stplnforint$XAEBTnbbqsAAWxp.NAD83$XAEBTnbbqsAAWxp.NAD27$XAEBTnbbqsAAWxp.inzone 4 /7?HN$ q z , 8Of," 0" H" L" ! !   t x    ( ( , ,  (`     0 0$ D( D0D PH PLX \\ \d h h      L`h l    $8@ D t    (0 4      H\d h   08 < l         (  ,  4  8  @  D   L P       T    4   4W Tw',-4  @O|  Z"h5q7~y9$0 ;T stplninv.o/ 1073924765 1032 20 100644 17436 ` ELFA4(.shstrtab.text.data.rodata1.data1.bss.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'P'L'H'D?'! D@D!$ k'D >H ' D, #`'  ' H ' D, #`'  ' ?##`DH@@##`@@ 'H  L#`@@ 'P#`@@' !  ,@@ ', , $, $@@  @@!   @@  @@@! ##`DH@@##`@@ '! @D#`@@H  ' S'#`@@?! ;X@X B?! I?;X@X;XX@! B? o';X@X;XX@! B? ['??;XX;XX;XX#\#`#d#h#l#p#t#x@:! r;X@X;XX@! B? %';X@X;XX@! B? ';X@X;XX@! B? ';X@X;XX@! B? '??;XX;XX;XX#\#`#d#h#l#p#t#x#|#@! D;X@X;XX@! B? ';X@X;XX@! B? '??;XX;XX;XX#\#`#d#h#l#p@~! y?;X@X;XX@! B? g';X@X;XX@! B? S';X@X;XX@! B? ?'?? '! ?! ?! ?! ?;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#'㿀'X'T'P'L'H'DDH?LP?! TX;XX;XX@@'䀤 T'N! TX;XX;XX@@'䀤 :'4! TX;XX;XX@@'䀤  '! TX;XX;XX@@'䀤 ''ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldrrIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-invstate-initSTATE PLANEZone: Datum: NAD??FR5stplninvintstplninv d"d-8.8/<@ʝ4 ) @ W$c $  stplninv.c/ecs/hdfeos/gctp/src/stplninv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbcqsAAWyp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o stplninv.o stplninv.c -W0,-xp\$XAEBTnbcqsAAWyp.$XAEBTnbcqsAAWyp.inzone$XAEBTnbcqsAAWyp.nad27$XAEBTnbcqsAAWyp.nad83stplninvint$XBEBTnbcqsAAWyp.stplninvint.__func__stplninv$XBEBTnbcqsAAWyp.stplninv.__func__$XAEBTnbcqsAAWyp.id6 d"d-8.8/<@ʝӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /& N& & $ D H L P   ' 4H T! td#     Ѐ  &6BNZfq|DLDMDN4DPHDQP`DS`pDUpDWDYDZDUD_DaDc$De$Df,4Da4PPPDkP`Dm`DnDoDrDsDuDvDxDy ,D{,D|XD}dD~DDDDDD4@D@DPDhDxDDDDDDDD$D4D@DtDDDDDDDLD\DhDDDDDDD<DLDXD`DhDDD D0D<DpDDDDDDDDDDTD`DDDDDD D D D D $D 0D <D H D , D  $ *T6X4BD4HDHDD D D DDDXdDlDDDM, D(!/$$$$$:$$$$;$w$$$$-$H$h$$$$bstplninv.c/ecs/hdfeos/gctp/src/stplninv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbcqsAAWyp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h$XAEBTnbcqsAAWyp.inzone:S(0,4)$XAEBTnbcqsAAWyp.nad27:S(0,21)=ar(0,4);0;133;(0,4)$XAEBTnbcqsAAWyp.nad83:S(0,22)=ar(0,4);0;133;(0,4)stplninvint:F(0,3);(0,4);(0,4);(10,3);(10,3)zone:p(0,4)sphere:p(0,4)fn27:p(10,3)fn83:p(10,3)ind:(0,4)i:(0,4)nadval:(0,4)table:(0,23)=ar(0,4);0;8;(0,18)pname:(0,24)=ar(0,4);0;32;(0,1)buf:(0,25)=ar(0,4);0;99;(0,1)r_maj:(0,18)r_min:(0,18)scale_fact:(0,18)center_lon:(0,18)center_lat:(0,18)false_east:(0,18)false_north:(0,18)azimuth:(0,18)lat_orig:(0,18)lon_orig:(0,18)lon1:(0,18)lat1:(0,18)lon2:(0,18)lat2:(0,18)mode:(0,4)iflg:(0,4)ptr:(0,26)=*(2,2)stplninv.c$XBEBTnbcqsAAWyp.stplninvint.__func__:V(0,27)=ar(0,4);0;11;(0,28)=k(0,1)stplninv:F(0,3);(0,18);(0,18);(0,29)=*(0,18);(0,29)x:p(0,18)y:p(0,18)lon:p(0,29)lat:p(0,29)iflg:(0,4)$XBEBTnbcqsAAWyp.stplninv.__func__:V(0,30)=ar(0,4);0;8;(0,31)=k(0,1)$XAEBTnbcqsAAWyp.id:S(0,3)genrpt_long:P(0,20);(0,4);(10,3)pakcz:P(0,18);(0,18)paksz:P(0,18);(0,18);(0,32)=*(0,4)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)omerinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)omerinv:P(0,3);(0,18);(0,18);(0,29);(0,29)tminvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)tminv:P(0,3);(0,18);(0,18);(0,29);(0,29)polyinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)polyinv:P(0,3);(0,18);(0,18);(0,29);(0,29)lamccinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)lamccinv:P(0,3);(0,18);(0,18);(0,29);(0,29)sqrt:P(0,18);(0,18)ftell:P(0,4);(0,33)=*(7,2)fseek:P(0,3);(0,33);(0,4);(0,3)fread:P(2,3);(0,34)=*(0,20);(0,14);(0,14);(0,33)sprintf:P(0,3);(10,3);(0,35)=*(0,36)=k(0,1);0fopen:P(0,26);(0,37)=*(0,38)=k(0,1);(0,39)=*(0,40)=k(0,1)fclose:P(0,3);(0,33)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06stplninv.cBbss.bssDdata.dataDrodata.rodataomerinvpolyinvlamccinvtminv$XBEBTnbcqsAAWyp.stplninv.__func__stplninvomerinvintpolyinvintlamccinvinttminvintpakczpakszsqrtgenrpt_longptitlefclosefreadftellfseekfopenp_errorsprintf$XAEBTnbcqsAAWyp.id$XBEBTnbcqsAAWyp.stplninvint.__func__stplninvint$XAEBTnbcqsAAWyp.nad83$XAEBTnbcqsAAWyp.nad27$XAEBTnbcqsAAWyp.inzone 4 /7?HN$ q (z  2 >Ul,# 0# H# L# " " !  ! t x    ( ( , ,  (`l     0  0$0 D4 D<P PT PXd \h \p h h    $ ( Xlt x   0DL P      4< @     $ Thp t   (<D H x     (  ,  4  8  @  D  L  P   \ `     , 0 d    4   4 W dw',-4  @O  Z#$h6;q7y9h@ ; tmfor.o/ 1073924766 1032 20 100644 16276 ` ELF=<4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?!   !   !   !   !   ;XX;XX;XX#\#`#d#h@ @! $ $ !   ! ą ! $ $ !   !  ! ! $ $ ! ! $ $ ! @!   !   ;XX;X@X!   ! ;XX@!   ;X@X!   ;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?آ;XX@@!   ! Bu?;X@X @?;X@X! B;X@X!  !  @@ ]('!   ! B!    B?x! B…;X@Xx @T$ $ ?;X@X @?p! B;X@Xp ;X@X?! ?!   !    B!   …BX$ $ ' B?ȅB?!   ЅB B?;X@X?B?! !   ؅B B?!   ?h;X@Xh ?!   ?h!   !   !   !   ;XX;XX;XX#\#`#d#h@h @?!    Bȥ B! ! H! ! ! B…FB! BB!   ! B…BBBBB!   BT$ $ !   !    B! ! ! ! BBJ! BB! ! ! B… HB! BB!   ! B… BB BB BBBB!   BX$ $ 'TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinitytm-for?>h=|׽?@@4@@2@R@M@8@"@@>@N@@ttmforinttmfor dd'8(8)<@ʞ4$ 1$7 W l        % 9 U q   tmfor.c/ecs/hdfeos/gctp/src/tmfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbeqsAAWzp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o tmfor.o tmfor.c -W0,-xp\$XAEBTnbeqsAAWzp.tmforint$XBEBTnbeqsAAWzp.tmforint.__func__tmfor$XBEBTnbeqsAAWzp.tmfor.__func__$XAEBTnbeqsAAWzp.ind$XAEBTnbeqsAAWzp.false_easting$XAEBTnbeqsAAWzp.false_northing$XAEBTnbeqsAAWzp.ml0$XAEBTnbeqsAAWzp.esp$XAEBTnbeqsAAWzp.es$XAEBTnbeqsAAWzp.e3$XAEBTnbeqsAAWzp.e2$XAEBTnbeqsAAWzp.e1$XAEBTnbeqsAAWzp.e0$XAEBTnbeqsAAWzp.lat_origin$XAEBTnbeqsAAWzp.lon_center$XAEBTnbeqsAAWzp.scale_factor$XAEBTnbeqsAAWzp.r_minor$XAEBTnbeqsAAWzp.r_majorK dd'8(8)<@ʞ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ j x     Ҡp  D?pD@DADBDCDDDEDGDH$DIHDJtDKDLDMDNDPDQDSDW4DXDDYxDZD[D\D] , D^ ?$ p | T X4    ˀ Հ    Ds4Dt\Dx|DzD{D}D~ ,,D,DDDDDhppDpDDDDDDD(DDD#, De(!0"(!/u(!/U(!/(!0  (!/'(!/C(!/_(!/{(!/(!/9(!/(!.(!.&(!.G$d$$$$$$$$2$K$i$$$$$$$$#$6$Jbtmfor.c/ecs/hdfeos/gctp/src/tmfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbeqsAAWzp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.htmforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)tmfor.c$XBEBTnbeqsAAWzp.tmforint.__func__:V(0,21)=ar(0,4);0;8;(0,22)=k(0,1)tmfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)sin_phi:(0,18)cos_phi:(0,18)al:(0,18)als:(0,18)b:(0,18)c:(0,18)t:(0,18)tq:(0,18)con:(0,18)n:(0,18)ml:(0,18)$XBEBTnbeqsAAWzp.tmfor.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)$XAEBTnbeqsAAWzp.ind:S(0,18)$XAEBTnbeqsAAWzp.false_easting:S(0,18)$XAEBTnbeqsAAWzp.false_northing:S(0,18)$XAEBTnbeqsAAWzp.ml0:S(0,18)$XAEBTnbeqsAAWzp.esp:S(0,18)$XAEBTnbeqsAAWzp.es:S(0,18)$XAEBTnbeqsAAWzp.e3:S(0,18)$XAEBTnbeqsAAWzp.e2:S(0,18)$XAEBTnbeqsAAWzp.e1:S(0,18)$XAEBTnbeqsAAWzp.e0:S(0,18)$XAEBTnbeqsAAWzp.lat_origin:S(0,18)$XAEBTnbeqsAAWzp.lon_center:S(0,18)$XAEBTnbeqsAAWzp.scale_factor:S(0,18)$XAEBTnbeqsAAWzp.r_minor:S(0,18)$XAEBTnbeqsAAWzp.r_major:S(0,18)genrpt:P(0,20);(0,18);(10,3)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)acos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06tmfor.cBbss.bssDdata.dataDrodata.rodatatansqrtcosacoslogp_errorfabssintsincosadjust_lon$XBEBTnbeqsAAWzp.tmfor.__func__tmforoffsetporigincenlonmergenrptradius2ptitlemlfne3fne2fne1fne0fn$XAEBTnbeqsAAWzp.ind$XAEBTnbeqsAAWzp.esp$XAEBTnbeqsAAWzp.ml0$XAEBTnbeqsAAWzp.e3$XAEBTnbeqsAAWzp.e2$XAEBTnbeqsAAWzp.e1$XAEBTnbeqsAAWzp.e0$XAEBTnbeqsAAWzp.es$XAEBTnbeqsAAWzp.false_easting$XAEBTnbeqsAAWzp.false_northing$XAEBTnbeqsAAWzp.lat_origin$XAEBTnbeqsAAWzp.lon_center$XAEBTnbeqsAAWzp.scale_factor$XAEBTnbeqsAAWzp.r_minor$XAEBTnbeqsAAWzp.r_major$XBEBTnbeqsAAWzp.tmforint.__func__tmforint x,059>BJOS[fPph`X'P;HO@c8w0(  %> a,, , + + * * ) ) ( ( ' ' & &  + + ,  , 4 8 H% L% X% \% lt$ x$ % % # # % % " " % % ! ! ,  , $  $ ,# 0# <" @" L! P! \( `(   % %     % %        , 0 4 8 D H LT, X, d+ h+ * *   ) ) ( ( & & ' ' ) )      ( , 8 @ D X @\ @h |, ,  ( (* *        $8 H L l, p, |* * ( (      $% (% H, L, dx, |, $ $ # # " " ! !  * * , 0 8 0< 0T 8X 8` @d @h Hl H P P   X X& & * *    (  ( $ ` ( ` 0 @ 4 @ D h H h X p \ p h x l x t x | X  X       ' ' 4  ( x g H% + 8 7 (F D  Q0K_,{h.!jp0 x3|  tminv.o/ 1073924767 1032 20 100644 17892 ` ELFC4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?!   !   !   !   !   ;XX;XX;XX#\#`#d#h@ @! $ $ !   ! ą ! $ $ !   !  !$ ! @!   !   ;XX;X@X!   ! ;XX@!   ;X@X!   ;X@X!   !   ;XX;X@X'㾨'X'T'P'L'H'DDH?LP? 'L! |!   !    B;X@X?hh! ĉ! B?X!   !   !    B…B?PP;X@X?`! `BXBB;X@X?;X@XX$ $ P! X  $ $ X! B`! B !   T$ $ 'X`;XX;X@X!   B;X@XT$ $ '!   ?!   ?!   !    ‰B!    ??'?8!   ?@! B;X@X@ @8B?(!   ?0! B;X@X0 @(?!   ? ! B;X@X @B!    ؅?ЅB?;X@X!  L@ !  @@ _'̠ ';X@X! ! B ؠ;XX@@;X@X?!   B B?B?B?B?! !   B B?!   ?;X@X ?! !   ‰B ?!    B?xxB?p BpF ! ! ! ! NB! BB! B!   ! B! ! ! BB! BB! BB! B… N…B…B…BX$ $ !   x! p! ! FBH! ! F! BB! B!   ! BB! BB B… B‰ B …B;X@XT$ $ ! ! B?;X@X'HH BX$ $ !   T$ $ 'TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSE?>h?@@@=|׽@ !TD-@8@@@$@"@>@N@V@r@F@o@4@<@ tminvinttminv dd'8(8)<@ʟ4$ 1$7 W l        % 9 U q   tminv.c/ecs/hdfeos/gctp/src/tminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfqsAAW0p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o tminv.o tminv.c -W0,-xp\$XAEBTnbfqsAAW0p.tminvint$XBEBTnbfqsAAW0p.tminvint.__func__tminv$XBEBTnbfqsAAW0p.tminv.__func__$XAEBTnbfqsAAW0p.ind$XAEBTnbfqsAAW0p.false_easting$XAEBTnbfqsAAW0p.false_northing$XAEBTnbfqsAAW0p.ml0$XAEBTnbfqsAAW0p.esp$XAEBTnbfqsAAW0p.es$XAEBTnbfqsAAW0p.e3$XAEBTnbfqsAAW0p.e2$XAEBTnbfqsAAW0p.e1$XAEBTnbfqsAAW0p.e0$XAEBTnbfqsAAW0p.lat_origin$XAEBTnbfqsAAW0p.lon_center$XAEBTnbfqsAAW0p.scale_factor$XAEBTnbfqsAAW0p.r_minor$XAEBTnbfqsAAW0p.r_major dd'8(8)<@ʟ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ j x     Ҡp  D@pDADBDCDDDEDFDHDI$DJHDKtDLDMDNDODQDRDVDWDXLDYtDZD[D\ , D] ?$ p z T X4    À ˀ ڀ   '0x9pChL`UX^PjLDo4Ds<PDuPDvDwDxDyDz<D{XD|tD}DDDD088D8DTDpDDDDDDDD(D(D4<D<pDpDDDDDDDDDDtDDDDD D y, D00(!0"(!/u(!/U&(!/C(!0 `(!/|(!/(!/(!/(!/(!/9(!/4(!.Z(!.{(!.$$$$$%$9$L$a${$$$$$ $!$?$S$g$z$$$$btminv.c/ecs/hdfeos/gctp/src/tminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfqsAAW0p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.htminvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)tminv.c$XBEBTnbfqsAAW0p.tminvint.__func__:V(0,21)=ar(0,4);0;8;(0,22)=k(0,1)tminv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)con:(0,18)phi:(0,18)delta_phi:(0,18)i:(0,4)sin_phi:(0,18)cos_phi:(0,18)tan_phi:(0,18)c:(0,18)cs:(0,18)t:(0,18)ts:(0,18)n:(0,18)r:(0,18)d:(0,18)ds:(0,18)f:(0,18)h:(0,18)g:(0,18)temp:(0,18)max_iter:(0,4)$XBEBTnbfqsAAW0p.tminv.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)$XAEBTnbfqsAAW0p.ind:S(0,4)$XAEBTnbfqsAAW0p.false_easting:S(0,18)$XAEBTnbfqsAAW0p.false_northing:S(0,18)$XAEBTnbfqsAAW0p.ml0:S(0,18)$XAEBTnbfqsAAW0p.esp:S(0,18)$XAEBTnbfqsAAW0p.es:S(0,18)$XAEBTnbfqsAAW0p.e3:S(0,18)$XAEBTnbfqsAAW0p.e2:S(0,18)$XAEBTnbfqsAAW0p.e1:S(0,18)$XAEBTnbfqsAAW0p.e0:S(0,18)$XAEBTnbfqsAAW0p.lat_origin:S(0,18)$XAEBTnbfqsAAW0p.lon_center:S(0,18)$XAEBTnbfqsAAW0p.scale_factor:S(0,18)$XAEBTnbfqsAAW0p.r_minor:S(0,18)$XAEBTnbfqsAAW0p.r_major:S(0,18)genrpt:P(0,20);(0,18);(10,3)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)sign:P(0,3);(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)exp:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06tminv.cBbss.bssDdata.dataDrodata.rodatasigntantsincosp_errorfabssinatan2adjust_lonasinzsqrtcosexp$XBEBTnbfqsAAW0p.tminv.__func__tminvoffsetporigincenlonmergenrptradius2ptitlemlfne3fne2fne1fne0fn$XAEBTnbfqsAAW0p.ind$XAEBTnbfqsAAW0p.esp$XAEBTnbfqsAAW0p.ml0$XAEBTnbfqsAAW0p.e3$XAEBTnbfqsAAW0p.e2$XAEBTnbfqsAAW0p.e1$XAEBTnbfqsAAW0p.e0$XAEBTnbfqsAAW0p.es$XAEBTnbfqsAAW0p.false_easting$XAEBTnbfqsAAW0p.false_northing$XAEBTnbfqsAAW0p.lat_origin$XAEBTnbfqsAAW0p.lon_center$XAEBTnbfqsAAW0p.scale_factor$XAEBTnbfqsAAW0p.r_minor$XAEBTnbfqsAAW0p.r_major$XBEBTnbfqsAAW0p.tminvint.__func__tminvint t,15=EJNT_ejnr @ph `X3PGH[@o80( 1J m. . - - , , + + * * ) ) ( (  - - .  . 4 8 H' L' X' \' lt& x& ' ' % % ' ' $ $ ' ' # # .  . &  & ,% 0% <$ @$ L# P# \* `* " " ' '   ! ! ' '        (. ,. 8- <- T\, `, l p |+ + * * ( ( ) ) \ ` t. x. , ,     * * . . , , ( , Pd|      + +  $+ (+ <\( `( x) |) " " , , . . % %    ,$ 0$ D (H (T p# t#  0 0 & &   8 8$ @( @4 d l @p @t x  ! !   ' ' 4. 8. P h l p' t' , ,      H  H  P  P  X  X  `  ` , ( 0 ( <! @! L h P h \ p ` p h x l x p t       + +    0  0   ( , 4 P 8 P D H X X \ X h! l! x |  H  H   @  @      $+ (+ 4  ` t g %G+H8 7FD  QP_1 h2vp5< x8L @  utmfor.o/ 1073924768 1032 20 100644 16988 ` ELF@4(.shstrtab.text.data1.bss.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\@ \@ < !  @@ '! $ $ ! $ $ ! $ $ ! ! $ $ \@* * $ '̉! B! $ $ ! ! $ $ \ ! ?! ?! $ $ !   !    ?! ؅B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?!   !   !   !   !   ;XX;XX;XX#\#`#d#h@ @! $ $ !   ! ą ! $ $ !   ! ! ! $ $ ! @\#`@@!   !   ;XX;X@X!   ! ;XX@!   ;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?آ;XX@@!   ! Bu?;X@X @?;X@X! B;X@X!  !  @@ ]('!   ! B!    B?x! B…;X@Xx @T$ $ ?;X@X @?p! B;X@Xp ;X@X?! ?!   !    B!   …BX$ $ ' B?ȅB?!   ЅB B?;X@X?B?! !   ؅B B?!   ?h;X@Xh ?!   ?h!   !   !   !   ;XX;XX;XX#\#`#d#h@h @?!    Bȥ B! ! H! ! ! B…FB! BB!   ! B…BBBBB!   BT$ $ !   !    B! ! ! ! BBJ! BB! ! ! B… HB! BB!   ! B… BB BB BBBB!   BX$ $ 'Illegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityutm-for?FR5AAc?>h=|׽?@@4@@2@R@M@8@"@@>@N@@tutmforintutmfor d d)8*8+<@ʠ4 $ 7$> _ t        - A ] y   utmfor.c/ecs/hdfeos/gctp/src/utmfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbgqsAAW1p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o utmfor.o utmfor.c -W0,-xp\$XAEBTnbgqsAAW1p.utmforint$XBEBTnbgqsAAW1p.utmforint.__func__utmfor$XBEBTnbgqsAAW1p.utmfor.__func__$XAEBTnbgqsAAW1p.ind$XAEBTnbgqsAAW1p.false_easting$XAEBTnbgqsAAW1p.false_northing$XAEBTnbgqsAAW1p.ml0$XAEBTnbgqsAAW1p.esp$XAEBTnbgqsAAW1p.es$XAEBTnbgqsAAW1p.e3$XAEBTnbgqsAAW1p.e2$XAEBTnbgqsAAW1p.e1$XAEBTnbgqsAAW1p.e0$XAEBTnbgqsAAW1p.lat_origin$XAEBTnbgqsAAW1p.lon_center$XAEBTnbgqsAAW1p.scale_factor$XAEBTnbgqsAAW1p.r_minor$XAEBTnbgqsAAW1p.r_majorD d d)8*8+<@ʠπ;Wt؀2Wkł:@Sl@π ̀4Rs@Uhr? ւ [   @ @ ? U y    h     ܀ L a u$    Р\@ ܀ D:@pD<pD=D?D@DADBDCDD,DEDDGDHDIDJDK(DLTDMDN,DP\DQDUDVDWDXDY DZ< , D[LL7$iuTX4Ā΀ـ Dq4Dr\Dv|DxDyD{D| ,,D,DDDDDhppDpDDDDDDD(DDD, D_(!2|(!2(!29(!2(!2(!2_!(!2=(!2Y(!2u(!2s(!1(!1(!1(!1 (!1A$b$$$$$$$$2$P$u$$$$$$$ $$1$Cbutmfor.c/ecs/hdfeos/gctp/src/utmfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbgqsAAW1p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(14,1)=u8_i:(14,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(14,3)=(14,1)version:T(13,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(13,2)=s32type:(0,3),0,32;name:(13,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(17,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(17,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(17,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(17,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(17,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(15,1)=(0,3)sigfpe_handler_type:t(15,2)=*(15,3)=f(0,20)single:t(15,4)=(0,17)extended:t(15,5)=ar(0,4);0;2;(0,14)quadruple:t(15,6)=(0,19)fp_exception_field_type:t(15,7)=(0,14)decimal_string:t(15,8)=ar(0,4);0;511;(0,1):T(15,9)=s532fpclass:(17,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(15,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(15,10)=(15,9)decimal_form:T(15,11)=efixed_form:0,floating_form:1,;:T(15,12)=s12rd:(17,1),0,32;df:(15,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(15,13)=(15,12)decimal_string_form:T(15,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hutmforint:F(0,3);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)zone:p(0,4)temp:(0,18)utmfor.c$XBEBTnbgqsAAW1p.utmforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)utmfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)sin_phi:(0,18)cos_phi:(0,18)al:(0,18)als:(0,18)b:(0,18)c:(0,18)t:(0,18)tq:(0,18)con:(0,18)n:(0,18)ml:(0,18)$XBEBTnbgqsAAW1p.utmfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbgqsAAW1p.ind:S(0,18)$XAEBTnbgqsAAW1p.false_easting:S(0,18)$XAEBTnbgqsAAW1p.false_northing:S(0,18)$XAEBTnbgqsAAW1p.ml0:S(0,18)$XAEBTnbgqsAAW1p.esp:S(0,18)$XAEBTnbgqsAAW1p.es:S(0,18)$XAEBTnbgqsAAW1p.e3:S(0,18)$XAEBTnbgqsAAW1p.e2:S(0,18)$XAEBTnbgqsAAW1p.e1:S(0,18)$XAEBTnbgqsAAW1p.e0:S(0,18)$XAEBTnbgqsAAW1p.lat_origin:S(0,18)$XAEBTnbgqsAAW1p.lon_center:S(0,18)$XAEBTnbgqsAAW1p.scale_factor:S(0,18)$XAEBTnbgqsAAW1p.r_minor:S(0,18)$XAEBTnbgqsAAW1p.r_major:S(0,18)genrpt_long:P(0,20);(0,4);(13,3)genrpt:P(0,20);(0,18);(13,3)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(13,3)p_error:P(0,20);(13,3);(13,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)acos:P(0,18);(0,18)labs:P(0,4);(0,4)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06utmfor.cBbss.bssDdata.dataDrodata.rodatatansqrtcosacoslogfabssintsincosadjust_lon$XBEBTnbgqsAAW1p.utmfor.__func__utmforcenlonmergenrptradius2genrpt_longptitlemlfne3fne2fne1fne0fnp_errorlabs$XAEBTnbgqsAAW1p.ind$XAEBTnbgqsAAW1p.esp$XAEBTnbgqsAAW1p.ml0$XAEBTnbgqsAAW1p.e3$XAEBTnbgqsAAW1p.e2$XAEBTnbgqsAAW1p.e1$XAEBTnbgqsAAW1p.e0$XAEBTnbgqsAAW1p.es$XAEBTnbgqsAAW1p.false_northing$XAEBTnbgqsAAW1p.false_easting$XAEBTnbgqsAAW1p.lon_center$XAEBTnbgqsAAW1p.lat_origin$XAEBTnbgqsAAW1p.scale_factor$XAEBTnbgqsAAW1p.r_minor$XAEBTnbgqsAAW1p.r_major$XBEBTnbgqsAAW1p.utmforint.__func__utmforint x-16:?CHLT_ph`X,P@HT@h8|0( *C g\Tl  , , + + * *   ) )   $ ,( 0( < @ D' H' d h t x & & + + , ,   % % % % $ $  % %  (# ,# 8% <% LT" X" d% h% x! ! , , $ $ # # " " ! ! ) ) , 0 <% @% L P \ ` l% p% | ( (       D D, , + + *  *  P P(0( 4( D( (      4 P X 0\ 0h p 8t 8 t t, ,  @ @* *    ( < @ Th x | , , * * ) )    4L P T% X% x, |, , , $ $ # # " " ! ! (<* @* \ ` h Hl H P P X X ` ` h h   p p' ' * * ( , L @ P @ T x X x ` X d X t x        p  p       & & 4  X  x % q+ t8 7 Fx  QdD_.h0qp3 x5   utminv.o/ 1073924770 1032 20 100644 18752 ` ELFF4(.shstrtab.text.data1.bss.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\@ \@ < !  @@ '! $ $ ! $ $ ! $ $ ! ! $ $ \@* * $ '̉! B! $ $ ! ! $ $ \ ! ?! ?! $ $ !   !    ?! ؅B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?!   !   !   !   !   ;XX;XX;XX#\#`#d#h@ @! $ $ !   ! ą ! $ $ !   !  !$ !$ ! @\#`@@!   !   ;XX;X@X!   ! ;XX@!   ;X@X'㾨'X'T'P'L'H'DDH?LP? 'L! |!   !    B;X@X?hh! ĉ! B?X!   !   !    B…B?PP;X@X?`! `BXBB;X@X?;X@XX$ $ P! X  $ $ X! B`! B !   T$ $ 'X`;XX;X@X!   B;X@XT$ $ '!   ?!   ?!   !    ‰B!    ??'?8!   ?@! B;X@X@ @8B?(!   ?0! B;X@X0 @(?!   ? ! B;X@X @B!    ؅?ЅB?;X@X!  L@ !  @@ _'̠ ';X@X! ! B ؠ;XX@@;X@X?!   B B?B?B?B?! !   B B?!   ?;X@X ?! !   ‰B ?!    B?xxB?p BpF ! ! ! ! NB! BB! B!   ! B! ! ! BB! BB! BB! B… N…B…B…BX$ $ !   x! p! ! FBH! ! F! BB! B!   ! BB! BB B… B‰ B …B;X@XT$ $ ! ! B?;X@X'HH BX$ $ !   T$ $ 'Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE?FR5AAc?>h?@@@=|׽@ !TD-@8@@@$@"@>@N@V@r@F@o@4@<@ utminvintutminv d d)8*8+<@ʡ4 $ 7$> _ t        - A ] y   utminv.c/ecs/hdfeos/gctp/src/utminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbhqsAAW2p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o utminv.o utminv.c -W0,-xp\$XAEBTnbhqsAAW2p.utminvint$XBEBTnbhqsAAW2p.utminvint.__func__utminv$XBEBTnbhqsAAW2p.utminv.__func__$XAEBTnbhqsAAW2p.ind$XAEBTnbhqsAAW2p.false_easting$XAEBTnbhqsAAW2p.false_northing$XAEBTnbhqsAAW2p.ml0$XAEBTnbhqsAAW2p.esp$XAEBTnbhqsAAW2p.es$XAEBTnbhqsAAW2p.e3$XAEBTnbhqsAAW2p.e2$XAEBTnbhqsAAW2p.e1$XAEBTnbhqsAAW2p.e0$XAEBTnbhqsAAW2p.lat_origin$XAEBTnbhqsAAW2p.lon_center$XAEBTnbhqsAAW2p.scale_factor$XAEBTnbhqsAAW2p.r_minor$XAEBTnbhqsAAW2p.r_major d d)8*8+<@ʡπ;Wt؀2Wkł:@Sl@π ̀4Rs@Uhr? ւ [   @ @ ? U y    h     ܀ L a u$    Р\@ ܀ D<@pD>pD?DADBDCDDDEDF,DGDDIDJDKDLDM(DNTDODP,DR\DSDUDYDZD[D\D]$D^@ , D_PP7$is}TX4ĀӀ  )x2p<hE`NXWPcLDq4Du<PDwPDxDyDzD{D|<D}XD~tDDDDD088D8DTDpDDDDDDDD(D(D4<D<pDpDDDDDDDDDDtDDDDD D r, D00(!2(!2(!29 (!2=(!2Z(!2_v(!2(!2(!2(!2s(!1 (!1.(!1T(!1u(!1$$$$$,$@$T$g$|$$$$$$&$:$N$a$t$$$$butminv.c/ecs/hdfeos/gctp/src/utminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbhqsAAW2p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(14,1)=u8_i:(14,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(14,3)=(14,1)version:T(13,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(13,2)=s32type:(0,3),0,32;name:(13,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(17,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(17,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(17,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(17,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(17,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(15,1)=(0,3)sigfpe_handler_type:t(15,2)=*(15,3)=f(0,20)single:t(15,4)=(0,17)extended:t(15,5)=ar(0,4);0;2;(0,14)quadruple:t(15,6)=(0,19)fp_exception_field_type:t(15,7)=(0,14)decimal_string:t(15,8)=ar(0,4);0;511;(0,1):T(15,9)=s532fpclass:(17,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(15,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(15,10)=(15,9)decimal_form:T(15,11)=efixed_form:0,floating_form:1,;:T(15,12)=s12rd:(17,1),0,32;df:(15,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(15,13)=(15,12)decimal_string_form:T(15,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hutminvint:F(0,3);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)zone:p(0,4)temp:(0,18)utminv.c$XBEBTnbhqsAAW2p.utminvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)utminv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)con:(0,18)phi:(0,18)delta_phi:(0,18)i:(0,4)sin_phi:(0,18)cos_phi:(0,18)tan_phi:(0,18)c:(0,18)cs:(0,18)t:(0,18)ts:(0,18)n:(0,18)r:(0,18)d:(0,18)ds:(0,18)f:(0,18)h:(0,18)g:(0,18)temp:(0,18)max_iter:(0,4)$XBEBTnbhqsAAW2p.utminv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbhqsAAW2p.ind:S(0,4)$XAEBTnbhqsAAW2p.false_easting:S(0,18)$XAEBTnbhqsAAW2p.false_northing:S(0,18)$XAEBTnbhqsAAW2p.ml0:S(0,18)$XAEBTnbhqsAAW2p.esp:S(0,18)$XAEBTnbhqsAAW2p.es:S(0,18)$XAEBTnbhqsAAW2p.e3:S(0,18)$XAEBTnbhqsAAW2p.e2:S(0,18)$XAEBTnbhqsAAW2p.e1:S(0,18)$XAEBTnbhqsAAW2p.e0:S(0,18)$XAEBTnbhqsAAW2p.lat_origin:S(0,18)$XAEBTnbhqsAAW2p.lon_center:S(0,18)$XAEBTnbhqsAAW2p.scale_factor:S(0,18)$XAEBTnbhqsAAW2p.r_minor:S(0,18)$XAEBTnbhqsAAW2p.r_major:S(0,18)genrpt_long:P(0,20);(0,4);(13,3)genrpt:P(0,20);(0,18);(13,3)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)sign:P(0,3);(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(13,3)p_error:P(0,20);(13,3);(13,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)exp:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)labs:P(0,4);(0,4)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06utminv.cBbss.bssDdata.dataDrodata.rodatasigntantsincosfabssinatan2adjust_lonasinzsqrtcosexp$XBEBTnbhqsAAW2p.utminv.__func__utminvcenlonmergenrptradius2genrpt_longptitlemlfne3fne2fne1fne0fnp_errorlabs$XAEBTnbhqsAAW2p.ind$XAEBTnbhqsAAW2p.esp$XAEBTnbhqsAAW2p.ml0$XAEBTnbhqsAAW2p.e3$XAEBTnbhqsAAW2p.e2$XAEBTnbhqsAAW2p.e1$XAEBTnbhqsAAW2p.e0$XAEBTnbhqsAAW2p.es$XAEBTnbhqsAAW2p.false_northing$XAEBTnbhqsAAW2p.false_easting$XAEBTnbhqsAAW2p.lon_center$XAEBTnbhqsAAW2p.lat_origin$XAEBTnbhqsAAW2p.scale_factor$XAEBTnbhqsAAW2p.r_minor$XAEBTnbhqsAAW2p.r_major$XBEBTnbhqsAAW2p.utminvint.__func__utminvint t-26>CGMX^cgk@ph`$X8PLH`@t80( 6O s`Tl  . . - - , ,   + +   $ ,* 0* < @ D) H) d h t x ( ( - - . .   ' ' ' ' & &  ' '  (% ,% 8' <' LT$ X$ d' h' x# # . . & & % % $ $ # # + + ," 0" <' @' L P \! `! l' p' | ( (       D D. . - -  , ,  P  P,4* 8* H  . . , ,     0$ 00+ 4+ D. H. T, X, |      , 0 D* H* | * *  ) ) ( ( " " , , .  . H% L% ` 8d 8p $ $  @ @ # #  H H & & H P PT P t t  X X 0 0    $! (! h l p' t' . .    ' ' , , D 0 H 0 L ` P ` X h \ h d p h p x x | x  @  @ ! !               @* D* T X ` H d H p 8 t 8    h  h    p  p ! !    `  `  < X @ X D 0 H 0 \ * * 4   xt%+8 74F  Q_3h5|}p7 x;  vandgfor.o/ 1073924771 1032 20 100644 12044 ` ELF,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?;X@X!  !   !    BBT$ $ !   X$ $ :'! ;X@X! B;X@X?;X@X! ;X@X! ! B;X@X!  L!   T$ $ ! !   ?!   ! B?! B;X@X @BX$ $ !   ?!   ! B?! B;X@X! BBX$ $ '! ą …;X@X! B?ЅB?ؠ;XX@@F! B?B?!  ! BB?B?!   ! B?pȽ B?xȉB BFȅ B;X@Xx@p BȅB?! ?!   BT$ $ !   ! B;X@X?! &!   ?!   ! B?! F! BF;X@X @BX$ $ $!   ?!   ! B?! F! BF;X@X @X$ $ 'VAN DER GRINTEN=|׽@ !TD-@??vandgforintvandgfor d"d-8.8/<@ʢ4$ C$L o    vandgfor.c/ecs/hdfeos/gctp/src/vandgfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbiqsAAW3p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o vandgfor.o vandgfor.c -W0,-xp\$XAEBTnbiqsAAW3p.vandgforint$XBEBTnbiqsAAW3p.vandgforint.__func__vandgfor$XBEBTnbiqsAAW3p.vandgfor.__func__$XAEBTnbiqsAAW3p.false_northing$XAEBTnbiqsAAW3p.false_easting$XAEBTnbiqsAAW3p.R$XAEBTnbiqsAAW3p.lon_center d"d-8.8/<@ʢӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ ^ h | L D1LD2`D3tD4D8D9D:D;D< , D= $ + 7 CT MX4 W c p z       ŀDR4DT\DVDWDXDZD[D]D^D_Da8DbDdDeDfDgDh4Di@DjhDltDmDnDo$DpHDq|DrDt(Dv , Dw(!/\?(!/=f(!/(!/!$$$$$$C$Y$m$$bvandgfor.c/ecs/hdfeos/gctp/src/vandgfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbiqsAAW3p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hvandgforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)vandgfor.c$XBEBTnbiqsAAW3p.vandgforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)vandgfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)theta:(0,18)al:(0,18)asq:(0,18)g:(0,18)gsq:(0,18)m:(0,18)msq:(0,18)con:(0,18)costh:(0,18)sinth:(0,18)$XBEBTnbiqsAAW3p.vandgfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbiqsAAW3p.false_northing:S(0,18)$XAEBTnbiqsAAW3p.false_easting:S(0,18)$XAEBTnbiqsAAW3p.R:S(0,18)$XAEBTnbiqsAAW3p.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)tan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06vandgfor.cBbss.bssDdata.dataDrodata.rodatasqrttsincostanasinzfabsadjust_lon$XBEBTnbiqsAAW3p.vandgfor.__func__vandgforoffsetpcenlonradiusptitle$XAEBTnbiqsAAW3p.false_northing$XAEBTnbiqsAAW3p.false_easting$XAEBTnbiqsAAW3p.lon_center$XAEBTnbiqsAAW3p.R$XBEBTnbiqsAAW3p.vandgforint.__func__vandgforint  8/4<@FKVD y@ 8 3 ` d t x           x |           $ ( 4 < @ L ` h l                 ( , < @ L x |             L` (d (   ( (    @ D d h                0 0$ ( <h l |     0 0  4  M%%+( 7F X  Q_"h$O?p% x'   vandginv.o/ 1073924772 1032 20 100644 11480 ` ELF*4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X' 'X'T'P'L'H'DDH?LP?!   ?!   ?!   ! B? ? ?B؅BB?;X@X!! ЅBB?! BDBB?! B! B! BDBЅBB?؅B! BFFȅȕ! BFȅȉ! …B?B! ą…?#! ;X@X! B?! B  ?;X@X! ! ! ?! ?;X@X! ?! #?#`! …B;X@X @  ‰` BX$ $ #?#`! …B;X@X @  …‹#` BX$ $ ;X@X!  !   T$ $ 1'!   ?! B?! B؅B#` BB HB;X@X@! B`  B;X@XT$ $ 'VAN DER GRINTEN@ !TD-?@@"@;@=|׽vandginvintvandginv d"d-8.8/<@ʣ4$ C$L o    vandginv.c/ecs/hdfeos/gctp/src/vandginv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbjqsAAW4p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o vandginv.o vandginv.c -W0,-xp\$XAEBTnbjqsAAW4p.vandginvint$XBEBTnbjqsAAW4p.vandginvint.__func__vandginv$XBEBTnbjqsAAW4p.vandginv.__func__$XAEBTnbjqsAAW4p.false_northing$XAEBTnbjqsAAW4p.false_easting$XAEBTnbjqsAAW4p.R$XAEBTnbjqsAAW4p.lon_centerd d"d-8.8/<@ʣӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ ^ h | L D1LD2`D3tD4D8D9D:D;D< , D= $ + 5 ?T KX4 W a k v       DQ4DRPDSlDTDUDVDWDXDY D[dD\D]D^,D_PxDaxDbDdDfDgDhDj`DlDnDo Dr Dt , Du (!/\4(!/=[(!/v(!/!$$$$$$($<$O$cbvandginv.c/ecs/hdfeos/gctp/src/vandginv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbjqsAAW4p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hvandginvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)vandginv.c$XBEBTnbjqsAAW4p.vandginvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)vandginv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)xx:(0,18)yy:(0,18)xys:(0,18)c1:(0,18)c2:(0,18)c3:(0,18)a1:(0,18)m1:(0,18)con:(0,18)th1:(0,18)d:(0,18)$XBEBTnbjqsAAW4p.vandginv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbjqsAAW4p.false_northing:S(0,18)$XAEBTnbjqsAAW4p.false_easting:S(0,18)$XAEBTnbjqsAAW4p.R:S(0,18)$XAEBTnbjqsAAW4p.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)cos:P(0,18);(0,18)acos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06vandginv.cBbss.bssDdata.dataDrodata.rodataadjust_loncosacossqrtfabs$XBEBTnbjqsAAW4p.vandginv.__func__vandginvoffsetpcenlonradiusptitle$XAEBTnbjqsAAW4p.false_northing$XAEBTnbjqsAAW4p.false_easting$XAEBTnbjqsAAW4p.lon_center$XAEBTnbjqsAAW4p.R$XBEBTnbjqsAAW4p.vandginvint.__func__vandginvint  P/:>CHM\ p@yP * ` d t x           x |           < @ d h p t        ( ( 0 0D 0H 0T \ ` p 0t 0    8 8   @ @  0 0 8 8@ D H 0L 0\p 0    0 0 0  $ H( H< @ ` d x @| @        4 0 e%]+` 7F 4  Q(d_!h#26p$h x%  wivfor.o/ 1073924773 1032 20 100644 9860 ` ELF$,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X;XX;X@X'@'X'T'P'L'H'DDH?LP?!   ;X@X??;X@X! B?'?;X@X@ȅ¿#?! ?;X@X@ ?ЅB?;X@X! Ā !  @@Ġ '! ?!   ! Bཡ B?;X@X @!   BT$ $ !   ! B?;X@X @!   BX$ $ 'WAGNER IVIteration failed to convergewagneriv-forward@DKL?=|׽@?랃%? 4\wivforintwivfor d d)8*8+<@ʥ4 $ 7$> _    wivfor.c/ecs/hdfeos/gctp/src/wivfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbkqsAAW5p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o wivfor.o wivfor.c -W0,-xp\$XAEBTnbkqsAAW5p.wivforint$XBEBTnbkqsAAW5p.wivforint.__func__wivfor$XBEBTnbkqsAAW5p.wivfor.__func__$XAEBTnbkqsAAW5p.false_northing$XAEBTnbkqsAAW5p.false_easting$XAEBTnbkqsAAW5p.R$XAEBTnbkqsAAW5p.lon_center2 d d)8*8+<@ʥπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D,LD-`D.tD/D3D4D5D6D7 , D8 $  * 6T @X4 J [ h { DJ4DK\DLdDPDRDSDTDU(DPPDV\dDWdDXxDYDZ0 , D[@@ (!. (!. (!.;(!._$y$$$$$$ $$1bwivfor.c/ecs/hdfeos/gctp/src/wivfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbkqsAAW5p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hwivforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)wivfor.c$XBEBTnbkqsAAW5p.wivforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)wivfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)theta:(0,18)delta_theta:(0,18)con:(0,18)i:(0,4)$XBEBTnbkqsAAW5p.wivfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbkqsAAW5p.false_northing:S(0,18)$XAEBTnbkqsAAW5p.false_easting:S(0,18)$XAEBTnbkqsAAW5p.R:S(0,18)$XAEBTnbkqsAAW5p.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06wivfor.cBbss.bssDdata.dataDrodata.rodatap_errorfabscossinadjust_lon$XBEBTnbkqsAAW5p.wivfor.__func__wivforoffsetpcenlonradiusptitle$XAEBTnbkqsAAW5p.false_northing$XAEBTnbkqsAAW5p.false_easting$XAEBTnbkqsAAW5p.lon_center$XAEBTnbkqsAAW5p.R$XBEBTnbkqsAAW5p.wivforint.__func__wivforint 0-5:>BM:n(Pu}0 $` d t x       ` d x        (0 4 ` d p            ( (( 8 < 4 x0 0=pA%+ 7hF8D  Q|2_hT.p  x"(  wivinv.o/ 1073924774 1032 20 100644 9200 ` ELF!4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X;XX;X@X'`'X'T'P'L'H'DDH?LP?!   ?!   ?!   ! B;X@X?!   ??!   ! B?;X@X؅ @Ѕ ȅB;X@XT$ $ ! B?;X@X@! ;X@XX$ $ 'WAGNER IV? 4\?랃%@@DKLwivinvintwivinv d d)8*8+<@ʦ4 $ 7$> _    wivinv.c/ecs/hdfeos/gctp/src/wivinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnblqsAAW6p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o wivinv.o wivinv.c -W0,-xp\$XAEBTnblqsAAW6p.wivinvint$XBEBTnblqsAAW6p.wivinvint.__func__wivinv$XBEBTnblqsAAW6p.wivinv.__func__$XAEBTnblqsAAW6p.false_northing$XAEBTnblqsAAW6p.false_easting$XAEBTnblqsAAW6p.R$XAEBTnblqsAAW6p.lon_center d d)8*8+<@ʦπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D+LD,`D-tD.D2D3D4D5D6 , D7 $  ( 2T >X4 JDE4DFPDGlDHDIDJh W, DKxx (!. (!. (!.(!.($B$`$v$$$$$bwivinv.c/ecs/hdfeos/gctp/src/wivinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnblqsAAW6p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hwivinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)wivinv.c$XBEBTnblqsAAW6p.wivinvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)wivinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)theta:(0,18)$XBEBTnblqsAAW6p.wivinv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnblqsAAW6p.false_northing:S(0,18)$XAEBTnblqsAAW6p.false_easting:S(0,18)$XAEBTnblqsAAW6p.R:S(0,18)$XAEBTnblqsAAW6p.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06wivinv.cBbss.bssDdata.dataDrodata.rodatasincosadjust_lonasin$XBEBTnblqsAAW6p.wivinv.__func__wivinvoffsetpcenlonradiusptitle$XAEBTnblqsAAW6p.false_northing$XAEBTnblqsAAW6p.false_easting$XAEBTnblqsAAW6p.lon_center$XAEBTnblqsAAW6p.R$XBEBTnblqsAAW6p.wivinvint.__func__wivinvint  -15@E*f(mu| ` d t x        ` d |              0 H L \l p | 4 h h x1%+ 7`F0  Q _hC&plp x  wviifor.o/ 1073924775 1032 20 100644 9604 ` ELF#,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'X'X'T'P'L'H'DDH?LP?!   ;X@X?!  آ;XX@@;X@X! B?! ȅB;X@X?! ! Ѕ BB ;X@X?!   ! B B B؉ B!   BT$ $ !   ! Bȉ B B!   BX$ $ 'WAGNER VII@?}A5T?@@V|G?LPrwviiforintwviifor d!d+8,8-<@ʧ4 $ =$E g    wviifor.c/ecs/hdfeos/gctp/src/wviifor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbmqsAAW7p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o wviifor.o wviifor.c -W0,-xp\$XAEBTnbmqsAAW7p.wviiforint$XBEBTnbmqsAAW7p.wviiforint.__func__wviifor$XBEBTnbmqsAAW7p.wviifor.__func__$XAEBTnbmqsAAW7p.false_northing$XAEBTnbmqsAAW7p.false_easting$XAEBTnbmqsAAW7p.R$XAEBTnbmqsAAW7p.lon_center6 d!d+8,8-<@ʧр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D+LD,`D-tD.D2D3D4D5D6 , D7 $ % 1 =T GX4 Q b q   DG4DH\DIDJDKDLDMTDN , DO (!/[ (!/<0(!/ K(!/ o$$$$$$$"$5bwviifor.c/ecs/hdfeos/gctp/src/wviifor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbmqsAAW7p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hwviiforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)wviifor.c$XBEBTnbmqsAAW7p.wviiforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)wviifor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)sin_lon:(0,18)cos_lon:(0,18)s:(0,18)c0:(0,18)c1:(0,18)$XBEBTnbmqsAAW7p.wviifor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbmqsAAW7p.false_northing:S(0,18)$XAEBTnbmqsAAW7p.false_easting:S(0,18)$XAEBTnbmqsAAW7p.R:S(0,18)$XAEBTnbmqsAAW7p.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06wviifor.cBbss.bssDdata.dataDrodata.rodatasqrtsintsincosadjust_lon$XBEBTnbmqsAAW7p.wviifor.__func__wviiforoffsetpcenlonradiusptitle$XAEBTnbmqsAAW7p.false_northing$XAEBTnbmqsAAW7p.false_easting$XAEBTnbmqsAAW7p.lon_center$XAEBTnbmqsAAW7p.R$XBEBTnbmqsAAW7p.wviiforint.__func__wviiforint 0.37?J;l@t|0 $ ` d t x            x |              4@ D P T t x    ( (  4   C% +  7F  Q |6_hX/pp x 4  wviiinv.o/ 1073924776 1032 20 100644 9740 ` ELF#4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'P'X'T'P'L'H'DDH?LP?!   ?!   ?! ?! ?B?؅B?؅B;X@X?!   ! B;X@X B??;X@X @! ! BЅ B;X@XX$ $ !   ??;X@X @! B;XX;X@X! BB;X@XT$ $ 'WAGNER VII@V|G?LPr@?}A5T@wviiinvintwviiinv d!d+8,8-<@ʨ4 $ =$E g    wviiinv.c/ecs/hdfeos/gctp/src/wviiinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnboqsAAW8p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o wviiinv.o wviiinv.c -W0,-xp\$XAEBTnboqsAAW8p.wviiinvint$XBEBTnboqsAAW8p.wviiinvint.__func__wviiinv$XBEBTnboqsAAW8p.wviiinv.__func__$XAEBTnboqsAAW8p.false_northing$XAEBTnboqsAAW8p.false_easting$XAEBTnboqsAAW8p.R$XAEBTnboqsAAW8p.lon_center/ d!d+8,8-<@ʨр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D.LD/`D0tD1D5D6D7D8D9 , D: $ % / 9T EX4 Q [ e nDH4DIPDJlDKDLDMDNDODPDQ\DR w, DS (!/[ (!/< (!/ %(!/ I$^$x$$$$$$$$.bwviiinv.c/ecs/hdfeos/gctp/src/wviiinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnboqsAAW8p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hwviiinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)wviiinv.c$XBEBTnboqsAAW8p.wviiinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)wviiinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)t1:(0,18)t2:(0,18)p:(0,18)c:(0,18)$XBEBTnboqsAAW8p.wviiinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnboqsAAW8p.false_northing:S(0,18)$XAEBTnboqsAAW8p.false_easting:S(0,18)$XAEBTnboqsAAW8p.R:S(0,18)$XAEBTnboqsAAW8p.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06wviiinv.cBbss.bssDdata.dataDrodata.rodatatanatan2adjust_lonsinasinzsqrt$XBEBTnboqsAAW8p.wviiinv.__func__wviiinvoffsetpcenlonradiusptitle$XAEBTnboqsAAW8p.false_northing$XAEBTnboqsAAW8p.false_easting$XAEBTnboqsAAW8p.lon_center$XAEBTnboqsAAW8p.R$XBEBTnboqsAAW8p.wviiinvint.__func__wviiinvint (.28CGMR3t@|( , ` d t x           x |              0 8 T d h l p         4 @  ;%C+D 7F  Q /_h7p x!t@  isinusfor.o/ 1073924777 1032 20 100644 22300 ` ELFTt4(.shstrtab.text.rodata1.data.rodata.bss.data1.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text.rela.data㿠'H'D! #`DH@@H'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! ! @'  !  @?'!  !  @?'! ! B ! ! B !  @?'! ! B ! ! B !  t@?'! BB''';X@X!  !  T@?s'ġ<  ?$  !  B@?a'!  ! ! B !  (@?G'! BB''';X@X!  !  @?'';XX;XX;XX#\#`#d@#h!$ !  !  @?''P'X'T'P'L'H'DDH?LP?TX?\`?!  ! #`@@'! ! B ! ! B ! #`@@'!  ! ! BB?!  ! ! B?d d!"@ ! #`@@X'd<  ?$  ! #`@@F'h h  ! #`@@5' `@'Ԁ ! #`@@$'$ \$ $ Ԡ $ $ Ԡ $ $ !  Ԡ $ $ d'! Ԡ $ $ d$ (d< < $ ,Ԡ 8$ $ ! BԠ 0$ $ Ԡ 0  ! Ԣ 0``! ! BB$`$`h$ @ ,, @$ X X@! #`@!@' X'' ,@! ! ! '! B ,' …… B?h ;X@X! Bd' B! BB'$ ;X@Xd' B! BB'$ '`, $`  $ !  ' Р $ $ h   < <  $< < $̠ ''Р ' ,@ X ,, ?'! ! B B' Ԡ H$ $ '! ! B BԠ P$ $ #*`#$ \'㿀'X'T'P'L'H'DDH?LP?! TX;XX\;XX\@@#\'䀤  !  @?''x'X'T'P'L'H'D! X$ $ ! \$ $ D ! #`@ @'D \!* #@ ! #`@@'H! ! B H! ! B?'P! ! … P! ! ?'D`  P`   BB\$ $ ! ! PD    B?B''D ,@D ($ ܠ$'܀ 'HD 0  ! ! ! B… B?!  D'ؠ  '؅B?!  D''؅?D Xܣ, '؉ BD Xܣ,  '؅?D   H  腡 BBX$ $ '㿘'DD ! #`@-@"'D \!* #@ ! #`@@'D$ \D X@D$ XD@'D'㿘'H'D#`%HD  @@@?' error (isinusfor.c/%s : %s isinusforinitbad return from Isin_for_freeisinusforinitbad parameter; sphere radius invalidisinusforinitbad parameter; longitude of central meridian invalidisinusforinitbad parameter; nzone out of rangeisinusforinitbad parameter; nzone not near an integer valueisinusforinitbad parameter; nzone not multiple of twoisinusforinitbad parameter; ijustify out of rangeisinusforinitbad parameter; ijustify not near an integer valueIsin_for_initbad return from Isin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initisinusforbad return from Isin_fwdIsin_fwdIsin_fwdIsin_for_freeIsin_for_free error (isinusfor.c/%s) : (%i) %s @@ !TD-zG{A3ƀ?zG{=|׽? !TD-?errorisinusforinitIsin_for_initisinusforIsin_fwdIsin_for_freeIsin_errormemory allocationinvalid parameterinvalid handleinvalid key d#d/8081<@ʩ4 5 T s   $ $ 2$< `$i $  isinusfor.c/ecs/hdfeos/gctp/src/isinusfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbpqsAAW9p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o isinusfor.o isinusfor.c -W0,-xp\$XAEBTnbpqsAAW9p.$XBEBTnbpqsAAW9p.error.__func__$XAEBTnbpqsAAW9p.ISIN_BADALLOC$XAEBTnbpqsAAW9p.ISIN_BADPARAM$XAEBTnbpqsAAW9p.ISIN_BADHANDLE$XAEBTnbpqsAAW9p.ISIN_BADKEY$XAEBTnbpqsAAW9p.isinisinusforinit$XBEBTnbpqsAAW9p.isinusforinit.__func__Isin_for_init$XBEBTnbpqsAAW9p.Isin_for_init.__func__isinusfor$XBEBTnbpqsAAW9p.isinusfor.__func__Isin_fwd$XBEBTnbpqsAAW9p.Isin_fwd.__func__Isin_for_free$XBEBTnbpqsAAW9p.Isin_for_free.__func__$XBEBTnbpqsAAW9p.Isin_error.__func__m` d#d/8081<@ʩՀ#A]zހ8]q˂ %@@Yr@Հ Ҁ$:XyF[n߂/C_ vƀ  l ΀ K @ Ѐ@   6 O v  % D z   ۀ  'p`P`߀`"9$sDH DV ,DY@@&&,&T&y&$ޠ(6dGSbDdxDxDDDDDDDTDTDlxDxDDDD HDHD`lDlDDDDDDD<xDxDDDDD D n,D00$-AdMhL]mxD LhD hDDDD@D|DDDD0D0TDTDdtDtD#D$D%D&D'D(D)$D*0D+LD,`D-D.D2D3D4D5 D6<DD=DD>PlDBlDFDG,DI,DJpD[DuDyDzD| D>(`D`D|DDD ,D  $*6T@X4JD4DxDDDV, "D$ߠDH PX"\,7BNDD0DDDxDDDxDDDD$D8DxD D DTDY, ,D$ DD.D/<D2|D5D6D7D8D:,5D;$]DyH DT DWD, CDXXX$$$$*$_bisinusfor.c/ecs/hdfeos/gctp/src/isinusfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbpqsAAW9p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)/usr/include/limits.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/iso/limits_iso.h/usr/include/sys/int_limits.h/usr/include/sys/isa_defs.hclock_t:t(12,1)=(0,4)/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(19,1)=u8_i:(19,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(19,3)=(19,1)version:T(18,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(18,2)=s32type:(0,3),0,32;name:(18,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(22,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(22,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(22,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(22,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(22,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(20,1)=(0,3)sigfpe_handler_type:t(20,2)=*(20,3)=f(0,20)single:t(20,4)=(0,17)extended:t(20,5)=ar(0,4);0;2;(0,14)quadruple:t(20,6)=(0,19)fp_exception_field_type:t(20,7)=(0,14)decimal_string:t(20,8)=ar(0,4);0;511;(0,1):T(20,9)=s532fpclass:(22,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(20,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(20,10)=(20,9)decimal_form:T(20,11)=efixed_form:0,floating_form:1,;:T(20,12)=s12rd:(22,1),0,32;df:(20,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(20,13)=(20,12)decimal_string_form:T(20,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;/usr/include/stdio.h./isin.h:T(24,1)=s16ncol:(0,4),0,32;icol_cen:(0,4),32,32;ncol_inv:(0,18),64,64;;Isin_row_t:t(24,2)=(24,1):T(24,3)=s96false_east:(0,18),0,64;false_north:(0,18),64,64;sphere:(0,18),128,64;sphere_inv:(0,18),192,64;ang_size_inv:(0,18),256,64;nrow:(0,4),320,32;nrow_half:(0,4),352,32;ref_lon:(0,18),384,64;\lon_cen_mer:(0,18),448,64;ijustify:(0,3),512,32;col_dist:(0,18),576,64;col_dist_inv:(0,18),640,64;row:(24,4)=*(24,2),704,32;key:(0,4),736,32;;Isin_t:t(24,5)=(24,3):T(24,6)=s8num:(0,3),0,32;str:(18,3),32,32;;error_t:t(24,7)=(24,6)error:f(0,20);(0,21)=*(0,22)=k(0,1);(0,23)=*(0,24)=k(0,1)routine:p(0,21)text:p(0,23)isinusfor.c$XBEBTnbpqsAAW9p.error.__func__:V(0,25)=ar(0,4);0;5;(0,26)=k(0,1)$XAEBTnbpqsAAW9p.ISIN_BADALLOC:S(24,7)$XAEBTnbpqsAAW9p.ISIN_BADPARAM:S(24,7)$XAEBTnbpqsAAW9p.ISIN_BADHANDLE:S(24,7)$XAEBTnbpqsAAW9p.ISIN_BADKEY:S(24,7)$XAEBTnbpqsAAW9p.isin:S(0,27)=*(24,5)isinusforinit:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)sphere:p(0,18)lon_cen_mer:p(0,18)false_east:p(0,18)false_north:p(0,18)dzone:p(0,18)djustify:p(0,18)nzone:(0,4)ijustify:(0,3)istat:(0,3)$XBEBTnbpqsAAW9p.isinusforinit.__func__:V(0,28)=ar(0,4);0;13;(0,29)=k(0,1)Isin_for_init:F(0,27);(0,18);(0,18);(0,18);(0,18);(0,4);(0,3)sphere:p(0,18)lon_cen_mer:p(0,18)false_east:p(0,18)false_north:p(0,18)nrow:p(0,4)ijustify:p(0,3)thisIsin:(0,27)row:(24,4)irow:(0,4)clat:(0,18)ncol_cen:(0,4)$XBEBTnbpqsAAW9p.Isin_for_init.__func__:V(0,30)=ar(0,4);0;13;(0,31)=k(0,1)isinusfor:F(0,3);(0,18);(0,18);(0,32)=*(0,18);(0,32)lon:p(0,18)lat:p(0,18)x:p(0,32)y:p(0,32)istat:(0,3)$XBEBTnbpqsAAW9p.isinusfor.__func__:V(0,33)=ar(0,4);0;9;(0,34)=k(0,1)Isin_fwd:F(0,3);(0,35)=*(0,36)=k(24,3);(0,18);(0,18);(0,32);(0,32)thisIsin:p(0,37)=*(0,38)=k(24,5)lon:p(0,18)lat:p(0,18)x:p(0,32)y:p(0,32)row:(0,18)col:(0,18)flon:(0,18)irow:(0,4)$XBEBTnbpqsAAW9p.Isin_fwd.__func__:V(0,39)=ar(0,4);0;8;(0,40)=k(0,1)Isin_for_free:F(0,3);(0,41)=*(24,3)thisIsin:p(0,27)$XBEBTnbpqsAAW9p.Isin_for_free.__func__:V(0,42)=ar(0,4);0;13;(0,43)=k(0,1)Isin_error:f(0,3);(0,44)=*(0,45)=k(24,6);(0,46)=*(0,47)=k(0,1)err:p(0,48)=*(0,49)=k(24,7)routine:p(0,46)$XBEBTnbpqsAAW9p.Isin_error.__func__:V(0,50)=ar(0,4);0;10;(0,51)=k(0,1)fabs:P(0,18);(0,18)cos:P(0,18);(0,18)malloc:P(0,52)=*(0,20);(0,14)free:P(0,20);(0,52)fprintf:P(0,3);(0,53)=*(7,2);(0,54)=*(0,55)=k(0,1);0@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)limits.h 1.51 99/10/08 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06isinusfor.cBbss.bssDdata.dataDrodata.rodataerrorIsin_error$XBEBTnbpqsAAW9p.Isin_error.__func__$XBEBTnbpqsAAW9p.Isin_for_free.__func__$XBEBTnbpqsAAW9p.Isin_fwd.__func__Isin_fwd$XBEBTnbpqsAAW9p.isinusfor.__func__isinusforcosfreemalloc$XBEBTnbpqsAAW9p.Isin_for_init.__func__Isin_for_initfabsIsin_for_free$XBEBTnbpqsAAW9p.isinusforinit.__func__isinusforinit$XAEBTnbpqsAAW9p.isin$XAEBTnbpqsAAW9p.ISIN_BADKEY$XAEBTnbpqsAAW9p.ISIN_BADHANDLE$XAEBTnbpqsAAW9p.ISIN_BADPARAM$XAEBTnbpqsAAW9p.ISIN_BADALLOCfprintf__iob$XBEBTnbpqsAAW9p.error.__func__ $!P0H6phA f|  r  d 0.3AVih@w P  $ ( @      , 0 D PH Pl p t x               ( (0 4 X (\ ( ( (   D D  $ < @ D (H (` d  ( ( ( (  @H L P T d h  0  0  $ ( ,, ,H L P T t x |     < <            $ \ ` d Lh L   \ \   l l, 0 4 |8 | 8 8   @  @H @L @p t x |      $  (  ,  0  8 8 < 8 P H T H       H  H   H  H ` 8 d 8 4  8  <  @          , 0 d          , 0 4  8  l p t  x                          $ ( ,     ( 8, 80 4 8 < T X  8 8        0|    ( 84 $ (-D4  @O(  Z,`hCdJqE6yG I P TD0 isinusinv.o/ 1073924779 1032 20 100644 22492 ` ELFU44(.shstrtab.text.rodata1.data.rodata.bss.data1.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text.rela.data㿠'H'D! #`DH@@H'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! ! @'  !  @?'!  !  @?'! ! B ! ! B !  @?'! ! B ! ! B !  t@?'! BB''';X@X!  !  T@?s'ġ<  ?$  !  B@?a'!  ! ! B !  (@?G'! BB''';X@X!  !  @?'';XX;XX;XX#\#`#d@#h!$ !  !  @?''P'X'T'P'L'H'DDH?LP?TX?\`?!  ! #`@@'! ! B ! ! B ! #`@@'!  ! ! BB?!  ! ! B?d d!"@ ! #`@̒@X'd<  ?$  ! #`@@F'h h  ! #`@@5' `@'Ԁ ! #`@@$'$ \$ $ Ԡ $ $ Ԡ $ $ !  Ԡ $ $ d'! Ԡ $ $ d$ (d< < $ ,Ԡ 8$ $ ! BԠ 0$ $ Ԡ 0  ! Ԣ 0``! ! BB$`$`h$ @ ,, @$ X X@! #`@-@' X'' ,@! ! ! '! B ,' …… B?h ;X@X! Bd' B! BB'$ ;X@Xd' B! BB'$ '`, $`  $ !  ' Р $ $ h   < <  $< < $̠ ''Р ' ,@ X ,, ?'! ! B B' Ԡ H$ $ '! ! B BԠ P$ $ #*`#$ \'㿀'X'T'P'L'H'DDH?LP?! TX;XX\;XX\@@#\'䀤  !  @?''x'X'T'P'L'H'D! X$ $ ! \$ $ D ! #`@@'D \!* #@ ! #`@@'PD`   `   B\$ $ \  ! ! … \  ! !  ! \$ $ ?'! ! \  D    B?B''D ,@D ($ ܠ$'܀ 'HD    P   B?D Xܣ,  '؅BD Xܣ,     B?!  !  ! \$ $ ?='D 0  ! ! BBBX$ $ X  !  X``! ! B$`$`X  !  X``! ! BB$`$`'㿘'DD ! #`@-@"'D \!* #@ ! #`@@'D$ \D X@D$ XD@'D'㿘'H'D#`%HD  @@@?' error (isinusinv.c/%s) : %s isinusinvinitbad return from Isin_inv_freeisinusinvinitbad parameter; sphere radius invalidisinusinvinitbad parameter; longitude of central meridian invalidisinusinvinitbad parameter; nzone out of rangeisinusinvinitbad parameter; nzone not near an integer valueisinusinvinitbad parameter; nzone not multiple of twoisinusinvinitbad parameter; ijustify out of rangeisinusinvinitbad parameter; ijustify not near an integer valueisinusinvinitbad return from Isin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_invIsin_inv_freeIsin_inv_free error (isinusinv.c/%s) : (%i) %s @@ !TD-zG{A3ƀ?zG{=|׽? !TD-?errorisinusinvinitIsin_inv_initisinusinvIsin_invIsin_inv_freeIsin_errormemory allocationinvalid parameterinvalid handleinvalid key d#d/8081<@ʫ4 5 T s   $ $ 2$< `$i $  isinusinv.c/ecs/hdfeos/gctp/src/isinusinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbqqsAAW_p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o isinusinv.o isinusinv.c -W0,-xp\$XAEBTnbqqsAAW_p.$XBEBTnbqqsAAW_p.error.__func__$XAEBTnbqqsAAW_p.ISIN_BADALLOC$XAEBTnbqqsAAW_p.ISIN_BADPARAM$XAEBTnbqqsAAW_p.ISIN_BADHANDLE$XAEBTnbqqsAAW_p.ISIN_BADKEY$XAEBTnbqqsAAW_p.isinisinusinvinit$XBEBTnbqqsAAW_p.isinusinvinit.__func__Isin_inv_init$XBEBTnbqqsAAW_p.Isin_inv_init.__func__isinusinv$XBEBTnbqqsAAW_p.isinusinv.__func__Isin_inv$XBEBTnbqqsAAW_p.Isin_inv.__func__Isin_inv_free$XBEBTnbqqsAAW_p.Isin_inv_free.__func__$XBEBTnbqqsAAW_p.Isin_error.__func__s` d#d/8081<@ʫՀ#A]zހ8]q˂ %@@Yr@Հ Ҁ$:XyF[n߂/C_ vƀ  l ΀ K @ Ѐ@   6 O v  % D z   ۀ  'p`P`߀`"9$sDH DV ,DY@@&&,&T&y&$ޠ(6dGSbDdxDxDDDDDDDTDTDlxDxDDDD HDHD`lDlDDDDDDD<xDxDDDDD D n,D00$-AdMhL]mxD LhD hDDDD@D|DDDD0D0TDTDdtD tD$D%D&D'D(D)D*$D+0D,LD-`D.D/D3D4D5D6 D7<DD>DD?PlDClDGDH,DJ,DKpD\DvDzD{D} D?(`D`D|DDD ,D  $(2T>X4JD4DxDDDV, "D$ߠDH PX \,7BNDD0DDDxDDPDPpDpDDDDD ,D D DDDdDY, ,D$ DD.D/<D2|D5D6D7D8D:,5D;$]DyH DU DXD, CDYXX$$$$*$_bisinusinv.c/ecs/hdfeos/gctp/src/isinusinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbqqsAAW_p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)/usr/include/limits.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/iso/limits_iso.h/usr/include/sys/int_limits.h/usr/include/sys/isa_defs.hclock_t:t(12,1)=(0,4)/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(19,1)=u8_i:(19,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(19,3)=(19,1)version:T(18,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(18,2)=s32type:(0,3),0,32;name:(18,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(22,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(22,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(22,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(22,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(22,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(20,1)=(0,3)sigfpe_handler_type:t(20,2)=*(20,3)=f(0,20)single:t(20,4)=(0,17)extended:t(20,5)=ar(0,4);0;2;(0,14)quadruple:t(20,6)=(0,19)fp_exception_field_type:t(20,7)=(0,14)decimal_string:t(20,8)=ar(0,4);0;511;(0,1):T(20,9)=s532fpclass:(22,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(20,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(20,10)=(20,9)decimal_form:T(20,11)=efixed_form:0,floating_form:1,;:T(20,12)=s12rd:(22,1),0,32;df:(20,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(20,13)=(20,12)decimal_string_form:T(20,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;/usr/include/stdio.h./isin.h:T(24,1)=s16ncol:(0,4),0,32;icol_cen:(0,4),32,32;ncol_inv:(0,18),64,64;;Isin_row_t:t(24,2)=(24,1):T(24,3)=s96false_east:(0,18),0,64;false_north:(0,18),64,64;sphere:(0,18),128,64;sphere_inv:(0,18),192,64;ang_size_inv:(0,18),256,64;nrow:(0,4),320,32;nrow_half:(0,4),352,32;ref_lon:(0,18),384,64;\lon_cen_mer:(0,18),448,64;ijustify:(0,3),512,32;col_dist:(0,18),576,64;col_dist_inv:(0,18),640,64;row:(24,4)=*(24,2),704,32;key:(0,4),736,32;;Isin_t:t(24,5)=(24,3):T(24,6)=s8num:(0,3),0,32;str:(18,3),32,32;;error_t:t(24,7)=(24,6)error:f(0,20);(0,21)=*(0,22)=k(0,1);(0,23)=*(0,24)=k(0,1)routine:p(0,21)text:p(0,23)isinusinv.c$XBEBTnbqqsAAW_p.error.__func__:V(0,25)=ar(0,4);0;5;(0,26)=k(0,1)$XAEBTnbqqsAAW_p.ISIN_BADALLOC:S(24,7)$XAEBTnbqqsAAW_p.ISIN_BADPARAM:S(24,7)$XAEBTnbqqsAAW_p.ISIN_BADHANDLE:S(24,7)$XAEBTnbqqsAAW_p.ISIN_BADKEY:S(24,7)$XAEBTnbqqsAAW_p.isin:S(0,27)=*(24,5)isinusinvinit:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)sphere:p(0,18)lon_cen_mer:p(0,18)false_east:p(0,18)false_north:p(0,18)dzone:p(0,18)djustify:p(0,18)nzone:(0,4)ijustify:(0,3)istat:(0,3)$XBEBTnbqqsAAW_p.isinusinvinit.__func__:V(0,28)=ar(0,4);0;13;(0,29)=k(0,1)Isin_inv_init:F(0,27);(0,18);(0,18);(0,18);(0,18);(0,4);(0,3)sphere:p(0,18)lon_cen_mer:p(0,18)false_east:p(0,18)false_north:p(0,18)nrow:p(0,4)ijustify:p(0,3)thisIsin:(0,27)row:(24,4)irow:(0,4)clat:(0,18)ncol_cen:(0,4)$XBEBTnbqqsAAW_p.Isin_inv_init.__func__:V(0,30)=ar(0,4);0;13;(0,31)=k(0,1)isinusinv:F(0,3);(0,18);(0,18);(0,32)=*(0,18);(0,32)x:p(0,18)y:p(0,18)lon:p(0,32)lat:p(0,32)istat:(0,3)$XBEBTnbqqsAAW_p.isinusinv.__func__:V(0,33)=ar(0,4);0;9;(0,34)=k(0,1)Isin_inv:F(0,3);(0,35)=*(0,36)=k(24,3);(0,18);(0,18);(0,32);(0,32)thisIsin:p(0,37)=*(0,38)=k(24,5)x:p(0,18)y:p(0,18)lon:p(0,32)lat:p(0,32)row:(0,18)col:(0,18)flon:(0,18)irow:(0,4)$XBEBTnbqqsAAW_p.Isin_inv.__func__:V(0,39)=ar(0,4);0;8;(0,40)=k(0,1)Isin_inv_free:F(0,3);(0,41)=*(24,3)thisIsin:p(0,27)$XBEBTnbqqsAAW_p.Isin_inv_free.__func__:V(0,42)=ar(0,4);0;13;(0,43)=k(0,1)Isin_error:f(0,3);(0,44)=*(0,45)=k(24,6);(0,46)=*(0,47)=k(0,1)err:p(0,48)=*(0,49)=k(24,7)routine:p(0,46)$XBEBTnbqqsAAW_p.Isin_error.__func__:V(0,50)=ar(0,4);0;10;(0,51)=k(0,1)fabs:P(0,18);(0,18)cos:P(0,18);(0,18)malloc:P(0,52)=*(0,20);(0,14)free:P(0,20);(0,52)fprintf:P(0,3);(0,53)=*(7,2);(0,54)=*(0,55)=k(0,1);0@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)limits.h 1.51 99/10/08 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06isinusinv.cBbss.bssDdata.dataDrodata.rodataerrorIsin_error$XBEBTnbqqsAAW_p.Isin_error.__func__$XBEBTnbqqsAAW_p.Isin_inv_free.__func__$XBEBTnbqqsAAW_p.Isin_inv.__func__Isin_inv$XBEBTnbqqsAAW_p.isinusinv.__func__isinusinvcosfreemalloc$XBEBTnbqqsAAW_p.Isin_inv_init.__func__Isin_inv_initfabsIsin_inv_free$XBEBTnbqqsAAW_p.isinusinvinit.__func__isinusinvinit$XAEBTnbqqsAAW_p.isin$XAEBTnbqqsAAW_p.ISIN_BADKEY$XAEBTnbqqsAAW_p.ISIN_BADHANDLE$XAEBTnbqqsAAW_p.ISIN_BADPARAM$XAEBTnbqqsAAW_p.ISIN_BADALLOCfprintf__iob$XBEBTnbqqsAAW_p.error.__func__ $!P0H6hA f|  r  d 0.3AVih@w P  $ ( @      , 0 D PH Pl p t x               ( (0 4 X (\ ( ( (   D D  $ < @ D (H (` d  ( ( ( (  @H L P T d h  0  0  $ ( ,, ,H L P T t x |     < <            $ \ ` d Lh L   \ \   l l, 0 4 |8 | 8 8   @  @H @L @p t x |      $  (  ,  0  8 8 < 8 P H T H       H  H   H  H ` 8 d 8 4  8  <  @          , 0 d          , 0 4  8  l p t  x              ( , H L P T \ ` x 8| 8           $ ( H @L @l p t x         $ L`    ( 84 $  (-D4  @$O p  Z,|`hCJqF&6yH\ Jl  U0 for_init.o/ 1073924781 1032 20 100644 37708 ` ELF4(.shstrtab.text.rodata.bss.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.texth'X'T'P'L'H'D''D a7L  !  L  !  L   !  L   ! ?'PPLH@@JD b;L  !  L  !  L   !  L   ! ?'P 'PPLH@@ PLH@@L 0  ?xL 8  ?pD a\L   ;XX@! B! B? \$  ? 'L (  ;XX@! B! B? \$  ? 'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $ D b\L   ;XX@! B! B? \$  ? 'L (  ;XX@! B! B? \$  ? e'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $ ?D ~P 'DDLH@@H' KL  ;XX@! B! B? \$  ? 'L   ;XX@! B! B? \$  ? '! B;X@X'!  '! ?;XX;XX;XX@#\$  \$ '`D, $ D !HPTX@@$  \$  ? ''`D, $ D L   ;XX@! B! B? \$  ? 'L   ;XX@! B! B? \$  ? d'L (  ;XX@! B! B? \$  ? H'L   ;XX@! B! B? \$  ? ,'xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@$  \$ '`D, $ D L   ;XX@! B! B? \$  ? 'L   ;XX@! B! B? \$  ? 'L   ;XX@! B! B? \$  ? 'L (  ;XX@! B! B? \$  ? 'xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@$  \$ '`D, $ dD \L   ;XX@! B! B? \$  ? H'L (  ;XX@! B! B? \$  ? ,'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $ D \L   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $D \L   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?p'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $JD L   ;XX@! B! B? \$  ?.'L   ;XX@! B! B? \$  ?'L   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'L @  ! B'8 '8xp8;XX;XX;XX#\#`#d#h#l#p#t#x#|#@#$  \$ '`D, $D dL   ?L   ;XX@! B! B? \$  ?~'L (  ;XX@! B! B? \$  ?b'xp;XX;XX;XX#\#`#d#h#l#p#t#x@$  \$ '`D, $9D YL   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $D YL   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $D YL   ;XX@! B! B? \$  ?g'L (  ;XX@! B! B? \$  ?K'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $(D YL   ;XX@! B! B? \$  ? 'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $D YL   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $rD aL   ;XX@! B! B? \$  ?V'L (  ;XX@! B! B? \$  ?:'L   ?Hxp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $D :L   ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D YL   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $xD :L   ;XX@! B! B? \$  ?\'Hxp;XX;XX;XX#\#`@$  \$ '`D, $<D :L   ;XX@! B! B? \$  ? 'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D L   ?L (  ;XX@! B! B? \$  ?'L `  ! B> '8L   ;XX@! B! B? \$  ?'L   ;XX@! B! B? \$  ?'s'8L @  ;XX@! B! B? \$  ?|'L H  ;XX@! B! B? \$  ?`'L P  ;XX@! B! B? \$  ?D'L X  ;XX@! B! B? \$  ?('xp8;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#$  \$ '`D, $D L   B''@L   B''<L `  ! BP '8L   ;XX@! B! B? \$  ?'L   ;XX@! B! B? \$  ?'L @  ?PL H  ?0L P  B''\'8<@xpP\80;XX;XX@#\#`#d#h#l#p#t#x#|#####@$  \$ '`D, $RD :L   ;XX@! B! B? \$  ?6'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D :L   ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D H;X@X$  \$ '`D, $D :L   ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D H;X@X$  \$ '`D, $rD xp;XX;XX;XX#\#`@$  \$ '`D, $RD :L   ;XX@! B! B? \$  ?6'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D :L   ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D L   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'L   ?hL   ?`L @  ;XX@! B! B? \$  ?|'Hh`xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@$  \$ '`D, $PD cD HL   ;XX@! B! B? \$  ?0'L @  ?(L P  ? Hxp( ;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $'@ >U@Lc˰?#xfor_init> d"d-8.8/<@ʬ4$ for_init.c/ecs/hdfeos/gctp/src/for_init.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbsqsAAW$p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o for_init.o for_init.c -W0,-xp\$XAEBTnbsqsAAW\$p.for_init$XBEBTnbsqsAAW$p.for_init.__func__} d"d-8.8/<@ʬӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    / 8$ D H L РP T X \ `  $ 3 > K W c o {     ̀ ܀  xp*h9`H\TP`HnD}@<80( ΀ڀDcDd Dj(8Dm8DoDrDt DwDyDDD,D,D@DTdDdDDDDDD$D8DDDDDDDD,D@DLDDDDDD$<DDTDTdDdDhDDDDDD DDXDhD|DDDDDDD$<DDTDTDDDDDDD D0DDDPDDDDD D D $D 0D pD D D D D  8D @ PD PD D D D D D D $D 0D pD D D D D D D D D  D  D D D D $D 0D pD D D" D# D$ D'(8D+8D,xD-D.D/D0D1D2 D5D6pD8D;D?D@DADBDC DD`DEpDFDHDIDJDM(DQ(DRhDSxDTDUDVDWDXDYDZHD[XD\lD]xD^D_D`DaDbDdDf DgDhDkDoDpDq(Dr8DsLDtXDuDvDwDyDz,D{<TD~\lDlDDDDDD,D@DLDDDDDD(D<DHDDDDDD,D4DDDDDDDDDDD$DpDDDDDDD D`DpDDDDD DD\DlDDDDDDDHDXpDxDDDDDD8DHD\DhD|DDDDDTDdDxDDDDDDDDTDhDtDDDDD 0D @ XD ` pD pD D D D D! D!0!HD!P!`D!`D!D!D!D!D"D " "8D#"@"PD'"PD("dD)"D*"D+"D,""D."D/#D0#DD1#TD2#hD3#tD4#D5#D6###D:#D;#D<$0D=$@D>$TD?$`D@$DA$DB$DC$DD%DE% DF%4DG%@DH%DI%DJ%%DN%DO&TDP&d&|DS&&DW&DX&DY&&D[&D\'D]'DD^'TD_'hD`'tDa'Db'Dc'Dd'De'Df( (,Di(4Do(8Dp(Dq((Dt()Dx)Dy)HDz)XD{)lD|)xD})D~))D))D)D*8D*HD*\D*hD*D**D**D*D+D++(D+0+@D+@D+D+D+D+D+D,,D, ,0D,0D,HD,X,pD,x,D,D,D,,D,-D-D-HD-XD-lD-xD-D--D--D-D.8D.HD.\D.hD.D..D..D.D/(D/8D/LD/XD/D/D/D/D/D/D00D0@D0TD0`D0D00D11 D1 D1`D1pD1D1D1D1D2D2 28D28, D2H2H?$n$$$$$V$r$$$$4$$$$$1$[$$$$$*$U$n$$$$$G$$$>$i$$$$$R$}$$$$=$r$$$$2$]$$$$$`$$$$B$m$$$ $5$$$$#$P$|bfor_init.c/ecs/hdfeos/gctp/src/for_init.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbsqsAAW$p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.hfor_init:F(0,3);(0,3);(0,3);(0,21)=*(0,18);(0,3);(10,3);(10,3);(0,22)=*(0,3);(0,23)=*(0,24)=*(0,25)=f(0,3)outsys:p(0,3)outzone:p(0,3)outparm:p(0,21)outdatum:p(0,3)fn27:p(10,3)fn83:p(10,3)iflg:p(0,22)for_trans:p(0,23)zone:(0,4)azimuth:(0,18)alf:(0,18)angle:(0,18)lon1:(0,18)lon2:(0,18)lat1:(0,18)lat2:(0,18)center_long:(0,18)center_lat:(0,18)h:(0,18)lon_origin:(0,18)lat_origin:(0,18)r_major:(0,18)r_minor:(0,18)scale_factor:(0,18)false_easting:(0,18)false_northing:(0,18)shape_m:(0,18)shape_n:(0,18)start:(0,4)time:(0,18)radius:(0,18)tmpdatum:(0,4)path:(0,4)satnum:(0,4)mode:(0,4)sat_ratio:(0,18)dzone:(0,18)djustify:(0,18)thing:(0,4)iflg64:(0,26)=*(0,4)for_init.c$XBEBTnbsqsAAW$p.for_init.__func__:V(0,27)=ar(0,4);0;8;(0,28)=k(0,1)sphdz:P(0,3);(0,4);(0,21);(0,21);(0,21);(0,21)paksz:P(0,18);(0,18);(0,26)bceafor:P(0,3);(0,18);(0,18);(0,21);(0,21)bceaforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)ceafor:P(0,3);(0,18);(0,18);(0,21);(0,21)ceaforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)calc_utm_zone:P(0,4);(0,18)utmforint:P(0,3);(0,18);(0,18);(0,18);(0,4)utmfor:P(0,3);(0,18);(0,18);(0,21);(0,21)isinusforinit:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)isinusfor:P(0,3);(0,18);(0,18);(0,21);(0,21)obleqforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)obleqfor:P(0,3);(0,18);(0,18);(0,21);(0,21)wviiforint:P(0,3);(0,18);(0,18);(0,18);(0,18)wviifor:P(0,3);(0,18);(0,18);(0,21);(0,21)wivforint:P(0,3);(0,18);(0,18);(0,18);(0,18)wivfor:P(0,3);(0,18);(0,18);(0,21);(0,21)alconforint:P(0,3);(0,18);(0,18);(0,18);(0,18)alconfor:P(0,3);(0,18);(0,18);(0,21);(0,21)imolwforint:P(0,3);(0,18)imolwfor:P(0,3);(0,18);(0,18);(0,21);(0,21)molwforint:P(0,3);(0,18);(0,18);(0,18);(0,18)molwfor:P(0,3);(0,18);(0,18);(0,21);(0,21)goodforint:P(0,3);(0,18)goodfor:P(0,3);(0,18);(0,18);(0,21);(0,21)robforint:P(0,3);(0,18);(0,18);(0,18);(0,18)robfor:P(0,3);(0,18);(0,18);(0,21);(0,21)hamforint:P(0,3);(0,18);(0,18);(0,18);(0,18)hamfor:P(0,3);(0,18);(0,18);(0,21);(0,21)somforint:P(0,3);(0,18);(0,18);(0,4);(0,4);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4);(0,4);(0,18)somfor:P(0,3);(0,18);(0,18);(0,21);(0,21)omerforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)omerfor:P(0,3);(0,18);(0,18);(0,21);(0,21)vandgforint:P(0,3);(0,18);(0,18);(0,18);(0,18)vandgfor:P(0,3);(0,18);(0,18);(0,21);(0,21)millforint:P(0,3);(0,18);(0,18);(0,18);(0,18)millfor:P(0,3);(0,18);(0,18);(0,21);(0,21)equiforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)equifor:P(0,3);(0,18);(0,18);(0,21);(0,21)sinforint:P(0,3);(0,18);(0,18);(0,18);(0,18)sinfor:P(0,3);(0,18);(0,18);(0,21);(0,21)gvnspforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)gvnspfor:P(0,3);(0,18);(0,18);(0,21);(0,21)orthforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)orthfor:P(0,3);(0,18);(0,18);(0,21);(0,21)gnomforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)gnomfor:P(0,3);(0,18);(0,18);(0,21);(0,21)azimforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)azimfor:P(0,3);(0,18);(0,18);(0,21);(0,21)lamazforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)lamazfor:P(0,3);(0,18);(0,18);(0,21);(0,21)sterforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)sterfor:P(0,3);(0,18);(0,18);(0,21);(0,21)tmforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)tmfor:P(0,3);(0,18);(0,18);(0,21);(0,21)eqconforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)eqconfor:P(0,3);(0,18);(0,18);(0,21);(0,21)polyforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)polyfor:P(0,3);(0,18);(0,18);(0,21);(0,21)psforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)psfor:P(0,3);(0,18);(0,18);(0,21);(0,21)merforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)merfor:P(0,3);(0,18);(0,18);(0,21);(0,21)lamccforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)lamccfor:P(0,3);(0,18);(0,18);(0,21);(0,21)alberforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)alberfor:P(0,3);(0,18);(0,18);(0,21);(0,21)stplnforint:P(0,3);(0,4);(0,4);(10,3);(10,3)stplnfor:P(0,3);(0,18);(0,18);(0,21);(0,21)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06for_init.cBbss.bssDdata.dataDrodata.rodataisinusforisinusforinitobleqforobleqforintwviiforwviiforintwivforwivforintalconforalconforintimolwforimolwforintmolwformolwforintgoodforgoodforintrobforrobforinthamforhamforintsomforsomforintomerforomerforintvandgforvandgforintmillformillforintequiforequiforintsinforsinforintgvnspforgvnspforintorthfororthforintgnomforgnomforintazimforazimforintlamazforlamazforintsterforsterforinttmfortmforinteqconforeqconforintpolyforpolyforintpsforpsforintmerformerforintlamccforlamccforintalberforalberforintstplnforstplnforintutmforutmforintcalc_utm_zonebceaforbceaforintceaforceaforintpakszsphdz$XBEBTnbsqsAAW$p.for_init.__func__for_init  (/9GP\dov +3>FQXbkw%/8DMYbnu( 2XT X x |      J8 < \ `     J4JI    I     HG G I     xI    F4E 8E JI    DIL P X \   D    C4B 8B A@ @  I    $ |I    I       \I d  h  p  t  ? 0> 4> |I         I         \I d  h  p  t  I         = < < I         \I d  h  p  t  ;: : dIl p x | I    p98 8 I    LIT X ` d 76  6 TI\ ` h l I    4I< @ H L I       54 4 I   ( , I    ,3L2 P2 I    I     10 0 I     tI|    /$. (. pIx |   I    p-, , I    LIT X ` d +* * HIP T \ ` I    H)h( l( I    $I, 0 8 < '& & @IH L T X %$ $ 0I8 < D H I     0# P" T" I        ! !!@ !D !I! ! ! ! ""0 "4 "I" " " " " " #0I#8 #< #D #H #I# # # # $I$$ $( $0 $4 $I$ $ $ $ $I% % % % %lI%t %x % % &T&t &x & & '0I'8 '< 'D 'H 'I' ' ' ' (( ( )4I)< )@ )H )L )) ) *$I*, *0 *8 *< ** * ++  +$ +lI+t +x + + +, , ,H,h ,l ,, , -4I-< -@ -H -L - - - .$I., .0 .8 .< . . . /I/ /  /( /, /I/ / / / 0I0$ 0( 00 04 0 0 0 1LI1T 1X 1` 1d 220 24 4| 2h313I3I$3Ll 03>?4!  JV}XsAatiw q||  inv_init.o/ 1073924783 1032 20 100644 37616 ` ELF4(.shstrtab.text.rodata.bss.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'D'$$' D a7L  !  L  !  L   !  L   ! ?'PPLh@@JD b;L  !  L  !  L   !  L   ! ?'P 'PPLh@@ PLh@@L 0  ?xL 8  ?pD a\L    ;XX@! B! B?  \$   ? 'L (   ;XX@! B! B?  \$   ? 'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $ D b\L    ;XX@! B! B?  \$   ? u'L (   ;XX@! B! B?  \$   ? Y'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $ 3D ~P '@@Lh@@H' KL   ;XX@! B! B?  \$   ? 'L    ;XX@! B! B?  \$   ? '! B;X@X'!  '! ?;XX;XX;XX@#\ $   \$ '`D, $ D !HPTX@@ $   \$   ? ''`D, $ D L    ;XX@! B! B?  \$   ? t'L    ;XX@! B! B?  \$   ? X'L    ;XX@! B! B?  \$   ? <'L (   ;XX@! B! B?  \$   ? 'xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@ $   \$ '`D, $ D L    ;XX@! B! B?  \$   ? 'L    ;XX@! B! B?  \$   ? 'L    ;XX@! B! B?  \$   ? 'L (   ;XX@! B! B?  \$   ? 'xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@ $   \$ '`D, $ XD \L    ;XX@! B! B?  \$   ? <'L (   ;XX@! B! B?  \$   ? 'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $D \L    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $D \L    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?d'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $>D L    ;XX@! B! B?  \$   ?"'L    ;XX@! B! B?  \$   ?'L    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'L @  ! B'D 'DxpD;XX;XX;XX#\#`#d#h#l#p#t#x#|#@# $   \$ '`D, $D dL   ?L    ;XX@! B! B?  \$   ?r'L (   ;XX@! B! B?  \$   ?V'xp;XX;XX;XX#\#`#d#h#l#p#t#x@ $   \$ '`D, $-D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $wD YL    ;XX@! B! B?  \$   ?['L (   ;XX@! B! B?  \$   ??'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $fD aL    ;XX@! B! B?  \$   ?J'L (   ;XX@! B! B?  \$   ?.'L   ?hxp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $lD :L    ;XX@! B! B?  \$   ?P'hxp;XX;XX;XX#\#`@ $   \$ '`D, $0D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D L   ?L (   ;XX@! B! B?  \$   ?'L `  ! B> 'DL    ;XX@! B! B?  \$   ?'L    ;XX@! B! B?  \$   ?'s'DL @   ;XX@! B! B?  \$   ?p'L H   ;XX@! B! B?  \$   ?T'L P   ;XX@! B! B?  \$   ?8'L X   ;XX@! B! B?  \$   ?'xpD;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@# $   \$ '`D, $D L   B''LL   B''HL `  ! BH 'DL    ;XX@! B! B?  \$   ?'L    ;XX@! B! B?  \$   ?'L @  ?PL H  ?8'DHLxpPD8;XX;XX@#\#`#d#h#l#p#t#x#|##@; $   \$ '`D, $RD :L    ;XX@! B! B?  \$   ?6'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D h;X@X $   \$ '`D, $D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D h;X@X $   \$ '`D, $rD xp;XX;XX;XX#\#`@ $   \$ '`D, $RD :L    ;XX@! B! B?  \$   ?6'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D L    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'L   ?`L   ?XL @   ;XX@! B! B?  \$   ?|'h`Xxp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@ $   \$ '`D, $PD cD HL    ;XX@! B! B?  \$   ?0'L @  ?0L P  ?(hxp0(;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $'@ >U@Lc˰?#xinv_init= d"d-8.8/<@ʮ4$ inv_init.c/ecs/hdfeos/gctp/src/inv_init.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbuqsAAmAq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o inv_init.o inv_init.c -W0,-xp\$XAEBTnbuqsAAmAq.inv_init$XBEBTnbuqsAAmAq.inv_init.__func__g d"d-8.8/<@ʮӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    / 8$ D H L ͠P ܠT X \ `   / < G S _ k w     ɀ ؀  xp&h4`CXRP^LiHvD@80($ʀ ߄DdDe Dk(8Dn8DpDsDu DxDzDDD,D,D@DTdDdDDDDDD$D8DDDDDDDD,D@DLDDDDDD$<DDTDTdDdDhDDDDDD DDXDhD|DDDDDDD$<DDTDTDDDDDDD D0DDDPDDDDD D D $D 0D pD D D D D  8D @ PD PD D D D D D D $D 0D pD D D D D D D D D  D  D D D D $D 0D pD D D" D# D$ D'(8D+8D,xD-D.D/D0D1D2 D4D5pD6D9D=D>D?D@DA DB`DCpDDDFDGDHDK(DO(DPhDQxDRDSDTDUDVDWDXHDYXDZlD[xD\D]D^D_D`DbDd DeDfDiDmDnDo(Dp8DqLDrXDsDtDuDwDx,Dy<TD|\lDlDDDDDD,D@DLDDDDDD(D<DHDDDDDD,D4DDDDDDDDDDD$DpDDDDDDD D`DpDDDDD DD\DlDDDDDDDHDXpDxDDDDDD8DHD\DhD|DDDDDTDdDxDDDDDDDDTDhDtDDDDD 0D @ XD ` pD pD D D D D! D!0!HD!P!`D!`D!D!D!D!D"D" "8D""@"PD&"PD'"dD("D)"D*"D+""D-"D.#D/#DD0#TD1#hD2#tD3#D4#D5###D9#D:#D;$0D<$@D=$TD>$`D?$D@$DA$DB$DC%DD% DE%4DF%@DG%DH%DI%%DN%DO&TDP&d&|DS&&DW&DX&DY&&D[&D\'D]'DD^'TD_'hD`'tDa'Db'Dc'Dd'De'( Di(Dp(Dq(Dr((Du((Dy(Dz)D{)(D|)<D})HD~)D))D))D)D*D*D*,D*8D*xD**D**D*D*D**D++D+D+PD+`D+tD+D+D++D+,D,D,D,(,@D,H,XD,XD,D,,D,,D,D-D-(D-<D-HD-D--D--D-D.D.D.,D.8D.xD..D..D.D.D/D/D/(D/hD/xD/D/D/D/D0D0D0$D00D0D00D00D0D10D1@D1TD1`D1tD1D1D12D2, D22/$^$z$$$ $F$b$$$$$$o$$$$!$K$z$$$$$E$^$$$$ $7$$$($S$$$$$<$g$$$$'$\$$$$$G$}$$$ $J$s$$$,$W$$$$$j$$$ $:$fbinv_init.c/ecs/hdfeos/gctp/src/inv_init.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbuqsAAmAq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.hinv_init:F(0,3);(0,3);(0,3);(0,21)=*(0,18);(0,3);(10,3);(10,3);(0,22)=*(0,3);(0,23)=*(0,24)=*(0,25)=f(0,3)insys:p(0,3)inzone:p(0,3)inparm:p(0,21)indatum:p(0,3)fn27:p(10,3)fn83:p(10,3)iflg:p(0,22)inv_trans:p(0,23)zone:(0,4)azimuth:(0,18)angle:(0,18)alf:(0,18)lon1:(0,18)lon2:(0,18)lat1:(0,18)lat2:(0,18)center_long:(0,18)center_lat:(0,18)h:(0,18)lat_origin:(0,18)lon_origin:(0,18)r_major:(0,18)r_minor:(0,18)scale_factor:(0,18)false_easting:(0,18)false_northing:(0,18)radius:(0,18)shape_m:(0,18)shape_n:(0,18)time:(0,18)path:(0,4)satnum:(0,4)mode:(0,4)tmpdatum:(0,4)sat_ratio:(0,18)dzone:(0,18)djustify:(0,18)thing:(0,4)iflg64:(0,26)=*(0,4)inv_init.c$XBEBTnbuqsAAmAq.inv_init.__func__:V(0,27)=ar(0,4);0;8;(0,28)=k(0,1)sphdz:P(0,3);(0,4);(0,21);(0,21);(0,21);(0,21)paksz:P(0,18);(0,18);(0,26)bceainv:P(0,3);(0,18);(0,18);(0,21);(0,21)bceainvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)ceainv:P(0,3);(0,18);(0,18);(0,21);(0,21)ceainvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)calc_utm_zone:P(0,4);(0,18)utminvint:P(0,3);(0,18);(0,18);(0,18);(0,4)utminv:P(0,3);(0,18);(0,18);(0,21);(0,21)isinusinvinit:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)isinusinv:P(0,3);(0,18);(0,18);(0,21);(0,21)obleqinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)obleqinv:P(0,3);(0,18);(0,18);(0,21);(0,21)wviiinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)wviiinv:P(0,3);(0,18);(0,18);(0,21);(0,21)wivinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)wivinv:P(0,3);(0,18);(0,18);(0,21);(0,21)alconinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)alconinv:P(0,3);(0,18);(0,18);(0,21);(0,21)imolwinvint:P(0,3);(0,18)imolwinv:P(0,3);(0,18);(0,18);(0,21);(0,21)molwinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)molwinv:P(0,3);(0,18);(0,18);(0,21);(0,21)goodinvint:P(0,3);(0,18)goodinv:P(0,3);(0,18);(0,18);(0,21);(0,21)robinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)robinv:P(0,3);(0,18);(0,18);(0,21);(0,21)haminvint:P(0,3);(0,18);(0,18);(0,18);(0,18)haminv:P(0,3);(0,18);(0,18);(0,21);(0,21)sominvint:P(0,3);(0,18);(0,18);(0,4);(0,4);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4);(0,18)sominv:P(0,3);(0,18);(0,18);(0,21);(0,21)omerinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)omerinv:P(0,3);(0,18);(0,18);(0,21);(0,21)vandginvint:P(0,3);(0,18);(0,18);(0,18);(0,18)vandginv:P(0,3);(0,18);(0,18);(0,21);(0,21)millinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)millinv:P(0,3);(0,18);(0,18);(0,21);(0,21)equiinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)equiinv:P(0,3);(0,18);(0,18);(0,21);(0,21)sininvint:P(0,3);(0,18);(0,18);(0,18);(0,18)sininv:P(0,3);(0,18);(0,18);(0,21);(0,21)gvnspinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)gvnspinv:P(0,3);(0,18);(0,18);(0,21);(0,21)orthinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)orthinv:P(0,3);(0,18);(0,18);(0,21);(0,21)gnominvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)gnominv:P(0,3);(0,18);(0,18);(0,21);(0,21)aziminvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)aziminv:P(0,3);(0,18);(0,18);(0,21);(0,21)lamazinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)lamazinv:P(0,3);(0,18);(0,18);(0,21);(0,21)sterinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)sterinv:P(0,3);(0,18);(0,18);(0,21);(0,21)tminvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)tminv:P(0,3);(0,18);(0,18);(0,21);(0,21)eqconinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)eqconinv:P(0,3);(0,18);(0,18);(0,21);(0,21)polyinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)polyinv:P(0,3);(0,18);(0,18);(0,21);(0,21)psinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)psinv:P(0,3);(0,18);(0,18);(0,21);(0,21)merinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)merinv:P(0,3);(0,18);(0,18);(0,21);(0,21)lamccinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)lamccinv:P(0,3);(0,18);(0,18);(0,21);(0,21)alberinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)alberinv:P(0,3);(0,18);(0,18);(0,21);(0,21)stplninvint:P(0,3);(0,4);(0,4);(10,3);(10,3)stplninv:P(0,3);(0,18);(0,18);(0,21);(0,21)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06inv_init.cBbss.bssDdata.dataDrodata.rodataisinusinvisinusinvinitobleqinvobleqinvintwviiinvwviiinvintwivinvwivinvintalconinvalconinvintimolwinvimolwinvintmolwinvmolwinvintgoodinvgoodinvintrobinvrobinvinthaminvhaminvintsominvsominvintomerinvomerinvintvandginvvandginvintmillinvmillinvintequiinvequiinvintsininvsininvintgvnspinvgvnspinvintorthinvorthinvintgnominvgnominvintaziminvaziminvintlamazinvlamazinvintsterinvsterinvinttminvtminvinteqconinveqconinvintpolyinvpolyinvintpsinvpsinvintmerinvmerinvintlamccinvlamccinvintalberinvalberinvintstplninvstplninvintutminvutminvintcalc_utm_zonebceainvbceainvintceainvceainvintpakszsphdz$XBEBTnbuqsAAmAq.inv_init.__func__inv_init  (/9GP\dov +3>FQXbkw%/8DMYbnu( 2(T X x |      J8 < \ `     J4JI    I     HG G I     xI    F4E 8E JI    DIL P X \   D    C4B 8B A@ @  I    $ |I    I       \I d  h  p  t  ? 0> 4> |I         I         \I d  h  p  t  I         = < < I         \I d  h  p  t  ;: : dIl p x | I    p98 8 I    LIT X ` d 76  6 TI\ ` h l I    4I< @ H L I       54 4 I   ( , I    ,3L2 P2 I    I     10 0 I     tI|    /$. (. pIx |   I    p-, , I    LIT X ` d +* * HIP T \ ` I    H)h( l( I    $I, 0 8 < '& & @IH L T X %$ $ 0I8 < D H I     0# P" T" I        ! !!@ !D !I! ! ! ! ""0 "4 "I" " " " " " #0I#8 #< #D #H #I# # # # $I$$ $( $0 $4 $I$ $ $ $ $I% % % % %lI%t %x % % &T&t &x & & '0I'8 '< 'D 'H 'I' ' ' ' (( ( )I)  ) ) ) )) ) )I) * * *  *x* * ** * +<I+D +H +P +T ++ + ,,8 ,< ,, , -I-  - - - - - - -I- . . .  .x . . .I. . . . /TI/\ /` /h /l /I/ / 0 0 0 0 0 1I1$ 1( 10 14 12 2 4| 282133$3l 03=?4!  JV|gXratiwt q|D|  cproj.o/ 1073924785 1032 20 100644 27112 ` ELFg4(.shstrtab.text.rodata.data1.bss.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿘'P'L'H'DDH?;X@XL$ $ ;X@XP$ $ 㿐'H'DDH?;X@X! ! ! ?! ?;X@X?#"p'X'T'P'L'H'DDH?LP?TX?腡 B??! ؅B;X@XЅ ?#"`'X'T'P'L'H'DDH?LP?TX?! $腡 B?! F?؅ H½ ?! ?ЉȅH ;X@XЅ @ȅ B ?! B?#"0'T'P'L'H'DDH?LP?! B;X@X?! g?B? ' O;XX@@ B?! ЅB?! HF ?! ‰ ƽ? ?Љ…B ;X@X @B B?؅B?;X@X!  ? ' !  @@ T$ ! ?#"H'T'P'L'H'DDH?LP?T$ ! B?! ! B?;X@X! B?' D;X@X? B?! ! B??! Ѝ…B;XX;X@X @;X@X! B؅?ȅB?;X@X!  ? ' !  @@ T$ ! ?#"('X'T'P'L'H'DDH?LP?TX?\`?dh??' L??! B;X@X @B??! B;X@X @??! B;X@X @B艡 ȅ?B?;X@X!  l$ ? ' !  0@@ l$ ! ?#"'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?$ $  'tt   ;X@X?  ;X@X??h! DD;X@Xh @|$ $   ! B;X@X?  H B?X?`! B;X@X` @XB?H?P  ! B;X@XP @H??h! D?@  D;X@X@ @h?8! D?H  D;X@XH @8B?(! D?0  D;X@X0 @(?! H|  JB BBȍH J! BB? BFB! JF‰ B|  J ?! H|  J …‰BH?B?x  xB$ $ x;X@X!  ! ?t 'tt  !  @@! ?#"p'H'DDH? /!  -/;X@X?! ! BB''ܥ, , , , , 'Ѕ?! ! BB''إ, , , 'Ѕ?'Љ! B'Љ! BBB?O׀ -腠??#"p'H'DDH? /! B?!  -/;X@X?腠B'''Ѕ! B?腠B'''Ѕ! B?'Љ! B'Љ! BBB?O׀ -腠??#"p'X'T'P'L'H'DDH?LP?TX? B?! B?! ؍…B;XX;X@X?! ! F腡…F;X@X؅ ?#"㿐'H'DDH?! ?' 'x'H'DDH?';X@X!  ! ;X@X@'耤 ?;X@X'荠! ! BB?! ! B;X@X@''艠! #`% B …B''荠` BB?x! ! B#` B;X@X@''艠` #`% B' B …B''荠` B BB?F! ! B! B;X@X@''艠! #`% B' B …B''荠` B BB??;X@X'荠! ! BB؅? '쀤 +?#"㿐'H'DDH?! ! B! ! ! BB BBB?#"㿐'H'DDH?! B! ! B! BBBBB?#"㿐'H'DDH?! BD! ! BB B?#"㿐'H'DDH?B B! ! …B?#"x'H'DDH?! B?! ?;XX;X@X! ?;XX;X@X؅ @;X@X?#"@'X'T'P'L'H'DDH?LP?TX?\`?dh?нD??! B;X@Xȅ @??! B;X@X @B??! B;X@X @?#"㿈'H'DDH?! B! ! BB''?>z򚼯H?@=|׽@ !TD-@@@@È?PbM@YA.@@@Lc˰@NAC"?@0?????@A@@ftsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zoneConvergence errorphi1z-convConvergence errorphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv. dd'8(8)<@ʱ4$ /$5 U$[ {$ $ $ $ $ 9$? _$g $ $ $ $ '$, K$P o$t $ $ $ cproj.c/ecs/hdfeos/gctp/src/cproj.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbwqsAAGCq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o cproj.o cproj.c -W0,-xp\$XAEBTnbwqsAAGCq.tsincos$XBEBTnbwqsAAGCq.tsincos.__func__asinz$XBEBTnbwqsAAGCq.asinz.__func__msfnz$XBEBTnbwqsAAGCq.msfnz.__func__qsfnz$XBEBTnbwqsAAGCq.qsfnz.__func__phi1z$XBEBTnbwqsAAGCq.phi1z.__func__phi2z$XBEBTnbwqsAAGCq.phi2z.__func__phi3z$XBEBTnbwqsAAGCq.phi3z.__func__phi4z$XBEBTnbwqsAAGCq.phi4z.__func__pakcz$XBEBTnbwqsAAGCq.pakcz.__func__pakr2dm$XBEBTnbwqsAAGCq.pakr2dm.__func__tsfnz$XBEBTnbwqsAAGCq.tsfnz.__func__sign$XBEBTnbwqsAAGCq.sign.__func__adjust_lon$XBEBTnbwqsAAGCq.adjust_lon.__func__e0fn$XBEBTnbwqsAAGCq.e0fn.__func__e1fn$XBEBTnbwqsAAGCq.e1fn.__func__e2fn$XBEBTnbwqsAAGCq.e2fn.__func__e3fn$XBEBTnbwqsAAGCq.e3fn.__func__e4fn$XBEBTnbwqsAAGCq.e4fn.__func__mlfn$XBEBTnbwqsAAGCq.mlfn.__func__calc_utm_zone$XBEBTnbwqsAAGCq.calc_utm_zone.__func__ dd'8(8)<@ʱ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ V bL rP D4 ,h $ D=@D?@D@\DBlxDDx ,DE 1$ T c r@ DQ@DRP ,DS $ @D_@\Da\DclDf),Dgk$T0ʀրDz0D{PD|lD}xD~DDDDDpDDD~DDD,D  [$~T0ɀՀD0D8DLDDDDDHDXDDDDD, D,$dozlXDXD`tDtD4DDlDlDtDDDD,&D $Vep{|pɀ׀x*tDpDDDDDD<DDDDPDDDDD D D82,,DPPt$€DD D<DDDXDDDD DhDxD,2D$&2=IT_D)D* D+4D,PD-XD.lD/D0D1D2D3,D4<D5Hj,8D6\\$Ѡ@DD@DEPDFdDG,@DHS$fDMp,FT$ˠՀDUDXDYDD[LD\D^ D` lDctDe4Dh<DjDmDnLDoXDphDVpDqpxDsx, KDt)$=DzG,Vt$D{,[h$D|,`XF$ZD}d,eL$À΀DD,D@,jD$JU`kvXDX,o$ߠD,t\6$T$h$|$$$$$$$ bcproj.c/ecs/hdfeos/gctp/src/cproj.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbwqsAAGCq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.htsincos:F(0,20);(0,18);(0,21)=*(0,18);(0,21)val:p(0,18)sin_val:p(0,21)cos_val:p(0,21)cproj.c$XBEBTnbwqsAAGCq.tsincos.__func__:V(0,22)=ar(0,4);0;7;(0,23)=k(0,1)asinz:F(0,18);(0,18)con:p(0,18)$XBEBTnbwqsAAGCq.asinz.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)msfnz:F(0,18);(0,18);(0,18);(0,18)eccent:p(0,18)sinphi:p(0,18)cosphi:p(0,18)con:(0,18)$XBEBTnbwqsAAGCq.msfnz.__func__:V(0,26)=ar(0,4);0;5;(0,27)=k(0,1)qsfnz:F(0,18);(0,18);(0,18);(0,18)eccent:p(0,18)sinphi:p(0,18)cosphi:p(0,18)con:(0,18)$XBEBTnbwqsAAGCq.qsfnz.__func__:V(0,28)=ar(0,4);0;5;(0,29)=k(0,1)phi1z:F(0,18);(0,18);(0,18);(0,30)=*(0,4)eccent:p(0,18)qs:p(0,18)flag:p(0,30)eccnts:(0,18)dphi:(0,18)con:(0,18)com:(0,18)sinpi:(0,18)cospi:(0,18)phi:(0,18)i:(0,4)$XBEBTnbwqsAAGCq.phi1z.__func__:V(0,31)=ar(0,4);0;5;(0,32)=k(0,1)phi2z:F(0,18);(0,18);(0,18);(0,30)eccent:p(0,18)ts:p(0,18)flag:p(0,30)eccnth:(0,18)phi:(0,18)con:(0,18)dphi:(0,18)sinpi:(0,18)i:(0,4)$XBEBTnbwqsAAGCq.phi2z.__func__:V(0,33)=ar(0,4);0;5;(0,34)=k(0,1)phi3z:F(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,30)ml:p(0,18)e0:p(0,18)e1:p(0,18)e2:p(0,18)e3:p(0,18)flag:p(0,30)phi:(0,18)dphi:(0,18)i:(0,4)$XBEBTnbwqsAAGCq.phi3z.__func__:V(0,35)=ar(0,4);0;5;(0,36)=k(0,1)phi4z:F(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,21);(0,21)eccent:p(0,18)e0:p(0,18)e1:p(0,18)e2:p(0,18)e3:p(0,18)a:p(0,18)b:p(0,18)c:p(0,21)phi:p(0,21)sinphi:(0,18)sin2ph:(0,18)tanphi:(0,18)ml:(0,18)mlp:(0,18)con1:(0,18)con2:(0,18)con3:(0,18)dphi:(0,18)i:(0,4)$XBEBTnbwqsAAGCq.phi4z.__func__:V(0,37)=ar(0,4);0;5;(0,38)=k(0,1)pakcz:F(0,18);(0,18)pak:p(0,18)con:(0,18)secs:(0,18)degs:(0,4)mins:(0,4)sgna:(0,1)$XBEBTnbwqsAAGCq.pakcz.__func__:V(0,39)=ar(0,4);0;5;(0,40)=k(0,1)pakr2dm:F(0,18);(0,18)pak:p(0,18)con:(0,18)secs:(0,18)degs:(0,4)mins:(0,4)sgna:(0,1)$XBEBTnbwqsAAGCq.pakr2dm.__func__:V(0,41)=ar(0,4);0;7;(0,42)=k(0,1)tsfnz:F(0,18);(0,18);(0,18);(0,18)eccent:p(0,18)phi:p(0,18)sinphi:p(0,18)con:(0,18)com:(0,18)$XBEBTnbwqsAAGCq.tsfnz.__func__:V(0,43)=ar(0,4);0;5;(0,44)=k(0,1)sign:F(0,3);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.sign.__func__:V(0,45)=ar(0,4);0;4;(0,46)=k(0,1)adjust_lon:F(0,18);(0,18)x:p(0,18)count:(0,4)$XBEBTnbwqsAAGCq.adjust_lon.__func__:V(0,47)=ar(0,4);0;10;(0,48)=k(0,1)e0fn:F(0,18);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.e0fn.__func__:V(0,49)=ar(0,4);0;4;(0,50)=k(0,1)e1fn:F(0,18);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.e1fn.__func__:V(0,51)=ar(0,4);0;4;(0,52)=k(0,1)e2fn:F(0,18);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.e2fn.__func__:V(0,53)=ar(0,4);0;4;(0,54)=k(0,1)e3fn:F(0,18);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.e3fn.__func__:V(0,55)=ar(0,4);0;4;(0,56)=k(0,1)e4fn:F(0,18);(0,18)x:p(0,18)con:(0,18)com:(0,18)$XBEBTnbwqsAAGCq.e4fn.__func__:V(0,57)=ar(0,4);0;4;(0,58)=k(0,1)mlfn:F(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e0:p(0,18)e1:p(0,18)e2:p(0,18)e3:p(0,18)phi:p(0,18)$XBEBTnbwqsAAGCq.mlfn.__func__:V(0,59)=ar(0,4);0;4;(0,60)=k(0,1)calc_utm_zone:F(0,4);(0,18)lon:p(0,18)$XBEBTnbwqsAAGCq.calc_utm_zone.__func__:V(0,61)=ar(0,4);0;13;(0,62)=k(0,1)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06cproj.cBbss.bssDdata.dataDrodata.rodata$XBEBTnbwqsAAGCq.calc_utm_zone.__func__calc_utm_zone$XBEBTnbwqsAAGCq.mlfn.__func__mlfn$XBEBTnbwqsAAGCq.e4fn.__func__e4fn$XBEBTnbwqsAAGCq.e3fn.__func__e3fn$XBEBTnbwqsAAGCq.e2fn.__func__e2fn$XBEBTnbwqsAAGCq.e1fn.__func__e1fn$XBEBTnbwqsAAGCq.e0fn.__func__e0fn$XBEBTnbwqsAAGCq.adjust_lon.__func__adjust_lon$XBEBTnbwqsAAGCq.sign.__func__sign$XBEBTnbwqsAAGCq.tsfnz.__func__tsfnz$XBEBTnbwqsAAGCq.pakr2dm.__func__pakr2dm$XBEBTnbwqsAAGCq.pakcz.__func__pakcztan$XBEBTnbwqsAAGCq.phi4z.__func__phi4z$XBEBTnbwqsAAGCq.phi3z.__func__phi3zpowatan$XBEBTnbwqsAAGCq.phi2z.__func__phi2zp_error$XBEBTnbwqsAAGCq.phi1z.__func__phi1zlog$XBEBTnbwqsAAGCq.qsfnz.__func__qsfnzsqrt$XBEBTnbwqsAAGCq.msfnz.__func__msfnzasinfabs$XBEBTnbwqsAAGCq.asinz.__func__asinzcossin$XBEBTnbwqsAAGCq.tsincos.__func__tsincos ,dThlb_(,Z`U`PplK|F5H:; _j6 d0 (p" ( hd.NhTX]}` 0 P 06:>`p86T52        1  .L P t x   +  d h t4 ( (8    8 < |+2    ($ (    0 0  %  6$ 0( 0, 0 D H l$%  2 ( (   (, 0   6( 8, 886` @d @p62 ( (  @  @ ( ( H , H 6 , @ D `.   6  8  8 6  @  @ $6 L P p5  8  8 5  @  @ 5   P T     <2 D ( H ( \ P ` P  |  | (  8  8 P P,2< X@ XH `L ` h h ` ` p p, x0 x   P P28 < t x  p p x xt x   $ 0 0  < P@ P2 0 0 0 02$8 0< 0@ D d 0h 0l p 2   0 0   0  0 0  $ ( 82X p 0t 0x |    0   0 0    2  $ < 0@ 0D H P T x 0|   0 0  ` d l p x |  H H                       x |   $$.  6 8 86 @  @6   @ @  4 r %+4 7F#  Q8 _QhS9hpV xZ4 \  report.o/ 1073924786 1032 20 100644 27300 ` ELFh$4(.shstrtab.text.bss.rodata1.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿠'H'D!  ! HD@@! ! #`@@!$ ! #`HD@@! @㿘'P'L'H'DD   !$ !$ CD !$ L@  ' !$ ! L@@)D ! !$ L@  !$ !  @@ a' !$ ! L@@!$ !$ H   !$ !$ CH !$ P@  8' !$ ! P@@)H ! !$ P@  !$ !  @@ ' !$ ! P@@!$ !$ '㿠! ! @! ! @㿠'D! ! D@@! ! #`@@!$ ! #`D@@! @㿘'H'DDH?!  ! ;XX@\! ! #`@@!$ ! #`@;X@X! @㿐'P'L'H'DDH?LP?! ! ;XX@\! ;XX@\! #! #`@@!$ ! #`@;X@X! #`@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿐'P'L'H'DDH?LP?! #`! B@;XX@\#`! B@;XX@\! )! #`@@!$ ! %! B@;X@X! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿐'P'L'H'DDH?LP?! ! ;XX@\! ;XX@\! #! #`@@!$ ! #`@;X@X! #`@;X@X! @㿘'L'H'DDH?!  ! L@;X@X! ! #`@@!$ ! #`L@;XX@\! @㿠'H'D!  ! HD@@! ! #`@@!$ ! #`HD@@! @㿠! ! @! ! #`@@!$ ! #`@@! @[%s] %s a[%s] %s %s PROJECTION PARAMETERS: a %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters a Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters a Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees a Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees a Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees a Latitude of Center: %lf degrees Latitude of Origin: %lf degrees a Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees a Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees a 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees a Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters a False Easting: %lf meters False Northing: %lf meters %s %lf a %s %lf %s %ld a %s %ld a Output file name not specifiedreport-fileOutput file name not specifiedreport-file@Lc˰p_errorinitclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblank0 d d)8*8+<@ʲ4 $ 3$8 W$b $ $ $ $ )$3 W$^ $ $ $ $ -$5 W$^ $ $    & > V n  report.c/ecs/hdfeos/gctp/src/report.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbyqsAAGDq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o report.o report.c -W0,-xp\$XAEBTnbyqsAAGDq.p_error$XBEBTnbyqsAAGDq.p_error.__func__init$XBEBTnbyqsAAGDq.init.__func__close_file$XBEBTnbyqsAAGDq.close_file.__func__ptitle$XBEBTnbyqsAAGDq.ptitle.__func__radius$XBEBTnbyqsAAGDq.radius.__func__radius2$XBEBTnbyqsAAGDq.radius2.__func__cenlon$XBEBTnbyqsAAGDq.cenlon.__func__cenlonmer$XBEBTnbyqsAAGDq.cenlonmer.__func__cenlat$XBEBTnbyqsAAGDq.cenlat.__func__origin$XBEBTnbyqsAAGDq.origin.__func__true_scale$XBEBTnbyqsAAGDq.true_scale.__func__stanparl$XBEBTnbyqsAAGDq.stanparl.__func__stparl1$XBEBTnbyqsAAGDq.stparl1.__func__offsetp$XBEBTnbyqsAAGDq.offsetp.__func__genrpt$XBEBTnbyqsAAGDq.genrpt.__func__genrpt_long$XBEBTnbyqsAAGDq.genrpt_long.__func__pblank$XBEBTnbyqsAAGDq.pblank.__func__$XAEBTnbyqsAAGDq.err_file$XAEBTnbyqsAAGDq.parm_file$XAEBTnbyqsAAGDq.fptr_e$XAEBTnbyqsAAGDq.fptr_p$XAEBTnbyqsAAGDq.file_p$XAEBTnbyqsAAGDq.file_e$XAEBTnbyqsAAGDq.terminal_e$XAEBTnbyqsAAGDq.terminal_p d d)8*8+<@ʲπ;Wt؀2Wkł:@Sl@π ̀4Rs}J Ăf@ @ J `   Ā  s  Ȁ   )  W l $ D H DM DN DO@TDQTDRxDS ,DV $ ,D 7H BL PPDa$Dc$Dd08Dg@PDiPDjXpDlp|Dn|DoDrDtDuDwDxDyD{D|,4D4D<DDDTDTD`hDpDDDDDDDD D DD,8D8DD\dDdDltDt ^,D $DDD(D< , DTT $DDDD4HDHDlD,D]$sDD,DL`D`DD},D$ޠ,D,@D@D`DDDDD,&D  6$LDD,DXlDlDDV,.D$DD,DXlDlDD, 5D$DD,DXlDlDD",?De${DD,DXlDlDD,FD$D D ,D XlDlDDD, MD4$S],D,@D@DlDDDD D!8Hg, XD#PP$àD',D),XD+XlD-lD.D/,aD1$/9,D5,@D7@D8`D:D<D=D>D?C,iDA  $LDEDF0DGThDIhDJDK,qDM$D%H DP DQ DR@TDTTDUxDV/, xDXx$D[D\D](<D_<D``Da|,Dc(!0.(!17(!0^(!1T~(!0(!/(!/(!0$&$R$x$$$breport.c/ecs/hdfeos/gctp/src/report.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbyqsAAGDq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/string.h/usr/include/iso/string_iso.h/usr/include/sys/feature_tests.h./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(14,1)=u8_i:(14,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(14,3)=(14,1)version:T(13,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(13,2)=s32type:(0,3),0,32;name:(13,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(17,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(17,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(17,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(17,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(17,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(15,1)=(0,3)sigfpe_handler_type:t(15,2)=*(15,3)=f(0,20)single:t(15,4)=(0,17)extended:t(15,5)=ar(0,4);0;2;(0,14)quadruple:t(15,6)=(0,19)fp_exception_field_type:t(15,7)=(0,14)decimal_string:t(15,8)=ar(0,4);0;511;(0,1):T(15,9)=s532fpclass:(17,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(15,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(15,10)=(15,9)decimal_form:T(15,11)=efixed_form:0,floating_form:1,;:T(15,12)=s12rd:(17,1),0,32;df:(15,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(15,13)=(15,12)decimal_string_form:T(15,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hp_error:F(0,20);(13,3);(13,3)what:p(13,3)where:p(13,3)report.c$XBEBTnbyqsAAGDq.p_error.__func__:V(0,21)=ar(0,4);0;7;(0,22)=k(0,1)init:F(0,3);(0,4);(0,4);(13,3);(13,3)ipr:p(0,4)jpr:p(0,4)efile:p(13,3)pfile:p(13,3)$XBEBTnbyqsAAGDq.init.__func__:V(0,23)=ar(0,4);0;4;(0,24)=k(0,1)close_file:F(0,20)$XBEBTnbyqsAAGDq.close_file.__func__:V(0,25)=ar(0,4);0;10;(0,26)=k(0,1)ptitle:F(0,20);(13,3)A:p(13,3)$XBEBTnbyqsAAGDq.ptitle.__func__:V(0,27)=ar(0,4);0;6;(0,28)=k(0,1)radius:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.radius.__func__:V(0,29)=ar(0,4);0;6;(0,30)=k(0,1)radius2:F(0,20);(0,18);(0,18)A:p(0,18)B:p(0,18)$XBEBTnbyqsAAGDq.radius2.__func__:V(0,31)=ar(0,4);0;7;(0,32)=k(0,1)cenlon:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.cenlon.__func__:V(0,33)=ar(0,4);0;6;(0,34)=k(0,1)cenlonmer:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.cenlonmer.__func__:V(0,35)=ar(0,4);0;9;(0,36)=k(0,1)cenlat:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.cenlat.__func__:V(0,37)=ar(0,4);0;6;(0,38)=k(0,1)origin:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.origin.__func__:V(0,39)=ar(0,4);0;6;(0,40)=k(0,1)true_scale:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.true_scale.__func__:V(0,41)=ar(0,4);0;10;(0,42)=k(0,1)stanparl:F(0,20);(0,18);(0,18)A:p(0,18)B:p(0,18)$XBEBTnbyqsAAGDq.stanparl.__func__:V(0,43)=ar(0,4);0;8;(0,44)=k(0,1)stparl1:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.stparl1.__func__:V(0,45)=ar(0,4);0;7;(0,46)=k(0,1)offsetp:F(0,20);(0,18);(0,18)A:p(0,18)B:p(0,18)$XBEBTnbyqsAAGDq.offsetp.__func__:V(0,47)=ar(0,4);0;7;(0,48)=k(0,1)genrpt:F(0,20);(0,18);(13,3)A:p(0,18)S:p(13,3)$XBEBTnbyqsAAGDq.genrpt.__func__:V(0,49)=ar(0,4);0;6;(0,50)=k(0,1)genrpt_long:F(0,20);(0,4);(13,3)A:p(0,4)S:p(13,3)$XBEBTnbyqsAAGDq.genrpt_long.__func__:V(0,51)=ar(0,4);0;11;(0,52)=k(0,1)pblank:F(0,20)$XBEBTnbyqsAAGDq.pblank.__func__:V(0,53)=ar(0,4);0;6;(0,54)=k(0,1)$XAEBTnbyqsAAGDq.err_file:S(0,55)=ar(0,4);0;255;(0,1)$XAEBTnbyqsAAGDq.parm_file:S(0,56)=ar(0,4);0;255;(0,1)$XAEBTnbyqsAAGDq.fptr_e:S(0,57)=*(2,2)$XAEBTnbyqsAAGDq.fptr_p:S(0,57)$XAEBTnbyqsAAGDq.file_p:S(0,4)$XAEBTnbyqsAAGDq.file_e:S(0,4)$XAEBTnbyqsAAGDq.terminal_e:S(0,4)$XAEBTnbyqsAAGDq.terminal_p:S(0,4)strlen:P(2,3);(0,58)=*(0,59)=k(0,1)strcpy:P(13,3);(13,3);(0,60)=*(0,61)=k(0,1)printf:P(0,3);(0,62)=*(0,63)=k(0,1);0fprintf:P(0,3);(0,64)=*(7,2);(0,65)=*(0,66)=k(0,1);0fopen:P(0,57);(0,67)=*(0,68)=k(0,1);(0,69)=*(0,70)=k(0,1)fclose:P(0,3);(0,64)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06report.cBbss.bssDdata.dataDrodata.rodata$XBEBTnbyqsAAGDq.pblank.__func__pblank$XBEBTnbyqsAAGDq.genrpt_long.__func__genrpt_long$XBEBTnbyqsAAGDq.genrpt.__func__genrpt$XBEBTnbyqsAAGDq.offsetp.__func__offsetp$XBEBTnbyqsAAGDq.stparl1.__func__stparl1$XBEBTnbyqsAAGDq.stanparl.__func__stanparl$XBEBTnbyqsAAGDq.true_scale.__func__true_scale$XBEBTnbyqsAAGDq.origin.__func__origin$XBEBTnbyqsAAGDq.cenlat.__func__cenlat$XBEBTnbyqsAAGDq.cenlonmer.__func__cenlonmer$XBEBTnbyqsAAGDq.cenlon.__func__cenlon$XBEBTnbyqsAAGDq.radius2.__func__radius2$XBEBTnbyqsAAGDq.radius.__func__radius$XBEBTnbyqsAAGDq.ptitle.__func__ptitle$XAEBTnbyqsAAGDq.fptr_p$XBEBTnbyqsAAGDq.close_file.__func__close_filestrcpystrlen$XAEBTnbyqsAAGDq.parm_file$XAEBTnbyqsAAGDq.file_p$XAEBTnbyqsAAGDq.terminal_p$XBEBTnbyqsAAGDq.init.__func__initfclosefprintffopenprintf$XAEBTnbyqsAAGDq.err_file$XAEBTnbyqsAAGDq.fptr_e$XAEBTnbyqsAAGDq.file_e$XAEBTnbyqsAAGDq.terminal_e$XBEBTnbyqsAAGDq.p_error.__func__p_error -NU {@yPq(i ` & X/U T _N G= 6.'(/'PW x \ $CHOW]d ~5 5 0 4 H1P4 T4 d2 h2 l p x03 3 3 3   /3 3 .5 5 4 4 85 <5 D(h4 l4 p2 t2 '5 5 (4 4   74 4 2 2  '5  5 $4 (4 @+ D+ H* L* h+ l+ t(* * ) ) '+ + (* *  , , 7$* (* ,) 0) <'L+ P+ T* X* 3 3 3 3 .$ $ $ $ .+  +    ,14* 8* H) L) P <T <\0d$ h$ l$ p$ t @x @/$ $ .+ +  ` `1 * *  ) $) ( , 40<$ @$ D$ H$ L P d/l$ p$ t.+ +   1  1 * $* 4) 8) < @ H0P$ T$ X$ \$ `  d  x/$ $  T T/$ $ .+ +     (10* 4* D) H) L P X0`$ d$ h$ l$ p t |  /$ $ .+ +       1(* ,* <) @) D H P0X$ \$ `$ d$ h l t x /$ $ .+ +  P P   1 * $* 4) 8) < | @ | H0 P$ T$ X$ \$ `  d  l p / $ $ . + +       1 * * ,) 0) 4  8  @0 H$ L$ P$ T$ X  \  d h |/ $ $ . + +       1 * * $) () , , 0 , 80 @$ D$ H$ L$ P 0 T 0 \ ` t/ |$ $ . + +  `  `   1 $  (  0 4 H1 P* T* d) h) l  p  x0 $ $ $ $       / $ $       / $ $ . 8+ <+ L  P  X \ p1 x* |* ) )  <  < 0 $ $ $ $  @  @   / $ $ .D+ H+ X h\ hp1x | 1* * ) )   0$ $ $ $   /$ $   / $ $$ (.l+ p+   1* * ) )   0$ $ $ $     /$ $ .L+ P+ ` d x1* * ) )  $ $0$ $ $ $  ( (/$ $ .+  + 0 44 481@* D* T) X) \ 8` 8h0p$ t$ x$ |$  < </$ $ .4 xx>X&.4L  @O  Z3hIqKhyO\ RH paksz.o/ 1073924788 1032 20 100644 8164 ` ELF4(.shstrtab.text.data1.rodata.bss.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text`'L'H'DDH?L$ ! ! ?! ?;X@X?! ?ȅ …B''Ā!h!  @@$\L$ ! _?'?ȅ B?! ?ȅ …B''Ā <!  @@$\L$ ! 9?'?ȅ B?! !  @@$\L$ ! ?! B! BBЅB B?! ??#"Illegal DMS fieldpaksz-degIllegal DMS fieldpaksz-minIllegal DMS fieldpaksz-sec?A.@@@N@ paksz+ dd'8(8)<@ʳ4$ paksz.c/ecs/hdfeos/gctp/src/paksz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbzqsAAGEq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o paksz.o paksz.c -W0,-xp\$XAEBTnbzqsAAGEq.paksz$XBEBTnbzqsAAGEq.paksz.__func__ ! dd'8(8)<@ʳ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ L XL e p {    D@DB$DC@DEPDI\DJpDK|DLDNDODPDSDWDXDYDZ0@D\@D]XD^dtDatDeDfDhDiDjDmDn(Dp< ,DqPP $ $ bpaksz.c/ecs/hdfeos/gctp/src/paksz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbzqsAAGEq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpaksz:F(0,18);(0,18);(0,21)=*(0,4)ang:p(0,18)iflg:p(0,21)fac:(0,18)deg:(0,18)min:(0,18)sec:(0,18)tmp:(0,18)i:(0,4)paksz.c$XBEBTnbzqsAAGEq.paksz.__func__:V(0,22)=ar(0,4);0;5;(0,23)=k(0,1)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06paksz.cBbss.bssDdata.dataDrodata.rodatap_errorfabs$XBEBTnbzqsAAGEq.paksz.__func__paksz 8,498Yd8 < P T ` d t        P T `t x  ( ( @ @   0  0 ( (< 0@ 04 x0^> %+l 7<+Fh  Q  !_=h_pD x  sphdz.o/ 1073924789 1032 20 100644 11024 ` ELF(4(.shstrtab.text.data.data1.rodata.bss.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿀'T'P'L'H'DD H  ;X@X?H   ;X@X?! B! L$ $ P$ $ T$ $ +! L$ $ T$ $ ! 腡;X@X BP$ $ L$ $ T$ $ P$ $ e! !   L$ $ !   T$ $ !   P$ $ GD?!   L$ $ !   T$ $ ! P$ $ .D?!   L$ $ !   T$ $ ! P$ $ !   L$ $ !   T$ $ ! P$ $ {D@'䀤 !  @@!  @@ 'D'b䀤 ", #`  L$ $ , #`  P$ $ , #`  T$ $ >䀤 , #`  L$ $ , #`  P$ $ !   T$ $ , #`  L$ $ , #`  P$ $ !   T$ $ 'AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕AX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕Invalid spheroid selectionINFORMATIONALReset to 0INFORMATIONAL?AXM˕AXMAXM@sphdz Y dd'8(8)<@ʴ4  3$9 sphdz.c/ecs/hdfeos/gctp/src/sphdz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb0qsAAGFq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sphdz.o sphdz.c -W0,-xp\$XAEBTnb0qsAAGFq.$XAEBTnb0qsAAGFq.major$XAEBTnb0qsAAGFq.minorsphdz$XBEBTnb0qsAAGFq.sphdz.__func__- dd'8(8)<@ʴ̀9Urր0Ui~Â8@Qj@̀ ʀހ2Pq>Sfp= ԂY   @ @ = S w    f     ڀ J _ s |& & $D%H2LBPRTapDx(Dz(D{DD}dDDDDDDDD@HDHDXDhxxDDDDDDD$D@TD\lDlDDDDD  DD$4D4DLDdDlpDxDDDDDD@DhDDDD,D$$$$,bsphdz.c/ecs/hdfeos/gctp/src/sphdz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb0qsAAGFq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(14,1)=u8_i:(14,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(14,3)=(14,1)version:T(13,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(13,2)=s32type:(0,3),0,32;name:(13,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(17,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(17,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(17,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(17,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(17,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(15,1)=(0,3)sigfpe_handler_type:t(15,2)=*(15,3)=f(0,20)single:t(15,4)=(0,17)extended:t(15,5)=ar(0,4);0;2;(0,14)quadruple:t(15,6)=(0,19)fp_exception_field_type:t(15,7)=(0,14)decimal_string:t(15,8)=ar(0,4);0;511;(0,1):T(15,9)=s532fpclass:(17,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(15,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(15,10)=(15,9)decimal_form:T(15,11)=efixed_form:0,floating_form:1,;:T(15,12)=s12rd:(17,1),0,32;df:(15,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(15,13)=(15,12)decimal_string_form:T(15,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.h$XAEBTnb0qsAAGFq.major:S(0,21)=ar(0,4);0;21;(0,18)$XAEBTnb0qsAAGFq.minor:S(0,22)=ar(0,4);0;21;(0,18)sphdz:F(0,3);(0,4);(0,23)=*(0,18);(0,23);(0,23);(0,23)isph:p(0,4)parm:p(0,23)r_major:p(0,23)r_minor:p(0,23)radius:p(0,23)t_major:(0,18)t_minor:(0,18)jsph:(0,4)sphdz.c$XBEBTnb0qsAAGFq.sphdz.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)p_error:P(0,20);(13,3);(13,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)labs:P(0,4);(0,4)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sphdz.cBbss.bssDdata.dataDrodata.rodatap_errorlabssqrtfabs$XBEBTnb0qsAAGFq.sphdz.__func__sphdz$XAEBTnb0qsAAGFq.minor$XAEBTnb0qsAAGFq.major `(,49>C(ciH h x |       $ 4           4 8 P T |             (D H T\ ,` ,l      0 4 X \ x |       4 (`@F.&+ 7<YF  Q4-_"ah$Hp$ x%  untfz.o/ 1073924790 1032 20 100644 7580 ` ELFD4(.shstrtab.text.data.data1.rodata.bss.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿘'L'H'DH 1H -D )D %D, , #`H,   L$ $ L  ! B !  @@$M' !  $@@ ''?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unituntfz D dd'8(8)<@ʶ4 $$ untfz.c/ecs/hdfeos/gctp/src/untfz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb1qsAAGGq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o untfz.o untfz.c -W0,-xp\$XAEBTnb1qsAAGGq.$XAEBTnb1qsAAGGq.factorsuntfz$XBEBTnb1qsAAGGq.untfz.__func__w 6 dd'8(8)<@ʶ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   ) 2& y$ D H L ̈́D-PD/PD0D2D3D8D9D< ,D= $ 5buntfz.c/ecs/hdfeos/gctp/src/untfz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb1qsAAGGq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.h$XAEBTnb1qsAAGGq.factors:S(0,21)=ar(0,4);0;5;(0,22)=ar(0,4);0;5;(0,18)untfz:F(0,4);(0,4);(0,4);(0,23)=*(0,18)inunit:p(0,4)outunit:p(0,4)factor:p(0,23)untfz.c$XBEBTnb1qsAAGGq.untfz.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)p_error:P(0,20);(10,3);(10,3)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06untfz.cBbss.bssDdata.dataDrodata.rodatap_error$XBEBTnb1qsAAGGq.untfz.__func__untfz$XAEBTnb1qsAAGGq.factors  ,4T Z p t      $ $4 0 S`&n+px 7DF,  Q 6_hsp xx  gctp.o/ 1073924791 1032 20 100644 16428 ` ELF=4(.shstrtab.text.data.bss.data1.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'D''$ \ d `h@@$  '! `'̀ eR̡, #`$̡, #`$̡, #`$̡, #`$̡, #`$̡, #`$'Ȁ ('+`-)  ̥, , $ȣ, $ $ ``̥, , $ȣ, $ $ Ƞ 'Ȁ ̠ '̀ e 'Ġ ' !$ H OH , #`L @H , #`X @H ,#`H  '''̀ "H , , $#`̥, @  P   B ' ̠ '̀ p Op , #`t @p , #` @p ,#`p  '''̀ "p , , $#`̥, @  x   B ' ̠ '̀ H H d !  @@ $ 'p p d !  @@ $ 'T 'X H  T  'X H T L <  d.! , #`'H  @@ $  @@$ H T$  @8'D   B?D    B?ĀH ,#`$X H , #`$L H , #`$'̀ ) P̧, @  H , , $$ $ ̠ '̀ H h '̀ @P̥, @  $ $ ̠ '̀ ! ?@! ?HL  P  ! BL , , $ '44! B?@L ! ?H! ?H P  ?@P   ?HH L @X ) @@#\@#`H L PX ) @@#\@#` @k'H ?? H , #`آ;XX;XX@Ā'<<$ < @B'p ,#`$ p , #`$t p , #`$'̀ ) x̧, @  p , , $$ $ ̠ '̀ p T '̀ @x̥, @  $ $ ̠ '̀ ! ?@! ?Hx  ! B;X@X?@;X@X?H x  ?@x   ?Hp t @ ) @@#\@#`p t x ) @@#\@#` @'p  l$ $ l $ $  p , #`l ;XX;XX@Ā'88$ 8 @h'| ' p  |  ' p | t <  d.! , #`'p  @@ $  @@$ p |$ l   B$ $ l    B$ $ @'Insys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUTA.Agctp>dd%8&8'<@ʷ4  .$3 R m        ( gctp.c/ecs/hdfeos/gctp/src/gctp.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb2qsAAGHq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o gctp.o gctp.c -W0,-xp\$XAEBTnb2qsAAGHq.$XAEBTnb2qsAAGHq.iter$XAEBTnb2qsAAGHq.NADUTgctp$XBEBTnb2qsAAGHq.gctp.__func__$XAEBTnb2qsAAGHq.inv_trans$XAEBTnb2qsAAGHq.for_trans$XAEBTnb2qsAAGHq.pdout$XAEBTnb2qsAAGHq.outzn$XAEBTnb2qsAAGHq.outdat$XAEBTnb2qsAAGHq.outpj$XAEBTnb2qsAAGHq.pdin$XAEBTnb2qsAAGHq.inzn$XAEBTnb2qsAAGHq.indat$XAEBTnb2qsAAGHq.inpj9tdd%8&8'<@ʷˀ7SpԀ.Sg|ʂ(<~ ,D^c߀DZ@x@  ڀ BĀ W s 0 ɂ & & "$ D ͠H ۠L P T X \ $` 1d =h Jl Zp it yx |      π ؀       ' : Ex@ fDoDp Dq$Ds,Dt`DutD||D~DDDDDDDPDPD|DD~DDDDDDDD$D$D,D4PPDPdDdDDDlDlDtD|DDDDDDD,D8@D@DLDDDDDD@DdDxDDD m$DDDDDD$DDD`DDDDD D(D4D@xDxDDDDD D  $ \D dD  D D   D  D D  D  pD pD x D  D D! D" D# D$ D# @D% \ pD' pD( D' D) D* D+  D- D.  0 8D2 8D3 H \D5 \ $ D8 D9  D; D< ( 0 0DB 0 DDD DDE T hDH p DJ DK  DP DS DT0DU8DVtDXDYD[D] D^ D`,DaHDbhDcp , $ $ $Dd (!- P(!- (/X!- (!,(!,F(!,y(/X!- (!,(!,%(!,W$sbgctp.c/ecs/hdfeos/gctp/src/gctp.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb2qsAAGHq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(3,1)=u8_i:(3,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(3,3)=(3,1)version:T(2,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(2,2)=s32type:(0,3),0,32;name:(2,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h__FILE:t(5,1)=xs__FILE:/usr/include/sys/ieeefp.hfp_direction_type:T(6,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(6,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(6,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(6,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(6,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;FILE:t(4,1)=xs__FILE:sigfpe_code_type:t(4,2)=(0,3)sigfpe_handler_type:t(4,3)=*(4,4)=f(0,20)single:t(4,5)=(0,17)extended:t(4,6)=ar(0,4);0;2;(0,14)quadruple:t(4,7)=(0,19)fp_exception_field_type:t(4,8)=(0,14)decimal_string:t(4,9)=ar(0,4);0;511;(0,1):T(4,10)=s532fpclass:(6,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(4,9),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(4,11)=(4,10)decimal_form:T(4,12)=efixed_form:0,floating_form:1,;:T(4,13)=s12rd:(6,1),0,32;df:(4,12),32,32;ndigits:(0,3),64,32;;decimal_mode:t(4,14)=(4,13)decimal_string_form:T(4,15)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.h$XAEBTnb2qsAAGHq.iter:S(0,4)$XAEBTnb2qsAAGHq.NADUT:S(0,21)=ar(0,4);0;133;(0,4)gctp:F(0,3);(0,22)=*(0,18);(0,23)=*(0,4);(0,23);(0,22);(0,23);(0,23);(0,23);(2,3);(0,23);(2,3);(0,22);(0,23);(0,23);(0,22);(0,23);(0,23);(2,3);(2,3);(0,23)incoor:p(0,22)insys:p(0,23)inzone:p(0,23)inparm:p(0,22)inunit:p(0,23)indatum:p(0,23)ipr:p(0,23)efile:p(2,3)jpr:p(0,23)pfile:p(2,3)outcoor:p(0,22)outsys:p(0,23)outzone:p(0,23)outparm:p(0,22)outunit:p(0,23)outdatum:p(0,23)fn27:p(2,3)fn83:p(2,3)iflg:p(0,23)x:(0,18)y:(0,18)factor:(0,18)lon:(0,18)lat:(0,18)i:(0,4)j:(0,4)ininit_flag:(0,4)outinit_flag:(0,4)unit:(0,4)dummy:(0,24)=ar(0,4);0;14;(0,18)gctp.cclose_file:P(0,3)inv_init:P(0,3)for_init:P(0,3)$XBEBTnb2qsAAGHq.gctp.__func__:V(0,25)=ar(0,4);0;4;(0,26)=k(0,1)untfz:P(0,3)init:P(0,3)pakr2dm:P(0,18)$XAEBTnb2qsAAGHq.inv_trans:S(0,27)=ar(0,4);0;100;(0,28)=*(0,29)=f(0,4)$XAEBTnb2qsAAGHq.for_trans:S(0,30)=ar(0,4);0;100;(0,31)=*(0,32)=f(0,4)$XAEBTnb2qsAAGHq.pdout:S(0,33)=ar(0,4);0;100;(0,34)=ar(0,4);0;14;(0,18)$XAEBTnb2qsAAGHq.outzn:S(0,35)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.outdat:S(0,36)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.outpj:S(0,37)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.pdin:S(0,38)=ar(0,4);0;100;(0,39)=ar(0,4);0;14;(0,18)$XAEBTnb2qsAAGHq.inzn:S(0,40)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.indat:S(0,41)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.inpj:S(0,42)=ar(0,4);0;100;(0,4)p_error:P(0,20);(2,3);(2,3)@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gctp.cBbss.bssDdata.dataDrodata.rodatafor_initpakr2dminv_initclose_fileuntfzp_errorinit$XAEBTnb2qsAAGHq.for_trans$XAEBTnb2qsAAGHq.inv_trans$XAEBTnb2qsAAGHq.pdout$XAEBTnb2qsAAGHq.pdin$XAEBTnb2qsAAGHq.outzn$XAEBTnb2qsAAGHq.outdat$XAEBTnb2qsAAGHq.outpj$XAEBTnb2qsAAGHq.inzn$XAEBTnb2qsAAGHq.indat$XAEBTnb2qsAAGHq.inpj$XBEBTnb2qsAAGHq.gctp.__func__gctp$XAEBTnb2qsAAGHq.NADUT$XAEBTnb2qsAAGHq.iterkP +4<EPV^ci~h(8/X x/XP ("9O ns`                $ @ D H L P T X \    8 < d h           < @    $ ( 4    < d     ( , H L h l 8 < D H p t        @ D d      $ (                 4       0        x 4 XtkPt@#%+ 7>F  Q$t_4Hh5&p6 x8L  br_gctp.o/ 1073924792 1032 20 100644 3536 ` ELF 4(.shstrtab.text.bss.data.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textH'X'T'P'L'H'DDHLPTX\`dhlptx'|''''ؐ@@#\#`#d#h#l#p#t#x#|##@#gctp_3 d!d+8,8-<@ʸ4 $ br_gctp.c/ecs/hdfeos/gctp/src/br_gctp.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb4qsAAGIq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o br_gctp.o br_gctp.c -W0,-xp\$XAEBTnb4qsAAGIq.gctp_$XBEBTnb4qsAAGIq.gctp_.__func__4 d!d+8,8-<@ʸр=Yvڀ4Ym$RDaHoL~PTX\`ƠdҠhlptx|/;GDDT,$Dbbr_gctp.c/ecs/hdfeos/gctp/src/br_gctp.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb4qsAAGIq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0gctp_:F(0,20);(0,21)=*(0,18);(0,22)=*(0,4);(0,22);(0,21);(0,22);(0,22);(0,22);(0,23)=*(0,1);(0,22);(0,23);(0,21);(0,22);(0,22);(0,21);(0,22);(0,3);(0,3);(0,22)incoor:p(0,21)insys:p(0,22)inzone:p(0,22)inparm:p(0,21)inunit:p(0,22)indatum:p(0,22)ipr:p(0,22)efile:p(0,23)jpr:p(0,22)pfile:p(0,23)outcoor:p(0,21)outsys:p(0,22)outzone:p(0,22)outparm:p(0,21)outunit:p(0,22)fn27:p(0,3)fn83:p(0,3)iflg:p(0,22)$XBEBTnb4qsAAGIq.gctp_.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)gctp:P(0,3)acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06br_gctp.cBbss.bssDdata.dataDrodata.rodatagctp$XBEBTnb4qsAAGIq.gctp_.__func__gctp_ .3S4| $l 0$3?X|  JX wAa Yi  q  hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibIBM.a0000755000175000017500000163206112024715435020744 0ustar amckinstryamckinstry 463212 465586 0 128 461232 0 5426 5678 0 1074020562 1032 20 644 10 alberfor.o` @C ( 0H0.text0H E .data00x0 @.bssH.debug |K *b 0˄d8!Pؿ8c,@$K`8!8`}K_8$?@ ($KY` KI`z K-`=|8`*xˡhp}8!N "AalberforD\P040ALBERS CONICAL EQUAL-AREAalber-forinitEqual latitudes for St. Parallels on opposite sides of equator=|׽?__default_char:t42=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t13=f-13; :t14=f-13; :t15=f-11; :t18=f-11; :t19=f-11;alberforint:F-1 r_maj:p-13 r_min:p-13 lat1:p-13 lat2:p-13 lon0:p-13 lat0:p-13false_east:p-13false_north:p-13 sin_po:-13 cos_po:-13 alberfor:F-1 sin_phi:-13 cos_phi:-13 theta:-13false_northing:V-13false_easting:V-13lon_center:V-13 r_minor:V-13 r_major:V-13m NT"cXotqsuwyuwy0uDysT{} 8`ujcxys0e4P8R<V@iD!HLP;TL! (0 8@DHLPTX`0hl0x |   $(8L$P` t#x |"#$($()*+,-/0;Dh .filegalberfor.c.text0 .data0 .bssH:t16=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KXer:t17=*-5:t43=Zk0F 4;.bfe;'H4@con:-13es:-13temp:-13ms1:-13ms2:-13qs0:-13qs1:-13qs2:-13.efejS4  LA4.bfDeylon:p-13lat:p-13x:p4y:p4PH^@qs:-13lrh1:-13.efeTOC0k4kk _$STATIC\kk_$STATIC8k]kH.bsVxns0:V-13rh:V-13 e3:V-13(c:V-1308@.esj<kwD  0kalberforP  alberfor@k.p_error.sqrt.tsincos.msfnz.qsfnz.ptitle.radius2.origin.offsetp.sin.cosTue Jan 13 14:15:05 2004 C for AIX Compiler Version 5.0.2.0 --- .alberforint.alberfor_$STATIC_BSS_$STATIC_BSSalberforintalberforint._savef22._restf28.stanparl.cenlonmer._restf22._savef28.adjust_lon6300 12102 128 1074020563 1032 20 644 10 alberinv.o` @C  pPp.textpH@ %x .datapp @.bss44P.debug| |K *b 0˄d8!Pؿ8c,@$K`8!8`}K_@$?H !?0_@(؟ 8>K`^ ~(X_hȞ0Ⱦ8@HP^`ۿ؟ؿX`p~h_px>KE`r>xK5`^*~(]$ K `!K`^!88K`b K`?H_@K`?8K`?0K`?(_ K`8`hXˡHP}8!`N "A alconforint|KM!``8!(aK%`8@8HK` K`r*ý=2K`Ý|(*_r#$K`!K`!8P8XK`!PrA@rXrHB28,c)|Td888|"*ȄPdȤH8| _@$!22&r*A@zAtC@\H(@ȤP)<Ȅ `PH|88F(&9:C @ȤP)<Ȅ `PH|F(f9:@ ؐ`А_H@~(? A8`!>crVr#**"0zH:>8!}KH"A alconfor  ALASKA CONFORMAL9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKIBM fs <7?s$ܙɿȼNnܿXSvO?Ke&??!TD-@IBM ?!TD-__default_char:t42=-5:t7=ar0;0;6;-13:t8=ar0;0;6;-13 :t9=f-13; :t11=f-11; :t12=f-11; :t13=f-11; :t14=f-11; :t15=f-11; :t18=f-11; :t19=f-13;alconforint:F-1 r_maj:p-13 r_min:p-13false_east:p-13false_north:p-13 esphi:-13 alconfor:F-1 sinlon:-13 coslon:-13 sinphi:-13 cosphi:-13 esphi:-13 cos_p26:V-13 sin_p26:V-13false_northing:V-13false_easting:V-13lat_center:V-13lon_center:V-13 r_minor:V-13 r_major:V-13sQiHuwy{}&W(8DP`iwQy<{H}dkSYUo!O0O!  $048<@D P T X \ `dh lptx| $!0"@#L$X%h&l'0 \ l             $(04<D H!PTX\!` d(h$l(t)|+($)%()()(),.filegalconfor.c.text.data .bss:t16=-5:t10=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;,>JWdq~:t17=*-5:t43=ZkF  B0.bf e=xes:-13chi:-13.efecS , hO.bfelon:p-13lat:p-13x:p4y:p4dlon:-13H@+X8PEg:-13s:-13xp:-13yp:-13ar:-13ai:-13br:-13bi:-13arn:-13ain:-13chi:-13r:-13j:-4.efeTOCkk k_$STATIC k_$STATICk]k.bsYn:V-4e:V-13Q`bcoef:V7Pacoef:V8o (08@H.esjkw  kalconfor  alconfork.sqrt.sin.tan.pow.atan.tsincos.ptitle.radius2.cenlon.cenlat.offsetpTue Jan 13 14:15:07 2004 C for AIX Compiler Version 5.0.2.0 --- .alconforint.alconfor_$STATIC_BSS_$STATIC_BSSalconforintalconforint._savef28._savef26.adjust_lon._restf268187 26370 12102 1074020566 1032 20 644 10 alconinv.o` @Cr HLH.textHH l# .dataHHL  @.bss.debug |K؃8?H>!?0_@(؟ 8>K`^ ~(X_hȞ0Ⱦ8@HP^`ۿ؟ؿX`p~h_px>KE`r>xK5`^*~(]$ K `!K`^!88K`b 8c8K`?H_@K`?8K`?0K`?(_ K`8`hXˡHP}8!`N "A alconinvint|KIa\!r_r~]2e2mX*?N`*h2H*V(,(r20*rfi/>f|X$X$ 2@*(*0*H*(A(,8c@227G2>r_r~]2e2mX*?N`*h2H*V(,(r20*rfi/>f|X$X$0*2(**(*Kd>K`Û`!2K`8@!*8HK`8 LB@p0al8`8!d}K@ 8dLK5`8`H8b 8 8cK`al8`8!d}K!H?ra@_r$#K`;@;`ʿK`r*<2K`*y(U2@ $K}`!Kq`;,ʿ(s*A A}2?{rAH8>2A@BK`?*K`>8`8!a\}K"Apalconinv\thHHalcon-invalcon-invToo many iterations in inverseALASKA CONFORMALToo many iterations in inverse9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKIBM fs <7?s$ܙɿȼNnܿXSvO?Ke&??!TD-@YIBM =|׽?!TD-ـ__default_char:t46=-5:t7=ar0;0;6;-13:t8=ar0;0;6;-13 :t9=f-13; :t10=f-13; :t12=f-11; :t13=f-11; :t14=f-11; :t15=f-11; :t16=f-11; :t19=f-11; :t20=f-11; :t21=f-13;alconinvint:F-1 r_maj:p-13 r_min:p-13false_east:p-13false_north:p-13 esphi:-13 alconinv:F-1 esphi:-13 fpxyr:-13 fpxyi:-13 cos_p26:V-13 sin_p26:V-13false_northing:V-13false_easting:V-13lat_center:V-13lon_center:V-13 r_minor:V-13 r_major:V-13bzH&h,<HTdzbXlhh,Th H|LdPjTfX\#``h2l`#  $048<@D P T X \ `dh lptx| $ 4!D"P#\$l%p&2 t x|  $#"!#$ 7)8 -$.(,0!4#8"<@%D H#L)P-T*X0\.`-d0h/l.p/t-x0|/.132312346568>   7  8$,-074.8)<@0D/H-L)P.T*X-\0`.dh0l/p-t.x1|3/2123236456>87> -.)0/-).*-0.0/ -.13/ 2$1(2,3024385<6@4D6PB`CdBhCtDxC|DEFEFcHcIcWX:c;c K4L8K@MPP`QTQUPQS[U[P[]^ bc.filegalconinv.c.textH#.dataHL .bss:t17=-5:t11=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;,>JWdq~:t18=*-5:t47=ZkHF  l2!.bf e=xes:-13chi:-13.efebS `!.bfex:p-13(y:p-130lon:p48lat:p4<+r:-13s:-13br:-13bi:-13ai:-13ar:-13ci:-13cr:-13di:-13dr:-13arn:-13ain:-13crn:-13cin:-13fxyr:-13fxyi:-137Cxp:-13yp:-13den:-13dxp:-13dyp:-13ds:-13z:-13cosz:-13@sinz:-13Hrh:-13chi:-13dphi:-13phi:-13j:-4nn:-4.ef$eTOCHkLkk_$STATICtkk_$STATICTk]k.bsjn:V-4e:V-13O^bcoef:V7Pacoef:V8m (08@H.esjPkw\  Hkalconinvh  alconinvXk.sqrt.sin.tan.pow.atan.tsincos.ptitle.radius2.cenlon.cenlat.offsetp.p_error.asinz.atan2Tue Jan 13 14:15:08 2004 C for AIX Compiler Version 5.0.2.0 --- .alconinvint.alconinv_$STATIC_BSS_$STATIC_BSSalconinvintalconinvint._savef28._savef14._restf15.adjust_lon4633 31128 18058 1074020567 1032 20 644 9 azimfor.o` @C~ `8`.text`H:6 .data`` @.bss8.debugL |?0_( ! ؿ؟8cK`b8c@K`?0K`?(K`? K`?_K`8`H8!@}N "A azimforint|KE! `(!(aK`8@8H K` K`ˡ@@rȁH!_08aP :e 8 0*" @T@h"!K}`8aPKm`؁ˁˡ}8!໡8`{N KA`K5`$ _022K`=z8`>?aHA@!_?r#z8!໡}K"Aazimfort``azim-forPoint projects into a circle of radius = %12.2lfAZIMUTHAL EQUIDISTANTIBM =|׽?@ !TD-__default_char:t44=-5:t7=ar0;0;79;-5 :t8=f-13; :t10=f-11; :t11=f-11; :t12=f-11; :t13=f-11; :t14=f-11; :t16=f-11; :t17=f-11; :t20=f-1;azimforint:F-1 r_maj:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 azimfor:F-1 sinphi:-13 cosphi:-13 coslon:-13 cos_p12:V-13 sin_p12:V-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_major:V-13Y4c>LDePg\ihkxmoYqcs*L2FuLwy{{8}`[dNhJl_pHt"xD/D" $(,< L X dp/( ,04 8 <@HLP TX \`pt x   (.filegazimfor.c.text`.data` .bss8:t9=-11:t6=-5:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;,8ER_l:t15=*-5y:t18=k-5:t19=*18:t45=Zk`F :/ .bfe0X`hpx.efe@.azimfor D .bfeVlon:p-13lat:p-13x:p4y:p4 H!@dlon:-13.ksp:-13g:-13con:-13z:-13mess:7P.ef<enTOC`kpkk _$STATICkV_$STATIChkRk8.bsN;JYn (0.es_dklt  w`kazimfor  azimforlk.tsincos.ptitle.radius.origin.offsetp.cos.sprintf.p_error.acos.sinTue Jan 13 14:15:10 2004 C for AIX Compiler Version 5.0.2.0 --- .azimforint_$STATIC_BSS_$STATIC_BSSazimforintazimforint.cenlonmer._savef28.adjust_lon._restf284725 35978 26370 1074020568 1032 20 644 9 aziminv.o` @C Xx (8(.text(HlD .data((pf @.bss8.debug{ |?0_( ! ؿ؟8cK`b8c K`?0K`?(K`? K`?_K`8`H8!@}N "A aziminvint|KE!p`(?B(aZ?K `08@< r8H8d @0K`A`}8!8`}N >$K`(`˼H?A@ȟ8` LB@,A`}ˡx8!}N 22$":K5` `Ȝ@P=ˁ@*|"L@@x(LB @< K`>*K`>8`8!}H P@АK`>(K`>8`HxK`;| @(@8`8!}KL^r!H?r( rK1`?*K%`>8`8!}K"ALaziminv<TH((azim-invInput data errorAZIMUTHAL EQUIDISTANT@ !TD-=|׽!TD-__default_char:t38=-5 :t6=f-13; :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t13=f-11; :t16=f-11; :t17=f-11;aziminvint:F-1 r_maj:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 aziminv:F-1 cos_p12:V-13 sin_p12:V-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_major:V-13R4\>ED^P`\bhdxfhRj? E(lX\np(rXpdr|tvprv(T,G0C4X8A<@=H,L= $(,< L X dp,   (0&LP&T X ` d l p  &&   8<&LPt| !"&#%&.filegaziminv.c.text(.data( .bss8:t14=-5:t8=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KXe:t15=*-5r:t39=Zk(F ,.bfe0X`hpx.efe@.aziminv l=.bfeRx:p-13y:p-13lon:p4lat:p4rh:-13z:-13sinz:-13Hcosz:-13@con:-13.efewTOC(k8kk_$STATICTk6_$STATIC0kRk8.bsG4J \(n0.es_,kl<  w(kaziminvH  aziminv4k.tsincos.ptitle.radius.origin.offsetp.sqrt.p_error.asinz.atan2.sinTue Jan 13 14:15:11 2004 C for AIX Compiler Version 5.0.2.0 --- .aziminvint_$STATIC_BSS_$STATIC_BSSaziminvintaziminvint.cenlonmer._savef26.adjust_lon._restf264489 40592 31128 1074020569 1032 20 644 9 bceafor.o` @C{ `T``.text`H|= .data``TN @.bss`.debug~ |K!p`8!(aK`  K`b@_Hc,X ˿(A$?r_r@$^*H\r*0(A|a($C $"$KM`@*:|2<r:?r$0*8`8!}K"Abceafor|Kݿ $ß<>X!^P~8( ؞0@ؾ K`@>H8 8`@ ~HKa`@> KI`@>r!X^PK `>8K`>0K`> ^(K`8`h8!`}K"A  bceaforintt` `Cylinderical Equal Area?IBM >h__default_char:t34=-5 :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t15=f-11; bceafor:F-1 sinphi:-13bceaforint:F-1 r_maj:p-13 r_min:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 sinphi1:V-13 cosphi1:V-13false_easting:V-13false_northing:V-13lat_truesc:V-13lon_center:V-13 r_minor:V-13 r_major:V-13_U,a<cJ=eg$i6=:UlkmckCoqs uw8y`WdEh?l[pAtx;,;8DH Xhlpt|   ,,04 8< HPTX\ `d hl |  $ (!.filegbceafor.c.text`.data`T .bss`:t13=-5:t8=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2?L:t14=*-5Y:t35=Zk`.bceafor  ,f.bfeolon:p-13lat:p-13x:p4y:p4dlon:-13tq:-13.efeF  <D; .bf,e>xtemp:-13.ef<e^TOC`khkk_$STATICk_$STATICpkRk`.bsEind:V-4kz:V-13 ((>0P8es:V-13@e:V-13HbPqX.es_dkbceafort  bceafor`kl  wlk.sin.log.sqrt.cos.ptitle.radius2.offsetpTue Jan 13 14:15:12 2004 C for AIX Compiler Version 5.0.2.0 --- .bceaforint_$STATIC_BSS_$STATIC_BSSbceaforintbceaforint._savef24.adjust_lon._restf25._savef28.cenlonmer.true_scale._restf284825 45542 35978 1074020570 1032 20 644 9 bceainv.o` @C 0~ x.textHd= .dataHh @.bssx.debug |K!p`0B(((a,p˿˟@ A< $K`@<$<*K`>H2"*=r!$Ki`X`_PH=$]};*8K1`2] 9z=(;rZK `02Zz8;2K`z^r?$<*K`>8`8!}K"ATbceainv|K $<@h@__default_char:t34=-5 :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t15=f-11; bceainv:F-1bceainvint:F-1 r_maj:p-13 r_min:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 sinphi1:V-13 cosphi1:V-13false_easting:V-13false_northing:V-13lat_truesc:V-13lon_center:V-13 e_p6:V-13 e_p4:V-13 r_minor:V-13 r_major:V-13`VXbtdb;fff,dPhxj;Vl$n@pXfplzArtvxz|XC= \?9 *$9  (4< HLPh   $<@*         <Thx | !"#$%&.filegbceainv.c.text.data .bssx:t13=-5:t8=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2?L:t14=*-5Y:t35=Zk.bceainv t*f.bf eux:p-13y:p-13lon:p4lat:p4beta:-13.efTeFt @9tt.bfeAtemp:-13.efefTOCkkDkL_$STATIC,k_$STATICkRkx.bsCind:V-4qp:V-13kz:V-13 (018C@UHaPes:V-13Xe:V-13`mh|p.es_kbceainv  bceainvkl   w k.asin.sin.sqrt.log.cos.ptitle.radius2.offsetpTue Jan 13 14:15:13 2004 C for AIX Compiler Version 5.0.2.0 --- .bceainvint_$STATIC_BSS_$STATIC_BSSbceainvintbceainvint._savef24.adjust_lon._restf24._savef26.cenlonmer.true_scale._restf264474 50138 40592 1074020572 1032 20 644 8 ceafor.o` @C { XT`X.textXHp= .dataXXTB @.bss`.debug| |K!p`8!(aK`  K`b@_Hc,X ˿(A$?r_r@$^*H\r*0(A|a($C $"$KM`@*:|2<r:?r$0*8`8!}K"Aceafor|K $ß<>X!^P~8( ؞0@ؾ K`@>H8 8`@ ~HKe`@> KM`@>r!X^PK`>8K`>0K`> ^(K`8`h8!`}K"A  ceaforintlxXXCylinderical Equal Area?IBM >h__default_char:t34=-5 :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t15=f-11; ceafor:F-1 sinphi:-13ceaforint:F-1 r_maj:p-13 r_min:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 sinphi1:V-13 cosphi1:V-13false_easting:V-13false_northing:V-13lat_truesc:V-13lon_center:V-13 r_minor:V-13 r_major:V-13_U,a<cJ=eg i2=6UhkmckCoqsuw4yXW\E`?d[hAlp;x,|;8DH Xhlpt|   ,(,0 48 DLPTX \` dh x   $!.filegceafor.c.textX.dataXT .bss`:t13=-5:t8=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2?L:t14=*-5Y:t35=ZkX.ceafor ,f.bfenlon:p-13lat:p-13x:p4y:p4dlon:-13sq:-13.efeF <8;.bf(e=xtemp:-13.ef8e]TOCXk`kk_$STATICk_$STATIChkQk`.bsEind:V-4kz:V-13 &(<0N8es:V-13@e:V-13H`PoX.es^\kceaforl  ceaforXkkx  udk.sin.log.sqrt.cos.ptitle.radius2.offsetpTue Jan 13 14:15:14 2004 C for AIX Compiler Version 5.0.2.0 --- .ceaforint_$STATIC_BSS_$STATIC_BSSceaforintceaforint._savef24.adjust_lon._restf25._savef28.cenlonmer.true_scale._restf284810 55070 45542 1074020573 1032 20 644 8 ceainv.o` @C $~ x.textHX= .data@\ @.bssx.debug |K!p`0B(((a,p˿˟@ A< $K`@<$<*K`>H2"*=r!$Ki`X`_PH=$]};*8K1`2] 9z=(;rZK `02Zz8;2K`z^r?$<*K`>8`8!}K"ATceainv|K $<@h@__default_char:t34=-5 :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t15=f-11; ceainv:F-1ceainvint:F-1 r_maj:p-13 r_min:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 sinphi1:V-13 cosphi1:V-13false_easting:V-13false_northing:V-13lat_truesc:V-13lon_center:V-13 e_p6:V-13 e_p4:V-13 r_minor:V-13 r_major:V-13`VXbtdb;fff,dPhtj;Vl n<pTfllvArtvxz|XC=\? 9*9  (4< HLPh   $<@*|        8Pdtx !"#$%.filegceainv.c.text.data .bssx:t13=-5:t8=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2?L:t14=*-5Y:t35=Zk.ceainv p*f.bf esx:p-13y:p-13lon:p4lat:p4beta:-13.efTeFp 49sp.bf|e@temp:-13.efedTOCkk<kL_$STATIC$k_$STATICkQkx.bsCind:V-4qp:V-13kz:V-13 (0/8A@SH_Pes:V-13Xe:V-13`khzp.es^kceainv   ceainvkk  uk.asin.sin.sqrt.log.cos.ptitle.radius2.offsetpTue Jan 13 14:15:15 2004 C for AIX Compiler Version 5.0.2.0 --- .ceainvint_$STATIC_BSS_$STATIC_BSSceainvintceainvint._savef24.adjust_lon._restf24._savef26.cenlonmer.true_scale._restf266162 61356 50138 1074020574 1032 20 644 10 eqconfor.o` @C  x.textH 'P .data` @.bssx.debug |}&K$  0>p8 K`>X>0K`>P>0Km`>H>0KY`>@8H8@ K=`>8AHa@K)`>X^P~HȞ@8K`.A*@8AHa@K`@>X^P~HȞ@8K]`(LB @](($$H!H$>>X*^PȐ~HȞ@!8K`(^p>(b 2AtK`>p^hK` @K`>`K` ȐK`>^ K`8`8!|} Kh8c Ka`>p^hKQ` KE`>`K9` ȐK-`>^ K`8`8!|} K"C eqconforint|KͿ!`a?X_Pȟ@Hء8K`p_B(?`?(˿Kq`r K]` _z?*^ K=`8`|xhˡX`}8!pN "Aeqconfor,D80EQUIDISTANT CONICeqcon_forEQUIDISTANT CONICStandard Parallels on opposite sides of equator?IBM =|׽__default_char:t54=-5 :t8=f-11; :t9=f-13; :t10=f-13; :t11=f-13; :t12=f-13; :t13=f-13; :t14=f-13; :t15=f-11; :t16=f-11; :t17=f-11; :t18=f-11; :t19=f-11; :t20=f-13; :t21=f-11; :t24=f-11; :t25=f-11;eqconforint:F-1 r_maj:p-13 r_min:p-13 lat1:p-13 lat2:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 sinphi:-13 cosphi:-13 eqconfor:F-1 theta:-13false_easting:V-13false_northing:V-13lon_center:V-13 r_minor:V-13 r_major:V-13uk"PXwly{}*V4\lV,<LXdt4FklmX R$T(q,'0N8?<N' 48@DHL PTX h |  (<APTA`t & %&%'&'&' (' ((-,/40D1T2`3l4|@A89:;<=@A?Dt.filegeqconfor.c.text'.data .bssx:t22=-5:t7=-11:t3=-4:t2=-13:t1=-1:t4=f-1;:t5=*-13:t6=f-1;&2?LYfs:t23=*-5:t55=ZkF 0 ?%.bfe= ,>Pbmode:p-4temp:-13uH@ms1:-13ms2:-13ml1:-13ml2:-13.ef e}S0  ^N%0.bfDelon:p-13lat:p-13x:p5y:p5ml:-13rh1:-13.efeTOCk kk_$STATICDkd_$STATIC$k]kx.bsXrh:V-13g:V-13ns:V-13 ml0:V-13(es:V-130e:V-138e3:V-13@e2:V-13He1:V-13Pe0:V-13X`hp.esjkw,  keqconfor8  eqconfor(k.sqrt.e0fn.e1fn.e2fn.e3fn.tsincos.msfnz.mlfn.p_error.ptitle.radius2.origin.offsetp.stparl1.sin.cosTue Jan 13 14:15:16 2004 C for AIX Compiler Version 5.0.2.0 --- .eqconforint.eqconfor_$STATIC_BSS_$STATIC_BSSeqconforinteqconforint._savef24._restf27.stanparl.cenlonmer._restf25._savef28.adjust_lon6522 68002 55070 1074020575 1032 20 644 10 eqconinv.o` @C  xxx.textxHx v*` .dataxx  @.bss  x.debugh |}&K$  0>p8 K`>X>0K`>P>0Km`>H>0KY`>@8H8@ K=`>8AHa@K)`>X^P~HȞ@8K`.A*@8AHa@K`@>X^P~HȞ@8K]`(LB @](($$H!H$>>X*^PȐ~HȞ@!8K`(^p>(b 2AtK`>p^hK` @K`>`K` ȐK`>^ K`8`8!|} Kh8c Ka`>p^hKQ` KE`>`K9` ȐK-`>^ K`8`8!|} K"C eqconinvint|KͿ!p8?Þ(_ ?(`*aP~LA?@Ki`HKU`PA^2?2K5`p$8Pȿ@?_XPȟH@!(ء8K`$<?`!*K`=aP,@8`8!}K"A$eqconinv x0xEQUIDISTANT CONICeqcon-forEQUIDISTANT CONICStandard Parallels on opposite sides of equator?IBM =|׽__default_char:t58=-5 :t8=f-11; :t9=f-13; :t10=f-13; :t11=f-13; :t12=f-13; :t13=f-13; :t15=f-13; :t16=f-13; :t17=f-11; :t18=f-11; :t19=f-11; :t20=f-11; :t21=f-11; :t22=f-13; :t23=f-11; :t26=f-11; :t27=f-11;eqconinvint:F-1 r_maj:p-13 r_min:p-13 lat1:p-13 lat2:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 sinphi:-13 cosphi:-13 eqconinv:F-1 theta:-13false_easting:V-13false_northing:V-13lon_center:V-13 r_minor:V-13 r_major:V-13yo"TX{l}*Z4\lZ,<LXdt4FoJT{{ Pxq|\VXu)RAR) 48@DHL PTX h |  (<APTA`t & %&%'&'&' (' ((-,/40D1T2`3l4|@A89:;<=@AADHTX\`hp|    0<@.filegeqconinv.c.textx*.datax .bss x:t24=-5:t7=-11:t3=-4:t2=-13:t1=-1:t4=f-1;:t5=*-13:t6=f-1;&2?LY:t14=*-4fs:t25=*-5:t59=ZkxF 0 vA'.bfe=!-9K]omode:p-4temp:-13H@ms1:-13ms2:-13ml1:-13ml2:-13.ef e}S0 D R'0.bfDex:p-13y:p-13lon:p5lat:p5rh1:-13ml:-13con:-13flag:-4P.efTeTOCxkkk_$STATICkd_$STATICk] kx.bs\rh:V-13g:V-13ns:V-13 ml0:V-13(es:V-130e:V-138e3:V-13@e2:V-13He1:V-13Pe0:V-13X`hp.esj|kw  xkeqconinv  eqconinvk.sqrt.e0fn.e1fn.e2fn.e3fn.tsincos.msfnz.mlfn.p_error.ptitle.radius2.origin.offsetp.stparl1.atan2.phi3zTue Jan 13 14:15:18 2004 C for AIX Compiler Version 5.0.2.0 --- .eqconinvint.eqconinv_$STATIC_BSS_$STATIC_BSSeqconinvinteqconinvint._savef24._restf27.stanparl.cenlonmer._restf25._savef28.adjust_lon._restf283257 71384 61356 1074020576 1032 20 644 9 equifor.o` @C:a 88(8.text8H  .data888`@.bsspp(.debug0 b|? _!ؿ؟K`? K`?K`?K`?_K`8`H8!@}N "A equiforint|K]!`!(aK5`˿ r?K`8`x8!p}K"AxequiforHp`T88EQUIRECTANGULAR__default_char:t32=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t14=f-11;equiforint:F-1 r_maj:p-13center_lon:p-13 lat1:p-13false_east:p-13false_north:p-13 equifor:F-1false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_major:V-13E :,O8QDSPU`WYE[]_8G<<@8DKHL6T)X6  $(, 4 @ L X hl).filegequifor.c.text8 .data88.bssp(:t12=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>K:t13=*-5X:t33=Zk8F )e.bfe.vX`hpx.efe<.equifor  6.bfeKlon:p-13lat:p-13x:p4y:p4dlon:-13.efeOTOC8k_$STATIC`k_$STATIC@kRpk(.bs<# .es_<klH  w8kequiforT  equiforDk.ptitle.radius.origin.offsetp.cosTue Jan 13 14:15:19 2004 C for AIX Compiler Version 5.0.2.0 --- .equiforint_$STATIC_BSS_$STATIC_BSSequiforintequiforint.cenlonmer._savef28.adjust_lon._restf283577 75086 68002 1074020577 1032 20 644 9 equiinv.o` @C<e d(.textHj# .datad @.bss(.debug=D b|? _!ؿ8c ؟K`? K`?K`?K`?_K`8`H8!@}N "A equiinvint|KYb (E#(#ˣ$!8d `@0K`8`hXˡHP}8!`N K`r$=*K`?8`hXˡHP}8!`N "Aequiinvequi-invInput data errorEQUIRECTANGULAR?!TD-__default_char:t34=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t14=f-11; :t15=f-11;equiinvint:F-1 r_maj:p-13center_lon:p-13 lat1:p-13false_east:p-13false_north:p-13 equiinv:F-1false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_major:V-13I >0S<UHWTYd[]I8>_0aDcK@<O:6*6  $( ,0 8 D P \ lp*   0 T X .filegequiinv.c.text.datad .bss(:t12=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>K:t13=*-5Xe:t35=ZkF j*r.bfe.X`hpx.efe<.equiinv 6.bfeJx:p-13xy:p-13lon:p4lat:p4.efxeTTOCkkk_$STATICk0_$STATICkRk(.bs@ 0 .es_kl  wkequiinv  equiinvk.ptitle.radius.origin.offsetp.p_error.cosTue Jan 13 14:15:20 2004 C for AIX Compiler Version 5.0.2.0 --- .equiinvint_$STATIC_BSS_$STATIC_BSSequiinvintequiinvint.cenlonmer._savef28.adjust_lon4138 79348 71384 1074020578 1032 20 644 9 gnomfor.o` @Crs  p0 .text H@X/ .data  ph @.bss0.debugh |K!_(? ؟ ؿ88K`b8c0K` K` K` K`?_K}`8`hXˡHP}8!`N "A gnomforint|K-!`(!(aK`8@8H K` K`_@2aH _2bȿ B c8dLB@0K`ˁ`px}8!8`N F$KU`=z8`>?aHA@!_<r#z8!}K"A,gnomfor4L@  gnomfor-convPoint projects into infinityGNOMONIC?__default_char:t36=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t15=f-11; :t16=f-11;gnomforint:F-1center_long:p-13center_lat:p-13false_east:p-13false_north:p-13 gnomfor:F-1 sinphi:-13 cosphi:-13 coslon:-13false_northing:V-13false_easting:V-13 cos_p13:V-13 sin_p13:V-13lon_center:V-13[Q@]JEP_\ahcteg[Qi] kFEN?tmoq S$G(C,W0A48=@+D=$(,048H X d p | + (,0< @DHLP X \`dht|      .fileggnomfor.c.text .data p .bss0:t13=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KX:t14=*-5er:t37=Zk F X+.bfe4r:p-13x.efeB.gnomfor L=.bfeVlon:p-13lat:p-13x:p4y:p4dlon:-13H@g:-13ksp:-13.efeeTOC k0kk_$STATICLk9_$STATIC(kRk0.bsG%:IR:V-13 X(.es_$kl4  w kgnomfor@  gnomfor,k.tsincos.ptitle.radius.cenlon.cenlat.offsetp.cos.p_error.sinTue Jan 13 14:15:21 2004 C for AIX Compiler Version 5.0.2.0 --- .gnomforint_$STATIC_BSS_$STATIC_BSSgnomforintgnomforint._savef28.adjust_lon._restf284616 84088 75086 1074020580 1032 20 644 9 gnominv.o` @Cy L8.textH<E .dataLH @.bssLL8.debugS |K!_0? ( ؟ؿ88K`bK` K` K` K`?_K}`8`hXˡHP}8!`N "A gnominvint|K-!``(?(a^?K` !$K`8@8HK`0`H˼?_ȁ@(8`LB@,!h}ˡ8!}N 22$$KY`ȟ("@P|(=a@*˟_0LL@@l P@< K`:*K`>8`8!}H@K`:(K`>8`HxK`\|!H`@(`@8`8!}Kh?rАY rKU`>*KI`>8`8!}K$"AgnominvL, 8GNOMONIC=|׽!TD-__default_char:t36=-5 :t6=f-13; :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t13=f-11; :t16=f-11;gnominvint:F-1center_long:p-13center_lat:p-13false_east:p-13false_north:p-13 gnominv:F-1false_northing:V-13false_easting:V-13 cos_p13:V-13 sin_p13:V-13lat_center:V-13lon_center:V-13[QD]NDP_\ahctegiQ k m0]B>oqs4q@sXuwqswSFB W@< +$<$(,048<L X d p |+(8<DH LP X\ ` d hp# #  #,0PX`dhl#"#.fileggnominv.c.text.dataL .bssL8:t14=-5:t8=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KXe:t15=*-5r:t37=ZkF <+.bfe5r:p-13x.efeD.gnominv 0<.bfeVx:p-13y:p-13lon:p4lat:p4rh:-13z:-13sinz:-13Hcosz:-13@con:-13.efexTOCkk8k_$STATIC,k _$STATICkRLk8.bsF"R:V-13 1(C0.es_kl  wkgnominv   gnominv k.tsincos.ptitle.radius.cenlon.cenlat.offsetp.sqrt.atan.asinz.atan2.sinTue Jan 13 14:15:22 2004 C for AIX Compiler Version 5.0.2.0 --- .gnominvint_$STATIC_BSS_$STATIC_BSSgnominvintgnominvint._savef28._savef24.adjust_lon._restf255054 89266 79348 1074020581 1032 20 644 9 goodfor.o` @C f (.textH &w .data( @.bss.debug b|CcdhdpDxD$c؄dd# Cr(؄b DD$_$ d(D0d8D@!8c0ؤHؤX؄`؄PKE` K9`8`HX8!P}N "A goodforint|KA!`<C0`0@aLB @,8LB@8`8H 8`8H@LA@@8L@@$8h!(Ka`H8`8H_HLB @\LD3@8`8 HPLB@8`8(HXL@@8`8@Hd8` 8HHXLD3@8`80HDPLB@8`88H(XL@@8` 8PH 8` 8X,A$,A,A,A , @\h!(KM`˝r K5`z\Z8`8!A}H`h!(K` K``2;`h ?pHAtK`* (@PK`,2*;{$* AA, 8dKi`8`8!A}KL_x (@@ ˝2|2K`ߺ K`2 K`l`D_!@*<28`8!A}K"ATgoodforgoode-forwardIteration failed to convergeGOODE'S HOMOLOSINE EQUAL-AREA]?R8-hWJ<_R8-@?WJM@5AI?iyWJMIBM iyWJM?WJU@ !TD-?IBM =|׽?IBM ?!TD-?d)?f;YIBM ? _ـ__default_char:t36=-5:t7=ar0;0;11;-13:t8=ar0;0;11;-13 :t10=f-13; :t12=f-11; :t15=f-11; :t16=f-11;goodforint:F-1 goodfor:F-1delta_lon:-13 theta:-13delta_theta:-13 constant:-13 region:-4lon_center:V8J;nATV X;JZJZ\J Z ^H^`\A`b\^dXbLC=?P9'9 (,0<@ DH L PT X\ `dhl#pt x | ##$%&'DX"\`d"hl| "  """ "$(4"8<P"TXl"ptx"|?@"#$0(8*h-l*p(t*x+|,*,/0@39:;<;<D?H@.fileggoodfor.c.text.data( .bss:t13=-5:t11=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;-:t9=f-1;@M:t14=*-5Zg:t37=ZkF  &'t.bfe-r:p-13h.efeR.goodfor t :9.bfeelon:p-13lat:p-13x:p4y:p4i:-4.ef\eTOCkkk_$STATICkN_$STATICkRk.bsCfeast:V7hR:V-13.es_kl  wkgoodfor  goodfork.ptitle.radius.cos.sin.p_error.signTue Jan 13 14:15:23 2004 C for AIX Compiler Version 5.0.2.0 --- .goodforint_$STATIC_BSS_$STATIC_BSSgoodforintgoodforint._savef24.adjust_lon._restf255990 95380 84088 1074020582 1032 20 644 9 goodinv.o` @Cf @4@.text@H x  .data@@4 6 @.bsstt.debug b|CcdhdpDxD$c؄dd# Cr(؄b DD$_$ d(D0d8D@!8c$ؤHؤX؄`؄PKE` K9`8`HX8!P}N "A goodinvint|}&KA`02!p<C0`@aLB @P82LB@ 8(| ;`cH8@(| ;`;_H@LA@X82L@@((~;`;_`;$<H8@ (| ;`;_H`^2H2LB @LD3@ 8@((| ;`;_ HP2LB@ 8@0(| ;`;_(HX2L@@ 8@H(| ;`;_@H8@P(| ;` ;_HHLD3@ 8@8(| ;`;_0H|P2LB@ 8@@(| ;`;_8HLX2L@@ 8@X(| ;` ;_PH8@`(| ;` ;_X,A$,A,A,A , @`;$<@ @@ 8dKU`ah|} 8!A8`N ˺hh*^p@,K`r$=*K`=H۽Hx ؐ2K`l`˟D>\r!@*: $` @$8`8!|} AKlKi`˺h`2KQ`<r?$=*=A;*K)`:> $@ AK`<@@](>pA @$]*>p@ P,@ =A8A@ =A8A,@ =8AA,@ =8AA,@ =AAx,@ =A`PAT,@ =A<A0,@ =APA ,@ =PAXA, @ =XAA, @ =PAXA, @ =XAA|8`8!|} AK"CgoodinvTtl`@@goode-inverseInput data errorGOODE'S HOMOLOSINE EQUAL-AREA]?R8-hWJ<_R8-@?WJM@5AI?iyWJMIBM iyWJM?WJU?!TD-!TD-=|׽? _YIBM ?f;?IBM ?d) !TG@IBM @ !TD-@ !TGـ__default_char:t36=-5:t7=ar0;0;11;-13:t8=ar0;0;11;-13 :t10=f-13; :t12=f-11; :t15=f-11; :t16=f-11;goodinvint:F-1 goodinv:F-1 theta:-13 region:-4lon_center:V8H9n?RTVH"9?XZ\8^`bZdb`@JDAH;L=PNTX7`'d7 (,0<@ DH L PT X\ `dhl#pt x | ##$%&'Xlpx|  ( 04<@ DHL`dlptx| 04<@DHPX\`d W!W#$&' ($)(*,-X.\-l.|W/0/0101234 9L:T>x@BDFH(JLLpNPRTVW.fileggoodinv.c.text@.data@4 .bsst:t13=-5:t11=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;-:t9=f-1;@M:t14=*-5Zg:t37=Zk@F  't.bfe,r:p-13h.efeQ.goodinv 8 7.bfebx:p-13y:p-13lon:p4lat:p4arg:-13temp:-13.ef eTOC@kHkk_$STATIClkB_$STATICLkRtk.bsAfeast:V7hR:V-13.es_DklT  w@kgoodinv`  goodinvPk.ptitle.radius.p_error.cos.sign.asin.sinTue Jan 13 14:15:25 2004 C for AIX Compiler Version 5.0.2.0 --- .goodinvint_$STATIC_BSS_$STATIC_BSSgoodinvintgoodinvint._savef26.adjust_lon._restf274419 99924 89266 1074020583 1032 20 644 10 gvnspfor.o` @C$x H8H.textHH3 .dataHH @.bss8.debugy@ |Kb B$!>(~0 ؾ*88 K` 8TK` K`8( K}` Kq` Ke`>^KU`8`h8!`}K8"A gvnspforint|K !`0!(aK`8@8H K` K`_@2 _ ȡH2$ (c!z8d 0@0Ki`ˁ`px}8!8`N b(B *B$K)`=z8`>?aHA@!_<r#z8!}K"A8gvnspfor\thHHgvnsp-forPoint cannot be projectedHeight of Point Above Surface of Sphere: GENERAL VERTICAL NEAR-SIDE PERSPECTIVE?__default_char:t38=-5 :t9=f-11; :t10=f-13; :t11=f-11; :t12=f-11; :t13=f-11; :t14=f-11; :t15=f-11; :t16=f-11; :t17=f-11;gvnspforint:F-1center_long:p-13center_lat:p-13false_east:p-13false_north:p-13 gvnspfor:F-1 sinphi:-13 cosphi:-13 coslon:-13false_northing:V-13false_easting:V-13 cos_p15:V-13 sin_p15:V-13lon_center:V-13^ A*TX`bGhbtdfhjln^Tp4`@rZAzGtv$nHVLCPITEXZ\`?h-l?(8<@DHLTX` p | -$(,<HLPX\ `dpx|        .fileggvnspfor.c.textH.dataH .bss8:t7=-5:t6=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;:t8=*-5&3@MZgt:t39=ZkHF -.bfe8r:p-13xh:p-13.efeHS Xd?.bfe\lon:p-13lat:p-13x:p4y:p4dlon:-13H@g:-13ksp:-13.ef(ejTOCHkLkk_$STATICtk{_$STATICTk]k8.bsI 6KZp:V-13 R:V-13(i0.esjPkw\  Hkgvnspforh  gvnspforXk.tsincos.ptitle.radius.genrpt.cenlon.cenlat.offsetp.cos.p_error.sinTue Jan 13 14:15:26 2004 C for AIX Compiler Version 5.0.2.0 --- .gvnspforint.gvnspfor_$STATIC_BSS_$STATIC_BSSgvnspforintgvnspforint._savef28._restf28.adjust_lon5229 105278 95380 1074020584 1032 20 644 10 gvnspinv.o` @C t @.textH!J .data^ @.bssXX@.debugq |Kb B$!>(~8 ؞0*ؾ8 8K` 8PK` K`8 Ky` Km` Ka`>^KQ`8`h8!`}K4"A gvnspinvint|K !``(?(a^?K`˿ (|]*<*8$<$K` 8d @$K`8`8!}Klr2$;(KY`$Y$=(*!$`!@K5`8H8@K%`8`˼@?AHȟ8`0LB@}8!}HH22$":K`ȟ0"|@P=ˁH*L@@|˿8LB @< Ku`=*Ki`>8`8!}H P@K9`=(K-`>8`H|K`>| @(@8`8!}KXr!@?r8 rK`?*K`>8`8!}K"Agvnspinv<Xgvnsp-forInput data errorHeight of Point Above Surface of Sphere: GENERAL VERTICAL NEAR-SIDE PERSPECTIVE?=|׽!TD-__default_char:t40=-5 :t9=f-11; :t10=f-13; :t11=f-13; :t12=f-11; :t13=f-11; :t14=f-11; :t15=f-11; :t16=f-11; :t17=f-11; :t18=f-11;gvnspinvint:F-1center_long:p-13center_lat:p-13false_east:p-13false_north:p-13 gvnspinv:F-1false_northing:V-13false_easting:V-13 cos_p15:V-13 sin_p15:V-13lat_center:V-13lon_center:V-13a C*W\cfIlexgikmoqsW0u:C`ujIxwyu{c@{}}(yD}PtyYEKG] A.A (8<@DHLPTXd t .(8<@DHPX\h lp tx  *   *,0HTX\$`dx* !$%&*,'`)d*.fileggvnspinv.c.text!.data .bssX@:t7=-5:t6=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;:t8=*-5&3@MZgt:t41=ZkF ..bfe7r:p-13xh:p-13.efeHS  0A.bfe]x:p-13y:p-13lon:p4lat:p4rh:-13r:-13con:-13com:-13z:-13sinz:-13@cosz:-13H.efxeTOCkk<k_$STATICkw_$STATICk]Xk@.bsK1@p:V-13 R:V-13(O0a8.esjkw  kgvnspinv  gvnspinvk.tsincos.ptitle.radius.genrpt.cenlon.cenlat.offsetp.sqrt.p_error.asinz.atan2.sinTue Jan 13 14:15:27 2004 C for AIX Compiler Version 5.0.2.0 --- .gvnspinvint.gvnspinv_$STATIC_BSS_$STATIC_BSSgvnspinvintgvnspinvint._savef28._restf28._savef24._restf24.adjust_lon3455 108856 99924 1074020585 1032 20 644 8 hamfor.o` @Ce D .textH .dataD @.bss .debug, |!b?_؟K` K` K`?_K`8`XH@8!P}N "A hamforint|KU!`!(aK-` \K `2 K` =zK`˿|$ *K`2 K`z K`8`z8!}K"AhamforHAMMER?fe>??__default_char:t30=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t13=f-11;hamforint:F-1center_long:p-13false_east:p-13false_north:p-13 hamfor:F-1false_northing:V-13false_easting:V-13lon_center:V-13G&=8QDSPU`WYG[7] ]_4]Da\acI?;M95'5 $(,048@ L X h l '$(,LPTX\dhp.fileghamfor.c.text.dataD .bss :t11=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>:t12=*-5K:t31=ZkF 'X.bf e2r:p-13hhp{x.efe>.hamfor f5.bfeNlon:p-13lat:p-13x:p4y:p4dlon:-13fac:-13.efeUTOCkkk_$STATICk_$STATICkQk .bs?R:V-13.es^kk  ukhamfor  hamfork.ptitle.radius.cenlon.offsetp.cos.sqrt.sinTue Jan 13 14:15:28 2004 C for AIX Compiler Version 5.0.2.0 --- .hamforint_$STATIC_BSS_$STATIC_BSShamforinthamforint._savef26.adjust_lon._restf273403 112382 105278 1074020586 1032 20 644 8 haminv.o` @Ce D .textH .dataD @.bss .debug$ |!b?_؟K` K` K`?_K`8`XH@8!P}N "A haminvint|KU!(?(a2`8=|K`a2^^*?]|K` !:K`@<>$ $K`=8`8!}K"AhaminvHAMMER@>?@__default_char:t32=-5 :t6=f-13; :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t14=f-11;haminvint:F-1center_long:p-13false_east:p-13false_north:p-13 haminv:F-1false_northing:V-13false_easting:V-13lon_center:V-13G&=8QDSPU`WYG7[ ]0_PatcI?;M95(5 $(,048@ L X h l ( @`d.fileghaminv.c.text.dataD .bss :t12=-5:t8=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>K:t13=*-5X:t33=ZkF (e.bf e2r:p-13hupx.efe>.haminv P5.bfeMx:p-13y:p-13lon:p4lat:p4fac:-13.efxeTTOCkkk_$STATICk_$STATICkQk .bs?R:V-13.es^kk  ukhaminv  haminvk.ptitle.radius.cenlon.offsetp.sqrt.atan2.asinzTue Jan 13 14:15:29 2004 C for AIX Compiler Version 5.0.2.0 --- .haminvint_$STATIC_BSS_$STATIC_BSShaminvinthaminvint._savef26.adjust_lon._restf264583 117090 108856 1074020588 1032 20 644 10 imolwfor.o` @C Bc P`hP.textPHb .dataPP` @.bssh.debug b|#C@(08H2$8!c@ȃ ȣ(#P?rX2b DHdP؄Xؤ`8c0$ 0$(KY` KM`8`HX8!P}N "A imolwforint|K!!``_h_xȟ`pa8( L+@d_8LB @ A8LYӂ@LBALU@@|88!(KU`Ht_LA@(@ 88!(K!`H@L]@L@ALU@@8 8!(K` K`?2;` 萃B K`* (@PK`,2*8z $*AA Ka`;{ K?2_r˜  (@`K`2A ]K`8`8!!}K"A8imolwford|pPPIntMoll-forwardIteration failed to convergeINTERRUPTED MOLLWEIDE EQUAL-AREA?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^IBM ?WJy?f ?f@ !TD-/ !TD-/]yk@5AIտ5A@ !TD-?IBM =|׽?IBM ?!TD-?d)?f;__default_char:t34=-5:t7=ar0;0;5;-13:t8=ar0;0;5;-13 :t9=f-13; :t11=f-11; :t14=f-11; :t15=f-11;imolwforint:F-1 imolwfor:F-1delta_lon:-13 theta:-13delta_theta:-13 region:-4lon_center:V8 :Iv@SUW :IYY Y4[R@X[p]@_][,aPKT<XB\>`Odh8p&t8 $4<DLTX\ ` dltx| &,04<HLPX\`dtx   ,0HLPXx|!&(!(&(&'()()()*)+.filegimolwfor.c.textP.dataP` .bssh:t12=-5:t10=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;,>J:t13=*-5Wd:t35=ZkPF &q.bfe-r:p-13h.efeFS X8.bfe\lon:p-13lat:p-13x:p4y:p4con:-13i:-4.ef0eTOCPkTkk_$STATIC|kQ_$STATIC\k]kh.bsBfeast:V78R:V-13.esjXkwd  Pkimolwforp  imolwfor`k.ptitle.radius.sin.cos.p_errorTue Jan 13 14:15:30 2004 C for AIX Compiler Version 5.0.2.0 --- .imolwforint.imolwfor_$STATIC_BSS_$STATIC_BSSimolwforintimolwforint._savef24.adjust_lon._restf254423 121638 112382 1074020589 1032 20 644 10 imolwinv.o` @C ^ (h.textH4LH .data(` @.bss@@h.debug b|#C@(08H2$8!c@#P?rX2ȃ DHdP؄Xȣ(b ؤ`$ $(0K]` KQ`8`HX8!P}N "A imolwinvint|K ãb!a`ˣ`LB @h2LB@,;`|(2"$K`Hp2L@@0;`8|(2"$Ke`H;`8Hx2LB@0;`8|(2"$K`Hl2L@@0;`8 |(2"$K`H,;`8(|(2"$K`82K`r$>*K}`@=<*Ki`:? $KQ`>,@8=A@8`x8!pa}K,@8=@A@A,@ =AA,@ =AtAh,@8=@AD@A,,@ =AA8`x8!pa}K "Aimolwinv,h@D8INTERRUPTED MOLLWEIDE EQUAL-AREA?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^IBM f~?+}8k=+}8k=?f~?f;?d)@IBM @ !TD-?WJy?f ]]yk@5AIտ5A__default_char:t32=-5:t7=ar0;0;5;-13:t8=ar0;0;5;-13 :t9=f-13; :t11=f-11; :t14=f-11;imolwinvint:F-1 imolwinv:F-1 theta:-13 region:-4lon_center:V8 5D;NPR5D\TTT,TXTpVXZT\\F7 =$9(J,038%<3 $4<DLTX\dl ptx|   %,D Pdh        4 8 < L`dh 8\.filegimolwinv.c.text.data( .bss@h:t12=-5:t10=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;,>J:t13=*-5W:t33=ZkF L%d.bfe+r:p-13h.efeDS $ 3v.bfeQx:p-13y:p-13lon:p4lat:p4.efenTOCkkhk_$STATICDk!_$STATIC$k]@kh.bs=feast:V78R:V-13.esj kw,  kimolwinv8  imolwinv(k.ptitle.radius.asin.cos.sinTue Jan 13 14:15:31 2004 C for AIX Compiler Version 5.0.2.0 --- .imolwinvint.imolwinv_$STATIC_BSS_$STATIC_BSSimolwinvintimolwinvint._savef28.adjust_lon._restf2812272 134036 117090 1074020591 1032 20 644 11 isinusfor.o` @C h .text H5 .data  h P@.bsspp.debug |!``eH8g@8K`H8!@}N A<error|"!`H8P8i@K`8`H8!@}N AD Isin_error||y<` 8#!`8X;@88!@8eK`8hX|A88!@KDXTK`TcK`8`H8!@}N A Isin_for_free|(~"z)> rK`0(?x`},2| A~(8,@;@(KA` @lD!@** @$K `l`@L!H*(~T@W 6>| .|c"ȞDl8`Tl\APB*aX*:xp8!}N h`xp8!N "Ax$Isin_fwd|a !`K,88`A8@K8`H8!@}N AT isinusfor|}&KͿA ! <`C0<C0*D?@;@ [XA@*ۛۻ(,$W$8;0[ @ *0@,T 6Kq`{T,@@ccKY`b8H8c KcC8!|} AK$,,@.@;0˟8ÿ4;laL>*H*$(<2K`*7:K`~*,A 8`l`T|pP*|8d|cp|c$;Z@~,l|H,l|@aL>*H*$KTH;0˟8ÿ4;la\>*X*$(<2K`7zK`|*A 8l~d|`p`*|8c|cp|c$;Z@~,l|H,l|@a\>*X*$KX{TT 6< |`cc8#Xll!h!*@$a$[D{L8!|} } AK"C Isin_for_init|Kɿ `0@(<C0!`H@,A4KA,A(88LKq8!8`}KX0LB@(8t8hK98!}8`K A@(8T8xK8!}8`KHAP@(8,8K8!}8`K>X:*K`l`@D`}@*(@(88Ke8`8!}KLp|||A(88K-8`8!}H`Ah@(88K8`8!}K;*K`l`LH*(@(8 8K8`8!}K􈓡8 a<@`K,@(8 8KU8`8!}H8`8!}K$"A  isinusforinit d ( 4 @ L X t  ,  4  Isin_fwdIsin_fwdisinusforisinusforinitinvalid keyisinusforinitisinusforinitisinusforinitisinusforinitisinusforinitisinusforinitisinusforinitIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_freeIsin_for_freeinvalid handleinvalid parametermemory allocationbad return from Isin_fwd error (isinusfor.c/%s : %s bad return from Isin_for_freebad return from Isin_for_initbad parameter; nzone out of range error (isinusfor.c/%s) : (%i) %s bad parameter; sphere radius invalidbad parameter; ijustify out of rangebad parameter; nzone not multiple of twobad parameter; nzone not near an integer valuebad parameter; ijustify not near an integer valuebad parameter; longitude of central meridian invalid=|׽!TD-@!TD-@ !TD-?Y !TD-??!TD-ـIBM ? =pA3ƀ\)?zG{zG{@zG!TD-?_0mȃ__default_char:t84=-5 :t5=f-11;<:T10=s16ncol:-4,0,32;icol_cen:-4,32,32;ncol_inv:-13,64,64;;Isin_row_t:t11=10:T13=s96false_east:-13,0,64;false_north:-13,64,64;sphere:-13,128,64;sphere_inv:-13,192,64;ang_size_inv:-13,256,64;nrow:-4,320,32;nrow_half:-4,352,32;ref_lon:-13,384,64;lon_cen_mer:-13,448,64;ijustify:-1,512,32;col_dist:-13,544,64;col_dist_inv:-13,608,64;row:12,672,32;key:-4,704,32;;Isin_t:t14=13 :t16=f15; :t17=*-13 :t18=f-1; :t21=f-1; :t22=f-1;":T24=s8num:-1,0,32;str:23,32,32;;error_t:t25=24 :t28=f-1; :t29=*-11size_t:t31=-10 :t32=f29; :t33=f-11;:t35=ar0;0;0;-4:T36=s32_ptr:23,0,32;_cnt:-1,32,32;_base:23,64,32;_bufendp:23,96,32;_flag:-3,128,16;_file:-3,144,16;__stdioid:-1,160,32;__newbase:23,192,32;_unused:35,224,32;; FILE:t37=36 :t39=f-1;:t40=ar0;0;15;37 error:F-11 routine:p4Isin_error:F-1 routine:p4Isin_for_free:F-1 thisIsin:p15 Isin_fwd:F-1 thisIsin:p20isinusfor:F-1Isin_for_init:F15 sphere:p-13lon_cen_mer:p-13false_east:p-13false_north:p-13 ijustify:p-1 thisIsin:15 ncol_cen:-4isinusforinit:F-1 sphere:p-13lon_cen_mer:p-13false_east:p-13false_north:p-13 dzone:p-13djustify:p-13 ijustify:-1ISIN_BADKEY:V25ISIN_BADHANDLE:V25ISIN_BADPARAM:V25ISIN_BADALLOC:V25 $^b 0t™™™4ęNƙș>`ʙrʙʙ̙ʙ̙Ι(Й8™Й™ Ι 8ҙ Z ʙ  ʙ ʙ Xʙ d™ ԙ (ԙ 0™ xԙ ԙ        $ (J , 4S 8 @d D Lq P X \ h x  6,@\J ( , 8 <S###,0#8@DLX \` lt| $0 48"<\ d#dqL < L\ `d p    $",48<@HL#PTX\ `dh!l"ptx#$()*+,48(=HQXkdphkppk4kop484pr4848?@(Q4k@pDkLp\k`4dkholpp4t8x4|pr4848ww X |   <  < < <   <  <  , 8 D< T X< \ l x |   <  ! " # < # & ' ( ) < ,, 8- X. d/ h< |4 6 7 8 < 8 ; <.filegisinusfor.c.text 5.data h.bssp:t34=-3:t30=-10:t9=-4:t7=-13:t6=-1:t2=-5:t1=-11:t3=k-5:t4=*3:t8=f-1;&d:t12=*11x:t15=*14:t19=k14:t20=*19:t23=*-5:t26=k25:t27=*26#/@LYk :t38=*37':t85=Zk .error kX@4:.bfeVGXtext:p4\.ef<eYFX kdJ4TX.bf\eTerr:p27Xe\.efeXR S4r.bfe.X.efPe;at DRd4t.bfelon:p-13lat:p-13x:p17y:p17row:-13col:-13flon:-13irow:-4.efek t`q4.bfelon:p-13Xlat:p-13`x:p17hy:p17listat:-1.ef ev, 4,.bfLe  nrow:p-4,row:12irow:-4clat:-13:.ef e 4 N4H 4.bf Xe\j}nzone:-4istat:-1.ef eTOC k kk_$STATIC dk.bsisin:V15 .es_$STATIC k_iob_iob k (  kIsin_fwd 4  Isin_fwd k @  k L  k X  $k.fprintf.free$.malloc..cos8BLTue Jan 13 14:15:33 2004 C for AIX Compiler Version 5.0.2.0 --- .Isin_error.Isin_for_free.Isin_fwd.isinusfor.Isin_for_init.isinusforinitIsin_for_freeIsin_for_freeisinusforisinusforIsin_for_initIsin_for_initisinusforinitisinusforinit.__itrunc._savef22._restf28._restf27._restf26._restf23._savef24._restf2412142 146304 121638 1074020593 1032 20 644 11 isinusinv.o` @C ` .text H|L2 .data ` p@.bss.debug` |!``eH8g@8K`H8!@}N A<error|"!`H8P8i@K`8`H8!@}N AD Isin_error||y<` 8#!`8X;@88!@8eK`8hX|A88!@KDXTK`TcK`8`H8!@}N A Isin_inv_free||y<` 0<C0!8#aa<p@`@ 8d84P`h8!pKp~8X8(|(AP`h8!pKH?"(_"r<A@(8`xh`8!p}N  #( rK`,(T?L| 2>@^~ Ⱦ(A(8|c ,@8`Td 68`|"lD@&**2AH>A@ȟ0 LB @ *@ *xh`8!p}N "AxIsin_inv|a !`K,88`A8@Ka8`H8!@}N AT isinusinv|}&KA ! <`C0<C0*D?@;@ [XA@*ۛۻ(,$W$8;0[ @ *0@,T 6K`{T,@@ccK`b8H8c K큁cC8!|} AKt,,@.@;0˟8ÿ4;laL>*H*$(<2K)`*7:K`~*,A 8`l`T|pP*|8d|cp|c$;Z@~,l|H,l|@aL>*H*$KTH;0˟8ÿ4;la\>*X*$(<2KI`7zK=`|*A 8l~d|`p`*|8c|cp|c$;Z@~,l|H,l|@a\>*X*$KX{TT 6< |`cc8#Xll!h!*@$a$[D{L8!|} } AKD"C Isin_inv_init|K `0@(<C0!`H@,A4K,A(88LK8!8`}K0LB@(8t8hK8!}8`KpA@(8T8xKM8!}8`K4HAP@(8,8K8!}8`K>X:*K`l`@D`}@*(@(88K8`8!}Kp|||A(88K}8`8!}H`Ah@(88KA8`8!}K(;*K!`l`LH*(@(8 8K8`8!}Kؓ8 a<@`K,@(8 8K8`8!}H8`8!}Kt"A  isinusinvinit    t h   p Isin_invIsin_invisinusinvisinusinvinitinvalid keyisinusinvinitisinusinvinitisinusinvinitisinusinvinitisinusinvinitisinusinvinitisinusinvinitisinusinvinitIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_freeIsin_inv_freeinvalid handleinvalid parametermemory allocationbad return from Isin_inv error (isinusinv.c/%s) : %s bad return from Isin_inv_freebad return from Isin_inv_initbad parameter; nzone out of range error (isinusinv.c/%s) : (%i) %s bad parameter; sphere radius invalidbad parameter; ijustify out of rangebad parameter; nzone not multiple of twobad parameter; nzone not near an integer valuebad parameter; ijustify not near an integer valuebad parameter; longitude of central meridian invalid=|׽!TD-@!TD-@ !TD-?Y !TD-??!TD-ـIBM ? =pA3ƀ\)?zG{zG{@zG!TD-__default_char:t84=-5 :t5=f-11;<:T10=s16ncol:-4,0,32;icol_cen:-4,32,32;ncol_inv:-13,64,64;;Isin_row_t:t11=10:T13=s96false_east:-13,0,64;false_north:-13,64,64;sphere:-13,128,64;sphere_inv:-13,192,64;ang_size_inv:-13,256,64;nrow:-4,320,32;nrow_half:-4,352,32;ref_lon:-13,384,64;lon_cen_mer:-13,448,64;ijustify:-1,512,32;col_dist:-13,544,64;col_dist_inv:-13,608,64;row:12,672,32;key:-4,704,32;;Isin_t:t14=13 :t16=f15; :t17=*-13 :t18=f-1; :t21=f-1; :t22=f-1;":T24=s8num:-1,0,32;str:23,32,32;;error_t:t25=24 :t28=f-1; :t29=*-11size_t:t31=-10 :t32=f29; :t33=f-11;:t35=ar0;0;0;-4:T36=s32_ptr:23,0,32;_cnt:-1,32,32;_base:23,64,32;_bufendp:23,96,32;_flag:-3,128,16;_file:-3,144,16;__stdioid:-1,160,32;__newbase:23,192,32;_unused:35,224,32;; FILE:t37=36 :t39=f-1;:t40=ar0;0;15;37 error:F-11 routine:p4Isin_error:F-1 routine:p4Isin_inv_free:F-1 thisIsin:p15 Isin_inv:F-1 thisIsin:p20isinusinv:F-1Isin_inv_init:F15 sphere:p-13lon_cen_mer:p-13false_east:p-13false_north:p-13 ijustify:p-1 thisIsin:15 ncol_cen:-4isinusinvinit:F-1 sphere:p-13lon_cen_mer:p-13false_east:p-13false_north:p-13 dzone:p-13djustify:p-13 ijustify:-1ISIN_BADKEY:V25ISIN_BADHANDLE:V25ISIN_BADPARAM:V25ISIN_BADALLOC:V25 $^b 0h™ręFhƙșʙ"Dʙ^ʙ̙ʙ@̙XbΙЙ™Й™Ιҙ  Xʙ ^ ʙ ʙ ʙ ™ dԙ ԙ ™ (ԙ ԙ         J  S  d  q     ( 0 86,@\J ( , 8 <S % % ( 8 @%\hpt|! "$! !",%dpqDT\`l     0@ DH\ltx"# !" $(#4$8(L)T*`+px,|48=Qkpk p0k448k<o@pD4H8L4PpTrX4\8`4h8?@Qkpkp k4kop 4$8(4,p0r4488<4D8`wdhlwtx  , 0 8 D< L P< \ p |< <   <  <    <  <   ( , D P T< h p! |" # < # & ' ( ) < , - . / < ,4 L6 T7 `8 d< t8 x; |<.filegisinusinv.c.text 2.data `.bss:t34=-3:t30=-10:t9=-4:t7=-13:t6=-1:t2=-5:t1=-11:t3=k-5:t4=*3:t8=f-1;&d:t12=*11x:t15=*14:t19=k14:t20=*19:t23=*-5:t26=k25:t27=*26#/@LYk :t38=*37':t85=Zk .error kXL@4:.bfeVGXtext:p4\.ef<eYFX kd^J4TX.bf\eTerr:p27Xe\.efeYR vS4r.bfe.X.efPe;at d4t.bfex:p-13y:p-13lon:p17lat:p17row:-13col:-13flon:-13irow:-4.efHekh tq4h.bfpex:p-13Xy:p-13`lon:p17hlat:p17listat:-1.efev 4.bfe  nrow:p-4,row:12irow:-4clat:-13:.efe 4H.bf e\j}nzone:-4istat:-1.ef eTOC k kkx_$STATIC k.bsisin:V15 .es_$STATIC k_iob_iob k   kIsin_inv   Isin_inv k   k   k   k.fprintf.free$.malloc..cos8BLTue Jan 13 14:15:35 2004 C for AIX Compiler Version 5.0.2.0 --- .Isin_error.Isin_inv_free.Isin_inv.isinusinv.Isin_inv_init.isinusinvinitIsin_inv_freeIsin_inv_freeisinusinvisinusinvIsin_inv_initIsin_inv_initisinusinvinitisinusinvinit.__itrunc._savef22._restf28._restf27._restf26._restf23._savef24._restf244379 150808 134036 1074020594 1032 20 644 10 lamazfor.o` @Cw `0`.text`H, .data`` @.bss0.debug< |K!_(? ؟ ؿ88K`b8c*K`>8`8!}K@< PK`:(K`>8`8!}K\ @PKQ`:*KE`>H}8`8!}K"Alamazinv$<0lamaz-inverseInput data errorLAMBERT AZIMUTHAL EQUAL-AREA?IBM =|׽!TD-__default_char:t38=-5 :t6=f-13; :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t13=f-11; :t16=f-11; :t17=f-11;lamazinvint:F-1center_long:p-13center_lat:p-13false_east:p-13false_north:p-13 lamazinv:F-1 sin_z:-13 cos_z:-13false_northing:V-13false_easting:V-13cos_lat_o:V-13sin_lat_o:V-13lat_center:V-13lon_center:V-13\RD^NET``bldxfhjRl&?.EDnpp^pr8tDvhxttvxtvxTGCX A$(=0,4=$(,048<L \ h t , $(,048<DLhlp x |       TXl.fileglamazinv.c.text.data .bss8:t14=-5:t8=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KXe:t15=*-5r:t39=ZkF ,.bfe7r:p-13x.efeFS 46=.bfeXx:p-13y:p-13lon:p4lat:p4Rh:-13z:-13H@temp:-13.eferTOCk kk_$STATIC<kA_$STATICk]k8.bsG%:KR:V-13 \(n0.esjkw$  klamazinv0  lamazinvk.tsincos.ptitle.radius.cenlon.cenlat.offsetp.sqrt.p_error.asinz.sin.atan2Tue Jan 13 14:15:38 2004 C for AIX Compiler Version 5.0.2.0 --- .lamazinvint.lamazinv_$STATIC_BSS_$STATIC_BSSlamazinvintlamazinvint._savef28._savef24.adjust_lon._restf255988 161822 150808 1074020596 1032 20 644 10 lamccfor.o` @C  X.textH (V .dataH @.bssX.debug |K *b `(˄d08$!P?P_H8cL@$K`8!8`)}K$ (K`HTLB@0K`8`,xhˡX`}8!pN 0>(K` Ky`z K]`=|8`*xhˡX`}8!pN "A`lamccfor, lamcc-forLAMBERT CONFORMAL CONIClamcc-forPoint can not be projectedEqual Latitiudes for St. Parallels on opposite sides of equator=|׽?IBM !TD-__default_char:t44=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t13=f-13; :t14=f-13; :t15=f-11; :t18=f-11; :t19=f-11; :t20=f-13;lamccforint:F-1 r_maj:p-13 r_min:p-13 lat1:p-13 lat2:p-13 c_lon:p-13 c_lat:p-13false_east:p-13false_north:p-13 sin_po:-13 cos_po:-13 lamccfor:F-1 sinphi:-13 theta:-13false_northing:V-13false_easting:V-13center_lat:V-13center_lon:V-13 r_minor:V-13 r_major:V-13o NT"e`q|suwy{w y${8}T{tT ,<XNTe}{$@qx}gPR Vk"L ;$L" (0< DHLPTX \` h1p t1,04L`p # "#$#$#$)$)* +,(-4.D0H1;    ,0 4 @ HLl.fileglamccfor.c.text(.data .bssX:t16=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KXer:t17=*-5:t45=ZkF  ; .bfe>#6HC@con:-13ms1:-13ms2:-13temp:-13ts0:-13ts1:-13ts2:-13.ef\enS  @L P.bfe~lon:p-13lat:p-13x:p4y:p4con:-13rh1:-13_lts:-13.efeTOCkkk_$STATIC,k_$STATICk]kX.bsVxrh:V-13f0:V-13ns:V-13 (0e:V-138es:V-13@HP.esj kw  klamccfor   lamccfork.p_error.sqrt.tsincos.msfnz.tsfnz.sin.log.pow.ptitle.radius2.origin.offsetp.cosTue Jan 13 14:15:39 2004 C for AIX Compiler Version 5.0.2.0 --- .lamccforint.lamccfor_$STATIC_BSS_$STATIC_BSSlamccforintlamccforint._savef22._restf27.stanparl.cenlonmer._restf22._savef28.adjust_lon6068 168014 155710 1074020598 1032 20 644 10 lamccinv.o` @C  X.textH &[ .dataX h @.bssX.debug |K *b `(˄d08!P?P_H8c$@$K`8!8`)}K$ A4^2?2K`?P2^B$;$H @l?P2^B$;$K`@?88@K`<a@˿ ,A$8!|} H@<0<$ *KA`=8`8!|} K"Ctlamccinv$<0|LAMBERT CONFORMAL CONIClamcc-invEqual Latitiudes for St. Parallels on opposite sides of equator=|׽?IBM !TD-__default_char:t50=-5 :t8=f-13; :t9=f-13; :t11=f-11; :t12=f-11; :t13=f-11; :t14=f-11; :t15=f-11; :t16=f-13; :t17=f-13; :t18=f-11; :t21=f-11; :t22=f-11; :t23=f-13;lamccinvint:F-1 r_maj:p-13 r_min:p-13 lat1:p-13 lat2:p-13 c_lon:p-13 c_lat:p-13false_east:p-13false_north:p-13 sin_po:-13 cos_po:-13 lamccinv:F-1 theta:-13false_northing:V-13false_easting:V-13center_lat:V-13center_lon:V-13 r_minor:V-13 r_major:V-13r QW"h`t|vxz|~z |$~8T~tW(8ThQxx`tvjSUY n$%(O0>4O% (0< DHLPTX \` h2p t2,04L`p # "#$#$#$*$*+,-$.0/@1D2>    (4<@HT\l.fileglamccinv.c.text&.data .bssX:t19=-5:t10=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;:t7=*-4&2?LYfs:t20=*-5:t51=ZkF | >#.bfe>1DHQ@con:-13ms1:-13ms2:-13temp:-13ts0:-13ts1:-13ts2:-13.efXeoS|  O#^|.bfex:p-13y:p-13lon:p4lat:p4rh1:-13con:-13ts:-13mflag:-4@.efeTOCkkk _$STATIC<kd_$STATICk]kX.bsYyrh:V-13f0:V-13ns:V-13 (0e:V-138es:V-13@HP.esjkw$  klamccinv0  lamccinv k.p_error.sqrt.tsincos.msfnz.tsfnz.sin.log.pow.ptitle.radius2.origin.offsetp.atan2.phi2zTue Jan 13 14:15:40 2004 C for AIX Compiler Version 5.0.2.0 --- .lamccinvint.lamccinv_$STATIC_BSS_$STATIC_BSSlamccinvintlamccinvint._savef22._restf27.stanparl.cenlonmer._restf22._savef26.adjust_lon4408 172544 161822 1074020599 1032 20 644 8 merfor.o` @Cx @H@.text@H5 .data@@ @.bssH.debugw |Kb$ ?@ KM`>@20?(˾K)`A>@2 ]K`8`|x8!p}K"AmerforTl`@@mer-forwardTransformation cannot be computed at the polesMERCATOR?IBM !TD-=|׽__default_char:t36=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-13; :t15=f-11; :t16=f-11;merforint:F-1 r_maj:p-13 r_min:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 merfor:F-1 sinphi:-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_minor:V-13 r_major:V-13\ =RL^``pbb^Cdfhjln \&=.CppbRrtv n@TD?HELAPXTX;`-d;  $( 048<@ DH L \   -$,8@`dpx            .filegmerfor.c.text@.data@ .bssH:t13=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KX:t14=*-5er:t37=Zk@F -.bfe6xtemp:-13.efeJ.merfor $;.bf$eZlon:p-13lat:p-13x:p4y:p4ts:-13.ef$egTOC@kDkk_$STATIClkE_$STATICLkQkH.bsE !m1:V-13es:V-13e:V-13 7(I0[8j@.es^HkkT  u@kmerfor`  merforPk.sqrt.cos.sin.ptitle.radius2.origin.offsetp.p_error.tsfnz.logTue Jan 13 14:15:41 2004 C for AIX Compiler Version 5.0.2.0 --- .merforint_$STATIC_BSS_$STATIC_BSSmerforintmerforint._savef28.cenlonmer._restf28.adjust_lon4108 176774 168014 1074020600 1032 20 644 8 merinv.o` @Cw <H.textH, .data<H @.bss<<H.debug^ |Kb$ ?@a@=@,]0@$r$"*KI`?8`Xh8!`}N "Amerinv8<, MERCATOR?__default_char:t38=-5 :t8=f-13; :t9=f-13; :t11=f-11; :t12=f-11; :t13=f-11; :t14=f-11; :t17=f-11;merinvint:F-1 r_maj:p-13 r_min:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 merinv:F-1false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_minor:V-13 r_major:V-13] >SL_`apcc_Degikmo.SpqsuU@F BY< .$<  $( 048<@ DH L \  .,<DLPT\`d|  .filegmerinv.c.text.data< .bss<H:t15=-5:t10=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;:t7=*-4&2?LY:t16=*-5f:t39=ZkF .s.bfe6xtemp:-13.efeJ.merinv <.bf,e[x:p-13xy:p-13lon:p4lat:p4ts:-13flag:-4@.efeeTOCkk8k_$STATIC,k _$STATIC kQ<kH.bsFm1:V-13es:V-13e:V-13 (00B8Q@.es^kk  ukmerinv   merinvk.sqrt.cos.sin.ptitle.radius2.origin.offsetp.exp.phi2zTue Jan 13 14:15:42 2004 C for AIX Compiler Version 5.0.2.0 --- .merinvint_$STATIC_BSS_$STATIC_BSSmerinvintmerinvint._savef28.cenlonmer._restf28.adjust_lon3236 180134 172544 1074020601 1032 20 644 9 millfor.o` @CL` hT h.texthH  .datahhTh @.bss .debug |!b?_؟K` K` K`?_K`8`XH@8!P}N "A millforint|KU!`!(aK-`>z˿\$> *K`K`>r8`zxhˡX`}8!pN "Amillfor|hhMILLER CYLINDRICAL@ IBM ?!TD-?__default_char:t30=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t13=f-11;millforint:F-1center_long:p-13false_east:p-13false_north:p-13 millfor:F-1false_northing:V-13false_easting:V-13lon_center:V-13F&<8PDRPT`VXFZ6\ ^hHl>p:tLx8|4'4 $(,048@ L X h l ' (.filegmillfor.c.texth .datahT .bss :t11=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>:t12=*-5K:t31=ZkhF 'X.bf e1r:p-13hip|x.efe=.millfor 4.bfeLlon:p-13lat:p-13x:p4y:p4dlon:-13.efHeQTOChkxkk_$STATICk_$STATICpkRk .bs>R:V-13.es_lkl|  whkmillfor  millfortk.ptitle.radius.cenlon.offsetp.tan.logTue Jan 13 14:15:43 2004 C for AIX Compiler Version 5.0.2.0 --- .millforint_$STATIC_BSS_$STATIC_BSSmillforintmillforint._savef28.adjust_lon3170 183428 176774 1074020602 1032 20 644 9 millinv.o` @CJ] pT p.textpH  .datappTf @.bss .debug |!b?_؟K` K` K`?_K`8`XH@8!P}N "A millinvint@|a`(!?(?_$"*K`$>< $K`K`*8`<2Xh8!`}N "AmillinvppMILLER CYLINDRICAL?IBM !TD-@ __default_char:t30=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t13=f-11;millinvint:F-1center_long:p-13false_east:p-13false_north:p-13 millinv:F-1false_northing:V-13false_easting:V-13lon_center:V-13E&;8ODQPS`UEW5Y[pGt=x9|K73'3 $(,048@ L X h l '(,8.filegmillinv.c.textp .datapT .bss :t11=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>:t12=*-5K:t31=ZkpF 'X.bf e1r:p-13hip|x.efe=.millinv 3.bfeKx:p-13xy:p-13lon:p4lat:p4.efPeRTOCpkkk_$STATICk_$STATICxkRk .bs=R:V-13.es_tkl  wpkmillinv  millinv|k.ptitle.radius.cenlon.offsetp.exp.atanTue Jan 13 14:15:44 2004 C for AIX Compiler Version 5.0.2.0 --- .millinvint_$STATIC_BSS_$STATIC_BSSmillinvintmillinvint.adjust_lon3954 187506 180134 1074020603 1032 20 644 9 molwfor.o` @C\j  .textH4B/ .data` @.bss .debug& |b!؟?_8c4K` K` K`?_K`8`XH@8!P}N "A molwforint|KQa!p`!(aK)` K`;`<2| K`* (@PK`,2*;{$* A$@K8dK`8`Hp`2\ 02 B(@(KY`<8r K9`8`8!a}K"AHmolwfor,D8Mollweide-forwardIteration failed to convergeMOLLWEIDE@ !TD-?IBM =|׽?IBM ?!TD-IBM ?d)?f;__default_char:t34=-5 :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t14=f-11; :t15=f-11;molwforint:F-1center_long:p-13false_east:p-13false_north:p-13 molwfor:F-1delta_lon:-13 theta:-13delta_theta:-13false_northing:V-13false_easting:V-13lon_center:V-13 BL<VHXTZd\^L`b<b(d^BdfdbhN@ D$R(>,0:8)<: (,048D P \ l p ) 0 4 8< @ D H L T X\ltx|.filegmolwfor.c.text.data .bss :t12=-5:t8=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2?:t13=*-5LY:t35=ZkF B)f.bfe-r:p-13hwpx.efe9.molwfor h:.bfeKlon:p-13lat:p-13x:p4y:p4con:-13i:-4.efefTOCk(kk@_$STATICDk>_$STATICkRk .bsDR:V-13.es_ kl,  wkmolwfor8  molwfor$k.ptitle.radius.cenlon.offsetp.sin.cos.p_errorTue Jan 13 14:15:46 2004 C for AIX Compiler Version 5.0.2.0 --- .molwforint_$STATIC_BSS_$STATIC_BSSmolwforintmolwforint._savef24.adjust_lon._restf253612 191242 183428 1074020604 1032 20 644 9 molwinv.o` @C`e h .textHp( .datah  @.bss@@ .debug |!b؟?_K` K` K`?_K`8`XH@8!P}N "A molwinvint|KU!˿b(>=r_(`a#$  @ K`2K`r$>*K`@= @  <*@K`(<:,!$@ @ Kq`<8`x8!p}KL"Amolwinv@MOLLWEIDE?f;??d) !TD-@ !TD-@?__default_char:t30=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t13=f-11;molwinvint:F-1center_long:p-13false_east:p-13false_north:p-13 molwinv:F-1 theta:-13false_northing:V-13false_easting:V-13lon_center:V-13G&=8QDSPU`WY7G[]0_ha[cI?;M95'5 $(,048@ L X h l '    @ D H X \ ` h x| .filegmolwinv.c.text.datah .bss@ :t11=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>:t12=*-5K:t31=ZkF p'X.bf e,r:p-13hip|x.efe8.molwinv 05.bfeGx:p-13y:p-13lon:p4lat:p4arg:-13.efeWTOCkkk0_$STATICk _$STATICkR@k .bs?R:V-13.es_kl  wkmolwinv  molwinvk.ptitle.radius.cenlon.offsetp.asin.cos.sinTue Jan 13 14:15:47 2004 C for AIX Compiler Version 5.0.2.0 --- .molwinvint_$STATIC_BSS_$STATIC_BSSmolwinvintmolwinvint._savef28.adjust_lon._restf284917 196284 187506 1074020605 1032 20 644 10 obleqfor.o` @C 8 |P.textH 2 .data| @.bss<<P.debug  |!^H> ؞0~@8ؾ(8$K`> K`>HK`>@K`>08K`>(88K`>8cKq`>^Ka`>@88KM`8`H8!@}N "A obleqforint|Kă!P`H(a8H 8@K`8P 8XK`@ˡP˟aH2<K`X@\>2][Ky`8 *8`8hKa`b:KM`h!*A`rr?2K-`K`0r*$ K`=$K`(˟ A*|2B$ АK`z K`r K`r АK`8`?$*8!}Kh"Aobleqfor<8Theta: Parameter m: OBLATED EQUAL-AREAParameter n: ?__default_char:t34=-5 :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t13=f-11; :t14=f-11; :t15=f-11;obleqforint:F-1center_long:p-13center_lat:p-13 shape_m:p-13 shape_n:p-13 angle:p-13false_east:p-13false_north:p-13 obleqfor:F-1delta_lon:-13sin_delta_lon:-13cos_delta_lon:-13 sin_lat:-13 cos_lat:-13 sin_Az:-13 cos_Az:-13 x_prime:-13 y_prime:-13false_northing:V-13false_easting:V-13cos_lat_o:V-13sin_lat_o:V-13 theta:V-13 lat_o:V-13lon_center:V-13_O<iHkTm`opqqqsuw_,u@uhy{uI} 0}L}\laQMeKG-G  $(,0 48< D P\hx- 4Hptx        @HLx|.filegobleqfor.c.text.data| .bss<P:t7=-5:t6=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;:t8=*-5&3@MZg:t35=ZkF  -t.bfe4r:p-13X`hpx.efeMS G.bfeflon:p-13lat:p-13x:p4y:p4 X.PBHP@z:-13Az:-13^hk`temp:-13xM:-13N:-13.efevTOCkk8k_$STATICkK_$STATICk]<kP.bsQR:V-13 n:V-13(m:V-1308@H.esjkw  kobleqfor  obleqfork.ptitle.radius.cenlon.cenlat.genrpt.offsetp.tsincos.acos.atan2.sin.asin.cosTue Jan 13 14:15:48 2004 C for AIX Compiler Version 5.0.2.0 --- .obleqforint.obleqfor_$STATIC_BSS_$STATIC_BSSobleqforintobleqforint._savef26._restf264987 201396 191242 1074020606 1032 20 644 10 obleqinv.o` @C ` |P.textH42 .data|( @.bss\\P.debug |!^H> ؞0~@8ؾ(8$K`> K`>HK`>@K`>08K`>(88K`>8cKq`>^Ka`>@88KM`8`H8!@}N "A obleqinvint|Kăb!`((˿ }_(Ã2a` $K`_0{r[*$"$K`r ؐK`2?$K}`r Km`* ؐK]`** $KI`r K9`$>K%`!2K`*@ K`88@8H!(K`8P 8XK`!Xr!@_aP2"K`(>!XA@raPH!2B2HC8Ku`?*Ki`=8`8!}KD"Aobleqinv\ XTheta: Parameter m: OBLATED EQUAL-AREAParameter n: ?__default_char:t36=-5 :t9=f-11; :t10=f-13; :t11=f-11; :t12=f-11; :t13=f-11; :t14=f-11; :t15=f-11; :t16=f-11;obleqinvint:F-1center_long:p-13center_lat:p-13 shape_m:p-13 shape_n:p-13 angle:p-13false_east:p-13false_north:p-13 obleqinv:F-1 sin_z:-13 cos_z:-13 x_prime:-13 y_prime:-13diff_angle:-13sin_diff_angle:-13cos_diff_angle:-13false_northing:V-13false_easting:V-13cos_lat_o:V-13sin_lat_o:V-13 theta:V-13 lat_o:V-13lon_center:V-13^N<hHjTl`npppprtv^ HDxdztzx||zz~xt(tPx`PLdJF.F  $(,0 48< D P\hx.(0LTX|       0`.filegobleqinv.c.text.data| .bss\P:t7=-5:t6=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;:t8=*-5&3@MZgt:t37=ZkF 4..bfe6r:p-13X`hpx.efeOS F.bfefx:p-13y:p-13lon:p4lat:p4z:-13X#PAz:-13temp:-13/=M:-13N:-13K\Hq@.efewTOCkkXk_$STATIC kK_$STATICk]\kP.bsPR:V-13 n:V-13(m:V-1308@H.esjkw  kobleqinv  obleqinvk.ptitle.radius.cenlon.cenlat.genrpt.offsetp.tsincos.asin.cos.sin.sqrt.atan2Tue Jan 13 14:15:49 2004 C for AIX Compiler Version 5.0.2.0 --- .obleqinvint.obleqinv_$STATIC_BSS_$STATIC_BSSobleqinvintobleqinvint._savef26.adjust_lon._restf269150 210670 196284 1074020608 1032 20 644 9 omerfor.o` @C< .textH|F .data 8 @.bss .debugs  |K$ (H`P@X!P `ÿ0>^~ <x`X>hK``>p8H8P K`h=(PW2Ki`>H_KU`h(!$ *K9`x`r^>@22$8@۾0۾(H>p@~PK` K`ʾ@U2H`r?$ڞ04 :@@^xLB @$K`* @K}`H Kq`( @K]`2 ( 8}pKA`>^K1`>8LK!`>X^`K`(,A<]$ T(`K`0!$K`K`;rK`@_ 8$?(K`>K`>xK`x@?(*@8 8KM`8 cK9`x?LA@>@8$>0!zK`!$K`r  H88}p@ؐK` ȐK``>p@ȐK`^@ Ku`^@ Ka`Ⱦ(E$ȟ0(ra(>*1x1z$($$"0(r@ ?8Z*?@@ HZ*˾@=(* rK`r $K`$@<(K`@ rK`!$K`0K`?rK` 8<Ki`8;KY`8,:KI`8 9K9`(LB@,8 8}PK`8`ʁ8!}H(L@A?(*LB@,8$8}dK`8`ʁ8!}Hx*L@@,808}xK`8`ʁ8!}H8 8KU`8 cKA`x?LB A 8>@$^0?"PK `!$K`  8`8!}K"A4 omerforint|K@ !`a`K` ?(Km`@?rKY`=p˝@А}8`ȐȜ(* LA@K `(]@K`$=]]r@?$*(r2Z8($K`P}8` @42 \|*LB@Htrz $K]`;r@$@$2$*HAP$ \|*L@@ 8dK`8`H`*"(!$K` (]X=r}ȝȽ`8`!$Cz@:_](]8!}Kt"A<omerfor hTomer-foromer-initomer-initomer-initomer-initInput data errorInput data errorInput data errorInput data errorAzimuth of Central Line: Latitude of First Point: Point projects into infinityLongitude of First Point: Latitude of Second Point: Longitude of Second Point: Scale Factor at C. Meridian: OBLIQUE MERCATOR (HOTINE)?@=|׽?IBM @Lc˰!TD- !TD-!TD-@ !TD-@!TD->z򚼯H__default_char:t46=-5 :t10=f-11; :t11=f-13; :t12=f-13; :t13=f-11; :t14=f-11; :t15=f-11; :t16=f-11; :t17=f-13; :t18=f-11; :t19=f-11; :t20=f-11; :t21=f-13;omerforint:F-1 r_maj:p-13 r_min:p-13scale_fact:p-13 azimuth:p-13lon_orig:p-13lat_orig:p-13false_east:p-13false_north:p-13 lon1:p-13 lat1:p-13 lon2:p-13 lat2:p-13 sinphi:-13 omerfor:F-1 sin_phi:-13 cosaz:V-13 sinaz:V-13 cosgam:V-13 singam:V-13 cos_p20:V-13 sin_p20:V-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_origin:V-13scale_factor:V-13 r_minor:V-13 r_major:V-13"``|,pf(4@dp| ,@Tdx,HXdt<0X|`H f0hbd#^G^#  <@DHL PTX\ ` p   (4DLT`p|%!%*+,-/1 21243L7T3X7\3d7l8x9;<>?@A$G4H<MLN`OpPQPQRQRSXWTUVXUTUVTXYZ[]\]D^P_l`p_t`d`defgikll op4rDsHXs\vxxyy|}~ Gh  $ ,0 48 <@ H P T \ hpx$$!" $8%@&D$H&P'T)X$\&h'|*.filegomerfor.c.textF.data .bss :t8=-5:t7=-11:t3=-4:t2=-13:t1=-1:t4=f-1;:t5=*-13:t6=f-1;:t9=*-5'4AN[hu:t47=ZkF TG!.bf eI"4GS_k mode:p-4(temp:-13con:-13com:-13ts:-13ts1:-13ts2:-13h:-13l:-13j:-13p:-13dlon:-13f:-13g:-13gama:-13w.ef4e.omerforT \^!T.bfhelon:p-13lat:p-13x:p5y:p5t:-13con:-13q:-13us:-13vl:-13ul:-13vs:-13s:-13dlon:-13ts1:-13.efe TOCkk hkX_$STATICk_$STATICkR k.bshu:V-13 el:V-13(d:V-130al:V-138bl:V-13@HPX `es:V-13he:V-13px1CWf.es_kl  wkomerfor  omerfork.sqrt.tsincos.pow.tsfnz.ptitle.radius2.genrpt.offsetp.sin.asinz.tan.cenlon.cenlat.atan.p_error.cos.logTue Jan 13 14:15:50 2004 C for AIX Compiler Version 5.0.2.0 --- .omerforint_$STATIC_BSS_$STATIC_BSSomerforintomerforint._savef20.adjust_lon._restf20._savef22._restf229102 219896 201396 1074020609 1032 20 644 9 omerinv.o` @C ``.text`H D .data``  @.bss D D.debug~ |K$ (H`P@X!P `ÿ0>^~ <h`>pK``>x8P8X K`p=(XW2Ki`>P_KU`p(!$ *K9``r^>H22$@@۾8۾0۾(H>x@~XK` >8 K`ʾHU2P`r?$ڞ04 :@@^LB @$K`* @Kq`H Ke`( @KQ`2 ( 8}DK5`>^K%`>8 K`>`^hK`(,A<]$ T(`K`0!$K`K`;rK`H_ 8$?(K`>K`>Ky`@?(*@8 8KA`8 cK-`?LA@>H@$>0!zK`!$K`r  H8 8}0K`8`H ؐK``>x@ؐK` ȐK``>x@ȐK}`^H Ki`^H KU`Ⱦ(E$ȟ0(ra(>*1x1z$($$"0(r@ ?8Z*?@@ HZ*˾H=(* rK`r $K`$@<(K`H rK`!$K`0K`?rKu` 8<K]`8;KM`8:K=`89K-`(LB@,8}DcK `8`ʁ8!}H(L@A?(*LB@,88}XK`8`ʁ8!}H*L@@,8$8}lKu`8`ʁ8!}H8 8KI`8 cK5`?LB A @>H$^0?"PK`!$K`  8`8!}K"A@ omerinvint|K!`8`h((ȟHP˟@2`ȟ @88a)*2 $K5`ý]$*A(#$b22K`@_{2=B}?(ȟȽP($:@*LLB@0؞@ ؼ8`8!}HH=8(*$ $Km`@9$K]`@?x8@KI`<a@H@,@P?!$K`2@#K`$>(K`>8`8!}K"Aomerinvt D ```omer-initomer-initomer-initomer-initInput data errorInput data errorInput data errorInput data errorAzimuth of Central Line: Longitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Scale Factor at C. Meridian: OBLIQUE MERCATOR (HOTINE)?@=|׽?IBM @Lc˰!TD- !TD-!TD-@ !TD-@!TD-?!TD-__default_char:t50=-5 :t10=f-11; :t11=f-13; :t13=f-13; :t14=f-13; :t15=f-11; :t16=f-11; :t17=f-11; :t18=f-11; :t19=f-13; :t20=f-11; :t21=f-11; :t22=f-11; :t23=f-13;omerinvint:F-1 r_maj:p-13 r_min:p-13scale_fact:p-13 azimuth:p-13lon_orig:p-13lat_orig:p-13false_east:p-13false_north:p-13 lon1:p-13 lat1:p-13 lon2:p-13 lat2:p-13 sinphi:-13 omerinv:F-1 theta:-13 cosaz:V-13 sinaz:V-13 cosgam:V-13 singam:V-13 cos_p20:V-13 sin_p20:V-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_origin:V-13scale_factor:V-13 r_minor:V-13 r_major:V-13"a`| 8|g$4@Lp|8L`p(8TdpH<dna8`dihclept%x_H_%  <@DHL PTX\ ` p   4@PX`l|%!%*+,-/121$2@3X7`3d7h3p7x89;<>?@A0G@HHMXNlO|PQPQRQRSXWTUVXUTUVTXYZ []\ ]P^\_x`|_`d`defgikllop@rPsTdshvxyy|}~(,Hlx|           $(,04 8 <@ HL X\`dh x|$( .filegomerinv.c.text`D.data` .bss D:t8=-5:t7=-11:t3=-4:t2=-13:t1=-1:t4=f-1;:t5=*-13:t6=f-1;:t9=*-5':t12=*-44AN[hu:t51=Zk`F `H#.bf eH/AT`lx mode:p-4(temp:-13con:-13com:-13h:-13l:-13ts1:-13ts2:-13j:-13p:-13dlon:-13f:-13g:-13gama:-13.ef@e.omerinv` &_#`.bflex:p-13y:p-13lon:p5lat:p5t:-13con:-13vs:-13us:-13q:-13s:-13ts1:-13vl:-13ul:-13flag:-4@.ef<eTOC`khk kX_$STATICk^_$STATIClkR Dk.bsiu:V-13 el:V-13(d:V-130ts:V-138al:V-13@bl:V-13HPX`hes:V-13pe:V-13x*<Nbq.es_dklt  w`komerinv  omerinvpk.sqrt.tsincos.pow.tsfnz.ptitle.radius2.genrpt.offsetp.sin.asinz.tan.cenlon.cenlat.atan.p_error.exp.phi2z.cos.atan2Tue Jan 13 14:15:51 2004 C for AIX Compiler Version 5.0.2.0 --- .omerinvint_$STATIC_BSS_$STATIC_BSSomerinvintomerinvint._savef20.adjust_lon._restf20._savef24._restf254213 224234 210670 1074020610 1032 20 644 9 orthfor.o` @Ct  t8 .text Ht. .data  th2 @.bss8.debug |?0_( ! ؿ؟8cK`b8c(K`?0K`?(K`? K`?_K`8`H8!@}N "A orthforint|KE!`(!(aK`8@8H K` K`_@b2ȁH _c2b0ȣB:c8d (A LD3@XK`=z8`>?aHA@!_<r#z8!}KHKE`ˁ`px}8!8`N 8!}K"ADorthfor4L@  orth-forPoint can not be projectedORTHOGRAPHICIBM =|׽__default_char:t36=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t15=f-11; :t16=f-11;orthforint:F-1 r_maj:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 orthfor:F-1 sinphi:-13 cosphi:-13 coslon:-13 cos_p14:V-13 sin_p14:V-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_major:V-13R4\>ED^P`\bhdxfhRj\l.E6?lnprp T$G(C,X0A48=@+D= $(,< L X dp+$(,048@DHLPht x| .filegorthfor.c.text .data t .bss8:t13=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KX:t14=*-5er:t37=Zk F +.bfe0X`hpx.efe@.orthfor d=.bfeSlon:p-13lat:p-13x:p4y:p4H@dlon:-13ksp:-13g:-13.efedTOC k0kk_$STATICLk5_$STATIC(kRk8.bsG*9Nd v(0.es_$kl4  w korthfor@  orthfor,k.tsincos.ptitle.radius.origin.offsetp.cos.sin.p_errorTue Jan 13 14:15:53 2004 C for AIX Compiler Version 5.0.2.0 --- .orthforint_$STATIC_BSS_$STATIC_BSSorthforintorthforint.cenlonmer._savef28.adjust_lon._restf284749 229108 219896 1074020611 1032 20 644 9 orthinv.o` @C Bz x8.textHLD .dataxXP @.bss8.debug{ |?0_( ! ؿ؟8cK`b8c K`?0K`?(K`? K`?_K`8`H8!@}N "A orthinvint|KE!``(?(a^?K `0< *8d @0K`ˡ}8!8`N =$K`8@8HK`(`˜H?A@ȟ8` LB@8!}}KP22$":K=`ȟ "@P|(=a@*?_(LL@@l@< K`:*K`>8`8!}H P@K`:(K`>8`HhK`Y|LB ALA@8!H?r]А rKI`>*K=`>8`8!}K"A4orthinv$<0lorth-invInput data errorORTHOGRAPHIC>z򚼯H=|׽!TD-__default_char:t38=-5 :t6=f-13; :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t13=f-11; :t16=f-11; :t17=f-11;orthinvint:F-1 r_maj:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 orthinv:F-1 cos_p14:V-13 sin_p14:V-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_major:V-13R4\>ED^P`\bhdxfhRj? E lPn`\pnr tPr\ttvrtxTGCX A$(=0,4= $(,< L X dp,  (%DH%L X h l t x  %%   04%DHlt !"$%.filegorthinv.c.text.datax .bss8:t14=-5:t8=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KXe:t15=*-5r:t39=ZkF ,.bfe0X`hpx.efe@.orthinv T=.bfeRx:p-13y:p-13lon:p4lat:p4rh:-13z:-13sinz:-13Hcosz:-13@con:-13.efevTOCk klk_$STATIC<k-_$STATICkRk8.bsG4J \(n0.es_kl$  wkorthinv0  orthinvk.tsincos.ptitle.radius.origin.offsetp.sqrt.p_error.asinz.atan2.sinTue Jan 13 14:15:54 2004 C for AIX Compiler Version 5.0.2.0 --- .orthinvint_$STATIC_BSS_$STATIC_BSSorthinvintorthinvint.cenlonmer._savef24._restf28.adjust_lon._restf254947 234180 224234 1074020613 1032 20 644 9 polyfor.o` @C Hh.textH(r: .dataH @.bssh.debug` $b|8<_X?`P ؟Hؿ!K`? K`?@?K`?8?Ky`?0?Ke`?(ȿH_8?@ء80K=`?b K)`?`_XK`?PK `?HK`?_K`8`Xh8!`}N "A 4 polyforint|K!``P!(aK`8@8H _|ȟ`ȿLB@,(<$z>8`8!}HK`?@_80ȟ(8K`? AHa@K`H˟``_ <K`r?( $*K`(!H2$*:8`8!}KX"AXpolyforTPOLYCONIC?IBM >z򚼯H__default_char:t46=-5 :t6=f-13; :t7=f-13; :t8=f-13; :t9=f-13; :t10=f-13; :t11=f-13; :t13=f-11; :t14=f-11; :t15=f-11; :t16=f-11; :t17=f-13; :t18=f-11; :t21=f-11;polyforint:F-1 r_maj:p-13 r_min:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 polyfor:F-1 sinphi:-13 cosphi:-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_minor:V-13 r_major:V-13 ^ELh`jtlnprKtvxz|X~f^Er Dl`MGId#C2C# (,04 8<@D L \ p 2d     ( 0 4 8 LP T` l.filegpolyfor.c.text.dataH .bssh:t19=-5:t12=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>JWdq~:t20=*-5:t47=ZkF Tr2!.bfe4x temp:-13.ef4eL.polyforT xC!3T.bfde]lon:p-13lat:p-13x:p4y:p4AHN@con:-13ml:-13ms:-13.efenTOCkkk_$STATICk _$STATICkRkh.bsM[pml0:V-13es:V-13e:V-13 e3:V-13(e2:V-130e1:V-138e0:V-13@HPX`.es_kl  wkpolyfor  polyfork.sqrt.e0fn.e1fn.e2fn.e3fn.mlfn.ptitle.radius2.origin.offsetp.tsincos.msfnz.sin.cosTue Jan 13 14:15:55 2004 C for AIX Compiler Version 5.0.2.0 --- .polyforint_$STATIC_BSS_$STATIC_BSSpolyforintpolyforint.cenlonmer._savef24.adjust_lon._restf244683 238988 229108 1074020614 1032 20 644 9 polyinv.o` @CN L`.textH8 .dataL @.bss`.debug, $b|?X# <!_PH؟@?ؿK`?8?K`?0?K`?(?K`? ȿ@_0?8ء8(K]`?b KI`?X_PK9`?HK-`?@K!`?_K`8`X8!P}N "A  polyinvint`|b`(ȟX(!pa8`% $ $?_80ȟ(ȿ CH*H`2 LB@,8*]8`8!}N ء8@TPHK `K``,8`J?X@D2 $K`=K`H?$ *K`>8`8!}N "ADpolyinv0POLYCONIC?IBM >z򚼯H__default_char:t48=-5 :t7=f-13; :t8=f-13; :t9=f-13; :t10=f-13; :t11=f-13; :t12=f-13; :t13=f-13; :t14=f-13; :t16=f-11; :t17=f-11; :t18=f-11; :t19=f-11; :t22=f-11;polyinvint:F-1 r_maj:p-13 r_min:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 polyinv:F-1false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_minor:V-13 r_major:V-13 ]E@gTihk|moKqsuwyB]JE{}$4H_MGIc$C3C$  (,048 <@ P d x 3@HPX\ptx |       X\.filegpolyinv.c.text.dataL .bss`:t20=-5:t15=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KXer:t21=*-5:t49=ZkF 03".bfe4hpx!temp:-13.efeK.polyinv0 dC"40.bf@e]x:p-13y:p-13lon:p4lat:p4al:-13b:-13c:-13`iflg:-4.eftepTOCkkk_$STATICk _$STATICkRk`.bsMBWml0:V-13es:V-13e3:V-13 e2:V-13(e1:V-130e0:V-138m@HPX.es_kl  wkpolyinv  polyinvk.e0fn.e1fn.e2fn.e3fn.mlfn.ptitle.radius2.origin.offsetp.phi4z.asinz.sinTue Jan 13 14:15:56 2004 C for AIX Compiler Version 5.0.2.0 --- .polyinvint_$STATIC_BSS_$STATIC_BSSpolyinvintpolyinvint.cenlonmer.__itrunc.adjust_lon4746 243856 234180 1074020615 1032 20 644 7 psfor.o` @Cn `h.textH ; .data` @.bssh.debug8 |K$(`0 !p?`_X <ؿ?PK` ?HK`^`Ⱦ۟8ۿ0*?@_ 8@8H@؟(H(@P r K=`?HAHa@K)`?@?HaHK `?b K`?`_XK`?8K` @ؐK`8`8!}K"A Tpsforint|K!`a8!((K]`( KE``?H@K1`_ b`ȟc(@_A22$H*2$ K`z@P K`z8`x8!p}K"ApsfortPOLAR STEREOGRAPHIC?IBM !TD-=|׽__default_char:t38=-5 :t6=f-13; :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-13; :t13=f-13; :t14=f-11; :t17=f-11; psforint:F-1 r_maj:p-13 r_min:p-13 c_lon:p-13 c_lat:p-13false_east:p-13false_north:p-13 sinphi:-13 cosphi:-13 psfor:F-1 sinphi:-13false_easting:V-13false_northing:V-13center_lat:V-13center_lon:V-13 r_minor:V-13 r_major:V-13gD]Li\kmoqJsu$w4yP{x}]qD$Dl_FLHcB1B 48@DHL\dh px|   ,< @!1  4 < @ T X \ .filegpsfor.c.text.data` .bssh:t15=-5:t8=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KXer:t16=*-5:t39=ZkF t 1.bf e:temp:-13con1:-13H@.efTeZ.psfort Bt.bfeklon:p-13lat:p-13x:p4y:p4con1:-13con2:-13rh:-13ts:-13.efpewTOCkkk _$STATICk_$STATICkPkh.bsL'<tcs:V-13mcs:V-13ind:V-13 fac:V-13(R0d8e4:V-13@e:V-13Hes:V-13PvX`.es]kpsforint  psforintkpsfor  psforkj.sqrt.e4fn.tsincos.msfnz.tsfnz.ptitle.radius2.cenlon.offsetpt~.sin.cosTue Jan 13 14:15:57 2004 C for AIX Compiler Version 5.0.2.0 --- .psforint_$STATIC_BSS_$STATIC_BSS._savef26._restf27._savef28.adjust_lon._restf284854 248832 238988 1074020616 1032 20 644 7 psinv.o` @C ``.textH4H .data` @.bss`.debug` |K$(`0 !p?X <_PؿK` ?HK`^`Ⱦ۟8ۿ0*?@_ 8@8H@؟(H(@P r KA`?HAHa@K-`?@?HaHK`?b K`?X_PK`?8K` @ؐK`8`8!}K"A Ppsinvint|K!8?("(`(@ra2^?KA`b? X_Ãȟ?H@8@A2]B$H*]B$K`_(8 a@,@L@$8`8!}K@PK`:zK`>8`8!}Kh"A,psinvpPOLAR STEREOGRAPHIC?IBM !TD-=|׽__default_char:t44=-5 :t7=f-13; :t9=f-13; :t10=f-13; :t12=f-11; :t13=f-11; :t14=f-11; :t15=f-13; :t16=f-13; :t17=f-11; :t20=f-11; psinvint:F-1 r_maj:p-13 r_min:p-13 c_lon:p-13 c_lat:p-13false_east:p-13false_north:p-13 sinphi:-13 cosphi:-13 psinv:F-1false_easting:V-13false_northing:V-13center_lat:V-13center_lon:V-13 r_minor:V-13 r_major:V-13iG_HkXmoqsMuw y0{L}ti_kG`htaIOKe"E5E" 4<@DHX`d ltx |   (8 <!5   ( ,0 4 @ D LPdp.filegpsinv.c.text.data` .bss`:t18=-5:t11=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;:t8=*-4&2?LYfs:t19=*-5:t45=ZkF p45 .bf e:temp:-13con1:-13H@es:-13.efPeZ.psinvp H E p.bfejx:p-13y:p-13lon:p4lat:p4rh:-13ts:-13temp:-13flag:-4@.efe~TOCkkk _$STATICk_$STATICkPk`.bsO(=tcs:V-13mcs:V-13ind:V-13 fac:V-13(S0e8e4:V-13@e:V-13HwPX.es]kpsinvint  psinvintkpsinv  psinvkj.sqrt.e4fn.tsincos.msfnz.tsfnz.ptitle.radius2.cenlon.offsetpt.phi2z~.atan2Tue Jan 13 14:15:59 2004 C for AIX Compiler Version 5.0.2.0 --- .psinvint_$STATIC_BSS_$STATIC_BSS._savef26._restf27._restf26.adjust_lon4795 253750 243856 1074020617 1032 20 644 8 robfor.o` @C f ,p.textH W .data, @.bssp.debug b|# 0C!@؟?c`#_ȣPpC#C? cȃؿ_(ȣ00؟Hȃ( @2#c?8_@8@hH#PP?X`_ ؿ(؟0CXc`ؿ8@HɃhȃpȣx#P?XCc_`hٟp؟xؿ#?_?b K}` Kq` Ke`?_KU`8`XH@8!P}N "A robforint|K !<C0`!(@aK`$]#$  *K`l`DT`8|}C#0ȣ8a(@F *B@((f*0(8*0P?]P(8`@@J$ zcr$LB &r>Hz>@422X:xˡhp}8!H02 2X:xˡhp}8!N "A|robforROBINSONvȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!RD@T:+:$(, 04 <@DHLPTX\` d hlptx| " $&0$0(* "0,0&(*0456789+048DHP\h       < @P.filegrobfor.c.text .data, .bssp:t14=-5:t10=-11:t4=-4:t2=-13:t1=-1:t3=f-1;:t5=*-13:t6=f-1;-@LYf:t15=*-5s:t37=ZkF +.bfe5r:p-13hpxi:-4.efem.robfor  B:.bfe~lon:p-13lat:p-13x:p5y:p5dlon:-13p2:-13ip1:-4.efpeTOCkkk_$STATICk _$STATICkQkp.bsDxlr:V7 pr:V8R:V-13.es^kk  ukrobfor  robfork.ptitle.radius.cenlon.offsetpTue Jan 13 14:16:00 2004 C for AIX Compiler Version 5.0.2.0 --- .robforint_$STATIC_BSS_$STATIC_BSSrobforintrobforint._savef28.adjust_lon.__itrunc6097 259970 248832 1074020619 1032 20 644 8 robinv.o` @Ct p.textH  .data T @.bss$$p.debug l |$ 0D!@؟?d`$_ȤPpD$D? dȄؿ_(dȤ00؟HȄ( @2$?8_@8@`hH$PDXP?X_ ؿ(؟0ؿ8d`dh@HȄpȤx$P?Xb D_`hp؟xؿ$?_D8c8?_Ky` Km` Ka`?_KQ`8`XH@8!P}N "A robinvint|Kd!<C0<`C0(?(˾˟^*~^`aaH@"$P!$2$:*K`, >;`^~@8`Td88|"8,/| ȄHA8c/(&|Ȅ0(8*0*($($*2|2L+L3@A@ 8dDK`8!a|}8`K8!d}Kl`PDž;_!@!*;?;~:*LB ::@ @H P[2@$:*K9`l`Tc8L||y (|Z|H*;{,Kc *(2 2VzcrV\]VB(t@c$C$R*A@$Kp$`:*K`l`Tc8T|u|#(|W|aPc*;{,K *(2 2VzrV:W]VB(u@c$C$R*A|@$`:*Kp|c8_$ȃ( (ȣ0e|d*2-!z$'*=K`=8`Kb 8 8cK`8`K"A robinv($robinv-convrobinv-convToo many iterations in inverseROBINSONToo many iterations in inversevȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rh?FRـ__default_char:t38=-5:t7=ar0;0;20;-13:t8=ar0;0;20;-13 :t9=f-13; :t11=f-11; :t12=f-11; :t13=f-11; :t16=f-11; :t17=f-11;robinvint:F-1center_long:p-13false_east:p-13false_north:p-13 robinv:F-1false_northing:V-13false_easting:V-13lon_center:V-13DV>J`bdfh VDtjJ$l@nTpjhjHrbJllXFLH\B,B$(, 04 <@DHLPTX\` d hlptx| " $&*0$0( "0*,0&(0<4@0x4|0456789,  (08<@DXdhp| =,M<>@M\!"#./#&(-054-85<-D/H5L!d"p#./#*-5-5-/5!"GBG(B,G0B4GHJXL`1t2.filegrobinv.c.text.data .bss$p:t14=-5:t10=-11:t4=-4:t2=-13:t1=-1:t3=f-1;:t5=*-13:t6=f-1;-@LYf:t15=*-5s:t39=ZkF  ,.bfe8r:p-13hpxi:-4.efep.robinv  "B.bfex:p-13y:p-13 lon:p5(lat:p5,yy:-13p2:-13u:-13v:-13t:-13c:-13phid:-13y1:-13ip1:-4i:-4.ef|eTOCkk(k_$STATICkc_$STATICkQ$kp.bsLxlr:V7 pr:V8R:V-13 .es^kk  ukrobinv  robinvk.ptitle.radius.cenlon.offsetp.p_errorTue Jan 13 14:16:01 2004 C for AIX Compiler Version 5.0.2.0 --- .robinvint_$STATIC_BSS_$STATIC_BSSrobinvintrobinvint._savef18.__itrunc._restf25._restf18.adjust_lon3031 263124 253750 1074020620 1032 20 644 8 sinfor.o` @CZ H4 H.textHHp  .dataHH4 @.bss|| .debug |!b?_؟K` K` K`?_K`8`XH@8!P}N "A sinforint|KU!`!(aK-`r K`=z8`>xhˡX`}8!pN "AsinforX|pdHHSINUSOIDAL__default_char:t30=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t13=f-11;sinforint:F-1center_long:p-13false_east:p-13false_north:p-13 sinfor:F-1delta_lon:-13false_northing:V-13false_easting:V-13lon_center:V-13B&88LDNPP`RTBVXHDL:P6THX\4d'h4 $(,048@ L X h l ' .filegsinfor.c.textH .dataH4.bss| :t11=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>:t12=*-5K:t31=ZkHF p'X.bf e.r:p-13hhp{x.efe:.sinfor 4.bfeHlon:p-13lat:p-13x:p4y:p4.ef,eLTOCHk_$STATICpk _$STATICPkQ|k .bs:R:V-13.es^LkkX  uHksinford  sinforTk.ptitle.radius.cenlon.offsetp.cosTue Jan 13 14:16:02 2004 C for AIX Compiler Version 5.0.2.0 --- .sinforint_$STATIC_BSS_$STATIC_BSSsinforintsinforint._savef28.adjust_lon3517 266764 259970 1074020621 1032 20 644 8 sininv.o` @CVa x .textHl ' .datax  @.bssPP .debug |b!?_؟8cK` K` K`?_K`8`XH@8!P}N "A sininvint|KQbb(E(ȄD#$!`8 ˥` (@0K`8`hXˡHP}8!`N *@LK`r$=*K`?8`hXˡHP}8!`N ۿ8`hXˡHP}8!`N "A sininvP8Input data errorSINUSOIDALsinusoidal-inverse?!TD-!TD-=|׽__default_char:t32=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t13=f-11; :t14=f-11;sininvint:F-1center_long:p-13false_east:p-13false_north:p-13 sininv:F-1false_northing:V-13false_easting:V-13lon_center:V-13 =G<QHSTUdWYG7= [H]\_I;?M95(5 ,048D P \ l p (  8 < H \ lp.filegsininv.c.text .datax .bssP :t11=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>:t12=*-5KX:t33=ZkF l(e.bfe.r:p-13hupx.efe:.sininv (5.bfeHx:p-13xy:p-13lon:p4lat:p4temp:-13.efeXTOCkk8k_$STATICk3_$STATICkQPk .bs?R:V-13.es^kk  uksininv  sininvk.ptitle.radius.cenlon.offsetp.p_error.cosTue Jan 13 14:16:03 2004 C for AIX Compiler Version 5.0.2.0 --- .sininvint_$STATIC_BSS_$STATIC_BSSsininvintsininvint._savef28.adjust_lon10328 277214 263124 1074020623 1032 20 644 8 somfor.o` @C  .text H$: .data  h @.bss .debugV |K!p?ra`}`` ``K`r ˸80rK`Hr?`PXX{ $Km`r>$KY`(^@[$|2>K1``x$@۝ *K ` <r<> r˝K`r^*>$K`!:> rK`r 8!}K"Ax som_series|}&KaA$!aLB<C0.< `aؿ? _xpA8H$؟:lt8p*H,o|!xA*@40:8B|(:Hz@C >8_H0`:hB|X:Hz@CP>8_pb8{LKA`?_K1`@$88cK`8 cK `˺x?r8dK` r8K`?_K`>8 K` K``?(@ @ ( K` `r]2p(?0؁@(a8ah8`8X8P 28Hr>8(DH$@!$c$_P9@X0zؿHK `ˡXˁhaPAH; : 8ah!@8`8X8P8H9@K;9*,Q`:8ahX:h:P`:H@:A!@8`8X8PK; 8ah!@8`8X8P8H9@KM;9*,H`8ahXhP`H@A!@8`8X8PK8ah@8`8X8P8H9@K`*!X!*AhB*aPc*H($*8`! $B($xc8$@$?p_`h8!|} AKX"C somforint|K1AX!~(a`˾@@ÞpHÞpLB @~A~@~؀b _  (;@(08ʣʞHA;`;`ؐH~;`;`ؐKY` ؐLA@^@^K1`^r6< K` z@1*K`r K`r x$K`;{,2*@z`x(ApK`=$K`^!K`K` xK` xK`Xp:_Hbwz_Pwzr2$$Km`˿@r۟2=zKQ`@?x/x*K9`pr> /r{K`?z>\`/r˟hB$(2K`;r_}8`>:c$!*9r< **=H8!@AX}K"Asomfor    som-forwardLandsat Ratio: Satellite Number: Path Number: SPACE OBLIQUE MERCATORInclination of Orbit: 50 iterations without conv Longitude of Ascending Orbit: ?F?@@@DYIBM ?=?[Ow@` =p?򽴆&?FR5?)O?l0a\j?SC~@`)?līIBM @Lc˰>. &֕@AABABpApB4ـ>z򚼯H?!z!z?!TD-@jz)U8^@|3!Ҿz򚼯H@ !TD-@!TD-?!TD-?__default_char:t44=-5:t8=ar0;0;79;-5 :t10=f-11; :t12=f-11; :t13=f-11; :t14=f-11; :t15=f-11; :t16=f-11; :t17=f-11; :t20=f-1;som_series:F-11somforint:F-1 r_major:p-13 r_minor:p-13 satnum:p-4 alf_in:p-13false_east:p-13false_north:p-13 time:p-13 start1:p-4sat_ratio:p-13 one_es:-13 suma2:-13 suma4:-13 sumc1:-13 sumc3:-13 somfor:F-1delta_lon:-13 xlamt:-13 xlamp:-13 tanlg:-13 tlamp:-13delta_lat:-13 radlt:-13 radln:-13 errorbuf:8false_northing:V-13false_easting:V-13 start:V-13lon_center:V-13gsat_ratio:G-13DNd4Pt™™ęę,ƙ<ęHxșʙZ ̙0ΙnxЙҙ$ԙ8̙@֙Ph  lؙ       5  Y " 4<DLPT    $ ( , 0 4 < @ H d5           $ (48T`dhptx|$)*+-.01$243D5\6t7>898@>7@:;9A8A>A>A?:>?:=>A=;ABCDE FG J$I(J@GLKTJXL`MhNpOxG|IJQTSTQUTVWXYQST\ ]\],^4_<`DaLdPcTbXc\f`bdghhldpetcxf|gdegfiY  $ < L X'h 08 <!@DHL"PT`!dh#l/01')'(*(+*+-56,:8;L<\>d=h>?>?@?@A@B@B @ A B H $B (I ,B 0J 4B @C HH LG PI TH XI \K.filegsomfor.c.text :.data  .bss :t9=-11:t7=-5:t3=-4:t2=-13:t1=-1:t4=f-1;:t5=*-13:t6=f-1;,:t11=*-59FS`mz:t18=k-5:t19=*18:t45=Zk F k5 .bf efb:p5fa2:p5fa4:p5fc1:p5fc3:p5dlam:p5sd:-13sdsq:-13h:-13sq:-13fc:-13.efxe!R 4zY .bfe@path:p-4 lon:p-13(08@Hflag:p-4L,Pi:-4alf:-13e2c:-13e2s:-13=dlam:-13@fb:-13hfa2:-13`fa4:-13Xfc1:-13Pfc3:-13HJVbnsumb:-13.efe.somfor  z.bfelon:p-13Xlat:p-13`y:p5hx:p5ln:-4l:-4rlm:-13tabs:-13tlam:-13xlam:-13c:-13ab2:-13ab1:-13sav:-13d:-13sdsq:-13sd:-13xtan:-13tphi:-13dp:-13rlm2:-13scl:-13conv:-13temp:-13@.ef peTOC k k k_$STATIC k_$STATIC k] k.bs's:V-13es:V-13 ca:V-13(sa:V-130p21:V-138xj:V-13@w:V-13Ht:V-13Pq:V-13Xc3:V-13`c1:V-13ha4:V-13pa2:V-13xb:V-13a:V-134.esj kw   k F ksomfor   somfor k.sin.cos.sqrt.ptitle.radius2.genrpt.offsetp.tan.atan.sprintf.p_error.asin.logTue Jan 13 14:16:04 2004 C for AIX Compiler Version 5.0.2.0 --- .som_series.somforint_$STATIC_BSS_$STATIC_BSSsomforintsomforintgsat_ratiogsat_ratio._savef26._restf27._savef22.genrpt_long._restf23._savef14._restf149668 287004 266764 1074020624 1032 20 644 8 sominv.o` @C  .text Hj@ .data   @.bss t t.debug |K!p?ra`}`` ``K`r ˸0(rK`@r?`PXX{ $Km`r>$KY` ~8^{$|2?K-``x$@۝ *K ` <r<> r˝K`r^*>$K`!:> rK`r?8!}K"A| som_series|Kaa$@! b<C0a8`<,aؿ_?pA؟$0Hl,ot!pA*@,0;8|;@[(_02 H(X;`|;@[P_02H 8|LK`?_Kq`88cKa`8 cKQ`˻h?r8dK=` r8K)`?_K`8 K ` K``? p@ @  K`|`r]2(?(؁@(xa8ah]8` 2rP(DH$*$8$c$?H_P8X8PX%1z8H9@?@KE`ˡXˁhaPAH; ; 8ah!@8`8X8P8H9@K;9*,Q`:8ahX:h:P`:H@:A!@8`8X8PK; 8ah!@8`8X8P8H9@K;9*,H`8ahXhP`H@A!@8`8X8PK8ah@8`8X8P8H9@K`*!X!*AhB*aPc*H($*8`! $B($xc8$@$?p_`h8!a}K"A sominvint|}&Kqa\8b(_(ȟ(ȿ0r| !$$`؁HءPX`@$a;˟@_Pؐ?X8xpʟh `^K`!r ؐK`XzQzrzz#$K`0r;*r$*K` |;Kq`|$ ؐK]`;2KI`;r^p:<`$;(ؐ  A$.2A8? 8dK`H?A4 8dK`8`ց$(8! |} a\KK`r$$ *K`;K`|>2Ku`Km`* ؐ*KQ` @ {* K-`( ؐ]r$(K `H?HR( zrrr K`r ؐK`*7$<8 8!$K`>LB @A`@ x` ؐK}`LA@Ah ؐKa`@ xhahR(>rȡPȁ`!$||@(<:K`=$K`!pLQ@P ؐK` ȐK` ȐK`rN2x $K`!p *K`;p8`$(8! |} a\Kd"Csominv t   som-inverseLandsat Ratio: Satellite Number: Path Number: SPACE OBLIQUE MERCATORInclination of Orbit: Longitude of Ascending Orbit: 50 iterations without convergence?F?@@@DY?=?[Ow@` =p?򽴆&?FR5?l0a\j?SC~@`)?lī@Lc˰>. &֕@AABABpApB4ـ!TD->z򚼯Hz򚼯H?!TD-__default_char:t38=-5 :t7=f-13; :t11=f-11; :t12=f-11; :t13=f-13; :t14=f-11; :t15=f-11; :t16=f-11; :t17=f-11;som_series:F-13sominvint:F-1 r_major:p-13 r_minor:p-13 satnum:p-4 alf_in:p-13false_east:p-13false_north:p-13 time:p-13sat_ratio:p-13 one_es:-13 suma2:-13 suma4:-13 sumc1:-13 sumc3:-13 sominv:F-1 defac:-13 actan:-13 bigk2:-13 xlamt:-13false_northing:V-13false_easting:V-13lon_center:V-13xDNd8Txxz~4dx,<`|~~ DHd|Ù$4Př Ù ( 8 P hǙ  z   |  2 v U v 4<DLPT    $ ( , 0 4 8 @ D L `d h2    ,<DHLPTdlptx"#$%&'()+,0-<4@.D/H.L7P4T-X7\0`1d/h8l.p8t4|6045603548318189:;<=>A@A>BAC$D,E4F<>@@DATH\K`JdK|HLKMNOPHJKSTSTUVWX[ZYZ ]$Y(^,_0[4\8Z<]@^D[H\L^P]T`U 48 l        (,6HT  !#!#"#X(\#`(p)*+,1-,1,1-1 2 `3 x4 5 6.filegsominv.c.text @.data  .bss t:t9=-5:t8=-11:t3=-4:t2=-13:t1=-1:t4=f-1;:t5=*-13:t6=f-1;:t10=*-5&3@MZgt:t39=Zk F kj2.bf efb:p5fa2:p5fa4:p5fc1:p5fc3:p5dlam:p5sd:-13sdsq:-13h:-13sq:-13fc:-13.ef|eR $U.bfe9path:p-4 lon:p-13 (0flag:p-48 <i:-4alf:-13e2c:-13e2s:-13dlam:-13@fb:-13hfa2:-13`fa4:-13Xfc1:-13Pfc3:-13H+7COsumb:-13.efhe.sominv 4$v[.bfey:p-138x:p-13@lon:p5Hlat:p5Ltlon:-13conv:-13sav:-13sd:-13sdsq:-13blon:-13dif:-13st:-13httlat:-13dd:-13bigk:-13sl:-13scl:-13dlat:-13dlon:-13temp:-13inumb:-4.ef eTOC k k k_$STATIC k_$STATIC k] tk.bss:V-13es:V-13ca:V-13 sa:V-13(p21:V-130xj:V-138w:V-13@u:V-13Ht:V-13Pq:V-13Xc3:V-13`c1:V-13ha4:V-13pa2:V-13xb:V-13a:V-13.esj kw   ksominv   sominv k.sin.cos.sqrt.ptitle.radius2.genrpt.offsetp.p_error.exp.atan.tan.asinTue Jan 13 14:16:06 2004 C for AIX Compiler Version 5.0.2.0 --- .som_series.sominvint_$STATIC_BSS_$STATIC_BSSsominvintsominvint._savef26._restf27._savef22.genrpt_long._restf23._savef14._restf14.adjust_lon4201 291330 277214 1074020626 1032 20 644 9 sterfor.o` @Ct |8.textHlz/ .data|X @.bss8.debug |?0_( ! ؿ؟8cK`b8c,K`?0K`?(K`? K`?_K`8`H8!@}N "A sterforint|KE!`(!(aK`8@8H K` K`_@B2H ȟ2_0)e8d  *"LB@0K`ˁ`px}8!8`gN f $Ka`=z8`>?aHA@!_<r#z8!}K"A8sterfor$<0xster-forPoint projects into infinitySTEREOGRAPHIC?IBM =|׽@__default_char:t36=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t15=f-11; :t16=f-11;sterforint:F-1 r_maj:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 sterfor:F-1 sinphi:-13 cosphi:-13 coslon:-13 cos_p10:V-13 sin_p10:V-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_major:V-13R4\>ED^P`\bhdxfhRj\l.?6EhnprTGCX A$(=0+4= $(,< L X dp+$ (,048 @DLP Thp    .filegsterfor.c.text.data| .bss8:t13=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KX:t14=*-5er:t37=ZkF z+.bfe0X`hpx.efe@.sterfor X=.bfeSlon:p-13lat:p-13x:p4y:p4H@dlon:-13ksp:-13g:-13.efedTOCk kxk_$STATIC<k:_$STATICkRk8.bsG*9Nd v(0.es_kl$  wksterfor0  sterfork.tsincos.ptitle.radius.origin.offsetp.cos.p_error.sinTue Jan 13 14:16:08 2004 C for AIX Compiler Version 5.0.2.0 --- .sterforint_$STATIC_BSS_$STATIC_BSSsterforintsterforint.cenlonmer._savef28.adjust_lon._restf284577 296032 287004 1074020627 1032 20 644 9 sterinv.o` @Cx P8.textH(C .dataP  @.bss((8.debugap |?0_( ! ؿ؟8cK`bK`?0K`?(K`? K`?_K`8`H8!@}N "A sterinvint|KI!``(?(a^?K`0*!$K`8@!*8HK`˟( ۞AH< !@8`LB@ !h8!}}K^$!Ky``@P= _a@*LL@@l P@< K-`<*K!`>8`8!}H@K`<(K`>8`HtK`HZ|?` @$@8`8!}K2]!2K`<*Ku`>8`8!}KP"Asterinv(STEREOGRAPHIC=|׽!TD-__default_char:t34=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t15=f-11;sterinvint:F-1 r_maj:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 sterinv:F-1 cos_p10:V-13 sin_p10:V-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13 r_major:V-13P4Z>C@\L^X`dbtdfPhjZ.=tlnpr pr0tpvprvREAV?;*; $(,< H T `l|*$(048<DHP T\(h l(x((08#<@#D \!`(t#'(.filegsterinv.c.text.dataP .bss(8:t13=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KX:t14=*-5e:t35=ZkF (*r.bfe0X`hpx.efe@.sterinv  ;.bfeRx:p-13y:p-13lon:p4lat:p4rh:-13z:-13sinz:-13Hcosz:-13@con:-13.efeyTOCkkk_$STATICk_$STATICkR(k8.bsE0 B(T0.es_kl  wksterinv  sterinvk.tsincos.ptitle.radius.origin.offsetp.sqrt.atan.asin.atan2.sinTue Jan 13 14:16:09 2004 C for AIX Compiler Version 5.0.2.0 --- .sterinvint_$STATIC_BSS_$STATIC_BSSsterinvintsterinvint.cenlonmer._savef24._restf27.adjust_lon._restf259343 305500 291330 1074020628 1032 20 644 10 stplnfor.o` @C HHH.textHH5 .dataHHH* @.bss .debug? |}&Ka!``~`;|A,@,@T88| 8|CHA(8|CA8|@\`HT,@L88| 8|CHA8|CA8|A,@D8X8accK`88aK`8!}8`N .@8`K`|{yH`cK`|{y@48 8K`8`8!|} aN cc8KY`8a88 cfKA`88cfcK%`8a88 cfK `ccK`,AL88accK`8$8aK`8`8!|} aN 8ijklm0]^%&'(QR?IBM ?FR5__default_char:t90=-5:t7=ar0;0;8;-13:t8=ar0;0;31;-5:t9=ar0;0;99;-5:t11=ar0;0;0;-4:T12=s32_ptr:4,0,32;_cnt:-1,32,32;_base:4,64,32;_bufendp:4,96,32;_flag:-3,128,16;_file:-3,144,16;__stdioid:-1,160,32;__newbase:4,192,32;_unused:11,224,32;; FILE:t13=12 :t15=*-13 :t16=f-1;:t17=ar0;0;133;-4:t18=ar0;0;133;-4 :t20=f-11; :t21=f-13; :t23=f-13; :t24=f-11; :t25=f-11; :t26=f-1; :t27=f-1; :t28=f-1; :t29=f-1; :t30=f-1; :t31=f-1; :t32=f-1; :t33=f-1; :t34=f-1; :t37=f-1; :t38=f14; :t39=f-1;size_t:t41=-10 :t42=*-11 :t43=f41;stplnforint:F-1 sphere:p-4 nadval:-4 r_maj:-13 r_min:-13scale_fact:-13center_lon:-13center_lat:-13false_east:-13false_north:-13 azimuth:-13 lat_orig:-13 lon_orig:-13 stplnfor:F-1 NAD83:V17 NAD27:V18 inzone:V-4vD\t}$4`pk8lx8dp4@\hr}HLoPxTmX\9`ih\li9,08<DX \ `  " #,$04'<(T*h+l-|.01234JL,M<DNH\ShTxV|UXY\[\`\`bcdfgf gikj k@D\m`ohqrtutuwxwxz{z{ }~@DTX`$0HLPXptx\p   .filegstplnfor.c.textH5.dataHH .bss :t40=-10:t19=-11:t10=-3:t6=-13:t3=-5:t2=-4:t1=-1:t4=*-5:t5=f-1;,>Pb:t14=*13&:N[:t22=*-4hu:t35=k-5:t36=*350<:t91=ZkHF l\7H.bfeKzone:p-4Zfn27:p4fn83:p4ind:-4i:-4gtable:7pname:8buf:9slon1:-13lat1:-13lon2:-13lat2:-13mode:-4iflg:-4ptr:14.efHeSl i7 l.bfpelon:p-13Xlat:p-13`x:p15hy:p15liflg:-4.ef$eTOCHkTk |k_$STATICtk.bso(4.es_$STATICLk] k.bsxid:V-1.esjPkw\  Hkstplnforh  stplnforXk.sprintf.p_error.fopen.fseek.fread.fclose.ptitle.sqrt.pakcz.paksz.tmfor.polyfor.omerforTue Jan 13 14:16:10 2004 C for AIX Compiler Version 5.0.2.0 --- .stplnforint.stplnfor_$STATIC_BSS_$STATIC_BSSstplnforintstplnforint._savef26.genrpt_long.tmforint.lamccforint.polyforint.omerforint._restf26._restf28.lamccfor9433 315058 296032 1074020630 1032 20 644 10 stplninv.o` @C PHP.textPH,6 .dataPPHH @.bss .debugK |}&Ka!``~`;|A,@,@T88| 8|CHA(8|CA8|@\`HT,@L88| 8|CHA8|CA8|A,@D8X8accK`88aK`8!}8`N .@8`K`|{yH`cK`|{y@48 8K`8`8!|} aN cc8KY`ccKM`8a88 cfK5`88cfcK`8a88 cfK`ccK`,AL88accK`8$8aK`8`8!|} aN 8ijklm0]^%&'(QR?IBM ?FR5__default_char:t92=-5:t7=ar0;0;8;-13:t8=ar0;0;32;-5:t9=ar0;0;99;-5:t11=ar0;0;0;-4:T12=s32_ptr:4,0,32;_cnt:-1,32,32;_base:4,64,32;_bufendp:4,96,32;_flag:-3,128,16;_file:-3,144,16;__stdioid:-1,160,32;__newbase:4,192,32;_unused:11,224,32;; FILE:t13=12 :t15=*-13 :t16=f-1;:t17=ar0;0;133;-4:t18=ar0;0;133;-4 :t20=f-11; :t21=f-13; :t23=f-13; :t24=f-11; :t25=f-11; :t26=f-1; :t27=f-1; :t28=f-1; :t29=f-1; :t30=f-1; :t31=f-1; :t32=f-1; :t33=f-1; :t34=f-4; :t35=f-1; :t38=f-1; :t39=f14; :t40=f-1;size_t:t42=-10 :t43=*-11 :t44=f42;stplninvint:F-1 sphere:p-4 nadval:-4 r_maj:-13 r_min:-13scale_fact:-13center_lon:-13center_lat:-13false_east:-13false_north:-13 azimuth:-13 lat_orig:-13 lon_orig:-13 stplninv:F-1 nad83:V17 nad27:V18 inzone:V-4wD\t~ 0@l|lDxDp| @Lht$~~ PTpXy\n`d:hjp]tj:,08<DX \ `  " #,$04'<(T*h+l-|.012345K M8NHPOThTtUWVYZ_^_a_acdeghgh j$l(k,lLPhnlptrsuvuvxyxy{| {|~ $LP`dl 0<TX\d|]|     .filegstplninv.c.textP6.dataPH .bss :t41=-10:t19=-11:t10=-3:t6=-13:t3=-5:t2=-4:t1=-1:t4=*-5:t5=f-1;,>Pb:t14=*13&:N[:t22=*-4hu:t36=k-5:t37=*36+<H:t93=ZkPF x]8T.bfeLzone:p-4ffn27:p4fn83:p4ind:-4i:-4stable:7pname:8buf:9 lon1:-13lat1:-13lon2:-13lat2:-13mode:-4iflg:-4ptr:14.efTeSx j8x.bf|ex:p-13Xy:p-13`lon:p15hlat:p15liflg:-4.ef0eTOCPk\k k_$STATIC|k.bsp(4@.es_$STATICTk] k.bsyid:V-1.esjXkwd  Pkstplninvp  stplninv`k.sprintf.p_error.fopen.fseek.ftell.fread.fclose.ptitle.sqrt.pakcz.paksz.tminv.polyinv.omerinvTue Jan 13 14:16:12 2004 C for AIX Compiler Version 5.0.2.0 --- .stplninvint.stplninv_$STATIC_BSS_$STATIC_BSSstplninvintstplninvint._savef26.genrpt_long.tminvint.lamccinvint.polyinvint.omerinvint._restf26._restf28.lamccinv6407 321588 305500 1074020631 1032 20 644 7 tmfor.o` @C  PxP.textPH * u .dataPP @.bss<<x.debug  $|>p!؞X^hؾP~` <>(K`>H>(K`>@>(K`>8>(Ku`@>0ȾPp>Hء8^@~8KI`(^(! >8L$ @ H؞K`>p^hK`>`8(K`>XK`>PK`>^K`8`hXP8!`}N "Altmforint|Kq!P`X!(aKI`8@8H K1`ˁ@üA K `r\`*@, 8dK`8!}8`]K|<*_p(\ Z`!$8K`r @K`r<$Ke`@ PPZ2(8!8`}2K( \2 K `(`!H!r\?p |K`_@8$?Hȟ08K`8]r|L!r,<<0(Pz(@82|\<>:|H!zD\P$|X$ȿ $4::T 8N:B!c*?`(:<=K:8`$ $K:Hh=|׽?@A@ABBhAA@ABtDC__default_char:t48=-5 :t9=f-11; :t10=f-13; :t11=f-13; :t12=f-13; :t13=f-13; :t14=f-13; :t15=f-13; :t16=f-11; :t17=f-11; :t18=f-11; :t19=f-11; :t20=f-11; :t21=f-11; :t22=f-11; tmforint:F-1 r_maj:p-13 r_min:p-13scale_fact:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 tmfor:F-1delta_lon:-13 sin_phi:-13 cos_phi:-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13scale_factor:V-13 r_minor:V-13 r_major:V-13iNPsduxwy{T} (4DiNT$@h@{,PkTVXP\R`od$hLp4tL$  ,048< DHL P ` t $0<LP 4   ,*< @*Dtx|****$ 04 H"L%T X"\%`"d%l"p%t"x%"%"%"%")"%"%"%"%"%" %"%*.filegtmfor.c.textP .dataP .bss<x:t7=-5:t6=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;:t8=*-5&3@MZgt:t49=ZkPF  *4".bfe?x .@temp:-13.efle^.tmfor  L"S.bfeslon:p-13lat:p-13x:p4y:p4_oH}@al:-13als:-13b:-13c:-13t:-13tq:-13con:-13n:-13ml:-13.ef0eTOCPkXkkX_$STATIC|ke_$STATIC\kP<kx.bsVind:V-13ml0:V-13esp:V-13 es:V-13(e3:V-130e2:V-138e1:V-13@e0:V-13HPX`hp.es]Tktmforintd  tmforintPktmforp  tmfor`k.e0fn.e1fn.e2fn.e3fn.mlfn.ptitle.radius2.genrptj.origin.offsetpu.tsincos.sin.p_error.log.cos.sqrt.acos.tanTue Jan 13 14:16:13 2004 C for AIX Compiler Version 5.0.2.0 --- .tmforint_$STATIC_BSS_$STATIC_BSS.cenlonmer._savef22.adjust_lon._restf28._restf24._restf237331 329042 315058 1074020632 1032 20 644 7 tminv.o` @Cv pxp.textpH ' .datapp @.bssxxx.debug@ $|>p!؞X^hؾP~` <>(K`>H>(K`>@>(K`>8>(Ku`@>0ȾPp>Hء8^@~8KI`(^(! 8>8L$ @K `>p^hK`>`8(K`>XK`>PK`>^K`8`hXP8!`}N "Adtminvint|Kya|! <C0`aP,p`A!$K5`_PÝ$$}b *( ؐ2K`A|"$K`K`@;@ P;@0@(Xa\8`8!໡}K @K`X *Ku`a\>8!໡}8`KP_(_(;_H_@|$?80ý "*$@5*K`ڨz2K`ٰ|2rK`,z;$(R*LBA<@ 2*K 8d K`Ap8`_8!a|}K|}(@x8@ 8HK]` KQ`H2!@=!r_( 2p<r x2K `HY(L7$`)}4\<P)d=T::*z88`8!a|}K K`l`pT_X!P*2^8`8!a|}K"AtminvxppTM-INVERSELatitude failed to convergeScale Factor at C. Meridian: TRANSVERSE MERCATOR (TM)?IBM >h?@@=|׽?!TD-A@@@A AABtBCB4C|@AAAYـ__default_char:t54=-5 :t10=f-11; :t11=f-13; :t12=f-13; :t13=f-13; :t14=f-13; :t15=f-13; :t16=f-1; :t17=f-13; :t18=f-13; :t19=f-11; :t20=f-11; :t21=f-11; :t22=f-11; :t23=f-11; :t24=f-11; :t25=f-11; tminvint:F-1 r_maj:p-13 r_min:p-13scale_fact:p-13center_lon:p-13center_lat:p-13false_east:p-13false_north:p-13 tminv:F-1delta_phi:-13 sin_phi:-13 cos_phi:-13 tan_phi:-13 max_iter:-4false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13scale_factor:V-13 r_minor:V-13 r_major:V-13tYP~dx_ ,<tYp|Y ^_dPpvtax[|]z'W7W'  ,048< DHL P ` t  (4DH7 , 8 @ PGT \G`dGtGGG (', 04 <%@&P'T X\)lGt*xG-/0501515136516426:7:6 8:= :(=,:0=4:D=H:P=T:X=`:h=l:x=|:=:78:89:7=:=:=:=:=FG C$D(C8D<F@G.filegtminv.c.textp'.datap .bssxx:t8=-5:t7=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;:t9=*-5'4AN[ht:t55=ZkpF  7%.bfe@x$6HZtemp:-13.efde].tminv  W%m.bfesx:p-13y:p-13lon:p4lat:p4 con:-13phi:-13yi:-4H@c:-13cs:-13t:-13ts:-13n:-13r:-13d:-13ds:-13f:-13h:-13g:-13temp:-13.efTeTOCpkxkkt_$STATICke_$STATIC|kPxkx.bsaind:V-4ml0:V-13esp:V-13 es:V-13(e3:V-130e2:V-138e1:V-13@e0:V-13HPX`$h3p.es]tktminvint  tminvintpktminv  tminvk.e0fn.e1fn.e2fn.e3fn.mlfn.ptitle.radius2.genrptj.origin.offsetpu.exp.cos.sqrt.asinz.atan2.sin.p_error.tsincos.tan.signTue Jan 13 14:16:15 2004 C for AIX Compiler Version 5.0.2.0 --- .tminvint_$STATIC_BSS_$STATIC_BSS.cenlonmer._savef18._restf27.adjust_lon._restf21._restf186557 335722 321588 1074020634 1032 20 644 8 utmfor.o` @D  8x.textH ! .data8 J @.bssx.debugH |$K`@ PPZ2(8!8`}2K \2 K`(`!H!r\?p |Ki`_@8$?Hȟ08KE`P]r|d!rD<<H(hz(X82|\T>:|`!z\\P$|X$ȿ <L::l88N:B!c*?`@:<=K:8`$ $K:Hhـ=|׽?@A@ABBhAA@ABtDC__default_char:t48=-5 :t10=f-11; :t11=f-11; :t12=f-13; :t13=f-13; :t14=f-13; :t15=f-13; :t16=f-13; :t17=f-13; :t18=f-11; :t19=f-11; :t20=f-11; :t21=f-11; :t22=f-11;utmforint:F-1 r_maj:p-13 r_min:p-13scale_fact:p-13 utmfor:F-1delta_lon:-13 sin_phi:-13 cos_phi:-13false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13scale_factor:V-13 r_minor:V-13 r_major:V-13K6frQ|prt v xLzfQ|~ f4LZKpQp TpzhMSOl$I1I$ 48< @H TX \ ` d h lp""  4T\`dhlpt| !"1<@DTlx |  * * (,4*8<*@D*HP*X\`dhlpx|  "% "%"%"%"%"%(",%0"<%D"L)P"X%\"`%d"h%l"p%t"x%"%"%*.filegutmfor.c.text!.data8 .bssx:t8=-5:t7=-11:t3=-4:t2=-13:t1=-1:t4=f-1;:t5=*-13:t6=f-1;:t9=*-5'4AN[hu:t49=ZkF  1".bfe:zone:p-4temp:-13.efe[.utmfor  I".bfeqlon:p-13lat:p-13x:p5y:p5 H*@al:-13als:-13b:-13c:-13t:-13tq:-13con:-13n:-13ml:-13.efeTOCkkkp_$STATICk_$STATICkQkx.bsSind:V-138Mml0:V-13esp:V-13 es:V-13(e3:V-130e2:V-138e1:V-13@e0:V-13HcPuX`hp.es^kk  ukutmfor  utmfork.p_error.e0fn.e1fn.e2fn.e3fn.mlfn.ptitle.radius2.genrpt.tsincos.sin.log.cos.sqrt.acos.tanTue Jan 13 14:16:16 2004 C for AIX Compiler Version 5.0.2.0 --- .utmforint_$STATIC_BSS_$STATIC_BSSutmforintutmforint.genrpt_long.cenlonmer._savef22.adjust_lon._restf28._restf24._restf237511 343356 329042 1074020635 1032 20 644 8 utminv.o` @Dt Lx.textH r( .dataLP  @.bssTTx.debug |8!໡}8`K_(_(;_H_@|$?800ý48"*$@5*Km`ڨz2K]`ٰ|2rKM`,z;$(R*LBA@@ 2*Kb 88c8K`Ap8`_8!a|}K}@@x8@ 8HK` K`H2!@=!r_( 2p<r x2Ku``Y(d7$`)}Lt<h)|=l::*zPTx::8`8!a|}K` KY`l`(T_X!P*2^8`8!a|}K"AutminvT4(Zone: utm-invintUTM-INVERSEIllegal zone numberLatitude failed to convergeScale Factor at C. Meridian: UNIVERSAL TRANSVERSE MERCATOR (UTM)Y?FR5H$K?IBM >hـ?@@=|׽?!TD-A@@@A AABtBCB4C|@AAA__default_char:t52=-5 :t10=f-11; :t11=f-11; :t12=f-13; :t13=f-13; :t14=f-13; :t15=f-13; :t16=f-13; :t17=f-1; :t18=f-13; :t19=f-13; :t20=f-11; :t21=f-11; :t22=f-11; :t23=f-11; :t24=f-11;utminvint:F-1 r_maj:p-13 r_min:p-13scale_fact:p-13 utminv:F-1delta_phi:-13 sin_phi:-13 cos_phi:-13 tan_phi:-13 max_iter:-4false_easting:V-13false_northing:V-13lat_origin:V-13lon_center:V-13scale_factor:V-13 r_minor:V-13 r_major:V-13U6pr[|z|~  Lf[*p`jU DRU[z<H|r W]Yv& S(3,S& 48< @H TX \ ` d h lp$$  4T\`dhlptx| !"#$3(Xhlpx|   G GG(G04G@DGHT\` '  %&' )G *G -0/D0P5X0\1`5d1h5l1p3t6x5|16426:7:68:=:=:=:=:=:=:=:=:= :$7(8,:08498:<7@=D:H=L:X=`:h=l:p=FGCDCDFG.filegutminv.c.text(.dataL .bssTx:t8=-5:t7=-11:t3=-4:t2=-13:t1=-1:t4=f-1;:t5=*-13:t6=f-1;:t9=*-5'4AN[hu:t53=ZkF  r3$.bfe<zone:p-4temp:-13.efe_.utminv  S$.bf(eux:p-13y:p-13lon:p5lat:p5 con:-13phi:-13%i:-45HC@Qc:-13cs:-13t:-13ts:-13n:-13r:-13d:-13ds:-13f:-13h:-13g:-13temp:-13_.efeTOCk kk_$STATIC4k_$STATICkQTkx.bs]ind:V-4mml0:V-13esp:V-13 es:V-13(e3:V-130e2:V-138e1:V-13@e0:V-13HPX`hp.es^kk  ukutminv(  utminvk.p_error.e0fn.e1fn.e2fn.e3fn.mlfn.ptitle.radius2.genrpt.exp.cos.sqrt.asinz.atan2.sin.tsincos.tan.signTue Jan 13 14:16:18 2004 C for AIX Compiler Version 5.0.2.0 --- .utminvint_$STATIC_BSS_$STATIC_BSSutminvintutminvint.genrpt_long.cenlonmer._savef18._restf27.adjust_lon._restf21._restf184581 348062 335722 1074020636 1032 20 644 10 vandgfor.o` @D t 0h 0.text0H $P .data00hx @.bss .debug* |!b?_؟K` K` K`?_K`8`XH@8!P}N "A vandgforint|KQ!``!(aK)`?8`|˜_LB@$8!]}K$ *K`@|8@8HL@A*LB@t_!22LB @0K]`z 8`8!}HD<$<@0KM`z 8`8!}H,K!`| 8`8!}K"A`vandgforD\Pl00VAN DER GRINTEN=|׽@ !TD-!TD-?@?__default_char:t34=-5 :t6=f-13; :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t12=f-11; :t15=f-11;vandgforint:F-1center_long:p-13false_east:p-13false_north:p-13 vandgfor:F-1 theta:-13 costh:-13 sinth:-13false_northing:V-13false_easting:V-13lon_center:V-13R&H8\D^P``bdRfB,h<jlln\pppr0T4J8F<X@DDH@P)T@ $(,048@ L X h l ) && $&0 D LT\ |   %&  $(,048<@Ddpt |  !%&!#%&.filegvandgfor.c.text0.data0h .bss :t13=-5:t8=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>KX:t14=*-5e:t35=Zk0F $)r.bf e1r:p-13hpx.efe=S r@.bfeRlon:p-13lat:p-13x:p4y:p4dlon:-13al:-13asq:-13g:-13gsq:-13m:-13msq:-13con:-13@H.ef ewTOC0k@klk,_$STATIC\k_$STATIC8k]k .bsJR:V-13.esj4kwD  0kvandgforP  vandgfor<k.ptitle.radius.cenlon.offsetp.asinz.tan.tsincos.sqrtTue Jan 13 14:16:19 2004 C for AIX Compiler Version 5.0.2.0 --- .vandgforint.vandgfor_$STATIC_BSS_$STATIC_BSSvandgforintvandgforint._savef24.adjust_lon._restf27._restf254307 352494 343356 1074020638 1032 20 644 10 vandginv.o` @Dhn | .textHN .data|(: @.bss\\ .debug |!b?_؟K` K` K`?_K`8`XH@8!P}N "A vandginvint|KQ!@((þÞ ~~`aD($_($" *κ*"!:dBAN7*wx:7r7r$$!$c$$(($Ř$Pc$$d($'$*Ky`A*$$!$ (LB @> @ K9`W$(2LA!$$!*@ K `x2 HK`|2 >0@8~ 8`@8!}K*:θz8:K`<<*>rr$?*Km`=8`8!}KH"Avandginv\ VAN DER GRINTEN@ !TD-?AA@@IBM ?R8-se=|׽@?__default_char:t30=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t13=f-11;vandginvint:F-1center_long:p-13false_east:p-13false_north:p-13 vandginv:F-1false_northing:V-13false_easting:V-13lon_center:V-13P&F8ZD\P^``bP@dfhh`jtdljRHDVB>'> $(,048@ L X h l '   $ ( , 04 8 @ D P T \ d h l p      ,4!@DLP%d!$%.filegvandginv.c.text.data| .bss\ :t11=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>:t12=*-5K:t31=ZkF 'X.bf e1r:p-13hjp}x.efe=S 0>.bfeQx:p-13y:p-13lon:p4lat:p4xx:-13yy:-13xys:-13c1:-13c2:-13c3:-13a1:-13m1:-13con:-13th1:-13d:-13.efeuTOCkkk@_$STATIC k_$STATICk]\k .bsHR:V-13.esjkw  kvandginv  vandginvk.ptitle.radius.cenlon.offsetp.sqrt.acos.cosTue Jan 13 14:16:20 2004 C for AIX Compiler Version 5.0.2.0 --- .vandginvint.vandginv_$STATIC_BSS_$STATIC_BSSvandginvintvandginvint._savef18._restf19.adjust_lon3957 356574 348062 1074020639 1032 20 644 8 wivfor.o` @Dn  .textH' .data0 @.bss .debug$ |Kb !D$d؄8c4K` K` K` @K`8`h8!`}K"A wivforint|K]A!`!(aK5`@ K%`;`B2ü˜ K`* (`PK`,*8z$*AA K`;{ K2 2 2K`z<(r Ke`8`8!A}K<"A(wivforTwagneriv-forwardIteration failed to convergeWAGNER IV@DKL?IBM =|׽?IBM ?랃%? 4\__default_char:t34=-5 :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t14=f-11; :t15=f-11;wivforint:F-1center_long:p-13false_east:p-13false_north:p-13 wivfor:F-1delta_lon:-13 theta:-13delta_theta:-13false_northing:V-13false_easting:V-13lon_center:V-13V BL<XHZT\d^|`bLdf<Bfh2BLj|hflN@DR>:) :(,048D P \ l p )  $ ( , 4 8 < H TX \`dl.filegwivfor.c.text.data .bss :t12=-5:t8=-11:t6=-4:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2?:t13=*-5LY:t35=ZkF )f.bfe,r:p-13xv.efe8.wivfor Dj:.bfeJlon:p-13lat:p-13x:p4y:p4con:-13i:-4.efe[TOCkkTk0_$STATICk>_$STATICkQk .bsDR:V-13.es^kk  ukwivfor  wivfork.ptitle.radius.cenlon.offsetp.sin.cos.p_errorTue Jan 13 14:16:22 2004 C for AIX Compiler Version 5.0.2.0 --- .wivforint_$STATIC_BSS_$STATIC_BSSwivforintwivforint._savef28._restf28._savef26.adjust_lon._restf263413 360110 352494 1074020640 1032 20 644 8 wivinv.o` @Dd X .textH .dataX @.bss .debug |K! bD$d؄K` K` K` @K`8`h8!`}K"A| wivinvint|KaЃ!˾(^(a?=r` $K!`2K `r$>*K`@<<*K`:? $K`=8`x8!p}K"AwivinvWAGNER IV? 4\?랃%@IBM @DKL__default_char:t30=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t13=f-11;wivinvint:F-1center_long:p-13false_east:p-13false_north:p-13 wivinv:F-1 theta:-13false_northing:V-13false_easting:V-13lon_center:V-13P F"<8RDTPV`XxZPF6\^ ` b8\\ZH>:L84'4 (,048@ L X h l 'HL.filegwivinv.c.text.dataX .bss :t11=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>:t12=*-5K:t31=ZkF 'X.bfe+r:p-13xh{.ef|e7.wivinv f4.bfeEx:p-13y:p-13lon:p4lat:p4.ef`eKTOCkkk _$STATICk _$STATICkQk .bs>R:V-13.es^kk  ukwivinv  wivinvk.ptitle.radius.cenlon.offsetp.asin.cos.sinTue Jan 13 14:16:23 2004 C for AIX Compiler Version 5.0.2.0 --- .wivinvint_$STATIC_BSS_$STATIC_BSSwivinvintwivinvint._savef28._restf28.adjust_lon3602 363836 356574 1074020641 1032 20 644 9 wviifor.o` @D*h ` .textHj .data` @.bss .debug#` |!b?_؟K` K` K`?_K`8`XH@8!P}N "A wviiforint|KU!`!(aK-`8@8H!$K` K`2?K`@:\"$K`2\ CȟaH2ȿ8`_2!( :=xˡhp}8!N "AwviiforWAGNER VII@@IBM ?}A5T?@@V|G?LPr__default_char:t32=-5 :t6=f-13; :t8=f-11; :t9=f-11; :t10=f-11; :t11=f-11; :t14=f-11;wviiforint:F-1center_long:p-13false_east:p-13false_north:p-13 wviifor:F-1delta_lon:-13 sin_lon:-13 cos_lon:-13false_northing:V-13false_easting:V-13lon_center:V-13L&B8VDXPZ`\^L`<bdf0fND@R>:(: $(,048@ L X h l ( (,8DLX\`dhltx .filegwviifor.c.text.data` .bss :t12=-5:t7=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>K:t13=*-5X:t33=ZkF j(e.bf e+r:p-13hvpx.efe7.wviifor :.bfeGlon:p-13lat:p-13x:p4y:p4H@s:-13c0:-13c1:-13.efeOTOCkkk(_$STATICk _$STATICkRk .bsDR:V-13.es_kl  wkwviifor  wviifork.ptitle.radius.cenlon.offsetp.tsincos.sin.sqrtTue Jan 13 14:16:24 2004 C for AIX Compiler Version 5.0.2.0 --- .wviiforint_$STATIC_BSS_$STATIC_BSSwviiforintwviiforint._savef28.adjust_lon3652 367612 360110 1074020642 1032 20 644 9 wviiinv.o` @D  l T .textHLP .dataT @.bss  .debugT |!b?_؟K` K` K`?_K`8`XH@8!P}N "A wviiinvint|KU!((a`$$#2!*K `*!$K`a* ؐK`2<r!$K`@=˞ ؐK`?r]K`!:K`<8`8!}Kl"Awviiinv WAGNER VII@V|G?LPr? rt@@__default_char:t32=-5 :t6=f-13; :t7=f-13; :t9=f-11; :t10=f-11; :t11=f-11; :t14=f-11;wviiinvint:F-1center_long:p-13false_east:p-13false_north:p-13 wviiinv:F-1false_northing:V-13false_easting:V-13lon_center:V-13J&@8TDVPX`Z\J:^` b8`Pd`fphjLB>P<8(8 $(,048@ L X h l (  H   .filegwviiinv.c.text.dataT .bss  :t12=-5:t8=-11:t2=-13:t1=-1:t3=f-1;:t4=*-13:t5=f-1;&2>K:t13=*-5X:t33=ZkF P(e.bf e.r:p-13hvpx.efe:.wviiinv 8.bfeHx:p-13y:p-13lon:p4lat:p4t1:-13t2:-13p:-13c:-13.efeSTOCkkk_$STATICk _$STATICkR k .bsBR:V-13.es_kl  wkwviiinv  wviiinvk.ptitle.radius.cenlon.offsetp.sqrt.asinz.sin.tan.atan2Tue Jan 13 14:16:25 2004 C for AIX Compiler Version 5.0.2.0 --- .wviiinvint_$STATIC_BSS_$STATIC_BSSwviiinvintwviiinvint._savef26.adjust_lon._restf2720994 388730 363836 1074020645 1032 20 644 10 for_init.o` @D 6^k hh.texthHP&\ .datahh$%@.bss  .debugh |}&K.a!!8````a=a\@Pb#LAAA@\;`ccc888Ku`HT,b@0b#L@ AAA;`ccc888K!`8ʞ0@> 8K`b˃,2A$488!08`|} AK>(8K`2,@!`Aځ8@Km`}W:|.488!08`|} !H|,b@> 8K%`b˃,2@$>(8K`2,@!`Aځ8@K` }8`|.488!08`|} !H,@,@ 8`c888KQ`,@>8K9`b,2@8>8K`2,@ =2K``z@ZЀb!AcIcK`}8`|.H,@@cCcdKq`a},@8`|.Hp,@>8K5`bˣ,2@4>8K`]2,@>(8K`}2,@> 8K`2,@!`AАء8ؐa@ࠐځHPKU`}8` |.488!08`|Hd,@>8K`bˣ,2@>8K`]2,@> 8K`}2,@>(8K`2,@!`AАa8ؐ@ࠐځHPK5`}8`|.488!08`|HD,@> 8K`b˃,2@>(8K`2,@!`Aځ8@K}` }8`|.488!08`|} !H,@> 8K5`b˃,2@4>(8K`2,@!`Aځ8@K`$}8`|.488!08`|} !H,@> 8Ku`b˃,2@t>(8K=`2,@H!`Aځ8@K`(}8`|.488!08`|} !H ,@$>8K`b˻,2@>8K}`}2,@> 8KQ`]2,@\>(8K%`2,@0>@8A8!`AؐA8А@ࠐځHPXK`,}8` |.H , @> 8K`bãrc,2@>(8KQ`r2,@\!`Aء8ځ@HK `0}8`$|.488!08`|} !H , @> 8K`b˃,2@>(8K`|2,@!@8KQ`4}8`(|.H `, @> 8K%`b˃,2@$>(8K`|2,@!@8K`8}8`,|.H , @> 8K`b˃,2@>(8KQ`|2,@\!@8K`<}8`0|.H (, @> 8K`b˃,2@>(8K`|2,@!@8K}`@}8`4|.H ,@> 8KQ`b˃,2@P>(8K`|2,@$!@8K`D}8`8|.H ,@> 8K`b˃,2@>(8K}`2,@^`!ځ8@K=`H}8`<|.488!08`|} !H L,@d> 8K`b2#,A2@!`K`L}8`@|.H,@> 8K`b˃,2@>(8KU`|2,@`!@8K`P}8`D|.H,,@d> 8K`b2#,A2@!`K`T}8`H|.H,@d> 8K`b2#,A2@!`KM`X}8`L|.H\,@>(8K`bãr˃,|2@>`A;`>8K`r\2,@> 8K`r<2,A؁488!08`|} AK;`>@8KU`r2,@`>H8K)`r2,@4>P8K`r2,@>X8K`r2,@!`AА!8Ȑa@ؐځHࠐPX `@h`ڡpaxKY`\}8`P|.Hh,@\ K-`a>K`b`a;@;@ 8K`˻]2,@> 8K`2,@˞@~H>PK``y!`АAۡ8ځ@HہPؐa`HD;@!`АAۡ8ځ@HہPؐa`!XA\K``}8`X|.H,@d> 8K`b2#,A2@!`K`d}8`l|.H,@d> 8Ke`b2#,A2@d!`K)`h}8`T|.H8,@$!K`l}8``|.H,@d> 8K`b2#,A2@!`K`p}8`d|.H,@$!Kq`t}8`h|.H,@0!`AK=`x}8`\|.HL,@d> 8K`b2#,A2@!`K`|}8`p|.H,@d> 8K`b2#,A2@!`Km`}8`t|.H|,@> 8KA`bˣ,2@@>(8K `}2,@^>>@8K`2,@!@!8`ؐ@АځHȐPࠐK`}8`x|.488!08`|H,cA ,@p> 8K=`b2#,A2@<Ⱦ@`P@ء8!K`}W:|.488!08`|} !K"CHfor_inithEa>U@Lc˰?#x__default_char:t166=-5 :t10=f-1; :t13=f-1; :t14=f-13; :t15=f-1; :t16=f-1; :t17=f-1; :t18=f-1; :t19=f-4; :t20=f-1; :t21=f-1; :t22=f-1; :t23=f-1; :t24=f-1; :t25=f-1; :t26=f-1; :t27=f-1; :t28=f-1; :t29=f-1; :t30=f-1; :t31=f-1; :t32=f-1; :t33=f-1; :t34=f-1; :t35=f-1; :t36=f-1; :t37=f-1; :t38=f-1; :t39=f-1; :t40=f-1; :t41=f-1; :t42=f-1; :t43=f-1; :t44=f-1; :t45=f-1; :t46=f-1; :t47=f-1; :t48=f-1; :t49=f-1; :t50=f-1; :t51=f-1; :t52=f-1; :t53=f-1; :t54=f-1; :t55=f-1; :t56=f-1; :t57=f-1; :t58=f-1; :t59=f-1; :t60=f-1; :t61=f-1; :t62=f-1; :t63=f-1; :t64=f-1; :t65=f-1; :t66=f-1; :t67=f-1; :t68=f-1; :t69=f-1; :t70=f-1; :t71=f-1; :t72=f-1; :t73=f-1; :t74=f-1; :t75=f-1; :t76=f-1; :t77=f-1; :t78=f-1; :t79=f-1; :t80=f-1; :t81=f-1; for_init:F-1 outsys:p-1 outzone:p-1 outparm:p3 outdatum:p-1 for_trans:p9 azimuth:-13 angle:-13center_long:-13center_lat:-13lon_origin:-13lat_origin:-13 r_major:-13 r_minor:-13scale_factor:-13false_easting:-13false_northing:-13 shape_m:-13 shape_n:-13 radius:-13 tmpdatum:-4 satnum:-4sat_ratio:-13 dzone:-13 djustify:-13 iflg64:12R!H#T!%!!T'^!!,)J\+f-!!0!\!/!$!P!|!1 !D!3!!D5N!!7L!V!!! H9 R x!  ! ; Ï @! J x! = Ǐ !  ! L? Vˏ x!  ! A Ϗ !  L! C ӏ !  ! E *׏ L! V ! G ۏ !HIRߏt!~!K!LMVx!O!0!\!!!!0!QSS!D!tSU4!>pWz!Y[ ,!6h]r_a !,c6X!be!!,!|g!iD#hlptx|  __  HL d t x$$('*/01/ 1$/(1,82<L4\5`4d5h4l6x9<;<=?DEFDFDF IJ I$J(I,K8N\Q`PdQlx|RTZ]`bcdbdbdfg fgfh$j8kDlHnLoXn\odqhplqtrxtxyz|} (8<@DHTdhlpt,048<HX\`dht $048<LPTX\h (LPT\hlx| (,8<DX`dptx|     P T X ` d l p                    , 0 8 L! T" X d" h l" p$ % $ % $ & ( + * + , . 2 3 4 2 4 2 4 6 7 6 $7 (6 ,8 8: T= X< \= d> h@ pD E F D F D F H I H I H J L O N O P R V W (X ,V 8X <V @X DZ T[ XZ \[ `Z d\ p^ a ` a b d h i j h j h j l m l m l n p (s ,r 0s 8t <v Dz X{ `| dz p| tz x| |~  ~  ~            $048<PTX`dl$(48<@TX\dhp $(8<@DHTdhlpt2 (8<@DHT(,0<LPTX\hlp   $,@HLX\`dx|#$%#%#%')()*,02 1235$98:@;D9P;T9X;\=p?t>x?@BFHGHIKOQPQRTXYZXZXZ \4^8]<^D_HaPedflgpe|gegikjklnrstrtrtvwvw vxz {$|4}8|<}@|D~P (48.filegfor_init.c.texth.datah%.bss :t11=-4:t4=-5:t2=-13:t1=-1:t3=*-13:t5=*-5:t6=*-1:t7=f-1;:t8=*7:t9=*8:t12=*-4'3@LXdp| $0<HT`lx ,8DP\ht(4@LX:t167=ZkhF h&\]d.bf ecsHLPTfn27:p5Xfn83:p5\iflg:p6`dzone:-4alf:-13lon1:-13lon2:-13lat1:-13lat2:-13h:-13&4G[p~start:-4time:-13path:-4mode:-4thing:-4.efHeTOChklkk for_init  for_inithkceafor ceaforpkbceafor bceafortkutmfor utmforxkstplnfor stplnfor|kalberfor alberforklamccfor lamccforkmerfor merforkpsfor psforkpolyfor polyforkeqconfor eqconforktmfor tmforksterfor sterforklamazfor lamazforkazimfor azimforkgnomfor gnomforkorthfor orthforkgvnspfor gvnspforksinfor sinforkequifor equiforkmillfor millforkvandgfor vandgforkomerfor omerforksomfor somforkhamfor hamforkrobfor robforkgoodfor goodforkmolwfor molwforkimolwfor imolwforkalconfor alconforkwivfor wivforkwviifor wviiforkobleqfor obleqforkP Zkd.sphdz.paksznx!-9ER]iuTue Jan 13 14:16:26 2004 C for AIX Compiler Version 5.0.2.0 --- .for_initisinusforisinusfor._savef20._restf20.ceaforint.bceaforint.calc_utm_zone.utmforint.stplnforint.alberforint.lamccforint.merforint.psforint.polyforint.eqconforint.tmforint.sterforint.lamazforint.azimforint.gnomforint.orthforint.gvnspforint.sinforint.equiforint.millforint.vandgforint.omerforint.__itrunc.somforint.hamforint.robforint.goodforint.molwforint.imolwforint.alconforint.wivforint.wviiforint.obleqforint.isinusforinit20858 409712 367612 1074020648 1032 20 644 10 inv_init.o` @D 5j XX.textXH<&4 .dataXX$%@.bss.debugX |}&K.aA!8````a=aZ@Pb#LAAA@\;cc888Ku`HT,b@0b#L@ AAA;cc888K!`8ʞ0@> 8K`b˃,2A$8`488!0|} AH>(8K`2,@!`Aځ8@Km`}W:|.8`488!0|} AHh,b@> 8K%`b˃,2@$>(8K`2,@!`Aځ8@K` }8`|.8`488!0|} AH,@,@ 8`c888KQ`,@>8K9`,2@8>8K`2,@ =2K``{@{Ѐb!AcicK`}8`|.H,@@cccKq`a},@8`|.H\,@>8K5`bˣ,2@4>8K`]2,@> 8K`}2,@>(8K`2,@!`AАa8ؐ@ࠐځHPKU`}8` |.8`488!0|HP,@>8K`bˣ,2@>8K`]2,@> 8K`}2,@>(8K`2,@!`AАa8ؐ@ࠐځHPK5`}8`|.8`488!0|H0,@> 8K`b˃,2@>(8K`2,@!`Aځ8@K}` }8`|.8`488!0|} AHx,@> 8K5`b˃,2@4>(8K`2,@!`Aځ8@K`$}8`|.8`488!0|} AH,@> 8Ku`b˃,2@t>(8K=`2,@H!`Aځ8@K`(}8`|.8`488!0|} AH,@$>8K`˼,2@>8K}`}2,@> 8KQ`]2,@\>(8K%`2,@0>@8A8!`AؐA8А@ࠐځHPXK`,}8` |.H , @> 8K`bãrc,2@>(8KQ`r2,@\!`Aء8ځ@HK `0}8`$|.8`488!0|} AH , @> 8K`b˃,2@>(8K`|2,@!@8KQ`4}8`(|.H L, @> 8K%`b˃,2@$>(8K`|2,@!@8K`8}8`,|.H , @> 8K`b˃,2@>(8KQ`|2,@\!@8K`<}8`0|.H , @> 8K`b˃,2@>(8K`|2,@!@8K}`@}8`4|.H x,@> 8KQ`b˃,2@P>(8K`|2,@$!@8K`D}8`8|.H ,@> 8K`b˃,2@>(8K}`2,@^`!ځ8@K=`H}8`<|.8`488!0|} AH 8,@d> 8K`b2#,A2@!`K`L}8`@|.H,@> 8K`b˃,2@>(8KU`|2,@`!@8K`P}8`D|.H,@d> 8K`b2#,A2@!`K`T}8`H|.H,@d> 8K`b2#,A2@!`KM`X}8`L|.HH,@>(8K`bãr˃,|2@>`A;>8K`r\2,@> 8K`r<2,A8`488!0|} AH;>@8KU`r2,@`>H8K)`r2,@4>P8K`r2,@>X8K`r2,@!`AА!8Ȑa@ؐځHࠐPX `@h`ڡpxKY`\}8`P|.HT,@H K-`a>K``a<@;` 8K`˼]2,@> 8K`2,@~@˞H!`АAۡ8ځ@HؐaPہ\HD;`!`АAۡ8ځ@HؐaPہ\aXK ``}8`X|.H,@d> 8K`b2#,A2@!`K`d}8`l|.H,@d> 8Ky`b2#,A2@x!`K=`h}8`T|.H8,@$!K`l}8``|.H,@d> 8K`b2#,A2@!`K`p}8`d|.H,@$!K`t}8`h|.H,@0!`AKQ`x}8`\|.HL,@d> 8K%`b2#,A2@$!`K`|}8`p|.H,@d> 8K`b2#,A2@!`K`}8`t|.H|,@> 8KU`bˣ,2@T>(8K`}2,@(^>>@8K`2,@!@!8`ؐ@АځHȐPࠐK`}8`x|.8`488!0|H,cA ,@p> 8KQ`b2#,A2@PȾ@`P@ء8!K`}W:|.8`488!0|} AK"C4inv_initXEa>U@Lc˰?#x__default_char:t166=-5 :t10=f-1; :t13=f-1; :t14=f-13; :t15=f-1; :t16=f-1; :t17=f-1; :t18=f-1; :t19=f-4; :t20=f-1; :t21=f-1; :t22=f-1; :t23=f-1; :t24=f-1; :t25=f-1; :t26=f-1; :t27=f-1; :t28=f-1; :t29=f-1; :t30=f-1; :t31=f-1; :t32=f-1; :t33=f-1; :t34=f-1; :t35=f-1; :t36=f-1; :t37=f-1; :t38=f-1; :t39=f-1; :t40=f-1; :t41=f-1; :t42=f-1; :t43=f-1; :t44=f-1; :t45=f-1; :t46=f-1; :t47=f-1; :t48=f-1; :t49=f-1; :t50=f-1; :t51=f-1; :t52=f-1; :t53=f-1; :t54=f-1; :t55=f-1; :t56=f-1; :t57=f-1; :t58=f-1; :t59=f-1; :t60=f-1; :t61=f-1; :t62=f-1; :t63=f-1; :t64=f-1; :t65=f-1; :t66=f-1; :t67=f-1; :t68=f-1; :t69=f-1; :t70=f-1; :t71=f-1; :t72=f-1; :t73=f-1; :t74=f-1; :t75=f-1; :t76=f-1; :t77=f-1; :t78=f-1; :t79=f-1; :t80=f-1; :t81=f-1; inv_init:F-1 insys:p-1 inzone:p-1 inparm:p3 indatum:p-1 inv_trans:p9 azimuth:-13 angle:-13center_long:-13center_lat:-13lat_origin:-13lon_origin:-13 r_major:-13 r_minor:-13scale_factor:-13false_easting:-13false_northing:-13 radius:-13 shape_m:-13 shape_n:-13 satnum:-4 tmpdatum:-4sat_ratio:-13 dzone:-13 djustify:-13 iflg64:12R T "  T$^  ,&J\(f*  0 \ , $ P | .  D 0  D2N  4L V    H6 R x     8  @  J x  : Ə      L< Vʏ x     > Ώ    L  @ ҏ      B *֏ L  V   D ڏ  HFRޏt ~ H LJVx L 0 \    0 NPP D R  *\Tf VX "TZ^|\^  `"D Nb   hdr f0hX\`dhlptx| __  HL d t x$$'&)./0. 0$.(0,10H1L3\4`3d4h3l5x8;:;<>CDECECE HI H$I(H,J8M\P`OdPlpQSY\_abcacacef efeg$i8jDkHmLnXm\ndpholptqxswxy{|~ (8<@DHTdhlpt,048<HX\`dht $048<LPTX\h (LPT\`x|  8<DX`dptx|    P T X ` d l p                   , 0 8 L T X d h l p! " ! " ! # % ( ' ( ) + / 0 1 / 1 / 1 3 4 3 $4 (3 ,5 87 T: X9 \: d; h= pA B C A C A C E F E F E G I L K L M O S T (U ,S 8U <S @U DW TX XW \X `W dY p[ ^ ] ^ _ a e f g e g e g i j i j i k m (p ,o 0p 8q <s Dw Xx `y dw py tw xy |{ | { | { }          $048<PTX`dl$(48<@TX\dhp $(8<@DHTdhlpt11 (8<@DHT(,0<LPTX\hlp   ,48DHLPdhltx#$%#%#%')()*,0212359$:,;09<;@9D;H=\?`>d?l@pBxFHGHIKOQPQRTXYZXZXZ \ ^$](^0_4a<ePfXg\ehglepgtikjklnrstrtrtvwvwvxz {| }$|(},|0~<ptx .fileginv_init.c.textX.dataX%.bss:t11=-4:t4=-5:t2=-13:t1=-1:t3=*-13:t5=*-5:t6=*-1:t7=f-1;:t8=*7:t9=*8:t12=*-4'3@LXdp| $0<HT`lx ,8DP\ht(4@LX:t167=ZkXF T&4]d.bf edsHLPTfn27:p5Xfn83:p5\iflg:p6`dzone:-4alf:-13lon1:-13lon2:-13lat1:-13lat2:-13h:-13"0CWlytime:-13path:-4mode:-4thing:-4.ef4eTOCXk\kk inv_init  inv_initXkceainv ceainv`kbceainv bceainvdkutminv utminvhkstplninv stplninvlkalberinv alberinvpklamccinv lamccinvtkmerinv merinvxkpsinv psinv|kpolyinv polyinvkeqconinv eqconinvktminv tminvksterinv sterinvklamazinv lamazinvkaziminv aziminvkgnominv gnominvkorthinv orthinvkgvnspinv gvnspinvksininv sininvkequiinv equiinvkmillinv millinvkvandginv vandginvkomerinv omerinvksominv sominvkhaminv haminvkrobinv robinvkgoodinv goodinvkmolwinv molwinvkimolwinv imolwinvkalconinv alconinvkwivinv wivinvkwviiinv wviiinvkobleqinv obleqinvkP Zkd.sphdz.pakszny #/;HS_kxTue Jan 13 14:16:29 2004 C for AIX Compiler Version 5.0.2.0 --- .inv_initisinusinvisinusinv._savef20.ceainvint.bceainvint.calc_utm_zone.utminvint.stplninvint.alberinvint.lamccinvint.merinvint.psinvint.polyinvint.eqconinvint.tminvint.sterinvint.lamazinvint.aziminvint.gnominvint.orthinvint.gvnspinvint.sininvint.equiinvint.millinvint.vandginvint.omerinvint.__itrunc.sominvint.haminvint.robinvint.goodinvint.molwinvint.imolwinvint.alconinvint.wivinvint.wviiinvint.obleqinvint.isinusinvinit._restf2016777 426612 388730 1074020651 1032 20 644 7 cproj.o` @D"T .textH@W .data@>@.bss.debugJ |Kؐ!<C0!2; H@  @;-K`l`Dÿ@*?(r K`l`L(-_!H!*r?(=r *@ P8!}K<"Apakr2dm|K !p<C0<`C0p8!}K 8!}K"A$phi1z|KՀb!0<C0 K`?HX8!P}N "Adtsincosb|! *C(#$H$ *KI`H8!@}N "A@ calc_utm_zoneP\ht@(48l@x ( h   phi2z-convphi1z-convPHI3Z-CONVphi4z-convConvergence errorConvergence errorLattitude failed to convergeLatitude failed to converge after 15 iterations@Lc˰YBpDzIt$ـC4@?IBM >z򚼯H?IBM ?!TD-@ !TD-@!TD-AB !T!C!S~=IBM =|׽@@@@>=?>>=p?@?UUUUUUF@IBM ?PbMB__default_char:t64=-5 :t4=f-11; :t5=f-13; :t6=f-13; :t7=f-13; :t10=f-13; :t11=f-13; :t12=f-13; :t13=f-13; :t14=f-13; :t16=f-13; :t17=f-13; :t19=f-1; :t20=f-13; :t21=f-13; :t22=f-13; :t23=f-13; :t24=f-13; :t25=f-13; :t26=f-13; :t27=f-4; :t29=f-11; :t30=f-13; pakr2dm:F-13 pakcz:F-13 mlfn:F-13 e4fn:F-13 e3fn:F-13 e2fn:F-13 e1fn:F-13 e0fn:F-13 asinz:F-13 phi4z:F-13 eccent:p-13 sinphi:-13 sin2ph:-13 tanphi:-13 phi3z:F-13 phi2z:F-13 eccent:p-13 eccnth:-13 sinpi:-13 phi1z:F-13 eccent:p-13 eccnts:-13 sinpi:-13 cospi:-13adjust_lon:F-13 tsfnz:F-13 eccent:p-13 sinphi:p-13 qsfnz:F-13 eccent:p-13 sinphi:p-13 cosphi:p-13 msfnz:F-13 eccent:p-13 sinphi:p-13 cosphi:p-13 tsincos:F-11 sin_val:p3 cos_val:p3calc_utm_zone:F-4+Ht+Dx@J+\p+:+n+++B+z++Tdx1+ 0@~1+@\h1+  1    , 2+    P t   D l z+    + H + 4H+3-7;? CGKOS W$[(/,_0c4g8k<o@sDwH{LP,T)\:`)hHl)tUx)`)i)r){))))))))))  )(,)4 8),$(48<@DHPp| : 48<@LTX\`p          H8|U`8Lilr{ @Xx  08T`p    $(,04<@HLPT\`hlptx  HLPT\`pt|      4HLptx|      $ ( 4 < @ L P X d h         `            8 < D H \ ` t               0 4 t x        $ ( , \ ` d    4X .filegcproj.c.textW.data>.bss:t18=-1:t15=-5:t8=-4:t2=-13:t1=-11:t3=*-13&2>:t9=*-4JWdq~ :t28=*-5%:t65=Zk.pakr2dm :*2.bfe)pak:p-13con:-13secs:-13degs:-4mins:-4sgna:-5.efe6.pakcz ,H*A.bfepak:p-13con:-13secs:-13degs:-4mins:-4sgna:-5.efe.mlfn bU*N.bf8ee0:p-13e1:p-13e2:p-13e3:p-13phi:p-13.efe.e4fn t`*Z.bfex:p-13hcon:-13com:-13.efe.e3fn8 4i*f8.bf8e}x:p-13.efPe}.e2fnl @r*rl.bfle|x:p-13.efe|.e1fn H{*~.bfe{x:p-13.efe{.e0fn L*.bfezx:p-13.ef$ez.sign@ 8*sign:F-1@.bf@eMx:p-13.ef\eM.asinzx d*x.bfxe=con:p-13X.efeE.phi4z (*.bfee0:p-13 e1:p-13(e2:p-130e3:p-138a:p-13@b:p-13Hc:p3Pphi:p3Tml:-13mlp:-13con1:-13con2:-13con3:-13dphi:-13i:-4.efe.phi3z $*.bfeml:p-13e0:p-13e1:p-13e2:p-13e3:p-13flag:p9phi:-13dphi:-13i:-4.efe.phi2z *.bfets:p-13flag:p9 phi:-13con:-13dphi:-13i:-4.efe.phi1z @ 2*&.bfez3qs:p-13flag:p9Adphi:-13con:-13com:-13NHZ@phi:-13i:-4.ef eF ( @ *f (.bf `eUx:p-13count:-4.ef Het.tsfnz h !*x h.bf teDxphi:p-13con:-13com:-13.ef eH.qsfnz  ! * .bf e_xcon:-13.ef eg.msfnz  d"* .bf eQhpxcon:-13.ef eS.tsincos  "0 * .bf4e4val:p-13hp+t.efpe4R d"B)*8.bfelon:p-13X.efeTOCkkk_$STATIC@k_$STATIC(kpakr2dmP  pakr2dmkpakcz\  pakczkmlfnh  mlfnke4fnt  e4fnke3fn  e3fn ke2fn  e2fnke1fn  e1fnke0fn  e0fnksign  signkasinz  asinz kphi4z  phi4z$kphi3z  phi3z,kphi2z  phi2z0kphi1z  phi1z4ka  l8ktsfnz  tsfnz<kqsfnz  qsfnz@kmsfnz  msfnzDktsincos(  tsincosHkw4  Lk.sin.pow.sqrt.asin.tan.cos.p_error.atan.log Tue Jan 13 14:16:32 2004 C for AIX Compiler Version 5.0.2.0 --- .adjust_lon.calc_utm_zoneadjust_lonadjust_loncalc_utm_zonecalc_utm_zone._savef28.__itrunc._restf28._savef26._restf27._savef14._restf14._savef22._restf22._savef24._restf24._restf2616628 443362 409712 1074020653 1032 20 644 8 report.o` @D)< ``.text`H".C .data`` 6@.bss.debugfd |!,A K`,A K`H8!@}N AP close_file|,/,!`D8H@8`8~ H`88@PaDK5`,@8`h8!`}N 88~ DK`HT@HK`,b 888c@ H m8`h8!`}H ,,/888aH@8`h8!`H@HKa`,A088~HKA`8`h8!`}Hh@HK`,b 888c@H 8`h8!`}H 8`h8!`}N Ainit|b 8c8!,A Ku` 88<,A(KU`8@KE`K9`H8!@}N Apblank|`f !aDH8et,`A K` 8~84,A0K`~8HDK`~K`h8!`}N A genrpt_long|`b !d,8c\A@D@K` 8~80,A@K`P ~8hdTPK`~K`x8!}N "Agenrpt| b !,8dA?2!@D@K` 88(,A@K` 8,?2!PTPK`K`x8!}N "Astparl1| 8$!`,A4@D@KA`8H PTPK%`8~8,,A`K `` ~8ld`K`p ~8tpK`~K`8!}N "Aoffsetp| b !,8d|A?2!@D@K!` 88,A@K` 8(?2!PTPK`K`x8!}N "Aorigin| b !,8dA?2!@D@KA` 88 ,A@K!` 80?2!PTPK`K`x8!}N "A true_scale| b !,8dA?2!@D@K]` 88,A@K=` 8T?2!PTPK`K `x8!}N "Acenlat| b !,8dA?2!@D@K}` 88,A@K]` 8?2!PTPK5`K)`x8!}N "Acenlon| b !,8d0A?2!@D@K` 88,A@K}` 8d?2!PTPKU`KI`x8!}N "A cenlonmer|Kb !P8T,A8?!@D@K`8=!PTPK`8~8$,A`K`~ 8?!`d`K]`~=8!ptpK=`~K1`ˡ}8!N "Astanparl|b 8c!,A@D@K` 88,AڏP6d8p.ڏ4ڏ68$.`dhlptx| "&*2:FNXbku~ (,48@DLPX\dhpt2 (4<:tx|   F $(,48<@DFTX!\ `#d)h4l%p&t+x,|#&%EF')+,0101EF2467:9:79 :;F$;(C,B0E4FFlpx| N $(,04<@LT`t X $,8<T` b4 @ k   $ H T u 0< ~ lp| L P \ ` h l p t       , 0 < @ H L P T l p |       $ , 4 L h l t | 0 4 < @ H P d h t |          $ 8 T X ` h p |  (,08<HP\lx   , .filegreport.c.text`.data`6.bss:t26=-3:t10=-13:t6=-4:t5=-1:t2=-5:t1=-11:t3=*-5:t7=f-1;&2>KXer!:t30=*29:t31=k-5:t32=*31:t77=Zk`F l".:0.bfe.efPe.initl "RF0init:F-1l.bfteaipr:p-4xjpr:p-4|efile:p3pfile:p3.efHe.pblankd $ N0d.bfle[.efecR $tX0.bfePA:p-4xS:p3|.efeX.genrpt $b00.bfeEA:p-13S:p3.efxeM.stparl1 %4k0>.bfe'A:p-13.efXe1.offsetpx %u0Mx.bfe5A:p-13B:p-13.efpeA.origin &~0\.bfeA:p-13.efTe_p &`0jp.bfe A:p-13.ef4e.cenlatT &0|T.bfleA:p-13.ef e.cenlon 4 ' 0 4.bf LeA:p-13.ef ek  '0 .bf ,eA:p-13.ef ev   '0 .bf eA:p-13B:p-13.ef e#.radius  (@0 .bf 0eA:p-13.ef e.radius2  (0 .bf eA:p-13B:p-13.ef e.ptitle ) 0.bfeA:p3h.efe.p_error )`0.bfeMwhat:p3xwhere:p3|.ef@eVTOC`kkk_$STATIC|k_$STATIClkk.bs,9 FW.esdk  `kinit  inithkpblank  pblankpk  tkgenrpt  genrptxkstparl1  stparl1|koffsetp  offsetpkorigin  origink  kcenlat  cenlatkcenlon(  cenlonk4  kstanparl@  stanparlkradiusL  radiuskradius2X  radius2kptitled  ptitlekp_errorp  p_errork.fclose.strlen.strcpy.printf.fopen.fprintfTue Jan 13 14:16:34 2004 C for AIX Compiler Version 5.0.2.0 --- .close_file.genrpt_long.true_scale.cenlonmer.stanparl_$STATIC_BSS_$STATIC_BSSclose_fileclose_filegenrpt_longgenrpt_longtrue_scaletrue_scalecenlonmercenlonmer._savef282650 446134 426612 1074020654 1032 20 644 7 paksz.o` @D> .textH^ 3 .data,@.bss,,.debug=t |K !p<C0 8`?$`eH@ÿAÿK`,hl`ß8 @08e$K`8\?}8!Kh D@@*?$KM`,<l``_8eL@08d8K!`8\?8!}Hl8L!H!*||@,K`8\?8!}K2*2 $8!}K"Atpakszpaksz-minpaksz-degpaksz-secIllegal DMS fieldIllegal DMS fieldIllegal DMS field?It$YDzBpEaـ__default_char:t20=-5 :t4=f-13; :t8=f-11; paksz:F-134(P6^.t8:6.8$8H<p<0*,& ( ,0 8DHLP X \`dhl p|22)'".)2) "&'$),*0+4*82L.\/`2.filegpaksz.c.text .data.bss,:t6=-5:t5=-11:t2=-4:t1=-13:t3=*-4:t7=*-5&:t21=Zk.paksz ^&2.bf e@ang:p-13iflg:p3fac:-13deg:-13min:-13sec:-13tmp:-13i:-4.efteqTOCkkk$_$STATICk^_$STATICkpaksz  pakszkFP.p_errorZdnTue Jan 13 14:16:37 2004 C for AIX Compiler Version 5.0.2.0 --- ._savef26.__itrunc._restf28._restf263468 449724 443362 1074020655 1032 20 644 7 sphdz.o` @D? .textHdX .data@.bss.debug ||`p,`!|fx@d$ ,$ c~H^N@@,?8`HX8!P}N @@$(KU`r 8`HX8!P}N H,(@,EG8`HX8!P}N F@,?8`HX8!P}N @0EG8`HX8!P}N (?H|0,@@8~,8 KQ`8cKA`8`HX8!P}N @4>?8`HX8!P}N ,@4>?8`HX8!P}N >T8|~H'8`HX8!P}N "AsphdzhReset to 0INFORMATIONALINFORMATIONALInvalid spheroid selectionAX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕?AXM˕Jo8Jmj__default_char:t26=-5:t6=ar0;0;21;-13:t7=ar0;0;21;-13 :t11=f-11; sphdz:F-1 r_major:p4 r_minor:p4 radius:p4 t_major:-13 t_minor:-13+65;==7-/):(,0:8<D$HT!X\`dhlpt x | WXWX+&( !W X$-($,&0'4(8W<XT+X-\.`/hWlX53457:;=>WXCFEFGWXJ M$L,M0N4W8XPTTRdSlTpWtX.filegsphdz.c.text.data.bss:t9=-5:t8=-11:t3=-13:t2=-4:t1=-1:t4=*-13:t5=f-1;-:t10=*-5@:t27=Zk.sphdz )M.bfexisph:p-4hparm:p4lYpftsxjsph:-4.efeTOCkkhk_$STATICk.bs/minor:V6Hmajor:V7.es_$STATICksphdz  sphdzk.sqrt.p_errorFTue Jan 13 14:16:38 2004 C for AIX Compiler Version 5.0.2.0 --- 2342 452188 446134 1074020656 1032 20 644 7 untfz.o` @D6 .textH, .data^@.bss\\.debug |,!/,HAh,A`c0T8|bAH|8`8 A4'X%@H8fK`8`MH8!@}N 8d0Ky`8`H8!@}N 8!@N "AuntfzXuntfz-unituntfz-codeUncompatable unit codesIllegal source or target unit code?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?__default_char:t24=-5:t5=ar0;0;5;-13:t6=ar0;0;5;5 :t10=f-11; untfz:F-4 inunit:p-4 outunit:p-4 factor:p3 factors:V6&.6%d4.40)'# $48<@DHLPTX\`lp .fileguntfz.c.text.data.bss\:t8=-5:t7=-11:t2=-13:t1=-4:t3=*-13:t4=f-4;,:t9=*-5<:t25=Zk.untfz #I.bfe,UXb\p`.efe=TOCkkXk_$STATICkx.bs)|X.es_$STATICkuntfz  untfzk.p_errorFTue Jan 13 14:16:39 2004 C for AIX Compiler Version 5.0.2.0 --- 8924 461232 449724 1074020659 1032 20 644 6 gctp.o` @D kp .text H@ .data  @.bss44kp.debug| |!<C0```:``a;:iaEK`|,A8!}8`N ,@̀b 8e8 8c,| d/`/h/p̒4/x /(/0/8/@/H/P/X/`/h/p/xC p;:,H|,A4T:|f|(@( | @c (|@ ,@;aĀ,AH`x|f#<@#< @#<(@#<0@#<8 @#<@(@#>>>8888bbbb&&&&&&&&&&          ;;;;MMMM`>`>`>`>xxxxNNNN̄̄̄̄rrrr    6666ZZZZkkkk~~~~6666     ::::aaaarrrr````\\\\ββββ4444RRRRjjjj=<=<=<=<OOOO````pppp~~~~<<<<zz@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@p@pttttttttttttttttttttttttttttttttttζζܼܼ\\  .alberforint.alberforalberforintalberfor.alberinvint.alberinvalberinvintalberinv.alconforint.alconforalconforintalconfor.alconinvint.alconinvalconinvintalconinv.azimforint.azimforazimforintazimfor.aziminvint.aziminvaziminvintaziminv.bceafor.bceaforintbceaforbceaforint.bceainv.bceainvintbceainvbceainvint.ceafor.ceaforintceaforceaforint.ceainv.ceainvintceainvceainvint.eqconforint.eqconforeqconforinteqconfor.eqconinvint.eqconinveqconinvinteqconinv.equiforint.equiforequiforintequifor.equiinvint.equiinvequiinvintequiinv.gnomforint.gnomforgnomforintgnomfor.gnominvint.gnominvgnominvintgnominv.goodforint.goodforgoodforintgoodfor.goodinvint.goodinvgoodinvintgoodinv.gvnspforint.gvnspforgvnspforintgvnspfor.gvnspinvint.gvnspinvgvnspinvintgvnspinv.hamforint.hamforhamforinthamfor.haminvint.haminvhaminvinthaminv.imolwforint.imolwforimolwforintimolwfor.imolwinvint.imolwinvimolwinvintimolwinv.Isin_for_free.Isin_fwd.isinusfor.Isin_for_init.isinusforinitIsin_for_freeIsin_fwdisinusforIsin_for_initisinusforinit.Isin_inv_free.Isin_inv.isinusinv.Isin_inv_init.isinusinvinitIsin_inv_freeIsin_invisinusinvIsin_inv_initisinusinvinit.lamazforint.lamazforlamazforintlamazfor.lamazinvint.lamazinvlamazinvintlamazinv.lamccforint.lamccforlamccforintlamccfor.lamccinvint.lamccinvlamccinvintlamccinv.merforint.merformerforintmerfor.merinvint.merinvmerinvintmerinv.millforint.millformillforintmillfor.millinvint.millinvmillinvintmillinv.molwforint.molwformolwforintmolwfor.molwinvint.molwinvmolwinvintmolwinv.obleqforint.obleqforobleqforintobleqfor.obleqinvint.obleqinvobleqinvintobleqinv.omerforint.omerforomerforintomerfor.omerinvint.omerinvomerinvintomerinv.orthforint.orthfororthforintorthfor.orthinvint.orthinvorthinvintorthinv.polyforint.polyforpolyforintpolyfor.polyinvint.polyinvpolyinvintpolyinv.psforint.psforpsforintpsfor.psinvint.psinvpsinvintpsinv.robforint.robforrobforintrobfor.robinvint.robinvrobinvintrobinv.sinforint.sinforsinforintsinfor.sininvint.sininvsininvintsininv.somforint.somforsomforintgsat_ratiosomfor.sominvint.sominvsominvintsominv.sterforint.sterforsterforintsterfor.sterinvint.sterinvsterinvintsterinv.stplnforint.stplnforstplnforintstplnfor.stplninvint.stplninvstplninvintstplninv.tmforint.tmfortmforinttmfor.tminvint.tminvtminvinttminv.utmforint.utmforutmforintutmfor.utminvint.utminvutminvintutminv.vandgforint.vandgforvandgforintvandgfor.vandginvint.vandginvvandginvintvandginv.wivforint.wivforwivforintwivfor.wivinvint.wivinvwivinvintwivinv.wviiforint.wviiforwviiforintwviifor.wviiinvint.wviiinvwviiinvintwviiinv.for_initfor_init.inv_initinv_init.pakr2dm.pakcz.mlfn.e4fn.e3fn.e2fn.e1fn.e0fn.sign.asinz.phi4z.phi3z.phi2z.phi1z.adjust_lon.tsfnz.qsfnz.msfnz.tsincos.calc_utm_zonepakr2dmpakczmlfne4fne3fne2fne1fne0fnsignasinzphi4zphi3zphi2zphi1zadjust_lontsfnzqsfnzmsfnztsincoscalc_utm_zone.close_file.init.pblank.genrpt_long.genrpt.stparl1.offsetp.origin.true_scale.cenlat.cenlon.cenlonmer.stanparl.radius.radius2.ptitle.p_errorclose_fileinitpblankgenrpt_longgenrptstparl1offsetporigintrue_scalecenlatcenloncenlonmerstanparlradiusradius2ptitlep_error.pakszpaksz.sphdzsphdz.untfzuntfz.gctpgctp.gctp_gctp_hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibHP.a0000755000175000017500000463405412024715435020653 0ustar amckinstryamckinstry! / 1074014521 0 0 0 10760 ` @LKK  Pa1 h`Xxx P H(8HP@h*5 _<DZ D .$L/8*LBH&Hh'(LpzH;8zD|3!U8p,H 0lor0 lnt0$lnv04 lntH0Dlor 0T lnt0dlnvp0t lnt0zor0 znt0znv0 znt03cor0 cnt0cnv0 cnt(03eor0 ent0 env`0 ent0,s qor0< qnt0Ls qnv0\ qnth0l qor0x qnt0 qnv0 qnt0nor0 nnt0nnv0 nnt0oor00 ont0onv0 ontH0vor0$ vnt04vnv0D vnt0Taorx0` ant0panv0| ant 0mor0 mnt0mnv0 mnt (0 -swd 0c sor0 sitp0  see0; sit 0 -(snv@08c snv0H sit @0 \ see 0p; sit 0aor0 ant0anvX0 ant X0aor 00 ant 0anv 0 ant 0eor 0 ent0 env0, ent 0< ior 0H int H0X!inv 0d! int80t"oor 0" ont 0#onv 0# ont0$bor80$ bnt0%bnv0% bntx0&mor0& mnt0'mnv x0' mnt0$(ror 00( rnt0@)rnv0L) rnt0\3*oor0h* ont(0x+onv0+ ontX0,sorh0,snt `0-snvP0-snt0[.oor`0. ont p0[/onv0/ ont00ior 00 int 0 1inv0,1 int80<2oorp0H2 ontGX2 sio 0h3onv0t3 ont04tor 804 tntP05tnv05 tnt06torP0 U6 tnt07tnv 0 U7 tnt@08mor08mnt0{9mnvh0$9mnt04:tor0@: tnt0P;tnv0\; tnt0l<aor0|< ant`0=anv0= ant 0>ior0> int0?invp0? int0@vor0@ vntX0Avnvx0 A vnt`0 UBoit0 U,Cnit0< #D ane0P Dlfn0\ ;D4fn00h D3fn0t D2fn0 D1fn00 cD0fn 0 D don0 Dign0 +Dsnz0 Dadm0 Dacz0;Dh4z0Dh3z 0Dh2z0Dh1z0 Dsnz0 Dsnz0 KDsnz0 ,Dsos00 8 Ebnk0 @ D E engP0 T sEeptH0 `Eftp h0 l Etl180 x CEtrl0 E rle0 Erin0 cEeat 0 E eerp0 #Eeon@0 kEas20 Eaus0 cEtle0 #E lle(0 U Enit0 @ E_or0 Fasz(0 U $Gpdz0 Q 0Hnfz0 U <Ictp0 T HJcp_@alberfor alberforintalberinv alberinvintalconfor alconforintalconinv alconinvintazimfor azimforintaziminv aziminvintbceafor bceaforintbceainv bceainvintceafor ceaforintceainv ceainvinteqconfor eqconforinteqconinv eqconinvintequifor equiforintequiinv equiinvintgnomfor gnomforintgnominv gnominvintgoodfor goodforintgoodinv goodinvintgvnspfor gvnspforintgvnspinv gvnspinvinthamfor hamforinthaminv haminvintimolwfor imolwforintimolwinv imolwinvintIsin_fwd isinusfor Isin_for_init Isin_for_free isinusforinitIsin_inv isinusinv Isin_inv_init Isin_inv_free isinusinvinitlamazfor lamazforintlamazinv lamazinvintlamccfor lamccforintlamccinv lamccinvintmerfor merforintmerinv merinvintmillfor millforintmillinv millinvintmolwfor molwforintmolwinv molwinvintobleqfor obleqforintobleqinv obleqinvintomerfor omerforintomerinv omerinvintorthfor orthforintorthinv orthinvintpolyfor polyforintpolyinv polyinvintpsforpsforintpsinvpsinvintrobfor robforintrobinv robinvintsinfor sinforintsininv sininvintsomfor somforint gsat_ratiosominv sominvintsterfor sterforintsterinv sterinvintstplnfor stplnforintstplninv stplninvinttmfortmforinttminvtminvintutmfor utmforintutminv utminvintvandgfor vandgforintvandginv vandginvintwivfor wivforintwivinv wivinvintwviifor wviiforintwviiinv wviiinvintfor_initinv_init calc_utm_zonemlfne4fne3fne2fne1fne0fn adjust_lonsigntsfnzpakr2dmpakczphi4zphi3zphi2zphi1zqsfnzmsfnzasinztsincospblank genrpt_longgenrptoffsetpstparl1stanparl true_scaleorigincenlat cenlonmercenlonradius2radiusptitle close_fileinitp_errorpakszsphdzuntfzgctpgctp_alberfor.o/ 1074014813 1032 20 100666 13600 ` 15 @   1L,]3$G!"k?/,/-/.///0/1/2/3/4/5o`k>k>7=a0H7=,+`,4# ,0H/ / ,q,a1@,`"6 /0 0$ *+`49@4:4>2n/+`474$`.k>,,0N@0.,1H7>@7?7?!7>/7?.p,.@2`H7?!7>,A7?,0H/0@,10H7>1H@7?7?!7>.7?,/@/7?!7>/7?,0H/P@.0H7>1H@7?7?!7>/7?,/0@/0H@1.0 0$ *21N0.0n,p@,p21N,p2N2FN0 , @1(.K>+`,p4:.a0N0n@,K>,@/A1H@1H@,`@1H,q@,a4K=K>K>O>/05/04/03/02/01/00/0//0./0-@/0,k?/,/-ok?)0H 0H7?A@7?Q7?a+`/7?/4#`,q@/1+`,`4$ ,0N@0.+`,48,/a1&n @1H,0N @1H,1NK>1H0@.,a1N,4K>0.0/@K>K?)O?!/0-@/0,=|׽?Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA `PX!,X  8X!0D>(0g@lP>(P@pH\$$l$ $ |8| 8|hh##  s,$$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ |h ;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      1234567EFGHIJK  @ @ )@ @ ,@ &@ @ @  @ Q  / @%@!0@#5@%:@'?@)D@+J@- AP@AW@A^ @Ab@Ae@Aj!@An#@Ar%@Av"@Az$@ F .1012345678Q ~^9 @ 3V@ 2YW1@Z0@\:A4@A5@A8@AB@A?@ B`DREFGHIJKL ="&& (0(P11;\<p=p>pP?F@B`BGDEFGHJKMN(P8RHSUWYZ\]^ b0c8dHeTf\gdip`iHjt`jI>J K!L#M'N'OPnQ0nRPs`yz({L|}~`k`l?m'nbo$p(q(rs`talberfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorce3rhns0lon_centerfalse_eastingfalse_northingalberforintfalse_northfalse_eastlat0lon0lat2lat1r_minr_majsin_pocos_poconestempms1ms2qs0qs1qs2alberforyxlatlonsin_phicos_phiqsthetarh1A\JA@PCCCCCCC@G ll<;p@h@|px=>@p9@@@8@8!FD2A2YGH/6(@(KxKAYA(SA8PA_A\AV=@; 0@0E< 8^c @ A|DHCLCHKK@(K@@@0@AG@AD@@ @C( ;<=Uf>DEJPYd;ӽ<=Z\]^egP<;Խ=Z\]^egP=>PYdֽJ;<>>;k =>GY@VV@2VB BiFGDս^cPPEֽHMNRSW]^cP DӽF^c EUfGH;kGHHJJ;x MKKM; NMN; NPP;x R; SRS; SUU;x W; WY;kZZ\]ӽ^]^;kbVVb1 ^cc; dd; e;hf;hgg i;Bj B(yy;x z{|}~z{PPz; {|}~PP;kP|P{|;k|};k~;k}~~># #D[%%_@% %     A   1%      @p $  80( 8P \@dp|0alberfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@alberfor alberforint@ SB$alberfor $gntt_label $lntt_label alberforintS$20$alberforintfabsM$2p_errorsqrttsincosmsfnzqsfnzptitleradius2stanparl cenlonmeroriginoffsetpalberfor adjust_lonsincosalberinv.o/ 1074014814 1032 20 100666 15544 ` 1 (<@P XX (82:x@ L)lG!:k?/,/-/.///0/1/2/3/4/5o`k>k>k>k>7=a0H7=,+`,4# ,0H/A /Q ,q,a1@,`"`6 /0 0$ *+`49@4:@4>2n/+`7?!4%4&`,,,0N0.@,,1H7?@7?,7?,,.@2`H,7?,0H,@/0H7?1H@7?,7?,,@/1,7?,0H,@/0H7?1H@7?,7?,,@/0H@1.0 0$ *21N0.0n,p@,p21N,p2N2FN0 , @1(.,+`,p4:0N0n@,,@,1H@1H@,`@1H,q@,a4K=K>K>K>K>O>/05/04/03/02/01/00/0//0./0-@/0,k?/,/-/.///0o0k>k>k>k>+`4%`4# , ,q,a1G.,p 0. 0K>1 k?1N1N00$  @ 4 0H,1 0$ ,,,,,p,`1n@0K>4/ K>YK>K>K>K>O>/00/0//0./0-@/0,@ 4 ,0N0H 1 0$ 1N@1N0H +`,p4?,0N/, ,1n 0 1)N 0. 1dn0$  ,, 4`1.,01.0n@0N2N,0n@1.0H@1H@1.0 0$ 7?,k?@1H,K?=K>Y},p7?1H@k?,K?=K>Y-,p=|׽??=|׽??!TD-!TD-Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREA `PX!,X 0HH8X!D4>(xl@tP3>(P@xP\ L$$lC p $ |Dl 8lF@@V!0X''  `2)l$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ l@ ;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      1234567fghijkl  @ @ ,@ @ @ /@ )@ @ @  @ Q 1 @(@#3@%8@'=@)B@+G@-M@/ AS!@AZ"@Aa#@Ae@Aj$@An&@Ar(@Av%@Az'@ F .3012345678Q ~^9 @ 8V@ 7YW5@Z3@\:yAC@AP@AaE@AJ@A9 @ CkS VmD{`} cpE Ir JoK Mu P`R`Rhyo]ipjunrz ="&& ,0,P53?d@xAxBxPCFDF`FGHIJKLNOQR$T4VDWlY|[]^`abfgh$i0j8k@mL`mHnP`nI>J K!L#M'N'O PrQ0rRPw`dd@dddPkt`lPoPr`s`tPu`v`wPw`Pm`n 0TdPolPp`q`t`wPw`PoPp`q`tPu`vPu`v`wPw`Pu`v`w`x?'b$((!`"alberinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorce3esrhns0lon_centerfalse_eastingfalse_northingalberinvintfalse_northfalse_eastlat0lon0lat2lat1r_minr_majsin_pocos_pocontempms1ms2qs0qs1qs2alberinvlatlonyxrh1qsthetaflagAdJAHPCCCCCC;@? tt@?x@pUxAB@xLH@H@@@!JH2A2S(KL(@(Q0@0KKAYA$SA4PAl_A|\AVA@N8@8= bg @ !P`GAdtG!T`JAdtJCt Ct#``Cdt@t@t @t@t MAMp/Tl;!  2 2A20lDA D@tH@t8AdlJ@t0@t(@tE( ?@AYjBHINT]h?ӽ@A^`abikP@?ԽA^`abikPABT]hֽN?@BB;k ABK]DVVD2VF FmJKHIֽbgPսKOQRVW[`HIJbgPKLQRVW[abP H IYjKӽL;kKLNN;x QOQ; RQR; RTT;x V; WVW; WYY;x [; [];k^^`aӽbab;kfVVf1 bgg; hh; i;hj;hkk m;Fn( PPPӽӽ;k  ;k  ;kԽ;PӽPֽӽ;k ;k;k;k;ӽ;" #Da%%#@% %      A   %    I     @x $  80( 8P \@dp|0  (4alberinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@alberinv alberinvint@ SB$alberinv $gntt_label $lntt_label alberinvintS$21$alberinvintfabsM$2p_errorsqrttsincosmsfnzqsfnzptitleradius2stanparl cenlonmeroriginoffsetpalberinv S$22$alberinvatan2logphi1z adjust_lonalconfor.o/ 1074014816 1032 20 100666 17564 ` 1 <D@0 ` ` <@8B`< `.LG!Lk?/,/-/.//ok?Ik?Qk?Yk?ak?i 4 7>, +`, 0H.q4$`, 4#,q4 ,a4%,4, h6.a,- @,,4`/  4/1 +`/!47.4 . 48 .4=`. 4:,0H/4 /0 ///---,///A /Q//@/, ", 6,.1,1N@0N, 0H4<1..,1 /0n@0N@1N1N404 @0.+`@4:,q@,a@,@,,@,4K>K?iK?aK?YK?QK?IO?A/0//0./0-@/0,k?/,/-/.///0/1o k=k=+`4#`0H ,p 4 @0.0H7>@7>@1H,+` @4% 4U,1.0N, @0N,1.0H, G0n@@@2$N1N7>7>@0.7>,.p+`,480N.q .`2N 17N .a2N47p1+N+`*H?77`07?2.41n. / ,_ , 1N3XN0N0N0N0c27?+`7P77? 4:P4(@P>>(R@p\>(P@Ph `$$xF $ G 8I|_$ a* l* l i}8.L$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@  ;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      -./0123]^_`abc  @ @ @ @  @ @` @@  8` @@  $@  &@ (@ *  Q ,5 8@D@/O@1U@3 A[@A^"@Ab!@ *7,+-./01234Q hT5 x@ q+L@ s*OMu)@Py(@R6A}.@A/@A0@A6@A7@Ab3@A<@A=@A@@AA@AF@AJ@AL@AQ@A[@A_@A^4@AC@AV GK P~ Q} VH}Uhz~\n}~ ="&&" 1*01+P67=H>?@ABCEFHIJKLMN O P Q RSUV<X]^_`ab`b>c`c?>@ A!B#C'D'E#FgG0gHPmV4HX<LLXXXXXXP}P~``P}P~   $$(``,4P}4<<<@P~DLXX\\```dlP}ltttxP~|``P}P~``,0008P`P`?'b$(($`%alconfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorlon_centerlat_centerfalse_eastingfalse_northingacoefbcoefsin_p26cos_p26enalconforintfalse_northfalse_eastr_minr_majeschiesphialconforyxlatlondlonsinloncoslonsinphicosphigsxpyparaibrbiarnainjAH8HCHC@i@H d|>=@@@`@k l|?=((@h(m @F @ , tA=88@p8 TB=00@P0D xC=@tK1@A<J/Y@V]/8@:@HxA4DCxCxx@x8A4D,Kx@KxHx@xAP/Y/KxPKxXx@xx@xAH/d2X`2A0XnAL$/!HH5AL5AX8x@x;(;!eA;,,ab>> T>qA>AA$XA0H2AAl!,XA\ etb8bAebbet|eH`e<De(e ebYbx@xHx@x(x@x ( ,ABEHIJKLMOPQRSVȅABEH=>?@B=>?@ABCFUVX^_`aQA?ӽ@սBUV_`aQ B=>^Q =C >=Խ?@ABCFUVX^_`a?QRSV ACQ@EFV;k@HIJKLMOPJHIսKLMNOPQRSPIHԽJKP ӽHFUVQ ӽJNOPP ӽIQRSP ӽKLMPFN VLOPMQRSU ӽOӽPӽLӽMӽQӽRU;k ӽSVUUV;k; ;k XQQX;x VX]\]1 \^^;_;h`;haa b;c /À(( QQ;k;x ;kԽQՖQՖ;k; ;k ;x PӽPսQQPPPPPPPPPսQQ #DO%"%R%c# % %         !%  )  A     @ @ $ ( 808 Hx`lt| @ 0  ,0alconfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@alconfor alconforint@ BS$alconfor SB$alconfor $gntt_label $lntt_label alconforintS$23$alconforintsqrtsintanpowatantsincosM$2ptitleradius2cenloncenlatoffsetpS$23DD$alconforintalconfor S$24$alconfor adjust_lonS$24DD$alconforalconinv.o/ 1074014818 1032 20 100666 23172 ` 1 \Z@  P \UI4 Xl ;G!7|k?/,/-/.//ok?Ik?Qk?Yk?ak?i 4 7>, +`, 0H.q4$`, 4#,q4 ,a4%,4, h6.a,- @,,4`/  4/1 +`/!47.4 . 48 .4=`. 4:,0H/4 /0 ///---,///A /Q//@/, ", 6,.1,1N@0N, 0H4<1..,1 /0n@0N@1N1N404 @0.+`@4:,q@,a@,@,,@,4K>K?iK?aK?YK?QK?IO?A/0//0./0-@/0,k?/,/-/.///0/1/2/3/4/5o`kX+!֙Ɨ0. 12 19N239N1&N0N U :"2n1$n@1 0H@2`H1 C24 -0 0$ O1N!`1N5j7=a-@0-@-!@0N1N7?A@7?1,pK;-!@,0 0$ ,`K;ˀ/@7?a,,!7=a- 7?!1N ,P,40N0N 1 n@174 0H.#7.2..0N@2H,7=2H50N@,0&7=, ,0&0H13N02F. 1 n@@@2N1N0.0.A2@@0 0$ K;7=a/!7?a-7?!, , .2N1N /1N0N1N@3.,p@04(,+`49p@4:04K;K( c@tP >(R@xp\>(P@Ph $$x ! $  " l 8 l $$$ :,D <3&43&4 DI4;$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/ @  l;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      -./0123  @ @ @ @  @ @` @@  8` @@  $@  &@ (@ *  Q ,5 8@D@/O@1U@3 A[@A^"@Ab!@ *7,+-./01234Q hT5 @@ q+L@ u*OMy)@P{(@R6Ab@A=@A}>@AM@AQ@AI@AB@Aa@AX@Aq@Aj@A}@A@A@A@A@A@A@A@A2@A5@A@A@A@A@A@A@A@A@A^@A@A@Ax A6 =IM R S݀ ߀ V HUatVhuV   ="&&" 1*01+P67=H>?@ABCEFHIJKLMN O P Q RSTU<W\]^_`a`a>b`b?>@ A!B#C'D'E#FfG0fHPlVXPP ,,P4t``PP``PP ``PP``P   $P(4Phhtt``PP``PP``PP``P P8PP\\h``lpttPɀ`ˀ`ˀ8DP\P׀px`ـP߀DDDPL```tPPɀ`ˀ`ˀ`PlVP߀P,<````?'b$(($`%alconinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorlon_centerlat_centerfalse_eastingfalse_northingacoefbcoefsin_p26cos_p26enalconinvintfalse_northfalse_eastr_minr_majeschiesphialconinvlatlonyxsbrbiaiarcicrdidrarnaincrncinfxyrfxyifpxyrfpxyixpypdendxpdypdszcoszsinzrhdphiphijnnAH8HCHC@.@H d|>=@@@`@, l|?=((@h(0 @F @  tA=88@p8 TB=00@P0@ xC=@tK@A<J/Y@U\/@@AJAMCCȀ@@(@@H@@ DDADAG!@D`!!|aA/!,A,@@hhbbb Hb!,SbA5;;T;a4VPh5h5/A5XXeeppee/|eADe!`hA!A8A!xA! APA!A!AAA!dl2pp2!2!|22! 2!22A2Th88l8 8!x88A8\h>>t> >!>>Y>lt!A ShhA,ShVVkk,k (k kk8VY,4V!LhAh!\kAkA/A;AkA2A,A/AY/Y/A,ADL/K@K@@@8@@0@@@@APP`PDLPAP@@C`ADP/( ,ABEHIJKLMOPQRSUȅABEH=>?@B=>?@ABCFTUW]^_`QA?ӽ@սBTU^_`Q B=>]Q =C >=Խ?@ABCFTUW]^_`?QRSU ACQ@EFU;k@HIJKLMOPJHIսKLMNOPQRSPIHԽJKP ӽHFTUQ ӽJNOPP ӽIQRSP ӽKLMPFN ULOPMQRST ӽOӽPӽLӽMӽQӽRT;k ӽSUTTU;k; ;k WQQW;x UW\\\1 \]];^;h_;h`` a;b 1K(@QսQQ½ý˽ӽֽ蔽½ÔӽԽP½PPPPQȽQսؽ ӽ         սؽ ӽ         սؽ ӽ         սؽ ӽ         սؽ ӽ         Խ½;k;k˽ӽ֚֔Ԛս;k;k ӽ;x ӽ;k ٽ˽;k޽;k;k; ;k ;k ;;k ˽ٽ\\2\ ˽ٽ\\2\ ˽ٽ## ##DO%"%R%y'# % %         !%   q     !  @x @ $ ( 808 H@`lt| @ 0 (4@L \ alconinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@alconinv alconinvint@ BS$alconinv SB$alconinv $gntt_label $lntt_label alconinvintS$23$alconinvintsqrtsintanpowatantsincosM$2ptitleradius2cenloncenlatoffsetpS$23DD$alconinvintalconinv S$24$alconinvfabsp_errorasinzatan2 adjust_lonS$24DD$alconinvazimfor.o/ 1074014819 1032 20 100666 11852 ` 1d.L@  d*',\!4G!8k?ok?7?!7>+`/4#`.4$ /48,`0H,47,,q@,a+`@4:@,`@,q@,a,@,4K?YK?@O?k?/,/-/.//ok>Ik>Qk>Y+`4#`0H ,q7>@0.0H7>1H@7>@1H+`,4% 0H ,,,0N0N 1N 1*@1H#7 , @0.,0 0$ z1 0$ ,+`,`4907?@0N+`7?@494@1H0H @1H1n 1H,,`1N@0N,1NK=40K=/, , ,,1KN ,`,0N1N B1hN0.K=K>YK>QK>IO>A/0//0./0-@/0,?=|׽@ !TD-AZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-for `PX!,X!8qX  8 D>(P@\P>(P@`8\$$l $ | 88 8D!\!\``T'!4$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ 8`:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       !>?@ABCD  @ @  @  @ @ @  @ Q % @*@5@@@!K@# ' !"Q Q># @ Y6@ [97]@:a@<$Ae @Al!@As@Ax"@A(@A'@A,@A.@`O Q@S*- 3X 4W5 8[ <@>2?@ABCDEF ="&& &0&P,'01D2H3H4H6H:P;\<d=l>t?`?(@`@)>* +!,#-'.'/0E10E2PJ@V0WLXTYlZP[W\]P^Xb_`ab`bY`bZPf[gh`h\j k@mt`m]nt`n^?_'`ba$b(c(de`fazimfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12azimforintfalse_northfalse_eastcenter_latcenter_lonr_majazimforyxlatlonsinphicosphidloncoslonkspgconzmessHHCCCx*@0@(T HP2: @H 1 <D30H@8/ DD41H@@#@%@HA0hDCCȀ@(ADJK@KHAlD@@AM Ga\ZG@05Y_a5AG@@(T012463012ֽ46;<=>P2601ֽ;<=P3ӽ4>P6P 0636P4 16;x 2:U:1U;;h <;h=;h >> ?; @( V_jkPPӽXYjkV;k VWW;xX;kYjkPP XYY Z;kԽ\_\ZZ;k]_`UU`:ӽ_`aUa2Ub bmg;kӽgh;khj;k mbjkjk kn#0##DO%F% (% %      !%     @` $  80 0 <@DP\lx0 8azimfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@azimfor azimforint@ SB$azimfor $gntt_label $lntt_label azimforinttsincosM$2ptitleradius cenlonmeroriginoffsetpazimfor S$19$azimfor adjust_loncosfabssprintfp_erroracossinaziminv.o/ 1074014820 1032 20 100666 12200 ` 1/@ ,$($-!G!7k?ok?7?!7>+`/4#`.4$ /48,`0H,47,,q@,a+`@4:@,`@,q@,a,@,4K?YK?@O?k?/,/-/.//o@k>k>k>k>+`4% ,,K>0. 0.1N1N@0+`#0H 4#`7 ,`,0N1 0$ "J1n7?q@7?,q1HK>,@,0 0$ "7?a,/7?.,1N0N 0N 1-n @1K,@,a,@0.0 0$ !@,,7?/!0N0.@1H0 0$ "@1H0 0$ !7?a,/P1N1N@0N,q@0,4K>YK>K>K>K>O>/0//0./0-@/0,+`49`@4:0}4,aˀe,,a0 0$ R"1H6`.a@1N,q@0ˀ,#1H7`.@1N,q@0.ˀ,ˀK>Y@ !TD-=|׽?!TD-AZIMUTHAL EQUIDISTANTInput data errorazim-inv `PX!,X!<<8[X P((Du>(x0@<Pv>(P@@8\$$l4 $ |H 8x|x""  Y($!$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ x :AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       !KLMNOPQ  @ @  @  @ @ @  @ Q % @*@5@@@!K@# ' !"Q Q># 8@ Y6@ ]97a@:c@<$WAe!@Ah$@Aj%@Ao&@At/@7 :K; >M?A DPE HR IO 4@N2@6OPQRSTUV ="&& &0&P,'01D2H3H4H6H:P;\<d=l>t?`?(@`@)>* +!,#-'.'/0E10E2PJ@R@S@TDUpZ[\]bcdqr$tLv|`vUw|PJ@PVKWX`XLP^M_```NPeOfPgPhi`iQPlRmn,`nS`nTs4v8`vUw8`wV?Y'Zb[$\(](^_``aziminv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12aziminvintfalse_northfalse_eastcenter_latcenter_lonr_majaziminvlatlonyxrhzsinzcoszconHHCCCx"@0'@()T HP2: @H  <D30H@8 DD41H@@+@-@A@8DAD JC8 C88@88@8A`8G8@80A/K8K88@8(8@8 8@88@8$8JYcd/(T012463012ֽ46;<=>P2601ֽ;<=P3ӽ4>P6P 0636P4 16;x 2:U:1U;;h <;h=;h >> ?; @( RSbqtPPRSRST;k UZ\_cfhmtPU]cdrTUZ\_cfhmtPU]cdrUZZ[[;x\]Խhmt]dr;k\]b ;kbc;kd;kcdq;kqֽr;k!r;kt;;kt vX`insw WUUW2UX X`insv_ `Xinsv_fh;;kiX`hnsvӽhm;;knX`imsvӽmֽ sX`invw ###DO%F% (% %      !%       @@ $  80 0 <@DP\lx0 aziminv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@aziminv aziminvint@ SB$aziminv $gntt_label $lntt_label aziminvinttsincosM$2ptitleradius cenlonmeroriginoffsetpaziminv S$19$aziminvsqrtp_errorfabsasinzatan2 adjust_lonsinbceafor.o/ 1074014822 1032 20 100666 12696 ` 11@P .P*_/$8G!(Tk?/,ok?k?!0n 7>7>a/+`/# . 4#`.7% , 4$,`,p,q ,a,,1JN1.@,,,,0 0$ +`4h8h @,`+`,`4% @,,,0N0N@1.,+`4:0n@,,@,@,p@,`,a@,q4K>K?!K?O?@/0,k?/,/-/.///0ok?Y+`4#`0H ,p@0.0H @1H+`H6 +`@,a4?4= //K>1NK>0N 0 . //,q0N1n 0 /  4K>K?YO?Q/00/0//0./0-@/0,"4$6 ,.,0N . 0. Q2N1jn0N0.0.0n0n@@+`,43 2N.q,aK>yK>1N 1N0 / ,.q,q1N0N 0n 0m/@?>h?@Cylinderical Equal Area `PX!,,,X   8X!l0lD>(8@P>(P@`\$$l $ | 8`$`<!!  *$8$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/ @ ` :AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      ()*+,-.BCDEFGH  @ @  @ @  @ @ @ @ %@ )@  ,@ #"  Q '1 (2@>@'I@)T@+_@-e@/ Ak@ 6 8 %3'#()*+,-./Q pP0 h@ x3H@ z2KI|1@L0@N1_A6@A7@AF@5 8Y= A[ :RCDR<DEFGHIJK ="&&# 2"02#P93>?\@`A`B`C`E`F`GhI|PJ6K`K7PN8O`O9RSTXYZ[\]`]:^`^;>< =!>#?'@'A$BcC0cDPhRo,p<rDPsYtTu`uZ`]PhRPx[y|@}H`}\`]`^?a'bbc$d(e(f%g`&hbceafor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minoreeslon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzindbceaforintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempbceaforyxlatlondlonsinphiqH(H(CHC@C8C0(<@X(@P(4 P\@>8`8@L8( L\A>0`0@H0(@ T\B>(`(@P((: X\C> ` @T !\E>A`l>(Bt@dpFG@@`@(D@H(8(@(>(RS@((@(G(TY@HhA,DChLChHh@h8A<GA<@,h@hh@h h@hXh@hh@h(h@h@h@hHA@`,h@h#(E>?@ABCֽRSZ[\P@FITB@AսCRSZ[\PCFIT>?EFGITYP A @BC > ?FӽG;kFGIGӽIOPKPӽOPR;kԽSTPP;k RT ST;kXXXX1 TYY;  Z;h  [;h \\ ]; ^(Xotu|}PPo;ko p;krPPy|}PtӽuPPtuuy}Խ|Pԏ;kPPy||}}Dm%^%e#0% %           !%         @ $  80  0DPX `@ht03 bceafor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@bceafor bceaforint@ SB$bceafor $gntt_label $lntt_label bceaforintS$23$bceaforintsqrtcossinM$2ptitleradius2 cenlonmer true_scaleoffsetpbceafor S$24$bceafor adjust_lonlogbceainv.o/ 1074014823 1032 20 100666 13536 ` 14@x 1x-t2%G!/k?/,/-/.//ok?Ik?Qk?Y0n 7>7>a.+`.# / 4%/7& , 4$`,4#,, ,,`,q1JN1.@,,,,a0 0N,0N0$ !`,+`4,h84& ,@,,@,,,0N0N@1.,+`4:0n@,,`@,q@,@,,@,4K>K?YK?QK?IO?A/0//0./0-@/0,1. , 1.+`1nh 0 0N1 n1n@@1N+`4& 1.1N=,k?/,/-/.//ok?I+`4#`H4,q,`0.  0.,a+`4$,0N1n@@K>+`48/,a,/K>0N1n @0@,`#+`7 47 ,4:..0N/@k?Y0N 0N k?Q1*n@@+`, 4#0H ,p ,1N1*n,`,,q0N 2N0@3"1N6`,`, 1,,1N,q 0N1&N @1 "`1N6y,/!1,q1N@1N K>1NK?YK?Q1., /,a0N1n @0K>,@4K>K?IO?A/0//0./0-@/0,?>h@@@? ` `?B*B*?[[?U@?-m@Cylinderical Equal Area `PX!,BX ``8BX!(DC>(`@P;>(P@x\$$l< $ |= 8?<OQ#4T#4 @T @Y-t%$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/%@  @:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      ,-./012FGHIJKL  @ @  @ @ "@ $@  @ @ @  @ ,@ "0@ *2@ -*@ 0(  Q 47 ?@K@-V@/a@1l@3r@5 BAx@ <( +> %9-)9'./012345Q }X6 @ :P@ 9SQ7@T6@V7AK@; >]? C_ EZGLHIJKLMNO ="&&# 5(05)P<9A,BpCtDtEtFtItJtK|LMOPP<QR`R=Z[\`abcd$e0`e@f4P<9PU>V\Wx`W?`e@`fA>D E!F#G'H'I$JkK0kLPpZuv4x4Py]z<|l`|^P_```a`b?c'dbe$f(g(h%i`&jbceainv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minoreese_p4e_p6lon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzqpindbceainvintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempbceainvlatlonyxbetaHHCHC@C8C0C@p@hE \pCA@t@@X@ dpDA8t8@`8= hpEA0t0@d0; lpFA(t(@h(!(pI>At>LXxJKX@tX@`N@PPHMQH@H?@I@AX Z[ @ @G X\a@A4D@X,Y4<vz,CLCH@(@0@@ @p@@@@AtG@X@P@H(IABCDEFABIKOWaPDJORW\ECJKLMW\bPFJORW\JDEFZ[\cdP CABIKOWaP DEF A BJӽK;kJOLMWKOLLMOMQPRӽQPR[\PRZ;kԽ[;k Z\ [\;k`YY`1 \aa;  b;h  c;h dd e;fWVPӽVPW;kԽ[\PPW(uvz|PPxPuvuxvzӽ|PP;kPPz|;k|ԽPՐPP;kPP ;k;kD%d%S#0% %              )%           @ $  80  0DPX` h@p|0 bceainv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@bceainv bceainvint@ SB$bceainv $gntt_label $lntt_label bceainvintS$26$bceainvintsqrtlogcossinM$2ptitleradius2 cenlonmer true_scaleoffsetpbceainv S$27$bceainvasin adjust_lonceafor.o/ 1074014825 1032 20 100666 12688 ` 11@P .L*_/$4G!(`k?/,ok?k?!0n 7>7>a/+`/# . 4#`.7% , 4$,`,p,q ,a,,1JN1.@,,,,0 0$ +`4h8h @,`+`,`4% @,,,0N0N@1.,+`4:0n@,,@,@,p@,`,a@,q4K>K?!K?O?@/0,k?/,/-/.///0ok?Y+`4#`0H ,p@0.0H @1H+`H6 +`@,a4?4= //K>1NK>0N 0 . //,q0N1n 0 /  4K>K?YO?Q/00/0//0./0-@/0,"4$6 ,.,0N . 0. Q2N1jn0N0.0.0n0n@@+`,43 2N.q,aK>yK>1N 1N0 / ,.q,q1N0N 0n 0m/@?>h?@Cylinderical Equal Area `PX!,,,X   8X!l0lD>(8@P>(P@`\$$l $ | 8`$`<!!  *$4$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ ` 9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      ()*+,-.BCDEFGH  @ @  @ @  @ @ @ @ %@ )@ ,@ ""  Q &1 (0@<@'G@)R@+]@-c@/ Ai@ 6 8 %3'#()*+,-./Q nP0 h@ u3H@ w2KIy1@L}0@N1_A6@A7@AF@5 8Y= A[ :RCDR<DEFGHIJK ="&&" 1"01#P83=>\?`@`A`B`D`E`FhH|PI6J`J7PM8N`N9QRSWXYZ[\`\:]`];>< =!>#?'@'A#BbC0bDPgRn,o<qDPrYsTt`tZ`]PgRPw[x{@|H`|\`]`^?a'bbc$d(e(f$g`%hceafor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minoreeslon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzindceaforintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempceaforyxlatlondlonsinphiqH(H(CHC@C8C0(<@X(@P(4 P\?=8`8@L8( L\@=0`0@H0(@ T\A=(`(@P((: X\B= ` @T !\D>A`l>(Bt@dpEF@@`@(D@H(8(@(>(QR@((@(G(SX@HhA,DChLChHh@h8A<GA<@,h@hh@h h@hXh@hh@h(h@h@h@hHA@`,h@h#(D=>?@ABֽQRYZ[P?EHSA?@սBQRYZ[PBEHS=>DEFHSXP @ ?AB = >EӽF;kEFHFӽHNPJPӽNPQ;kԽRSPP;k QS RS;kWXXW1 SXX;  Y;h  Z;h [[ \; ](Xnst{|PPn;kn o;kqPPx{|PsӽtPPsttx|Խ{Pԏ;kPPx{{||Dm%^%e#0% %           !%         @ $  80  0DPX `@ht03 ceafor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@ceafor ceaforint@ SB$ceafor $gntt_label $lntt_label ceaforintS$23$ceaforintsqrtcossinM$2ptitleradius2 cenlonmer true_scaleoffsetpceafor S$24$ceafor adjust_lonlogceainv.o/ 1074014826 1032 20 100666 13528 ` 14@x 1t-p2%G!//k?/,/-/.//ok?Ik?Qk?Y0n 7>7>a.+`.# / 4%/7& , 4$`,4#,, ,,`,q1JN1.@,,,,a0 0N,0N0$ !`,+`4,h84& ,@,,@,,,0N0N@1.,+`4:0n@,,`@,q@,@,,@,4K>K?YK?QK?IO?A/0//0./0-@/0,1. , 1.+`1nh 0 0N1 n1n@@1N+`4& 1.1N=,k?/,/-/.//ok?I+`4#`H4,q,`0.  0.,a+`4$,0N1n@@K>+`48/,a,/K>0N1n @0@,`#+`7 47 ,4:..0N/@k?Y0N 0N k?Q1*n@@+`, 4#0H ,p ,1N1*n,`,,q0N 2N0@3"1N6`,`, 1,,1N,q 0N1&N @1 "`1N6y,/!1,q1N@1N K>1NK?YK?Q1., /,a0N1n @0K>,@4K>K?IO?A/0//0./0-@/0,?>h@@@? ` `?B*B*?[[?U@?-m@Cylinderical Equal Area `PX!,BX ``8BX!(DC>(`@P;>(P@x\$$l< $ |= 8?<OQ#0P#0 @P @Y-p%$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@  @9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      ,-./012FGHIJKL  @ @  @ @ "@ $@  @ @ @  @ ,@ !0@ )2@ ,*@ /(  Q 37 =@I@-T@/_@1j@3p@5 BAv@ <( +> %9-)9'./012345Q {X6 @ :P@ 9SQ7@T6@V7AK@; >]? C_ EZGLHIJKLMNO ="&&" 4(04)P;9@,ApBtCtDtEtGtHtI|JKMPN<OP`P=XYZ^_`ab$c0`c@d4P;9PS>T\Ux`U?`c@`dA>D E!F#G'H'I#JiK0iLPnZst4v4Pw]x<zl`z^P}_~```a`b?c'dbe$f(g(h$i`%jceainv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minoreese_p4e_p6lon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzqpindceainvintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempceainvlatlonyxbetaHHCHC@C8C0C@p@hE \pB@@t@@X@ dpC@8t8@`8= hpD@0t0@d0; lpE@(t(@h(!(pG>At>LXxHIX@tX@`N@PPHKOH@H?@I@AX XY @ @G XZ_@A4D@X,Y4<tx,CLCH@(@0@@ @p@@@@AtG@X@P@H(G@ABCDE@AGIMU_PCHMPUZDBHIJKUZ`PEHMPUZHCDEXYZabP B@AGIMU_P CDE @ AHӽI;kHMJKUIMJJKMKOPPӽOPPYZPPX;kԽY;k XZ YZ;k^YY^1 Z__;  `;h  a;h bb c;dUTPӽTPU;kԽYZPPU(stxzPPvPstsvtxӽzPP;kPPxz;kz~ԽPՐPP;kPP~ ;k;kD%d%S#0% %              )%           @ $  80  0DPX` h@p|0 ceainv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@ceainv ceainvint@ SB$ceainv $gntt_label $lntt_label ceainvintS$26$ceainvintsqrtlogcossinM$2ptitleradius2 cenlonmer true_scaleoffsetpceainv S$27$ceainvasin adjust_loneqconfor.o/ 1074014828 1032 20 100666 15512 ` 1x<@4 x8$2P:@X)G!8k?/,/-/.///0/1/2ok>yk>k>k>k>k>k>k>0n 7=a+`,#, 4#,`7 ,a4$`7=4% ,7?!,7?/! , ,,qK=91JN0.@,,@,+`,4*@-P,@-@,@-Q7=-A7?!/ 7?@1H-,-@-q-Q7?a-A0H-P-@-q-a@. "0H1@,0 0$ 1H7?@7?!-,-@-q-Q7?a-A0H-P-@-q-a@/ 0H@1.0 0$ R1.2N.0n@,+`49`@4:p4-,7?a, -Q-A1n-P-@-q-a,1,@/P,+`,`4:,0.0N@,,`@,q1H@1H@,a@1H,@,04-7?a-A-P,-a, -Q-@1n-q,1,@/P,+`,`4:,0.0N@,,`@,q@1H@,a@1H,@,4K=K>K>K>K>K>K>K>K>yO>q/02/01/00/0//0./0-@/0,k?/,/-o+`4:7?a/Q7?/A0H /@/P.p0H.@.+`4# 4=,q//0. i@1H,`0N @1H,p1NK>+`048`/1H/,a@0 K>1N41./ K>O?!/0-@/0,?=|׽Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONICEQUIDISTANT CONIC `PX!ll,FX H8FX!pDG>(^@lP>(P@px\$$l $ | 8,  %p%p  2P)$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/1@  ;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      BCDEFGHUVWXYZ[   @  @ @ #@ '@ +@ /@ @ @ @@ @ @ 8@ <@ D@ Q = h* /@-;@/F@1Q@3\@5a@7f@9l@; Ar@Aw1@A~2@A3@A6@A4@A7@# &O (N- 4R7 >T @?B)CDEFGHIJQ lK @ Md@ LgeK@hJ@jLAV@A`@A[@ SnU`VWXYZ[\] ="&& +(0+)P5?=>?@ACDEFGHIKLM$QX Y!Z#['\']^_0`Pn,Hhx`u`v?w'xby$z({(|}`~eqconfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorlon_centere0e1e2e3eesml0false_northingfalse_eastingnsgrheqconforintmodefalse_northfalse_eastcenter_latcenter_lonlat2lat1r_minr_majtempsinphicosphims1ms2ml1ml2eqconforyxlatlonmlthetarh1HhHhCCCCCCChW d=p@ph@hh^ l?`@`hc @=  @ ha A>@!HC>A>h0DE0@0h8EF8@8hNXFGX@XhPPGHP@PhRHHIH@HhT@@KhKhA$MHJY(DMSJASAVh\h@hYh$@hh(@(@(he auTP^l@A,dGHCLCH@X@P@H@@K@p@AhtG@@`AxG@@ @( C?@Acox=>?CdlnuwP?DS[@=>?CdlnuwP =DS[ ?@DEFGHILYcdpyPA\^abdpyPACDLY\^abDLMYZc@A >QiDӽE;kDEF;kEFGHIMZcPGFԽHIMZcPG;kFGH;kGӽHI;k HGKMS[mvIGHKӽMS[mvKK;x L; MLM; QMSS;k Խ[XX;x Y; ZYZ; Z[;k \\U^^2^VV|^^cbӽoxbc; Խdk^^cӽdk1dcll;mm; n;ho;hpp;V|acacbӽoxbc; Խdt^^cӽdt1dcuu;v;h w;hx;hyy |;V}A(PP; PPP;k;kPP;k9##D%%S#H% %          9    !%         @p $  80( 8HP\ht @ 0,s<LTeqconfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@eqconfor eqconforint@ SB$eqconfor $gntt_label $lntt_label eqconforintS$26$eqconforintsqrte0fne1fne2fne3fntsincosmsfnzmlfnfabsM$2p_errorptitleradius2stanparl cenlonmeroriginoffsetpstparl1eqconfor adjust_lonsincoseqconinv.o/ 1074014829 1032 20 100666 16268 ` 1 ?@0 88 :4f=t ,+TG!;kk?/,/-/.///0/1/2ok>yk>k>k>k>k>k>k>0n 7=a+`,#, 4#,`7 ,a4$`7=4% ,7?!,7?/! , ,,qK=91JN0.@,,@,+`,4*@-P,@-@,@-Q7=-A7?!/ 7?@1H-,-@-q-Q7?a-A0H-P-@-q-a@. "0H1@,0 0$ 1H7?@7?!-,-@-q-Q7?a-A0H-P-@-q-a@/ 0H@1.0 0$ R1.2N.0n@,+`49`@4:p4-,7?a, -Q-A1n-P-@-q-a,1,@/P,+`,`4:,0.0N@,,`@,q1H@1H@,a@1H,@,04-7?a-A-P,-a, -Q-@1n-q,1,@/P,+`,`4:,0.0N@,,`@,q@1H@,a@1H,@,4K=K>K>K>K>K>K>K>K>yO>q/02/01/00/0//0./0-@/0,k?/,/-/.//o@k>+`4# 4=`,a ,p/1G.,` 0. 0k?Q1 1N1N00$ 2@@"0H6 0.@@"6 .`0N0H 1 0$ 1N@1N0H ,q+`4$4?, 7?Q/7?a1n //7?/../k?i@0.K>/@,`,1n@0K>/K?Q04K>YK>O>/0//0./0-@/0,?=|׽?Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONICEQUIDISTANT CONIC `PX!ll,FX <((8FX!PpPDG9>(d^@lP>(P@px\ ,$$l P $ |dT 8Thh &&  4+T$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/7@ Th ;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      BCDEFGHdefghij   @  @ @ #@ '@ +@ /@ @ @ @@ @ @ 8@ <@ D@ Q = h* /@-;@/F@1Q@3\@5a@7f@9l@; Ar@Aw1@A~2@A3@A6@A4@A7@# &O (N- 4R7 >T @?B)CDEFGHIJQ lK L@ Od@ NgeL@hJ@jLAY@Ab@A[@A]@AP Q TyU X{ bnd`efghijkl ="&& +(0+)P5?=>?@ACDEFGHIKLM$QX Y!Z#['\']^_0`PnHHHPy`p`zP{|`|$,,`}0`~?'b$((`eqconinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorlon_centere0e1e2e3eesml0false_northingfalse_eastingnsgrheqconinvintmodefalse_northfalse_eastcenter_latcenter_lonlat2lat1r_minr_majtempsinphicosphims1ms2ml1ml2eqconinvlatlonyxrh1mlconthetaflagHhHhCCCCCCCh` d=p@ph@hhk l?`@`hU @=  @ hQ A>@!HC>A>h0DE0@0h8EF8@8hcXFGX@XhePGHP@PhgHHIH@Hhi@@KhKhA$MHJY(DMSJASAVhWh@h^h$@hh(@(@(hS auTP^l@!@DGAH`G!DDMAH`MC` C`CH`L@`L@`L@` L@`@JApxJ!2A2ALDL@`L@`pY/L@`XL@`PL@`HL@`@L@``( C?@Acox=>?CdlnuwP?DS[@=>?CdlnuwP =DS[ ?@DEFGHILYcdpyPA\^abdpyPACDLY\^abDLMYZc@A >QiDӽE;kDEF;kEFGHIMZcPGFԽHIMZcPG;kFGH;kGӽHI;k HGKMS[mvIGHKӽMS[mvKK;x L; MLM; QMSS;k Խ[XX;x Y; ZYZ; Z[;k \\U^^2^VV|^^cbӽoxbc; Խdk^^cӽdk1dcll;mm; n;ho;hpp;V|acacbӽoxbc; Խdt^^cӽdt1dcuu;v;h w;hx;hyy |;V} (PPP;k;kԽ;ӽPPP;;k 9##D%%kH% %          9    %    )       @p $  80( 8P\ht @ 0,s <P\heqconinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@eqconinv eqconinvint@ SB$eqconinv $gntt_label $lntt_label eqconinvintS$26$eqconinvintsqrte0fne1fne2fne3fntsincosmsfnzmlfnfabsM$2p_errorptitleradius2stanparl cenlonmeroriginoffsetpstparl1eqconinv S$27$eqconinvatan2phi3z adjust_lonequifor.o/ 1074014831 1032 20 100666 9804 ` 1&L@ # !$G!k?ok?7?!7>+`/4$ /4#`.+`,4:,,a,@,@,a@,@,,@,4K?YK?@O?k?/,/-ok?)+`4# 0H ,p@0.+`,`4$`,@0N ,a1NK>40K>/,,q1N0.K>K?)O?!/0-@/0,EQUIRECTANGULAR `PX!,X!8o>(@Do>(P@(P$$`p $ pq l 8l|sxT<TddD!$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/=@ lT:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       +,-./01  @ @  @  @ @ Q ! @@%@*@5@ # !Q ;:" @ C2@ E53G@6K@8#AO@ (<*.+,-./012 ="&& $0$P*#./@0@1D2D6D7L8T9\:d;p`;$<t`<%>& '!(#)'*'+,A-0A.PF<K L,M`Nt`N?Ot`O@?A'BbC$D(E(FG`Hequifor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorlon_centerlat_originfalse_northingfalse_eastingequiforintfalse_northfalse_eastlat1center_lonr_majequiforyxlatlondlonHHCCCx@  4</.@@0 @"PDL17@D <@2.D@8HA DCLCH@KȀ@@ @@($./021./0ֽ2789:P2/01ֽ89:P0.7P16T /6T2 . 06117;h 8;h9;h:: ;; <B(PKLMPPK;k LMPP;k NLMMODC%F% Ge(% %    !%     @ $  80  0@8DP`l0xequifor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@equifor equiforint@ SB$equifor $gntt_label $lntt_label equiforintM$2ptitleradius cenlonmeroriginoffsetpequifor adjust_loncosequiinv.o/ 1074014832 1032 20 100666 10164 ` 10'@X ``0$"%T+`/4$ /4#`.+`,4:,,a,@,@,a@,@,,@,4K?YK?@O?k?/,opk?+`4# 4$`,q ,,a0. K?1$n0. /@1H#7 .0 0$ *+`49P@4: X4\@,`,,p0N1n @0K?4/ K?YK?O?@/0,?!TD-EQUIRECTANGULARInput data errorequi-inv `PX!,X!8X @D>(*@4P>(P@8(\T$$lx $ |l 8lOlPD"<$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/C@ lP:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       1234567  @ @  @  @ @ Q ! @@%@*@5@ # !Q ;:" @ C2@ G53K@6M@8#( += .<0.12345678 ="&& $0$P*#./@0@1D2D6D7L8T9\:d;p`;$<t`<%>& '!(#)'*'+,A-0A.PF<JK8L8MRtS`S?T`T@?A'BbC$D(E(FG`Hequiinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorlon_centerlat_originfalse_northingfalse_eastingequiinvintfalse_northfalse_eastlat1center_lonr_majequiinvlatlonyxHHCCCx@ 4</.@@0"@PDL17@D <@2.D@8A8\D!,4KJ;A8@;C\C\@\@\@\ @\@\($./021./0ֽ2789:P2/01ֽ89:P0.7P16T /6T2 . 06117;h 8;h9;h:: ;; <"(PJKLRPPPKLMJLM;k OTT2 TP PSR;k;k SPRT ##DC%F% GqN#(% %    )%      @8 $  80  0@8DP`l0x @equiinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@equiinv equiinvint@ SB$equiinv $gntt_label $lntt_label equiinvintM$2ptitleradius cenlonmeroriginoffsetpequiinv S$17$equiinvfabsp_errorcos adjust_longnomfor.o/ 1074014834 1032 20 100666 10976 ` 1*@ '%Hz) 7>a+`.4# /0H . 4?`/ 0H/1H,q480,a@47 +`@4:@1H@1H@1H,q@,a4K>O?1/0./0-@/0,k?/,/-/.ok?9+`4#`0H ,q@0.0H 7?Q1H@7?a@1H+`0H 4$ 7?a/@,,/Q0N0N 1N 1*0 0$ *+`49`@4: 4 #1H7 ,a/11n 1N @0N,1NK>7?a0K>.4, / ,/1KN ,a,0N1N 1N 1 .1fN0 / K>K?9O?1/0./0-@/0,?GNOMONICPoint projects into infinitygnomfor-conv `PX!,X!(888X `D>(p3@@P>(P@@0\ $$l0 $ |D 8XL"8o,p$,N%H<$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/O@ p:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       456789:  @ @ @ @  @ @ Q #  @@$@/@@! % !Q ;<" 4@ C4@ E75G@8K@:#AO@AT@A[@Ab @Ai%@Ak&@) ,K 1>30456789:; ="&&" +0+P1%4@5P6T7T8T<\=h>p?x@A`A&B`B'>( )!*#+','-#.F/0F0PL>V$W<XDYTZ|P[K\]`]L_`ad`dMe`eN?O'PbQ$R(S(T$U`%Vgnomfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRsin_p13cos_p13false_eastingfalse_northinggnomforintfalse_northfalse_eastcenter_latcenter_longgnomforyxlatlondlonsinphicosphicoslongkspA0DA@JCHC@C8) <@4 @D  DP54(T(@@(' LP64T@H+T@P!@#@H4A$PDCLCH4@(A4GK4K4ATD4@4@A|2A,G4@4@ 4@a(<4568=>?7456ֽ8@PPֽ?45P4 5868P78;xP;h?;h @@ A; Bb(hV`aPP;k VWW;xX;kY`aP XY`aPYZ\UU\2U] ]d_`Ԍ_`;ka` d]a ae## DI%F% kwn#(% %     !%      @@ $  80 0 <@DP\ht0 gnomfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@gnomfor gnomforint@ SB$gnomfor $gntt_label $lntt_label gnomforinttsincosM$2ptitleradiuscenloncenlatoffsetpgnomfor S$18$gnomfor adjust_loncosp_errorsingnominv.o/ 1074014835 1032 20 100666 11920 ` 1.@X +'S, G!8k?/,/-/.o7>7>a+`. 4?`.0H / 4# / 0H,q1H/47 /480@,a+`@4:@1H@1H@1H,q@,a4K>O?1/0./0-@/0,k?/,/-/.//o@k>k>k>k>+`4# ,q,aK>0. 0. K>1N1N@1+`0H4%`,1n@@0H7?q@7?,1H@,#7 ,0 0$ !7?a,`/7?.,p1N0N 0N 1.n @1K,@,,@0.0 0$ !R@,,p7?/!0N0. @1H0 0$ "@1H0 0$ R7?a,`/P1N1N@0N,@0,4K>YK>K>K>K>O>/0//0./0-@/0,,,,0 0$ @,1H@1N,@0%,1H@1N,@0.,=|׽?!TD-GNOMONIC `PX!,X!,8X ,  D>(L @ P>(P@8\$$l $ |t 8tlm,p!\!\``Y' $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/U@ tp`:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       !FGHIJKL  @  @ @ @ @ @ @ Q  % @$@/@:@!@# ' !"Q F># @ N6@ R97V@:X@<$UAZ#@A]&@A_'@Ad(@Ai1@7 :K;= @NA DP EM 4@G2@6HIJKLMNO ="&&" ,0,P2'5@6X7X8X9X:X>`?l@tA|BC`C(D`D)>* +!,#-'.'/#0H10H2PN@VHWHXHYdZt[]bcdqrs@tDwp`wSxpPN@P^K_```LPeMfPgNhi`iOPlPmn`nQ`nR`wS`xT?W'XbY$Z([(\$]`%^gnominv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerlat_centerRsin_p13cos_p13false_eastingfalse_northinggnominvintfalse_northfalse_eastcenter_latcenter_longgnominvlatlonyxrhzsinzcoszconA0DA@JCHC@C8$ 4@5 @D ) LT650X0@H0+ <T7(@X( DT85X@@!@-@/@!@DVDAH0D!DDWGAHGC0 C0@0@0A`0J@0 Adp,KK@00@0(@0@00GYcd/a(T5678:?@A956789:BP7սA567P8589BP 78: 6:P9P:;x9>U>1U?;h@;hA;h BB C; D( VWbqtPPVW[hmtVWX;k Y[_cfhmtPXY[_cfhmtPYY;kZZ;x[];k[]cdhmr]db ;kbc;kd;kcdq;kqֽr;k!r;kst;;kt`inswx _`_fmh;;kiӽhm;;knӽm#DO%F% }l#(% %      1%       @ $  80 0 <@DP\ht0 gnominv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@gnominv gnominvint@ SB$gnominv $gntt_label $lntt_label gnominvinttsincosM$2ptitleradiuscenloncenlatoffsetpgnominv S$19$gnominvsqrtatanfabsasinzatan2 adjust_lonsingoodfor.o/ 1074014837 1032 20 100666 12784 ` 1 81@,\\ 8.)0o0 \G!k?/,7p0H +`"6 6`.4?.47 .1N /49 /1N /1N/48`/! 4=`.43.+`/1 44 . +`/  4:/0 .// 1N.1N.1N////.a.`.q.p// /@/ @1H4K?Y7?@/0,k?/,/-/.///0/1/2/3ok? k?k?k?!k?)k?1 4 0H /K>K>1 0$ /0 0$ Ƞ@1H11H0.@0N02fn@10 0$ #B(_5+`49@4:@X44!1 0$ :/0 0$ ̢@̦@/4`/1 0$ 0 0$ ̨E@/0 0$ ̪@/0 0$ ̰@̲@0$ ̬J/0 0$ ̮"/0 0$ Դ4    +`44. @0.+`1H47+`4& . ,@0N1N1,,1N,`44=1H/ 4,4 d@0.0H ,@1H4`4/0,M0N#@1H7X/@1N,+`4' +`0.4?,1H0 ,0$ 0H / 0N@1N 1N1H1@,,1H@0N 7?a,|&a,00N1. 0N ,` 4K>YK?1K?)K?!K?K?K? O?/03/02/01/00/0//0./0-@/0,]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiy]WJM?WJU@ !TD-?=|׽@?!TD-?d)?f;? _ܿ?GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forward `PX!,X @8X!|@@D>(tI@PP.>(R@P\>(P@h \$$xC $ D 8F800[h( (]%4%4_)0$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/[@ 0(:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      +,-./01uvwxyz{  @`  @@ `` @@  Q  @ (*+,-./012Q 63 <@ .@ 1/@2@44A @A@A @A@A A! 6W 9EM QGS [I\ dKj nM:Y<B EQ FP GO {8}*EHOo~ ="&&" (0(P*-123456789:;<@ABCDEFGHIJKOPQ`Q R`R!>" #!$#%'&''#(V)0V*P[8e\PfEgd@gt`hFPOxPPx@PQ`R`S`TPfEh`hF~jPkGl@lm`mHoPpIq @q,r4@rDsL@s\td`tJPwKxl@xtyx@yz@z{`{L~~~~~PM`NPO00LTd`T`U`V?['\b]$^(_(`$a`%bgoodfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hRlon_centerfeastgoodforintgoodforyxlatlondelta_lonthetadelta_thetaconstantiregionAD@H<ALdDCd Cdht AxG0PGA,<@dpMXlMMM!,MA0PMX<PY4TPx!LAPPA/ (T123456789:;<@ABCDEFGHIJKP12345678@ABCDEFG9:;K>0N1 0$ ,0N0 0$ ZȠ`+`1H-1@0N7?- '-10N1N 1 -0 1Gn@1H0 0$ *@1H4j0H-+`-A471H. @0N2N-Q1n1,1 0$ *-@1N@1H1-P0n@1H0 0$ )@1H,1 0$ :4s,.p-!0.0 0$ R1 0$ Z4},/-!00 0$ 4| /0N, J4t,.0 0$ (,0 0$ ( J4u,.0 0$ (Z,0 0$ (: J,,0 0$ (4v .0 0$ ' J,,0 0$ '4j -A0 0$ ' R4h,-0 0$ '4f`,0 0$ 'Z J4`,/0 0$ '2/0 0$ ' R4g,,0 0$ &4b`,A0 0$ &Œ J4`,/0 0$ &/0 0$ &z J4`,/0 0$ &R/0 0$ &2 R4a`,, 0 0$ & 4i -!0 0$ %⌴ J4`,/0 0$ %/0 0$ % R4`,/0 0$ %r4w .0 0$ %J4K>K?K?K?yK?qK?iK?aK?YO?Q/00/0//0./0-@/0,@44:/E 0. "   8g4i1n@,4y`/0 0 0$ "@,@0.4i+`-!48/ 0 0$ "m, 4+`4:/E ?%0. 1 0$ B,0N0 0$ ̢+`̦}+`,4`/0N1 0N0$ 0 0$ ̨+`/0N0 0$ ̪+`/0N0 0$ ̰+`̲+`0$ *+`4 4:/E e0. /0N0 0$ *+`44:/E  0. /0N0 0$ +`44:/E 0. +`49p@4:@4@,-0N1n@1,ϝK>ϝK>ϝuK>ϝeK>ϝUK>ϝEK>ϝ5K>ϝ%K>ϝK>ϝK>ϝK>ϝK>ϝK>ϝK>ϝK>ٿ]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiy]WJM?WJU?!TD-=|׽? _?f;??d) !TG@@ !TD-@ !TGGOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverse `PX!,X 8X!|D>(=@HP w>(R@H\>(P@h $$x  $  L 8L 8(( &` ,p,p`` /#$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/`@ L(`:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      +,-./01  @`  @@ `` @@  Q  @ (*+,-./012Q 63 @  .@  1/@2@44SA@A@A@A 6U 9AlW oCvY yEW[ YG_] J L eI;_ DO T8܀*8VaAfCqE{GIO8c8e8Āg8 ="&&! '0'P),0123456789:;?@ABCDEFGHIJNOP`P Q`Q!>" #!$#%'&''"(U)0U*PZ8b`PcAdl@d`eBzPO(DX`Pd$P|4``QPZ8PtGx0`xH|@|D|H|L|PP}I~X\x`NPcAe`eBz|gPhCi@i`jDzPhCj`jDzlPmEn@n(`qFz,PmEo0@oD`qFzHPmEpL@p``qFzdPmEqh`qFzlPtGup@uxv@vw@w`xHP}IPJ`KPL`M`NPO@$`P`Q(PZ8PO@,`P`Q0PZ8PO@4`P`Q8PZ8<`Q@PZ8D`QHPZ8L`QPPZ8T`QXPZ8\`Q`PZ8d`QhPZ8l`QpPZ8t`QxPZ8|`QPZ8`QPZ8`QPZ8`Q`R?i'jbk$l(m(n#o`$pgoodinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hRlon_centerfeastgoodinvintgoodinvlatlonyxargthetatempregionAD @DD@TDDYz|DATlGClLClH@l4dx,DA`/Y|/D`JAJA,J (T0123456789:;?@ABCDEFGHIJP01234567?@ABCDEF89:;GHIJ01?@ֽ23PԽAB4567PսCE?@0?@ABP1AB2CE389:;P ?CDEFP4GHIJP6,?@ABCDEFGHIJQ @,?սABCDEFGHIJQ,NV ANV B57DF8:GI9;HJDF5GI7HJ C D E F G I H J89:N1; PO;hQ/(  bdilnopuvw~Qbdilnopuvwbdilnopuvw~Qbdilbdilnopuvw~bd" dzP;i ;k ;kPP;k ;k;k ;kӽԊ  ӽxzPz~;k ~;k ;k ӽPP ezPP|z|gi" izP ӽjzPlnopuvwnl! nzPo' ozPp$ pzP ӽqzPuP! uzPzvP' vzPzwP$ wzPzVV2 V;k ;kӽֽ!=!## D1% %.% % %A% p @H @ $   800 @ T@\h0t goodinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@goodinv goodinvint@ BS$goodinv SB$goodinv $gntt_label $lntt_label goodinvintS$14$goodinvintM$2ptitleradiusgoodinv S$15$goodinvfabsp_errorcos adjust_lonsignasinsingvnspfor.o/ 1074014840 1032 20 100666 11600 ` 1p-P@, p)&+X dG!>uk?/,/-/.//o0H 0H7>7>a#1n// 7 .a+`/P49`/@4# /1 1H/  480,q47 ,a0 @/! +`@4:@1H+`1H@48P@1H@1H,q@,a4K>O?A/0//0./0-@/0,k?/,/-/.ok?9+`4#`0H ,`@0.0H 7?Q1H@7?a@1H#,a7 +`/0H 4$ 7?a0n,/@,/Q 2N 1N 1 N21 0$ *+`49@4:420. ,q0. 1H1*n 1N@0N,1NK>7?a0K>.4, /  ,/11KN ,q,0N1N 1N 1 .1fN0 / K>K?9O?1/0./0-@/0,??GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for `PX!,:X (8:X!\HHD;>(w@PO>(P@8\$$lj $ |kD 8Dm|}vlx x x\& d$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/e@ Dx;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {       !"6789:;<   @ @ @ @ @ @ @ Q ' ؀@@(@3@!?@#@% ) !"#Q A@$ D@ J8@ L;9N@<R@>%AV"@A[#@Ab$@Ai%@Ap*@Ar-@+ .O 3B546789:;<= ="&&$ .0.P5)809X:t;t<t=tA|BCDEFG`G*H`H+>, -!.#/'0'1%2M30M4PSB\$]<^D_d`PaObc`cPefgi,`iQj,`jR?S'TbU$V(W(X&Y`'Zgvnspfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRpsin_p15cos_p15false_eastingfalse_northinggvnspforintfalse_northfalse_eastcenter_latcenter_longhgvnspforyxlatlondlonsinphicosphicoslongkspADA MCHC@C8C00@(+ \|9A @X `p:90t0@\0. hp;9t@d2 pp<9t@l&@(@HDA$`DCLCHD@0A4GKDKDAdDD@D@A8D@ A<GD@D@(D@(T89:=BCDE;<9Ȅ=E:D98ֽ;<=FP89:P<;ԽFP8= :=P;=P<9=;x9AVA1VB;hCVC;t VD;h E;h FF G; Hb(\`efgPP\;k\]];x^;k`e_fgP`e ^_fgP`_`bVVb2Vc ciefef;kgf icg gj&# "# #DO%L% k{u#0% %      !%     @ $  80( 8(P \@dp|0 0gvnspfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@gvnspfor gvnspforint@ SB$gvnspfor $gntt_label $lntt_label gvnspforintS$18$gvnspforinttsincosM$2ptitleradiusgenrptcenloncenlatoffsetpgvnspfor S$19$gvnspfor adjust_loncosp_errorsingvnspinv.o/ 1074014841 1032 20 100666 13316 ` 14@ 0,+h1 #dG! k?/,/-/.//o0H0H 7>7>a#1n/A/Q 7 /+`/49`/1 4# /0 1H/ 480,q47 ,a.a0@/!+`@4:@1H+`1H@48P@1H@1H,q@,a4K>O?A/0//0./0-@/0,k?/,/-/.///0/1/2ok>k?k? k?k?+`4& ,,K>0. 0.1N1N@0+`#0H 4#`7 ,a,,q0.1n01n@@2 0$ "2N7?K>2DN0n@2&.1n,a1.2n 0 ,0n@-0H7?@7?,p1H@,0 0$ "-,-1N,0N 0N 1-n @1K,@,`,@0.0 0$ !@,,-0N0.@1H0 0$ "@1H0 0$ !-1N,1N@0N,p@0,4K>YK?K?K? K?K>O>/02/01/00/0//0./0-@/0,+`49@4:]46,`ˀE,,`0 0$ R"1H6`/!@1N,p@0ˀ,#1H7`/A@1N,p@0.ˀu,ˀmK>Y??=|׽?!TD-GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-for `PX!,PX 008PX!`DQ>(,o@|P" >(P@@\$$lB( $ |C< 8E($Ux xW##Yk+h#d$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/k@ x;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {       !"#QRSTUVW   @ @ @ @ @ @ @ @ Q ) ܀@(@3@!>@#J@%@' + !"#$Q LB% @ U#:@ Y"=;]!@>_ @@&_Aa(@A+@Ad.@Ah2@Al5@An3@As6@= @SA DUEG JXK NZ OW :DT6D<UVWXYZ[\ ="&&" -0-P4+708t9x:x;x<x=xABCDEFG`G,H`H->. /!0#1'2'3#4M50M6PSD]P^P_T`pabchijklqr@sL`x`]PSDPdSef`fTPmUn o$`oVPtWu,PvXw<x``xYP{Z|h}`}[`}\`]`^?a'bbc$d(e(f$g`%hgvnspinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerlat_centerRpsin_p15cos_p15false_eastingfalse_northinggvnspinvintfalse_northfalse_eastcenter_latcenter_longhgvnspinvlatlonyxrhconcomzsinzcoszA DAJCHC@C8C0)@(, x8A @t 7 Xt978x8@T89 `t:70x0@\0$ ht;7x@d& pt<7x@l;@=@APDATtJC C@@ApG@(AP@ xJDTrs/!a`MAMAV[hjA,KȀ@8@0@@(l789:=BCDE;<8Ȅ:=E9D8;7ս9:;<=FP789:P7;+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,/-/.///0ok?Y+`4# 0H ,p@0.# 0H7$ ,`,1H, @0N#0H7.1N@1H2N,@01n@1H1N 1H@1N ,q1NK>1H0@/,a1NK>40/@K>K?YO?Q/00/0//0./0-@/0,?fe>?@?HAMMER `PX!||,X!8X   Dr>(@P>(@\s>(P@ l$$|{ $ |T 8T~L:<XX8!8$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTDATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/p@ T<9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      *+,-./0  @ @  @  @ Q  x@@@@ Q 6 @ %.@ '1/)@2-@4!A1@A6@ '8)**+,-./01 ="&&" )0)P.243<4<5@9@:H;P<X=d`= >h`>!>" #!$#%'&''#(B)0B*PH8N,P@QRT`T=U`U>??'@bA$B(C(D$E`%Fhamfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northinghamforintfalse_northfalse_eastcenter_longhamforyxlatlondlonfacApGA4xDCxHCx@x 042@8xx 8832<x@4x@xxLx@H5:@@HA,DCLCH@A@lJ@AM@@A( 2345:;2345( NPQRPP;k PQNPQ;k Տԏ;k PQ;k ;kRQRTRU#D=%@% Mc9# % %   !%   @ $  80  0@8DP\0h t hamfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@hamfor hamforint@ SB$hamfor $gntt_label $lntt_label hamforintM$2ptitleradiuscenlonoffsetphamfor S$16$hamfor adjust_loncossqrtsin S$16DD$hamforhaminv.o/ 1074014844 1032 20 100666 9920 ` 1&@,#!$G! 4k?/,/-o7>+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,/-/.///0/1ok?i+`4# #@,q7D 0H ,`, 0. ,a#70N a/0N ,0N\P@1p.,`# 77.0N0N 0N11. 1N@1P.1N,p@0K>1N.`,`0n1n@@K>4/K>K?iO?a/01/00/0//0./0-@/0,@@??HAMMER `PX!||,X!8X   D>($@P>($@\>(P@ l$$| $ < 8<@t5 8DD8!$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTDATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/w@ <89@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      +,-./01  @ @  @  @ Q  x@@@@ Q 6 @ %.@ )1/-@2/@4!A1@ (8**+,-./012 ="&&" )0)P.243<4<5@9@:H;P<X=d`= >h`>!>" #!$#%'&''#(B)0B*PH8M<NHO`PRS`S;T`T<?='>b?$@(A(B$C`%Dhaminv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northinghaminvintfalse_northfalse_eastcenter_longhaminvlatlonyxfacApGA4xDCxHCx@x 042@8xx 8832<x@4x@xxLx@H5:@@AHGA<DCLCH@@@AM@A( 2345:;2345€( MNOPRPPՊMՊMNOPNOP;k ՏOP; ;k RPR;kSRT#D=%@% Ge4# % %   !%    @ $  80  0@8DP\0h t haminv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@haminv haminvint@ SB$haminv $gntt_label $lntt_label haminvintM$2ptitleradiuscenlonoffsetphaminv S$16$haminvsqrtatan2 adjust_lonasinz S$16DD$haminvimolwfor.o/ 1074014846 1032 20 100666 11712 ` 1-@H*&+G!k?/,7p0H +`"6`6/06 /  48 / 1N/1N/1N/4?`47+`/ 45 /+`.a1N /1N.q4:/1 1N/! .`.p/ //. ... . /@/@1H4K?Y7?@/0,@k?/,/-/.///0/1/2/3ok?k?k?0H 4 1 /0$ 0 0$ /0 0$ `H+`4:P@49@1H11H0.@0N02fn@10 0$ "B_4U+`/0 0$ "4`/0 0$ B4`/0 0$ */0 0$ b+`d+`0$ 24`.0 0$ f+`4`/0 0$ /0 0$ :/0 0$ "4.0 0$ h4 +`1H49`4/# 4d@0.0H @1H44 //.0NM/"`1H6}4/@1N ,+`4% +`0.48,1H0 ,0$ 0H / 0N@1N K>1N,1H1/@,@0N K>1N4.K>K?K?K?O?/03/02/01/00/0//0./0-@/0,?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^?WJy?f ?f@ !TD-/ !TD-/]yk@5AIտ5A@ !TD-?=|׽@?!TD-?d)?f;?INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward `PX!,X 8X!\D>(N@XP\>(R@X`\>(P@h$$xm  $ nD 8Dp`|x&(##@@&$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/}@ D(@;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {       !"#$%NOPQRST  @`  @@ 0` @@  Q  ؀@  !"#$%&Q 6' @ .@ 1/@2@4(A @A @A @A@A A *O -EDQ GG/M 1I X8Z*I3E;@GI[\]^_`ab ="&&" (0(P*-123456:;<=>?CDE`E F`F!>" #!$#%'&''#(J)0J*PO8\>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hRlon_centerfeastimolwforintimolwforyxlatlondelta_lonthetadelta_thetaconiregionAD@HA<TDCTLCTHH`0At0<GAG`D|DMxyM!poMAMAP!uoAA/@T (T123456:;<=>?P56:;<=>?;1234:ӽ;<=P ;: :< <12>?P3456P-:;<=>?Q-:;<=>?QCV1=?>2CV6?534 =12-3456 >C1 ? ED;hF;( ^_ghqwy|Ȋ^_g\2 ^oPzV2Vuw;k ;k wy;k xyӽzuV_ boP ӽcoPg2 goPh  k ӽloPpoPuoyz;k  oq;k ԽwyՊqyzԽ|ԐԽ;k|QQPP ;k ;k   ##D1% %.% %#% %%  @X @ $ ( 808 H `@ht0  ximolwfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@imolwfor imolwforint@ BS$imolwfor SB$imolwfor $gntt_label $lntt_label imolwforintS$14$imolwforintM$2ptitleradiusimolwfor S$15$imolwfor adjust_lonsincosfabsp_errorS$15DD$imolwforimolwinv.o/ 1074014847 1032 20 100666 12316 ` 1 |0@p |-$'.P G!k?/,7p0H +`"6`6/06 /  48 / 1N/1N/1N/4?`47+`/ 45 /+`.a1N /1N.q4:/1 1N/! .`.p/ //. ... . /@/@1H4K?Y7?@/0,k?/,/-/.//ok?Ik?Qk?Y0 +` `4% 4 ,0$ r@/0N0 0$  Ԁ4+`4f`,4?/ 0N 0. 0n@@0H ,,+`47`1H. @0N1NK>1n@1,,4f1N @1H1,0n@@K> H/@,,0 0$ &,0 0$ & ,,0 0$ ,0 0$ &r,0 0$ ,0 0$ &2 J4y,/!0 0$ & ,0 0$ %ꌆ J,,0 0$ %4x/0 0$ % 4,/0 0$ ,0 0$ %Z/0 0$ ,0 0$ % J4s,.`0 0$ $,0 0$ $4K>K?YK?QK?IO?A/0//0./0-@/0,/0N0 0$ ̂+`/0N0 0$ 24f`+`,4?4/ 0N 0. 0n@@0H ,,+`47`1H. @0N1NK>1n@1,,4f1N @1H1,0n@@K>/@4}`/0N0 0$ 04f`+`,4?4/ 0N 0. 0n@@0H ,,+`47`1H. @0N1NK>1n@1,,4f1N @1H1,0n@@K>}/@+`,4?4 / 0N 0. 0n@@0H ,,+`47`1H. @0N1NK>1n@1,,4f1N @1H1,0n@@K>M/@ϝ}K>ϝmK>ϝ]K>ϝMK>ϝ=K>ϝ-K>?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^f~?+}8k=+}8k=?f~?f;?d)@@ !TD-?WJy?f ]]yk@5AIտ5AINTERRUPTED MOLLWEIDE EQUAL-AREA `PX!,X 8X!\D>(!@$PQ>(R@(`\>(P@h $$xY $ Z 8\HHq L s$X$X{'$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ H ;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {       !"#$%LMNOPQR  @`  @@ 0` @@  Q  ؀@  !"#$%&Q 6' @  .@ 1/@2@4(CA@A *E .=B H? :8`*8<GLP==8TX\abcdefgh ="&& &0&P(+/0123489:;<=ABC`C D`D!>" #!$#%'&''!(F)0F*PK8Q$PR=SD@S\U``U>]d_`aef hhijl m8`mAn]|PX?Y@YZ0@ZH[`[@@e|`mAnPK8g`mAnPK8@h`mAnPK8@i`mAnPK8k`mAnPK8@l`mAn`nB?I'JbK$L(M(N"O`#Pimolwinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hRlon_centerfeastimolwinvintimolwinvlatlonyxthetaregionAD @DhDPDADHCDLCDH@Dx\,`8A|,GxGxGA8G (T/0123489:;<=P3489:;<=9/0128ӽ9:;P 98 8: :/0<=P1234P+89:;<=Q+89:;<=QAV/;=<0AV4=312 ;/0+1234 <A1 = CB;hD5( QSTYZ_`QSTYZ_`aefhijlSTYZ_`QSTYսZ_QS! SU]P_`aP]_;k _`PP;k Խefhijl`;k a`aefhijla;k;k eaefhijl meghiklnT# T]PY_`a]PP Y]_]_;k _`PP;k Խefhijl`;k a`aefhijla;k;k YaZ_`֊]PP% Z]_]_;k _`PP;k Խefhijl`;k a`aefhijla;k;k Za]P_P ӽ[]_]_;k _`PP;k Խefhijl`;k a`aefhijla;k;k aHeghiklmnFgehiklmnHhegiklmnHieghklmnEkeghilmnGleghikmn #D1% %.% k #% %9% H @( @ $ ( 808 H `@ht0 imolwinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@imolwinv imolwinvint@ BS$imolwinv SB$imolwinv $gntt_label $lntt_label imolwinvintS$14$imolwinvintM$2ptitleradiusimolwinv S$15$imolwinvasincos adjust_lonsinisinusfor.o/ 1074014850 1032 20 100666 46648 ` 1 8@ D  8 DG!k?7+`7X4:@+`4?77@7K?Y@7?k?/,/-/.//o@k>+`0H 0H H: @@"1 0$ "#7 .1 0$ ".1 0$ "7=./0 0$ "7`,a0 0$ ",q7>00'!1!@0.0 0$ "bRW6 "j7=,`.0 0$ "j,p0 0$ "J08N9@0.0 0$ *+`49@@4: ϟK>Y7>!7?y/Q7?/A1H&`1H//@&yN+`!h<ˀK>Y+`49@4:ϟ`K>Y+`49`@4:@ϟ0K>Y+`49@4:4?K>YK>O>/0//0./0-@/0,+`49`@4:@ϟK>Y+`49@4:ϟmK>Y+`49P@4:0ϟ=K>Y+`49@4:ϟ K>Y+`49@4:ϟK>Yk?/,/-/.///0/1/2ok>k?k? k?k?"6 0H /0H1 0$ !2/2 0$ !J/ 2 0$ !*/K=2 0$ 2 2 0$ 2 .a#7 azRH5 !K=aA@4!7+`49+`@4:@`p4|+`49+`@4:0`84|+`4490+`@4:04|K>YK?K?K? K?K>O>/02/01/00/0//0./0-@/0,+`49P+`@4:0`U4|+`49p+`@4:0`4|+`49+`@4:0`4|h`"6`7=k?17>!4w 4`/RY79' 1n/1 //2.,`=,p0 . .1n/h}XheP/0$ /1/H|Xhd@\7 Hh|@4z+`49+`@4:@`U4|HX4ak?q"`7?a6vK?1.4.p.`7?A$F_8'A000n1. `@11N@@0N1N20P$@@1N7?A20'II _  ` $01n, 0L 7RT6҂ RY79! 4HXk?q^g7?AHt7?ԅ1N&4u _4A8G110n.0n . hak?70H7?K>+`K>0HH:/k?@k? 4K>@7?+`49@4:ϟK>k?70HK>K>/@"/KB"68GA## 77 .0 0$ # .0 0$ "7>./0 0$ "77`.0 0$ "7Y /P/  0.7Y`7?!0N 7?1 //! K]X0N0&a&a`KTP6? k?/ .K?0. 1&N`k?0 0$ B7?!0''00.0 0$ 000.7UK?KT4.& 6/@1@&0N 0 1+.2N 0/K>@7?+`49P+`@4: K>+`49p+`@4:K>ϝuK>ϝeK>k?77_ :+`49+`@4: K?Y@7?K#78G 2+`49+`@4:K?YKk@k?K?@k@ˀUK?Yk?7+`78K]4?@KW+`k?49@7K?Y4?@7?!TD-@!TD-? =pA3ƀ\)?zG{zG{@zG=|׽!TD-@!TD-@ !TD-? !TD-?!TD-?@!TD-@!TD-!TD-?!TD-?_0mȃ? error (isinusfor.c/%s : %s memory allocationinvalid parameterinvalid handleinvalid keyisinusforinitbad return from Isin_for_freeisinusforinitbad parameter; sphere radius invalidisinusforinitbad parameter; longitude of central meridian invalidisinusforinitbad parameter; nzone out of rangeisinusforinitbad parameter; nzone not near an integer valueisinusforinitbad parameter; nzone not multiple of twoisinusforinitbad parameter; ijustify out of rangeisinusforinitbad parameter; ijustify not near an integer valueIsin_for_initbad return from Isin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initisinusforbad return from Isin_fwdIsin_fwdIsin_fwdIsin_for_freeIsin_for_free error (isinusfor.c/%s) : (%i) %s `P8  `P X!44,?X!`8`8?X  `DX!PX!```\vX!<h,X! t X! @ @ {J>( @ >( $@( p D$$ |hR$R }eTS <u c   qD TT 8$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$CODE$$CODE$$CODE$$CODE$$CODE$$DATA$ $SHORTDATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ R <CKS\ d m w @@        % 3 B O ] k x   ɠѠڠ   %2 ?JU `iow} ɠ ӠBݠC :&. 4 ; @GMT[ahoDwA;   Š`  d f h ͠jl ֠m` @o q@s@uw ` {@@}`   ` `   @     #.44:`?  BKKR Z c n{xp` @    Ѡ @ `     xp` @    `@ ` ޠ0 @ 0 4 @90 4 @?F Nf    @   `ՠޠ    ' 0 8 @ H O` W@ _ f ! m#p x< &(@*,@,@,@.02  5 7 9 ; =? A B  x< EG@%I@K@K@LN-P7 B SU@QWZ ] Z\@`^i`r | x ce@g  J J km@ o @  s u w y {  }+` 6@ ? I S \ e n x@K@K@`N        ڠ` @ @  @@          7   %   ,   44 @ :@@ A@ H`  Q@  Z  b  k u  @@E          7   %   ,   44 @ :@@ A@@ Q  Z    `       @@ @@ @@@ @@ @@ @@! @@@# @@% "@@' *@@) 2@@@+ :@@- B@@/ J@@1 R@@@3 Z@@5 b@@7 j@@9 r@@@; z@@= @@? @@A @@@C @@E @@G @@I @@@K @@M @@O @@Q @@@S @@UW ؠY [    ]  _  a "` c -@ e 8 g C i N k Y m d o o q z` s @ u  w  y  {  }     `  @              *`  5@  @  K  V  a  l  w  `  @              `  @              *`  4@  >  H  R  _  l  y  `  @     Ơ    `  @   @ @ @ @ @ @" @* @ @1 @8 @? @F @ @M @T @[ @b @ @i @p @ w @  @ @  @ @ @ @ @ @ @ @@ @ @ @! @#@ @% @' @)  @+@ @- @/# @1+ @33@ @5; @7C @9K @;S@ @=[ @?c @Ak @Cs@ @E{ @G @I @K@ @M @O @Q @S@ @U @W @Y @[@ @] @_aݠce    g` k  mi o q s u` w&@ y1 {< }G R ] h s ` } @        `  @        `  @ ' 1 ; E O ^ m ` x @        `  @       + ;` K@ [ f q |   ` @       ` @     $ / : E` P@  [   f  q |   ` @      ! # %` '@ )   + -! /, 17 3B 5M` 7W@ 9a  ;k =u ? A C E` G@ I  K M O Q S U` W@ Y` @] _@[ace   g-` i @ k m  o q s" u* w1` y8@ {? }F M T [ b i` p@ w      ` @       ` @     # + 3 ;` C@ K S [ c k s {` @       ` @   ;GUf[fa` ipv\|   $ @=     `à ˠ `   % % .%  ` $ G$&"Q$(*&,].h   2@ 6 8 @ ; = 9> @ 4A@ƠC  H FI@۠K@  N@ R T PU`W$ + [1 ]9 _?` aF@ cM eU gi\kimh` p xr t vpxhz`|@ ~  @Ԡ@$@%@(@/&@* %*m`  ,*4*7%@*:*+BN M S Y _ e k r x           ˠ      ` @   @&` ,@ 2 8 >J]@ g   p  y        `6 @7      ` ] g` # @' %  * ( - +. 0 @@@@7@@@9  = ;# >@(B2 =  G MG SI YKM _Ofm@@@v R TVX Z ] [@@^@@@` b@@d@@f` h@ j@@l@@n@@p@@@r@@tvx  {  |~@"#$%N&f'()* + ,h-N./J012f34pqrsftuvw x yhzN{|J}~f  hJf hJf !"#$ %h&'J()*f+,=>?@AhBCJDEFfGPQRSThUVJWXYfZ Nf  N     hhNJfA &% 0 ,! 1$" '!"#$%N&f'()* + ,h-N./J012f34 9  G U dz  pE5Q uW6 \@@M@O@Q@S@U7vA A A 9xT Wa <`\ _dc ffj mhq tjx {l nF Ip r JYIYLzR[`SYb|ipYw~f  hNJfz Q   @@@@z AZ AA A@A ˀ Ӏ ۀ   π   hJf !"Q # \@  @ @@$A# + . (1*234567 8h9:J;<=f>?@Q A @ (@ ' &@ %@ z $BA)@A/@A+@A* XnZ!_diopqrst uhvwJxyzf{|}Q 7~ |z 06< 929hJfA R < 14N  3QO TJhJf =?0  W f  .' G"T0TPT'V`V(Y(`Y)>* +!,-@./D01)2߀3541567"8H9#:';]<jH0jIPY,P`08`c<HpP€p(8`Āq`ЀtP>BFGPHIJ `J[(@[0u4yDzL|d`|>tP>B`|``@,(RL{4J%G_0P 4<`À@?@1AsBCD?EMF(GOH>I0>JPRTTW0`WUX8`XVEWFXY2Z~[\]M^N_+`Ta`Ubisinusfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_list__iobva_list/usr/include/stdlib.hremquotdiv_tldiv_twchar_t/usr/include/sys/wait.h/usr/include/sys/sigevent.h__sival_ptr__sival_intsigvalsigval_t__sigev_value__sigev_signo__sigev_notifysigeventsigevent_tSIGEV_SIGNALSIGEV_NONE__sigev_types/usr/include/sys/time.htm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_t__fd_masktv_nunitki_timeval/usr/include/sys/_rlimit_body.hrlim_maxrlim_currlimit/usr/include/sys/resource.hru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusage/usr/include/sys/siginfo.hSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__band__fd__file__addr__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tk_siginfo_t/usr/include/sys/newsig.hsigset__sigset_tsigset_t/usr/include/machine/save_state.hss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_lowss_mpsfu_high__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_sizestack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxtuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_t/usr/include/sys/signal.hsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionss_onstacksigstacksv_flagssv_masksv_handlersigvec/usr/include/machine/frame.hfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsisc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_double/usr/include/pwd.hpw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwd/usr/include/errno.h/usr/include/sys/errno.h/usr/include/math.hretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndisin.hncol_invicol_cenncolIsin_row_tkeyrowcol_dist_invcol_distijustifylon_cen_merref_lonnrow_halfnrowang_size_invsphere_invspherefalse_northfalse_eastIsin_tstrnumerror_terrortextroutineISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinisinusforinitdjustifydzonenzoneistatIsin_for_initthisIsinirowclatncol_cenisinusforyxlatlonIsin_fwdcolflonIsin_for_freeIsin_errorerrA$A$A$(DA((GC(C(C(C(\!D|@(A04K\K\AD(DAL(PC(C(C(C(YKC/YBG/KH\A 0,C\LC\H\@\K\AHCHCDC@A2CD/(8/!/A/Abdtx|A A,A,(VTTUUV9Y(PP6 ˆԽսˆ;k  ;k UU2U Ľͽ ; PP нĽUU2UĽͽUU2UĽͽUU2UUU2U ĽͽUU2U ĽͽUU2U ĽͽUU2U ĽͽUU2UͽĽ/(  (,-Ȍ Ӿ-(,)*; < .Fy6 UUP 7 P; 6 UUP  7 P; Ӿ6UUP 7 P վ6 UUP7 P; վ6UUP7 P; ־6UUP7 P; 6#'-BGIu('-BGIu$&'(+,-'Bu*(GI'$(GI%-,$*%-&'((*)+-,-H-2.26=232415UUP7 P 6 6>B>GBԌԾI[ FBGI;k GI;kJ I J[ [uuyz|z||>ӾB.>B( PP: þUU2U ( Lվ־ ȓԾԾ Ӿ$       UUP7 PUUPPdd(.UUP7 P;/UUP7 P5251Ծ766 :./;(TTTUUT9XW###" #$#4!#.#(#$#1# ## #"#"%%[%X%%% %m%% C% Ac #@% %%  X @ l $ | S @ @0;  `0 0   A0 #@LX0`c0 -p  isinusfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@ Isin_error Isin_for_freeIsin_fwd isinusfor Isin_for_init isinusforinit@error@ SD$isinusfor $gntt_label $lntt_labelerror__iobM$2fprintf isinusforinitS$22$isinusforinit Isin_for_freefabs Isin_for_initS$23$Isin_for_init Isin_errormallocfreecos isinusforIsin_fwd S$25$Isin_fwdisinusinv.o/ 1074014853 1032 20 100666 46584 ` 1@    h G!k?7+`7X4:@+`4?77@7K?Y@7?k?/,/-/.//o@k>+`0H 0H H: @@"1 0$ "#7 .1 0$ ".1 0$ "7=./0 0$ "7`,a0 0$ ",q7>00'!1!@0.0 0$ "bRW6 "j7=,`.0 0$ "j,p0 0$ "J08N9@0.0 0$ *+`49@@4: ϟK>Y7>!7?y/Q7?/A1H&`1H//@&yN+`!h<ˀK>Y+`49@4:ϟ`K>Y+`49`@4:@ϟ0K>Y+`49@4:4?K>YK>O>/0//0./0-@/0,+`49`@4:@ϟK>Y+`49@4:ϟmK>Y+`49P@4:0ϟ=K>Y+`49@4:ϟ K>Y+`49@4:ϟK>Yk?/,/-/.///0/1/2ok>k?k? k?k?"6 0H /0H1 0$ !2/2 0$ !J/ 2 0$ !*/K=2 0$ 2 2 0$ 2 .a#7 azRH5 !K=aA@4!7+`49+`@4:@`p4|+`49+`@4:0`84|+`4490+`@4:04|K>YK?K?K? K?K>O>/02/01/00/0//0./0-@/0,+`49P+`@4:0`U4|+`49p+`@4:0`4|+`49+`@4:0`4|h`"6`7=k?17>!4w 4`/RY79' 1n/1 //2.,`=,p0 . .1n/h}XheP/0$ /1/H|Xhd@\7 Hh|@4z+`49+`@4:@`U4|HX4ak?q"`7?a6vK?1.4.p.`7?A$F_8'A000n1. `@11N@@0N1N20P$@@1N7?A20'II _  ` $01n, 0L 7RT6҂ RY79! 4HXk?q^g7?AHt7?ԅ1N&4u _4A8G110n.0n . hak?70H7?K>+`K>0HH:/k?@k? 4K>@7?+`49@4:ϟK>k?70HK>K>/@".KX"6}8G"7>/P .7Y /0#1 . 7 /1EN.0 0$ "/0 0$ "b7Y`0./! 7?!KTX7?1 N0$!$Q !t`KUP6? tk?7SK?KU `k?K?/@.`ז 0. &.1EN 11' 1fN0 0$ !R/0 0$ !27`/ ..0N0/0 0$ 0.//.0 0$ 0/4K>@7?+`49P+`@4: K>+`49p+`@4:K>ϝm.ϝ].k?77_ :+`49+`@4: K?Y@7?K#78G 2+`49+`@4:K?YKk@k?K?@k@ˀUK?Yk?7+`78K]4?@KW+`k?49@7K?Y4?@7?!TD-@!TD-? =pA3ƀ\)?zG{zG{@zG=|׽!TD-@!TD-@ !TD-? !TD-?!TD-?@!TD-?!TD-?@!TD-@ !TD- !TD- error (isinusinv.c/%s) : %s memory allocationinvalid parameterinvalid handleinvalid keyisinusinvinitbad return from Isin_inv_freeisinusinvinitbad parameter; sphere radius invalidisinusinvinitbad parameter; longitude of central meridian invalidisinusinvinitbad parameter; nzone out of rangeisinusinvinitbad parameter; nzone not near an integer valueisinusinvinitbad parameter; nzone not multiple of twoisinusinvinitbad parameter; ijustify out of rangeisinusinvinitbad parameter; ijustify not near an integer valueisinusinvinitbad return from Isin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_invIsin_inv_freeIsin_inv_free error (isinusinv.c/%s) : (%i) %s `P8  `P X!44,?X!`8`8?X  @DX!PX!```\vX!<h,X!t /X! x@ @ J>( x@ >( $@(  $$ DR$R e0S <u c  l qL |\|@\@ $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$CODE$$CODE$$CODE$$CODE$$CODE$$DATA$ $SHORTDATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ R @<CKS\ d m w @@        % 3 B O ] k x   ɠѠڠ   %2 ?JU `iow} ɠ ӠBݠC :&. 4 ; @GMT[ahoDwA;   Š`  d f h ͠jl ֠m` @o q@s@uw ` {@@}`   ` `   @     #.44:`?  BKKR Z c n{xp` @    Ѡ @ `     xp` @    `@ ` ޠ0 @ 0 4 @90 4 @?F Nf    @   `ՠޠ    ' 0 8 @ H O` W@ _ f ! m#p x< &(@*,@,@,@.02  5 7 9 ; =? A B  x< EG@%I@K@K@LN-P7 B SU@QWZ ] Z\@`^i`r | x ce@g  J J km@ o @  s u w y {  }+` 6@ ? I S \ e n x@K@K@`N        ڠ` @ @  @@          7   %   ,   44 @ :@@ A@ H`  Q@  Z  b  k u  @@E          7   %   ,   44 @ :@@ A@@ Q  Z    `       @@ @@ @@@ @@ @@ @@! @@@# @@% "@@' *@@) 2@@@+ :@@- B@@/ J@@1 R@@@3 Z@@5 b@@7 j@@9 r@@@; z@@= @@? @@A @@@C @@E @@G @@I @@@K @@M @@O @@Q @@@S @@UW ؠY [    ]  _  a "` c -@ e 8 g C i N k Y m d o o q z` s @ u  w  y  {  }     `  @              *`  5@  @  K  V  a  l  w  `  @              `  @              *`  4@  >  H  R  _  l  y  `  @     Ơ    `  @   @ @ @ @ @ @" @* @ @1 @8 @? @F @ @M @T @[ @b @ @i @p @ w @  @ @  @ @ @ @ @ @ @ @@ @ @ @! @#@ @% @' @)  @+@ @- @/# @1+ @33@ @5; @7C @9K @;S@ @=[ @?c @Ak @Cs@ @E{ @G @I @K@ @M @O @Q @S@ @U @W @Y @[@ @] @_aݠce    g` k  mi o q s u` w&@ y1 {< }G R ] h s ` } @        `  @        `  @ ' 1 ; E O ^ m ` x @        `  @       + ;` K@ [ f q |   ` @       ` @     $ / : E` P@  [   f  q |   ` @      ! # %` '@ )   + -! /, 17 3B 5M` 7W@ 9a  ;k =u ? A C E` G@ I  K M O Q S U` W@ Y` @] _@[ace   g-` i @ k m  o q s" u* w1` y8@ {? }F M T [ b i` p@ w      ` @       ` @     # + 3 ;` C@ K S [ c k s {` @       ` @   ;GUf[fa` ipv\|   $ @=     `à ˠ `   % % .%  ` $ G$&"Q$(*&,].h   2@ 6 8 @ ; = 9> @ 4A@ƠC  H FI@۠K@  N@ R T PU`W$ + [1 ]9 _?` aF@ cM eU gi\kimh` p xr t vpxhz`|@ ~  @Ԡ@$@%@(@/&@* %*m`  ,*4*7%@*:*+BN M S Y _ e k r x           ˠ      ` @   @&` ,@ 2 8 >J]@ g   p  y        `6 @7      ` ] g` # @' %  * ( - +. 0 @@@@7@@@9  = ;# >@(B2 =  G MG SI YKM _Ofm@@@v R TVX Z ] [@@^@@@` b@@d@@f` h@ j@@l@@n@@p@@@r@@tvx  {  |~@"#$%N&f'()* + ,h-N./J012f34pqrsftuvw x yhzN{|J}~f  hJf hJf%&'()* +h,-J./0f12CDEFGhHIJJKLfMVWXYZh[\J]^_f` Nf  N     hhNJfA &% 0 ,! 1$" '!"#$%N&f'()* + ,h-N./J012f34 9  G U dz  pE5Q uW6 \@@M@O@Q@S@U7vA A A 9xT Wa <`\ _dc ffj mhq tjx {l nF Ip r JYIYLzR[`SYb|ipYw~f  hNJfz Q   @@@@z AZ AA A@A ˀ Ӏ ۀ   π   hJf !"Q # \@  @ @@$A# + . (1*234567 8h9:J;<=f>?@Q A @ (@ ' &@ %@ z $B#A)@A+@A,@A* c fg j XlZ^bmnopqr shtuJvwxfyz{Q 9| |z -8}> ;4;hJfA T < 11P  0SQ VLhJf =?0  W f  .' G"T0TPT'V`V(Y(`Y)>* +!,-@./D01)2߀3541567"8H9#:';]<jH0jIPY,P`08`c<HpP€p(8`Āq`Ѐt?P?CGHPIJK `K\(@\0v4zD{L}d`}?tP?C`}``@,(RL{4J%G_0P 4<`ĀK0>LPRVTX0`XWY8`YXEYFZ[2\~]^_M`Na+bTc`Udisinusinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_list__iobva_list/usr/include/stdlib.hremquotdiv_tldiv_twchar_t/usr/include/sys/wait.h/usr/include/sys/sigevent.h__sival_ptr__sival_intsigvalsigval_t__sigev_value__sigev_signo__sigev_notifysigeventsigevent_tSIGEV_SIGNALSIGEV_NONE__sigev_types/usr/include/sys/time.htm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_t__fd_masktv_nunitki_timeval/usr/include/sys/_rlimit_body.hrlim_maxrlim_currlimit/usr/include/sys/resource.hru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusage/usr/include/sys/siginfo.hSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__band__fd__file__addr__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tk_siginfo_t/usr/include/sys/newsig.hsigset__sigset_tsigset_t/usr/include/machine/save_state.hss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_lowss_mpsfu_high__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_sizestack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxtuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_t/usr/include/sys/signal.hsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionss_onstacksigstacksv_flagssv_masksv_handlersigvec/usr/include/machine/frame.hfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsisc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_double/usr/include/pwd.hpw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwd/usr/include/errno.h/usr/include/sys/errno.h/usr/include/math.hretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndisin.hncol_invicol_cenncolIsin_row_tkeyrowcol_dist_invcol_distijustifylon_cen_merref_lonnrow_halfnrowang_size_invsphere_invspherefalse_northfalse_eastIsin_tstrnumerror_terrortextroutineISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinisinusinvinitdjustifydzonenzoneistatIsin_inv_initthisIsinirowclatncol_cenisinusinvlatlonyxIsin_invcolflonIsin_inv_freeIsin_errorerrA$A$A$(DA((GC(C(C(C(\!D|@(A04K\K\AD(DAL(PC(C(C(C(Y KC/YCH/KH\A 0,C\LC\H\@\K\A@HC@HC@DC@@A/C@A@;A,/dtx|A A,A,(VTTUUV9Y(PP6 ˆԽսˆ;k  ;k UU2U Ľͽ ; PP нĽUU2UĽͽUU2UĽͽUU2UUU2U ĽͽUU2U ĽͽUU2U ĽͽUU2U ĽͽUU2UͽĽ/(  )-.Ȍ Ӿ.)-*+; < /Gz6  UUP  7 P;   7 UUP  7 P; Ӿ 7UUP 7 P վ 7 UUP7 P; վ 7UUP7 P; ־ 7UUP7 P;  7$(.CHJv)(.CHJv%'(),-.(Cv+)HJ(%)HJ&.-%+&.'())+*,.-.H.3/36>343516UUP7 P 7  7?C?HCԌԾJ\ GCHJ;k HJ;kK J K\ \vvz{}{}}?ӾC.?C( PP: ľUU2U ( L    ȓ ӾԾ$     ..  UUP7 PUUPP   (.UUP7 P;/UUP7 P5251Ծ766 :./;(TTTUUT9YX###" #$#4!#.#(#$#1# ## #"#"%%[%X%%% %m%% C% A_ #@% %% x X @ l $ | S @ @0;  @0 0   A0 @LX0`c0 -p  isinusinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@ Isin_error Isin_inv_freeIsin_inv isinusinv Isin_inv_init isinusinvinit@error@ SD$isinusinv $gntt_label $lntt_labelerror__iobM$2fprintf isinusinvinitS$22$isinusinvinit Isin_inv_freefabs Isin_inv_initS$23$Isin_inv_init Isin_errormallocfreecos isinusinvIsin_inv S$25$Isin_invlamazfor.o/ 1074014854 1032 20 100666 11340 ` 1D,L@l ttD)&|*ph G!> k?/,/-/.o7>7>a+`.4# /0H . 4?`/ 0H/1H,q480,a@47 +`@4:@1H@1H@1H,q@,a4K>O?1/0./0-@/0,k?/,/-ok>)k>1+`4#`0H ,q7>@0.0H 7>1H@7>1H7>@7>+`, 4$ , ,#,7 0N,0N/0N 1 0 0$ !*//00n@@,a 4,,1DN,K=0N K=1 N0/, ,,,1vN ,,0N 1 N 1K.0N0.K=K>1K>)O>!/0-@/0,/+`,a49@7?!@0N+`7?!@49e4@?LAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward `PX!,X!(hh8#X D>(W@`P >(P@`0\h$$l3 $ |4 86,F$H T TPO&| $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ ;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {       56789:;  @ @ @ @  @ @ Q # @@*@5@@! % !Q A<" d@ J4@ L75N@8R@:#WAV@A` @An!@A|@A@A&@A)@`; M@O0 4S ->60>/789:;<=> ="&&" +0+P1%4@5P6T7T8T<\=h>p?x@A`A&B`B'>( )!*#+','-#.F/0F0PK>W$X8YHZX[abce`eUfPK>P\S]4^P_``_T`eU`fV?Y'Zb[$\(](^$_`%`lamazfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRsin_lat_ocos_lat_ofalse_eastingfalse_northinglamazforintfalse_northfalse_eastcenter_latcenter_longlamazforyxlatlondelta_lonsin_delta_loncos_delta_lonsin_latcos_latgkspmessA0DA@JCHC@C8' <@4 @D  DP54(T(@@(* LP64T@H,T@P"@$@HdA$DCdCdȀd@d(A8GKdpKdxKd`Kdhd@dd@dA,d@d A/d@dd@da(<4568=>?7456ֽ8@PPֽ?45P4 5868P78;xP;h?;h @@ A; BC( hW]aPPZbc;k  WXX;xYY;xZbcPP[]a֌Z[a;k e_babcbc cf]UU]:^U^2U_ _e# " #DI%F% }#(% %     !% )    @` $  80(8 D@LXdp|0 lamazfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@lamazfor lamazforint@ SB$lamazfor $gntt_label $lntt_label lamazforinttsincosM$2ptitleradiuscenloncenlatoffsetplamazfor S$18$lamazfor adjust_lonsprintfp_errorsqrtlamazinv.o/ 1074014855 1032 20 100666 12076 ` 1/,@< DD+'-08 G!>k?/,/-/.o7>7>a+`. 4?`.0H / 4# / 0H,q1H/47 /480@,a+`@4:@1H@1H@1H,q@,a4K>O?1/0./0-@/0,k?/,/-/.//o@k>k>+`4$ ,,0. 0.1N1N @1 +`#7 4#`,a0H ,,0N1n0 0$ *+`49p@4:@4@@1N7?q@7?,`1HK>,k>@.0 0$ Z7?a,/7?,/!0N 1N0N0n @1 K>/k>@,q,@0.0 0$ K>@.,7?.a0N0 0.0$ Z7?a,/P1NK>1N@0N,`@0,4,q0 0$ Z 1H46`K>.@1N,`@0.x,#1H7`.@1N,`@0K>,@,qK>,`4K>YK>K>O>/0//0./0-@/0,@?=|׽?!TD-LAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverse `PX!,X!,888X d00D>(<@HP>(P@H8\8$$l-\ $ |.p\ 8\0xx@Dw xB!!@@JY' $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ \xx@;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {       !DEFGHIJ  @  @ @ @ @ @ @ Q % @*@5@@@!@# ' !"Q L># 4@ U6@ Y97]@:_@<$Aa!@Ad'@Af(@Al)@Ar$@* -K2S6 :N ;M D@F2M=GHIJKLMN ="&&$ .0.P4'7@8X9X:X;X<X@`AlBtC|DE`E(F`F)>* +!,#-'.'/%0J10J2PO@X Y4Z8[d\pP]K^|_`_LabcdPeMfghPiNj0kT@k\`kO`nPqPeMm@mn`nPpq`qQr`rR?U'VbW$X(Y(Z&[`'\lamazinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerlat_centerRsin_lat_ocos_lat_ofalse_eastingfalse_northinglamazinvintfalse_northfalse_eastcenter_latcenter_longlamazinvlatlonyxRhzsin_zcos_ztempA0DA@JCHC@C8" 4@7 @D * LT870X0@H00 <T9(@X( DT:7X@@@,@.@A4|DA8|JC| C|4@|4@|A`|G4@| T\/$gh/Ap|/A/K4K44@|04@|4@|4@|(a(T789:k>k>7=7=a+`/ 4#/ 4$ ..1,`,q1H,@,"6 /0 0$ *+`49@4:4R,q7?!,`/0n 1)N0.@,a7=a+`/4%`/1H,7?,7?@,,7?,,/@2 H,7?,0H1H@/10H7?1H@7?,7?,,@/Q,7?,0H1H@.0H@,,7?,,@.q0H@1.0 0$ !r,2@H@,,2`H,`0N2n , @0N+`1N,@4:,`@,q1H@1H@,@1H,@,4K=K>K>K>O>/05/04/03/02/01/00/0//0./0-@/0,2n@@2Un@0H1nM,k?/,/-ok?)0H 0H @1H#7 ,a@0.,q0 0$ @1H+`7?/4#`1H4$@,p44 .0H/,a@0N H1N +`4#`4$,a1N0 0$ 0H ,`@1.,a4 0N @1H,q1NK>1H0@/ ,`1N,a4K>0.0/@K>K?)O?!/0-@/0,+`49@4:4X=|׽??!TD-=|׽Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedlamcc-for `PX!,>X d((8>X!HHD?@>(@P>(P@X\|$$l $ |$ 8$\d%%  |/&$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ $ ;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      2345678STUVWXY  @  @ @ @ @ @ )@ ,@ /@ @  @ Q 3 &@2@%=@'C@)I@+N@-S@/Y@1 LA_!@Af"@Am#@Aq$@Au&@Ay@A~(@A%@A'@ H .53!50456789:;Q b< D@ 5Z@ 4][3@^2@`=wAm6@AB@A8@AE@A;@@ DoEyR Ur Iq NdXVdPqQYZ[\]^_` ="&& + 0+!P45>@?h@lAtEtPFHGI`IILMNPQRSTU,V<WLXtYZ\_`afgh ij k(m4`mJn8P45]x`mJ`nK>N O!P#Q'R'STqU0qVPwd~8PoHPp`pPq`t`uPwdPqPr0@`s`t`u`v?{'|b}$~((` lamccfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minoresecenter_loncenter_latnsf0rhfalse_eastingfalse_northinglamccforintfalse_northfalse_eastc_latc_lonlat2lat1r_minr_majsin_pocos_poconms1ms2tempts0ts1ts2lamccforyxlatlonrh1sinphithetatsHHCCCCCC<@P@HJ@Ft|AE@tA;@MN@@@98@8C0@0(QS(@(CKA SA,PA<VAt\A_AY@ @ >@H@AHDAHGCHLCHH/A ,KDD@H8KDD@HPD@HD@H ADGD@H0ADD@HD@HD@HD( >?ERUVX\h@>?LMNagPEVX\h>?LMNagPERU\h@A`akP@AE > ?E@E;kAEM\GVVG2VI ImLSTUWXYZ]_`LMLMӽN;kMPNԽQTUWXYZ]_`aiPPNԽQTUWXYZ]_`aiPQjRNR PRR;x  QTST; UTU; UVV;x W; XWX; XY;k ԽZ YӽZ; Z\;kӽ_`;Խa`a;fVaf1Vgg;hh; i;hj;hkk m;In];k ӽ] B(0~;kԽȖ~;k ;k PӽPս; PP;PP;kP;k ;k VV2V I#2# #Dg%%}#@% %       A   9%      @ $  80( 8P \@dp|0 ,<lamccfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@lamccfor lamccforint@ SB$lamccfor $gntt_label $lntt_label lamccforintS$22$lamccforintfabsM$2p_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparl cenlonmeroriginoffsetplamccfor S$23$lamccfor adjust_loncoslamccinv.o/ 1074014860 1032 20 100666 14852 ` 1|:@8 |50PY7P'G!2k?/,/-/.///0/1/2/3/4/5o`k>k>k>7=7=a+`/ 4#/ 4$ ..1,`,q1H,@,"6 /0 0$ *+`49@4:4R,q7?!,`/0n 1)N0.@,a7=a+`/4%`/1H,7?,7?@,,7?,,/@2 H,7?,0H1H@/10H7?1H@7?,7?,,@/Q,7?,0H1H@.0H@,,7?,,@.q0H@1.0 0$ !r,2@H@,,2`H,`0N2n , @0N+`1N,@4:,`@,q1H@1H@,@1H,@,4K=K>K>K>O>/05/04/03/02/01/00/0//0./0-@/0,2n@@2Un@0H1nM,k?/,/-/.//o@k>k>k>+`4% 4#`, ,,1G.,a 0.0K>1 k?1N1N00$ @@#0H 7 ,@,,,a,`1n@0K>4/@K>YK>K>K>O>/0//0./0-@/0,@@"6 ,0N 0H 1 0$ 1N@1N0H 1 0$ ,a0 0$ +`, 4?,/ ,a1*N0n1n@@7?,pk?@0H,K?>wK>Y%,a=|׽??!TD-Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC `PX!,>X 0(08>X!D?x>(b@hP >(P@hX\$$l $ |$ 8$`\`\&p& @p @|0P'$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ $` @;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      2345678YZ[\]^_  @  @ @ @ @ @ )@ ,@ /@  @  @ Q 3 &@2@%=@'C@)I@+N@-S@/Y@1 LA_!@Af"@Am#@Aq$@Au&@Ay@A~(@A%@A'@ H .53!50456789:;Q b< @ 7Z@ 6][4@^2@`=wAB@AmD@AM@AG@A8 B EoL OqTy Ys IdcVdK]s^defghijk ="&& * 0*!P35>@?h@lAtEtPFHGI`IILMNPQRSTU,V<WLXtYZ\_`aghi jk l(n4`nJo8P35]x`nJ`oK>N O!P#Q'R'STsU0sVPyd\\\\Pol|`p`uPydPq`rPs0P\t`t|`u|PydPs`t`u`v?{'|b}$~((`lamccinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minoresecenter_loncenter_latnsf0rhfalse_eastingfalse_northinglamccinvintfalse_northfalse_eastc_latc_lonlat2lat1r_minr_majsin_pocos_poconms1ms2tempts0ts1ts2lamccinvlatlonyxrh1tsthetaflagHHCCCCCCI@P@H:@>t|AE@tA;@MN@@@N8@8P0@0(QS(@(CKA SA,PA<VAt\A_AY@ @ K@<@!HXJA\lJ!LXMA\lMCl Cl#XXC\l@l@l@l@l GA|GPX5!2A2 DAD@lP@lAPX,@l8@l0D( >?ERUVX\i@>?LMNahPEVX\i>?LMNahPERU\i@A`alP@AE > ?E@E;kAEM\GVVG2VI InLSTUWXYZ]_`LMLMӽN;kMPNԽQTUWXYZ]_`ajPPNԽQTUWXYZ]_`ajPQkRNR PRR;x  QTST; UTU; UVV;x W; XWX; XY;k ԽZ YӽZ; Z\;kӽ_`;Խa`a;gVag1Vhh;ii; j;hk;hll n;Io];k ӽ] (0PPP;k;k ;kԽ;PP;;I#Dg%%}#@% %       A   %    9    @h $  80( 8(P \@dp|0 8,8Dlamccinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@lamccinv lamccinvint@ SB$lamccinv $gntt_label $lntt_label lamccinvintS$22$lamccinvintfabsM$2p_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparl cenlonmeroriginoffsetplamccinv S$23$lamccinvatan2phi2z adjust_lonmerfor.o/ 1074014861 1032 20 100666 11568 ` 1<-0@d ll<)&+4` 4G!?k?/,/-/.ok?9k?A0n 7>7>a.+`. # /4$`/78 / 4% ,4#,a,, ,,1)N1.@,,@1H0H@1H,1H@0N 1N@1.1n+`4:@,,a@,@,@,,@,4K>K?AK?9O?1/0./0-@/0,k?/,/-/.o0H 0H @1H#7 ,a@0.,q0 0$ *+`49@4: (4j@1H+`7?/4#`1H@,a,`+`4?0H 4# /,`k?Aa@1H,a1NK>1HK?A0 . ,`/!@0N ,q1NK>40./@K>O?1/0./0-@/0,??!TD-=|׽MERCATORTransformation cannot be computed at the polesmer-forward `PX!,X  8X!  D>(D@LPn>(P@PH\`$$l $ |D 8D|w|x T T@@]& 4$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/ @ Dx@9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y       !"#$%89:;<=>  @ @  @ @ @ @ @ @ @ Q +  @(@!3@#>@%I@'O@) AU@ - !"#$%&Q ZF' @ a#>@ c"A?e!@Bi @D(Am'@Ap$@* -M. 3O 5H7:89:;<=>? ="&& )0)P0-6$7\8`9`:d;h=l>l?t@DEFGHI`I0J`J1>2 3!4#5'6'78O90O:PTHZP[M\H]X`]NP`Oa`bhcd`dPf`fQg`gR?S'TbU$V(W(XY` Zmerfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorlon_centerlat_origineesm1false_northingfalse_eastingmerforintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempmerforyxlatlontssinphiH H C HC @C 8C 0 *@ @ @ 8 . T\860` 0@P0 @ ( 0@  (@ ! h=;Alx;  p|>?@l %@  , @E@AHDAHGCHLCHHK@H AG@H@H@@H@H0@Hc(=6789@:;867ս9:;=>?@EFGHP9@>Ԅ:789=?EFGP;>@:ֽ?@HP 86=EP 6 7 9:;>ӽ?;k>?@;k;k;kֽDXXD@1 @EE;  F;h G;h HH I; Ja( Z;kȏZ;k\XX\2X] ]f a;kbcPP;ӽdPPbcdP;kcd;k f]ddg#.#D[%R%Yv#0% %        )%      @P $  80  0 DPX `@ht0 (merfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@merfor merforint@ SB$merfor $gntt_label $lntt_label merforintS$20$merforintsqrtcossinM$2ptitleradius2 cenlonmeroriginoffsetpmerfor S$21$merforfabsp_errortsfnz adjust_lonlogmerinv.o/ 1074014863 1032 20 100666 11364 ` 1,d@x )&4* TG!=k?/,/-/.ok?9k?A0n 7>7>a.+`. # /4$`/78 / 4% ,4#,a,, ,,1)N1.@,,@1H0H@1H,1H@0N 1N@1.1n+`4:@,,a@,@,@,,@,4K>K?AK?9O?1/0./0-@/0,k?/,ok?k?!+`4# # ,q4$78 ,,`0H ,a0. / k?b 1*N0n@@+`7?k?4%`0H@,K>.K? *K>K?!K?O?@/0,,,`,0N1n @0K>4}/@?MERCATOR `PX!,X \8X!D>(l @ PN>(P@H\$$lV $ |W, 8,YDdi<u\xks]&4 T$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ ,x9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y       !"#$%56789:;  @ @  @ @ @ @ @ @ @ Q +  @(@!3@#>@%I@'O@) AU@ - !"#$%&Q ZF' @ a%>@ e$A?i"@Bk @D(OAm/@Ap& 0H6:H2789:;<=> ="&& )0)P0-6$7\8`9`:d;h=l>l?t@DEFGHI`I0J`J1>2 3!4#5'6'78O90O:PTH[8\L]L^L_\`d`dMePTHab`dM`eN?Q'RbS$T(U(VW` Xmerinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorlon_centerlat_origineesm1false_northingfalse_eastingmerinvintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtempmerinvlatlonyxtsflagH H C HC @C 8C 0 +@ @ @ 8 2 T\860` 0@P0 @ ( )@  '@ ! h=;Alx;  p|>?@l 0@  - @E@LDA8HD!@H][;ALX;CLCHCH@@@@@ALX,@ @0c(=6789@:;867ս9:;=>?@EFGHP9@>Ԅ:789=?EFGP;>@:ֽ?@HP 86=EP 6 7 9:;>ӽ?;k>?@;k;k;kֽDXXD@1 @EE;  F;h G;h HH I; J#(\]^bPPԏPԏ]^[\^^;k_bPP;_`adeb;k dabb#D[%R%S}t#0% %        9%      @ $  80  0DPX `@ht0 merinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@merinv merinvint@ SB$merinv $gntt_label $lntt_label merinvintS$20$merinvintsqrtcossinM$2ptitleradius2 cenlonmeroriginoffsetpmerinv S$21$merinvexpphi2z adjust_lonmillfor.o/ 1074014864 1032 20 100666 9608 ` 1%@0 88"!$#,G! k?/,/-o7>+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,opk?+`4# 0H ,p@0.",`6 ,q,0N ,K?1n 0/@1G@0H,`4,,a0NK?1N 0/K?YK?O?@/0,?!TD-@?MILLER CYLINDRICAL `PX!||,X!8zX  DJ>(@PK>(P@ \,$$lSP $ |Td< 8<Vtf(9<hd8d8p8!$$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ <<:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      )*+,-./  @ @  @  @ Q  x@ @@@ Q  6 @ (.@ *1/,@20@4!A4@ &8(*)*+,-./0 ="&&" )0)P.142<3<4@8@9H:P;X<d`< =h`=!>" #!$#%'&''#(A)0A*PG8LM(NTP`P;Q`Q<?='>b?$@(A(B$C`%Dmillfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingmillforintfalse_northfalse_eastcenter_longmillforyxlatlondlonApGA4xDCxHCx@x 041@8xx 8821<x@4x@xxLx@H49@@HADCC@KȀ@@@A( 12349:1234;P123ֽ;P8T1 28T38149;h:;h;; <;="( LMNPPL;k NMԊMN;k ;k PNQ#D=%@% Ga8# % %   !%    @ $  80  0@8DP\0h t millfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@millfor millforint@ SB$millfor $gntt_label $lntt_label millforintM$2ptitleradiuscenlonoffsetpmillfor S$16$millfor adjust_lontanlogmillinv.o/ 1074014865 1032 20 100666 9560 ` 1%X@0 88" #,G! k?/,/-o7>+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,opk?+`4# ,q ,`,a0. ,p1$n 0. @0K?"6 /,`,1n1n@@@0H,4,K?0.0N/K?YK?O?@/0,@??!TD-MILLER CYLINDRICAL `PX!||,X!8X  DQ>(@PR>(P@ \,$$lZP $ |[d$ 8$]\m44oL L q8 $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ $4:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      *+,-./0  @ @  @  @ Q  x@ @@@ Q  6 @ (.@ ,1/0@22@4! '8)**+,-./01 ="&&" )0)P.142<3<4@8@9H:P;X<d`< =h`=!>" #!$#%'&''#(A)0A*PG8KL(N4OLQ`Q9R`R:?;'<b=$>(?(@$A`%Bmillinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingmillinvintfalse_northfalse_eastcenter_longmillinvlatlonyxApGA4xDCxHCx@x 041@8xx 8821<x@4x@xxLx@H49@@A(8;A4DCC@@@@A( 12349:1234;P123ֽ;P8T1 28T38149;h:;h;; <;="( KLNOPPKNLN;k ONO;k ;k QOR#D=%@% Ac % %   !%     @ $  80  0@8DP\0h t millinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@millinv millinvint@ SB$millinv $gntt_label $lntt_label millinvintM$2ptitleradiuscenlonoffsetpmillinv S$16$millinv adjust_lonexpatanmolwfor.o/ 1074014867 1032 20 100666 11084 ` 1|+L@8 |((%)|G!3k?/,/-o7>+`0H /4# /+`,` 0H ,a4:,q@,p @1H@1H,q@,a4K>O?!/0-@/0,k?/,/-/.///0/1/2/3ok? k?+`4# 0H,p41H4d@0.0H @1H#@#7_ 7//.0N/ @@1H11H0.@0N02fn@10 0$ :_+`49`@4: 04"1H6.@1N"6`,!k?!0.1HK?!0 ,`/0$ 0H 0N@1N ,q1NK>1HK?!0/ /,`@0N ,a1NK>40.`K>YK?K? O?/03/02/01/00/0//0./0-@/0,@ !TD-?=|׽@?!TD-?d)?f;?MOLLWEIDEIteration failed to convergeMollweide-forward `PX!||,X!8cX P0PD4>(9@DP5>(P@H \$$lM $ |N 8P00`VLXb D D@@j9%$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ 0X@:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      ;<=>?@A   @  @ @ @ Q  x@ @@@ Q  6 @ (.@ *1/,@20@4!A4@A>@AD#@AP@AT 'I0 3D -C ;8=*C/>?@ABCDE ="&& %0%P*-4.@/@0@4@5H6P7X8d`8 9h`9!>" #!$#%'&''(=)0=*PB8K<LXMXQQPRCSTU@UV`YFQPRCPWDXY`YE`YF\ab(c,dXe|`eGf|`fH?K'LbM$N(O(P Q`!Rmolwfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingmolwforintfalse_northfalse_eastcenter_longmolwforyxlatlondelta_lonthetadelta_thetaconiApGA4xDCxHCx@x&@xx( 8<.-@x@4x$ 0</@@xxLx@H05@@HA<JC C@,4DAXDxJ\aJMTUM!HTLKMAXMAP!DQKAA/@@@A( -./056-./07P-Խ/07P-4T/.4T-41 05;h6;h77 8;9(  KcdPPQLUVK;k  KM;k ԽSU\a֊MԽU\a֊MMUaQS;k ;k SU;k TUӽVQXTT2TY Ye\aԐ;k\acd bc;k dcӽd;k  eYcddf  ###D=%@% qU# % %   !% i    @H $  80  0@8DP\0h t0 xmolwfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@molwfor molwforint@ SB$molwfor $gntt_label $lntt_label molwforintM$2ptitleradiuscenlonoffsetpmolwfor S$16$molwfor adjust_lonsincosfabsp_errorS$16DD$molwformolwinv.o/ 1074014868 1032 20 100666 10260 ` 1(@h %"t&XG!k?/,/-o7>+`0H /4# /+`,` 0H ,a4:,q@,p @1H@1H,q@,a4K>O?!/0-@/0,k?/,/-/.ok?9+`#4# 7 ,a ,,`0.,q 0N 0. 0n @1H,0 0$ 0H @1H0H ,,`1H@0N1N,p1n@0K>",6`/0 ,a 0$ //0 ,q0$ / 1N @1H10n @1H,`0 0$ 0H @1HK>4/K>K?9O?1/0./0-@/0,?f;??d) !TD-@ !TD-@?MOLLWEIDE `PX!||,X!((8DX $88D>(\ @ P>(P@ \$$l $ |T 8T!\1D>t@3  ;9"$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/$@ T@ :AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      56789:;   @  @ @ @ Q  x@ @@@ Q  6 $@ (.@ ,1/0@22@4!A4@A:@ 284*56789:;< ="&& $0$P),4-@.@/@3@4H5P6X7d`7 8h`8!>" #!$#%'&''(<)0<*PA8GHDIDNH@N\O`PlQ@QR@RST@TUV `V=W `W>??'@bA$B(C(DE` Fmolwinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingmolwinvintfalse_northfalse_eastcenter_longmolwinvlatlonyxthetaargApGA4xDCxHCx@x@xx 8<-,@x@4x 0<.@@xxLx@H/4@@ADG!8@HG2ADL2C$LC$H$@$$@$$@$$DAHhDAlD$@$A( ,-./45,-./6P,Խ./6P,3T.-3T,31 /4;h5;h66 7;8b( GHIPPֽNPQGHIPPֽNPQHIHGIGIӽN;k  NO;k OP;k ;kսQRӽST֊PQRS&QRS#RS;kSӽT;k TU;k VUW  #D=%@% My=# % %   )%     @ $  80  0@8DP\0h tmolwinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@molwinv molwinvint@ SB$molwinv $gntt_label $lntt_label molwinvintM$2ptitleradiuscenlonoffsetpmolwinv S$16$molwinvfabsasincos adjust_lonsinobleqfor.o/ 1074014870 1032 20 100666 12956 ` 12@ ((/+@0$$G!2k?ok?k?7>7?!+`. 4%`. 4#.4$ . +`/4:/,,q,a,,, , @, @,@,q@,a+`,@480+`,@48`+`,@48,@,+`,a480@47 4K?YK?K?@O?k?/,/-/.//ok>I+`4<0H/0H7>7?@0. 1H7>@7>+`7?!4# /A ,` 7>,p,1*N,0N 0N@1v7?!,p/!0H ,` ,3N ,, 2N1 N@=+`7?14$`7?A,@0"#67 /. @1N7?!1N/ 7?a.a0N0N@1N0H 1N@1H1N1N ,1n@@1n@@0H,,1N 0N1n@@1N ,qK=1  . ,,1n@0N 1N @1H,1N 1n@@1n,aK=40.K=K>IO>A/0//0./0-@/0,@?OBLATED EQUAL-AREAParameter m: Parameter n: Theta:  `PX!,X!l8X \D2>(lF@XP3>(P@XP\$$lG@ $ |HTd 8dJ((Z\""dk+@$$$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/)@ d(;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      !"#$%&'=>?@ABC   @  @ @ @ @ @ @ @ @ @ Q 1 #@/@#:@%@@'H@)P@+[@-@/ 3 !"#$%&'(Q gJ) @ p!B@ r ECt@Fx@H*A|$@A'@A(@A%@A&@A-@A0@A2@A3@A4@A6@A7@A8@A;@ :L<>=>?@ABCD ="&& (0(P1345L6P7T8X9\:`;d?d@lAtB|CDEFKL`L4M`M5>6 7!8#9':';<O=0O>PTLf(ghhhihjlmnopq rHsTtu`uiv`vj?k'lbm$n(o(pq` robleqfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerlat_othetamnRsin_lat_ocos_lat_ofalse_eastingfalse_northingobleqforintfalse_northfalse_eastangleshape_nshape_mcenter_latcenter_longobleqforyxlatlondelta_lonsin_delta_loncos_delta_lonsin_latcos_latzAzsin_Azcos_Aztempx_primey_primeMNHHCCCxCpChC`>@ "@H@@9@0<@(.@8@@Bpdl;@@d)@+@A(<2HCCȀ@HA@DKxKKhKp@@AG@8/Yjm/KKHL/A2A8A`MA 0G@0ATJ@(@ @@(89:;4567Խ89@CDEP;4789@CDEP956ABKP8:;FP?T6T74 56789:?1;@;hA;hB;hCTC;t TDTD;t TETE;t TFF; KPPK L;x PM( fPPgg;x  fhh;x ijstPPfhսj;kij;ԽqstPljqstPljl;x jlmӽpqstmӽpqstmӽpqstm;knmno n op;kpq;kԽtqr;krsӽt;kst;k;kutv# #Da%X% #@% %         !% )  I     @X $  80( 8@@LXdp|0  obleqfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@obleqfor obleqforint@ SB$obleqfor $gntt_label $lntt_label obleqforintM$2ptitleradiuscenloncenlatgenrptoffsetptsincosobleqfor S$22$obleqforacosatan2sinasincosS$22DD$obleqforobleqinv.o/ 1074014871 1032 20 100666 12928 ` 12@, 44.*0t (#G!6k?ok?k?7>7?!+`. 4%`. 4#.4$ . +`/4:/,,q,a,,, , @, @,@,q@,a+`,@480+`,@48`+`,@48,@,+`,a480@47 4K?YK?K?@O?k?/,/-/.//o@k>+`4# 4$`,a 0H ,#,7,q 0./# jJ7? 0N/ 1 n@@1N,,,1N 0N 1(n1n @@1N @1H1n,@0N 1N@1H1N @1H1N,1N0n@@1N@1H1n1N1N@0#@7W.@0N1N 1H@1H,7?7?7?@0.1H7>@7?7>,` ,0 7?!7?,p.1*N.0N 0N@1vK>7>.`,p/,` 3N 7?!,a,, 2N1 N@=+`4",Q@0K>4.K>YK>O>/0//0./0-@/0,@?OBLATED EQUAL-AREAParameter m: Parameter n: Theta:  `PX!,X!l8X hD=>(xF@XP>>(P@XP\($$lRL $ |S`4 84U0l0eg"l"`l`ok*#$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?//@ 40`;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      !"#$%&'>?@ABCD   @  @ @ @ @ @ @ @ @ @ Q 1 #@/@#:@%@@'H@)P@+[@-@/ 3 !"#$%&'(Q gJ) @ p"B@ t!ECx@Fz@H*A|3@A~;@A<@A4@A.@A1@A2@A0@A+@A7@A9@A:@ ;L=>>?@ABCDE ="&& *0*P3367L8P9T:X;\<`=dAdBlCtD|EFGHMN`N4O`O5>6 7!8#9':'; <Q=0Q>PVLf0gThTipjklmn op$q4r<sLtv`vew`wf?g'hbi$j(k(l!m`"nobleqinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerlat_othetamnRsin_lat_ocos_lat_ofalse_eastingfalse_northingobleqinvintfalse_northfalse_eastangleshape_nshape_mcenter_latcenter_longobleqinvlatlonyxzsin_zcos_zAztempx_primey_primeMNdiff_anglesin_diff_anglecos_diff_angleHHCCCxCpChC`)@ A@H@@,@0'@(5@8#@%pdl=B@d=@?@A0G!HPgf8ATh8C C@@@(@ ApM@0mn/A/AJAGAJADA ,@8@H/Y(<pr/KKKxK@@@H(:;<=6789Խ:;BEFGP=69:;BEFGP;78CDMP:<=HPAT8T96 789:;<A1=B;hC;hD;hETE;t TFTF;t TGTG;t THH; MPPM N;x PO(fgstPPhijlpPghfghӽijklmnfhӽijklmnhӽijklmnh;khi;kij;kjk;k kl;k;k lm;kn;kmnnoo;pqtq;x  pqrr;x s ;kԽtst;PP;kvtw# #Da%X% #@% %         )%    9 1    @X $  80( 8@@LXdp|0  obleqinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@obleqinv obleqinvint@ SB$obleqinv $gntt_label $lntt_label obleqinvintM$2ptitleradiuscenloncenlatgenrptoffsetptsincosobleqinv S$22$obleqinvasincossinsqrtatan2 adjust_lonS$22DD$obleqinvomerfor.o/ 1074014874 1032 20 100666 22536 ` 1LX@  t ||LSF U<p78G!=k?/,/-/.///0/1/2/3/4/5ok>)k>1k>9k>Ak>Ik>Qk>Yk>a0n7<7=!- +`!/ -!4&-1 5 ,4% 4'7<-A 4$/Q 4`,, ,, ,1N-@1.@,,4,@4,,1.0N0N@1.-Q0H@,,0N1.0n @1,,,1N,0N 1N1n @,p 0 0$ ,` ,q @7?-`-a@1H,1H@-10H@2H,2H@-10H,@2@H2 H,@0H,q 2N0.-p14n5 `2-.-0 0 ) 1n-!1H. 1H17n0.1N0n0$ 5/1. 5-0 0$ -1 , 2-.2-1$N0N@0N2dN0n@@,-10n2.,@2(.,@0N0n@@0H@2@H,`@0N0H5X @24N1N@5X`1N@5X2N@5X@1.0 0$ &@1H0 0$ &-  @0.0 0$ &R@,@0.0 0$ &B2@H40@4 2`H4@4,,p,0 0n 0$ ,`0N@0.4 .0n@@1NH,a@@@,`0.2 H@,1N,q+`4*@4:,@,,@5X@,@,KaK>YK>QK>IK>AK>9K>1K>)O>!/05/04/03/02/01/00/0//0./0-@/0,5Z@5Y545Z @5YP 45Zp@5Y45Z@5Y4,`-0N1N @0.4 .0n@@1NE,ak?/,/-/.///0/1ok>ik>qk>y0H0H @2H+`0H 4! ,!@1.+`0H4#,a@1N0H@2H#7 ,, @0.0 0$ "+`7?. 452H@.0H@,a+`, 4&`4% ,, ,2n 1N,a,1N1*n1V. 1V1fN0N2N3.3$n @@0H@2 H# 7=`/k>0 0$ ",,a0N01N,,2N1N0 11n@@,2 ,a0N0n0$ "K>/@0N0n11H2 +`4% , 0$ "6`.p1N ,a+`4&`,2N0n1H@,@0.0 0$ *+`49P@4:41.,1,0n@0N ,a 1N,+`2n,1., ,p4?K=0N K=40N02., ,/0N0N 02./K=K>yK>qK>iO>a/01/00/0//0./0-@/0,?@=|׽?@Lc˰?!TD- !TD-@!TD-@ !TD-?!TD-=|׽??>z򚼯H@ !TD-OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-initPoint projects into infinityomer-for `PX!,X  8X!0D>( b@P j>(P@\p$$l  $ |  8  & /,#4$ 13$X3$X 9F78$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/4@  $:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      z{|}~  @ @ @ J@ @ )@ %@ @ @ +@ %-@ -4@ 06@ 3;@ 5>@ 8W@ :O@ AQ@ HS@ NU@ Q TO _ d@7i @9n @;s @=x@?@A@C@E@G@I@K@M A#@A/@A3@A:@A]@A^@A_@Aa@Ab@Ad@Ae@AA@AE@AH@A[@ pBC Es HrNW \wr uy ]v x {}|  A| nQ3r^scvhqwiQp|wQ  @ l@ kj@i@A m@A{@A@Ay@A@As@A@A@A!z@Ap@Av@ € ="&& /20/3P=QIJKLMNPQRTUVWX0Y !#''р0рPր4D\pP PD`PX``P`P `(|| ` ɀ ` ?'b$((`omerfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorscale_factorlon_originlat_origineesfalse_northingfalse_eastingsin_p20cos_p20blaldelusingamcosgamsinazcosazomerforintmodelat2lon2lat1lon1false_northfalse_eastlat_origlon_origazimuthscale_factr_minr_majtempconcomtsts1ts2hljpdlonfggamasinphiomerforyxlatlonsin_phitqusvlulvssHHCP|YCPCPxCPpCPhCP`CPXCPP8 G0GCPHCP@CP< I@P@P KJ@P Lx@Px MJ`P`@` NJXPX@X!TP8A8PhQRh@ht@Pp@PP@PH,@D,PPYUVPAPMq@P@HP84DXY8@08A@tS\tM@P0w(@P(5`tM\lcMAHMV<PY8yzP|VALMnx|P|{@P|@P~@P@P@P  @P ,A`p,AVAS\Y\A,!YAYA\x|,@P2!/A/A4DA0PCCADG@A\J@@ApM@pA,@(A>ADPA,@@G!GGADGA DS@8!`x/|/JJAJAX,@ @X@@@`I((PLMN{KLIJֽMNPQRTUVWXY\]acdfgilmstuz{ĽŽƽǽPQUVWY[\]dgiyǽɄKMLԽQRTUVWYafuPNQUVWY[\]dgiyǽɄ LIJKPXst{PNUWXacmu{ǽPQUVW[\]dgiyǽIJKLMNPQRTUVWXY\]acdfgilmstuz{ĽŽƽǽX\]cdgilmzǽP IKMN JQYQR;kQRTPRTR;xPUV;kUWVW;;kսXYWӽXY;kXYӽ\]]ֽ ;k;  ;k; ;;ӽӽӽӽɄ;k;k ;k;k;k;k;k Z;t ;t Z;t Z;t Z;k;kӽ;k ;k;kP;xPP;xPǽ;kP;ki;k im;mrtZr1 Zss; tt;t Zuu;wyӽzսy;kӽyz;kz{;k;kZ;t  {;h;h;k;kP;xPP;xP;kP;k a; ab;kclcdgiӽcdgif;k g;kP;k  ˽Z2ZZ2ZZ2ZZ2Z;kP;k%Ā( `;kP P;kPP;k ;kԽ;kPP; ;ԽPPPӽӽӽ;k;kԽ;kԽ PP՘ӾPP ;kԾ;kZZ2Z  ;kPP   # ## ###### ##D%0%"#% %         )    I      %   ) 1      @ $  80  0 DP\dp |@0  08omerfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@omerfor omerforint@ SB$omerfor $gntt_label $lntt_label omerforintS$31$omerforintsqrttsincospowfabstsfnzM$2ptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_error adjust_lonomerfor S$32$omerforcoslogomerinv.o/ 1074014876 1032 20 100666 22276 ` 1W@ H RlE TT7 G!1k?/,/-/.///0/1/2/3/4/5ok>)k>1k>9k>Ak>Ik>Qk>Yk>a0n7<+`- 4% -7=! /, 4)4 4+`- 7<,a 4$-14,-! -a,/1 0N,`1.@- ,4-0@4- ,1.0N0N@1.,q0H@,- 0N1.0n @1-a,,1N,0N 1N1n @, 0 0$ 4`,p ,` ,q @7?-`-a@1H-01H@-0H@2H-02H@-0H,@2@H2 H,@0H,q 2N0.-p14n4`2-.- 0 ) 1n-1H. 1H17n0.1N0n0$ 4/A1. 4,0 0$ ,1 , 2-.2-1$N0N@0N2dN0n@@,-0n2.,@2(.,@0N0n@@0H@2@H,`@0N0H5X @24N1N@5X`1N@5X2N@5X@1.0 0$ &@1H0 0$ &- @0.0 0$ &b@,@0.0 0$ &R2@H40@4 2`H4@4,,,0 0n 0$ ,`0N@0.4 .0n@@1NX,a@@@,`0.,p@,1N,q+`4*@4:-a@,,@5X@-!@-1KaK>YK>QK>IK>AK>9K>1K>)O>!/05/04/03/02/01/00/0//0./0-@/0,5Z@5Y545Z @5YP 45Zp@5Y45Z@5Y4,`,0N1N @0.4 .0n@@1NE,ak?/,/-/.///0ok>Yk>ak>ik>qk>yk>k>k>+`4(4% -#-4&, 0. ,0.7 `,-  1hN3 N4*`1jN,%k?0N4$-AK=9K=1Wn@0 #,7 , -q1N -a1n0.1In!@0N0H,,1N1N01n@2H@0.-`0 0$ Z4 2 /10$ ,`-!X,-1@,2,1.1n0n@@-Q1H0n@@7?-k?@0H,K? ,,1N0n@@,0H,1N 1N @1*.,4 /Q0n@0.,`4K=K>K>K>K>yK>qK>iK>aK>YO>Q/00/0//0./0-@/0,?@=|׽?@Lc˰?!TD- !TD-@!TD-@ !TD-??=|׽?!TD-!TD-OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-init `PX!, X  x8 X!@88D f>( @@P nN>(P@\$$l  $ |  8  % +T&( 2|#2|@#@ E7 $TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/9@  (@:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      z{|}~  @ @ @ M@ @ (@ $@ @ @ *@ %,@ -3@ 05@ 39@ 6=@ 8A@ ;Z@ =R@ DT@ KV@ QX@ Q WQ b g@9l @;q @=v @?{@A@C@E@G@I@K@M@O A"@A.@A2@Ab@Ad@A`@Aa@Ae@Ag@Ah@AD@AH@AK@A^@ pBC Es HrNW \wr uy ]v x {}|  A| nS5r^scvhqwiSp|wQ  4@ q@ pn@l@A @A@A@A|@A~@A@A@A@A@A@A!v  ="&& 04005P>SHIJKLMOPQSTUVW0XSPwvPy8D`z`{P|P}LX`~P`l`Pt``Ȁ`ʀ`ˀ> !#''Ѐ0ЀPՀP$0<H`PTd``À`?'b$((`omerinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorscale_factorlon_originlat_origineesfalse_northingfalse_eastingsin_p20cos_p20blaltsdelusingamcosgamsinazcosazomerinvintmodelat2lon2lat1lon1false_northfalse_eastlat_origlon_origazimuthscale_factr_minr_majtempconcomhlts1ts2jpdlonfggamasinphiomerinvlatlonyxthetatvsusqsvlulflagHHCPYCPCPxCPpCPhCP`CPXCPP@G$8GCPHCP@CP< H@P I@P J@P xK@Pt Lh@Phr M`@P`!TO2A2PpPQp@p@Px@PX@PP,PT,PPYTUPAPM@PHHP@4DWX@@0@P8X`8@P8lM\`0@P0(@P(5pMlkbMAPM VDPY @xyPVATMXz@P@P@Pz@Px@P  @P ,Ahx,AVAS\Y\A,!YA YA\,HX2! /A/!`AAA!hhAhC$C$Ȁ4@$`4@$h#C$4@$4@$!,A,$DDa54@$ 4@$H4@$@A,A,PYPA$J4@$4@$A$P4@$Ad$M4@$(K44@$xY/I((OKLMzHIJKLMOPQSTUVWXZ[\`bcefhklrstyzýĽŽƽPKIJսOSWX`erszPLJPTUVXZ[\cfhx~ƽȄJ KLMPQTUV`tPPTUVXZ[\cfhxƽȄHOWrPMPTUVZ[\cfhxƽHIJKLMOPQSTUVWXZ[\`bcefhklrstyzýĽŽƽLTVW`blzƽPJM H IPXPQ;kPQSPQSQ;xPTU;kTVUV;;kսWXVӽWX;kWXZ[\yƽPZӽ[\\ֽ ;k;  ;k; ;;ӽӽӽӽȄ;k;k ;k;k;k;k;k Z;t ;t Z;t Z;t Z;k;kӽ;k ;k;kP;xPP;xPƽ;kP;kh;k hl;lqs~Zq1 Zrr; ss;t Ztt;vxӽ~yսx;kӽxy;kyz;k;k~Z~;t  z;h;h;k;kP;xPP;xP;kP;k `ӽbcfhklyƽP`; `a;kbkbcfhӽbcfhe;k f;kP;k  ʽZ2ZZ2ZZ2ZZ2Z;kP;k#( `߽P߽PPֽPP߽;k;k ;k;kP ;k;;;k;P;k # ## ### ##D%*%s%#% %         )    I      %    )     @ $  80  0DP\dp |@0  P08DLomerinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@omerinv omerinvint@ SB$omerinv $gntt_label $lntt_label omerinvintS$32$omerinvintsqrttsincospowfabstsfnzM$2ptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_error adjust_lonomerinv S$33$omerinvexpphi2zcosatan2orthfor.o/ 1074014878 1032 20 100666 11256 ` 1+@ (&*  G!9k?ok?7?!7>+`/4#`.4$ /48,`0H,47,,q@,a+`@4:@,`@,q@,a,@,4K?YK?@O?k?/,/-o`k>k>+`4#`0H ,q7?a@0.0H 7?A1H@7?Q@1H+`,4% 0H ,#@,7Y 0N,k>0N 1N 1*0 0$ 2@@K>/0 0$ ,`1H,@0N ,1NK>40K>/, , ,,1KN,`,0N 1N 1*. 0N0.K>YK>K>O>/0-@/0,+`49`@4: 4?=|׽ORTHOGRAPHICPoint can not be projectedorth-for `PX!,X!HH8X \D>(t1@<P>(P@@8\$$l44 $ |5H\ 8\7GI 4$ 4$QS& $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@@ \:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       !789:;<=  @ @  @  @ @ @  @ Q % @*@5@@@!K@# ' !"Q Q># D@ Y6@ [97]@:a@<$SAe @Al!@As@Ax"@A(@A'@+ .M3 6O 0@82@29:;<=>?@ ="&& &0&P,'01D2H3H4H6H:P;\<d=l>t?`?(@`@)>* +!,#-'.'/0E10E2PJ@S$T@UHV`WXPYMZ[`[Nc`cQdPJ@P_O`0a@`aP`cQ`dR?U'VbW$X(Y(Z[`\orthfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthforintfalse_northfalse_eastcenter_latcenter_lonr_majorthforyxlatlonsinphicosphidloncoslonkspgHHCCCx+@0@(T HP2: @H - <D30H@8) DD41H@@#@%@HDA$\DC CD@(A8GKDKDA`DD@D@A/C?D@D@0D@(T012463012ֽ46;<=>P2601ֽ;<=P3ӽ4>P6P 0636P4 16;x 2:U:1U;;h <;h=;h >> ?; @C(SZ[PPӽUVZ[S;k STT;xU;kVZ[PP UVWXՌVXX;kZ;k caZ[Z[ [d`UU2Ua ac ##DO%F% w#(% %      !%      @@ $  80 0 <@DP\lx0 orthfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@orthfor orthforint@ SB$orthfor $gntt_label $lntt_label orthforinttsincosM$2ptitleradius cenlonmeroriginoffsetporthfor S$19$orthfor adjust_loncosfabssinp_errororthinv.o/ 1074014879 1032 20 100666 12136 ` 1/h@ +(-t G!1k?ok?7?!7>+`/4#`.4$ /48,`0H,47,,q@,a+`@4:@,`@,q@,a,@,4K?YK?@O?k?/,/-/.//o@k>k>k>k>+`4% ,,K>0. 0.1N1N@0+`#0H 4#`7 ,`,01 0$ "Z1n@K>0H7?q@7?,q1H,@,0 0$ "7?a,/7?.,1N0N 0N 1-n @1K,@,a,@0.0 0$ !@,,7?/!0N0.@1H0 0$ "@1H0 0$ R7?a,/P1N1N@0N,q@0,4K>YK>K>K>K>O>/0//0./0-@/0,+`49P@4: }4",aˀe,,a0 0$ R"1H6`.a@1N,q@0ˀ,#1H7`.@1N,q@0.ˀ,>z򚼯H=|׽?!TD-ORTHOGRAPHICInput data errororth-inv `PX!,X!<<8>X P((DX>(x'@4PY>(P@88\$$ln, $ |o@ 8qlxdx!!  Y( $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/E@ x :AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       !JKLMNOP  @ @  @  @ @ @  @ Q % @*@5@@@!K@# ' !"Q Q># 8@ Y6@ ]97a@:c@<$WAe!@Ah$@Aj%@Ao&@At/@7 :K; >M?A DPE HR IO 4@K2@6LMNOPQRS ="&& &0&P,'01D2H3H4H6H:P;\<d=l>t?`?(@`@)>* +!,#-'.'/0E10E2PJ@R@S@TDUpZ[\]bcdqr,sTu`uUvPJ@PVKWX`XLP^M_```NPeOfPgPhi`iQPlRmn4`nS`nT`uU`vV?Y'Zb[$\(](^_``orthinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthinvintfalse_northfalse_eastcenter_latcenter_lonr_majorthinvlatlonyxrhzsinzcoszconHHCCCx"@0'@()T HP2: @H  <D30H@8 DD41H@@+@-@A@@DAD(JC@ C@8@@8@@A`@G8@@0A,K8K88@@(8@@ 8@@8@@,@JYcd/(T012463012ֽ46;<=>P2601ֽ;<=P3ӽ4>P6P 0636P4 16;x 2:U:1U;;h <;h=;h >> ?; @( RSbqsPPRSRST;k UZ\_cfhmsPU]cdrTUZ\_cfhmsPU]cdrUZZ;k\hms[[;x\]ӽdr;k\]b ;kbc;kd;kcdq;kqֽr;k"r;ks;;ks uX`inv WUUW2UX X`inu_ `Xinu_fh;;kiX`hnuӽhm;;knX`imuӽm  ##DO%F% (% %      !%       @8 $  80 0 <@DP\lx0 orthinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@orthinv orthinvint@ SB$orthinv $gntt_label $lntt_label orthinvinttsincosM$2ptitleradius cenlonmeroriginoffsetporthinv S$19$orthinvsqrtp_errorasinzfabsatan2 adjust_lonsinpolyfor.o/ 1074014881 1032 20 100666 13156 ` 13d@ /<+104$G!7pk?ok? k?k?0n7>7>a/ +`/ #. 4$.7 /A4% , 4#,a,, , ,0N 0.@,+`,4&`@,,@,,@,,@,,7?,7?a,,/0,/@/+`,@4:,a@,@,@,,@,4K>K?K?K? @O?k?/,/-/.//o@k>k>+`4$0H ,@0.0H@1H"6 ,a0 0$ +`K>474: ./AK>1N0/./@/Q0N0./ 4K>YK>K>O>/0//0./0-@/0,1H7?!@7?1,+`4$`7?a,7?,,.q.a@/ 7?!7?,P0H ,,@@/7?!0H , +`4$1N,1H@0N7?!1N.+`4% K>1n,1H0 / , @1. ,q 7?!.,1$.,K>1N 1Gn1 0N0 ,` ?>z򚼯H?POLYCONIC `PX!,,,X h8X!0D>( @ P>(P@h\$$l $ |, 80H<Hx""  +$$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/Q@ H :AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      #$%&'()?@ABCDE  @ @  @ @ @ "@ &@ *@ @ @ ,@ @ @ Q  3 (+@7@)B@+M@-X@/^@1 Ad@ 5"%#$%&'()*Q iN+ @ q1F@ s0IGu/@Jy.@L,aA}>@A?@A4@AH@AK@/ 2[7 >] 4P@BP6ABCDEFGH ="&& ($0(%P/545T6X7X8\9`;d<d=l>?@ABFGHIJK`K8L`L9>: ;!<#='>'?@QA0QBPVP],^>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorlon_centerlat_origine0e1e2e3eesml0false_northingfalse_eastingpolyforintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtemppolyforyxlatlonsinphicosphiconmlmsH(H(C(HC(@C(8C(0(8@(`(@(X(2 LT64PX(P@HP(@(H(:@((6@(!`;2Adp2(x(ht<=@d(I( p=> @l (@(@>?@@@(B(8?@8@8(D(0@A0@0(F@(((<@(HA,DC C@P<JA<J@@`@@KK@@@8@0@(AG@ A,D(;4567894;GP7<8567;>BGHIP9<8ս=>?@ABJP 64;GP 4 5 789<ӽ=;k<=?@ABP>=?@ABP>;k=>?;k>ӽ?@;k?>Խ@A;k @>?BA>?@B; ԽF[BFB1 [GG;  H;hI;hJJ K;L(@]fPP;k]^;kԽj`aPPP`aamne;xfӽgPP; fg;hghijPPhi;kԽjPPij;k j #Ds%R%q#0% %            !%          @ $  80  0DP\ht @03 (0polyfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@polyfor polyforint@ SB$polyfor $gntt_label $lntt_label polyforintS$24$polyforintsqrte0fne1fne2fne3fnmlfnM$2ptitleradius2 cenlonmeroriginoffsetppolyfor S$25$polyfor adjust_lonfabstsincosmsfnzsincospolyinv.o/ 1074014882 1032 20 100666 12796 ` 1d1@  d.*z/ $ G!+k?ok? k?0n 7>7>a/+`/#. 4#. 7 /A4$ ,q,p,`,a, , 1kN0.@,+`,4%`@,,@,,@,,a7?,7?a,,/0,/@/+`,@4:,p@,`@,q@,a,@,4K>K?K? @O?k?/,/-o`k>k>k>+`4& 4%, ,,0. ,K>1$n 0. K>0 @1H#7 /A0 0$ :,0H,1n0,X,`, +`47`7?k?A1n 1N7?a.7?!.. .,/// / k?I1JN0@/7>0&` 7?!,.1N0n@@0H @,`1n,@0,4K>YK>K>K>O>/0-@/0,4?>z򚼯HPOLYCONIC `PX!,X 8X!hhD>( @ P>(P@`\$$l $ | 8`$` ! !  *$ $TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/V@ ` :AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      "#$%&'(@ABCDEF  @ @  @ @ @ @ "@ &@ @ (@ @ @ Q 1 )@5@'@@)K@+V@-\@/ Ab@ 3!#"#$%&'()Q gL* d@ o/D@ s.GEw,@Hy*@J+]A{8@A~<@AG@A9 1 4W5_ :Y <NC@N>Y?DEFGHIJK ="&& ("0(#P/345L6P7P8T9X;\<\=d>x?@AEFGHIJ`J6K`K7>8 9!:#;'<'=>P?0P@PUN]L^L_L`PaPPbWcpd`dXPgYhijl`lZo<`o[p@PUNPgYk``lZ`o[`p\?a'bbc$d(e(fg`hpolyinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorlon_centerlat_origine0e1e2e3esml0false_northingfalse_eastingpolyinvintfalse_northfalse_eastcenter_latcenter_lonr_minr_majtemppolyinvlatlonyxalbciflgHHCHC@C8C06@X@P: HL64HPH@DH@@2@0@!X;AA\hA=p`l<=@\?8h=>8@d8A0|>?0@x0C(?@(@(E@ 4@!HH]DALpD!8H^;ALT;Cp Cpd@pd@pd@pd@pXAPpGBPpd@pHA8d@pd@p8d@p0d@p(d@p Kd(;45678945ս7;AFGHP7<84567;AFGHP9<8ս=>?@AIP 6 4 5 789<ӽ=;k<=>?@AP=Խ?@AP;k=>?;k>ӽ?@;k?>A@>?A; EZAE1 ZFF;  G;h H;hII J;KD((]^_iPPԽchlP^_^]_]_ֽa;kcdcddhiPP i;Խjl;k;k;kl okpko #Dm%R%q#0% %           1%          @ $  80  0DP\ht @0  polyinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@polyinv polyinvint@ SB$polyinv $gntt_label $lntt_label polyinvintS$23$polyinvinte0fne1fne2fne3fnmlfnM$2ptitleradius2 cenlonmeroriginoffsetppolyinv S$24$polyinvfabsphi4zasinzsin adjust_lonpsfor.o/ 1074014884 1032 20 100666 13288 ` 13@ ((0H,`1%DG!+k?/,/-/.oPk>k>k>k>0n7=". 6 . +`,4$4& 4#,a,, , 0N1.@,,@0H,7>!0H+`/4%`/0 ,0$ ,,,@,@,,@0.#@7Y`/!0 0$ ,7?q,7?,0N@1H7?7?a/,.@/,7?a.p7?,1H@/,+`@4:,a@,@,1H@1H4K>YK>K>K>K>O>/0./0-@/0,k?/,/-/.ok?9+`4#`0H ,p@0.,q1N 0N @1H+`7?.q4$1H@,,a0 0$ !@+`47 4=./.0N0N 1%n ,q1H@0N+`K>4$ 1N,"6 1H0/@.,q0N@1N ,1NK>40.K>K?9O?1/0./0-@/0,# 4?78 //,0N0N 1%n ,q??!TD-=|׽@POLAR STEREOGRAPHIC `PX!,KX `@@8KX! @@DL>(@P7>(P@h\$$l8@ $ |9T4 84;hlhKM"d" d U,`%D$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/[@ 4h 8?GOX ` i s ~@@        ! / > K Y g t  Š֠͠ ߠ   !. ;FQ \eksy Š ϠB٠C  :"* 0 7 <CIPW]dkDsA{;   `  d f h ɠjl Ҡm` @o q@s@ޠuw ` {@@}`   ` `   @     *046`?  >GGN V _ jwxp` @    ͠ @ `     xp` @    `@ @ $` *@ 0 6 <H@@O@@T@@@ Y ^ cm x      *+,-./0BCDEFGH  @ @ @ @ @ @ @ @ "@ *@ -@  @  @ Q !3 *@6@)A@+G@-M@/S@1 AY@A^'@Ac(@Aj)@ !> '5)%*+,-./01Q qV2 <@ w3N@ y2QO{1@R0@T3eA^8@A9@AG@Ac;@A>@ >XDJX@EFGHIJKL ="&& ,$0,%P45:T;T<X=\>`?`@hAtBCEFHIJPK>LMNOP<`P?THUTV`WhYt`Y@Zx`ZA>B C!D#E'F'GH^I0^JPdXk$l<m<nDo`ppst@tv`vcwPdXrs<`vc`wd?g'hbi$j(k(lm`npsfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minoresee4center_loncenter_latfacindmcstcsfalse_northingfalse_eastingpsforintfalse_northfalse_eastc_latc_lonr_minr_majtempcon1sinphicosphipsforyxlatloncon2rhtsHHCCCCA@T`@XM@K@!(\>,A`l,tPdp?@P@`P<@HI@@68BF8@80@04(@(? IJ @ AJKKC8@EH@H<A$8DC<LC<H<@<(<@<8A<D!88lkGA<GA<@,<@<HAD\,<@< <@<`<@<<@<8<GAG<@<@<@<<@<e(><=W?FHJLȄUP?HL;>?@AOPUP<=OPP:>UP : ;<=?ӽ@;k?@A;kACEJԽIBCFHILMVPCEJBֽFHILMVPBE CE BFFH J;kIJJ;kMNLMN;xO; POP; PT[T1 [UU; V;hWW Y;WZb(klostPPk;kԽllk m;knrPPn; orPpPPps;kԽtPPԑst;kԽvtwrPrsDs%j%e#0% %            !%         @ $  80  0DP\ht @0 psfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@psforpsforint@SB$psfor $gntt_label $lntt_labelpsforint S$24$psforintsqrte4fnfabstsincosmsfnztsfnzM$2ptitleradius2cenlonoffsetppsfor S$25$psfor adjust_lonsincospsinv.o/ 1074014886 1032 20 100666 13224 ` 13@$ ,,0+1 $G!)k?/,/-/.oPk>k>k>0n7=". 6 . +`,4#4% ,p,`, , 0N@1.,q@0H,a7>!0H+`/4$`/0 ,0$ ,,,@,@,,@0."`6x`/0 0$ ,7?a,7?q,0N@1H7?a7?/0,q/ @/Q,q7?a.7?,1H@/,+`@4:,p@,`@,1H@1H4K>YK>K>K>O>/0./0-@/0,k?/,/-/.ok?9+`4$ 4#`, ,,q0.0. k?0N 0N 1N1N@0,a0H0 0$ +`,4?,/1N0N 0n7?k?@/,qK>0N/@K?! 1 0$ ,q,pK>0N.#4?7 /./1N0N 0n7?# 1H7= /@1N,q,p0N@0K>.4K>K?9O?1/0./0-@/0,??!TD-=|׽@POLAR STEREOGRAPHIC `PX!,MX d@@8MX!TTDN>(@Pm>(P@`\ $$lnD $ |oX 8qtT"l" `l `+$$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/a@  `8?GOX ` i s ~@@        ! / > K Y g t  Š֠͠ ߠ   !. ;FQ \eksy Š ϠB٠C  :"* 0 7 <CIPW]dkDsA{;   `  d f h ɠjl Ҡm` @o q@s@ޠuw ` {@@}`   ` `   @     *046`?  >GGN V _ jwxp` @    ͠ @ `     xp` @    `@ @ $` *@ 0 6 <H@@O@@T@@@ Y ^ cm x      *+,-./0HIJKLMN  @  @ @ @ @ @ @  @ (@ +@  @  @ Q 1 '@3@'>@)D@+J@-P@/ AV@A[%@A`&@Ag'@An@ !> '3)#*+,-./01Q qV2 P@ w1N@ {0QO/@R.@T3A9@AB@AVJ@A2 A Da FXHJIJKLMNOP ="&& +"0+#P33:P;P<P=T>X?X@\AhBCEFHIJPK>LMNOP0`P?T<UHVTW\Yh`Y@Zl`ZA>B C!D#E'F'GH^I0^JPdXjk<l@mDn\ohrstuvqrPxayz`zb}4`}c~8`~d?e'fbg$h(i(jk`lpsinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minoree4center_loncenter_latfacindmcstcsfalse_northingfalse_eastingpsinvintfalse_northfalse_eastc_latc_lonr_minr_majtempcon1sinphicosphiespsinvlatlonyxrhtsflagHHCCCC> LL:X@PX@PP3@7@!$T>,AX`,Y\d?@/F@HD@@H8BF8@80@05(@(: IJ @ AJKK@,@<<@A@DADGCLCHC<P@P@(P@A\JP@ P@P@XP@5A5P@@P@HP@8A,d(><=W?FHJLȄ@AOPUP?HL:;>@AOPUP<=OPP : ;<=?@;k?@@A;kACEJԽIBCFHILMVPCEJBֽFHILMVPBE CE BFFH J;kIJJ;kMNLMN;xO; POP; PT[T1 [UU; V;hWW Y;WZb(kloPPսnrvzPkljklm;knmnqrPoPor;rst}uvvqrPqryy;z;kz }t~Dm%p%_#0% %           )%          @ $  80  0DP\ht @0 psinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@psinvpsinvint@SB$psinv $gntt_label $lntt_labelpsinvint S$23$psinvintsqrte4fnfabstsincosmsfnztsfnzM$2ptitleradius2cenlonoffsetppsinv S$24$psinvphi2zatan2 adjust_lonrobfor.o/ 1074014888 1032 20 100666 12908 ` 1 2l@ @ @ /X)$20 @G!t@k?/,/-/.//ok?I7>0H #@,A7\`,Q7D /7B/ 7V .0H .0H / +`,A4?,Q7 /7`. +`.4# ,a7,q7A.a7`.q 7/7.` 7 ,` ,p ., 7`/ ,!7 ,1,0,7,,,,@7D`,,P.p7S/7].... .7T .7Z`./!.7//1/ ,,,///.a /Q/ .q .`.p./A/0///. . ..,1.... //.../@//,!+`.4?4?/0N/%_/+`@4:@1H@1H,q@,a4K>K?IO?A/0//0./0-@/0,k?/,/-ok?)+`4# 0H ,p@0.#0H 7 ,,1n0n@@,7?Q+`"0.647,0 &a 1 1 a/77. 7. 7. F!X. 7E. 3X.70N. 1y,`2N,q 0N K>1V1hN370N1N 1*0$ (,@49P777/3 7/7 7/= 0N/4 "2./: 67: ./6  1',`1fN 4"`0N,Q1  ,a2N K>1+0N 1GN2N0 0, 48P77/ / 7 / 4`70N / ,`7/1K./ "A6.180N7/ 0N 2N /1'N,a1KK>22N 1 N 1gN 0,`4K>K?)O?!/0-@/0,vȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!R( @ P>(R@P\>(P@` h @$$x d $ x 8LF\H$$@@6)$$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/n@ H@9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      CDEFGHIYZ[\]^_  @ @ @  @` @@@ ` @@@  Q ) P@@#@%@' A% A+CDEFGHIJKQ 'DL H@ .<@ 0?=2@@6@BMA:@A?@AB WFY8Z[\]^_`a ="&&" +0+P0+5\678D:D;D<D=D>L?L@LALBLCLDLELFLGLHLILJLKLLPMPNTOTPQRSTUVWXYZ[\]^_`acdcdhijk$l0`l.m4`m/>0 1!2#3'4'5#6q70q8PwF~ 4P0`M4`N?O'PbQ$R(S(T$U`%Vrobfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingprxlrrobforintfalse_northfalse_eastcenter_longirobforyxlatlondlonp2ip1A(PDATHGCPHCP@P@PP@PP 75P@P @85DP@BHHA GCLCHH@A4D!,,A4L,KHȀH@H@H@(5678ij:;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`adȅ8>@AB7KLMN>GHIJ@:;=?`:;<B:;ֽ=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`adPG:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`adH;=?P ;:@BDP7CDEF >ACEGP @FHJLP ?IKMOP BNPRTP5 6=`EVXZ\PACY[]_PDFK^`PLMNIOPQRJ DWXYZ =STUV H E G A C[\]^ F_ad J I LQSUWP N K MORPTSUWaVXYZ\_ O R P T V X Z \ ` Q S U W Y _^[]d [ ] ^dP adPdchV1Vi;hj;h k lk; m]B(Ƚ~QQ;k ~;kPՏԏPӽP  P#DC% %F% SE# % %   )%    @ @` $   800 @ T@\ht0[  robfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@robfor robforint@ BS$robfor SB$robfor $gntt_label $lntt_label robforintS$17$robforintM$2ptitleradiuscenlonoffsetprobfor S$18$robfor adjust_lonfabs S$18DD$robforrobinv.o/ 1074014890 1032 20 100666 15540 ` 1 P<@ D t t P91|: t$G!< @k?/,/-/.//ok?I7>0H #@,A7\`,Q7D /7B/ 7V .0H .0H / +`,A4?,Q7 /7`. +`.4# ,a7,q7A.a7`.q 7/7.` 7 ,` ,p ., 7`/ ,!7 ,1,0,7,,,,@7D`,,P.p7S/7].... .7T .7Z`./!.7//1/ ,,,///.a /Q/ .q .`.p./A/0///. . ..,1.... //.../@//,!+`.4?4?/0N/%_/+`@4:@1H@1H,q@,a4K>K?IO?A/0//0./0-@/0,k?/,/-/.///0/1/2/3/4/5o`k>k>k>k>k>k>+`4# ,a4 . 7?,q 0. .4`*,`..1n /A,1&n2$N 1on@@0.7?0'11 4@k?4+`,4'PK?5 5, 5, 2 H1N, 0.0.@02n, 0.1N 1Sn0N 0N0N2G.0N 2K. 0N0 0$  ڭ_5 +`k?49@4:4K=K>K>K>K>K>K>O>/05/04/03/02/01/00/0//0./0-@/0,@k?1 7?%000$ 1N4/0N1N,#74,@2on@7?0.1 0$0 0.0$ 44, 4, 4, 1N , 4R!, 0.42DN , 0,`15N 0N 0 15N1v0N1N0N44, 4, 4, 1N , 4R1, 0. 42FN , 0 415N.1qN,`0 2N 0N1*0N1N0N40.0N0n0na2h@@4/0 0$ o/+`4?K=7?2eN, 444,`4.4/ "`3n/ / 1N / 6}3 ./ /4\2/ ,pK=V9'N^3N1? 0n1@,`4,`+`49`@4: 4Կvȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rh?FR?ROBINSONToo many iterations in inverserobinv-convToo many iterations in inverserobinv-conv `PX!TT,X h8X! X D(>(x_@lP>(R@pP\>(P@ h t$$x) $ * 8,A$pTTC*P*@P@E71$$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/s@ T@9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      CDEFGHI  @ @ @  @` @@@ ` @@@  Q ) P@@#@%@' A% A+CDEFGHIJKQ 'DL @ .<@ 2?=6@@8@BMkA:@A=!@A@)@AB*@AD,@AF-@AH@AM/@AP% A%& Wmpouqs ^ ] \^id gc ab i[ kF8bcFm[n\]^ ="&&% .0.P3+8\9:;D=D>D?D@DALBLCLDLELFLGLHLILJLKLLLMLNLOPPPQTRTSTUVWXYZ[\]^_`abcdfgfgklmn$o0`o.p4`p/>0 1!2#3'4'5&6t70t8PzFHP[  >>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingprxlrrobinvintfalse_northfalse_eastcenter_longirobinvlatlonyxyyp2uvtcphidy1ip1A(PDATHGCPHCP@P@PP0@PP :8P@P @;8DP@BAx/!lGAGChChȀ@h@h@hAhS8PY4YYAA08V,<d/A,Ch!(,PAhAhYh\Y \A d2!/A 8/A/@h(89:;lm=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdgȅ;ACDE:NOPQAJKLMC=>@Bc=>?E=>ֽ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdgPJ=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdgK>@BP >=?dP ?89:;nQ =89:;nQ;ACEGP:FGHI ADFHJP CIKMOP BLNPRP EQSUWP8 9@cHY[]_PDF\^`bPGINacPOPQLRSTUM GZ[\] @VWXY K H J D F^_`a Ibdg M L OTVXZP Q N PRUSWVXZdY[\]_b R U S W Y [ ] _ c T V X Z \ ba^`g ^ ` agP dgPgfkV1Vl;hm;h n on; peG( ȽQQ;k ֽPPӽ;k ӽӽ V V2Vý    ;k   ӽӽ  ӽӽՌ  ;k ԽnjPPӽ;k ѽVV2Vý##"DC% %F% 9 % %   1%     @p @ $   800 @h T@\ht0[  robinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@robinv robinvint@ BS$robinv SB$robinv $gntt_label $lntt_label robinvintS$17$robinvintM$2ptitleradiuscenlonoffsetprobinv S$18$robinvfabsp_error adjust_lon S$18DD$robinvsinfor.o/ 1074014892 1032 20 100666 9404 ` 1$@ "D #4G!Xk?/,/-o7>+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,/-o+`4# 0H ,p@0.,`1H@0N ,q1NK>40K>/,`,a1N0.K>O?!/0-@/0,SINUSOIDAL `PX!||,X!||8g>(x @ D7>(P@ P$$`? $ p@< 8<|B,tR;<T88\8 $TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/z@ <<9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      )*+,-./  @ @  @  @ Q  x@@@@ Q 6 x@ %.@ '1/)@2-@4!A1@ &8(*)*+,-./0 ="&& &0&P+.4/<0<1@5@6H7P8X9d`9 :h`:!>" #!$#%'&'' (>)0>*PC8HI(JTKh`K;Lh`L<?='>b?$@(A(B!C`"Dsinfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingsinforintfalse_northfalse_eastcenter_longsinforyxlatlondelta_lonApGA4xDCxHCx@x 04.@8xx 88/.<x@4x@xxLx@H16@@HxAxDCxLCxHx@xKxȀx@xx@xx@xA( ./0167./018P./0ֽ8P5T. /5T05116;h7;h88 9;:A( HIJPP H;k I;k KJIJJL #D=%@% Ga:# % %   !%    @ $  80  0@8DP\0htsinfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@sinfor sinforint@ SB$sinfor $gntt_label $lntt_label sinforintM$2ptitleradiuscenlonoffsetpsinfor adjust_loncossininv.o/ 1074014894 1032 20 100666 10144 ` 1t'@0 t$">%G! \k?/,/-o7>+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,/-ok?)k?1+`4$ , ,,0. K>1$n0. ,`@1H#7 , 0 0$ 2+`49P@4: h4H@@,`@0.,0 0$ R,K>/4K>K?1K?)O?!/0-@/0,@,`,,0N1n @0K>m.?!TD-=|׽SINUSOIDALInput data errorsinusoidal-inverse `PX!||,X!8X xD>(/@<P>(P@@ \$$l $ | 8TL688"$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ 89@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      56789:;  @ @  @  @ Q  x@@@@ Q 6 @ %.@ )1/-@2/@4!AA1@& );1 4= .86*80789:;<=> ="&& &0&P+.4/<0<1@5@6H7P8X9d`9 :h`:!>" #!$#%'&'' (>)0>*PC8HI<J<K@PL;M`Np`N<P|QVW`W?XPC8PR=ST`T>`W?`X@?C'DbE$F(G(H!I`"Jsininv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingsininvintfalse_northfalse_eastcenter_longsininvlatlonyxtempApGA4xDCxHCx@x 04.@8xx 88/.<x@4x@xxLx@H16@@A<`D!08IH;A<D;C`LC`H@`@`@`ST/YPQ/@`A( ./0167./018P./0ֽ8P5T. /5T05116;h7;h88 9;:C( HIJSVPPHIJKPSHJK;k ԽPQMTT2 TN NWP;k Q;k PQVV WNXS;k T;kSTT ###D=%@% Y}5# % %   )%     @@ $  80  0@8DP\0h txsininv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@sininv sininvint@ SB$sininv $gntt_label $lntt_label sininvintM$2ptitleradiuscenlonoffsetpsininv S$16$sininvfabsp_errorcos adjust_lonsomfor.o/ 1074014897 1032 20 100666 28168 ` 1n@$iYkdGG!|k?/,/-/.///0/1/2ok=k>k> k>k>k>!k>)k>1k>90n 7<7<.+`/4' /+`, 4( 4# K<4 / 4&`-,q,a-1)N1. ,/7=!/+`/4*0n&.a 4:,`0 - 7>@,,q@,a4@K=H`z7=!4`' 7>./1@..1N ,0. / 1DN,`7=!4& 4`/7>1 //.1N ,0. / 0N,`0H+`.4*-4:@,,q@,aK=@5Y0K=@5Y`45X-14 k>4 @1N,`5X@0N-@-,@5X @1H,@0H- 7>7?17>0 k?k?0$ ,@1H,+`,4?-0 0N 0N,0N 7>2N7?1.7?1.7?!1.4 1en 7?!1vN-!0N 0H,0N// 1n0n2N0./@/,,,,, 7?7>$7?k?7?!k?0@,, 5k$, ,12N,1rN,0N 0N k>1N 2$211%1 @4 $4 k>7?7>$7?k?7?!k?0@,, 5k$, ,1-N,1mN,0N 0N k>1 N 2$211%1 k?7>k?7?7?7?!-1@,,4`,+`, 0, 1- 1o-01L 0n,/! 4424/1.0n . 1 n.1vn.0n,aK=YK>9K>1K>)K>!K>K>K> K>K=O=/02/01/00/0//0./0-@/0,k?/,/-/.///0/1/2/3/4/5o`k,,`k?ak?q0N@,`+`0N 4'`,`,,, @0N+`1N4&,, ,1N3 [ S1Vn@@,+`,4( 1N1N 1 11N - 1Vn@@, ,,1N, 30N,b 0N-1n0N 2.0N @1 , 0H -,1N0N 1 .2n,,` @1FNK?a1N,/,`,@0NK?i1N . ,-,`10N 1Mn @@K?q1N#@7Y`//!,`@0NK>1N.`K>K?YK?QK?IK?AK?9O?1/0./0-@/0,?@?=?[Ow@` =p?򽴆&?FR5?)O?l0a\j?SC~@`)?lī@Lc˰>. &֕@@@V@>@N@.@F>z򚼯H?!z!z?!TD-@jz)U8^@|3!?@ !TD-@!TD-?!TD-@@@??F?@@@SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without conv som-forward `PX!,jX  X X8jX!HDlX!  P >( l@\D1>(P@h$$xu $ vd x,(@(3(!h:):)LYG$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ (9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      0 @mnopqrs  ,@ @ @ y@ |@ @ @ H@ L@ B@ P@ $@ ;@ 8@ @ @ 3@ @ @ Q (K Ā2 @< 5A 7H@9M@;Y@=d@?h@Ao Ct E{@G@I As A!@A>@A@@AF@AT@A\@A]@A^@A_@A`@Aa@Ac@Ak@An@Af@ n !q" 's )p- 0vI PxS Zz iMk1lmnopqrsQ t @ @ @d@uA A A@A@A@A@A@A@A@A @A@A@A@A@A!@A&@A)@A/@A4@A9@A<@AA@AE@AK@AP@AZ@A`@Af@`O @kty~ ÀA  @ @ @ ߀@ ހ@ ݀@ ܀A&@A!@A@A@A@ ڀ܀ ="&&! )00)1P8M@DEFGHIPJnKLMN`NooPQpRPSqTU@V@WD`WrPZs[L\]^`^tc`cuhijPkvlm`mwopqr tu$@uLvPwxyz{|}~Px TX\`y`hPzx`{ TTTTT\d|||`||`}>~ !#''"0PXpp@tt@@ @$(T\`t@@@@@@@@((,8@@@@LT@`p@@@@ 4HXd T`hp@||`؀|`?'b$((# 0 PLPXh 0Lh ` !`!@,%) ) $ `% somfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centeraba2a4c1c3qtwxjp21sacaessstartfalse_eastingfalse_northinggsat_ratiosomforintsat_ratioflagstart1timefalse_northfalse_eastlonalf_inpathsatnumr_minorr_majorialfe2ce2sone_esdlamfbfa2fa4fc1fc3suma2suma4sumc1sumc3sumbsomforxylatnldelta_lonrlmtabstlamxlamcxlamtab2ab1xlampsavdsdsqsdtanlgxtantphidprlm2scltlampconvdelta_latradltradlntemperrorbufL230L240L250L260L300som_serieshsqfcHHCCCCxCpChC`C\CXCP p@@@@ FE@| GE@ HK @ hG@HGAG |\[88 8<UT8@H88LN8@8PDLV[ MK@ NK@$(@(x0@0!wvhAh!|xvAAAHb@H!{v/A/ |yXX@XP}P@P ~y@@@@p pp|p$xp p#ypCpKxKKKK$l5A S!,P2Tt2A(P!4P,T,\0M!MAM!PP8T8ALJ!<PATA8DdtDAdD#HHxH#L\H`tHcoH\x@xdp@p lxh|h@h tx`|`@`HAXtJCCAhMJ!ptJxJaXlJ@ApPKh!pPAPAS@!AYA(LY !$$ A(L @8Y,4/A8LGlt,ALLDA\AVA \G@ @0@(ATX/`GATX,Yd|/@A/8Y8ATMK0Y$</AHJAXMAdS@P@H@X@@@AD@@x@p@@h@`Ah8@@A,CCCCLCHAPT,A`,G@8@0@P@H@X@@(A D@@A0GAD((tHDELM@NӽW^rSD@W^rSEDԽNcqP @HLTUVW[\]^opuyz{}DENcqPFGMV]ipPIjHLTUyz{HֽLU\tuvwxy{}PDFGEHIHLKhlmoprVMhlmoprLNKhV MN NKotvwyh1Lii;Nopu}RVӽW^TotvwyVUUVTVW V][\ՅWԽ^[otvwy]\\][] ]chlmoprVW^hlmoprchVh1 W ^ii;l l2 Vm m2 Vopu}oVӽpo;t pVp;t qq; rr;t Vt;k tu;k x{|}~uuv;kwxy{}սz|ֽ~Pwyz|}~PԽxwvxw}{y|}}~~~|y}zz 4} 4 4 4PսսPUH(@pĽŽƽͽνϽȑͽӑ PPͽ   ŽPPνнԽSнS˽ѽԽPн˽ѽԽP;k  ;k ;k;kԽ;k;k  ;k ׽ٽ۽V7VV2Vӽ˽ѽԽ˽ѽԽ;k ˽̽ѽԽ ;k ;kđőƑ;kԽ;k ;k;k;k;k;k;k;k ԽPP;k;k;kԽPP;k ӽf(  Ț Ӿ;kPP;k վPӾP;kվPP;k;k;k ;k ;k   ;k  ! ####!#"_%%%w`% % %         !    )    I% ) A 9   ! %I %          A%        @ $   G00@ P  d@lx T 0  H ,8 @  T somfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@ som_seriessomfor somforint@ SB$somfor $gntt_label $lntt_label gsat_ratio somforintS$31$somforintM$2ptitleradius2 genrpt_longgenrptoffsetpcosfabssin som_seriessomfor S$32$somfortanatansprintfp_errorsqrtasinlog S$32DD$somforS$33$som_seriessominv.o/ 1074014900 1032 20 100666 25940 ` 1eT@ 88aS cD8AG!zk?/,/-/.///0/1/2ok=k>k> k>k>k>!k>)k>1k>90n7<+`.4& . K<4# K=4 / ,,q,a,1N1.&,@.+`/7=!.4'`0n. 7>,`,+`44)@4:,q4 @,aK=@5905@59`458/7>k?4 @1N,`58-P@0N,@,7<58 @.@1H,@0H-A7?1k?0 k>0$ ,@1H, 0H,7>-Q 1dN 1wN,0N+`2N,1.4?1.7>1.7?2n 7?2N7?!0N 0N , 7?!/ 1n0n 2N0.// 0n@/,,,,, 7?7>$7?k?7?!k?0@,, 5k$, ,12N,1rN,0N 0N k>1N 2$211%1 @4 $4 k>7?7>$7?k?7?!k?0@,, 5J$, ,1-N,1mN,0N 0N k>1 N 2$211j%1 k?4 k?7>7?7?,7?!@,,4`,+`, 0, 1,1/,1l 0n, ,431N4/! .p0n .` 1n.q1*n.a0n,aK=YK>9K>1K>)K>!K>K>K> K>K=O=/02/01/00/0//0./0-@/0,`7=!4`' +`.4'`1 /.7>1N .,0. / 1EN,`7=!4$14`.+`0..4'`1N /,7>0./ 0N],`k?/,/-/.///0/1/2/3/4/5ok?)k?1k?9k?Ak?Ik?Qk?Y+`4# 4$ ,q#@,a 7_ ,0.,#/0.0N // 7`/7?.2 n 44d-4%`4)4*1H@1H,0N,1H@0N-!2N-0 - 2N3 K [1vn@@,2N,7?1n /,`1N1 N 2n 1gn@17-P1N0N@2.-@ 1H,`,1$N0n@2.-Q1N@0N -A,0N1 2N 2. 1fn @1.0 0$ 4^1H`*+`49@4:P4@1H,`0H,0N1n 1&n @1,0H-Q1N1n 0N@1(.-A0N1.-@2(N@0H-7?/!1H!@0N@0H0 1H0$ 1. @@0H,p1H1N1.2n@1.-02DN-1 1.0N , , K1GN1&N@)2DN@1H2Dn-101. 2*n@@0H2 0$ 1H2 0$ !@1H0 1H0$ 1H@@0 0$ !",61.. 1N,1 N2GN 2*.@2F.0 0$ !B@,0 0$ !r,@2$K>4K>,@, K>YK?YK?QK?IK?AK?9K?1K?)O?!/05/04/03/02/01/00/0//0./0-@/0,#7 /"`6vE.,p1.2N0N@11n@@e0H@1H0H @2@H1N @2@H,,p,aɘjJ1n@@0Hk?/,/-/.ok?9k?Ak?Ik?Qk?Y7Dk?i#7 K>,,`k?ak?q0N@,`+`0N 4&`,`,,, @0N+`1N4(-- -1N3 [ S1Vn@@-+`-4' 1N1N 1 11N , 1Vn@@- -,1N, 30N,b 0N,1n0N 2.0N @1 , 0H ,,1N0N 1 .2n,,` @1FNK?a1N,/,`,@0NK?i1N . ,,,`10N 1Mn @@K?q1N#@7Y`//!,`@0NK>0H0H1N.`K>K?YK?QK?IK?AK?9O?1/0./0-@/0,?@?=?[Ow@` =p?򽴆&?FR5?l0a\j?SC~@`)?lī@Lc˰>. &֕@@@V@>@N@.@F>. &֕?@@@?!TD->z򚼯H?!TD-?F?@@@SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse `PX!,X  ( @(8X!DX!  8P >( @\ 0>(P@h8$$x \ h$ h   *|`D` 0DD 8 &8 & S A$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@(?/@ h `D9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      fghijkl  @ @ @ i@ k@ m@ q@ 6@ :@ <@ 0@ @@ "@ *@ (@ @ @  @  @ Q I # @- 52@77@9C@;N@=R@?Y A^ Ce@Em@G zAuc Aw@A{,@A.@A4@AD@AL@AM@AN@AO@AP@AQ@AS@A[@A^@AV@ lWY ]o^ bq cn4 ;t> Ev TKe1KVfghijklmQ n @ x@ Nwv@u@oA@A@A@A@A@A@A@A@A@A@A@A@A@A @A@A@A@A@A!@A&y@A+ v  A 1@@ €@ ր@ ـ@ ܀@ ߀@ A@A@A<@A>@AA@ Àˀ ="&& &00&1P2K9x:|;<=?P@lABC`CmZ[\]^_$`8aDcTd`@defghij k l mnopqr$s(t(u,v0Pwtx0yPzX{|}`~uvPv `w @H`xP2KPFnGPHoI JDKD`KpPNqOPPQ`Qr`Qs`x`y>| }!~#''!0P@LLЀP(`P@`P`8DTT@pt@@(,@hh|`ۀP@@@ @L`ۀ`܀?'b$((#0PLPXh 0Lh``@,%))$`%sominv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centeraba2a4c1c3qtuwxjp21sacaessfalse_eastingfalse_northingsominvintsat_ratioflagtimefalse_northfalse_eastlonalf_inpathsatnumr_minorr_majorialfe2ce2sone_esdlamfbfa2fa4fc1fc3suma2suma4sumc1sumc3sumbsominvlatxytlonconvsavsdsdsqblondifstdefacactantlatddbigkbigk2xlamtslscldlatdlontempinumbsom_serieshsqfcHHCCCCxCpChC`C\CPz@|@~ ;:@|L <:@=A@GDLGAG@L PO00 <@JI0DL0@0@ @(!fe2A2!gebAb L@e@@!je/A / khX X@X@P HmqH@H nh88@8LLp$Hp pp\p4Xxzp#oepC0pKxKKKK`5A$\S!h22A(dP!p,(,lM! $sqMA(,M!8 8A,J!x;0;tDDA0D#HLHH#vzHHc|,vdH@x@p hh@h ``@`ApJAPC CK@@@@tGG!GAGK0!AAYA,A8\@0@(@P@@@X@@8@x@p@h@`AAY/APA,A8<,`|MYH\MATX,AMAP@@ @HhxVASA<V HYA,YtxSYhpSAM@A,CCCCLCHAPT,A`,G@0@(@P@@@X@@ A D@8A0GAD((t=9:BCֽ=`fghjlP9ӽ:=`fghjlP:=CIJKOPQ^_dhijlz{|}~?;+`/4#`.4$ /48,`0H,47,,q@,a+`@4:@,`@,q@,a,@,4K?YK?@O?k?/,/-/.oPk>k>k>+`4#`0H ,q7?a@0.0H 7?A1H@7?Q@1H+`, 4% 0H , #,7 1*N,,1N0N 1( 1F@1H,0 0$ *+`49`@4: 4,1H,`,0n 1N@0N,1NK>40K>/, , ,,1KN ,`,0N1N B1hN0.K>YK>K>K>O>/0./0-@/0,?=|׽@STEREOGRAPHICPoint projects into infinityster-for `PX!,X!XX8"X lD<>(4@<P=>(P@@8\ $$lRD $ |SXD 8DU|etg  oS%$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@ D:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       !789:;<=  @ @  @  @ @ @  @ Q % @*@5@@@!K@# ' !"Q Q># T@ Y6@ [97]@:a@<$Ae @Al!@As@Ax"@A(@A'@* -M. 2O 4@62789:;<=> ="&& &0&P,'01D2H3H4H6H:P;\<d=l>t?`?(@`@)>* +!,#-'.'/0E10E2PJ@S,THUPVhWPXMYZ`ZNP]O^_```Pc4`cQd4`dR?S'TbU$V(W(XY`Zsterfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterforintfalse_northfalse_eastcenter_latcenter_lonr_majsterforyxlatlonsinphicosphidloncoslonkspgHHCCCx+@0@(T HP2: @H - <D30H@8) DD41H@@#@%@HTA,dDC CT@(A@GKTKTAhDT@T@A>ALGT@T@0T@(T012463012ֽ46;<=>P2601ֽ;<=P3ӽ4>P6P 0636P4 16;x 2:U:1U;;h <;h=;h >> ?; @d(S_`PPӽUV_`S;k STT;xU;kV_`PP UVW^ՌVW^W;kYUUY2UZ Zc^_^_;k cZ_`_` `d ##DO%F% q}#(% %      !%      @@ $  80 0 <@DP\lx0 sterfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@sterfor sterforint@ SB$sterfor $gntt_label $lntt_label sterforinttsincosM$2ptitleradius cenlonmeroriginoffsetpsterfor S$19$sterfor adjust_loncosfabsp_errorsinsterinv.o/ 1074014904 1032 20 100666 12068 ` 1/$@h +(LR-0!|G!6Ok?ok?7?!7>+`/4#`.4$ /48,`0H,47,,q@,a+`@4:@,`@,q@,a,@,4K?YK?@O?k?/,/-/.//o@k>k>k>k>+`4$ ,,K>0. 0.K>1N1N@0+`# 7' 0H 4#`,,`0N1n@@1N7?q@7?,q1H,@,0 0$ !7?a,/7?.,1N0N 0N 1-n @1K,@,a,@0.0 0$ !R@,,7?/A0N0.@1H0 0$ "@1H0 0$ R7?a,/1N1N@0N,q@0,4K>YK>K>K>K>O>/0//0./0-@/0,,a,,a0 0$ R#1H7`.@1N,q@0,"`1H6t`.@1N,q@0.,@=|׽?!TD-STEREOGRAPHIC `PX!,X!8X 0((D>(X@P>(P@8\$$l $ | 8txx!!``Y(L!|$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@ x`:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z       !JKLMNOP  @ @  @  @ @ @  @ Q % @*@5@@@!K@# ' !"Q Q># @ Y6@ ]97a@:c@<$YAe#@Ah&@Aj'@Ao(@At1@; >K,[@B EOF IQ JN0 5T 6M 8@M2@:M?NOPQRSTU ="&& &0&P,'01D2H3H4H6H:P;\<d=l>t?`?(@`@)>* +!,#-'.'/0E10E2PJ@RHSHTHUtVWXP^M_`aPoTpq$rHtL`tU`tVxx`xWyxPJ@PYKZ[`[LP^MPbNcPdOef`fPPiQjk`kR`kS`tV`xW`yX?]'^b_$`(a(bc`dsterinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterinvintfalse_northfalse_eastcenter_latcenter_lonr_majsterinvlatlonyxrhzsinzcoszconHHCCCx$@0)@(+T HP2: @H ! <D30H@8 DD41H@@-@/@!@DRDAH8D!DDSJAH JC8 C8@8@8Ah8G@80A/KK@8(@8 @8@8$8JY`a/(T012463012ֽ46;<=>P2601ֽ;<=P3ӽ4>P6P 0636P4 16;x 2:U:1U;;h <;h=;h >> ?; @( RS_ptPPRSWejtRST;k UWZ`cejtPUX`aqTUWZ`cejtPU;kUVV;xWXӽaq;kWX_ ;k_`;ka;k`ap;kӽpֽ q;k&q;krt;;kt[fkrxy Z[Zce;;kfej;;kkj  #DO%F% (% %      1%       @ $  80 0 <@DP\lx0 sterinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@sterinv sterinvint@ SB$sterinv $gntt_label $lntt_label sterinvinttsincosM$2ptitleradius cenlonmeroriginoffsetpsterinv S$19$sterinvsqrtatanfabsasinatan2 adjust_lonsinstplnfor.o/ 1074014906 1032 20 100666 19064 ` 1Jx@ 8  EK>و%0N@,p0H@7>K>و$2N7<7?a,7?,1H/1H//0/ @/1H4!7<,@,0H@7>K>و#2$N@,0H@7>K>و#2$N@,p0H@7>K>و#p2$N@,0H@7>K>و#02$N7<7?a,7?,1H,1H,///@/4 @,p0H@7>K>,"`1N7<@,a0H@7>K>و"1N,q7?,`7?a.1H.1H/P@/@4!7<,,@,0H@7>K>و!P2$N@,p0H@7>K>و!2$N@,0H@7>K>و 2$N7?a7?,`7<,p4,Q7?!,A0H,0H,0H,0H , 1Hk>1H,! ,1 ,q @,a 4K;YK<K;K;K;O;/01/00/0//0./0-@/0,k?7+`H?K? xK?k?@k? 28K?Y k?@k?04K?Y@7? 2k?@k??K?Y4?m@k?@k??K?Ye4??FR5Illegal zone #%4ld for spheroid #%4ldstate-initrrError opening State Plane parameter filestate-forIllegal zone #%4ld for spheroid #%4ldstate-initSTATE PLANEZone: Datum: NADef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(Pef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QR `PX!  ,X (8X!D>(@@ P>>( 4@ \ <>(P@(l$$| = $  > H 8 H @%X`` U, W3l$3l$ _IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {           `   `    Q '   "  # % A A A ` @0@@@(2` 6@p8`c  <@>A@A$@A*@A5@A@!@AK'@AV+@Ab5@Aj9@As7@A|<@A-@A>@A1@A; A  AbB Eh g f+-J Mn /m 4l e6 :sW Zu[ _we pys { }  <)gAe)?m1I)>f@lHsRQ  @ C@ BA@@@AF ǀ ɀՀ ׀  ="&& 505P:)KDLDMLPLPQeRTPSfT\PUgVh`YjTtPUgVx`Yj`Yk`ertuz{|}~ PQe^$P_l`,Pamb8`ep`DPambH`ep`eq`erPkslLmdnt`ntO|`P:)PQePSfPUgPWhXY`Yi`Yj`YkP_lPamPcnde`eo`ep`eq`erjPksl`ntqrPvuwx`xvPw`x$Py,8PXXpxx`zP{  8@@TT`ɀ||P΀}`׀~Pۀ(00HPPhpp```> !#''0PP,``0P4P<H`H`LPXP `` `lPP p` Pt`t xP``PP`P```?'b$((`stplnfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hidinzoneNAD27NAD83stplnforintfn83fn27spherezoneindinadvaltablepnamebufr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northazimuthlat_origlon_origlon1lat1lon2lat2modeiflgptrstplnforyxlatlonA8A<AAdeXePYDLKPXLTMR@LHP08xA`h AD@A$LK0GY,GKKlJJ$|P P\MY<XM,,Dt,$@,|,Y\x,>8Lt8A8AA2!,,|JYJ!;;|MYM4MY0MTPY4PPt/YTp/Kh!2A2!8A8HHC0C0@0A$ŀ(H lLMQQrKP MQRVP TVPTVtӽwt7 Wtuzz8 {{9 |RR|9 }}9 ~6 RR1WW 2 ^bP `bP`blWWl9mWm2 Wn nOxýƽѽԽ߽ OnxýƽѽԽ߽ XYejlWqtwWrwr7 WrwW2 WxxOnýƽѽԽ߽W9W2  OnxýƽѽԽ߽  2WĽϽҽݽㆽϽĽϽҽݽㆽ;kͽRͽRӽ;k ;wOnxýƽѽԽ߽ ;k;wOnxýƽѽԽ߽  ; OnxýƽѽԽ߽ս;k;wOnxýƽѽԽ߽;k;wOnxýƽѽԽ߽;k;wOnx½ýƽѽԽ߽ ;k;wOnxýŽƽѽԽ߽ ǽ  ; OnxýƽѽԽ߽;k;wOnxýƽнѽԽ߽Ͻ ҽս;k;wOnxýƽѽӽԽ߽   ; OnxýƽѽԽ߽ܽݽԽ;k ;wOnxýƽѽԽ޽߽ ;k;wOnxýƽѽԽ߽ ;k;wOnxýƽѽԽ߽   ; OnxýƽѽԽ߽ (T RR ; ;     ;     ;  &# ##(# &# #"D7% %u%}#@% %1 %%  @ @  @( ($ 8 80 UH X p@x 00@P\lxstplnfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@stplnfor stplnforint@ DS$stplnfor SD$stplnfor SB$stplnfor $gntt_label $lntt_label stplnforintS$15$stplnforintM$2sprintfp_errorfopenfseekfreadfcloseptitle genrpt_longsqrtpakczpaksztmforint lamccforint polyforint omerforintstplnfortmforlamccforpolyforomerforstplninv.o/ 1074014909 1032 20 100666 19072 ` 1J@ @  E<< tG-\G!Nkk?/,/-/.///0/1o k;k;k;k<+`7C7$H67"p4?bh#!+`44 4908 c"27_8 "64&@497": T4 4@5@47<44@@4+`44:4@47K>,%0N7<@,`0H@7>K>و$2N,p7K>و#2$N@,0H@7>K>و#2$N@,`0H@7>K>و#p2$N@,0H@7>K>و#02$N,7<.a7?a/7?/1H/1H/,@,4 @,`0H@7>K>,"`1N@,p0H@7>K>و" 1N7<7?,17?a,!1H,1H,,@,4!7<,p@,0H@7>K>,!P2$N@,`0H@7>K>و!2$N@,0H@7>K>و 2$N, 74K;YK<K;K;K;O;/01/00/0//0./0-@/0,k?7+`H?K? xK?k?@k? 28K?Y k?@k?04K?Y@7? 2k?@k??K?Y4?m@k?@k??K?Ye4??FR5Illegal zone #%4ld for spheroid #%4ldstate-initrrError opening State Plane parameter filestate-invIllegal zone #%4ld for spheroid #%4ldstate-initSTATE PLANEZone: Datum: NADef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(Pef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QR `PX!,X 08X!D>(H@ P>>( <@ \ 6>(P@(l$$| 7 $  8 H 8 H :%`hh O, Q3|$3|$ Y<<-\$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTDATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?` @  Hh;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {           `   `    Q '   "  # % A A A ` @0@@@ 2` 6@h8`c  <@>A@A$@A*@A5@A@!@AK'@AV+@Ab4@Aj8@As6@A|;@A-@A=@A1@A: A  AbC Fh g f,.K Nn 0m 5l e7 ;sX [u\ `wf qyt { }  =)gBe*@m2J)?fAlIsSQ  @ B@ A@@?@AE Ȁ ʀր ؀ €  ="&& 505P:)LDMDNLQLPReSTPTfU\PVgWh`ZjUtPVgWx`Zj`Zk`fruv{|}~  $PRe_,P`la4Pbmc@`fpaLPbmcP`fp`fq`frPlsmTnlo|`otP`P:)PRePTfPVgPXhYZ`Zi`Zj`ZkP`lPbmPdnef`fo`fp`fq`frkPlsm`otrsPwuxy`yvPw`x,Py48T\\x`zP{ ((@HHLT`ˀ|PЀ}`ـ~P݀088PXXpxx```> !#''0PP,``0P4P<H`H`LP XP  `` `lPP  p` Pt`txP``PP`P```?'b$((`stplninv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hidinzonenad27nad83stplninvintfn83fn27spherezoneindinadvaltablepnamebufr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northazimuthlat_origlon_origlon1lat1lon2lat2modeiflgptrstplninvlatlonyxA8A<AAefYfPYDLLQXLTNS@LPX8@xA`h(AC@A,TK8GY4GAJKlJJ,P (P`MY<\M,,Ld/,H//Y`/|>2L|,A2T|2A,!,,JYJ; MYM<MY8M\PY<XP|/Y\x/B!2A2!8A8HHC0C0@0A$ŀ(H lMNQQsLQ NQSWP UWPUWuӽxu7 Wuv{{8 |6 }}9 ~RR~9 9 6RR1WW 2 _cP acPacmWW9nW2 WooPy½ŽȽӽֽ Poy½ŽȽӽֽ YZfkmWruxWsxs7 WsxW2 WyyPo½ŽȽӽֽW9W2 Poy½ŽȽӽֽ  2WýƽѽԽ߽冽ýѽԽ޽ýƽѽԽ߽冽;kϽRϽR;k ;wPoy½ŽȽӽֽ ;k;wPoy½ŽȽӽֽ  ; Poy½ŽȽӽֽƽֽý;k;wPoy½ŽȽӽֽ;k;wPoy½ŽȽӽֽ;k;wPoy½ĽŽȽӽֽ ;k;wPoy½ŽǽȽӽֽ   ; Poy½ŽȽӽֽ;k;wPoy½ŽȽҽӽֽѽ ;k;wPoy½ŽȽӽսֽ ׽  ; Poy½ŽȽӽֽ߽ ;k;wPoy½ŽȽӽֽ߽ ;k;wPoy½ŽȽӽֽ ;k;wPoy½ŽȽӽֽ   ; Poy½ŽȽӽֽ (T RR ; ;      ;    ;  &# ##(# &# #"D7% %u%}#@% %1 %y%  @ @  @( ($ 8 80 UH X p@x ,<0L\hxstplninv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@stplninv stplninvint@ DS$stplninv SD$stplninv SB$stplninv $gntt_label $lntt_label stplninvintS$15$stplninvintM$2sprintfp_errorfopenfseekftellfreadfcloseptitle genrpt_longsqrtpakczpaksztminvint lamccinvint polyinvint omerinvintstplninvtminvlamccinvpolyinvomerinvtmfor.o/ 1074014910 1032 20 100666 15852 ` 1 =@l  9P3;X )G!9k?/,ok?k?!k?)k?10n7>a+`/04#/1 4$ / 7>,`#@, 7F ,4%,4'`,/ /, , 0N,p1.@,,@,q,@,a,@,,`7?,7?a,q,a/,.@.,,,1.0 0n 0N , 0$ , , 0H,+`@4:,@,+`,@48@@,p@,`,@,4K>K?1K?)K?!K?O?@/0,k?/,/-/.///0/1/2/3ok>k>k>+`4#0H,p@0.0H 7>2 H@7>+`4$ ,0 0$ @1H7>.0N@1H"`6e , @0.,0 0$ *+`49@4:4+`,4$1,1. ,1 n0N @0NK=1N1H@.7>1N/1i@1H1n@@2 0$ #7 /Q0N,`,,0.K=0N 1(N ˀx/ +`2 H4%`7>,1,0N1N@0N7>,,A #7 0H1)N, k>2sN 0N1N@1.+`,,4&, 7?7?a,q1$n,a/.q@.a"1.6`6.C.#@1n..7X2N,/7Y ,0. 1N ,U/2N//zRK,/27N,/4/ K=/!K>1n2NK=1N3.T2/1n.1N2P*+3N1,11sN3Q . 1n,,,,;'3. 3N02?N21N0N 02NN 2k/K=K>K>K>O>/03/02/01/00/0//0./0-@/0,?>h?=|׽?@@4@@2@R@M@8@"@@>@N@@tTRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinitytm-for `PX!||,oX d8oX!hhDqp>( ^@pP>(P@px\ $$l $ |  8,&&  3)$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@  8?GOX ` i s ~@@        ! / > K Y g t  Š֠͠ ߠ   !. ;FQ \eksy Š ϠB٠C  :"* 0 7 <CIPW]dkDsA{;   `  d f h ɠjl Ҡm` @o q@s@ޠuw ` {@@}`   ` `   @     *046`?  >GGN V _ jwxp` @    ͠ @ `     xp` @    `@ @ $` *@ 0 6 <H@@O@@T@@@ Y ^ cm x      ()*+,-.STUVWXY  @  @  @ @ @  @ $@ (@ ,@ @ 0@  .@ @ @ -4@ Q 19 x:@F@-Q@/\@1g@3r@5x@7 A~@ %;')()*+,-./Q T0 d@ :L@ 9OM8@P7@R1A=@A>@A?@AL@AM@AB@AP@AT@AR@AG@AW@A`@58 ;p< Cr Do PVRHSTUVWXYZ ="&&# 2(02)P:;?p@pApBxC|D|E|G|H|IJKLMNPQS WX Y,Z<[D\L]X`]>^\`^?>@ A!B#C'D'E$FdG0dHPiVs@tPx`Pyozx{P|p}~`~qPr4@Pl`s`tth0`u0`v?w'xby$z({(|%}`&~tmfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindtmforintfalse_northfalse_eastcenter_latcenter_lonscale_factr_minr_majtemptmforyxlatlondelta_lonsin_phicos_phialalsbcttqconnmlHxHxCHC@C8C0C(xC \l?p@ppx dl@h@phxE@`x;@XxJ DxCP@|Pxe LxD@|xa TxE@|! xG,A|,xU(HI(@|(xXHIJH@HxZ@JK@@@x\8KL8@8x^@0xc@xN NQ @ x@x@HdA@xSCxCxȀd@xXAPxDKd`Kdhd@xAJd@xpd@x`/P,A ,d@xPA|YAdDd@x !JAJ!MAMAPd@x(AVd@xHd@x@d@x8d@x0Ah,d@xd@xd@x%(GCDE?@ABCDEGHIJKLMNPQSXYZ[\PCBԽIJMZ[PDӽEMQS\PE?@AB CHNPQDHNPQE?@AGMXYP ?HIJKLMNPP @ABHNQAH BHI;kHIJ;kIӽJK;kJIԽKL;kKIJMLIJKM; NPMPNQQSSWZW1 ZXX; YZY;t Z Z;h[;h\\ ];^)( sPP;k stt;xxPPz;kz {;kԽ{;k}ZZ}2Z~ ~PP;k;k;kӽ;k ~PP;kӽӽԽ;kӽPP; ԒԒӒԒ ~ # ##D%X%8% %              !%    )       @p $  80  0DP\ht @0   ,4<HTtmfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@tmfortmforint@SB$tmfor $gntt_label $lntt_labeltmforint S$26$tmforinte0fne1fne2fne3fnmlfnM$2ptitleradius2genrpt cenlonmeroriginoffsetptmfor S$27$tmfor adjust_lontsincossinfabsp_errorlogcossqrtacostantminv.o/ 1074014912 1032 20 100666 17608 ` 1 D@( 0 0 ?9 BXp $-G!?k?/,ok?k?!k?)k?10n7>a+`/04#/1 4$ / 7>,`#, 7 ,4%,4'`,/ /, , 0N,p1.@,,@,q,@,a,@,,`7?,7?a,q,a,/.@.,,,1.0 0n 0N , 0$ , +`4h:+`@4:,@,+`,@48@@,p@,`,@,4K>K?1K?)K?!K?O?@/0,k?/,/-/.///0/1/2/3/4/5o`k=k=k=k=k=k=k=k=+`4'0H H!4 K< !K<4 4.` # -7+`1..p-7& 1n.q ,4 0.-a-q 4-`4`0 1Dn1H @J@1N,1N0N@1,1N0N@2g.,,0N2h 1&n 1M.@1 0 0$ "I?J+`49@4:44!,,0N0n@@5 ,,Q , 41n0N,,A1n 0. &r@1H0H1N1N11.0n@@@0H1 0$ (,! 5*`-@0N,1 0$ *1 0$ ,ˀ@,`1H@1H,@0,`4K@7>@1H7>,.0H.7>13N ,,2N1 N 7=0N 7>1.,061N0N/@2H-2RN-"0n,2uN61..7=.,062]N1N . #7>177 7`.37N2N25n.1d2N3 /A/1X.2PN3n/0N/1N0N/,3}n ^g&/1N..3N0n .0n;[! $01N,,,`ˀMKh??@@@=|׽?!TD-@8@@@$@"@>@N@V@r@F@o@4@<@ TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSE `PX!xx,5X 85X!xD7>(Xa@tP>(P@xx\ $$$l H $ |\D 8D |#d*lH*lH$9 -$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@) ?/@ D8?GOX ` i s ~@@        ! / > K Y g t  Š֠͠ ߠ   !. ;FQ \eksy Š ϠB٠C  :"* 0 7 <CIPW]dkDsA{;   `  d f h ɠjl Ҡm` @o q@s@ޠuw ` {@@}`   ` `   @     *046`?  >GGN V _ jwxp` @    ͠ @ `     xp` @    `@ @ $` *@ 0 6 <H@@O@@T@@@ Y ^ cm x      '()*+,-opqrstu  @  @  @ @ @  @ $@ (@ ,@ @ 0@  .@ @ @ -4  Q 19 t:@F@-Q@/\@1g@3r@5x@7 A~@ $;&)'()*+,-.Q T/ @ ;L@ :OM7@P6@R0AJ@AV@Ac@AY Ad@Ae@Af@Ai@Aj@Ak@Am@Ap@Aq@Ar@At@AD@AI@AE@A~H@A< GQ TU X Y9B E ?^ lm p ZVtHAV\uvwxyz{| ="&&$ 3(03)P;;@pApBpCxD|E|F|H|I|JKLMNOQRVWX(Y8Z@[H\T`\>]X`]?>@ A!B#C'D'E%FcG0cHPhVohshpP@00`4PP8H``PtuPvpwxyz{|}P~ `P4```8PhVPD$`Ph```?'b$((&`'tminv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindtminvintfalse_northfalse_eastcenter_latcenter_lonscale_factr_minr_majtemptminvlatlonyxconphidelta_phiisin_phicos_phitan_phiccsttsnddsfhgmax_iterHtHtCtHCt@Ct8Ct0Ct(t@ \l@p@p pt dlAh@p htB@t`tN@tXtF DxDP@| PtR LxE@| tP TxF@| ! xH,A|,tn (IJ(@|(ta HJKH@Ht[ @KL@@@t] 8LM8@8t_@t0tT@ttg OR @ t>@tALS!JLJA\GCLLCLH!ddo AhL @L@Lp@L`APl,AJ@LPAJAMd! bLMA,@LX@L@L@L(LG$GAGL a @L@@L8@L0@LHA /KPKXA\@L AVAY!MAMK@L(A$eAw!t/A\/A\2%(HDEF@ABHNWXPDCԽJKNYZPEӽFN[P@ABC DIOQEIOQF@ABHNWXP @IJKLMNOQP ABCIOBI CIJ;kIJK;kJӽKL;kKJԽLM;kLJKNMJKLN; OQNQORPRPVZV1 ZWW; XZX;t Z Y;hZ;h[[ \;]1I(0suwPsP osPӽPԽԽPֽP;k ;kӽZZ2ZuwPvy;kvywӽPvֽwx;kӽxyy;kz;k{z||};;kӽ;kԽ;x;k ӽ  ;k ӽԒԒԒӒ ӽ ;k;i # " #D%X%#8% %              A%    1    )    ! ( @x $  80  0DP\ht @0{   $4<HT`htminv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@tminvtminvint@SB$tminv $gntt_label $lntt_labeltminvint S$26$tminvinte0fne1fne2fne3fnmlfnM$2ptitleradius2genrpt cenlonmeroriginoffsetptminv S$27$tminvexpcossqrtasinzatan2 adjust_lonsinfabsp_errortsincostansignutmfor.o/ 1074014915 1032 20 100666 38792 ` 1 @@ ,\ HG!k?/,/-/.oPk>k>k>k>0H 0HK> @k>鏂c:@K>4xCK>7>!.+`4$4#, 0H ,,@,`  T7? U#K>6>7 +`4% /&/,00N`b`,p, +`7`,4'`,, 0n1N1.@,,@,q,@,a,@,,`7?,7?a,q,a/,/Q@/A,+`,4:P1.,0 0n 0$ , 0N , @, +`K>@49,@,+`,@48@,p4K>YK>K>K>K>O>/0./0-@/0,+`490@4:ϖK>Y/,k?/,/-/.///0/1/2/3ok>k>k>+`4#0H,p@0.0H 7>2 H@7>+`4$ ,0 0$ @1H7>.0N@1H"`6e , @0.,0 0$ *+`49P@4:4+`,4$1,1. ,1 n0N @0NK=1N1H@.7>1N/1i@1H1n@@2 0$ #7 /Q0N,`,,0.K=0N 1(N ˀx/ +`2 H4%`7>,1,0N1N@0N7>,,A #7 0H1)N, k>2sN 0N1N@1.+`,,4&, 7?7?a,q1$n,a/.q@.a"1.6`6.C.#@1n..7X2N,/7Y ,0. 1N ,U/2N//zRK,/27N,/4/ K=/!K>1n2NK=1N3.T2/1n.1N2P*+3N1,11sN3Q . 1n,,,,;'3. 3N02?N21N0N 02NN 2k/K=K>K>K>O>/03/02/01/00/0//0./0-@/0,?FR5AAc?>h?=|׽?@@4@@2@R@M@8@"@@>@N@@tIllegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityutm-for `PX!,X h8X!hhDp>(@P >(P@x\ $$l M|$M||XHM`@U/d^Z(`10u0 u 9H$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@) ?/@ M|` 9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  ' + @0' + @6= E] y   @   `̠ՠ    '  /  7 ? F` N@ V ]  dg o<  "@v$&@&@&@(*,  / 1 3 5 79 ;<  o< ?A@C@E@E@FH$J. 9 MO@HQQ T TV@WX`Zi s o ]_@|a  J J eg@i @  m o q s u w"` y-@ {6 }@ J S \ e o@E@xE@`E        Ѡ` @ @  @@          7      #   +4 @ 1@@ 8@ ?`  H@  Q  Y  b l  @@E          7      #   +4 @ 1@@ 8@@ H  Q  v `         @@ @@ @@@ @@ @@ @@ @@@ @@ @@! !@@# )@@@% 1@@' 9@@) A@@+ I@@@- Q@@/ Y@@1 a@@3 i@@@5 q@@7 y@@9 @@; @@@= @@? @@A @@C @@@E @@G @@I @@K @@@M @@OQ ϠS ޠU    W  Y  [ ` ] $@ _ / a : c E e P g [ i f k q` m |@ o  q  s  u  w  y  { ` } @              !`  ,@  7  B  M  X  c  n  y`  @              `  @              !`  +@  5  ?  I  V  c  p  }`  @         ` ߠ @   @  @@ @  @ @ @! @ @( @/ @6 @= @ @D @K @R @Y @ @` @g @n @z @ @ @  @  @  @ @ @ @ @@ @ @ @ @@ @ @! @# @% @ @' @) @+" @-*@ @/2 @1: @3B @5J@ @7R @9Z @;b @=j@ @?r @Az @C @E@ @G @I @K @M@ @O @Q @S @U@ @W @Y[Ԡ]ܠ_    a` e  gc i k m o` q@ s( u3 w> yI {T }_ j ` t @ ~       `  @        `  @  ( 2 < F U d ` o @ z       `  @      " 2` B@ R ] h s ~  ` @       ` @      & 1 <` G@ R  ] h  s  ~   ` @        ` !@ #  %  ' )# +. -9 /D` 1N@ 3X  5b 7l 9v ; = ?` A@ C  E G I K M O` Q@ S` @W Y@U[]_  a$` c @ e  g i  k m o! q(` s/@ u6 w= yD {K }R Y `` g@ n z     ` @       ` @      " * 2` :@ B J R Z b j r` z@       ` @   2>L`R`X` `gmVs~   $ @=    `   `     % % %% `  >$ H $"$&&T(_y   ,@ 0 2 @ 5 7 38 : .;@=  B @C@ҠE@  H@ L N JO`Q " U( W0 Y6` [=@ ]D _L acSe`g_` j olv n pprht`v@ x z |~@ˠ@$@%@(@)&@*  *g`  #*+*.%@*1*+9E D J P V \ b i ox                  ` @   @` #@ ) / 5AT@ ^   g  p  w      `6 @7      `T ^`  @!   $ " ' %(*@@ @@1@@@3  7 5 8:<) 4  > DA JC PEG VI]o?@ABEC]DEFG H I_JEKLAMNO]PoQRwxyz]{|}~  _EA]o E]  E     __EA]o @ @ @ @  @ @ "@ &@ *@ @ .@ ,@ @ @ 2@Q G  @A@C @EPA@; >L 8IE=I:AFGHIEJ]KLMN O P_QERSATUV]WoXYZQ s[ d@ 9k@ !8nl#7@o'6@q\A+<@A5=@A=>@AEK@AHL@ALA@ANO@APS@ARQ@AUF@AYV@A[_@`c fg n o {u}g~]  _EA]o =?0  W f  .' G"&&$2<02=P7I:,?P@lAtBtCtDEGHIJKLM8NhPhQhUtV|WXYZ`ZN[P7IP;L<=`=M`ZN[P7IDE`ZN`[O>R S!TU@VWDXY)Z߀[5\1]^_"`Ha#b'c'd%ebf0bgPguq@rPv`PwxxyPz{|`|P4@Pl``th0`0`?'b/L^=k#I$((&`'utmfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/stdlib.hremquotdiv_tldiv_twchar_t/usr/include/sys/wait.h/usr/include/sys/sigevent.h__sival_ptr__sival_intsigvalsigval_t__sigev_value__sigev_signo__sigev_notifysigeventsigevent_tSIGEV_SIGNALSIGEV_NONE__sigev_types/usr/include/sys/time.htm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_t__fd_masktv_nunitki_timeval/usr/include/sys/_rlimit_body.hrlim_maxrlim_currlimit/usr/include/sys/resource.hru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusage/usr/include/sys/siginfo.hSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__band__fd__file__addr__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tk_siginfo_t/usr/include/sys/newsig.hsigset__sigset_tsigset_t/usr/include/machine/save_state.hss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_lowss_mpsfu_high__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_sizestack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxtuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_t/usr/include/sys/signal.hsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionss_onstacksigstacksv_flagssv_masksv_handlersigvec/usr/include/machine/frame.hfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsisc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_double/usr/include/pwd.hpw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwd/usr/include/errno.h/usr/include/sys/errno.h/usr/include/math.hretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindutmforintzonescale_factr_minr_majtemputmforyxlatlondelta_lonsin_phicos_phialalsbcttqconnmlA(GA,JCCB@p@hD ppA@`t`@l`IPt|BCP@tP:xCEX@tX` DC@d@A8T(HI(@(WHIJH@HY@ JK@@@[8KL8@8]@0b@M h|NV @ ? 8hQMl@HdA@xSCxCxȀd@xXAPxDKd`Kdhd@xAJd@xpd@x`/P,A ,d@xPA|YAdDd@x !JAJ!MAMAPd@x(AVd@xHd@x@d@x8d@x0Ah,d@xd@xd@xe( :CEV:6ԽCEV:6CA?@սGMWXPPBCIJMYP ?BEA @C6 BCӽDEHNPQECӽDՄԽMQPPCDCE CEHIJKLMNPPHսQGHIJKLMNPPGHֽQGHӽI;kHIJ;k IӽJK;k JIԽKL;k KIJMLIJKM; NPUVVMQMMU1 NVV V2VWW;XVX;tV YֽZ;h=[k>k>k>0H 0HK> @k>鏂b@K>4xBbK>7>!/+`4$4#, 0H ,,@,`  T7? U#K>6>7 +`4% /&/,00N`a,p, +`7`,4'`,, 0n0N1.@,,@,q,@,a,@,,`7?,7?a,q,a/,/Q@/A,,,1.0 0n 0N , 0$ h, +`4Xh6+`490@4:ϖK>Y/M,+`h +`@4:P+`K>@49,@,+`,@48@,p4K>YK>K>K>K>O>/0./0-@/0,k?/,/-/.///0/1/2/3/4/5o`k=k=k=k=k=k=k=k=+`4'0H H!4 K< !K<4 4.` # -7+`1..p-7& 1n.q ,4 0.-a-q 4-`4`0 1Dn1H @J@1N,1N0N@1,1N0N@2g.,,0N2h 1&n 1M.@1 0 0$ "I?J+`49P@4:44!,,0N0n@@5 ,,Q , 41n0N,,A1n 0. &r@1H0H1N1N11.0n@@@0H1 0$ (,! 5*`-@0N,1 0$ *1 0$ ,ˀ@,`1H@1H,@0,`4K@7>@1H7>,.0H.7>13N ,,2N1 N 7=0N 7>1.,061N0N/@2H-2RN-"0n,2uN61..7=.,062]N1N . #7>177 7`.37N2N25n.1d2N3 /A/1X.2PN3n/0N/1N0N/,3}n ^g&/1N..3N0n .0n;[! $01N,,,`ˀMK<?FR5AAc?>h??@@@=|׽?!TD-@8@@@$@"@>@N@V@r@F@o@4@<@ Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE `PX!,X 08X!D>(@PJ>(P@x\ $$le <M|$M||fY HM HicVyhw\x{xx$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$CODE$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@ M| Hx9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  ' + @0' + @6= E] y   @   `̠ՠ    '  /  7 ? F` N@ V ]  dg o<  "@v$&@&@&@(*,  / 1 3 5 79 ;<  o< ?A@C@E@E@FH$J. 9 MO@HQQ T TV@WX`Zi s o ]_@|a  J J eg@i @  m o q s u w"` y-@ {6 }@ J S \ e o@E@xE@`E        Ѡ` @ @  @@          7      #   +4 @ 1@@ 8@ ?`  H@  Q  Y  b l  @@E          7      #   +4 @ 1@@ 8@@ H  Q  v `         @@ @@ @@@ @@ @@ @@ @@@ @@ @@! !@@# )@@@% 1@@' 9@@) A@@+ I@@@- Q@@/ Y@@1 a@@3 i@@@5 q@@7 y@@9 @@; @@@= @@? @@A @@C @@@E @@G @@I @@K @@@M @@OQ ϠS ޠU    W  Y  [ ` ] $@ _ / a : c E e P g [ i f k q` m |@ o  q  s  u  w  y  { ` } @              !`  ,@  7  B  M  X  c  n  y`  @              `  @              !`  +@  5  ?  I  V  c  p  }`  @         ` ߠ @   @  @@ @  @ @ @! @ @( @/ @6 @= @ @D @K @R @Y @ @` @g @n @z @ @ @  @  @  @ @ @ @ @@ @ @ @ @@ @ @! @# @% @ @' @) @+" @-*@ @/2 @1: @3B @5J@ @7R @9Z @;b @=j@ @?r @Az @C @E@ @G @I @K @M@ @O @Q @S @U@ @W @Y[Ԡ]ܠ_    a` e  gc i k m o` q@ s( u3 w> yI {T }_ j ` t @ ~       `  @        `  @  ( 2 < F U d ` o @ z       `  @      " 2` B@ R ] h s ~  ` @       ` @      & 1 <` G@ R  ] h  s  ~   ` @        ` !@ #  %  ' )# +. -9 /D` 1N@ 3X  5b 7l 9v ; = ?` A@ C  E G I K M O` Q@ S` @W Y@U[]_  a$` c @ e  g i  k m o! q(` s/@ u6 w= yD {K }R Y `` g@ n z     ` @       ` @      " * 2` :@ B J R Z b j r` z@       ` @   2>L`R`X` `gmVs~   $ @=    `   `     % % %% `  >$ H $"$&&T(_y   ,@ 0 2 @ 5 7 38 : .;@=  B @C@ҠE@  H@ L N JO`Q " U( W0 Y6` [=@ ]D _L acSe`g_` j olv n pprht`v@ x z |~@ˠ@$@%@(@)&@*  *g`  #*+*.%@*1*+9E D J P V \ b i ox                  ` @   @` #@ ) / 5AT@ ^   g  p  w      `6 @7      `T ^`  @!   $ " ' %(*@@ @@1@@@3  7 5 8:<) 4  > DA JC PEG VI]o@ABCED]EFGH I J_KELMANOP]QoRS]  _EA]o E]  E     __EA]o @ @ @ @  @ @ "@ &@ *@ @ .@ ,@ @ @ 2 Q G  @A@C @EPA@2 5L 6ID=I8EFGHEI]JKLM N O_PEQRASTU]VoWXYQ sZ @ ;k@ #:nl'7@o)6@q[A+J@A/V@A3c@A=Y A?d@AGe@AOf@AWi@AYj@A\k@A^m@Aap@Aq@Acr@Aet@AhD@AjI@AlE@AH@An< r|  dm p j uglu]  _EA]o =?0  W f  .' G"&&%4<04=P9I<,APBlCtDtEtFGIJKLMNO8PdRdSpP=L>?`?M`^N_P9IFGUYZ[\]^`^N_`_O>R S!TU@VWDXY)Z߀[5\1]^_"`Ha#b'c'd&eef0egPjuqhuhpP@00`4PP8H``PvwPxpyz{|}~P `P4```8PjuPD$`Ph```?'b/L^=k#I$(('`(utminv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/stdlib.hremquotdiv_tldiv_twchar_t/usr/include/sys/wait.h/usr/include/sys/sigevent.h__sival_ptr__sival_intsigvalsigval_t__sigev_value__sigev_signo__sigev_notifysigeventsigevent_tSIGEV_SIGNALSIGEV_NONE__sigev_types/usr/include/sys/time.htm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_t__fd_masktv_nunitki_timeval/usr/include/sys/_rlimit_body.hrlim_maxrlim_currlimit/usr/include/sys/resource.hru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusage/usr/include/sys/siginfo.hSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__band__fd__file__addr__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tk_siginfo_t/usr/include/sys/newsig.hsigset__sigset_tsigset_t/usr/include/machine/save_state.hss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_lowss_mpsfu_high__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_sizestack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxtuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_t/usr/include/sys/signal.hsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionss_onstacksigstacksv_flagssv_masksv_handlersigvec/usr/include/machine/frame.hfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsisc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_double/usr/include/pwd.hpw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwd/usr/include/errno.h/usr/include/sys/errno.h/usr/include/math.hretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindutminvintzonescale_factr_minr_majtemputminvlatlonyxconphidelta_phiisin_phicos_phitan_phiccsttsnddsfhgmax_iterA(GA,JCC@@p@hB ppCB`t`@l`FPt|DEP@tPNxEGX@tXP FE@R@lA5nl(JK(@(alHKLH@H[l@ LM@@@]l8MN8@8_@0T@gt| dpPS @ >@lALS!JLJA\GCLLCLH!ddq AhL @L@Lp@L`APl,AJ@LPAJAMd! bLMA,@LX@L@L@L(LG$GAGL a @L@@L8@L0@LHA /KPKXA\@L AVAY!MAMK@L(A$eAw!t/A\/A\2e( VV>2V ?^_UPUPYVY1 VZV Z2V[[;\V\;tV ]ֽ^;h?_9I(0uwyPuP quPӽPԽԽPֽP;k ;kӽVV2VwyPx{;kx{yӽPxֽyz;kӽz{{;k|;k}|~~;;kӽ;kԽ;x;k ӽ  ;k ӽԓԓԓӓ ӽ ;k;i " #!#"^%y%gv# % %             A%    1    )    ! ( @ $ M0  0D P@Xdp|0 (4DLXdlutminv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@utminv utminvint@ SB$utminv $gntt_label $lntt_label utminvintS$31$utminvintlabsM$2p_errore0fne1fne2fne3fnmlfnptitle genrpt_longradius2genrpt cenlonmerutminv S$32$utminvexpcossqrtasinzatan2 adjust_lonsinfabstsincostansignvandgfor.o/ 1074014919 1032 20 100666 11812 ` 1L.$@t ||L*'T,LpG!Sk?/,/-o7>+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,/-/.///0/1/2/3/4opk>k>k>+`4% 0H ,K=@0.0HK=@1H"6 ,0 0$ ", ,1n@@@0N0H@2 H0 0$ "@1H,@0.0 0$ "J1n2,n@0.# 1H7&`7?,7?,@0N7?,/2N/1n1̳1n0. 0N 0N 1kN0.14.g2N0N 2N @1i.2d2 2EN0n0$ ,0N,0,`,1 N0n@@0N,1 y0N 0N 1.0$ J@@,1N0H,,,2%N0,`,,,#1 7`,,`1N,0N 0$ 2@@,1N0x,@@,,0N1N0 0, @@1N,0.,4K=K>K>K>O>/04/03/02/01/00/0//0./0-@/0,=|׽@@ !TD-?!TD-??VAN DER GRINTEN `PX!||,X!8{X @@@DK>(@PL>(P@ \p$$lM $ |N\ 8\Phh`lehb!d!dj9'T$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@ \hh;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      EFGHIJK  @ @  @  @ Q  x@ @@@ Q "6 @ +.@ -1//@23@4!A7@A<@AB @AE"@AI%@AK&@AO'@AQ)@AU*@AY$@A_#@4 8O9 ?Q B8D*EFGHIJKL ="&&" )0)P.142<3<4@8@9H:P;X<d`< =h`=!>" #!$#%'&''#(A)0A*PG8R\T\Z|[defgh(i4j4k8mhnpoxpqrPUOVWX`XPP\Q]^_$a@b\`bRtdv|`vSw|`wT?U'VbW$X(Y(Z$[`%\vandgfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingvandgforintfalse_northfalse_eastcenter_longvandgforyxlatlondlonthetaalasqggsqmmsqconcosthsinthApGA4xDCxHCx@x 041@8xx 8821<x@4x@xxLx@H49@@HADpGCpCpȀ@p!XXRSA\pS@p@p@pAMpPYdePADYKKA(T,A4L;!00ihAA4HAA8@\x,Ahp,A( 12349:1234;P123ֽ;P8T1 28T38149;h:;h;; <;=$(  RVW]_akoprtPPR;k RT;k ԽZ[_adikprtT[Z_adkprtZi;k ;k Z[;k ([;k #[;k dԽginrtfdginrtfdgirtf;xdgikegiӽkgiihjk;kmkmnnoopp;k rtq;krVVWXW]_a^Պ]_a^;k_a;kbat;ktXbvw D=%@% d# % %   !%    h @ $  80( 8@@LXd0p @vandgfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@vandgfor vandgforint@ SB$vandgfor $gntt_label $lntt_label vandgforintM$2ptitleradiuscenlonoffsetpvandgfor S$16$vandgfor adjust_lonfabsasinztantsincossqrtvandginv.o/ 1074014921 1032 20 100666 12088 ` 1/8@L ,(,-X xG!1Bk?/,/-o7>+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,/-/.///0/1/2/3/4/5ok?)k?1+` 4# 4 ,q ,a 7?a,0.,`0..0N .3 n, ,0n 21N.2 H1N.@2"`1 6d2.N,7?a26N,0N .1N#1iN7`.7?0.///NSXX0NY2RN /3Qn2XN3qn1Sn1n0n3Qn3n 0. 2n11n1y.3n2N3n@02N1N0n0n@2H0 0$ !R2 0$ 201H@@2Sn7?a2N/! K>0n0. 2 N1HN / @1H,0 0$ !R,pK>/ 4K>YK?1K?)O?!/05/04/03/02/01/00/0//0./0-@/0,2H@2H0n7?a.2N,1 00$ w@@2Sn7?a2N/A K>0n0.1'N }. 7?a7?/1./ ,A 0.1N1 @1I7?a1. 4, ,p1(N 1GN 1ln@0K>/@ !TD-?@@"@;@?R8-se=|׽?VAN DER GRINTEN `PX!||,X!8X ```D~>(<@P>(P@ \$$l $ | 8xxxZ<\"L"L9(, x$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@ x\;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {      CDEFGHI  @ @  @  @ Q  x@ @@@ Q "6 @ +.@ /1/3@25@4!UA7@A: @A="@AA$@AD%@AG&@AJ)@AM+@AP@AT,@AX'@0W 3O6 9Q ;8F*8=O>GHIJKLMN ="&&" )0)P.142<3<4@8@9H:P;X<d`< =h`=!>" #!$#%'&''#(A)0A*PG8Q8RpSpTpUVWXYZ\D]D^T_\P`Oapb|`dPjlPmQno`oRt`tSuPG8P`Od`dPfg(hHqx`tS`uT?Y'Zb[$\(](^$_`%`vandginv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingvandginvintfalse_northfalse_eastcenter_longvandginvlatlonyxxxyyxysc1c2c3a1m1conth1dApGA4xDCxHCx@x 041@8xx- 8821<x@4x@xxLx@H49@@A\2HC| C|@|@|@|\\|\!llSQ>Ap>A|D!t|UTSAS|MYVWMA@/A|VA|SPP_YLZ]_!4@\Z\ADX\AT|_A(H2@|A( 12349:1234;P123ֽ;P8T1 28T38149;h:;h;; <;=C(  QRSnqPQRSWXYZ]_bhjnqQRSnqPQRSWXYZ]_bhjnqQRShjqQSRSӽhjqUWY_bqXYZ]qTVZqWֽX;k VW]dhjlWӽ]dhjlXYW]dhjXYWӽqZ\]^fhjWZ\]^fhjZYqX\]^fhjYqXYZYZ\\Z];k Z^]^^_;k abbj;k jl;k nnotu df;k fghj;k hq;k ;kqD=%@% Y# % %   !%     @ $  80( 8@@LXd0p ` vandginv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@vandginv vandginvint@ SB$vandginv $gntt_label $lntt_label vandginvintM$2ptitleradiuscenlonoffsetpvandginv S$16$vandginvfabssqrtacoscos adjust_lonS$16DD$vandginvwivfor.o/ 1074014922 1032 20 100666 10828 ` 1<*L@d ll<',$i(``G! k?/,/-/.//77>. +`.4? +`0H / 0H/4:/@/ @1H@1H1H@1H4K>7?A/0//0./0-@/0,k?/,/-/.///0/1/2ok?yk?k?+`4# 0H ,p44<@0.0H @1H"6 6`//,0N /4: @49`@1H11H0.@0N02Fn@1 0 0$ _4U+`#,7,`.0N1N 1N @1H,q1NK>1H0 ,/ ,`@1N ,a1NK>40/ K>K?K?K?yO?q/02/01/00/0//0./0-@/0,@DKL?=|׽@?랃%? 4\?WAGNER IVIteration failed to convergewagneriv-forward `PX!,X! tt8*X @@D>(8@DP>(P@H \`$$l $ | 8d&lS T(``09$`$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@ T9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      6789:;<  @ @  @  @ Q  @@@@ Q 6 p@ %.@ '1/)@2-@4!A1@A;@AA!@AM@AQ &G (C 688*C*9:;<=>?@ ="&& $0$P),<-D.D/H3H4P5X6`7l`7 8p`8!>" #!$#%'&''(<)0<*PA8J<KTLTPxPQC@U`UDPPQCRST@TU`UDPWXYZ@`ZE[@`[F?I'JbK$L(M(NO` Pwivfor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingwivforintfalse_northfalse_eastcenter_longwivforyxlatlondelta_lonthetadelta_thetaconiA4GA<xMCHC@" 8<,@@ @@-,D@<$@&THP/4@HHpA<|DC|LC|Hp@|AT|G$DDSTD!<PKJDAT|DAx|J!DxPJA||A/p@|p@|p@|( ,-./456,-./PԽ6,-ֽ/P3T, -3T.31/4;h5;h66 7;68(  JXYPPKJPTUJ;k  JL;k ԽRTWXYLRTWսXYLLTUT2TPR;k ;k RT;k STӽUPTWXԐWX;k YXӽY;k ZY[  ##D=%@% kR# % %   !% Y    @H $  80  0@8DP\0h t @wivfor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@wivfor wivforint@ SB$wivfor $gntt_label $lntt_label wivforintM$2ptitleradiuscenlonoffsetpwivfor S$16$wivfor adjust_lonsincosfabsp_error S$16DD$wivforwivinv.o/ 1074014926 1032 20 100666 9800 ` 1L&H@t ||L#p!$p$G! rk?/,/-/.//77>. +`.4? +`0H / 0H/4:/@/ @1H@1H1H@1H4K>7?A/0//0./0-@/0,k?/,/-/.ok?9+`#4# 7 ,a 0H ,`,0. ,qb 1+n@@0H ,`,1H@0N1N,p1n@0,K>1N .@1H1,0n@@K>4/K>K?9O?1/0./0-@/0,? 4\?랃%@@DKLWAGNER IV `PX!,X! 8X  ` D~>( @ P>(P@ \p$$l $ |< 8<t|7 8DD8!$$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@ <89@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  %` +@ 1 7 =I@@P@@U@@@ Z _ dn y      +,-./01  @ @  @  @ Q  @@@@ Q 6 @ %.@ )1/-@2/@4!A1@ (8**+,-./012 ="&& #0#P(+<,D-D.H2H3P4X5`6l`6 7p`7!>" #!$#%'&''(;)0;*P@8E0FDGDHTIJ`J;K`K<?='>b?$@(A(BC`Dwivinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingwivinvintfalse_northfalse_eastcenter_longwivinvlatlonyxthetaA4GA<xMCHC@ 8<+@@ @@,+D@<@THP.3@HA0D!<@FE;ADL;CLCH@@@ATG@( +,-.345+,-.PԽ5+,ֽ.P2T+ ,2T-21.3;h4;h55 6;57b( EFGHPԽIEFGHPԽIFEEG;k GH;k ;k IHI;k;k JIK #D=%@% Ge6# % %   )%    @ $  80  0@8DP\0h t`wivinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@wivinv wivinvint@ SB$wivinv $gntt_label $lntt_label wivinvintM$2ptitleradiuscenlonoffsetpwivinv S$16$wivinvasincos adjust_lonsinwviifor.o/ 1074014928 1032 20 100666 10208 ` 1'@H %"&,LG!k?/,/-o7>+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,/-/.ok?9+`4# 0H ,p@0.#@7?Q7D 7?a,,0n@@@1H,0N 1N@1.7?a0H /,1N10n@@"`,`6w`7?a. 4/1,q0NK>.1N K>0N 0N 0/,`,a1N1N 0N 0 / K>K?9O?1/0./0-@/0,@?}A5T?@@V|G?LPrWAGNER VII `PX!||,X!8X  00D>(< @ P>(P@ \$$l $ | 8DVX``9"L$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@ X`:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      -./0123  @ @  @  @ Q  x@ @@@ Q  6  @ (.@ *1/,@20@4!A4@A>@AF@AN@AP@AS@ *8,*-./01234 ="&& #0#P(+4,<-<.@2@3H4P5X6d`6 7h`7!>" #!$#%'&''(;)0;*P@8G$HDITJdKxLMN`NEO`OF?G'HbI$J(K(LM`Nwviifor.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingwviiforintfalse_northfalse_eastcenter_longwviiforyxlatlondelta_lonsin_loncos_lonsc0c1ApGA4xDCxHCx@x 04+@8xx 88,+<x@4x@xx!Lx@H.3@@H A$`DC LC H @ K K K Ad DAxGK Ȁ @  @  @ A( +,-.34+,-.5P+,-ֽ5P2T+ ,2T-21.3;h4;h55 6;7b( GLMPP G;k HIJK֊H;x I;k IJ;kKJKK;kLMԊNLMMO  #D=%@% eiU# % %   !% 1    @ $  80  0@8DP\0h twviifor ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@wviifor wviiforint@ SB$wviifor $gntt_label $lntt_label wviiforintM$2ptitleradiuscenlonoffsetpwviifor S$16$wviifor adjust_lontsincossinsqrtwviiinv.o/ 1074014929 1032 20 100666 10316 ` 1|(L@8 |%0"4&\G!k?/,/-o7>+`0H /4# /+`,` 0H ,p 4:,q@,a@1H@1H,q@,a4K>O?!/0-@/0,k?/,/-/.///0ok?Y+`4# #@,a7D ,q,0.0. , 1n ,1n1)N0N@0,`0H0N1n@@2N@2H,1N1N0n@@K>2H@/1N@1N# ,p77`.0N@0K>4/K>K?YO?Q/00/0//0./0-@/0,@V|G?LPr@? rt@WAGNER VII `PX!||,X!8X ((D>(, @ P>(P@ \$$l $ | 8\>|@\\9"\$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$DATA$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?/@ @:AIQZ b k u @@        # 1 @ M [ i v  ǠϠؠ    #0 =HS ^gmu{ Ǡ ѠB۠C :$, 2 9 >EKRY_fmDuA};   à`  d f h ˠjl Ԡm` @o q@s@uw ` {@@}`   ` `   @     !,248`?  @IIP X a lyxp` @    Ϡ @ `     xp` @    `@ @  &` ,@ 2 8 >J@@Q@@V@@@ [ ` eo z      0123456  @ @  @  @ Q  x@ @@@ Q  6 @ (.@ ,1/0@22@4!A4@A7@A:@A<"@ -8/*01234567 ="&& &0&P+.4/<0<1@5@6H7P8X9d`9 :h`:!>" #!$#%'&'' (>)0>*PC8H IHJHKTLTM\N\OlPQR`RAS`SB?C'DbE$F(G(H!I`"Jwviiinv.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hlon_centerRfalse_eastingfalse_northingwviiinvintfalse_northfalse_eastcenter_longwviiinvlatlonyxt1t2pcApGA4xDCxHCx@x 04.@8xx# 88/.<x@4x@xxLx@H16@@ADG!@DIHJAHJCLCH@@\`,ATX2!XXML5\`5aLPKJ;AlM@AP@A( ./0167./018P./0ֽ8P5T. /5T05116;h7;h88 9;:( HIOQPPJKֽPQIJKOPQHKIHJQKOJMLN;k ONO;k OP;k ;k սQ;kPQ;;kRQS  #D=%@% Yo=# % %   )%  1  @ $  80  0@8DP\0h twviiinv ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@wviiinv wviiinvint@ SB$wviiinv $gntt_label $lntt_label wviiinvintM$2ptitleradiuscenlonoffsetpwviiinv S$16$wviiinvsqrtasinzsintanatan2 adjust_lonfor_init.o/ 1074014935 1032 20 100666 49308 ` 1@( JjJp,N$G!Mk?/,/-/.///0/1/2/3/4/5o`k7E7*7 K;6K;)7>- 0 0$ B0 0$ *-00 0$ 0 0$ 4 ?7>7=7>k?5z595@55(`4- 7>!- @-H"6 x-qH-`0N(0N-@4H2N m1NH@(,7?-17?a-!7=.p .` @- +` |H*$@05* 4@-@H#7 y/QH/@2DN(2N-P@4H2DN l2NH`(-@4H2DN z2NH(V-@4H2DN j2NH(5</0 0$ (47=,,07?a/7?/ / / ,1,!@k?9 +i |H&H !5) 4@- H @4B u,QH,@2$N`%1N-0@4H2$N x1NH%-@4H2$N i1NH%V-@4H2$N k1NH%,7?a-P7?-@7=-Q  -A //,P@@ +d |H!  a(5) 4@- H 4* t-QH-@2$N$1N-0@4H2$N x1NH#-@4H2$N l1NH`#-@4H2$N i1NH#n,7?a-p7?-`7=-q  -a ..@/0 +e |H"($ 5(4@-H2$N4 2N yH@$-@4H2$N s2NH$V-@4H2$N }2NH$-@4H2$N u2NH`#k>7?a.7?!.7?. 7=. ..,0, ,1,!,P@, +u |H3(3=-@4H @4M l-H-2DN%\1N-@4H2DN v1NH`%5, 5--4-@-H2DN 1NH $7?a7?-7>-2 H--- - @. + |H.p7=k?7>5z595@55(`7>!- - 4Ĉ!2-@4H! 5/ z-H-2N=1N-@4H2N h1NH=R,7?-7?a-7=, , @-P +a |H$ D2 @*k?4595@5 - @4H!5 -H- 1N<01N -0@4H1N o1N H`;-@1N1 70$ J7=!5`7?-,. k?,Q@@ +b |H% !2-@4H#7 k-H-2N;`1N-@4H2N i1NH`;",7?-Q7?a-A7=,0  ,  @- +f |H(0 H!2-@4H!5 w/H/2N:@1N-@4H2N o1NH:,7?-7?a-7=/  / @- +g |H)8 0e@-@4H!5 s.H.2N91N-@4H2N j1NH8,7?,Q7?a,A7=/0  /  @-p +h |H'@@ '!J5< -/@4H#7 y-H-2$N@882N-@4H2$N b2NH 7,7?a-07?-  7=-1 --@-P +j |H<P !*-@4H"`6m |-H-2N71N-@4H2N a1NH67?7?a/P 7>.1H.  @.a +k |H9X !*-@4H#@7A j,1H, 2N 51N-@4H2N z1NH57>7?/1H.7?a/  @. +l |H8`x !*-@4H!5 i-QH-@2N41N-@4H2N w1NH47?7?a/ 7>.1H. @/A +m |H7h@w!*-@4H#7 a-qH-`2N31N-@4H2N t1NH37?7?a- 7>.q1H.a @/! +n |H:p!*-@4H"6 b,H,2N@21N-@4H2N s1NH2r7?7?a-0 7>/1H/ @/ +o |H5x %-@4H# 7* }-QH-@2N11N-@4H2N |1NH1Z7?7?a/Q5- /A7>/ / -@. +p |H6 %:-@4H# 7. g-H-2N01N-@4H2N j1NH0B7?7?a, 7>/11H/!  @. +r |H3 P !J5* --@@4H 43 x.qH.`2$N/x2N5</0 0$  -P@4H2$N4 2N vH/ -@4H2$N t2NH+'k>ϟK;4,$j5655 ...0 08N0$ @4H"6 4 / w2$NH/.82N-@4H2$N x2NH -5.7>a---0 % $@K;5ZK;@5y  |H*+c H#( 4 ;4"-@4H!5 b.H.0N ,0N7?7>/- @- +q |H=@]4$ -@4H 4 a,QH,@0N+P0N7?7>-- @- +s |H?`4&:4 (-@4H 4! |,1H, 0N*x0N7?7>-A-q @-a +t |H7x46 -@4H!5 .H.0N`*0N7?7>-!- @- +w |H44**-@4H!5 z.H.0N *(0N7?7>-. @. +x |H=]*:-@4H!5 x.qH.`0N)0N7?7>,A. @. +z |H9y -@4H#7 w/H/0N )0N7?7>.a. @. +} |H,,4:#4 <-@4H#7 y/QH/@0N)0N7?7>.,Q ,A @@ +~ |H-4 ƀ 4> -@4H"6 k-H-0N(`0N567?.7?a.7>-, ,. @. +`@ |H+ 4K;K=K- 0 0$ J0 0$ 2-00 0$ 0 0$  4 (7>7=7>k?5z595@55(`7>!- - ϟ-K;ϟK;ϟ K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟ}K;ϟmK;ϟ]K;ϟMK;ϟ=K;ϟ-K;ϟK;ϟ K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;7=ϟK;ϟ}K;ϟmK;ϟ]K;ϟMK;ϟ=K;ϟ-K;ϟK;ϟ K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟ}K;ϟmK;ϟ]K;ϟMK;ϟ=K;ϟ-K;ϟK;ϟ K;ϟK;ϟK;4 k?17?!-7?a/7?/ 7=/ /,!$9N$1K>a-,@k?9 +v |H5 ϟ K;ϟK;406427>@. +y |H8ϟK;44 J7>@/ +{ |H:4.648,7?-q 7=-a ,P@@ +| |H/ϟK;ϟuK;ϟeK;ϟUK;ϟEK;ϟ5K;@ >U@Lc˰?#x `PX!,JpX ((8Jp>(8@DJqB$$PJ $ `J)$ $lJ 800xJS7 JZ>$Z>$JjN$$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)?\Ɗ@ $0;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {       Q $ @        @   " A Q Aq@Av@A}@A"S@A's@A,C@A1X@A6@ABi@AMp@AOr@AZ\@Ae @Am@AuW@A@A@A{@A|@Az Ax@A@AP At Au Ac Ay@A~@A@A  A e i h m o €l r #t v y { x[ `~9 IK [ À ̀% 7π ڀ܀      #b i% /k rt {\7 ?] k oI$M& X Y}( , $ (. 0 46 :0 4 q6 :  E&^ 1A&Gt&΀vx{&~&& & &!'&,28-39?&>DJEKQ&PV\W]ag&flrms&x~y&& &&&Ҁ &"&*  &2".);&@8FLAGMS&RXY_`abcde ="&&6 06 P?&cdjPkhlPnio`ojr`rkPt  (DD@PPx`uMPNQRSUVWYZ[]^4_4a@dPeTgh`hP  ,DDP`P  $ < <H|`P$P9:;<=?@ACDEGH I `JL(OtP`PPр P\`Prh`sPv@$0`w`J`P`P?&P$P9B `J`P`P?&P$P9F`J`P`P?&P$P9J`J`P` P?&PTPZ_$`f`q`(P?&PTPZc,`f`q`0P?&PTi4n8pq`qPu{`~`P?&P``P?&P`P``P?&P `P$HT`P```dP?&PĀh`̀`lP?&Pрp``tP?&Pрx``|P?&Pр``P?&P```>< =!>#?'@'A`(Bfor_init.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hfor_initfor_transiflgfn83fn27outdatumoutparmoutzoneoutsyszoneazimuthalfanglelon1lon2lat1lat2center_longcenter_lathlon_originlat_originr_majorr_minorscale_factorfalse_eastingfalse_northingshape_mshape_nstarttimeradiustmpdatumpathsatnummodesat_ratiodzonedjustifythingiflg64AlAp At T  A| CCCC#h|cpCpAKKK@KK\5(X5dSS55l|5<h5555d5$45 x|555@P5< 5MhM55 XJ J X M ( TM M M |M M M T M DM M D M  @ptMTS J h ?CJ XJ+/JXJ(TJVD,8JJ,JY(J(Y,TJQUJ  @,p,JJJJG,ADp,BH ap $H2(VDYhDA, (2TMPAP<LM 8(,M \ ,4T, ,<t,A V8 H  d TAX4dY <, p , , 8 `, ,A ,,A8<5Ah\A,A(_KLKP HMY\`MK8KXCL0K AdPAH,Ad2KhM(@jcj dl  orr9 +/?CY]ptʾξܾ (3`xǾԾؾӽнѽ!4GeoxҾ'Ln|˾;wսȃ;w ; XXMQU;wR־Y]RQUY]SQUY]SQU;wVVUWY;wZZY[];w^^]_adeh; ehXghXh;wֽ;w;w ;w; XX;w־   ;w;w  ;w    ; XX;?CG;w< : ;ֽ<=?;w@@ ?AC;wDD CEG;wHH GIL;2 LPXOPXP;wվؾރԾؾ;wܾ ;w  ;F XX9 +/?CY]ptʾξܾ (3`xǾԾؾнѽ!4GeoxҾ'Ln|˾;wս;w ;  XX9;wսȽ̃Ľӽ;wӽ;i ӽ Ѓ;  XX;wվ;w !$; !$X#$X$'+;w,վ/Ӿ,+/-+/;w00/148; 48X68X8;?;w@վC@?CA?C;wDDCEGJ; GJXIJXJkopop;wqվtqptrpt;wuutvx; x{Xz{X{~;wվ;w; XX;wվ;w;  XX;wվ;w;" XX;wվ;w;$ XX;wվ΃ʾ;w;& XX;wվܾ;w;( XX;wվ;w ;, XX#'/('(;w)վ/3;?CG)(/3;?CG*(/3;?CG(* (,/;w0 . /013;w44 35L6ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+2>BFJ_c{ʾ׾۾SYWX\;w]վ`[\`]\^Ծ`\`;waaֽ`bdef edf9 XX;wՃ;* XX  ;wՃ  ;. XX#;wՃ;0  X X tx;wyՃyxzx|;6 |~X}~X~;wՃ;8 XX;wՃ;< XX;wՃ;B XX;wՃǾ;D XX;wՃ ;H XX ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾tv  y 9 +/?CY]ptʾξܾ (3`xǾԾؾнѽ!4GeoxҾ'Ln|˾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾˽ǽݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ݽǽ˽  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾轔ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾코ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾𽔽ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ ǽ˽ݽ .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ ǽ˽ݽ .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾.ǽ˽ݽ  2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾2ǽ˽ݽ  .BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾Bǽ˽ݽ  .2FTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾Fǽ˽ݽ  .2BTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾Tǽ˽ݽ  .2BFX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾Xǽ˽ݽ  .2BFT\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾\ǽ˽ݽ  .2BFTX`sw;Ѿ߾+26>BFJ_c{ʾ׾۾`ǽ˽ݽ  .2BFTX\sw;Ѿ߾+26>BFJ_c{ʾ׾۾besǽ˽ݽ  .2BFTX\`w;Ѿ߾+26>BFJ_c{ʾ׾۾wǽ˽ݽ  .2BFTX\`s;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ͽǽ˽ݽ  .2BFTX\`swѾ߾+26>BFJ_c{ʾ׾۾ѽǽ˽ݽ  .2BFTX\`sw;߾+26>BFJ_c{ʾ׾۾߽ǽ˽ݽ  .2BFTX\`sw;Ѿ+26>BFJ_c{ʾ׾۾㽔ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾򽔽ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾+ǽ˽ݽ  .2BFTX\`sw;Ѿ߾26>BFJ_c{ʾ׾۾2ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+6>BFJ_c{ʾ׾۾>ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26BFJ_c{ʾ׾۾Bǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>FJ_c{ʾ׾۾Fǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BJ_c{ʾ׾۾Jǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BF_c{ʾ׾۾_ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJc{ʾ׾۾cǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_{ʾ׾۾in;4 nqXpqXq{ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_cʾ׾۾ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾;i: XXǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾;i> XX;@ XXǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ʽǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{׾۾׽ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ۾۽ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾ὔǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾𽔽ǽ˽ݽ  .2BFTX\`sw;Ѿ߾+26>BFJ_c{ʾ׾۾ '' ' ''''''''''!'#'%''')'+'-'/'1'3'5'7'9';'='?'A'C'E'G'I)"%# $  0 U $0<L X@l|(4DP`l|,8HXht 0<LXht  for_init ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32for_init@ $gntt_label $lntt_labelfor_init S$10$for_initsphdzpaksz ceaforintceafor L$plab_start bceaforintbceafor calc_utm_zone utmforintutmfor stplnforintstplnfor alberforintalberfor lamccforintlamccfor merforintmerforpsforintpsfor polyforintpolyfor eqconforinteqconfortmforinttmfor sterforintsterfor lamazforintlamazfor azimforintazimfor gnomforintgnomfor orthforintorthfor gvnspforintgvnspfor sinforintsinfor equiforintequifor millforintmillfor vandgforintvandgfor omerforintomerfor somforintsomfor hamforinthamfor robforintrobfor goodforintgoodfor molwforintmolwfor imolwforintimolwfor alconforintalconfor wivforintwivfor wviiforintwviifor obleqforintobleqfor isinusforinit isinusforinv_init.o/ 1074014942 1032 20 100666 49332 ` 1@0 TTJiK,,MG!k?/,/-/.///0/1/2/3/4/5o`k7E7+7 K;6K;(7>-@0 0$ B0 0$ *-P0 0$ 0 0$ 4 ?7>Q7>7>k?55Y5@55H`4- 7>!- 7>a@-H @4U t.H.0N'0N-@4H2N a1NH',7?,7?a/ /. @. +` |H0, 05I 4@- H!`5z y/QH/@2DN '2N-0@4H2DN |2NH '-@4H2DN w2NH 'v-@4H2DN }2NH`'>5M-0 0$ '&47?a,,7?-p-`-q -a --@k?9 +i |H8HX!5I 4@- H#7 v--H2$N$1N-0@4H2$N b1NH $-@4H2$N |1NH $~-@4H2$N |1NH$F,7?a,7?.p.`.q .a -Q@-A +d |H! 4(5I 4@- H!@5L |-H-2$N #T1N-0@4H2$N m1NH`#-@4H2$N j1NH"-@4H2$N v1NH",7?a,7?/// / -q@-a +e |H%(P%@5H4@-H2$N4 2N vH #-@4H2$N }2NH`#-@4H2$N z2NH#V-@4H2$N y2NH@#,7?a,7?!/7?// / -Q-A----@k> +u |H:Xz@<2-@4H 4 t-H-2DN$\1N-@4H2DN g1NH $5L 5M-4-@-H2DN n1NH#-17?a-7?-2H-  - ,@, + |H, L7>k?7>55Y5@55H`7>!- 7>a- 4Ĉ!*-@4H! 56 z.H.2N@<1N-@4H2N t1NH<,7?,7?a. ./0 @/  +a |H5 1 @*k?45Y5@5 -@@4H"6 }-H- 1N@;p1N -P@4H1N v1N H;2-@1N1 70$ k!,, 5`k?,7?@, +b |H6H !*-@4H!5 s/H/2N:1N-@4H2N n1NH:r,7?,7?a../ @/ +f |H$0!*-@4H"6 v.H.2N91N-@4H2N l1NH 9Z,7?,7?a/1/!. @. +g |H#8 C0@-@4H#7 u-H-2N8x1N-@4H2N j1NH`8:,7?,7?a/// @/ +h |H4@!J5I -- @4H#7 s.H.2$N72N-@4H2$N o2NH7b,7?a,7?/P/@ /Q ,Q,A@@ +j |H7P@!"-@4H#7 t.H.2N6x1N-@4H2N u1NH6:-17?.7?a. 1H@- +k |H?X!"-@4H"6 u/H/2N@5h1N-@4H2N b1NH 5*-17?/7?a/ 1H@- +l |H9`!"-@4H"`6x }/H/2N`4X1N-@4H2N s1NH4-17?,17?a,! 1H@-0 +m |H3h!"-@4H!5 z/1H/ 2N`3H1N-@4H2N v1NH3 -17?.7?a. 1H,P @ +n |H=p !"-@4H#7 y.qH.`2N281N-@4H2N w1NH1-17?.7?a. 1H@-p +o |H:x P%j-@4H!5 u-H-2N 1(1N-@4H2N t1NH0-17?a- 7?-15J -!- @-@ +p |H& % -@4H"6 x/QH/@2N01N-@4H2N y1NH`/-17?/7?a/ 1H@- +r |H0 !J5I -- @4H @4S x.qH.`2$N/2N5N-0 0$  -0@4H2$N4 2N uH.-@4H2$N p2NH+,ϟK;4,$25B5A ,A,0, 0 08N0$ Z@4H 4= 4 / w2$NH/-2N-@4H2$N h2NH@-5T. .%=@K;5zK;@5  |H*B+c H< 4 ;4"-@4H!5 k.H.0N@+0N7?-1/1  @/! +q |H? 4$ -@4H!5 j/1H/ 0N+0N-17?. @. +s |H/ 4 &;/4 (-@4H!@5] l//H0N*H0N-17?/ @/ +t |H7@4 6 -@4H"6 h/QH/@0N*0N7?-1/  @/ +w |H9h 4**b-@4H#7 a/H/0N)0N-17?.q @.a +x |H8 X*-@4H"6 b.H.0N)0N-17?/Q @/A +z |H)I -@4H 4? g/H/0N@)0N7?-1.  @. +} |H* 4 :$4 <-@4H @4O m-H-0N (0N7?-1-  @- +~ |H- m4 ƀ 4> -@4H!5 p/H/0N(00N-15H-7?-7?a-  --@- +`@ |H+ +4K;K= K=KQ-@0 0$ J0 0$ 2-P0 0$ 0 0$  4 (7>Q7>7>k?55Y5@55H`7>!- 7>a- ϟK;ϟ K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟ}K;ϟmK;ϟ]K;ϟMK;ϟ=K;ϟ-K;ϟK;ϟ K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;7?aϟ}K;ϟmK;ϟ]K;ϟMK;ϟ=K;ϟ-K;ϟK;ϟ K;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟK;ϟ}K;ϟmK;ϟ]K;ϟMK;ϟ=K;ϟ-K;ϟK;ϟ K;ϟK;ϟK;ϟK;4 7?a,- - - -7?!-k?97?% N%9-)@, +v |H= ϟK;ϟK;406O4 2@-1 +y |H.ϟK;44E B@-1 +{ |H(-4.6W48,7?,- @- +| |H'ϟK;ϟK;ϟK;ϟ}K;ϟmK;ϟ]K;@ >U@Lc˰?#x `PX!,KmX ((8Km>(@DKnB,$$PKP $ `K(  lK 8xKS6KZ=Z=KiM$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)"?\Ƒ@  ;BJR[ c l v @@        $ 2 A N \ j w  ȠР٠   $1 >IT _hnv| Ƞ ҠBܠC :%- 3 : ?FLSZ`gnDvA~;   Ġ`  d f h ̠jl ՠm` @o q@s@uw ` {@@}`   ` `   @     "-349`?  AJJQ Y b mzxp` @    Р @ `     xp` @    `@ @  '` -@ 3 9 ?K@@R@@W@@@ \ a fp {         Q $ @        @   " AQ A q@A|@Av@AS@A#s@A(C@A-X@A2@A>i@AIp@AK\@AVr@Aa @Ai@AqW@A~@A@A@Az@A{@Ax@At Au Ac AP Ay@A}@A~@A  A c g f k m j p "r t w y vX ]|8 H~J Z ˀ$ 6̀ ؀ڀ     !_ f# -h oq x[5 =\ j nG"K$ U Vz& * ! %, - 13 7. 2 p4 8  C&[ /?&Er&ˀtvy&߀|~&~&  &#$&)/5*06<&;AGBHN&MSYTZ^d&ciojp&u{v|&&&&&πހ߀& &( &0+&8&=6CI>DJP&OUV\]^_`ab ="&&6 06 P@&dekPlfmPogp`phs`siPr((0LLX`sKPLOPQSTUWXY[\4]4_@bPcTef`fP~(@@Lx`P     0 0<ht`P#P89:;<>?@BCDFGH`ILOdPp`PPҀDL`PpX`qPt `u,Pv0Pw88`xLLPÀyT||`΀z`Ӏ{P 44<XX!d#$`$'P(+,-/013 5 $6 0`69 p? pA xB C E G H `Hi Pjm n o p r s 8t 8v Dx py |`y| P}         ` P ( P P X t t   ` P        8 D` PP X        ` Pŀ     < < H h t`Ӏ P׀        ` P(PPXtt`"P#&'()+P,- .$/,0,283P4P`5LXP,5\`5`P``P@&SdPTWpXYPZ[\]^`abde`e`rP׀| ,`ހ}: ;!<#='>'?`(@inv_init.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hinv_initinv_transiflgfn83fn27indatuminparminzoneinsyszoneazimuthanglealflon1lon2lat1lat2center_longcenter_lathlat_originlon_originr_majorr_minorscale_factorfalse_eastingfalse_northingradiusshape_mshape_ntimepathsatnummodetmpdatumsat_ratiodzonedjustifythingiflg64ApAt Ax   A CCCC#ldpCpAKKK(KK 55TPPt5@p5555l54@5055y}5\h5(X55 5\M,XM5L|5 J J $ |M M M \ M LM M \ M , XM M M M nrMTS | J H x=AJ 8J+/J@J<J |VV(JJ4JY0JYt,TJOSJ ,X,|JJJJG,ALx,B8 at 2VDYXDA,2TM|PAP M'+M 8 h,4T, ,0`,A@p,  x $ TATS , < `, , 0, t ,A ,KA(\APt,A_KHKLMY\`MA,A/K0ATYA<,A,A2N(@kdk em  pss9 +/=AW[nrȾ̾ھ޾ '2`yȾվپӽнѽ!3Ecmvо&Lo}̾ӽ!3EcvоLo}̾ݾ޾;wսȃ;w ; XXKOS;wP־W[ POSW[QOSW[QOS;wT TSUW;wX XWY[;w\ \[]_bc ; cfX efXf;wֽ ;w ;w ;w ; X X;w־    ;w ;w   ;w     ; X X:>BF;w; 9 : ;<>;w? ? >@B;wC C BDF;wG G FHL;2 LPX OPXP;wվپ߃ վپ;w ݾ ;w  ;F X X9 +/=AW[nrȾ̾ھ޾ '2`yȾվپнѽ!3Ecmvо&Lo}̾!3EcvоLo}̾ݾ޾;wս;w ;  XX 9;wսȽ̃ Ľ ;w  ;i   ЃՃ;  X X;wվ ;w  !; !$X #$X$'+;w,վ/,+/-+/;w0 0 /13; 36X 56X69=;w>վA >=A?=A;wB BACE; EHX GHXHimnmn;woվr onrpnr;ws srtv; vyX xyXy|;wվ ;w ; X X;wվ ;w ;  X X;wվ ;w ;" X X;wվ ;w ;$ X X;wվ̃ Ⱦ;w ;& X X;wվރ ھ;w ;( X X;wվ ;w  ;, X X"&.'&';w(վ.2:>BF ('.2:>BF)'.2:>BF') '+.;w/ - . /02;w3 3 24L5ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*1=AEI_c|˾ؾܾSYWX\;w]վ`[\` ]\^Ծ`\`;wa aֽ`bdede e9  XX;wՃ ;* X X ;w Ճ    ;. X X";wՃ ;0 X Xuy;wzՃ zy{y};6 }X ~X;wՃ ;8 X X;wՃ ;< X X;wՃ ;B X X;wՃ Ⱦ;D X X;wՃ  ;H X X ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾuw  z 9 +/=AW[nrȾ̾ھ޾ '2`yȾվپнѽ!3Ecmvо&Lo}̾!3EcvоLo}̾ݾ޾ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ˽ǽݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾݽǽ˽  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ轔ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ코ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ𽔽ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ ǽ˽ݽ .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ ǽ˽ݽ .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ.ǽ˽ݽ  2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ2ǽ˽ݽ  .@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ@ǽ˽ݽ  .2DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾDǽ˽ݽ  .2@RVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾRǽ˽ݽ  .2@DVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾVǽ˽ݽ  .2@DRZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾZǽ˽ݽ  .2@DRV^qu˾Ͼݾ*15=AEI_c|˾ؾܾ^ǽ˽ݽ  .2@DRVZqu˾Ͼݾ*15=AEI_c|˾ؾܾ`cqǽ˽ݽ  .2@DRVZ^u˾Ͼݾ*15=AEI_c|˾ؾܾuǽ˽ݽ  .2@DRVZ^q˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ˽ǽ˽ݽ  .2@DRVZ^quϾݾ*15=AEI_c|˾ؾܾϽǽ˽ݽ  .2@DRVZ^qu˾ݾ*15=AEI_c|˾ؾܾݽǽ˽ݽ  .2@DRVZ^qu˾Ͼ*15=AEI_c|˾ؾܾὔǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ𽔽ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ*ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ15=AEI_c|˾ؾܾ1ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*5=AEI_c|˾ؾܾ=ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15AEI_c|˾ؾܾAǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=EI_c|˾ؾܾEǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AI_c|˾ؾܾIǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AE_c|˾ؾܾ_ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEIc|˾ؾܾcǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_|˾ؾܾior ;4 orX qrXr|ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c˾ؾܾǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ;i: X Xǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ;i> X X;@ X Xǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ˽ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|ؾܾؽǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ܾܽǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾ⽔ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ񽔽ǽ˽ݽ  .2@DRVZ^qu˾Ͼݾ*15=AEI_c|˾ؾܾ '' ' ''''''''''!'#'%''')'+'-'/'1'3'5'7'9';'='?'A'C'E'G'I)"%# $  0 U $0<L X@l|(4DP`l|,8HXht 0<LXht  inv_init ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32inv_init@ $gntt_label $lntt_labelinv_init S$10$inv_initsphdzpaksz ceainvintceainv L$plab_start bceainvintbceainv calc_utm_zone utminvintutminv stplninvintstplninv alberinvintalberinv lamccinvintlamccinv merinvintmerinvpsinvintpsinv polyinvintpolyinv eqconinvinteqconinvtminvinttminv sterinvintsterinv lamazinvintlamazinv aziminvintaziminv gnominvintgnominv orthinvintorthinv gvnspinvintgvnspinv sininvintsininv equiinvintequiinv millinvintmillinv vandginvintvandginv omerinvintomerinv sominvintsominv haminvinthaminv robinvintrobinv goodinvintgoodinv molwinvintmolwinv imolwinvintimolwinv alconinvintalconinv wivinvintwivinv wviiinvintwviiinv obleqinvintobleqinv isinusinvinit isinusinvcproj.o/ 1074014944 1032 20 100666 31440 ` 1Dz@Dq6d vhM`G!Yck?/,7p0H k?k?@1HK?1H@.K?/K?Y7?@/0,k?/,7p0H @1H#7 /0 0$ *1 0$ 0H @/ @1HK?Y7?@/0,k?70N"6 /1N@0.7?!K?Y/0n@7?k?/,/-/.7#7 /0 0$ :/0NK>7?1/0./0-@/0,/0N /0N2n 1JN 0.1F 0.0. 0n0n@@1N1.E1Nk?/,/-/.///0/1/2/3/4ok?#@7C 0H,a 0H @2MN,q0H1 0$ !r1n,`1N,p7?a4?1.2En7?a1H@7?q,` ,p1N0N 1.1.0 1Gn0N0N 0n2H.1dn@@2N2f2N@10 0$ Z'7?a+`490@4:K># 77`4.1HK>YK?O?/04/03/02/01/00/0//0./0-@/0,k?/,/-/.///0/1/2/3ok?# 7$ 0H ,0H K>,1H `@1N0N,",6`2./4?2 H@@1N1H2H.1 0n@@@1N1N2.0.@2%0 0$ B_2 H+`49@4:P4 x@2 H1HK>K?O?/03/02/01/00/0//0./0-@/0,k?/,/-/.///0/1/2/3/4/5o0H 7>!7=/7?Q/ # /77 .1H.4?...2pN@@1N2qN@11N@r1N7?Q.21n 13.@2e0 0$ bb_W2pN+`49@4:K=#7`4.aK=2`HK>YO?!/05/04/03/02/01/00/0//0./0-@/0,k?/,/-/.///0/1/2/3/4/5o`k>k>7=a7=0H /7?!K=A7?a/1#/7>,`7`/7 0H 4?./! .7?!/0N .1ON/0 /A0N/1.N.K=I/ /!// .a/1/ @,`0H@,`1N0H2N@2'.2dN,,`@0N7>,`0H/1N1N@7>,`,Q1N@7>,`, 1N@7>,`.0N1N@1.7?!,`.1N@7?!7?!.2sN.1N0N,1n,`r2.3<.1N3]N 2xN 0NLW2nN 2INU1U.1gn.1.2.1N3N36.33}n0@,`7?a/0 0$ 2}=@+`49`@4: @0H1HK=K>K>O>/05/04/03/02/01/00/0//0./0-@/0,k?o0 4@0$ 4Z@@# "78 6/7?`/7?0n '@/4Z/ /1&3 9hG1`:ࢗ2N 0.1n 0 1A&2 T0Nt } 1&&2 1 . 0/0NK?Y@O?k?ok?# 7$ 4@,0N0 0$ 4Z@@0 , ,#1@ 7`/4Z+"F0N12 GB2K 1f/0NK?YK?@O?k?/,/-/.o7>#0H . 7 ,q,a 0N0.11n@@,`0H0.@1N0nK>O?1/0./0-@/0,0 0$ @4?@4k?/,/-/.///0/1/2o"0H 6 /6`/4// /1H@@0 0$ 1n@@7?0&aaa@1H7?<')00N1. 4ch_G1H1HK>O?q/02/01/00/0//0./0-@/0,@1n@2@H000 0$ 2A02&N%1. 1n@2@H000 0$ "2A01N1. 1n@2@H000 0$ 2A02NU1. @1H7?\'Q01N 1. ##@7`7 /7W./0 0N 0N/11+ /!0N0N2 1 N @0."6 / / /0N0N/0 0N 0N 0@16N"6 /// 0N0N1  0N @1jN0N#7 .0N@0Nk?/,/-7`#7 .00. @0H0H 1H@1H@1NK?Y7?/0-@/0,k?/,/-/.o7>a"0H/ 6 ,a0N @1N1N,q@a7>,`/11N0N@1 7>/0N1.K>O?1/0./0-@/0,7#7 7?///01n 1& 1A&@7???>z򚼯H??@?=|׽?>z򚼯H??!TD-@?=|׽@@@=|׽@?@@@=|׽@È?PbM@YA.@@'@Lc˰@NA.@@???!TD-@ !TD-@!TD-AB !T!C!S~=??@0@??????????UUUUUU?@@@@f@?Convergence errorphi1z-convConvergence errorphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv `PX!HH,AX!`H`8A\X  @ `@DX!(<<PFX!d\WX!TTh<X!L$$tVX!p88JX!8 X!8 X! X! x (xX!  JX! $ X! L `L 1X! 8 8 ,X! H, , ,X! t  -X! X 8X DX!  ]X! t< < $,>(@( P)h$$4 y$D z)$P }B x* x\ O8 h V? tV@? @ dM`$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$LIT$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@))?/*@  x@8?GOX ` i s ~@@        ! / > K Y g t  Š֠͠ ߠ   !. ;FQ \eksy Š ϠB٠C  :"* 0 7 <CIPW]dkDsA{;   `  d f h ɠjl Ҡm` @o q@s@ޠuw ` {@@}`   ` `   @     *046`?  >GGN V _ jwxp` @    ͠ @ `     xp` @    `@ @ $` *@ 0 6 <H@@O@@T@@@ Y ^ cm x      $%&'()234567DEFGHIbcdefg~     ./0123;<=>?@HIJKLMUVWXYZbcdefgqrstuv~ Q  D@ @ @   Q &@\@ !) #(%"&'()*+,Q <-@8@@8@:.A@ 1>34456789:Q R;@ @ @N @P<[A @B EW ?TGJTAHIJKLMNQ  mO@P h@i @kPA@A@A@A#@A'@A-@A3@A7 V ^ fohd`ijklmnoQ 9p@  ?@@qAB@A3@A$@A%@A'#@A7" v | ~Q I@4 +O*@R)@U(@X'@[&@A3,@A0@A7/ Q ^@@ 39@ d8f7@h6@O5@R4@U3@X2@1@A;@Aj=@Aq<@A[>@Ax@@A|A@AB@AD@AE@A7:  € ɀˀQ @F@AH@AO@AM AN AG Q 1@P@AR@AY@AW AX AQ 3-Q O@t\@3[@KZ@MA]@A#_@  Q G Q c `@h e_e !"#$Q u%@a@&Ad )@ B{D F}< > 0z 7wJqz2:w9KLMNOPQQ R@He@S UWXYZ[\]^Q _@4f@` bdefghijkQ l@(g@m oqrstuvwxQ y@h@z |~Q @Ti@Aj@A#k@ Q @3p@Oo@Rn@Um@Xl@ Q  8q@  ="&&3 03 P44@4(`448P4Ѐ48`4`4> !#'' ;!0;"P<(=P>)?0@<BD`B*DH`D+EP`E,?-'.b/$0(1(2J30J4PN>Q R `RAS4`SB@C,DE%F)G)HXI0XJP\T_f,`fYg4P\TP`WaLbT`bX`fY`gZA]1^_&`+a*blc0ldPpozD{T|\}`~lP`~P```B7',+0P@PPpPx`P`P```D@(-,0PppP€p`ɀP€`ɀP€Pǀ`ɀ`ɀ`΀΀`πEF+0-Ԁ0ԀPހxxPX`08PL`P`P` J L ,4. 0 P  `t`$`%K&U'(-)5*/+!,0!-P#3) *+ ,(-,.4/80\1`2l3l4t5|`5>6|`6?Q@[AB.C6D0E<F0<GP@QD E4F<GP`GVH``HWRXaYZ/[9\1]M^0M_PMeM@M `MfMPMeЀM`Mf`Mg[jjkl0m=n2oRp0RqPTwU,VLPWzXLYd[d\no`pVPWzXp`ps`stPTwPWzhPij`j^P_{`4``|cHPd}eh`e~m|`p`s`t\p1>3z0zPzz`zzD`zfv3?4{0{P{{`{{0`{i4A5|0|P||`||$`|l5D6}0}P}}`}ƀ}`}o7E70P $`ڀD`r8F80P(`t`u9H:0P`4`x:K< `= cproj.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.htsincoscos_valsin_valasinzconmsfnzcosphisinphieccentqsfnzphi1zflagqseccntsdphicomsinpicospiphiiphi2ztseccnthphi3ze3e2e1e0mlphi4zcbasin2phtanphimlpcon1con2con3pakczpaksecsdegsminssgnapakr2dmtsfnzsignxadjust_loncounte0fne1fne2fne3fne4fnmlfncalc_utm_zonelonADDCDCDH\DA<DH8H8C8A 8HHCHAT>ADPDA<|VCP JJATJAl,KPKPKPA/A5A/A8 DA@GC L\JYPXJSSApxSBpxK A8A/A4DH4CCCCYYa\lYBpA/ADDAxGCCCCCCCKA\A YA\dHYY `YA /Aq!tAtAnA/HA,,,t8A,KKA2A 0/A|,xx,lt24,\d8A,0,A8?A`lAl2HtA tDCtHPhJA482A<D2HD4DA,DA@HHH4H(HHTA (5A$TDHA |JCHC@C8H8 (4;k;k 4 4 (=;kԽ?@BȆӽ@ӽBֽ D;kE(QRȊR;k S`(_bfȍgbӽab cb;kԽf"( ؽz{Ȑz;k{z{| } ;x  ;k  ;k~aa2aӽ| ( ĽȔ;k ӽԔ;k;;k;k aa2aӽ A( ӽȘԘ;ký;kaa2aΘɽ C(  TսֽֽȚӽֽԾս;k ӽ;k ӽ;k  ;k ӽ;k;k ;kս     ;kaa2aӾ ( Ӿֽ;kȝ՞վӾ(D*/12Ƞ Ӿ)* *-+,ֽ-;k.2/1վ4 /3/Ӿ/012Ӿ123254456a(|DEFGȠ"DEFG"DFEF;GFG G;kH M*M;M(tVXY[\^`cehjmȠ&VXY[\^`cehm&cehj&^chU\^`mVXY[hjVXXV;kY[[Y;k\;i#\noVXsthjh;kjj^`^;k``cec;keem;i#m ܾzȠ()  {Ƞ+  \|Ƞ- }Ƞ/@(ܾȠ1;; ;k a(̾Ƞ3";k2;kB;k Ƞ5 # #:# #"%C%1% =% I%v%j%p%%I%%!C%#1%%U%'+%*%,%.%07%2C%4&]# $ $00 K  `(40@ L p\0h t x0   @0  0  0 ; (00  <@ Lx0`  l0 + 0  0  0 c   0  (0$  0H0@  L`0\ ; hh0x  p0 # cproj ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@ calc_utm_zonemlfne4fne3fne2fne1fne0fn adjust_lonsigntsfnzpakr2dmpakczphi4zphi3zphi2zphi1zqsfnzmsfnzasinztsincos@ $gntt_label $lntt_labeltsincossincosasinz S$11$asinzfabsasinmsfnz S$12$msfnzsqrtqsfnz S$13$qsfnzlogphi1z S$15$phi1zM$14p_errorphi2z S$16$phi2zatanpowphi3z S$17$phi3zphi4z S$18$phi4ztanpakcz S$19$pakcz S$19DD$pakczpakr2dm S$20$pakr2dmtsfnz S$21$tsfnzsign S$22$sign adjust_lonS$23$adjust_lone0fn S$24$e0fn S$24DD$e0fne1fn S$25$e1fne2fn S$26$e2fne3fn S$27$e3fne4fn S$28$e4fnmlfn S$29$mlfn calc_utm_zoneS$30$calc_utm_zonereport.o/ 1074014947 1032 20 100666 31896 ` 1H|@0Hv<#fBxlOG!R4k?7+`H? k? k?+`7X@4:+`H7 z+`49 +`@4:+`K?490+`K?7@h<+`@H:K?Y@7?k?ok?7$k? (k?+`4h7 a h B b+`7h @4#!4K?+`h@4:D!+`4K?4#@h8 !4+`hy4:@K?!B ZK?@h`(!:4K?+`hs@4:`4!:4K?@h}( 4K?+`ht@4:4όK?Y+`h`49@4:PόK?Yh 4#h >@h`4Xhu(όXK?Y+`h`49@4:ό K?Yh`(h`4K?YK?@O?k?7+`H:@ @@+`H:@ @@K?Y@7?k?7+`H?( k?+`7Y@4:+`H7 r+`49P+`@4:+`K?49`+`h<@7+`@H:K?Y@7?k?/,7p+`H?(0H +`1H@4:+`H7 r+`49+`@4:+`1H49+`h<@7+`@H:K?Y7?@/0,k?/,/-7`+`H?(0H @0H +`1H@4:P+`1H@4:+`H7 +`490+`@4:+`1H49@+`h<@7+`1HH:+`@49+`@H:K?Y7?/0-@/0,k?/,7p+`H9( 80H #+`7 4: .@1N+`H:@ +`49+`@4:#+`7 49/+`h<7@1N+`@H:K?Y7?@/0,k?/,7p+`H9( 80H #+`7 4:.@1N+`H:@ +`49`+`@4:#+`7 49p/+`h<7@1N+`@H:K?Y7?@/0,k?/,7p+`H9( 80H #+`7 4:.@1N+`H:@ +`49@+`@4:#+`7 49P/+`h<7@1N+`@H:K?Y7?@/0,k?/,7p+`H9( 80H #+`7 4:.@1N+`H:@ +`49+`@4:#+`7 49/+`h<7@1N+`@H:K?Y7?@/0,k?/,7p+`H9( 80H #+`7 4:`.@1N+`H:@ +`49+`@4:#+`7 49/+`h<7@1N+`@H:K?Y7?@/0,k?/,/-/.7+`H:(0H @ X0H #+`7 4:0.@1N+`1N@4:+`H9 +`49+`@4:#+`7 49 /+`h<7@1N+`1NH:+`@49 `+`@H:K>7?1/0./0-@/0,k?/,7p+`H9( 80H #+`7 4: .@1N+`H:@ +`49 +`@4:#+`7 49 /+`h<7@1N+`@H:K?Y7?@/0,k?/,/-7`+`H?(0H @0H +`1H@4: p+`1H@4: +`H7 +`49 +`@4:+`1H49 +`h<@7+`1HH:+`@49 p+`@H:K?Y7?/0-@/0,k?/,7+`H7(0H (k?+`1H7@4: +`H8 +`49 +`@4:K?+`h<7?+`7/ @49 +`@H:K>7?@/0,k?7+`H?(k? k?+`7X@4: +`H7 z+`49 0+`@4:+`K?49 @+`K?7@h<+`@H:K?Y@7?k?7+`H?( +`@4: `+`H7 j+`49 p+`@4:+`749 +`@h<+`@H:K?Y@7?@Lc˰@Lc˰@Lc˰@Lc˰@Lc˰@Lc˰@Lc˰[%s] %s a[%s] %s Output file name not specifiedreport-fileOutput file name not specifiedreport-file %s PROJECTION PARAMETERS: a %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters a Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters a Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees a Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees a Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees a Latitude of Center: %lf degrees Latitude of Origin: %lf degrees a Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees a Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees a 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees a Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters a False Easting: %lf meters False Northing: %lf meters %s %lf a %s %lf %s %ld a %s %ld a  `PX!,X!8sX!< <DRX!|`|PJX!T\X!hhTX! tX  P8 8X!,X!`X!dX!+X!@X!t X!  X! p X! \  \X! p p >( ;@D x>(R@H>(P@Hl$$, {`$`< |)H x> x&xT L5` SX;lSX;|AfO$TEXT$ $PRIVATE$$DEBUG$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$LIT$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$CODE$$DATA$$BSS$ $SHORTBSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)+?`@ `x9@HPY a j t @@        " 0 ? L Z h u  ƠΠנ    "/ <GR ]fltz Ơ РBڠC :#+ 1 8 =DJQX^elDtA|;    `  d f h ʠjl Ӡm` @o q@s@ߠuw ` {@@}`   ` `   @      +147`?  ?HHO W ` kxxp` @    Π @ `     xp` @    `@ @  ';` A@ G M S_@@f@@k@@@ p u z        'efgh'ijklwxyz'{|}~''''''')*+,'-./BCDE'FGHYZ[\']^_rstu'vwx''' '           (  `  `  ! Q ".  ** 0-+  1 0&' Q 5J!  : B @ ECF FJ H"i$ 'M)gG IP .O0kO ST 5SX [W] `Y7mb d\ <[?oj n` D_s vc KLz>OFLMqWhSN[a_iLr{|}~'QN 8 |'Q Y x `* 'Q b `1@ 'Q i q9@`8@ Ȁ π ЀҀ'Q s `A@ 'Q z `I@ 'Q  `Q@  'Q   `Y@! % & ()*+,'-./0Q 1 `a@26 :! < >?@AB'CDEFQ 3G qj@`i@1HJ M6O T8 U5W-XYZ['\]^_Q H` `r@ac eKg kM lJnDopqr'stuvQ _w q{@`z@]xz }b d aY'Q w  t`@u z yp'Q   `   'Q l À Āƀ'΀ ="&& / :%0:&P=0MNO,PP1Q<RdSl`S2`S3Vx`V4>5 6!78#9':';0<Z=0Z>P`LaPbMcd(`dNg0PhOi8j@nPo\`oRrhPsStpu|{|`|VP[`^P_`b PhOPkPl`lQ`oR`eP`LPsSPvTwx y,`yU`|V`e0P`LPW4<`X@PYHP`ZP[P\X`]`^`e\P`LP_P``ht`a`b`exP`LPc|`d`e`f?s'tbuv$w(x(y1z{0|P(`0`@,%))20P(P8\d``p`A1&+*30P ,PÀ<`h`ƀ`ƀt`ȀB7',+4ʀ0ʀPˀP̀$4`πDPҀTx`ր`ր€`؀D@(-,5ڀ0ڀPۀ8P߀Ht``ր`EF+0-60P8PHt```JL ,4.0P8PHt```KU!-5/0P 8PHt```Q[".60 0 P     8P!Ht`"`#`$R%a&'#(/)9*1+,0-P5 P6(D`7TP8d !`!9`!:#`#;[<j=>$?0@=A2B%C0%DP&J'P(K)`)L+8P,M-H.t/`/N`/O1`1P\QpRS%T1U>V3W3X03YP4a5P6b7$84`8c:DP;d<T=x>?`?e`?fA`Agfhvij&k3l?m4nCo0CpPDyEF G4PHzIDJ`Kx`K{`K|M`M}i~'4A5N0NPOPQR,PST<UdVl`V`VXx`XlL5D6Y0YPZ[\] P^_0`PaX`a`acd`coM7E7`8report.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/string.h/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hterminal_pterminal_efile_efile_pfptr_pfptr_eparm_fileerr_filep_errorwherewhatinitpfileefilejpriprclose_fileptitleAradiusradius2Bcenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptSgenrpt_longpblankCCĀ@@ &pt@lQS@<A8AhChCh̀8Tttu@h  T @h + LX@h- h LPTT@h8@88/@8Cxx2@xx4@xx6@xAD;@=@?@AG(@DY$DC@E@G@ 4DYDK@M@O@ 4DYDS@U@W@ 4DYD[@]@_@ 4DYDc@e@g@ 4DY Dl@n@p@A D,PGY(Gt@v@x@ 4DY)D}@@@AG(@DY$7D@@@ADC@@@CCĀ@@pt@lTV@<l@ll@ll\`4X_a@0(MQQNUN8UOQQQUUP7PԽRUUQֽQ9 QQSQS6 QV(acdQccQӽd dQginQjiQj6 injnӽoP nQon7 PrQtw{utw{u6 tw{Qu{ӽ|P {Qӽ|P|7 6 QӽP Q7 Ply6 QP Q7 PlylyxU wQxU2UylQӽ Q QQֽlyU QU2UlyQ Qly(QQ6 QQ6 (QQU 7UQQUUP7PԽUUQ Q 8Q6 Q (QQU :UQQUUP7PԽUUQ Q Ž:Q6 Q@(QQU :UU :UQQUUP7PԽUUQ Q Խ:QQU :UQ6 Q ( ĽQQݒUU:QQUUP7PUUQ Q:Q6 Q  ( QQUU:QQUUP7PUUQ Q:Q6 Q ( QQUU:QQUUP7PUUQ Q:Q6 Q ( |QQUU:QQUUP7PUUQ Q:Q6 Q ( ` QQ UU : QQUUP7PUUQ Q:Q6 Q`(DQQUU:U:UQQUUP7P UԜUQ Q: QQU:U!Q!6 Q# (X'QQ)UU):+QQ-UUP7P.UUQ -Q.:/Q/6 Q1@(T5QQ7U7:U8U8:U:QQQQU:U?Q?6 QA (hEQQFUF:UGQQIUUP7PJQ IQJU8UKQK6 QM(pPQQQUQ8URQQTUUP7PԾUUUQ־T9 TQVQV6 QX(x[QQ\U\6U]QQ_UUP7PԾ`UUQӾ`_7 _QaQa6 Qc###"##$#0##(#2##(##Q(# "#,#*##&##"# ###X% %C% % +%:%7%C%%4%%%%@%:%% =%!%")#% %  !%    %  %   %   %   %   %   %   %   %   %   %   %   %   %!   %"    @H @H $ 0 @ @ ,0 U8DP0 \#0 lc0x0k0#  0  0 c  0   0   0, C < (0P  \ 00p0| s0 @ 0  report ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@pblank genrpt_longgenrptoffsetpstparl1stanparl true_scaleorigincenlat cenlonmercenlonradius2radiusptitle close_fileinitp_error@ BS$report SB$report $gntt_label $lntt_labelp_errorM$2printffopenfprintffcloseinitstrlenstrcpy close_fileptitleradiusradius2cenlon S$25$cenlon cenlonmerS$26$cenlonmercenlat S$27$cenlatorigin S$28$origin true_scaleS$29$true_scalestanparl S$30$stanparlstparl1 S$31$stparl1offsetpgenrpt genrpt_longpblankpaksz.o/ 1074014950 1032 20 100666 8620 ` 1,!@T xx,  t8PG!k?/,ok?0 "70$ 6 , @/0N 0.0 0$ !/0N 0N 1I 01N1nK>, @@,7?A40n0&=@Z+`490@4:4, vK>K?O?@/0,0"`6`7?A0N /4x0.0n1'II^g0+`49@4:P4,- a+`49@4:4, |?A.@@@N@ Illegal DMS fieldpaksz-degIllegal DMS fieldpaksz-minIllegal DMS fieldpaksz-sec `PX!HH,X 8H88>(T@tDP$$Pt $ `d dl 0x0ll $TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)/?/K@ d8?GOX ` i s ~@@        ! / > K Y g t  Š֠͠ ߠ   !. ;FQ \eksy Š ϠB٠C  :"* 0 7 <CIPW]dkDsA{;   `  d f h ɠjl Ҡm` @o q@s@ޠuw ` {@@}`   ` `   @     *046`?  >GGN V _ jwxp` @    ͠ @ `     xp` @    `@ @ $` *@ 0 6 <H@@O@@T@@@ Y ^ cm x      012345 Q  @D @ (A@A @A @A@A@A *  - 1"2 6$ 8 ' 9:;<=>? ="&&5 05 P8@B C,a8e8fDmPnhPM Pp`P!pp`p&qpP8EtIxJKLPM NOP`P!p`p&qP8SWXYZP["\]^ `^#Pg$h(i8j@`j%`p&`q'>, -!.#/'0'1`(2paksz.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hpaksziflgangfacdegminsectmpiHDA(AxDhp8Dd55Ax|,A5KDlp,A/,A8p,"(BCEJP^jȃ@BCEJP^jCCfmeefmnmnP^jpqEI;kJLKNUUN2UOP^jpOqSXfmnZWXZWYZa\UU\2U]P^jp]hUUh2UiP^jpi # #)"%q#g $  0  H (@0paksz ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@paksz@ $gntt_label $lntt_labelpaksz S$11$pakszfabsM$2p_errorsphdz.o/ 1074014952 1032 20 100666 32644 ` 1h@ h}\ z@~$`rG!ck?/,ok?k?!k?)7Fk?176BK>@/ K?10H @/1 0$ "6 .q0 0$ ,` ,, 0 ,` 0$ , , @0.1Nx,0 0$ J+`4=`4! /,`/,,!,4?׈ R+` @454\ ./,`.,,4?+` H4?/ 4 .,`/,@,/#7`/!,`/,,4K>K?)K?!K?O?@/0,@44*@J+`49@@4:+`4:`@49]4 J+`4?`4:/ ,`/\ ,/ ,4(+`< H4?`/ 4843,`/ ,.`,/ 4744,`. ,.M,?AXM˕AXMAXM@Invalid spheroid selectionINFORMATIONALReset to 0INFORMATIONALAX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕ `PX!DD,X (H(8>(@D$$PL$L`THLlZ HRHx^TVy qy  q z@r$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)1?@ LH 8?GOX ` i s ~@@        ! / > K Y g t  Š֠͠ ߠ   !. ;FQ \eksy Š ϠB٠C  :"* 0 7 <CIPW]dkDsA{;   `  d f h ɠjl Ҡm` @o q@s@ޠuw ` {@@}`   ` `   @     *046`?  >GGN V _ jwxp` @    ͠ @ `     xp` @    `@ @ & * @/& * @5< D\ x   @   `ˠԠ    &  .  6 > E` M@ U \  cf n<  "@u$~&@&@&@(*,  / 1 3 5 79 ;<  n< ?A@C@E@E@FH#J- 8 MO@GQP S TV@VX_Zh r n ]_@{a  J J eg@i @  m o q s u w!` y,@ {5 }? I R [ d n@E@wE@`D        Р` @ @  @@          7      "   *4 @ 0@@ 7@ >`  G@  P  X  a k  @@E          7      "   *4 @ 0@@ 7@@ G  P  u `         @@ @@ @@@ @@ @@ @@ @@@ @@ @@! @@# (@@@% 0@@' 8@@) @@@+ H@@@- P@@/ X@@1 `@@3 h@@@5 p@@7 x@@9 @@; @@@= @@? @@A @@C @@@E @@G @@I @@K @@@M @@OQ ΠS ݠU    W  Y  [ ` ] #@ _ . a 9 c D e O g Z i e k p` m {@ o  q  s  u  w  y  { ` } @              `  +@  6  A  L  W  b  m  x`  @              `  @              `  *@  4  >  H  U  b  o  |`  @         ` ߠ @   @  @@ @ @ @ @ @ @' @. @5 @< @ @C @J @Q @X @ @_ @f @m @y @ @ @  @  @  @ @ @ @ @@ @ @ @ @@ @ @! @# @% @ @' @) @+! @-)@ @/1 @19 @3A @5I@ @7Q @9Y @;a @=i@ @?q @Ay @C @E@ @G @I @K @M@ @O @Q @S @U@ @W @Y[Ӡ]۠_    a` e  gc i k m o` q@ s' u2 w= yH {S }^ i ` s @ }       `  @        `  @  ' 1 ; E T c ` n @ y       `  @      ! 1` A@ Q \ g r }  ` @       ` @      % 0 ;` F@ Q  \ g  r  }   ` @        ` !@ #  %  ' )" +- -8 /C` 1M@ 3W  5a 7k 9u ; = ?` A@ C  E G I K M O` Q@ S` @W Y@U[]_  a#` c @ e  g i k m o  q'` s.@ u5 w< yC {J }Q X _` f@ m y     ` @       ` @      ! ) 1` 9@ A I Q Y a i q` y@       ` @   1=K`Q`W` _flVr}   $ @=    `  `     % % $% `  =$ G $"$&&S(^x   ,@ 0 2 @ 5 7 38 : .;@=  B @C@ѠE@  H@ L N JO`Q ! U' W/ Y5` [<@ ]C _K acRe_g^` j nlu n~ pprht`v@ x z |~@ʠ@$@%@(@)&@* *g`  "***-%@*0*+8D C I O U [ a h nw                 ` @   @` "@ ( . 4@S@ ]   f  o  v      `6 @7      `S ]`  @!   $ " ' %(*@@ @@1@@@3  7 5 8:<( 3  = CA IC OEG UI\nopqrDs\tuvw x y^zD{|@}~\n D\  D     ^^D@\n` @@  ` $@@ &Q ; @@ /@ 20@ 53@ 86 9bA@A@A !%' +F2 6H- 1J 7E9 =M? COE IQJ NS ODTdW \Wa eYg k[l p] ]V Q=s+=SV_tuvwDx\yz{| } ~^D@\n =?0  W f  .' G"&&Zl*0l+Pr=x(PyDz0{@}HP~ETPFlpt`G|PJ`KPH`I`LPM`NPO `PPQ$8@`RPSH\d`T`Uh`΀`lPr=PVPW`X`ˀ_PVPY`ZP€[ `ŀ\PȀ] 08`ˀ^`ˀ_`΀``πa>f g!hi@jkDlm)n߀o5p1qrs"tHu#v'w'x`y`azsphdz.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/stdlib.hremquotdiv_tldiv_twchar_t/usr/include/sys/wait.h/usr/include/sys/sigevent.h__sival_ptr__sival_intsigvalsigval_t__sigev_value__sigev_signo__sigev_notifysigeventsigevent_tSIGEV_SIGNALSIGEV_NONE__sigev_types/usr/include/sys/time.htm_isdsttm_ydaytm_wdaytm_yeartm_montm_mdaytm_hourtm_mintm_sectmtv_nsectv_sectimespectimestruc_tit_valueit_intervalitimerspecRTTIMER1RTTIMER0CLOCK_PROFILECLOCK_VIRTUALCLOCK_REALTIMECLOCK_INVALID__clockid_tclockid_ttimer_ttv_usectimevalitimervaltz_dsttimetz_minuteswesttimezonelohi__cyclescycles_t__fd_masktv_nunitki_timeval/usr/include/sys/_rlimit_body.hrlim_maxrlim_currlimit/usr/include/sys/resource.hru_nivcswru_nvcswru_nsignalsru_msgrcvru_msgsndru_iochru_oublockru_inblockru_nswapru_majfltru_minfltru_isrssru_idrssru_ixrssru_maxrssru_stimeru_utimerusage/usr/include/sys/siginfo.hSI_MESGQSI_ASYNCIOSI_TIMERSI_USERSI_QUEUE__si_codes__pad__band__fd__file__addr__fault__status__SIGCLD__uid__kill__pdata__pid__proc__datasi_valuesi_errnosi_codesi_signo__siginfosiginfo_tk_siginfo_t/usr/include/sys/newsig.hsigset__sigset_tsigset_t/usr/include/machine/save_state.hss_fp31ss_fp30ss_fp29ss_fp28ss_fp27ss_fp26ss_fp25ss_fp24ss_fp23ss_fp22ss_fp21ss_fp20ss_fp19ss_fp18ss_fp17ss_fp16ss_fp15ss_fp14ss_fp13ss_fp12ss_fp11ss_fp10ss_fp9ss_fp8ss_fp7ss_fp6ss_fp5ss_fp4ss_fp3ss_fp2ss_fp1ss_fp0__fp_dbl_blockfp_dbl_block_tss_fp31_loss_fp31_hiss_fp30_loss_fp30_hiss_fp29_loss_fp29_hiss_fp28_loss_fp28_hiss_fp27_loss_fp27_hiss_fp26_loss_fp26_hiss_fp25_loss_fp25_hiss_fp24_loss_fp24_hiss_fp23_loss_fp23_hiss_fp22_loss_fp22_hiss_fp21_loss_fp21_hiss_fp20_loss_fp20_hiss_fp19_loss_fp19_hiss_fp18_loss_fp18_hiss_fp17_loss_fp17_hiss_fp16_loss_fp16_hiss_fp15_loss_fp15_hiss_fp14_loss_fp14_hiss_fp13_loss_fp13_hiss_fp12_loss_fp12_hiss_fp11_loss_fp11_hiss_fp10_loss_fp10_hiss_fp9_loss_fp9_hiss_fp8_loss_fp8_hiss_fp7_loss_fp7_hiss_fp6_loss_fp6_hiss_fp5_loss_fp5_hiss_fp4_loss_fp4_hiss_fpexcept7ss_fpexcept6ss_fpexcept5ss_fpexcept4ss_fpexcept3ss_fpexcept2ss_fpexcept1ss_fpstat__fp_int_blockfp_int_block_tss_newcksumss_oldcksumss_reserved2ss_cr26ss_cr25ss_cr24ss_cr13ss_cr12ss_cr10ss_cr9ss_cr8ss_cr0ss_sr7ss_sr6ss_sr5ss_sr3ss_sr2ss_sr1ss_sr0ss_sr4ss_cpustatess_cr22ss_cr21ss_cr20ss_cr19ss_cr15ss_pcsq_tailss_pcoq_tailss_pcsq_headss_pcoq_headss_cr11ss_gr31ss_spss_ret1ss_ret0ss_dpss_arg0ss_arg1ss_arg2ss_arg3ss_gr22ss_gr21ss_gr20ss_gr19ss_gr18ss_gr17ss_gr16ss_gr15ss_gr14ss_gr13ss_gr12ss_gr11ss_gr10ss_gr9ss_gr8ss_gr7ss_gr6ss_gr5ss_gr4ss_gr3ss_rpss_gr1ss_reserved__reg64__reg64_tss_cr26_loss_cr26_hiss_cr25_loss_cr25_hiss_cr24_loss_cr24_hiss_cr13_loss_cr13_hiss_cr12_loss_cr12_hiss_cr10_loss_cr10_hiss_cr9_loss_cr9_hiss_cr8_loss_cr8_hiss_cr0_loss_cr0_hiss_sr7_loss_sr7_hiss_sr6_loss_sr6_hiss_sr5_loss_sr5_hiss_sr3_loss_sr3_hiss_sr2_loss_sr2_hiss_sr1_loss_sr1_hiss_sr0_loss_sr0_hiss_sr4_loss_sr4_hiss_cpustate_loss_cpustate_hiss_cr22_loss_cr22_hiss_cr21_loss_cr21_hiss_cr20_loss_cr20_hiss_cr19_loss_cr19_hiss_cr15_loss_cr15_hiss_pcsq_tail_loss_pcsq_tail_hiss_pcoq_tail_loss_pcoq_tail_hiss_pcsq_head_loss_pcsq_head_hiss_pcoq_head_loss_pcoq_head_hiss_cr11_loss_cr11_hiss_gr31_loss_gr31_hiss_sp_loss_sp_hiss_ret1_loss_ret1_hiss_ret0_loss_ret0_hiss_dp_loss_dp_hiss_arg0_loss_arg0_hiss_arg1_loss_arg1_hiss_arg2_loss_arg2_hiss_arg3_loss_arg3_hiss_gr22_loss_gr22_hiss_gr21_loss_gr21_hiss_gr20_loss_gr20_hiss_gr19_loss_gr19_hiss_gr18_loss_gr18_hiss_gr17_loss_gr17_hiss_gr16_loss_gr16_hiss_gr15_loss_gr15_hiss_gr14_loss_gr14_hiss_gr13_loss_gr13_hiss_gr12_loss_gr12_hiss_gr11_loss_gr11_hiss_gr10_loss_gr10_hiss_gr9_loss_gr9_hiss_gr8_loss_gr8_hiss_gr7_loss_gr7_hiss_gr6_loss_gr6_hiss_gr5_loss_gr5_hiss_gr4_loss_gr4_hiss_gr3_loss_gr3_hiss_rp_loss_rp_hiss_gr1_loss_gr1_hi__reg32__reg32_tss_mpsfu_ovfloss_mpsfu_lowss_mpsfu_high__ss_narrow__ss_narrow_tss_32ss_64ss_widess_xorfpintfpdblss_fpblockss_padss_narrowss_flags__save_statesave_state_tss_sizestack_tmcontext_t__uc_stack__uc_sigmask__ucontext__uc_link__sub_ctxtuc_subcontextuc_reserved_flagsuc_created_by_getcontextuc_sparesuc_mcontextucontext_t/usr/include/sys/signal.hsig_atomic_tsa_flagssa_mask__sa_handler__sa_sigaction__handlersigactionss_onstacksigstacksv_flagssv_masksv_handlersigvec/usr/include/machine/frame.hfm_pspfm_epfm_clupfm_slfm_crpfm_erpfm_esr4fm_edpframe_markerframe_marker_tsm_argsm_rval2sm_rval1sm_errorsm_eosyssm_syscall_actionsm_omasksm_onstacksm_syscallsiglocal_miscsl_sssl_miscsiglocalsl_sisl_ucsiglocalxsi__paddingsc__xsisc_sfmsc_argssxslsc_ctxtsigcontextP_ALLP_CIDP_GIDP_UIDP_SIDP_PGIDP_PIDidtype_tw_Stopvalw_Stopsigw_padw_Sw_Termsigw_Coredumpw_Retcodew_Tw_statuswaitkeepcostfordblksuordblksfsmblksusmblkshblkhdhblkssmblksordblksarenamallinfoword4word3word2word1long_double/usr/include/pwd.hpw_audflgpw_audidpw_shellpw_dirpw_gecospw_commentpw_agepw_gidpw_uidpw_passwdpw_namepasswds_passwd/usr/include/errno.h/usr/include/sys/errno.h/usr/include/math.hretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hmajorminorsphdzradiusr_minorr_majorparmispht_majort_minorjsphATCTA$TA(TCTLA@TDA@D,A$( ,xz;k{ z {;k}Ȅ        ;k PPP   PԽPՄ   PP      6XX2 XXX2 XPPP   ýĽŽɽʽPýPӽPP ӽ  ӽPP ӽ  # # [%g% %#G @P $ L0 U H,8D P@Xsphdz ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@sphdz@DS$sphdz $gntt_label $lntt_labelsphdz S$18$sphdzfabssqrtlabsM$2p_erroruntfz.o/ 1074014954 1032 20 100666 7840 ` 1X@ X0d<|G!bk?7 `*@@`J@+` Z _47_ W / 0 0$ 0/+`490@4:4@4K?Y@7?+`49@4:PϊK?YUncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ? `PX!,X 8>(v@D |$$P $ `TX Xl 808xhT`T`0$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)3?/@ X8`8?GOX ` i s ~@@        ! / > K Y g t  Š֠͠ ߠ   !. ;FQ \eksy Š ϠB٠C  :"* 0 7 <CIPW]dkDsA{;   `  d f h ɠjl Ҡm` @o q@s@ޠuw ` {@@}`   ` `   @     *046`?  >GGN V _ jwxp` @    ͠ @ `     xp` @    `@ @ $` *@ 0 6 <H@@O@@T@@@ Y ^ cm x       !" `  @@`     Q  |@    )  " ! %    !"#$%& ="&& '0'P+ ,P.!/04P1"2@3P`3#`3$<X`<'=\P+ P7%8h9x`9&`<'=|`=(>+ ,!-#.'/'0`(1untfz.c<<>>/usr/include/sys/_inttypes.hint8_tuint8_tint16_tuint16_tint32_tuint32_tintfast_tuintfast_tint64_tuint64_tintmax_tuintmax_tintptr_tuintptr_tint_least8_tuint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_least32_tuint_least32_tint_fast32_tuint_fast32_tint_least64_tint_fast64_tuint_least64_tuint_fast64_tptr32_t/usr/include/sys/types.hdev_tino_tmode_tnlink_tfpos32_tfpos64_tfpos_tfsblkcnt32_tfsblkcnt64_tfsblkcnt_toff32_toff64_toff_tfsfilcnt32_tfsfilcnt64_tfsfilcnt_tblkcnt32_tblkcnt64_tblkcnt_tpid_tlwpid_tgid_tuid_ttid_tssize_t__site_t__cnode_ttime_tsize_tclock_tkey_t__ushort__daddr_t__caddr_t__swblk_tcaddr_tid_tuseconds_trlim32_trlim64_trlim_tsite_tu_charu_shortu_intu_longuintushortubit8ubit16ubit32sbit8sbit16sbit32swblk_tdaddr_tcnode_tphysaddr_tpaddr_tpage_tulong_tcnt_tspace_tprot_tcdno_tuse_tr_physadrphysadrval_quadquadspu_tcpu_tlbl_sflbl_sslbl_slbl_splbl_rplabel_tdm_messageaid_tsid_tfd_maskfds_bitsfd_setk_off_tk_rlim_tk_blkcnt_tk_fsfilcnt_tk_fsblkcnt_tdir_off_t/usr/include/stdio.h__fileH__fileL__flag__base__ptr__cntFILE__unused__smbuf__newbase__bufendp_FILEX__va_listva_list/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hfactorsuntfzfactoroutunitinunitA$A<A<($,/PP0 /2UU2U39< <39=8UU2U 93<="#K,7% %MM# @` $  0 Q  ,@4untfz ccom options = -g -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! -AeHPC HP92453-01 A.10.32@untfz@DS$untfz $gntt_label $lntt_labeluntfz S$12$untfzM$2p_errorgctp.o/ 1074014958 1032 20 100666 14448 ` 1 8p@ l 5X-:6 HG!Jk?/,/-ok=)k=1k=9k=Ak=Ik=Qk=Yk=ak=ik=qk=yk=k=k=k=7)7 6K<)7PK<14K146Z@5X |@I? +``Ir4* _ V 4=I 4. _ z r+`@ W 495 = 4?.$/%0 0$ 'ҧ_.$@4H>?I?K=+`@43J 'z42H_ Z'Z4< ?'B':+` X  4:`5 S 4?.$/%0 0$ &_.$MI?=@=@ =@%`"67=.0+`4*0N0& T 47>16Z@5X |I?0 Hb@&Z7>!.-.0N "h0N I9+``4"48Y 47+`@4I0I  I0Iq 47I0-   ] ._"7I0I:B!7>5 7>4?/$"_.$7>0H//Iw -0 0$  V7= U 6>47 Y'I.00N/Iq db./@K=+`Iy4+I5k?k?k?@k?Hs`$rI?$7>a.A .Q "hH+`@4,4+ K= W43+`4HH p 47`HKQ r H-  I ) ."7HHB!5 @7>4?/$_.$7>0H-1- -0 0$ #-1-- 7>+`K=4-0HJHk?k?k?K=@k?hHgK=+`H4/0K5k?k?k?K=@k?Hg#H#7>a-,-,KQ 7>AK>1HK> 1HK=K=k?k?7: |@@x47>a@.a-17>a@/- @@4k?7>a7=+`.400.4 --pk?K>K> K=K=7 |( P@hD>( h@hP>(R@pkl` $$l $| $@ $#8(d("$`$&<h&<h,-H$TEXT$ $PRIVATE$$DEBUG$$CODE$$LIT$$DATA$ $SHORTDATA$$BSS$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)6?`@  $(.` 4@ : @ F R@@Y@@ ^@@@ c  h mw      " $   `d   i؀ `d    h@`d    f` @@`d z 7P!`d  %  5'`d  +  4 -`d  1  23` 7@@`d z;9 0=@ A `d  DC  F@ J `d  ML   O` S  UQ  "^ 'a_ ,db 1ge :jh@ B mk J pn R sq@ Y vt a yw g|z k} q u }@   @ A2@A3@A1@A5@A6@A# A* A A A+ ` @@@8   #+-3 5 6; A 8 MV] a € b ɀ eg j Ӏmv ݀} Z: "&&%FY0FZP^opqstu|P}~P P `$`~,4DD`H\hpPPP ``$`,PP0l`` $44P<`pPP$0``<h` pP  | ` BP !"#$#$%P&'(')*(+,P12<3@`35H`5989`<BPCDE`EPSTXPPP``PP``` PPP```P,,`P4HH`PՀPX`׀c\`cd\P^PPP``Plp`x`P``c`cdP^P `c`cdP^PP&P,-.0`.`5P:;@<H`<`<cL`cdLP^HPPPIJK`Kc`cdP^UVXY[]^,`0a@bLcT`cdT`d#''&`'gctp.c<<>>/usr/include/math.hword4word3word2word1long_doubleretvalarg2arg1nametypeexceptionfp_controlfp_exceptFP_RMFP_RPFP_RNFP_RZfp_rndgctp_prototypes.hcproj_prototypes.hiterinpjindatinznpdinoutpjoutdatoutznpdoutfor_transinv_transNADUTgctpiflgfn83fn27outdatumoutunitoutparmoutzoneoutsysoutcoorpfilejprefileiprindatuminunitinparminzoneinsysincoorxyfactorlonlatijininit_flagoutinit_flagunitdummyA`HAPH ATH AXHCHLCHHCHDCH@CHK>K>K>K>yK>qK>iK>aK>YK>QK>IK>AK>9K>1k?k?k?k?k?yk?qk?ik?ak?Yk?Qk?Ik?Ak?9@k?1K>K?!K?K?K? @O? `PX!,5>((@8$$D5$T$`6X$Xl>l|x?@@G DT$TEXT$ $PRIVATE$$DEBUG$$CODE$$DATA$$HEADER$$GNTT$$LNTT$$SLT$$VT$ $SRC_CTXT$$RANGE$$EXPR$@)9='@ X@ Q:  #( -  2 @ :  B  J @ Q  Y  _! c$" i'% m*( u-+@ |0. 31 64@ 97 <   0P<`=`>`?br_gctp.c<<>>gctp_iflgfn83fn27outunitoutparmoutzoneoutsysoutcoorpfilejprefileiprindatuminunitinparminzoneinsysincoorAAAACLCHCDC@C / 1074016648 0 0 0 2416 ` %%DDee44DDdddd*d*dIIjj}}44TT:D:DNNbtbt}}TTddTT55HH\\rrTT(D(D?T?TXXss$$  111jj-4-4NNt$t$.T.TCdCdCdCdCdtllllllllllllllllllll44444444444444444  " 3 `Dalberforintalberforalberinvintalberinvalconforintalconforalconinvintalconinvazimforintazimforaziminvintaziminvbceaforintbceaforbceainvintbceainvceaforintceaforceainvintceainveqconforinteqconforeqconinvinteqconinvequiforintequiforequiinvintequiinvgnomforintgnomforgnominvintgnominvgoodforintgoodforgoodinvintgoodinvgvnspforintgvnspforgvnspinvintgvnspinvhamforinthamforhaminvinthaminvimolwforintimolwforimolwinvintimolwinvlamazforintlamazforlamazinvintlamazinvlamccforintlamccforlamccinvintlamccinvmerforintmerformerinvintmerinvmillforintmillformillinvintmillinvmolwforintmolwformolwinvintmolwinvobleqforintobleqforobleqinvintobleqinvomerforintomerforomerinvintomerinvorthforintorthfororthinvintorthinvpolyforintpolyforpolyinvintpolyinvpsforintpsforpsinvintpsinvrobforintrobforrobinvintrobinvsinforintsinforsininvintsininvsomforintgsat_ratiosomforsominvintsominvsterforintsterforsterinvintsterinvstplnforintstplnforstplninvintstplninvtmforinttmfortminvinttminvutmforintutmforutminvintutminvvandgforintvandgforvandginvintvandginvwivforintwivforwivinvintwivinvwviiforintwviiforwviiinvintwviiinvisinusforinitIsin_for_freeIsin_for_initisinusforIsin_fwdisinusinvinitIsin_inv_freeIsin_inv_initisinusinvIsin_invfor_initinv_inittsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zonep_errorinitclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblankpakszsphdzuntfzgctpgctp_alberfor.o/ 1074016599 1032 20 100644 7060 ` ELF "4( '/7=CJR[elt $}#6J.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataalberforintp_errortsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lonsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:alberfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'P`X<$!!!pxפ8ף@ע0נסF!F ׁF!<E $$ $P׬p׫x׉׊F*JC׆קרF(9F'1ץF )D׬'' ׭ ׌׭׮ h(׌׭׮ h0׬'' ׌׭׮ h8׌׭׮ h@׬'' ׌׭׮ hHׯװF0{F {׎F/p<Eױ(ײ(F2Bײ8׳8F3F2Aײ@׳0F3F2C(׳ (׽(׿(F?B׿0׀(F F?@וח׹Hכ(F;BF9F F7Bח(F7C $ ׌׍ ׬׭ ׌0 ׬ ׌8׍@ PPߢP߼`߿X''0(<$!!!@HT\׬H'' ׌׭׮ 8׎׏װב(F1F0{F {F/s׏(F/s׬@׍0F-c 8ג(F ׬  ד8׵F BF5TS׬  ח@י ׻F F;AF9\w%߼0߿('`=|׽?Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREAb       $ ( , 0 4 8 < @ J N R V Z   tx|@@%%%4 %T%l% %% %PP % % % %%%,,,000X%p %%%%<DL`   $0 P \h |   $4HTX\dx      T `l      xxalberfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c alberfor.c(alberforint| )r_maj@*r_minH+lat1P,lat2X-lon0`.lat0h/false_eastp0false_northx2sin_po~2cos_po~3con~4es~4 temp~5ms1~6ms27qs08qs19qs2nalberfor| DHolon`plathq xtr y|tsin_phitcos_phiuqsvtheta@wrh1doubler_majorr_minorce3 rh !ns0("lon_center0#false_easting8$false_northing@int /ecs/hdfeos/gctp/src/usr/includealberfor.cɿstdio.hostandards.hDsgidefs.h7getopt.hˍ 0 1)$$,-%,-%-0E,  !   $,844=% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ AAA@ @$ $ A`A A@D @D+alberforintalberforvr_majorr_minorce3rhns0*lon_centerCfalse_easting_false_northing$(LP&?[x4 Dq^)$@D* H00 6 j>p! bP d f  q {p Hppppgpppc p/pz , 4  T% 8 L `p alberinv.o/ 1074016599 1032 20 100644 7876 ` ELF4 "4( '/7=CJR[elt } +>R.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataalberinvintp_errortsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberinvatan2logphi1zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:alberinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'PXP<$!!!pxפ@ףHע8נסF!F ׁF!<E $$ $H׬p׫x׉׊F*JC׆קרF(9F'1 ׅ F )D׬'' ׭׌׭׮ ` ׌׭׮ `(׬'' ׌׭׮ `0׌׭׮ `8׬'' ׌׭׮ `@ׯװF0{F {׎F/p<Eױ ײ F2Bײ0׳0F3F2Aײ8׳(F3F2C0׳0׽ ׿ F?B׿(׀0F F?@וח׹@כ0F;BF9F F7Bח0F7C($ ׌׍ ׬׭ ׌8 ׬ ׌@׍H HHߢH߼X߿P''80<$!!!PXdlץP׆@F&)APׂH׃(פXF$F#Xׁ0DF!>EרPשPF)BשXתXF*JBF)BF Bׇ ׫P׬PF,Z׬X׭XF-cF,ZF ZF Z׊Dx׭DpF.h2E ׬P׭F-c׭X׮F.kB @׳ו0F5וF5אױײF2BF1ב0F1 ׏׎F/p>ED׌׍F-c׍׎F.k@F-c אבג F2Aג F2BF1BגF2CF1ׯF {װ F F0{F {׎F/p<E׌׭ ' @l`@(1׵ DF5>Eח(lי0l׌׭ ' @l(׌8׭׎0F.kCF-c @d@((ߢ(߼8߿0'p=|׽???!TD-!TD-Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREAb       $ ( , 0 4 8 < @ J N R V Z   tx|HH%%%4 %T%l% %% %XX % % % %%%,,,0008%%(%%%<DL`   $0 P \h |   $4HTX\dx      P\`t4 LT`t $ |   xxalberinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c alberinv.c,alberinvintx -r_maj@.r_minH/lat1P0lat2X1lon0`2lat0h3false_eastp4false_northx6sin_po~6cos_po~7con~8temp~9ms1~:ms2;qs0<qs1~=qs2ralberinvx 0Hsx`tyhu lontv lat|xrh1yqszcon{theta|flagdoubler_major r_minor!c"e3#es $rh(%ns00&lon_center8'false_easting@(false_northingHintlong( /ecs/hdfeos/gctp/src/usr/includealberinv.cʿ*stdio.hostandards.hDsgidefs.h7getopt.hˍ 4 1)$$,-%,-%-0E,  !   $)04(8$,%`90  (!u09% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ AAA@ @$  ApAA@ @0+alberinvintalberinv}r_majorr_minorce3esrhns0&lon_center?false_easting[false_northing$(LP";Wt4  Tqf+)$`0* P00 86 r>p! :bP  fD q  {p Hppp,pgppp p/p T \  |%  8 L $`p ,alconfor.o/ 1074016600 1032 20 100644 8436 ` ELF@ "4(  ,,048=ELT[bj0s~$8.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodataalconforintsinpowtanatantsincosptitleradius2cenloncenlatoffsetpalconforadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:alconfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $' <%.!08@H׳0ײ8ױ@ װH(׏׎$ H׍׬F c@׋׊ j׉(I׈0(ׇ8׆@D(ׄP׃Xׂ`bׁhA׀p ׌ ׎@F s׌x׭F-c׭׎xF.k@F-c׍@׎F.kB (׌׍F-c׍F-c ׬(F c ׍F-B׎F.k@׬'0'8 $ ׌׍ ׌ ׌ ׌ ׍( %߼ ߿'P'0<$!!!į׬׍F-c ׬'' ׬ ׎@F s׌x׭F-c׭׎xF.k@F-c׍@׎F.kB ׬׍F-c׍F-c ׬F c ׍F-B׎F.k@ ׬ '('0 ץצ0ׇ8F'1F&)Bצ(ׇ0F'1F&)@8ׂף8ׄxF$F#@׿נ0ס@F!F H׹@׻(ם8F=׽׿0׀0F F?BF=F;BP׵H׷HF7@XײH׳HF3׳P׵PF5F3@%H H @!`$H@8!h$H$80!p$H$0(!Ԯx$HC*@8׫p׬`׭XF-cF,ZרxשhתXF*JBF)BH*H* %Hh# h`!Փ׵@׷`F7BF5p%kH`# `lX!pױ@ײhF2BF1xׯ`׮h%Hh*ת@׫`F+RF Rpר@שhF)BF Bxק`צhׁ ׂףpפHץ`F%!ץPצhF&)BF%!F$F#F"@!י(כ׽x׿HנhF נPס`F!F F?@F=F;@%߼߿'9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO???!TD-@!TD-ALASKA CONFORMALX       $ ( , 6 : > B F J N   x|  ((00@@HHPPXX``hh %L%p % % % % %%% %<<<@@@h% %%% % %< %8848T8X88 8,4<DHLPT\`pt  0<@H X\dl        \d       8 L\lt <\\ xxalconfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c alconfor.c1alconforint , B2r_maj`3r_minh4false_eastp5false_northx7es8chi@9esphigalconfor 04Hhlon`ilathj xtk y|ndlon~osinlon~ocoslon~psinphi~pcosphi~qesphi~rg~ss~txp~uypvarwaixbrybizarn{ain@|chi~}r~jdouble"r_major#r_minor$lon_center%lat_center&false_easting 'false_northing(8(acoefs8)bcoef8*sin_p260+cos_p268,e@long- nHint /ecs/hdfeos/gctp/src/usr/includealconfor.cʿ'stdio.hostandards.hDsgidefs.h7getopt.hˍ 5  (    $($4$$ ,((,,!$$!@@w  HI% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A$, APA A@ @$0 AA A@ @4+alconforintBalconforr_majorr_minorlon_center!lat_center:false_eastingVfalse_northingacoefbcoefsin_p26cos_p26en$(LPY]a6Ro  4 4vL)$ 4* XL0 Xp50 X; Cp! XU d k $ v p Hpp0pIp`ypppI pi/p @ H  h* = Q  ep (alconinv.o/ 1074016600 1032 20 100644 10260 ` ELF#X "4(  ,,048=ELT[bj0s{%8L.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodataalconinvintsinpowtanatantsincosptitleradius2cenloncenlatoffsetpalconinvp_errorasinzatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:alconinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $' <%.!08@H׳0ײ8ױ@ װH(׏׎$ H׍׬F c@׋׊ j׉(I׈0(ׇ8׆@D(ׄP׃Xׂ`bׁhA׀p ׌ ׎@F s׌x׭F-c׭׎xF.k@F-c׍@׎F.kB (׌׍F-c׍F-c ׬(F c ׍F-B׎F.k@׬'0'8 $ ׌׍ ׌ ׌ ׌ ׍( %߼ ߿'P' <$!!!08DLפ0ׅ F%!ׅF%!0ע8׃(F#׃F#8ס0נ8װױF1׮ׯF/sׯװF0{F/s %H h`!Ս(%kH `lX!l0%JH%k XKP!K8%)H%J P*H!*@HDHFJaת(F*JBHHD@FB!ש0F)BPH$D8F9ר8F(9XH$D0F1ק@F'1`$hhHC*@p׷8׹׻(F;BF9pײ@׳׵0F5F3xhHh*W$Hh(#( !ԍ׮ ׯ(F/sF.kA8$cHh # d!j׫ ׬0F,ZF+R@שp(רx0ץXצקHF'1F&)@ע`ףפPF$F#Hh"#DFa'Hh"#!F"Bע ףHF#F"AXHh#DF!%Hh#x!F!ס עPF"BF!`׿H׽Ph$hhH(*ױ ײ(F2BF G8ׯ װ0F0{F {@׮p(׭x0ת8׫(׬F,Z׬0׭F-cF,ZF+R׫0F+Rק@ר0שF)Bש(תF*JBF)BF(9ר8F(9פXץHצF&)BצPקF'1F&)AF%!סPעPףF#ףHפF$F#F"@׿נF נסF!F ׻׽F=׽׿F?BF=F ׽F=׷׹F9׹׻F;BF9F ׹F9׳׵F5ױײF2@װF ױF EF1ȏ%)) $$ $׵דF5<E׮ׯF/sׯװF0{F/sF s׬׍F-c אF0׬''菙 גDױF EגF2>EדLx׌8׭׮F.kBF-c׭F-c׭׎0F.kBF-c (ׯ׬ ׎@F s׬׍xF-c׍x׮F.kAF-c׍@׎F.kB (׬׍F-c׍F-c ׬(F c ׏F/אF0{װF0{׭׮F.k@%)) $$ $&ױF EאF1<E׮L׬׭F-c׭׮׏8F/sF.kB׮ׯא0F0{F/sF.kA (׌F c Dߢ߼ ߿'P9#?FR5?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO???!TD-@!TD-=|׽ALASKA CONFORMALToo many iterations in inversealcon-invh       $ ( , 8 < @ D H L P T X \ `   x|  ((00@@HHPPXX``hh %L%p % % % % %%% %<<<@@@88$8(8 P8T8,808HLP8T8\% % %\%%% % % H L P8 T8 \% % %,4<DHLPT\`pt  0<@H X\dl        \dt| ,D`| $X4X x  ,LX |      X |       xxalconinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c alconinv.c1alconinvint, B2r_maj`3r_minh4false_eastp5false_northx7es8chi@9esphifalconinv0 Hgx`hyhi lontj lat|mesphinr}os}pbr}qbi}rai}sar}tci~ucr}vdi~wdr~xarn~yain~zcrn~{cin~|fxyr~}fxyi~~fpxyr~fpxyi~xp} yp}den~dxp~dyp~ds~zcoszsinzrhchidphiphij~nn}double"r_major#r_minor$lon_center%lat_center&false_easting 'false_northing(8f(acoefY8)bcoefz8*sin_p260+cos_p268,e@long- nHint^ /ecs/hdfeos/gctp/src/usr/includealconinv.cʿ1stdio.hostandards.hDsgidefs.h7getopt.hˍ 5  (    %$$,((,,((,-!$$ !@@$$\\q <<44,88$(O800$)L((v% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A$, APA A@ @$0 AA A@ @ +alconinvintBalconinvr_majorr_minorlon_centerlat_center false_easting B   d%lpx%%% % %   %4%D %%PP%,%@%\%08@HPX\` t       0 @ Td  ( < X dp=|׽?@ !TD- xxazimfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c azimfor.c&azimforint *'r_maj)P(center_lon)X)center_lat)`*false_east)h+false_north)pEazimforH)Flon)`Glat)hH xtI y|Ksinphi)~Kcosphi)~Ldlon)~Mcoslon)~Nksp)~Og)~Pcon)~Qz)PORmess~doubler_major)lon_center)lat_origin)false_northing) false_easting) !sin_p12)("cos_p12)0int)char /ecs/hdfeos/gctp/src/usr/includeazimfor.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ +      ($ 45),${  )DQ% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/ $> I 3 @ @A$ A@AA@r @$ AA A@ @)azimforint*azimforu3r_majorIlon_centerblat_origin{false_northingfalse_eastingsin_p12cos_p12$(LP@DHE^w 4 4qS($ * 80 Y8p! iJJ x` , k @u0 ({p  Hp `p xpppUwppp< p\-py    ,x% 8 L `p aziminv.o/ 1074016601 1032 20 100644 6484 ` ELF "4(  (/6@GOW ]ekq|&:.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataaziminvinttsincosptitleradiuscenlonmeroriginoffsetpaziminv.lit8p_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:aziminv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (0פףע ס0נ( ׬ '('0 $ ׌ ׌ ׌ ׌ ׍ %߼߿'@'80<$!!!PXdlקP׈ F(9PץX׆F&)AXףPפPF$פXץXF%!F$F ס׀ׂF"F!<E $$ $}(ש׊F*JC׬'' ׌d׫F Z׌F,X>E׍l(z׌0׭X׮F.kBF-c׭F-c׭׎(F.kBF-c @lאF בF1 ׯ F {אF0x>E,גDF2>E׬P׭XF kG @׌F c Hd (D׬PF c׭X @׌F c Hd@(2ll ׮׏(F {F/s ׭ F kE׎F.h<E װPF בF1<E(׌0׭P׮F.kBF-c׭׮ F.kB @׌F c Hd((ߢ(߼8߿0'pAZIMUTHAL EQUIDISTANTInput data errorazim-invR       & * . 2 6 : > B F J   d%lpx%%% % %  lpt0x0 %%0%%%%%,%%%08@HPX\` t      PT |    , DL ` t    ( 8P l   @ !TD-=|׽!TD- xxaziminv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c aziminv.c&aziminvint *'r_majP(center_lonX)center_lat`*false_easth+false_northpEaziminvHFx`GyhH lontI lat|KrhLzMsinzM coszNcondoubler_majorlon_centerlat_originfalse_northing false_easting !sin_p12("cos_p120int /ecs/hdfeos/gctp/src/usr/includeaziminv.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ +     0-($)P ))HH4D]% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@r @$ ApAA@ @)aziminvint*aziminvur_majorlon_centerlat_origin*false_northingGfalse_eastingcsin_p12ycos_p12$(LP@DH &C_u4 $qN($* 80 98p! IRJ ` $ k u0H {p hHpppgp^gppp5 pU-py    $x% 8 L `p bceafor.o/ 1074016602 1032 20 100644 6356 ` ELFD "4( &*.5=GRZbmq}+.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatabceaforintcossinptitleradius2cenlonmertrue_scaleoffsetpbceaforadjust_lonlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:bceafor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08@H׭ ׬(׫0 ת8(שH0ר@8׆ׇF'1׃פץF%!F$ׂF ׀ׁF!<E$XX׌( @׌( H׎@׏אHבגHF2BF1F0{F {F/sP$ ׌׍ ׌  ׌( ׌8׍0 %߼߿'P' <$!!!08DL׬0׍ F-c ׬8 X@ב8ג@׳וF5F3F2@D׎0ׯאF0{א@F0{F/sLn8׌׭׎F.kBF-c׭׎F.kB׎F.k@F-c יכF;A׻ם׿סׂF"BF!F?AF=םןׁF!F?CF=BF=F;Bג8׳וחPF7BF5F3D׏0װבF1בPגF2BF1F0{L%߼ ߿'P?>h@Cylinderical Equal Area:       * . 2   %% %4 %D %T %h %  %%t%4<DLT\`dp   (,0 <@ LP \`d    (DL\dp | xxbceafor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c bceafor.c2bceaforint L3r_majP4r_minX5center_lon`6center_lath7false_eastp8false_northx:tempcbceafor8Hdlon`elathf xtg y|idlonjsinphikq@double#r_major$r_minor%e&es'lon_center (lat_truesc()false_northing0*false_easting8+cosphi1@,sinphi1H-kzPlong. indXint /ecs/hdfeos/gctp/src/usr/includebceafor.cʿ"stdio.hostandards.hDsgidefs.h7getopt.hˍ 8 $%      (!0 #0 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ APAA@] @$ APA A@e @8)bceaforintLbceaforr_majorr_minore"es3lon_centerLlat_truescefalse_northingfalse_eastingcosphi1sinphi1kzind$(LPbfj/Ha~4 qu?($8* \00 6 0>p! H:P X f   q  {p  Hp hp pp}gpppT pt-p D L  l%  8 L $`p ,bceainv.o/ 1074016602 1032 20 100644 7140 ` ELFT "4( &*.29AKV^ fkv 0.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatabceainvintlogcossinptitleradius2cenlonmertrue_scaleoffsetpbceainvasinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:bceainv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08@Hױ װ(ׯ00׮88׭H@׬@H׊׋F+RׇרשF)BF(9׆F 1ׅׄF%! ׂ׃ F#(׀ׁF!<E$pגhp׌׍F-c׍׎F.k@F-c ׎׏F/s׏אבF1F0{אבגF2BF1F0F0{F/sh׌8 P׌8 XאPבגXדוXF5F3F2AF DF1`$ ׌׍ ׌0 ׌8 ׌H׍@ %߼߿'P'<$B"!08DLע0׃HF#0נ8ׁ@F!8p ׬8׍PF-c׍F-c L`׌0׭0׎׏PF/sF.kCF-c DO׌`׭8׎F.kBF-c׍׎hF.kBF-c ׬׍F-c ׬׍F-c (׬׍ F-c װגד(F3ד ו0F5F3ד(ו8F5F3ױ F2BF1ג ד@F3ד(וHF5F3ױ(F2BF1ב(גPF2BF1BF1L׌0׭0׎׏`F/sF.kCF-c D%߼߿'P?>h@@@@? ` `?B*B*?[[?U?-mCylinderical Equal AreaN       $ . 2 6 : > B F   %\%p% % % % % %,,,000%%%%8%T%%4<DLT\`dp  $048PTX dhl x|     L\hx    ,4 HP `dlp|  xxbceainv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c bceainv.c5bceainvint  L6r_majP7r_minX8center_lon`9center_lath:false_eastp;false_northx=tempkbceainv  (Hlx`myhn lonto lat|q betadouble#r_major$r_minor%e&es'e_p4 (e_p6()lon_center0*lat_truesc8+false_northing@,false_eastingH-cosphi1P.sinphi1X/kz`0qphlong1 indpint /ecs/hdfeos/gctp/src/usr/includebceainv.cʿ%stdio.hostandards.hDsgidefs.h7getopt.hˍ ; $%      5A4 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ APAA@ @$  APAA@} @()bceainvintLbceainvr_majorr_minoreese_p4&e_p69lon_centerRlat_truesckfalse_northingfalse_eastingcosphi1sinphi1kzqpind$(LPbfj"5Ng4 qD($(* (t00 (X6 >p! NP  f h\ q {p Hp p8pTpTgppp+ pK-px 4 <  \% 8 $L ,`p 4 ceafor.o/ 1074016603 1032 20 100644 6340 ` ELF< "4( %)-4<FQY`ko{).symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataceaforintcossinptitleradius2cenlonmertrue_scaleoffsetpceaforadjust_lonlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:ceafor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08@H׭ ׬(׫0 ת8(שH0ר@8׆ׇF'1׃פץF%!F$ׂF ׀ׁF!<E$XX׌( @׌( H׎@׏אHבגHF2BF1F0{F {F/sP$ ׌׍ ׌  ׌( ׌8׍0 %߼߿'P' <$!!!08DL׬0׍ F-c ׬8 X@ב8ג@׳וF5F3F2@D׎0ׯאF0{א@F0{F/sLn8׌׭׎F.kBF-c׭׎F.kB׎F.k@F-c יכF;A׻ם׿סׂF"BF!F?AF=םןׁF!F?CF=BF=F;Bג8׳וחPF7BF5F3D׏0װבF1בPגF2BF1F0{L%߼ ߿'P?>h@Cylinderical Equal Area:       * . 2   %% %4 %D %T %h %  %%t%4<DLT\`dp   (,0 <@ LP \`d    (DL\dp | xxceafor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c ceafor.c1ceaforint I2r_majP3r_minX4center_lon`5center_lath6false_eastp7false_northx9tempbceafor8Hclon`dlathe xtf y|hdlonisinphijq@double"r_major#r_minor$e%es&lon_center 'lat_truesc((false_northing0)false_easting8*cosphi1@+sinphi1H,kzPlong- indXint /ecs/hdfeos/gctp/src/usr/includeceafor.cͿ"stdio.hostandards.hDsgidefs.h7getopt.hˍ 7 $%      (!0 #0 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ APAA@] @$ APA A@e @8'ceaforintIceaforr_majorr_minorees/lon_centerHlat_truescafalse_northing~false_eastingcosphi1sinphi1kzind$(LP^bf +D]z4 qu='$8* \00 6 0>p! H:P X f   q  {p  Hp hp ppxgpppO po+p < D  d% 8 L `p $ceainv.o/ 1074016603 1032 20 100644 7108 ` ELF8 "4( %)-18@JU] dit..symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataceainvintlogcossinptitleradius2cenlonmertrue_scaleoffsetpceainvasinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:ceainv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08@Hױ װ(ׯ00׮88׭H@׬@H׊׋F+RׇרשF)BF(9׆F 1ׅׄF%! ׂ׃ F#(׀ׁF!<E$pגhp׌׍F-c׍׎F.k@F-c ׎׏F/s׏אבF1F0{אבגF2BF1F0F0{F/sh׌8 P׌8 XאPבגXדוXF5F3F2AF DF1`$ ׌׍ ׌0 ׌8 ׌H׍@ %߼߿'P'<$B"!08DLע0׃HF#0נ8ׁ@F!8p ׬8׍PF-c׍F-c L`׌0׭0׎׏PF/sF.kCF-c DO׌`׭8׎F.kBF-c׍׎hF.kBF-c ׬׍F-c ׬׍F-c (׬׍ F-c װגד(F3ד ו0F5F3ד(ו8F5F3ױ F2BF1ג ד@F3ד(וHF5F3ױ(F2BF1ב(גPF2BF1BF1L׌0׭0׎׏`F/sF.kCF-c D%߼߿'P?>h@@@@? ` `?B*B*?[[?U?-mCylinderical Equal AreaN       $ . 2 6 : > B F   %\%p% % % % % %,,,000%%%%8%T%%4<DLT\`dp  $048PTX dhl x|     L\hx    ,4 HP `dlp|  xxceainv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c ceainv.c4ceainvint I5r_majP6r_minX7center_lon`8center_lath9false_eastp:false_northx<tempiceainv (Hjx`kyhl lontm lat|o betadouble"r_major#r_minor$e%es&e_p4 'e_p6((lon_center0)lat_truesc8*false_northing@+false_eastingH,cosphi1P-sinphi1X.kz`/qphlong0 indpint /ecs/hdfeos/gctp/src/usr/includeceainv.cο%stdio.hostandards.hDsgidefs.h7getopt.hˍ : $%      5A4 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ APAA@ @$  APAA@} @('ceainvintIceainvr_majorr_minoreese_p4"e_p65lon_centerNlat_truescgfalse_northingfalse_eastingcosphi1sinphi1kzqpind$(LP^bf 1Jc4 qB'$(* t00 X6 p>p! NP  f X\ q {p Hpp(p@p;gppp p2+p]    @% 8 L `p  eqconfor.o/ 1074016604 1032 20 100644 7972 ` ELF "4( ',16;CINV]enx .>Qe.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataeqconforinte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconforadjust_lonsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:eqconfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'`H@<$!!!`hpxת`שhרקPצXׅׄF%!ׁעףF#F"A@׀@F 8׌@ P׌@ P ׌@ P(׌@ P0׬p'' ׌8׭׮ P׌׍ ׎(׏0װp P @D׫p׬xF,ZF Z׌F,X<E $$ $Q8׬x'' ׌8׭׮ P(׌׍ ׎(׏0װx P0׮pׯxF/sF s׍F.h>E װױ(F1ױ0ײ F2AF1`ײ`׳`׵ ׷י`F9F7@h׌׍ ׎(׏0װ PHכםhןHF?AF=p$ ׌׍ ׬p׭x ׌ ׬ ׌X׍P $ ׌׍ ׬p ׌ ׬ ׌X׍P 88ߢ8߼H߿@'' <$!!!08DL׌׍ ׎(׏0װ8 (׎׏hװF0{F/s׬0׍F-c (ב`F B׬ גX׳F F3DR׬ וPחpF7@׷F F7ALu%߼ ߿'P?=|׽Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONIC       $ ( , 0 4 8 < @ D H L P T X \ ` d n r v z   %%% % % %D %00 % % % % %@@%% %%,%@%P@T@\%p%%%%% %X%x%%<DLT\`dp       ,048@ p     P`p|     ( 48< X dhl |      04LT dt   xxeqconfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c eqconfor.c+eqconforint ,r_maju@-r_minuH.lat1uP/lat2uX0center_lonu`1center_latuh2false_eastup3false_northux4mode6tempu~7sinphiu~7cosphiu~8ms1u~8 ms2u9ml1u9 ml2ueqconforHulonu`latuh xt y|mluthetau@rh1udoubler_majorur_minorulon_centerue0ue1u e2u(e3u0 eu8 esu@!ml0uH"false_northinguP#false_eastinguX$nsu`%guh&rhupintlongu  /ecs/hdfeos/gctp/src/usr/includeeqconfor.cʿ!stdio.hostandards.hDsgidefs.h7getopt.hˍ 4$$$$%$, 1($,405}$4     4$44=% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ AAA@ @$ APA A@{ @+eqconforinteqconforr_majorr_minorlon_centere0e1e2e3ees)ml0;false_northingXfalse_eastingtnsgrh$(LP%7Tp4` qy~)$* x00 6 R>p! P t f \@ q {p Hppppgp$pp p/p    % h8 xL `p eqconinv.o/ 1074016604 1032 20 100644 8196 ` ELF "4( ',16;CINV]enx!2BUi.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.lit8.rodataeqconinvinte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconinvatan2phi3zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:eqconinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'`H@<$!!!`hpxת`שhרקPצXׅׄF%!ׁעףF#F"A@׀@F 8׌@ P׌@ P ׌@ P(׌@ P0׬p'' ׌8׭׮ P׌׍ ׎(׏0װp P @D׫p׬xF,ZF Z׌F,X<E $$ $Q8׬x'' ׌8׭׮ P(׌׍ ׎(׏0װx P0׮pׯxF/sF s׍F.h>E װױ(F1ױ0ײ F2AF1`ײ`׳`׵ ׷י`F9F7@h׌׍ ׎(׏0װ PHכםhןHF?AF=p$ ׌׍ ׬p׭x ׌ ׬ ׌X׍P $ ׌׍ ׬p ׌ ׬ ׌X׍P 88ߢ8߼H߿@''80<$!!!PXdlץP׆XF&)APׂP׃pפXF$F#Xׁ`DF!>EרPשPF)BשXתXF*JBF)BF Bׇ ׫P׬PF,Z׬X׭XF-cF,ZF ZF Z׊Dx׭DpF.h2E ׬P׭F-c׭X׮F.kB @׎hׯאF0{F/s ׬ ׍׎ ׏(א0' @l@׌׭׎`F.kCF-c @d`(((ߢ(߼8߿0'p?=|׽Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONIC~       $ ( , 0 4 8 < @ D H L P T X \ ` d n r v   %%% % % %D %00 % % % % %@@%% %%,%@%P@T@\%p%%%%%%<%h%<DLT\`dp       ,048@ p     P`p|     ( 48< X dhl |     4t $(,08 PXd  xxeqconinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c eqconinv.c+eqconinvint ,r_maj@-r_minH.lat1P/lat2X0center_lon`1center_lath2false_eastp3false_northx4mode6temp~7sinphi~7cosphi~8ms1~8 ms29ml19 ml2eqconinvHx`yh lont lat|rh1mlconthetaflagdoubler_majorr_minorlon_centere0e1 e2(e30 e8 es@!ml0H"false_northingP#false_eastingX$ns`%gh&rhpintlong$ /ecs/hdfeos/gctp/src/usr/includeeqconinv.cʿ#stdio.hostandards.hDsgidefs.h7getopt.hˍ 4$$$$%$, 1($,405}$4      $)04(8$<9 % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ AAA@ @$ ApAA@s @+eqconinvinteqconinvr_majorr_minorlon_centere0e1e2e3*e:esKml0]false_northingzfalse_eastingnsgrh$(LP&6GYv4` `}q)$* `x00 ` 6 R>p! ~P P f04 q d{p hHppp(pgp7pp p/p    % |8 L equifor.o/ 1074016605 1032 20 100644 4932 ` ELF "4(  '.8?GOZ^jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:equifor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (0פףע ס0נ( $ ׌ ׌ ׌ ׌ ׍ %߼߿'@'<$!!! (4<׬ ׍F-c ׌ ב ײדF3F2F2@4q׎ׯ(אF0{F/s I 3 @ @A$ A@AA@l @$ A@A A@e @x).equiforint$equifor].r_majorlon_centerlat_originfalse_northingfalse_easting$(LP:>B    4 k?,k($x*(08p!(.J X@` k up  PHp p .p p gp pp | p -p a , 4  Th 2 F Zp equiinv.o/ 1074016606 1032 20 100644 5236 ` ELF "4(  '.8?GO U]alx&.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataequiinvintptitleradiuscenlonmeroriginoffsetpequiinv.lit8p_errorcosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:equiinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (0פףע ס0נ( $ ׌ ׌ ׌ ׌ ׍ %߼߿'@'<$c#! (4<צ ׇ F'1 פ(ׅF%!(ע(׃F# 4: ; 9 I I 3 @ @A$ A@AA@l @$ A@A A@| @)equiinvint$equiinv]r_majorlon_centerlat_originfalse_northingfalse_easting$(LP:>B  4 qe:($*(018p!2J  H`T8 k u0 X{p  `Hp p p p gppp p-pa 4 <  \h% 8 L `p gnomfor.o/ 1074016606 1032 20 100644 5684 ` ELF "4(  (/6=DLT_ck qu/.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatagnomforinttsincosptitleradiuscenloncenlatoffsetpgnomforadjust_loncosp_error.lit8sin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gnomfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (0ףעס( נ0(׬ '' $ ׬ ׬ ׬  ׌ ׍( %߼߿'@'@8<$!!!PXdl׬P׍F-c ׬X'' ׬ װבF1ױײדF3F2BF1 ׮ DxF/p>E $$ $0&ג׳ F3(׬ כ ׽׿(ׁF!F?BF=BF=dו(׷(יF9׹כF;B׻׽ןF?BF=F;AF9F7@l00ߢ0߼@߿8'pGNOMONICPoint projects into infinitygnomfor-conv>       & * . 2 6   \%dhp%%% % %   %4%D %00%%08@HPTX l |     0 @ Td  ,? xxgnomfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c gnomfor.c+gnomforint ',rP-center_longX.center_lat`/false_easth0false_northpFgnomforlHGlon`HlathI xtJ y|MdlonNsinphiNcosphiOcoslonPgQkspdouble"lon_center#R$sin_p13%cos_p13&false_easting 'false_northing(int /ecs/hdfeos/gctp/src/usr/includegnomfor.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ 0       ($ 4)(D% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@p @$ ApA A@^ @l)gnomforint'gnomfor`lon_centerR!sin_p137cos_p13Mfalse_eastingifalse_northing$(LP=AE 3Ie 4 qC($l*`00`=8p!>J `` <\ k u0 {p  Hp p pp\gppp3 pS-pd     p% |8 L `p gnominv.o/ 1074016607 1032 20 100644 6260 ` ELF "4(  (/6=DLTY _ekvz  4.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatagnominvinttsincosptitleradiuscenloncenlatoffsetpgnominvatan.lit8asinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gnominv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (0פףע ס((נ00׬ ''  $ ׬ ׬ ׬  ׌(׍0 %߼߿'@'80<$!!!PXdlײPד(F3PװXב0F1X׮PׯPF/sׯXװXF0{F/sF s׬׍F-c ׬'' חdW׵F EחF7>Eיly(z׌ ׭X׮F.kBF-c׭F-c׭׎F.kBF-c @lאF בF1 ׯ F {אF0x>E,גDF2>E׬P׭XF kG @׌F c Hd(D׬PF c׭X @׌F c Hd(2l ׮׏F {F/s ׭ F kE׎F.h<E װPF בF1<E(׌ ׭P׮F.kBF-c׭׮ F.kB @׌F c Hd((ߢ(߼8߿0'pGNOMONICR       & * . 2 6 : > B F J   d%lpx%%% % %  \ %x%%`%x%%%%p%%08@HPX\` t     PX t     4\ lt     , Ll | =|׽!TD- xxgnominv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c gnominv.c,gnominvint '-rP.center_longX/center_lat`0false_easth1false_northpHgnominvHIx`JyhK lontL lat|OrhPzP sinzPcoszQcondouble"lon_center#lat_center$R%sin_p13&cos_p13 'false_easting((false_northing0int /ecs/hdfeos/gctp/src/usr/includegnominv.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ 1     0($)P ))HH4D% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@r @$ ApAA@ @)gnominvint'gnominvolon_centerlat_centerR!sin_p137cos_p13Mfalse_eastingifalse_northing$(LP=AE 3Ie 4 $qH($* 80 8p! RJ ,` h k `u0 {p  Hp p ppgpppY py-ps  $  Dx% 8 L `p goodfor.o/ 1074016607 1032 20 100644 8052 ` ELF "4(  +29ALPT\amy.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodatagoodforintptitleradiusgoodforadjust_loncossinp_errorsign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:goodfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'< %k+!ת׉I׈(ׇ׆ׅׄ׃ׂbׁ A׀( ן ם(=יכF;BוחF7BגדF3אבF1׎׏F/s׌׍F-cl׊׋F+RJ׈׉F)B(׆ׇ F'1ׅׄ(F%!ׂ׃ F#׀ׁ(F!$ ׬ %߼߿' '@8<$!!!`ht|סh׀0F!>Eע`׃8F#>E$^ץhD F% >Eצ`ׇ8F'0>E$$Iשh׈HF)@>E#ת`׋F+P>E$׬`׍PF-`>E$ ׮`׏XF/p>E$$ !װ`בF1>E$ ײ`דPF3>E$  ׵`חXF7>E$ $ $$$? $" $d$ &׬`$@8!F-c H׬h %J XKP!PױגF2BF1BF1t0׮h׏F/s|׬`%k `lX!mF-c H׮h׬h ׏`F/ $ 4׬ P׬ ׳׵PF5׵F5F וhF5@F5(ױײ(F2@װ(F בpF1<E )2 $$ $0C $ $׻םxF=ח׹hF EF9יpF9<ED׬ F F%) P*H! ע׃ׄF$F#F"BF!t׬h X׬ ׅ׆F&߫XD8F9׈F(9F'1F&)B|E00ߢ0߼@߿8']?R8-hWJ<_R8-@?WJM@5AI?iyWJMiyWJM?WJU@ !TD-?=|׽??!TD-?d)?f;? _GOODE'S HOMOLOSINE EQUAL-AREAIteration failed to convergegoode-forwardD     $ ( , 0 4 8 <   (,48@DLPX \ d(h(p0t0|88@@HHPPXX``hhppxx$(8<LP`dtx%%  ,0L %d %l`p` % %, %@ %  @@ %8 %D`H`% % $0<HT`lx,0@DTXhl|   $tLtH `   ( < ` 4 `d   xxgoodfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c goodfor.c(goodforint  )rpVgoodforHWlon`XlathY x tZ y |\delta_lon]theta^delta_theta_constant`iaregiondouble"R` #lon_center` $feast`intlong| /ecs/hdfeos/gctp/src/usr/includegoodfor.cʿ/stdio.hostandards.hDsgidefs.h7getopt.hˍ )     % # ) # %# %# "# }# %# "# m@P@ X( (x 0\% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A$ A AA@s @$ AAA@A @)goodforintgoodfor-Rlon_centerfeast$(LP  4 vj/($* 0 50 ; hNCp! DU h kd v l@p Hppp*pyp#pp p-p1    <X* = Q ep goodinv.o/ 1074016608 1032 20 100644 9684 ` ELF!$ "4(  +29 (AIMX]bfr~  .symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodatagoodinvintptitleradiusgoodinvp_errorcosadjust_lonsignasinsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:goodinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'< %k+!ת׉I׈(ׇ׆ׅׄ׃ׂbׁ A׀( ן ם(=יכF;BוחF7BגדF3אבF1׎׏F/s׌׍F-cl׊׋F+RJ׈׉F)B(׆ׇ F'1ׅׄ(F%!ׂ׃ F#׀ׁ(F!$ ׬ %߼߿' '0(<$!!!@HT\סH׀ׂ0F"F!>Eף@ׅׄ8F%!F$>E$nקHD0F'0>Eר@׉׊8F*JBF)@>E$$W׬H׋׍HF-ZF,X>E)׮@׏אF0{F/p>E$ױ@גדPF3F2>E$׵@חיXF9F7>E$$ '׻@םןF?BF=>E$ נ@ׁׂPF"BF!>E$ ף@ׅׄXF%!F$>E$ $ צ@%x!F'1@$$$ $C $$ IתH׋F+R\*\ F JE׈`F)@<E $$ $ \F s׏hF/s׭F kE׌pF-`<E\ % H @!װ@בF BF1F0{׬ T  %k `lX!rTR`׬H ׷HDFaכםxF=F;BF9יכF;BF9׵F EדF5<E$ q׬ ׬ F F%x!נ@ׂ׃F#F"BF!F TTջםF=<E$ M׬׍F-c װבF1F0בF1ׯF {׎F/p<E$ 5׬ \ײ@DF3<E וT7F7AחpF7<E׻@DF;<ET]ןF?@ןpF?<ETԀF T`TׂF"<ET׃8F$<E$ $ *Te׆F&(<ETՈׇ8F(8<E$ $T ׊8F*H<ET,׋F,X<E$ $"Tm׎8F.h<ETԐ׏F0x<E$ $TגF2<ET5דF5<E$ $ lTշיF9<ETכPF=<E$ $T׀F <ET"ׁF"<E$ q$dTԣׄF$<ETׅPF&(<E$ [$  TG׈PF(8<ETj׉XF*H<E$ E$ T׌XF,X<ET׍F.h<E$ /$ TOאPF0x<ETrבXF2<E$ $ TוXF5<ETחF9<E$  ߢ ߼0߿('`]?R8-hWJ<_R8-@?WJM@5AI?iyWJMiyWJM?WJU?!TD-!TD-=|׽? _?f;??d) !TG@@ !TD-@ !TGGOODE'S HOMOLOSINE EQUAL-AREAInput data errorgoode-inverse>     $ ( , 0 4   (,48@DLPX \ d(h(p0t0|88@@HHPPXX``hhppxx$(8<LP`dtx%%  ` `  88 %< %DH| % %8%L %X\%(% $0<HT`lx,0@DTXhl|   ,0DH 8 `x   4 H tx $ Td8T  @ \     H d     P l   xxgoodinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c goodinv.c'goodinvint  (rqpUgoodinv HqVxq`WyqhX lontY lat|[argq\thetaq]tempq^regiondouble!Rqq` "lon_centerq` #feast`intqlong /ecs/hdfeos/gctp/src/usr/includegoodinv.cʿ7stdio.hostandards.hDsgidefs.h7getopt.hˍ (    -"+ )"+ -!+ '+ $+ }!+ '+ $+ 1m -($)P -{ T' \'@'PTTTTTTTTTTT% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A$ A AA@s @$ ( A`A A@ @ )goodinvintgoodinv-{Rlon_centerfeast$(LP 4 vz4($ *050;FCp!>U $X k| v lp Hp8pPp:pyp{pp p -p 81 l t  X* = Q !ep ! gvnspfor.o/ 1074016608 1032 20 100644 6020 ` ELF "4( '/6=DKRZcnrz~$8.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatagvnspforinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspforadjust_loncosp_errorsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gvnspfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08ץףׄF$ׄF$ע ס0(נ80׬(''  $ ׬ ׬$ ׬  ׬( ׌(׍0 %߼߿'@'@8<$!!!PXdl׬P׍F-c ׬X'' ׬ ױגF2Bײ׳ו F5F3F2@ ׮ ׏אF0{F/p<E $$ $0*דוF5ו׷ F7AF5(׬ ם(׿ס(ׂF"BF!F?F?@dח0׹(כF;B׻ם F=׽׿׀F F?BF=F;BF9l00ߢ0߼@߿8'p?GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-forB       * . 2 6 :   x%%%(( % % % %    H%d%t%XXxx%%4<DLT\dlpt    <D ` p   $0LT`p xxgvnspfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c gvnspfor.c.gvnspforint 7/rP0hX1center_long`2center_lath3false_eastp4false_northxMgvnspforHNlon`OlathP xtQ y|TdlonUsinphiUcosphiVcoslonWgXkspdouble$lon_center%R&p'sin_p15(cos_p15 )false_easting(*false_northing0int /ecs/hdfeos/gctp/src/usr/includegvnspfor.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ 4 $ $    ($ 4-(,DQ% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@} @$ ApA A@c @+gvnspforint7gvnspforf lon_center"R2pBsin_p15Xcos_p15nfalse_eastingfalse_northing$(LPNRV.>Tj4 $qL)$*8006>p! RBP h f  q |({p  Hp p ppgpppk p/pj $ ,  Lx% 8 L `p gvnspinv.o/ 1074016610 1032 20 100644 6964 ` ELF "4( '/6=DKRZckqw ,@.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatagvnspinvinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspinvp_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gvnspinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08צפׅF%!ׅF%!ף ע(ס00נ88׬(' '( $ ׬ ׬$ ׬  ׬( ׌0׍8 %߼߿'@'H@<$!!!`ht|׭`׎0F.kA`׫h׌8F,Zhש`ת`F*JBתh׫hF+RF*J@F JDק׈F(9ׅ׆F&)@׃ׄF$סנעF"F F!<E $$ $8׏אױײ׳F3F2BײF2CF1F F0{װױF1ױײF2CF1F0{ ׬  P(׬(' '0 חt׵F EחF7>Eי|8z׌(׭h׮ F.kBF-c׭F-c׭0׎ F.kBF-c P|אF בF1ׯF {אF0x>E,גDF2>E׬`׭hF kG P׌F c Xt 8D׬`F c׭h P׌F c Xt@82|l ׮0׏ F {F/s׭F kE׎F.h<E װ`F בF1<E8׌(׭`׮ F.kBF-c׭׮F.kB P׌F c Xt88ߢ8߼H߿@'?=|׽!TD-GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-forZ       * . 2 6 : > B F J N R   %%%(( % % % %    XXpp%X%x%%`%x%%%%p%%4<DLT\dltx|    <L T t    4\ lt    ,Ll |  xxgvnspinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c gvnspinv.c-gvnspinvint 7.rP/hX0center_long`1center_lath2false_eastp3false_northxMgvnspinvHNx`OyhP lontQ lat|TrhUrVconWcomXzX sinzXcoszdouble"lon_center#lat_center$R%p&sin_p15 'cos_p15((false_easting0)false_northing8int /ecs/hdfeos/gctp/src/usr/includegvnspinv.cʿ!stdio.hostandards.hDsgidefs.h7getopt.hˍ 3 $ $    01(`$$)P ))HH4D]% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@ @$ AAA@ @+gvnspinvint7gvnspinvulon_center'lat_center@RPp`sin_p15vcos_p15false_eastingfalse_northing$(LPNRV#<L\r4 4qT)$0* @00 (6 z>p! ZP  f  q L{p HpPphp=p;gppp p2/pay    % 8 L `p hamfor.o/ 1074016610 1032 20 100644 5124 ` ELF| "4( &-4<,CNR X\ht.symtab.shstrtab.strtab.comment.text.sbss.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.srdatahamforintptitleradiuscenlonoffsetphamforadjust_loncos.lit8sin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:hamfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (ףעס נ(' ׬ ׬ ׌׍ %߼߿'0'<$!!!08DL׬0׍F-c ׬8 ׬׍F-c ׎׏F/sׯ F {אF0{F {F/s׬׍F-c (׬8 אײדF3F2ױ(F2BF1DP׬8 ו׷F F7@Lu%߼߿'PHAMMER:      " & * . 2   P%`%p%%   % % %X %l % %,4<DHL \ l x|     $ 4 L T h t|  ??fe>?@ xxhamfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c hamfor.c)hamforint0  *r`+center_longh,false_eastp-false_northxBhamforHClon`DlathE xtF y|IdlonJfacdouble"lon_center#R$false_easting%false_northingint /ecs/hdfeos/gctp/src/usr/includehamfor.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ -     )``5% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ d @$, APAA@F @'hamforint hamforHlon_centerRfalse_eastingfalse_northing$(LP"&*  4 qU*'$* 08p!:J X`, k 4u0  {p  (Hp pp p p Ugp pp, pL+pwL    `% L8 \L d`p lhaminv.o/ 1074016611 1032 20 100644 5044 ` ELFL "4( &-4<\C IOZ`lx.symtab.shstrtab.strtab.comment.text.sbss.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.srdatahaminvintptitleradiuscenlonoffsetphaminv.lit8atan2adjust_lonasinz.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:haminv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (ףעס נ(' ׬ ׬ ׌׍ %߼߿'0'<$!!! (4<׳ וF5 ױ(גF2A(׎׏אF0{F/sׯ װ F0{אF0{F/sׯ(װ(F0{F/sF s׏F/s׬ ׭F-c׍׎׏F/sF.kB׮ ׯ F/s׏F/sF.kA׮(ׯ(F/sF.kA ׌׍F-BF-c 4@׬(׭F-c׍F-c׍F-c <`%߼߿'@HAMMER.      " &   P%`%p%%   % % %,4<DHL \ l x|   8 PTX p     @??@ xxhaminv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c haminv.c)haminvint0  *rz`+center_longzh,false_eastzp-false_northzxBhaminv HzCxz`DyzhE lontF lat|Ifacz@double"lon_centerz#Rz$false_eastingz%false_northingzintz /ecs/hdfeos/gctp/src/usr/includehaminv.cʿstdio.hostandards.hDsgidefs.h7getopt.hˍ -     X@% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ d @$\ A@A A@R @ 'haminvint haminvHlon_centerRfalse_eastingfalse_northing$(LP"&*4 `D.r'$ * 08p!.J @`( k u0 {p  Hp `p xp np 4gp pp p++pVL    `% ,8 <L Dimolwfor.o/ 1074016611 1032 20 100644 6868 ` ELF$ "4(   ,3: CNRV^jv.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodataimolwforintptitleradiusimolwforadjust_lonsincosp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:imolwfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<'?!ײבא׏׎׍ ׌(l׊׋0F+RJ׈׉8F)B(׆ׇ@F'1ׅׄHF%!ׂ׃PF#׀ׁXF!$ ׬ %߼߿' '80<$!!!PXdlסXDF!>E0ףPׂhF#>E פPׅpF% <EקP׆xF'0>EרP׉F)@>E ׫P׊F+P>E ׬P׍F-`<E$$/ׯP׎hF/p>E װPבF1<E$׳PגF3>E׵PחF7>E ׻PיF;>E ׽PןF?<E$$׬P$@8!F-c ׮X׬X ׏F/ $0׬ @׬ ׳׵@F5׵F5F וF5@F5(ױײ(F2@װ(F בF1<E ))2 $$ $ $׻םF=ח׹XF EF9יF9<ED׬ F F% H @!ע׃ׄF$F#F"BF!d׬ ׅ׆F&)BF%Bl%%߼8߿0'p?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^?WJy?f ?f@ !TD-/ !TD-/]yk@5AIտ5A@ !TD-?=|׽??!TD-?d)?f;INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward6      " & * .   (,48@DLPX \ d(h(x0|088@@HHPPXX%%, ,,0 00 % %D %X %((HH %@ %L0P0 % $0<HT`lp  h$<d|   @ T x < hl  xximolwfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c imolwfor.c(imolwforint  )rpJimolwfor HKlon`LlathM xtN y|Pdelta_lonQthetaRdelta_thetaSconTiUregiondouble"R0#lon_center0$feast0intlong, /ecs/hdfeos/gctp/src/usr/includeimolwfor.cʿ%stdio.hostandards.hDsgidefs.h7getopt.hˍ )     )2; { 2; <X( {0\4% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A$ A AA@C @$  ApAA@ @+imolwforintimolwfor-Rlon_centerfeast$(LP  4 vZ,)$* x0 x`50 x; XXCp! 6U P k 8 v p `Hppp0p yppp p/pA1 t |  X* = Q  ep imolwinv.o/ 1074016612 1032 20 100644 6932 ` ELF` "4(   ,3: CHLW[gs.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodataimolwinvintptitleradiusimolwinvasincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:imolwinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<'?!ײבא׏׎׍ ׌(l׊׋0F+RJ׈׉8F)B(׆ׇ@F'1ׅׄHF%!ׂ׃PF#׀ׁXF!$ ׬ %߼߿' ' <$!!!08DLס8DF!>Eע0׃ׄhF$F#>Eץ0׆ׇpF'1F&(>E$$ר0׉׊xF*JBF)@>E$׫0׌׍F-cF,X>E$$ׯ0$@8!F0{0׬8׍׎F.kBF-c ׬ % H @! ׭0׎׏F/sF.F.kCF-c D ׬׍F-c ׬׍F-cF,׍F-c L`@DՎ׏F/p<EDձאF1<E$$!D2דF3<EDוF7<ED;יF;<E D]ןF?<E$i$DׁF!<EDׂF#<E$S$ *DdׅF% <EDՇ׆F'0<E$ =$!D׉F)@<ED+׊F+P<ED׌F-`<E D.׏F/p<E$$dD԰בF1<EDגF3<E$ߢ߼ ߿'P?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^f~?+}8k=+}8k=?f~?f;?d)@@ !TD-?WJy?f ]]yk@5AIտ5AINTERRUPTED MOLLWEIDE EQUAL-AREA0      " &   (,48@DLPX \ d(h(x0|088@@HHPPXX%%, ,,0 00<0@0t % % % % % $0<HT`lp  hl`dp     0L4pXt xximolwinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c imolwinv.c&imolwinvint  'rTpFimolwinv HTGxT`HyThI lontJ lat|LthetaTMregiondouble RTT0{!lon_centernT0"feast0intTlong$ /ecs/hdfeos/gctp/src/usr/includeimolwinv.c˿ stdio.hostandards.hDsgidefs.h7getopt.hˍ '   )!+ #+ ~+ %+ 10d@O>@S@S=?S% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A$ A AA@C @$  APA A@! @+imolwinvintimolwinv-^R{lon_centerfeast$(LPj   4 vZ))$* h0 h`50 h; @!Cp! a0U @ k L v  p Hp0pHp(p=yppp& pF/pu1    X* (= 8Q @ep Hlamazfor.o/ 1074016612 1032 20 100644 5812 ` ELFL "4( !)07>EMVa gow 1.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.rodatalamazforinttsincosptitleradiuscenloncenlatoffsetplamazforadjust_lon.lit8sprintfp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:lamazfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (0ףעס( נ0(׬ '' $ ׬ ׬ ׬  ׌ ׍( %߼߿'@'P<$!!!׬׍F-c ׬'' ׬''  װ ױגF2BF1ױגF2BF1(׮(׏F/p2E'0$דוF5D& '0$ $qx$׃ׄץ(׆F&)@F%!F !F$pן נסעpF"BF!F ח(׹p׻םF=׽ ׿׀F F?BF=F;BF9xxߢx߼߿'LAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward>       & * . 2 6   \%dhp%%% % %   %4%L%  %PP%08@HPTX l |     0 H \l      ,8H@? xxlamazfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c lamazfor.c+lamazforint *,r3P-center_long3X.center_lat3`/false_east3h0false_north3pFlamazforH3Glon3`Hlat3hI xtJ y|Ldelta_lon3~Msin_delta_lon3~Ncos_delta_lon3~Osin_lat3~Pcos_lat3~Qg3~Rksp3@<;Smessdouble"lon_center3#R3$sin_lat_o3%cos_lat_o3&false_easting3 'false_northing3(int3char /ecs/hdfeos/gctp/src/usr/includelamazfor.c˿stdio.hostandards.hDsgidefs.h7getopt.hˍ 0       ($$4%4$00I% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/ $> I 3 @ @A$ A@AA@p @$ AA A@ e @+lamazforint*lamazford=lon_centerVRfsin_lat_o~cos_lat_ofalse_eastingfalse_northing$(LPAEIRbz4 `dE)$*h00h^8p!>J `` d\ k u0 {p  Hp p 8ppwpjpp p/p)h    p% ,8 <L Dlamazinv.o/ 1074016613 1032 20 100644 6484 ` ELF "4( !)07>EMV \djnt%9.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatalamazinvinttsincosptitleradiuscenloncenlatoffsetplamazinv.lit8p_errorasinzsinatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:lamazinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (0פףע ס((נ00׬ ''  $ ׬ ׬ ׬  ׌(׍0 %߼߿'@'80<$!!!PXdlשP׊(F*JAPקX׈0F(9XץPצPF&)BצXקXF'1F&)@F )Dע׃ׄF$F#ס׀F!<E $$ $s(׬ @׋F+׬''  ׎d׭F kE׌F-`<En׬X׭׎ F.kBF-c׭F-c׭ ׎F.kBF-c @lבF EגF2@װF ׏F0x<E(l  ׵ חF F7AײDF32E׌ ׭P׮F.kBF-c׭׮F.kB @׌F c Hd (׍DpF.h<E׬PF c׭X @׌F c Hd@׬P׭XF kG @׌F c Hd`׍l((ߢ(߼8߿0'pLAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inverseV       & * . 2 6 : > B F J N   d%lpx%%% % %  |  88 %%%8%%%%D%\%%%08@HPX\` t     PT h      (4 LT h    @ PX   @?=|׽!TD- xxlamazinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c lamazinv.c.lamazinvint */rP0center_longX1center_lat`2false_easth3false_northpJlamazinvHKx`LyhM lontN lat|PRhQzRsin_zScos_zTtempdouble$lon_center%lat_center&R'sin_lat_o(cos_lat_o )false_easting(*false_northing0int /ecs/hdfeos/gctp/src/usr/includelamazinv.c˿ stdio.hostandards.hDsgidefs.h7getopt.hˍ 3      0$%(,$)P )4'[ ' Pz% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@r @$ ApAA@ @+lamazinvint*lamazinvslon_centerlat_centerR(sin_lat_o@cos_lat_oXfalse_eastingtfalse_northing$(LPAEI$<Tp4 $qM)$* 80 F8p! >VJ ` $ k pu08({p `Hpppap^gppp5 pU/pw    $x% 8 L `p lamccfor.o/ 1074016613 1032 20 100644 7748 ` ELF "4( 4'/7=CGKOV^gqx@ +>R.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatalamccforintp_errortsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:lamccfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'PXP<$!!!pxץpפxףPעHנסF!F ׁF!<E $$ $)H׌׍F-c׉ת׫F+RF*JA׈F Bק צ(׬'' ׮׌׭׮ ` ׌׭׮ `(׬'' ׌׭׮ `0׌׭׮ `8׌( ׌׍(׮ `@װױF1F ׏F0x<E׬ ׭0F-c h׬(׭8F-c ׮hF s0ׯ0׬(׍0 `װ ב0F BF18׬@׍0 `גד8F3F2@$ ׌׍ ׬׭ ׌  ׬ ׌H׍P HHߢH߼X߿P''80<$!!!PXdlעXF ׃F#F ס׀F!<E׬X ׌׭X׮ @׬׍0 @׃ׄ8F$F#קX׈0F(9ץD0F&(>E $$ $,(&DH׬P׍ F-c @׎0F s ׬  ׏HװF F0{d׬  בPג@׳F F3F2@l((ߢ(߼8߿0'p=|׽?!TD-Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedz       $ ( , 0 4 8 < @ D H L P Z ^ b f j n r   |@@%%%< %\%t% % % % %( %X % %PP %%%%% %LLLPPP % % %,h0h4@8@@%t% %%<DLTh    ,8 X dp     $ 8HPT ht|       p   < hp    xxlamccfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c lamccfor.c+lamccforint4 ,r_maj@-r_minH.lat1P/lat2X0c_lon`1c_lath2false_eastp3false_northx5sin_po~6cos_po~7con~8ms1~9ms2:temp~;ts0<ts1~=ts2qlamccfor@Hrlon`slatht xtu y|xconyrh1zsinphi{theta|tsdoubler_majorr_minores e!center_lon "center_lat(#ns0$f08%rh@&false_eastingH'false_northingPint /ecs/hdfeos/gctp/src/usr/includelamccfor.c˿,stdio.hostandards.hDsgidefs.h7getopt.hˍ 3 1)$$,,$,, -0U8  !   $% , )(44=% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$4 AAA@ @$@ ApAA@l @+lamccforintlamccforr_majorr_minoresecenter_loncenter_lat(ns9f0Jrh[false_eastingwfalse_northing$(LP  $5FWs  40 dqf;)$p* xX00 x 6 >p! zP  f p@ q H{p Hp@pXppgpgpp p/p&    % x8 L `p lamccinv.o/ 1074016614 1032 20 100644 7764 ` ELF "4( 4'/7=CGKOV^gqx@<#3FZ.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatalamccinvintp_errortsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccinvatan2phi2zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:lamccinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'PXP<$!!!pxץpפxףHעPנסF!F ׁF!<E $$ $)H׌׍F-c׉ת׫F+RF*JA׈F Bק צ(׬'' ׮׌׭׮ ` ׌׭׮ `(׬'' ׌׭׮ `0׌׭׮ `8׌( ׌׍(׮ `@װױF1F ׏F0x<E׬ ׭0F-c h׬(׭8F-c ׮hF s0ׯ0׬(׍0 `װ ב0F BF18׬@׍0 `גד8F3F2@$ ׌׍ ׬׭ ׌  ׬ ׌H׍P HHߢH߼X߿P''80<$!!!PXdlץP׆HF&)APׂP׃@פXF$F#Xׁ0DF!<EרPשPF)BשXתXF*JBF)BF Bׇ ׫P׬PF,Z׬X׭XF-cF,ZF ZF Z׊Dx׭DpF.h2E ׬P׭F-c׭X׮F.kB @׮DxF/p2Eב0DF1<E"׏א0F0{׬׍׎8F.kBF-c׭ @ ׌׭ ' @l`@(ב l׌ ׭׎0F.kCF-c @d((ߢ(߼8߿0'p=|׽?!TD-Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONICn       $ ( , 0 4 8 < @ D H L P Z ^ b f   |@@%%%< %\%t% % % % %( %X % %PP %%%%% %LLLPPPX% %%H%<DLTh    ,8 X dp     $ 8HPT ht|       p| T   $08D  xxlamccinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c lamccinv.c*lamccinvint4 +r_maj@,r_minH-lat1P.lat2X/c_lon`0c_lath1false_eastp2false_northx4sin_po~5cos_po~6con~7ms1~8ms29temp~:ts0;ts1~<ts2slamccinv@|Htx`uyhv lontw lat|zrh1{con|ts}theta~flagdoubler_majorr_minorese center_lon !center_lat("ns0#f08$rh@%false_eastingH&false_northingPintlong /ecs/hdfeos/gctp/src/usr/includelamccinv.c˿&stdio.hostandards.hDsgidefs.h7getopt.hˍ 2 1)$$,,$,, -0U8  !   $)04(8E808% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$4 AAA@ @$@< ApAA@ @|+lamccinvintlamccinvr_majorr_minoresecenter_lon center_lat&ns7f0HrhYfalse_eastingufalse_northing$(LP  "3DUq  4@ tqnS)$|* X00 (6 (h>p! nP  f  q H{p Hp@pXppgppp p/pA    % 8 L `p merfor.o/ 1074016615 1032 20 100644 6068 ` ELF "4( h%)-4<FMUp<\djuy 3.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatamerforintcossinptitleradius2cenlonmeroriginoffsetpmerforp_errortsfnzadjust_lonlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:merfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!!08@HPX׫0ת8ש@רHקX8צP@ׅׄF%!ׁעףF#F"A(׀(F  ׬H ׬H ׬H ׍׏(F {׮ F/sF.kAF kD׬F-c0$ ׌׍ ׌ ׌ ׌@׍8 %߼߿'`' <$!!!08DLנ8F ׁF!F ׁF!>E $$ $5+׬8 ׌ ׭8׮ (׬0׍F-c (׎@׏א0F0{F/F/sD׬ ב8גד0F3F2F2ALߢ߼ ߿'P?!TD-=|׽MERCATORTransformation cannot be computed at the polesmer-forwardF       $ . 2 6 : >   %%%% %$ %4 %H %| || @@%%%0%d%4<DLT\`dp       ,0 <@D     $, <@D` lpt xxmerfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c merfor.c)merforinth I*r_majP+r_minX,center_lon`-center_lath.false_eastp/false_northx1tempOmerforpHPlon`QlathR xtS y|UtsVsinphidoubler_majorr_minorlon_center lat_origin!e !es("m10#false_northing8$false_easting@int /ecs/hdfeos/gctp/src/usr/includemerfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ / $    5( ,H=% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$h A`AA@U @$p< APA A@J @'merforintImerfor}r_majorr_minorlon_centerlat_origin1eAesRm1cfalse_northingfalse_easting$(LP^bf-=N_|4 $qG'$*H006L>p! $FP lp f t q P`{p  Hp p ppgpppj p+p 8 @  `% 8 L `p merinv.o/ 1074016615 1032 20 100644 5764 ` ELF "4( h%)-4<FMUp\`fq}+.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatamerinvintcossinptitleradius2cenlonmeroriginoffsetpmerinvexpphi2zadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:merinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!!08@HPX׫0ת8ש@רHקX8צP@ׅׄF%!ׁעףF#F"A(׀(F  ׬H ׬H ׬H ׍׏(F {׮ F/sF.kAF kD׬F-c0$ ׌׍ ׌ ׌ ׌@׍8 %߼߿'`' <$!!!08DLׯ0א@F0{0׭8׎8F.kA8׬8F c׍׎0F.kBF-c ׌ ׭' (L`@׌׭0׎׏0F/sF.kCF-c (Dߢ߼ ߿'P?MERCATOR>       $ . 2 6   %%%% %$ %4 %H %| || %%D%4<DLT\`dp       ,0 <@D   $,0@  xxmerinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c merinv.c)merinvinth I*r_majP+r_minX,center_lon`-center_lath.false_eastp/false_northx1tempOmerinvpxHPx`QyhR lontS lat|UtsVflagdoubler_majorr_minorlon_center lat_origin!e !es("m10#false_northing8$false_easting@intlong /ecs/hdfeos/gctp/src/usr/includemerinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ / $    40A% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$h A`AA@U @$p APA A@} @x'merinvintImerinv}r_majorr_minorlon_centerlat_origin/e?esPm1afalse_northing~false_easting$(LP^bf+;L]z4 q?'$x*hH00h6p >p!y>P ` f , q D@{p  Hp p ppngpppE pe+p    <% 8 L `p millfor.o/ 1074016616 1032 20 100644 4932 ` ELF "4(  '.5=EP VZ^jv.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatamillforintptitleradiuscenlonoffsetpmillforadjust_lon.lit8tanlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:millfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ףעס נ($ ׬ ׬ ׌׍ %߼߿'0'<$!!! (4<׬ ׍F-c ׎ׯאF0{F/s4N׬(׍F-c׍F-c F  בגF דF3F2@ I 3 @ @A$ A0A A@ e @$ A@A A@m @x)millforintmillforHlon_centerRfalse_eastingfalse_northing$(LP&*.  4 qU,($x*( 0(8p!;.J l@` k u0 P{p  hHp p p p gp pp _ p -p L     `% 8 L `p millinv.o/ 1074016616 1032 20 100644 4916 ` ELF "4(  '.5=EP VZ_kw.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatamillinvintptitleradiuscenlonoffsetpmillinvadjust_lon.lit8expatan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:millinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ףעס נ($ ׬ ׬ ׌׍ %߼߿'0'<$!!!$,ױגF2AׯאF0{׌׭׎F.kCF-c $@׬׍F-c׍F-c F  ׎F.׏F/s,n%߼߿'0MILLER CYLINDRICAL.      " &   HLT%d%t%%   %8 %H %,4<DP ` p |  $, 4 D P X ?!TD-@ xxmillinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c millinv.c)millinvint0 *rn`+center_longnh,false_eastnp-false_northnxAmillinv0HnBxn`CynhD lontE lat|double"lon_centern#Rn$false_eastingn%false_northingnintn /ecs/hdfeos/gctp/src/usr/includemillinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ -     4U% B .: ; 9 I? ' @ @: ; 9 I $> 4: ; 9 I I 3 @ @A$ A0A A@ e @$ A0A A@ o @)millinvintmillinvHxlon_centerRfalse_eastingfalse_northing$(LP%)-  4 qU-($*0 008p!C.J t@` k u0 X{p  pHp p p p gp pp W p w-p L   `% x8 L `p molwfor.o/ 1074016617 1032 20 100644 5716 ` ELF "4(  '.5=EPT Z^fr~  .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatamolwforintptitleradiuscenlonoffsetpmolwforadjust_lonsin.lit8cosp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:molwfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ף ע(סנ$ ׬ ׬ ׌׍ %߼߿'0'80<$!!!PXdl׬P׍F-c ׮X׬X ׏F/$@4׬ @׬ ׳׵@F5׵F5F וF5@F5 ױײ F2@װ F בF1<E(c2` $$ $(4$$׻םF=ח ׹XF EF9יF9<ED׬ F F׀ע׃ׄ0F$F#F"BF!d׬ ׅ׆ׇ8F'1F&F&)@l%((ߢ(߼8߿0'pMOLLWEIDEIteration failed to convergeMollweide-forward>      " & * . 2 6   HLT%d%t%%   % %0 %D %00%< %x %,4<DP ` p |    , @ d      8 HPT t  @ !TD-?=|׽??!TD-?d)?f; xxMmolwfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c molwfor.c%molwforint90 &r`'center_longh(false_eastp)false_northx=molwfor9H>lon`?lath@ x@tA y@|Cdelta_lonDthetaEdelta_thetaFconGiGdoublelon_centerR false_easting!false_northingintlong /ecs/hdfeos/gctp/src/usr/includemolwfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ )      (X(( x 0H<% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ e @$ ApAA@ @)QmolwforintmolwforHQlon_centerRfalse_eastingfalse_northing$(LP&*.5  4 qe4($* 0B8p!>J `` p\ k u0 @{p  Hp Hp `Qppgp pp{ p-pL    <`% 8 L `p molwinv.o/ 1074016617 1032 20 100644 5412 ` ELF "4(  '.5=E KPT_co{ .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatamolwinvintptitleradiuscenlonoffsetpmolwinv.lit8asincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:molwinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ף ע(סנ$ ׬ ׬ ׌׍ %߼߿'0'<$!!! (4<ק ׈F(9 ץ(׆F&)A(ע(׃ׄF$F#סF E׀F!<E׉׬ ׬ ׌׭ ׎׏F/sF.F.kCF-c 4`4PבF1<Eג44Եד F5<Eח 4׬׍(F-c װב(F1F0ב F1ׯF {׎0F/p<Eג0׬ <%߼߿'@MOLLWEIDE6      " & * .   HLT%d%t%%  < %P %| %%< %,4<DP ` p |   , 8 L X`d x          , 8 ?f;??d) !TD-@ !TD-@? xxmolwinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c molwinv.c$molwinvint0 %r`&center_longh'false_eastp(false_northx<molwinvdH=x`>yh? lont@ lat|BthetaHCarg@doublelon_centerRfalse_easting false_northingint /ecs/hdfeos/gctp/src/usr/includemolwinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ (      ' P''@'$% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ e @$ A@A A@ h @d) molwinvintmolwinvH lon_centerRfalse_eastingfalse_northing$(LP&*.  4 qe1($d*( 0( 8p!26J hP` k u0 8{p  Hp Xp p p {p`gppp7 pW-pL    `% X8 hL p`p xobleqfor.o/ 1074016618 1032 20 100644 7140 ` ELF\ "4( H!(/6=DLTP]bh nrw{!5.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataobleqforintptitleradiuscenloncenlatgenrptoffsetptsincosobleqforacosatan2.lit8sinasincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:obleqfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (08@Hק(צץ פ(ף0 ע8ס@@נHH$ ׌( ׌ ׌ ׌$ ׌ $ ׌$ ׌@׍H ׌'0'8 %߼߿'P'@xp<$!!!נׁF!׬'' ׬''  ׬ ׭׎8F.kBF-c׭׎0F.kBF-c (׬׭F-c׭׎8F.kB׮ ׯא0F0{F/sF.kA ׎F s0׬0'8'@ ׬(׍F-c גF2Hװ8ױHF1P׮@ׯHF/sX׬P׍F-c `׬` ׬`׍F-c׍F-c ׯXאF0{׮F/sF sH׬H h׬h׍F-c׍ F-c ׎@׏ א(F0{F/F/sN׬h ׬`׍F-c׍F-c ׬h׍F-c׍ F-c ׎Hבג(F2BװF1ׯF0{F {F/sn%߼x߿p'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: n       $ ( 2 6 : > B F J N R V Z ^ b f   x|%%%% %00 %HH % %( %\ \\` `` % % % %D %\%%%%%(%X%|%%<DLT\dlt         $ |     (@ PX d    $ 048T hpx  ?@ xxobleqfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c obleqfor.c(obleqforintH a)r@*center_longH+center_latP,shape_mX-shape_n`.angleh/false_eastp0false_northxOobleqforPHPlon`QlathR xtS y|Udelta_lon~Vsin_delta_lon~Wcos_delta_lon~Xsin_lat~Ycos_lat~Zz~[Az~\sin_Az~]cos_Az^temp_x_prime`y_primeaMbNdoublelon_centerlat_otheta m!n "R(#sin_lat_o0$cos_lat_o8%false_easting@&false_northingHint /ecs/hdfeos/gctp/src/usr/includeobleqfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 0 $$$$ $$@U$0(\ L% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$H APAA@M @$P AAA@ @+obleqforintaobleqforlon_centerlat_othetam&n6RFsin_lat_o^cos_lat_ovfalse_eastingfalse_northing$(LPx|"2BZr 4 4qI)$ * P0 U8p! enJ `  k u0{p Hppppgppp p/p d l  % 8 ,L 4`p < obleqinv.o/ 1074016619 1032 20 100644 7172 ` ELFx "4( H!(/6=DLTP]b hlpv';.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataobleqinvintptitleradiuscenloncenlatgenrptoffsetptsincosobleqinvasin.lit8cossinatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:obleqinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (08@Hק(צץ פ(ף0 ע8ס@@נHH$ ׌( ׌ ׌ ׌$ ׌ $ ׌$ ׌@׍H ׌'0'8 %߼߿'P'Ph`<$!!!ױג@F2AׯאHF0{׬׍ ׎(F.kBF-c ׎ ׏F/sF.׬׍F-c׍ F-c p׬ ױגד(F3F2CװpF1F ׬ וחF7BF5B׬ ׎F.׬׍F-c׍F-c x׬ ׬ דײF3ױxF2BF C ׯװF0{װ ױ F1F0{F {אF0{׬ וF5B(׬׭  0׷0יF98׬8'@'H ׬('P'X ׬X׍0F-c׭H׮P׏8F/sF.kBF-c @׬P׭@F-c׭X׎8F.kB׮HׯPא0F0{F/sF.kA ׌F c `%߼h߿`'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: r       $ ( 2 6 : > B F J N R V Z ^ b f j   x|%%%% %00 %HH % %( %\ \\` `` %%%, %P%|%%% %%L %d % %%%<DLT\dlt         $ |   ( 48L Xhpx     0H ` p   ?@ xxobleqinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c obleqinv.c*obleqinvintH a+r@,center_longH-center_latP.shape_mX/shape_n`0angleh1false_eastp2false_northxQobleqinvPHRx`SyhT lontU lat|Wz~Xsin_zYcos_zZAz[temp~\x_prime~]y_prime~^M~_N~`diff_angleasin_diff_anglebcos_diff_angledoublelon_center lat_o!theta"m#n $R(%sin_lat_o0&cos_lat_o8'false_easting@(false_northingHint /ecs/hdfeos/gctp/src/usr/includeobleqinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 2 $$$$ @d0(p8(($$Di% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$H APAA@M @$P AAA@ @+obleqinvintaobleqinvlon_centerlat_othetamnRsin_lat_o7cos_lat_oOfalse_eastingkfalse_northing$(LPx| 3Kg 4 4qO)$ * 8P0 8U8p! rJ `  k u0{p HpHp`ppgp>pp p/p    % @8 PL X`p `omerfor.o/ 1074016619 1032 20 100644 13396 ` ELF/ "4(  4&.28?GNVZ`dkrw @ -@T.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataomerforinttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerforcoslog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:omerfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $' <$!!!׫תשר ק8צ@ׅׄF%!ׁעףF#F"A0׀0F (׌ 'H'P ׎׏Hא0בHF1F0{F/s׌׍0F-cF c׌P׍ כ0F םן0F?AF=םF=F X׳וחיXF9F7BF5׵F5`ג F דF3<E ׀ןhםpG׌(׍ ׎H צF 1פׅXF%!ץ׆PF&)BF%!hׂh׃hF#׃F#DF"<E׈ D8F(8>E ׉h׊h׋hF+R׋F+RF RF*J@  ׌h׍h׎hF.kB׎F.k@F kDF-c ׏h ׬׍X װ F p$ ׌׍ ׌$ ׌@׍8 ױ ג׳ F3F2Aג(F2B(׬ ׌hF, 0׬0 ׬(F c ׮׏XF/F/s׬׍0F-c$ ׌ ׌  ג F ױאF1<EB׵ח8F7@F EדF5<E9׬0'' ׬'' כ DF;>E׌h׍hF-c׍F-cF c׍F-c ׎`׏XF/sF.x׌h׍hF-c׍F-cF c׍F-c ׎`׏XF/sF.F sx $$ $x@<׬菙 8׌(׭׮8 @׬ 8׌(׭׮8 H׬@׍X P׬H׍X XׁpעPF"C ׽ ןנ F F?Aן(F?B(יpכpF;B׻P׽XF=F;A׻P׽XF=םpןpF?BF=F;C`׵X׷PF7A׷P׹XF9F7Chײ׳F3pװpב@F1<EףׄHF$צpׅPF&(<Eק׈XF(9ׯװF0{p׬p׍X׎(F.kBF-c ׬`F c׭hF-c ׮ׯF/s׏(F/s׏XF/F/s׬׍F-c p׬p׍XF-c ׬(F, 0׬0 ׌hF c ׬׍0F-c$ ׬׍0F-c$ ׬׍0F-c$ ׬׍0F-c$ ׮ׯF/sF s׏F/p>E $$ $xkװF ױגF2>E ׳ו8F5F וF5>E $$ $xNח F י8F9F יF9>E $$ $x9׬0'' ׬'' כ DF;>E׌h׍hF-c׍F-cF c׍F-c ׎`׏XF/sF.x׌h׍hF-c׍F-cF c׍F-c ׎`׏XF/sF.F sxxxߢx߼߿''`h`<$!!!׬ ׬׍F-c p׬׍XF-c ׯF {א8F0{F {׎F/p<Ed׌(׭׮ p׬׍X pיpF C ׳ ו׷ F7CF5ו(F5(װ בײ F2CF1ב(F10׮(׏F/sׯאF0{F/sׯ0F/s8׬׍XF-c @׻@F ם`F=<E ׽ןX׀`F F?BH!׬׍F-c׭(׎F.kBF-c׭@F-c א`F בXF1H׮@DxF/p<E ױHג`דPF3דXF3F2@H׷DF7>Eי8כF 8׽ן`F?BןXF?CHנ8F ׁF!F ׁF!>E $$ $X.׌׭8F-c׭8׎F.k@F-c י`כ(F;BF9BכXF;CP׵HחxF7AHב@ײPדF3F2@ײHדF3F2@׎8ׯHאF0{F/sׯPאF0{F/sXXߢX߼h߿`'?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD->z򚼯HOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Point projects into infinityomer-for       $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                   %%%% % %   % %, %@%X%l%HH %%%$%<%%%hh%0 %L%d %%%%%%8%X %l% %% % % % %HhLhPT\%hh% h h   $% L% d% % % L L L P P P p % % % % % % %   0 0 % 0%<DLT\dhlx   $,04LPXltx|  $(0LPT\x     ( 4< T h |     048 D`dlx   , <H ` p|    $l  $,4 LT h |      4X    @ D H X \ ` l                 l           ( 8 H X h t           H L T          , 8 < H X d l |    xxeomerfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c omerfor.c/omerforintQ 4 0r_maj@1r_minH2scale_factP3azimuthX4lon_orig`5lat_origh6false_eastp7false_northx8lon19lat1:lon2;lat2<modeX$>temp~?con~? com~@ts~Ats1~A ts2~Bh~B l~CjC pC dlonDf~D g~D gama~Esinphi~omerforQ @ Hlon`lath x`t y`|sin_phi~tconq us vl~ul vssdlon~ts1~doubler_majorr_minorscale_factorlon_origin lat_origin !e(!es0"false_northing8#false_easting@$sin_p20H$cos_p20P%blX&al`'dh(elp(ux)singam)cosgam*sinaz*cosazintlong /ecs/hdfeos/gctp/src/usr/includeomerfor.c̿:stdio.hostandards.hDsgidefs.h7getopt.hˍ < $$, L4),,9 (9 }  $!,8,I$$ (U}(t , ,((,L,$$l,< ,,,-1(I(5($$(UQ     ,(5,0,,4()P (x (%5(P89% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ 4 AAA@ @$ @ AAA@ @ )iomerforintomerforir_majorr_minorscale_factorlon_origin lat_origin&e6esGfalse_northingdfalse_eastingsin_p20cos_p20blaldelusingamcosgam)sinaz=cosaz$(LP "2C`|%9M 4P qh]($ *p00ph69>p!P  f q L{p $Hp%8p%Pip*p,cgp,pp-: p-Z-p- .x .  .% /8 /L /`p /(omerinv.o/ 1074016620 1032 20 100644 13092 ` ELF. "4(  4&.28?GNVZ`dkrw @)9L`.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodataomerinvinttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerinvexpphi2zcosatan2.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:omerinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'0x<$!!!׫תשר ק8צ@ׅׄF%!ׁעףF#F"A0׀0F (׌ 'H'P ׎׏Hא0בHF1F0{F/s׌׍0F-cF c׌P׍ כ0F םן0F?AF=םF=F X׳וחיXF9F7BF5׵F5`ג F דF3<E ׀hןpםxG׌(׍ ׎H hצF 1פׅXF%!ץ׆PF&)BF%!pׂp׃pF#׃F#DF"<E׈ D8F(8>E ׉p׊p׋pF+R׋F+RF RF*J@ ׌p׍p׎pF.kB׎F.k@F kDF-c׏p׌h׍X װF x$ ׌׍ ׌$ ׌@׍8 ױג׳F3F2Aג(F2B ׬ ׌pF, (׬( ׬ F c ׮׏XF/F/s׬׍0F-c$ ׌ ׌  ג F ױאF1<EB׵ח8F7@F EדF5<E9׬('' ׬'' כ DF;>E׌p׍pF-c׍F-cF c׍F-c ׎`׏XF/sF.׌p׍pF-c׍F-cF c׍F-c ׎`׏XF/sF.F s $$ $p@<׬؏ 0׌(׭׮0 8׬菙 0׌(׭׮0 @׬8׍X H׬@׍X PׁxעHF"C׽ןנF F?Aן(F?B יxכxF;B׻H׽PF=F;A׻H׽PF=םxןxF?BF=F;CX׵P׷HF7A׷H׹PF9F7C`ײ׳F3hװhב@F1<EףׄHF$צhׅPF&(<Eק׈XF(9ׯװF0{h׬h׍X׎(F.kBF-c ׬XF c׭`F-c ׮ׯF/s׏(F/s׏XF/F/s׬׍F-c h׬h׍XF-c ׬ F, (׬( ׌pF c ׬׍0F-c$ ׬׍0F-c$ ׬׍0F-c$ ׬׍0F-c$ ׮ׯF/sF s׏F/p>E $$ $pkװF ױגF2>E ׳ו8F5F וF5>E $$ $pNח F י8F9F יF9>E $$ $p9׬('' ׬'' כ DF;>E׌p׍pF-c׍F-cF c׍F-c ׎`׏XF/sF.׌p׍pF-c׍F-cF c׍F-c ׎`׏XF/sF.F sppߢp߼߿x''`h`<$!!!׹כ@F;A׵ח8F7AײדF3׳וF5F3װבF1ױגF2BF1׮׏F/s׬׍XF-cF c׍`F-c ױג׳F3F2Aג(F2B ׮׏װF0{F/s׏(F/s(׬׍XF-c׍`F-c 0׷ יF9׹0כF;BF9׹(F98׵8F EחF7@F EחF7>Eן_׽8DF=>E׀``ׁ8F׏אXF0{@׌x׭8׎F.k@׎ׯ8F/sF.kCF kDF-c׭@ pH׌(׭H' pX$׬׍XF-c׍`F-c @׬ ׍F-c׭0׎F.kBF-c׭@ p׎׏XF/F/sP׬P pXXߢX߼h߿`'?@=|׽?@Lc˰!TD- !TD-!TD-@ !TD-@!TD-?!TD-OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point:        $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                  %%%% % %   % %, %@%X%l%HH %%%$%<%%%hh%0 %L%d %%%%%%8%X %l% %% % % % %HhLhPT\%hh% h h   $% L% d% % % L L L P P P % \ % H% h% % % %<DLT\dhlx   $,04LPXlptx|  $(0LPT\x     ( 4< T h |     048 D`dlx   , <H ` p|    $l  $,4 LT h |      4X    @ D H X \ ` l                 l |           ( 8 H P X l x          ( D X d           xxeomerinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c omerinv.c0omerinvintQ 4 1r_maj@2r_minH3scale_factP4azimuthX5lon_orig`6lat_origh7false_eastp8false_northx9lon1:lat1;lon2<lat2=modeX$?temp~@con~@ com~Ah~A lA ts1~Ats2~BjB pB dlonCf~C g~C gama~Dsinphi~omerinvQ @ <Hx`yh lon`t lat`|thetatconvs~ us~q~sts1vl ulflagX~doubler_majorr_minorscale_factorlon_origin lat_origin !e(!es0"false_northing8#false_easting@$sin_p20H$cos_p20P%blX&al`'tsh(dp)elx)u*singam*cosgam+sinaz+cosazintlong /ecs/hdfeos/gctp/src/usr/includeomerinv.c̿8stdio.hostandards.hDsgidefs.h7getopt.hˍ = $$, L4),,9 (9 }  $!,8,I$$ (U}(t , ,((,L,$$l,< ,,,-1(I(5($$(UQ    ,,4,,045(!}L00P)% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ 4 AAA@ @$ @ AAA@ @ <)iomerinvintomerinvir_majorr_minorscale_factorlon_originlat_origine%es6false_northingSfalse_eastingosin_p20cos_p20blaltsdelusingamcosgam)sinaz=cosaz$(LP!2Ok%9M 4p qt($ <*00h6h>p!wP X f\ q Th{p #Hp$p$ ip)p+'gp+pp+ p,-p,K -@ -H  -h% .P8 .`L .h`p .p(orthfor.o/ 1074016621 1032 20 100644 5844 ` ELFD "4(  (/6@GOWbf lpx 2.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataorthforinttsincosptitleradiuscenlonmeroriginoffsetporthforadjust_loncos.lit8sinp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:orthfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (0פףע ס0נ( ׬ '('0 $ ׌ ׌ ׌ ׌ ׍ %߼߿'@'@8<$!!!PXdl׬P׍F-c ׬X'' ׬ ױג(F2Bײ׳ו0F5F3F2@ א(ׯ DpF/p<E׳ F וF5>E"׬ כ ׽׿(ׁF!F?BF=BF=d{ו׷(יF9׹כ0F;B׻׽ן(F?BF=F;AF9F7@lU $$ $000ߢ0߼@߿8'pORTHOGRAPHICPoint can not be projectedorth-for>       & * . 2 6   d%lpx%%% % %   %4%D %%<@D0H0P%08@HPX\` t       0 @ Tdx L ?=|׽ xxorthfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c orthfor.c&orthforint *'r_majP(center_lonX)center_lat`*false_easth+false_northpEorthforHFlon`GlathH xtI y|KsinphiKcosphiLdlonMcoslonNkspOgdoubler_majorlon_centerlat_originfalse_northing false_easting !sin_p14("cos_p140int /ecs/hdfeos/gctp/src/usr/includeorthfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ +      ($ 4ED(% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@r @$ ApA A@e @)orthforint*orthforur_majorlon_center*lat_originCfalse_northing`false_easting|sin_p14cos_p14$(LP@DH &?\x 4 qF($*8098p!>J `` `\ k u0 {p  Hp 0p Hppgp>pp p-py t |  x% 8 $L ,`p 4orthinv.o/ 1074016621 1032 20 100644 6500 ` ELF "4(  (/6@GO W ]ekq|&:.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodataorthinvinttsincosptitleradiuscenlonmeroriginoffsetporthinv.lit8p_errorasinzatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:orthinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (0פףע ס0נ( ׬ '('0 $ ׌ ׌ ׌ ׌ ׍ %߼߿'@'80<$!!!PXdlקP׈ F(9PץX׆F&)AXףPפPF$פXץXF%!F$F ס׀ׂF"F!<E $$ $(׬׍F-c @׬'' ׏d׮F s׏F/p>Eאl(w׌0׭X׮F.kBF-c׭F-c׭׎(F.kBF-c @lאF בF1 ׯ F {אF0x>E,גDF2>E׬P׭XF kG @׌F c Hd (A׬PF c׭X @׌F c Hd@(/ll ׯא(F F0{ ׮ F s׍F.h>EײPF בF2>E׌0׭P׮F.kBF-c׭׮ F.kB @׌F c Hd((ߢ(߼8߿0'pORTHOGRAPHICInput data errororth-invV       & * . 2 6 : > B F J N   d%lpx%%% % %  lpt(x( %%%@%%%%%<%%%08@HPX\` t      PT |    0< T\ p      8 H` |   >z򚼯H=|׽!TD- xxorthinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c orthinv.c&orthinvint *'r_majP(center_lonX)center_lat`*false_easth+false_northpEorthinvHFx`GyhH lontI lat|KrhLzMsinzM coszNcondoubler_majorlon_centerlat_originfalse_northing false_easting !sin_p14("cos_p140int /ecs/hdfeos/gctp/src/usr/includeorthinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ +     0-(,$)P ))HH4D]% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@r @$ ApAA@ @)orthinvint*orthinvur_majorlon_centerlat_origin*false_northingGfalse_eastingcsin_p14ycos_p14$(LP@DH &C_u4 $qN($* 80 18p! AVJ ` ( k u0` {p HppppugpppL pl-py    <x% 8 L `p polyfor.o/ 1074016622 1032 20 100644 6612 ` ELFD "4( &+05:?FNX_goz#6J.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatapolyforinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyforadjust_lontsincosmsfnzsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:polyfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08@H׫ ת(ש0ר8קHXצ@`ׅׄF%!ׁעףF#F"AH׀HF @׌H  ׌H (׌H 0׌H 8׌ ׍(׎0׏8א P$ ׌׍ ׌ ׌ ׌`׍X %߼߿'P'0(<$!!!@HT\׬@׍F-c 8׮HF s׏F/p>Eג`׳וF5F3Tr׏XאבPF1F0{\O@׬H'' ׌ ׍(׎0׏8װH 8׌@׭׮ 8 ׷׹F9׬ כ`׽ ןF?BF=B׿F?CF=T׬ F ׀Xׁע ׃F$F#ףF#ףׄPF$F#F"BF!\%߼0߿('`?>z򚼯HPOLYCONICR       $ ( , 6 : > B F J   %%% % % ( %< %L %\%p%%D%d %%%%4<DLT\`dp     $ 048 DH TX dhl  @ LPTX` t    xx"polyfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c polyfor.c(polyforint L)r_majP*r_minX+center_lon`,center_lath-false_eastp.false_northx0tempQpolyforHHRlon`SlathT xtU y|WsinphiWcosphiXconX mlYms@doubler_majorr_minorlon_centerlat_origin e0  e1( e20 e38!e@!esH"ml0P#false_northingX$false_easting`int /ecs/hdfeos/gctp/src/usr/includepolyfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ . $$$$$     ,)( $4,D% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ APAA@_ @$ A`A A@i @H)&polyforintLpolyfor&r_majorr_minor4lon_centerMlat_originfe0we1e2e3eesml0false_northingfalse_easting$(LPbfj0Ibs40 dq^3($`H* h00 6 >p! RP  f h q {p Hp`px&ppgpppX px-p D L  l% 8 $L ,`p 4polyinv.o/ 1074016622 1032 20 100644 6468 ` ELF "4( &+05:?FNX_gou{ 0D.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatapolyinvinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyinvphi4zasinzsinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:polyinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08@Hת ש(ר0ק8צHPץ@X׃ׄF$׀סעF"BF!@׌@  ׌@ (׌@ 0׌@ 8׌ ׍(׎0׏8א H$ ׌׍ ׌ ׌ ׌X׍P %߼߿'P'@8<$!!!PXdlצPׇXF'1PפXׅPF%!XׁHעX׃F#F"@נF ׁF!>E ׉תP׋F+RF*J@diD@lH=׬׭F-c׭P׎F.kC׮P׏F/sF.kBF-c ׌@׍ ׎(׏0א8ױײ '(l HF Dp$J0׬P׭(F-c׍F-c Hl  ׌׭HF kCF-c d 00ߢ0߼@߿8'p?>z򚼯HPOLYCONICJ       $ ( , 6 : > B   %%% % % %0 %@ %P%d%%%% %4<DLT\`dp       $(, 8< HL X\` P\ptx|      xxpolyinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c polyinv.c(polyinvint L)r_majP*r_minX+center_lon`,center_lath-false_eastp.false_northx0tempPpolyinvPHQx`RyhS lontT lat|ValWbXcYiflgdoubler_majorr_minorlon_centerlat_origin e0  e1( e20 e38!es@"ml0H#false_northingP$false_eastingXintlong /ecs/hdfeos/gctp/src/usr/includepolyinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ . $$$$$      $)( I 3 @ @A$ APAA@\ @$ ApA A@k @P)polyinvintLpolyinvr_majorr_minorlon_center6lat_originOe0`e1qe2e3esml0false_northingfalse_easting$(LPbfj2K\m~4  TqX($PP* `00 6 >p! JP x f P q {p  Hppppgpnpp p-p+    % 8 L `p psfor.o/ 1074016623 1032 20 100644 6500 ` ELF "4( $)17=DLS[palpt..symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatapsforinte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsforadjust_lonsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:psfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'( <$!!!@HPX`hש@רHקhXצ``ׅׄF%!ׁעףF#F"A׀F ׌ 0 ׭P(׬X0תXDXF+P<E׎8׏8D@ױXF EגF2@F Eא F1<Eח@ד0ו8F5׬'' ׌׭׮ 0H׌׭׮ 0P$ ׌׍ ׌( ׬`׭h %߼(߿ 'p'0(<$!!!@HT\׬@׍(F-c 8א8F ׮H׏8F/s׬ ׌׭׮ 8ב@DF22E ׳וחHF7BF5וPF5  ׹כם(F=F;Bכ F;C ׬ ן`ס ׂ8F"BF!F T_׬ ׃Xפ ׅ8F%!F$F$\c%߼0߿('`?!TD-=|׽@POLAR STEREOGRAPHICF       $ . 2 6 : >   %<%T%t % % % % %(%X%t %% %4<DLPT`tx  8 DP `dp     $ 4DT dp   (0 xxIpsfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c psfor.c,psforint= s-r_maj"P.r_min"X/c_lon"`0c_lat"h1false_east"p2false_north"x5temp"6con1"7sinphi"8cosphi"^psfor=`H"_lon"``lat"ha xDtb yD|econ1"fcon2"grh"@hsinphi"its"doubler_major"r_minor"es"e" e4" !center_lon"("center_lat"0#fac"8$ind"@%mcs"H&tcs"P'false_northing"X(false_easting"`int" /ecs/hdfeos/gctp/src/usr/includepsfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 3 $$(5$, !  4 ,(5,<=% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ ApAA@u @$p A`A A@W @`%MpsforintspsforM,r_majorBr_minorXesieye4center_loncenter_latfacindmcstcsfalse_northing!false_easting$(LP>Teu94 $qB&$`* `h00 `06 >p! FP p f \D q {p  Hp p Mp-pgpypp p )p2    % 8 L `p psinv.o/ 1074016624 1032 20 100644 6452 ` ELF "4( $)17=DLS[agmx 2.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.lit8.rodatapsinvinte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsinvphi2zatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:psinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'0(<$!!!@HPX`hש@רHק`XצhPׅׄF%!ׁעףF#F"AנF ׌ 8׭P ׬X(תXDXF+P<E׎0׏0D8ױXF EגF2@F Eא F1<Eח8ד(ו0F5׬''  ׌׭׮  8@׌׭׮ 8H$ ׌׍ ׌  ׬`׭h %߼0߿('p'0(<$!!!@HT\ׇ0ר@׉XF)BF(9@ׄ0ץH׆PF&)AF%!Hע@ף@F#ףHפHF$F#F ׀8DF!2E ת׋HF+R׋׌@F,ZF+R ׬׍F-c׍׎(F.kBF-c׌׭' 8׎0F s\n@ $ׯDF0x2Eב ג0F2BT׬@׭HF kG 8׌ ׭׎0F.kBF-c 8T ߢ ߼0߿('`?!TD-=|׽@POLAR STEREOGRAPHIC>       $ . 2 6   %<%T%t % % % % %%d%%4<DLPT`  8 DP `dp     $4<p 8<` t|  xx=psinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c psinv.c+psinvint) ,r_majP-r_minX.c_lon`/c_lath0false_eastp1false_northx4temp5con16sinphi7cosphi8es^psinv)H_x``yha lon0tb lat0|erhftsgtemphflag7doubler_majorr_minoree4 center_lon !center_lat("fac0#ind8$mcs@%tcsH&false_northingP'false_eastingXintlong /ecs/hdfeos/gctp/src/usr/includepsinv.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 2 $$(5$, !  $$0(5,8(, % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ ApAA@u @$ A`A A@o @%ApsinvintpsinvA)r_major?r_minorUeee4vcenter_loncenter_latfacindmcstcsfalse_northing false_easting$(LP;Qar %4 $`F&$* `00 06 >p! >P 4` f , q {p  Hp p Ap1p+gppp p")pK    % 8 L robfor.o/ 1074016624 1032 20 100644 8676 ` ELFX "4(  *18?GNYeq.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.bss.lit8.rodatarobforintptitleradiuscenlonoffsetprobforadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:robfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$&! (08ױ װ(ׯ0׮8׍׌DXk׊J׉ )׈ׇ('׆0ׅ8ׄ@׃HׂPׁXa׀`@ןh?םpכxיחודsגRב1א׏/׎׍ȏ׌Џ׋؏׊׉菋i׈Hׇ'׆ׅׄ׃ׂ ׁa׀(@(! %J XKP!Rד0F3%) P*H!2%($ ׬  ׬( ׌׍ %߼߿'@' <$!!!08DL׬0׍F-c ס8ׂ8F"Cׂ@F"CF E׿׀HF F D ׻DFaF=אױג%%) H @!׵$%@8!$$80!F9F7BחPF7BF5׵׷F7B$$0(!Է$$( !ԙ$c$ d!{םXF=F;AF9F7BחPF7BF5F3F2BF1DPׯ8DpF/p>EH׃ׄ'9'?!%צ''9!%'x!F(9F'1ׇPF'1F&)@צקF'1%%xp!%%ph!ը%% h`!Չ׊XF*JBF)BF(9F'1ׇPF'1F&)@F%!ׅ`F%!ׅPF%!F$LcF׉׊$$80!׬$$0(!ԭ$$( !ԎF.kAF-c׍PF-cF,Z׬׭F-c$c$ d!m$B$cC!N$!$B"!/אXF0{F/sF.k@F-c׍PF-cF,ZF+R׋hF+R׋PF+RF*J@L%߼ ߿'Pvȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!R I !/ I 3 @ @A$ A@A A@ @$ APA A@ @'irobforintrobforWilon_centerRfalse_eastingfalse_northing!pr?xlr$(LP048.M   4 e9'`'$* 0 P50 p; Cp!*U ,0 k\ v Pp 0Hpxpippyppp p+pB[    p* 8= HQ Probinv.o/ 1074016625 1032 20 100644 10260 ` ELF# "4(  *18?GhNVamy.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.sbss.bss.lit8.rodatarobinvintptitleradiuscenlonoffsetprobinvp_erroradjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:robinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$&! (08ױ װ(ׯ0׮8׍׌DXk׊J׉ )׈ׇ('׆0ׅ8ׄ@׃HׂPׁXa׀`@ןh?םpכxיחודsגRב1א׏/׎׍ȏ׌Џ׋؏׊׉菋i׈Hׇ'׆ׅׄ׃ׂ ׁa׀(@(! %J XKP!Rד0F3%) P*H!2%($ ׬  ׬( ׌׍ %߼߿'@'XP<$c#!`ht|ת`׋F+R`רh׉F)Bhצhׇ8F'1ׇ@F'1ׇF'1פׅHF%!ע׃PF#F נׁXF!F D $$Q%k% `lX!%J%k XKP!@F %)%J P*H!7%%) H @!$%@8!ם8F=F;AF9(׵F E$$80!F7Aח8F7B׷ F7C0ײ(׳ F38׮0׏װ0ױ8F1בײ0׳8ו8F5F3F2AF1F0{F/s׭D`F-`>E$ עhDF">E DFפF$ׄPF$ D F!!ץF%!ׅ`F%!׫׌PF,ZF Zש׊XF*J@F JMDHקD@FB!F(9צhD(F&(>EE׍$$0(!Ԯׯ$$( !Ԑ$c$ d!qF1F0{אhF0{F/sׯװF0{$B$cC!P$!$B"!1'$!!ד8F3F2AF1F0{אhF0{F/sF.kB׎@F.kB׎hF.kB@Cג%k% `lX!s׵%J%k XKP!W%)%J P*H!9F9F7BחhF7BF5׵׷F7B%%) H @!$%@8!$$80!ם8F=F;AF9F7BחhF7BF5F3דpF3דhF3@׻׽@׿hF?AןxF?Bן@F?CןF?CF=%)L $$ $Hqס@עhF"AF E׀F!<E:$ $$ $HU$צׇF'1|׃פ`ׅF%!%%xp!צ%%ph!է%% h`!ՈF(9F'1ׇhF'1F&)@צקF'1%k% `lX!g%J%k XKP!H%)%J P*H!)׊8F*JBF)BF(9F'1ׇhF'1F&)@F%!F$tt tHHߢH߼X߿P'vȴ9X?#??vȴ9X?vȴ9X?Q_?+?zG?Ͼvȴ9X?n.2? =p?"`A?+?Q?Ƨ-?*0 ?߻/V?}H˒?a@O?쭫U=?a@N?8YK?*0U2a?Q??!Rh?FRROBINSONToo many iterations in inverserobinv-conv2     " & *   LPX\dhpt|  ((0088@@ HH$P(P04<X@XHLT`X``dlhphx|ppxx  ((0088@ @ H$H<@\`%% % %  48lp04lp$(@D|TX\0`0h %00 %  $ @ D \ `       ( %,4<DHTlx ,8DP\htT    ,<DL\lPP|Td (d        $  xxrobinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c robinv.c.robinvint /r `0center_long h1false_east p2false_north x4i@trobinv XH ux `vy hw lontx lat|{yy |p2 }u } v } t }c ~phid y1 @ip1idouble%lon_center &R 'false_easting (false_northing  )prx *xlrintlong e /ecs/hdfeos/gctp/src/usr/includerobinv.c̿1stdio.hostandards.hDsgidefs.h7getopt.hˍ 2    B     , (LtHM9 (9   () (D B< (m  (Z*C)% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A$ A@A A@ @$h AA A@  @ X'robinvintrobinvWlon_center/R?false_easting[false_northingprxlr$(LP048+;Wt4 eI/x'$ X* 0P50;<Cp!2U @ k8 v p Hpppip!>yp!pp"' p"G+p"r[ " "  "p* #h= #xQ #sinfor.o/ 1074016626 1032 20 100644 4708 ` ELF "4( &-4<CNR^jx .symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatasinforintptitleradiuscenlonoffsetpsinforadjust_loncos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sinfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ףעס נ($ ׬ ׬ ׌׍ %߼߿'0'<$!!! (4<׬ ׍F-c ׬( בײדF3F2F2@4q׎ׯ(אF0{F/ssinforXH?lon`@lathA xtB y|Ddelta_lon@doublelon_center R!false_easting"false_northingint /ecs/hdfeos/gctp/src/usr/includesinfor.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ *     (<(% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ e @$ A@A A@e @X'sinforint sinforHlon_centerRfalse_eastingfalse_northing$(LP "&*    4 k/ O'$X* 0 8p!*J 8`H k 8up Hp p p p gp Gpp p +p L P X  x` 2 F Zp  sininv.o/ 1074016626 1032 20 100644 5172 ` ELF "4( &-4<XC IQU`lx.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatasininvintptitleradiuscenlonoffsetpsininv.lit8p_errorcosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sininv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ףעס נ($ ׬ ׬ ׌׍ %߼߿'0'<$c#! (4<צ ׇF'1 פ(ׅF%!(ע(׃F#sininvH{?x{`@y{hA lontB lat|Dtemp{@doublelon_center{ R{!false_easting{"false_northing{int{ /ecs/hdfeos/gctp/src/usr/includesininv.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ *      -($)<-% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ e @$X A@A A@ Q @'sininvint sininvHlon_centerRfalse_eastingfalse_northing$(LP"&* 4 qU.'$* 0;8p!.J $@`d, k u0 @{p  XHp p p p gp pp\ p|+pL    `% |8 L `p somfor.o/ 1074016627 1032 20 100644 14516 ` ELF3 "4(   *5<DPW_cg ry}/?Rf{.symtab.shstrtab.strtab.comment.text.sbss.bss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.lit8.rodatasomforintgsat_ratioptitleradius2genrpt_longgenrptoffsetpcossinsom_seriessomfortanatansprintfp_errorasinlog.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_varnamesbe::7.30-1276837810:somfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'0<$c#!ק菂Gצץפף׀סעF"CעףF#F"BF!p ׬ת׋F+RXשD@FB!.(באX׎ DxF{א(F0{F/s׏0F/s׍8י@חHXדPDFaחXF7BF5ו0F5ג8D$ ׌׍  $ $ ׬׍hF-c$ ׌׍hF-c$ ׌׍ $ ׬ h׎hF s׏pF/p<E׏ph׬ `׈h׉h׊pF*JBF)Bׅ`׆`ׇpF'1F&)B׃פF$ׅׄpF%!F$HׁHׂHF"BׂxF"@Hן׀pF ׻׽F=8׵חיpF9F7B׷׹F9F7C@ױײ׳F3F2BPD '('0'8'@'H' '9 ׯ0P׮8X׭(`׬@h׫Hp$ xx+R5xDF! '('0'8'@'H' '9 ףPפ0ׅF%!F$PנXס8ׂF"BF!X׻`׽(ןF?BF=`׵h׷@יF9F7@hױpײHדF3F2@px$Bxx(!R $xx(cI`5xD0F1 '('0'8'@'H' '9 ׳P׵0חF7BF5PװXױ8גF2BF1X׭`׮(׏F/sF.k@`תh׫@׌F,ZF+RhקpרH׉F)BF(9px$Bxx(!I י '('0'8'@'H' '9 ׯ0װPF0{P׭8׮XF.k@X׫(׬`F,Z`ש@תhF*J@hקHרpF(9pץP׆F&)CףXׄF$ ס`ׂF"C׿h׀F (׻pםF=0%߼߿''p@8<$!!!pxׅפxעp׃F#ס׀F!<E׆ק׈F(8<E׉׭׬ ׫DPF+P>E׎(׏DF0x2Eב(ײDF3<Eו(0׽(8@׷ ׹(כXF;BF9H׬H Pנ׿PF F <EנHׁF!HףPDF#>EׄXץPD0F&(<EׇxX׬( ר(שXF)B׊F*JBF)B`ת ׫8׌XF,ZF+Rh׬h p׭pF kE׎F.h<E׮h׏F/sh׬h H׬ אhױHF1ב`גדpF3F2F2BF1ױpF1x׬x ׵׷`F7@׳8F ׵F EF5׳ײF F3<E @$c@@(B3@;׹8׀F ׻םF=0$00(7סעF"<E ףפF$<E$PPߨP#צץF&(<Eׇ(שרF)@>E׊(H'$ '$ $0׬ ׬h X׬ ׬׍h׎׏pF/sF.kBF-c׎`F s׭XF.kBF-c׍׮ׯאpF0{F/sF.kAF kDF-c װבF1בF1׬ F  ׬ ײ׳F3׬ אXב`F1F0ױג@F2BגF2@ײד8F3דF3׳וHF5וF5F3F2CF DF1x׎P׏PF/s׏xאxF0{F/sF s ׬׍F-c `׬׍F-c װבF1בײ`F2BF1ב F BF1ױגxF2Bײ F2CF10׏F/s׬׍F-c F F׿׀(F ׀0F!F נׁPF!ס F!F םF=չ(ՕחF7@uײ(דF3R00ߢ0߼@߿8''(4<DLT\\`ׁF!\@\, עףF#\Ԍ וXח`F7BF5B׷י@F9יF9׹כ8F;BכF;@׻םHF=םF=F;BF9F F7BxײדHF3דF3׳ו8F5וF5׵ח8F7BחF7@F5F3דXוhF5F3׳ו8F5וF5׵חHF7BחF7@F5F F3אPבPF1בxגxF2BF1F ׮׏PF/s׏xאxF0{F/sׯF/s4\Ԭ׍F-c 4.F s<\׍F-c 4ՒF Dr׏xװבPF1F0{װF0{ \L ׮ F sL\լ׍F-c ׯ F {T߿('`?@?=?[Ow@` =p?򽴆&?FR5?)O?l0a\j?SC~@`)?lī@Lc˰>. &֕@@@V@>@N@.@F>z򚼯H?!z!z?!TD-@jz)U8^@|3!Ҿz򚼯H@ !TD-@!TD-??!TD-@?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without conv som-forward      $ ( , 2 8 > D N R V Z ^ b f j n r v z ~         <$t% % %00 %HH %hh$ %8 %@HLT %d %%%%%% %L% %%% (%    %   % % % % L% x% % % % \% x% % % %t % % % %HPX`d 4<@DXdlp       ,04 P ` lpx  ,48Tl(@Xp(@Xp (08@HPX`hDLh <H `x     $   L l         $ 0 H \ d t           $ ( , 4 8 P X l t           < ` t    $(8@LT`h 8@Dhp      xxsomfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c somfor.c)somforint *r_major@+r_minorH,satnumT-path\.alf_in`/lonh0false_eastp1false_northx2time3start1 4flag5sat_ratio9i:alf~: e2c~:e2s~:one_es~;dlam~; fb~;fa2~;fa4~;fc1~;fc3~; suma2;&suma4;,sumc1;2sumc3;8sumbsomfor H)lon`lath yt x|n}l}delta_lon}rlm~ tabs}tlam}xlam}c}xlamt}#ab2}'ab1}+xlamp}1sav}d sdsqsdtanlg~xtan~tphi~"dp~%rlm2~scl} tlamp}conv|delta_lat|!radlt}'radln}tempPOerrorbuf~L230L240pL250 L260 |L300  som_series @p  fbT  fa2\  fa4d  fc1l  fc3t  dlam| sd  sdsq h sq fc@ double!lon_center!a!b!a2!!a4 !$c1(!'c30!*q8!,t@!.wH!0xjP!3p21X!7sa`!:cah!=esp!@sx!Bstart"false_easting#false_northing 'gsat_ratio int long  char /ecs/hdfeos/gctp/src/usr/includesomfor.cͿ>stdio.hostandards.hDsgidefs.h7getopt.hˍ 7488 $%,, ) ' $$,$4$4 4$$$$x  4$$$$x 4   ##'''$ '''8$ 'd $( \##$$ "$0 |0$`$  $$08<<,08% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/  .: ;9 ' @ @ : ;9 I 4: ;9 I $> 4: ; 9 I ? I 3 @ @A$ AAA@ @$ AAA@ @  A`A@ @@6somforintsomforigsat_ratio)som_series lon_center"a2bBa2Sa4dc1uc3qtwxjp21sacaes sstart0false_eastingLfalse_northing$(LPtx$>BF.>O`q,He~ 4` 0'$@*000500 ;PCp!$U @ k  v p %Hp%p%p-p/op0>p0 p0:p1,!p1M 2 2 0+ 2< ; 3\N 3lb 3tw 3|p 30sominv.o/ 1074016628 1032 20 100644 13940 ` ELF1 "4( @%,4@GOSW b@iquz~"2EYn.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatasominvintptitleradius2genrpt_longgenrptoffsetpcossinsom_seriessominvp_errorexpatantanasinadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_varnamesbe::7.30-1276837810:sominv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'0<$B"!צץפף׀סעF"CעףF#F"BF!x תשק׈F(9`%(c`׎׍`׋ D`Fc!׍(F-cF,Z׌0F,Zג8ב@`׏HDF!בPF1F0{א0F0{$ ׌׍ $ $ ׬׍XF-c$ ׌׍XF-c$ ׌׍ ׬$ ׬ p׎pF s׏`F/p<E׏`p׬ h׊p׋p׌xF,ZF+Rׇh׈h׉xF)BF(9ׅצF&)A׆ׇxF'1F&)CP׃PׄPF$ׄhF$PׁׂxF"A׿נF 8׹כpםxF=F;B׻׽F=F;C@׵׷F7CHױײ׳F3F2BXD '('0'8'@'H' '9 ױ0Pװ8Xׯ(`׮@h׭Hp$ xx+R5xDF '('0'8'@'H' '9 ץPצ0ׇF'1F&)@PעXף8ׄF$F#X׿`נ(ׁF!F `׹h׻@םF=F;@h׳p׵HחF7BF5px$Bxx(!R $xx(cI`5xD@FB! '('0'8'@'H' '9 ׷P׹0כpF;BF9PײX׳8וpF5F3Xׯ`װ(בpF1F0{`׬h׭@׎pF.kBF-chשpתH׋pF+RF*J@px$Bxx(!I ם '('0'8'@'H' '9 ױ0ײPF2@Pׯ8װXF0{X׭(׮`F.k@`׫@׬hF,ZhשHתpF*J@pקP׈F(9ץX׆F&)C ף`ׄF$סhׂF"C(׿p׀F 0%߼߿''<$B"! רצׇF'1פׅF%!סׂ׃F#F"C׀`(!2 vש ׬ (ת(׫(F+R0׬ ׎`׏hF/sF.ׯ0א@F0{אF0{װ0ב8F1בF1ױ0גPF2BגF2@F1F0{F {F/s׬׍pF-c ׬׍F-c ׬ ׬׍F-c ד׵חF7CF5וXF5׵חF7CF5ו׷F7BF5ו ׷F7BF5ו(׷F7Bח0F F7@חיXF9F7BF58ױ8גF2Cׯװ F0{@ׯ׮@F sF/p<E$(c2`(2 $$ $׬ H׬׍F-c ׬׍F-c׭H׎(F.kBF-c׍0F kBF-c׍׎F.kB׎XF.kC׎XF.kC׎F.k@F kDF-c P׬P XװXבF1בpF1`׮HׯHF/sh׬ F דF3<E׵חF7@׬` p׹p׻pF;Bx׬ ׬ ׌p׎ׯxאבxF1F0{F/s׭F.kBF-c׭p׎hF.kB׮h׏8F/s׏F/s׏װxF0{F/sׯxאHF0{F/sF sF.kBF kCF-c׍׮x׏HאF0{F/sF.kAF-c ׳DF3>Eו׷DF9<Eכh׬ DF >Eן׬ DF!<Eׂhקר׉תF*JA׊F*JBF)BF(9פץ׆`F&)BF%!׃hF ׄF$<E׬p׭x׎xF.kB׎׏xF/s׏אxF0{F/sF.k@F kDF-c אhF ׏F0x>E׬ ׬ ׬ ׬׭F-c׍pF kBF-c׍h׎׏xF/sF.kBF-c ׬׍F-c ׮ ߢ߼߿''(4<DLT\\`ׁF!\@\, עףF#\Ԍ ו`חhF7BF5B׷י@F9יF9׹כ8F;BכF;@׻םPF=םF=F;BF9F F7BײדPF3דF3׳ו8F5וF5׵ח8F7BחF7@F5F3ד`וpF5F3׳ו8F5וF5׵חPF7BחF7@F5F F3אXבXF1בגF2BF1F ׮׏XF/s׏אF0{F/sׯF/s4\Ԭ׍pF-c 4.F s<\׍F-c 4ՒF Dr׏װבXF1F0{װF0{ \L ׮ F sL\լ׍F-c ׯ F {TD߿('`?@?=?[Ow@` =p?򽴆&?FR5?l0a\j?SC~@`)?lī@Lc˰>. &֕@@@V@>@N@.@F@!TD->z򚼯Hz򚼯H?!TD-?FSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse       $ ( , 2 8 > D N R V Z ^ b f j n r v z ~         DHP%d%pt|%00%HH %hh % % % %H %P T X %   %   %x |  %LLLPPP % %p % % % %% % % X% l% % % %  % %  % L % % < % P% d % % % D % l % % %< %h %<DLTX|,8@L X\` x       $8<D PTX\lpt(,D,X $t  (0<D\dl    (,D      ( , 4 < D T h |       $ , 0 P \ d l         < H l |             8 L ` x       ( @ h t x           ,4@H`dlp  8 \d  xxsominv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c sominv.c&sominvint@ 'r_major@(r_minorH)satnumT*path\+alf_in`,lonh-false_eastp.false_northx/time0flag 1sat_ratio3i4alf~4 e2c~4e2s~4one_es~5dlam~5 fb~5fa2~5fa4~5fc1~5fc3~5 suma25&suma45,sumc152sumc358sumbsominv@ HOy`xh lont lat|tlon} conv~sav~sd~sdsq~blon~#dif~'st~*defac~0actan~6tlat~;dd~>bigk~Cbigk2~Ixlamt~sl~ scldlatdlontemp}inumb~som_series p fbT fa2\ fa4d fc1l fc3t dlam|sd sdsqhsqfc@double lon_center a b a2 !a4  $c1( 'c30 *q8 ,t@ .uH 0wP 2xjX 5p21` 9sah I 3 @ @A$@ AAA@ @$@ AAA@ @  A`A@ @'sominvintsominvOsom_series'lon_center@aPb`a2qa4c1c3qtuwxjp21saca)es:sJfalse_eastingffalse_northing$(LPtxgko<L\m~%6Fb  4@ t '$*X00X68>p!P h fL q  {p %(Hp%pp%p,#p-p.jp. p/+p/I!p/j 0 0$0& 0T6 1DI 1T] 1\r 1dp 1l0sterfor.o/ 1074016628 1032 20 100644 5860 ` ELFP "4(  (/6@GOWbf ltx 2.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatasterforinttsincosptitleradiuscenlonmeroriginoffsetpsterforadjust_loncos.lit8p_errorsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sterfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (0פףע ס0נ( ׬ '('0 $ ׌ ׌ ׌ ׌ ׍ %߼߿'@'@8<$!!!PXdl׬P׍F-c ׬X'' ׬ װב(F1ױײד0F3F2BF1 ׮ ׏F/sF s׏F/p>E $$ $g0(ג׳ וF5F3(׬ ם ׿ס(ׂF"BF!F?F?@dח׹(כF;B׻ם0F=׽׿׀(F F?BF=F;BF9l00ߢ0߼@߿8'pSTEREOGRAPHICPoint projects into infinityster-for>       & * . 2 6   d%lpx%%% % %   %4%D %00%%08@HPX\` t       0 @ Td|   ,<?=|׽@ xxsterfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c sterfor.c&sterforint *'r_majP(center_lonX)center_lat`*false_easth+false_northpEsterfor|HFlon`GlathH xtI y|KsinphiKcosphiLdlonMcoslonNkspOgdoubler_majorlon_centerlat_originfalse_northing false_easting !sin_p10("cos_p100int /ecs/hdfeos/gctp/src/usr/includesterfor.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ +      ($ 41($D% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@r @$ ApA A@b @|)sterforint*sterforur_majorlon_center*lat_originCfalse_northing`false_easting|sin_p10cos_p10$(LP@DH &?\x 4 qF($|*8098p!>J `` X\ k  u0 {p  Hp 8p PppgpJpp p-py    x%  8 0L 8`p @sterinv.o/ 1074016629 1032 20 100644 6356 ` ELFL "4(  (/6@GOW ]bgmx|"6.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatasterinvinttsincosptitleradiuscenlonmeroriginoffsetpsterinv.lit8atanasinatan2adjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sterinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (0פףע ס0נ( ׬ '('0 $ ׌ ׌ ׌ ׌ ׍ %߼߿'@'80<$!!!PXdl׳Pו F5PױXגF2AXׯPװPF0{װXױXF1F0{F {׬׍׎F.kBF-c חF7׬'' כd[׹F EכF;>Eםl}({׌0׭X׮F.kBF-c׭F-c׭׎(F.kBF-c lאF בF1 ׯ F {אF0x>E.גDF2>E׬P׭XF kG @׌F c Hd(F׬PF c׭X @׌F c Hd(40l ׮׏(F {F/s ׭ F kE׎F.h<E װPF בF1<E(׌0׭P׮F.kBF-c׭׮ F.kB @׌F c Hd((ߢ(߼8߿0'pSTEREOGRAPHICR       & * . 2 6 : > B F J   d%lpx%%% % %  d %%%l%%%%%%%08@HPX\` t      PT ` l     , @h x     $ @ `  @=|׽!TD- xxsterinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c sterinv.c&sterinvint *'r_majP(center_lonX)center_lat`*false_easth+false_northpEsterinvHFx`GyhH lontI lat|KrhLzMsinzM coszNcondoubler_majorlon_centerlat_originfalse_northing false_easting !sin_p10("cos_p100int /ecs/hdfeos/gctp/src/usr/includesterinv.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ +     08$)L ))HHx 4 D% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A@AA@r @$ ApAA@ @)sterinvint*sterinvur_majorlon_centerlat_origin*false_northingGfalse_eastingcsin_p10ycos_p10$(LP@DH &C_u 4 $qJ($* 80 8p! RJ @` h k 0u0 {p  Hp p8ppgp;pp p-py t |  x% 8 $L ,`p 4stplnfor.o/ 1074016630 1032 20 100644 11716 ` ELF( "4(   # ) 5=EKQW^eqw} "3CSdt.symtab.shstrtab.strtab.comment.text.sbss.data.rodata.srdata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnames.text.sbss.data.rodata.srdata.lit8stplnforintsprintfp_errorfopenfseekfreadfcloseptitlegenrpt_longpakczpaksztmforintlamccforintpolyforintomerforintstplnfortmforlamccforpolyforomerfor.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:stplnfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<%(!ԯܯ䯧$0ԏ"ԯ&@<`44)%4ph!404'44)$?44(! $B4C!BC404$44(0$'8$ԏ܏ '8$ $ ' '  $$ $0((#((#)0% '$$  '$$ '$$   '8$ԏ܏ '8$ $x$ ԏ$ $$S$ ףנׁעF"AF DF! $=פ(׬؏ F '0 ׅF%B800:׬ F '0 ׆F&@0@0%רHקP׬׭ ׮(ׯ8װ@ױHײP $ f׬ F '0 ׉F)BX00׬菙 F '0 ׊F*`00׬؏ F '0 ׋F+800׬ F '0 ׌F,@0@0׮H׭P׬׭ ׮Xׯ`װ8ױ@ײH׳P $:׬؏ F '0 ׏F/800׬ F '0 אF0@00~ײHױP׬׭ ׮8ׯ@װHױP m$ Ki׳(׬ F '0 וF5Bh00T׬؏ F '0 חF7p00?׬ F '0 יF9Bx00*צHץP$D DDXD`׬׭ ׮(ׯhװpױxײH׳Pנ׿X׽׻`$ ߢ߼߿''<$c#!08DL$"׬0׭8DL @ %(HD$׬0׭8DL @@%(1-$ K׬0׭8DL @`%($׬0׭8DL @%(ߢ߼߿'Pef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-forSTATE PLANEZone: Datum: NADr??FR5      $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                  hl|%(( % % %88 hh %T %p % % % %%(( %xx %,08%hlt%%%%,%%%% %$%`%x%%%4%\%t%%%(%X%p%%%%%%       \% % % p%4Dx     P l x      4 p    ( 8      0\ t   0 DX p   $ 8T l |    $ 8 X     L l  xxstplnfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c stplnfor.c5stplnforintI  6zonead7sphereal8 fn27t9 fn83|;inda|<ia|=nadvala~H>table5} ?pnameP}dc@bufk|Ar_maj~Ar_min~Ascale_fact~Acenter_lon~Bcenter_lat~Bfalse_east~Bfalse_north~Cazimuth~Clat_origClon_origC"lon1C'lat1~C,lon2C1lat2~DmodeaD iflga~Eptr}stplnforI  HIlon`lath xt y|iflgaint idIlong inzonea a  NAD27~ a ( NAD83chardouble __file_sV _cntI _ptrg _baseg _flagV _o_fileV _filenunsigned charVunsigned short FILE /ecs/hdfeos/gctp/src/usr/includestplnfor.c:stdio.hostandards.hDsgidefs.h7getopt.hˍ 9   1{   1{ ,$1((8(((,$ $%DD DDDD DD DDD   @@@@% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/ I 3 $> I  !/ : ; 9   : ; 9 I8 : ; 9 I@ @A$  AAA@= @$  APAA@g @ +stplnforintstplnfor$__file_sFILE4PidiinzoneNAD27NAD83$(LP]z4 h,)$` * 0 06P>F0Lp!^ p tP  8p @Hppp$6p&1p&pp'[ p'{/p'(p'8 ( # ( 4 (4`D (W (k ( (stplninv.o/ 1074016630 1032 20 100644 11796 ` ELF) "4(   # ) 5=EKQW]dkw}  (9IYjz.symtab.shstrtab.strtab.comment.text.sbss.data.rodata.srdata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnames.text.sbss.data.rodata.srdata.lit8stplninvintsprintfp_errorfopenfseekftellfreadfcloseptitlegenrpt_longpakczpaksztminvintlamccinvintpolyinvintomerinvintstplninvtminvlamccinvpolyinvomerinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:stplninv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<%(!ԯܯ䯧$0ԏ"ԯ*@<`44)%4ph!404'44)$?44(! $B4C!BC404$44(0$'8$ԏ܏ '8$ $ ' '  $$ $0((#((#)0%  '$$  '$$ '$$   '8$ԏ܏ '8$ $x$ ԏ$ $$S$ ף נׁעF"AF DF!($=פ0׬ F '8 ׅF%B@88:׬ F '8 ׆F&H8@8%רPקX׬ ׭(׮0ׯ@װHױPײX $ f׬ F '8 ׉F)B`88׬ F '8 ׊F*h88׬ F '8 ׋F+@88׬ F '8 ׌F,H8@8׮P׭X׬ ׭(׮`ׯhװ@ױHײP׳X $:׬ F '8 ׏F/@88׬菙 F '8 אF0H88~ײPױX׬ ׭(׮@ׯHװPױX m$ Ki׳0׬ F '8 וF5Bp88T׬ F '8 חF7x88?׬ F '8 יF9B88*צPץX$D DD`Dh׬ ׭(׮0ׯpװxױײP׳Xנ׿`׽׻h$ ߢ߼߿''<$c#!08DL$"׬0׭8DL @ %(HD$׬0׭8DL @@%(1-$ K׬0׭8DL @`%($׬0׭8DL @%(ߢ߼߿'Pef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-invSTATE PLANEZone: Datum: NADr??FR5      $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                   hl|%(( % % %88 hh %T %d % % % %%%(( %$x(x0%<@H%x|%%%$%<%%%%%4%p%%%%D%l%%%%8%h%%%%%(%% , , , 0 0 0 l% % $% %4Dx     P ` |      , D      8 H    0 @l    @ Th    4 Hd |     $ 4 H h     \ |  xxstplninv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c stplninv.c5stplninvintJ  6zonebd7spherebl8 fn27t9 fn83|;indb|<ib|=nadvalb~H>table5}! ?pnameP}dc@bufk|Ar_maj~Ar_min~Ascale_fact~Acenter_lon~Bcenter_lat~Bfalse_east~Bfalse_north~CazimuthClat_origClon_origC"lon1C'lat1~C,lon2C1lat2~DmodebD iflgb~Eptr}stplninvJ HJx`yh lont lat|iflgb int idJ long inzoneb b  nad27 b ( nad83 char double __file_sW _cntJ _ptrh _baseh _flagW _o_fileW _fileo unsigned charW unsigned shortFILE /ecs/hdfeos/gctp/src/usr/includestplninv.c;stdio.hostandards.hDsgidefs.h7getopt.hˍ 9   1{   1{ ,$1((8(((,$ $)DD DDDD DD DDD   @@@@% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I !/ I 3 4: ;9 I $> I  !/ : ; 9   : ; 9 I8 : ; 9 I@ @A$  AAA@A @$  APAA@g @ +stplninvintstplninv$__file_sFILE4Qidjinzonenad27nad83$(LP^{4 xB)$p *@0@06p>F0 Lp!8^ x t|  <@p Hppp$wp&sp'>pp' p'/p'(p(%8 (`# (h 4 (`D (W (k ) )tmfor.o/ 1074016631 1032 20 100644 8532 ` ELF "4( $).38=DLS]dl<r}  -=Pd.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatatmforinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptmforadjust_lontsincossin.srdatap_errorlogcosacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:tmfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08@HP׫ ת(ש0ר8ק@ צP`ץHh׃ׄF$׀סעF"BF!H׌H (׌H 0׌H 8׌H @׌(׍0׎8׏@א  בF BX׎H׏אHF0{F/sP׌H׍F-`<EגpDp$ ׌׍ ׌$ ׌ ׌  ׌h׍` %߼߿'`'`ph<$!!!׬׍F-c x׬'' ׎pDxF/p2EU׬ ױF BװF בF1F ב F1<E $' $]`׬׍F-c׍׮F.kAF-c ׎׏א(F0{F/sF.׬ ׬F c׍׮ׯF/sF.kAF kDF-c ׭DpF.h<Eׯ F { אבF1ױ ג F2AF1`׻׽F=(׷(׹(F90גP׳׵F5F38׬ @ץ@צ@F&)BHׁׂHףפF$F#F"A ןנ F F P׌(׍0׎8׏@װ x׏F {X׋h׬(׭P׎F.kBF-c׭0׎0F.kC׮8׏װHF0{F/sׯ0א8F0{װHױHF1ב@ײHדHF3F2AF1ױ8גPF2BF1בPגXF2BF1F0{F/sF.kB׎F.k@F-cF,Z+ׇ`׈ש@תPF*JBת0׫0׌`F,Z׬8׍hF-c׍@׮HF.kAF-c׭8׮8F.kB׎pF.kBF-c׭0׎xF.kC׮HׯHF/s׏װHבXF1F0{F/sׯ8אF0{F/s׏PאF0{F/sF.kBF-cF,Z׌(F,ZF+RF*JBתX׋XF+RF*J@F)BF(9``ߢ`߼p߿h'?>h=|׽?@@4@@2@R@M@8@"@@>@N@@tTRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinityb       $ ( , 0 : > B F J N R V Z   %%% % %pt| % %   %%%%   8%X%%HH%%8%h% %t %8@HPX`hlp|      $(,8<@TXlx      ,4 T `   4 Hd  (,H\`dhp  8<T`htm-for xxtmfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c tmfor.c2tmforint \3r_maj|@4r_min|H5scale_fact|P6center_lon|X7center_lat|`8false_east|h9false_north|p;temp|dtmfor<H|elon|`flat|hg xth y|jdelta_lon|~ksin_phi|~kcos_phi|~lal|l als|mb|~nc|n t|ntq|ocon|o n|oml|double#r_major|$r_minor|%scale_factor|&lon_center|'lat_origin| (e0|((e1|0(e2|8(e3|@)es|H)esp|P*ml0|X+false_northing|`,false_easting|h-ind|pint| /ecs/hdfeos/gctp/src/usr/includetmfor.cͿ)stdio.hostandards.hDsgidefs.h7getopt.hˍ 9 $$$$$<%$ $    ,)(5$TP (0$ , =+9% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A`AA@z @$< AA A@  @<%tmforint\tmforr_majorr_minorscale_factorlon_centerlat_origine0e1!e22e3CesTespfml0xfalse_northingfalse_eastingind$(LPptx .?Pbt4 y-x&$<* x00 6 e>p! bP p f q p{Pp XHppp pgpppk p)p p x  - P@ `T hhp p(tminv.o/ 1074016632 1032 20 100644 9508 ` ELF "4( $).38=DLS]dl`rvz 1ATh.symtab.shstrtab.strtab.comment.text.sbss.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.lit8.rodatatminvinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcosasinzatan2adjust_lonsinp_errortsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:tminv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!! (08@HP׫ ת(ש0ר8ק@ צP`ץHh׃ׄF$׀סעF"BF!H׌H (׌H 0׌H 8׌H @׌(׍0׎8׏@א  בF BX׎H׏אHF0{F/sP׌H׍F-`<E$p$ ׌׍ ׌$ ׌ ׌  ׌h׍` %߼߿'`'<$c#!د䯧$p c׬׍׎F.kBF-c ׳ו׷F7CF5וF5׏ װבגF2BF1F0{׬ י׻ ׽ F=F;A׻׽F=םF=F;CF D(׬( ׿DF <EF GעDF#2Eפ D(F% 2E׆2׬׭  ׌F c "׳וhF5ױג`F2A׎XׯאF0{F/s׏F/s(׭(08$  G׬0׍ F-c ׬0׍(F-c ׬0׍0F-c ב@ײF2Bײ(ד0׵F5F3ד8F F3F2@ג(F2Cײ0F2A@ׯ0װ@F0{0׮@F s׏8F/p>E8KP*@ $$ $_8$8$׳0F ו@F5<E׬0'H'P ׬0 X׏PװPױPF1F0{`׭`׮`F.kBh׫X׬XF,ZpשpתpF*JBxׅ׆HקHרHF(9F'1F&)A(׃פ(F !F$נׁׂHF"AF!ס(F!׻׽ןF?BF=׷׹F9ױ0ײ׳X׵F5F3׳F3ד׵חHF7C׷pיPF9יXF9׹`כ`F;BF9׹hכ0F;BF9יPכhF;BF9׹כpF;C׻pםxF=םF=׽`ןF?BF=׽xןF?BF=םPןF?BF=׽hןPF?BF=F;BF9F7BF5F3F2A׌׭׎ׯא F0{װ`ױpג(F2BגF2@F1ױגF2CגPדF3׳pוF5וX׷`י(F9F7AF5׵hחPF7BF5F3׳xוHF5F3F2BF1F0{F/sF.kB׮PF.kCF-c ׬؏ DFו@F5sגRߢ߼߿'?>h?@@@=|׽?!TD-@8@@@$@"@>@V@N@r@F@o@4@ @<TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSEt       $ ( , 0 : > B F J N R V Z ^ b h l   %%% % %\`h %| %   %%%%D%%%%%%8%T%HHhh%P%`%%%8@HPX`hlp|      $(,8<@Xd ptx      04@ Tdpx|  \|   ,4 HP \l| ,L \ lPXdlx$,4DL\dht|  $ xxWtminv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c tminv.c3tminvintK \4r_maj@5r_minH6scale_factP7center_lonX8center_lat`9false_easth:false_northp<tempctminvKPHdx`eyhf lonRtg latR|icon~i phi~jdelta_phi~ki1~lsin_phi~lcos_phi~ltan_phi~mc~m cs~mtmtsmnmrmdmdsnf~n h~ng~ntemp~omax_iter1~double$r_major%r_minor&scale_factor'lon_center(lat_origin )e0()e10)e28)e3@*esH*espP+ml0X,false_northing`-false_eastinghlong. ind1pint9 /ecs/hdfeos/gctp/src/usr/includetminv.cͿ/stdio.hostandards.hDsgidefs.h7getopt.hˍ : $$$$$<%$ $   0,, @(( E@,%(!( t)$ $, ,$=58% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A`AA@u @$` AAA@ @P%[tminvint\tminv[r_majorr_minor2scale_factorMlon_centerflat_origine0e1e2e3esespml0false_northingfalse_easting9ind$(LPptx.Ib{-G4 q5|&$P*0t0006s>p![tP  f q {p Hpp[pc=pgpppw p)p |   % \8 lL t`p  | utmfor.o/ 1074016632 1032 20 100644 8868 ` ELF "4( %-27<AFMYahr<y  ,<Oc.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.srdata.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodata.lit8utmforintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutmforadjust_lontsincossin.srdatalogcosacostan.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:utmfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $'<$B"!08@LL"&"# L'd&d#(c=` $$ $ ~ץ0פ8ף@D LO @& @#88#8@$IDFaׂF"B׀hL׆ D8 ׭ `׋׌F,Z׈ שתF*JBF)BH׌H ((׌H (0׌H (8׌H (@׌(׍0׎8׏@א  (דF XאHב גHF2AF1P׎H׏(F/p<Eו p$ L$ ׌׍ ׌$ ׌ ߢ߼߿'P'`ph<$!!!׬׍F-c x׬'' ׎pDxF/p2EU׬ ױF BװF ב0F1F ב8F1<E $' $]`׬׍ F-c׍ ׮F.kAF-c ׎׏א@F0{F/sF.׬ ׬F c׍ ׮ׯF/sF.kAF kDF-c ׭DpF.h<Eׯ F { אבF1ױ ג F2AF1`׻׽F=(׷(׹(F90גP׳׵F5F38׬ @ץ@צ@F&)BHׁ ׂHףפF$F#F"A ןנ F F P׌(׍0׎8׏@װ x׏F {X׋h׬(׭P׎F.kBF-c׭0׎HF.kC׮8׏ װHF0{F/sׯ0אPF0{װHױHF1בXײHד`F3F2AF1ױ8גhF2BF1בPגpF2BF1F0{F/sF.kB׎ F.k@F-cF,Z+ׇ`׈ש@תPF*JBת0׫0׌xF,Z׬8׍F-c׍X׮HF.kAF-c׭8׮8F.kB׎F.kBF-c׭0׎F.kC׮HׯHF/s׏װHבpF1F0{F/sׯ8אF0{F/s׏PאF0{F/sF.kBF-cF,Z׌@F,ZF+RF*JBתX׋XF+RF*J@F)BF(9``ߢ`߼p߿h'Illegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinity?FR5AAc?>h=|׽?@@4@@2@R@M@8@"@@>@N@@tb       $ ( , 0 : > B F J N R V Z   \`dhp%L%d%| % % % (( %$P(P0 %D%P`T`\%l%%%$%`dp%%%%% %l  ,@DH X\` ptx    , 8<@ LX dh     @Lhl    <@L   ,8HTh|$4HPdptutm-for xxutmfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c utmfor.c2utmforint~ 3r_maj7`4r_min7h5scale_fact7p6zone|8temp7butmfor~H7clon7`dlat7he xtf y|hdelta_lon7~isin_phi7~icos_phi7~jal7j als7kb7~lc7l t7ltq7mcon7m n7mml7double$r_major7%r_minor7&scale_factor7'lon_center7(lat_origin7 )e07()e170)e278)e37@*es7H*esp7P+ml07X,false_northing7`-false_easting7h.ind7pintlong72 /ecs/hdfeos/gctp/src/usr/includeutmfor.cͿ(stdio.hostandards.hDsgidefs.h7getopt.hˍ stdlib.hˍOlocale_attr.hˍ6 A(D=$$$$$<%$ $ $    ,)(5$TP (0$ , =+9% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ APAA@ @$< AA A@  @'utmforintutmforAr_majorWr_minormscale_factorlon_centerlat_origine0e1e2e3esesp!ml03false_northingPfalse_eastinglind$(LP+/3Si /Lhz4p ywZ$* x0 80x>p!(bP  f4 q Dh{p Hppp6pgpKpp p+p    - @ T hp (utminv.o/ 1074016633 1032 20 100644 9876 ` ELF" "4( %-27<AFMYahr`y}0@Sg.symtab.shstrtab.strtab.comment.text.sbss.rodata.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodata.lit8utminvintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutminvexpcosasinzatan2adjust_lonsintsincostansign.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:utminv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $'<$B"!08@LL"&"# L'd&d#(c=` $$ $ ץ0פ8ף@D LO @& @#88#8@$IDFaׂF"B׀hL׆ D8 ׭ `׋׌F,Z׈ שתF*JBF)BH׌H ((׌H (0׌H (8׌H (@׌(׍0׎8׏@א  (דF XאHב גHF2AF1P׎H׏(F/p<E$ pp$ L$ ׌׍ ׌$ ׌ ߢ߼߿'P'<$c#!د䯧$p c׬׍׎F.kBF-c ׳ו ׷F7CF5ו0F5׏ װבגF2BF1F0{׬ י ׻ ׽ F=F;A׻׽F=ם F=F;CF D(׬( ׿DF <EF GעDF#2Eפ D(F% 2E׆2׬׭  ׌F c "׳וhF5ױג`F2A׎XׯאF0{F/s׏F/s(׭(08$  G׬0׍8F-c ׬0׍@F-c ׬0׍HF-c ב@ײF2Bײ(ד0׵F5F3ד8F F3F2@ג(F2Cײ0F2A@ׯ0װ@F0{0׮@F s׏PF/p>E8KP*@ $$ $_8$8$׳0F וXF5<E׬0'H'P ׬0 X׏PװPױPF1F0{`׭`׮`F.kBh׫X׬XF,ZpשpתpF*JBxׅ ׆HקHרHF(9F'1F&)A(׃פ(F !F$נׁ ׂHF"AF!ס(F!׻׽ןF?BF=׷׹F9ױ0ײ׳X׵F5F3׳F3ד0׵ח`F7C׷pיhF9יpF9׹`כxF;BF9׹hכHF;BF9יPכF;BF9׹כF;C׻pםF=םF=׽`ןF?BF=׽xןF?BF=םPןF?BF=׽hןhF?BF=F;BF9F7BF5F3F2A׌׭׎ ׯא8F0{װ`ױpג@F2Bג F2@F1ױגF2CגPדF3׳pוF5וp׷`י@F9F7AF5׵hחhF7BF5F3׳xו`F5F3F2BF1F0{F/sF.kB׮PF.kCF-c ׬؏ DFוXF5sגRߢ߼߿'Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE?FR5AAc?>h?@@@=|׽?!TD-@8@@@$@"@>@V@N@r@F@o@4@ @<t       $ ( , 0 : > B F J N R V Z ^ b h l   \`dhp%L%d%| % % %(($ %0P4P< %P%\```h%x%%H%%0%H%%%%%%%%%l  ,@DH X\` ptx    8 DHL Xd pt   (,D Tt  , <D hx    ,<h    dh(8DHXdlx $,4H\   xxutminv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c utminv.c4utminvint 5r_maj`6r_minh7scale_factp8zone|:tempeutminv Hfx`gyhh lon ti lat |kcon~k phi~ldelta_phi~mi~nsin_phi~ncos_phi~ntan_phi~oc~o cs~ototsonorododspf~p h~pg~ptemp~qmax_iter~double%r_major&r_minor'scale_factor(lon_center)lat_origin *e0(*e10*e28*e3@+esH+espP,ml0X-false_northing`.false_eastinghlong/ indpinth /ecs/hdfeos/gctp/src/usr/includeutminv.cͿ/stdio.hostandards.hDsgidefs.h7getopt.hˍ stdlib.hˍOlocale_attr.hˍ8 A(D=$$$$$<%$ $ $  0,, @(( E@,%(!( t)$ $, ,$=58% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ APAA@ @$` AAA@ @ 'utminvintutminvr_majorr_minorscale_factorlon_center!lat_origin:e0Ke1\e2me3~esespml0false_northingfalse_eastingind$(LP+/36GXiz4 q%{Z$ *t080>p!tP  fX q {p (Hpppplp gpqpp p +p ,   !% !8 !L !`p ! vandgfor.o/ 1074016634 1032 20 100644 6388 ` ELFh "4( !(/6>(GR X^bjv$.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatavandgforintptitleradiuscenlonoffsetpvandgforadjust_lon.lit8asinztantsincos.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:vandgfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ףעס נ($ ׬ ׬ ׌׍ %߼߿'0'`h`<$!!!׬׍F-c p׮F s׏F/p>EאױגF2BF1p׏OX׬׍F-cF c׍F-c p׮F s׏F/p>E ׯF {אF0{F {אF0x>E,גױDF1>E׬׍(F-c ׎׏אF0{F/F/s׬׍(F-c ׎׏אF0{F/F/sXד׵F5׵חF7CF5F ו(F5ױײF2B׬' '( צ(ק(ר F(9׈0F(9F'10פ0ץ0F%!8ס0ׂף F#׃0F#F"B@׿@נ@F HכםF=׽׿0נHF F?B׿נ0סHF!F נ0סHF!F נסHF!ס8עHF"AF!F F F?@F=׽׿HF?@F=P׷DF9<EשPF JGPׯPאF0{׬P׍׎F.kBF-cF cP׫DPF+P>EבגדF3ד8׵P׷PF7BF5׵P׷יF9F7BF5F F3F2@וחיF9י8׻P׽PF=F;A׻P׽ןF?BF=F;AF DF9F7A5XXߢX߼h߿`'VAN DER GRINTEN8      " & * .   HLT%d%t%%   %d % %0 %%,4<DP ` p |   0L X ` |      $ , 8<@ d t          < hlp x  =|׽@ !TD-@!TD-?? xxvandgfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c vandgfor.c)vandgforint0 *r%`+center_long%h,false_east%p-false_north%xAvandgforH%Blon%`Clat%hD xtE y|Hdlon%~Itheta%~Jal%~J asq%~Kg%K gsq%Lm%L msq%Mcon%Ncosth%Nsinth%double"lon_center%#R%$false_easting%%false_northing%int% /ecs/hdfeos/gctp/src/usr/includevandgfor.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ -      -)(8Q(MD8$,,( ((e]% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ e @$( AAA@ @+vandgforintvandgforH/lon_centerHRXfalse_eastingtfalse_northing$(LP*.2DTp 4 qe8)$* 0 8p! 8J P` @ k Tu0@{p PHpppQpCgppp p:/piL    `% @8 PL X`p `vandginv.o/ 1074016635 1032 20 100644 6292 ` ELF "4( !(/6>G MRVamy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatavandginvintptitleradiuscenlonoffsetpvandginv.lit8acoscosadjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:vandginv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ףעס נ($ ׬ ׬ ׌׍ %߼߿'0'ph`<$!!!px׿p׀F p׻xםF=xחיF9׳p׵F5ױxײF2CׯװF0{װױF1F0{׮F sׯאF0{F/sF s ׬׭F-c׭ ׮ׯאF0{F/sF.kAF-c(ת ׋F+R׋F+R׫׬׍F-cF,ZF+R׫׬F,ZF+R0רשF)Bש0F)Bש(ת(׫(׌F,ZF+RF*JBת0F*JCת0F*JCת0F*JCת(׫ ׌ F,ZF+R׫0F+R׫0F+RF*JA׊(F*JCF)B8ץ צ(ק(F'1ׇ0F'1ק0F'1F&)Aצ0F&)C@פ@F !ׅ0F%!F !ׅF%!Hע8׃0F#ף@F#ףHF#סF E׀F!<EעDF">E׃ׄ@׬ ׇ0F'PצxD(F&(>E׬P׍HF-c ׮(׏0F/sׯ0F/sׯHF {F/sF s׏F/sN׬P׍HF-c ׮(׏0F/sׯ0F/sׯHF {F/sF s׏PF/snװF בXF1<EבX$׌׭׎@F.k@׮ׯF/sׯװF0{F/s׏F/s׏F/sׯװF0{F/sF sF.k@׎F.kB׎`F.kB׮F.kCF-c XXߢX߼h߿`'VAN DER GRINTEN4     $ ( ,   HLT%d%t%%   %` % % %,4<DP ` p |  T      ( H h        ( T \ l        $, P X x   @ !TD-?@@"@;@?R8-se !TD-=|׽? xxvandginv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c vandginv.c)vandginvint0 *r`+center_longh,false_eastp-false_northxAvandginvHBx`CyhD lontE lat|Hxx~H yyHxysHc1Hc2Hc3Ia1Jm1Kcon~Lth1@Mddouble"lon_center#R$false_easting%false_northingint /ecs/hdfeos/gctp/src/usr/includevandginv.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ -      ,, I 3 @ @A$ A0A A@ e @$ AA A@  @+vandginvintvandginvH#lon_center      " & * . 2 6   HLT%d%t%%   % %0 %D %00% %4 %,4<DP ` p     , @ d       0 <@D @DKL?=|׽??랃%? 4\ xxHwivfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c wivfor.c$wivforint40  %r`&center_longh'false_eastp(false_northx<wivfor4tH=lon`>lath? x;t@ y;|Bdelta_lonCthetaDdelta_theta@EconFiBdoublelon_centerRfalse_easting false_northingintlong /ecs/hdfeos/gctp/src/usr/includewivfor.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ (      (X( {D<% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ e @$ A`A A@l @t'Lwivforint wivforHLlon_centerRfalse_eastingfalse_northing$(LP"&*0  4 qe2'$t*8 08A8p!y>J `` \ k tu0 H0{p  xHp p Lp$p gprpp p+p-L |   `% 8 L `p $wivinv.o/ 1074016637 1032 20 100644 5076 ` ELFL "4( &-4< C INR]amy.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatawivinvintptitleradiuscenlonoffsetpwivinv.lit8asincosadjust_lonsin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:wivinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ףעס נ($ ׬ ׬ ׬ ׭( %߼߿'0'<$!!! (4<ױ גF2A ׯ(אF0{(׬(׍׎F.kBF-c ׬ ׌׭ ׎׏F/sF.F.kCF-c 4@׬׍F-c ׬׍F-cF,׍F-c <`%߼߿'@WAGNER IV6      " & * .   HLT%d%t%%   %$ %P %p% %,4<DP ` p     ,48 L d l |   ? 4\?랃%@@DKL xxwivinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c wivinv.c#wivinvint0  $r|`%center_long|h&false_east|p'false_north|x;wivinvH|<x|`=y|h> lont? lat|Atheta|@doublelon_center|R|false_easting|false_northing|int| /ecs/hdfeos/gctp/src/usr/includewivinv.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ '     0PP% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ e @$ A@A A@~ @'wivinvint wivinvHlon_centerRfalse_eastingfalse_northing$(LP"&*  4 qe/'$* 0 8p!6J P` k $u0 {p  Hp Hp `p Xp gp pp p+p@L    `% 8 $L ,`p 4wviifor.o/ 1074016638 1032 20 100644 5172 ` ELF "4(  '.5=8EP V^bnz.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatawviiforintptitleradiuscenlonoffsetpwviiforadjust_lon.lit8tsincossin.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:wviifor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ףעס נ($ ׬ ׬ ׌׍ %߼߿'0'80<$!!!@HT\׬@׍F-c ׬׍F-c'' ׬H ׅF%BׂףפF$F#F  ןנס F!ׁF!F F (ד׵׷(׹ כם F=F;BF9F7BF5Ts׎ׯ(װבג(F2BF1F0{F/s\N%߼8߿0'`WAGNER VII.      " &   HLT%d%t%%   % % %,4<DP ` p |    $ 0 L \ p  @?}A5T?@@V|G?LPr xxOwviifor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c wviifor.c#wviiforintC0 $r`%center_longh&false_eastp'false_northx;wviiforCH<lon`=lath> xJt? yJ|Adelta_lonBsin_lonBcos_lonCsC c0@Cc1Hdoublelon_centerRfalse_eastingfalse_northingint /ecs/hdfeos/gctp/src/usr/includewviifor.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ '     (,((0@8% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$ A0A A@ e @$8 A`A A@ I @)SwviiforintwviiforHSlon_centerR false_easting&false_northing$(LP&*."? 4 qU0($* 0 8p!.J @` k u0 0{p  Hp Pp hSp p gp pp[ p{-pL    `% |8 L `p wviiinv.o/ 1074016638 1032 20 100644 5332 ` ELFL "4(  '.5=|E KQUY_jv$.symtab.shstrtab.strtab.comment.text.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.rodatawviiinvintptitleradiuscenlonoffsetpwviiinv.lit8asinzsintanatan2adjust_lon.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:wviiinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$%! (ףעס נ($ ׬ ׬ ׌׍ %߼߿'0'( <$!!!@HT\ס@ׂF"A@׿H׀F H׻@םF=׷HיF9׳׵F5ױײF2BׯװF0{F {׬׍׎F.kBF-c 0׃F#׬ ׬HF c׭׎F.kBF-c 0\@׬ ׬@F c׭׎F.kB 0׌׍ F-BF-c T`%߼(߿ '`WAGNER VII:      " & * . 2   HLT%d%t%%  d % % % %%%,4<DP ` p |   PT ` p         @V|G?LPr@? rt@ xx!wviiinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c wviiinv.c&wviiinvint0 'r`(center_longh)false_eastp*false_northx>wviiinv,H?x`@yhA lontB lat|Dt1D t2DpDcdoublelon_center R!false_easting"false_northingint /ecs/hdfeos/gctp/src/usr/includewviiinv.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ *      I 3 @ @A$ A0A A@ e @$| A`AA@Z @,)%wviiinvintwviiinvH%lon_centerRfalse_eastingfalse_northing$(LP&*.  4 qu8($,* 0 8p!:J XX`  k u0 ({p  Hp p 0%p Up!gppp p-pEL    `% 8 ,L 4`p <isinusfor.o/ 1074016639 1032 20 100644 15620 ` ELF7< "4(%D"@(0P>0L R0$`0Tkrw{ `  "3CV j!"#.symtab.shstrtab.strtab.comment.text.sdata.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.content.sdata.rel.MIPS.content.sdata.rel.sdata.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenames.rel.debug_varnames.MIPS.interfaces.text.sdata.sbss.rodataerror__iobfprintfisinusforinitIsin_for_free.lit8Isin_for_initIsin_errormallocfreecosisinusforIsin_fwd.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:isinusfor.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $ident:::$Revision: 7.41 $'$ $ ߿' ' <$B"!08@HPX  (` $$'9 $נ0DF!>E $$'9 $ע8׃F#<Eץ8ׄF% <E $$'9 $צPׇF'0<EשP׈ F)@<E $$'9 $׭P׎(F.k@F kMDh׫PD`Fc!F,ZF Z׊(F+P<E $$'9 $jG0&0#0?0&0# $$'9 $TׯXא0F0x<EײXב8F2<E $$'9 $<׹Xכ(F;@F MD׵XDFF7AF Eד(F5<E $$'9 $׬0׭8׮@ׯH ( $$'9 $ߢ߼ ߿'`'0(<$!!!@HPXdlנ@ׁ@F!<E '$'9 hעH׃F#<EץHׄF% <E '$'9 RצHׇHF'0<EרH׉F)BH׫H׊HF+P>E׬H׍F-cHd(d<4ƀ8* '$'9 *dG0&0#0?0&0# '$'9 ll( '$'9 $` 8 '$'9  \׽P׻X;׹@וP׷@F7CdDFוHF5Ï d(d O*H! HCI,ײH8װHבXF100׏XF/p<E0׀F _0l@,! 8XX '$'9 X,0*pׁPDF׃`F#J,DFF#F"AׂhF"Bl)) ׬ dDFׄpF$F$ׄ`F$F D ׬ dD F!!F !ׅ`F%!F ! D 8x!! $bׅPD0F1F&)Cl$ )%) G @!@C(k WKP! PCj'%%,`*X,$1(!ר@׉F)BDHFJaF)BhHD8F9ר@׉F)BF(9Ï'P< 7#?\ ߢ ߼0߿('p'<$!!! (4<׭ ׮(4< @ $$'9 $ߢ߼߿'@'0(<$%!DHP\dD\aDd@D '$'9 8@0% D\< 5# '$'9 8@0% עH׃F#<EץHׄF% <E$ צPׇxF'0<EשP׈hF)@<E$ qDDװPF0{F/sdDՋ ׌h׭PF-cF,ZתF RD PDJ,*H* D(#'!׳HD0F5וF5ױDF2<E $׹F MD"#DF׹F9׽כPF=<E ׿סF MDDF!F DX I @!D(F)aצF&)BDXA8!D0F1F&)ADDԣHפF$F#\ ߢ ߼0߿('p'<$B"!$$ '$'9 @0%#$\< 5# '$'9 @0%$\$X $X$ $ߢ߼߿'0'$ $ $߿' @Xp error (isinusfor.c/%s : %s isinusforinitbad return from Isin_for_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valueIsin_for_initbad return from Isin_for_initisinusforbad return from Isin_fwdIsin_fwdIsin_for_free error (isinusfor.c/%s) : (%i) %s memory allocationinvalid parameterinvalid handleinvalid key     $ * 0 6 < B F L X ^ d j p t z ~         ,%\\\``` %  00%  PP %\ ` dxhxlpt%  %8 < @DHLP%  %  88%l p t`x`|% %%< <<@ @@|   %   %tx|   %   %    %4 %TX\ ` d %l %%   %L%% l l l p p p %       %       d h l  p  t %     %< <<@ @@\`d h l %   %%%@HLh%(  0 H    $   $ X  d x    $ < p0 P   $ @ h    ( H d p         `      4    X X  d !TD-@!TD-? =pA3ƀ\)?zG{zG{@zG=|׽@ !TD-? !TD-??!TD-@!TD-?_0mȃ4444   xxisinusfor.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c isinusfor.cT error D TroutinetT4text|jisinusforinitP$@jsphere;Pj)lon_cen_mer;Xj=false_east;`kfalse_north;hk/dzone;pk=djustify;xnzoneEijustifyistat Isin_for_init0 Thsphere;P lon_cen_mer;X false_east;`false_north;h nrowEtijustify| thisIsinrowirowE clat;ncol_cenEisinusfor ` 8lon;`"lat;h/xt:y|istat@Isin_fwd 0thisIsinTlon;Xlat;`xl!yt row;col; flon;irowEIsin_for_free00(:thisIsint > Isin_error 0>&errt>7routine| __file_s _cnt _ptr _base _flag _o_file _file int unsigned char  unsigned shortFILE1@Lc__iob>= >num ? str char @error_t\]ISIN_BADALLOC^ISIN_BADPARAM_ISIN_BADHANDLE`ISIN_BADKEY'`; ( false_east; ) false_north; * sphere; + sphere_inv; , ang_size_inv; -nrowE( .nrow_halfE, / ref_lon;0 0 lon_cen_mer;8 1ijustify 2 col_dist; 4 col_dist_inv; 6row 7keyE double long  ncolE !icol_cenE " ncol_inv;#Isin_row_tM 8Isin_t eisin  ;   /ecs/hdfeos/gctp/src/usr/includeisinusfor.c˿stdio.hoisin.hܐstandards.hDsgidefs.h7getopt.hˍ stdlib.hˍOlocale_attr.hˍlimits.hˍN: 5 $,(,<,=,(<,4,=,(<,9, ) $3'<3'##43'43'(3'$3' ,$  '$0(YH 5.B 4   0, ' <"#<&;(; ( $#$('<# 1(<"#    % B .: ; 9 ' @ @: ; 9 I .: ; 9 I? ' @ @4: ; 9 I .: ;9 I? ' @ @: ;9 I 4: ;9 I .: ;9 I' @ @ : ; 9   : ; 9 I8 $> I 3 : ; 9 II !/ 4: ; 9 I< ? : ; 9 &I@ @AD A A@M @$P A`AA@ @$0$ ApAA@ @$ ` A@A A@ e @$  ApAA@ @$0 A0AA@ y @0T A A@Q @_isinusforinitIsin_for_initisinusfor8Isin_fwdIsin_for_free'error:Isin_errorJ__file_s1FILEerror_tIsin_row_tIsin_t^ISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisin$(DHlp PTXRVZ40 d_w$* 1(7(?p!Q  g r #|0%p &X &l &t p &Hp&p&p.p1Ip3#(p4K p4kc"p4+3p4NDp5GbT 5d 5pu 6$ 7 7 7 7$ 7,p 74isinusinv.o/ 1074016640 1032 20 100644 15636 ` ELF7H "4(%D"@(0P>0L R0$`0Tkrw{ ` "3CV j!"#.symtab.shstrtab.strtab.comment.text.sdata.sbss.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.content.sdata.rel.MIPS.content.sdata.rel.sdata.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenames.rel.debug_varnames.MIPS.interfaces.text.sdata.sbss.rodataerror__iobfprintfisinusinvinitIsin_inv_free.lit8Isin_inv_initIsin_errormallocfreecosisinusinvIsin_inv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_funcnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_funcnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:isinusinv.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $ident:::$Revision: 7.41 $'$ $ ߿' ' <$B"!08@HPX  (` $$'9 $נ0DF!>E $$'9 $ע8׃F#<Eץ8ׄF% <E $$'9 $צPׇF'0<EשP׈ F)@<E $$'9 $׭P׎(F.k@F kMDh׫PD`Fc!F,ZF Z׊(F+P<E $$'9 $jG0&0#0?0&0# $$'9 $TׯXא0F0x<EײXב8F2<E $$'9 $<׹Xכ(F;@F MD׵XDFF7AF Eד(F5<E $$'9 $׬0׭8׮@ׯH ( $$'9 $ߢ߼ ߿'`'0(<$!!!@HPXdlנ@ׁ@F!<E '$'9 hעH׃F#<EץHׄF% <E '$'9 RצHׇHF'0<EרH׉F)BH׫H׊HF+P>E׬H׍F-cHd(d<4ƀ8* '$'9 *dG0&0#0?0&0# '$'9 ll( '$'9 $` 8 '$'9  \׽P׻X;׹@וP׷@F7CdDFוHF5Ï d(d O*H! HCI,ײH8װHבXF100׏XF/p<E0׀F _0l@,! 8XX '$'9 X,0*pׁPDF׃`F#J,DFF#F"AׂhF"Bl)) ׬ dDFׄpF$F$ׄ`F$F D ׬ dD F!!F !ׅ`F%!F ! D 8x!! $bׅPD0F1F&)Cl$ )%) G @!@C(k WKP! PCj'%%,`*X,$1(!ר@׉F)BDHFJaF)BhHD8F9ר@׉F)BF(9Ï'P< 7#?\ ߢ ߼0߿('p'<$!!! (4<׭ ׮(4< @ $$'9 $ߢ߼߿'@'0(<$%!DHP\dD\aDd@D '$'9 8@0% D\< 5# '$'9 8@0% DDץPD&F&)AF%!dd׃xF#<EdhׇhF(8<EDHd$ qD ׌hd-F-cF,ZתF RDPD,p*D!("#$!ADP׳HDԵF5F3DX) !ԐDcX!d!cDFaײF2@F1׮DxF/p<E׹חPF9<EDd$ %D`0סׂF"BF!\@\?םHF?>E\գׄF$\\׆XF&(<E\׈F(9\ ߢ ߼0߿('p'<$B"!$$ '$'9 @0%#$\< 5# '$'9 @0%$\$X $X$ $ߢ߼߿'0'$ $ $߿' @Xp error (isinusinv.c/%s) : %s isinusinvinitbad return from Isin_inv_freebad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_inv_free error (isinusinv.c/%s) : (%i) %s memory allocationinvalid parameterinvalid handleinvalid key     $ * 0 6 < B F L X ^ d j p t z ~         ,%\\\``` %  00%  PP %\ ` dxhxlpt%  %8 < @DHLP%  %  88%l p t`x`|% %  %< <<@ @@|   %   %tx|   %   %    %4 %TX\ ` d %l %%   %L%% l l l p p p %       %       d h l  p  t %     %< <<@ @@\`d h l %   %%%@HLh%(  0 H    $   $ X  d x    $ < p0 P   $ @ h    ( H d p         `     X  P      X  d !TD-@!TD-? =pA3ƀ\)?zG{zG{@zG=|׽@ !TD-? !TD-??!TD-@!TD-4444   xxisinusinv.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c isinusinv.cT error D TroutinetT4text|jisinusinvinitP$@jsphere;Pj)lon_cen_mer;Xj=false_east;`kfalse_north;hk/dzone;pk=djustify;xnzoneEijustifyistat Isin_inv_init0 Thsphere;P lon_cen_mer;X false_east;`false_north;h nrowEtijustify| thisIsinrowirowE clat;ncol_cenEisinusinv ` 8x;` y;h+lont8lat|istat@Isin_inv (thisIsinTx;Xy;`lonllatt row;col; flon;irowEIsin_inv_free00(:thisIsint > Isin_error 0>&errt>7routine| __file_s _cnt _ptr _base _flag _o_file _file int unsigned char  unsigned shortFILE1@Lc__iob>= >num ? str char @error_t\]ISIN_BADALLOC^ISIN_BADPARAM_ISIN_BADHANDLE`ISIN_BADKEY'`; ( false_east; ) false_north; * sphere; + sphere_inv; , ang_size_inv; -nrowE( .nrow_halfE, / ref_lon;0 0 lon_cen_mer;8 1ijustify 2 col_dist; 4 col_dist_inv; 6row 7keyE double long  ncolE !icol_cenE " ncol_inv;#Isin_row_tM 8Isin_t eisin  ;   /ecs/hdfeos/gctp/src/usr/includeisinusinv.c˿stdio.hoisin.hܐstandards.hDsgidefs.h7getopt.hˍ stdlib.hˍOlocale_attr.hˍlimits.hˍN: 5 $,(,<,=,(<,4,=,(<,9, * $3'<3'##43'43'(3'$3' ,$  '$0(YH 5.B 4   0, % <"# 0D, $#$X@,'$'% (<"#    % B .: ; 9 ' @ @: ; 9 I .: ; 9 I? ' @ @4: ; 9 I .: ;9 I? ' @ @: ;9 I 4: ;9 I .: ;9 I' @ @ : ; 9   : ; 9 I8 $> I 3 : ; 9 II !/ 4: ; 9 I< ? : ; 9 &I@ @AD A A@M @$P A`AA@ @$0$ ApAA@ @$ ` A@A A@ e @$  ApAA@ @$0 A0AA@ y @0T A A@Q @_isinusinvinitIsin_inv_initisinusinv8Isin_invIsin_inv_free'error:Isin_errorJ__file_s1FILEerror_tIsin_row_tIsin_t^ISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisin$(DHlp PTXRVZ40 d_w$* 1(7(?p!Q  g r # |0%p &` &t &| p &Hp&p'p.p1Ip31(p4Y p4yc"p4+3p5NDp5UbT 5d 5pu 60 7 7  7( 70 78p 7@for_init.o/ 1074016641 1032 20 100644 22340 ` ELFS "4( )",3>FT^eqz#.6AIT\hq{!)5>JS]dow ':.symtab.shstrtab.strtab.comment.text.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.lit8for_initsphdzpakszceaforintceaforbceaforintbceaforcalc_utm_zoneutmforintutmforstplnforintstplnforalberforintalberforlamccforintlamccformerforintmerforpsforintpsforpolyforintpolyforeqconforinteqconfortmforinttmforsterforintsterforlamazforintlamazforazimforintazimforgnomforintgnomfororthforintorthforgvnspforintgvnspforsinforintsinforequiforintequiformillforintmillforvandgforintvandgforomerforintomerforsomforintsomforhamforinthamforrobforintrobforgoodforintgoodformolwforintmolwforimolwforintimolwforalconforintalconforwivforintwivforwviiforintwviiforobleqforintobleqforisinusforinitisinusfor.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:for_init.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'( < %,!DLT\dlt|0'04D$a"/TաDF!<ETDF#<ET%D F% <E T'D8F'0<E$쯹\\T'8'@'H ?D$b3TID@F)@<ETjDXF+P<ET$ԍD`F-`<E T$ԮDxF/p<E$쯦\$\\T'8'@'H  \T'8'@'H T%k0qPT%J8PXD$ a ITՌ 4 0גF2דF3`4t4$ T (4 0דF3וF5h4t?49 $ ׬8׭@׮`ׯhװPױX 844t|D d!b D$bIT, 4 0וF5BחF7B`4kt4J@$  |Tլ(4 0חF7יF9h4t4$ d׬8׭@׮`ׯhװPױX 84b4Btb|D! JD$l\ ppT'8'@'H LttCT,4 0יF9BכF;Bx4kt4J@$  Tլ4 0כF;םF=h4t4$ ׬x׍F-c 8t׮hDxF/p<Et#tא ׬8׭@׮t 844ct|D"!?D$L\dl 84"4t(4$ |D h`!D${T 4 0בF1BגF2Bh4t?49 $TL4 0גF2דF34t4c`$T(4 0דF3וF54t(4$ oTL 4 0וF5BחF7B`4t4k`$ W׬8׭@׮hׯװ`ױײP׳X 8449t|Dx!;D$"{Tl4 0חF7יF9h4t4$!T4 0יF9BכF;B4)tI4$  Tl 4 0כF;םF=`4t4$T(4 0םF=BןF?B49t4$׬8׭@׮hׯװ`ױײP׳X 844t|DC!AD$IT 4 0ןF?׀F `4Jtj4) $ TՌ(4 0ׂF"ׁF!h4t4$׬8׭@׮`ׯhװPױX 84b4!tA|D?!8qD$IT 4 0׃F#ׄF$`4t(4$ WTL(4 0ׄF$ׅF%!h4t4k`$ ?׬8׭@׮`ׯhװPױX 8449t|Dx!%D$"ITl 4 0ׅF%B׆F&)B`4t4$ T(4 0׆F&ׇF'14)tI4$ ׬8׭@׮`ׯװPױX 844t|D h`!D$T4 0ׇF'׈F(9h4Btb4! $TԌ4 0׈F(׉F)B4t4$T 4 0׉F)B׊F*JB`4Jtj4) $ TՌ(4 0׊F*׋F+R4t4$wT'@ D`F,X2E$׬8׭@׮hׯװ`ױײP׳X 844t|DC!AKD$ NT%)-T 4 0׎F.׏F/s`4kt4J@$ -Tլ(4 0׏F/אF0{4t4$׬8׭@׮ׯ`װױPײX 84b4Btb|D!D$ HT 4 0אF0בF1`4t(4$ TL(4 0בF1BגF2B4t4k`$ ׬H׭`׮ׯPװX 8449t|Dx!D$ "HTl 4 0גF2דF3`4t4$T(4 0דF3וF54)tI4$ }׬H׭`׮ׯPװX 844t|D h`!dD$ HT 4 0וF5BחF7B`4Btb4! $JTԌ(4 0חF7יF94t4$2׬H׭`׮ׯPװX 844kt|D P*H!(D$ HT 4 0יF9BכF;B`49t4$T,(4 0כF;םF=4ct4B@$׬H׭`׮ׯPװX 84"4t(|D80!D$ KHTՌ 4 0םF=BןF?B`4t4$T (4 0ןF?׀F 4t?49 $׬H׭`׮ׯPװX 844t|D d!bD$MT, 4 0ׂF"ׁF!`4kt4J@$ iTլ(4 0׃F#ׄF$4t4$QT'9$׬H׭׮`ׯװPױX 844ct|D"!?3D$/T 4 0ׅF%B׆F&)B`4)tI4$ ׬H׭`׮PׯX 844t|D h`!D$HT 4 0׆F&ׇF'1`4Btb4! $TԌ(4 0ׇF'׈F(9h4t4$׬H׭`׮hׯPװX 844kt|D P*H!(D$/T 4 0׈F(׉F)B`49t4$׬H׭`׮PׯX 844t|DC!AD$/T 4 0׉F)B׊F*JB`4Jtj4) $ j׬H׭`׮PׯX 844t|Dph!RD$?T$BJT,(4 0׋F+׌F,Z4t4c`$4T$`DhF-`2E5$T4 0׎F.׏F/s4Jtj4) $ TՌ 4 0׏F/אF0{4t4$bT @4 0אF0בF1x4t?49 $TLH4 0בF1BגF2Bh4t4c`$TP4 0גF2דF34t(4$ TLX4 0דF3וF54t4k`$ ׬8׭@׮ׯװױײP׳X׻x׹h׷׵$ 84"4t?|DȀ!pD$C~T%F MDȏT$F D̏T$`ԝDF?2ED$ T,4 0ׂF"׃F#Џ4t4k`$ =T 4 0׃F#ׄF$x4t84$%T$c@f؏T$BHET$!P$F ! D ׬8׭@̏װױxײP׳Xר该 ק 84B4)tI|D@8!D$ l/Tլ 4 0׉F)B׊F*JB`4t4$׬H׭`׮PׯX 84b4Btb|D!D$/T 4 0׊F*׋F+R`4t(4$ ׬H׭`׮PׯX 844t|D `lX!jD$׬H 84b4Btb|D!tD$/T 4 0׋F+׌F,Z`4t(4$ Z׬H׭`׮PׯX 844t|D `lX!jBD$׬H 84b4Btb|D!+D$׬8׭@׮PׯX 84B4)tI|D@8!D$ l/Tլ 4 0׌F,׍F-c`4t4$׬H׭`׮PׯX 84b4Btb|D!D$/T 4 0׍F-B׎F.kB`4t(4$ ׬H׭`׮PׯX 844t|D `lX!jD$kT, 4 0׎F.׏F/s`4!tA4$Tl(4 0׏F/אF0{4t4${T%)1T%T@4 0גF2דF34kt4J@$ [׬H׭`׮ׯװױײP׳X 84"4t8|Dxp!?D$cD$C7TԌ 4 0דF3וF5`4t4$!T%)@7T%P׬H׭`׮PׯXװױ 844t|D `lX!jߢ߼(߿ '@ >U@Lc˰?#x        $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                     !   #   %   '  )   +   -  /    $ ( , 0 4 81 < @ D3 H L5 P T7 X9 \ `; d= h? l pA t xC |   E  G   %%%D%%%4t%%@%d %%H% % % d %%H%%%|%% @% % % t%  % 8% %  % h% %  8% %%(h%%(%%<%`%%%%D%%%p%% <%%!%("h%%0#%T$%%\%%&% %'%(%d)%*%(%+%,%X-%|.% /%D0% %%%L%% %1%2 p% %!3%!4"%"t5%"6"%#<7%#`8#9%#:#%$`;%$<$=%$>%$?%%H@%%%A%&B&P%&C%&D'%'x%'%(lE%(F(%)lG%)H   @ PX   p  <   D T\  `  D T\  x   < L T       p    4 D L     d t |  4 D L    d t| $ 4< 8    $|  @ PX   $l | 8 HP ! d t| ,#   X%   ,4'   `)  $ 4<+  T-  /   ,4|  H X`   1 l |    !3 "  ""$"p5 " ""#87 #9 # $$$\; $= % ? % %%%A &L &\&d&C ' '$','t ''' (( (hE ( (()hG  xxfor_init.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c for_init.c6for_init) 7outsysD8outzoneL9 outparmT:outdatum\;fn27d<fn83l=iflgt>for_trans |@zone}Aazimuth~Balf~CangleDlon1}Elon2~Flat1}Glat2~Hcenter_long}Icenter_lat~Jh~Klon_origin~Llat_origin~Mr_major}Nr_minor}Oscale_factor~Pfalse_easting}Qfalse_northing}Rshape_m~Sshape_n~Tstart~Utime~Vradius}Wtmpdatum}Xpath~Ysatnum~Zmode~[sat_ratio~\dzone]djustify_thing}aiflg64}intdoublecharlong /ecs/hdfeos/gctp/src/usr/includefor_init.cstdio.hostandards.hDsgidefs.h7getopt.hˍ >$"5" <<=<<= -< < , (44<<<<E<<<<E<<=<<=<<=<<<<0M<<A<<9<<9<<9<<9<<9<<=<4<<8<4<4<  1<   <   <   <   <   <  ((1< <  e<4<4(<4(4<4<4<<<E<=% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I 3 $> I' @ @A$) AAA@ m @)for_init$L(KJLII4@ t.N )$ )*04(0p!5B 6 X9x c @@mp G8H{pGpGpKpR5ppRHpR pS  S, S4 SD(  Sl S|inv_init.o/ 1074016642 1032 20 100644 22260 ` ELFS0 "4( )",3>FT^eqz#.6AIT\hq{!)5>JS]dow ':.symtab.shstrtab.strtab.comment.text.lit8.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.lit8inv_initsphdzpakszceainvintceainvbceainvintbceainvcalc_utm_zoneutminvintutminvstplninvintstplninvalberinvintalberinvlamccinvintlamccinvmerinvintmerinvpsinvintpsinvpolyinvintpolyinveqconinvinteqconinvtminvinttminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvintgvnspinvsininvintsininvequiinvintequiinvmillinvintmillinvvandginvintvandginvomerinvintomerinvsominvintsominvhaminvinthaminvrobinvintrobinvgoodinvintgoodinvmolwinvintmolwinvimolwinvintimolwinvalconinvintalconinvwivinvintwivinvwviiinvintwviiinvobleqinvintobleqinvisinusinvinitisinusinv.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:inv_init.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $' < %,!DLT\dlt|0'04D$a"/TաDF!<ETDF#<ET%D F% <E T'D8F'0<E$쯹\\T'8'@'H ?D$b3TID@F)@<ETjDXF+P<ET$ԍD`F-`<E T$ԮDxF/p<E$쯦\$\\T'8'@'H  \T'8'@'H T%k0qPT%J8PXD$ a ITՌ 4 (גF2דF3`4t4$ T (4 (דF3וF5h4t?49 $ ׬8׭@׮`ׯhװPױX 044t|D d!b D$bIT, 4 (וF5BחF7B`4kt4J@$  sTլ(4 (חF7יF9h4t4$ [׬8׭@׮`ׯhװPױX 04b4Btb|D! AD$l\ ppT'8'@'H LttCT,4 (יF9BכF;Bx4kt4J@$  Tլ4 (כF;םF=h4t4$׬x׍F-c 0t׮hDxF/p<Et#tא ׬8׭@׮t 044ct|D"!?D$L\dl 04"4t(4$ |D h`!D${T 4 (בF1BגF2Bh4t?49 $TL4 (גF2דF34t4c`$~T 4 (דF3וF5`4t(4$ fTL(4 (וF5BחF7B4t4k`$ N׬8׭@׮hׯװ`ױײP׳X 0449t|Dx!2D$"{Tl4 (חF7יF9h4t4$T4 (יF9BכF;B4)tI4$ Tl 4 (כF;םF=`4t4$T(4 (םF=BןF?B49t4$׬8׭@׮hׯװ`ױײP׳X 044t|DC!AD$IT 4 (ןF?׀F `4Jtj4) $ TՌ(4 (ׂF"ׁF!h4t4$׬8׭@׮`ׯhװPױX 04b4!tA|D?!8hD$IT 4 (׃F#ׄF$`4t(4$ NTL(4 (ׄF$ׅF%!h4t4k`$ 6׬8׭@׮`ׯhװPױX 0449t|Dx!D$"ITl 4 (ׅF%B׆F&)B`4t4$T(4 (׆F&ׇF'14)tI4$ ׬8׭@׮`ׯװPױX 044t|D h`!D$T4 (ׇF'׈F(9h4Btb4! $TԌ4 (׈F(׉F)B4t4$T 4 (׉F)B׊F*JB`4Jtj4) $ TՌ(4 (׊F*׋F+R4t4$nT'@ D`F,X2E$׬8׭@׮hׯװ`ױײP׳X 044t|DC!ABD$ NT%)-T 4 (׎F.׏F/s`4kt4J@$ $Tլ(4 (׏F/אF0{4t4$ ׬8׭@׮ׯ`װױPײX 04b4Btb|D!D$ HT 4 (אF0בF1`4t(4$ TL(4 (בF1BגF2B4t4k`$ ׬H׭`׮ׯPװX 0449t|Dx!D$ "HTl 4 (גF2דF3`4t4$T(4 (דF3וF54)tI4$ t׬H׭`׮ׯPװX 044t|D h`![D$ HT 4 (וF5BחF7B`4Btb4! $ATԌ(4 (חF7יF94t4$)׬H׭`׮ׯPװX 044kt|D P*H!(D$ HT 4 (יF9BכF;B`49t4$T,(4 (כF;םF=4ct4B@$׬H׭`׮ׯPװX 04"4t(|D80!D$ KHTՌ 4 (םF=BןF?B`4t4$T (4 (ןF?׀F 4t?49 $׬H׭`׮ׯPװX 044t|D d!bzD$MT, 4 (ׂF"ׁF!`4kt4J@$ `Tլ(4 (׃F#ׄF$4t4$HT'9$׬H׭׮`ׯװPױX 044ct|D"!?*D$/T 4 (ׅF%B׆F&)B`4)tI4$ ׬H׭`׮PׯX 044t|D h`!D$HT 4 (׆F&ׇF'1`4Btb4! $TԌ(4 (ׇF'׈F(9h4t4$׬H׭`׮hׯPװX 044kt|D P*H!(D$/T 4 (׈F(׉F)B`49t4$׬H׭`׮PׯX 044t|DC!A{D$/T 4 (׉F)B׊F*JB`4Jtj4) $ a׬H׭`׮PׯX 044t|Dph!ID$?T$BJT,(4 (׋F+׌F,Z4t4c`$+T$`DhF-`2E5$T4 (׎F.׏F/s4Jtj4) $ TՌ 4 (׏F/אF0{4t4$bT @4 (אF0בF1x4t?49 $TLH4 (בF1BגF2Bh4t4c`$TP4 (גF2דF34t(4$ TLX4 (דF3וF54t4k`$ ׬8׭@׮ׯװױײP׳X׻x׹h׷׵$ 04"4t?|DȀ!gD$CuT%F MDȏT$F D̏T$`ԝDF?2E=$ T,4 (ׂF"׃F#Џ4t4k`$ 4T 4 (׃F#ׄF$x4t84$T$!@%؏T'H׬8׭@̏װױxײP׳Xק צ 044t|D( !D$  /TL 4 (׈F(׉F)B`4t4k`$ ׬H׭`׮PׯX 0449t|Dx!D$"/Tl 4 (׉F)B׊F*JB`4t4$׬H׭`׮PׯX 04b4Jtj|D H @!D$ ׬H 0449t|Dx!tD$"/Tl 4 (׊F*׋F+R`4t4$Z׬H׭`׮PׯX 04b4Jtj|D H @!BD$ ׬H 0449t|Dx!+D$"׬8׭@׮PׯX 044t|D( !D$  /TL 4 (׋F+׌F,Z`4t4k`$ ׬H׭`׮PׯX 0449t|Dx!D$"/Tl 4 (׌F,׍F-c`4t4$׬H׭`׮PׯX 04b4Jtj|D H @!D$ kT 4 (׍F-B׎F.kB`4t84$T(4 (׎F.׏F/s4Btb4! ${T$菥T$ԯTԌ@4 (בF1BגF2B4t(4$ [׬H׭`׮ׯװױײP׳X 044t|D `lX!j?D$cD$?7T, 4 (גF2דF3`4ct4B@$!T$@T$PԳ׬H׭`׮PׯXװױ 04b4Jtj|D H @!ߢ߼ ߿'@ >U@Lc˰?#x        $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |                     !   #   %   '  )   +   -  /    $ ( , 0 4 81 < @ D3 H L5 P T7 X9 \ `; d= h? l pA t xC |   E  G   %%%D%%%4t%%@%d %%H% % % d %%H%%%|%% @% % % t%  % 8% %  % h% %  8% %%(h%%(%%<%`%%%%D%%%p%% <%%!%("h%%0#%T$%%\%%&% %'%(%d)%*%(%+%,%X-%|.% /%D0% %%%L%% %1%2 p% %!3%!4!%"P5%"t6"%#7%#<8#t9%#:#%$<;%$`<$=%$>%?%%$@%d%%A%%B&,%&C%&D&%'T%'%(HE%(lF(%)HG%)lH   @ PX   p  <   D T\  `  D T\  x   < L T       p    4 D L     d t |  4 D L    d t| $ 4< 8    $|  @ PX   $l | 8 HP ! d t| ,#   X%   ,4'   `)  $ 4<+  T-  /   ,4|  H X`   1 l |    !3 ! !""L5 " ""#7 #p9 # ##$8; $= $? %` %p%x%A &( &8&@&C & '''P '`'h' ''(DE ( (()DG  xxinv_init.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c inv_init.c6inv_init) 7insysD8inzoneL9 inparmT:indatum\;fn27d<fn83l=iflgt>inv_trans|Azone}Bazimuth~Cangle~Dalf~Elon1}Flon2~Glat1}Hlat2~Icenter_long}Jcenter_lat~Kh~Llat_origin~Mlon_origin~Nr_major}Or_minor}Pscale_factor~Qfalse_easting}Rfalse_northing}Sradius}Tshape_m~Ushape_n~Wtime~Xpath~Ysatnum~Zmode~[tmpdatum}\sat_ratio~]dzone^djustify`thing}biflg64}intdoublecharlong` /ecs/hdfeos/gctp/src/usr/includeinv_init.cstdio.hostandards.hDsgidefs.h7getopt.hˍ ?$"5" -<<=<<= - <  <  , ( 4 4  <  <  <  <  E <  <  <  <  E <  <  =<  <  = <  <  = < < < <0 M <  <  A <  <  9 <  <  9 <  <  9 <  <  9 <  <  9 <  <  = <  4 <  <  9 < 4 < 4 <  1<  <  <  <  <  <  ((1 <  <  ] < 4 < 4 ( <  4 ( 4 <  4 <  4 < < < E < =% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I I 3 $> I' @ @A$) AAA@ d @)inv_init$L(KJLII4@ t.N )$ )*04(0p!4B 6 X9x c @ mp GH{pG`pGxpK|dpQppRPHpR pR R R R(  S S(cproj.o/ 1074016643 1032 20 100644 17492 ` ELF@< "4(hp #(X.`48`> FN`TY]cim Pps @{`d \L<pD0@S.symtab.shstrtab.strtab.comment.text.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.rodata.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.MIPS.interfaces.texttsincossincosasinz.lit8asinmsfnzqsfnzlogphi1z.rodatap_errorphi2zatanpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zone.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:cproj.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$!!!$׬ @׬ $`߼߿'0'<$!!!סF E׀F!<E ףׂF#<Eׅׄ׬ ߼߿' '<$B"! פץF%!נ !עףF#F"AF DF!'0'<$!!! (0ס ׀F!<E$׮ ׯ(F/s׌׭F-c׭׎F.k@F-c אױ ײ F2BF1ױ(ג׳׵F5F3F2Cג׳ F3F2F2AF1׳(ו F5נ߼߿'@'PH<$!!!`ht׬h׍F-c ׮`׏(F/p<Eװ@_ױ`ײ`F2B$(B@H׬''  ױ`ײF2B(׎ׯ(װ(F0{F/s0׌׭(F-c׭(׎F.k@F-c ׹0׻0םF=F;B׻ F;Cכ׽`F=F;׽hןנF F?C׿נ0F F?AF=F;B8׵8׷F7@׳8F וF5>E׿@$($$ $t׀@@נ@߼P߿H''@8<$B"!PXdd נPׁF!׬X ׂ0׃ F#F#(c`7׬ ׮PׯF/s ׌׭ F-c׭ ׎F.k@F-c׭ ׬XF c א0ב F1BF1ױF1(׮ׯ(F/s׭(F kE׎(F.h>Eײ0$($$ $dד 00נ0߼@߿8'p'( <$B"!@HPX`lנ@(! >׬׍8F-c 0׬׍ F-c 8׬׍@F-c ױ`ײ0F2Bײ@׳P׵8F5F3׳XF F3F2@ײHF2CײF2AׯװF0{׮F s׏(F/p>El`׳$($$ $lוHנ߼(߿ 'p'@`X<$$!נ`$(! Ԭ  ׮׏װױײF2BF1F0{F {F/s׍ F-c ,׍@F-c hL׍8F-c ׮ׯhF/sՏװF0{װױF1F0{F/sׯF {F/s l׍@F-c pլ׍ F-c x׍8F-c ףׄ@F$עpF#ףץ׆ F&)BפxF%!F$F#ףׄ8F$F#F#(]׿נ ס F!F F?B׿ ׀ F F?@׿׀ F  ס F!ׁF!F F?A0׹׻F;B׻׽ ׿ F?BF=׽ ׿׀ F F?BF=F;Bם F=F;C8׵׷ F7Aח F7B7׹(F9י ׻F;CF9F7B׷(י F9F7A@ױ0ײ8׳@F3F2CHװHF0{׮HF s׏(F/p>ED(P$(c`9$$ ׆@PPנP߼`߿X'' <$c#!0$ נ0DF!<E$-׬0F cת+XF+R+`F+RF RD Pר XlX! XlX# YlX! YDHFJaF)Bצ'hF'1'`F'1F 1D 0פ H*H# H*H! HD(F)aF%!עDF$pF$D F!!%xF%!F$F#$-׭F kGנ߿ '@' <$c#!0$ ע0#F#0נ0DF!<E$-׬0F c׫F ZD XשDPFRF*JA*F*JBרF B D @צD8F9F'1'F'1פD(F)a&pF&)BD0F1'xF'1F&)@F%!$-׭F kGנ߿ '@'<$!!! (0װ ױ0F1׮ ׏F/s׌׭F-c׭׎F.k@F-c׭ ׌0׭(F-c׍F-c ׮F.߼߿'@'נDF!<E$$ߢ߿' '<$B"! $ נ F ׁF!>Eס ׂF"CF EF MD(c`׬  ף D F!!ׅF%!F$ kצ ׇF'1F 1F 1D0D(F)a׆F&(<Eר ת ׋F+RF RDPDHFJa׊F*JBF)B L׭ ׎F.kCF kEF kMDhD`Fc!׍F-`<Eׯ ױ גF2CF MDDF!בF1F0{ -׵ חF7CF EF MDDFוF5<E׹ ׽ ןF?CF MD DFםF=F;A ׬  נ DFaׂF"BF! %k)J@$ kנ ߼߿'0'<$B"! ס"F"Bע#F#ף$F$$HF$F##F#F"BF!''<$B"!נ!F!ס"F"Bע#F##F#F"B"F"@F!''<$B"!נס"F"BF!ס"F"B"F"@F!''<$B"!נסעF"BF!!F!''<$!!!0ע0׃F#׀ס0F!׬׭ ׬׭ F Fנ F!F ߼߿'@'<$!!! (08@׬@׍@F-c ׬@׍ F-c ׬@׍8F-c F נ0סF!ס ף@F#Bף(פF$F#AF!ס8F"BF!߼߿'P'<$B"!נ!F!!8F!!F!F D'     & 0 4 8 < F J N R V ` d h l v z ~                 ,%D%|||%l llp pp %l llp pp%%P %     %lllppp%%%0%   ( ( %   \%x%%@ 8D 8H hL hT %%%`%%%% % <% x  x     % X X X \ \ \         h%%   %@%$$$(((   X%p%%%%tttxxx( @  0 ,  0@L `t 4   , 8<l PX lt  P h    T\ t|     0 8 H ` |     4 P h    (     d |  L   8DTd t Dd (Dh < \8DPXd0<T l    ?>z򚼯H?@=|׽?!TD-@@@@È?PbM@YA.@@@Lc˰@N@ !TD-@!TD-AB !T!C!S~=????????UUUUUU@fConvergence errorphi1z-convphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv xx cproj.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c cproj.c3tsincos0h 3val S`3"sin_val ]l33cos_val ]t;asinz S pH;con SpJmsfnz S0XpK eccent S`L sinphi ShM cosphi SpOcon SPXqsfnz S`\Y eccent S`Z sinphi Sh[ cosphi Sp]con S@lphi1z S`Xm eccent S`n qs Sho flag ltqeccnts Srdphi Sscon Stcom Susinpi Svcospi Swphi Sxi dphi2z S`eccent S`ts Shflag lteccnth Sphi Scon Sdphi Ssinpi Si dphi3z S-ml SPe0 SXe1 S`e2 She3 Spflag l|phi Sdphi Si dphi4z S L,|eccent S@e0 SHe1 SPe2 SXe3 S`a Shb Sp c ]| phi ]sinphi S~sin2ph S~tanphi S~ml S~mlp S~con1 S~con2 S~con3 Sdphi Si d~ pakcz S P T pak Sp con SH secs SX degs dPmins dT sgna s@!pakr2dm S x"pak Sp$con SH%secs SX& degs dP&mins dT' sgna s@<tsfnz S= eccent S`> phi Sh? sinphi SpA con S@B com SHMsign { @Mx SpRadjust_lon S0Sx SpUcount dPze0fn S zx Sp{e1fn S |({x Sp|e2fn SD |x Sp}e3fn S `R}x Spe4fn S|x Sp con S@ com SHmlfn Sl e0 SPe1 SX*e2 S`5e3 Sh@phi Spcalc_utm_zone dp Slon Sp double S long d char int /ecs/hdfeos/gctp/src/usr/includecproj.cʿ\stdio.hostandards.hDsgidefs.h7getopt.hˍ 3/#-#()$     %   ( $  $$ (w (   0 i(x (  )x (    $$<l`X$$(k( (0D0 I 3 @ @A$h A0A A@ U @$p A AA@^ @X A0S$` A@A A@ z @$` AA A@y @$` ApA A@a @$ ApAA@^ @$ AAA@ @ Pp A@A@X @ @ A@A@L @$ A@A A@ g @` A A@T @$ A0AA@  @d AV \ ATL AP< AL$ A@A A@ ^ @$ APAA@n @pD AN tsincosasinzmsfnzqsfnzphi1zphi2zphi3z-phi4z|pakczpakr2dmtsfnzsign@adjust_lone0fne1fne2fn e3fnRe4fnmlfn calc_utm_zone$#(L#Pt#x#### 0#4X#\|#####,#0H#Ld#h###"!##/37## ###AEI##!%##!%)#Y]a### #37;#fjn## 2 6 :#   4 G+g&$*p!t <  R ] %\g0)m*up +Hp+p+ p5|p8 p8p; p; < <@ > ?" @6p @ 0report.o/ 1074016644 1032 20 100644 18596 ` ELFC "4(   "*17?FKRY@ddk`rz@      @/@P`q.symtab.shstrtab.strtab.comment.text.sbss.bss.rodata.srdata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.lit8.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnames.text.sbss.bss.rodata.srdatap_errorprintffopenfprintffcloseinitstrlenstrcpyclose_fileptitleradiusradius2cenlon.lit8cenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblank.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_typenames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_typenames.rel.debug_varnamesbe::7.30-1276837810:report.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.41 $'<$B"! $ $' $  ߼߿' '<$B"!$,4<$ $@$$4 @$y$$4 &$$ $4 @ $$ $V$$4 ,$ @,$  < @$ 2$ $< &,$ $< @ $$ $$ $<  ߢ߼߿'@'<$B"!  ` ߼߿''<$B"! $ $' $  ߼߿' '<$B"! $נD% $' $סD&  ߼߿' '<$B"! $נD% $סD% $' $עD& $ףD&  ߼߿' '<$B"! $נׁF!D% $' $ע׃F#D&  ߼߿' '<$B"! $נׁF!D% $' $ע׃F#D&  ߼߿' '<$B"! $נׁF!D% $' $ע׃F#D&  ߼߿' '<$B"! $נׁF!D% $' $ע׃F#D&  ߼߿' '<$B"! $נׁF!D% $' $ע׃F#D&  ߼߿' '<$B"! $נׁF!D% $ע׃F#D%  $' $פׅF%!D&  $צׇF'1D&0  ߼߿' '<$B"! $נׁF!D% $' $ע׃F#D&  ߼߿' '<$B"! $נD% $סD% $' $עD& $ףD&  ߼߿' '<$B"! $נD& $' $סD'  ߼߿' '<$B"! $ $' $  ߼߿' '<$B"! ' `$' '  ߼߿'[%s] %s Output file name not specifiedreport-file %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld a       " & * . 2 6 : > B L P Z ^ b f p t x |                    " & 0 4 8 < F J N R V Z d h l p z ~         ,0@%TXd%tx % %  $ %PT` % %00% %@ %lp| % %00% %LLLPPPl % %@@% %@ @, %< %lllppp``%%`` % %   <@P%X\l%% % % %   (,D%X\h%x| % %((%(%8(<(T %d %``%% %$ %LLLPPPhl%% % %       ( , D% X \ h% x@ |@ % %       p p %   ,% @ D P% `p dp | %   % %         % ( , 8% H L d % t %         %   %   %  $ 4 % @ D T % d %       H H %   % H H  % % L L L P P P lX pX %   % X X % %   ,%@DP%h %x % < H\` lp   L\    4< hx    Xdh t   ( 48 |    0L h t    4@ L`d pt     $ 04DP \`     \t     4 @ L ` d p t       ( 4 H L X \ l x        0 4 @ D T ` l p         0 < P \ `          ` |       $( 4HL X\`d pt @Lc˰ xxreport.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c report.c:p_error ; whatt< where|Zinit @H;[ipr.d\jpr.l]efilet^pfile|close_file@pptitle XAtradius `Apradius2 ApBxcenlon  Apcenlonmer 8QApcenlat @`Aporigin @ Ap true_scale  Apstanparl !Ap Bx%stparl1 R%Ap3offsetp (3Ap3BxCgenrpt <PCApCS|Ngenrpt_long @ xNA.tN S|Ypblank long / terminal_p. 0 terminal_e. 1 file_e. 2 file_p. __file_s _cnt  _ptr# _base# _flag _o_file _file* int unsigned char  unsigned shortFILE < 3fptr_pI 4fptr_eI charz 5 parm_filez 6 err_file z doublej /ecs/hdfeos/gctp/src/usr/includereport.cIstdio.hostandards.hDsgidefs.h7getopt.hˍ string.h2<((, 4))())($( $ ((( ( (,, () (,,(0(4(0(4(0(4(0(4!(0(4,01(44(1(4,()(,,,,(0%,((,-$( % B .: ; 9 ? ' @ @: ; 9 I .: ; 9 I? ' @ @.: ; 9 ? @ @.: ;9 ? ' @ @: ;9 I .: ;9 ? @ @ $> 4: ; 9 I : ; 9   : ; 9 I8 I 3 : ; 9 II !/@ @A$ A AA@h @$ A@A A@ @$@d AAA@T @$ A AA@e @$` A AA@g @$ A AA@w @$ A AA@k @$ A AA@k @$ A AA@k @$@ A AA@k @$ A AA@k @$  A AA@ @$ A AA@k @$ A AA@w @$ A AA@j @$ @ A AA@h @$ AAA@` @p_errorinit;close_fileZptitleradiusradius2cenlon cenlonmerQcenlatorigintrue_scalestanparl!stparl1Roffsetpgenrptgenrpt_longpblank$__file_s p>p?(p?w @t" @|3 AC CtV Cj C Cpaksz.o/ 1074016645 1032 20 100644 4276 ` ELF "4( L#/;IVeu.symtab.shstrtab.strtab.comment.text.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.text.lit8.rodatapakszp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:paksz.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'@8<$B"!P\\ נPDF!<Eׂ׃קPF 9׆פץF%!F ! D (ci`$$ $\\׈0YDHFJa ׭׮ ׯF/sF.kA׌ ת׫F+RF RD P)=$$ $\\א03DFa(׵׷(׹F9F7A׳ג(F3<E$$ $\\כ0׽׿נ ׁ0F!ס(ׂ(F"BF!F F?Bףׄ0F$ ע 00נ0߼@߿8'`?A.@@@N@ Illegal DMS fieldpaksz-degpaksz-minpaksz-sec      %48<(@(H%88%DTh D \  xxIpaksz.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c paksz.c5paksz2L 26ang2p7iflgD|9fac2:deg2@;min2H<sec2=tmp2>i<doublelong< /ecs/hdfeos/gctp/src/usr/includepaksz.c̿stdio.hostandards.hDsgidefs.h7getopt.hˍ 7((($(($%(< % B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I 3 @ @A$L A`AA@  @LMpaksz$ ( 4 D6zG&$pL*080B8p!:J T `t k ppup Hp (p @Mp p zgp Hp ) p I h p ( " sphdz.o/ 1074016645 1032 20 100644 5972 ` ELF "4(  !)5AO\k{.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.data.lit8.rodatasphdzp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:sphdz.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $ident:::$Revision: 1.78 $ident:::$Revision: 1.4 $' <$B"!4<DLT4!<ԃF <$cbF סDF!<E4ץׄF% <E רDקLצT!תDHF*H<EׯDO׮T.׫׌׭F-cF cF,ZL  ײDױTװLpC׵DF5<E;D9TL.4$CDTםL4$ *DբTׁLa FD&T%ׄ Li4/ & #(c`$$ $$ $4M$%ph!թD%k `lX!hLH%) P*H!'T/$$c d!lDL$!"!+L*T %) P*H!/D$@8!LԭT%߼ ߿'`AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕AX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕?AXM˕AXMAXM@Invalid spheroid selectionINFORMATIONALReset to 0     `dpt $04x|  %00  %LPlp| @   xxsphdz.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c sphdz.clsphdz HmisphTn parm\o r_majordp r_minorlq radiusttt_majorHut_minorHvjsphdoubleH_ZmajorRH`minorsintlongHi /ecs/hdfeos/gctp/src/usr/includesphdz.c4stdio.hostandards.hDsgidefs.h7getopt.hˍ stdlib.hˍOlocale_attr.hˍ !) % )   o)  Q4 ((,,  ,,,,% B .: ; 9 I? ' @ @: ; 9 I 4: ; 9 I $> I !/ I 3 @ @A$ A`AA@ @ sphdz"_majorminor$ (  o4@ t`Y$0 * @`00 (6 ;>p! P  f 4p q 8{p  Hp(p@pmpYypHp p:pV& |  8% 8 L untfz.o/ 1074016646 1032 20 100644 4388 ` ELF "4( 0!)5AO\k{.symtab.shstrtab.strtab.comment.text.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.text.data.lit8.rodatauntfzp_error.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:untfz.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.76 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $ident:::$Revision: 1.11 $ident:::$Revision: 1.11 $'<$B"!$,4, .,(c`*$'$(#%,$ PKP# P@*H! H @!44DF!2E $$ $M $$ $ߢ߼߿'@?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit     \`%((PP%   xx6untfz.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c untfz.c'untfz)0 (inunit)d)outunit)l* factor1tdouble0 factorslong  /ecs/hdfeos/gctp/src/usr/includeuntfz.cͿstdio.hostandards.hDsgidefs.h7getopt.hˍ *0@-(}(% B .: ; 9 I? ' @ @: ; 9 I $> I !/ I 4: ; 9 I I 3 @ @A$0 A@A A@G @0:untfz:factors$ (  %4@ t`&$0*0 00P6X[>p!P  f q {p Hp p (:p bp *p Hp p p 2 P X h0% 8 L gctp.o/ 1074016647 1032 20 100644 11284 ` ELF'< "4(   &+08>IRZco{ .symtab.shstrtab.strtab.comment.text.sbss.bss.data.lit8.rodata.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnames.MIPS.interfaces.text.sbss.bss.data.lit8.rodatagctpinitp_erroruntfzclose_fileinv_initpakr2dmfor_init.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.debug_varnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.rel.debug_varnamesbe::7.30-1276837810:gctp.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_cident:::$Revision: 1.11 $ident:::$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $'< %,! $,$4,< Џ[+eN$0(!$( !$c d!`$BC!@$!"! '! +9 D%)  YlX#KP! P*H!!D%  QKP#*H! H @! $ (%k)Je@$$ $ O'9?!99'!!?$!B"!!!$"$%(c `  0(!Ԣ$10#(!( !ԃF#2E$%)) LJ@OTk%L h`!ll%Lph!L%Lxp!L$$%+  \!'9LB "#!?!%F% 2E$$(c `(e$$ $yLL)e$$ $c )$ *J$ K$ $ $$ %9$d?x! (%' Џ" $' Џ!$"b  שF)B $קF'1(k% h`!J%k `lX!j)%Jk XKP!I) x!%9#x!xp!%)9$?Z$+ 80!'0( !$c(B@Dh0D`8  .DxF/p2E XlX# X@%kIDF!בF10J@ב8ג8 0 %ճ8'0t|%k  t|%k  P׹ ׷(׬ ׭('''9?!9 @%؏? ,@L$L@8!l$L80!T$L0(!(c`\ XKP![%)L YlX#KP! P*H!;%(L$ L$)\"!='0?!=')D0D8\DF 2E׬ 0׬ 8\Ԥ0\$ԃ8LT'0lt|%k LT\lt|%k  L צDץD$׬׭DD$'9L?!9 @@%؏( adklJ@ L$ d$$l$L$d9$? 'TB$dC!L! %' Џb $' ЏL$dDiתF*JBDID%)'רF(9D% ߢ߼߿'0A.AInsys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUT\       $ ( , 0 4 8 < @ D H L P T   d%004 4 55,7P07P\`88 0$0LPx|h7Pl7P554 4 0848 %((@ @( % %H % % ,000pt i i % Xi \i d % % i i  % 84 <4 \5 `5 7P 7P 8 8 % % 0h@ 4h@ <% th@ xh@ % % h@ h@ < %  $ %P % %`  $  D    ` | 8 | 8  L   xxgctp.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c gctp.cFgctp I incoorDJinsysLKinzoneTL inparm\MinunitdNindatumlOiprtQefile|RjprTpfile U outcoorWoutsysXoutzone$Y outparm,Zoutunit4Voutdatum<[fn27\fn83]iflg_xK}`yK}afactorK}blonK~clatKfi}fj}gininit_flag}houtinit_flag}junit}Kxkdummy~long% iterd& inpjd' indat8d( inzn*0double KxbU/Xpd)pdinbd* outpj4 d+ outdat5d, outzn7P Kx/Xd-pdout8  3d.for_trans%h@  KPed/inv_transWi 6 NADUT}int K char Fg /ecs/hdfeos/gctp/src/usr/includegctp.cQsgidefs.h7standards.hD< $$$$$ $ 8 }!x &   ]| &   ]| 1(1(DH 90  00 0J) ! 2) =<  }H ] 00 0J) ! 2) -$HaDH991 $,% B .: ; 9 I? @ @: ; 9 I 4: ; 9 I I !/ $> I  I  I I 3 !/@ @A$ AAA@ @gctpiterinpjindat8inznppdinoutpjoutdatoutznpdout3for_transeinv_transNADUTt$(&GGy 4 |p1$*0kp5;0 ALIp! \[ h q | p XHppp"~Jp$p%aHp% p%p% &t &| &0 'C '$W ',kp '4br_gctp.o/ 1074016648 1032 20 100644 3236 ` ELF "4(   *8ETdt.symtab.shstrtab.strtab.comment.text.MIPS.events.text.rel.MIPS.events.text.rela.text.rel.text.MIPS.options.reginfo.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnames.textgctp_gctp.debug_info.debug_line.debug_abbrev.debug_frame.debug_aranges.debug_pubnames.rel.debug_line.rel.debug_frame.rel.debug_info.rel.debug_aranges.rel.debug_pubnamesbe::7.30-1276837810:br_gctp.obe-options:::-PHASE:c -G8 -TARG:t5_ll_sc_bug=on -TENV:PIC -m1 -TARG:abi=n32:isa=mips3 -g2 -O0 -TARG:proc=r10000 -LANG:=ansi_c'`XP<$!!!dlt|dlt| į$̯,ԯ4ܯ<䯢D쯡L ߼X߿P'    %  xx&br_gctp.ccorvette.eosdis:/ecs/hdfeos/gctp/srccc -DEFAULT:abi=n32:isa=mips4:proc=r10k -n32 -mips3 -g -DIRIX -Dunix -O -c br_gctp.cgctp_  incoorD insys L inzone T inparm\ inunit d indatum lipr tefile|jpr pfile  outcooroutsys outzone $ outparm,outunit 48fn27!<=fn83!iflg doublelongcharintU7 /ecs/hdfeos/gctp/srcbr_gctp.cD% B .: ; 9 ? @ @: ; 9 I $> I 3 @ @A$ AAA@m @*gctp_D$(4 $(L$*p!x< RT ] gp Hup@~pX*pYpRp-Hpu p    (   hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibLINUX.a0000755000175000017500000102342212024715435021227 0ustar amckinstryamckinstry! / 1295031215 0 0 0 2394 ` $"$"22EEOOYYddqq{{ffzzƞƞ**"" f f B B B B B66666KKTT^^llz^z^ZZ>>  &&##..9r9rHzHzZZ``gggBBBBɮɮ""((3~3~==ERERLLSRSRZ*""""""""""""""""""""V* ^#^alberforintalberforalberinvintalberinvalconforintalconforalconinvintalconinvazimforintazimforaziminvintaziminvbceaforintbceaforbceainvintbceainvceaforintceaforceainvintceainveqconforinteqconforeqconinvinteqconinvequiforintequiforequiinvintequiinvgnomforintgnomforgnominvintgnominvgoodforintgoodforgoodinvintgoodinvgvnspforintgvnspforgvnspinvintgvnspinvhamforinthamforhaminvinthaminvimolwforintimolwforimolwinvintimolwinvisinusforinitIsin_for_freeIsin_for_initisinusforIsin_fwdisinusinvinitIsin_inv_freeIsin_inv_initisinusinvIsin_invlamazforintlamazforlamazinvintlamazinvlamccforintlamccforlamccinvintlamccinvmerforintmerformerinvintmerinvmillforintmillformillinvintmillinvmolwforintmolwformolwinvintmolwinvobleqforintobleqforobleqinvintobleqinvomerforintomerforomerinvintomerinvorthforintorthfororthinvintorthinvpolyforintpolyforpolyinvintpolyinvpsforintpsforpsinvintpsinvrobforintrobforrobinvintrobinvsinforintsinforsininvintsininvsomforintgsat_ratiosomforsominvintsominvsterforintsterforsterinvintsterinvstplnforintstplnforstplninvintstplninvtmforinttmfortminvinttminvutmforintutmforutminvintutminvvandgforintvandgforvandginvintvandginvwivforintwivforwivinvintwivinvwviiforintwviiforwviiinvintwviiinvfor_initinv_inittsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zonep_errorinitclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblankpakszsphdzuntfzgctpgctp_alberfor.o/ 1295031209 7356 20 100664 3052 ` ELFP4( UEEE EEEEEEEEEE EE$EE(EE,EE0EE4EE8xE<|E@pEDt݅x8݅p@E0EEpw#D$$DžlXEE]EM]Eݝ`݅`ztE$ݝ`݅`ED$ ED$E$E]EE\$\$$]EE\$\$$]ED$ ED$E$EE\$\$$]EE\$\$$]ED$ ED$E$EE\$\$$]EepwEMEMEe( E(EM(M(M$( $O\$$E\$E$0$E$@8\$$DžllUhEEȋE E̋EEEEčE؉D$ ED$E$EE\$\$$](M$(]0E$(]E$M8E ]E$ME@Ealber-forinitEqual latitudes for St. Parallels on opposite sides of equatorALBERS CONICAL EQUAL-AREA|=GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %T+XH0Xx8.AQ    8@)04<DG(KM P0\diqw}0alberfor.cfalse_eastingfalse_northinglon_centerr_majorr_minore3ns0crhalberforintp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberforadjust_lonsincos}!3L^p&7^iu co alberinv.o/ 1295031209 7356 20 100664 3616 ` ELF4( UEEE EEEEEEEEEE EE$EE(EE,EE0EE4EE8xE<|E@pEDt݅x@݅pHE8EEpw#D$$DždmEE]EM  ݝh݅hݝX݅Xzt݅h$ݝX݅XED$ ED$E$E]EE\$\$$]EE\$\$$]ED$ ED$E$EE\$\$$]EE\$\$$]ED$ ED$E$EE\$\$$]EepwEMEMEe0 E0EM0M0M$0($T\$$E\$E$8$E$H@\$$DžddUhEEȋE E̋EEEEE@E](eH]0s EMEM$]]$EMEM$]x]]EuzEMEM\$$]0M]EM0]s ]$E]EEw3E܉D$E\$$EE܅teE܉EEs E=E0E܉D$E\$$EE܅tE܉E'0E8$EEEalber-invinitEqual latitudes for Standard Parallels on opposite sides of equatorALBERS CONICAL EQUAL-AREA|=𿻽|=-DT!?-DT!GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4}  %+P08X.AQ0    @H)84<D GJ0NP(SE_gltzE8alberinv.cfalse_eastingfalse_northinglon_centerr_majorr_minorese3ns0crhalberinvintp_errorsqrttsincosmsfnzqsfnzptitleradius2stanparlcenlonmeroriginoffsetpalberinvatan2logphi1zadjust_lon}6Has);Ls~ !/lz"-;FL`ju ! #9!S^h"alconfor.o/ 1295031209 7356 20 100664 3628 ` ELFh4( UhEE؋E E܋EEЋEEԋEEȋEE̋E EE$EEEE E( (]E]EztE$]E0H8P@XH`PhXp`hpx$]$]eE\$$M$]D$ D$E$$\$$$$( \$$UEXE \EPET݅X$]xD$ ED$E$݅P$]݅P$ݝHeE\$$܍H$]荅hD$ pD$E$݅p݅h݅x]E]݅hME]݅p݅h݅xM]E]EMEM]@]ŀ]@]ȡŀ]EfEME]EME]9E}@+E@EM]ȡ+EŀEM]E]E]E9E~EM]EM]E]E]EMEME EEMEME(EALASKA CONFORMAL#95RF?^s{?1,51?!bLUu?zY}? =;js?Kzs?7< sfə$s?nNȿSXOvҿ-DT!?@-DT!?@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4   %4+@ 0@8.AQ    @   *(9DOQS@8Y8_go8{8alconfor.cr_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefcos_p26sin_p26alconforintsqrtsintanpowatantsincosptitleradius2cenloncenlatoffsetpalconforadjust_lon;DMV\bhnt~ &,28>FLW]eox~ -gw! 9?Mo 2<FV`alconinv.o/ 1295031209 7356 20 100664 4808 ` ELF 4( UhEE؋E E܋EEЋEEԋEEȋEE̋E EE$EEEE E( (]E]EztE$]E0H8P@XH`PhXp`hpx$]$]eE\$$M$]D$ D$E$$\$$$$( \$$UHEE EE ݅ݝ(݅ݝ݅]݅]EEݝEMEMݝ@ݝ8ŀݝ0@ݝ ŀݝ(P$d$܍8ݝHP$d$܍0ݝ@P$d$܍ ݝXP$d$܍(ݝPER݅܍8܅ ݝ`݅܍0܅(ݝh9E+E@݅܍8ݝ +Eŀ݅܍0ݝ(݅`ݝ8݅hݝ0݅܍H܅Xݝp݅܍@܅Pݝx+EP$d$+E@݅܍HݝX+EP$d$+Eŀ݅܍@ݝP݅pݝH݅xݝ@E9E݅܍8ݝ ݅܍0ݝ(݅`ݝ8݅hݝ0E܍8E܍0܅ ܥ]E܍8E܍0܅(ܥ]E܍HE܍@܅X]E܍HE܍@܅@]EMEM]EMEMu]EMEMu]EE]EE]EE]ȃE}~#D$$DžE\EMEM$]E$]ЍD$ D$E$EEsEDžs݅݅Mu$]EE]E$ݝE$ݝ݅ܥ\$$܍$e]EE]E}~ D$$DžzE+EEM݅M݅݅M\$$$EDžALASKA CONFORMAL#95RF?^s{?1,51?!bLUu?zY}? =;js?Kzs?7< sfə$s?nNȿSXOvҿ-DT!?@alcon-invToo many iterations in inverse|=@-DT!?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4^  %+ 08 .A  Q P    *(9DOQS@8Y8_go8{8&alconinv.cr_majorr_minorfalse_eastingfalse_northinglon_centerlat_centerneacoefbcoefcos_p26sin_p26alconinvintsqrtsintanpowatantsincosptitleradius2cenloncenlatoffsetpalconinvp_errorasinzatan2adjust_lon;DMV\bhnt~ &,28>FLW]eox~ -gu$=Vrfv%,1!Ilx "&,=EO[a!3#9C$azimfor.o/ 1295031209 7356 20 100664 2360 ` ELF4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEEE D$ 0D$(E$$$$$ \$$UEhE lE`Ed݅h$]ЍED$ EȉD$݅`$E$](E0EM]EXwf]Ewt`]E\$D$p$D$Ip$DžT{E$]E$E]MEݝXE$݅X EM0E(EMEDžTTAZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-for|=-DT! @GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 H %+80h8(.AVVQ`  0 )8 F0N(Vaipwazimfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p12sin_p12azimforinttsincosptitleradiuscenlonmeroriginoffsetpazimforadjust_loncossprintfp_erroracossinGPYbks{ ?JS^|+9FOZlaziminv.o/ 1295031209 7356 20 100664 2632 ` ELFX4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEEE D$ 0D$(E$$$$$ \$$UxEEȋE E̋EEEE E]E]EMEM]E]EztE$]E]0Ew D$$E}E]E؉D$ ED$E$EE8sEEfE(EM0u$E@]E8ss5E\$E$$EE]EE\$$m$EEE]E$(m]E8wE8w E>EMEM0\$$$EEEAZIMUTHAL EQUIDISTANTazim-invInput data error-DT! @|=-DT!?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4V  %+80H8.AQ   )8 F0N(Vaipwuaziminv.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p12sin_p12aziminvinttsincosptitleradiuscenlonmeroriginoffsetpaziminvsqrtp_errorasinzatan2adjust_lonsinGPYbks{GV\ry~  0Bcis!17Abceafor.o/ 1295031210 7356 20 100664 2648 ` ELF4( UhEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EEEE E(E0E8]EM]E]EztE$]Ew X X($@($H@]HH$}P$\$$ $($08\$$UXEE؋E E܋EEЋEE E$]E$]XtAM@8EM@0E]MME] ]MM$MEM]PM8EMP0ECylinderical Equal Areah㈵>GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 ` %4+8\08(8`.AQ    &(10@8NQSXW@_HgPjuz~;bceafor.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kzbceaforintsqrtcossinptitleradius2cenlonmertrue_scaleoffsetpbceaforadjust_lonlogS\enw"(.7=ES\chnt!.7?Q^v|bceainv.o/ 1295031210 7356 20 100664 3272 ` ELF 4( UEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EEEE0E8E@EH]EM]E]EztE$]E  (wp hjp]](]$MEMh8$P8$XP]XX$}`$\$$0$8$@H\$$UXEEE EEEEEHE]@E]ptKPM$EPE0$EE`h$]0 8(@]E$ME] H(P]EX$ME](`]Eh$MEЋE`E0$ECylinderical Equal Areah㈵>@@` ` ?*B*B?[[?U?@m-?@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %,+0t00p8.AQ@    0&81@@HNQS X(]pahdPlXt`wZZbceainv.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kzbceainvintsqrtlogcossinptitleradius2cenlonmertrue_scaleoffsetpbceainvasinadjust_lonV_hqz %+3=J[apz '-5;AO z"# ""(28L[aio#ceafor.o/ 1295031210 7356 20 100664 2644 ` ELF4( UhEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EEEE E(E0E8]EM]E]EztE$]Ew X X($@($H@]HH$}P$\$$ $($08\$$UXEE؋E E܋EEЋEE E$]E$]XtAM@8EM@0E]MME] ]MM$MEM]PM8EMP0ECylinderical Equal Areah㈵>GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 \ %4+8\08(8`.AQ    %(00?8MPRXV@^HfPisx|;ceafor.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingeseindcosphi1sinphi1kzceaforintsqrtcossinptitleradius2cenlonmertrue_scaleoffsetpceaforadjust_lonlogS\enw"(.7=ES\chnt!.7?Q^v|ceainv.o/ 1295031210 7356 20 100664 3272 ` ELF 4( UEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EEEE0E8E@EH]EM]E]EztE$]E  (wp hjp]](]$MEMh8$P8$XP]XX$}`$\$$0$8$@H\$$UXEEE EEEEEHE]@E]ptKPM$EPE0$EE`h$]0 8(@]E$ME] H(P]EX$ME](`]Eh$MEЋE`E0$ECylinderical Equal Areah㈵>@@` ` ?*B*B?[[?U?@m-?@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %,+0t00p8.AQ@    0%80@?HMPR W(\p`hcPkXs`vZZceainv.cr_majorr_minorlon_centerlat_truescfalse_northingfalse_eastingesee_p4e_p6indqpcosphi1sinphi1kzceainvintsqrtlogcossinptitleradius2cenlonmertrue_scaleoffsetpceainvasinzadjust_lonV_hqz %+3=J[apz '-5;AO z"# ""(28L[aio#eqconfor.o/ 1295031210 7356 20 100664 3704 ` ELF4( UEEE EEEEEEEEEE EE$EE(EE,EE0EE4EE8EEFLeq );DJPVu  (5:!@FT"f#lt$%&!"'$%&5;AGfox)*+eqconinv.o/ 1295031210 7356 20 100664 3884 ` ELF4( UEEE EEEEEEEEEE EE$EE(EE,EE0EE4EE8EE>QH    'P6XD@G8IL O(R0U`XhZH^pamrw|feqconinv.cr_majorr_minorlon_centerfalse_northingfalse_eastingesee0e1e2e3nsgml0rheqconinvintsqrte0fne1fne2fne3fntsincosmsfnzmlfnp_errorptitleradius2stanparlcenlonmeroriginoffsetpstparl1eqconinvatan2phi3zadjust_lonnw $*28>FLeq );DJPVu  (5:!@FT"f#lt$%&!"'$%&<JS^) 7*BMW+equifor.o/ 1295031210 7356 20 100664 1648 ` ELF4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEEE $$$$ \$$U8EEE EEEEEE$]M]$E EMEEQUIRECTANGULARGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4C  %x+x(0x8.AQ`    )8 FQX_ipx}equifor.cr_majorlon_centerlat_originfalse_northingfalse_eastingequiforintptitleradiuscenlonmeroriginoffsetpequiforadjust_loncosGPYbkrw}(1equiinv.o/ 1295031210 7356 20 100664 1808 ` ELFp4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEEE $$$$ \$$U(EEE EEEEE E]E]EEE0wD$$E7$E$EEEEQUIRECTANGULARequi-invInput data error-DT!?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 0 %+(088.AQ(p   )8 FQX_ipxequiinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingequiinvintptitleradiuscenlonmeroriginoffsetpequiinvp_errorcosadjust_lonGPYbkrw},38GOUblgnomfor.o/ 1295031210 7356 20 100664 1988 ` ELF4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEE E(D$ D$E$$E$E$E$( \$$UhEEȋE E̋EEEEE$]EЉD$ E؉D$E$E$]EEM]EsD$ $Epu]ME]E$E EMEEM(EEEGNOMONICgnomfor-convPoint projects into infinityGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %+ 00 38S.AQ  ,   &(5=EPX_fmt|gnomfor.cRlon_centerfalse_eastingfalse_northingcos_p13sin_p13gnomforinttsincosptitleradiuscenloncenlatoffsetpgnomforadjust_loncosp_errorsinGPYbjr}#,7Zaf}gnominv.o/ 1295031210 7356 20 100664 2460 ` ELF4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEE(E0D$ D$E$$E$E$E$0(\$$UxEEȋE E̋EEEE(E]0E]EMEM]E]EztE$]E]E$]E؉D$ ED$E$EEsEEfEEM u$E]Ess5E\$E$$EE]EE\$$m$EEE]E$m]EwEw E>EMEM \$$$EEEGNOMONIC|=-DT!?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 ,p %P+P80P 8p.AQ  x  #(10@ HP[cjqxCgnominv.cRlon_centerlat_centerfalse_eastingfalse_northingcos_p13sin_p13gnominvinttsincosptitleradiuscenloncenlatoffsetpgnominvsqrtatanasinzatan2adjust_lonsinGPYbks{>MZv|(.8Ofqgoodfor.o/ 1295031210 7356 20 100664 3408 ` ELF4( UEEE EE   ((0(80@8H0P8X@`Hh@pHx  ((0808@H@H$E$UEEȋE E̋EEEEEs*Es EEEs*Es EEEs]Es EEs E|Es EaE XEs E=Es E"Es E E }t}t}t}t }t} u\E E$]؋Eŀ]M]E$MEEMEkE E$]E]E$]EE$Ee]EUEUE$}]EE]Ew/}1~ D$P$^EE{E]Ew]؋Eŀ]M]E$MEEE$]E$P$d$EɋEEEGOODE'S HOMOLOSINE EQUAL-AREAɠ]h-8R?_} u1EwEw EEEGOODE'S HOMOLOSINE EQUAL-AREAɠ]h-8R?_EMEM(\$$$EEEGENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: gvnsp-forInput data error|=-DT!?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %+ @0 8.AQ   &048C(K S _gnu| gvnspinv.cRplon_centerlat_centerfalse_eastingfalse_northingcos_p15sin_p15gvnspinvinttsincosptitleradiusgenrptcenloncenlatoffsetpgvnspinvsqrtp_errorasinzatan2adjust_lonsinSYhqz/=u$@FVe0;_exhamfor.o/ 1295031210 7356 20 100664 1740 ` ELFp4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$UXEEE EEEEEE$]]E$]E$E]E]EztE$]E}]E]E$E]E$EEE$MEHAMMER>ef?@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %+ 08.AQ(`  z  %4>ELS[bmqvhamfor.cRlon_centerfalse_eastingfalse_northinghamforintptitleradiuscenlonoffsetphamforadjust_loncossqrtsin;DMV]b mx~*K\fqhaminv.o/ 1295031211 7356 20 100664 1800 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$UHEEE EEEEEE]E]EMEM]E]EztE$]E]EMEMEM\$$$EEM$EHAMMER@@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 ( %+ 0 8.A>>QH`  ~  %4>ELS[bgmxhaminv.cRlon_centerfalse_eastingfalse_northinghaminvintptitleradiuscenlonoffsetphaminvsqrtatan2adjust_lonasinz;DMV]b mx~#/:DRr|imolwfor.o/ 1295031211 7356 20 100664 2816 ` ELF4( UEEE EE( 0(80@8H@PHX``hhppxx$E$UxEEȋE E̋EEEEEsEu&EEu EEuEs,EuEw EEEu#EEu EfEuEs,EuEw EEE E$]E]E$]EE$Ee]EUEUE$}]EE]Ew }1~D$$EE]Ew]؋E`]M]E$MEE ]E$MEINTERRUPTED MOLLWEIDE EQUAL-AREA@-8R?ωd8RCT!?IA5֠yJWֿ^T\nĿE؎W@2 ާT\n?^@IntMoll-forwardIteration failed to converge֠yJW? f?f?/-DT! @/-DT! ky]IA5@ˡA5-DT! @|=@-DT!?)d?;f?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %+ 0(8(.AVVQ`0  ]  0`0+29BMQUimolwfor.cRlon_centerfeastimolwforintptitleradiusimolwforadjust_lonsincosp_error#)/5;AGMSY_eksy  /Io4D^$3CKclrimolwinv.o/ 1295031211 7356 20 100664 2916 ` ELF4( UEEE EE( 0(80@8H@PHX``hhppxx$E$UHEEE EEEEEEsSEs EEs EZEQEs E,Es EEE`E]E$]E ]]E$EEE$EE]E$E$E}u4EwEw E}ulEEuEw0Eu Ew E!}u4EwEw E}u4EwEw E}uiEEuEw0EuEw E>}u1EwEw EEEINTERRUPTED MOLLWEIDE EQUAL-AREA@-8R?ωd8RCT!?IA5֠yJWֿ^T\nĿE؎W@2 ާT\n?^@~f=k8}+?=k8}+~f?;f?)d?-DT! @֠yJW? f?ɠ]ky]IA5@ˡA5GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4A 4 0 %x+ 08p.AQ0  Z  0`0+29HBGKVimolwinv.cRlon_centerfeastimolwinvintptitleradiusimolwinvasincosadjust_lonsin#)/5;AGMSY_eksy  )/NT|  5Q\f|(:bt isinusfor.o/ 1295031211 7356 20 100664 5512 ` ELF@4( UU T$ UT$D$$UxEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4Eġt6$E}t D$\$zTE,Es D$$z&EEwEw D$$zEEwEw D$$zEvE}E fEm]mEEw D$ $zBEEt D$<$zEEwE w D$h$zEEm]mEEwD$$zE`ED$$ED$ E\$E\$E\$E$uD$$,EEEUXEE؋E E܋EEЋEEԋEEȋEE̋E EE$EE(w D$$EE0wE8w D$$EE@wE8]E@sE8]Ѓ}(~ }(~ D$$?EE(t D$$E},x},~ D$$E$\E}u D$$EE@XEEEEXEEXu؋EXE(@EX UE(B(U(‹EP,EEX8E@EX0E@0HwE@08EX0UE,B@E@,$‹EPTE@Tu+E$D$$EE@TEEEPE@,P$d$X]},JO9 =Zai+w 5zisinusfor.cerrorISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinIsin_errorstderrfprintfisinusforinitIsin_for_freeIsin_for_initmallocfreecosisinusforIsin_fwd%z/?RYs #=Xkr$5<Vfy@Gdu|%Gdls>bsz$DT     " L c k  isinusinv.o/ 1295031211 7356 20 100664 5520 ` ELF84( UU T$ UT$D$$UxEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4Eġt6$E}t D$]${TE,Es D$${&EEwEw D$${EEwEw D$${EvE}E fEm]mEEw D$${BEEt D$@${EEwEw D$l${EEm]mEEwD$${E`ED$$ED$ E\$E\$E\$E$uD$${,EEEUXEE؋E E܋EEЋEEԋEEȋEE̋E EE$EE0w D$ $EE8wE@w D$ $EEHwE@]EHsE@]Ѓ}(~ }(~ D$ $2EE(t D$ $E},x},~ D$ $E$\E}u D$ $EE@XEEEEXEEXu؋EXE(HEX UE(B(U(‹EP,EEX8EHEX0E@0PwE@0@EX0UE,B@E@,$‹EPTE@Tu+E$D$ $EE@TEEEXE@,P$d$`]},JO, =Zai+w 5z isinusinv.cerrorISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinIsin_errorstderrfprintfisinusinvinitIsin_inv_freeIsin_inv_initmallocfreecosisinusinvIsin_inv%z/?RYs #=Xkr$5<Vfy@Gdu|%Gdls>bsz.@i: N d v        ? V ^  lamazfor.o/ 1295031211 7356 20 100664 2220 ` ELF4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEE E(D$ D$E$$E$E$E$( \$$UExE |EpEt݅x$]EȉD$ EЉD$݅p$E؉D$ ED$E$EEE]E`ztA\$D$ E$D$LE$DždqEhݝh݅hݝX݅Xzt݅h$ݝX݅X]EME EEEEM(EDžddLAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4o  %+00p8.AFFQP    '(6@JV^elszlamazfor.cRlon_centerfalse_eastingfalse_northingcos_lat_osin_lat_olamazforinttsincosptitleradiuscenloncenlatoffsetplamazforadjust_lonsprintfp_errorsqrtGPYbjr}-FLWo%2=Rlamazinv.o/ 1295031211 7356 20 100664 2536 ` ELF(4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEE(E0D$ D$E$$E$E$E$0(\$$UxEEȋE E̋EEEE(E]0E]EMEM]E]EztE$]E]E]Ew D$$+EsE$]E؉D$ ED$E$EE@w.E EMu$EH]E@woE]E$m]EuzEMEM \$$$Evw/]EE\$$m$E6E\$E$$E EEELAMBERT AZIMUTHAL EQUAL-AREAlamaz-inverseInput data error|=-DT!?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 px %T+X80XP8.AQ   $(20A KUaipw~Glamazinv.cRlon_centerlat_centerfalse_eastingfalse_northingcos_lat_osin_lat_olamazinvinttsincosptitleradiuscenloncenlatoffsetplamazinvsqrtp_errorasinzsinatan2adjust_lonGPYbks{>Mqx}=Cr lamccfor.o/ 1295031211 7356 20 100664 3440 ` ELF4( UEEE EEEEEEEEEE EE$EE(EE,EE0EE4EE8xE<|E@pEDtEE݅pP݅xHEEhw#D$$ DžT)]EMݝX݅XݝH݅Hzt݅X$ݝH݅HE E(ED$ ED$E$E]EE\$\$$]E\$E\$$]ED$ ED$E$EE\$\$$]E\$E\$$]($]E(\$\$$]Eehw0Eu$ݝ`Eu$ܽ`0 E00\$E$0E88ݝh0\$E$܍h@$L\$$E\$E$ $E$PH\$$DžTTUxEEȋE E̋EEEEE]Ew[E$]E\$E\$$]8]0\$E$M]>0E]EsD$$pE,n] E$0]E$MHE@]E$MEPEEElamcc-forEqual Latitiudes for St. Parallels on opposite sides of equatorLAMBERT CONFORMAL CONIC|=Point can not be projected-DT!?|=GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 p %+X08.AQP    P+H9<> I(T0W8Z@]riqv~rKlamccfor.cr_majorr_minorfalse_northingfalse_eastingesecenter_loncenter_latnsf0rhlamccforintp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccforadjust_loncosz-?HQj| '-?Pi} )/7B HN\!18=Q^#dt}$lamccinv.o/ 1295031211 7356 20 100664 3480 ` ELF84( UEEE EEEEEEEEEE EE$EE(EE,EE0EE4EE8xE<|E@pEDtEE݅xH݅pPEEhw#D$$ DžT)]EMݝX݅XݝH݅Hzt݅X$ݝH݅HE E(ED$ ED$E$E]EE\$\$$]E\$E\$$]ED$ ED$E$EE\$\$$]E\$E\$$]($]E(\$\$$]Eehw0Eu$ݝ`Eu$ܽ`0 E00\$E$0E88ݝh0\$E$܍h@$L\$$E\$E$ $E$PH\$$DžTTUhEEȋE E̋EEEEEHE]@eP]0w EMEM$]]$EMEM$]p]]EuzEMEM\$$]Euz0wb0]8EE\$$]E܉D$E\$$EE܅tE܉E2Ex0E $EEElamcc-invEqual Latitiudes for St. Parallels on opposite sides of equatorLAMBERT CONFORMAL CONIC|=-DT!GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 8 ` %4+8X088.AQ`  P  H*P9<> I(T0W8Z@]riqv~rlamccinv.cr_majorr_minorfalse_eastingfalse_northingesecenter_loncenter_latnsf0rhlamccinvintp_errorsqrttsincosmsfnztsfnzsinlogpowptitleradius2stanparlcenlonmeroriginoffsetplamccinvatan2phi2zadjust_lonz-?HQj| '-?Pi} )/7B HN\! =#Viv|$%merfor.o/ 1295031211 7356 20 100664 2408 ` ELF4( UxEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EEEEEE8E@]EM((]E]EztE$]E E$]E$(]E$E$}0$\$$$$8@\$$UXEEE EEEEEEHPs D$ $E5E$] E\$E\$$]0]E$E@E8]0]E$MmЋEEEMERCATORmer-forwardTransformation cannot be computed at the poles-DT!?|=GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 x %+H0X8.A>>QH  8 %08?@M(P R0U_dhls{merfor.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1merforintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerforp_errortsfnzadjust_lonlogS\enw%*06DJRX`flz!.9FOUemerinv.o/ 1295031211 7356 20 100664 2200 ` ELF4( UxEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EEEEEE8E@]EM((]E]EztE$]E E$]E$(]E$E$}0$\$$$$8@\$$UHEEE EEEEEE@E]8E]E0$] ED$E\$$EEtEE/0E$EEEMERCATORGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4J PH %+H0 8.AQ   %08?@M(P R0U_dhls{merinv.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesem1merinvintsqrtcossinptitleradius2cenlonmeroriginoffsetpmerinvexpphi2zadjust_lonS\enw%*06DJRX`flz+5millfor.o/ 1295031211 7356 20 100664 1608 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$U(EEE EEEEEE$]MEE $$(EMILLER CYLINDRICAL@-DT!??GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4.  %d+h 0h08.AQP   x  &5@GNU]eptmillfor.cRlon_centerfalse_eastingfalse_northingmillforintptitleradiuscenlonoffsetpmillforadjust_lontanlog;DMV]b mx~ millinv.o/ 1295031211 7356 20 100664 1620 ` ELF 4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$UEEE EEEEEE]E]E$EE$$ (ɋEMILLER CYLINDRICAL?-DT!?@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack46  %l+p 0p08.AQP  (y  &5@GNU]eptmillinv.cRlon_centerfalse_eastingfalse_northingmillinvintptitleradiuscenlonoffsetpmillinvadjust_lonexpatan;DMV]b mx~$molwfor.o/ 1295031211 7356 20 100664 2000 ` ELF84( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$UxEEȋE E̋EEEEE$]E]E$@]EE$Ee]EUEUE$}]EE]EHw/}1~ D$ $EE{EP]EXHw]`M]E$EEh]E$EEEEMOLLWEIDEMollweide-forwardIteration failed to converge-DT! @|=@-DT!?)d?;f?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %H+H 0Hp8.AQ`  P (*5@GNU]veptxmolwfor.cfalse_eastingfalse_northingRlon_centermolwforintptitleradiuscenlonoffsetpmolwforadjust_lonsincosp_error;DMV]b mx~!?T[`~molwinv.o/ 1295031212 7356 20 100664 1888 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$U8EEE EEEEEE]E]E]Ew ]E$] ]E$EE$EE(w E(E0w E0E]E$E0]Ew]E$EMOLLWEIDE;f??)d?-DT! -DT! @GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 p % +  0 88X.AQ`  } (*5@GNU]Mejnymolwinv.cfalse_eastingfalse_northingRlon_centermolwinvintptitleradiuscenlonoffsetpmolwinvasincosadjust_lonsin;DMV]b mx~"2BL\n{obleqfor.o/ 1295031212 7356 20 100664 2860 ` ELF4( UXEEE EEEEEEEEEE EE$EE(E؋E,E܋E0EЋE4EԋE8EȋEHa|obleqinv.o/ 1295031212 7356 20 100664 2952 ` ELF4( UXEEE EEEEEEEEEE EE$EE(E؋E,E܋E0EЋE4EԋE8EȋE-DT! @GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  < %P +P 0P 8.AQ     ( 38B@P0S(UP]HeXh`khmpp{xk  k omerfor.cr_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesecos_p20sin_p20blaldellon_origincosgamsingamcosazsinazuomerforintsqrttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerforcoslog %+1FL}#)1?EMckv|  *0>OXgpw|!"#$%&'&$4@JR#X`(fn)t%+9?I*U`f*+% +%4M Ven}#:cqw'*,%*%& #)3;#GQY#eow#+ +  ) : A F +] e p x           *   % + 9 ? I *U  %  ,  %       # 2 > Q \ e v  .      *     ' 2 = F \ m t y +   /        omerinv.o/ 1295031212 7356 20 100664 7284 ` ELF4( U8EEE EEEEEExE|E pE$tE(hE,lE0`E4dE8XE<\E@PEDTEHHELLEP@ETDEX8E\ $omerinv.cr_majorr_minorscale_factorlat_originfalse_northingfalse_eastingesecos_p20sin_p20blaltsdellon_origincosgamsingamcosazsinazuomerinvintsqrttsincospowtsfnzptitleradius2genrptoffsetpsinasinztancenloncenlatatanp_erroradjust_lonomerinvexpphi2zcosatan24:k}  -3;LT\gms!$2CLR` ipu"{#$%&' ('-9CK$QY)_g*m{ $28B+NY_+,&!$&-F!O^ gv  3\jp}(+-&+&'$",4$@JR$^hp$,,  " 3 : ? ,V ^ i q y          +    $ 2 8 B +N           /  # . 7 A &J S o ~          02 ; E 1N W ` t 2z  -orthfor.o/ 1295031212 7356 20 100664 2108 ` ELF4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEEE D$ 0D$(E$$$$$ \$$UhEEȋE E̋EEEEE$]EЉD$ E؉D$E$E$](E0EM]]EwE8sjME]E$E EM0E(EMEED$ $EEORTHOGRAPHICorth-forPoint can not be projected|=GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4    %@+@80@@8.AQ  h )8 F0N(Vaipw*orthfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p14sin_p14orthforinttsincosptitleradiuscenlonmeroriginoffsetporthforadjust_loncossinp_errorGPYbks{*5>Itorthinv.o/ 1295031212 7356 20 100664 2632 ` ELFP4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEEE D$ 0D$(E$$$$$ \$$UxEEȋE E̋EEEE E]E]EMEM]E]EztE$]E](Ew D$ $EE$]E؉D$ ED$E$EE0sEE_E(EM0u$E8]E0ss5E\$E$$EE]EE\$$m$EEE]E$(m]E0sE0s7EMEM0\$$$EEEORTHOGRAPHICorth-invInput data errorHz>|=-DT!?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4W  %+80@8.AQ   )8 F0N(Vaipwvorthinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p14sin_p14orthinvinttsincosptitleradiuscenlonmeroriginoffsetporthinvsqrtp_errorasinzatan2adjust_lonsinGPYbks{GV\ry~ (8Jkq{"28Bpolyfor.o/ 1295031212 7356 20 100664 2856 ` ELF4( UxEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EEEEEEXE`]EMHH]E]EztE$]E@H$ H$(H$0H$880( \$ \$\$\$$P$\$$$$X`\$$UxEEȋE E̋EEEEE$]Es6M`EXPEE؉D$ ED$E$80( E\$ \$\$\$$]EE@\$\$$]EE]M]E$EE`EPE]E$MEEXEPOLYCONICHz>GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4=   %t+xh0x8.AQp  8 &1X@`NHQ@S V(Y0\8_Pcnsx}qpolyfor.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingesee0e1e2e3ml0polyforintsqrte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyforadjust_lontsincosmsfnzsincosS\enw %+17=C_elqw} ",28_#ekqw$% &#+polyinv.o/ 1295031212 7356 20 100664 2696 ` ELF4( UhEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EEEEEEPEX]EM@@$ @$(@$0@$880( \$ \$\$\$$H$\$$$$PX\$$UEE؋E E܋EEЋEEXE]PE]EH]EEs$EEEEMEE]80( @ED$GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %H+H`0H8`.AQ@   &1P@XN@Q T(W0Z8]Halqv{|polyinv.cr_majorr_minorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0polyinvinte0fne1fne2fne3fnmlfnptitleradius2cenlonmeroriginoffsetppolyinvphi4zasinzsinadjust_lonS\enw +18=CIW]eksy2=OU[ag !"#psfor.o/ 1295031212 7356 20 100664 2684 ` ELF4( UxEE؋E E܋EEЋEEԋEEȋEE̋E EE$EċE(EE,EE0EE4EEEEXE`]EM]E]EztE$]E$ E(E0Ew88@E (wz@80]ED$ ED$E$EE\$\$$HE\$E\$$P$\$$($E\$E$UhEEȋE E̋EEEE(E$8]8M]E$]E\$E\$$]@uzHMP]M ]8M]E$E`E8M]E$EXEPOLAR STEREOGRAPHIC-DT!?|=GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %P+Ph0P08.AQ0   X(`69; >(I0T8X@\H`Pdmrwpsfor.cr_majorr_minorfalse_northingfalse_eastingesee4center_loncenter_latfacindmcstcspsforintsqrte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsforadjust_lonsincosS\entz  *=CIgs - 3>O!Xnw!"psinv.o/ 1295031212 7356 20 100664 2708 ` ELF04( UEEȋE E̋EEEEċEEEEE EE$EE(EE,EE0EE4EEEEXEP]EM]E]EztE$]E$E E(Ew008E (wz80(]E؉D$ ED$E$EE\$\$$@E\$E\$$H$\$$ $E\$E$UXEE؋E E܋EEЋEEEXE0]PE0]EMEM$]8uzHM@]M]ED$E\$$0ɋEEtEEcEzt0 ɋE5E\$E$]0M $EEEPOLAR STEREOGRAPHIC-DT!?|=GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4J  %+`008.AQ    X'P68; F(Q0U8Y@]Hajot|Spsinv.cr_majorr_minorfalse_eastingfalse_northingee4center_loncenter_latfacindmcstcspsinvintsqrte4fntsincosmsfnztsfnzptitleradius2cenlonoffsetppsinvphi2zatan2adjust_lonV_hqw} !4:@^j|)4?Zcx "+5!robfor.o/ 1295031212 7356 20 100664 3788 ` ELF(4( UHEEE EEEEEEE؋EE܋E EЋE$EEEEE(0 8(@08H@HPPXX`h`p xh(p0x8@HPX`hp x(E UE0E}~$E$E$\$$UHEE؋E E܋EEЋEEE$]E8@]EH}Eδ fEm]mEE]EEEMPEMEEXEPMEEsE E E MPEME E XE P`PEE E E MPEME E XE P`PEROBINSONX9v#?X9v?X9v?_Q?+?Gz?X9v?2ı.n?ףp= ?A`"?+?Q?-? 0*?V/?H}?O@a?=U?N@a?KY8?a2U0*?Q?ׁ?DJPV\bhntz $*@FO`ep{!.;F]jp'1;CKSetrobinv.o/ 1295031212 7356 20 100664 4596 ` ELFx 4( UHEEE EEEEEEE؋EE܋E EЋE$EEEEE(0 8(@08H@HPPXX`h`p xh(p0x8@HPX`hp x(E UE0E}~$E$E$\$$UxEEE EEEEEE]E]Eh]Ep]Ex]E}E fEm]m}uEEE E ]ȋE E E ]EE u]Eu]EMEMM]Es }EsEEx]EE]Ex]Em]mEE]EsE E E MEME E E h]E E E MEME E E h]EehE]E}K~ D$8$DEEe EɋEEEEEMEMEEEEE$EE)m}hD$8$DEEROBINSONX9v#?X9v?X9v?_Q?+?Gz?X9v?2ı.n?ףp= ?A`"?+?Q?-? 0*?V/?H}?O@a?=U?N@a?KY8?a2U0*?Q?ׁ?RFߑ?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %4+@ 0@8.A& & Q0 `   |  %4 7;ELSZb_iqrobinv.cRlon_centerfalse_eastingfalse_northingprxlrrobinvintptitleradiuscenlonoffsetprobinvp_erroradjust_lon;DMV\bhnv~ &,28>DJPV\bhntz $*@FO`ep{P]o|(6F|,9D[hn#5BOZq~sinfor.o/ 1295031212 7356 20 100664 1496 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$U8EEE EEEEEE$]M]E$EEMESINUSOIDALGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 H %L+P 0P 8[.AQ@  q  %4>ELS[zbmsinfor.cRlon_centerfalse_eastingfalse_northingsinforintptitleradiuscenlonoffsetpsinforadjust_loncos;DMV]b mx~sininv.o/ 1295031213 7356 20 100664 1748 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$U8EEE EEEEEE]E]EEE0wD$ $EܤqE0]E8w7E$E]E$E EEESINUSOIDALsinusoidal-inverseInput data error-DT!?|=GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %+ 0@8.A66Q@P  y  %4>ELS[bjnsininv.cRlon_centerfalse_eastingfalse_northingsininvintptitleradiuscenlonoffsetpsininvp_errorcosadjust_lon;DMV]b mx~ %5MS`p}somfor.o/ 1295031213 7356 20 100664 7224 ` ELF4( UExE |EpEtE hE$lE(`E,dE0XE4\E8PE$D$X$\$$D$z$E$hhw hE$`phh]p``]epHHHHp]Eu8pMEM@EMMP]ED$ED$ED$ ED$ED$E$E]E]E]E]E]E E]ED$ED$ED$ ED$ED$E$EEE]EE]EE]EE]EE]E}Q_EE]ED$ED$ED$ ED$ED$E$EE]EE]EE]EE]EE]E}Hs]ED$ED$ED$ ED$ED$E$EE]EE]EE]EE]EE]EE EE (E(0UEE EE@]݅]݅ݝ0EHw H]EPw P]E]݅0]Es X]uz `]Ew h]Dž(E]Dž,XMEݝx݅x$ݝp݅pEw݅x@ݝx݅ps]݅pw p]E$MxEݝhXMEݝ`݅`$ݝX݅X@w݅`@ݝ`pݝ`E$݅``ݝh݅`$h܅hܵXݝP݅P$ݝH݅H܅hݝHE݅Hݝ@݅@Ew",,2݅H]ݝ8݅8]((݅H݅8w݅HE݅H݅8w `]݅HEsX]50 i@tera@tion@ s wi@thou@t co@nv D$0$DžtE$]phMݝxE$`ݝ݅`$܍݅xݝpMMݝ݅ݝX݅Xzt݅$ݝX݅Xܽ$]E]E$$]݅H$]EM]X`ݝ݅H$݅ݝ@MHM8M$܍xPPxx$]܍Hݝ݅H$݅ݝ݅H$ ݅xMuEEɋE(Mݝ݅H$0݅PMuEEɋEE]EEEEDžttUXEɋEE$]EM]X`]E$E]@MHM8M$Mx8MHM$HM8M8MXh]PPxx$]PMxxuEE]E$ME E]ȋE$MȋEPExu]E$MEE$MESPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: @=?wO[?&p= `@5RFߑ?O)?j\a0l?~CS?l)`@cܥL@& .>@@V@>@N@.@F@som-forwardHz>z!?z!-DT!?^8U)zj@!3|@-DT!-DT! @-DT!@@-DT!?@@Fߑ?@@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 P %L+P0P8.AFFQP   ')+p.X2=ChF`IHK8M@OPRH ]` c(f0ixkuusomfor.cfalse_eastingfalse_northingabesp21lon_centerstartcasawqtxjsom_seriesa2a4c1c3ssomforintgsat_ratioptitleradius2genrpt_longgenrptoffsetpcossinsomfortanatanp_errorsqrtasinlog$->GMV^fntz  !+3!9?IQ!W]k"qy!#$'-@FL_n.AT |+<HW#P^$gx#&$*' * p ~ ( $   #  $ 2 )L *X ` p &x + $   #    )     * )3 O $U q { $      $    * U i ${   #    )    )   , 2 A G O U a )j s y  #  #   # #sominv.o/ 1295031213 7356 20 100664 7108 ` ELF4( UExE |EpEtE hE$lE(`E,dE0XE4\E8PE$D$X$\$$D$z݅@$E$ppw pE$hxpp]xhh]exPPPPx]Eu8xMEM@EuHEMMX]ED$ED$ED$ ED$ED$E$WE]E]E]E]E]E E]ED$ED$ED$ ED$ED$E$EE]EE]EE]EE]EE]E}Q]EE]ED$ED$ED$ ED$ED$E$HEE]EE]EE]EE]EE]E}Hq]ED$ED$ED$ ED$ED$E$EE]EE]EE]EE]EE]EE EE(E 0UXEHE LE@ED݅H]݅@ݝHEݝ@݅@ݝXXݝ`E݅Xݝh݅X$ݝp݅p܍pݝx`hݝ݅X$݅ݝ@܍xP܍x8܍xݝ݅ݝ݅zt݅$ݝ݅܍݅@݅HXݝ݅X`$݅ݝ݅Xh$ ݅ݝXݝ݅X$(ݝ݅Xp$0܅܍ܭ]EݝX݅Xܥh]E݅`wE}1}1~#D$($4DžS݅X$]XX$ݝ݅H(Mݝ݅Xx$0܅܍$]E$]E]EM]݅X$w݅XݝXE$]EM]xEݝ݅X$݅pݝhMݝ 8MeHM$݅ ݝ(݅X$ܽ(݅HM$]Es]Ew ]݅X$s]݅X$w ]eME]`܍XE]hw9xxxM$E$]hsg݅X$ݝ0E$݅0ݝ8E$p݅8xh$]E$EEEDžUXEɋEE$]EM]`h]E$E]@MPM8M$M8MPM$PM8M8M`p]XX$]XMuEE]E$ME E]ȋE$MȋEXEu]E$MEE$MESPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: @=?wO[?&p= `@5RFߑ?j\a0l?~CS?l)`@cܥL@& .>@@V@>@N@.@F@som-inverse50 iterations without convergence& .>@-DT!?Hz>-DT!Fߑ?@@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  Tp % + 0 8.AQ   ')+x.9`=p@hCPE8G@IHKXN Y\ _(b0egqx!sominv.cfalse_eastingfalse_northingabeslon_centerp21casawqtuxjsom_seriesa2a4c1c3ssominvintptitleradius2genrpt_longgenrptoffsetpcossinsominvsqrtp_errorexpatantanasinadjust_lon&/5>FNV^gmv~   -!5C N"TZbqw#!-<&RZckt| "N#lr"%'5=S]#c###PW\&y#%#' ( 5 "= R e #w  )     % " ) (U f " "         % * $ = )N "g #m }   (  +  #   "# 0 = P %Y _ l } %          %    "9 C "Q Z o "  "sterfor.o/ 1295031213 7356 20 100664 2132 ` ELF4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEEE D$ 0D$(E$$$$$ \$$UhEEȋE E̋EEEEE$]EЉD$ E؉D$E$E$](E0EM]E8sD$$EgzE@]ME]E$E EM0E(EMEEESTEREOGRAPHICster-forPoint projects into infinity|=@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 ,( %D+H80HH8.AQ  x )8 F0N(Vaipw-sterfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p10sin_p10sterforinttsincosptitleradiuscenlonmeroriginoffsetpsterforadjust_loncosp_errorsinGPYbks{*5>Iev}sterinv.o/ 1295031213 7356 20 100664 2524 ` ELF4( U8EEE EEEEEEEEEE EE$EE(E؋E,EEEEEE D$ 0D$(E$$$$$ \$$UxEEȋE E̋EEEE E]E]EMEM]E]EztE$]E]E$]E؉D$ ED$E$EEsEEvE(EM0u$E]Ess5E\$E$$EE]EE\$$m$EEE]E$(m]EEu%EEu E>EMEM0\$$$EEESTEREOGRAPHIC|=-DT!?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4: T %p+p80p 8.AQ   )8 F0N(VaipwYsterinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingcos_p10sin_p10sterinvinttsincosptitleradiuscenlonmeroriginoffsetpsterinvsqrtatanasinatan2adjust_lonsinGPYbks{GVg7=G^u%stplnfor.o/ 1295031213 7356 20 100664 5768 ` ELFP4( UDžt;EtE}Džb} uADžx'x;EuxtZxx~E} u?Džx'x ;Euxtxx~̓tuIE D$ ED$D$$D$'$Dž} uD$2E$ED$2E$E}u#D$4$@Dž'tiD$D$E$ED$ D$ D$$ED$ D$D$$ED$ D$ D$($E$EDžx'xx)E xxv΍Džxax(ЉEEMU)E EEvڋxݜ(xx~IE D$ ED$D$$D$'$Džr$iD$uE$} u Dž| Dž|SD$|$݅(]݅0ݝ݅ݝx݅xzt݅$ݝx݅x݅(]݅@]݅8$D$$]ti݅X$D$$]t#݅`]݅h]E\$0E\$(E\$ E\$E\$E\$E$k݅P$D$$]؋t݅H$D$$]苅t=݅8$D$$]t݅X$D$$]t݅`]݅h]E\$8E\$0E\$(E\$ E\$E\$E\$E$T݅8$D$$]t ݅@$D$$]t݅H]݅P]E\$(E\$ E\$E\$E\$E$ug݅@]݅P$D$$]t"݅8$D$$]ȋt݅X$D$$]t݅`]݅h]E]]]]ED$`E\$XE\$PE\$HE\$@E\$8E\$0E\$(E\$ E\$E\$E\$E$DžUHEEE EEEEEu8ED$ED$E\$E$E}EEu1ED$ED$E\$E$E}t~EE}u1ED$ED$E\$E$E}tCEEBu1ED$ED$E\$E$E}tEEEEef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrstate-forError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD5RFߑ?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4   % 8 +8088.AQ    ".6>DJPW^jou{stplnfor.cinzoneNAD27NAD83idstplnforintsprintfp_errorfopenfseekfreadfcloseptitlegenrpt_longsqrtpakczpaksztmforintlamccforintpolyforintomerforintstplnfortmforlamccforpolyforomerfor!Z  '2?J[bgc 27?Jn|BTZ(:@n:D[ms#CU[ / E j    stplninv.o/ 1295031213 7356 20 100664 5828 ` ELFp4( UDžt;EtE}Džtm} uADžx'x;EuxtZxx~E} u?Džx'x ;Euxtxx~̓tuIE D$ ED$D$$D$'$Džt} uD$2E$ED$2E$E}u#D$4$@Džt2tiD$D$E$E$ED$ D$ D$$ED$ D$D$$ED$ D$ D$($E$EDžx'xx)E xxv΍Džxax(ЉEEMU)E EEvڋxݜ(xx~IE D$ ED$D$$D$'$Džtr$iD$uE$} u Dž| Dž|SD$|$݅(]݅0ݝx݅xݝh݅hzt݅x$ݝh݅h݅(]݅@]݅8$D$$]tti݅X$D$$]tt#݅`]݅h]E\$0E\$(E\$ E\$E\$E\$E$k݅P$D$$]؋tt݅H$D$$]苅tt=݅8$D$$]tt݅X$D$$]tt݅`]݅h]E\$8E\$0E\$(E\$ E\$E\$E\$E$T݅8$D$$]tt ݅@$D$$]tt݅H]݅P]E\$(E\$ E\$E\$E\$E$ug݅@]݅P$D$$]tt"݅8$D$$]ȋtt݅X$D$$]tt݅`]݅h]E]]]]ED$`E\$XE\$PE\$HE\$@E\$8E\$0E\$(E\$ E\$E\$E\$E$DžttUHEEE EEEEEu8ED$ED$E\$E$E}EEu1ED$ED$E\$E$E}t~EE}u1ED$ED$E\$E$E}tCEEBu1ED$ED$E\$E$E}tEEEEef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrstate-invError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD5RFߑ?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4   % 8 +X0X8.AQ(   H  ".6>DJPV]dpu{stplninv.cinzonenad27nad83idstplninvintsprintfp_errorfopenfseekftellfreadfcloseptitlegenrpt_longsqrtpakczpaksztminvintlamccinvintpolyinvintomerinvintstplninvtminvlamccinvpolyinvomerinv!Z  '2?J[bg#n '=BJUyM_e3EKyEOfx~$.N`f : P u   !tmfor.o/ 1295031213 7356 20 100664 4096 ` ELF04( UxEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EċE8EEtm-forPoint projects into infinity|=?@4@2@R@M8@"@@>@N@@tGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 H %+x08.AQ    &1 <`KhYH\(_0b8e@hXlPppt } tmfor.cr_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espindtmforinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptmforadjust_lontsincossinp_errorlogcossqrtacostan_hqz $@FNTZflr !"-:$V%\y&'()C*]+x~,* &EKVex !)<FL\kstminv.o/ 1295031213 7356 20 100664 4860 ` ELFh 4( UxEEE EEEEEEE؋EE܋E EЋE$EԋE(EȋE,E̋E0EE4EċE8EETM-INVERSELatitude failed to converge?@|=-DT!?8@@$@">V@N@r@F@o4<@ @8@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %+t008.A  Q     &1 <`KhYH\(_0b8e@hXlPppt}tminv.cr_majorr_minorscale_factorlon_centerlat_originfalse_northingfalse_eastingese0e1e2e3ml0espindtminvinte0fne1fne2fne3fnmlfnptitleradius2genrptcenlonmeroriginoffsetptminvexpcossqrtasinzatan2adjust_lonsinp_errortsincostansign_hqz $@FNTZflr !"7EK]$fr}%& 'd()*#=G*Mis*y+%,3-J~& *0=HP[hrx/9)N.\iutmfor.o/ 1295031213 7356 20 100664 4232 ` ELF4( UhEEE EEEEEEE؋EE܃} x} ~E 3E )Ѓ<~ D$$ E EEE E 3U )‰-P$d$xh} y ]]E`]EMHH$(H$0H$8H$@ @80(\$ \$\$\$$XHHPHwp$ D$DE $\$$D$P$$EEUEEE EEEEEE$]ED$ ED$E$puz3E$E]Ew#D$$Džl]ݝpEe$܍pEE$EݝxEM]Eݝ`݅`ztE$ݝ`݅`ܽx$]Ewu EɋEDžlEM]EM]EEP]E$]EM]EEH]]E$}]@80(E\$ \$\$\$$]MMEeEEEEMEPhEXEEMEeEEMEE EME(P0M`EDžllutm-forintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: 5RFߑ?AcAh㈵>utm-forPoint projects into infinity|=?@4@2@R@M8@"@@>@N@@tGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 0 X %+x0888.AffQp   0  ' 2=hK`ZH](`0c8f@iXmPqpu??utmfor.cr_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espindutmforintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutmforadjust_lontsincossinlogcossqrtacostanNUZox '-3;AGOU[agms  !!'/"bo$%&%';(x)*+ /=)IOU[z".>KV^q{utminv.o/ 1295031213 7356 20 100664 5036 ` ELF 4( UhEEE EEEEEEE؋EE܃} x} ~E 3E )Ѓ<~ D$$ E EEE E 3U )‰-P$d$xh} y ]]E`]EMHH$(H$0H$8H$@ @80(\$ \$\$\$$XHHPHw p p$ D$DE $\$$D$P$$EEUEXE \EPETEpo݅X$]uE]݅P ]E$]EMEMݝ(݅(ݝ ݅ zt݅($ݝ ݅ ݝp݅p$EEw EEE!Ѓu3E!ЃuEDž4E\$E$$EDž4h݅XݝX`݅PݝP݅PXݝp݅pݝxE݅x$0܅pݝ8݅x$8݅8ݝ@݅x$@݅@(ܥx]݅xEݝxEs4E;E|#D$$Dž4_E$݅xw=`D$ hD$݅x$݅x$]݅`݅`P]EM]EM]EM]݅h݅hHݝpݝH݅p$ܽH]HMܵp]M݅X]EM]EMMuEEEEPEE (E0E8P@EH݅xEEPEEEXE`EhEHPpExM݅`$E.݅P$P$d$ɋEEDž44utm-invintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: 5RFߑ?AcAh㈵>UTM-INVERSELatitude failed to converge?@|=-DT!?8@@$@">V@N@r@F@o4<@ @8@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %+t08 .A  Q     ' 2=hK`ZH](`0c8f@iXmPqpuMMutminv.cr_majorr_minorscale_factorlat_originlon_centerfalse_eastingfalse_northingese0e1e2e3ml0espindutminvintp_errore0fne1fne2fne3fnmlfnptitlegenrpt_longradius2genrptcenlonmerutminvexpcossqrtasinzatan2adjust_lonsintsincostansignNUZox '-3;AGOU[agms  '/!5="$%8&X'()'5=h*n**Bp+~,&@KS^ku{&1>HN[z)-vandgfor.o/ 1295031213 7356 20 100664 2676 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$UEEE EEEEEE$]Es0MEEDžTE$]Es!E sEEs>ݝXE($݅XE<ݝ`E0$݅`EDžTuE8(]EM]ЍED$ ED$E$EEE]EM]E@M]EM]ݝhEeMݝpEeMEeEEEeݝx݅xݝH݅Hzt݅x$ݝH݅H܅p݅hEE]EwuEEE]EsG]EMEHM$EEE8]EMEHM$EEDžTTVAN DER GRINTEN|=-DT! @-DT!??-DT! @GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4   %@+@ 0@P8.AQp  8 '6BIPW_lhsy}vandgfor.cRlon_centerfalse_eastingfalse_northingvandgforintptitleradiuscenlonoffsetpvandgforadjust_lonasinztantsincossqrt;DMV]b mx~+9KUg #Jp7EKmsvandginv.o/ 1295031213 7356 20 100664 2548 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$UEEE EEEEEE]E]]Eu]Eu]EMEM]EݝXX\X\݅XE]EMEEM]EEMEM]EMuEMMuuuE Muu(]EM0uEu]E0ݝh݅hݝ`݅`zt݅h$ݝ`݅`]E8uu]Ew Es] @]E$8]EsaEݝXX\ptEH$݅pE0uɋE_EݝXX\x|EH$݅xE0uPɋEEXwEEdE]EMEMEM$E`u$EEEVAN DER GRINTEN-DT! @";@@es-8R?-DT! |=@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 H %$+( 0(h8.AQ`  ( '6BIPW_Phmrvvandginv.cRlon_centerfalse_eastingfalse_northingvandginvintptitleradiuscenlonoffsetpvandginvsqrtacoscosadjust_lon;DMV]b mx~Nj5o})3DQcrwivfor.o/ 1295031214 7356 20 100664 1896 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$E\$E$UhEEȋE E̋EEEEE$]E]E$8]EE$Ee]EUEUE$}]EE]E@w }~D$ $EEH]PM]E$EEX]E$EEWAGNER IVwagneriv-forwardIteration failed to convergeLKD@|=@%䃞?\4 ?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  % + 0`8p.AQ`  }  %4>ELS[Abmquwivfor.cRlon_centerfalse_eastingfalse_northingwivforintptitleradiuscenlonoffsetpwivforadjust_lonsincosp_error;DMV]b mx7LSXgrxwivinv.o/ 1295031214 7356 20 100664 1668 ` ELF@4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$E\$E$U8EEE EEEEEE]E]E$]]E$EE$EE]E$E $EWAGNER IV\4 ?%䃞?LKD@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4`  %+ 0(8.AQ`  Xz  %4>ELS[bgkvwivinv.cRlon_centerfalse_eastingfalse_northingwivinvintptitleradiuscenlonoffsetpwivinvasincosadjust_lonsin;DMV]b mx;FPwviifor.o/ 1295031214 7356 20 100664 1796 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$UhEEȋE E̋EEEEE$]EEЉD$ E؉D$$E$]EM]E]EztE$]E]EM $](MMEE0MMEWAGNER VII@T5A}?@G|V@rPL?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 4 %+ 088.AFFQP`    &5@GNU] epx|wviifor.cRlon_centerfalse_eastingfalse_northingwviiforintptitleradiuscenlonoffsetpwviiforadjust_lontsincossinsqrt;DMV]b mx~0IS\buwviiinv.o/ 1295031214 7356 20 100664 1868 ` ELF4( U8EEE EEEEEEEEEE EE$EEEEE$E$E$\$$UXEE؋E E܋EEЋEEE]E]E]E]EM]EM]EE]E]EztE$]E]E$]E$ME $EE]E$ME\$$($EWAGNER VIIG|V@rPL?tr ?@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 t %+ 0080.A^^Qh    &5@GNU],ejptx~wviiinv.cRlon_centerfalse_eastingfalse_northingwviiinvintptitleradiuscenlonoffsetpwviiinvsqrtasinzsintanatan2adjust_lon;DMV]b mx~)8IYeqfor_init.o/ 1295031214 7356 20 100664 13588 ` ELF#4( UhDžE}aEw4Ew&EwEwED$ D$ (D$ED$E$}bEw4Ew&EwEw EED$ D$ (D$ED$E$0D$ D$ (D$ED$E$E0]E8]}aE ED$$ݝpEE EtDž&!E(ED$$ݝ`EE EtDž ݅ ݅(E\$(E\$ ݅`\$݅p\$\$$‹EEE EE$l }bE ED$$ݝpEE EtDž E(ED$$ݝ`EE EtDž݅ ݅(E\$(E\$ ݅`\$݅p\$\$$‹EEE EE$c}z}y7ED$ D$ (D$ED$EЉ$E 44EED$$ݝPEE EtDžEED$$ݝ`EE EtDžu݅P$4݅`w4]݅ ݅(4D$E\$\$$‹EEE EE$}u]ED$ ED$ED$E $‹EEE EtDžEE$|}EED$$ݝ`EE EtDž-EED$$ݝhEE EtDžE(ED$$]EE EtDžE ED$$ݝpEE EtDžC݅ ݅(E\$8E\$0E\$(݅p\$ ݅h\$݅`\$\$$‹EEE EE$}EED$$ݝ`EE EtDžxEED$$ݝhEE EtDž)E ED$$ݝpEE EtDžE(ED$$]EE EtDž݅ ݅(E\$8E\$0E\$(݅p\$ ݅h\$݅`\$\$$‹EEE EE$}E ED$$ݝpEE EtDžE(ED$$ݝ`EE EtDžt݅ ݅(E\$(E\$ ݅`\$݅p\$\$$‹EEE EE$ }E ED$$ݝpEE EtDžE(ED$$ݝ`EE EtDžk݅ ݅(E\$(E\$ ݅`\$݅p\$\$$‹EEE EE$}E ED$$ݝpEE EtDžE(ED$$]EE EtDže݅ ݅(E\$(E\$ E\$݅p\$\$$‹EEE EE$}EED$$ݝ`EE EtDžEED$$ݝhEE EtDž_E ED$$ݝpEE EtDžE(ED$$]EE EtDžE@zt EE݅ ݅(E܉D$@E\$8E\$0E\$(݅p\$ ݅h\$݅`\$\$$‹EEE EE$}  E]E ED$$ݝpEE EtDžE(ED$$]EE EtDžt݅ ݅(E\$0E\$(E\$ ݅p\$E\$\$$‹EEE EE$} E ED$$ݝpEE EtDžE(ED$$ݝxEE EtDžg݅E\$ E\$݅x\$݅p\$$‹EEE EE$} E ED$$ݝpEE EtDžE(ED$$ݝxEE EtDžj݅E\$ E\$݅x\$݅p\$$‹EEE EE$ } E ED$$ݝpEE EtDžE(ED$$ݝxEE EtDžm݅E\$ E\$݅x\$݅p\$$‹EEE EE$} E ED$$ݝpEE EtDžE(ED$$ݝxEE EtDžp݅E\$ E\$݅x\$݅p\$$‹EEE EE$}E ED$$ݝpEE EtDžE(ED$$ݝxEE EtDžs݅E\$ E\$݅x\$݅p\$$‹EEE EE$}E ED$$ݝpEE EtDžE(ED$$ݝxEE EtDžvE]݅E\$(E\$ ݅x\$݅p\$E\$$‹EEE EE$}E ED$$ݝpEE EtDž ݅E\$E\$݅p\$$‹EEE EE$a }E ED$$ݝpEE EtDž E(ED$$ݝ`EE EtDž ݅E\$ E\$݅`\$݅p\$$‹EEE EE$d }E ED$$ݝpEE EtDž ݅E\$E\$݅p\$$‹EEE EE$ }E ED$$ݝpEE EtDžq ݅E\$E\$݅p\$$‹EEE EE$ }E]E(ED$$]EE EtDž E`uzEEED$$ݝ8EE EtDžU E ED$$]EE ERDž EE@ED$$ݝPEE EtDž EHED$$ݝ`EE EtDž` EPED$$ݝXEE EtDž EXED$$ݝhEE EtDž݅ ݅(E܉D$`݅h\$X݅X\$P݅`\$H݅P\$@E\$8E\$0E\$(E\$ ݅8\$E\$\$$‹EEE EE$}Eٽ f ٭ ]٭E٭ ]٭E`ztEEED$$ݝ@EE EtDžiE ED$$ݝPEE EtDžE@]ȋEH]EPٽ f ٭ ]٭E݅ ݅(E\$HE܉D$DEĉD$@E\$8E\$0E\$(݅P\$ ݅@\$ɋEԉD$E؉D$\$$‹EEE EE$9}E ED$$ݝpEE EtDž݅E\$E\$݅p\$$‹EEE EE$}E ED$$ݝpEE EtDžF݅E\$E\$݅p\$$‹EEE EE$}u3݅$‹EEE EE$}E ED$$ݝpEE EtDži݅E\$E\$݅p\$$‹EEE EE$}u3݅$‹EEE EE$}uM݅ ݅(E\$E\$\$$‹EEE EE$}E ED$$ݝpEE EtDž9݅E\$E\$݅p\$$‹EEE EE$}E ED$$ݝpEE EtDž݅E\$E\$݅p\$$‹EEE EE$@}pE ED$$ݝpEE EtDžE(ED$$ݝxEE EtDžE]E]E@ED$$ݝHEE EtDž=݅E\$8E\$0݅H\$(E\$ E\$݅x\$݅p\$$‹EEE EE$}ct }E ED$$ݝpEE Et DžtE@]EP]݅E\$(E\$ E\$E\$݅p\$$‹EEE EE$Dž @U>cܥL@x#?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4# - %8#+8#08# 8X#.A##Q%  p* #!+2=ES]dpy "-5@HS[gpz  (4=IR\cnvfor_init.cfor_initsphdzpakszceaforintceaforbceaforintbceaforcalc_utm_zoneutmforintutmforstplnforintstplnforalberforintalberforlamccforintlamccformerforintmerforpsforintpsforpolyforintpolyforeqconforinteqconfortmforinttmforsterforintsterforlamazforintlamazforazimforintazimforgnomforintgnomfororthforintorthforgvnspforintgvnspforsinforintsinforequiforintequiformillforintmillforvandgforintvandgforomerforintomerforsomforintsomforhamforinthamforrobforintrobforgoodforintgoodformolwforintmolwforimolwforintimolwforalconforintalconforwivforintwivforwviiforintwviiforobleqforintobleqforisinusforinitisinusfor 0 b   \ |   e    J PX 4l  0 6>| !G MU  4 :B   K  Q Y      T  Z b       ]  c k       `  f n             N T\ !  X ^f"# U [c$% R X`&' O U]()  L RZ*+ I OW,-  g./   d01 2(3N T\45  j px  _ em   67V \d 89 3:S;y <=>0?V \d@AB C@D`E F G*  0 8  H I   ! #!+!! !!"J""KN" T"\""L"Minv_init.o/ 1295031214 7356 20 100664 13500 ` ELF#4( UhDžE}aEw4Ew&EwEwE D$(D$ 0D$ED$E$}bEw4Ew&EwEw EE D$(D$ 0D$ED$E$0 D$(D$ 0D$ED$E$E0]E8]}aE ED$$ݝxEE EtDž E(ED$$ݝhEE EtDžy ݅(݅0E\$(E\$ ݅h\$݅x\$\$$‹EEE EE$ }bE ED$$ݝxEE EtDžE(ED$$ݝhEE EtDžp݅(݅0E\$(E\$ ݅h\$݅x\$\$$‹EEE EE$}z}y7E D$(D$ 0D$ED$E܉$E <<EED$$ݝXEE EtDžfEED$$ݝhEE EtDž݅X$<݅hw<]݅(݅0cܥL@x#?GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4" , %"+"0" 8#.A.#.#Q8%  * "!+2=ES]dpy "-5@HS[gpz  (4=IR\cnvinv_init.cinv_initsphdzpakszceainvintceainvbceainvintbceainvcalc_utm_zoneutminvintutminvstplninvintstplninvalberinvintalberinvlamccinvintlamccinvmerinvintmerinvpsinvintpsinvpolyinvintpolyinveqconinvinteqconinvtminvinttminvsterinvintsterinvlamazinvintlamazinvaziminvintaziminvgnominvintgnominvorthinvintorthinvgvnspinvintgvnspinvsininvintsininvequiinvintequiinvmillinvintmillinvvandginvintvandginvomerinvintomerinvsominvintsominvhaminvinthaminvrobinvintrobinvgoodinvintgoodinvmolwinvintmolwinvimolwinvintimolwinvalconinvintalconinvwivinvintwivinvwviiinvintwviiinvobleqinvintobleqinvisinusinvinitisinusinv 0 b   \ |   e    J PX 4l  0 6> !G MU  4 :B   K  Q Y      T  Z b       ]  c k       `  f n             N T\ !  X ^f"# O U]$% F LT&' = CK() 4 :B*+ + 19,- C.c/  @0`1 23* 0845 F LT  ; AI  672 8@ 78W9} :;! '/<=>?  \@|ABCDE. 4<FG 0 HP Iv  |     '! -!5!!J!K! !!o"L"Mcproj.o/ 1295031214 7356 20 100664 6584 ` ELF4( UEEE EE$EE$EUEEE EEw Ew] ]E$UHEEE EEEEEEE؋EEEM]EM]E]EztE$]EEUXEEE EEEEEEE؋EEEwZEM]EM]EME]u]eE$MEE] E]EUEEE EEEEEE8$]E@w E]EM]EED$ EȉD$E$EE]EM]E8ME]eEEu]8u]eE$MEM]EE]EHsE]4E}CD$$#EP]EUXEEȋE E̋EEEEċEEh]E$px]E~E$]EM]eEE\$$M$pxe]EE]EsE]4E}xD$X$#E]EUhEE؋E E܋EEЋEEԋEEȋEE̋E EE$EċE(EE,EE]EE$ME]E$ME]E$MEue]EE]EsE0E]4E}nD$$E0]EUEEE EEEEEEEEEE EE$EE(EE,EE0EE4EE8xE<|EDEE ED$]ED$]EMM$ME@ED$]EDMEMݝ8ED$M݅8ݝ@ED $M܅@]E(ݝHED$܍HEݝPEݝXED$܍X݅Pݝ`E ݝhED0$܍h܅`]EE@EM܅xE(ɋE@M]EMEM܅xE(MɋE@]EeE@M(uE(]EEE]EDEEDE8s ݝp.E}D$$ݝp݅pU0EE؋E EE EwE-E]E@H}Eִ fEm]m֋Ei'P$d$E]EPHm]m֋EkdP$d$E]EXE`E]}-uuEU0EE؋E EE Eh]EwE-E]E}Eִ fEm]mEEp]Em]mEEp]ExEE]}-uuEU8EEE EEEEEEE؋EEEM]E]eEE\$$]e$uUEEE EEw EEEU(EEE EEEE}E fEm]mE(E$P$d$E]LEm]mEP$d$w4Em]mEP$d$E]Em]mEP$d$w4Em]mEP$d$E]Em]mEP$d$w1Em]mEP$d$E]#E$P$d$E]E}phi1z-convConvergence error?|=Hz>phi2z-conv?-DT!?|=@PHI3Z-CONVLatitude failed to converge after 15 iterations@|=@phi4z-convLattitude failed to converge@@|=@MbP?Y@.A@@cܥL@N@.A@@?-DT!?-DT! @-DT!-DT!@A!T! B!T! =~S!C=~S!п0@?@?????UUUUUU?@f@@GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %D+D0HP8.AQP    44Q$l*/59Q?GMRV\ bfltY z 5  I8 Ay 3 % X)  Dcproj.ctsincossincosasinzasinmsfnzsqrtqsfnzlogphi1zp_errorphi2zatanpowphi3zphi4ztanpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zone ) q  Yu 7_{%+3L uU gq      1H `s}  HXIQ{ # 1 <      - A n |       ( D \ z        $ O Z e      # y        report.o/ 1295031214 7356 20 100664 7172 ` ELF4( UtED$E D$$tJD$ $ ED$ E D$D$$$U}u}u?Eu EuED$$ w}u]Eu*D$ $EED$$ } u } u?Eu E ED$$ t} uZEu' D$ $E: ED$$  EEUt $t $UtED$$7 tCD$ $ ED$D$7$$UEEE EtE\$$T tBD$ $ E\$D$T$$U(EEE EEEEEt&E\$$|E\$$ t^D$ $ E\$D$|$E\$D$$$UEEE EtE\$$ tJD$ $ Eɡ\$D$$$UEEE EtEP\$$ tJD$ $ EPɡ\$D$$$UEEE EtE\$$X tJD$ $ Eɡ\$D$$$UEEE EtE\$$ tJD$ $ Eɡ\$D$$$UEEE EtEx\$$ tJD$ $ Exɡ\$D$D$$U(EEE EEEEEt6E\$$E\$$ tnD$ $ Eɡ\$D$$Eɡ\$D$$$UEEE EtE\$$ tJD$ $ Eɡ\$D$$$U(EEE EEEEEt&E\$$E\$$4 t^D$ $ E\$D$$E\$D$4$$U(EEE EtE\$ED$$X tJD$ $ E\$ ED$D$X$$UtED$E D$$c tJD$ $ ED$ E D$D$c$$Ut $ t;D$ $ D$$ $[%s] %s areport-fileOutput file name not specified %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees cܥL@ Longitude of Central Meridian: %lf degrees cܥL@ Latitude of Center: %lf degrees Latitude of Center: %lf degrees cܥL@ Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees cܥL@ Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees cܥL@ 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees cܥL@ Standard Parallel: %lf degrees cܥL@ False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4O  0 % +  0 n8.A<<QH     %,7 > HO~W^dls~xC4wp{b.D0p ~ areport.cterminal_efile_eerr_filefptr_eterminal_pfile_pparm_filefptr_pp_errorprintffopenfprintffcloseinitstrcpyclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblankputcharfputc %*6=BGMckpx.@EMWgq%/JS[`iq~ ").38GOT\ +8EJO[bglu| (AN[`eqx} )16>Wdqv{ #(-9@EJSZfnw~ "*Oafty~   ( / 4 9 ? U ] b j w               &   " ' , < 'A I paksz.o/ 1295031214 7356 20 100664 1432 ` ELF4( UXEEȋE E̋EEw 0]]E]8]Eu}Eƴ fEm]mƁ}h~+D$$ E\0]E]EME]@]Eum]mƃ}<~+D$$ E\0]E]EME]EHw(D$&$ E\0]5EPEHEM]EP]E]Epaksz-degIllegal DMS fieldpaksz-minpaksz-sec.A@@N@ @GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  %+0X8.A>>QH   paksz.cpakszp_error+Csz  #*/ >LWmsphdz.o/ 1295031214 7356 20 100664 2344 ` ELFh4( U8}E ]E ]EwEwEEEEEEnEwJEEEEe]E]EztE$]EMEEEEEEEEw&EEE}u&EEpE}u&EEE8i}u&EEE@=EEEHE3EE)U}~;D$$D$$)EE}u.EEEEE}u/EEEEEEZ}u+EEEEE)EEEEETXAGITXAISXA`TXATXATXASXA@TXA@TXAbXTXA'1SXAu SXA@TXATXATXA@TXATXATXATXA@MXAMXA˯MXA@TXA333?XA ?XA+?XA ?XAd?XAIF?XA؁s?XA =?XA?XAp=:H?XA~!?XA1?XA?XAoT?XA?XA4?XAX?XAp'?XAR_?XA@MXAMXA˯MXAX9\?XAINFORMATIONALInvalid spheroid selectionReset to 0˯MXAMXA@MXAGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4  % x +0P8.AQ   (  sphdz.cmajorminorsphdzsqrtp_error '2HSat  -8Rapuntfz.o/ 1295031214 7356 20 100664 1428 ` ELF4( U} xh} b}x\}VUM EEztD$$ EM$ED$#$0EE?y1s- AcܥL@?;pjځ?u:?X%? @?(? @U>?xV42?:RFߑ? @?B?ׁ??untfz-codeUncompatable unit codesuntfz-unitIllegal source or target unit codeGCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-48).symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment.note.GNU-stack4 \8 %  +0S8S.AQ  < untfz.cfactorsuntfzp_error1RY^ x gctp.o/ 1295031214 7356 20 100664 4804 ` ELF 4( USEEEPE(E E,D$ E$D$T$ $‹EPEPtDž46 EE EE`E`4E6E7E4UM)UM)@9E}~ƃE}d[EEVE E `E9u4E E9uE  E 9u E u ELE=E M)EEuz E E} ~E4E47E89u4E46ED9uE4`4E49u E4u ELE=E4M)@9EE<uz E E} ~E x E d~,D$$ EPDž4E4x E4d~,D$$(EPDž4EEEuE uEuEEuCE u9Eu/EDž,Q,)ȋEE u#EȉD$D$E$‹EP!EȉD$D$E$‹EPE uUEEPtDž4EE]ЋEE]؃}E E  E EE E`E'E MEE)E}~ӋE EUEEݜ@E}~ݝ@ݝHEuEztME-P$d$@ݝ@ExHݝH'PݝHEݝ@EݝHEEE D$@jEPD$ELD$EHD$T$ @D$L$$CEEE D$@jEPD$ELD$EHD$T$ ED$L$$EPtDž4E uE]E]ME @jED$ED$E\$E$҉‹EPEPtDž4-}E4E4`4E4ED6E4E87E'E4MEE<)@9E}~ӋE4EUEE<ݜ@E}~ݝ@ݝHE<zt$E$ݝ@E$ݝHE<ݝ@E<ݝHEDE8E4D$hEPD$ELD$EHD$T$ @D$L$$CEDE8E4D$hEPD$ELD$EHD$T$ E / 1295447561 0 0 0 2576 ` T T~~ --?^?^GGOOXXccllxx22zzzz ɢɢڔڔVV::     !!((1"1"<<HHPPWW\v\vaZaZggmmwvwvDDff@@ z z  BBB.P.PH\H\O8O8WpWpm"m"<<NNNNrr#[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$q^q^q^q^q^q^q^q^q^q^q^q^q^q^q^q^q^d\B_alberforint_alberfor_alberinvint_alberinv_alconforint_alconfor_alconinvint_alconinv_azimforint_azimfor_aziminvint_aziminv_bceaforint_bceafor_bceainvint_bceainv_ceaforint_ceafor_ceainvint_ceainv_eqconforint_eqconfor_eqconinvint_eqconinv_equiforint_equifor_equiinvint_equiinv_gnomforint_gnomfor_gnominvint_gnominv_goodforint_goodfor_goodinvint_goodinv_gvnspforint_gvnspfor_gvnspinvint_gvnspinv_hamforint_hamfor_haminvint_haminv_imolwforint_imolwfor_imolwinvint_imolwinv_isinusforinit_isinusfor_Isin_fwd_Isin_for_init_Isin_for_free_isinusinvinit_isinusinv_Isin_inv_Isin_inv_init_Isin_inv_free_lamazforint_lamazfor_lamazinvint_lamazinv_lamccforint_lamccfor_lamccinvint_lamccinv_merforint_merfor_merinvint_merinv_millforint_millfor_millinvint_millinv_molwforint_molwfor_molwinvint_molwinv_obleqforint_obleqfor_obleqinvint_obleqinv_omerforint_omerfor_omerinvint_omerinv_orthforint_orthfor_orthinvint_orthinv_polyforint_polyfor_polyinvint_polyinv_psforint_psfor_psinvint_psinv_robforint_robfor_robinvint_robinv_sinforint_sinfor_sininvint_sininv_somforint_somfor_gsat_ratio_sominvint_sominv_sterforint_sterfor_sterinvint_sterinv_stplnforint_stplnfor_stplninvint_stplninv_tmforint_tmfor_tminvint_tminv_utmforint_utmfor_utminvint_utminv_vandgforint_vandgfor_vandginvint_vandginv_wivforint_wivfor_wivinvint_wivinv_wviiforint_wviifor_wviiinvint_wviiinv_for_init_inv_init_tsincos_asinz_msfnz_qsfnz_phi1z_phi2z_phi3z_phi4z_pakcz_pakr2dm_tsfnz_sign_adjust_lon_e0fn_e1fn_e2fn_e3fn_e4fn_mlfn_calc_utm_zone_p_error_init_close_file_ptitle_radius_radius2_cenlon_cenlonmer_cenlat_origin_true_scale_stanparl_stparl1_offsetp_genrpt_genrpt_long_pblank_paksz_sphdz_untfz_gctp_gctp_alberfor.o/ 1295447445 32135310545 100644 2541 ` L$.text@tA `.data@.bss.rdata@@UxE8pE@E(`EE pw D$$EEE5]EM]E$0ED$ ED$E$E]E\$E\$0$]E\$E\$0$]ED$ ED$E $E\$E\$0$]E\$E\$0$]ED$ ED$E0$E\$E\$0$]Ee pwEMEMEeP EPEMPM PM $ 5P@$O\$$E \$E$`$E0$\$p$EEUSDED$ ED$E$E\$E\$0$]PM $ 5P]E%`$ P]؋]E$Mp]E$M@D[]Ðalber-forinitEqual latitudes for St. Parallels on opposite sides of equatorALBERS CONICAL EQUAL-AREA|= +<CH#]flr"!  !% <D`!t|" %7=EPV`h!" %-.filegalberfor.c p 0`_r_major_r_minor_e30_ns0P_c _rh@<x .text>A.data.bss.rdatax_cos _sin F _offsetp _origin R ] _radius2 _ptitle _qsfnz _msfnz _tsincos _sqrt _p_error g_alberforint_false_easting_false_northing_lon_center_alberfor_adjust_lon_cenlonmer_stanparl alberinv.o/ 1295447445 32135310545 100644 3105 ` L &.textQ `.data@.bss.rdataD@@UhE8E@E(pEE pw D$$E!EE5]EM@@$0ED$ ED$E$E]E\$E\$0$]E\$E\$0$]ED$ ED$E $E\$E\$0$]E\$E\$0$]ED$ ED$E0$E\$E\$0$]Ee pwEMEMEe` E`EM`M `M $ 5`P$T\$$E \$E$p$E0$\$$EEUHEE%]Pe]`s EMEM$]]$EMEM$]x]]EuzEM\$EM$]E `5]EM 5`]0s%@]%00$M50]EEw/E܉D$E\$0$E}taE܉E|Es EDN\$bhntz# #!,2N Y"cpx##)5=G!SYu "'.6=ELT[t9?[a.filegalconfor.c _r_major_r_minor@ P0 <0_n_e_acoef`_bcoef_cos_p26_sin_p26H .textnc.data.bss .rdataR _offsetp _cenlat _cenlon _radius2 _ptitle _tsincos _pow _tan _atan _sin _sqrt ^_alconforint_false_easting_false_northing_lon_center_lat_center_alconfor_adjust_lonalconinv.o/ 1295447446 32135310545 100644 4448 ` L2(.textd { `.data@.bss .rdata@@U8EEE@E P  0(]E$0h8p@xHPX`hpx0$ ]0$]\$eE$M$]D$ D$E$$\$$ $0$P\$@$U(E%@5]E%P5]Eݝ`EݝXDž݅`]݅`܍`݅X܍X]`]ȡŠ]СX]Ř]M]M]HP$d$M]HP$d$M]Dž; EME]EME];)EM`])EMŠ]E]E]EME]EME])P$d$) `EM])P$d$) ŠEM]E]E]EM]EM]E]E]݅`M݅XMEe]݅XM݅`MEeݝx݅`M݅XMEݝp݅XM݅`MEݝh݅p܍p݅h܍hݝPE܍p݅x܍hܵPݝH݅x܍pE܍hܵPݝ@݅`܅Hݝ`݅X܅@ݝX݅H݅@ݝ8~#D$$DžW݅8݅`܍`݅X܍X$ݝ݅$ݝ0(D$ D$݅0$E ݅sE0Dž݅( ݅X܍ ܵ$ݝDž݅ݝ݅$ ]݅$ݝ\$Ee$܍$ܥݝ݅܅ݝ~#D$$Dž݅E݅݅ ܍(݅X ܍ \$݅`܍ $ $EDžÐALASKA CONFORMAL#95RF?^s{?1,51?!bLUu?zY}? =;js?Kzs?7< sfə$s?nNȿSXOvҿ-DT!?@alcon-invToo many iterations in inverse|=@-DT!? &,28>DN\'bhntz& #$,2N#Y%cpx"!  X_gnv} /?NPW\w'%"4FV&$#%&-2Os.filegalconinv.c _r_major_r_minor@ P0 <0_n_e_acoef`_bcoef_cos_p26_sin_p26H .text{.data.bss .rdata_atan2 R _asinz _p_error _offsetp _cenlat _cenlon _radius2 _ptitle _tsincos _pow _tan _atan _sin _sqrt ^_alconinvint_false_easting_false_northing_lon_center_lat_center_alconinv_adjust_lonazimfor.o/ 1295447446 32135310545 100644 1916 ` L .text D) `.data@.bssp.rdatap@@UEEE E(0E @D$ `D$PE$$$$ $0\$@$USE%$]ED$ ED$E$E$]PM`MM]EXwf]Ewt`]E\$D$h$D$Ih$Džd{E$]E$E]Ћ]MMݝXE$܍X@EM`MPMM0DžddĴ[]ÐAZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-for|=-DT! @ &/7?JQV\djrx17KYao.filegazimfor.c _r_major (08@_cos_p12`_sin_p12P_azimfor .text).data.bssp.rdatah_sin _acos _p_error _sprintf _cos G _offsetp _origin S _radius _ptitle _tsincos ^_azimforint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmeraziminv.o/ 1295447446 32135310545 100644 2180 ` L .text5 `.data@.bssp.rdataP@@UEEE E(0E @D$ `D$PE$$$$ $0\$@$UHE%@]E%0]EMEM$]0Ew D$$E}E5]ED$ ED$E$EE8sE EME PEM `u$E @]E8s{ s3E\$E$$EEE\$E$$EEE$ PE]E8wE8w E8EM\$EM `$$EEEÐAZIMUTHAL EQUIDISTANTazim-invInput data error-DT! @|=-DT!? &/7?JQV\djrx5>K]t#AGZn.filegaziminv.c _r_major (08@_cos_p12`_sin_p12P_aziminv .text5.data.bssp.rdataH_sin _atan2 G _asinz _p_error _sqrt _offsetp _origin S _radius _ptitle _tsincos ^_aziminvint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmerbceafor.o/ 1295447446 32135310545 100644 2176 ` L#.text`4> `.data@.bss.rdata @@UEEE@E PE0`E(p5]EM00$ 0w  P$P$0 $$\$$@$P$`\$p$U8E%@$]E$]=t9EM pEM5`%0]0MME] ] M M$MmM]E MpEM`ÐCylinderical Equal Areah㈵> &/8>DW]e"kqw! ""*0:BX`n w  &/:CM.filegbceafor.c _r_major_r_minor@P(`8p_es0_e _ind_cosphi1_sinphi1_kz_bceaforM .textZ>.data.bss.rdata _log G _offsetp S _ _radius2 _ptitle _sin _cos _sqrt j_bceaforint_lon_center_lat_truesc_false_northing_false_easting_adjust_lon_true_scale_cenlonmerbceainv.o/ 1295447532 32135310545 100644 2848 ` L'.textPtZ `.data@.bss.rdatap@@U8EEE`E pE0E(5]EM00$ 0 0@@ 0P w `%0]%0] ]%  $MmMp$p$0 $$\$$`$p$\$$USDE%]E%]=tEE 5$E E`$EE  $]]0(@0P8]E$ME]@@PH]EP$ME]PX]E`$ME E`$ED[]ÐCylinderical Equal Areah㈵>@@` ` ?*B*B?[[?U?@m-?@ &/8>DW]e&kqw} %"*$06>#DJPVb&hpw|"! *2GMS]iow}## #!,4.filegbceainv.c _r_major_r_minor`p(8_es0_e _e_p4@_e_p6P_ind_qp_cosphi1_sinphi1_kz_bceainv .textHZ.data.bss.rdatahG _asin _offsetp S _ _radius2 _ptitle _sin _cos _log _sqrt j_bceainvint_lon_center_lat_truesc_false_northing_false_easting_adjust_lon_true_scale_cenlonmerceafor.o/ 1295447532 32135310545 100644 2175 ` L#.text`4> `.data@.bss.rdata @@UEEE@E PE0`E(p5]EM00$ 0w  P$P$0 $$\$$@$P$`\$p$U8E%@$]E$]=t9EM pEM5`%0]0MME] ] M M$MmM]E MpEM`ÐCylinderical Equal Areah㈵> &/8>DW]e"kqw! ""*0:BX`n w  &/:CM.filegceafor.c _r_major_r_minor@P'`7p_es0_e _ind_cosphi1_sinphi1_kz_ceaforM .textZ>.data.bss.rdata _log F _offsetp R ^ _radius2 _ptitle _sin _cos _sqrt i_ceaforint_lon_center_lat_truesc_false_northing_false_easting_adjust_lon_true_scale_cenlonmer ceainv.o/ 1295447532 32135310545 100644 2847 ` L'.textPtZ `.data@.bss.rdatap@@U8EEE`E pE0E(5]EM00$ 0 0@@ 0P w `%0]%0] ]%  $MmMp$p$0 $$\$$`$p$\$$USDE%]E%]=tEE 5$E E`$EE  $]]0(@0P8]E$ME]@@PH]EP$ME]PX]E`$ME E`$ED[]ÐCylinderical Equal Areah㈵>@@` ` ?*B*B?[[?U?@m-?@ &/8>DW]e&kqw} %"*$06>#DJPVb&hpw|"! *2GMS]iow}## #!,4.filegceainv.c _r_major_r_minor`p'7_es0_e _e_p4@_e_p6P_ind_qp_cosphi1_sinphi1_kz_ceainv .textHZ.data.bss.rdatahF _asinz _offsetp R ^ _radius2 _ptitle _sin _cos _log _sqrt i_ceainvint_lon_center_lat_truesc_false_northing_false_easting_adjust_lon_true_scale_cenlonmer eqconfor.o/ 1295447533 32135310545 100644 3245 ` L/.text$b `.data@.bss.rdata`@@UhEEE( E@E85]EM$p$0$@$P$`ED$ ED$E$E\$E\$p$]E\$ `\$P\$@\$0$]Ѓ}HEE Pw D$$ EQED$ ED$E $E\$E\$p$]E \$ `\$P\$@\$0$]Ee PsEeEeE EE5EE0\$ `\$P\$@\$0$% }Hti$<\$$E \$E$ $E0$\$$`$<\$$E$ $E0$\$$EEUSTE\$ `\$P\$@\$0$]e ]E% $ ]]E$M]]E$MmT[]Ðeqcon_forStandard Parallels on opposite sides of equatorEQUIDISTANT CONIC|= &/5;NT\.bhp-v|,+*)( '8IPU&z)('$1;EOW']ciou%$#"! %$!",!2<D dnx'.filegeqconfor.c _r_major_r_minor -_es_ep_e00_e1@_e2P_e3`_ns_g_ml0_rh<T .textb.data.bss.rdataX_cos _sin F _stparl1 _offsetp _origin R ] _radius2 _ptitle _p_error _mlfn _msfnz _tsincos _e3fn _e2fn _e1fn _e0fn _sqrt g_eqconforint_lon_center_false_northing_false_easting_eqconfor_adjust_lon_cenlonmer_stanparl eqconinv.o/ 1295447534 32135310545 100644 3419 ` L /.texte `.data@.bss.rdata`T@@UhEEE( E@E85]EM$p$0$@$P$`ED$ ED$E$E\$E\$p$]E\$ `\$P\$@\$0$]Ѓ}HEE Pw D$$ EQED$ ED$E $E\$E\$p$]E \$ `\$P\$@\$0$]Ee PsEeEeE EE5EE0\$ `\$P\$@\$0$% }Hti$<\$$E \$E$ $E0$\$$`$<\$$E$ $E0$\$$EEUXEE%]e]s EMEM$]]$EMEM$]X]]EuzEM\$EM$]E5]E܉D$(`\$ P\$@\$0\$E$EE5 $E}tE܉EEEÐeqcon-forStandard Parallels on opposite sides of equatorEQUIDISTANT CONIC|= &/5;NT\.bhp-v|,+*)( '8IPU&z)('$1;EOW']ciou%$#"! %$!",!2<D fox.. %/9CR`fn.filegeqconinv.c _r_major_r_minor -_es_ep_e00_e1@_e2P_e3`_ns_g_ml0_rh<T .texte.data.bss.rdata`F _phi3z _atan2 _stparl1 _offsetp _origin R ] _radius2 _ptitle _p_error _mlfn _msfnz _tsincos _e3fn _e2fn _e1fn _e0fn _sqrt g_eqconinvint_lon_center_false_northing_false_easting_eqconinv_adjust_lon_cenlonmer_stanparl equifor.o/ 1295447534 32135310545 100644 1220 ` L.text `.data@.bssP.rdata@@UEEE E(0E @$$$ $0\$@$US$E%$]]M] $M@EM0$[]ÐEQUIRECTANGULAR &/6;AIOW]eku}.filegequifor.c _r_major (08@_equifor .text.data.bssP.rdata_cos G _offsetp _origin S _radius _ptitle ^_equiforint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmerequiinv.o/ 1295447534 32135310545 100644 1390 ` L<.text0$ `.data@.bssP.rdata@@@UEEE E(0E @$$$ $0\$@$UE%@]E%0]EE5E0wD$$E3 $ E$EEEÐEQUIRECTANGULARequi-invInput data error-DT!? &/6;AIOW]eku} .filegequiinv.c _r_major (08@_equiinv .text!.data.bssP.rdata8_cos G _p_error _offsetp _origin S _radius _ptitle ^_equiinvint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmergnomfor.o/ 1295447535 32135310545 100644 1547 ` L.text `.data@.bss`.rdata@D@@UEEE @E(PD$ 0D$ E$$E$E$E$P\$@$USTE%$]ED$ ED$E$E$] M0MM]EsD$ $Eądu]ȋ]MM]E$M@EM0M MMPEEăT[]ÐGNOMONICgnomfor-convPoint projects into infinity &.6AHMXcnt~ %9BMV_o.fileggnomfor.c _R@+P_cos_p130_sin_p13 _gnomfor .text.data.bss`.rdata3_sin _p_error _cos ; _offsetp _cenlat _cenlon _radius _ptitle _tsincos G_gnomforint_lon_center_false_easting_false_northing_adjust_lon gnominv.o/ 1295447535 32135310545 100644 1987 ` L0 .textd. `.data@.bssp.rdata D@@UE EEE PE(`D$ @D$0E$$E$E$E$`\$P$UHE%P]E%`]EMEM$]E5 $]ED$ ED$E$EEsEEME 0EM @u$E]Es{s3E\$E$$EEE\$E$$EEE$ 0E]EwEw E8EM\$EM @$$EEEÐGNOMONIC|=-DT!? &/7?JQValw}"9ER]eu 3[ciq.fileggnominv.c _R (P7`_cos_p13@_sin_p130_gnominv .text..data.bssp.rdata _sin _atan2 G _asinz _atan _sqrt _offsetp _cenlat _cenlon _radius _ptitle _tsincos S_gnominvint_lon_center_lat_center_false_easting_false_northing_adjust_lon goodfor.o/ 1295447536 32135310545 100644 3158 ` L .textf `.data@.bss.rdata@@UE  ( ((00880@8H@PHX@`Hh p x((0808@H@H$E$UVS`Es*Es EEEs*Es EEEs]Es EEs E|Es EaE XEs E=Es E"Es E E }t }t}t}t}t} tXEE$$]u]M]E$EpEMdEE$$]E]E$]EE$Ee]EUEUE$}]EE]Ew0}1~ D$P$^EEzE]Ew]]uM]E$Ep]E$]E$P$d$m EẼ`[^]ÐGOODE'S HOMOLOSINE EQUAL-AREAɠ]h-8R?_} u1EwEw EEE؃@[^]ÐGOODE'S HOMOLOSINE EQUAL-AREAɠ]h-8R?_ef?@   & -2=HN X `w     .fileghamfor.c _R *0_hamfork .text1.data.bss@.rdata_sin _cos _sqrt : _offsetp _cenlon _radius _ptitle F_hamforint_lon_center_false_easting_false_northing_adjust_lonhaminv.o/ 1295447538 32135310545 100644 1332 ` L,.text@ `.data@.bss@.rdata @@UEEE E 0$E$E$0\$ $UE% ]E%0] EMEM$] EMEM\$EM$$EEM55$EÐHAMMER@@   & -2=HN X `v         # +.fileghaminv.c _R *0_haminvk .text;.data.bss@.rdata_asinz _atan2 : _sqrt _offsetp _cenlon _radius _ptitle F_haminvint_lon_center_false_easting_false_northing_adjust_lonimolwfor.o/ 1295447538 32135310545 100644 2471 ` L.textpTB `.data@.bssp.rdata0$@@UE(08 @(H0P8X@`HhPpXx`h$E$UVSPEsEsEw EEsEs&EsEw EEEsEw EZEsEs&EsEw EEEE$$]E]E$]EE$Ee]EUEȉUE$}]EE]Ew!}1~D$$EE]Ew]]uM]E$E@] ]E$MP[^]ÐINTERRUPTED MOLLWEIDE EQUAL-AREA@-8R?ωd8RCT!?IA5֠yJWֿ^T\nĿE؎W@2 ާT\n?^@IntMoll-forwardIteration failed to converge֠yJW? f?f?/-DT! @/-DT! ky]IA5@ˡA5-DT! @|=@-DT!?)d?;f?  # )/ 5; AG MS Y _g m s{          !?Scw. 6JPg '3 @ FV.filegimolwfor.c _R_feast@ .textkB.data.bssp.rdata(_p_error _cos _sin ' _radius _ptitle 3_imolwforint_lon_center_imolwfor_adjust_lon imolwinv.o/ 1295447539 32135310545 100644 2591 ` L`.textF `.data@.bssp.rdata@@UE(08 @(H0P8X@`HhPpXx`h$E$US4EsSEs EEs EZEQEs E,Es EEEE$@]E$]]]E$EE$EE]E$E$E}u4EwEw Ew}u^EwEw*Ew Ew E}u4EwEw E}u4EwEw E}u[EwEw*EwEw E>}u1EwEw EEE4[]ÐINTERRUPTED MOLLWEIDE EQUAL-AREA@-8R?ωd8RCT!?IA5֠yJWֿ^T\nĿE؎W@2 ާT\n?^@~f=k8}+?=k8}+~f?;f?)d?-DT! @֠yJW? f?ɠ]ky]IA5@ˡA5  # )/ 5; AG MS Y _g m s{           + 1Y _~      &1;Qc);cw.filegimolwinv.c _R_feast@ .textF.data.bssp.rdata_sin _cos ' _asin _radius _ptitle 3_imolwinvint_lon_center_imolwinv_adjust_lon isinusfor.o/ 1295447540 32135310545 100644 5087 ` LN.text ] `.data t &@.bss.rdata @@U‹E D$ ED$D$B $UH=t6$E}t D$\$zE.Es D$$ziEEwEw D$$z%EE(wE(w D$$zExE(}Ef fEm]mEE(w D$ $zEEt D$<$zYEE0wE0 w D$h$zEE0m]mEE0wD$$zE`ED$$ED$ E \$E\$E\$E$7=uD$$mEEEUS4E(w D$$EE0wE8w D$$ZEoE@wE8]E@sE8]}(~ }( D$$EE(t D$$E},x}, D$$E$`E}u D$$ZEoE@\EEEE XEEXEuXEE(@X UE(B(MU(A,EEX8EE@X0E@0HwUE@08Z0UE,B@]E@,$CXExXu+E$D$$dEyE@XEEE@,;EEPE@,X]},8]E$E(P}Ef fEmm>]E$E(P}Ef fEmmڋUEE8 EUEZ},uMEBAMEAEEUE@,BXE܋EE8EXHEEE8XPE@\#ܫ EEԋEԃ4[]U(ED$ED$E\$ E\$$2E}tD$`$yEEEU8EE }uD$$GEEx\#ܫ tD$$EE wE w EXEwEw E(M UE@MBeEH ]E}Ef fEm]mE@,;EEU@()HE}yEEE `0]Ew&Em]mUܸ)P$d$E]EwEm]mEP$d$E]MEAXMMEAXD]MUE@HMEEU}uD$$jE`Ex\#ܫ tD$$EE;E@\E@X$E@XE$EEEU‹E@D$ED$ E D$D$B $Ð/AP error (isinusfor.c/%s : %s memory allocationinvalid parameterinvalid handleinvalid keybad return from Isin_for_freeisinusforinitbad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_for_initIsin_for_init-DT!-DT!@ףp= ?)\3A{Gz?{GzGz@|=-DT!-DT!@-DT! @-DT! ?-DT!?bad return from Isin_fwdisinusforIsin_fwd-DT!-DT!@-DT!-DT!?m0_?Isin_for_free error (isinusfor.c/%s) : (%i) %s *8@Y`0Zmt*1rx *<J^| \?Sl{`y#DKaq1  % G \ z    .filegisinusfor.c_error "2_isin?0 N Ys  e o ~ .text ].data .bss.rdata_cos _free _malloc  _fprintf _ISIN_BADALLOC_ISIN_BADPARAM_ISIN_BADHANDLE_ISIN_BADKEY_isinusforinit_isinusfor_Isin_error_Isin_fwd_Isin_for_init_Isin_for_free___getreent isinusinv.o/ 1295447540 32135310545 100644 5107 ` Lb.text _ `.data d :@.bss.rdata @@U‹E D$ ED$D$B $UH=t6$E}t D$]${E.Es D$${iEEwEw D$${%EE(wE(w D$${ExE(}Ef fEm]mEE(w D$${EEt D$@${YEE0wE0w D$l${EE0m]mEE0wD$${E`ED$$ED$ E \$E\$E\$E$7=uD$${mEEEUS4E0w D$ $EE8wE@w D$ $KEoEHwE@]EHsE@]}(~ }( D$ $EE(t D$ $E},x}, D$ $E$`E}u D$ $KEoE@\EEEE XEEXEuXEE(HX UE(B(MU(A,EEX8EEHX0E@0PwUE@0@Z0UE,B@]E@,$CXExXu+E$D$ $UEyE@XEEE@,;EEXE@,`]},8]E$E(X}Ef fEmm>]E$E(X}Ef fEmmڋUEE8 EUEZ},uMEBAMEAEEUE@,BXE܋EE@EXHEEE@XPE@\#ܫ EEԋEԃ4[]U(ED$ED$E\$ E\$$2E}tD$h$EEEU8EE }uD$$8EEx\#ܫ tD$$EyU EE`EHE wE wE E*E  EH ]E}Ef fEm]mE@,;EEU@()HE}yEEE EHP]MEAXDEMEAXL]EwEwE EmUEE@0EsUEEwUEEEU}uD$$jE`Ex\#ܫ tD$$EE;E@\E@X$E@XE$EEEU‹E@D$ED$ E D$D$B $Ð0BQ error (isinusinv.c/%s) : %s memory allocationinvalid parameterinvalid handleinvalid keybad return from Isin_inv_freeisinusinvinitbad parameter; sphere radius invalidbad parameter; longitude of central meridian invalidbad parameter; nzone out of rangebad parameter; nzone not near an integer valuebad parameter; nzone not multiple of twobad parameter; ijustify out of rangebad parameter; ijustify not near an integer valuebad return from Isin_inv_init-DT!-DT!@ףp= ?)\3A{Gz?{GzGz@Isin_inv_init|=-DT!-DT!@-DT! @-DT! ?-DT!?bad return from Isin_invisinusinvIsin_inv-DT!-DT!?-DT!@-DT! @-DT! Isin_inv_free error (isinusinv.c/%s) : (%i) %s *8@Y`0Zmt*1rx *<J^| \?Sl{`y#DKws  8 M k    .filegisinusinv.c_error "2_isin?0 N Yd  e o ~ .text _.data .bss.rdata_cos _free _malloc  _fprintf _ISIN_BADALLOC_ISIN_BADPARAM_ISIN_BADHANDLE_ISIN_BADKEY_isinusinvinit_isinusinv_Isin_error_Isin_inv_Isin_inv_init_Isin_inv_free___getreent lamazfor.o/ 1295447540 32135310545 100644 1706 ` L8.text" `.data@.bss`.rdatapt@@UEEE @E(PD$ 0D$ E$$E$E$E$P\$@$UE%$]EЉD$ E؉D$E$ED$ ED$E$ M0MM]E`ztD\$D$ x$D$Lx$DžtqcEh$ ]EEMM@E0M MMMPDžttÐLAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward@ &.6AHMXcnt~ .6D]gm.fileglamazfor.c _R@,P<0G R .text".data.bss`.rdatap_sqrt _p_error _sprintf \ _offsetp _cenlat _cenlon _radius _ptitle _tsincos h_lamazforint_lon_center_false_easting_false_northing_cos_lat_o_sin_lat_o_lamazfor_adjust_lonlamazinv.o/ 1295447541 32135310545 100644 2078 ` Lj .text/ `.data@.bssp.rdataPD@@UE EEE PE(`D$ @D$0E$$E$E$E$`\$P$UHE%P]E%`]EMEM$] E]Ew D$$+EswE$]ED$ ED$E$EE@w0M@MMu$EH]E@wcE$ 0E]EuzEM\$EM @$$Epw+E\$E$$E4E\$E$$E EEEÐLAMBERT AZIMUTHAL EQUAL-AREAlamaz-inverseInput data error|=-DT!? &/7?JQValw}8ANbk~4:D_em}.fileglamazinv.c _R )P8`H@S0^ .text/.data.bssp.rdataP_atan2 h _sin _asinz _p_error _sqrt _offsetp _cenlat _cenlon _radius _ptitle _tsincos t_lamazinvint_lon_center_lat_center_false_easting_false_northing_cos_lat_o_sin_lat_o_lamazinv_adjust_lonlamccfor.o/ 1295447541 32135310545 100644 2931 ` L0(.text$N `.data@.bss.rdata@@UxEEE@E8EE hw D$$ E)95]EM  $0E(@E0PED$ ED$E$E]E\$E\$0$]E\$E\$0$]ED$ ED$E $E\$E\$0$]E\$E \$0$]P$]E\$P\$0$]Ee hw*Eu$]Eu$}` E``\$E$ `Ep p]`\$E$M$L\$$E \$E$@$E0$\$$EEUSTE]EwYE$]E\$E\$0$] p]`\$E$M]DW]e!kv ! #->EJax.filegmerfor.c _r_major_r_minor 0'p7_esP_e@_m1`_merfor .text/.data.bss.rdataX_log F _tsfnz _p_error _offsetp _origin R _radius2 _ptitle _sin _cos _sqrt ]_merforint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmer merinv.o/ 1295447543 32135310545 100644 1741 ` L!.text) `.data@.bss.rdatat@@U(EEE E 0E0pE(5]EMPP$@E $]E $ P]E $E$}`$\$$ $0$p\$$U(EE%]E%p]E `$]ED$E\$@$E}tEE+ `E $EEEÐMERCATOR &/8>DW]e kv  '3AGQhp.filegmerinv.c _r_major_r_minor 0'p7_esP_e@_m1`_merinv .text).data.bss.rdata F _phi2z _exp _offsetp _origin R _radius2 _ptitle _sin _cos _sqrt ]_merinvint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmer millfor.o/ 1295447544 32135310545 100644 1191 ` L.text `.data@.bss@.rdata0@@UEEE E 0$E$E$0\$ $USE%$]EM ]E $$ (0[]ÐMILLER CYLINDRICAL@-DT!??   & -2=HN X `w     .filegmillfor.c _R +0_millfork .text.data.bss@.rdata0_tan _log ; _offsetp _cenlon _radius _ptitle G_millforint_lon_center_false_easting_false_northing_adjust_lon millinv.o/ 1295447545 32135310545 100644 1191 ` L.text `.data@.bss@.rdata0@@UEEE E 0$E$E$0\$ $USE% ]E%0]E5$E]E5$$ ([]ÐMILLER CYLINDRICAL?-DT!?@   & -2=HN X `w     .filegmillinv.c _R +0_millinvk .text.data.bss@.rdata0_exp _atan ; _offsetp _cenlon _radius _ptitle G_millinvint_lon_center_false_easting_false_northing_adjust_lon molwfor.o/ 1295447548 32135310545 100644 1597 ` L4.text `.data@.bss@.rdatap@@UE E 0EE$E$E$0\$ $USTE%$]E]E$@]EE$Ee]EUEȉUE$}]EE]EHw0}1~ D$ $EEzEP]EXHw]]`M]E$M ]h]E$M0EEЃT[]ÐMOLLWEIDEMollweide-forwardIteration failed to converge-DT! @|=@-DT!?)d?;f?   & -2=HN X `w  4DLc i|   .filegmolwfor.c  0_R/_molwfork .text .data.bss@.rdatap_p_error _cos _sin ; _offsetp _cenlon _radius _ptitle G_molwforint_false_easting_false_northing_lon_center_adjust_lon molwinv.o/ 1295447553 32135310545 100644 1481 ` L.text `.data@.bss@.rdata@T@@UE E 0EE$E$E$0\$ $U(E% ]E%0]E]Ew ]E$] ]E$EE$EE(w E(E0w E0E]E$E0]Ew]E$EÐMOLLWEIDE;f??)d?-DT! -DT! @   & -2=HN X `v      +?Xc.filegmolwinv.c  0_R/_molwinvk .text.data.bss@.rdata8_sin _cos ; _asin _offsetp _cenlon _radius _ptitle G_molwinvint_false_easting_false_northing_lon_center_adjust_lon obleqfor.o/ 1295447555 32135310545 100644 2400 ` L#.textA `.data@.bss.rdataP@@UEPEEE 0E(@E0 E8E@$P$$$D$0$D$&@$D$9 $\$$D$ pD$`$USE%]EЉD$ E؉D$E$ED$ ED$E$`MpMM$]pM`MM\$EM$ ]ED$ ED$E$EH$]EM]EM]EH$]EH]E$EݝxE50$ܽx]E$]]@ PݝpE5@$܍p]0 PݝhE50$݅hݝ`E$݅`ݝXE5@$ܽXĴ[]ÐOBLATED EQUAL-AREAParameter m: Parameter n: Theta: @ &/8AJQV"\d!jr x.GMVfox #+?KQbjv.filegobleqfor.c _RP_lat_o_m0_n@_theta ,<pG`R .textA.data.bss.rdataP_cos _asin _sin _atan2 _acos _tsincos _offsetp _genrpt _cenlat _cenlon _radius _ptitle \_obleqforint_lon_center_false_easting_false_northing_cos_lat_o_sin_lat_o_obleqforobleqinv.o/ 1295447555 32135310545 100644 2450 ` L$.textC `.data@.bss.rdataP@@UEPEEE 0E(@E0 E8E@$P$$$D$0$D$&@$D$9 $\$$D$ pD$`$UE%]E%]@H]@ PE$M]0 PE]E5@$E]E$}]0H]E$M]E$]E$ݝxE50$݅xݝpE$ܽp]EMEM$H]E$]E\$E$]E% ]ED$ ED$E$ED$ ED$E$`MpMM$EpM`MM\$EM$$EÐOBLATED EQUAL-AREAParameter m: Parameter n: Theta: @ &/8AJQV#\d"jr!x &,7=JV\ow"(8O[w.filegobleqinv.c _RP_lat_o_m0_n@_theta ,<pG`R .textC.data.bss.rdataP\ _atan2 _sqrt _sin _cos _asin _tsincos _offsetp _genrpt _cenlat _cenlon _radius _ptitle h_obleqinvint_lon_center_false_easting_false_northing_cos_lat_o_sin_lat_o_obleqinv_adjust_lonomerfor.o/ 1295447555 32135310545 100644 6885 ` L3.text 4 `.data@.bss@.rdata @@UEEE E0@E@pE85]EM``$PD$ D$@$` ]%`$]\$$ `%`$ Mu@w]\$@\$P$]E$]MM w[@s# $]. $] ]\$E$M$\$$D$ $p\$$}huE]E $5$]E$M$5E(0D$=E $0$@$@]EwEwD$ D$E$D$ 0D$ E $@sI5ݝx $50$܍x5ݝPPTpt $50$܍p"D$Z$dE EP$]E\$EP\$P$]E`$]E\$E`\$P$]\$E$]\$E$]u]uE] EM EM]EeEE]EHeX]EwEX ]XE(wEX ]XEHeX]EHEXݝhM$Mu$5ܭh0EH%0$]M$u$]E$ $] D$uEH$D$EP$D$EX$D$E`$EPe`s D$Z$dEEP]EsEs D$Z$dE9@s D$Z$dED$ D$E$D$ 0D$ E $@sF5ݝ` $50$܍`b5ݝPPTX\ $50$܍XEEUE$]E%0$]M$]EX`wE\$E\$P$]\$E$]uEh]uEh]E E u]M$]Epw M]E E u$ 5]EwVx5E]8Es ] ]M5]E`s D$0$9Eh]eE$M5]E%]؋EE 0E EE 0pE EEÐOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: omer-initInput data errorLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: @|=?cܥL@-DT!?-DT! -DT!@-DT! @omer-forPoint projects into infinity-DT!?|=?Hz>-DT! @ )2;AGZ`h2nv~12024<GQ[c/q2z22 $0-49.?IQ-Y_g,mw+)*(*, '&,CMckv1~12%#)52;C%O\ch$)/)/00%+9?o(%##).%<)BJ*U^h,py,,,$,38$JR\mty$112% JP\2bj%v)#) /  0 3 F T ] k v "      %       * 3 G X _ d $v |  !        .filegomerfor.c _r_major_r_minor @*p:_es`_eP_cos_p20_sin_p20_bl_al_d_elI0_cosgam_singam_cosaz0_sinaz _u_omerfor .text .data.bss@.rdata_log _cos U _p_error _atan _cenlat _cenlon _tan _sin _asinz _offsetp _genrpt _radius2 _ptitle _tsfnz _pow _tsincos _sqrt a_omerforint_scale_factor_lat_origin_false_northing_false_easting_lon_origin_adjust_lon omerinv.o/ 1295447555 32135310545 100644 6705 ` L6.text `.data@.bssP.rdata`D @@UEEE E0@E@pE85]EM``$PD$ D$@$` ]%`$]\$$ `%`$ Mu@w\$@\$P$E$]MM w[@s# $]. $] ]\$$M$\$$D$ $p\$$}huE]E $5$]E$M$5E(0D$=E $0$@$@]EwEwD$ D$E$D$ @D$0E $@sC5] $5@$M5ݝXX\x| $5@$܍x"D$Z$dE EP$]E\$EP\$P$]E`$]E\$E`\$P$]\$E$]\$E$]u]uE] EM EM]EeEE]EHeX]E wEX(]XE0wEX(]XEHeX]EHEXݝpM$Mu$5ܭp0EH%0$]M$u$]E$ $] D$xEH$D$EP$D$EX$D$E`$EPe`s D$Z$dEEP]EsEs D$Z$dE9@s D$Z$dED$ D$E$D$ @D$0E $@sF5ݝh $5@$܍hb5ݝXX\`d $5@$܍`EEUxE%]E%p]EE @E 0]E @E 0]E]M5$]uE8]uE8]M5$]E E u]E@s;E0EsEHEP5]Ee$E\$$]ED$E\$P$E}tEEeM5$]E\$E E $50]E$EEEÐOBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: omer-initInput data errorLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: @|=?cܥL@-DT!?-DT! -DT!@-DT! @?|=-DT!?-DT! )2;AGZ`h5nv~45 35 /7?JT^f2lw555%-36= B1HRZ0b hp/v. ,-+-  / *!)'5 L V lt445(&,85>F(R_ f k',2,233 (.<Br      +( &&,1(?,EM-X a k/s | /  /  /   '   / 6 ;'MU _ p w |'445 (#MS_5em(y% # . 7 ? ,K T m      5  3  $! * 2 #E N X "^ d t &.filegomerinv.c _r_major_r_minor @*p:_es`_eP_cos_p20_sin_p20_bl_al_ts_d_elI0_cosgam _singam_cosaz@_sinaz0_u_omerinv .text .data.bssP.rdataX_atan2 _cos _phi2z _exp U _p_error _atan _cenlat _cenlon _tan _sin _asinz _offsetp _genrpt _radius2 _ptitle _tsfnz _pow _tsincos _sqrt a_omerinvint_scale_factor_lat_origin_false_northing_false_easting_lon_origin_adjust_lon orthfor.o/ 1295447555 32135310545 100644 1670 ` L .text$ `.data@.bssp.rdata@d@@UEEE E(0E @D$ `D$PE$$$$ $0\$@$USTE%$]ED$ ED$E$E$]PM`MM]]EwE8sW]MM]E$M@EM`MPMM0D$ $EďEEăT[]ÐORTHOGRAPHICorth-forPoint can not be projected|= &/7?JQV\djrx+?HS\eu.filegorthfor.c _r_major (08@_cos_p14`_sin_p14P_orthfor .text$.data.bssp.rdata@_p_error _sin _cos G _offsetp _origin S _radius _ptitle _tsincos ^_orthforint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmerorthinv.o/ 1295447555 32135310545 100644 2158 ` L .text6 `.data@.bssp.rdata@t@@UEEE E(0E @D$ `D$PE$$$$ $0\$@$UHE%@]E%0]EMEM$](Ew D$ $EԑE5$]ED$ ED$E$EE0sE ECE PEM `u$E 8]E0sx s3E\$E$$EEE\$E$$EE}E$ PE]E0sE0s1EM\$EM `$$EEEÐORTHOGRAPHICorth-invInput data errorHz>|=-DT!? &/7?JQV\djrx!=FSe|!+FL_s.filegorthinv.c _r_major (08@_cos_p14`_sin_p14P_orthinv .text6.data.bssp.rdata@_sin _atan2 G _asinz _p_error _sqrt _offsetp _origin S _radius _ptitle _tsincos ^_orthinvint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmerpolyfor.o/ 1295447556 32135310545 100644 2394 ` L*.texttB `.data@.bss.rdata T@@U8EEE E 0E0E(5]EM$$@$P$`$p0\$ p\$`\$P\$@$$\$$ $0$\$$USdE% $]Es2EME ED$ ED$E$E\$ p\$`\$P\$@$]E\$E\$$]EM]]M]E$Mu]E%]E$MuE d[]ÐPOLYCONICHz> &/8>DW]e)kqy('&%$# "!)!/7 =GOfn|$"7HTbp.filegpolyfor.c _r_major_r_minor 0(8_es_e_e0@_e1P_e2`_e3p_ml0_polyforZ .textB.data.bss.rdata_cos _sin _msfnz _tsincos G _offsetp _origin S _radius2 _ptitle _mlfn _e3fn _e2fn _e1fn _e0fn _sqrt ^_polyforint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmerpolyinv.o/ 1295447556 32135310545 100644 2254 ` L'.textd; `.data@.bss.rdata D@@U8EEE E 0E0E(5]EM$@$P$`$p0\$ p\$`\$P\$@$$\$$ $0$\$$UxE%]E%]E5]EEs EE5 EEME5]ED$ &/8>DW]e&kqy%$#"!  #)3;Q]io HP`iq.filegpolyinv.c _r_major_r_minor 0(8_es_e0@_e1P_e2`_e3p_ml0_polyinvF .text;.data.bss.rdata_sin _asinz G _phi4z _offsetp _origin S _radius2 _ptitle _mlfn _e3fn _e2fn _e1fn _e0fn ^_polyinvint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmerpsfor.o/ 1295447556 32135310545 100644 2229 ` L&.textt: `.data@.bss.rdata0D@@U8EEE0E(5]EM  $00$@EPE `E wppE  (wtp `]ED$ ED$E$E\$E\$0$E\$E\$0$$\$$P$E0\$E($USTE%P$ p]pM]E$]E\$E\$0$]uz M5]M5@]]pM]E$M]pM]E$MT[]ÐPOLAR STEREOGRAPHIC-DT!?|= &,2EKS%Y_g$mv#"19!?FK Q[ciq!$0AJUhq.filegpsfor.c _r_major_r_minor_es _e0_e4@-P9`_facp_ind_mcs_tcs_psfor .text:.data.bss.rdata0_cos _sin E _offsetp _cenlon _radius2 _ptitle _tsfnz _msfnz _tsincos _e4fn _sqrt Q_psforint_false_northing_false_easting_center_lon_center_lat_adjust_lon psinv.o/ 1295447556 32135310545 100644 2249 ` L%.text9 `.data@.bss.rdata0t@@UHEEE(E05]EM]E$  $0E@E PE w``pE  (wtp` P]ED$ ED$E$E\$E\$ $E\$E\$ $$\$$@$E0\$E($USDEE% `]E% `]EMEM$]puzE  ]E 0]]E܉D$E\$ $ `}tE܉E_EztE` @3E\$E$]`M@$EEE؃D[]ÐPOLAR STEREOGRAPHIC-DT!?|= &,2M$SYa#gpy" !+3 9@EKU]ck}$ -5;fl.filegpsinv.c _r_major_r_minor_e _e40-@9P_fac`_indp_mcs_tcs_psinv .text9.data.bss.rdata0E _atan2 _phi2z _offsetp _cenlon _radius2 _ptitle _tsfnz _msfnz _tsincos _e4fn _sqrt Q_psinvint_false_easting_false_northing_center_lon_center_lat_adjust_lon robfor.o/ 1295447556 32135310545 100644 3470 ` L .textp `.data@.bss.rdata`$@@UEEE E 0HP X(`08h@HpP Xx`(hp0x8@HPX`hpx (E}#UE0E$E$E$0\$ $US$E%$]E8@]EH}Ef fEm]mEE]]MEU$MPEMUEEP M Es]MEUX$HMPPEMUEPXEHP XP0]MEUX$HMPPEMUEPXEHPXP0$[]ÐROBINSONX9v#?X9v?X9v?_Q?+?Gz?X9v?2ı.n?ףp= ?A`"?+?Q?-? 0*?V/?H}?O@a?=U?N@a?KY8?a2U0*?Q?ׁ?FNTZ`flrx~ &,28>DJPV\bhntz#16ALR\d{ "*4=elu~ )5=IQY.filegrobfor.c _R *0_pr@_xlr_robforo .textj.data.bss.rdata`: _offsetp _cenlon _radius _ptitle F_robforint_lon_center_false_easting_false_northing_adjust_lonrobinv.o/ 1295447556 32135310545 100644 4252 ` L.text@ `.data@.bss.rdata@@UEEE E 0HP X(`08h@HpP Xx`(hp0x8@HPX`hpx (E}#UE0E$E$E$0\$ $USdE% ]E%0]Eh5]Ep]Ex]E}Ef fEm]m}uEEEUX$H]UEPXEH]EE$Pu]Eu]EMEMM]Es }tEsEEx]EE]Ex]Em]mEE]EszMEUX$HMPEMUEPXEH h]|MEUX$HMPEMUEPXEHh]Eeh5E]E}K~ D$8$DEEea/E}D$8$DEEE]E5MEU$MEMUEEE$EEEd[]ÐROBINSONX9v#?X9v?X9v?_Q?+?Gz?X9v?2ı.n?ףp= ?A`"?+?Q?-? 0*?V/?H}?O@a?=U?N@a?KY8?a2U0*?Q?ׁ?RFߑ? &,28>FNTZ`flrx~ &,28>DJPV\bhntz#16ALR\d{ &2D(;FRZdjr ,38Rx".filegrobinv.c _R *0_pr@_xlr_robinvo .text;.data.bss.rdata: _p_error _offsetp _cenlon _radius _ptitle F_robinvint_lon_center_false_easting_false_northing_adjust_lonsinfor.o/ 1295447557 32135310545 100644 1068 ` LH.text `.data@.bss@.rdata@@UEEE E 0$E$E$0\$ $US$E%$]]M]E$M EM0$[]ÐSINUSOIDAL   & -2=HN X `w     .filegsinfor.c _R *0_sinfork .text.data.bss@.rdata _cos : _offsetp _cenlon _radius _ptitle F_sinforint_lon_center_false_easting_false_northing_adjust_lonsininv.o/ 1295447557 32135310545 100644 1316 ` L..text@4 `.data@.bss@.rdata@@@UEEE E 0$E$E$0\$ $UE% ]E%0]EE5E0wD$ $EmE0]E8w3E$ E]E$E EEEÐSINUSOIDALsinusoidal-inverseInput data error-DT!?|=   & -2=HN X `v     , .filegsininv.c _R *0_sininvk .text>.data.bss@.rdata@: _cos _p_error _offsetp _cenlon _radius _ptitle F_sininvint_lon_center_false_easting_false_northing_adjust_lonsomfor.o/ 1295447557 32135310545 100644 6865 ` L0.text $ `.data@.bss0.rdataD @@UEPE0E8 EE Eu}Lt.E ]E@E(EH}D]EB]E$ \$$}Lu&D$E$D$(E$D$>E$D$X$ \$$D$z$E$w E$ ] ]e% %]Eup%MEMEMM]ЍEЉD$ED$ED$ ED$ED$Eȉ$E]E]E]E]E]E }QE]ЍEЉD$ED$ED$ ED$ED$Eȉ$EE]EE]EE]EE]EE]EXE}HE]ЍEЉD$ED$ED$ ED$ED$Eȉ$EE]EE]EE]EE]EE]El]ЍEЉD$ED$ED$ ED$ED$Eȉ$YEE]EE]EE]EE]EE]E0E@E E PE(`USXݝ@Eݝ8E%]݅8`w `ݝ8݅8hw hݝ8݅8ݝ0Eݝ(݅8s pݝHuz xݝH݅8w ݝHE݅H]E܍H܅(]E$]E݅@wEX]EsݝPEw ݝP݅H$܍Pp݅H]M܅(]E$]EXwEX]%ݝ݅0$܍ ݝE$ ܅u]E$]EE]EE]E݅@wE}2~E] ]EݝXE}~EEwE݅Xw~EEw xݝHE݅XspݝHD$0$D$L$Džz݅0$ݝ`% ܍`ݝ݅0$ ݝE$܍݅ݝ܍`܍`$ܽ$ݝh݅hݝp݅p$$ݝxE$]EM] ݝE$݅ݝMMpM$܍  $]] MݝE$ 0݅ݝxE$ @݅x݅x uUE ]PMݝpE$ `݅p݅x uUE Eݝ UEE݅  DžĤ[]UVS@UEE$]EM] ]ȋE$E]MMpM$MpMM$MpM ]  $]؋EE  uu ]E$u]E$E u]Ћ]E$M]E$M@[^]ÐSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: @=?wO[?&?p= `@5RFߑ?O)?j\a0l?~CS?l?)`@cܥL@& .>@@V@>@N@.@F@50 iterations without conv som-forwardHz>z!?z!-DT!?^8U)zj@!3|@-DT! @-DT!@@-DT!?@@Fߑ?@@! )2F[clu!!/ *2.@K-S^-foy,,+!,*) %+1AIOU_gv|ATgzC %4EWf*5fz)*()+'y!&'5%R)`f*)#$ ( " )2 8 I *] j w  #      #  )   )  0 ; M W )] q      )   ** 7 D W #` f s  #         #    *% / *> D Z *m w *.filegsomfor.c  _a_b _es_p21._start_ca_sa_w_qp_t_xj_a20_a4@_c1P_c3`_somfor _s:  .text .data.bss0.rdataF_log _sqrt _asin _p_error _sprintf _atan _tan _sin _cos _offsetp _genrpt R _radius2 _ptitle __somforint_false_easting_false_northing_lon_center_som_series_gsat_ratio_genrpt_long sominv.o/ 1295447557 32135310545 100644 6607 ` L"/.text 4 `.data@.bss0.rdata @@UE0E8 EE Eu}Ht"E ]E(E@t}8]E6]E$ \$$D$E$D$(E$D$>E$D$X$ \$$D$zEL$E$w E$ ] ]e% %]Eup%MEMEuEMM]ЍEЉD$ED$ED$ ED$ED$Eȉ$iE]E]E]E]E]E }QE]ЍEЉD$ED$ED$ ED$ED$Eȉ$EE]EE]EE]EE]EE]EVE}HE]ЍEЉD$ED$ED$ ED$ED$Eȉ$SEE]EE]EE]EE]EE]Ej]ЍEЉD$ED$ED$ ED$ED$Eȉ$EE]EE]EE]EE]EE]E0E@E EPE `U(Eݝ`E%]݅`% ] E]X]Dž\\1}E]E$]EM] ݝPE$݅PݝHMMpM$܍HE5E5 5ݝ@E$ 0݅@ݝ8E`$ @݅8ݝ05ݝ(E$ Pݝ Eh$ `܅ ܍(ܭ0]E5 ]Ee]EEw \v\1~#D$($4DžX'E$] 55$ݝE5PMݝEh$ `ܭ܍$]E$]Ep]EM]E$xwEx]E$]EM]%EݝE$܍ ݝE ݝpMeE $݅ݝE$ܽ݅M$]Es]Ew ]E$sݝxE$w ݝxܥxME]MEݝhxw2%M$E$ݝpxsaE$ݝE$݅ݝE$ ݅% $ݝp݅h$EE݅pDžXXUVS@UEE$]EM] ]ȋE$E]MMpM$MpMM$MpM ]  $]؋EE  uu ]E$u]E$E u]Ћ]E$M]E$M@[^]ÐSPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: @=?wO[?&?p= `@5RFߑ?j\a0l?~CS?l?)`@cܥL@& .>@@V@>@N@.@F@som-inverse50 iterations without convergence& .>@@-DT!?Hz>-DT!?Fߑ?@@ )=R[cqz.-,#,+4>+FLR\+blt*|+)( !)8>DUap&9L_ E(W]n)'( (/5F(L[e(k&('$8B(H\%j$v)(#'1'J)^s$))  ! 2 < I 'V "b j  # ) (    $  !" 3 (E K [ )i v   '    '         '% + 1 M )d n )}   )  ).filegsominv.c  _a_b _es._p21_ca_sa_w_qp_t_u_xj_a20_a4@_c1P_c3`_sominv _s:  .text .data.bss0.rdataF _asin _tan _atan _exp _p_error _sqrt _sin _cos _offsetp _genrpt R _radius2 _ptitle __sominvint_false_easting_false_northing_lon_center_som_series_adjust_lon_genrpt_long sterfor.o/ 1295447558 32135310545 100644 1696 ` L&.text% `.data@.bssp.rdataPd@@UEEE E(0E @D$ `D$PE$$$$ $0\$@$USTE%$]ED$ ED$E$E$]PM`MM]E8sD$$EgnE@]Ћ]MM]E$M@EM`MPMM0EEăT[]ÐSTEREOGRAPHICster-forPoint projects into infinity|=@ &/7?JQV\djrx "'=K_hs|.filegsterfor.c _r_major (08@_cos_p10`_sin_p10P_sterfor .text%.data.bssp.rdataH_sin _p_error _cos G _offsetp _origin S _radius _ptitle _tsincos ^_sterforint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmersterinv.o/ 1295447558 32135310545 100644 2044 ` L^ .textt1 `.data@.bssp.rdata T@@UEEE E(0E @D$ `D$PE$$$$ $0\$@$UHE%@]E%0]EMEM$]E$]ED$ ED$E$EEsE EME PEM `u$E ]Es{ s3E\$E$$EEE\$E$$EEE$ PE]EwEw E8EM\$EM `$$EEEÐSTEREOGRAPHIC|=-DT!? &/7?JQV\djrx !3JVcnv0Dltz.filegsterinv.c _r_major (08@_cos_p10`_sin_p10P_sterinv .text1.data.bssp.rdata _sin _atan2 G _asin _atan _sqrt _offsetp _origin S _radius _ptitle _tsincos ^_sterinvint_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmerstplnfor.o/ 1295447558 32135310545 100644 5493 ` L$.text DT `.data@d @.bss .rdata@@UE;Et EDžlo}~h} u.E}RE;EuEE;Eك} u.E}E ;EuEEEك}uIE D$ ED$D$$D$'$Džl} uD$2E$D$2E$u#D$4$@DžlLD$UЍD$$D$ D$ D$x$D$ D$D$$D$ D$ D$E$$DžtE}w#xMUt)@E׋xE}eUEtDžppw,xppt)@pˋE݅x\ŘE땃=IE D$ ED$D$$D$'$Džl$iD$uE$} u EESD$E$Eݝe$Mݝ=EݝE$D$$ݝtlE$D$$ݝtlEݝEݝ݅\$0݅\$(݅\$ ݅\$݅\$݅\$݅$!=E$D$$ݝtlE$D$$ݝtlE$D$$ݝtlOE$D$$ݝtl EݝEݝ݅\$8݅\$0݅\$(݅\$ ݅\$݅\$݅\$݅$=E$D$$ݝtlME$D$$ݝtlEݝEݝ݅\$(݅\$ ݅\$݅\$݅\$݅$=EݝE$D$$ݝtlVE$D$$ݝtlE$D$$ݝtlEݝEݝDžݝݝݝݝD$`݅\$X݅\$P݅\$H݅\$@݅\$8݅\$0݅\$(݅\$ ݅\$݅\$݅\$݅$DžllU(=u9ED$ED$E\$E$EEEE=u2ED$ED$E\$E$EEt~EE}=u2ED$ED$E\$E$EEtCEEB=u2ED$ED$E\$E$EEtEEEEÐef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrstate-forError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD5RFߑ?  U  #"! !7>C"    G  #"*HSix ny '-Zlr )/\nt  &Sek   / R j  .filegstplnfor.c_inzone_NAD27_NAD83  _id .text T.data8.bss .rdata_omerfor _polyfor  _tmfor % 1 = J _pakcz _paksz _sqrt T _ptitle _fclose _fread _fseek _fopen _p_error _sprintf a_stplnforint_stplnfor_lamccfor_omerforint_polyforint_lamccforint_tmforint_genrpt_long stplninv.o/ 1295447558 32135310545 100644 5341 ` L%.text S `.data@ @.bss .rdata@@UE;Et EDžx}~h} u.E}RE;EuEE;Eك} u.E}E ;EuEEEك}uIE D$ ED$D$$D$'$Džx } uD$2E$|D$2E$||u#D$4$@DžxD$UЍD$|$|$|D$ D$ D$h$|D$ D$D$$|D$ D$ D$E$|$=IE D$ ED$D$$D$'$Džx$iD$uE$} u EESD$E$Eݝe$Mݝ=EݝE$D$$ݝtxE$D$$ݝtxEݝEݝ݅\$0݅\$(݅\$ ݅\$݅\$݅\$݅$!=E$D$$ݝtxE$D$$ݝtxE$D$$ݝtxOE$D$$ݝtx EݝEݝ݅\$8݅\$0݅\$(݅\$ ݅\$݅\$݅\$݅$=E$D$$ݝtxME$D$$ݝtxEݝEݝ݅\$(݅\$ ݅\$݅\$݅\$݅$=EݝE$D$$ݝtxVE$D$$ݝtxE$D$$ݝtxEݝEݝDžݝݝݝݝD$`݅\$X݅\$P݅\$H݅\$@݅\$8݅\$0݅\$(݅\$ ݅\$݅\$݅\$݅$DžxxU(=u9ED$ED$E\$E$EEEE=u2ED$ED$E\$E$EEt~EE}=u2ED$ED$E\$E$EEtCEEB=u2ED$ED$E\$E$EEtEEEEÐef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldstate-initrstate-invError opening State Plane parameter fileSTATE PLANEZone: Datum: NAD5RFߑ?  U  $#" "7>C#!   /=$ES#inv /AG '9?l~Q\ n?J ew}  ,K n  .filegstplninv.c_inzone_nad27_nad83  _id .text S.data8.bss .rdata_omerinv _polyinv  _tminv % 1 = J _pakcz _paksz _sqrt T _ptitle _fclose _fread _ftell _fseek _fopen _p_error _sprintf a_stplninvint_stplninv_lamccinv_omerinvint_polyinvint_lamccinvint_tminvint_genrpt_long tmfor.o/ 1295447558 32135310545 100644 3656 ` L~ 0.textdi `.data@.bss.rdatat@@U8EEE E 0E(@E8E05]EM$P$`$p$@\$ \$p\$`\$P$ %@w $\$$D$ $0$@$\$$USE%0$]ED$ ED$E$uzE$M]Epw D$H$OE]i]x ]Ee$ME$M]EM$}$]EwEpE E%@EEM]EM]EM ]E$]EM]EM ]E$]E\$ \$p\$`\$P$ ]E MMEeEEEEMEEE%EMEeEEMEEEMExM EEĤ[]ÐTRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: h㈵>tm-forPoint projects into infinity|=?@4@2@@R@M@8@"@@>@N@@t@ &/8AGM`fn/tz.-,+%/6;*AKS)[ai(ow'}&%$#"&-2!GMUn ~ %7=OYcmu+{&6CNVisy.filegtmfor.c _r_major_r_minor 0(@4D_es_e0P_e1`_e2p_e3_ml0_esp_ind_tmfor .texti.data.bss.rdata_tan _sqrt _cos _acos _log _p_error _sin _tsincos S _offsetp _origin _ _genrpt _radius2 _ptitle _mlfn _e3fn _e2fn _e1fn _e0fn j_tmforint_scale_factor_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmertminv.o/ 1295447558 32135310545 100644 4310 ` L 2.text`$z `.data@.bss.rdata@@U8EEE E 0E(@E8E05]EM$P$`$p$@\$ \$p\$`\$P$ %@w $\$$D$ $0$@$\$$USDž\=F E$ݝxܵx݅xpݝh E@ݝ`݅`$ݝp݅p܍p݅h܍h$]E$E݅`w UE݅hzt/݅pztE0DžX{݅p\$݅h$0$EDžXAE%]E%]E5 5]E]EE$ `EݝPEx$ p݅PݝHE$ ܅H5Pe]EE]Es8E;\|#D$H$SDžX_ME?EwEȉD$ EЉD$E$E$]EM ]EM]EM]EM]EM ]E$]%Mu]E E]EM]EEMMuEEEExEEEEEpEEEEEEEEEMu0$E+]E$P$d$E0DžXX[]ÐTRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: h㈵>TM-INVERSELatitude failed to converge?@@|=-DT!?8@@@$@"@>@V@N@r@F@o@4@<@ @ &/8AGM`fn1tz0/.-#.3,9CK+SYa*go)u}('&%%U$c#!" $*0M Seo u  1<Ku$ (0;HRXeu"+8.filegtminv.c _r_major_r_minor 0(@4D_es_e0P_e1`_e2p_e3_ml0_esp_ind_tminv .textWz.data.bss.rdata_sign _tan _tsincos _p_error _sin _atan2 S _asinz _sqrt _cos _exp _offsetp _origin _ _genrpt _radius2 _ptitle _mlfn _e3fn _e2fn _e1fn _e0fn j_tminvint_scale_factor_lon_center_lat_origin_false_northing_false_easting_adjust_lon_cenlonmerutmfor.o/ 1295447559 32135310545 100644 3848 ` LB /.text k `.data@.bss.rdata@@@UH} x} ~E 3E )Ѓ< D$$ E EEE @E 3E )Љ‰-P$d$x0} y ]]E5]EM$P$`$p$@\$ \$p\$`\$P$ %w$ D$DE $\$$D$P $0$EEUSE%0$]ED$ ED$E$uzE$M]Ew D$$E]i] ]Ee$ME$M]EM$}$]EwEpE E%@EEM]EM]EM ]E$]EM]EM ]E$]E\$ \$p\$`\$P$ ]E MMEeEEEEMEEE%EMEeEEMEE EME(0M EEĤ[]Ðutm-forintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: 5RFߑ?AcAh㈵>utm-forPoint projects into infinity|=?@4@2@@R@M@8@"@@>@N@@t@(/4.IR[c-, +'*-3=GQ[c)iow}('&%$$#@"Fc!z. '-6dr)!4>DZhw.filegutmfor.c _r_major_r_minor @)05D_es_e0P_e1`_e2p_e3_ml0_esp_ind_utmfor  .textk.data.bss.rdata8_tan _sqrt _cos _acos _log _sin _tsincos T ` _genrpt _radius2 k _ptitle _mlfn _e3fn _e2fn _e1fn _e0fn _p_error x_utmforint_scale_factor_lat_origin_lon_center_false_easting_false_northing_adjust_lon_cenlonmer_genrpt_longutminv.o/ 1295447559 32135310545 100644 4554 ` L 1.text~ `.data@.bss.rdata`@@UH} x} ~E 3E )Ѓ< D$$ E EEE @E 3E )Љ‰-P$d$x0} y ]]E5]EM$P$`$p$@\$ \$p\$`\$P$ %w  $ D$DE $\$$D$P $0$EEUSDž\=F E$ݝxܵx݅xݝh E@ݝ`݅`$ݝp݅p܍p݅h܍h$]E$E݅`w UE݅hzt/݅pztE0DžX{݅p\$݅h$0$EDžXAE%]E%]E5 5]E]EE$ `EݝPE$ p݅PݝHE$ ܅H5Pe]EE]Es8E;\|#D$$DžX_ME?EwEȉD$ EЉD$E$E$]EM ]EM]EM]EM]EM ]E$]%Mu]E E]EM]EEMMuEEEEEE E(E08EEEEEE@EEHEPEMu0$E+]E$P$d$E0DžXX[]Ðutm-invintIllegal zone numberUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: 5RFߑ?AcAh㈵>UTM-INVERSELatitude failed to converge?@@|=-DT!?8@@@$@"@>@V@N@r@F@o@4@<@ @(/40IR[c/. -',-3=GQ[c+iow}*)(' &1>DQ%m{$#"3\ bj!#=W^c0#'P[cn{,7DNTa{!.filegutminv.c _r_major_r_minor @)05D_es_e0P_e1`_e2p_e3_ml0_esp_ind_utminv .text~.data.bss.rdataX_sign _tan _tsincos _sin _atan2 T _asinz _sqrt _cos _exp ` _genrpt _radius2 k _ptitle _mlfn _e3fn _e2fn _e1fn _e0fn _p_error x_utminvint_scale_factor_lat_origin_lon_center_false_easting_false_northing_adjust_lon_cenlonmer_genrpt_longvandgfor.o/ 1295447559 32135310545 100644 2194 ` Ll.textpd4 `.data@.bss@.rdata@$@@UEEE E 0$E$E$0\$ $USE%$]Es+EM E0EE$]Es!E sE Es4]]E($M02]]E0$M0EuE(]EM]؍ED$ ED$E$EEE]EM]8uM]EM]]EeMݝxEeMEeEEEe$܅xEEE]EwEpE EE]EsC]ݝpEMEM$܍p0E]ݝhEMEM$݅h0EEĤ[]ÐVAN DER GRINTEN|=-DT! @-DT!??@   & -2=HN X `z     5 ;IS\ i o}   &c     :H .filegvandgfor.c _R ,0<k .textc4.data.bss@.rdata@_sqrt _tsincos _tan _asinz F _offsetp _cenlon _radius _ptitle R_vandgforint_lon_center_false_easting_false_northing_vandgfor_adjust_lonvandginv.o/ 1295447559 32135310545 100644 2088 ` L.text`( `.data@.bss@.rdatap@@UEEE E 0$E$E$0\$ $USE% ]E%0]]Eu]Eu]EMEM]Eݝxx|x|݅xE]EMEEM]EEMEM]EMuEMMuuuE Muu(]EM0uEu]E8$]E0uu]Ew Es] @]E$0]EsX]Eݝxx|EUEH$EE0uV]Eݝxx|EUEH$EE0uPEXwEEbE]EMEMEM$E`u$EEEĔ[]ÐVAN DER GRINTEN-DT! @"@;@@es-8R?-DT! |=@   & -2=HN X `z   ZmAKYf %-8 @.filegvandginv.c _R ,0<k .text\(.data.bss@.rdatahF _cos _acos _sqrt _offsetp _cenlon _radius _ptitle R_vandginvint_lon_center_false_easting_false_northing_vandginv_adjust_lonwivfor.o/ 1295447559 32135310545 100644 1476 ` L.text `.data@.bss@.rdata`D@@UEEE E 0$E$E$E \$E$USTE%$]E]E$8]EE$Ee]EUEȉUE$}]EE]E@w!}~D$ $EEH]]PM]E$M ]X]E$M0T[]ÐWAGNER IVwagneriv-forwardIteration failed to convergeLKD@|=@%䃞?\4 ?   & -2=HZq y - 3FO Z `py .filegwivfor.c _R *0_wivfore .text.data.bss@.rdata`_p_error _cos _sin : _offsetp _cenlon _radius _ptitle F_wivforint_lon_center_false_easting_false_northing_adjust_lonwivinv.o/ 1295447559 32135310545 100644 1256 ` L.text  `.data@.bss@.rdata0@@UEEE E 0$E$E$E \$E$U(E% ]E%0]E$]]E$EE$EE]E$E $EÐWAGNER IV\4 ?%䃞?LKD@   & -2=HZp |    .filegwivinv.c _R *0_wivinve .text.data.bss@.rdata(_sin _cos : _asin _offsetp _cenlon _radius _ptitle F_wivinvint_lon_center_false_easting_false_northing_adjust_lonwviifor.o/ 1295447559 32135310545 100644 1345 ` L8.text@4 `.data@.bss@.rdata@@@UEEE E 0$E$E$0\$ $UHE%$]ED$ ED$E$E$]EM$]EM $]ЋE(MMM E0MM0ÐWAGNER VII@T5A}?@G|V@rPL?   & -2=HN X `v ~    ) .filegwviifor.c _R +0_wviifork .text6.data.bss@.rdata8_sqrt _sin _tsincos ; _offsetp _cenlon _radius _ptitle G_wviiforint_lon_center_false_easting_false_northing_adjust_lon wviiinv.o/ 1295447560 32135310545 100644 1407 ` LR.text`D `.data@.bss@.rdata0@@UEEE E 0$E$E$0\$ $U8E% ]E%0]E]E]EM]EM]EE$]E$]E$ME $EE$ME\$$($EÐWAGNER VIIG|V@rPL?tr ?@   & -2=HN X `v   -3; C.filegwviiinv.c _R +0_wviiinvk .textS.data.bss@.rdata0_tan _atan2 ; _sin _asinz _sqrt _offsetp _cenlon _radius _ptitle G_wviiinvint_lon_center_false_easting_false_northing_adjust_lon for_init.o/ 1295447560 32135310545 100644 14367 ` LT0Q.text%T& `.data@.bss.rdata 4&@@USdDž}auzEw4Ew&EwEwE@D$ED$ ED$ED$E$}bEw4Ew&EwEw EE@D$ED$ ED$ED$E$*@D$ED$ ED$ED$E$E0ݝpE8ݝh}a D$E $]U 8tDž#D$E($]U 8tDž@#݅h\$(݅p\$ E\$E\$E\$E$U EE$"}b D$E $]U 8tDž"D$E($]U 8tDž,"݅h\$(݅p\$ E\$E\$E\$E$U EE$!}x}y7Dž<@D$ED$ ED$ED$<$E E}D$E$]ЋU 8tDž"!D$E$]U 8tDž E$EEwEݝxED$݅x\$E\$E$U EE$> }uhED$ ED$ED$E $U 8tDžEE$}D$E$]U 8tDž|D$E$]U 8tDž(D$E($]U 8tDžD$E $]U 8tDž݅h\$8݅p\$0E\$(E\$ E\$E\$E\$E$U EE$}D$E$]U 8tDžD$E$]U 8tDž^D$E $]U 8tDž D$E($]U 8tDž݅h\$8݅p\$0E\$(E\$ E\$E\$E\$E$U EE$<} D$E $]U 8tDžD$E($]U 8tDž݅h\$(݅p\$ E\$E\$E\$E$U EE$(} D$E $]U 8tDžD$E($]U 8tDž݅h\$(݅p\$ E\$E\$E\$E$U EE$} D$E $]U 8tDžD$E($]U 8tDžl݅h\$(݅p\$ E\$E\$E\$E$U EE$}D$E$]U 8tDžD$E$]U 8tDžXD$E $]U 8tDžD$E($]U 8tDžE@zt Dž0 Dž00D$@݅h\$8݅p\$0E\$(E\$ E\$E\$E\$E$U EE$} "EݝxD$E $]U 8tDžD$E($]U 8tDžI݅h\$0݅p\$(E\$ E\$݅x\$E\$E$U EE$} D$E $]U 8tDžD$E($]U 8tDž+݅h\$ ݅p\$E\$E\$݅@$U EE$} D$E $]U 8tDžoD$E($]U 8tDž݅h\$ ݅p\$E\$E\$݅@$U EE$} D$E $]U 8tDž_D$E($]U 8tDž ݅h\$ ݅p\$E\$E\$݅@$U EE$} D$E $]U 8tDžOD$E($]U 8tDž݅h\$ ݅p\$E\$E\$݅@$U EE$}D$E $]U 8tDž?D$E($]U 8tDž݅h\$ ݅p\$E\$E\$݅@$U EE$}D$E $]U 8tDž/D$E($]U 8tDžE]݅h\$(݅p\$ E\$E\$E\$݅@$U EE$a}D$E $]U 8tDž ݅h\$݅p\$E\$݅@$U EE$}D$E $]U 8tDžXD$E($]U 8tDž݅h\$ ݅p\$E\$E\$݅@$U EE$ }D$E $]U 8tDžH ݅h\$݅p\$E\$݅@$U EE$ }D$E $]U 8tDž ݅h\$݅p\$E\$݅@$U EE$2 }%EݝxD$E($]U 8tDž E`uzDž0D$E$]U 8tDžX D$E $]U 8iDž Dž0D$E@$]ЋU 8tDž D$EH$]U 8tDžN D$EP$]ȋU 8tDž D$EX$]U 8tDž 0D$`E\$XE\$PE\$HE\$@݅h\$8݅p\$0E\$(E\$ E\$݅x\$E\$E$U EE$ }Eٽf f ٭ ۝8٭E٭ ۝4٭E`ztDž0D$E$]U 8tDž?D$E $]ЋU 8tDžE@ݝHEHݝ(EPٽf f ٭ ۝T٭ Dž0݅(\$H0D$DTD$@݅H\$8݅h\$0݅p\$(E\$ E\$8D$4D$E\$E$U EE$}D$E $]U 8tDž݅h\$݅p\$E\$݅@$U EE$4}D$E $]U 8tDž݅h\$݅p\$E\$݅@$U EE$}u<݅@$U EE$=}D$E $]U 8tDž݅h\$݅p\$E\$݅@$U EE$}u<݅@$U EE$F}uT݅h\$݅p\$E\$E$U EE$}D$E $]U 8tDž݅h\$݅p\$E\$݅@$U EE$7}D$E $]U 8tDž݅h\$݅p\$E\$݅@$U EE$}D$E $]U 8tDž.D$E($]U 8tDžEݝ`EݝXD$E@$]؋U 8tDžj݅h\$8݅p\$0E\$(݅X\$ ݅`\$E\$E\$݅@$U EE$}ct }tD$E $]U 8tDžE@ݝ EPݝ݅\$(݅ \$ ݅h\$݅p\$E\$݅@$U EE$Džd[]Ð @U>cܥL@x#?P$PPPO  O  XN{MO  O  lLKPO  VO\ d  J IHBGFO  O   POV ^ O  &EIDrOx  O  O  ( nOt | C B< OB J  O   A' @P OV ^  O   ?; >d Oj r  O  , =O <x O~   O   O& . t Oz  -;P:O  O  Y9|8O  O  i76O   O  y54O  O ' 32O  )O/ 7 10O  9O? G /.O  IOO W -,O % +*O   O& . )(O  E'h&O  %$TOZ b O   O& . O  O  *O0 8 ~O  )#L"O  9O? G C!f O  DOJ R  ; OA I     !@!c!!O! ! !"A"OG" O" """O" # J#OP# X# #O# # E$h$$O$ $ 1% T% .filegfor_init.c .textq%.data.bss.rdata   ( 2 _wviifor ? _wivfor K V ` m w _molwfor  _goodfor  _robfor  _hamfor  _somfor  _omerfor    _millfor  _equifor  _sinfor     _orthfor  _gnomfor & _azimfor 2 > H _sterfor U _tmfor a k u _polyfor  _psfor  _merfor        _utmfor   _bceafor  _ceafor  _paksz _sphdz _for_init_isinusfor_isinusforinit_obleqfor_obleqforint_wviiforint_wivforint_alconfor_alconforint_imolwfor_imolwforint_molwforint_goodforint_robforint_hamforint_somforint_omerforint_vandgfor_vandgforint_millforint_equiforint_sinforint_gvnspfor_gvnspforint_orthforint_gnomforint_azimforint_lamazfor_lamazforint_sterforint_tmforint_eqconfor_eqconforint_polyforint_psforint_merforint_lamccfor_lamccforint_alberfor_alberforint_stplnfor_stplnforint_utmforint_calc_utm_zone_bceaforint_ceaforint inv_init.o/ 1295447560 32135310545 100644 14303 ` L0Q.text@%& `.data@.bss.rdata %@@USTDž}auzEw4Ew&EwEwE`D$ED$ ED$ED$E$}bEw4Ew&EwEw EE`D$ED$ ED$ED$E$*`D$ED$ ED$ED$E$E0ݝpE8ݝh}a D$E $]U 8tDžX#D$E($]U 8tDž#݅h\$(݅p\$ E\$E\$E\$E$U EE$"}b D$E $]U 8tDžD"D$E($]U 8tDž!݅h\$(݅p\$ E\$E\$E\$E$U EE$!}x}y7Dž8`D$ED$ ED$ED$8$E E}D$E$]ЋU 8tDž D$E$]U 8tDž E$EEwEݝxED$݅x\$E\$E$U EE$ }uhED$ ED$ED$E $U 8tDžEE$}D$E$]U 8tDž@D$E$]U 8tDžD$E $]U 8tDžD$E($]U 8tDžD݅h\$8݅p\$0E\$(E\$ E\$E\$E\$E$U EE$}D$E$]U 8tDžvD$E$]U 8tDž"D$E $]U 8tDžD$E($]U 8tDžz݅h\$8݅p\$0E\$(E\$ E\$E\$E\$E$U EE$} D$E $]U 8tDžD$E($]U 8tDžX݅h\$(݅p\$ E\$E\$E\$E$U EE$} D$E $]U 8tDžD$E($]U 8tDžD݅h\$(݅p\$ E\$E\$E\$E$U EE$} D$E $]U 8tDžD$E($]U 8tDž0݅h\$(݅p\$ E\$E\$E\$E$U EE$}D$E$]U 8tDžpD$E$]U 8tDžD$E $]U 8tDžD$E($]U 8tDžtE@zt Dž< Dž<cܥL@x#?P$PPPO  O  XN{MO  O  lLKPO  VO\ d  J IHBGFO  O   POV ^ O  &EIDrOx  O  O  ( nOt | C B< OB J  O   A' @P OV ^  O   ?; >d Oj r  O  , =O <x O~   O   O& . t Oz  -;P:O  O  Y9|8O  O  i76O   O  y54O  O ' 32O  )O/ 7 10O  9O? G /.O  IOO W -,O % +*O   O& . )(O  E'h&O  %$TOZ b O   O& . O  O  *O0 8 ~O  )#L"O  9O? G !* SOY a O  qO  h    !'!P!OV! ^! !!"O " " n"""O" " #O# # ~#O# #  $,$\$Ob$ j$ $ % .fileginv_init.c .text5%.data.bss.rdata   ( 2 _wviiinv ? _wivinv K V ` m w _molwinv  _goodinv  _robinv  _haminv  _sominv  _omerinv    _millinv  _equiinv  _sininv     _orthinv  _gnominv & _aziminv 2 > H _sterinv U _tminv a k u _polyinv  _psinv  _merinv        _utminv   _bceainv  _ceainv  _paksz _sphdz _inv_init_isinusinv_isinusinvinit_obleqinv_obleqinvint_wviiinvint_wivinvint_alconinv_alconinvint_imolwinv_imolwinvint_molwinvint_goodinvint_robinvint_haminvint_sominvint_omerinvint_vandginv_vandginvint_millinvint_equiinvint_sininvint_gvnspinv_gvnspinvint_orthinvint_gnominvint_aziminvint_lamazinv_lamazinvint_sterinvint_tminvint_eqconinv_eqconinvint_polyinvint_psinvint_merinvint_lamccinv_lamccinvint_alberinv_alberinvint_stplninv_stplninvint_utminvint_calc_utm_zone_bceainvint_ceainvint cproj.o/ 1295447560 32135310545 100644 5629 ` L(.text q `.data@.bss.rdata  @@UE$EE$EUEw Ew] ]E$UEM]EM$EU8Ew`EM]EM]EME]u]eE$MmE]E]E]EUxE8$]E@w E]EM]E}EЉD$ E؉D$E$xEM]EM]E8Mu]eEEu]8u]eE$MEM]EE]EHsE]0EAD$$#EP]EUHEEh]E$p]E}E$]EM]E\$eE$M$pe]EE]ExsE]0EvD$X$#E]EU8E]E}E$ME]E$M E]E$M(Eue]EE]EsE0E]0EhD$$E0]EUSEDE0E}ED$]ED$]]@EMM$MED$]EDMEM]ED$M E]ED$M(m]E]ED$EE]E ݝxED$܍xEݝpE(ݝhED$܍hܭp]EE@EME8E0E@M]EMEME8E0MɋE@]E0eE@M uE]EEE]UDEDEE(s]'ED$$]EĤ[]U E EwE-E]E08}Ef fEm]mEi'P$d$E]E@8m]mUЍP$d$E]EHEPE]}-uEpEU E EX]EwE-E]E}Ef fEm]mEE`]Em]mEE`]EhEpE]}-uEpEU(EM]Ex]E\$eE$]ex$uUEw EEEUEEE}Ef fEm]mE(E$|P$d$E]LEm]mEP$d$w4Em]mEP$d$E]Em]mEP$d$w4Em]mEP$d$E]Em]mEP$d$w1Em]mEP$d$E]#E$+P$d$E]E}:EUEEE]UEEE]UEME]UEMM]U(E]e]E\$E$]E\$E$M$UEM(]E($ME]E($ME]E($M E]EUE}Ef fEm]mEÐHz>?phi1z-convConvergence error?|=Hz>phi2z-conv?-DT!?|=@PHI3Z-CONVLatitude failed to converge after 15 iterations@@|=@phi4z-convLattitude failed to converge@@@|=@MbP?Y@.A@@cܥL@N@.A@@?-DT!?-DT! @-DT!@A!T! B=~S!C?0@?@?????UUUUUU?@@f@@ '&Yg%$#'=#(/4"Ccs!}' !"'"6h'z''" D'To$'''&#&=PZ&29>"D? &0v + C a s       B M X ` |        & $D 'X b 'v  '  .filegcproj.c_tsincos _asinz( _msfnzm _qsfnz _phi1z _phi2zO _phi3zB _phi4z _pakczW _pakr2dm0 _tsfnz _sign9 b _e0fn:  _e1fnt  _e2fn  _e3fn  _e4fn  _mlfn,    .text q.data.bss.rdata _tan _pow _atan _p_error _log _sqrt _asin _cos _sin _adjust_lon_calc_utm_zone report.o/ 1295447560 32135310545 100644 6989 ` L).text  `.data@.bss`.rdatapT @@U=tED$E D$$= tID$ $`PED$ E D$D$P$P$U}u }u=E8u Eo ED$$`u}u[E8u* D$ $E ED$$` } u0} u=E8u E0ED$$`r} uXE8u'0D$ $E:0ED$$`0EEU=Pt P$=@t @$U=tED$$7=0tBD$ $`@ED$D$7@$@$U=tE\$$T=0tBD$ $`@E\$D$T@$@$U=t&E\$$|E\$$=0t^D$ $`@E\$D$|@$E\$D$@$@$U=tE\$$=0tJD$ $`@E\$D$@$@$U=tEP\$$=0tJD$ $`@EP\$D$@$@$U=tE\$$X=0tJD$ $`@E\$D$@$@$U=tE\$$=0tJD$ $`@E\$D$@$@$U=tEx\$$=0tJD$ $`@Ex\$D$D@$@$U=t6E\$$E\$$=0tnD$ $`@E\$D$@$E\$D$@$@$U=tE\$$=0tJD$ $`@E\$D$@$@$U=t&E\$$E\$$4=0t^D$ $`@E\$D$@$E\$D$4@$@$U=tE\$ED$$X=0tID$ $`@E\$ ED$D$X@$@$U=tED$E D$$c=0tID$ $`@ED$ E D$D$c@$@$U=t $n=0t;D$ $`@D$n@$@$Ð[%s] %s areport-fileOutput file name not specified %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees cܥL@ Longitude of Central Meridian: %lf degrees cܥL@ Latitude of Center: %lf degrees Latitude of Center: %lf degrees cܥL@ Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees cܥL@ Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees cܥL@ 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees cܥL@ Standard Parallel: %lf degrees cܥL@ False Easting: %lf meters False Northing: %lf meters %s %lf %s %ld   "%(+ 6"= B'G ]"b j&o w%     $   "") ; @$H R b l    $  ""  $ & B J R%X ` h%v "( " ' " & % "(  " ' ,"1 9&> F%T e"j(x"}( " ' " &" & % " "( !"( -'2 ;"I"N V&[ c%q }""( " ' "" & % " "( "& +'0 9"G"L T&Y a%o {""( " ' "" & % "" ( "$ )'. 7"E"J R&W _%m y""(""( " ' "" &"" & %+ 7"D"I(O Z"a f'k t"" & % "("( " ' "  & "% -&2 :%H `"e(k v"} ' " & % "( " '  " ' &, 4 %B L "Q (W b "i n 's { "  &  %.filegreport.c_p_error _file_e `_fptr_eP_init} _file_p0&`1: _fptr_p@_ptitlen _radius _radius2L _cenlon =i _cenlat _origing H Te _stparl1# _offsetp _genrpt@ ^ _pblank:  .text .data.bss`.rdatap_strcpy _fclose _fprintf _fopen _printf k_terminal_e_err_file_terminal_p_parm_file_close_file_cenlonmer_true_scale_stanparl_genrpt_long paksz.o/ 1295447561 32135310545 100644 1088 ` LR .text `.data@.bss.rdata`4@@UHEEw 0]]E]8]Eu}Ef fEm]mҁ}h~+D$$ E\0]E]EME]@]Eum]m҃}<~+D$$ E\0]E]EME]EHw(D$&$ E\0]5EPEHEM]EP]E]EÐpaksz-degIllegal DMS fieldpaksz-minpaksz-sec.A@@N@ @ 7 i p u           % 4 B M c .filegpaksz.c_paksz .textw.data.bss.rdataX_p_error sphdz.o/ 1295447561 32135310545 100644 1980 ` L.textD" `.datat@.bss.rdataP@@US$}E ]E ]EwEwEEEEEELEw*EEEE]e$MEEEEEEEw&EEE}u&EEEp}u&EEE8g}u&EEE@;EEEHE3EEE)}~;D$$D$$)EE}u.UEUEE}u/UEUEUEZ}u+UEUEE)UEUEE$[]ÐTXAGITXAISXA`TXATXATXASXA@TXA@TXAbXTXA'1SXAu SXA@TXATXATXA@TXATXATXATXA@MXAMXA˯MXA@TXA333?XA ?XA+?XA ?XAd?XAIF?XA؁s?XA =?XA?XAp=:H?XA~!?XA1?XA?XAoT?XA?XA4?XAX?XAp'?XAR_?XA@MXAMXA˯MXAX9\?XAINFORMATIONALInvalid spheroid selectionReset to 0˯MXAMXA@MXA ,7B Xcn ~     4CRix.filegsphdz.c_major_minor_sphdz .text".datax.bss.rdataP_p_error _sqrt untfz.o/ 1295447561 32135310545 100644 1050 ` L.text `.data T@.bss.rdata`t@@U} x]} W}xQ}KMUE Ezt:D$$ EM$D$#$0EEEÐ?y1s- AcܥL@?;pjځ?u:?X%? @?(? @U>?xV42?:RFߑ? @?B?ׁ??untfz-codeUncompatable unit codesuntfz-unitIllegal source or target unit code2P W \ m t y .fileguntfz.c_factors_untfz .text.data .bss.rdataS_p_error gctp.o/ 1295447561 32135310545 100644 4436 ` L.text` < `.data  @.bssk.rdata`4 @@USEEEP]PE,D$ E$D$E(D$E $EP8tDž4=E}dEEEPEP4E5E7E}3Ủ)EỦ)E09EǍEXEETE 8E UP;u0E U;uE U ;u E 8t ERE} EE )ЉM̋E̍Euz EE뵋E48E4U87;u0E4UD5;uE4U4P4;u E48t ERE} EE4)ЉM̋E̍E<09uz EE뵋E 8x E 8d,D$$ EPDž4E48x E48d,D$$(EPDž4DEEE8uE 8uE8uEE8u2E 8u*E8u"EQ)‰ЋEE 8u!]PED$D$E$]PED$D$E$E 8uUEEP8tDž4oEM]EM]}E E E EE EPE}/E )ЉM̋E̍EEˋE 8E}!M̋E̍Eݜ8Eݝ8ݝ@E8uEztLE-P$d$@ݝ8E8xHݝ@'Pݝ@Eݝ8Eݝ@D$0jEPD$ELD$EHD$ED$ 8D$ED$E $CD$0jEPD$ELD$EHD$ED$ ED$ED$E $EP8tDž4kE 8uE]E]IE EЉD$E؉D$E\$E$0jЉ‹EP8tDž4 }E4E4P4E4ED5E4E87E}/E4)ЉM̋E̍E<09EˋE48E}!M̋E̍E<ݜ8Eݝ8ݝ@E<zt$E$ݝ8E$ݝ@E<ݝ8E<ݝ@D$hEPD$ELD$EHD$EDD$ 8D$E8D$E4$CD$hEPD$ELD$EHD$EDD$ E / 1073924792 0 0 0 26792 ` hhhhhhhhhhhhhPPPPPPPPPPPPPPZLZLZLZLZLZLZLZLZLZLZLtttttttttttttttttttPPPPPPPPPPPPPPPPPPPhhhhhhhhhhhhhhhhhhh(X(X(X(X(X(X(X(X(XNNNNNNNNNNwwwwwwwwwww\\\\\\\یییییییIIIIIIIIIIII|0|0|0|0|0|0|0|0ŠŠŠŠŠŠŠ#<#<#<#<#<#<#<#<#<#<MMMMMMMMMMM|||||||||||||||lllllllllllllFTFTFTFTFTFTFTFTj<j<j<j<j<j<j<j<LLLLLLLL@@@@@@@@@@@@@@,,,,,,,,,,,,,,AAAAAAAAAAAAAAAAAAAAAAAA-\-\-\-\-\-\-\-\-\-\-\\\\\\\\\\\\\\\\\\¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼ ) ) ) ) ) ) ) ) ) ) ` ` ` ` ` ` ` ` ` ` Đ Đ Đ Đ Đ Đ Đ Đ Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np Np @ @ @ @ @ @ @ @ @ @ @         K K K K K K K K d d d d d d d d d d d d d d d d d d d 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 T T T T T T T T T T T T T T T T T T T W W W W W W W W W W W W W W W W W W W h h h h h h h h а а а а а а а а $ $ $ $ $ $ $ $ H H H H H H H H np np np np np np np np                 D(D(װװjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj??````LLL$$$$$$$$$$$$$$$XBEBTnbYpsAAG8o.alberfor.__func__alberfor$XAEBTnbYpsAAG8o.rh$XAEBTnbYpsAAG8o.c$XAEBTnbYpsAAG8o.ns0$XAEBTnbYpsAAG8o.e3$XAEBTnbYpsAAG8o.r_minor$XAEBTnbYpsAAG8o.r_major$XAEBTnbYpsAAG8o.lon_center$XAEBTnbYpsAAG8o.false_northing$XAEBTnbYpsAAG8o.false_easting$XBEBTnbYpsAAG8o.alberforint.__func__alberforint$XBEBTnbZpsAAG9o.alberinv.__func__alberinv$XAEBTnbZpsAAG9o.rh$XAEBTnbZpsAAG9o.c$XAEBTnbZpsAAG9o.ns0$XAEBTnbZpsAAG9o.e3$XAEBTnbZpsAAG9o.es$XAEBTnbZpsAAG9o.r_minor$XAEBTnbZpsAAG9o.r_major$XAEBTnbZpsAAG9o.lon_center$XAEBTnbZpsAAG9o.false_northing$XAEBTnbZpsAAG9o.false_easting$XBEBTnbZpsAAG9o.alberinvint.__func__alberinvint$XBEBTnbapsAAG_o.alconfor.__func__alconfor$XAEBTnbapsAAG_o.cos_p26$XAEBTnbapsAAG_o.sin_p26$XAEBTnbapsAAG_o.bcoef$XAEBTnbapsAAG_o.acoef$XAEBTnbapsAAG_o.e$XAEBTnbapsAAG_o.n$XAEBTnbapsAAG_o.lat_center$XAEBTnbapsAAG_o.lon_center$XAEBTnbapsAAG_o.false_northing$XAEBTnbapsAAG_o.false_easting$XAEBTnbapsAAG_o.r_minor$XAEBTnbapsAAG_o.r_major$XBEBTnbapsAAG_o.alconforint.__func__alconforint$XBEBTnbapsAAG$o.alconinv.__func__alconinv$XAEBTnbapsAAG$o.cos_p26$XAEBTnbapsAAG$o.sin_p26$XAEBTnbapsAAG$o.bcoef$XAEBTnbapsAAG$o.acoef$XAEBTnbapsAAG$o.e$XAEBTnbapsAAG$o.n$XAEBTnbapsAAG$o.lat_center$XAEBTnbapsAAG$o.lon_center$XAEBTnbapsAAG$o.false_northing$XAEBTnbapsAAG$o.false_easting$XAEBTnbapsAAG$o.r_minor$XAEBTnbapsAAG$o.r_major$XBEBTnbapsAAG$o.alconinvint.__func__alconinvint$XBEBTnbbpsAAGAp.azimfor.__func__azimfor$XAEBTnbbpsAAGAp.cos_p12$XAEBTnbbpsAAGAp.sin_p12$XAEBTnbbpsAAGAp.false_easting$XAEBTnbbpsAAGAp.false_northing$XAEBTnbbpsAAGAp.lat_origin$XAEBTnbbpsAAGAp.lon_center$XAEBTnbbpsAAGAp.r_major$XBEBTnbbpsAAGAp.azimforint.__func__azimforint$XBEBTnbcpsAAGBp.aziminv.__func__aziminv$XAEBTnbcpsAAGBp.cos_p12$XAEBTnbcpsAAGBp.sin_p12$XAEBTnbcpsAAGBp.false_easting$XAEBTnbcpsAAGBp.false_northing$XAEBTnbcpsAAGBp.lat_origin$XAEBTnbcpsAAGBp.lon_center$XAEBTnbcpsAAGBp.r_major$XBEBTnbcpsAAGBp.aziminvint.__func__aziminvint$XBEBTnbdpsAAWCp.bceafor.__func__bceafor$XAEBTnbdpsAAWCp.kz$XAEBTnbdpsAAWCp.sinphi1$XAEBTnbdpsAAWCp.cosphi1$XAEBTnbdpsAAWCp.ind$XAEBTnbdpsAAWCp.e$XAEBTnbdpsAAWCp.es$XAEBTnbdpsAAWCp.false_easting$XAEBTnbdpsAAWCp.false_northing$XAEBTnbdpsAAWCp.lat_truesc$XAEBTnbdpsAAWCp.lon_center$XAEBTnbdpsAAWCp.r_minor$XAEBTnbdpsAAWCp.r_major$XBEBTnbdpsAAWCp.bceaforint.__func__bceaforint$XBEBTnbepsAAWDp.bceainv.__func__bceainv$XAEBTnbepsAAWDp.kz$XAEBTnbepsAAWDp.sinphi1$XAEBTnbepsAAWDp.cosphi1$XAEBTnbepsAAWDp.qp$XAEBTnbepsAAWDp.ind$XAEBTnbepsAAWDp.e_p6$XAEBTnbepsAAWDp.e_p4$XAEBTnbepsAAWDp.e$XAEBTnbepsAAWDp.es$XAEBTnbepsAAWDp.false_easting$XAEBTnbepsAAWDp.false_northing$XAEBTnbepsAAWDp.lat_truesc$XAEBTnbepsAAWDp.lon_center$XAEBTnbepsAAWDp.r_minor$XAEBTnbepsAAWDp.r_major$XBEBTnbepsAAWDp.bceainvint.__func__bceainvint$XBEBTnbfpsAAWEp.ceafor.__func__ceafor$XAEBTnbfpsAAWEp.kz$XAEBTnbfpsAAWEp.sinphi1$XAEBTnbfpsAAWEp.cosphi1$XAEBTnbfpsAAWEp.ind$XAEBTnbfpsAAWEp.e$XAEBTnbfpsAAWEp.es$XAEBTnbfpsAAWEp.false_easting$XAEBTnbfpsAAWEp.false_northing$XAEBTnbfpsAAWEp.lat_truesc$XAEBTnbfpsAAWEp.lon_center$XAEBTnbfpsAAWEp.r_minor$XAEBTnbfpsAAWEp.r_major$XBEBTnbfpsAAWEp.ceaforint.__func__ceaforint$XBEBTnbfpsAAWFp.ceainv.__func__ceainv$XAEBTnbfpsAAWFp.kz$XAEBTnbfpsAAWFp.sinphi1$XAEBTnbfpsAAWFp.cosphi1$XAEBTnbfpsAAWFp.qp$XAEBTnbfpsAAWFp.ind$XAEBTnbfpsAAWFp.e_p6$XAEBTnbfpsAAWFp.e_p4$XAEBTnbfpsAAWFp.e$XAEBTnbfpsAAWFp.es$XAEBTnbfpsAAWFp.false_easting$XAEBTnbfpsAAWFp.false_northing$XAEBTnbfpsAAWFp.lat_truesc$XAEBTnbfpsAAWFp.lon_center$XAEBTnbfpsAAWFp.r_minor$XAEBTnbfpsAAWFp.r_major$XBEBTnbfpsAAWFp.ceainvint.__func__ceainvint$XBEBTnbhpsAAWGp.eqconfor.__func__eqconfor$XAEBTnbhpsAAWGp.rh$XAEBTnbhpsAAWGp.ml0$XAEBTnbhpsAAWGp.g$XAEBTnbhpsAAWGp.ns$XAEBTnbhpsAAWGp.e3$XAEBTnbhpsAAWGp.e2$XAEBTnbhpsAAWGp.e1$XAEBTnbhpsAAWGp.e0$XAEBTnbhpsAAWGp.e$XAEBTnbhpsAAWGp.es$XAEBTnbhpsAAWGp.false_easting$XAEBTnbhpsAAWGp.false_northing$XAEBTnbhpsAAWGp.lon_center$XAEBTnbhpsAAWGp.r_minor$XAEBTnbhpsAAWGp.r_major$XBEBTnbhpsAAWGp.eqconforint.__func__eqconforint$XBEBTnbipsAAWHp.eqconinv.__func__eqconinv$XAEBTnbipsAAWHp.rh$XAEBTnbipsAAWHp.ml0$XAEBTnbipsAAWHp.g$XAEBTnbipsAAWHp.ns$XAEBTnbipsAAWHp.e3$XAEBTnbipsAAWHp.e2$XAEBTnbipsAAWHp.e1$XAEBTnbipsAAWHp.e0$XAEBTnbipsAAWHp.e$XAEBTnbipsAAWHp.es$XAEBTnbipsAAWHp.false_easting$XAEBTnbipsAAWHp.false_northing$XAEBTnbipsAAWHp.lon_center$XAEBTnbipsAAWHp.r_minor$XAEBTnbipsAAWHp.r_major$XBEBTnbipsAAWHp.eqconinvint.__func__eqconinvint$XBEBTnbjpsAAWIp.equifor.__func__equifor$XAEBTnbjpsAAWIp.false_easting$XAEBTnbjpsAAWIp.false_northing$XAEBTnbjpsAAWIp.lat_origin$XAEBTnbjpsAAWIp.lon_center$XAEBTnbjpsAAWIp.r_major$XBEBTnbjpsAAWIp.equiforint.__func__equiforint$XBEBTnbnpsAA2Jp.equiinv.__func__equiinv$XAEBTnbnpsAA2Jp.false_easting$XAEBTnbnpsAA2Jp.false_northing$XAEBTnbnpsAA2Jp.lat_origin$XAEBTnbnpsAA2Jp.lon_center$XAEBTnbnpsAA2Jp.r_major$XBEBTnbnpsAA2Jp.equiinvint.__func__equiinvint$XBEBTnbnpsAA2Kp.gnomfor.__func__gnomfor$XAEBTnbnpsAA2Kp.cos_p13$XAEBTnbnpsAA2Kp.sin_p13$XAEBTnbnpsAA2Kp.false_northing$XAEBTnbnpsAA2Kp.false_easting$XAEBTnbnpsAA2Kp.lon_center$XAEBTnbnpsAA2Kp.R$XBEBTnbnpsAA2Kp.gnomforint.__func__gnomforint$XBEBTnbopsAA2Lp.gnominv.__func__gnominv$XAEBTnbopsAA2Lp.cos_p13$XAEBTnbopsAA2Lp.sin_p13$XAEBTnbopsAA2Lp.false_northing$XAEBTnbopsAA2Lp.false_easting$XAEBTnbopsAA2Lp.lat_center$XAEBTnbopsAA2Lp.lon_center$XAEBTnbopsAA2Lp.R$XBEBTnbopsAA2Lp.gnominvint.__func__gnominvint$XBEBTnbppsAA2Mp.goodfor.__func__goodfor$XAEBTnbppsAA2Mp.feast$XAEBTnbppsAA2Mp.lon_center$XAEBTnbppsAA2Mp.R$XBEBTnbppsAA2Mp.goodforint.__func__goodforint$XBEBTnbqpsAA2Np.goodinv.__func__goodinv$XAEBTnbqpsAA2Np.feast$XAEBTnbqpsAA2Np.lon_center$XAEBTnbqpsAA2Np.R$XBEBTnbqpsAA2Np.goodinvint.__func__goodinvint$XBEBTnbrpsAA2Op.gvnspfor.__func__gvnspfor$XAEBTnbrpsAA2Op.cos_p15$XAEBTnbrpsAA2Op.sin_p15$XAEBTnbrpsAA2Op.false_northing$XAEBTnbrpsAA2Op.false_easting$XAEBTnbrpsAA2Op.lon_center$XAEBTnbrpsAA2Op.p$XAEBTnbrpsAA2Op.R$XBEBTnbrpsAA2Op.gvnspforint.__func__gvnspforint$XBEBTnbtpsAA2Pp.gvnspinv.__func__gvnspinv$XAEBTnbtpsAA2Pp.cos_p15$XAEBTnbtpsAA2Pp.sin_p15$XAEBTnbtpsAA2Pp.false_northing$XAEBTnbtpsAA2Pp.false_easting$XAEBTnbtpsAA2Pp.lat_center$XAEBTnbtpsAA2Pp.lon_center$XAEBTnbtpsAA2Pp.p$XAEBTnbtpsAA2Pp.R$XBEBTnbtpsAA2Pp.gvnspinvint.__func__gvnspinvint$XBEBTnbupsAA2Qp.hamfor.__func__hamfor$XAEBTnbupsAA2Qp.false_northing$XAEBTnbupsAA2Qp.false_easting$XAEBTnbupsAA2Qp.lon_center$XAEBTnbupsAA2Qp.R$XBEBTnbupsAA2Qp.hamforint.__func__hamforint$XBEBTnbvpsAA2Rp.haminv.__func__haminv$XAEBTnbvpsAA2Rp.false_northing$XAEBTnbvpsAA2Rp.false_easting$XAEBTnbvpsAA2Rp.lon_center$XAEBTnbvpsAA2Rp.R$XBEBTnbvpsAA2Rp.haminvint.__func__haminvint$XBEBTnbwpsAA2Sp.imolwfor.__func__imolwfor$XAEBTnbwpsAA2Sp.feast$XAEBTnbwpsAA2Sp.lon_center$XAEBTnbwpsAA2Sp.R$XBEBTnbwpsAA2Sp.imolwforint.__func__imolwforint$XBEBTnbxpsAA2Tp.imolwinv.__func__imolwinv$XAEBTnbxpsAA2Tp.feast$XAEBTnbxpsAA2Tp.lon_center$XAEBTnbxpsAA2Tp.R$XBEBTnbxpsAA2Tp.imolwinvint.__func__imolwinvint$XBEBTnbypsAA2Up.lamazfor.__func__lamazfor$XAEBTnbypsAA2Up.cos_lat_o$XAEBTnbypsAA2Up.sin_lat_o$XAEBTnbypsAA2Up.false_northing$XAEBTnbypsAA2Up.false_easting$XAEBTnbypsAA2Up.lon_center$XAEBTnbypsAA2Up.R$XBEBTnbypsAA2Up.lamazforint.__func__lamazforint$XBEBTnbzpsAA2Vp.lamazinv.__func__lamazinv$XAEBTnbzpsAA2Vp.cos_lat_o$XAEBTnbzpsAA2Vp.sin_lat_o$XAEBTnbzpsAA2Vp.false_northing$XAEBTnbzpsAA2Vp.false_easting$XAEBTnbzpsAA2Vp.lat_center$XAEBTnbzpsAA2Vp.lon_center$XAEBTnbzpsAA2Vp.R$XBEBTnbzpsAA2Vp.lamazinvint.__func__lamazinvint$XBEBTnb_psAA2Wp.lamccfor.__func__lamccfor$XAEBTnb_psAA2Wp.rh$XAEBTnb_psAA2Wp.f0$XAEBTnb_psAA2Wp.ns$XAEBTnb_psAA2Wp.center_lat$XAEBTnb_psAA2Wp.center_lon$XAEBTnb_psAA2Wp.e$XAEBTnb_psAA2Wp.es$XAEBTnb_psAA2Wp.false_easting$XAEBTnb_psAA2Wp.false_northing$XAEBTnb_psAA2Wp.r_minor$XAEBTnb_psAA2Wp.r_major$XBEBTnb_psAA2Wp.lamccforint.__func__lamccforint$XBEBTnbAqsAA2Xp.lamccinv.__func__lamccinv$XAEBTnbAqsAA2Xp.rh$XAEBTnbAqsAA2Xp.f0$XAEBTnbAqsAA2Xp.ns$XAEBTnbAqsAA2Xp.center_lat$XAEBTnbAqsAA2Xp.center_lon$XAEBTnbAqsAA2Xp.e$XAEBTnbAqsAA2Xp.es$XAEBTnbAqsAA2Xp.false_northing$XAEBTnbAqsAA2Xp.false_easting$XAEBTnbAqsAA2Xp.r_minor$XAEBTnbAqsAA2Xp.r_major$XBEBTnbAqsAA2Xp.lamccinvint.__func__lamccinvint$XBEBTnbBqsAA2Yp.merfor.__func__merfor$XAEBTnbBqsAA2Yp.m1$XAEBTnbBqsAA2Yp.e$XAEBTnbBqsAA2Yp.es$XAEBTnbBqsAA2Yp.false_easting$XAEBTnbBqsAA2Yp.false_northing$XAEBTnbBqsAA2Yp.lat_origin$XAEBTnbBqsAA2Yp.lon_center$XAEBTnbBqsAA2Yp.r_minor$XAEBTnbBqsAA2Yp.r_major$XBEBTnbBqsAA2Yp.merforint.__func__merforint$XBEBTnbCqsAA2Zp.merinv.__func__merinv$XAEBTnbCqsAA2Zp.m1$XAEBTnbCqsAA2Zp.e$XAEBTnbCqsAA2Zp.es$XAEBTnbCqsAA2Zp.false_easting$XAEBTnbCqsAA2Zp.false_northing$XAEBTnbCqsAA2Zp.lat_origin$XAEBTnbCqsAA2Zp.lon_center$XAEBTnbCqsAA2Zp.r_minor$XAEBTnbCqsAA2Zp.r_major$XBEBTnbCqsAA2Zp.merinvint.__func__merinvint$XBEBTnbCqsAA2ap.millfor.__func__millfor$XAEBTnbCqsAA2ap.false_northing$XAEBTnbCqsAA2ap.false_easting$XAEBTnbCqsAA2ap.lon_center$XAEBTnbCqsAA2ap.R$XBEBTnbCqsAA2ap.millforint.__func__millforint$XBEBTnbDqsAA2bp.millinv.__func__millinv$XAEBTnbDqsAA2bp.false_northing$XAEBTnbDqsAA2bp.false_easting$XAEBTnbDqsAA2bp.lon_center$XAEBTnbDqsAA2bp.R$XBEBTnbDqsAA2bp.millinvint.__func__millinvint$XBEBTnbEqsAA2cp.molwfor.__func__molwfor$XAEBTnbEqsAA2cp.lon_center$XAEBTnbEqsAA2cp.R$XAEBTnbEqsAA2cp.false_northing$XAEBTnbEqsAA2cp.false_easting$XBEBTnbEqsAA2cp.molwforint.__func__molwforint$XBEBTnbGqsAA2dp.molwinv.__func__molwinv$XAEBTnbGqsAA2dp.lon_center$XAEBTnbGqsAA2dp.R$XAEBTnbGqsAA2dp.false_northing$XAEBTnbGqsAA2dp.false_easting$XBEBTnbGqsAA2dp.molwinvint.__func__molwinvint$XBEBTnbHqsAA2ep.obleqfor.__func__obleqfor$XAEBTnbHqsAA2ep.cos_lat_o$XAEBTnbHqsAA2ep.sin_lat_o$XAEBTnbHqsAA2ep.false_northing$XAEBTnbHqsAA2ep.false_easting$XAEBTnbHqsAA2ep.theta$XAEBTnbHqsAA2ep.n$XAEBTnbHqsAA2ep.m$XAEBTnbHqsAA2ep.lat_o$XAEBTnbHqsAA2ep.lon_center$XAEBTnbHqsAA2ep.R$XBEBTnbHqsAA2ep.obleqforint.__func__obleqforint$XBEBTnbIqsAAGgp.obleqinv.__func__obleqinv$XAEBTnbIqsAAGgp.cos_lat_o$XAEBTnbIqsAAGgp.sin_lat_o$XAEBTnbIqsAAGgp.false_northing$XAEBTnbIqsAAGgp.false_easting$XAEBTnbIqsAAGgp.theta$XAEBTnbIqsAAGgp.n$XAEBTnbIqsAAGgp.m$XAEBTnbIqsAAGgp.lat_o$XAEBTnbIqsAAGgp.lon_center$XAEBTnbIqsAAGgp.R$XBEBTnbIqsAAGgp.obleqinvint.__func__obleqinvint$XBEBTnbIqsAAGhp.omerfor.__func__omerfor$XAEBTnbIqsAAGhp.u$XAEBTnbIqsAAGhp.cosaz$XAEBTnbIqsAAGhp.sinaz$XAEBTnbIqsAAGhp.cosgam$XAEBTnbIqsAAGhp.singam$XAEBTnbIqsAAGhp.lon_origin$XAEBTnbIqsAAGhp.el$XAEBTnbIqsAAGhp.d$XAEBTnbIqsAAGhp.al$XAEBTnbIqsAAGhp.bl$XAEBTnbIqsAAGhp.cos_p20$XAEBTnbIqsAAGhp.sin_p20$XAEBTnbIqsAAGhp.e$XAEBTnbIqsAAGhp.es$XAEBTnbIqsAAGhp.false_easting$XAEBTnbIqsAAGhp.false_northing$XAEBTnbIqsAAGhp.lat_origin$XAEBTnbIqsAAGhp.scale_factor$XAEBTnbIqsAAGhp.r_minor$XAEBTnbIqsAAGhp.r_major$XBEBTnbIqsAAGhp.omerforint.__func__omerforint$XBEBTnbKqsAAGip.omerinv.__func__omerinv$XAEBTnbKqsAAGip.u$XAEBTnbKqsAAGip.cosaz$XAEBTnbKqsAAGip.sinaz$XAEBTnbKqsAAGip.cosgam$XAEBTnbKqsAAGip.singam$XAEBTnbKqsAAGip.lon_origin$XAEBTnbKqsAAGip.el$XAEBTnbKqsAAGip.d$XAEBTnbKqsAAGip.ts$XAEBTnbKqsAAGip.al$XAEBTnbKqsAAGip.bl$XAEBTnbKqsAAGip.cos_p20$XAEBTnbKqsAAGip.sin_p20$XAEBTnbKqsAAGip.e$XAEBTnbKqsAAGip.es$XAEBTnbKqsAAGip.false_easting$XAEBTnbKqsAAGip.false_northing$XAEBTnbKqsAAGip.lat_origin$XAEBTnbKqsAAGip.scale_factor$XAEBTnbKqsAAGip.r_minor$XAEBTnbKqsAAGip.r_major$XBEBTnbKqsAAGip.omerinvint.__func__omerinvint$XBEBTnbLqsAAGjp.orthfor.__func__orthfor$XAEBTnbLqsAAGjp.cos_p14$XAEBTnbLqsAAGjp.sin_p14$XAEBTnbLqsAAGjp.false_easting$XAEBTnbLqsAAGjp.false_northing$XAEBTnbLqsAAGjp.lat_origin$XAEBTnbLqsAAGjp.lon_center$XAEBTnbLqsAAGjp.r_major$XBEBTnbLqsAAGjp.orthforint.__func__orthforint$XBEBTnbMqsAAGkp.orthinv.__func__orthinv$XAEBTnbMqsAAGkp.cos_p14$XAEBTnbMqsAAGkp.sin_p14$XAEBTnbMqsAAGkp.false_easting$XAEBTnbMqsAAGkp.false_northing$XAEBTnbMqsAAGkp.lat_origin$XAEBTnbMqsAAGkp.lon_center$XAEBTnbMqsAAGkp.r_major$XBEBTnbMqsAAGkp.orthinvint.__func__orthinvint$XBEBTnbNqsAAGlp.polyfor.__func__polyfor$XAEBTnbNqsAAGlp.ml0$XAEBTnbNqsAAGlp.e3$XAEBTnbNqsAAGlp.e2$XAEBTnbNqsAAGlp.e1$XAEBTnbNqsAAGlp.e0$XAEBTnbNqsAAGlp.e$XAEBTnbNqsAAGlp.es$XAEBTnbNqsAAGlp.false_easting$XAEBTnbNqsAAGlp.false_northing$XAEBTnbNqsAAGlp.lat_origin$XAEBTnbNqsAAGlp.lon_center$XAEBTnbNqsAAGlp.r_minor$XAEBTnbNqsAAGlp.r_major$XBEBTnbNqsAAGlp.polyforint.__func__polyforint$XBEBTnbOqsAAGmp.polyinv.__func__polyinv$XAEBTnbOqsAAGmp.ml0$XAEBTnbOqsAAGmp.e3$XAEBTnbOqsAAGmp.e2$XAEBTnbOqsAAGmp.e1$XAEBTnbOqsAAGmp.e0$XAEBTnbOqsAAGmp.es$XAEBTnbOqsAAGmp.false_easting$XAEBTnbOqsAAGmp.false_northing$XAEBTnbOqsAAGmp.lat_origin$XAEBTnbOqsAAGmp.lon_center$XAEBTnbOqsAAGmp.r_minor$XAEBTnbOqsAAGmp.r_major$XBEBTnbOqsAAGmp.polyinvint.__func__polyinvint$XBEBTnbPqsAAGnp.psfor.__func__psfor$XAEBTnbPqsAAGnp.tcs$XAEBTnbPqsAAGnp.mcs$XAEBTnbPqsAAGnp.ind$XAEBTnbPqsAAGnp.fac$XAEBTnbPqsAAGnp.center_lat$XAEBTnbPqsAAGnp.center_lon$XAEBTnbPqsAAGnp.e4$XAEBTnbPqsAAGnp.e$XAEBTnbPqsAAGnp.es$XAEBTnbPqsAAGnp.false_easting$XAEBTnbPqsAAGnp.false_northing$XAEBTnbPqsAAGnp.r_minor$XAEBTnbPqsAAGnp.r_major$XBEBTnbPqsAAGnp.psforint.__func__psforint$XBEBTnbQqsAAGop.psinv.__func__psinv$XAEBTnbQqsAAGop.tcs$XAEBTnbQqsAAGop.mcs$XAEBTnbQqsAAGop.ind$XAEBTnbQqsAAGop.fac$XAEBTnbQqsAAGop.center_lat$XAEBTnbQqsAAGop.center_lon$XAEBTnbQqsAAGop.e4$XAEBTnbQqsAAGop.e$XAEBTnbQqsAAGop.false_northing$XAEBTnbQqsAAGop.false_easting$XAEBTnbQqsAAGop.r_minor$XAEBTnbQqsAAGop.r_major$XBEBTnbQqsAAGop.psinvint.__func__psinvint$XBEBTnbRqsAAGpp.robfor.__func__robfor$XAEBTnbRqsAAGpp.xlr$XAEBTnbRqsAAGpp.pr$XAEBTnbRqsAAGpp.false_northing$XAEBTnbRqsAAGpp.false_easting$XAEBTnbRqsAAGpp.lon_center$XAEBTnbRqsAAGpp.R$XBEBTnbRqsAAGpp.robforint.__func__robforint$XBEBTnbTqsAAGqp.robinv.__func__robinv$XAEBTnbTqsAAGqp.xlr$XAEBTnbTqsAAGqp.pr$XAEBTnbTqsAAGqp.false_northing$XAEBTnbTqsAAGqp.false_easting$XAEBTnbTqsAAGqp.lon_center$XAEBTnbTqsAAGqp.R$XBEBTnbTqsAAGqp.robinvint.__func__robinvint$XBEBTnbUqsAAGrp.sinfor.__func__sinfor$XAEBTnbUqsAAGrp.false_northing$XAEBTnbUqsAAGrp.false_easting$XAEBTnbUqsAAGrp.lon_center$XAEBTnbUqsAAGrp.R$XBEBTnbUqsAAGrp.sinforint.__func__sinforint$XBEBTnbVqsAAGsp.sininv.__func__sininv$XAEBTnbVqsAAGsp.false_northing$XAEBTnbVqsAAGsp.false_easting$XAEBTnbVqsAAGsp.lon_center$XAEBTnbVqsAAGsp.R$XBEBTnbVqsAAGsp.sininvint.__func__sininvint$XBEBTnbWqsAAGtp.som_series.__func__$XAEBTnbWqsAAGtp.s$XBEBTnbWqsAAGtp.somfor.__func__somfor$XAEBTnbWqsAAGtp.c3$XAEBTnbWqsAAGtp.c1$XAEBTnbWqsAAGtp.a4$XAEBTnbWqsAAGtp.a2$XAEBTnbWqsAAGtp.xj$XAEBTnbWqsAAGtp.t$XAEBTnbWqsAAGtp.q$XAEBTnbWqsAAGtp.w$XAEBTnbWqsAAGtp.sa$XAEBTnbWqsAAGtp.ca$XAEBTnbWqsAAGtp.start$XAEBTnbWqsAAGtp.lon_center$XAEBTnbWqsAAGtp.p21$XAEBTnbWqsAAGtp.es$XAEBTnbWqsAAGtp.b$XAEBTnbWqsAAGtp.a$XAEBTnbWqsAAGtp.false_northing$XAEBTnbWqsAAGtp.false_eastinggsat_ratio$XBEBTnbWqsAAGtp.somforint.__func__somforint$XBEBTnbYqsAAGup.som_series.__func__$XAEBTnbYqsAAGup.s$XBEBTnbYqsAAGup.sominv.__func__sominv$XAEBTnbYqsAAGup.c3$XAEBTnbYqsAAGup.c1$XAEBTnbYqsAAGup.a4$XAEBTnbYqsAAGup.a2$XAEBTnbYqsAAGup.xj$XAEBTnbYqsAAGup.u$XAEBTnbYqsAAGup.t$XAEBTnbYqsAAGup.q$XAEBTnbYqsAAGup.w$XAEBTnbYqsAAGup.sa$XAEBTnbYqsAAGup.ca$XAEBTnbYqsAAGup.p21$XAEBTnbYqsAAGup.lon_center$XAEBTnbYqsAAGup.es$XAEBTnbYqsAAGup.b$XAEBTnbYqsAAGup.a$XAEBTnbYqsAAGup.false_northing$XAEBTnbYqsAAGup.false_easting$XBEBTnbYqsAAGup.sominvint.__func__sominvint$XBEBTnbZqsAAGvp.sterfor.__func__sterfor$XAEBTnbZqsAAGvp.cos_p10$XAEBTnbZqsAAGvp.sin_p10$XAEBTnbZqsAAGvp.false_easting$XAEBTnbZqsAAGvp.false_northing$XAEBTnbZqsAAGvp.lat_origin$XAEBTnbZqsAAGvp.lon_center$XAEBTnbZqsAAGvp.r_major$XBEBTnbZqsAAGvp.sterforint.__func__sterforint$XBEBTnbaqsAAGwp.sterinv.__func__sterinv$XAEBTnbaqsAAGwp.cos_p10$XAEBTnbaqsAAGwp.sin_p10$XAEBTnbaqsAAGwp.false_easting$XAEBTnbaqsAAGwp.false_northing$XAEBTnbaqsAAGwp.lat_origin$XAEBTnbaqsAAGwp.lon_center$XAEBTnbaqsAAGwp.r_major$XBEBTnbaqsAAGwp.sterinvint.__func__sterinvint$XBEBTnbbqsAAWxp.stplnfor.__func__stplnfor$XAEBTnbbqsAAWxp.id$XBEBTnbbqsAAWxp.stplnforint.__func__stplnforint$XAEBTnbbqsAAWxp.NAD83$XAEBTnbbqsAAWxp.NAD27$XAEBTnbbqsAAWxp.inzone$XBEBTnbcqsAAWyp.stplninv.__func__stplninv$XAEBTnbcqsAAWyp.id$XBEBTnbcqsAAWyp.stplninvint.__func__stplninvint$XAEBTnbcqsAAWyp.nad83$XAEBTnbcqsAAWyp.nad27$XAEBTnbcqsAAWyp.inzone$XBEBTnbeqsAAWzp.tmfor.__func__tmfor$XAEBTnbeqsAAWzp.ind$XAEBTnbeqsAAWzp.esp$XAEBTnbeqsAAWzp.ml0$XAEBTnbeqsAAWzp.e3$XAEBTnbeqsAAWzp.e2$XAEBTnbeqsAAWzp.e1$XAEBTnbeqsAAWzp.e0$XAEBTnbeqsAAWzp.es$XAEBTnbeqsAAWzp.false_easting$XAEBTnbeqsAAWzp.false_northing$XAEBTnbeqsAAWzp.lat_origin$XAEBTnbeqsAAWzp.lon_center$XAEBTnbeqsAAWzp.scale_factor$XAEBTnbeqsAAWzp.r_minor$XAEBTnbeqsAAWzp.r_major$XBEBTnbeqsAAWzp.tmforint.__func__tmforint$XBEBTnbfqsAAW0p.tminv.__func__tminv$XAEBTnbfqsAAW0p.ind$XAEBTnbfqsAAW0p.esp$XAEBTnbfqsAAW0p.ml0$XAEBTnbfqsAAW0p.e3$XAEBTnbfqsAAW0p.e2$XAEBTnbfqsAAW0p.e1$XAEBTnbfqsAAW0p.e0$XAEBTnbfqsAAW0p.es$XAEBTnbfqsAAW0p.false_easting$XAEBTnbfqsAAW0p.false_northing$XAEBTnbfqsAAW0p.lat_origin$XAEBTnbfqsAAW0p.lon_center$XAEBTnbfqsAAW0p.scale_factor$XAEBTnbfqsAAW0p.r_minor$XAEBTnbfqsAAW0p.r_major$XBEBTnbfqsAAW0p.tminvint.__func__tminvint$XBEBTnbgqsAAW1p.utmfor.__func__utmfor$XAEBTnbgqsAAW1p.ind$XAEBTnbgqsAAW1p.esp$XAEBTnbgqsAAW1p.ml0$XAEBTnbgqsAAW1p.e3$XAEBTnbgqsAAW1p.e2$XAEBTnbgqsAAW1p.e1$XAEBTnbgqsAAW1p.e0$XAEBTnbgqsAAW1p.es$XAEBTnbgqsAAW1p.false_northing$XAEBTnbgqsAAW1p.false_easting$XAEBTnbgqsAAW1p.lon_center$XAEBTnbgqsAAW1p.lat_origin$XAEBTnbgqsAAW1p.scale_factor$XAEBTnbgqsAAW1p.r_minor$XAEBTnbgqsAAW1p.r_major$XBEBTnbgqsAAW1p.utmforint.__func__utmforint$XBEBTnbhqsAAW2p.utminv.__func__utminv$XAEBTnbhqsAAW2p.ind$XAEBTnbhqsAAW2p.esp$XAEBTnbhqsAAW2p.ml0$XAEBTnbhqsAAW2p.e3$XAEBTnbhqsAAW2p.e2$XAEBTnbhqsAAW2p.e1$XAEBTnbhqsAAW2p.e0$XAEBTnbhqsAAW2p.es$XAEBTnbhqsAAW2p.false_northing$XAEBTnbhqsAAW2p.false_easting$XAEBTnbhqsAAW2p.lon_center$XAEBTnbhqsAAW2p.lat_origin$XAEBTnbhqsAAW2p.scale_factor$XAEBTnbhqsAAW2p.r_minor$XAEBTnbhqsAAW2p.r_major$XBEBTnbhqsAAW2p.utminvint.__func__utminvint$XBEBTnbiqsAAW3p.vandgfor.__func__vandgfor$XAEBTnbiqsAAW3p.false_northing$XAEBTnbiqsAAW3p.false_easting$XAEBTnbiqsAAW3p.lon_center$XAEBTnbiqsAAW3p.R$XBEBTnbiqsAAW3p.vandgforint.__func__vandgforint$XBEBTnbjqsAAW4p.vandginv.__func__vandginv$XAEBTnbjqsAAW4p.false_northing$XAEBTnbjqsAAW4p.false_easting$XAEBTnbjqsAAW4p.lon_center$XAEBTnbjqsAAW4p.R$XBEBTnbjqsAAW4p.vandginvint.__func__vandginvint$XBEBTnbkqsAAW5p.wivfor.__func__wivfor$XAEBTnbkqsAAW5p.false_northing$XAEBTnbkqsAAW5p.false_easting$XAEBTnbkqsAAW5p.lon_center$XAEBTnbkqsAAW5p.R$XBEBTnbkqsAAW5p.wivforint.__func__wivforint$XBEBTnblqsAAW6p.wivinv.__func__wivinv$XAEBTnblqsAAW6p.false_northing$XAEBTnblqsAAW6p.false_easting$XAEBTnblqsAAW6p.lon_center$XAEBTnblqsAAW6p.R$XBEBTnblqsAAW6p.wivinvint.__func__wivinvint$XBEBTnbmqsAAW7p.wviifor.__func__wviifor$XAEBTnbmqsAAW7p.false_northing$XAEBTnbmqsAAW7p.false_easting$XAEBTnbmqsAAW7p.lon_center$XAEBTnbmqsAAW7p.R$XBEBTnbmqsAAW7p.wviiforint.__func__wviiforint$XBEBTnboqsAAW8p.wviiinv.__func__wviiinv$XAEBTnboqsAAW8p.false_northing$XAEBTnboqsAAW8p.false_easting$XAEBTnboqsAAW8p.lon_center$XAEBTnboqsAAW8p.R$XBEBTnboqsAAW8p.wviiinvint.__func__wviiinvint$XBEBTnbpqsAAW9p.Isin_error.__func__$XBEBTnbpqsAAW9p.Isin_for_free.__func__$XBEBTnbpqsAAW9p.Isin_fwd.__func__Isin_fwd$XBEBTnbpqsAAW9p.isinusfor.__func__isinusfor$XBEBTnbpqsAAW9p.Isin_for_init.__func__Isin_for_initIsin_for_free$XBEBTnbpqsAAW9p.isinusforinit.__func__isinusforinit$XAEBTnbpqsAAW9p.isin$XAEBTnbpqsAAW9p.ISIN_BADKEY$XAEBTnbpqsAAW9p.ISIN_BADHANDLE$XAEBTnbpqsAAW9p.ISIN_BADPARAM$XAEBTnbpqsAAW9p.ISIN_BADALLOC$XBEBTnbpqsAAW9p.error.__func__$XBEBTnbqqsAAW_p.Isin_error.__func__$XBEBTnbqqsAAW_p.Isin_inv_free.__func__$XBEBTnbqqsAAW_p.Isin_inv.__func__Isin_inv$XBEBTnbqqsAAW_p.isinusinv.__func__isinusinv$XBEBTnbqqsAAW_p.Isin_inv_init.__func__Isin_inv_initIsin_inv_free$XBEBTnbqqsAAW_p.isinusinvinit.__func__isinusinvinit$XAEBTnbqqsAAW_p.isin$XAEBTnbqqsAAW_p.ISIN_BADKEY$XAEBTnbqqsAAW_p.ISIN_BADHANDLE$XAEBTnbqqsAAW_p.ISIN_BADPARAM$XAEBTnbqqsAAW_p.ISIN_BADALLOC$XBEBTnbqqsAAW_p.error.__func__$XBEBTnbsqsAAW$p.for_init.__func__for_init$XBEBTnbuqsAAmAq.inv_init.__func__inv_init$XBEBTnbwqsAAGCq.calc_utm_zone.__func__calc_utm_zone$XBEBTnbwqsAAGCq.mlfn.__func__mlfn$XBEBTnbwqsAAGCq.e4fn.__func__e4fn$XBEBTnbwqsAAGCq.e3fn.__func__e3fn$XBEBTnbwqsAAGCq.e2fn.__func__e2fn$XBEBTnbwqsAAGCq.e1fn.__func__e1fn$XBEBTnbwqsAAGCq.e0fn.__func__e0fn$XBEBTnbwqsAAGCq.adjust_lon.__func__adjust_lon$XBEBTnbwqsAAGCq.sign.__func__sign$XBEBTnbwqsAAGCq.tsfnz.__func__tsfnz$XBEBTnbwqsAAGCq.pakr2dm.__func__pakr2dm$XBEBTnbwqsAAGCq.pakcz.__func__pakcz$XBEBTnbwqsAAGCq.phi4z.__func__phi4z$XBEBTnbwqsAAGCq.phi3z.__func__phi3z$XBEBTnbwqsAAGCq.phi2z.__func__phi2z$XBEBTnbwqsAAGCq.phi1z.__func__phi1z$XBEBTnbwqsAAGCq.qsfnz.__func__qsfnz$XBEBTnbwqsAAGCq.msfnz.__func__msfnz$XBEBTnbwqsAAGCq.asinz.__func__asinz$XBEBTnbwqsAAGCq.tsincos.__func__tsincos$XBEBTnbyqsAAGDq.pblank.__func__pblank$XBEBTnbyqsAAGDq.genrpt_long.__func__genrpt_long$XBEBTnbyqsAAGDq.genrpt.__func__genrpt$XBEBTnbyqsAAGDq.offsetp.__func__offsetp$XBEBTnbyqsAAGDq.stparl1.__func__stparl1$XBEBTnbyqsAAGDq.stanparl.__func__stanparl$XBEBTnbyqsAAGDq.true_scale.__func__true_scale$XBEBTnbyqsAAGDq.origin.__func__origin$XBEBTnbyqsAAGDq.cenlat.__func__cenlat$XBEBTnbyqsAAGDq.cenlonmer.__func__cenlonmer$XBEBTnbyqsAAGDq.cenlon.__func__cenlon$XBEBTnbyqsAAGDq.radius2.__func__radius2$XBEBTnbyqsAAGDq.radius.__func__radius$XBEBTnbyqsAAGDq.ptitle.__func__ptitle$XAEBTnbyqsAAGDq.fptr_p$XBEBTnbyqsAAGDq.close_file.__func__close_file$XAEBTnbyqsAAGDq.parm_file$XAEBTnbyqsAAGDq.file_p$XAEBTnbyqsAAGDq.terminal_p$XBEBTnbyqsAAGDq.init.__func__init$XAEBTnbyqsAAGDq.err_file$XAEBTnbyqsAAGDq.fptr_e$XAEBTnbyqsAAGDq.file_e$XAEBTnbyqsAAGDq.terminal_e$XBEBTnbyqsAAGDq.p_error.__func__p_error$XBEBTnbzqsAAGEq.paksz.__func__paksz$XBEBTnb0qsAAGFq.sphdz.__func__sphdz$XAEBTnb0qsAAGFq.minor$XAEBTnb0qsAAGFq.major$XBEBTnb1qsAAGGq.untfz.__func__untfz$XAEBTnb1qsAAGGq.factors$XAEBTnb2qsAAGHq.for_trans$XAEBTnb2qsAAGHq.inv_trans$XAEBTnb2qsAAGHq.pdout$XAEBTnb2qsAAGHq.pdin$XAEBTnb2qsAAGHq.outzn$XAEBTnb2qsAAGHq.outdat$XAEBTnb2qsAAGHq.outpj$XAEBTnb2qsAAGHq.inzn$XAEBTnb2qsAAGHq.indat$XAEBTnb2qsAAGHq.inpj$XBEBTnb2qsAAGHq.gctp.__func__gctp$XAEBTnb2qsAAGHq.NADUT$XAEBTnb2qsAAGHq.iter$XBEBTnb4qsAAGIq.gctp_.__func__gctp_alberfor.o/ 1073924697 1032 20 100644 13096 ` ELF04(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ؅B;X@X!  !  @@@ '! $ $ ! $ $ !   !    ?! B?;X@X! $ $ ;XX@@?!   ;XX;XX;X@X?!   ;XX;XX;X@X?pؠ;XX@@!   ;XX;XX;X@X?!   ;XX;XX;X@X?hȠ;XX@@!   ;XX;XX;X@X?x؅;X@X! BBhp…! $ $ ! $ $ B!   p BB! $ $ !   ?`!   !   x B;X@X` @   ! $ $ ! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?;XX@@!   ;XX;XX;X@X?!   ?!   !   Ѕ B;X@X @   ?!   ?!   ;X@X @??;X@X @!   BT$ $ !   ??;X@X @!   BX$ $ 'Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA=|׽?alberforintalberforL d"d-8.8/<@X4$ C$L o        3 alberfor.c/ecs/hdfeos/gctp/src/alberfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbYpsAAG8o./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o alberfor.o alberfor.c -W0,-xp\$XAEBTnbYpsAAG8o.alberforint$XBEBTnbYpsAAG8o.alberforint.__func__alberfor$XBEBTnbYpsAAG8o.alberfor.__func__$XAEBTnbYpsAAG8o.false_northing$XAEBTnbYpsAAG8o.false_easting$XAEBTnbYpsAAG8o.lon_center$XAEBTnbYpsAAG8o.ns0$XAEBTnbYpsAAG8o.rh$XAEBTnbYpsAAG8o.e3$XAEBTnbYpsAAG8o.c$XAEBTnbYpsAAG8o.r_minor$XAEBTnbYpsAAG8o.r_majorU d"d-8.8/<@XӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z      ʠ ݠ|     " . 9 Dx Op Zh eD;|D<D=D>DADB DD DE DF4DG\DHtDJDKDMDNDP,DRLDSDUDWDYDZDD\D]D^Db8DcHDd|DeDfDgDi p, Dj $  TX4(7ANDy4DzTD{D|D}4D~tDY, D(!/\(!/=(!/|(!07.(!0_J(!0#f(!0L(!0 (!/$$$$*$I$g$$$$$$$.$A$Tbalberfor.c/ecs/hdfeos/gctp/src/alberfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbYpsAAG8o.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.halberforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)lon0:p(0,18)lat0:p(0,18)false_east:p(0,18)false_north:p(0,18)sin_po:(0,18)cos_po:(0,18)con:(0,18)es:(0,18)temp:(0,18)ms1:(0,18)ms2:(0,18)qs0:(0,18)qs1:(0,18)qs2:(0,18)alberfor.c$XBEBTnbYpsAAG8o.alberforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)alberfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sin_phi:(0,18)cos_phi:(0,18)qs:(0,18)theta:(0,18)rh1:(0,18)$XBEBTnbYpsAAG8o.alberfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbYpsAAG8o.false_northing:S(0,18)$XAEBTnbYpsAAG8o.false_easting:S(0,18)$XAEBTnbYpsAAG8o.lon_center:S(0,18)$XAEBTnbYpsAAG8o.ns0:S(0,18)$XAEBTnbYpsAAG8o.rh:S(0,18)$XAEBTnbYpsAAG8o.e3:S(0,18)$XAEBTnbYpsAAG8o.c:S(0,18)$XAEBTnbYpsAAG8o.r_minor:S(0,18)$XAEBTnbYpsAAG8o.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)qsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06alberfor.cBbss.bssDdata.dataDrodata.rodatacossinadjust_lon$XBEBTnbYpsAAG8o.alberfor.__func__alberforoffsetporigincenlonmerstanparlradius2ptitleqsfnzmsfnztsincossqrtp_errorfabs$XAEBTnbYpsAAG8o.rh$XAEBTnbYpsAAG8o.c$XAEBTnbYpsAAG8o.ns0$XAEBTnbYpsAAG8o.e3$XAEBTnbYpsAAG8o.r_minor$XAEBTnbYpsAAG8o.r_major$XAEBTnbYpsAAG8o.lon_center$XAEBTnbYpsAAG8o.false_northing$XAEBTnbYpsAAG8o.false_easting$XBEBTnbYpsAAG8o.alberforint.__func__alberforint H /37B e8nv}@80( .Gc            $ 4 8 D H T X l p       0T\ `     4< @ x |             8 < H PL PPX \ h l                 ( , @ D X |      4 (HjP%%u+x 7 hLF 0  QU_&9h'p)0 x+  alberinv.o/ 1073924697 1032 20 100644 14908 ` ELF74(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ؅B;X@X!  !  D@@ '! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ ;XX@@?!   ;XX;XX;X@X?!   ;XX;XX;X@X?xؠ;XX@@!   ;XX;XX;X@X?!   ;XX;XX;X@X?pȠ;XX@@!   ;XX;XX;X@X?؅;X@X! BBpx…! $ $ ! $ $ B!   x BB! $ $ !   ?h!   !    B;X@Xh @   ! $ $ ! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?'!   ?!   艡!   B?!   ! B腠BB;X@X?! ?B腠BB;X@X!?! ?! ?! B  B腡 B;XX;X@X?!    B!    ?!   ЅB!    ?!   ! l! ?!   ! B?!   B ;X@X @   ?;X@X! ?;X@X;X@X! !   ؠ;XX;XX@X$ $ Ā J'!  ! ! BX$ $  ! ! BX$ $ !   ؠ;XX;XX@X$ $ Ā '!    !   B;X@XT$ $ 'Equal latitudes for Standard Parallels on opposite sides of equatoralber-invinitALBERS CONICAL EQUAL-AREA=|׽??@ !TD-alberinvintalberinv` d"d-8.8/<@Y4$ C$L o        . G alberinv.c/ecs/hdfeos/gctp/src/alberinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbZpsAAG9o./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o alberinv.o alberinv.c -W0,-xp\$XAEBTnbZpsAAG9o.alberinvint$XBEBTnbZpsAAG9o.alberinvint.__func__alberinv$XBEBTnbZpsAAG9o.alberinv.__func__$XAEBTnbZpsAAG9o.false_northing$XAEBTnbZpsAAG9o.false_easting$XAEBTnbZpsAAG9o.lon_center$XAEBTnbZpsAAG9o.ns0$XAEBTnbZpsAAG9o.rh$XAEBTnbZpsAAG9o.es$XAEBTnbZpsAAG9o.e3$XAEBTnbZpsAAG9o.c$XAEBTnbZpsAAG9o.r_minor$XAEBTnbZpsAAG9o.r_major d"d-8.8/<@YӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z      ʠ ݠ|     $ / : Ex Pp [D?|D@DADBDEDF DH DI DJ4DK\DLDNDODQDR DTDDVdDWDYD[D],D^\D`DaDbDfPDg`DhDiDjDkDm f, Dn  $   TX4$/<D4D8DTDDDDDDD(DDDpDDDDDDD$08D8DTD|DDDDD@G, DPP(!/\(!/=(!/|(!0P(!0x8(!0(T(!0<p(!0e(!0(!/$$$/$E$^$}$$$$$$:$N$b$u$balberinv.c/ecs/hdfeos/gctp/src/alberinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbZpsAAG9o.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.halberinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)lon0:p(0,18)lat0:p(0,18)false_east:p(0,18)false_north:p(0,18)sin_po:(0,18)cos_po:(0,18)con:(0,18)temp:(0,18)ms1:(0,18)ms2:(0,18)qs0:(0,18)qs1:(0,18)qs2:(0,18)alberinv.c$XBEBTnbZpsAAG9o.alberinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)alberinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh1:(0,18)qs:(0,18)con:(0,18)theta:(0,18)flag:(0,4)$XBEBTnbZpsAAG9o.alberinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbZpsAAG9o.false_northing:S(0,18)$XAEBTnbZpsAAG9o.false_easting:S(0,18)$XAEBTnbZpsAAG9o.lon_center:S(0,18)$XAEBTnbZpsAAG9o.ns0:S(0,18)$XAEBTnbZpsAAG9o.rh:S(0,18)$XAEBTnbZpsAAG9o.es:S(0,18)$XAEBTnbZpsAAG9o.e3:S(0,18)$XAEBTnbZpsAAG9o.c:S(0,18)$XAEBTnbZpsAAG9o.r_minor:S(0,18)$XAEBTnbZpsAAG9o.r_major:S(0,18)phi1z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)qsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06alberinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonphi1zlogatan2$XBEBTnbZpsAAG9o.alberinv.__func__alberinvoffsetporigincenlonmerstanparlradius2ptitleqsfnzmsfnztsincossqrtp_errorfabs$XAEBTnbZpsAAG9o.rh$XAEBTnbZpsAAG9o.c$XAEBTnbZpsAAG9o.ns0$XAEBTnbZpsAAG9o.e3$XAEBTnbZpsAAG9o.es$XAEBTnbZpsAAG9o.r_minor$XAEBTnbZpsAAG9o.r_major$XAEBTnbZpsAAG9o.lon_center$XAEBTnbZpsAAG9o.false_northing$XAEBTnbZpsAAG9o.false_easting$XBEBTnbZpsAAG9o.alberinvint.__func__alberinvint P 8/:@DJD mP`v~H@8 0(1 Jc8 0" " ! !       $ 4 8 D H T X l p            Hlt x     0LT X               4P T ` Td Thp t     " " ! !  " "   ! !       $ L` d l p |            $ ( 4 8 L P X \ p t      ( , P     ( ( 0 0 ( (   P T d h |4   hP hn M% %+ ( 7 $`F  Q@_*h,xp.hP x0,  alconfor.o/ 1073924698 1032 20 100644 15360 ` ELF94(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! ! B! $ $ ! ! B! $ $  !$ ! ?;X@X! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4!   ?!   ;X@X @?%' B!   B#` ;X@X! ?! …B!   ` ;XX;X@X @;X@X` B B?! #`;XX@@! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?آ;XX@@!   ?H;X@XH @?%' B艡B#` ;X@X! ?@! …B!   ` ;XX;X@X@ @;X@X` B B?``Ȣ;XX@@!   ȍ B!    BЅ BB?! ! B? B؅ B?!   ȍ B!    BЅ B… B?B?XBBB?! , #`  ?! , #`  ?! , #`  ?! , #`  ?x 'TT! @?X BB?pxX BB?hT! @$! T$, #`   B?! T$, #`   B?xp?h?T 'TT! @# B?# B?xp?h? B BB!    B!   BT$ $  B BBxB!    B!   BX$ $ 'ALASKA CONFORMALc?FR5@P?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO@ !TD-?@?alconforintalconfor d"d-8.8/<@Z4$ C$L o        4 P l  alconfor.c/ecs/hdfeos/gctp/src/alconfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbapsAAG_o./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o alconfor.o alconfor.c -W0,-xp\$XAEBTnbapsAAG_o.alconforint$XBEBTnbapsAAG_o.alconforint.__func__alconfor$XBEBTnbapsAAG_o.alconfor.__func__$XAEBTnbapsAAG_o.n$XAEBTnbapsAAG_o.e$XAEBTnbapsAAG_o.cos_p26$XAEBTnbapsAAG_o.sin_p26$XAEBTnbapsAAG_o.bcoef$XAEBTnbapsAAG_o.acoef$XAEBTnbapsAAG_o.false_northing$XAEBTnbapsAAG_o.false_easting$XAEBTnbapsAAG_o.lat_center$XAEBTnbapsAAG_o.lon_center$XAEBTnbapsAAG_o.r_minor$XAEBTnbapsAAG_o.r_majorg d"d-8.8/<@ZӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ ^ l z L    ÄD=LD>`D?tD@DADBDCDEDFDHDI4DJLDKdDL|DMDNDODPDQDR DS$DU<DWxDX8D]`D^pD_D`DaDb , Dc  $ K W cT mX4 w      Ȁ р ڀ    xp!h,`7X@TD4D\D|DD`DDDDD@DLDdDDDDDD,DD\D\DDDDDD D8D@DHDDH, D(!/(!0(!0Z(!0A(8!0*6(8!0h(!/(!/v(!/(!/(!/] (!/DA$[$y$$$$$$$,$?$R$fbalconfor.c/ecs/hdfeos/gctp/src/alconfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbapsAAG_o.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.halconforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)false_east:p(0,18)false_north:p(0,18)es:(0,18)chi:(0,18)esphi:(0,18)alconfor.c$XBEBTnbapsAAG_o.alconforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)alconfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinlon:(0,18)coslon:(0,18)sinphi:(0,18)cosphi:(0,18)esphi:(0,18)g:(0,18)s:(0,18)xp:(0,18)yp:(0,18)ar:(0,18)ai:(0,18)br:(0,18)bi:(0,18)arn:(0,18)ain:(0,18)chi:(0,18)r:(0,18)j:(0,4)$XBEBTnbapsAAG_o.alconfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbapsAAG_o.n:S(0,4)$XAEBTnbapsAAG_o.e:S(0,18)$XAEBTnbapsAAG_o.cos_p26:S(0,18)$XAEBTnbapsAAG_o.sin_p26:S(0,18)$XAEBTnbapsAAG_o.bcoef:S(0,26)=ar(0,4);0;6;(0,18)$XAEBTnbapsAAG_o.acoef:S(0,27)=ar(0,4);0;6;(0,18)$XAEBTnbapsAAG_o.false_northing:S(0,18)$XAEBTnbapsAAG_o.false_easting:S(0,18)$XAEBTnbapsAAG_o.lat_center:S(0,18)$XAEBTnbapsAAG_o.lon_center:S(0,18)$XAEBTnbapsAAG_o.r_minor:S(0,18)$XAEBTnbapsAAG_o.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06alconfor.cBbss.bssDdata.dataDrodata.rodataadjust_lon$XBEBTnbapsAAG_o.alconfor.__func__alconforoffsetpcenlatcenlonradius2ptitletsincospowtanatansinsqrt$XAEBTnbapsAAG_o.cos_p26$XAEBTnbapsAAG_o.sin_p26$XAEBTnbapsAAG_o.bcoef$XAEBTnbapsAAG_o.acoef$XAEBTnbapsAAG_o.e$XAEBTnbapsAAG_o.n$XAEBTnbapsAAG_o.lat_center$XAEBTnbapsAAG_o.lon_center$XAEBTnbapsAAG_o.false_northing$XAEBTnbapsAAG_o.false_easting$XAEBTnbapsAAG_o.r_minor$XAEBTnbapsAAG_o.r_major$XBEBTnbapsAAG_o.alconforint.__func__alconforint  /: ]Pfnu|x8@8 80/(K g 0` d t x                        , 0 4 8 D (H (L P \ 0` 0d h t 8x 8|   @ @   H H   P P   X X   ` `   h h    p  p$ ( 4 x8 x< @ L P ` d t             $, 4 8 L P T X hp t x                          (< @ T X d x           L P d h                $ , 0 P T           D H       ( , 4  h   8% +  7 F t  Qg_*h,% p.00 x0` H  alconinv.o/ 1073924699 1032 20 100644 18188 ` ELFD4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! ! B! $ $ ! ! B! $ $  !$ ! ?;X@X! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4!   ?!   ;X@X @?%' B!   B#` ;X@X! ?! …B!   ` ;XX;X@X @;X@X` B B?! #`;XX@@! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'h'X'T'P'L'H'DDH?LP?!   !    ?!   !    ??H?@'HB?HB@BB?! , #`  ?! , #`  ?! , #`  ?! , #`  ?! '܉ B?! '܉ B?! $ '܉ȅ B?! $ '܉ B? '! @{ BB? BB?! @`! $, #`   B?! $, #`   B??? BB?x BB?p%$'܉$, #`   B B?%$'܉$, #`   B B?x?p? '! @Ћ# B?Ћ# B???H B@ BȉB?h@ BH BBB腡?`H B@ BB?X@ BHFBF?PXBPBB?8hX B`P BB#8 ?0`X BhP B‹#8 ?(H0B?H@(B?@0;X@X! ?(;X@XЅ@?  '  !  @@ ' !  HB@BB;X@X?! ;X@X B?;XX@@!   T$ $ ;X@X!  !   X$ $ '!    B@ B!    B …B;X@X?'?!   ?;X@XЅ @?%' BB#` ;X@X! ?! B!   ` ;XX;X@Xȅ @;X@X` B B腡?B? '  !  @@ 9';X@X!  X$ $ !   ?HF!    B B@!    BF;XX;X@XЅ@;X@XT$ $ 'ALASKA CONFORMALToo many iterations in inversealcon-invToo many iterations in inversealcon-invc?FR5@P?{s^?15,1?uULb!?}YzŘj;= ?sպ?szKfs <7?s$ܙɿȼNnܿXSvO@ !TD-?@?=|׽alconinvintalconinv d"d-8.8/<@[4$ D$M p        5 Q m  alconinv.c/ecs/hdfeos/gctp/src/alconinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbapsAAG$o./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o alconinv.o alconinv.c -W0,-xp\$XAEBTnbapsAAG\$o.alconinvint$XBEBTnbapsAAG$o.alconinvint.__func__alconinv$XBEBTnbapsAAG$o.alconinv.__func__$XAEBTnbapsAAG$o.n$XAEBTnbapsAAG$o.e$XAEBTnbapsAAG$o.cos_p26$XAEBTnbapsAAG$o.sin_p26$XAEBTnbapsAAG$o.bcoef$XAEBTnbapsAAG$o.acoef$XAEBTnbapsAAG$o.false_northing$XAEBTnbapsAAG$o.false_easting$XAEBTnbapsAAG$o.lat_center$XAEBTnbapsAAG$o.lon_center$XAEBTnbapsAAG$o.r_minor$XAEBTnbapsAAG$o.r_major"c d"d-8.8/<@[Ӏ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ ^ l z L    ÄD=LD>`D?tD@DADBDCDEDFDHDI4DJLDKdDL|DMDNDODPDQDR DS$DT<DVxDW8D\`D]pD^D_D`Da , Db  $ K U _T kX4 w        Ȁ Ҁ ܀   xph`*X7PDHN@X8c0n(y ŀЀ؀D4DdDDDDDDDDD8D\D|DDDDDD4LDLDDDDDDD\DDDDDDD D(DXDDDDDDLD\DlDDDDDDD$DLDlDDDDD(D,4D4DdD D0D<LDLDdppDpDDD <, D L L&(!/@(!0[(!0Z|(!0A(8!0*(8!0(!/)(!/vP(!/t(!/(!/](!/D$$ $'$=$S$q$$$$$$ $$2$N$bbalconinv.c/ecs/hdfeos/gctp/src/alconinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbapsAAG$o.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.halconinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)false_east:p(0,18)false_north:p(0,18)es:(0,18)chi:(0,18)esphi:(0,18)alconinv.c$XBEBTnbapsAAG$o.alconinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)alconinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)esphi:(0,18)r:(0,18)s:(0,18)br:(0,18)bi:(0,18)ai:(0,18)ar:(0,18)ci:(0,18)cr:(0,18)di:(0,18)dr:(0,18)arn:(0,18)ain:(0,18)crn:(0,18)cin:(0,18)fxyr:(0,18)fxyi:(0,18)fpxyr:(0,18)fpxyi:(0,18)xp:(0,18)yp:(0,18)den:(0,18)dxp:(0,18)dyp:(0,18)ds:(0,18)z:(0,18)cosz:(0,18)sinz:(0,18)rh:(0,18)chi:(0,18)dphi:(0,18)phi:(0,18)j:(0,4)nn:(0,4)$XBEBTnbapsAAG$o.alconinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbapsAAG$o.n:S(0,4)$XAEBTnbapsAAG$o.e:S(0,18)$XAEBTnbapsAAG$o.cos_p26:S(0,18)$XAEBTnbapsAAG$o.sin_p26:S(0,18)$XAEBTnbapsAAG$o.bcoef:S(0,26)=ar(0,4);0;6;(0,18)$XAEBTnbapsAAG$o.acoef:S(0,27)=ar(0,4);0;6;(0,18)$XAEBTnbapsAAG$o.false_northing:S(0,18)$XAEBTnbapsAAG$o.false_easting:S(0,18)$XAEBTnbapsAAG$o.lat_center:S(0,18)$XAEBTnbapsAAG$o.lon_center:S(0,18)$XAEBTnbapsAAG$o.r_minor:S(0,18)$XAEBTnbapsAAG$o.r_major:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06alconinv.cBbss.bssDdata.dataDrodata.rodataatan2adjust_lonasinzp_errorfabs$XBEBTnbapsAAG$o.alconinv.__func__alconinvoffsetpcenlatcenlonradius2ptitletsincospowtanatansinsqrt$XAEBTnbapsAAG$o.cos_p26$XAEBTnbapsAAG$o.sin_p26$XAEBTnbapsAAG$o.bcoef$XAEBTnbapsAAG$o.acoef$XAEBTnbapsAAG$o.e$XAEBTnbapsAAG$o.n$XAEBTnbapsAAG$o.lat_center$XAEBTnbapsAAG$o.lon_center$XAEBTnbapsAAG$o.false_northing$XAEBTnbapsAAG$o.false_easting$XAEBTnbapsAAG$o.r_minor$XAEBTnbapsAAG$o.r_major$XBEBTnbapsAAG$o.alconinvint.__func__alconinvint  /5@FNS vP \x8 @8"850H(d  0`$ d$ t# x# " " ! !                   , 0 4 8 D (H (L P \ 0` 0d h t 8x 8|   @ @   H H   P P   X X   ` `   h h    p  p$ ( 4 x8 x< @ L P ` d t             $, 4 8 L P T X hp t x$ $ # #     " " ! ! " " $ $ ! ! $ $    ( , @ D L P d h p t             @ D           T X p        $ (        8 < h x |         ( , H L l                 0 D L T X  @  @       < @ d x4  hhj%+ 7FL  Q c_3Sh4#p7p x9 (  azimfor.o/ 1073924700 1032 20 100644 11616 ` ELF*4(.shstrtab.text.bss.data1.rodata1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?;XX@@;X@X?!    B!   ؉ Bȅ BB?;X@X! B;X@X! .! ?! "! ! B! B!    B?X#`@;X@XX#`@@ {L';X@X??P;X@XP ?!   ?@!    Bؽ B?H;X@XH @@BT$ $ !   !    B!    B!   ؉ Bȅ B… BBX$ $ 'AZIMUTHAL EQUIDISTANTazim-forPoint projects into a circle of radius = %12.2lf=|׽?@ !TD-?@azimforintazimfor) d!d+8,8-<@\4 $ =$E g       azimfor.c/ecs/hdfeos/gctp/src/azimfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbbpsAAGAp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o azimfor.o azimfor.c -W0,-xp\$XAEBTnbbpsAAGAp.azimforint$XBEBTnbbpsAAGAp.azimforint.__func__azimfor$XBEBTnbbpsAAGAp.azimfor.__func__$XAEBTnbbpsAAGAp.cos_p12$XAEBTnbbpsAAGAp.sin_p12$XAEBTnbbpsAAGAp.false_easting$XAEBTnbbpsAAGAp.false_northing$XAEBTnbbpsAAGAp.lat_origin$XAEBTnbbpsAAGAp.lon_center$XAEBTnbbpsAAGAp.r_major| d!d+8,8-<@\р=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B N ZT dX4 n |      À ̀PXDV4DW\DX|DYDZD\D]8D_8D`pDaDbDgDhDjDlXDm , Dn/(!/P(!/q(!/(!/w(!/[(!/?(!/&)$C$a$w$$$$$$$&$9$M${bazimfor.c/ecs/hdfeos/gctp/src/azimfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbbpsAAGAp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hazimforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)azimfor.c$XBEBTnbbpsAAGAp.azimforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)azimfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sinphi:(0,18)cosphi:(0,18)dlon:(0,18)coslon:(0,18)ksp:(0,18)g:(0,18)con:(0,18)z:(0,18)mess:(0,24)=ar(0,4);0;79;(0,1)$XBEBTnbbpsAAGAp.azimfor.__func__:V(0,25)=ar(0,4);0;7;(0,26)=k(0,1)$XAEBTnbbpsAAGAp.cos_p12:S(0,18)$XAEBTnbbpsAAGAp.sin_p12:S(0,18)$XAEBTnbbpsAAGAp.false_easting:S(0,18)$XAEBTnbbpsAAGAp.false_northing:S(0,18)$XAEBTnbbpsAAGAp.lat_origin:S(0,18)$XAEBTnbbpsAAGAp.lon_center:S(0,18)$XAEBTnbbpsAAGAp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)acos:P(0,18);(0,18)sprintf:P(0,3);(10,3);(0,27)=*(0,28)=k(0,1);0@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06azimfor.cBbss.bssDdata.dataDrodata.rodatasinacosp_errorsprintffabscosadjust_lon$XBEBTnbbpsAAGAp.azimfor.__func__azimforoffsetporigincenlonmerradiusptitletsincos$XAEBTnbbpsAAGAp.cos_p12$XAEBTnbbpsAAGAp.sin_p12$XAEBTnbbpsAAGAp.false_easting$XAEBTnbbpsAAGAp.false_northing$XAEBTnbbpsAAGAp.lat_origin$XAEBTnbbpsAAGAp.lon_center$XAEBTnbbpsAAGAp.r_major$XBEBTnbbpsAAGAp.azimforint.__func__azimforint 88.27?GLP[C}0( %A]v8 l p                   $ 4< @ PX \ h l   4D P T h l              ( (  0 0  4 8 L X \ d        ( , @ D X \ 4 p8p!1&K.4  @)O @  ZX|h!q#zy%  '  aziminv.o/ 1073924701 1032 20 100644 12152 ` ELF- 4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?! ! B! B!    B !  @@ }'!    ?ؠТ;XX@@!   T$ $ ;X@X!  !   X$ $ '!    BЉ B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ b'!   ?;XX;X@X;X@XT$ $ K'?!   ?X  ;X@X @?;X@X! ;X@X! #'!   ?Љ B!    B B;XX;X@X@;X@XT$ $ 'AZIMUTHAL EQUIDISTANTInput data errorazim-inv@ !TD-?@=|׽aziminvintaziminv) d!d+8,8-<@\4 $ =$E g       aziminv.c/ecs/hdfeos/gctp/src/aziminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbcpsAAGBp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o aziminv.o aziminv.c -W0,-xp\$XAEBTnbcpsAAGBp.aziminvint$XBEBTnbcpsAAGBp.aziminvint.__func__aziminv$XBEBTnbcpsAAGBp.aziminv.__func__$XAEBTnbcpsAAGBp.cos_p12$XAEBTnbcpsAAGBp.sin_p12$XAEBTnbcpsAAGBp.false_easting$XAEBTnbcpsAAGBp.false_northing$XAEBTnbcpsAAGBp.lat_origin$XAEBTnbcpsAAGBp.lon_center$XAEBTnbcpsAAGBp.r_major% d!d+8,8-<@\р=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B L VT bX4 n x   DR4DSPDTlDUDWDXDZD[D\8D]T|D_|D`DbDcDd4\Df\DhDiDmDn4<<Dq<DrDsDtDvP , Dw`` (!/ (!/*(!/Q(!/wy(!/[(!/?(!/&$$$/$E$^$t$$$$$$$$baziminv.c/ecs/hdfeos/gctp/src/aziminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbcpsAAGBp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.haziminvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)aziminv.c$XBEBTnbcpsAAGBp.aziminvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)aziminv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)con:(0,18)$XBEBTnbcpsAAGBp.aziminv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbcpsAAGBp.cos_p12:S(0,18)$XAEBTnbcpsAAGBp.sin_p12:S(0,18)$XAEBTnbcpsAAGBp.false_easting:S(0,18)$XAEBTnbcpsAAGBp.false_northing:S(0,18)$XAEBTnbcpsAAGBp.lat_origin:S(0,18)$XAEBTnbcpsAAGBp.lon_center:S(0,18)$XAEBTnbcpsAAGBp.r_major:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06aziminv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonasinzfabsp_errorsqrt$XBEBTnbcpsAAGBp.aziminv.__func__aziminvoffsetporigincenlonmerradiusptitletsincos$XAEBTnbcpsAAGBp.cos_p12$XAEBTnbcpsAAGBp.sin_p12$XAEBTnbcpsAAGBp.false_easting$XAEBTnbcpsAAGBp.false_northing$XAEBTnbcpsAAGBp.lat_origin$XAEBTnbcpsAAGBp.lon_center$XAEBTnbcpsAAGBp.r_major$XBEBTnbcpsAAGBp.aziminvint.__func__aziminvint 8(.28CINV[3}p0( %A]v( l p                   $ 4< @ PX \ h l     D T X \ ` h l t x         $ ( < @ d h                 , 0 D H p      (L T X t |       4 085 ;%[+\ 74)F `  Q %_#1h$p& x(p  bceafor.o/ 1073924701 1032 20 100644 12444 ` ELF.D4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textX'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   !  !$ !$ !   ;X@X! $ $ !   ;X@X! $ $ !   ?! !   !   DD;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'X'X'T'P'L'H'DDH?LP?!   ;X@X?;X@X?! *!   !    B!    BBT$ $ !   !   ؉ B!    …BX$ $ P! !   ?؅DD½ ?!   ! B ?ȅD…B ;X@Xȅ @ B?!   !   !    B BBT$ $ !   !   Ѝ B!   ! B…BX$ $ 'Cylinderical Equal Area?>h@bceaforintbceafor d!d+8,8-<@]4 $ =$E g |       9 M ` y bceafor.c/ecs/hdfeos/gctp/src/bceafor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbdpsAAWCp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o bceafor.o bceafor.c -W0,-xp\$XAEBTnbdpsAAWCp.bceaforint$XBEBTnbdpsAAWCp.bceaforint.__func__bceafor$XBEBTnbdpsAAWCp.bceafor.__func__$XAEBTnbdpsAAWCp.ind$XAEBTnbdpsAAWCp.kz$XAEBTnbdpsAAWCp.sinphi1$XAEBTnbdpsAAWCp.cosphi1$XAEBTnbdpsAAWCp.false_easting$XAEBTnbdpsAAWCp.false_northing$XAEBTnbdpsAAWCp.lat_truesc$XAEBTnbdpsAAWCp.lon_center$XAEBTnbdpsAAWCp.es$XAEBTnbdpsAAWCp.e$XAEBTnbdpsAAWCp.r_minor$XAEBTnbdpsAAWCp.r_majorm d!d+8,8-<@]р=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ i w    d Ҁ ބD>dD?xD@DADBDCDEDFDG(DIT|DK|DODRDSDTDX\DYlDZD[D\D] , D^ 0$ c o {T X4   Do4Dp\DrpDtDu$D{$D|D}\D\ , Dll (!0(!0N.(!05O(!0p(!/(!/(!/(!/i(!/#(!/>(!/P_(!/7$$$$$ $$3$F$Y$lbbceafor.c/ecs/hdfeos/gctp/src/bceafor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbdpsAAWCp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hbceaforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)bceafor.c$XBEBTnbdpsAAWCp.bceaforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)bceafor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinphi:(0,18)q:(0,18)$XBEBTnbdpsAAWCp.bceafor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbdpsAAWCp.ind:S(0,4)$XAEBTnbdpsAAWCp.kz:S(0,18)$XAEBTnbdpsAAWCp.sinphi1:S(0,18)$XAEBTnbdpsAAWCp.cosphi1:S(0,18)$XAEBTnbdpsAAWCp.false_easting:S(0,18)$XAEBTnbdpsAAWCp.false_northing:S(0,18)$XAEBTnbdpsAAWCp.lat_truesc:S(0,18)$XAEBTnbdpsAAWCp.lon_center:S(0,18)$XAEBTnbdpsAAWCp.es:S(0,18)$XAEBTnbdpsAAWCp.e:S(0,18)$XAEBTnbdpsAAWCp.r_minor:S(0,18)$XAEBTnbdpsAAWCp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)true_scale:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06bceafor.cBbss.bssDdata.dataDrodata.rodatalogadjust_lon$XBEBTnbdpsAAWCp.bceafor.__func__bceaforoffsetptrue_scalecenlonmerradius2ptitlesincossqrt$XAEBTnbdpsAAWCp.kz$XAEBTnbdpsAAWCp.sinphi1$XAEBTnbdpsAAWCp.cosphi1$XAEBTnbdpsAAWCp.ind$XAEBTnbdpsAAWCp.e$XAEBTnbdpsAAWCp.es$XAEBTnbdpsAAWCp.false_easting$XAEBTnbdpsAAWCp.false_northing$XAEBTnbdpsAAWCp.lat_truesc$XAEBTnbdpsAAWCp.lon_center$XAEBTnbdpsAAWCp.r_minor$XAEBTnbdpsAAWCp.r_major$XBEBTnbdpsAAWCp.bceaforint.__func__bceaforint `.2=#_P|gozXPH@80"(A a} ,x |                 ( , 8 < LT X d h t x                    , 0 L\ ` l p t|                           $ 0 4 H L t x |           ( , T X d h |    4 `+%+ 7F tX  Qm_#9h$p& x(X  bceainv.o/ 1073924702 1032 20 100644 14108 ` ELF44(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   B! $ $ !   !    B! $ $ !   !   !$ ! ! $ $ )!$ ! !   ??>?!   ! B?ąD ;X@X @ B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?! !   !   DD;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'P'X'T'P'L'H'DDH?LP?!   ?!   ?! +!    B!    ;X@XX$ $ !   !   !    B…B;X@XT$ $ ! B!    B!   !    B;X@X??!   ! ! ! #``` BB! ! % BB?! Ѕ B;X@X؅ @нB?! ! `` B! !  BB?! B;X@Xȅ @B?! !  B?! B;X@X @BX$ $ !   !   !    B…B;X@XT$ $ 'Cylinderical Equal Area?>h@@@?@f@(@@7@v@o`@@@@&@bceainvintbceainv d!d+8,8-<@^4 $ =$E g |       1 M c y    bceainv.c/ecs/hdfeos/gctp/src/bceainv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbepsAAWDp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o bceainv.o bceainv.c -W0,-xp\$XAEBTnbepsAAWDp.bceainvint$XBEBTnbepsAAWDp.bceainvint.__func__bceainv$XBEBTnbepsAAWDp.bceainv.__func__$XAEBTnbepsAAWDp.ind$XAEBTnbepsAAWDp.qp$XAEBTnbepsAAWDp.kz$XAEBTnbepsAAWDp.sinphi1$XAEBTnbepsAAWDp.cosphi1$XAEBTnbepsAAWDp.false_easting$XAEBTnbepsAAWDp.false_northing$XAEBTnbepsAAWDp.lat_truesc$XAEBTnbepsAAWDp.lon_center$XAEBTnbepsAAWDp.e_p6$XAEBTnbepsAAWDp.e_p4$XAEBTnbepsAAWDp.es$XAEBTnbepsAAWDp.e$XAEBTnbepsAAWDp.r_minor$XAEBTnbepsAAWDp.r_major d!d+8,8-<@^р=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ i w    d Ҁ ބDAdDBxDCDDDEDFDIDJDK(DLTDMxDODQDRDVDWDZD[D\D``DapDbDcDdDe , Df  0$ c m wT X4 Du4DvPDxlDzD|$D$DD\D\ , Dll (!0@ (!0U(!03(!0T(!0iu(!/(!/(!/(!/v (!0**(!0H(!/d(!0(!/](!/D$$$$,$J$`$t$$$$bbceainv.c/ecs/hdfeos/gctp/src/bceainv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbepsAAWDp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hbceainvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)bceainv.c$XBEBTnbepsAAWDp.bceainvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)bceainv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)beta:(0,18)$XBEBTnbepsAAWDp.bceainv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbepsAAWDp.ind:S(0,4)$XAEBTnbepsAAWDp.qp:S(0,18)$XAEBTnbepsAAWDp.kz:S(0,18)$XAEBTnbepsAAWDp.sinphi1:S(0,18)$XAEBTnbepsAAWDp.cosphi1:S(0,18)$XAEBTnbepsAAWDp.false_easting:S(0,18)$XAEBTnbepsAAWDp.false_northing:S(0,18)$XAEBTnbepsAAWDp.lat_truesc:S(0,18)$XAEBTnbepsAAWDp.lon_center:S(0,18)$XAEBTnbepsAAWDp.e_p6:S(0,18)$XAEBTnbepsAAWDp.e_p4:S(0,18)$XAEBTnbepsAAWDp.es:S(0,18)$XAEBTnbepsAAWDp.e:S(0,18)$XAEBTnbepsAAWDp.r_minor:S(0,18)$XAEBTnbepsAAWDp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)true_scale:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06bceainv.cBbss.bssDdata.dataDrodata.rodataadjust_lonasin$XBEBTnbepsAAWDp.bceainv.__func__bceainvoffsetptrue_scalecenlonmerradius2ptitlesincoslogsqrt$XAEBTnbepsAAWDp.kz$XAEBTnbepsAAWDp.sinphi1$XAEBTnbepsAAWDp.cosphi1$XAEBTnbepsAAWDp.qp$XAEBTnbepsAAWDp.ind$XAEBTnbepsAAWDp.e_p6$XAEBTnbepsAAWDp.e_p4$XAEBTnbepsAAWDp.e$XAEBTnbepsAAWDp.es$XAEBTnbepsAAWDp.false_easting$XAEBTnbepsAAWDp.false_northing$XAEBTnbepsAAWDp.lat_truesc$XAEBTnbepsAAWDp.lon_center$XAEBTnbepsAAWDp.r_minor$XAEBTnbepsAAWDp.r_major$XBEBTnbepsAAWDp.bceainvint.__func__bceainvint x.9>`P|hp{ph`XPH*@@8S0g(  50x" |" ! !       ! ! " "   ( , 8 < LT X d h x |                       $ H L X \ |                $ 0 4 P` d p t x" " ! !                    " "   (" ," 8 < Xx |   " "          ( (     0$ 0( 8, 84 8 P T d @ @ H H P P X X ` ` h h p p  x$ x0T X h" l" x | 4 x% 3+ 48 7 lF @  Q_&h(H@p*P x,  ceafor.o/ 1073924703 1032 20 100644 12424 ` ELF.04(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textX'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   !  !$ !$ !   ;X@X! $ $ !   ;X@X! $ $ !   ?! !   !   DD;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'X'X'T'P'L'H'DDH?LP?!   ;X@X?;X@X?! *!   !    B!    BBT$ $ !   !   ؉ B!    …BX$ $ P! !   ?؅DD½ ?!   ! B ?ȅD…B ;X@Xȅ @ B?!   !   !    B BBT$ $ !   !   Ѝ B!   ! B…BX$ $ 'Cylinderical Equal Area?>h@ceaforintceafor d d)8*8+<@_4 $ 7$> _ t       1 E X q ceafor.c/ecs/hdfeos/gctp/src/ceafor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfpsAAWEp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o ceafor.o ceafor.c -W0,-xp\$XAEBTnbfpsAAWEp.ceaforint$XBEBTnbfpsAAWEp.ceaforint.__func__ceafor$XBEBTnbfpsAAWEp.ceafor.__func__$XAEBTnbfpsAAWEp.ind$XAEBTnbfpsAAWEp.kz$XAEBTnbfpsAAWEp.sinphi1$XAEBTnbfpsAAWEp.cosphi1$XAEBTnbfpsAAWEp.false_easting$XAEBTnbfpsAAWEp.false_northing$XAEBTnbfpsAAWEp.lat_truesc$XAEBTnbfpsAAWEp.lon_center$XAEBTnbfpsAAWEp.es$XAEBTnbfpsAAWEp.e$XAEBTnbfpsAAWEp.r_minor$XAEBTnbfpsAAWEp.r_majore d d)8*8+<@_π;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ f t    d π ۄD=dD>xD?D@DADBDDDEDF(DHT|DJ|DNDQDRDSDW\DXlDYDZD[D\ , D] *$ \ h tT ~X4   Dn4Do\DqpDsDt$Dz$D{D|\D\ , Dll (!/ (!/&(!/G(!/h(!/X(!/8(!/(!/(!/w(!/6(!.W(!.x$$$$$$$+$>$Q$dbceafor.c/ecs/hdfeos/gctp/src/ceafor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfpsAAWEp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hceaforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)ceafor.c$XBEBTnbfpsAAWEp.ceaforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)ceafor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinphi:(0,18)q:(0,18)$XBEBTnbfpsAAWEp.ceafor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbfpsAAWEp.ind:S(0,4)$XAEBTnbfpsAAWEp.kz:S(0,18)$XAEBTnbfpsAAWEp.sinphi1:S(0,18)$XAEBTnbfpsAAWEp.cosphi1:S(0,18)$XAEBTnbfpsAAWEp.false_easting:S(0,18)$XAEBTnbfpsAAWEp.false_northing:S(0,18)$XAEBTnbfpsAAWEp.lat_truesc:S(0,18)$XAEBTnbfpsAAWEp.lon_center:S(0,18)$XAEBTnbfpsAAWEp.es:S(0,18)$XAEBTnbfpsAAWEp.e:S(0,18)$XAEBTnbfpsAAWEp.r_minor:S(0,18)$XAEBTnbfpsAAWEp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)true_scale:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06ceafor.cBbss.bssDdata.dataDrodata.rodatalogadjust_lon$XBEBTnbfpsAAWEp.ceafor.__func__ceaforoffsetptrue_scalecenlonmerradius2ptitlesincossqrt$XAEBTnbfpsAAWEp.kz$XAEBTnbfpsAAWEp.sinphi1$XAEBTnbfpsAAWEp.cosphi1$XAEBTnbfpsAAWEp.ind$XAEBTnbfpsAAWEp.e$XAEBTnbfpsAAWEp.es$XAEBTnbfpsAAWEp.false_easting$XAEBTnbfpsAAWEp.false_northing$XAEBTnbfpsAAWEp.lat_truesc$XAEBTnbfpsAAWEp.lon_center$XAEBTnbfpsAAWEp.r_minor$XAEBTnbfpsAAWEp.r_major$XBEBTnbfpsAAWEp.ceaforint.__func__ceaforint `-1<"]P|dlwXPH@8 0(> ^z ,x |                 ( , 8 < LT X d h t x                    , 0 L\ ` l p t|                           $ 0 4 H L t x |           ( , T X d h |    4 `)%+ 7F lX  Qe_#)h$p& x(X  ceainv.o/ 1073924705 1032 20 100644 14088 ` ELF44(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   B! $ $ !   !    B! $ $ !   !   !$ ! ! $ $ )!$ ! !   ??>?!   ! B?ąD ;X@X @ B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?! !   !   DD;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'P'X'T'P'L'H'DDH?LP?!   ?!   ?! +!    B!    ;X@XX$ $ !   !   !    B…B;X@XT$ $ ! B!    B!   !    B;X@X??!   ! ! ! #``` BB! ! % BB?! Ѕ B;X@X؅ @нB?! ! `` B! !  BB?! B;X@Xȅ @B?! !  B?! B;X@X @BX$ $ !   !   !    B…B;X@XT$ $ 'Cylinderical Equal Area?>h@@@?@f@(@@7@v@o`@@@@&@ceainvintceainv d d)8*8+<@`4 $ 7$> _ t       ) E [ q    ceainv.c/ecs/hdfeos/gctp/src/ceainv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfpsAAWFp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o ceainv.o ceainv.c -W0,-xp\$XAEBTnbfpsAAWFp.ceainvint$XBEBTnbfpsAAWFp.ceainvint.__func__ceainv$XBEBTnbfpsAAWFp.ceainv.__func__$XAEBTnbfpsAAWFp.ind$XAEBTnbfpsAAWFp.qp$XAEBTnbfpsAAWFp.kz$XAEBTnbfpsAAWFp.sinphi1$XAEBTnbfpsAAWFp.cosphi1$XAEBTnbfpsAAWFp.false_easting$XAEBTnbfpsAAWFp.false_northing$XAEBTnbfpsAAWFp.lat_truesc$XAEBTnbfpsAAWFp.lon_center$XAEBTnbfpsAAWFp.e_p6$XAEBTnbfpsAAWFp.e_p4$XAEBTnbfpsAAWFp.es$XAEBTnbfpsAAWFp.e$XAEBTnbfpsAAWFp.r_minor$XAEBTnbfpsAAWFp.r_major d d)8*8+<@`π;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ f t    d π ۄD@dDAxDBDCDDDEDGDHDI(DJTDKxDMDODPDTDUDXDYDZD^`D_pD`DaDbDc , Dd  *$ \ f pT |X4 Ds4DtPDvlDxDz$D~$DD\D\ , Dll (!/ (!/(!02+(!0L(!0m(!/e(!/E(!/)(!/ (!/"(!/@(!/\(!/w(!.(!.$$$ $$$B$X$l$$$$bceainv.c/ecs/hdfeos/gctp/src/ceainv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfpsAAWFp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hceainvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)ceainv.c$XBEBTnbfpsAAWFp.ceainvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)ceainv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)beta:(0,18)$XBEBTnbfpsAAWFp.ceainv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbfpsAAWFp.ind:S(0,4)$XAEBTnbfpsAAWFp.qp:S(0,18)$XAEBTnbfpsAAWFp.kz:S(0,18)$XAEBTnbfpsAAWFp.sinphi1:S(0,18)$XAEBTnbfpsAAWFp.cosphi1:S(0,18)$XAEBTnbfpsAAWFp.false_easting:S(0,18)$XAEBTnbfpsAAWFp.false_northing:S(0,18)$XAEBTnbfpsAAWFp.lat_truesc:S(0,18)$XAEBTnbfpsAAWFp.lon_center:S(0,18)$XAEBTnbfpsAAWFp.e_p6:S(0,18)$XAEBTnbfpsAAWFp.e_p4:S(0,18)$XAEBTnbfpsAAWFp.es:S(0,18)$XAEBTnbfpsAAWFp.e:S(0,18)$XAEBTnbfpsAAWFp.r_minor:S(0,18)$XAEBTnbfpsAAWFp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)true_scale:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06ceainv.cBbss.bssDdata.dataDrodata.rodataadjust_lonasin$XBEBTnbfpsAAWFp.ceainv.__func__ceainvoffsetptrue_scalecenlonmerradius2ptitlesincoslogsqrt$XAEBTnbfpsAAWFp.kz$XAEBTnbfpsAAWFp.sinphi1$XAEBTnbfpsAAWFp.cosphi1$XAEBTnbfpsAAWFp.qp$XAEBTnbfpsAAWFp.ind$XAEBTnbfpsAAWFp.e_p6$XAEBTnbfpsAAWFp.e_p4$XAEBTnbfpsAAWFp.e$XAEBTnbfpsAAWFp.es$XAEBTnbfpsAAWFp.false_easting$XAEBTnbfpsAAWFp.false_northing$XAEBTnbfpsAAWFp.lat_truesc$XAEBTnbfpsAAWFp.lon_center$XAEBTnbfpsAAWFp.r_minor$XAEBTnbfpsAAWFp.r_major$XBEBTnbfpsAAWFp.ceainvint.__func__ceainvint x-8=^P|emxph`XPH'@=8P0d(  10x" |" ! !       ! ! " "   ( , 8 < LT X d h x |                       $ H L X \ |                $ 0 4 P` d p t x" " ! !                    " "   (" ," 8 < Xx |   " "          ( (     0$ 0( 8, 84 8 P T d @ @ H H P P X X ` ` h h p p  x$ x0T X h" l" x | 4 x% 1+ 48 7 lF 8  Q_&h(8;p*tP x,  eqconfor.o/ 1073924706 1032 20 100644 15448 ` ELF:4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ ;XX@@!   ;XX;XX;X@X?!   !   !   !   ;XX;XX;XX#\#`#d#h@? k؅B;X@X!  !  0@@ Q'ؠ;XX@@!   ;XX;XX;X@X?!   !   !   !   ;XX;XX;XX#\#`#d#h@?؅;X@X! …! $ $ ! $ $ ! $ $ !    …B! $ $ !   !   !   !   ;XX;XX;XX#\#`#d#h@! $ $ !   !   !   …B! $ $  4! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X/! @!   !   ;XX;X@X;X@X!   ;X@X;X@X!   !   ;XX;X@X'@'X'T'P'L'H'DDH?LP?!   !   !   !   ;XX;XX;XX#\#`#d#h@?!   !   …B?!   ?!   ;X@Xȅ @?!   ??;X@X @ȅBT$ $ !   !   B??;X@X @X$ $ 'Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONICEQUIDISTANT CONIC?=|׽eqconforinteqconfor d"d-8.8/<@b4$ C$L o        % 9 M a u   eqconfor.c/ecs/hdfeos/gctp/src/eqconfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbhpsAAWGp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o eqconfor.o eqconfor.c -W0,-xp\$XAEBTnbhpsAAWGp.eqconforint$XBEBTnbhpsAAWGp.eqconforint.__func__eqconfor$XBEBTnbhpsAAWGp.eqconfor.__func__$XAEBTnbhpsAAWGp.rh$XAEBTnbhpsAAWGp.g$XAEBTnbhpsAAWGp.ns$XAEBTnbhpsAAWGp.false_easting$XAEBTnbhpsAAWGp.false_northing$XAEBTnbhpsAAWGp.ml0$XAEBTnbhpsAAWGp.es$XAEBTnbhpsAAWGp.e$XAEBTnbhpsAAWGp.e3$XAEBTnbhpsAAWGp.e2$XAEBTnbhpsAAWGp.e1$XAEBTnbhpsAAWGp.e0$XAEBTnbhpsAAWGp.lon_center$XAEBTnbhpsAAWGp.r_minor$XAEBTnbhpsAAWGp.r_majorP d"d-8.8/<@bӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$      ɠ ܠ  |   ) 7 B M X cD=|D>D?D@DADCDDDE,DFXDGDHDIDKDL(DM`DQDSDUDV0<DX<DY\DZD[ D\<D^pDaDbDcDdTDiDkDlDmDn Do(Dp8ltDttDuDvDwDxDy(D|( n, D}88 $  T X4!.D4DDD DhD9, D~(!0(!0(!0|(!/(!/ (!0=(!/Y(!/t(!0"(!0(!/(!/(!/d(!/K)(!/2J$a$$$$$$$$/$H$g$$$$$$$)$<$Obeqconfor.c/ecs/hdfeos/gctp/src/eqconfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbhpsAAWGp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.heqconforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)mode:p(0,4)temp:(0,18)sinphi:(0,18)cosphi:(0,18)ms1:(0,18)ms2:(0,18)ml1:(0,18)ml2:(0,18)eqconfor.c$XBEBTnbhpsAAWGp.eqconforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)eqconfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)ml:(0,18)theta:(0,18)rh1:(0,18)$XBEBTnbhpsAAWGp.eqconfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbhpsAAWGp.rh:S(0,18)$XAEBTnbhpsAAWGp.g:S(0,18)$XAEBTnbhpsAAWGp.ns:S(0,18)$XAEBTnbhpsAAWGp.false_easting:S(0,18)$XAEBTnbhpsAAWGp.false_northing:S(0,18)$XAEBTnbhpsAAWGp.ml0:S(0,18)$XAEBTnbhpsAAWGp.es:S(0,18)$XAEBTnbhpsAAWGp.e:S(0,18)$XAEBTnbhpsAAWGp.e3:S(0,18)$XAEBTnbhpsAAWGp.e2:S(0,18)$XAEBTnbhpsAAWGp.e1:S(0,18)$XAEBTnbhpsAAWGp.e0:S(0,18)$XAEBTnbhpsAAWGp.lon_center:S(0,18)$XAEBTnbhpsAAWGp.r_minor:S(0,18)$XAEBTnbhpsAAWGp.r_major:S(0,18)stparl1:P(0,20);(0,18)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06eqconfor.cBbss.bssDdata.dataDrodata.rodatacossinadjust_lon$XBEBTnbhpsAAWGp.eqconfor.__func__eqconforstparl1offsetporigincenlonmerstanparlradius2ptitlep_errorfabsmlfnmsfnztsincose3fne2fne1fne0fnsqrt$XAEBTnbhpsAAWGp.rh$XAEBTnbhpsAAWGp.ml0$XAEBTnbhpsAAWGp.g$XAEBTnbhpsAAWGp.ns$XAEBTnbhpsAAWGp.e3$XAEBTnbhpsAAWGp.e2$XAEBTnbhpsAAWGp.e1$XAEBTnbhpsAAWGp.e0$XAEBTnbhpsAAWGp.e$XAEBTnbhpsAAWGp.es$XAEBTnbhpsAAWGp.false_easting$XAEBTnbhpsAAWGp.false_northing$XAEBTnbhpsAAWGp.lon_center$XAEBTnbhpsAAWGp.r_minor$XAEBTnbhpsAAWGp.r_major$XBEBTnbhpsAAWGp.eqconforint.__func__eqconforint x /37B ehnv~ph `X0PDHX@l80( 4 ZH+ + * * ) ) ( ( ' ' * * + +   ,& 0& <& @& PX% \% h& l& |$ $ & & # # & & " " & & !  ! 08% <% dp$ t$ # # " " ! !   ( , 8dl% p% $ $ # # " " ! ! ,4 8 h l         $ $ # # " " ! ! LT X d+ h+ t x      < <+ + * * )  ) 0@H' L' X( \( t  P P+ + * *  ) ) ' ' ( ( 0 $ $ # # " " ! ! + + $ ( D H \) `) t ' ' ( (   4  P x b p%% + 8 7 F D  QP_+(h,fp/4 x2  eqconinv.o/ 1073924707 1032 20 100644 16096 ` ELF<4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ ;XX@@!   ;XX;XX;X@X?!   !   !   !   ;XX;XX;XX#\#`#d#h@? k؅B;X@X!  !  0@@ Q'ؠ;XX@@!   ;XX;XX;X@X?!   !   !   !   ;XX;XX;XX#\#`#d#h@?؅;X@X! …! $ $ ! $ $ ! $ $ !    …B! $ $ !   !   !   !   ;XX;XX;XX#\#`#d#h@! $ $ !   !   !   …B! $ $  4! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X/! @!   !   ;XX;X@X;X@X!   ;X@X;X@X!   !   ;XX;X@X'P'X'T'P'L'H'DDH?LP?'!   ?!   艡!   B?!   ! B腠BB;X@X?! ?B腠BB;X@X!?! ?! ?! B  B腡 B;XX;X@X?!   !    …?!   !   !   !   ;XX;XX;XX#\#`#d#h@#lX$ $ !   !    …B;X@XT$ $ Ā ''Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONICEQUIDISTANT CONIC?=|׽eqconinvinteqconinv d"d-8.8/<@c4$ C$L o        % 9 M a u   eqconinv.c/ecs/hdfeos/gctp/src/eqconinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbipsAAWHp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o eqconinv.o eqconinv.c -W0,-xp\$XAEBTnbipsAAWHp.eqconinvint$XBEBTnbipsAAWHp.eqconinvint.__func__eqconinv$XBEBTnbipsAAWHp.eqconinv.__func__$XAEBTnbipsAAWHp.rh$XAEBTnbipsAAWHp.g$XAEBTnbipsAAWHp.ns$XAEBTnbipsAAWHp.false_easting$XAEBTnbipsAAWHp.false_northing$XAEBTnbipsAAWHp.ml0$XAEBTnbipsAAWHp.es$XAEBTnbipsAAWHp.e$XAEBTnbipsAAWHp.e3$XAEBTnbipsAAWHp.e2$XAEBTnbipsAAWHp.e1$XAEBTnbipsAAWHp.e0$XAEBTnbipsAAWHp.lon_center$XAEBTnbipsAAWHp.r_minor$XAEBTnbipsAAWHp.r_major d"d-8.8/<@cӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$      ɠ ܠ  |   ) 7 B M X cD=|D>D?D@DADCDDDE,DFXDGDHDIDKDL(DM`DQDSDUDV0<DX<DY\DZD[ D\<D^pDaDbDcDdTDiDkDlDmDn Do(Dp8ltDttDuDvDwDxDy(D|( n, D}88 $   T X4",7DD4D8DTDDDDDDD(DDDpDD$DhDxDO, D(!0(!0(!0|(!/(!/6(!0S(!/o(!/(!0"(!0(!/(!/(!/d(!/K?(!/2`$w$$$$$$6$P$n$$$$$$"$8$V$j$~$beqconinv.c/ecs/hdfeos/gctp/src/eqconinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbipsAAWHp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.heqconinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)mode:p(0,4)temp:(0,18)sinphi:(0,18)cosphi:(0,18)ms1:(0,18)ms2:(0,18)ml1:(0,18)ml2:(0,18)eqconinv.c$XBEBTnbipsAAWHp.eqconinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)eqconinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh1:(0,18)ml:(0,18)con:(0,18)theta:(0,18)flag:(0,4)$XBEBTnbipsAAWHp.eqconinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbipsAAWHp.rh:S(0,18)$XAEBTnbipsAAWHp.g:S(0,18)$XAEBTnbipsAAWHp.ns:S(0,18)$XAEBTnbipsAAWHp.false_easting:S(0,18)$XAEBTnbipsAAWHp.false_northing:S(0,18)$XAEBTnbipsAAWHp.ml0:S(0,18)$XAEBTnbipsAAWHp.es:S(0,18)$XAEBTnbipsAAWHp.e:S(0,18)$XAEBTnbipsAAWHp.e3:S(0,18)$XAEBTnbipsAAWHp.e2:S(0,18)$XAEBTnbipsAAWHp.e1:S(0,18)$XAEBTnbipsAAWHp.e0:S(0,18)$XAEBTnbipsAAWHp.lon_center:S(0,18)$XAEBTnbipsAAWHp.r_minor:S(0,18)$XAEBTnbipsAAWHp.r_major:S(0,18)stparl1:P(0,20);(0,18)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)phi3z:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06eqconinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonphi3zatan2$XBEBTnbipsAAWHp.eqconinv.__func__eqconinvstparl1offsetporigincenlonmerstanparlradius2ptitlep_errorfabsmlfnmsfnztsincose3fne2fne1fne0fnsqrt$XAEBTnbipsAAWHp.rh$XAEBTnbipsAAWHp.ml0$XAEBTnbipsAAWHp.g$XAEBTnbipsAAWHp.ns$XAEBTnbipsAAWHp.e3$XAEBTnbipsAAWHp.e2$XAEBTnbipsAAWHp.e1$XAEBTnbipsAAWHp.e0$XAEBTnbipsAAWHp.e$XAEBTnbipsAAWHp.es$XAEBTnbipsAAWHp.false_easting$XAEBTnbipsAAWHp.false_northing$XAEBTnbipsAAWHp.lon_center$XAEBTnbipsAAWHp.r_minor$XAEBTnbipsAAWHp.r_major$XBEBTnbipsAAWHp.eqconinvint.__func__eqconinvint x /:@F, ihrzph ` X4PHH\@p80( 8 ^H+ + * * ) ) ( ( ' ' * * + +   ,& 0& <& @& PX% \% h& l& |$ $ & & # # & & " " & & !  ! 08% <% dp$ t$ # # " " ! !   ( , 8dl% p% $ $ # # " " ! ! ,4 8 h l         $ $ # # " " ! ! LT X d+ h+ t x      < <+ + * * )  ) 0@H' L' X( \( t  P P+ + * *  ) ) ' ' ( ( 0 ' '   ( (     ,8 < dx |        + + $ $ # # ," 0" <! @! x ) ) 4   x b 05% e+ h8 7 Fd   Qt_-h.jp1  x4  equifor.o/ 1073924708 1032 20 100644 9368 ` ELF"@4(.shstrtab.text.bss.data1.data.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'p'X'T'P'L'H'DDH?LP?!   ;X@X?!   ?!   ཡ B?!   ;X@X؅ @ЅBT$ $ !   !   腡 BBX$ $ 'EQUIRECTANGULARequiforintequifor d!d+8,8-<@c4 $ =$E g     equifor.c/ecs/hdfeos/gctp/src/equifor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbjpsAAWIp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o equifor.o equifor.c -W0,-xp\$XAEBTnbjpsAAWIp.equiforint$XBEBTnbjpsAAWIp.equiforint.__func__equifor$XBEBTnbjpsAAWIp.equifor.__func__$XAEBTnbjpsAAWIp.false_easting$XAEBTnbjpsAAWIp.false_northing$XAEBTnbjpsAAWIp.lat_origin$XAEBTnbjpsAAWIp.lon_center$XAEBTnbjpsAAWIp.r_major d!d+8,8-<@cр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D.XD/lD0D1D2D6D7D8D9D: D;T , D<dd $ < H TT ^X4 hDK4DL\DMDN t, DO  (!/ (!/g(!/K+(!//O(!/p$$$$$$$bequifor.c/ecs/hdfeos/gctp/src/equifor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbjpsAAWIp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hequiforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)lat1:p(0,18)false_east:p(0,18)false_north:p(0,18)equifor.c$XBEBTnbjpsAAWIp.equiforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)equifor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)$XBEBTnbjpsAAWIp.equifor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbjpsAAWIp.false_easting:S(0,18)$XAEBTnbjpsAAWIp.false_northing:S(0,18)$XAEBTnbjpsAAWIp.lat_origin:S(0,18)$XAEBTnbjpsAAWIp.lon_center:S(0,18)$XAEBTnbjpsAAWIp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06equifor.cBbss.bssDdata.dataDrodata.rodatacosadjust_lon$XBEBTnbjpsAAWIp.equifor.__func__equiforoffsetporigincenlonmerradiusptitle$XAEBTnbjpsAAWIp.false_easting$XAEBTnbjpsAAWIp.false_northing$XAEBTnbjpsAAWIp.lat_origin$XAEBTnbjpsAAWIp.lon_center$XAEBTnbjpsAAWIp.r_major$XBEBTnbjpsAAWIp.equiforint.__func__equiforint (.2= _gov  Ctl p                  ( 0 4 @ D \        $ ( 8\ ` l p 4 p(p#+ 7TFL  Q _hNp` x T  equiinv.o/ 1073924711 1032 20 100644 9808 ` ELF#4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'p'X'T'P'L'H'DDH?LP?!   ?!   ?!    X$ $ X  ;X@X! ! B  !  @@ %'!   ??!   ?!   ;X@X @؅ ЅB;X@XT$ $ 'EQUIRECTANGULARInput data errorequi-inv@ !TD-?equiinvintequiinv d!d+8,8-<@g4 $ =$E g     equiinv.c/ecs/hdfeos/gctp/src/equiinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbnpsAA2Jp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o equiinv.o equiinv.c -W0,-xp\$XAEBTnbnpsAA2Jp.equiinvint$XBEBTnbnpsAA2Jp.equiinvint.__func__equiinv$XBEBTnbnpsAA2Jp.equiinv.__func__$XAEBTnbnpsAA2Jp.false_easting$XAEBTnbnpsAA2Jp.false_northing$XAEBTnbnpsAA2Jp.lat_origin$XAEBTnbnpsAA2Jp.lon_center$XAEBTnbnpsAA2Jp.r_major= d!d+8,8-<@gр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D.XD/lD0D1D2D6D7D8D9D: D;T , D<dd $ < F PT \X4DJ4DKPDLlDMDODPDRDSl h, DT|| (!/ (!/g (!/K(!//C(!/d$~$$$$$$$)$Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b l   X D4XD5lD6D7D8D<D=D>D?D@DAD , DBTT $ ? K WT aX4 k w    DV4DW\DX|DYDZD\D]D_D`$DbDd , De (!/k!(!/LH(!/i(!/(!/(!/0$$$$-$C$h$~$$$bgnomfor.c/ecs/hdfeos/gctp/src/gnomfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbnpsAA2Kp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgnomforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)gnomfor.c$XBEBTnbnpsAA2Kp.gnomforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)gnomfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinphi:(0,18)cosphi:(0,18)coslon:(0,18)g:(0,18)ksp:(0,18)$XBEBTnbnpsAA2Kp.gnomfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbnpsAA2Kp.false_northing:S(0,18)$XAEBTnbnpsAA2Kp.false_easting:S(0,18)$XAEBTnbnpsAA2Kp.cos_p13:S(0,18)$XAEBTnbnpsAA2Kp.sin_p13:S(0,18)$XAEBTnbnpsAA2Kp.R:S(0,18)$XAEBTnbnpsAA2Kp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gnomfor.cBbss.bssDdata.dataDrodata.rodatasinp_errorcosadjust_lon$XBEBTnbnpsAA2Kp.gnomfor.__func__gnomforoffsetpcenlatcenlonradiusptitletsincos$XAEBTnbnpsAA2Kp.cos_p13$XAEBTnbnpsAA2Kp.sin_p13$XAEBTnbnpsAA2Kp.false_northing$XAEBTnbnpsAA2Kp.false_easting$XAEBTnbnpsAA2Kp.lon_center$XAEBTnbnpsAA2Kp.R$XBEBTnbnpsAA2Kp.gnomforint.__func__gnomforint 0.2:>Ik s{( ,? ddl p               $ 0 4 L       0 4 \ ` t x           $ 8 < P T 4 `0`9#%+ 7Ft  Q _h uop! x#|  gnominv.o/ 1073924713 1032 20 100644 11672 ` ELF+@4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @;X@X;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?!    ;X@X?ؠТ;XX@@!   T$ $ ;X@X!  !   X$ $ '!    BЉ B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ b'!   ?;XX;X@X;X@XT$ $ K'?!   ?X  ;X@X @?;X@X! ;X@X! #'!   ?Љ B!    B B;XX;X@X@;X@XT$ $ 'GNOMONIC=|׽@ !TD-?gnominvintgnominv# d!d+8,8-<@h4 $ =$E g       gnominv.c/ecs/hdfeos/gctp/src/gnominv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbopsAA2Lp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o gnominv.o gnominv.c -W0,-xp\$XAEBTnbopsAA2Lp.gnominvint$XBEBTnbopsAA2Lp.gnominvint.__func__gnominv$XBEBTnbopsAA2Lp.gnominv.__func__$XAEBTnbopsAA2Lp.false_northing$XAEBTnbopsAA2Lp.false_easting$XAEBTnbopsAA2Lp.cos_p13$XAEBTnbopsAA2Lp.sin_p13$XAEBTnbopsAA2Lp.R$XAEBTnbopsAA2Lp.lat_center$XAEBTnbopsAA2Lp.lon_center d!d+8,8-<@hр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b l   X D5XD6lD7D8D9D:D>D?D@DADB$DCX , DDhh $ ? I ST _X4 k u ~  DV4DWPDXlDYDZD[D]D_D`8@Db@DcDdDf$Dh$DixDmDnDqDr$DstDt|Dw , Dx (!/ (!/s4(!/U(!/v(!/((!/W(!/;$$$&$<$R$h$$$$$$$bgnominv.c/ecs/hdfeos/gctp/src/gnominv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbopsAA2Lp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgnominvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)gnominv.c$XBEBTnbopsAA2Lp.gnominvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)gnominv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)con:(0,18)$XBEBTnbopsAA2Lp.gnominv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbopsAA2Lp.false_northing:S(0,18)$XAEBTnbopsAA2Lp.false_easting:S(0,18)$XAEBTnbopsAA2Lp.cos_p13:S(0,18)$XAEBTnbopsAA2Lp.sin_p13:S(0,18)$XAEBTnbopsAA2Lp.R:S(0,18)$XAEBTnbopsAA2Lp.lat_center:S(0,18)$XAEBTnbopsAA2Lp.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gnominv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonasinzfabsatansqrt$XBEBTnbopsAA2Lp.gnominv.__func__gnominvoffsetpcenlatcenlonradiusptitletsincos$XAEBTnbopsAA2Lp.cos_p13$XAEBTnbopsAA2Lp.sin_p13$XAEBTnbopsAA2Lp.false_northing$XAEBTnbopsAA2Lp.false_easting$XAEBTnbopsAA2Lp.lat_center$XAEBTnbopsAA2Lp.lon_center$XAEBTnbopsAA2Lp.R$XBEBTnbopsAA2Lp.gnominvint.__func__gnominvint 8 .28CINSX+z0( ;Wj xl p                ,4 8 D H `     , 0 D hp t           4 8 H P T X \ t |           DX |          4 8 `t 4 `8` p3%+ 7|#F p  Q_"h#p%` x'P  goodfor.o/ 1073924714 1032 20 100644 13812 ` ELF34(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿐'H'DDH?! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4! ! $ 8$ Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ F PD-D1,D2DD3\D4tD5D6D7D8D9D:D;D<4D@LDAxDBDCDDDE(DFTDGDHDIDJDK0DO\DPlDQ| Z, DR $ ՠ  T X4    2 B JDe4PDgPDht|DjDlDmDoDqDrDsDDtlt|Dx|DyDzD{D~\D\DD$D$DXD`DDDDD$4D4DLXDXDdlDlDDDDHD W, D (`!/% (`!/ (!.!$4$N$d$z$$$$bgoodfor.c/ecs/hdfeos/gctp/src/goodfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbppsAA2Mp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgoodforint:F(0,3);(0,18)r:p(0,18)goodfor.c$XBEBTnbppsAA2Mp.goodforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)goodfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)theta:(0,18)delta_theta:(0,18)constant:(0,18)i:(0,4)region:(0,4)$XBEBTnbppsAA2Mp.goodfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbppsAA2Mp.feast:S(0,26)=ar(0,4);0;11;(0,18)$XAEBTnbppsAA2Mp.lon_center:S(0,27)=ar(0,4);0;11;(0,18)$XAEBTnbppsAA2Mp.R:S(0,18)sign:P(0,3);(0,18)adjust_lon:P(0,18);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06goodfor.cBbss.bssDdata.dataDrodata.rodatasignp_errorfabssincosadjust_lon$XBEBTnbppsAA2Mp.goodfor.__func__goodforradiusptitle$XAEBTnbppsAA2Mp.feast$XAEBTnbppsAA2Mp.lon_center$XAEBTnbppsAA2Mp.R$XBEBTnbppsAA2Mp.goodforint.__func__goodforint .3;@DHSu}h`` , 0 < @ D H T X \ ` l p t x                          ( (   , 0 4 8 D (H (L P \ ` l p x |                         ( , 8 < H L T X d h t x                  ( (    $ ( 0 4 @ D P (T (\ ` l p t 0 0 8 8H @L @d 8h 8 H H   P P X  X@ D h Pl P X X( , D X \ p t       ( 0 `4 `P t hx h   p p  0 x4 x@ `D `H xL x` p pt p @ @          $  , 0 D X \ 4   X XN % S+ T 7 F  Q`_&3h'p(` x*< `  goodinv.o/ 1073924715 1032 20 100644 17120 ` ELF@4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿐'H'DDH?! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,! ! $ 0$ 4! ! $ 8$ Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ F PD,D0,D1DD2\D3tD4D5D6D7D8D9D:D;4D?LD@xDADBDCDD(DETDFDGDHDIDJ0DN\DOlDP| Z, DQ $ ՠ ߠ T X4    %Db4dDddDeDgDiDj DlDDnDDoDpDqDuDvDDwDxDzD|LD~LDpDDDD,D,DDDD`DDD$DdDDDDDDDDxDDDD XD dD D D 0D <D D D D D lD xD D D @D LD D 2, D  v(`!/% (`!/ (!. $$)$?$U$s$$$$bgoodinv.c/ecs/hdfeos/gctp/src/goodinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbqpsAA2Np.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgoodinvint:F(0,3);(0,18)r:p(0,18)goodinv.c$XBEBTnbqpsAA2Np.goodinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)goodinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)arg:(0,18)theta:(0,18)temp:(0,18)region:(0,4)$XBEBTnbqpsAA2Np.goodinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbqpsAA2Np.feast:S(0,26)=ar(0,4);0;11;(0,18)$XAEBTnbqpsAA2Np.lon_center:S(0,27)=ar(0,4);0;11;(0,18)$XAEBTnbqpsAA2Np.R:S(0,18)sign:P(0,3);(0,18)adjust_lon:P(0,18);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06goodinv.cBbss.bssDdata.dataDrodata.rodatasinasinsignadjust_loncosp_errorfabs$XBEBTnbqpsAA2Np.goodinv.__func__goodinvradiusptitle$XAEBTnbqpsAA2Np.feast$XAEBTnbqpsAA2Np.lon_center$XAEBTnbqpsAA2Np.R$XBEBTnbqpsAA2Np.goodinvint.__func__goodinvint .27<GKSXz h`` , 0 < @ D H T X \ ` l p t x                          ( (   , 0 4 8 D (H (L P \ ` l p x |                         ( , 8 < H L T X d h t x                  ( (    $ ( 0 4 @ D P (T (\ ` l p t   0  0( , 8 8< 8p @t @   8 8   H H     D H T PX P   X X        P PD H T XX X    @ H `L `P hT hl p |   ` ` h h  p p    8 d      x x    (  0 4 \ p t       `  `  p  p ( , < L ` P ` d  l p   @  @  `  `  p  p  @  @  `  ` , p 0 p x ` | `  p  p  8  8  `  `  p  p  8 $ 8 ` 8 d 8  `  `  p  p  8  8  `  `  p  p @ ` D ` H p L p t x    P  P ` `  p$ pL P    P P P P X XT XX Xx `| ` p p P P X X( X, XL `P `T pX p4 XXB%S+T 7F  Qt_.6h/p0p x2T4  gvnspfor.o/ 1073924716 1032 20 100644 10948 ` ELF(l4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.texth'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! !    …B! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @;X@X! ;XX@;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ;X@X?آ;XX@@;X@X?!   ؍ B!   Љ Bȅ BB?! !     !  @@ H'!   ! B…?!   ?!    Bн B?;X@X @BT$ $ !   !    B!   ؍ B!   Љ Bȅ B… BBX$ $ 'GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-for?gvnspforintgvnspfor" d"d-8.8/<@k4$ C$L o       gvnspfor.c/ecs/hdfeos/gctp/src/gvnspfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbrpsAA2Op./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o gvnspfor.o gvnspfor.c -W0,-xp\$XAEBTnbrpsAA2Op.gvnspforint$XBEBTnbrpsAA2Op.gvnspforint.__func__gvnspfor$XBEBTnbrpsAA2Op.gvnspfor.__func__$XAEBTnbrpsAA2Op.false_northing$XAEBTnbrpsAA2Op.false_easting$XAEBTnbrpsAA2Op.cos_p15$XAEBTnbrpsAA2Op.sin_p15$XAEBTnbrpsAA2Op.p$XAEBTnbrpsAA2Op.R$XAEBTnbrpsAA2Op.lon_center d"d-8.8/<@kӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ l v    d ΄D8dD9xD:D;D<D=DADB DC0DDLDE\DFlDG , DH "$ V b nT xX4      D\4D]\D^|D_D`DbDc$De$DfPDgDi, , Dj<<(!/9(!/b`(!/(!/(!/3(!/ (!/F$$3$Q$g$}$$$$$$bgvnspfor.c/ecs/hdfeos/gctp/src/gvnspfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbrpsAA2Op.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgvnspforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)h:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)gvnspfor.c$XBEBTnbrpsAA2Op.gvnspforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)gvnspfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)sinphi:(0,18)cosphi:(0,18)coslon:(0,18)g:(0,18)ksp:(0,18)$XBEBTnbrpsAA2Op.gvnspfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbrpsAA2Op.false_northing:S(0,18)$XAEBTnbrpsAA2Op.false_easting:S(0,18)$XAEBTnbrpsAA2Op.cos_p15:S(0,18)$XAEBTnbrpsAA2Op.sin_p15:S(0,18)$XAEBTnbrpsAA2Op.p:S(0,18)$XAEBTnbrpsAA2Op.R:S(0,18)$XAEBTnbrpsAA2Op.lon_center:S(0,18)genrpt:P(0,20);(0,18);(10,3)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gvnspfor.cBbss.bssDdata.dataDrodata.rodatasinp_errorcosadjust_lon$XBEBTnbrpsAA2Op.gvnspfor.__func__gvnspforoffsetpcenlatcenlongenrptradiusptitletsincos$XAEBTnbrpsAA2Op.cos_p15$XAEBTnbrpsAA2Op.sin_p15$XAEBTnbrpsAA2Op.false_northing$XAEBTnbrpsAA2Op.false_easting$XAEBTnbrpsAA2Op.lon_center$XAEBTnbrpsAA2Op.p$XAEBTnbrpsAA2Op.R$XBEBTnbrpsAA2Op.gvnspforint.__func__gvnspforint 8 /3;?J mLv~0( 6I\ x |                   $ (8D (H (Tdt|       0 Td p t        T T    0 4 D H p        4 08zh%%+ 7h"F  Q<_ Oh!p# x%T  gvnspinv.o/ 1073924718 1032 20 100644 12876 ` ELF/4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.texth'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! !    …B! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @;X@X! ;XX@;X@X;X@X!   !   ;XX;X@X'8'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?!    ?!   ! B?!   ! B??ȅ ;X@X !  @@ '!   ?! ؉Bȉ BЅ …;X@X؍ą …B ?;X@X?;XX@@!   T$ $ ;X@X!  !   X$ $ '!    B B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ b'!   ?;XX;X@X;X@XT$ $ K'?!   ?X  ;X@X @?;X@X! ;X@X! #'!   ? B!    B B;XX;X@X@;X@XT$ $ 'GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-for?=|׽@ !TD-?gvnspinvintgvnspinv> d"d-8.8/<@m4$ C$L o       " gvnspinv.c/ecs/hdfeos/gctp/src/gvnspinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbtpsAA2Pp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o gvnspinv.o gvnspinv.c -W0,-xp\$XAEBTnbtpsAA2Pp.gvnspinvint$XBEBTnbtpsAA2Pp.gvnspinvint.__func__gvnspinv$XBEBTnbtpsAA2Pp.gvnspinv.__func__$XAEBTnbtpsAA2Pp.false_northing$XAEBTnbtpsAA2Pp.false_easting$XAEBTnbtpsAA2Pp.cos_p15$XAEBTnbtpsAA2Pp.sin_p15$XAEBTnbtpsAA2Pp.p$XAEBTnbtpsAA2Pp.R$XAEBTnbtpsAA2Pp.lat_center$XAEBTnbtpsAA2Pp.lon_center} d"d-8.8/<@mӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ l v    d ΄D7dD8xD9D:D;D<D=DA$DB4DCDDD`DEpDFDG , DH "$ V ` jT vX4       D]4D^PD_lD`DaDbDc De Df8DDhDDiDjDkDl$Dn$Do@HDqHDrDsDu,Dw,DxD|D}DD,D|DD , D(!/9(!/`(!/(!/(!/>(!/+(!/m(!/Q $=$R$l$$$$$$$%$9$M$`$|bgvnspinv.c/ecs/hdfeos/gctp/src/gvnspinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbtpsAA2Pp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hgvnspinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)h:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)gvnspinv.c$XBEBTnbtpsAA2Pp.gvnspinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)gvnspinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)r:(0,18)con:(0,18)com:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)$XBEBTnbtpsAA2Pp.gvnspinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbtpsAA2Pp.false_northing:S(0,18)$XAEBTnbtpsAA2Pp.false_easting:S(0,18)$XAEBTnbtpsAA2Pp.cos_p15:S(0,18)$XAEBTnbtpsAA2Pp.sin_p15:S(0,18)$XAEBTnbtpsAA2Pp.p:S(0,18)$XAEBTnbtpsAA2Pp.R:S(0,18)$XAEBTnbtpsAA2Pp.lat_center:S(0,18)$XAEBTnbtpsAA2Pp.lon_center:S(0,18)genrpt:P(0,20);(0,18);(10,3)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gvnspinv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonfabsasinzp_errorsqrt$XBEBTnbtpsAA2Pp.gvnspinv.__func__gvnspinvoffsetpcenlatcenlongenrptradiusptitletsincos$XAEBTnbtpsAA2Pp.cos_p15$XAEBTnbtpsAA2Pp.sin_p15$XAEBTnbtpsAA2Pp.false_northing$XAEBTnbtpsAA2Pp.false_easting$XAEBTnbtpsAA2Pp.lat_center$XAEBTnbtpsAA2Pp.lon_center$XAEBTnbtpsAA2Pp.p$XAEBTnbtpsAA2Pp.R$XBEBTnbtpsAA2Pp.gvnspinvint.__func__gvnspinvint @ 0/39DIOW\< 80( ,Hdw0 x |                   ,4 8 <LX (\ (hx    0 4 L P |             X X( < @ P T x          D H d h                ( ($ ( Pd      , 4 8 T \ ` |     4 @v@E%+ 7 l>F 0  Q}_%Yh&p( x*(  hamfor.o/ 1073924719 1032 20 100644 9340 ` ELF"$4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ;X@X?!   ! B?! ?;X@X! ?! ;X@XЅ @ȅB;X@X ?!   ?! B?;X@X @? ;X@XЅ @BT$ $ !   ??;X@X @BX$ $ 'HAMMER?fe>?@hamforinthamfor d d)8*8+<@n4 $ 7$> _    hamfor.c/ecs/hdfeos/gctp/src/hamfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbupsAA2Qp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o hamfor.o hamfor.c -W0,-xp\$XAEBTnbupsAA2Qp.hamforint$XBEBTnbupsAA2Qp.hamforint.__func__hamfor$XBEBTnbupsAA2Qp.hamfor.__func__$XAEBTnbupsAA2Qp.false_northing$XAEBTnbupsAA2Qp.false_easting$XAEBTnbupsAA2Qp.R$XAEBTnbupsAA2Qp.lon_center d d)8*8+<@nπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D2LD3`D4tD5D9D:D;D<D= , D> $  * 6T @X4 J VDN4DP\DQDR`DT a, DU (!. (!. (!.(!.2$L$j$$$$$$bhamfor.c/ecs/hdfeos/gctp/src/hamfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbupsAA2Qp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hhamforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)hamfor.c$XBEBTnbupsAA2Qp.hamforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)hamfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)fac:(0,18)$XBEBTnbupsAA2Qp.hamfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbupsAA2Qp.false_northing:S(0,18)$XAEBTnbupsAA2Qp.false_easting:S(0,18)$XAEBTnbupsAA2Qp.R:S(0,18)$XAEBTnbupsAA2Qp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06hamfor.cBbss.bssDdata.dataDrodata.rodatasincossqrtadjust_lon$XBEBTnbupsAA2Qp.hamfor.__func__hamforoffsetpcenlonradiusptitle$XAEBTnbupsAA2Qp.false_northing$XAEBTnbupsAA2Qp.false_easting$XAEBTnbupsAA2Qp.lon_center$XAEBTnbupsAA2Qp.R$XBEBTnbupsAA2Qp.hamforint.__func__hamforint -15:E"f@mu|  ` d t x            x |           ( , @ D Xp |  4  )%+ 7Fx  Q _h&pp x ,  haminv.o/ 1073924720 1032 20 100644 9340 ` ELF"$4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'x'X'T'P'L'H'DDH?LP?!   ?!   ?!   ! F BBƉ腠B;X@X! ?!   ?B!   #` BDF! ‰腠B;XX;X@X` B؅B;X@XT$ $  B!   ą;X@XX$ $ 'HAMMER@@haminvinthaminv d d)8*8+<@o4 $ 7$> _    haminv.c/ecs/hdfeos/gctp/src/haminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbvpsAA2Rp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o haminv.o haminv.c -W0,-xp\$XAEBTnbvpsAA2Rp.haminvint$XBEBTnbvpsAA2Rp.haminvint.__func__haminv$XBEBTnbvpsAA2Rp.haminv.__func__$XAEBTnbvpsAA2Rp.false_northing$XAEBTnbvpsAA2Rp.false_easting$XAEBTnbvpsAA2Rp.R$XAEBTnbvpsAA2Rp.lon_center d d)8*8+<@oπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D2LD3`D4tD5D9D:D;D<D= , D> $  ( 2T >X4 JDM4DNPDOlDQDR`DS U, DT (!. (!. (!.(!.&$;$U$s$$$$$bhaminv.c/ecs/hdfeos/gctp/src/haminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbvpsAA2Rp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hhaminvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)haminv.c$XBEBTnbvpsAA2Rp.haminvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)haminv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)fac:(0,18)$XBEBTnbvpsAA2Rp.haminv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbvpsAA2Rp.false_northing:S(0,18)$XAEBTnbvpsAA2Rp.false_easting:S(0,18)$XAEBTnbvpsAA2Rp.R:S(0,18)$XAEBTnbvpsAA2Rp.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06haminv.cBbss.bssDdata.dataDrodata.rodataasinzatan2adjust_lonsqrt$XBEBTnbvpsAA2Rp.haminv.__func__haminvoffsetpcenlonradiusptitle$XAEBTnbvpsAA2Rp.false_northing$XAEBTnbvpsAA2Rp.false_easting$XAEBTnbvpsAA2Rp.lon_center$XAEBTnbvpsAA2Rp.R$XBEBTnbvpsAA2Rp.haminvint.__func__haminvint -39DIj@qy   ` d t x            x |            $ ( 4 8 H L px    4  !%+ 7Fh  Q _h*pp x   imolwfor.o/ 1073924721 1032 20 100644 11972 ` ELF,l4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿐'H'DDH?! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,!   ! B! $ $ !   ! B! $ $ !   ! B! $ $ !   ! B! $ $ !   ! B! $ $ $!   ! B! $ ($ ,! @;X@X'8'X'T'P'L'H'DDH?LP?! ;!  ! )'!  ! ! B! ! B !  ' ':!  !  )'!  ! ! B! ! B !  ' ', #`  ;X@X??;X@X! B?'?;X@X@ȅ¿#?! ?;X@X@ ?ЅB?;X@X! Ā 2!  @@Ġ '! ?! ! ?;X@X! ! ?, #`  ?!   ! Bཡ B?;X@X @BT$ $ !   ! B?;X@X @X$ $ 'INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^?WJy?f ?f@ !TD-=+ !TD-+]yk@5AIտ5A?=|׽@?d)?f;imolwforintimolwfor  d"d-8.8/<@p4$ C$L o   imolwfor.c/ecs/hdfeos/gctp/src/imolwfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbwpsAA2Sp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o imolwfor.o imolwfor.c -W0,-xp\$XAEBTnbwpsAA2Sp.imolwforint$XBEBTnbwpsAA2Sp.imolwforint.__func__imolwfor$XBEBTnbwpsAA2Sp.imolwfor.__func__$XAEBTnbwpsAA2Sp.feast$XAEBTnbwpsAA2Sp.lon_center$XAEBTnbwpsAA2Sp.R d"d-8.8/<@pӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ I SD-D1,D2DD3\D4tD5D6D:D;D<D=@D>lD?DCDDDE ^, DF $ ۠  T X4   % 8 C KD\4PD^PDaDbDc$,4Dg4DjxDkDl DoDpHDqPDuptDwtDxDyDzDu<D{HPD|PDdDDD,Dp X, D (0!/& (0!/ (!.!$;$Q$g$$$$bimolwfor.c/ecs/hdfeos/gctp/src/imolwfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbwpsAA2Sp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.himolwforint:F(0,3);(0,18)r:p(0,18)imolwfor.c$XBEBTnbwpsAA2Sp.imolwforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)imolwfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)theta:(0,18)delta_theta:(0,18)con:(0,18)i:(0,4)region:(0,4)$XBEBTnbwpsAA2Sp.imolwfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbwpsAA2Sp.feast:S(0,26)=ar(0,4);0;5;(0,18)$XAEBTnbwpsAA2Sp.lon_center:S(0,27)=ar(0,4);0;5;(0,18)$XAEBTnbwpsAA2Sp.R:S(0,18)adjust_lon:P(0,18);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06imolwfor.cBbss.bssDdata.dataDrodata.rodatap_errorfabscossinadjust_lon$XBEBTnbwpsAA2Sp.imolwfor.__func__imolwforradiusptitle$XAEBTnbwpsAA2Sp.feast$XAEBTnbwpsAA2Sp.lon_center$XAEBTnbwpsAA2Sp.R$XBEBTnbwpsAA2Sp.imolwforint.__func__imolwforint h /7<@DO r({800 , 0 < @ D H T X \ ` l p t x          ( (     0 0     8  8  $ ( 4 @8 @@ D P T ` Hd Hl p |   P P     X X    ` `d `| h h p p x x         ( , ` hd h|              H L d           L $P $\|         ` `      0 T X d h | 4 phpT%+ 7 hF   Q0_!h#p$P x%  imolwinv.o/ 1073924722 1032 20 100644 11872 ` ELF,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿐'H'DDH?! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ ($ ,!   ! B! $ $ !   ! B! $ $ !   ! B! $ $ !   ! B! $ $ !   ! B! $ $ $!   ! B! $ ($ ,! @;X@X'X'X'T'P'L'H'DDH?LP?! #!   ! B '!   ! B  'ܠ '"!   ! B  '!   ! B  'ܠ 'ܡ, #`  ?!   ! B;X@X?ܡ, #`  ??!   ! B?;X@XЅ @ȅ B;X@XT$ $ ! B?;X@X@! ;X@XX$ $ ܀ T  !  T  ! ?'܀ )T  !  T  !  T  ! T  ! ?|'܀ T  !  T  ! ?c'܀ T  !  T  ! ?J'܀ )T  !  T  !  T  ! T  ! ?'܀ T  !  T  ! ?''INTERRUPTED MOLLWEIDE EQUAL-AREA?R8-@ϕR8d?!TC5AIտWJy^n\T@WE 2?n\T@^f~?+}8k=+}8k=?f~?f;?d)@@ !TD-?WJy?f ]]yk@5AIտ5Aimolwinvintimolwinv  d"d-8.8/<@q4$ C$L o   imolwinv.c/ecs/hdfeos/gctp/src/imolwinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbxpsAA2Tp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o imolwinv.o imolwinv.c -W0,-xp\$XAEBTnbxpsAA2Tp.imolwinvint$XBEBTnbxpsAA2Tp.imolwinvint.__func__imolwinv$XBEBTnbxpsAA2Tp.imolwinv.__func__$XAEBTnbxpsAA2Tp.feast$XAEBTnbxpsAA2Tp.lon_center$XAEBTnbxpsAA2Tp.Rk d"d-8.8/<@qӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ I SD+D/,D0DD1\D2tD3D4D8D9D:D;@D<lD=DADBDC ^, DD $ ۠  T X4  DQ4PDSPDTDUDYDZD[LTD]TD_|D`Da8DeDgDhDiDk\DlDml !, Dn|| f(0!/& (0!/ (!. $$$0$C$V$jbimolwinv.c/ecs/hdfeos/gctp/src/imolwinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbxpsAA2Tp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.himolwinvint:F(0,3);(0,18)r:p(0,18)imolwinv.c$XBEBTnbxpsAA2Tp.imolwinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)imolwinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)theta:(0,18)region:(0,4)$XBEBTnbxpsAA2Tp.imolwinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbxpsAA2Tp.feast:S(0,26)=ar(0,4);0;5;(0,18)$XAEBTnbxpsAA2Tp.lon_center:S(0,27)=ar(0,4);0;5;(0,18)$XAEBTnbxpsAA2Tp.R:S(0,18)adjust_lon:P(0,18);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06imolwinv.cBbss.bssDdata.dataDrodata.rodatasincosadjust_lonasin$XBEBTnbxpsAA2Tp.imolwinv.__func__imolwinvradiusptitle$XAEBTnbxpsAA2Tp.feast$XAEBTnbxpsAA2Tp.lon_center$XAEBTnbxpsAA2Tp.R$XBEBTnbxpsAA2Tp.imolwinvint.__func__imolwinvint h /37BG j(sz800 , 0 < @ D H T X \ ` l p t x          ( (     0 0     8  8  $ ( 4 @8 @@ D P T ` Hd Hl p |   P P     X X     ` `d `|   h h   p p   x x< @ L P              (L d h x       , 0 P T t x       < @ ` d          L P p t 4 php!% +  7 0F h  QPk_!h#ap$\@ x%l  lamazfor.o/ 1073924722 1032 20 100644 10760 ` ELF'4(.shstrtab.text.bss.data1.rodata1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @;X@X;X@X;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?Ȣ;XX@@آ;XX@@!   ȍ B!    BЅ BB?! Bt%!   ! B@;X@Xt#`@@ q>'!   ?h! ! B;X@Xh @? B؉ B!   BT$ $ !   ȍ B!    BЅ B‰ B!   BX$ $ 'LAMBERT AZIMUTHAL EQUAL-AREAlamaz-forwardPoint projects to a circle of radius = %lf @?lamazforintlamazfor d"d-8.8/<@r4$ C$L o      lamazfor.c/ecs/hdfeos/gctp/src/lamazfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbypsAA2Up./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o lamazfor.o lamazfor.c -W0,-xp\$XAEBTnbypsAA2Up.lamazforint$XBEBTnbypsAA2Up.lamazforint.__func__lamazfor$XBEBTnbypsAA2Up.lamazfor.__func__$XAEBTnbypsAA2Up.false_northing$XAEBTnbypsAA2Up.false_easting$XAEBTnbypsAA2Up.cos_lat_o$XAEBTnbypsAA2Up.sin_lat_o$XAEBTnbypsAA2Up.R$XAEBTnbypsAA2Up.lon_center, d"d-8.8/<@rӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ e o   X D4XD5lD6D7D8D<D=D>D?D@DAD , DBTT $ E Q ]T gX4 q     ʀ Ӏ ހ@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ e o   X D7XD8lD9D:D;D<D@DADBDCDD$DEX , DFhh $ E O YT eX4 q {   DX4DYPDZlD[D\D^D_DaDbDc8DdT|Df|DgDh8Dj8DkDmDnDpDq , Dr$$ (!/(!/x>(!/a(!/(!/-(!/\(!/@$$$4$J$`$v$$$$$$ $&blamazinv.c/ecs/hdfeos/gctp/src/lamazinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbzpsAA2Vp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hlamazinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)lamazinv.c$XBEBTnbzpsAA2Vp.lamazinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)lamazinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)Rh:(0,18)z:(0,18)sin_z:(0,18)cos_z:(0,18)temp:(0,18)$XBEBTnbzpsAA2Vp.lamazinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbzpsAA2Vp.false_northing:S(0,18)$XAEBTnbzpsAA2Vp.false_easting:S(0,18)$XAEBTnbzpsAA2Vp.cos_lat_o:S(0,18)$XAEBTnbzpsAA2Vp.sin_lat_o:S(0,18)$XAEBTnbzpsAA2Vp.R:S(0,18)$XAEBTnbzpsAA2Vp.lat_center:S(0,18)$XAEBTnbzpsAA2Vp.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06lamazinv.cBbss.bssDdata.dataDrodata.rodataatan2adjust_lonsinfabsasinzp_errorsqrt$XBEBTnbzpsAA2Vp.lamazinv.__func__lamazinvoffsetpcenlatcenlonradiusptitletsincos$XAEBTnbzpsAA2Vp.cos_lat_o$XAEBTnbzpsAA2Vp.sin_lat_o$XAEBTnbzpsAA2Vp.false_northing$XAEBTnbzpsAA2Vp.false_easting$XAEBTnbzpsAA2Vp.lat_center$XAEBTnbzpsAA2Vp.lon_center$XAEBTnbzpsAA2Vp.R$XBEBTnbzpsAA2Vp.lamazinvint.__func__lamazinvint 8 0/5@DIOW\< 40(  )Eat0 xl p                ,4 8 D H `     , 0 < @ T X l p |           , 0 \ p t             (  (4 8 T X    ( (  4 8 `t  4 8BE%+ 7/F @  Q`'_"h$-p% x',  lamccfor.o/ 1073924734 1032 20 100644 14300 ` ELF54(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ؅B;X@X!  !  @@@ )'!   !    ?! B! $ $ !   ;X@X! $ $ ! $ $ ! $ $ ;XX@@?!   ;XX;XX;X@X?!   ;XX;XX;X@X?xؠ;XX@@!   ;XX;XX;X@X?!   ;XX;XX;X@X?p!   ;X@X?!   !   ;XX;XX;X@X?؅;X@X!  ;X@X! ?hxp ;X@Xh ! $ $ ! $ $ ?X!   ?`x;XX`;X@X` @X ! $ $ !   !    B?P!   ;XX;X@XP @! $ $ ! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X'@'X'T'P'L'H'DDH?LP?;X@X! ! B;X@X?! .;X@X?!   ;XX;XX;X@X?!   !    B?!   ;XX;X@X @?!    B?!  !  @@ ,A'! ?!   ?!   ;X@X @??;X@X @!   BT$ $ !   ??;X@X @!   BX$ $ 'Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedlamcc-for=|׽?@ !TD-?lamccforintlamccfor{ d"d-8.8/<@~4$ C$L o       " 5 I b lamccfor.c/ecs/hdfeos/gctp/src/lamccfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb_psAA2Wp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o lamccfor.o lamccfor.c -W0,-xp\$XAEBTnb_psAA2Wp.lamccforint$XBEBTnb_psAA2Wp.lamccforint.__func__lamccfor$XBEBTnb_psAA2Wp.lamccfor.__func__$XAEBTnb_psAA2Wp.false_northing$XAEBTnb_psAA2Wp.false_easting$XAEBTnb_psAA2Wp.rh$XAEBTnb_psAA2Wp.f0$XAEBTnb_psAA2Wp.ns$XAEBTnb_psAA2Wp.center_lat$XAEBTnb_psAA2Wp.center_lon$XAEBTnb_psAA2Wp.e$XAEBTnb_psAA2Wp.es$XAEBTnb_psAA2Wp.r_minor$XAEBTnb_psAA2Wp.r_major d"d-8.8/<@~Ӏ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z      ̠ ߠ|     % 0 < Gx Rp ]D>|D?D@DADEDHDI DL DMHDNlDPDQDRDSDTDU DVXDWxDXDYDZD\LD]|D_D`DaDDfDgDhDi Dj(Dk8Dml h, Dn|| $   TX4'5BD~4DlDDD08D8DTpDpDDDDD$DL, D(!/h(!/(!0(!0p(!0\4(!0@X(!0$|(!0(!/(!/O(!/6$$-$C$\${$$$$$$8$L$`$z$$$blamccfor.c/ecs/hdfeos/gctp/src/lamccfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb_psAA2Wp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hlamccforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)c_lon:p(0,18)c_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)sin_po:(0,18)cos_po:(0,18)con:(0,18)ms1:(0,18)ms2:(0,18)temp:(0,18)ts0:(0,18)ts1:(0,18)ts2:(0,18)lamccfor.c$XBEBTnb_psAA2Wp.lamccforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)lamccfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)con:(0,18)rh1:(0,18)sinphi:(0,18)theta:(0,18)ts:(0,18)$XBEBTnb_psAA2Wp.lamccfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnb_psAA2Wp.false_northing:S(0,18)$XAEBTnb_psAA2Wp.false_easting:S(0,18)$XAEBTnb_psAA2Wp.rh:S(0,18)$XAEBTnb_psAA2Wp.f0:S(0,18)$XAEBTnb_psAA2Wp.ns:S(0,18)$XAEBTnb_psAA2Wp.center_lat:S(0,18)$XAEBTnb_psAA2Wp.center_lon:S(0,18)$XAEBTnb_psAA2Wp.e:S(0,18)$XAEBTnb_psAA2Wp.es:S(0,18)$XAEBTnb_psAA2Wp.r_minor:S(0,18)$XAEBTnb_psAA2Wp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06lamccfor.cBbss.bssDdata.dataDrodata.rodatacosadjust_lon$XBEBTnb_psAA2Wp.lamccfor.__func__lamccforoffsetporigincenlonmerstanparlradius2ptitlepowlogsintsfnzmsfnztsincossqrtp_errorfabs$XAEBTnb_psAA2Wp.rh$XAEBTnb_psAA2Wp.f0$XAEBTnb_psAA2Wp.ns$XAEBTnb_psAA2Wp.center_lat$XAEBTnb_psAA2Wp.center_lon$XAEBTnb_psAA2Wp.e$XAEBTnb_psAA2Wp.es$XAEBTnb_psAA2Wp.false_easting$XAEBTnb_psAA2Wp.false_northing$XAEBTnb_psAA2Wp.r_minor$XAEBTnb_psAA2Wp.r_major$XBEBTnb_psAA2Wp.lamccforint.__func__lamccforint X (/3>4 ajryPH@ 8%0A(T h( $ $ # # " " ! !      0# 4# @$ D$ X \ l p |          $0 4 \         ( , Plt x       ,D H T$ X$ d h      L L$ $ # #    0 @ H! L! X" \" t       $ @L P x$ $            d$ d0D H P T h l ! !   " " 4 P X  =% +  7 {F \  QX_) h* p,p x/0T  lamccinv.o/ 1073924736 1032 20 100644 14612 ` ELF64(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ؅B;X@X!  !  @@@ )'!   !    ?! B! $ $ !   ;X@X! $ $ ! $ $ ! $ $ ;XX@@?!   ;XX;XX;X@X?!   ;XX;XX;X@X?xؠ;XX@@!   ;XX;XX;X@X?!   ;XX;XX;X@X?p!   ;X@X?!   !   ;XX;XX;X@X?؅;X@X!  ;X@X! ?hxp ;X@Xh ! $ $ ! $ $ ?X!   ?`x;XX`;X@X` @X ! $ $ !   !    B?P!   ;XX;X@XP @! $ $ ! @!   !   ;XX;X@X;XX;X@X!   ;X@X;X@X!   !   ;XX;X@X'`'X'T'P'L'H'DDH?LP?'!   ?!   艡!   B?!   ! B腠BB;X@X?! ?B腠BB;X@X!?! ?! ?! B  B腡 B;XX;X@X?! B !   ! 4! !    ?!   !    B;XX;X@X?!   Р;XX;XX@X$ $ Ā "' ! ! BX$ $ !    !   B;X@XT$ $ 'Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC=|׽?@ !TD-?lamccinvintlamccinv{ d"d-8.8/<@ʀ4$ C$L o       " 5 I b lamccinv.c/ecs/hdfeos/gctp/src/lamccinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbAqsAA2Xp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o lamccinv.o lamccinv.c -W0,-xp\$XAEBTnbAqsAA2Xp.lamccinvint$XBEBTnbAqsAA2Xp.lamccinvint.__func__lamccinv$XBEBTnbAqsAA2Xp.lamccinv.__func__$XAEBTnbAqsAA2Xp.false_northing$XAEBTnbAqsAA2Xp.false_easting$XAEBTnbAqsAA2Xp.rh$XAEBTnbAqsAA2Xp.f0$XAEBTnbAqsAA2Xp.ns$XAEBTnbAqsAA2Xp.center_lat$XAEBTnbAqsAA2Xp.center_lon$XAEBTnbAqsAA2Xp.e$XAEBTnbAqsAA2Xp.es$XAEBTnbAqsAA2Xp.r_minor$XAEBTnbAqsAA2Xp.r_major d"d-8.8/<@ʀӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z      ̠ ߠ|     % 0 < Gx Rp ]D>|D?D@DADEDHDI DL DMHDNlDPDQDRDSDTDU DVXDWxDXDYDZD\LD]|D_D`DaDDgDhDiDj Dk(Dl8Dnl h, Do|| $   TX4'1>D4D8DTDDDDDDD(DDDpDDDDXDhtD|DDI, D(!/(!/h(!0(!0p(!0\1(!0@U(!0$y(!0(!/(!/O(!/6$$6$T$j$$$$$$+$A$_$s$$$$$blamccinv.c/ecs/hdfeos/gctp/src/lamccinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbAqsAA2Xp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hlamccinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)lat1:p(0,18)lat2:p(0,18)c_lon:p(0,18)c_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)sin_po:(0,18)cos_po:(0,18)con:(0,18)ms1:(0,18)ms2:(0,18)temp:(0,18)ts0:(0,18)ts1:(0,18)ts2:(0,18)lamccinv.c$XBEBTnbAqsAA2Xp.lamccinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)lamccinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh1:(0,18)con:(0,18)ts:(0,18)theta:(0,18)flag:(0,4)$XBEBTnbAqsAA2Xp.lamccinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbAqsAA2Xp.false_northing:S(0,18)$XAEBTnbAqsAA2Xp.false_easting:S(0,18)$XAEBTnbAqsAA2Xp.rh:S(0,18)$XAEBTnbAqsAA2Xp.f0:S(0,18)$XAEBTnbAqsAA2Xp.ns:S(0,18)$XAEBTnbAqsAA2Xp.center_lat:S(0,18)$XAEBTnbAqsAA2Xp.center_lon:S(0,18)$XAEBTnbAqsAA2Xp.e:S(0,18)$XAEBTnbAqsAA2Xp.es:S(0,18)$XAEBTnbAqsAA2Xp.r_minor:S(0,18)$XAEBTnbAqsAA2Xp.r_major:S(0,18)phi2z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)stanparl:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06lamccinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonphi2zatan2$XBEBTnbAqsAA2Xp.lamccinv.__func__lamccinvoffsetporigincenlonmerstanparlradius2ptitlepowlogsintsfnzmsfnztsincossqrtp_errorfabs$XAEBTnbAqsAA2Xp.rh$XAEBTnbAqsAA2Xp.f0$XAEBTnbAqsAA2Xp.ns$XAEBTnbAqsAA2Xp.center_lat$XAEBTnbAqsAA2Xp.center_lon$XAEBTnbAqsAA2Xp.e$XAEBTnbAqsAA2Xp.es$XAEBTnbAqsAA2Xp.false_northing$XAEBTnbAqsAA2Xp.false_easting$XAEBTnbAqsAA2Xp.r_minor$XAEBTnbAqsAA2Xp.r_major$XBEBTnbAqsAA2Xp.lamccinvint.__func__lamccinvint X 0/:@F< irzPH@8-0I(\ p0 % % $ $ # # " "      0$ 4$ @% D% X \ l! p! |! !         $0 4 \         ( , Plt x       ,D H T% X% d h      L L% % $ $    0@ H# L# X" \" t # #   "  " 4 8 D H t         $ ( < @ L P d h l p % %     , 0 4 (8 (T X h l 4  pX pd E% +  7 ({F P  Q_)h+~p- x0  merfor.o/ 1073924737 1032 20 100644 11564 ` ELF*4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ ;X@X! ?! ?!   ?;X@X @?;X@X @;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'h'X'T'P'L'H'DDH?LP?;X@X! ! B;X@X!  !  0@@ 5R';X@X?!   ;XX;XX;X@X?!   ?!   !    B?!   ;X@XЅ @ȅBT$ $ !   ?!   !    B?;X@XЅ @ȅX$ $ 'MERCATORTransformation cannot be computed at the polesmer-forward?@ !TD-?=|׽merforintmerforC d d)8*8+<@ʁ4 $ 7$> _ ~       * merfor.c/ecs/hdfeos/gctp/src/merfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbBqsAA2Yp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o merfor.o merfor.c -W0,-xp\$XAEBTnbBqsAA2Yp.merforint$XBEBTnbBqsAA2Yp.merforint.__func__merfor$XBEBTnbBqsAA2Yp.merfor.__func__$XAEBTnbBqsAA2Yp.false_easting$XAEBTnbBqsAA2Yp.false_northing$XAEBTnbBqsAA2Yp.m1$XAEBTnbBqsAA2Yp.es$XAEBTnbBqsAA2Yp.e$XAEBTnbBqsAA2Yp.lat_origin$XAEBTnbBqsAA2Yp.lon_center$XAEBTnbBqsAA2Yp.r_minor$XAEBTnbBqsAA2Yp.r_majorM d d)8*8+<@ʁπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ f t    d π ۄD6dD7xD8D9D:D;D=D>D?(D@TDDDEDF4DGPDHlDI , DJ *$ \ h tT ~X4  DZ4D\D]DaDbDcDdlDf , Dg (!/D (!/$2(!/N(!/cj(!/w(!/(!.(!.(!.$)$G$]$v$$$$$$$&$9$Lbmerfor.c/ecs/hdfeos/gctp/src/merfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbBqsAA2Yp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmerforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)merfor.c$XBEBTnbBqsAA2Yp.merforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)merfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)ts:(0,18)sinphi:(0,18)$XBEBTnbBqsAA2Yp.merfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbBqsAA2Yp.false_easting:S(0,18)$XAEBTnbBqsAA2Yp.false_northing:S(0,18)$XAEBTnbBqsAA2Yp.m1:S(0,18)$XAEBTnbBqsAA2Yp.es:S(0,18)$XAEBTnbBqsAA2Yp.e:S(0,18)$XAEBTnbBqsAA2Yp.lat_origin:S(0,18)$XAEBTnbBqsAA2Yp.lon_center:S(0,18)$XAEBTnbBqsAA2Yp.r_minor:S(0,18)$XAEBTnbBqsAA2Yp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06merfor.cBbss.bssDdata.dataDrodata.rodatalogadjust_lontsfnzp_errorfabs$XBEBTnbBqsAA2Yp.merfor.__func__merforoffsetporigincenlonmerradius2ptitlesincossqrt$XAEBTnbBqsAA2Yp.m1$XAEBTnbBqsAA2Yp.e$XAEBTnbBqsAA2Yp.es$XAEBTnbBqsAA2Yp.false_easting$XAEBTnbBqsAA2Yp.false_northing$XAEBTnbBqsAA2Yp.lat_origin$XAEBTnbBqsAA2Yp.lon_center$XAEBTnbBqsAA2Yp.r_minor$XAEBTnbBqsAA2Yp.r_major$XBEBTnbBqsAA2Yp.merforint.__func__merforint H -1<BJO*pw@80( &B^w x |                 ( , 8 < LT X l            $ <D H X` d t|     $ ( , 0 @ H L ` d p            (L P ` d p t 4 HH1% +  7CF @  QM_!ah#p$ x&  merinv.o/ 1073924738 1032 20 100644 11076 ` ELF(4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ ;X@X! ?! ?!   ?;X@X @?;X@X @;X@X ! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'x'X'T'P'L'H'DDH?LP?'!   ?!   ?菠#!   !    B;X@X?!   ;XX;XX@X$ $ ܀ '!   !   !    B…B;X@XT$ $ 'MERCATOR?merinvintmerinvC d d)8*8+<@ʂ4 $ 7$> _ ~       * merinv.c/ecs/hdfeos/gctp/src/merinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbCqsAA2Zp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o merinv.o merinv.c -W0,-xp\$XAEBTnbCqsAA2Zp.merinvint$XBEBTnbCqsAA2Zp.merinvint.__func__merinv$XBEBTnbCqsAA2Zp.merinv.__func__$XAEBTnbCqsAA2Zp.false_easting$XAEBTnbCqsAA2Zp.false_northing$XAEBTnbCqsAA2Zp.m1$XAEBTnbCqsAA2Zp.es$XAEBTnbCqsAA2Zp.e$XAEBTnbCqsAA2Zp.lat_origin$XAEBTnbCqsAA2Zp.lon_center$XAEBTnbCqsAA2Zp.r_minor$XAEBTnbCqsAA2Zp.r_major d d)8*8+<@ʂπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ f t    d π ۄD6dD7xD8D9D:D;D=D>D?(D@TDDDEDF4DGPDHlDI , DJ *$ \ f pT |X4  D[4D\8D]TD^pD_D`DaDb Ddd , Dett (!/D(!/$/(!/K(!/cg(!/w(!/(!.(!.(!. $6$P$n$$$$$$$ $bmerinv.c/ecs/hdfeos/gctp/src/merinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbCqsAA2Zp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmerinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)merinv.c$XBEBTnbCqsAA2Zp.merinvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)merinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)ts:(0,18)flag:(0,4)$XBEBTnbCqsAA2Zp.merinv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbCqsAA2Zp.false_easting:S(0,18)$XAEBTnbCqsAA2Zp.false_northing:S(0,18)$XAEBTnbCqsAA2Zp.m1:S(0,18)$XAEBTnbCqsAA2Zp.es:S(0,18)$XAEBTnbCqsAA2Zp.e:S(0,18)$XAEBTnbCqsAA2Zp.lat_origin:S(0,18)$XAEBTnbCqsAA2Zp.lon_center:S(0,18)$XAEBTnbCqsAA2Zp.r_minor:S(0,18)$XAEBTnbCqsAA2Zp.r_major:S(0,18)phi2z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)exp:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06merinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonphi2zexp$XBEBTnbCqsAA2Zp.merinv.__func__merinvoffsetporigincenlonmerradius2ptitlesincossqrt$XAEBTnbCqsAA2Zp.m1$XAEBTnbCqsAA2Zp.e$XAEBTnbCqsAA2Zp.es$XAEBTnbCqsAA2Zp.false_easting$XAEBTnbCqsAA2Zp.false_northing$XAEBTnbCqsAA2Zp.lat_origin$XAEBTnbCqsAA2Zp.lon_center$XAEBTnbCqsAA2Zp.r_minor$XAEBTnbCqsAA2Zp.r_major$XBEBTnbCqsAA2Zp.merinvint.__func__merinvint H-8>Bcjry@80( 5Qj x |                 ( , 8 < LT X l            $ <D H X` d t |        8 < \ ` l p          04 h H 0%I+L 7<CF  Q_ 7h!p# x%l  millfor.o/ 1073924739 1032 20 100644 9132 ` ELF!T4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'p'X'T'P'L'H'DDH?LP?!   ;X@X?!   !    BBT$ $ !   ?!   ?! ! ! …B;X@X;X@X؉ @! BЅBX$ $ 'MILLER CYLINDRICAL@ !TD-@@?millforintmillfor d!d+8,8-<@ʃ4 $ =$E g    millfor.c/ecs/hdfeos/gctp/src/millfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbCqsAA2ap./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o millfor.o millfor.c -W0,-xp\$XAEBTnbCqsAA2ap.millforint$XBEBTnbCqsAA2ap.millforint.__func__millfor$XBEBTnbCqsAA2ap.millfor.__func__$XAEBTnbCqsAA2ap.false_northing$XAEBTnbCqsAA2ap.false_easting$XAEBTnbCqsAA2ap.R$XAEBTnbCqsAA2ap.lon_center d!d+8,8-<@ʃр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D1LD2`D3tD4D8D9D:D;D< , D= $ % 1 =T GX4 QDL4DM\DNDP$ ], DQ44 (!/[ (!/< (!/  (!/ /$I$g$}$$$$bmillfor.c/ecs/hdfeos/gctp/src/millfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbCqsAA2ap.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmillforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)millfor.c$XBEBTnbCqsAA2ap.millforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)millfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)$XBEBTnbCqsAA2ap.millfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbCqsAA2ap.false_northing:S(0,18)$XAEBTnbCqsAA2ap.false_easting:S(0,18)$XAEBTnbCqsAA2ap.R:S(0,18)$XAEBTnbCqsAA2ap.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)log:P(0,18);(0,18)tan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06millfor.cBbss.bssDdata.dataDrodata.rodatatanlogadjust_lon$XBEBTnbCqsAA2ap.millfor.__func__millforoffsetpcenlonradiusptitle$XAEBTnbCqsAA2ap.false_northing$XAEBTnbCqsAA2ap.false_easting$XAEBTnbCqsAA2ap.lon_center$XAEBTnbCqsAA2ap.R$XBEBTnbCqsAA2ap.millforint.__func__millforint  .26A+c@Dksz  ` d t x             x |                (4D H 4 @ @X3%+ 7@Fl  Q _Th&p ` x  millinv.o/ 1073924740 1032 20 100644 9116 ` ELF!D4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'㿈'X'T'P'L'H'DDH?LP?!   ?!   ?!   !    …B;X@XT$ $ !    ! ;X@X;X@X! ! ‰! BX$ $ 'MILLER CYLINDRICAL?@ !TD-@@millinvintmillinv d!d+8,8-<@ʄ4 $ =$E g    millinv.c/ecs/hdfeos/gctp/src/millinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbDqsAA2bp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o millinv.o millinv.c -W0,-xp\$XAEBTnbDqsAA2bp.millinvint$XBEBTnbDqsAA2bp.millinvint.__func__millinv$XBEBTnbDqsAA2bp.millinv.__func__$XAEBTnbDqsAA2bp.false_northing$XAEBTnbDqsAA2bp.false_easting$XAEBTnbDqsAA2bp.R$XAEBTnbDqsAA2bp.lon_center d!d+8,8-<@ʄр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D1LD2`D3tD4D8D9D:D;D< , D= $ % / 9T EX4DK4DLPDNlDODQ Q, DR,, (!/[ (!/< (!/ (!/ #$=$[$q$$$$bmillinv.c/ecs/hdfeos/gctp/src/millinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbDqsAA2bp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmillinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)millinv.c$XBEBTnbDqsAA2bp.millinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)millinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)$XBEBTnbDqsAA2bp.millinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbDqsAA2bp.false_northing:S(0,18)$XAEBTnbDqsAA2bp.false_easting:S(0,18)$XAEBTnbDqsAA2bp.R:S(0,18)$XAEBTnbDqsAA2bp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)exp:P(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06millinv.cBbss.bssDdata.dataDrodata.rodataexpatanadjust_lon$XBEBTnbDqsAA2bp.millinv.__func__millinvoffsetpcenlonradiusptitle$XAEBTnbDqsAA2bp.false_northing$XAEBTnbDqsAA2bp.false_easting$XAEBTnbDqsAA2bp.lon_center$XAEBTnbDqsAA2bp.R$XBEBTnbDqsAA2bp.millinvint.__func__millinvint  .27B+d@<lt{  ` d t x             x |             $, 0 4 8 D H 4 8 8P3%+ 78Fl  Q |_Ah'p` xp  molwfor.o/ 1073924741 1032 20 100644 10236 ` ELF%4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'@'X'T'P'L'H'DDH?LP?!   ;X@X??;X@X! B?'?;X@X@ȅ¿#?! ?;X@X@ ?ЅB?;X@X! Ā 2 !  @@ S'Ġ '! ?! ! ?;X@X! ! ?!   ! Bཡ B?;X@X @!   BT$ $ !   ! B?;X@X @!   BX$ $ 'MOLLWEIDEIteration failed to convergeMollweide-forward@ !TD-?=|׽@?d)?f;molwforintmolwfor d!d+8,8-<@ʅ4 $ =$E g    molwfor.c/ecs/hdfeos/gctp/src/molwfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbEqsAA2cp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o molwfor.o molwfor.c -W0,-xp\$XAEBTnbEqsAA2cp.molwforint$XBEBTnbEqsAA2cp.molwforint.__func__molwfor$XBEBTnbEqsAA2cp.molwfor.__func__$XAEBTnbEqsAA2cp.false_northing$XAEBTnbEqsAA2cp.false_easting$XAEBTnbEqsAA2cp.R$XAEBTnbEqsAA2cp.lon_center: d!d+8,8-<@ʅр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D-LD.`D/tD0D4D5D6D7D8 , D9 $ % 1 =T GX4 Q b o  DK4DL\DMdDQDSDTDUDV(8DX8DYP\DQ\D[hpD\pDaDbDcDd8De , Df (!/,(!/ ((!/LC(!/_g$$$$$$$$&$9bmolwfor.c/ecs/hdfeos/gctp/src/molwfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbEqsAA2cp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmolwforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)molwfor.c$XBEBTnbEqsAA2cp.molwforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)molwfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)theta:(0,18)delta_theta:(0,18)con:(0,18)i:(0,4)$XBEBTnbEqsAA2cp.molwfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbEqsAA2cp.false_northing:S(0,18)$XAEBTnbEqsAA2cp.false_easting:S(0,18)$XAEBTnbEqsAA2cp.R:S(0,18)$XAEBTnbEqsAA2cp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06molwfor.cBbss.bssDdata.dataDrodata.rodatap_errorfabscossinadjust_lon$XBEBTnbEqsAA2cp.molwfor.__func__molwforoffsetpcenlonradiusptitle$XAEBTnbEqsAA2cp.lon_center$XAEBTnbEqsAA2cp.R$XAEBTnbEqsAA2cp.false_northing$XAEBTnbEqsAA2cp.false_easting$XBEBTnbEqsAA2cp.molwforint.__func__molwforint 8.6;?CNCp@x8 ( ` d t x           x |         @H L x |              ( (, (H X \ x |  0 0   4  >K%3+4 7F  QL:_h ,3p!` x"  molwinv.o/ 1073924742 1032 20 100644 9912 ` ELF$`4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'X'X'T'P'L'H'DDH?LP?!   ?!   ?!   ! B?;X@X! ! ?;X@X?!   ??!   ! B?;X@XЅ @ȅ B;X@XT$ $ T  ! ! T$ $ T  ! ! T$ $ ! B?;X@X@! ?;X@X! ! ?;X@XX$ $ 'MOLLWEIDE?f;??d) !TD-@ !TD-@?molwinvintmolwinv d!d+8,8-<@ʆ4 $ =$E g    molwinv.c/ecs/hdfeos/gctp/src/molwinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbGqsAA2dp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o molwinv.o molwinv.c -W0,-xp\$XAEBTnbGqsAA2dp.molwinvint$XBEBTnbGqsAA2dp.molwinvint.__func__molwinv$XBEBTnbGqsAA2dp.molwinv.__func__$XAEBTnbGqsAA2dp.false_northing$XAEBTnbGqsAA2dp.false_easting$XAEBTnbGqsAA2dp.R$XAEBTnbGqsAA2dp.lon_center d!d+8,8-<@ʆр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D,LD-`D.tD/D3D4D5D6D7 , D8 $ % / 9T EX4 Q ^DG4DHPDIlDNDODPDQXDRDSDTDU4DVP i, DW`` (!/, (!/ (!/L(!/_;$U$s$$$$$$$bmolwinv.c/ecs/hdfeos/gctp/src/molwinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbGqsAA2dp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hmolwinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)molwinv.c$XBEBTnbGqsAA2dp.molwinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)molwinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)theta:(0,18)arg:(0,18)$XBEBTnbGqsAA2dp.molwinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbGqsAA2dp.false_northing:S(0,18)$XAEBTnbGqsAA2dp.false_easting:S(0,18)$XAEBTnbGqsAA2dp.R:S(0,18)$XAEBTnbGqsAA2dp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06molwinv.cBbss.bssDdata.dataDrodata.rodatasincosadjust_lonasinfabs$XBEBTnbGqsAA2dp.molwinv.__func__molwinvoffsetpcenlonradiusptitle$XAEBTnbGqsAA2dp.lon_center$XAEBTnbGqsAA2dp.R$XAEBTnbGqsAA2dp.false_northing$XAEBTnbGqsAA2dp.false_easting$XBEBTnbGqsAA2dp.molwinvint.__func__molwinvint 8.26AFKCm@pu}8 % ` d t x           x |                8 < H L `           ( ( 0 4 H P 0T 0h 0l 0| 4 h h xK%+ 7xFP  Q@_Dh0p  x!  obleqfor.o/ 1073924743 1032 20 100644 12720 ` ELF/X4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textX'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! @!   ;X@X!   ;X@X!   ;X@X!   ! ;XX@!   ! ;XX@!   ! ;XX@!   !   ;XX;X@X!   ! #`;XX@@''X'T'P'L'H'DDH?LP?!   ?Ȣ;XX@@آ;XX@@!   ȍ B!    BЅ BB;X@X?ؕB!   ȑ B!   FЅ B;XX;X@X!   B?;XX@@! ;X@X B? B? B?! ;X@X?! ?p;X@Xp @?h B!    ;X@Xh ?;X@X?x!   !   B?`x! B;X@X` @!   BX$ $ !   !   B?`! B;X@X` @?Xx;X@XX @?Px B!    ;X@XP !   BT$ $ 'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @obleqforintobleqforg d"d-8.8/<@ʇ4$ C$L o        4 K obleqfor.c/ecs/hdfeos/gctp/src/obleqfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbHqsAA2ep./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o obleqfor.o obleqfor.c -W0,-xp\$XAEBTnbHqsAA2ep.obleqforint$XBEBTnbHqsAA2ep.obleqforint.__func__obleqfor$XBEBTnbHqsAA2ep.obleqfor.__func__$XAEBTnbHqsAA2ep.false_northing$XAEBTnbHqsAA2ep.false_easting$XAEBTnbHqsAA2ep.cos_lat_o$XAEBTnbHqsAA2ep.sin_lat_o$XAEBTnbHqsAA2ep.R$XAEBTnbHqsAA2ep.n$XAEBTnbHqsAA2ep.m$XAEBTnbHqsAA2ep.theta$XAEBTnbHqsAA2ep.lat_o$XAEBTnbHqsAA2ep.lon_center( d"d-8.8/<@ʇӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z     ˠ ٠ | D4|D5D6D7D8D9D:D;D?D@,DAHDBdDCDDDEDFDK,DL` , DMpp T$   T X4  ŀ ڀ    .<HWfoxDf4DgPDhpDiDkDlLDmlDnDoDpDqDr<DsPDtDux, Dv(!/(!/ (!0m/(!0RR(!/2m(!/(!/x(!/(!/a(!/E$"$@$V$l$$$$$$$$'bobleqfor.c/ecs/hdfeos/gctp/src/obleqfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbHqsAA2ep.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hobleqforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)shape_m:p(0,18)shape_n:p(0,18)angle:p(0,18)false_east:p(0,18)false_north:p(0,18)obleqfor.c$XBEBTnbHqsAA2ep.obleqforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)obleqfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)sin_delta_lon:(0,18)cos_delta_lon:(0,18)sin_lat:(0,18)cos_lat:(0,18)z:(0,18)Az:(0,18)sin_Az:(0,18)cos_Az:(0,18)temp:(0,18)x_prime:(0,18)y_prime:(0,18)M:(0,18)N:(0,18)$XBEBTnbHqsAA2ep.obleqfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbHqsAA2ep.false_northing:S(0,18)$XAEBTnbHqsAA2ep.false_easting:S(0,18)$XAEBTnbHqsAA2ep.cos_lat_o:S(0,18)$XAEBTnbHqsAA2ep.sin_lat_o:S(0,18)$XAEBTnbHqsAA2ep.R:S(0,18)$XAEBTnbHqsAA2ep.n:S(0,18)$XAEBTnbHqsAA2ep.m:S(0,18)$XAEBTnbHqsAA2ep.theta:S(0,18)$XAEBTnbHqsAA2ep.lat_o:S(0,18)$XAEBTnbHqsAA2ep.lon_center:S(0,18)genrpt:P(0,20);(0,18);(10,3)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)asin:P(0,18);(0,18)acos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06obleqfor.cBbss.bssDdata.dataDrodata.rodatacosasinsinatan2acos$XBEBTnbHqsAA2ep.obleqfor.__func__obleqfortsincosoffsetpgenrptcenlatcenlonradiusptitle$XAEBTnbHqsAA2ep.cos_lat_o$XAEBTnbHqsAA2ep.sin_lat_o$XAEBTnbHqsAA2ep.false_northing$XAEBTnbHqsAA2ep.false_easting$XAEBTnbHqsAA2ep.theta$XAEBTnbHqsAA2ep.n$XAEBTnbHqsAA2ep.m$XAEBTnbHqsAA2ep.lat_o$XAEBTnbHqsAA2ep.lon_center$XAEBTnbHqsAA2ep.R$XBEBTnbHqsAA2ep.obleqforint.__func__obleqforint P /38<BG js{H@80(2 EXo                   , 0 4< @ PX \ lt x        ( (   < <     4< @ L P T X h  (0 4 H L p           ( X \ hx |           0 @ D ` d p t         4 HPIP%m+p 7lgF   Q(_$h&Np(  x*0(  obleqinv.o/ 1073924744 1032 20 100644 12860 ` ELF/4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textX'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! @!   ;X@X!   ;X@X!   ;X@X!   ! ;XX@!   ! ;XX@!   ! ;XX@!   !   ;XX;X@X!   ! #`;XX@@''X'T'P'L'H'DDH?LP?!   ?!   ?!   ! ?!    B;X@X @?!   !    B?x! B!    ;X@Xx @?p;X@Xp ?!   ! ?;X@X @?;X@X! B?;X@X! B? B!    ;X@X @?h;X@Xh ?BBB;X@X! ?;X@X! B?;XX;X@X?!   ?;XX@@آ;XX@@!   Ѝ B!   ؉ B BB;X@XX$ $ !   ?`B!   Б B!   F B;XX;X@X`@;X@XT$ $ 'OBLATED EQUAL-AREAParameter m: Parameter n: Theta: @obleqinvintobleqinvg d"d-8.8/<@ʈ4$ C$L o        4 K obleqinv.c/ecs/hdfeos/gctp/src/obleqinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbIqsAAGgp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o obleqinv.o obleqinv.c -W0,-xp\$XAEBTnbIqsAAGgp.obleqinvint$XBEBTnbIqsAAGgp.obleqinvint.__func__obleqinv$XBEBTnbIqsAAGgp.obleqinv.__func__$XAEBTnbIqsAAGgp.false_northing$XAEBTnbIqsAAGgp.false_easting$XAEBTnbIqsAAGgp.cos_lat_o$XAEBTnbIqsAAGgp.sin_lat_o$XAEBTnbIqsAAGgp.R$XAEBTnbIqsAAGgp.n$XAEBTnbIqsAAGgp.m$XAEBTnbIqsAAGgp.theta$XAEBTnbIqsAAGgp.lat_o$XAEBTnbIqsAAGgp.lon_center% d"d-8.8/<@ʈӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ z     ˠ ٠ | D6|D7D8D9D:D;D<D=DADB,DCHDDdDEDFDGDHDM,DN` , DOpp T$   T X4   ʀ ׀    /EDf4DgPDhlDiDjHDkDlDmDnDDodDpDqDrDsDu4Dv[, Dw(!/(!/(!0m(!0R5(!/2P(!/k(!/x(!/(!/a(!/E$$$=$S$i$$$$$$$$$bobleqinv.c/ecs/hdfeos/gctp/src/obleqinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbIqsAAGgp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hobleqinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)center_lat:p(0,18)shape_m:p(0,18)shape_n:p(0,18)angle:p(0,18)false_east:p(0,18)false_north:p(0,18)obleqinv.c$XBEBTnbIqsAAGgp.obleqinvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)obleqinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)z:(0,18)sin_z:(0,18)cos_z:(0,18)Az:(0,18)temp:(0,18)x_prime:(0,18)y_prime:(0,18)M:(0,18)N:(0,18)diff_angle:(0,18)sin_diff_angle:(0,18)cos_diff_angle:(0,18)$XBEBTnbIqsAAGgp.obleqinv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbIqsAAGgp.false_northing:S(0,18)$XAEBTnbIqsAAGgp.false_easting:S(0,18)$XAEBTnbIqsAAGgp.cos_lat_o:S(0,18)$XAEBTnbIqsAAGgp.sin_lat_o:S(0,18)$XAEBTnbIqsAAGgp.R:S(0,18)$XAEBTnbIqsAAGgp.n:S(0,18)$XAEBTnbIqsAAGgp.m:S(0,18)$XAEBTnbIqsAAGgp.theta:S(0,18)$XAEBTnbIqsAAGgp.lat_o:S(0,18)$XAEBTnbIqsAAGgp.lon_center:S(0,18)genrpt:P(0,20);(0,18);(10,3)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06obleqinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonatan2sqrtsincosasin$XBEBTnbIqsAAGgp.obleqinv.__func__obleqinvtsincosoffsetpgenrptcenlatcenlonradiusptitle$XAEBTnbIqsAAGgp.cos_lat_o$XAEBTnbIqsAAGgp.sin_lat_o$XAEBTnbIqsAAGgp.false_northing$XAEBTnbIqsAAGgp.false_easting$XAEBTnbIqsAAGgp.theta$XAEBTnbIqsAAGgp.n$XAEBTnbIqsAAGgp.m$XAEBTnbIqsAAGgp.lat_o$XAEBTnbIqsAAGgp.lon_center$XAEBTnbIqsAAGgp.R$XBEBTnbIqsAAGgp.obleqinvint.__func__obleqinvint P /:@EIMR u~H@80&(= Pcz                   , 0 4< @ PX \ lt x        ( (   < <     4< @ L P T X h          0 4 L d h t x            , 4 8 L T X l p         ( , Xx            8L4 8P8I%+ 7gF   Q%_$h&p(` x*d  omerfor.o/ 1073924745 1032 20 100644 24820 ` ELF^4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㾀'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?????! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ! #`;XX@@! !   !   DD?! !   ;X@X?#`?%?!   ! ;XX;X@X @`…B;X@X! $ $ !   !    B!    B B ! $ $ !   ;X@X! ! ?x! ! $ $ ! ! $ $ !   !   !   ;XX;XX;X@X?x;X@X?!    B!    B! $ $ !   B! B! 3!   ! !   ??> Z! B;X@X@?8!   ??> Z! B;X@X?8!   ?88?x!   ;XX;X@X @! $ $ ! @!   !   ;XX;X@X!   ! ;XX@!   !   ;XX;X@X 8! ĉ! B?0;X@X!    ;X@X?(?0?(;X@X @;X@X!    ! $ $ ! B! ;XX@!   ;X@X!   ;X@X!   ;X@X?! |! ! B;X@X! l(! #`;XX@@! #`;XX@@!   ! '!   !    ?!   B! B;X@X!    ;X@X @! $ $ '!   !    ¿#?!   B! B;X@X!    ;X@X腧 @! $ $  !  @@ ';X@X? !    ;XX;XX;X@X?p;X@X? !    ;XX;XX;X@X?hp!   ;XX;X@X?`h!   ;XX;X@X?X!   ` ?88! ĉ! B?0!   BX` B…B ?PX`…B?H?@@!  ! ! B?@!  ! ! BB??@B! D?P?!   D@ B;X@X @H ;X@X   腧! $ $ !   ;X@X?@!   @ B;X@X0 ;X@X?(!   ?(;X@X @;X@X?! B! ;XX@! B! ;XX@! B! ;XX@! B! ;XX@;X@X!  !  @@ ';X@X?! ! ! B;X@X!  !  @@ '!   ;X@X! ! B;X@X!  !  @@ n'(! #`;XX@@! #`;XX@@!   ! '!   !    ?!   B! B;X@X!    ;X@X @! $ $ '!   !    ¿#?!   B! B;X@X!    ;X@X腧 @! $ $ ' 'X'T'P'L'H'DDH?LP?;X@X?!   ;X@X?!    B;X@X?;X@X! ! B;X@X! !   ;XX;XX;X@X?!   ?!   ;XX;X@X ?! ĉ! B?! ĉB! B?!    B!    B؅ ?!    B;X@X?;X@X! !   !    B B?7!   ?!    B!    BBЅ ;X@X @!    ?! !   ! B!    …B?!! !   ?!   ?!   艡 B!    ?;X@X! B;X@X!  !  @@ P'!   ! B?! …B;X@X @!    ?!   ?!   !    BB!    BBT$ $ !   !    BB!    BX$ $ 'OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-initPoint projects into infinityomer-for?@=|׽?@Lc˰@ !TD- !TD-@>z򚼯HomerforintomerforG d!d+8,8-<@ʉ4 $ =$E g ~        ' @ Y x       . omerfor.c/ecs/hdfeos/gctp/src/omerfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbIqsAAGhp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o omerfor.o omerfor.c -W0,-xp\$XAEBTnbIqsAAGhp.omerforint$XBEBTnbIqsAAGhp.omerforint.__func__omerfor$XBEBTnbIqsAAGhp.omerfor.__func__$XAEBTnbIqsAAGhp.cosaz$XAEBTnbIqsAAGhp.sinaz$XAEBTnbIqsAAGhp.cosgam$XAEBTnbIqsAAGhp.singam$XAEBTnbIqsAAGhp.u$XAEBTnbIqsAAGhp.el$XAEBTnbIqsAAGhp.d$XAEBTnbIqsAAGhp.al$XAEBTnbIqsAAGhp.bl$XAEBTnbIqsAAGhp.cos_p20$XAEBTnbIqsAAGhp.sin_p20$XAEBTnbIqsAAGhp.false_easting$XAEBTnbIqsAAGhp.false_northing$XAEBTnbIqsAAGhp.es$XAEBTnbIqsAAGhp.e$XAEBTnbIqsAAGhp.lat_origin$XAEBTnbIqsAAGhp.lon_origin$XAEBTnbIqsAAGhp.scale_factor$XAEBTnbIqsAAGhp.r_minor$XAEBTnbIqsAAGhp.r_majorI d!d+8,8-<@ʉр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$    Ƞ ؠ    ! . ; H U a m x x p h ` X P H ǀ@ Ӏ8 ܀0 (  DIDJDKDLDMDNDP$DQLDRpDTDUDVDW4DXDYLD[LD\XD]pDaDbDcDd8pDfpDgDi,Dl4DmHDrDsDtDuDw0@Dy@DzdD{DD D<DXDxDDD$DLD t |D |D    D D D D D @D lD D D D D D 0D LD lD D D D DD lD D D D 4D \D  D D  D D HDHD`lDlDDDDD8D`DD , DQ$TX4ȀӀ܀ D4DHDpDDDDdDDDD<D<ltDtDD HHPDPDlDDD D D$0D0DDDD X$, D hhh(!1(!1(!1u(!1](!1(!0(!08(!0T(!0p(!0o(!0V(!0(!/(!0/(!0C8(!/\(!1(!/(!/(!/$$$4$R$h$~$$$$$$,$@$Z$m$$$$bomerfor.c/ecs/hdfeos/gctp/src/omerfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbIqsAAGhp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.homerforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)azimuth:p(0,18)lon_orig:p(0,18)lat_orig:p(0,18)false_east:p(0,18)false_north:p(0,18)lon1:p(0,18)lat1:p(0,18)lon2:p(0,18)lat2:p(0,18)mode:p(0,4)temp:(0,18)con:(0,18)com:(0,18)ts:(0,18)ts1:(0,18)ts2:(0,18)h:(0,18)l:(0,18)j:(0,18)p:(0,18)dlon:(0,18)f:(0,18)g:(0,18)gama:(0,18)sinphi:(0,18)omerfor.c$XBEBTnbIqsAAGhp.omerforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)omerfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sin_phi:(0,18)t:(0,18)con:(0,18)q:(0,18)us:(0,18)vl:(0,18)ul:(0,18)vs:(0,18)s:(0,18)dlon:(0,18)ts1:(0,18)$XBEBTnbIqsAAGhp.omerfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbIqsAAGhp.cosaz:S(0,18)$XAEBTnbIqsAAGhp.sinaz:S(0,18)$XAEBTnbIqsAAGhp.cosgam:S(0,18)$XAEBTnbIqsAAGhp.singam:S(0,18)$XAEBTnbIqsAAGhp.u:S(0,18)$XAEBTnbIqsAAGhp.el:S(0,18)$XAEBTnbIqsAAGhp.d:S(0,18)$XAEBTnbIqsAAGhp.al:S(0,18)$XAEBTnbIqsAAGhp.bl:S(0,18)$XAEBTnbIqsAAGhp.cos_p20:S(0,18)$XAEBTnbIqsAAGhp.sin_p20:S(0,18)$XAEBTnbIqsAAGhp.false_easting:S(0,18)$XAEBTnbIqsAAGhp.false_northing:S(0,18)$XAEBTnbIqsAAGhp.es:S(0,18)$XAEBTnbIqsAAGhp.e:S(0,18)$XAEBTnbIqsAAGhp.lat_origin:S(0,18)$XAEBTnbIqsAAGhp.lon_origin:S(0,18)$XAEBTnbIqsAAGhp.scale_factor:S(0,18)$XAEBTnbIqsAAGhp.r_minor:S(0,18)$XAEBTnbIqsAAGhp.r_major:S(0,18)genrpt:P(0,20);(0,18);(10,3)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06omerfor.cBbss.bssDdata.dataDrodata.rodatalogcos$XBEBTnbIqsAAGhp.omerfor.__func__omerforadjust_lonp_erroratancenlatcenlontansinasinzoffsetpgenrptradius2ptitletsfnzfabspowtsincossqrt$XAEBTnbIqsAAGhp.u$XAEBTnbIqsAAGhp.cosaz$XAEBTnbIqsAAGhp.sinaz$XAEBTnbIqsAAGhp.cosgam$XAEBTnbIqsAAGhp.singam$XAEBTnbIqsAAGhp.lon_origin$XAEBTnbIqsAAGhp.el$XAEBTnbIqsAAGhp.d$XAEBTnbIqsAAGhp.al$XAEBTnbIqsAAGhp.bl$XAEBTnbIqsAAGhp.cos_p20$XAEBTnbIqsAAGhp.sin_p20$XAEBTnbIqsAAGhp.e$XAEBTnbIqsAAGhp.es$XAEBTnbIqsAAGhp.false_easting$XAEBTnbIqsAAGhp.false_northing$XAEBTnbIqsAAGhp.lat_origin$XAEBTnbIqsAAGhp.scale_factor$XAEBTnbIqsAAGhp.r_minor$XAEBTnbIqsAAGhp.r_major$XBEBTnbIqsAAGhp.omerforint.__func__omerforint X.26cXx`ksx'x?p[ho`XPH@80(" B^|X / / . . - - , , + + $* (* 4. 8. D/ H/ \ ` p) t) ) ) ( ( , , ' ' & &   ) ) ' '    ) $) 8D H P) T) d& h& t x  % % / / % % - - $ $ (, ,, <D H \ ` h l p# t#   " " ( ( , , ' ' % % &  & 8# <# H# L# \ ` h l , ,   # #   # #   (D# H# d% h% " "   / / . . - -    * * +  + 8T X d (h (|# # % % ! !   0 0 @ @(0! 4! DL, P, `h, l, |   8 8 ( (          ,4, 8, D H \$ `$ l% p% # #        $ $ % % # $# 4  8  D L P d  t x  `  `   ( (   ( ( D T% X% p % %  " "    (  ( " " D @ H @ ` H d H h 8 l 8  8  8  H  H  8  8  (  ( % %  (  D! H! X! \! p  |% %   # #    0  0     0 $ 0 , 0 < H 0 L 0 T X d p 0 t 0 |                8  8$ (( (8@ D X  \  h |, ,  8 8 ( (   @ @     $ ( , 0 @H, L, X \ p$ t$ % % # #        $ $ % % 4# 8# H L X` d x   ! ! , 8% <% Thp 8t 8x (| (  ( ( " " % % 0 4 @ (D (T X d (h (x |   % %  P P$ $ % % <$ @$ T X l p  % %   $ $  8 8% %    4 8 L P d$ h$ |% %      ` ` $ $  (  (  4D% H% ` d x* |*     + +     4 @k%+t 7hGFx  Q-(_@hBpEh xH  omerinv.o/ 1073924746 1032 20 100644 24520 ` ELF]p4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㾈'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?|?????! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ! #`;XX@@! !   !   DD?! !   ;X@X?#`?%? !   ! ;XX;X@X @`…B;X@X! $ $ !   !    B!    B B ! $ $ !   ;X@X! ! ! $ $ ! ! $ $ ! ! $ $ !   !   !   ;XX;XX;X@X! $ $ ;X@X?!    B!    B! $ $ !   B! B! 3!   ! !   ??> Z! B;X@X@?@!   ??> Z! B;X@X?@!   ?@@?!   !   ;XX;X@X @! $ $ ! @!   !   ;XX;X@X!   ! ;XX@!   !   ;XX;X@X @! ĉ! B?8;X@X!    ;X@X?0?8?0;X@X @;X@X!    ! $ $ ! B! ;XX@!   ;X@X!   ;X@X!   ;X@X?! |! ! B;X@X! l0! #`;XX@@! #`;XX@@!   ! '!   !    ?!   B! B;X@X!    ;X@X @! $ $ '!   !    ¿#?!   B! B;X@X!    ;X@X @! $ $  !  @@ ';X@X?(!   (;XX;XX;X@X?h;X@X?(!   (;XX;XX;X@X?`h!   ;XX;X@X?x`!   ;XX;X@X?p!   x ?@@! ĉ! B?8!   Bpx B…B ?Xpx…B?P?HH!  ! ! B?H!  ! ! BB??HB! D?X?!   DH B;X@X艧 @P ;X@X   ! $ $ !   ;X@X?H!   H B;X@X8 ;X@X?0!   ?0;X@X @;X@X?! B! ;XX@! B! ;XX@! B! ;XX@! B! ;XX@;X@X!  !  @@ ';X@X?! ! ! B;X@X!  !  @@ '!   ;X@X! ! B;X@X!  !  @@ n'0! #`;XX@@! #`;XX@@!   ! '!   !    ?!   B! B;X@X!    ;X@X @! $ $ '!   !    ¿#?!   B! B;X@X!    ;X@X @! $ $ '('X'T'P'L'H'DDH?LP?!   ?!   ?'!    B!    B?!    B!    BB?!   B?!   #ȉ B!    ;X@X?! ĉ! B?! ĉB! B?!    B!    ;X@X?!    B!    BB؅ ?;X@X! B;X@X!  %!   T$ $ !  ! ! BX$ $  ! ! BX$ $ m! !    ?!   ?! B…;X@X ;XX;X@X?!   ;XX;XX@X$ $  <'!    B!    ;X@X?!   ?!    B!    B;XX;X@X!    ?;X@XT$ $ 'OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-init?@=|׽?@Lc˰@ !TD- !TD-@omerinvintomerinv[ d!d+8,8-<@ʊ4 $ =$E g ~        ' ; T m       ) B omerinv.c/ecs/hdfeos/gctp/src/omerinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbKqsAAGip./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o omerinv.o omerinv.c -W0,-xp\$XAEBTnbKqsAAGip.omerinvint$XBEBTnbKqsAAGip.omerinvint.__func__omerinv$XBEBTnbKqsAAGip.omerinv.__func__$XAEBTnbKqsAAGip.cosaz$XAEBTnbKqsAAGip.sinaz$XAEBTnbKqsAAGip.cosgam$XAEBTnbKqsAAGip.singam$XAEBTnbKqsAAGip.u$XAEBTnbKqsAAGip.el$XAEBTnbKqsAAGip.d$XAEBTnbKqsAAGip.ts$XAEBTnbKqsAAGip.al$XAEBTnbKqsAAGip.bl$XAEBTnbKqsAAGip.cos_p20$XAEBTnbKqsAAGip.sin_p20$XAEBTnbKqsAAGip.false_easting$XAEBTnbKqsAAGip.false_northing$XAEBTnbKqsAAGip.es$XAEBTnbKqsAAGip.e$XAEBTnbKqsAAGip.lat_origin$XAEBTnbKqsAAGip.lon_origin$XAEBTnbKqsAAGip.scale_factor$XAEBTnbKqsAAGip.r_minor$XAEBTnbKqsAAGip.r_majorC d!d+8,8-<@ʊр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$    Ƞ ؠ    ! . ; H U a m x x p h ` X P H ɀ@ Ҁ8 ۀ0 ( DHDIDJDKDLDMDO$DPLDQpDSDTDUDV4DWDXLDZLD[dD\|D`DaDb DcPDeDfDhDDkLDl`DqDrDsDt DvTdDxdDyDzD~DDD`D|DDD DHDpD   D D    D D D D ,D dD D D D D ,D DD TD pD D D D D hD D D D 0D XD D  D D  D DlDlDDDD D D4D\DDD , DG$zTX4ǀрۀ D4DPDlDpDDDD@DdDDDDDDD`D|DDDDLDDDDD`|D|, D[(!1z(!1(!1(!1q(!1(!0(!0+(!0G(!0c(!0(!0o(!0V(!0(!/(!0/,(!0CG(!/k(!12(!/(!/(!/$$)$S$m$$$$$$$3$Q$e$y$$$$$$$bomerinv.c/ecs/hdfeos/gctp/src/omerinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbKqsAAGip.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.homerinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)azimuth:p(0,18)lon_orig:p(0,18)lat_orig:p(0,18)false_east:p(0,18)false_north:p(0,18)lon1:p(0,18)lat1:p(0,18)lon2:p(0,18)lat2:p(0,18)mode:p(0,4)temp:(0,18)con:(0,18)com:(0,18)h:(0,18)l:(0,18)ts1:(0,18)ts2:(0,18)j:(0,18)p:(0,18)dlon:(0,18)f:(0,18)g:(0,18)gama:(0,18)sinphi:(0,18)omerinv.c$XBEBTnbKqsAAGip.omerinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)omerinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)theta:(0,18)t:(0,18)con:(0,18)vs:(0,18)us:(0,18)q:(0,18)s:(0,18)ts1:(0,18)vl:(0,18)ul:(0,18)flag:(0,4)$XBEBTnbKqsAAGip.omerinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbKqsAAGip.cosaz:S(0,18)$XAEBTnbKqsAAGip.sinaz:S(0,18)$XAEBTnbKqsAAGip.cosgam:S(0,18)$XAEBTnbKqsAAGip.singam:S(0,18)$XAEBTnbKqsAAGip.u:S(0,18)$XAEBTnbKqsAAGip.el:S(0,18)$XAEBTnbKqsAAGip.d:S(0,18)$XAEBTnbKqsAAGip.ts:S(0,18)$XAEBTnbKqsAAGip.al:S(0,18)$XAEBTnbKqsAAGip.bl:S(0,18)$XAEBTnbKqsAAGip.cos_p20:S(0,18)$XAEBTnbKqsAAGip.sin_p20:S(0,18)$XAEBTnbKqsAAGip.false_easting:S(0,18)$XAEBTnbKqsAAGip.false_northing:S(0,18)$XAEBTnbKqsAAGip.es:S(0,18)$XAEBTnbKqsAAGip.e:S(0,18)$XAEBTnbKqsAAGip.lat_origin:S(0,18)$XAEBTnbKqsAAGip.lon_origin:S(0,18)$XAEBTnbKqsAAGip.scale_factor:S(0,18)$XAEBTnbKqsAAGip.r_minor:S(0,18)$XAEBTnbKqsAAGip.r_major:S(0,18)genrpt:P(0,20);(0,18);(10,3)asinz:P(0,18);(0,18)phi2z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlat:P(0,20);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)exp:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)atan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06omerinv.cBbss.bssDdata.dataDrodata.rodataatan2cosphi2zexp$XBEBTnbKqsAAGip.omerinv.__func__omerinvadjust_lonp_erroratancenlatcenlontansinasinzoffsetpgenrptradius2ptitletsfnzfabspowtsincossqrt$XAEBTnbKqsAAGip.u$XAEBTnbKqsAAGip.cosaz$XAEBTnbKqsAAGip.sinaz$XAEBTnbKqsAAGip.cosgam$XAEBTnbKqsAAGip.singam$XAEBTnbKqsAAGip.lon_origin$XAEBTnbKqsAAGip.el$XAEBTnbKqsAAGip.d$XAEBTnbKqsAAGip.ts$XAEBTnbKqsAAGip.al$XAEBTnbKqsAAGip.bl$XAEBTnbKqsAAGip.cos_p20$XAEBTnbKqsAAGip.sin_p20$XAEBTnbKqsAAGip.e$XAEBTnbKqsAAGip.es$XAEBTnbKqsAAGip.false_easting$XAEBTnbKqsAAGip.false_northing$XAEBTnbKqsAAGip.lat_origin$XAEBTnbKqsAAGip.scale_factor$XAEBTnbKqsAAGip.r_minor$XAEBTnbKqsAAGip.r_major$XBEBTnbKqsAAGip.omerinvint.__func__omerinvint P.48>B[dlw3Kxgp{h`XPH@80#(B b~P 2 2 1 1 0 0 / / . . $- (- 41 81 D2 H2 \ ` p, t, , , + + / / * * ) )   , , * *    , $, 8D H P, T, d) h) t x  ( ( 2 2 ( ( 0 0 ' ' (/ ,/ <D H \ ` d& h& t x |% %   $ $ + + / / * * & & (  ( 4) 8) P% T% `% d% t x   / /   % %    % % 0 4 @\% `% x& |& ( ( $ $   2 2 1 1 0  0   (0- 4- @. D. \x |  ( (% % ( ( #  # 0 04 0< @@ @LT# X# hp/ t/ / /    8 8 ( (   " " ! ! (4 8 < @ PX/ \/ h l ' ' ( ( % %       ' ' $( (( D% H% X  \  h p t     `  `   + +  0 <+ @+ h x( |(  ( (  $ $    (  ( $ $ h @ l @  H  H  8  8  8  8  H  H  8  8  (  ( ( ( 0 L h# l# |# #  ( (   % %    0  0 ( , 8 D 0 H 0 P T ` l 0 p 0 x |   0  0             $ ( @ 8D 8H (L (\d h |    / /  8 8 ( (   @ @ " $" (! ,! <H L P T dl/ p/ |  ' ' ( ( % %       (' ,' 8( <( X% \% l p |    (- ,- D. H. d h |        ( (  ' ' $ 4 8 D (H (X \ h (l (x( |( ' ' ! ! " "      4# 8# T X l 8p 8t (x ( 8 8 ( (  ( ( $ $   0<+ @+ d ( ( ' ' # # ! ! " " (0( 4( X 4 HH^c% +  7[F0  Q,_@(hApDP xHT  orthfor.o/ 1073924747 1032 20 100644 10824 ` ELF'4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ;X@X?;XX@@;X@X?!    B!   ؉ Bȅ BB?! ?!  ;X@X!  ;!   ?!    Bؽ B?;X@X @BT$ $ !   !    B!    B!   ؉ Bȅ B… BBX$ $  !  @@ ''ORTHOGRAPHICPoint can not be projectedorth-for?=|׽orthforintorthfor) d!d+8,8-<@ʋ4 $ =$E g       orthfor.c/ecs/hdfeos/gctp/src/orthfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbLqsAAGjp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o orthfor.o orthfor.c -W0,-xp\$XAEBTnbLqsAAGjp.orthforint$XBEBTnbLqsAAGjp.orthforint.__func__orthfor$XBEBTnbLqsAAGjp.orthfor.__func__$XAEBTnbLqsAAGjp.cos_p14$XAEBTnbLqsAAGjp.sin_p14$XAEBTnbLqsAAGjp.false_easting$XAEBTnbLqsAAGjp.false_northing$XAEBTnbLqsAAGjp.lat_origin$XAEBTnbLqsAAGjp.lon_center$XAEBTnbLqsAAGjp.r_major d!d+8,8-<@ʋр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B N ZT dX4 n |    DS4DT\DU|DVDWDX DZ D\D`Da(Dc( , Dd88 (!/(!/>(!/e(!/w(!/[(!/?(!/&$$.$D$]$s$$$$$$borthfor.c/ecs/hdfeos/gctp/src/orthfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbLqsAAGjp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.horthforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)orthfor.c$XBEBTnbLqsAAGjp.orthforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)orthfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sinphi:(0,18)cosphi:(0,18)dlon:(0,18)coslon:(0,18)ksp:(0,18)g:(0,18)$XBEBTnbLqsAAGjp.orthfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbLqsAAGjp.cos_p14:S(0,18)$XAEBTnbLqsAAGjp.sin_p14:S(0,18)$XAEBTnbLqsAAGjp.false_easting:S(0,18)$XAEBTnbLqsAAGjp.false_northing:S(0,18)$XAEBTnbLqsAAGjp.lat_origin:S(0,18)$XAEBTnbLqsAAGjp.lon_center:S(0,18)$XAEBTnbLqsAAGjp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06orthfor.cBbss.bssDdata.dataDrodata.rodatap_errorsinfabscosadjust_lon$XBEBTnbLqsAAGjp.orthfor.__func__orthforoffsetporigincenlonmerradiusptitletsincos$XAEBTnbLqsAAGjp.cos_p14$XAEBTnbLqsAAGjp.sin_p14$XAEBTnbLqsAAGjp.false_easting$XAEBTnbLqsAAGjp.false_northing$XAEBTnbLqsAAGjp.lat_origin$XAEBTnbLqsAAGjp.lon_center$XAEBTnbLqsAAGjp.r_major$XBEBTnbLqsAAGjp.orthforint.__func__orthforint 8.6:?CN#pHx0( 4Pi l p                   $ 4< @ PX \ h l    4D P T h l             D H T X l p     4 85+%#+$ 7)F(  Q_h!p#  x$  orthinv.o/ 1073924748 1032 20 100644 12080 ` ELF,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?!   ! B !  @@ '!    ;X@X?ؠТ;XX@@!   T$ $ ;X@X!  !   X$ $ '!    BЉ B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ `'!   ?;XX;X@X;X@XT$ $ I'?!   ?X  ;X@X @?;X@X!  ;X@X! !   ?Љ B!    B B;XX;X@X@;X@XT$ $ 'ORTHOGRAPHICInput data errororth-inv>z򚼯H=|׽@ !TD-?orthinvintorthinv) d!d+8,8-<@ʌ4 $ =$E g       orthinv.c/ecs/hdfeos/gctp/src/orthinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbMqsAAGkp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o orthinv.o orthinv.c -W0,-xp\$XAEBTnbMqsAAGkp.orthinvint$XBEBTnbMqsAAGkp.orthinvint.__func__orthinv$XBEBTnbMqsAAGkp.orthinv.__func__$XAEBTnbMqsAAGkp.cos_p14$XAEBTnbMqsAAGkp.sin_p14$XAEBTnbMqsAAGkp.false_easting$XAEBTnbMqsAAGkp.false_northing$XAEBTnbMqsAAGkp.lat_origin$XAEBTnbMqsAAGkp.lon_center$XAEBTnbMqsAAGkp.r_major% d!d+8,8-<@ʌр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B L VT bX4 n x   DR4DSPDTlDUDWDXDZD[ D\,D]HpD_pD`DbDcDd(PDfPxDhxDiDmDn(00Dq0DrxDsDu< , DvLL (!/ (!/*(!/Q(!/wy(!/[(!/?(!/&$$$/$E$^$t$$$$$$$$borthinv.c/ecs/hdfeos/gctp/src/orthinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbMqsAAGkp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.horthinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)orthinv.c$XBEBTnbMqsAAGkp.orthinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)orthinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)con:(0,18)$XBEBTnbMqsAAGkp.orthinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbMqsAAGkp.cos_p14:S(0,18)$XAEBTnbMqsAAGkp.sin_p14:S(0,18)$XAEBTnbMqsAAGkp.false_easting:S(0,18)$XAEBTnbMqsAAGkp.false_northing:S(0,18)$XAEBTnbMqsAAGkp.lat_origin:S(0,18)$XAEBTnbMqsAAGkp.lon_center:S(0,18)$XAEBTnbMqsAAGkp.r_major:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06orthinv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonfabsasinzp_errorsqrt$XBEBTnbMqsAAGkp.orthinv.__func__orthinvoffsetporigincenlonmerradiusptitletsincos$XAEBTnbMqsAAGkp.cos_p14$XAEBTnbMqsAAGkp.sin_p14$XAEBTnbMqsAAGkp.false_easting$XAEBTnbMqsAAGkp.false_northing$XAEBTnbMqsAAGkp.lat_origin$XAEBTnbMqsAAGkp.lon_center$XAEBTnbMqsAAGkp.r_major$XBEBTnbMqsAAGkp.orthinvint.__func__orthinvint 8(.28CHNV[3}\0( %A]v( l p                   $ 4< @ PX \ h l     D T X d h            0 4 X \ x |                $ 8 < dx      @ H L h p t      4  8-;%C+D 7)F H  Q%_# h$p&\ x(L  polyfor.o/ 1073924749 1032 20 100644 13216 ` ELF1H4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   !   !   !   !   ;XX;XX;XX#\#`#d#h@! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X' 'X'T'P'L'H'DDH?LP?!   ;X@X?;X@X!  #!   !   Ѕ BBT$ $ !   !   !    BX$ $ |;XX@@!   !   !   !   ;XX;XX;XX#\#`#d#h@?!   ;XX;XX;X@X? B?!   ?!    B?;X@X @ BT$ $ !   ?!   ?!   ??! ?;X@X B B BBX$ $ 'POLYCONIC?>z򚼯Hpolyforintpolyfor d!d+8,8-<@ʍ4 $ =$E g         2 N j  polyfor.c/ecs/hdfeos/gctp/src/polyfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbNqsAAGlp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o polyfor.o polyfor.c -W0,-xp\$XAEBTnbNqsAAGlp.polyforint$XBEBTnbNqsAAGlp.polyforint.__func__polyfor$XBEBTnbNqsAAGlp.polyfor.__func__$XAEBTnbNqsAAGlp.false_easting$XAEBTnbNqsAAGlp.false_northing$XAEBTnbNqsAAGlp.ml0$XAEBTnbNqsAAGlp.es$XAEBTnbNqsAAGlp.e$XAEBTnbNqsAAGlp.e3$XAEBTnbNqsAAGlp.e2$XAEBTnbNqsAAGlp.e1$XAEBTnbNqsAAGlp.e0$XAEBTnbNqsAAGlp.lat_origin$XAEBTnbNqsAAGlp.lon_center$XAEBTnbNqsAAGlp.r_minor$XAEBTnbNqsAAGlp.r_major] d!d+8,8-<@ʍр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ i w    d Ҁ ބD4dD5xD6D7D8D9D;D<D=(D>TD?D@DADBDFDGDHDIDJDKD , DLTT 0$ c o {T X4     D]4D^\D`DaDeDf(DgDhDiDjLDm , Dn(!/5(!/](!0Dz(!/(!/(!00(!0(!0(!/!(!/rE(!/Vi(!/=(!/$$$$$$+$E$c$y$$$$$$"$6$I$\bpolyfor.c/ecs/hdfeos/gctp/src/polyfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbNqsAAGlp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpolyforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)polyfor.c$XBEBTnbNqsAAGlp.polyforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)polyfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sinphi:(0,18)cosphi:(0,18)con:(0,18)ml:(0,18)ms:(0,18)$XBEBTnbNqsAAGlp.polyfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbNqsAAGlp.false_easting:S(0,18)$XAEBTnbNqsAAGlp.false_northing:S(0,18)$XAEBTnbNqsAAGlp.ml0:S(0,18)$XAEBTnbNqsAAGlp.es:S(0,18)$XAEBTnbNqsAAGlp.e:S(0,18)$XAEBTnbNqsAAGlp.e3:S(0,18)$XAEBTnbNqsAAGlp.e2:S(0,18)$XAEBTnbNqsAAGlp.e1:S(0,18)$XAEBTnbNqsAAGlp.e0:S(0,18)$XAEBTnbNqsAAGlp.lat_origin:S(0,18)$XAEBTnbNqsAAGlp.lon_center:S(0,18)$XAEBTnbNqsAAGlp.r_minor:S(0,18)$XAEBTnbNqsAAGlp.r_major:S(0,18)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06polyfor.cBbss.bssDdata.dataDrodata.rodatacossinmsfnztsincosfabsadjust_lon$XBEBTnbNqsAAGlp.polyfor.__func__polyforoffsetporigincenlonmerradius2ptitlemlfne3fne2fne1fne0fnsqrt$XAEBTnbNqsAAGlp.ml0$XAEBTnbNqsAAGlp.e3$XAEBTnbNqsAAGlp.e2$XAEBTnbNqsAAGlp.e1$XAEBTnbNqsAAGlp.e0$XAEBTnbNqsAAGlp.e$XAEBTnbNqsAAGlp.es$XAEBTnbNqsAAGlp.false_easting$XAEBTnbNqsAAGlp.false_northing$XAEBTnbNqsAAGlp.lat_origin$XAEBTnbNqsAAGlp.lon_center$XAEBTnbNqsAAGlp.r_minor$XAEBTnbNqsAAGlp.r_major$XBEBTnbNqsAAGlp.polyforint.__func__polyforint h.26<DITv~`XPH@)8<0P(o  dx& |& % % $ $ # # " " ! ! % % & &   ( , 8 < LT X d h x                $ ( 4 8 D H T# X#     & & % % $ $ # #  ! $! 0" 4" L$ $      ! ! &  & D" H" T& X& d h          ( , T p! t! & & " " & &     $ 44 PhP `#%+  7F @  Q]_%Ih&)p) x+  polyinv.o/ 1073924750 1032 20 100644 12764 ` ELF/4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   !   !   !   !   ;XX;XX;XX#\#`#d#h@! $ $ ! @!   !   ;XX;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'8'X'T'P'L'H'DDH?LP?!   ?!   ?!   !    …B?';X@X!  !    !   BT$ $ ! X$ $ bB!    …BB?!   !   !   !   !   ؠX;XX;XX;XX#\#`#d#h#l#p#t#x#|@#@''̀  J''Љ B!    ;X@X! ?X  ;X@X !   B;X@XT$ $ 'POLYCONIC?>z򚼯Hpolyinvintpolyinv d!d+8,8-<@ʎ4 $ =$E g         ; W p polyinv.c/ecs/hdfeos/gctp/src/polyinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbOqsAAGmp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o polyinv.o polyinv.c -W0,-xp\$XAEBTnbOqsAAGmp.polyinvint$XBEBTnbOqsAAGmp.polyinvint.__func__polyinv$XBEBTnbOqsAAGmp.polyinv.__func__$XAEBTnbOqsAAGmp.false_easting$XAEBTnbOqsAAGmp.false_northing$XAEBTnbOqsAAGmp.ml0$XAEBTnbOqsAAGmp.es$XAEBTnbOqsAAGmp.e3$XAEBTnbOqsAAGmp.e2$XAEBTnbOqsAAGmp.e1$XAEBTnbOqsAAGmp.e0$XAEBTnbOqsAAGmp.lat_origin$XAEBTnbOqsAAGmp.lon_center$XAEBTnbOqsAAGmp.r_minor$XAEBTnbOqsAAGmp.r_major! d!d+8,8-<@ʎр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ i w    d Ҁ ބD4dD5xD6D7D8D9D;D<D=(D>TD?D@DADEhDFxDGDHDIDJ , DK(( 0$ c m wT X4    D]4D^PD_lD`DaDcDdDhDiHDjDk DlDo , Dp (!/!(!/I(!0/f(!/(!0(!0(!/(!/(!/p(!/T:(!/;[(!/"|$$$$$$$^$x$$$$$$ $ bpolyinv.c/ecs/hdfeos/gctp/src/polyinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbOqsAAGmp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpolyinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)polyinv.c$XBEBTnbOqsAAGmp.polyinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)polyinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)al:(0,18)b:(0,18)c:(0,18)iflg:(0,4)$XBEBTnbOqsAAGmp.polyinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbOqsAAGmp.false_easting:S(0,18)$XAEBTnbOqsAAGmp.false_northing:S(0,18)$XAEBTnbOqsAAGmp.ml0:S(0,18)$XAEBTnbOqsAAGmp.es:S(0,18)$XAEBTnbOqsAAGmp.e3:S(0,18)$XAEBTnbOqsAAGmp.e2:S(0,18)$XAEBTnbOqsAAGmp.e1:S(0,18)$XAEBTnbOqsAAGmp.e0:S(0,18)$XAEBTnbOqsAAGmp.lat_origin:S(0,18)$XAEBTnbOqsAAGmp.lon_center:S(0,18)$XAEBTnbOqsAAGmp.r_minor:S(0,18)$XAEBTnbOqsAAGmp.r_major:S(0,18)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)asinz:P(0,18);(0,18)phi4z:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,23);(0,23)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06polyinv.cBbss.bssDdata.dataDrodata.rodatasinasinzadjust_lonphi4zfabs$XBEBTnbOqsAAGmp.polyinv.__func__polyinvoffsetporigincenlonmerradius2ptitlemlfne3fne2fne1fne0fn$XAEBTnbOqsAAGmp.ml0$XAEBTnbOqsAAGmp.e3$XAEBTnbOqsAAGmp.e2$XAEBTnbOqsAAGmp.e1$XAEBTnbOqsAAGmp.e0$XAEBTnbOqsAAGmp.es$XAEBTnbOqsAAGmp.false_easting$XAEBTnbOqsAAGmp.false_northing$XAEBTnbOqsAAGmp.lat_origin$XAEBTnbOqsAAGmp.lon_center$XAEBTnbOqsAAGmp.r_minor$XAEBTnbOqsAAGmp.r_major$XBEBTnbOqsAAGmp.polyinvint.__func__polyinvint `.28CIN#pXxXPH@ 802(Q q 8x# |# " " ! !     " " # #   ( , 8 < LT X d h x                   ( , `h l x | # # " " ! !              # #     $# (# 8! <! X \ # #           < |# # ! !  4 ` +% +  7 F   Q4!_$Uh% p(` x*h  psfor.o/ 1073924751 1032 20 100644 12996 ` ELF0l4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textH'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ ! $ $ ! $ $ !  ! ! $ $ ! ! $ $ ! ! $ $ ;X@X! ! B;X@X! <! ! $ $ !   !    B?;XX@@!   ;XX;XX;X@X! $ $ !   ;XX;XX;X@X! $ $ ! @!   !   ;XX;X@X!   ;X@X;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ;X@X @?!   腡 B?;X@X?!   ;XX;XX;X@X?!   ! B!   !    B B!    ?!   ! B B!    ?!   н B?;X@X @!   BT$ $ !   #н B?;X@X @!   BX$ $ 'POLAR STEREOGRAPHIC?@ !TD-?=|׽@psforintpsfor dd'8(8)<@ʏ4$ 1$7 W v       " 6 I ] v psfor.c/ecs/hdfeos/gctp/src/psfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbPqsAAGnp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o psfor.o psfor.c -W0,-xp\$XAEBTnbPqsAAGnp.psforint$XBEBTnbPqsAAGnp.psforint.__func__psfor$XBEBTnbPqsAAGnp.psfor.__func__$XAEBTnbPqsAAGnp.false_easting$XAEBTnbPqsAAGnp.false_northing$XAEBTnbPqsAAGnp.tcs$XAEBTnbPqsAAGnp.mcs$XAEBTnbPqsAAGnp.ind$XAEBTnbPqsAAGnp.fac$XAEBTnbPqsAAGnp.center_lat$XAEBTnbPqsAAGnp.center_lon$XAEBTnbPqsAAGnp.e4$XAEBTnbPqsAAGnp.e$XAEBTnbPqsAAGnp.es$XAEBTnbPqsAAGnp.r_minor$XAEBTnbPqsAAGnp.r_major dd'8(8)<@ʏ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ c q    d € ΀ ڀ  D:dD;xD<D=D>D?D@DA,DBXDClDEDFDHDIDJ8DL8DMPDNxDODP DT DU0DVdDWDY , DZ C$ t  T X4    € ЀDk4DlxDmDnDoDpDrPDsDtDv< , DwLL(!/ C(!.k(!/(!/(!/(!/(!/(!/d'(!/PC(!/=^(!/)z(!.(!.$$$$$<$_$$$$$$$ bpsfor.c/ecs/hdfeos/gctp/src/psfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbPqsAAGnp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpsforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)c_lon:p(0,18)c_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)con1:(0,18)sinphi:(0,18)cosphi:(0,18)psfor.c$XBEBTnbPqsAAGnp.psforint.__func__:V(0,21)=ar(0,4);0;8;(0,22)=k(0,1)psfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)con1:(0,18)con2:(0,18)rh:(0,18)sinphi:(0,18)ts:(0,18)$XBEBTnbPqsAAGnp.psfor.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)$XAEBTnbPqsAAGnp.false_easting:S(0,18)$XAEBTnbPqsAAGnp.false_northing:S(0,18)$XAEBTnbPqsAAGnp.tcs:S(0,18)$XAEBTnbPqsAAGnp.mcs:S(0,18)$XAEBTnbPqsAAGnp.ind:S(0,18)$XAEBTnbPqsAAGnp.fac:S(0,18)$XAEBTnbPqsAAGnp.center_lat:S(0,18)$XAEBTnbPqsAAGnp.center_lon:S(0,18)$XAEBTnbPqsAAGnp.e4:S(0,18)$XAEBTnbPqsAAGnp.e:S(0,18)$XAEBTnbPqsAAGnp.es:S(0,18)$XAEBTnbPqsAAGnp.r_minor:S(0,18)$XAEBTnbPqsAAGnp.r_major:S(0,18)e4fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06psfor.cBbss.bssDdata.dataDrodata.rodatacossinadjust_lon$XBEBTnbPqsAAGnp.psfor.__func__psforoffsetpcenlonradius2ptitletsfnzmsfnztsincosfabse4fnsqrt$XAEBTnbPqsAAGnp.tcs$XAEBTnbPqsAAGnp.mcs$XAEBTnbPqsAAGnp.ind$XAEBTnbPqsAAGnp.fac$XAEBTnbPqsAAGnp.center_lat$XAEBTnbPqsAAGnp.center_lon$XAEBTnbPqsAAGnp.e4$XAEBTnbPqsAAGnp.e$XAEBTnbPqsAAGnp.es$XAEBTnbPqsAAGnp.false_easting$XAEBTnbPqsAAGnp.false_northing$XAEBTnbPqsAAGnp.r_minor$XAEBTnbPqsAAGnp.r_major$XBEBTnbPqsAAGnp.psforint.__func__psforint h8,04?A_\emt|`XPH@820F(Y m8 x" |" ! !   ! ! " "       $, 0 < @ PX \ l p                      (0 (4 (H L P T ` d p t         $ 0 4 8@" D" P! T! lt x     , 0 D X \ |      " "     0" 4" @ 0D 0T X l p       4 @hG%W+X  7xF   Q _$h&r p(|P x*  psinv.o/ 1073924752 1032 20 100644 13080 ` ELF04(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B?;X@X! $ $ !   ;X@X! $ $ ! $ $ ! $ $ !  ! ! $ $ ! ! $ $ ! ! $ $ ;X@X! ! B;X@X! <! ! $ $ !   !    B?;XX@@!   ;XX;XX;X@X! $ $ !   ;XX;XX;X@X! $ $ ! @!   !   ;XX;X@X!   ;X@X;XX;X@X'`'X'T'P'L'H'DDH?LP?'!   !    B?!   !    B?B腠BB;X@X?!   ! B!    B!   !    B?!    B!   ! B?!   ?!   ؠ;XX;XX@ @X$ $ ̀ 5'! B!   !    BT$ $ 腠;XX;X@X?!   Љ B!   B;X@XT$ $ 'POLAR STEREOGRAPHIC?@ !TD-?=|׽@psinvintpsinv{ dd'8(8)<@ʐ4$ 1$7 W v       " 6 I b psinv.c/ecs/hdfeos/gctp/src/psinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbQqsAAGop./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o psinv.o psinv.c -W0,-xp\$XAEBTnbQqsAAGop.psinvint$XBEBTnbQqsAAGop.psinvint.__func__psinv$XBEBTnbQqsAAGop.psinv.__func__$XAEBTnbQqsAAGop.false_easting$XAEBTnbQqsAAGop.false_northing$XAEBTnbQqsAAGop.tcs$XAEBTnbQqsAAGop.mcs$XAEBTnbQqsAAGop.ind$XAEBTnbQqsAAGop.fac$XAEBTnbQqsAAGop.center_lat$XAEBTnbQqsAAGop.center_lon$XAEBTnbQqsAAGop.e4$XAEBTnbQqsAAGop.e$XAEBTnbQqsAAGop.r_minor$XAEBTnbQqsAAGop.r_major dd'8(8)<@ʐ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ c q    d € ΀ ڀ   D:dD;xD<D=D>D?D@DADB@DCTDEhDFDHDIDJ DL DM8DN`DODPDTDUDVLDWhDY , DZ M$ ~  T X4    ʀDj4Dk8DlhDmDnDoDq,DrhDsDtDuDv0Dy0DzTD} , D~(!.>(!/ f(!/(!/(!/(!/(!/l(!/P"(!/<>(!/)Y(!.z(!.$$$$$'$E$h$$$$$$ bpsinv.c/ecs/hdfeos/gctp/src/psinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbQqsAAGop.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpsinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)c_lon:p(0,18)c_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)con1:(0,18)sinphi:(0,18)cosphi:(0,18)es:(0,18)psinv.c$XBEBTnbQqsAAGop.psinvint.__func__:V(0,21)=ar(0,4);0;8;(0,22)=k(0,1)psinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)ts:(0,18)temp:(0,18)flag:(0,4)$XBEBTnbQqsAAGop.psinv.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)$XAEBTnbQqsAAGop.false_easting:S(0,18)$XAEBTnbQqsAAGop.false_northing:S(0,18)$XAEBTnbQqsAAGop.tcs:S(0,18)$XAEBTnbQqsAAGop.mcs:S(0,18)$XAEBTnbQqsAAGop.ind:S(0,18)$XAEBTnbQqsAAGop.fac:S(0,18)$XAEBTnbQqsAAGop.center_lat:S(0,18)$XAEBTnbQqsAAGop.center_lon:S(0,18)$XAEBTnbQqsAAGop.e4:S(0,18)$XAEBTnbQqsAAGop.e:S(0,18)$XAEBTnbQqsAAGop.r_minor:S(0,18)$XAEBTnbQqsAAGop.r_major:S(0,18)e4fn:P(0,18);(0,18)phi2z:P(0,18);(0,18);(0,18);(0,26)=*(0,4)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsfnz:P(0,18);(0,18);(0,18);(0,18)msfnz:P(0,18);(0,18);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06psinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonatan2phi2z$XBEBTnbQqsAAGop.psinv.__func__psinvoffsetpcenlonradius2ptitletsfnzmsfnztsincosfabse4fnsqrt$XAEBTnbQqsAAGop.tcs$XAEBTnbQqsAAGop.mcs$XAEBTnbQqsAAGop.ind$XAEBTnbQqsAAGop.fac$XAEBTnbQqsAAGop.center_lat$XAEBTnbQqsAAGop.center_lon$XAEBTnbQqsAAGop.e4$XAEBTnbQqsAAGop.e$XAEBTnbQqsAAGop.false_northing$XAEBTnbQqsAAGop.false_easting$XAEBTnbQqsAAGop.r_minor$XAEBTnbQqsAAGop.r_major$XBEBTnbQqsAAGop.psinvint.__func__psinvint `8,7=CAciqxXPH@806(J ]}8 x! |!     ! !      $ ( 8@ D T X h l |                   ( (0 4 8 < H L X \             (! ,! 8 < T\ ` p      4 8 H L x      ! !      ! !  0  00 4 D H l          4 8 L4 8`8PG%+ 7{F (  Q( _%3h&p(@ x+  robfor.o/ 1073924753 1032 20 100644 14196 ` ELF54(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ $ $! ! $ ($ ,! ! $ ($ ,! ! $ 0$ 4! ! $ 0$ 4! ! $ 8$ _ t     robfor.c/ecs/hdfeos/gctp/src/robfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbRqsAAGpp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o robfor.o robfor.c -W0,-xp\$XAEBTnbRqsAAGpp.robforint$XBEBTnbRqsAAGpp.robforint.__func__robfor$XBEBTnbRqsAAGpp.robfor.__func__$XAEBTnbRqsAAGpp.xlr$XAEBTnbRqsAAGpp.pr$XAEBTnbRqsAAGpp.false_northing$XAEBTnbRqsAAGpp.false_easting$XAEBTnbRqsAAGpp.R$XAEBTnbRqsAAGpp.lon_center3 d d)8*8+<@ʑπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L  D5LD6`D7tD8D:D;D<D=D>D?D@,DADDB\DCtDDDEDFDGDHDIDJDK4DLLDMdDN|DODPDQDRDSDT DU$DV<DWTDXlDYDZD[D\D]D^D_D`,DaDDc\DdDcDhDiDjDkDl, , Dm<< $ & 2 >T HX4 R ^ hD~4D\DDDD|DD`D( r, D88 (!// (!/(!.>(!.e(!.(!.$$$$$$2brobfor.c/ecs/hdfeos/gctp/src/robfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbRqsAAGpp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hrobforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)i:(0,4)robfor.c$XBEBTnbRqsAAGpp.robforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)robfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)p2:(0,18)ip1:(0,4)$XBEBTnbRqsAAGpp.robfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbRqsAAGpp.xlr:S(0,26)=ar(0,4);0;20;(0,18)$XAEBTnbRqsAAGpp.pr:S(0,27)=ar(0,4);0;20;(0,18)$XAEBTnbRqsAAGpp.false_northing:S(0,18)$XAEBTnbRqsAAGpp.false_easting:S(0,18)$XAEBTnbRqsAAGpp.R:S(0,18)$XAEBTnbRqsAAGpp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06robfor.cBbss.bssDdata.dataDrodata.rodatafabsadjust_lon$XBEBTnbRqsAAGpp.robfor.__func__robforoffsetpcenlonradiusptitle$XAEBTnbRqsAAGpp.xlr$XAEBTnbRqsAAGpp.pr$XAEBTnbRqsAAGpp.false_northing$XAEBTnbRqsAAGpp.false_easting$XAEBTnbRqsAAGpp.lon_center$XAEBTnbRqsAAGpp.R$XBEBTnbRqsAAGpp.robforint.__func__robforint p`-2=j^pHemt{ ` =L` d t x                          $ ( , 0 < (@ (D H T 0X 0\ ` l 8p 8t x  @ @   H H   P P   X X   ` `   h h   p p   , x0 x4 8 D H L P \ ` d h t x |                              $ ( 4 8 < @ L P T X d h l p |                             $  (  , 0 < @ D H T (X (\ `  0 0           4    8 8 @ @ H H4 8 L P d h x |  P P         $ 8 < L P h Pl P X X            8 P< Ph Xl Xx | 4  pp p  q% +  7 F   Q3_%h'mGp(p x*$  robinv.o/ 1073924755 1032 20 100644 16600 ` ELF>4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ ! ! $ $ $! ! $ $ $! ! $ ($ ,! ! $ ($ ,! ! $ 0$ 4! ! $ 0$ 4! ! $ 8$ h?FRrobinvintrobinv d d)8*8+<@ʓ4 $ 7$> _ t     robinv.c/ecs/hdfeos/gctp/src/robinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbTqsAAGqp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o robinv.o robinv.c -W0,-xp\$XAEBTnbTqsAAGqp.robinvint$XBEBTnbTqsAAGqp.robinvint.__func__robinv$XBEBTnbTqsAAGqp.robinv.__func__$XAEBTnbTqsAAGqp.xlr$XAEBTnbTqsAAGqp.pr$XAEBTnbTqsAAGqp.false_northing$XAEBTnbTqsAAGqp.false_easting$XAEBTnbTqsAAGqp.R$XAEBTnbTqsAAGqp.lon_center d d)8*8+<@ʓπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L  D8LD9`D:tD;D=D>D?D@DADBDC,DDDDE\DFtDGDHDIDJDKDLDMDN4DOLDPdDQ|DRDSDTDUDVDW DX$DY<DZTD[lD\D]D^D_D`DaDbDc,DdDDf\DgDfDkDlDmDnDo, , Dp<< $ & 0 :T FX4 R \ f o x     D4DPDlDDDDDD DDHDDDD4`D`D|DDDDD4DPDDDDDD((D(DX``D`Dl|D|DDDDDD|D , D (!//&(!/V(!.~(!.(!.(!.$$$2$H$^$|$brobinv.c/ecs/hdfeos/gctp/src/robinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbTqsAAGqp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hrobinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)i:(0,4)robinv.c$XBEBTnbTqsAAGqp.robinvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)robinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)yy:(0,18)p2:(0,18)u:(0,18)v:(0,18)t:(0,18)c:(0,18)phid:(0,18)y1:(0,18)ip1:(0,4)i:(0,4)$XBEBTnbTqsAAGqp.robinv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbTqsAAGqp.xlr:S(0,26)=ar(0,4);0;20;(0,18)$XAEBTnbTqsAAGqp.pr:S(0,27)=ar(0,4);0;20;(0,18)$XAEBTnbTqsAAGqp.false_northing:S(0,18)$XAEBTnbTqsAAGqp.false_easting:S(0,18)$XAEBTnbTqsAAGqp.R:S(0,18)$XAEBTnbTqsAAGqp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06robinv.cBbss.bssDdata.dataDrodata.rodataadjust_lonp_errorfabs$XBEBTnbTqsAAGqp.robinv.__func__robinvoffsetpcenlonradiusptitle$XAEBTnbTqsAAGqp.xlr$XAEBTnbTqsAAGqp.pr$XAEBTnbTqsAAGqp.false_northing$XAEBTnbTqsAAGqp.false_easting$XAEBTnbTqsAAGqp.lon_center$XAEBTnbTqsAAGqp.R$XBEBTnbTqsAAGqp.robinvint.__func__robinvint px-8@Efpmu| !x EL` d t x                          $ ( , 0 < (@ (D H T 0X 0\ ` l 8p 8t x  @ @   H H   P P   X X   ` `   h h   p p   , x0 x4 8 D H L P \ ` d h t x |                              $ ( 4 8 < @ L P T X d h l p |                             $  (  , 0 < @ D H T (X (\ `  0 0          4      8 8 @ @   H H( P, P8 H XL X         8 8   , 0 D 8H 8p t  8 8     P P8 P< PL PP P\ l Xp X              8 $ 8 P @ T @ h l              8  8  @  @ $ ` ( ` 0 @ 4 @ < @ t x    h  h  8  8   p  p 4 8 H L d  h  |         8  8 4  0 p d P%+ 7F L  Q_,}h.#Op/t x0  sinfor.o/ 1073924756 1032 20 100644 8832 ` ELF (4(.shstrtab.text.bss.data1.data.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'x'X'T'P'L'H'DDH?LP?!   ;X@X?!   ཡ B?;X@X؉ @!   BT$ $ !   艡 B!   BX$ $ 'SINUSOIDALsinforintsinfor d d)8*8+<@ʔ4 $ 7$> _    sinfor.c/ecs/hdfeos/gctp/src/sinfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbUqsAAGrp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sinfor.o sinfor.c -W0,-xp\$XAEBTnbUqsAAGrp.sinforint$XBEBTnbUqsAAGrp.sinforint.__func__sinfor$XBEBTnbUqsAAGrp.sinfor.__func__$XAEBTnbUqsAAGrp.false_northing$XAEBTnbUqsAAGrp.false_easting$XAEBTnbUqsAAGrp.R$XAEBTnbUqsAAGrp.lon_center d d)8*8+<@ʔπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D.LD/`D0tD1D5D6D7D8D9 , D: $  * 6T @X4 JDH4DI\DJDK [, DL (!. (!. (!.(!.,$F$d$z$$$bsinfor.c/ecs/hdfeos/gctp/src/sinfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbUqsAAGrp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsinforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)sinfor.c$XBEBTnbUqsAAGrp.sinforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)sinfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)$XBEBTnbUqsAAGrp.sinfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbUqsAAGrp.false_northing:S(0,18)$XAEBTnbUqsAAGrp.false_easting:S(0,18)$XAEBTnbUqsAAGrp.R:S(0,18)$XAEBTnbUqsAAGrp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sinfor.cBbss.bssDdata.dataDrodata.rodatacosadjust_lon$XBEBTnbUqsAAGrp.sinfor.__func__sinforoffsetpcenlonradiusptitle$XAEBTnbUqsAAGrp.false_northing$XAEBTnbUqsAAGrp.false_easting$XAEBTnbUqsAAGrp.lon_center$XAEBTnbUqsAAGrp.R$XBEBTnbUqsAAGrp.sinforint.__func__sinforint -1< ]@dlsz  ` d t x              x |          4 H   # + 7F`  Q _h`p@ xh  sininv.o/ 1073924757 1032 20 100644 9656 ` ELF#`4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'h'X'T'P'L'H'DDH?LP?!   ?!   ?!    X$ $ X  ;X@X! ! B  !  @@ F'X  ;X@X! ! B?;X@X! $!   ??!   ?X  ;X@X؅ @Ѕ ȅB?;X@XT$ $  !   T$ $ 'SINUSOIDALInput data errorsinusoidal-inverse@ !TD-?=|׽sininvintsininv d d)8*8+<@ʕ4 $ 7$> _    sininv.c/ecs/hdfeos/gctp/src/sininv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbVqsAAGsp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sininv.o sininv.c -W0,-xp\$XAEBTnbVqsAAGsp.sininvint$XBEBTnbVqsAAGsp.sininvint.__func__sininv$XBEBTnbVqsAAGsp.sininv.__func__$XAEBTnbVqsAAGsp.false_northing$XAEBTnbVqsAAGsp.false_easting$XAEBTnbVqsAAGsp.R$XAEBTnbVqsAAGsp.lon_center d d)8*8+<@ʕπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D.LD/`D0tD1D5D6D7D8D9 , D: $  ( 2T >X4 JDH4DIPDJlDKDMDNDPDQ$LDSLDTDVDW V, DX (!. (!. (!.(!.'$A$_$u$$$$$bsininv.c/ecs/hdfeos/gctp/src/sininv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbVqsAAGsp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsininvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)sininv.c$XBEBTnbVqsAAGsp.sininvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)sininv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)temp:(0,18)$XBEBTnbVqsAAGsp.sininv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbVqsAAGsp.false_northing:S(0,18)$XAEBTnbVqsAAGsp.false_easting:S(0,18)$XAEBTnbVqsAAGsp.R:S(0,18)$XAEBTnbVqsAAGsp.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sininv.cBbss.bssDdata.dataDrodata.rodataadjust_loncosp_errorfabs$XBEBTnbVqsAAGsp.sininv.__func__sininvoffsetpcenlonradiusptitle$XAEBTnbVqsAAGsp.false_northing$XAEBTnbVqsAAGsp.false_easting$XAEBTnbVqsAAGsp.lon_center$XAEBTnbVqsAAGsp.R$XBEBTnbVqsAAGsp.sininvint.__func__sininvint -8<DI"j@qy   ` d t x            x |              @ H L P T l t x       4 P 3@)%i+l 7 F  Q _h*pp x! @  somfor.o/ 1073924758 1032 20 100644 25520 ` ELFa04(.shstrtab.text.bss.data1.rodata.rodata1.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?\`?dh?lp?tx?|??! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !  …B! $ $  ?! ! $ $ ! $ $ '44! $ $ `T -! ! B?! ! ! $ $ ! ! ! X'44 B! B! $ $ ! ! $ $ +! ! B?! ! ! $ $ ! ! ! X'44 B! B! $ $ ! ! $ $ ! ! $ $ ! @!   !   ;XX;X@X X#`@@T#`@@! B! ;XX@!   ! B! ;XX@!   !   ;XX;X@X!   ! ;XX@;X@X! $ $ !   ;X@X! ! ! $ $ ;X@X! $ $ !   !   DD?!   !   DD?! !   …! $ $ #```B! B$`$`! !   ? ! $ $ ! !   ‰BB ! $ $ B B! $ $ ! ?xph`@@@jx?Xp?P?8h?H`?@ ' Q>`hpx'44?@@H@Xx! BB?XPp! BB?P8! BB?8Hh! BB?H@`! BB?@ ' Q ' H>`hpx'44?@@@Xx! BB?XPp! BB?P8! BB?8Hh! BB?H@`! BB?@ ' H! ?xph`@@@̚XxB?XPpB?P8B?8HhB?H@`B?@X! ! $ $ P! ! $ $ 8! ! $ $ H! ! $ $ @! ! $ $ ''X'T'P'L'H'DDH?LP?! ?0?(!   ?(! ! ?((! ! ?((? ?(! ! ! ?8!   ! B! ! B?8(! ! ! B?8'8?'!   8 BB?;X@X?;X@X0 ! B?! ! ?@! ! ?@8?@?;X@X @! ! BB?!    BB?;X@X?;X@X! ! B?! !   ? ;X@X @!    B?;X@X!    BB ?;X@X?B?;X@X! ?;X@X?;X@X0  ' 2G?!   ! B?! ! BB?H '䀤 9Ё  H +Ё ! ! B?8H ! ! B?8 #`@@#`@@ ' ;X@X?P#`%!    BP B?!   ? ;X@X @?;X@X @?`PDD;X@X ;X@X?X! ! X! …B?``;X@X;X@X?h;X@X?ppB?x!   !    B?;X@X @?x! !   xDB!   DB!   DB B;X@Xx @! $ $ !   B!   BB;X@X?!   D?h!   ?p! B;X@Xp @hB?`!   ?! B;X@X @`Bh!    B …X$ $ !   X   B$ $ !   p B?h!   ?p! B;X@Xp @hBh!    B …BT$ $ !   T   B$ $ X  ?T  !   BX$ $ !   BT$ $ 'X'X'T'P'L'H'DX``! B$`$`X  ;X@X?B?!   !    B?X  ;X@Xн @?! !   DB!   DB!   DB B;X@Xȅ @! $ $ #`%DB!   DB ;X@X`  DBDBB !   !    B… B?!   B!   BB;X@X?!    B!   B D$ $ D  ?X  ! B;X@X @H$ $ D  ?X  ! B;X@X @L$ $ !   !   BB ??X  ;X@X @P$ $ ?X  ! B;X@X @T$ $ SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: som-forward?@@XS?FR5@Yk6@` =p@v@o`?)O@X@Xl.@`)@m @Lc˰>. &֕@@@V@>@N@.@F>z򚼯H?!z!z@ !TD-@?z򚼯H?@?Fsomforintsomforsom_series50 iterations without conv ( d d)8*8+<@ʖ4 $ 7$> _         4 I ] p         somfor.c/ecs/hdfeos/gctp/src/somfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbWqsAAGtp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o somfor.o somfor.c -W0,-xp\$XAEBTnbWqsAAGtp.somforint$XBEBTnbWqsAAGtp.somforint.__func__somfor$XBEBTnbWqsAAGtp.somfor.__func__$XBEBTnbWqsAAGtp.som_series.__func__gsat_ratio$XAEBTnbWqsAAGtp.false_northing$XAEBTnbWqsAAGtp.false_easting$XAEBTnbWqsAAGtp.start$XAEBTnbWqsAAGtp.s$XAEBTnbWqsAAGtp.es$XAEBTnbWqsAAGtp.ca$XAEBTnbWqsAAGtp.sa$XAEBTnbWqsAAGtp.p21$XAEBTnbWqsAAGtp.xj$XAEBTnbWqsAAGtp.w$XAEBTnbWqsAAGtp.t$XAEBTnbWqsAAGtp.q$XAEBTnbWqsAAGtp.c3$XAEBTnbWqsAAGtp.c1$XAEBTnbWqsAAGtp.a4$XAEBTnbWqsAAGtp.a2$XAEBTnbWqsAAGtp.b$XAEBTnbWqsAAGtp.a$XAEBTnbWqsAAGtp.lon_centerz d d)8*8+<@ʖπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$   T X Ơ ՠ     # /| A I T _ j x  x p h ` X ǀP ԀH @ 8 D@|DDDEDFDGDHDI DKDL$DMDDNXxDRDTDUDVDW4<D[<D\TD]xD^DcDhDiDj<LDlLDmd|Do|DpDqDr Dt4DuTDvDwDxDyDzPD{xD|D}D~DDDPDXD`DhDpDxDDDDDD,DHDdDDDDDDD4DPDlDDDDDDD D D 8D XD xD D , D  I${TX4ȀӀ߀ #0;DxPpZhg`sXPH@80(ʀ ׀PD4D@DHDdDDDDDD8DlDpDxD|DDDDD<DDDDDDDDD DD0D8D@D`DDDDD D<DDD\DtDDDdDDDDDDDDD PD xD D D , D  V$DHLP TΠXۀDD<DXDdD0DDD\DDD$D X, D!V i(!/K(!/,(!/(!2k(!/(!0*(!0F(!/c(!0(!0(!0(!0(!1O(!1;(!1'$(!1@(!/~[(!/kv(!/$$$$$*$H$\$p$$$$$$$bsomfor.c/ecs/hdfeos/gctp/src/somfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbWqsAAGtp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsomforint:F(0,3);(0,18);(0,18);(0,4);(0,4);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4);(0,4);(0,18)r_major:p(0,18)r_minor:p(0,18)satnum:p(0,4)path:p(0,4)alf_in:p(0,18)lon:p(0,18)false_east:p(0,18)false_north:p(0,18)time:p(0,18)start1:p(0,4)flag:p(0,4)sat_ratio:p(0,18)i:(0,4)alf:(0,18)e2c:(0,18)e2s:(0,18)one_es:(0,18)dlam:(0,18)fb:(0,18)fa2:(0,18)fa4:(0,18)fc1:(0,18)fc3:(0,18)suma2:(0,18)suma4:(0,18)sumc1:(0,18)sumc3:(0,18)sumb:(0,18)somfor.c$XBEBTnbWqsAAGtp.somforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)somfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)y:p(0,23)x:p(0,23)n:(0,4)l:(0,4)delta_lon:(0,18)rlm:(0,18)tabs:(0,18)tlam:(0,18)xlam:(0,18)c:(0,18)xlamt:(0,18)ab2:(0,18)ab1:(0,18)xlamp:(0,18)sav:(0,18)d:(0,18)sdsq:(0,18)sd:(0,18)tanlg:(0,18)xtan:(0,18)tphi:(0,18)dp:(0,18)rlm2:(0,18)scl:(0,18)tlamp:(0,18)conv:(0,18)delta_lat:(0,18)radlt:(0,18)radln:(0,18)temp:(0,18)errorbuf:(0,24)=ar(0,4);0;79;(0,1)$XBEBTnbWqsAAGtp.somfor.__func__:V(0,25)=ar(0,4);0;6;(0,26)=k(0,1)som_series:f(0,20);(0,23);(0,23);(0,23);(0,23);(0,23);(0,23)fb:p(0,23)fa2:p(0,23)fa4:p(0,23)fc1:p(0,23)fc3:p(0,23)dlam:p(0,23)sd:(0,18)sdsq:(0,18)h:(0,18)sq:(0,18)fc:(0,18)$XBEBTnbWqsAAGtp.som_series.__func__:V(0,27)=ar(0,4);0;10;(0,28)=k(0,1)gsat_ratio:G(0,18)$XAEBTnbWqsAAGtp.false_northing:S(0,18)$XAEBTnbWqsAAGtp.false_easting:S(0,18)$XAEBTnbWqsAAGtp.start:S(0,18)$XAEBTnbWqsAAGtp.s:S(0,18)$XAEBTnbWqsAAGtp.es:S(0,18)$XAEBTnbWqsAAGtp.ca:S(0,18)$XAEBTnbWqsAAGtp.sa:S(0,18)$XAEBTnbWqsAAGtp.p21:S(0,18)$XAEBTnbWqsAAGtp.xj:S(0,18)$XAEBTnbWqsAAGtp.w:S(0,18)$XAEBTnbWqsAAGtp.t:S(0,18)$XAEBTnbWqsAAGtp.q:S(0,18)$XAEBTnbWqsAAGtp.c3:S(0,18)$XAEBTnbWqsAAGtp.c1:S(0,18)$XAEBTnbWqsAAGtp.a4:S(0,18)$XAEBTnbWqsAAGtp.a2:S(0,18)$XAEBTnbWqsAAGtp.b:S(0,18)$XAEBTnbWqsAAGtp.a:S(0,18)$XAEBTnbWqsAAGtp.lon_center:S(0,18)genrpt_long:P(0,20);(0,4);(10,3)genrpt:P(0,20);(0,18);(10,3)offsetp:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan:P(0,18);(0,18)asin:P(0,18);(0,18)sprintf:P(0,3);(10,3);(0,29)=*(0,30)=k(0,1);0@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06somfor.cBbss.bssDdata.dataDrodata.rodatasom_series$XBEBTnbWqsAAGtp.som_series.__func__logsqrtasinp_errorsprintfatantan$XAEBTnbWqsAAGtp.s$XBEBTnbWqsAAGtp.somfor.__func__somforsinfabscosoffsetpgenrptgenrpt_longradius2ptitle$XAEBTnbWqsAAGtp.c3$XAEBTnbWqsAAGtp.c1$XAEBTnbWqsAAGtp.a4$XAEBTnbWqsAAGtp.a2$XAEBTnbWqsAAGtp.xj$XAEBTnbWqsAAGtp.t$XAEBTnbWqsAAGtp.q$XAEBTnbWqsAAGtp.w$XAEBTnbWqsAAGtp.sa$XAEBTnbWqsAAGtp.ca$XAEBTnbWqsAAGtp.start$XAEBTnbWqsAAGtp.lon_center$XAEBTnbWqsAAGtp.p21$XAEBTnbWqsAAGtp.es$XAEBTnbWqsAAGtp.b$XAEBTnbWqsAAGtp.a$XAEBTnbWqsAAGtp.false_northing$XAEBTnbWqsAAGtp.false_eastinggsat_ratio$XBEBTnbWqsAAGtp.somforint.__func__somforint -8! ]afks{  x2pFhZ`mXPH@80( *=]|  . . - - , , + + * *    ) ) 8 < D( H( X' \' x& |&         ( (  ( ( 0 0 8 8  '  ' , @0 @4. 8. L HP HT X d Ph Pl p x( |(  X X 0 0 ` `  ' '  @ @. .  h h& &    + + (* ,* D` d lx ,| , p p D D' '  p p ` `- - , , .  . , 0 <LT% X% d% h% x x x x x% % $ $ ) ) % % ) )  $ $ ( , 8) <) P# T# `# d# t x   ) ) " "   ) ) ! !     h$ h     ( , D H ` d     0 4 L P h l   , 0 8 < L P X \ l p x* |*         , 0 D' H' ` d x |      h  h     & &  h  h    $ 4 h 8 h L P T X x( |(      h  h    h  h ( , L \ ` d h ( (         ) )  ,$ 0$ L T% X%    8. <. H L \ ` d h        $ ( @ D LX \ d   ) ) % % $ $  < P \ ` d h t x  ( ( $ $    ! ! 0# 4# H" L" l |       * *     $ ( < @ Lh l + +         H+ L+ - - , , ( , Ld( h( t$ x$   ! ! # # " "    $ 0 4 8" <" T# X# t | ( ( % %        0 4 x |       <l p |4 hh,%<.X4X  @(O  Z0hEqG}yJ4 MD sominv.o/ 1073924761 1032 20 100644 24304 ` ELF\4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'DDH?LP?\`?dh?lp?tx?|?! $ $ ! $ $ ! $ $ ! $ $ !  …B! $ $  ?! $ $ ! ! $ $ NT '! ! B?! ! ! $ $ ! ! ! X'<< B! B! $ $ %! ! B?! ! ! $ $ ! ! ! X'<< B! B! $ $ ! @!   !   ;XX;X@XX#`@@T#`@@! B! ;XX@!   ! B! ;XX@!   !   ;XX;X@X! ;XX@;X@X! $ $ !   ;X@X! ! ! $ $ ;X@X! $ $ !   !   DD?!   !   DD?! !   …! $ $ #```B! B$`$`! !   ? ! $ $ ! !   ‰BB ! $ $  ! $ $ B B! $ $ ! ?xph@@@L?`x?X?@p?Ph?H ' Q>hpx'<<?@@*@`! BB?`Xx! BB?X@! BB?@Pp! BB?PHh! BB?H ' Q ' H>hpx'<<?@@@`! BB?`Xx! BB?X@! BB?@Pp! BB?PHh! BB?H ' H! ?xph@@@`B?`XxB?X@B?@PpB?PHhB?H`! ! $ $ X! ! $ $ @! ! $ $ P! ! $ $ H! ! $ $ 'P'X'T'P'L'H'DDH?LP??H!   ?H!   ?!   !    B?! ?'DD 2?;X@X?ȅB?!   !    B?8;X@X8 @?0! !   DB!   DB!   DB B;X@X0 @! $ $ !   #``` B% ½B? !   ?(! B;X@X( @ ?!   ?! B;X@X @?`` ?!   ?;X@X @?!   ?! B;X@X @B B腧?!    ?Ѕ?;X@X؁  D 'DD 2MD 2 !  $@@ k';X@X?! !   B!   ąąB;X@X! ? !    !    B?!   ?! B;X@X @ B;X@X?;X@X?! ! ‰! B?B?;X@X;X@X! ! B?;X@X?B?x#`x!   … ½?;X@X @!    B?!    B?`!    BBxȉ B!    B;X@Xؽ @?;X@XЅ ȑ`x  B B… ;X@X?pp! ! ?hp! ! ?h;X@X! ! ?`;X@X! ! ?`p! ! ! `‰Bh B?pp!    B?P!   ;X@X! ?! !   čBx BB;X@X ;X@X?X!   ;X@X! .;X@X! ?p;X@X @?8!   ?p;X@X @8! !   !    B;X@X?XP!   B;X@XT$ $ XX$ $ 'P'X'T'P'L'H'DX``! B$`$`X  ;X@X?B?!   !    B?X  ;X@XȽ @?! !   腠DB!   DB!   DB B;X@X @! $ $ #`%腠DB!   DB ;X@X`  腠DBDBB !   !    B… B?!   B!   BB;X@X?!    B!   B؅ D$ $ D  ?X  ! B;X@X @H$ $ D  ?X  ! B;X@X @L$ $ !   !   BB؅ ??X  ;X@X @P$ $ ?X  ! B;X@X @T$ $ ! ?#"SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inverse?@@XS?FR5@Yk6@` =p@v@o`@X@Xl.@`)@m @Lc˰>. &֕@@@V@>@N@.@F@@ !TD->z򚼯Hz򚼯H?Fsominvintsominvsom_series d d)8*8+<@ʘ4 $ 7$> _        ' ; N a t        sominv.c/ecs/hdfeos/gctp/src/sominv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbYqsAAGup./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sominv.o sominv.c -W0,-xp\$XAEBTnbYqsAAGup.sominvint$XBEBTnbYqsAAGup.sominvint.__func__sominv$XBEBTnbYqsAAGup.sominv.__func__$XBEBTnbYqsAAGup.som_series.__func__$XAEBTnbYqsAAGup.false_northing$XAEBTnbYqsAAGup.false_easting$XAEBTnbYqsAAGup.s$XAEBTnbYqsAAGup.es$XAEBTnbYqsAAGup.ca$XAEBTnbYqsAAGup.sa$XAEBTnbYqsAAGup.p21$XAEBTnbYqsAAGup.xj$XAEBTnbYqsAAGup.w$XAEBTnbYqsAAGup.u$XAEBTnbYqsAAGup.t$XAEBTnbYqsAAGup.q$XAEBTnbYqsAAGup.c3$XAEBTnbYqsAAGup.c1$XAEBTnbYqsAAGup.a4$XAEBTnbYqsAAGup.a2$XAEBTnbYqsAAGup.b$XAEBTnbYqsAAGup.a$XAEBTnbYqsAAGup.lon_centerX] d d)8*8+<@ʘπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$   T X  Ϡ ۠    p - 5 @ K V d p z x p h ` X P ̀H ڀ@ D9pD:D;D<D=D?DADBDC8@DG@PDIPDJhDKDODPDQ ppDZpD[D\D]D^D_ D`@DatDcDdDeDfDgHDhtDiDjDkDlDmPDnlDoDpDqDrDsDtDuDvDxDy0DzPD{lD|D}D~DvD$D$D8DXDtDDDDDD D@DPD`DpDDDDDD D 0 , D @ @5$gq{TX4̀؀)x6pChM`XXdPpH|DD4DtDDDDDDDD$D@DPD|DDDDDDDDD DTDhDtDDDDDPDDD<D D PD `, D p p$DHL+P7TCXPZfoyDD<DXDdD0DDD\DDD$DXD, D(!/<(!/(!15(!/Q(!0xm(!0(!/(!0(!0(!0(!0(!0.(!1<J(!1(f(!1(!1(!/o(!/\(!/$$6$P$n$$$$$$$$!$4$H$\bsominv.c/ecs/hdfeos/gctp/src/sominv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbYqsAAGup.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsominvint:F(0,3);(0,18);(0,18);(0,4);(0,4);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4);(0,18)r_major:p(0,18)r_minor:p(0,18)satnum:p(0,4)path:p(0,4)alf_in:p(0,18)lon:p(0,18)false_east:p(0,18)false_north:p(0,18)time:p(0,18)flag:p(0,4)sat_ratio:p(0,18)i:(0,4)alf:(0,18)e2c:(0,18)e2s:(0,18)one_es:(0,18)dlam:(0,18)fb:(0,18)fa2:(0,18)fa4:(0,18)fc1:(0,18)fc3:(0,18)suma2:(0,18)suma4:(0,18)sumc1:(0,18)sumc3:(0,18)sumb:(0,18)sominv.c$XBEBTnbYqsAAGup.sominvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)sominv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)y:p(0,18)x:p(0,18)lon:p(0,23)lat:p(0,23)tlon:(0,18)conv:(0,18)sav:(0,18)sd:(0,18)sdsq:(0,18)blon:(0,18)dif:(0,18)st:(0,18)defac:(0,18)actan:(0,18)tlat:(0,18)dd:(0,18)bigk:(0,18)bigk2:(0,18)xlamt:(0,18)sl:(0,18)scl:(0,18)dlat:(0,18)dlon:(0,18)temp:(0,18)inumb:(0,4)$XBEBTnbYqsAAGup.sominv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)som_series:f(0,18);(0,23);(0,23);(0,23);(0,23);(0,23);(0,23)fb:p(0,23)fa2:p(0,23)fa4:p(0,23)fc1:p(0,23)fc3:p(0,23)dlam:p(0,23)sd:(0,18)sdsq:(0,18)h:(0,18)sq:(0,18)fc:(0,18)$XBEBTnbYqsAAGup.som_series.__func__:V(0,26)=ar(0,4);0;10;(0,27)=k(0,1)$XAEBTnbYqsAAGup.false_northing:S(0,18)$XAEBTnbYqsAAGup.false_easting:S(0,18)$XAEBTnbYqsAAGup.s:S(0,18)$XAEBTnbYqsAAGup.es:S(0,18)$XAEBTnbYqsAAGup.ca:S(0,18)$XAEBTnbYqsAAGup.sa:S(0,18)$XAEBTnbYqsAAGup.p21:S(0,18)$XAEBTnbYqsAAGup.xj:S(0,18)$XAEBTnbYqsAAGup.w:S(0,18)$XAEBTnbYqsAAGup.u:S(0,18)$XAEBTnbYqsAAGup.t:S(0,18)$XAEBTnbYqsAAGup.q:S(0,18)$XAEBTnbYqsAAGup.c3:S(0,18)$XAEBTnbYqsAAGup.c1:S(0,18)$XAEBTnbYqsAAGup.a4:S(0,18)$XAEBTnbYqsAAGup.a2:S(0,18)$XAEBTnbYqsAAGup.b:S(0,18)$XAEBTnbYqsAAGup.a:S(0,18)$XAEBTnbYqsAAGup.lon_center:S(0,18)genrpt_long:P(0,20);(0,4);(10,3)genrpt:P(0,20);(0,18);(10,3)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)radius2:P(0,20);(0,18);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)exp:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sominv.cBbss.bssDdata.dataDrodata.rodatasom_series$XBEBTnbYqsAAGup.som_series.__func__adjust_lonasintanatanexpp_errorsqrt$XAEBTnbYqsAAGup.s$XBEBTnbYqsAAGup.sominv.__func__sominvsinfabscosoffsetpgenrptgenrpt_longradius2ptitle$XAEBTnbYqsAAGup.c3$XAEBTnbYqsAAGup.c1$XAEBTnbYqsAAGup.a4$XAEBTnbYqsAAGup.a2$XAEBTnbYqsAAGup.xj$XAEBTnbYqsAAGup.u$XAEBTnbYqsAAGup.t$XAEBTnbYqsAAGup.q$XAEBTnbYqsAAGup.w$XAEBTnbYqsAAGup.sa$XAEBTnbYqsAAGup.ca$XAEBTnbYqsAAGup.p21$XAEBTnbYqsAAGup.lon_center$XAEBTnbYqsAAGup.es$XAEBTnbYqsAAGup.b$XAEBTnbYqsAAGup.a$XAEBTnbYqsAAGup.false_northing$XAEBTnbYqsAAGup.false_easting$XBEBTnbYqsAAGup.sominvint.__func__sominvint -8 ]hmqvz p  !x5pIh]`pXPH@80( )<\{  P, , + + * * ) )   ( ( ' ' , 0 8& <& ` d h l x |   & &  ( ( 0 0 8 8  ' '  @ @    H H   & $& 0 P4 P8 0< 0@ XD Xd h p' t'   * * ) )    , , ` ` D D'  ' , `0 `8 `< `HP, T, `+ d+ |  % % % %  h h h h% % $  $ ,( 0( <% @% X( \( h$ l$   ( ( # # # #  p p  ( ( " " $ x( x,( 0( P! T! l p     h l         p xt x x x x x x x x x            ) )     $ ( 0 4 , , + + * * ) )  h  h D \& `& l$ p$    ! ! # # " "    $* (* @ D T X p t  x  x         , @ D X \ h ) )    ( D P T X \ l p  * *       $ 8 H L P T ` xd x      ( (  (% ,% D$ H$ \ `" d"        $ ( 4 8 L pP p`h l      p p   x x  & &  $ $$ 4< @ \ ` d( h(  $ $    % % 4L P T( X( h$ l$  ' '  ( , Ld& h& t$ x$   ! ! # # " "   $ 0 4 8" <" T# X# t| & & % %         0 4 x x| x      <l p |  4 H%D+Dt 7F,  Q.]_B]hDpF xI  sterfor.o/ 1073924762 1032 20 100644 10856 ` ELF(4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ;X@X?;XX@@;X@X?!    B!   ؉ Bȅ BB?! B;X@X!  !  @@ gE'! ! B?!   ?!    Bؽ B?;X@X @BT$ $ !   !    B!    B!   ؉ Bȅ B… BBX$ $ 'STEREOGRAPHICPoint projects into infinityster-for?=|׽@sterforintsterfor) d!d+8,8-<@ʚ4 $ =$E g       sterfor.c/ecs/hdfeos/gctp/src/sterfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbZqsAAGvp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sterfor.o sterfor.c -W0,-xp\$XAEBTnbZqsAAGvp.sterforint$XBEBTnbZqsAAGvp.sterforint.__func__sterfor$XBEBTnbZqsAAGvp.sterfor.__func__$XAEBTnbZqsAAGvp.cos_p10$XAEBTnbZqsAAGvp.sin_p10$XAEBTnbZqsAAGvp.false_easting$XAEBTnbZqsAAGvp.false_northing$XAEBTnbZqsAAGvp.lat_origin$XAEBTnbZqsAAGvp.lon_center$XAEBTnbZqsAAGvp.r_major d!d+8,8-<@ʚр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B N ZT dX4 n |    DS4DT\DU|DVDWDYDZ((D^(D_HDa$Dc$ , Dd44 (!/(!/>(!/e(!/w(!/[(!/?(!/&$$.$D$]$s$$$$$$bsterfor.c/ecs/hdfeos/gctp/src/sterfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbZqsAAGvp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsterforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)sterfor.c$XBEBTnbZqsAAGvp.sterforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)sterfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)sinphi:(0,18)cosphi:(0,18)dlon:(0,18)coslon:(0,18)ksp:(0,18)g:(0,18)$XBEBTnbZqsAAGvp.sterfor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbZqsAAGvp.cos_p10:S(0,18)$XAEBTnbZqsAAGvp.sin_p10:S(0,18)$XAEBTnbZqsAAGvp.false_easting:S(0,18)$XAEBTnbZqsAAGvp.false_northing:S(0,18)$XAEBTnbZqsAAGvp.lat_origin:S(0,18)$XAEBTnbZqsAAGvp.lon_center:S(0,18)$XAEBTnbZqsAAGvp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sterfor.cBbss.bssDdata.dataDrodata.rodatasinp_errorfabscosadjust_lon$XBEBTnbZqsAAGvp.sterfor.__func__sterforoffsetporigincenlonmerradiusptitletsincos$XAEBTnbZqsAAGvp.cos_p10$XAEBTnbZqsAAGvp.sin_p10$XAEBTnbZqsAAGvp.false_easting$XAEBTnbZqsAAGvp.false_northing$XAEBTnbZqsAAGvp.lat_origin$XAEBTnbZqsAAGvp.lon_center$XAEBTnbZqsAAGvp.r_major$XBEBTnbZqsAAGvp.sterforint.__func__sterforint 8.2:?CN#pDx0( 4Pi l p                   $ 4< @ PX \ h l    4D P T h l                  Hl p |      4 89+%++, 7)F0  Q_h!p#( x$  sterinv.o/ 1073924763 1032 20 100644 11928 ` ELF,@4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'DDH?LP?TX?\`?dh?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! #`;XX@@! @!   ;X@X!   ;X@X!   ;X@X!   !   ;XX;X@X'H'X'T'P'L'H'DDH?LP?!   ?!   ?B腠BB;X@X?!   ! B;X@X B?ؠТ;XX@@!   T$ $ ;X@X!  !   X$ $ '!    BЉ B!    B …B;X@XX$ $ !   ;X@X! ! B?;X@X!  :!   ! !   ?腠;XX;X@X@;X@XT$ $ b'!   ?;XX;X@X;X@XT$ $ K'?!   ?X  ;X@X @?;X@X! ;X@X! #'!   ?Љ B!    B B;XX;X@X@;X@XT$ $ 'STEREOGRAPHIC@=|׽@ !TD-?sterinvintsterinv) d!d+8,8-<@ʚ4 $ =$E g       sterinv.c/ecs/hdfeos/gctp/src/sterinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbaqsAAGwp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sterinv.o sterinv.c -W0,-xp\$XAEBTnbaqsAAGwp.sterinvint$XBEBTnbaqsAAGwp.sterinvint.__func__sterinv$XBEBTnbaqsAAGwp.sterinv.__func__$XAEBTnbaqsAAGwp.cos_p10$XAEBTnbaqsAAGwp.sin_p10$XAEBTnbaqsAAGwp.false_easting$XAEBTnbaqsAAGwp.false_northing$XAEBTnbaqsAAGwp.lat_origin$XAEBTnbaqsAAGwp.lon_center$XAEBTnbaqsAAGwp.r_major d!d+8,8-<@ʚр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ b p   X D0XD1lD2D3D4D6D:D;D<D=,D>HD?| , D@ $ B L VT bX4 n x   DR4DSPDTlDUDVDWDX0DZ0D[LTTD_TD`DaDc8De8DfDjDkDpDq8DrDtDx , Dy (!/ (!/*(!/Q(!/wy(!/[(!/?(!/&$$$0$I$_$$$$$$$$bsterinv.c/ecs/hdfeos/gctp/src/sterinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbaqsAAGwp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hsterinvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)sterinv.c$XBEBTnbaqsAAGwp.sterinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)sterinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)rh:(0,18)z:(0,18)sinz:(0,18)cosz:(0,18)con:(0,18)$XBEBTnbaqsAAGwp.sterinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbaqsAAGwp.cos_p10:S(0,18)$XAEBTnbaqsAAGwp.sin_p10:S(0,18)$XAEBTnbaqsAAGwp.false_easting:S(0,18)$XAEBTnbaqsAAGwp.false_northing:S(0,18)$XAEBTnbaqsAAGwp.lat_origin:S(0,18)$XAEBTnbaqsAAGwp.lon_center:S(0,18)$XAEBTnbaqsAAGwp.r_major:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)atan:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sterinv.cBbss.bssDdata.dataDrodata.rodatasinatan2adjust_lonasinfabsatansqrt$XBEBTnbaqsAAGwp.sterinv.__func__sterinvoffsetporigincenlonmerradiusptitletsincos$XAEBTnbaqsAAGwp.cos_p10$XAEBTnbaqsAAGwp.sin_p10$XAEBTnbaqsAAGwp.false_easting$XAEBTnbaqsAAGwp.false_northing$XAEBTnbaqsAAGwp.lat_origin$XAEBTnbaqsAAGwp.lon_center$XAEBTnbaqsAAGwp.r_major$XBEBTnbaqsAAGwp.sterinvint.__func__sterinvint 8(.28CHMRW3y$0( !=Yr( l p                   $ 4< @ PX \ h l     D T X d h x           8 < \ p t               $8 T X        ( 0 4 P T p t  4 8;%+ 7)F   Q_"h$Pp% x'\  stplnfor.o/ 1073924764 1032 20 100644 17340 ` ELFA<4(.shstrtab.text.data.rodata1.data1.bss.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'P'L'H'D?'! D@D!$ h'D >H ' D, #`'  ' H ' D, #`'  ' ?$#`DH@@$#`@@ 'H  L#`@@ 'P#`@@' !  ,@@ ', , $, $@  @@!   @@  @@@! $#`DH@@$#`@@ '! @D#`@@H  ' S'#`@@?! ;X@X B?! I?;X@X;XX@! B? o';X@X;XX@! B? ['??;XX;XX;XX#\#`#d#h#l#p#t#x@:! r;X@X;XX@! B? %';X@X;XX@! B? ';X@X;XX@! B? ';X@X;XX@! B? '??;XX;XX;XX#\#`#d#h#l#p#t#x#|#@! D;X@X;XX@! B? ';X@X;XX@! B? '??;XX;XX;XX#\#`#d#h#l#p@~! y?;X@X;XX@! B? g';X@X;XX@! B? S';X@X;XX@! B? ?'?? '! ?! ?! ?! ?;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#'㿀'X'T'P'L'H'DDH?LP?! TX;XX;XX@@'䀤 T'N! TX;XX;XX@@'䀤 :'4! TX;XX;XX@@'䀤  '! TX;XX;XX@@'䀤 ''ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldrrIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-forstate-initSTATE PLANEZone: Datum: NAD??FR5stplnforintstplnfor d"d-8.8/<@ʜ4 ) @ W$c $  stplnfor.c/ecs/hdfeos/gctp/src/stplnfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbbqsAAWxp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o stplnfor.o stplnfor.c -W0,-xp\$XAEBTnbbqsAAWxp.$XAEBTnbbqsAAWxp.inzone$XAEBTnbbqsAAWxp.NAD27$XAEBTnbbqsAAWxp.NAD83stplnforint$XBEBTnbbqsAAWxp.stplnforint.__func__stplnfor$XBEBTnbbqsAAWxp.stplnfor.__func__$XAEBTnbbqsAAWxp.id4 d"d-8.8/<@ʜӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /& N& & $ D H L P   ' 4H T td$     Ѐ  &6BNZfq|DKDLDM4DOHDPP`DR`pDTpDVDXDYDTD^D`Db$Dd$De,4D`4PPPDjP`Dl`DmDnDqDrDtDuDwDx ,Dz,D{XD||D}D~DDDD(4D4DDD\DlDxDDDDDDDD(D4DhDxDDDD D D@DPD\DDDDDDD0D@DLDTD\DDDD$D0DdDtDDDDDDD8DHDTDDDDDDDD D D D $D 0D < D , D  $".T8X4BD4HDHDDD D D DDXdDlDDDM, D(!/$$$$$:$$$$;$w$$$$-$T$$$$bstplnfor.c/ecs/hdfeos/gctp/src/stplnfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbbqsAAWxp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h$XAEBTnbbqsAAWxp.inzone:S(0,4)$XAEBTnbbqsAAWxp.NAD27:S(0,21)=ar(0,4);0;133;(0,4)$XAEBTnbbqsAAWxp.NAD83:S(0,22)=ar(0,4);0;133;(0,4)stplnforint:F(0,3);(0,4);(0,4);(10,3);(10,3)zone:p(0,4)sphere:p(0,4)fn27:p(10,3)fn83:p(10,3)ind:(0,4)i:(0,4)nadval:(0,4)table:(0,23)=ar(0,4);0;8;(0,18)pname:(0,24)=ar(0,4);0;31;(0,1)buf:(0,25)=ar(0,4);0;99;(0,1)r_maj:(0,18)r_min:(0,18)scale_fact:(0,18)center_lon:(0,18)center_lat:(0,18)false_east:(0,18)false_north:(0,18)azimuth:(0,18)lat_orig:(0,18)lon_orig:(0,18)lon1:(0,18)lat1:(0,18)lon2:(0,18)lat2:(0,18)mode:(0,4)iflg:(0,4)ptr:(0,26)=*(2,2)stplnfor.c$XBEBTnbbqsAAWxp.stplnforint.__func__:V(0,27)=ar(0,4);0;11;(0,28)=k(0,1)stplnfor:F(0,3);(0,18);(0,18);(0,29)=*(0,18);(0,29)lon:p(0,18)lat:p(0,18)x:p(0,29)y:p(0,29)iflg:(0,4)$XBEBTnbbqsAAWxp.stplnfor.__func__:V(0,30)=ar(0,4);0;8;(0,31)=k(0,1)$XAEBTnbbqsAAWxp.id:S(0,3)genrpt_long:P(0,20);(0,4);(10,3)pakcz:P(0,18);(0,18)paksz:P(0,18);(0,18);(0,32)=*(0,4)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)omerforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)omerfor:P(0,3);(0,18);(0,18);(0,29);(0,29)tmforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)tmfor:P(0,3);(0,18);(0,18);(0,29);(0,29)polyforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)polyfor:P(0,3);(0,18);(0,18);(0,29);(0,29)lamccforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)lamccfor:P(0,3);(0,18);(0,18);(0,29);(0,29)sqrt:P(0,18);(0,18)fseek:P(0,3);(0,33)=*(7,2);(0,4);(0,3)fread:P(2,3);(0,34)=*(0,20);(0,14);(0,14);(0,33)sprintf:P(0,3);(10,3);(0,35)=*(0,36)=k(0,1);0fopen:P(0,26);(0,37)=*(0,38)=k(0,1);(0,39)=*(0,40)=k(0,1)fclose:P(0,3);(0,33)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06stplnfor.cBbss.bssDdata.dataDrodata.rodataomerforpolyforlamccfortmfor$XBEBTnbbqsAAWxp.stplnfor.__func__stplnforomerforintpolyforintlamccforinttmforintpakczpakszsqrtgenrpt_longptitlefclosefreadfseekfopenp_errorsprintf$XAEBTnbbqsAAWxp.id$XBEBTnbbqsAAWxp.stplnforint.__func__stplnforint$XAEBTnbbqsAAWxp.NAD83$XAEBTnbbqsAAWxp.NAD27$XAEBTnbbqsAAWxp.inzone 4 /7?HN$ q z , 8Of," 0" H" L" ! !   t x    ( ( , ,  (`     0 0$ D( D0D PH PLX \\ \d h h      L`h l    $8@ D t    (0 4      H\d h   08 < l         (  ,  4  8  @  D   L P       T    4   4W Tw',-4  @O|  Z"h5q7~y9$0 ;T stplninv.o/ 1073924765 1032 20 100644 17436 ` ELFA4(.shstrtab.text.data.rodata1.data1.bss.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'P'L'H'D?'! D@D!$ k'D >H ' D, #`'  ' H ' D, #`'  ' ?##`DH@@##`@@ 'H  L#`@@ 'P#`@@' !  ,@@ ', , $, $@@  @@!   @@  @@@! ##`DH@@##`@@ '! @D#`@@H  ' S'#`@@?! ;X@X B?! I?;X@X;XX@! B? o';X@X;XX@! B? ['??;XX;XX;XX#\#`#d#h#l#p#t#x@:! r;X@X;XX@! B? %';X@X;XX@! B? ';X@X;XX@! B? ';X@X;XX@! B? '??;XX;XX;XX#\#`#d#h#l#p#t#x#|#@! D;X@X;XX@! B? ';X@X;XX@! B? '??;XX;XX;XX#\#`#d#h#l#p@~! y?;X@X;XX@! B? g';X@X;XX@! B? S';X@X;XX@! B? ?'?? '! ?! ?! ?! ?;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#'㿀'X'T'P'L'H'DDH?LP?! TX;XX;XX@@'䀤 T'N! TX;XX;XX@@'䀤 :'4! TX;XX;XX@@'䀤  '! TX;XX;XX@@'䀤 ''ef-.XMNOyzAB  l567?@A a b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@A a b c ( T    I J uv<ijklm0]^%&'(PIllegal zone #%4ld for spheroid #%4ldrrIllegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-invstate-initSTATE PLANEZone: Datum: NAD??FR5stplninvintstplninv d"d-8.8/<@ʝ4 ) @ W$c $  stplninv.c/ecs/hdfeos/gctp/src/stplninv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbcqsAAWyp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o stplninv.o stplninv.c -W0,-xp\$XAEBTnbcqsAAWyp.$XAEBTnbcqsAAWyp.inzone$XAEBTnbcqsAAWyp.nad27$XAEBTnbcqsAAWyp.nad83stplninvint$XBEBTnbcqsAAWyp.stplninvint.__func__stplninv$XBEBTnbcqsAAWyp.stplninv.__func__$XAEBTnbcqsAAWyp.id6 d"d-8.8/<@ʝӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /& N& & $ D H L P   ' 4H T! td#     Ѐ  &6BNZfq|DLDMDN4DPHDQP`DS`pDUpDWDYDZDUD_DaDc$De$Df,4Da4PPPDkP`Dm`DnDoDrDsDuDvDxDy ,D{,D|XD}dD~DDDDDD4@D@DPDhDxDDDDDDDD$D4D@DtDDDDDDDLD\DhDDDDDDD<DLDXD`DhDDD D0D<DpDDDDDDDDDDTD`DDDDDD D D D D $D 0D <D H D , D  $ *T6X4BD4HDHDD D D DDDXdDlDDDM, D(!/$$$$$:$$$$;$w$$$$-$H$h$$$$bstplninv.c/ecs/hdfeos/gctp/src/stplninv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbcqsAAWyp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h$XAEBTnbcqsAAWyp.inzone:S(0,4)$XAEBTnbcqsAAWyp.nad27:S(0,21)=ar(0,4);0;133;(0,4)$XAEBTnbcqsAAWyp.nad83:S(0,22)=ar(0,4);0;133;(0,4)stplninvint:F(0,3);(0,4);(0,4);(10,3);(10,3)zone:p(0,4)sphere:p(0,4)fn27:p(10,3)fn83:p(10,3)ind:(0,4)i:(0,4)nadval:(0,4)table:(0,23)=ar(0,4);0;8;(0,18)pname:(0,24)=ar(0,4);0;32;(0,1)buf:(0,25)=ar(0,4);0;99;(0,1)r_maj:(0,18)r_min:(0,18)scale_fact:(0,18)center_lon:(0,18)center_lat:(0,18)false_east:(0,18)false_north:(0,18)azimuth:(0,18)lat_orig:(0,18)lon_orig:(0,18)lon1:(0,18)lat1:(0,18)lon2:(0,18)lat2:(0,18)mode:(0,4)iflg:(0,4)ptr:(0,26)=*(2,2)stplninv.c$XBEBTnbcqsAAWyp.stplninvint.__func__:V(0,27)=ar(0,4);0;11;(0,28)=k(0,1)stplninv:F(0,3);(0,18);(0,18);(0,29)=*(0,18);(0,29)x:p(0,18)y:p(0,18)lon:p(0,29)lat:p(0,29)iflg:(0,4)$XBEBTnbcqsAAWyp.stplninv.__func__:V(0,30)=ar(0,4);0;8;(0,31)=k(0,1)$XAEBTnbcqsAAWyp.id:S(0,3)genrpt_long:P(0,20);(0,4);(10,3)pakcz:P(0,18);(0,18)paksz:P(0,18);(0,18);(0,32)=*(0,4)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)omerinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)omerinv:P(0,3);(0,18);(0,18);(0,29);(0,29)tminvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)tminv:P(0,3);(0,18);(0,18);(0,29);(0,29)polyinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)polyinv:P(0,3);(0,18);(0,18);(0,29);(0,29)lamccinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)lamccinv:P(0,3);(0,18);(0,18);(0,29);(0,29)sqrt:P(0,18);(0,18)ftell:P(0,4);(0,33)=*(7,2)fseek:P(0,3);(0,33);(0,4);(0,3)fread:P(2,3);(0,34)=*(0,20);(0,14);(0,14);(0,33)sprintf:P(0,3);(10,3);(0,35)=*(0,36)=k(0,1);0fopen:P(0,26);(0,37)=*(0,38)=k(0,1);(0,39)=*(0,40)=k(0,1)fclose:P(0,3);(0,33)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06stplninv.cBbss.bssDdata.dataDrodata.rodataomerinvpolyinvlamccinvtminv$XBEBTnbcqsAAWyp.stplninv.__func__stplninvomerinvintpolyinvintlamccinvinttminvintpakczpakszsqrtgenrpt_longptitlefclosefreadftellfseekfopenp_errorsprintf$XAEBTnbcqsAAWyp.id$XBEBTnbcqsAAWyp.stplninvint.__func__stplninvint$XAEBTnbcqsAAWyp.nad83$XAEBTnbcqsAAWyp.nad27$XAEBTnbcqsAAWyp.inzone 4 /7?HN$ q (z  2 >Ul,# 0# H# L# " " !  ! t x    ( ( , ,  (`l     0  0$0 D4 D<P PT PXd \h \p h h    $ ( Xlt x   0DL P      4< @     $ Thp t   (<D H x     (  ,  4  8  @  D  L  P   \ `     , 0 d    4   4 W dw',-4  @O  Z#$h6;q7y9h@ ; tmfor.o/ 1073924766 1032 20 100644 16276 ` ELF=<4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?!   !   !   !   !   ;XX;XX;XX#\#`#d#h@ @! $ $ !   ! ą ! $ $ !   !  ! ! $ $ ! ! $ $ ! @!   !   ;XX;X@X!   ! ;XX@!   ;X@X!   ;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?آ;XX@@!   ! Bu?;X@X @?;X@X! B;X@X!  !  @@ ]('!   ! B!    B?x! B…;X@Xx @T$ $ ?;X@X @?p! B;X@Xp ;X@X?! ?!   !    B!   …BX$ $ ' B?ȅB?!   ЅB B?;X@X?B?! !   ؅B B?!   ?h;X@Xh ?!   ?h!   !   !   !   ;XX;XX;XX#\#`#d#h@h @?!    Bȥ B! ! H! ! ! B…FB! BB!   ! B…BBBBB!   BT$ $ !   !    B! ! ! ! BBJ! BB! ! ! B… HB! BB!   ! B… BB BB BBBB!   BX$ $ 'TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinitytm-for?>h=|׽?@@4@@2@R@M@8@"@@>@N@@ttmforinttmfor dd'8(8)<@ʞ4$ 1$7 W l        % 9 U q   tmfor.c/ecs/hdfeos/gctp/src/tmfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbeqsAAWzp./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o tmfor.o tmfor.c -W0,-xp\$XAEBTnbeqsAAWzp.tmforint$XBEBTnbeqsAAWzp.tmforint.__func__tmfor$XBEBTnbeqsAAWzp.tmfor.__func__$XAEBTnbeqsAAWzp.ind$XAEBTnbeqsAAWzp.false_easting$XAEBTnbeqsAAWzp.false_northing$XAEBTnbeqsAAWzp.ml0$XAEBTnbeqsAAWzp.esp$XAEBTnbeqsAAWzp.es$XAEBTnbeqsAAWzp.e3$XAEBTnbeqsAAWzp.e2$XAEBTnbeqsAAWzp.e1$XAEBTnbeqsAAWzp.e0$XAEBTnbeqsAAWzp.lat_origin$XAEBTnbeqsAAWzp.lon_center$XAEBTnbeqsAAWzp.scale_factor$XAEBTnbeqsAAWzp.r_minor$XAEBTnbeqsAAWzp.r_majorK dd'8(8)<@ʞ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ j x     Ҡp  D?pD@DADBDCDDDEDGDH$DIHDJtDKDLDMDNDPDQDSDW4DXDDYxDZD[D\D] , D^ ?$ p | T X4    ˀ Հ    Ds4Dt\Dx|DzD{D}D~ ,,D,DDDDDhppDpDDDDDDD(DDD#, De(!0"(!/u(!/U(!/(!0  (!/'(!/C(!/_(!/{(!/(!/9(!/(!.(!.&(!.G$d$$$$$$$$2$K$i$$$$$$$$#$6$Jbtmfor.c/ecs/hdfeos/gctp/src/tmfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbeqsAAWzp.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.htmforint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)tmfor.c$XBEBTnbeqsAAWzp.tmforint.__func__:V(0,21)=ar(0,4);0;8;(0,22)=k(0,1)tmfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)sin_phi:(0,18)cos_phi:(0,18)al:(0,18)als:(0,18)b:(0,18)c:(0,18)t:(0,18)tq:(0,18)con:(0,18)n:(0,18)ml:(0,18)$XBEBTnbeqsAAWzp.tmfor.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)$XAEBTnbeqsAAWzp.ind:S(0,18)$XAEBTnbeqsAAWzp.false_easting:S(0,18)$XAEBTnbeqsAAWzp.false_northing:S(0,18)$XAEBTnbeqsAAWzp.ml0:S(0,18)$XAEBTnbeqsAAWzp.esp:S(0,18)$XAEBTnbeqsAAWzp.es:S(0,18)$XAEBTnbeqsAAWzp.e3:S(0,18)$XAEBTnbeqsAAWzp.e2:S(0,18)$XAEBTnbeqsAAWzp.e1:S(0,18)$XAEBTnbeqsAAWzp.e0:S(0,18)$XAEBTnbeqsAAWzp.lat_origin:S(0,18)$XAEBTnbeqsAAWzp.lon_center:S(0,18)$XAEBTnbeqsAAWzp.scale_factor:S(0,18)$XAEBTnbeqsAAWzp.r_minor:S(0,18)$XAEBTnbeqsAAWzp.r_major:S(0,18)genrpt:P(0,20);(0,18);(10,3)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)acos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06tmfor.cBbss.bssDdata.dataDrodata.rodatatansqrtcosacoslogp_errorfabssintsincosadjust_lon$XBEBTnbeqsAAWzp.tmfor.__func__tmforoffsetporigincenlonmergenrptradius2ptitlemlfne3fne2fne1fne0fn$XAEBTnbeqsAAWzp.ind$XAEBTnbeqsAAWzp.esp$XAEBTnbeqsAAWzp.ml0$XAEBTnbeqsAAWzp.e3$XAEBTnbeqsAAWzp.e2$XAEBTnbeqsAAWzp.e1$XAEBTnbeqsAAWzp.e0$XAEBTnbeqsAAWzp.es$XAEBTnbeqsAAWzp.false_easting$XAEBTnbeqsAAWzp.false_northing$XAEBTnbeqsAAWzp.lat_origin$XAEBTnbeqsAAWzp.lon_center$XAEBTnbeqsAAWzp.scale_factor$XAEBTnbeqsAAWzp.r_minor$XAEBTnbeqsAAWzp.r_major$XBEBTnbeqsAAWzp.tmforint.__func__tmforint x,059>BJOS[fPph`X'P;HO@c8w0(  %> a,, , + + * * ) ) ( ( ' ' & &  + + ,  , 4 8 H% L% X% \% lt$ x$ % % # # % % " " % % ! ! ,  , $  $ ,# 0# <" @" L! P! \( `(   % %     % %        , 0 4 8 D H LT, X, d+ h+ * *   ) ) ( ( & & ' ' ) )      ( , 8 @ D X @\ @h |, ,  ( (* *        $8 H L l, p, |* * ( (      $% (% H, L, dx, |, $ $ # # " " ! !  * * , 0 8 0< 0T 8X 8` @d @h Hl H P P   X X& & * *    (  ( $ ` ( ` 0 @ 4 @ D h H h X p \ p h x l x t x | X  X       ' ' 4  ( x g H% + 8 7 (F D  Q0K_,{h.!jp0 x3|  tminv.o/ 1073924767 1032 20 100644 17892 ` ELFC4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text@'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ ! $ $ !   !    ?! B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?!   !   !   !   !   ;XX;XX;XX#\#`#d#h@ @! $ $ !   ! ą ! $ $ !   !  !$ ! @!   !   ;XX;X@X!   ! ;XX@!   ;X@X!   ;X@X!   !   ;XX;X@X'㾨'X'T'P'L'H'DDH?LP? 'L! |!   !    B;X@X?hh! ĉ! B?X!   !   !    B…B?PP;X@X?`! `BXBB;X@X?;X@XX$ $ P! X  $ $ X! B`! B !   T$ $ 'X`;XX;X@X!   B;X@XT$ $ '!   ?!   ?!   !    ‰B!    ??'?8!   ?@! B;X@X@ @8B?(!   ?0! B;X@X0 @(?!   ? ! B;X@X @B!    ؅?ЅB?;X@X!  L@ !  @@ _'̠ ';X@X! ! B ؠ;XX@@;X@X?!   B B?B?B?B?! !   B B?!   ?;X@X ?! !   ‰B ?!    B?xxB?p BpF ! ! ! ! NB! BB! B!   ! B! ! ! BB! BB! BB! B… N…B…B…BX$ $ !   x! p! ! FBH! ! F! BB! B!   ! BB! BB B… B‰ B …B;X@XT$ $ ! ! B?;X@X'HH BX$ $ !   T$ $ 'TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSE?>h?@@@=|׽@ !TD-@8@@@$@"@>@N@V@r@F@o@4@<@ tminvinttminv dd'8(8)<@ʟ4$ 1$7 W l        % 9 U q   tminv.c/ecs/hdfeos/gctp/src/tminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfqsAAW0p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o tminv.o tminv.c -W0,-xp\$XAEBTnbfqsAAW0p.tminvint$XBEBTnbfqsAAW0p.tminvint.__func__tminv$XBEBTnbfqsAAW0p.tminv.__func__$XAEBTnbfqsAAW0p.ind$XAEBTnbfqsAAW0p.false_easting$XAEBTnbfqsAAW0p.false_northing$XAEBTnbfqsAAW0p.ml0$XAEBTnbfqsAAW0p.esp$XAEBTnbfqsAAW0p.es$XAEBTnbfqsAAW0p.e3$XAEBTnbfqsAAW0p.e2$XAEBTnbfqsAAW0p.e1$XAEBTnbfqsAAW0p.e0$XAEBTnbfqsAAW0p.lat_origin$XAEBTnbfqsAAW0p.lon_center$XAEBTnbfqsAAW0p.scale_factor$XAEBTnbfqsAAW0p.r_minor$XAEBTnbfqsAAW0p.r_major dd'8(8)<@ʟ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ j x     Ҡp  D@pDADBDCDDDEDFDHDI$DJHDKtDLDMDNDODQDRDVDWDXLDYtDZD[D\ , D] ?$ p z T X4    À ˀ ڀ   '0x9pChL`UX^PjLDo4Ds<PDuPDvDwDxDyDz<D{XD|tD}DDDD088D8DTDpDDDDDDDD(D(D4<D<pDpDDDDDDDDDDtDDDDD D y, D00(!0"(!/u(!/U&(!/C(!0 `(!/|(!/(!/(!/(!/(!/9(!/4(!.Z(!.{(!.$$$$$%$9$L$a${$$$$$ $!$?$S$g$z$$$$btminv.c/ecs/hdfeos/gctp/src/tminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbfqsAAW0p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.htminvint:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)center_lon:p(0,18)center_lat:p(0,18)false_east:p(0,18)false_north:p(0,18)temp:(0,18)tminv.c$XBEBTnbfqsAAW0p.tminvint.__func__:V(0,21)=ar(0,4);0;8;(0,22)=k(0,1)tminv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)con:(0,18)phi:(0,18)delta_phi:(0,18)i:(0,4)sin_phi:(0,18)cos_phi:(0,18)tan_phi:(0,18)c:(0,18)cs:(0,18)t:(0,18)ts:(0,18)n:(0,18)r:(0,18)d:(0,18)ds:(0,18)f:(0,18)h:(0,18)g:(0,18)temp:(0,18)max_iter:(0,4)$XBEBTnbfqsAAW0p.tminv.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)$XAEBTnbfqsAAW0p.ind:S(0,4)$XAEBTnbfqsAAW0p.false_easting:S(0,18)$XAEBTnbfqsAAW0p.false_northing:S(0,18)$XAEBTnbfqsAAW0p.ml0:S(0,18)$XAEBTnbfqsAAW0p.esp:S(0,18)$XAEBTnbfqsAAW0p.es:S(0,18)$XAEBTnbfqsAAW0p.e3:S(0,18)$XAEBTnbfqsAAW0p.e2:S(0,18)$XAEBTnbfqsAAW0p.e1:S(0,18)$XAEBTnbfqsAAW0p.e0:S(0,18)$XAEBTnbfqsAAW0p.lat_origin:S(0,18)$XAEBTnbfqsAAW0p.lon_center:S(0,18)$XAEBTnbfqsAAW0p.scale_factor:S(0,18)$XAEBTnbfqsAAW0p.r_minor:S(0,18)$XAEBTnbfqsAAW0p.r_major:S(0,18)genrpt:P(0,20);(0,18);(10,3)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)sign:P(0,3);(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)origin:P(0,20);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)exp:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06tminv.cBbss.bssDdata.dataDrodata.rodatasigntantsincosp_errorfabssinatan2adjust_lonasinzsqrtcosexp$XBEBTnbfqsAAW0p.tminv.__func__tminvoffsetporigincenlonmergenrptradius2ptitlemlfne3fne2fne1fne0fn$XAEBTnbfqsAAW0p.ind$XAEBTnbfqsAAW0p.esp$XAEBTnbfqsAAW0p.ml0$XAEBTnbfqsAAW0p.e3$XAEBTnbfqsAAW0p.e2$XAEBTnbfqsAAW0p.e1$XAEBTnbfqsAAW0p.e0$XAEBTnbfqsAAW0p.es$XAEBTnbfqsAAW0p.false_easting$XAEBTnbfqsAAW0p.false_northing$XAEBTnbfqsAAW0p.lat_origin$XAEBTnbfqsAAW0p.lon_center$XAEBTnbfqsAAW0p.scale_factor$XAEBTnbfqsAAW0p.r_minor$XAEBTnbfqsAAW0p.r_major$XBEBTnbfqsAAW0p.tminvint.__func__tminvint t,15=EJNT_ejnr @ph `X3PGH[@o80( 1J m. . - - , , + + * * ) ) ( (  - - .  . 4 8 H' L' X' \' lt& x& ' ' % % ' ' $ $ ' ' # # .  . &  & ,% 0% <$ @$ L# P# \* `* " " ' '   ! ! ' '        (. ,. 8- <- T\, `, l p |+ + * * ( ( ) ) \ ` t. x. , ,     * * . . , , ( , Pd|      + +  $+ (+ <\( `( x) |) " " , , . . % %    ,$ 0$ D (H (T p# t#  0 0 & &   8 8$ @( @4 d l @p @t x  ! !   ' ' 4. 8. P h l p' t' , ,      H  H  P  P  X  X  `  ` , ( 0 ( <! @! L h P h \ p ` p h x l x p t       + +    0  0   ( , 4 P 8 P D H X X \ X h! l! x |  H  H   @  @      $+ (+ 4  ` t g %G+H8 7FD  QP_1 h2vp5< x8L @  utmfor.o/ 1073924768 1032 20 100644 16988 ` ELF@4(.shstrtab.text.data1.bss.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\@ \@ < !  @@ '! $ $ ! $ $ ! $ $ ! ! $ $ \@* * $ '̉! B! $ $ ! ! $ $ \ ! ?! ?! $ $ !   !    ?! ؅B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?!   !   !   !   !   ;XX;XX;XX#\#`#d#h@ @! $ $ !   ! ą ! $ $ !   ! ! ! $ $ ! @\#`@@!   !   ;XX;X@X!   ! ;XX@!   ;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?آ;XX@@!   ! Bu?;X@X @?;X@X! B;X@X!  !  @@ ]('!   ! B!    B?x! B…;X@Xx @T$ $ ?;X@X @?p! B;X@Xp ;X@X?! ?!   !    B!   …BX$ $ ' B?ȅB?!   ЅB B?;X@X?B?! !   ؅B B?!   ?h;X@Xh ?!   ?h!   !   !   !   ;XX;XX;XX#\#`#d#h@h @?!    Bȥ B! ! H! ! ! B…FB! BB!   ! B…BBBBB!   BT$ $ !   !    B! ! ! ! BBJ! BB! ! ! B… HB! BB!   ! B… BB BB BBBB!   BX$ $ 'Illegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityutm-for?FR5AAc?>h=|׽?@@4@@2@R@M@8@"@@>@N@@tutmforintutmfor d d)8*8+<@ʠ4 $ 7$> _ t        - A ] y   utmfor.c/ecs/hdfeos/gctp/src/utmfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbgqsAAW1p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o utmfor.o utmfor.c -W0,-xp\$XAEBTnbgqsAAW1p.utmforint$XBEBTnbgqsAAW1p.utmforint.__func__utmfor$XBEBTnbgqsAAW1p.utmfor.__func__$XAEBTnbgqsAAW1p.ind$XAEBTnbgqsAAW1p.false_easting$XAEBTnbgqsAAW1p.false_northing$XAEBTnbgqsAAW1p.ml0$XAEBTnbgqsAAW1p.esp$XAEBTnbgqsAAW1p.es$XAEBTnbgqsAAW1p.e3$XAEBTnbgqsAAW1p.e2$XAEBTnbgqsAAW1p.e1$XAEBTnbgqsAAW1p.e0$XAEBTnbgqsAAW1p.lat_origin$XAEBTnbgqsAAW1p.lon_center$XAEBTnbgqsAAW1p.scale_factor$XAEBTnbgqsAAW1p.r_minor$XAEBTnbgqsAAW1p.r_majorD d d)8*8+<@ʠπ;Wt؀2Wkł:@Sl@π ̀4Rs@Uhr? ւ [   @ @ ? U y    h     ܀ L a u$    Р\@ ܀ D:@pD<pD=D?D@DADBDCDD,DEDDGDHDIDJDK(DLTDMDN,DP\DQDUDVDWDXDY DZ< , D[LL7$iuTX4Ā΀ـ Dq4Dr\Dv|DxDyD{D| ,,D,DDDDDhppDpDDDDDDD(DDD, D_(!2|(!2(!29(!2(!2(!2_!(!2=(!2Y(!2u(!2s(!1(!1(!1(!1 (!1A$b$$$$$$$$2$P$u$$$$$$$ $$1$Cbutmfor.c/ecs/hdfeos/gctp/src/utmfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbgqsAAW1p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(14,1)=u8_i:(14,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(14,3)=(14,1)version:T(13,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(13,2)=s32type:(0,3),0,32;name:(13,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(17,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(17,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(17,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(17,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(17,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(15,1)=(0,3)sigfpe_handler_type:t(15,2)=*(15,3)=f(0,20)single:t(15,4)=(0,17)extended:t(15,5)=ar(0,4);0;2;(0,14)quadruple:t(15,6)=(0,19)fp_exception_field_type:t(15,7)=(0,14)decimal_string:t(15,8)=ar(0,4);0;511;(0,1):T(15,9)=s532fpclass:(17,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(15,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(15,10)=(15,9)decimal_form:T(15,11)=efixed_form:0,floating_form:1,;:T(15,12)=s12rd:(17,1),0,32;df:(15,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(15,13)=(15,12)decimal_string_form:T(15,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hutmforint:F(0,3);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)zone:p(0,4)temp:(0,18)utmfor.c$XBEBTnbgqsAAW1p.utmforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)utmfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)sin_phi:(0,18)cos_phi:(0,18)al:(0,18)als:(0,18)b:(0,18)c:(0,18)t:(0,18)tq:(0,18)con:(0,18)n:(0,18)ml:(0,18)$XBEBTnbgqsAAW1p.utmfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbgqsAAW1p.ind:S(0,18)$XAEBTnbgqsAAW1p.false_easting:S(0,18)$XAEBTnbgqsAAW1p.false_northing:S(0,18)$XAEBTnbgqsAAW1p.ml0:S(0,18)$XAEBTnbgqsAAW1p.esp:S(0,18)$XAEBTnbgqsAAW1p.es:S(0,18)$XAEBTnbgqsAAW1p.e3:S(0,18)$XAEBTnbgqsAAW1p.e2:S(0,18)$XAEBTnbgqsAAW1p.e1:S(0,18)$XAEBTnbgqsAAW1p.e0:S(0,18)$XAEBTnbgqsAAW1p.lat_origin:S(0,18)$XAEBTnbgqsAAW1p.lon_center:S(0,18)$XAEBTnbgqsAAW1p.scale_factor:S(0,18)$XAEBTnbgqsAAW1p.r_minor:S(0,18)$XAEBTnbgqsAAW1p.r_major:S(0,18)genrpt_long:P(0,20);(0,4);(13,3)genrpt:P(0,20);(0,18);(13,3)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(13,3)p_error:P(0,20);(13,3);(13,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)acos:P(0,18);(0,18)labs:P(0,4);(0,4)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06utmfor.cBbss.bssDdata.dataDrodata.rodatatansqrtcosacoslogfabssintsincosadjust_lon$XBEBTnbgqsAAW1p.utmfor.__func__utmforcenlonmergenrptradius2genrpt_longptitlemlfne3fne2fne1fne0fnp_errorlabs$XAEBTnbgqsAAW1p.ind$XAEBTnbgqsAAW1p.esp$XAEBTnbgqsAAW1p.ml0$XAEBTnbgqsAAW1p.e3$XAEBTnbgqsAAW1p.e2$XAEBTnbgqsAAW1p.e1$XAEBTnbgqsAAW1p.e0$XAEBTnbgqsAAW1p.es$XAEBTnbgqsAAW1p.false_northing$XAEBTnbgqsAAW1p.false_easting$XAEBTnbgqsAAW1p.lon_center$XAEBTnbgqsAAW1p.lat_origin$XAEBTnbgqsAAW1p.scale_factor$XAEBTnbgqsAAW1p.r_minor$XAEBTnbgqsAAW1p.r_major$XBEBTnbgqsAAW1p.utmforint.__func__utmforint x-16:?CHLT_ph`X,P@HT@h8|0( *C g\Tl  , , + + * *   ) )   $ ,( 0( < @ D' H' d h t x & & + + , ,   % % % % $ $  % %  (# ,# 8% <% LT" X" d% h% x! ! , , $ $ # # " " ! ! ) ) , 0 <% @% L P \ ` l% p% | ( (       D D, , + + *  *  P P(0( 4( D( (      4 P X 0\ 0h p 8t 8 t t, ,  @ @* *    ( < @ Th x | , , * * ) )    4L P T% X% x, |, , , $ $ # # " " ! ! (<* @* \ ` h Hl H P P X X ` ` h h   p p' ' * * ( , L @ P @ T x X x ` X d X t x        p  p       & & 4  X  x % q+ t8 7 Fx  QdD_.h0qp3 x5   utminv.o/ 1073924770 1032 20 100644 18752 ` ELFF4(.shstrtab.text.data1.bss.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textP'X'T'P'L'H'DDH?LP?TX?\@ \@ < !  @@ '! $ $ ! $ $ ! $ $ ! ! $ $ \@* * $ '̉! B! $ $ ! ! $ $ \ ! ?! ?! $ $ !   !    ?! ؅B! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ;X@X! $ $ !   ?!   !   !   !   !   ;XX;XX;XX#\#`#d#h@ @! $ $ !   ! ą ! $ $ !   !  !$ !$ ! @\#`@@!   !   ;XX;X@X!   ! ;XX@!   ;X@X'㾨'X'T'P'L'H'DDH?LP? 'L! |!   !    B;X@X?hh! ĉ! B?X!   !   !    B…B?PP;X@X?`! `BXBB;X@X?;X@XX$ $ P! X  $ $ X! B`! B !   T$ $ 'X`;XX;X@X!   B;X@XT$ $ '!   ?!   ?!   !    ‰B!    ??'?8!   ?@! B;X@X@ @8B?(!   ?0! B;X@X0 @(?!   ? ! B;X@X @B!    ؅?ЅB?;X@X!  L@ !  @@ _'̠ ';X@X! ! B ؠ;XX@@;X@X?!   B B?B?B?B?! !   B B?!   ?;X@X ?! !   ‰B ?!    B?xxB?p BpF ! ! ! ! NB! BB! B!   ! B! ! ! BB! BB! BB! B… N…B…B…BX$ $ !   x! p! ! FBH! ! F! BB! B!   ! BB! BB B… B‰ B …B;X@XT$ $ ! ! B?;X@X'HH BX$ $ !   T$ $ 'Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE?FR5AAc?>h?@@@=|׽@ !TD-@8@@@$@"@>@N@V@r@F@o@4@<@ utminvintutminv d d)8*8+<@ʡ4 $ 7$> _ t        - A ] y   utminv.c/ecs/hdfeos/gctp/src/utminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbhqsAAW2p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o utminv.o utminv.c -W0,-xp\$XAEBTnbhqsAAW2p.utminvint$XBEBTnbhqsAAW2p.utminvint.__func__utminv$XBEBTnbhqsAAW2p.utminv.__func__$XAEBTnbhqsAAW2p.ind$XAEBTnbhqsAAW2p.false_easting$XAEBTnbhqsAAW2p.false_northing$XAEBTnbhqsAAW2p.ml0$XAEBTnbhqsAAW2p.esp$XAEBTnbhqsAAW2p.es$XAEBTnbhqsAAW2p.e3$XAEBTnbhqsAAW2p.e2$XAEBTnbhqsAAW2p.e1$XAEBTnbhqsAAW2p.e0$XAEBTnbhqsAAW2p.lat_origin$XAEBTnbhqsAAW2p.lon_center$XAEBTnbhqsAAW2p.scale_factor$XAEBTnbhqsAAW2p.r_minor$XAEBTnbhqsAAW2p.r_major d d)8*8+<@ʡπ;Wt؀2Wkł:@Sl@π ̀4Rs@Uhr? ւ [   @ @ ? U y    h     ܀ L a u$    Р\@ ܀ D<@pD>pD?DADBDCDDDEDF,DGDDIDJDKDLDM(DNTDODP,DR\DSDUDYDZD[D\D]$D^@ , D_PP7$is}TX4ĀӀ  )x2p<hE`NXWPcLDq4Du<PDwPDxDyDzD{D|<D}XD~tDDDDD088D8DTDpDDDDDDDD(D(D4<D<pDpDDDDDDDDDDtDDDDD D r, D00(!2(!2(!29 (!2=(!2Z(!2_v(!2(!2(!2(!2s(!1 (!1.(!1T(!1u(!1$$$$$,$@$T$g$|$$$$$$&$:$N$a$t$$$$butminv.c/ecs/hdfeos/gctp/src/utminv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbhqsAAW2p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(14,1)=u8_i:(14,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(14,3)=(14,1)version:T(13,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(13,2)=s32type:(0,3),0,32;name:(13,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(17,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(17,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(17,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(17,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(17,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(15,1)=(0,3)sigfpe_handler_type:t(15,2)=*(15,3)=f(0,20)single:t(15,4)=(0,17)extended:t(15,5)=ar(0,4);0;2;(0,14)quadruple:t(15,6)=(0,19)fp_exception_field_type:t(15,7)=(0,14)decimal_string:t(15,8)=ar(0,4);0;511;(0,1):T(15,9)=s532fpclass:(17,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(15,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(15,10)=(15,9)decimal_form:T(15,11)=efixed_form:0,floating_form:1,;:T(15,12)=s12rd:(17,1),0,32;df:(15,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(15,13)=(15,12)decimal_string_form:T(15,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hutminvint:F(0,3);(0,18);(0,18);(0,18);(0,4)r_maj:p(0,18)r_min:p(0,18)scale_fact:p(0,18)zone:p(0,4)temp:(0,18)utminv.c$XBEBTnbhqsAAW2p.utminvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)utminv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)con:(0,18)phi:(0,18)delta_phi:(0,18)i:(0,4)sin_phi:(0,18)cos_phi:(0,18)tan_phi:(0,18)c:(0,18)cs:(0,18)t:(0,18)ts:(0,18)n:(0,18)r:(0,18)d:(0,18)ds:(0,18)f:(0,18)h:(0,18)g:(0,18)temp:(0,18)max_iter:(0,4)$XBEBTnbhqsAAW2p.utminv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbhqsAAW2p.ind:S(0,4)$XAEBTnbhqsAAW2p.false_easting:S(0,18)$XAEBTnbhqsAAW2p.false_northing:S(0,18)$XAEBTnbhqsAAW2p.ml0:S(0,18)$XAEBTnbhqsAAW2p.esp:S(0,18)$XAEBTnbhqsAAW2p.es:S(0,18)$XAEBTnbhqsAAW2p.e3:S(0,18)$XAEBTnbhqsAAW2p.e2:S(0,18)$XAEBTnbhqsAAW2p.e1:S(0,18)$XAEBTnbhqsAAW2p.e0:S(0,18)$XAEBTnbhqsAAW2p.lat_origin:S(0,18)$XAEBTnbhqsAAW2p.lon_center:S(0,18)$XAEBTnbhqsAAW2p.scale_factor:S(0,18)$XAEBTnbhqsAAW2p.r_minor:S(0,18)$XAEBTnbhqsAAW2p.r_major:S(0,18)genrpt_long:P(0,20);(0,4);(13,3)genrpt:P(0,20);(0,18);(13,3)mlfn:P(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e3fn:P(0,18);(0,18)e2fn:P(0,18);(0,18)e1fn:P(0,18);(0,18)e0fn:P(0,18);(0,18)sign:P(0,3);(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)cenlonmer:P(0,20);(0,18)radius2:P(0,20);(0,18);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(13,3)p_error:P(0,20);(13,3);(13,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)exp:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)labs:P(0,4);(0,4)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06utminv.cBbss.bssDdata.dataDrodata.rodatasigntantsincosfabssinatan2adjust_lonasinzsqrtcosexp$XBEBTnbhqsAAW2p.utminv.__func__utminvcenlonmergenrptradius2genrpt_longptitlemlfne3fne2fne1fne0fnp_errorlabs$XAEBTnbhqsAAW2p.ind$XAEBTnbhqsAAW2p.esp$XAEBTnbhqsAAW2p.ml0$XAEBTnbhqsAAW2p.e3$XAEBTnbhqsAAW2p.e2$XAEBTnbhqsAAW2p.e1$XAEBTnbhqsAAW2p.e0$XAEBTnbhqsAAW2p.es$XAEBTnbhqsAAW2p.false_northing$XAEBTnbhqsAAW2p.false_easting$XAEBTnbhqsAAW2p.lon_center$XAEBTnbhqsAAW2p.lat_origin$XAEBTnbhqsAAW2p.scale_factor$XAEBTnbhqsAAW2p.r_minor$XAEBTnbhqsAAW2p.r_major$XBEBTnbhqsAAW2p.utminvint.__func__utminvint t-26>CGMX^cgk@ph`$X8PLH`@t80( 6O s`Tl  . . - - , ,   + +   $ ,* 0* < @ D) H) d h t x ( ( - - . .   ' ' ' ' & &  ' '  (% ,% 8' <' LT$ X$ d' h' x# # . . & & % % $ $ # # + + ," 0" <' @' L P \! `! l' p' | ( (       D D. . - -  , ,  P  P,4* 8* H  . . , ,     0$ 00+ 4+ D. H. T, X, |      , 0 D* H* | * *  ) ) ( ( " " , , .  . H% L% ` 8d 8p $ $  @ @ # #  H H & & H P PT P t t  X X 0 0    $! (! h l p' t' . .    ' ' , , D 0 H 0 L ` P ` X h \ h d p h p x x | x  @  @ ! !               @* D* T X ` H d H p 8 t 8    h  h    p  p ! !    `  `  < X @ X D 0 H 0 \ * * 4   xt%+8 74F  Q_3h5|}p7 x;  vandgfor.o/ 1073924771 1032 20 100644 12044 ` ELF,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X''X'T'P'L'H'DDH?LP?!   ;X@X?;X@X!  !   !    BBT$ $ !   X$ $ :'! ;X@X! B;X@X?;X@X! ;X@X! ! B;X@X!  L!   T$ $ ! !   ?!   ! B?! B;X@X @BX$ $ !   ?!   ! B?! B;X@X! BBX$ $ '! ą …;X@X! B?ЅB?ؠ;XX@@F! B?B?!  ! BB?B?!   ! B?pȽ B?xȉB BFȅ B;X@Xx@p BȅB?! ?!   BT$ $ !   ! B;X@X?! &!   ?!   ! B?! F! BF;X@X @BX$ $ $!   ?!   ! B?! F! BF;X@X @X$ $ 'VAN DER GRINTEN=|׽@ !TD-@??vandgforintvandgfor d"d-8.8/<@ʢ4$ C$L o    vandgfor.c/ecs/hdfeos/gctp/src/vandgfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbiqsAAW3p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o vandgfor.o vandgfor.c -W0,-xp\$XAEBTnbiqsAAW3p.vandgforint$XBEBTnbiqsAAW3p.vandgforint.__func__vandgfor$XBEBTnbiqsAAW3p.vandgfor.__func__$XAEBTnbiqsAAW3p.false_northing$XAEBTnbiqsAAW3p.false_easting$XAEBTnbiqsAAW3p.R$XAEBTnbiqsAAW3p.lon_center d"d-8.8/<@ʢӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ ^ h | L D1LD2`D3tD4D8D9D:D;D< , D= $ + 7 CT MX4 W c p z       ŀDR4DT\DVDWDXDZD[D]D^D_Da8DbDdDeDfDgDh4Di@DjhDltDmDnDo$DpHDq|DrDt(Dv , Dw(!/\?(!/=f(!/(!/!$$$$$$C$Y$m$$bvandgfor.c/ecs/hdfeos/gctp/src/vandgfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbiqsAAW3p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hvandgforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)vandgfor.c$XBEBTnbiqsAAW3p.vandgforint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)vandgfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)dlon:(0,18)theta:(0,18)al:(0,18)asq:(0,18)g:(0,18)gsq:(0,18)m:(0,18)msq:(0,18)con:(0,18)costh:(0,18)sinth:(0,18)$XBEBTnbiqsAAW3p.vandgfor.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbiqsAAW3p.false_northing:S(0,18)$XAEBTnbiqsAAW3p.false_easting:S(0,18)$XAEBTnbiqsAAW3p.R:S(0,18)$XAEBTnbiqsAAW3p.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)tan:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06vandgfor.cBbss.bssDdata.dataDrodata.rodatasqrttsincostanasinzfabsadjust_lon$XBEBTnbiqsAAW3p.vandgfor.__func__vandgforoffsetpcenlonradiusptitle$XAEBTnbiqsAAW3p.false_northing$XAEBTnbiqsAAW3p.false_easting$XAEBTnbiqsAAW3p.lon_center$XAEBTnbiqsAAW3p.R$XBEBTnbiqsAAW3p.vandgforint.__func__vandgforint  8/4<@FKVD y@ 8 3 ` d t x           x |           $ ( 4 < @ L ` h l                 ( , < @ L x |             L` (d (   ( (    @ D d h                0 0$ ( <h l |     0 0  4  M%%+( 7F X  Q_"h$O?p% x'   vandginv.o/ 1073924772 1032 20 100644 11480 ` ELF*4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X' 'X'T'P'L'H'DDH?LP?!   ?!   ?!   ! B? ? ?B؅BB?;X@X!! ЅBB?! BDBB?! B! B! BDBЅBB?؅B! BFFȅȕ! BFȅȉ! …B?B! ą…?#! ;X@X! B?! B  ?;X@X! ! ! ?! ?;X@X! ?! #?#`! …B;X@X @  ‰` BX$ $ #?#`! …B;X@X @  …‹#` BX$ $ ;X@X!  !   T$ $ 1'!   ?! B?! B؅B#` BB HB;X@X@! B`  B;X@XT$ $ 'VAN DER GRINTEN@ !TD-?@@"@;@=|׽vandginvintvandginv d"d-8.8/<@ʣ4$ C$L o    vandginv.c/ecs/hdfeos/gctp/src/vandginv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbjqsAAW4p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o vandginv.o vandginv.c -W0,-xp\$XAEBTnbjqsAAW4p.vandginvint$XBEBTnbjqsAAW4p.vandginvint.__func__vandginv$XBEBTnbjqsAAW4p.vandginv.__func__$XAEBTnbjqsAAW4p.false_northing$XAEBTnbjqsAAW4p.false_easting$XAEBTnbjqsAAW4p.R$XAEBTnbjqsAAW4p.lon_centerd d"d-8.8/<@ʣӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    /$ ^ h | L D1LD2`D3tD4D8D9D:D;D< , D= $ + 5 ?T KX4 W a k v       DQ4DRPDSlDTDUDVDWDXDY D[dD\D]D^,D_PxDaxDbDdDfDgDhDj`DlDnDo Dr Dt , Du (!/\4(!/=[(!/v(!/!$$$$$$($<$O$cbvandginv.c/ecs/hdfeos/gctp/src/vandginv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbjqsAAW4p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hvandginvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)vandginv.c$XBEBTnbjqsAAW4p.vandginvint.__func__:V(0,21)=ar(0,4);0;11;(0,22)=k(0,1)vandginv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)xx:(0,18)yy:(0,18)xys:(0,18)c1:(0,18)c2:(0,18)c3:(0,18)a1:(0,18)m1:(0,18)con:(0,18)th1:(0,18)d:(0,18)$XBEBTnbjqsAAW4p.vandginv.__func__:V(0,24)=ar(0,4);0;8;(0,25)=k(0,1)$XAEBTnbjqsAAW4p.false_northing:S(0,18)$XAEBTnbjqsAAW4p.false_easting:S(0,18)$XAEBTnbjqsAAW4p.R:S(0,18)$XAEBTnbjqsAAW4p.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)cos:P(0,18);(0,18)acos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06vandginv.cBbss.bssDdata.dataDrodata.rodataadjust_loncosacossqrtfabs$XBEBTnbjqsAAW4p.vandginv.__func__vandginvoffsetpcenlonradiusptitle$XAEBTnbjqsAAW4p.false_northing$XAEBTnbjqsAAW4p.false_easting$XAEBTnbjqsAAW4p.lon_center$XAEBTnbjqsAAW4p.R$XBEBTnbjqsAAW4p.vandginvint.__func__vandginvint  P/:>CHM\ p@yP * ` d t x           x |           < @ d h p t        ( ( 0 0D 0H 0T \ ` p 0t 0    8 8   @ @  0 0 8 8@ D H 0L 0\p 0    0 0 0  $ H( H< @ ` d x @| @        4 0 e%]+` 7F 4  Q(d_!h#26p$h x%  wivfor.o/ 1073924773 1032 20 100644 9860 ` ELF$,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X;XX;X@X'@'X'T'P'L'H'DDH?LP?!   ;X@X??;X@X! B?'?;X@X@ȅ¿#?! ?;X@X@ ?ЅB?;X@X! Ā !  @@Ġ '! ?!   ! Bཡ B?;X@X @!   BT$ $ !   ! B?;X@X @!   BX$ $ 'WAGNER IVIteration failed to convergewagneriv-forward@DKL?=|׽@?랃%? 4\wivforintwivfor d d)8*8+<@ʥ4 $ 7$> _    wivfor.c/ecs/hdfeos/gctp/src/wivfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbkqsAAW5p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o wivfor.o wivfor.c -W0,-xp\$XAEBTnbkqsAAW5p.wivforint$XBEBTnbkqsAAW5p.wivforint.__func__wivfor$XBEBTnbkqsAAW5p.wivfor.__func__$XAEBTnbkqsAAW5p.false_northing$XAEBTnbkqsAAW5p.false_easting$XAEBTnbkqsAAW5p.R$XAEBTnbkqsAAW5p.lon_center2 d d)8*8+<@ʥπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D,LD-`D.tD/D3D4D5D6D7 , D8 $  * 6T @X4 J [ h { DJ4DK\DLdDPDRDSDTDU(DPPDV\dDWdDXxDYDZ0 , D[@@ (!. (!. (!.;(!._$y$$$$$$ $$1bwivfor.c/ecs/hdfeos/gctp/src/wivfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbkqsAAW5p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hwivforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)wivfor.c$XBEBTnbkqsAAW5p.wivforint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)wivfor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)theta:(0,18)delta_theta:(0,18)con:(0,18)i:(0,4)$XBEBTnbkqsAAW5p.wivfor.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnbkqsAAW5p.false_northing:S(0,18)$XAEBTnbkqsAAW5p.false_easting:S(0,18)$XAEBTnbkqsAAW5p.R:S(0,18)$XAEBTnbkqsAAW5p.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06wivfor.cBbss.bssDdata.dataDrodata.rodatap_errorfabscossinadjust_lon$XBEBTnbkqsAAW5p.wivfor.__func__wivforoffsetpcenlonradiusptitle$XAEBTnbkqsAAW5p.false_northing$XAEBTnbkqsAAW5p.false_easting$XAEBTnbkqsAAW5p.lon_center$XAEBTnbkqsAAW5p.R$XBEBTnbkqsAAW5p.wivforint.__func__wivforint 0-5:>BM:n(Pu}0 $` d t x       ` d x        (0 4 ` d p            ( (( 8 < 4 x0 0=pA%+ 7hF8D  Q|2_hT.p  x"(  wivinv.o/ 1073924774 1032 20 100644 9200 ` ELF!4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X;XX;X@X'`'X'T'P'L'H'DDH?LP?!   ?!   ?!   ! B;X@X?!   ??!   ! B?;X@X؅ @Ѕ ȅB;X@XT$ $ ! B?;X@X@! ;X@XX$ $ 'WAGNER IV? 4\?랃%@@DKLwivinvintwivinv d d)8*8+<@ʦ4 $ 7$> _    wivinv.c/ecs/hdfeos/gctp/src/wivinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnblqsAAW6p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o wivinv.o wivinv.c -W0,-xp\$XAEBTnblqsAAW6p.wivinvint$XBEBTnblqsAAW6p.wivinvint.__func__wivinv$XBEBTnblqsAAW6p.wivinv.__func__$XAEBTnblqsAAW6p.false_northing$XAEBTnblqsAAW6p.false_easting$XAEBTnblqsAAW6p.R$XAEBTnblqsAAW6p.lon_center d d)8*8+<@ʦπ;Wt؀2Wkł:@Sl@π ̀(<X oeǀD@ɀ@ / H o   = s   Ԁ    +$ X b v L D+LD,`D-tD.D2D3D4D5D6 , D7 $  ( 2T >X4 JDE4DFPDGlDHDIDJh W, DKxx (!. (!. (!.(!.($B$`$v$$$$$bwivinv.c/ecs/hdfeos/gctp/src/wivinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnblqsAAW6p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hwivinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)wivinv.c$XBEBTnblqsAAW6p.wivinvint.__func__:V(0,21)=ar(0,4);0;9;(0,22)=k(0,1)wivinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)theta:(0,18)$XBEBTnblqsAAW6p.wivinv.__func__:V(0,24)=ar(0,4);0;6;(0,25)=k(0,1)$XAEBTnblqsAAW6p.false_northing:S(0,18)$XAEBTnblqsAAW6p.false_easting:S(0,18)$XAEBTnblqsAAW6p.R:S(0,18)$XAEBTnblqsAAW6p.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sin:P(0,18);(0,18)cos:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06wivinv.cBbss.bssDdata.dataDrodata.rodatasincosadjust_lonasin$XBEBTnblqsAAW6p.wivinv.__func__wivinvoffsetpcenlonradiusptitle$XAEBTnblqsAAW6p.false_northing$XAEBTnblqsAAW6p.false_easting$XAEBTnblqsAAW6p.lon_center$XAEBTnblqsAAW6p.R$XBEBTnblqsAAW6p.wivinvint.__func__wivinvint  -15@E*f(mu| ` d t x        ` d |              0 H L \l p | 4 h h x1%+ 7`F0  Q _hC&plp x  wviifor.o/ 1073924775 1032 20 100644 9604 ` ELF#,4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'X'X'T'P'L'H'DDH?LP?!   ;X@X?!  آ;XX@@;X@X! B?! ȅB;X@X?! ! Ѕ BB ;X@X?!   ! B B B؉ B!   BT$ $ !   ! Bȉ B B!   BX$ $ 'WAGNER VII@?}A5T?@@V|G?LPrwviiforintwviifor d!d+8,8-<@ʧ4 $ =$E g    wviifor.c/ecs/hdfeos/gctp/src/wviifor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbmqsAAW7p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o wviifor.o wviifor.c -W0,-xp\$XAEBTnbmqsAAW7p.wviiforint$XBEBTnbmqsAAW7p.wviiforint.__func__wviifor$XBEBTnbmqsAAW7p.wviifor.__func__$XAEBTnbmqsAAW7p.false_northing$XAEBTnbmqsAAW7p.false_easting$XAEBTnbmqsAAW7p.R$XAEBTnbmqsAAW7p.lon_center6 d!d+8,8-<@ʧр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D+LD,`D-tD.D2D3D4D5D6 , D7 $ % 1 =T GX4 Q b q   DG4DH\DIDJDKDLDMTDN , DO (!/[ (!/<0(!/ K(!/ o$$$$$$$"$5bwviifor.c/ecs/hdfeos/gctp/src/wviifor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbmqsAAW7p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hwviiforint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)wviifor.c$XBEBTnbmqsAAW7p.wviiforint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)wviifor:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)lon:p(0,18)lat:p(0,18)x:p(0,23)y:p(0,23)delta_lon:(0,18)sin_lon:(0,18)cos_lon:(0,18)s:(0,18)c0:(0,18)c1:(0,18)$XBEBTnbmqsAAW7p.wviifor.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnbmqsAAW7p.false_northing:S(0,18)$XAEBTnbmqsAAW7p.false_easting:S(0,18)$XAEBTnbmqsAAW7p.R:S(0,18)$XAEBTnbmqsAAW7p.lon_center:S(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)tsincos:P(0,20);(0,18);(0,23);(0,23)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)sin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06wviifor.cBbss.bssDdata.dataDrodata.rodatasqrtsintsincosadjust_lon$XBEBTnbmqsAAW7p.wviifor.__func__wviiforoffsetpcenlonradiusptitle$XAEBTnbmqsAAW7p.false_northing$XAEBTnbmqsAAW7p.false_easting$XAEBTnbmqsAAW7p.lon_center$XAEBTnbmqsAAW7p.R$XBEBTnbmqsAAW7p.wviiforint.__func__wviiforint 0.37?J;l@t|0 $ ` d t x            x |              4@ D P T t x    ( (  4   C% +  7F  Q |6_hX/pp x 4  wviiinv.o/ 1073924776 1032 20 100644 9740 ` ELF#4(.shstrtab.text.bss.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textx'X'T'P'L'H'DDH?LP?TX?\`?! $ $ ! $ $ ! $ $ ! $ $ ! @;X@X;X@X!   !   ;XX;X@X'P'X'T'P'L'H'DDH?LP?!   ?!   ?! ?! ?B?؅B?؅B;X@X?!   ! B;X@X B??;X@X @! ! BЅ B;X@XX$ $ !   ??;X@X @! B;XX;X@X! BB;X@XT$ $ 'WAGNER VII@V|G?LPr@?}A5T@wviiinvintwviiinv d!d+8,8-<@ʨ4 $ =$E g    wviiinv.c/ecs/hdfeos/gctp/src/wviiinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnboqsAAW8p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o wviiinv.o wviiinv.c -W0,-xp\$XAEBTnboqsAAW8p.wviiinvint$XBEBTnboqsAAW8p.wviiinvint.__func__wviiinv$XBEBTnboqsAAW8p.wviiinv.__func__$XAEBTnboqsAAW8p.false_northing$XAEBTnboqsAAW8p.false_easting$XAEBTnboqsAAW8p.R$XAEBTnboqsAAW8p.lon_center/ d!d+8,8-<@ʨр=Yvڀ4Ymǂ!<@Un@р ΀  *>Z qgɀF@ˀ@ 1 J q   ? u   ր    -$ [ e y L D.LD/`D0tD1D5D6D7D8D9 , D: $ % / 9T EX4 Q [ e nDH4DIPDJlDKDLDMDNDODPDQ\DR w, DS (!/[ (!/< (!/ %(!/ I$^$x$$$$$$$$.bwviiinv.c/ecs/hdfeos/gctp/src/wviiinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnboqsAAW8p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hwviiinvint:F(0,3);(0,18);(0,18);(0,18);(0,18)r:p(0,18)center_long:p(0,18)false_east:p(0,18)false_north:p(0,18)wviiinv.c$XBEBTnboqsAAW8p.wviiinvint.__func__:V(0,21)=ar(0,4);0;10;(0,22)=k(0,1)wviiinv:F(0,3);(0,18);(0,18);(0,23)=*(0,18);(0,23)x:p(0,18)y:p(0,18)lon:p(0,23)lat:p(0,23)t1:(0,18)t2:(0,18)p:(0,18)c:(0,18)$XBEBTnboqsAAW8p.wviiinv.__func__:V(0,24)=ar(0,4);0;7;(0,25)=k(0,1)$XAEBTnboqsAAW8p.false_northing:S(0,18)$XAEBTnboqsAAW8p.false_easting:S(0,18)$XAEBTnboqsAAW8p.R:S(0,18)$XAEBTnboqsAAW8p.lon_center:S(0,18)asinz:P(0,18);(0,18)adjust_lon:P(0,18);(0,18)offsetp:P(0,20);(0,18);(0,18)cenlon:P(0,20);(0,18)radius:P(0,20);(0,18)ptitle:P(0,20);(10,3)sqrt:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)atan2:P(0,18);(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06wviiinv.cBbss.bssDdata.dataDrodata.rodatatanatan2adjust_lonsinasinzsqrt$XBEBTnboqsAAW8p.wviiinv.__func__wviiinvoffsetpcenlonradiusptitle$XAEBTnboqsAAW8p.false_northing$XAEBTnboqsAAW8p.false_easting$XAEBTnboqsAAW8p.lon_center$XAEBTnboqsAAW8p.R$XBEBTnboqsAAW8p.wviiinvint.__func__wviiinvint (.28CGMR3t@|( , ` d t x           x |              0 8 T d h l p         4 @  ;%C+D 7F  Q /_h7p x!t@  isinusfor.o/ 1073924777 1032 20 100644 22300 ` ELFTt4(.shstrtab.text.rodata1.data.rodata.bss.data1.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text.rela.data㿠'H'D! #`DH@@H'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! ! @'  !  @?'!  !  @?'! ! B ! ! B !  @?'! ! B ! ! B !  t@?'! BB''';X@X!  !  T@?s'ġ<  ?$  !  B@?a'!  ! ! B !  (@?G'! BB''';X@X!  !  @?'';XX;XX;XX#\#`#d@#h!$ !  !  @?''P'X'T'P'L'H'DDH?LP?TX?\`?!  ! #`@@'! ! B ! ! B ! #`@@'!  ! ! BB?!  ! ! B?d d!"@ ! #`@@X'd<  ?$  ! #`@@F'h h  ! #`@@5' `@'Ԁ ! #`@@$'$ \$ $ Ԡ $ $ Ԡ $ $ !  Ԡ $ $ d'! Ԡ $ $ d$ (d< < $ ,Ԡ 8$ $ ! BԠ 0$ $ Ԡ 0  ! Ԣ 0``! ! BB$`$`h$ @ ,, @$ X X@! #`@!@' X'' ,@! ! ! '! B ,' …… B?h ;X@X! Bd' B! BB'$ ;X@Xd' B! BB'$ '`, $`  $ !  ' Р $ $ h   < <  $< < $̠ ''Р ' ,@ X ,, ?'! ! B B' Ԡ H$ $ '! ! B BԠ P$ $ #*`#$ \'㿀'X'T'P'L'H'DDH?LP?! TX;XX\;XX\@@#\'䀤  !  @?''x'X'T'P'L'H'D! X$ $ ! \$ $ D ! #`@ @'D \!* #@ ! #`@@'H! ! B H! ! B?'P! ! … P! ! ?'D`  P`   BB\$ $ ! ! PD    B?B''D ,@D ($ ܠ$'܀ 'HD 0  ! ! ! B… B?!  D'ؠ  '؅B?!  D''؅?D Xܣ, '؉ BD Xܣ,  '؅?D   H  腡 BBX$ $ '㿘'DD ! #`@-@"'D \!* #@ ! #`@@'D$ \D X@D$ XD@'D'㿘'H'D#`%HD  @@@?' error (isinusfor.c/%s : %s isinusforinitbad return from Isin_for_freeisinusforinitbad parameter; sphere radius invalidisinusforinitbad parameter; longitude of central meridian invalidisinusforinitbad parameter; nzone out of rangeisinusforinitbad parameter; nzone not near an integer valueisinusforinitbad parameter; nzone not multiple of twoisinusforinitbad parameter; ijustify out of rangeisinusforinitbad parameter; ijustify not near an integer valueIsin_for_initbad return from Isin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initisinusforbad return from Isin_fwdIsin_fwdIsin_fwdIsin_for_freeIsin_for_free error (isinusfor.c/%s) : (%i) %s @@ !TD-zG{A3ƀ?zG{=|׽? !TD-?errorisinusforinitIsin_for_initisinusforIsin_fwdIsin_for_freeIsin_errormemory allocationinvalid parameterinvalid handleinvalid key d#d/8081<@ʩ4 5 T s   $ $ 2$< `$i $  isinusfor.c/ecs/hdfeos/gctp/src/isinusfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbpqsAAW9p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o isinusfor.o isinusfor.c -W0,-xp\$XAEBTnbpqsAAW9p.$XBEBTnbpqsAAW9p.error.__func__$XAEBTnbpqsAAW9p.ISIN_BADALLOC$XAEBTnbpqsAAW9p.ISIN_BADPARAM$XAEBTnbpqsAAW9p.ISIN_BADHANDLE$XAEBTnbpqsAAW9p.ISIN_BADKEY$XAEBTnbpqsAAW9p.isinisinusforinit$XBEBTnbpqsAAW9p.isinusforinit.__func__Isin_for_init$XBEBTnbpqsAAW9p.Isin_for_init.__func__isinusfor$XBEBTnbpqsAAW9p.isinusfor.__func__Isin_fwd$XBEBTnbpqsAAW9p.Isin_fwd.__func__Isin_for_free$XBEBTnbpqsAAW9p.Isin_for_free.__func__$XBEBTnbpqsAAW9p.Isin_error.__func__m` d#d/8081<@ʩՀ#A]zހ8]q˂ %@@Yr@Հ Ҁ$:XyF[n߂/C_ vƀ  l ΀ K @ Ѐ@   6 O v  % D z   ۀ  'p`P`߀`"9$sDH DV ,DY@@&&,&T&y&$ޠ(6dGSbDdxDxDDDDDDDTDTDlxDxDDDD HDHD`lDlDDDDDDD<xDxDDDDD D n,D00$-AdMhL]mxD LhD hDDDD@D|DDDD0D0TDTDdtDtD#D$D%D&D'D(D)$D*0D+LD,`D-D.D2D3D4D5 D6<DD=DD>PlDBlDFDG,DI,DJpD[DuDyDzD| D>(`D`D|DDD ,D  $*6T@X4JD4DxDDDV, "D$ߠDH PX"\,7BNDD0DDDxDDDxDDDD$D8DxD D DTDY, ,D$ DD.D/<D2|D5D6D7D8D:,5D;$]DyH DT DWD, CDXXX$$$$*$_bisinusfor.c/ecs/hdfeos/gctp/src/isinusfor.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbpqsAAW9p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)/usr/include/limits.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/iso/limits_iso.h/usr/include/sys/int_limits.h/usr/include/sys/isa_defs.hclock_t:t(12,1)=(0,4)/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(19,1)=u8_i:(19,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(19,3)=(19,1)version:T(18,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(18,2)=s32type:(0,3),0,32;name:(18,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(22,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(22,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(22,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(22,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(22,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(20,1)=(0,3)sigfpe_handler_type:t(20,2)=*(20,3)=f(0,20)single:t(20,4)=(0,17)extended:t(20,5)=ar(0,4);0;2;(0,14)quadruple:t(20,6)=(0,19)fp_exception_field_type:t(20,7)=(0,14)decimal_string:t(20,8)=ar(0,4);0;511;(0,1):T(20,9)=s532fpclass:(22,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(20,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(20,10)=(20,9)decimal_form:T(20,11)=efixed_form:0,floating_form:1,;:T(20,12)=s12rd:(22,1),0,32;df:(20,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(20,13)=(20,12)decimal_string_form:T(20,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;/usr/include/stdio.h./isin.h:T(24,1)=s16ncol:(0,4),0,32;icol_cen:(0,4),32,32;ncol_inv:(0,18),64,64;;Isin_row_t:t(24,2)=(24,1):T(24,3)=s96false_east:(0,18),0,64;false_north:(0,18),64,64;sphere:(0,18),128,64;sphere_inv:(0,18),192,64;ang_size_inv:(0,18),256,64;nrow:(0,4),320,32;nrow_half:(0,4),352,32;ref_lon:(0,18),384,64;\lon_cen_mer:(0,18),448,64;ijustify:(0,3),512,32;col_dist:(0,18),576,64;col_dist_inv:(0,18),640,64;row:(24,4)=*(24,2),704,32;key:(0,4),736,32;;Isin_t:t(24,5)=(24,3):T(24,6)=s8num:(0,3),0,32;str:(18,3),32,32;;error_t:t(24,7)=(24,6)error:f(0,20);(0,21)=*(0,22)=k(0,1);(0,23)=*(0,24)=k(0,1)routine:p(0,21)text:p(0,23)isinusfor.c$XBEBTnbpqsAAW9p.error.__func__:V(0,25)=ar(0,4);0;5;(0,26)=k(0,1)$XAEBTnbpqsAAW9p.ISIN_BADALLOC:S(24,7)$XAEBTnbpqsAAW9p.ISIN_BADPARAM:S(24,7)$XAEBTnbpqsAAW9p.ISIN_BADHANDLE:S(24,7)$XAEBTnbpqsAAW9p.ISIN_BADKEY:S(24,7)$XAEBTnbpqsAAW9p.isin:S(0,27)=*(24,5)isinusforinit:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)sphere:p(0,18)lon_cen_mer:p(0,18)false_east:p(0,18)false_north:p(0,18)dzone:p(0,18)djustify:p(0,18)nzone:(0,4)ijustify:(0,3)istat:(0,3)$XBEBTnbpqsAAW9p.isinusforinit.__func__:V(0,28)=ar(0,4);0;13;(0,29)=k(0,1)Isin_for_init:F(0,27);(0,18);(0,18);(0,18);(0,18);(0,4);(0,3)sphere:p(0,18)lon_cen_mer:p(0,18)false_east:p(0,18)false_north:p(0,18)nrow:p(0,4)ijustify:p(0,3)thisIsin:(0,27)row:(24,4)irow:(0,4)clat:(0,18)ncol_cen:(0,4)$XBEBTnbpqsAAW9p.Isin_for_init.__func__:V(0,30)=ar(0,4);0;13;(0,31)=k(0,1)isinusfor:F(0,3);(0,18);(0,18);(0,32)=*(0,18);(0,32)lon:p(0,18)lat:p(0,18)x:p(0,32)y:p(0,32)istat:(0,3)$XBEBTnbpqsAAW9p.isinusfor.__func__:V(0,33)=ar(0,4);0;9;(0,34)=k(0,1)Isin_fwd:F(0,3);(0,35)=*(0,36)=k(24,3);(0,18);(0,18);(0,32);(0,32)thisIsin:p(0,37)=*(0,38)=k(24,5)lon:p(0,18)lat:p(0,18)x:p(0,32)y:p(0,32)row:(0,18)col:(0,18)flon:(0,18)irow:(0,4)$XBEBTnbpqsAAW9p.Isin_fwd.__func__:V(0,39)=ar(0,4);0;8;(0,40)=k(0,1)Isin_for_free:F(0,3);(0,41)=*(24,3)thisIsin:p(0,27)$XBEBTnbpqsAAW9p.Isin_for_free.__func__:V(0,42)=ar(0,4);0;13;(0,43)=k(0,1)Isin_error:f(0,3);(0,44)=*(0,45)=k(24,6);(0,46)=*(0,47)=k(0,1)err:p(0,48)=*(0,49)=k(24,7)routine:p(0,46)$XBEBTnbpqsAAW9p.Isin_error.__func__:V(0,50)=ar(0,4);0;10;(0,51)=k(0,1)fabs:P(0,18);(0,18)cos:P(0,18);(0,18)malloc:P(0,52)=*(0,20);(0,14)free:P(0,20);(0,52)fprintf:P(0,3);(0,53)=*(7,2);(0,54)=*(0,55)=k(0,1);0@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)limits.h 1.51 99/10/08 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06isinusfor.cBbss.bssDdata.dataDrodata.rodataerrorIsin_error$XBEBTnbpqsAAW9p.Isin_error.__func__$XBEBTnbpqsAAW9p.Isin_for_free.__func__$XBEBTnbpqsAAW9p.Isin_fwd.__func__Isin_fwd$XBEBTnbpqsAAW9p.isinusfor.__func__isinusforcosfreemalloc$XBEBTnbpqsAAW9p.Isin_for_init.__func__Isin_for_initfabsIsin_for_free$XBEBTnbpqsAAW9p.isinusforinit.__func__isinusforinit$XAEBTnbpqsAAW9p.isin$XAEBTnbpqsAAW9p.ISIN_BADKEY$XAEBTnbpqsAAW9p.ISIN_BADHANDLE$XAEBTnbpqsAAW9p.ISIN_BADPARAM$XAEBTnbpqsAAW9p.ISIN_BADALLOCfprintf__iob$XBEBTnbpqsAAW9p.error.__func__ $!P0H6phA f|  r  d 0.3AVih@w P  $ ( @      , 0 D PH Pl p t x               ( (0 4 X (\ ( ( (   D D  $ < @ D (H (` d  ( ( ( (  @H L P T d h  0  0  $ ( ,, ,H L P T t x |     < <            $ \ ` d Lh L   \ \   l l, 0 4 |8 | 8 8   @  @H @L @p t x |      $  (  ,  0  8 8 < 8 P H T H       H  H   H  H ` 8 d 8 4  8  <  @          , 0 d          , 0 4  8  l p t  x                          $ ( ,     ( 8, 80 4 8 < T X  8 8        0|    ( 84 $ (-D4  @O(  Z,`hCdJqE6yG I P TD0 isinusinv.o/ 1073924779 1032 20 100644 22492 ` ELFU44(.shstrtab.text.rodata1.data.rodata.bss.data1.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text.rela.data㿠'H'D! #`DH@@H'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?! ! @'  !  @?'!  !  @?'! ! B ! ! B !  @?'! ! B ! ! B !  t@?'! BB''';X@X!  !  T@?s'ġ<  ?$  !  B@?a'!  ! ! B !  (@?G'! BB''';X@X!  !  @?'';XX;XX;XX#\#`#d@#h!$ !  !  @?''P'X'T'P'L'H'DDH?LP?TX?\`?!  ! #`@@'! ! B ! ! B ! #`@@'!  ! ! BB?!  ! ! B?d d!"@ ! #`@̒@X'd<  ?$  ! #`@@F'h h  ! #`@@5' `@'Ԁ ! #`@@$'$ \$ $ Ԡ $ $ Ԡ $ $ !  Ԡ $ $ d'! Ԡ $ $ d$ (d< < $ ,Ԡ 8$ $ ! BԠ 0$ $ Ԡ 0  ! Ԣ 0``! ! BB$`$`h$ @ ,, @$ X X@! #`@-@' X'' ,@! ! ! '! B ,' …… B?h ;X@X! Bd' B! BB'$ ;X@Xd' B! BB'$ '`, $`  $ !  ' Р $ $ h   < <  $< < $̠ ''Р ' ,@ X ,, ?'! ! B B' Ԡ H$ $ '! ! B BԠ P$ $ #*`#$ \'㿀'X'T'P'L'H'DDH?LP?! TX;XX\;XX\@@#\'䀤  !  @?''x'X'T'P'L'H'D! X$ $ ! \$ $ D ! #`@@'D \!* #@ ! #`@@'PD`   `   B\$ $ \  ! ! … \  ! !  ! \$ $ ?'! ! \  D    B?B''D ,@D ($ ܠ$'܀ 'HD    P   B?D Xܣ,  '؅BD Xܣ,     B?!  !  ! \$ $ ?='D 0  ! ! BBBX$ $ X  !  X``! ! B$`$`X  !  X``! ! BB$`$`'㿘'DD ! #`@-@"'D \!* #@ ! #`@@'D$ \D X@D$ XD@'D'㿘'H'D#`%HD  @@@?' error (isinusinv.c/%s) : %s isinusinvinitbad return from Isin_inv_freeisinusinvinitbad parameter; sphere radius invalidisinusinvinitbad parameter; longitude of central meridian invalidisinusinvinitbad parameter; nzone out of rangeisinusinvinitbad parameter; nzone not near an integer valueisinusinvinitbad parameter; nzone not multiple of twoisinusinvinitbad parameter; ijustify out of rangeisinusinvinitbad parameter; ijustify not near an integer valueisinusinvinitbad return from Isin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_invIsin_inv_freeIsin_inv_free error (isinusinv.c/%s) : (%i) %s @@ !TD-zG{A3ƀ?zG{=|׽? !TD-?errorisinusinvinitIsin_inv_initisinusinvIsin_invIsin_inv_freeIsin_errormemory allocationinvalid parameterinvalid handleinvalid key d#d/8081<@ʫ4 5 T s   $ $ 2$< `$i $  isinusinv.c/ecs/hdfeos/gctp/src/isinusinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbqqsAAW_p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o isinusinv.o isinusinv.c -W0,-xp\$XAEBTnbqqsAAW_p.$XBEBTnbqqsAAW_p.error.__func__$XAEBTnbqqsAAW_p.ISIN_BADALLOC$XAEBTnbqqsAAW_p.ISIN_BADPARAM$XAEBTnbqqsAAW_p.ISIN_BADHANDLE$XAEBTnbqqsAAW_p.ISIN_BADKEY$XAEBTnbqqsAAW_p.isinisinusinvinit$XBEBTnbqqsAAW_p.isinusinvinit.__func__Isin_inv_init$XBEBTnbqqsAAW_p.Isin_inv_init.__func__isinusinv$XBEBTnbqqsAAW_p.isinusinv.__func__Isin_inv$XBEBTnbqqsAAW_p.Isin_inv.__func__Isin_inv_free$XBEBTnbqqsAAW_p.Isin_inv_free.__func__$XBEBTnbqqsAAW_p.Isin_error.__func__s` d#d/8081<@ʫՀ#A]zހ8]q˂ %@@Yr@Հ Ҁ$:XyF[n߂/C_ vƀ  l ΀ K @ Ѐ@   6 O v  % D z   ۀ  'p`P`߀`"9$sDH DV ,DY@@&&,&T&y&$ޠ(6dGSbDdxDxDDDDDDDTDTDlxDxDDDD HDHD`lDlDDDDDDD<xDxDDDDD D n,D00$-AdMhL]mxD LhD hDDDD@D|DDDD0D0TDTDdtD tD$D%D&D'D(D)D*$D+0D,LD-`D.D/D3D4D5D6 D7<DD>DD?PlDClDGDH,DJ,DKpD\DvDzD{D} D?(`D`D|DDD ,D  $(2T>X4JD4DxDDDV, "D$ߠDH PX \,7BNDD0DDDxDDPDPpDpDDDDD ,D D DDDdDY, ,D$ DD.D/<D2|D5D6D7D8D:,5D;$]DyH DU DXD, CDYXX$$$$*$_bisinusinv.c/ecs/hdfeos/gctp/src/isinusinv.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbqqsAAW_p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)/usr/include/limits.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/iso/limits_iso.h/usr/include/sys/int_limits.h/usr/include/sys/isa_defs.hclock_t:t(12,1)=(0,4)/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(19,1)=u8_i:(19,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(19,3)=(19,1)version:T(18,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(18,2)=s32type:(0,3),0,32;name:(18,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(22,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(22,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(22,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(22,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(22,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(20,1)=(0,3)sigfpe_handler_type:t(20,2)=*(20,3)=f(0,20)single:t(20,4)=(0,17)extended:t(20,5)=ar(0,4);0;2;(0,14)quadruple:t(20,6)=(0,19)fp_exception_field_type:t(20,7)=(0,14)decimal_string:t(20,8)=ar(0,4);0;511;(0,1):T(20,9)=s532fpclass:(22,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(20,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(20,10)=(20,9)decimal_form:T(20,11)=efixed_form:0,floating_form:1,;:T(20,12)=s12rd:(22,1),0,32;df:(20,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(20,13)=(20,12)decimal_string_form:T(20,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;/usr/include/stdio.h./isin.h:T(24,1)=s16ncol:(0,4),0,32;icol_cen:(0,4),32,32;ncol_inv:(0,18),64,64;;Isin_row_t:t(24,2)=(24,1):T(24,3)=s96false_east:(0,18),0,64;false_north:(0,18),64,64;sphere:(0,18),128,64;sphere_inv:(0,18),192,64;ang_size_inv:(0,18),256,64;nrow:(0,4),320,32;nrow_half:(0,4),352,32;ref_lon:(0,18),384,64;\lon_cen_mer:(0,18),448,64;ijustify:(0,3),512,32;col_dist:(0,18),576,64;col_dist_inv:(0,18),640,64;row:(24,4)=*(24,2),704,32;key:(0,4),736,32;;Isin_t:t(24,5)=(24,3):T(24,6)=s8num:(0,3),0,32;str:(18,3),32,32;;error_t:t(24,7)=(24,6)error:f(0,20);(0,21)=*(0,22)=k(0,1);(0,23)=*(0,24)=k(0,1)routine:p(0,21)text:p(0,23)isinusinv.c$XBEBTnbqqsAAW_p.error.__func__:V(0,25)=ar(0,4);0;5;(0,26)=k(0,1)$XAEBTnbqqsAAW_p.ISIN_BADALLOC:S(24,7)$XAEBTnbqqsAAW_p.ISIN_BADPARAM:S(24,7)$XAEBTnbqqsAAW_p.ISIN_BADHANDLE:S(24,7)$XAEBTnbqqsAAW_p.ISIN_BADKEY:S(24,7)$XAEBTnbqqsAAW_p.isin:S(0,27)=*(24,5)isinusinvinit:F(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)sphere:p(0,18)lon_cen_mer:p(0,18)false_east:p(0,18)false_north:p(0,18)dzone:p(0,18)djustify:p(0,18)nzone:(0,4)ijustify:(0,3)istat:(0,3)$XBEBTnbqqsAAW_p.isinusinvinit.__func__:V(0,28)=ar(0,4);0;13;(0,29)=k(0,1)Isin_inv_init:F(0,27);(0,18);(0,18);(0,18);(0,18);(0,4);(0,3)sphere:p(0,18)lon_cen_mer:p(0,18)false_east:p(0,18)false_north:p(0,18)nrow:p(0,4)ijustify:p(0,3)thisIsin:(0,27)row:(24,4)irow:(0,4)clat:(0,18)ncol_cen:(0,4)$XBEBTnbqqsAAW_p.Isin_inv_init.__func__:V(0,30)=ar(0,4);0;13;(0,31)=k(0,1)isinusinv:F(0,3);(0,18);(0,18);(0,32)=*(0,18);(0,32)x:p(0,18)y:p(0,18)lon:p(0,32)lat:p(0,32)istat:(0,3)$XBEBTnbqqsAAW_p.isinusinv.__func__:V(0,33)=ar(0,4);0;9;(0,34)=k(0,1)Isin_inv:F(0,3);(0,35)=*(0,36)=k(24,3);(0,18);(0,18);(0,32);(0,32)thisIsin:p(0,37)=*(0,38)=k(24,5)x:p(0,18)y:p(0,18)lon:p(0,32)lat:p(0,32)row:(0,18)col:(0,18)flon:(0,18)irow:(0,4)$XBEBTnbqqsAAW_p.Isin_inv.__func__:V(0,39)=ar(0,4);0;8;(0,40)=k(0,1)Isin_inv_free:F(0,3);(0,41)=*(24,3)thisIsin:p(0,27)$XBEBTnbqqsAAW_p.Isin_inv_free.__func__:V(0,42)=ar(0,4);0;13;(0,43)=k(0,1)Isin_error:f(0,3);(0,44)=*(0,45)=k(24,6);(0,46)=*(0,47)=k(0,1)err:p(0,48)=*(0,49)=k(24,7)routine:p(0,46)$XBEBTnbqqsAAW_p.Isin_error.__func__:V(0,50)=ar(0,4);0;10;(0,51)=k(0,1)fabs:P(0,18);(0,18)cos:P(0,18);(0,18)malloc:P(0,52)=*(0,20);(0,14)free:P(0,20);(0,52)fprintf:P(0,3);(0,53)=*(7,2);(0,54)=*(0,55)=k(0,1);0@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)limits.h 1.51 99/10/08 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06isinusinv.cBbss.bssDdata.dataDrodata.rodataerrorIsin_error$XBEBTnbqqsAAW_p.Isin_error.__func__$XBEBTnbqqsAAW_p.Isin_inv_free.__func__$XBEBTnbqqsAAW_p.Isin_inv.__func__Isin_inv$XBEBTnbqqsAAW_p.isinusinv.__func__isinusinvcosfreemalloc$XBEBTnbqqsAAW_p.Isin_inv_init.__func__Isin_inv_initfabsIsin_inv_free$XBEBTnbqqsAAW_p.isinusinvinit.__func__isinusinvinit$XAEBTnbqqsAAW_p.isin$XAEBTnbqqsAAW_p.ISIN_BADKEY$XAEBTnbqqsAAW_p.ISIN_BADHANDLE$XAEBTnbqqsAAW_p.ISIN_BADPARAM$XAEBTnbqqsAAW_p.ISIN_BADALLOCfprintf__iob$XBEBTnbqqsAAW_p.error.__func__ $!P0H6hA f|  r  d 0.3AVih@w P  $ ( @      , 0 D PH Pl p t x               ( (0 4 X (\ ( ( (   D D  $ < @ D (H (` d  ( ( ( (  @H L P T d h  0  0  $ ( ,, ,H L P T t x |     < <            $ \ ` d Lh L   \ \   l l, 0 4 |8 | 8 8   @  @H @L @p t x |      $  (  ,  0  8 8 < 8 P H T H       H  H   H  H ` 8 d 8 4  8  <  @          , 0 d          , 0 4  8  l p t  x              ( , H L P T \ ` x 8| 8           $ ( H @L @l p t x         $ L`    ( 84 $  (-D4  @$O p  Z,|`hCJqF&6yH\ Jl  U0 for_init.o/ 1073924781 1032 20 100644 37708 ` ELF4(.shstrtab.text.rodata.bss.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.texth'X'T'P'L'H'D''D a7L  !  L  !  L   !  L   ! ?'PPLH@@JD b;L  !  L  !  L   !  L   ! ?'P 'PPLH@@ PLH@@L 0  ?xL 8  ?pD a\L   ;XX@! B! B? \$  ? 'L (  ;XX@! B! B? \$  ? 'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $ D b\L   ;XX@! B! B? \$  ? 'L (  ;XX@! B! B? \$  ? e'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $ ?D ~P 'DDLH@@H' KL  ;XX@! B! B? \$  ? 'L   ;XX@! B! B? \$  ? '! B;X@X'!  '! ?;XX;XX;XX@#\$  \$ '`D, $ D !HPTX@@$  \$  ? ''`D, $ D L   ;XX@! B! B? \$  ? 'L   ;XX@! B! B? \$  ? d'L (  ;XX@! B! B? \$  ? H'L   ;XX@! B! B? \$  ? ,'xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@$  \$ '`D, $ D L   ;XX@! B! B? \$  ? 'L   ;XX@! B! B? \$  ? 'L   ;XX@! B! B? \$  ? 'L (  ;XX@! B! B? \$  ? 'xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@$  \$ '`D, $ dD \L   ;XX@! B! B? \$  ? H'L (  ;XX@! B! B? \$  ? ,'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $ D \L   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $D \L   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?p'xp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $JD L   ;XX@! B! B? \$  ?.'L   ;XX@! B! B? \$  ?'L   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'L @  ! B'8 '8xp8;XX;XX;XX#\#`#d#h#l#p#t#x#|#@#$  \$ '`D, $D dL   ?L   ;XX@! B! B? \$  ?~'L (  ;XX@! B! B? \$  ?b'xp;XX;XX;XX#\#`#d#h#l#p#t#x@$  \$ '`D, $9D YL   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $D YL   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $D YL   ;XX@! B! B? \$  ?g'L (  ;XX@! B! B? \$  ?K'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $(D YL   ;XX@! B! B? \$  ? 'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $D YL   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $rD aL   ;XX@! B! B? \$  ?V'L (  ;XX@! B! B? \$  ?:'L   ?Hxp;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $D :L   ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D YL   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`#d#h@$  \$ '`D, $xD :L   ;XX@! B! B? \$  ?\'Hxp;XX;XX;XX#\#`@$  \$ '`D, $<D :L   ;XX@! B! B? \$  ? 'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D L   ?L (  ;XX@! B! B? \$  ?'L `  ! B> '8L   ;XX@! B! B? \$  ?'L   ;XX@! B! B? \$  ?'s'8L @  ;XX@! B! B? \$  ?|'L H  ;XX@! B! B? \$  ?`'L P  ;XX@! B! B? \$  ?D'L X  ;XX@! B! B? \$  ?('xp8;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@#$  \$ '`D, $D L   B''@L   B''<L `  ! BP '8L   ;XX@! B! B? \$  ?'L   ;XX@! B! B? \$  ?'L @  ?PL H  ?0L P  B''\'8<@xpP\80;XX;XX@#\#`#d#h#l#p#t#x#|#####@$  \$ '`D, $RD :L   ;XX@! B! B? \$  ?6'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D :L   ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D H;X@X$  \$ '`D, $D :L   ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D H;X@X$  \$ '`D, $rD xp;XX;XX;XX#\#`@$  \$ '`D, $RD :L   ;XX@! B! B? \$  ?6'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D :L   ;XX@! B! B? \$  ?'Hxp;XX;XX;XX#\#`@$  \$ '`D, $D L   ;XX@! B! B? \$  ?'L (  ;XX@! B! B? \$  ?'L   ?hL   ?`L @  ;XX@! B! B? \$  ?|'Hh`xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@$  \$ '`D, $PD cD HL   ;XX@! B! B? \$  ?0'L @  ?(L P  ? Hxp( ;XX;XX;XX#\#`#d#h#l#p@$  \$ '`D, $'@ >U@Lc˰?#xfor_init> d"d-8.8/<@ʬ4$ for_init.c/ecs/hdfeos/gctp/src/for_init.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbsqsAAW$p./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o for_init.o for_init.c -W0,-xp\$XAEBTnbsqsAAW\$p.for_init$XBEBTnbsqsAAW$p.for_init.__func__} d"d-8.8/<@ʬӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    / 8$ D H L РP T X \ `  $ 3 > K W c o {     ̀ ܀  xp*h9`H\TP`HnD}@<80( ΀ڀDcDd Dj(8Dm8DoDrDt DwDyDDD,D,D@DTdDdDDDDDD$D8DDDDDDDD,D@DLDDDDDD$<DDTDTdDdDhDDDDDD DDXDhD|DDDDDDD$<DDTDTDDDDDDD D0DDDPDDDDD D D $D 0D pD D D D D  8D @ PD PD D D D D D D $D 0D pD D D D D D D D D  D  D D D D $D 0D pD D D" D# D$ D'(8D+8D,xD-D.D/D0D1D2 D5D6pD8D;D?D@DADBDC DD`DEpDFDHDIDJDM(DQ(DRhDSxDTDUDVDWDXDYDZHD[XD\lD]xD^D_D`DaDbDdDf DgDhDkDoDpDq(Dr8DsLDtXDuDvDwDyDz,D{<TD~\lDlDDDDDD,D@DLDDDDDD(D<DHDDDDDD,D4DDDDDDDDDDD$DpDDDDDDD D`DpDDDDD DD\DlDDDDDDDHDXpDxDDDDDD8DHD\DhD|DDDDDTDdDxDDDDDDDDTDhDtDDDDD 0D @ XD ` pD pD D D D D! D!0!HD!P!`D!`D!D!D!D!D"D " "8D#"@"PD'"PD("dD)"D*"D+"D,""D."D/#D0#DD1#TD2#hD3#tD4#D5#D6###D:#D;#D<$0D=$@D>$TD?$`D@$DA$DB$DC$DD%DE% DF%4DG%@DH%DI%DJ%%DN%DO&TDP&d&|DS&&DW&DX&DY&&D[&D\'D]'DD^'TD_'hD`'tDa'Db'Dc'Dd'De'Df( (,Di(4Do(8Dp(Dq((Dt()Dx)Dy)HDz)XD{)lD|)xD})D~))D))D)D*8D*HD*\D*hD*D**D**D*D+D++(D+0+@D+@D+D+D+D+D+D,,D, ,0D,0D,HD,X,pD,x,D,D,D,,D,-D-D-HD-XD-lD-xD-D--D--D-D.8D.HD.\D.hD.D..D..D.D/(D/8D/LD/XD/D/D/D/D/D/D00D0@D0TD0`D0D00D11 D1 D1`D1pD1D1D1D1D2D2 28D28, D2H2H?$n$$$$$V$r$$$$4$$$$$1$[$$$$$*$U$n$$$$$G$$$>$i$$$$$R$}$$$$=$r$$$$2$]$$$$$`$$$$B$m$$$ $5$$$$#$P$|bfor_init.c/ecs/hdfeos/gctp/src/for_init.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbsqsAAW$p.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.hfor_init:F(0,3);(0,3);(0,3);(0,21)=*(0,18);(0,3);(10,3);(10,3);(0,22)=*(0,3);(0,23)=*(0,24)=*(0,25)=f(0,3)outsys:p(0,3)outzone:p(0,3)outparm:p(0,21)outdatum:p(0,3)fn27:p(10,3)fn83:p(10,3)iflg:p(0,22)for_trans:p(0,23)zone:(0,4)azimuth:(0,18)alf:(0,18)angle:(0,18)lon1:(0,18)lon2:(0,18)lat1:(0,18)lat2:(0,18)center_long:(0,18)center_lat:(0,18)h:(0,18)lon_origin:(0,18)lat_origin:(0,18)r_major:(0,18)r_minor:(0,18)scale_factor:(0,18)false_easting:(0,18)false_northing:(0,18)shape_m:(0,18)shape_n:(0,18)start:(0,4)time:(0,18)radius:(0,18)tmpdatum:(0,4)path:(0,4)satnum:(0,4)mode:(0,4)sat_ratio:(0,18)dzone:(0,18)djustify:(0,18)thing:(0,4)iflg64:(0,26)=*(0,4)for_init.c$XBEBTnbsqsAAW$p.for_init.__func__:V(0,27)=ar(0,4);0;8;(0,28)=k(0,1)sphdz:P(0,3);(0,4);(0,21);(0,21);(0,21);(0,21)paksz:P(0,18);(0,18);(0,26)bceafor:P(0,3);(0,18);(0,18);(0,21);(0,21)bceaforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)ceafor:P(0,3);(0,18);(0,18);(0,21);(0,21)ceaforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)calc_utm_zone:P(0,4);(0,18)utmforint:P(0,3);(0,18);(0,18);(0,18);(0,4)utmfor:P(0,3);(0,18);(0,18);(0,21);(0,21)isinusforinit:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)isinusfor:P(0,3);(0,18);(0,18);(0,21);(0,21)obleqforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)obleqfor:P(0,3);(0,18);(0,18);(0,21);(0,21)wviiforint:P(0,3);(0,18);(0,18);(0,18);(0,18)wviifor:P(0,3);(0,18);(0,18);(0,21);(0,21)wivforint:P(0,3);(0,18);(0,18);(0,18);(0,18)wivfor:P(0,3);(0,18);(0,18);(0,21);(0,21)alconforint:P(0,3);(0,18);(0,18);(0,18);(0,18)alconfor:P(0,3);(0,18);(0,18);(0,21);(0,21)imolwforint:P(0,3);(0,18)imolwfor:P(0,3);(0,18);(0,18);(0,21);(0,21)molwforint:P(0,3);(0,18);(0,18);(0,18);(0,18)molwfor:P(0,3);(0,18);(0,18);(0,21);(0,21)goodforint:P(0,3);(0,18)goodfor:P(0,3);(0,18);(0,18);(0,21);(0,21)robforint:P(0,3);(0,18);(0,18);(0,18);(0,18)robfor:P(0,3);(0,18);(0,18);(0,21);(0,21)hamforint:P(0,3);(0,18);(0,18);(0,18);(0,18)hamfor:P(0,3);(0,18);(0,18);(0,21);(0,21)somforint:P(0,3);(0,18);(0,18);(0,4);(0,4);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4);(0,4);(0,18)somfor:P(0,3);(0,18);(0,18);(0,21);(0,21)omerforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)omerfor:P(0,3);(0,18);(0,18);(0,21);(0,21)vandgforint:P(0,3);(0,18);(0,18);(0,18);(0,18)vandgfor:P(0,3);(0,18);(0,18);(0,21);(0,21)millforint:P(0,3);(0,18);(0,18);(0,18);(0,18)millfor:P(0,3);(0,18);(0,18);(0,21);(0,21)equiforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)equifor:P(0,3);(0,18);(0,18);(0,21);(0,21)sinforint:P(0,3);(0,18);(0,18);(0,18);(0,18)sinfor:P(0,3);(0,18);(0,18);(0,21);(0,21)gvnspforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)gvnspfor:P(0,3);(0,18);(0,18);(0,21);(0,21)orthforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)orthfor:P(0,3);(0,18);(0,18);(0,21);(0,21)gnomforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)gnomfor:P(0,3);(0,18);(0,18);(0,21);(0,21)azimforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)azimfor:P(0,3);(0,18);(0,18);(0,21);(0,21)lamazforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)lamazfor:P(0,3);(0,18);(0,18);(0,21);(0,21)sterforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)sterfor:P(0,3);(0,18);(0,18);(0,21);(0,21)tmforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)tmfor:P(0,3);(0,18);(0,18);(0,21);(0,21)eqconforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)eqconfor:P(0,3);(0,18);(0,18);(0,21);(0,21)polyforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)polyfor:P(0,3);(0,18);(0,18);(0,21);(0,21)psforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)psfor:P(0,3);(0,18);(0,18);(0,21);(0,21)merforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)merfor:P(0,3);(0,18);(0,18);(0,21);(0,21)lamccforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)lamccfor:P(0,3);(0,18);(0,18);(0,21);(0,21)alberforint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)alberfor:P(0,3);(0,18);(0,18);(0,21);(0,21)stplnforint:P(0,3);(0,4);(0,4);(10,3);(10,3)stplnfor:P(0,3);(0,18);(0,18);(0,21);(0,21)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06for_init.cBbss.bssDdata.dataDrodata.rodataisinusforisinusforinitobleqforobleqforintwviiforwviiforintwivforwivforintalconforalconforintimolwforimolwforintmolwformolwforintgoodforgoodforintrobforrobforinthamforhamforintsomforsomforintomerforomerforintvandgforvandgforintmillformillforintequiforequiforintsinforsinforintgvnspforgvnspforintorthfororthforintgnomforgnomforintazimforazimforintlamazforlamazforintsterforsterforinttmfortmforinteqconforeqconforintpolyforpolyforintpsforpsforintmerformerforintlamccforlamccforintalberforalberforintstplnforstplnforintutmforutmforintcalc_utm_zonebceaforbceaforintceaforceaforintpakszsphdz$XBEBTnbsqsAAW$p.for_init.__func__for_init  (/9GP\dov +3>FQXbkw%/8DMYbnu( 2XT X x |      J8 < \ `     J4JI    I     HG G I     xI    F4E 8E JI    DIL P X \   D    C4B 8B A@ @  I    $ |I    I       \I d  h  p  t  ? 0> 4> |I         I         \I d  h  p  t  I         = < < I         \I d  h  p  t  ;: : dIl p x | I    p98 8 I    LIT X ` d 76  6 TI\ ` h l I    4I< @ H L I       54 4 I   ( , I    ,3L2 P2 I    I     10 0 I     tI|    /$. (. pIx |   I    p-, , I    LIT X ` d +* * HIP T \ ` I    H)h( l( I    $I, 0 8 < '& & @IH L T X %$ $ 0I8 < D H I     0# P" T" I        ! !!@ !D !I! ! ! ! ""0 "4 "I" " " " " " #0I#8 #< #D #H #I# # # # $I$$ $( $0 $4 $I$ $ $ $ $I% % % % %lI%t %x % % &T&t &x & & '0I'8 '< 'D 'H 'I' ' ' ' (( ( )4I)< )@ )H )L )) ) *$I*, *0 *8 *< ** * ++  +$ +lI+t +x + + +, , ,H,h ,l ,, , -4I-< -@ -H -L - - - .$I., .0 .8 .< . . . /I/ /  /( /, /I/ / / / 0I0$ 0( 00 04 0 0 0 1LI1T 1X 1` 1d 220 24 4| 2h313I3I$3Ll 03>?4!  JV}XsAatiw q||  inv_init.o/ 1073924783 1032 20 100644 37616 ` ELF4(.shstrtab.text.rodata.bss.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textp'X'T'P'L'H'D'$$' D a7L  !  L  !  L   !  L   ! ?'PPLh@@JD b;L  !  L  !  L   !  L   ! ?'P 'PPLh@@ PLh@@L 0  ?xL 8  ?pD a\L    ;XX@! B! B?  \$   ? 'L (   ;XX@! B! B?  \$   ? 'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $ D b\L    ;XX@! B! B?  \$   ? u'L (   ;XX@! B! B?  \$   ? Y'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $ 3D ~P '@@Lh@@H' KL   ;XX@! B! B?  \$   ? 'L    ;XX@! B! B?  \$   ? '! B;X@X'!  '! ?;XX;XX;XX@#\ $   \$ '`D, $ D !HPTX@@ $   \$   ? ''`D, $ D L    ;XX@! B! B?  \$   ? t'L    ;XX@! B! B?  \$   ? X'L    ;XX@! B! B?  \$   ? <'L (   ;XX@! B! B?  \$   ? 'xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@ $   \$ '`D, $ D L    ;XX@! B! B?  \$   ? 'L    ;XX@! B! B?  \$   ? 'L    ;XX@! B! B?  \$   ? 'L (   ;XX@! B! B?  \$   ? 'xp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@ $   \$ '`D, $ XD \L    ;XX@! B! B?  \$   ? <'L (   ;XX@! B! B?  \$   ? 'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $D \L    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $D \L    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?d'xp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $>D L    ;XX@! B! B?  \$   ?"'L    ;XX@! B! B?  \$   ?'L    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'L @  ! B'D 'DxpD;XX;XX;XX#\#`#d#h#l#p#t#x#|#@# $   \$ '`D, $D dL   ?L    ;XX@! B! B?  \$   ?r'L (   ;XX@! B! B?  \$   ?V'xp;XX;XX;XX#\#`#d#h#l#p#t#x@ $   \$ '`D, $-D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $wD YL    ;XX@! B! B?  \$   ?['L (   ;XX@! B! B?  \$   ??'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $fD aL    ;XX@! B! B?  \$   ?J'L (   ;XX@! B! B?  \$   ?.'L   ?hxp;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D YL    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`#d#h@ $   \$ '`D, $lD :L    ;XX@! B! B?  \$   ?P'hxp;XX;XX;XX#\#`@ $   \$ '`D, $0D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D L   ?L (   ;XX@! B! B?  \$   ?'L `  ! B> 'DL    ;XX@! B! B?  \$   ?'L    ;XX@! B! B?  \$   ?'s'DL @   ;XX@! B! B?  \$   ?p'L H   ;XX@! B! B?  \$   ?T'L P   ;XX@! B! B?  \$   ?8'L X   ;XX@! B! B?  \$   ?'xpD;XX;XX;XX#\#`#d#h#l#p#t#x#|#########@# $   \$ '`D, $D L   B''LL   B''HL `  ! BH 'DL    ;XX@! B! B?  \$   ?'L    ;XX@! B! B?  \$   ?'L @  ?PL H  ?8'DHLxpPD8;XX;XX@#\#`#d#h#l#p#t#x#|##@; $   \$ '`D, $RD :L    ;XX@! B! B?  \$   ?6'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D h;X@X $   \$ '`D, $D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D h;X@X $   \$ '`D, $rD xp;XX;XX;XX#\#`@ $   \$ '`D, $RD :L    ;XX@! B! B?  \$   ?6'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D :L    ;XX@! B! B?  \$   ?'hxp;XX;XX;XX#\#`@ $   \$ '`D, $D L    ;XX@! B! B?  \$   ?'L (   ;XX@! B! B?  \$   ?'L   ?`L   ?XL @   ;XX@! B! B?  \$   ?|'h`Xxp;XX;XX;XX#\#`#d#h#l#p#t#x#|#@ $   \$ '`D, $PD cD HL    ;XX@! B! B?  \$   ?0'L @  ?0L P  ?(hxp0(;XX;XX;XX#\#`#d#h#l#p@ $   \$ '`D, $'@ >U@Lc˰?#xinv_init= d"d-8.8/<@ʮ4$ inv_init.c/ecs/hdfeos/gctp/src/inv_init.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbuqsAAmAq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o inv_init.o inv_init.c -W0,-xp\$XAEBTnbuqsAAmAq.inv_init$XBEBTnbuqsAAmAq.inv_init.__func__g d"d-8.8/<@ʮӀ!?[x܀6[oɂ#>@Wp@Ӏ Ѐ ",@\ sÀiˀH@̀@  3 L s  " A w   ؀    / 8$ D H L ͠P ܠT X \ `   / < G S _ k w     ɀ ؀  xp&h4`CXRP^LiHvD@80($ʀ ߄DdDe Dk(8Dn8DpDsDu DxDzDDD,D,D@DTdDdDDDDDD$D8DDDDDDDD,D@DLDDDDDD$<DDTDTdDdDhDDDDDD DDXDhD|DDDDDDD$<DDTDTDDDDDDD D0DDDPDDDDD D D $D 0D pD D D D D  8D @ PD PD D D D D D D $D 0D pD D D D D D D D D  D  D D D D $D 0D pD D D" D# D$ D'(8D+8D,xD-D.D/D0D1D2 D4D5pD6D9D=D>D?D@DA DB`DCpDDDFDGDHDK(DO(DPhDQxDRDSDTDUDVDWDXHDYXDZlD[xD\D]D^D_D`DbDd DeDfDiDmDnDo(Dp8DqLDrXDsDtDuDwDx,Dy<TD|\lDlDDDDDD,D@DLDDDDDD(D<DHDDDDDD,D4DDDDDDDDDDD$DpDDDDDDD D`DpDDDDD DD\DlDDDDDDDHDXpDxDDDDDD8DHD\DhD|DDDDDTDdDxDDDDDDDDTDhDtDDDDD 0D @ XD ` pD pD D D D D! D!0!HD!P!`D!`D!D!D!D!D"D" "8D""@"PD&"PD'"dD("D)"D*"D+""D-"D.#D/#DD0#TD1#hD2#tD3#D4#D5###D9#D:#D;$0D<$@D=$TD>$`D?$D@$DA$DB$DC%DD% DE%4DF%@DG%DH%DI%%DN%DO&TDP&d&|DS&&DW&DX&DY&&D[&D\'D]'DD^'TD_'hD`'tDa'Db'Dc'Dd'De'( Di(Dp(Dq(Dr((Du((Dy(Dz)D{)(D|)<D})HD~)D))D))D)D*D*D*,D*8D*xD**D**D*D*D**D++D+D+PD+`D+tD+D+D++D+,D,D,D,(,@D,H,XD,XD,D,,D,,D,D-D-(D-<D-HD-D--D--D-D.D.D.,D.8D.xD..D..D.D.D/D/D/(D/hD/xD/D/D/D/D0D0D0$D00D0D00D00D0D10D1@D1TD1`D1tD1D1D12D2, D22/$^$z$$$ $F$b$$$$$$o$$$$!$K$z$$$$$E$^$$$$ $7$$$($S$$$$$<$g$$$$'$\$$$$$G$}$$$ $J$s$$$,$W$$$$$j$$$ $:$fbinv_init.c/ecs/hdfeos/gctp/src/inv_init.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbuqsAAmAq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.hinv_init:F(0,3);(0,3);(0,3);(0,21)=*(0,18);(0,3);(10,3);(10,3);(0,22)=*(0,3);(0,23)=*(0,24)=*(0,25)=f(0,3)insys:p(0,3)inzone:p(0,3)inparm:p(0,21)indatum:p(0,3)fn27:p(10,3)fn83:p(10,3)iflg:p(0,22)inv_trans:p(0,23)zone:(0,4)azimuth:(0,18)angle:(0,18)alf:(0,18)lon1:(0,18)lon2:(0,18)lat1:(0,18)lat2:(0,18)center_long:(0,18)center_lat:(0,18)h:(0,18)lat_origin:(0,18)lon_origin:(0,18)r_major:(0,18)r_minor:(0,18)scale_factor:(0,18)false_easting:(0,18)false_northing:(0,18)radius:(0,18)shape_m:(0,18)shape_n:(0,18)time:(0,18)path:(0,4)satnum:(0,4)mode:(0,4)tmpdatum:(0,4)sat_ratio:(0,18)dzone:(0,18)djustify:(0,18)thing:(0,4)iflg64:(0,26)=*(0,4)inv_init.c$XBEBTnbuqsAAmAq.inv_init.__func__:V(0,27)=ar(0,4);0;8;(0,28)=k(0,1)sphdz:P(0,3);(0,4);(0,21);(0,21);(0,21);(0,21)paksz:P(0,18);(0,18);(0,26)bceainv:P(0,3);(0,18);(0,18);(0,21);(0,21)bceainvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)ceainv:P(0,3);(0,18);(0,18);(0,21);(0,21)ceainvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)calc_utm_zone:P(0,4);(0,18)utminvint:P(0,3);(0,18);(0,18);(0,18);(0,4)utminv:P(0,3);(0,18);(0,18);(0,21);(0,21)isinusinvinit:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)isinusinv:P(0,3);(0,18);(0,18);(0,21);(0,21)obleqinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)obleqinv:P(0,3);(0,18);(0,18);(0,21);(0,21)wviiinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)wviiinv:P(0,3);(0,18);(0,18);(0,21);(0,21)wivinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)wivinv:P(0,3);(0,18);(0,18);(0,21);(0,21)alconinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)alconinv:P(0,3);(0,18);(0,18);(0,21);(0,21)imolwinvint:P(0,3);(0,18)imolwinv:P(0,3);(0,18);(0,18);(0,21);(0,21)molwinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)molwinv:P(0,3);(0,18);(0,18);(0,21);(0,21)goodinvint:P(0,3);(0,18)goodinv:P(0,3);(0,18);(0,18);(0,21);(0,21)robinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)robinv:P(0,3);(0,18);(0,18);(0,21);(0,21)haminvint:P(0,3);(0,18);(0,18);(0,18);(0,18)haminv:P(0,3);(0,18);(0,18);(0,21);(0,21)sominvint:P(0,3);(0,18);(0,18);(0,4);(0,4);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4);(0,18)sominv:P(0,3);(0,18);(0,18);(0,21);(0,21)omerinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)omerinv:P(0,3);(0,18);(0,18);(0,21);(0,21)vandginvint:P(0,3);(0,18);(0,18);(0,18);(0,18)vandginv:P(0,3);(0,18);(0,18);(0,21);(0,21)millinvint:P(0,3);(0,18);(0,18);(0,18);(0,18)millinv:P(0,3);(0,18);(0,18);(0,21);(0,21)equiinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)equiinv:P(0,3);(0,18);(0,18);(0,21);(0,21)sininvint:P(0,3);(0,18);(0,18);(0,18);(0,18)sininv:P(0,3);(0,18);(0,18);(0,21);(0,21)gvnspinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)gvnspinv:P(0,3);(0,18);(0,18);(0,21);(0,21)orthinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)orthinv:P(0,3);(0,18);(0,18);(0,21);(0,21)gnominvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)gnominv:P(0,3);(0,18);(0,18);(0,21);(0,21)aziminvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)aziminv:P(0,3);(0,18);(0,18);(0,21);(0,21)lamazinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)lamazinv:P(0,3);(0,18);(0,18);(0,21);(0,21)sterinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18)sterinv:P(0,3);(0,18);(0,18);(0,21);(0,21)tminvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)tminv:P(0,3);(0,18);(0,18);(0,21);(0,21)eqconinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,4)eqconinv:P(0,3);(0,18);(0,18);(0,21);(0,21)polyinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)polyinv:P(0,3);(0,18);(0,18);(0,21);(0,21)psinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)psinv:P(0,3);(0,18);(0,18);(0,21);(0,21)merinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)merinv:P(0,3);(0,18);(0,18);(0,21);(0,21)lamccinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)lamccinv:P(0,3);(0,18);(0,18);(0,21);(0,21)alberinvint:P(0,3);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)alberinv:P(0,3);(0,18);(0,18);(0,21);(0,21)stplninvint:P(0,3);(0,4);(0,4);(10,3);(10,3)stplninv:P(0,3);(0,18);(0,18);(0,21);(0,21)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06inv_init.cBbss.bssDdata.dataDrodata.rodataisinusinvisinusinvinitobleqinvobleqinvintwviiinvwviiinvintwivinvwivinvintalconinvalconinvintimolwinvimolwinvintmolwinvmolwinvintgoodinvgoodinvintrobinvrobinvinthaminvhaminvintsominvsominvintomerinvomerinvintvandginvvandginvintmillinvmillinvintequiinvequiinvintsininvsininvintgvnspinvgvnspinvintorthinvorthinvintgnominvgnominvintaziminvaziminvintlamazinvlamazinvintsterinvsterinvinttminvtminvinteqconinveqconinvintpolyinvpolyinvintpsinvpsinvintmerinvmerinvintlamccinvlamccinvintalberinvalberinvintstplninvstplninvintutminvutminvintcalc_utm_zonebceainvbceainvintceainvceainvintpakszsphdz$XBEBTnbuqsAAmAq.inv_init.__func__inv_init  (/9GP\dov +3>FQXbkw%/8DMYbnu( 2(T X x |      J8 < \ `     J4JI    I     HG G I     xI    F4E 8E JI    DIL P X \   D    C4B 8B A@ @  I    $ |I    I       \I d  h  p  t  ? 0> 4> |I         I         \I d  h  p  t  I         = < < I         \I d  h  p  t  ;: : dIl p x | I    p98 8 I    LIT X ` d 76  6 TI\ ` h l I    4I< @ H L I       54 4 I   ( , I    ,3L2 P2 I    I     10 0 I     tI|    /$. (. pIx |   I    p-, , I    LIT X ` d +* * HIP T \ ` I    H)h( l( I    $I, 0 8 < '& & @IH L T X %$ $ 0I8 < D H I     0# P" T" I        ! !!@ !D !I! ! ! ! ""0 "4 "I" " " " " " #0I#8 #< #D #H #I# # # # $I$$ $( $0 $4 $I$ $ $ $ $I% % % % %lI%t %x % % &T&t &x & & '0I'8 '< 'D 'H 'I' ' ' ' (( ( )I)  ) ) ) )) ) )I) * * *  *x* * ** * +<I+D +H +P +T ++ + ,,8 ,< ,, , -I-  - - - - - - -I- . . .  .x . . .I. . . . /TI/\ /` /h /l /I/ / 0 0 0 0 0 1I1$ 1( 10 14 12 2 4| 282133$3l 03=?4!  JV|gXratiwt q|D|  cproj.o/ 1073924785 1032 20 100644 27112 ` ELFg4(.shstrtab.text.rodata.data1.bss.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿘'P'L'H'DDH?;X@XL$ $ ;X@XP$ $ 㿐'H'DDH?;X@X! ! ! ?! ?;X@X?#"p'X'T'P'L'H'DDH?LP?TX?腡 B??! ؅B;X@XЅ ?#"`'X'T'P'L'H'DDH?LP?TX?! $腡 B?! F?؅ H½ ?! ?ЉȅH ;X@XЅ @ȅ B ?! B?#"0'T'P'L'H'DDH?LP?! B;X@X?! g?B? ' O;XX@@ B?! ЅB?! HF ?! ‰ ƽ? ?Љ…B ;X@X @B B?؅B?;X@X!  ? ' !  @@ T$ ! ?#"H'T'P'L'H'DDH?LP?T$ ! B?! ! B?;X@X! B?' D;X@X? B?! ! B??! Ѝ…B;XX;X@X @;X@X! B؅?ȅB?;X@X!  ? ' !  @@ T$ ! ?#"('X'T'P'L'H'DDH?LP?TX?\`?dh??' L??! B;X@X @B??! B;X@X @??! B;X@X @B艡 ȅ?B?;X@X!  l$ ? ' !  0@@ l$ ! ?#"'X'T'P'L'H'DDH?LP?TX?\`?dh?lp?tx?$ $  'tt   ;X@X?  ;X@X??h! DD;X@Xh @|$ $   ! B;X@X?  H B?X?`! B;X@X` @XB?H?P  ! B;X@XP @H??h! D?@  D;X@X@ @h?8! D?H  D;X@XH @8B?(! D?0  D;X@X0 @(?! H|  JB BBȍH J! BB? BFB! JF‰ B|  J ?! H|  J …‰BH?B?x  xB$ $ x;X@X!  ! ?t 'tt  !  @@! ?#"p'H'DDH? /!  -/;X@X?! ! BB''ܥ, , , , , 'Ѕ?! ! BB''إ, , , 'Ѕ?'Љ! B'Љ! BBB?O׀ -腠??#"p'H'DDH? /! B?!  -/;X@X?腠B'''Ѕ! B?腠B'''Ѕ! B?'Љ! B'Љ! BBB?O׀ -腠??#"p'X'T'P'L'H'DDH?LP?TX? B?! B?! ؍…B;XX;X@X?! ! F腡…F;X@X؅ ?#"㿐'H'DDH?! ?' 'x'H'DDH?';X@X!  ! ;X@X@'耤 ?;X@X'荠! ! BB?! ! B;X@X@''艠! #`% B …B''荠` BB?x! ! B#` B;X@X@''艠` #`% B' B …B''荠` B BB?F! ! B! B;X@X@''艠! #`% B' B …B''荠` B BB??;X@X'荠! ! BB؅? '쀤 +?#"㿐'H'DDH?! ! B! ! ! BB BBB?#"㿐'H'DDH?! B! ! B! BBBBB?#"㿐'H'DDH?! BD! ! BB B?#"㿐'H'DDH?B B! ! …B?#"x'H'DDH?! B?! ?;XX;X@X! ?;XX;X@X؅ @;X@X?#"@'X'T'P'L'H'DDH?LP?TX?\`?dh?нD??! B;X@Xȅ @??! B;X@X @B??! B;X@X @?#"㿈'H'DDH?! B! ! BB''?>z򚼯H?@=|׽@ !TD-@@@@È?PbM@YA.@@@Lc˰@NAC"?@0?????@A@@ftsincosasinzmsfnzqsfnzphi1zphi2zphi3zphi4zpakczpakr2dmtsfnzsignadjust_lone0fne1fne2fne3fne4fnmlfncalc_utm_zoneConvergence errorphi1z-convConvergence errorphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv. dd'8(8)<@ʱ4$ /$5 U$[ {$ $ $ $ $ 9$? _$g $ $ $ $ '$, K$P o$t $ $ $ cproj.c/ecs/hdfeos/gctp/src/cproj.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbwqsAAGCq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o cproj.o cproj.c -W0,-xp\$XAEBTnbwqsAAGCq.tsincos$XBEBTnbwqsAAGCq.tsincos.__func__asinz$XBEBTnbwqsAAGCq.asinz.__func__msfnz$XBEBTnbwqsAAGCq.msfnz.__func__qsfnz$XBEBTnbwqsAAGCq.qsfnz.__func__phi1z$XBEBTnbwqsAAGCq.phi1z.__func__phi2z$XBEBTnbwqsAAGCq.phi2z.__func__phi3z$XBEBTnbwqsAAGCq.phi3z.__func__phi4z$XBEBTnbwqsAAGCq.phi4z.__func__pakcz$XBEBTnbwqsAAGCq.pakcz.__func__pakr2dm$XBEBTnbwqsAAGCq.pakr2dm.__func__tsfnz$XBEBTnbwqsAAGCq.tsfnz.__func__sign$XBEBTnbwqsAAGCq.sign.__func__adjust_lon$XBEBTnbwqsAAGCq.adjust_lon.__func__e0fn$XBEBTnbwqsAAGCq.e0fn.__func__e1fn$XBEBTnbwqsAAGCq.e1fn.__func__e2fn$XBEBTnbwqsAAGCq.e2fn.__func__e3fn$XBEBTnbwqsAAGCq.e3fn.__func__e4fn$XBEBTnbwqsAAGCq.e4fn.__func__mlfn$XBEBTnbwqsAAGCq.mlfn.__func__calc_utm_zone$XBEBTnbwqsAAGCq.calc_utm_zone.__func__ dd'8(8)<@ʱ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ V bL rP D4 ,h $ D=@D?@D@\DBlxDDx ,DE 1$ T c r@ DQ@DRP ,DS $ @D_@\Da\DclDf),Dgk$T0ʀրDz0D{PD|lD}xD~DDDDDpDDD~DDD,D  [$~T0ɀՀD0D8DLDDDDDHDXDDDDD, D,$dozlXDXD`tDtD4DDlDlDtDDDD,&D $Vep{|pɀ׀x*tDpDDDDDD<DDDDPDDDDD D D82,,DPPt$€DD D<DDDXDDDD DhDxD,2D$&2=IT_D)D* D+4D,PD-XD.lD/D0D1D2D3,D4<D5Hj,8D6\\$Ѡ@DD@DEPDFdDG,@DHS$fDMp,FT$ˠՀDUDXDYDD[LD\D^ D` lDctDe4Dh<DjDmDnLDoXDphDVpDqpxDsx, KDt)$=DzG,Vt$D{,[h$D|,`XF$ZD}d,eL$À΀DD,D@,jD$JU`kvXDX,o$ߠD,t\6$T$h$|$$$$$$$ bcproj.c/ecs/hdfeos/gctp/src/cproj.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbwqsAAGCq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.htsincos:F(0,20);(0,18);(0,21)=*(0,18);(0,21)val:p(0,18)sin_val:p(0,21)cos_val:p(0,21)cproj.c$XBEBTnbwqsAAGCq.tsincos.__func__:V(0,22)=ar(0,4);0;7;(0,23)=k(0,1)asinz:F(0,18);(0,18)con:p(0,18)$XBEBTnbwqsAAGCq.asinz.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)msfnz:F(0,18);(0,18);(0,18);(0,18)eccent:p(0,18)sinphi:p(0,18)cosphi:p(0,18)con:(0,18)$XBEBTnbwqsAAGCq.msfnz.__func__:V(0,26)=ar(0,4);0;5;(0,27)=k(0,1)qsfnz:F(0,18);(0,18);(0,18);(0,18)eccent:p(0,18)sinphi:p(0,18)cosphi:p(0,18)con:(0,18)$XBEBTnbwqsAAGCq.qsfnz.__func__:V(0,28)=ar(0,4);0;5;(0,29)=k(0,1)phi1z:F(0,18);(0,18);(0,18);(0,30)=*(0,4)eccent:p(0,18)qs:p(0,18)flag:p(0,30)eccnts:(0,18)dphi:(0,18)con:(0,18)com:(0,18)sinpi:(0,18)cospi:(0,18)phi:(0,18)i:(0,4)$XBEBTnbwqsAAGCq.phi1z.__func__:V(0,31)=ar(0,4);0;5;(0,32)=k(0,1)phi2z:F(0,18);(0,18);(0,18);(0,30)eccent:p(0,18)ts:p(0,18)flag:p(0,30)eccnth:(0,18)phi:(0,18)con:(0,18)dphi:(0,18)sinpi:(0,18)i:(0,4)$XBEBTnbwqsAAGCq.phi2z.__func__:V(0,33)=ar(0,4);0;5;(0,34)=k(0,1)phi3z:F(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,30)ml:p(0,18)e0:p(0,18)e1:p(0,18)e2:p(0,18)e3:p(0,18)flag:p(0,30)phi:(0,18)dphi:(0,18)i:(0,4)$XBEBTnbwqsAAGCq.phi3z.__func__:V(0,35)=ar(0,4);0;5;(0,36)=k(0,1)phi4z:F(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,18);(0,21);(0,21)eccent:p(0,18)e0:p(0,18)e1:p(0,18)e2:p(0,18)e3:p(0,18)a:p(0,18)b:p(0,18)c:p(0,21)phi:p(0,21)sinphi:(0,18)sin2ph:(0,18)tanphi:(0,18)ml:(0,18)mlp:(0,18)con1:(0,18)con2:(0,18)con3:(0,18)dphi:(0,18)i:(0,4)$XBEBTnbwqsAAGCq.phi4z.__func__:V(0,37)=ar(0,4);0;5;(0,38)=k(0,1)pakcz:F(0,18);(0,18)pak:p(0,18)con:(0,18)secs:(0,18)degs:(0,4)mins:(0,4)sgna:(0,1)$XBEBTnbwqsAAGCq.pakcz.__func__:V(0,39)=ar(0,4);0;5;(0,40)=k(0,1)pakr2dm:F(0,18);(0,18)pak:p(0,18)con:(0,18)secs:(0,18)degs:(0,4)mins:(0,4)sgna:(0,1)$XBEBTnbwqsAAGCq.pakr2dm.__func__:V(0,41)=ar(0,4);0;7;(0,42)=k(0,1)tsfnz:F(0,18);(0,18);(0,18);(0,18)eccent:p(0,18)phi:p(0,18)sinphi:p(0,18)con:(0,18)com:(0,18)$XBEBTnbwqsAAGCq.tsfnz.__func__:V(0,43)=ar(0,4);0;5;(0,44)=k(0,1)sign:F(0,3);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.sign.__func__:V(0,45)=ar(0,4);0;4;(0,46)=k(0,1)adjust_lon:F(0,18);(0,18)x:p(0,18)count:(0,4)$XBEBTnbwqsAAGCq.adjust_lon.__func__:V(0,47)=ar(0,4);0;10;(0,48)=k(0,1)e0fn:F(0,18);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.e0fn.__func__:V(0,49)=ar(0,4);0;4;(0,50)=k(0,1)e1fn:F(0,18);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.e1fn.__func__:V(0,51)=ar(0,4);0;4;(0,52)=k(0,1)e2fn:F(0,18);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.e2fn.__func__:V(0,53)=ar(0,4);0;4;(0,54)=k(0,1)e3fn:F(0,18);(0,18)x:p(0,18)$XBEBTnbwqsAAGCq.e3fn.__func__:V(0,55)=ar(0,4);0;4;(0,56)=k(0,1)e4fn:F(0,18);(0,18)x:p(0,18)con:(0,18)com:(0,18)$XBEBTnbwqsAAGCq.e4fn.__func__:V(0,57)=ar(0,4);0;4;(0,58)=k(0,1)mlfn:F(0,18);(0,18);(0,18);(0,18);(0,18);(0,18)e0:p(0,18)e1:p(0,18)e2:p(0,18)e3:p(0,18)phi:p(0,18)$XBEBTnbwqsAAGCq.mlfn.__func__:V(0,59)=ar(0,4);0;4;(0,60)=k(0,1)calc_utm_zone:F(0,4);(0,18)lon:p(0,18)$XBEBTnbwqsAAGCq.calc_utm_zone.__func__:V(0,61)=ar(0,4);0;13;(0,62)=k(0,1)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)pow:P(0,18);(0,18);(0,18)log:P(0,18);(0,18)tan:P(0,18);(0,18)sin:P(0,18);(0,18)cos:P(0,18);(0,18)atan:P(0,18);(0,18)asin:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06cproj.cBbss.bssDdata.dataDrodata.rodata$XBEBTnbwqsAAGCq.calc_utm_zone.__func__calc_utm_zone$XBEBTnbwqsAAGCq.mlfn.__func__mlfn$XBEBTnbwqsAAGCq.e4fn.__func__e4fn$XBEBTnbwqsAAGCq.e3fn.__func__e3fn$XBEBTnbwqsAAGCq.e2fn.__func__e2fn$XBEBTnbwqsAAGCq.e1fn.__func__e1fn$XBEBTnbwqsAAGCq.e0fn.__func__e0fn$XBEBTnbwqsAAGCq.adjust_lon.__func__adjust_lon$XBEBTnbwqsAAGCq.sign.__func__sign$XBEBTnbwqsAAGCq.tsfnz.__func__tsfnz$XBEBTnbwqsAAGCq.pakr2dm.__func__pakr2dm$XBEBTnbwqsAAGCq.pakcz.__func__pakcztan$XBEBTnbwqsAAGCq.phi4z.__func__phi4z$XBEBTnbwqsAAGCq.phi3z.__func__phi3zpowatan$XBEBTnbwqsAAGCq.phi2z.__func__phi2zp_error$XBEBTnbwqsAAGCq.phi1z.__func__phi1zlog$XBEBTnbwqsAAGCq.qsfnz.__func__qsfnzsqrt$XBEBTnbwqsAAGCq.msfnz.__func__msfnzasinfabs$XBEBTnbwqsAAGCq.asinz.__func__asinzcossin$XBEBTnbwqsAAGCq.tsincos.__func__tsincos ,dThlb_(,Z`U`PplK|F5H:; _j6 d0 (p" ( hd.NhTX]}` 0 P 06:>`p86T52        1  .L P t x   +  d h t4 ( (8    8 < |+2    ($ (    0 0  %  6$ 0( 0, 0 D H l$%  2 ( (   (, 0   6( 8, 886` @d @p62 ( (  @  @ ( ( H , H 6 , @ D `.   6  8  8 6  @  @ $6 L P p5  8  8 5  @  @ 5   P T     <2 D ( H ( \ P ` P  |  | (  8  8 P P,2< X@ XH `L ` h h ` ` p p, x0 x   P P28 < t x  p p x xt x   $ 0 0  < P@ P2 0 0 0 02$8 0< 0@ D d 0h 0l p 2   0 0   0  0 0  $ ( 82X p 0t 0x |    0   0 0    2  $ < 0@ 0D H P T x 0|   0 0  ` d l p x |  H H                       x |   $$.  6 8 86 @  @6   @ @  4 r %+4 7F#  Q8 _QhS9hpV xZ4 \  report.o/ 1073924786 1032 20 100644 27300 ` ELFh$4(.shstrtab.text.bss.rodata1.data1.rodata.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿠'H'D!  ! HD@@! ! #`@@!$ ! #`HD@@! @㿘'P'L'H'DD   !$ !$ CD !$ L@  ' !$ ! L@@)D ! !$ L@  !$ !  @@ a' !$ ! L@@!$ !$ H   !$ !$ CH !$ P@  8' !$ ! P@@)H ! !$ P@  !$ !  @@ ' !$ ! P@@!$ !$ '㿠! ! @! ! @㿠'D! ! D@@! ! #`@@!$ ! #`D@@! @㿘'H'DDH?!  ! ;XX@\! ! #`@@!$ ! #`@;X@X! @㿐'P'L'H'DDH?LP?! ! ;XX@\! ;XX@\! #! #`@@!$ ! #`@;X@X! #`@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿐'P'L'H'DDH?LP?! #`! B@;XX@\#`! B@;XX@\! )! #`@@!$ ! %! B@;X@X! %! B@;X@X! @㿘'H'DDH?!  #`! B@;XX@\! ! #`@@!$ ! %! B@;X@X! @㿐'P'L'H'DDH?LP?! ! ;XX@\! ;XX@\! #! #`@@!$ ! #`@;X@X! #`@;X@X! @㿘'L'H'DDH?!  ! L@;X@X! ! #`@@!$ ! #`L@;XX@\! @㿠'H'D!  ! HD@@! ! #`@@!$ ! #`HD@@! @㿠! ! @! ! #`@@!$ ! #`@@! @[%s] %s a[%s] %s %s PROJECTION PARAMETERS: a %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters a Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters a Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees a Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees a Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees a Latitude of Center: %lf degrees Latitude of Origin: %lf degrees a Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees a Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees a 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees a Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters a False Easting: %lf meters False Northing: %lf meters %s %lf a %s %lf %s %ld a %s %ld a Output file name not specifiedreport-fileOutput file name not specifiedreport-file@Lc˰p_errorinitclose_fileptitleradiusradius2cenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptgenrpt_longpblank0 d d)8*8+<@ʲ4 $ 3$8 W$b $ $ $ $ )$3 W$^ $ $ $ $ -$5 W$^ $ $    & > V n  report.c/ecs/hdfeos/gctp/src/report.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbyqsAAGDq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o report.o report.c -W0,-xp\$XAEBTnbyqsAAGDq.p_error$XBEBTnbyqsAAGDq.p_error.__func__init$XBEBTnbyqsAAGDq.init.__func__close_file$XBEBTnbyqsAAGDq.close_file.__func__ptitle$XBEBTnbyqsAAGDq.ptitle.__func__radius$XBEBTnbyqsAAGDq.radius.__func__radius2$XBEBTnbyqsAAGDq.radius2.__func__cenlon$XBEBTnbyqsAAGDq.cenlon.__func__cenlonmer$XBEBTnbyqsAAGDq.cenlonmer.__func__cenlat$XBEBTnbyqsAAGDq.cenlat.__func__origin$XBEBTnbyqsAAGDq.origin.__func__true_scale$XBEBTnbyqsAAGDq.true_scale.__func__stanparl$XBEBTnbyqsAAGDq.stanparl.__func__stparl1$XBEBTnbyqsAAGDq.stparl1.__func__offsetp$XBEBTnbyqsAAGDq.offsetp.__func__genrpt$XBEBTnbyqsAAGDq.genrpt.__func__genrpt_long$XBEBTnbyqsAAGDq.genrpt_long.__func__pblank$XBEBTnbyqsAAGDq.pblank.__func__$XAEBTnbyqsAAGDq.err_file$XAEBTnbyqsAAGDq.parm_file$XAEBTnbyqsAAGDq.fptr_e$XAEBTnbyqsAAGDq.fptr_p$XAEBTnbyqsAAGDq.file_p$XAEBTnbyqsAAGDq.file_e$XAEBTnbyqsAAGDq.terminal_e$XAEBTnbyqsAAGDq.terminal_p d d)8*8+<@ʲπ;Wt؀2Wkł:@Sl@π ̀4Rs}J Ăf@ @ J `   Ā  s  Ȁ   )  W l $ D H DM DN DO@TDQTDRxDS ,DV $ ,D 7H BL PPDa$Dc$Dd08Dg@PDiPDjXpDlp|Dn|DoDrDtDuDwDxDyD{D|,4D4D<DDDTDTD`hDpDDDDDDDD D DD,8D8DD\dDdDltDt ^,D $DDD(D< , DTT $DDDD4HDHDlD,D]$sDD,DL`D`DD},D$ޠ,D,@D@D`DDDDD,&D  6$LDD,DXlDlDDV,.D$DD,DXlDlDD, 5D$DD,DXlDlDD",?De${DD,DXlDlDD,FD$D D ,D XlDlDDD, MD4$S],D,@D@DlDDDD D!8Hg, XD#PP$àD',D),XD+XlD-lD.D/,aD1$/9,D5,@D7@D8`D:D<D=D>D?C,iDA  $LDEDF0DGThDIhDJDK,qDM$D%H DP DQ DR@TDTTDUxDV/, xDXx$D[D\D](<D_<D``Da|,Dc(!0.(!17(!0^(!1T~(!0(!/(!/(!0$&$R$x$$$breport.c/ecs/hdfeos/gctp/src/report.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbyqsAAGDq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/string.h/usr/include/iso/string_iso.h/usr/include/sys/feature_tests.h./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(14,1)=u8_i:(14,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(14,3)=(14,1)version:T(13,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(13,2)=s32type:(0,3),0,32;name:(13,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(17,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(17,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(17,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(17,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(17,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(15,1)=(0,3)sigfpe_handler_type:t(15,2)=*(15,3)=f(0,20)single:t(15,4)=(0,17)extended:t(15,5)=ar(0,4);0;2;(0,14)quadruple:t(15,6)=(0,19)fp_exception_field_type:t(15,7)=(0,14)decimal_string:t(15,8)=ar(0,4);0;511;(0,1):T(15,9)=s532fpclass:(17,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(15,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(15,10)=(15,9)decimal_form:T(15,11)=efixed_form:0,floating_form:1,;:T(15,12)=s12rd:(17,1),0,32;df:(15,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(15,13)=(15,12)decimal_string_form:T(15,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hp_error:F(0,20);(13,3);(13,3)what:p(13,3)where:p(13,3)report.c$XBEBTnbyqsAAGDq.p_error.__func__:V(0,21)=ar(0,4);0;7;(0,22)=k(0,1)init:F(0,3);(0,4);(0,4);(13,3);(13,3)ipr:p(0,4)jpr:p(0,4)efile:p(13,3)pfile:p(13,3)$XBEBTnbyqsAAGDq.init.__func__:V(0,23)=ar(0,4);0;4;(0,24)=k(0,1)close_file:F(0,20)$XBEBTnbyqsAAGDq.close_file.__func__:V(0,25)=ar(0,4);0;10;(0,26)=k(0,1)ptitle:F(0,20);(13,3)A:p(13,3)$XBEBTnbyqsAAGDq.ptitle.__func__:V(0,27)=ar(0,4);0;6;(0,28)=k(0,1)radius:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.radius.__func__:V(0,29)=ar(0,4);0;6;(0,30)=k(0,1)radius2:F(0,20);(0,18);(0,18)A:p(0,18)B:p(0,18)$XBEBTnbyqsAAGDq.radius2.__func__:V(0,31)=ar(0,4);0;7;(0,32)=k(0,1)cenlon:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.cenlon.__func__:V(0,33)=ar(0,4);0;6;(0,34)=k(0,1)cenlonmer:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.cenlonmer.__func__:V(0,35)=ar(0,4);0;9;(0,36)=k(0,1)cenlat:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.cenlat.__func__:V(0,37)=ar(0,4);0;6;(0,38)=k(0,1)origin:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.origin.__func__:V(0,39)=ar(0,4);0;6;(0,40)=k(0,1)true_scale:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.true_scale.__func__:V(0,41)=ar(0,4);0;10;(0,42)=k(0,1)stanparl:F(0,20);(0,18);(0,18)A:p(0,18)B:p(0,18)$XBEBTnbyqsAAGDq.stanparl.__func__:V(0,43)=ar(0,4);0;8;(0,44)=k(0,1)stparl1:F(0,20);(0,18)A:p(0,18)$XBEBTnbyqsAAGDq.stparl1.__func__:V(0,45)=ar(0,4);0;7;(0,46)=k(0,1)offsetp:F(0,20);(0,18);(0,18)A:p(0,18)B:p(0,18)$XBEBTnbyqsAAGDq.offsetp.__func__:V(0,47)=ar(0,4);0;7;(0,48)=k(0,1)genrpt:F(0,20);(0,18);(13,3)A:p(0,18)S:p(13,3)$XBEBTnbyqsAAGDq.genrpt.__func__:V(0,49)=ar(0,4);0;6;(0,50)=k(0,1)genrpt_long:F(0,20);(0,4);(13,3)A:p(0,4)S:p(13,3)$XBEBTnbyqsAAGDq.genrpt_long.__func__:V(0,51)=ar(0,4);0;11;(0,52)=k(0,1)pblank:F(0,20)$XBEBTnbyqsAAGDq.pblank.__func__:V(0,53)=ar(0,4);0;6;(0,54)=k(0,1)$XAEBTnbyqsAAGDq.err_file:S(0,55)=ar(0,4);0;255;(0,1)$XAEBTnbyqsAAGDq.parm_file:S(0,56)=ar(0,4);0;255;(0,1)$XAEBTnbyqsAAGDq.fptr_e:S(0,57)=*(2,2)$XAEBTnbyqsAAGDq.fptr_p:S(0,57)$XAEBTnbyqsAAGDq.file_p:S(0,4)$XAEBTnbyqsAAGDq.file_e:S(0,4)$XAEBTnbyqsAAGDq.terminal_e:S(0,4)$XAEBTnbyqsAAGDq.terminal_p:S(0,4)strlen:P(2,3);(0,58)=*(0,59)=k(0,1)strcpy:P(13,3);(13,3);(0,60)=*(0,61)=k(0,1)printf:P(0,3);(0,62)=*(0,63)=k(0,1);0fprintf:P(0,3);(0,64)=*(7,2);(0,65)=*(0,66)=k(0,1);0fopen:P(0,57);(0,67)=*(0,68)=k(0,1);(0,69)=*(0,70)=k(0,1)fclose:P(0,3);(0,64)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06report.cBbss.bssDdata.dataDrodata.rodata$XBEBTnbyqsAAGDq.pblank.__func__pblank$XBEBTnbyqsAAGDq.genrpt_long.__func__genrpt_long$XBEBTnbyqsAAGDq.genrpt.__func__genrpt$XBEBTnbyqsAAGDq.offsetp.__func__offsetp$XBEBTnbyqsAAGDq.stparl1.__func__stparl1$XBEBTnbyqsAAGDq.stanparl.__func__stanparl$XBEBTnbyqsAAGDq.true_scale.__func__true_scale$XBEBTnbyqsAAGDq.origin.__func__origin$XBEBTnbyqsAAGDq.cenlat.__func__cenlat$XBEBTnbyqsAAGDq.cenlonmer.__func__cenlonmer$XBEBTnbyqsAAGDq.cenlon.__func__cenlon$XBEBTnbyqsAAGDq.radius2.__func__radius2$XBEBTnbyqsAAGDq.radius.__func__radius$XBEBTnbyqsAAGDq.ptitle.__func__ptitle$XAEBTnbyqsAAGDq.fptr_p$XBEBTnbyqsAAGDq.close_file.__func__close_filestrcpystrlen$XAEBTnbyqsAAGDq.parm_file$XAEBTnbyqsAAGDq.file_p$XAEBTnbyqsAAGDq.terminal_p$XBEBTnbyqsAAGDq.init.__func__initfclosefprintffopenprintf$XAEBTnbyqsAAGDq.err_file$XAEBTnbyqsAAGDq.fptr_e$XAEBTnbyqsAAGDq.file_e$XAEBTnbyqsAAGDq.terminal_e$XBEBTnbyqsAAGDq.p_error.__func__p_error -NU {@yPq(i ` & X/U T _N G= 6.'(/'PW x \ $CHOW]d ~5 5 0 4 H1P4 T4 d2 h2 l p x03 3 3 3   /3 3 .5 5 4 4 85 <5 D(h4 l4 p2 t2 '5 5 (4 4   74 4 2 2  '5  5 $4 (4 @+ D+ H* L* h+ l+ t(* * ) ) '+ + (* *  , , 7$* (* ,) 0) <'L+ P+ T* X* 3 3 3 3 .$ $ $ $ .+  +    ,14* 8* H) L) P <T <\0d$ h$ l$ p$ t @x @/$ $ .+ +  ` `1 * *  ) $) ( , 40<$ @$ D$ H$ L P d/l$ p$ t.+ +   1  1 * $* 4) 8) < @ H0P$ T$ X$ \$ `  d  x/$ $  T T/$ $ .+ +     (10* 4* D) H) L P X0`$ d$ h$ l$ p t |  /$ $ .+ +       1(* ,* <) @) D H P0X$ \$ `$ d$ h l t x /$ $ .+ +  P P   1 * $* 4) 8) < | @ | H0 P$ T$ X$ \$ `  d  l p / $ $ . + +       1 * * ,) 0) 4  8  @0 H$ L$ P$ T$ X  \  d h |/ $ $ . + +       1 * * $) () , , 0 , 80 @$ D$ H$ L$ P 0 T 0 \ ` t/ |$ $ . + +  `  `   1 $  (  0 4 H1 P* T* d) h) l  p  x0 $ $ $ $       / $ $       / $ $ . 8+ <+ L  P  X \ p1 x* |* ) )  <  < 0 $ $ $ $  @  @   / $ $ .D+ H+ X h\ hp1x | 1* * ) )   0$ $ $ $   /$ $   / $ $$ (.l+ p+   1* * ) )   0$ $ $ $     /$ $ .L+ P+ ` d x1* * ) )  $ $0$ $ $ $  ( (/$ $ .+  + 0 44 481@* D* T) X) \ 8` 8h0p$ t$ x$ |$  < </$ $ .4 xx>X&.4L  @O  Z3hIqKhyO\ RH paksz.o/ 1073924788 1032 20 100644 8164 ` ELF4(.shstrtab.text.data1.rodata.bss.data.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text`'L'H'DDH?L$ ! ! ?! ?;X@X?! ?ȅ …B''Ā!h!  @@$\L$ ! _?'?ȅ B?! ?ȅ …B''Ā <!  @@$\L$ ! 9?'?ȅ B?! !  @@$\L$ ! ?! B! BBЅB B?! ??#"Illegal DMS fieldpaksz-degIllegal DMS fieldpaksz-minIllegal DMS fieldpaksz-sec?A.@@@N@ paksz+ dd'8(8)<@ʳ4$ paksz.c/ecs/hdfeos/gctp/src/paksz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbzqsAAGEq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o paksz.o paksz.c -W0,-xp\$XAEBTnbzqsAAGEq.paksz$XBEBTnbzqsAAGEq.paksz.__func__ ! dd'8(8)<@ʳ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   )$ L XL e p {    D@DB$DC@DEPDI\DJpDK|DLDNDODPDSDWDXDYDZ0@D\@D]XD^dtDatDeDfDhDiDjDmDn(Dp< ,DqPP $ $ bpaksz.c/ecs/hdfeos/gctp/src/paksz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnbzqsAAGEq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.hpaksz:F(0,18);(0,18);(0,21)=*(0,4)ang:p(0,18)iflg:p(0,21)fac:(0,18)deg:(0,18)min:(0,18)sec:(0,18)tmp:(0,18)i:(0,4)paksz.c$XBEBTnbzqsAAGEq.paksz.__func__:V(0,22)=ar(0,4);0;5;(0,23)=k(0,1)p_error:P(0,20);(10,3);(10,3)fabs:P(0,18);(0,18)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06paksz.cBbss.bssDdata.dataDrodata.rodatap_errorfabs$XBEBTnbzqsAAGEq.paksz.__func__paksz 8,498Yd8 < P T ` d t        P T `t x  ( ( @ @   0  0 ( (< 0@ 04 x0^> %+l 7<+Fh  Q  !_=h_pD x  sphdz.o/ 1073924789 1032 20 100644 11024 ` ELF(4(.shstrtab.text.data.data1.rodata.bss.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿀'T'P'L'H'DD H  ;X@X?H   ;X@X?! B! L$ $ P$ $ T$ $ +! L$ $ T$ $ ! 腡;X@X BP$ $ L$ $ T$ $ P$ $ e! !   L$ $ !   T$ $ !   P$ $ GD?!   L$ $ !   T$ $ ! P$ $ .D?!   L$ $ !   T$ $ ! P$ $ !   L$ $ !   T$ $ ! P$ $ {D@'䀤 !  @@!  @@ 'D'b䀤 ", #`  L$ $ , #`  P$ $ , #`  T$ $ >䀤 , #`  L$ $ , #`  P$ $ !   T$ $ , #`  L$ $ , #`  P$ $ !   T$ $ 'AXTAXTIGAXSIAXT`AXTAXTAXSAXT@AXT@AXTXbAXS1'AXS uAXT@AXTAXTAXT@AXTǀAXTAXTAXM@AXMAXM˕AX?333AX? AX?+AX? AX?dAX?áFIAX?sAX?= AX?ީAX?H:=pAX?!~AX?1AX?AX?ToAX?ɮAX?4AX?ΕXAX?'pAX?_RAXM@AXMAXM˕Invalid spheroid selectionINFORMATIONALReset to 0INFORMATIONAL?AXM˕AXMAXM@sphdz Y dd'8(8)<@ʴ4  3$9 sphdz.c/ecs/hdfeos/gctp/src/sphdz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb0qsAAGFq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o sphdz.o sphdz.c -W0,-xp\$XAEBTnb0qsAAGFq.$XAEBTnb0qsAAGFq.major$XAEBTnb0qsAAGFq.minorsphdz$XBEBTnb0qsAAGFq.sphdz.__func__- dd'8(8)<@ʴ̀9Urր0Ui~Â8@Qj@̀ ʀހ2Pq>Sfp= ԂY   @ @ = S w    f     ڀ J _ s |& & $D%H2LBPRTapDx(Dz(D{DD}dDDDDDDDD@HDHDXDhxxDDDDDDD$D@TD\lDlDDDDD  DD$4D4DLDdDlpDxDDDDDD@DhDDDD,D$$$$,bsphdz.c/ecs/hdfeos/gctp/src/sphdz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb0qsAAGFq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)/usr/include/stdlib.h/usr/include/iso/stdlib_iso.h/usr/include/sys/feature_tests.h:T(10,1)=s8quot:(0,3),0,32;rem:(0,3),32,32;;div_t:t(10,2)=(10,1):T(10,3)=s8quot:(0,4),0,32;rem:(0,4),32,32;;ldiv_t:t(10,4)=(10,3)wchar_t:t(10,5)=bsc4;0;32;:T(9,1)=s16quot:(0,5),0,64;rem:(0,5),64,64;;lldiv_t:t(9,2)=(9,1)uid_t:t(9,3)=(0,4)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(14,1)=u8_i:(14,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(14,3)=(14,1)version:T(13,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(13,2)=s32type:(0,3),0,32;name:(13,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(17,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(17,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(17,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(17,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(17,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(15,1)=(0,3)sigfpe_handler_type:t(15,2)=*(15,3)=f(0,20)single:t(15,4)=(0,17)extended:t(15,5)=ar(0,4);0;2;(0,14)quadruple:t(15,6)=(0,19)fp_exception_field_type:t(15,7)=(0,14)decimal_string:t(15,8)=ar(0,4);0;511;(0,1):T(15,9)=s532fpclass:(17,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(15,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(15,10)=(15,9)decimal_form:T(15,11)=efixed_form:0,floating_form:1,;:T(15,12)=s12rd:(17,1),0,32;df:(15,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(15,13)=(15,12)decimal_string_form:T(15,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.h$XAEBTnb0qsAAGFq.major:S(0,21)=ar(0,4);0;21;(0,18)$XAEBTnb0qsAAGFq.minor:S(0,22)=ar(0,4);0;21;(0,18)sphdz:F(0,3);(0,4);(0,23)=*(0,18);(0,23);(0,23);(0,23)isph:p(0,4)parm:p(0,23)r_major:p(0,23)r_minor:p(0,23)radius:p(0,23)t_major:(0,18)t_minor:(0,18)jsph:(0,4)sphdz.c$XBEBTnb0qsAAGFq.sphdz.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)p_error:P(0,20);(13,3);(13,3)fabs:P(0,18);(0,18)sqrt:P(0,18);(0,18)labs:P(0,4);(0,4)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)stdlib.h 1.47 99/11/03 SMI@(#)stdlib_iso.h 1.2 99/12/21 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06sphdz.cBbss.bssDdata.dataDrodata.rodatap_errorlabssqrtfabs$XBEBTnb0qsAAGFq.sphdz.__func__sphdz$XAEBTnb0qsAAGFq.minor$XAEBTnb0qsAAGFq.major `(,49>C(ciH h x |       $ 4           4 8 P T |             (D H T\ ,` ,l      0 4 X \ x |       4 (`@F.&+ 7<YF  Q4-_"ah$Hp$ x%  untfz.o/ 1073924790 1032 20 100644 7580 ` ELFD4(.shstrtab.text.data.data1.rodata.bss.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text㿘'L'H'DH 1H -D )D %D, , #`H,   L$ $ L  ! B !  @@$M' !  $@@ ''?A -s1y@Lc??Ӂjp;?:u@ ?%X?@ ?(>U??24Vx?FR:@ ??B?Ӂ?Uncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unituntfz D dd'8(8)<@ʶ4 $$ untfz.c/ecs/hdfeos/gctp/src/untfz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb1qsAAGGq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o untfz.o untfz.c -W0,-xp\$XAEBTnb1qsAAGGq.$XAEBTnb1qsAAGGq.factorsuntfz$XBEBTnb1qsAAGGq.untfz.__func__w 6 dd'8(8)<@ʶ̀9Urր0Ui~Â8@Qj@̀ ʀހ&:V mcŀB@ǀ@ - F m   ; q   Ҁ   ) 2& y$ D H L ̈́D-PD/PD0D2D3D8D9D< ,D= $ 5buntfz.c/ecs/hdfeos/gctp/src/untfz.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb1qsAAGGq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0/usr/include/stdio.h/usr/include/iso/stdio_iso.h/usr/include/sys/feature_tests.h/usr/include/sys/isa_defs.h/usr/include/sys/va_list.h__va_list:t(5,1)=*(0,20)/usr/include/stdio_tag.h__FILE:t(6,1)=xs__FILE:/usr/include/stdio_impl.h/usr/include/sys/isa_defs.hssize_t:t(7,1)=(0,3)__FILE:T(7,2)=s16_cnt:(7,1),0,32;_ptr:(7,3)=*(0,11),32,32;_base:(7,3),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;__orientation:(0,14),112,2;__ionolock:(0,14),114,1;__filler:(0,14),115,5;;__longlong_t:t(2,1)=(0,5)FILE:t(2,2)=(7,2)size_t:t(2,3)=(0,14)fpos_t:t(2,4)=(0,4)off_t:t(1,1)=(0,4)off64_t:t(1,2)=(0,5)fpos64_t:t(1,3)=(0,5)./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(11,1)=u8_i:(11,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(11,3)=(11,1)version:T(10,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(10,2)=s32type:(0,3),0,32;name:(10,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h/usr/include/sys/ieeefp.hfp_direction_type:T(14,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(14,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(14,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(14,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(14,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;sigfpe_code_type:t(12,1)=(0,3)sigfpe_handler_type:t(12,2)=*(12,3)=f(0,20)single:t(12,4)=(0,17)extended:t(12,5)=ar(0,4);0;2;(0,14)quadruple:t(12,6)=(0,19)fp_exception_field_type:t(12,7)=(0,14)decimal_string:t(12,8)=ar(0,4);0;511;(0,1):T(12,9)=s532fpclass:(14,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(12,8),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(12,10)=(12,9)decimal_form:T(12,11)=efixed_form:0,floating_form:1,;:T(12,12)=s12rd:(14,1),0,32;df:(12,11),32,32;ndigits:(0,3),64,32;;decimal_mode:t(12,13)=(12,12)decimal_string_form:T(12,14)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.h$XAEBTnb1qsAAGGq.factors:S(0,21)=ar(0,4);0;5;(0,22)=ar(0,4);0;5;(0,18)untfz:F(0,4);(0,4);(0,4);(0,23)=*(0,18)inunit:p(0,4)outunit:p(0,4)factor:p(0,23)untfz.c$XBEBTnb1qsAAGGq.untfz.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)p_error:P(0,20);(10,3);(10,3)@(#)stdio.h 1.78 99/12/08 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)va_list.h 1.12 99/05/04 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.8 99/06/10 SMI@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06untfz.cBbss.bssDdata.dataDrodata.rodatap_error$XBEBTnb1qsAAGGq.untfz.__func__untfz$XAEBTnb1qsAAGGq.factors  ,4T Z p t      $ $4 0 S`&n+px 7DF,  Q 6_hsp xx  gctp.o/ 1073924791 1032 20 100644 16428 ` ELF=4(.shstrtab.text.data.bss.data1.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.text'X'T'P'L'H'D''$ \ d `h@@$  '! `'̀ eR̡, #`$̡, #`$̡, #`$̡, #`$̡, #`$̡, #`$'Ȁ ('+`-)  ̥, , $ȣ, $ $ ``̥, , $ȣ, $ $ Ƞ 'Ȁ ̠ '̀ e 'Ġ ' !$ H OH , #`L @H , #`X @H ,#`H  '''̀ "H , , $#`̥, @  P   B ' ̠ '̀ p Op , #`t @p , #` @p ,#`p  '''̀ "p , , $#`̥, @  x   B ' ̠ '̀ H H d !  @@ $ 'p p d !  @@ $ 'T 'X H  T  'X H T L <  d.! , #`'H  @@ $  @@$ H T$  @8'D   B?D    B?ĀH ,#`$X H , #`$L H , #`$'̀ ) P̧, @  H , , $$ $ ̠ '̀ H h '̀ @P̥, @  $ $ ̠ '̀ ! ?@! ?HL  P  ! BL , , $ '44! B?@L ! ?H! ?H P  ?@P   ?HH L @X ) @@#\@#`H L PX ) @@#\@#` @k'H ?? H , #`آ;XX;XX@Ā'<<$ < @B'p ,#`$ p , #`$t p , #`$'̀ ) x̧, @  p , , $$ $ ̠ '̀ p T '̀ @x̥, @  $ $ ̠ '̀ ! ?@! ?Hx  ! B;X@X?@;X@X?H x  ?@x   ?Hp t @ ) @@#\@#`p t x ) @@#\@#` @'p  l$ $ l $ $  p , #`l ;XX;XX@Ā'88$ 8 @h'| ' p  |  ' p | t <  d.! , #`'p  @@ $  @@$ p |$ l   B$ $ l    B$ $ @'Insys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUTA.Agctp>dd%8&8'<@ʷ4  .$3 R m        ( gctp.c/ecs/hdfeos/gctp/src/gctp.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb2qsAAGHq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o gctp.o gctp.c -W0,-xp\$XAEBTnb2qsAAGHq.$XAEBTnb2qsAAGHq.iter$XAEBTnb2qsAAGHq.NADUTgctp$XBEBTnb2qsAAGHq.gctp.__func__$XAEBTnb2qsAAGHq.inv_trans$XAEBTnb2qsAAGHq.for_trans$XAEBTnb2qsAAGHq.pdout$XAEBTnb2qsAAGHq.outzn$XAEBTnb2qsAAGHq.outdat$XAEBTnb2qsAAGHq.outpj$XAEBTnb2qsAAGHq.pdin$XAEBTnb2qsAAGHq.inzn$XAEBTnb2qsAAGHq.indat$XAEBTnb2qsAAGHq.inpj9tdd%8&8'<@ʷˀ7SpԀ.Sg|ʂ(<~ ,D^c߀DZ@x@  ڀ BĀ W s 0 ɂ & & "$ D ͠H ۠L P T X \ $` 1d =h Jl Zp it yx |      π ؀       ' : Ex@ fDoDp Dq$Ds,Dt`DutD||D~DDDDDDDPDPD|DD~DDDDDDDD$D$D,D4PPDPdDdDDDlDlDtD|DDDDDDD,D8@D@DLDDDDDD@DdDxDDD m$DDDDDD$DDD`DDDDD D(D4D@xDxDDDDD D  $ \D dD  D D   D  D D  D  pD pD x D  D D! D" D# D$ D# @D% \ pD' pD( D' D) D* D+  D- D.  0 8D2 8D3 H \D5 \ $ D8 D9  D; D< ( 0 0DB 0 DDD DDE T hDH p DJ DK  DP DS DT0DU8DVtDXDYD[D] D^ D`,DaHDbhDcp , $ $ $Dd (!- P(!- (/X!- (!,(!,F(!,y(/X!- (!,(!,%(!,W$sbgctp.c/ecs/hdfeos/gctp/src/gctp.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb2qsAAGHq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0./cproj.h/usr/include/math.h/usr/include/iso/math_iso.h_h_val:T(3,1)=u8_i:(3,2)=ar(0,4);0;1;(0,15),0,64;_d:(0,18),0,64;;_h_val:t(3,3)=(3,1)version:T(2,1)=elibm_ieee:-1,c_issue_4:0,ansi_1:1,strict_ansi:2,;exception:T(2,2)=s32type:(0,3),0,32;name:(2,3)=*(0,1),32,32;arg1:(0,18),64,64;arg2:(0,18),128,64;retval:(0,18),192,64;;/usr/include/floatingpoint.h/usr/include/stdio_tag.h__FILE:t(5,1)=xs__FILE:/usr/include/sys/ieeefp.hfp_direction_type:T(6,1)=efp_nearest:0,fp_tozero:1,fp_positive:2,fp_negative:3,;fp_precision_type:T(6,2)=efp_extended:0,fp_single:1,fp_double:2,fp_precision_3:3,;fp_exception_type:T(6,3)=efp_inexact:0,fp_division:1,fp_underflow:2,fp_overflow:3,fp_invalid:4,;fp_trap_enable_type:T(6,4)=efp_trap_inexact:0,fp_trap_division:1,fp_trap_underflow:2,fp_trap_overflow:3,fp_trap_invalid:4,;fp_class_type:T(6,5)=efp_zero:0,fp_subnormal:1,fp_normal:2,fp_infinity:3,fp_quiet:4,fp_signaling:5,;FILE:t(4,1)=xs__FILE:sigfpe_code_type:t(4,2)=(0,3)sigfpe_handler_type:t(4,3)=*(4,4)=f(0,20)single:t(4,5)=(0,17)extended:t(4,6)=ar(0,4);0;2;(0,14)quadruple:t(4,7)=(0,19)fp_exception_field_type:t(4,8)=(0,14)decimal_string:t(4,9)=ar(0,4);0;511;(0,1):T(4,10)=s532fpclass:(6,5),0,32;sign:(0,3),32,32;exponent:(0,3),64,32;ds:(4,9),96,4096;more:(0,3),4192,32;ndigits:(0,3),4224,32;;decimal_record:t(4,11)=(4,10)decimal_form:T(4,12)=efixed_form:0,floating_form:1,;:T(4,13)=s12rd:(6,1),0,32;df:(4,12),32,32;ndigits:(0,3),64,32;;decimal_mode:t(4,14)=(4,13)decimal_string_form:T(4,15)=einvalid_form:0,whitespace_form:1,fixed_int_form:2,fixed_intdot_form:3,fixed_dotfrac_form:4,fixed_intdotfrac_form:5,floating_int_form:6,floating_intdot_form:7,\floating_dotfrac_form:8,floating_intdotfrac_form:9,inf_form:10,infinity_form:11,nan_form:12,nanstring_form:13,;./cproj_prototypes.h./gctp_prototypes.h./proj.h$XAEBTnb2qsAAGHq.iter:S(0,4)$XAEBTnb2qsAAGHq.NADUT:S(0,21)=ar(0,4);0;133;(0,4)gctp:F(0,3);(0,22)=*(0,18);(0,23)=*(0,4);(0,23);(0,22);(0,23);(0,23);(0,23);(2,3);(0,23);(2,3);(0,22);(0,23);(0,23);(0,22);(0,23);(0,23);(2,3);(2,3);(0,23)incoor:p(0,22)insys:p(0,23)inzone:p(0,23)inparm:p(0,22)inunit:p(0,23)indatum:p(0,23)ipr:p(0,23)efile:p(2,3)jpr:p(0,23)pfile:p(2,3)outcoor:p(0,22)outsys:p(0,23)outzone:p(0,23)outparm:p(0,22)outunit:p(0,23)outdatum:p(0,23)fn27:p(2,3)fn83:p(2,3)iflg:p(0,23)x:(0,18)y:(0,18)factor:(0,18)lon:(0,18)lat:(0,18)i:(0,4)j:(0,4)ininit_flag:(0,4)outinit_flag:(0,4)unit:(0,4)dummy:(0,24)=ar(0,4);0;14;(0,18)gctp.cclose_file:P(0,3)inv_init:P(0,3)for_init:P(0,3)$XBEBTnb2qsAAGHq.gctp.__func__:V(0,25)=ar(0,4);0;4;(0,26)=k(0,1)untfz:P(0,3)init:P(0,3)pakr2dm:P(0,18)$XAEBTnb2qsAAGHq.inv_trans:S(0,27)=ar(0,4);0;100;(0,28)=*(0,29)=f(0,4)$XAEBTnb2qsAAGHq.for_trans:S(0,30)=ar(0,4);0;100;(0,31)=*(0,32)=f(0,4)$XAEBTnb2qsAAGHq.pdout:S(0,33)=ar(0,4);0;100;(0,34)=ar(0,4);0;14;(0,18)$XAEBTnb2qsAAGHq.outzn:S(0,35)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.outdat:S(0,36)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.outpj:S(0,37)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.pdin:S(0,38)=ar(0,4);0;100;(0,39)=ar(0,4);0;14;(0,18)$XAEBTnb2qsAAGHq.inzn:S(0,40)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.indat:S(0,41)=ar(0,4);0;100;(0,4)$XAEBTnb2qsAAGHq.inpj:S(0,42)=ar(0,4);0;100;(0,4)p_error:P(0,20);(2,3);(2,3)@(#)math.h 2.10 99/07/29 SMI@(#)math_iso.h 1.1 99/07/30 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)ieeefp.h 2.8 99/10/29acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06gctp.cBbss.bssDdata.dataDrodata.rodatafor_initpakr2dminv_initclose_fileuntfzp_errorinit$XAEBTnb2qsAAGHq.for_trans$XAEBTnb2qsAAGHq.inv_trans$XAEBTnb2qsAAGHq.pdout$XAEBTnb2qsAAGHq.pdin$XAEBTnb2qsAAGHq.outzn$XAEBTnb2qsAAGHq.outdat$XAEBTnb2qsAAGHq.outpj$XAEBTnb2qsAAGHq.inzn$XAEBTnb2qsAAGHq.indat$XAEBTnb2qsAAGHq.inpj$XBEBTnb2qsAAGHq.gctp.__func__gctp$XAEBTnb2qsAAGHq.NADUT$XAEBTnb2qsAAGHq.iterkP +4<EPV^ci~h(8/X x/XP ("9O ns`                $ @ D H L P T X \    8 < d h           < @    $ ( 4    < d     ( , H L h l 8 < D H p t        @ D d      $ (                 4       0        x 4 XtkPt@#%+ 7>F  Q$t_4Hh5&p6 x8L  br_gctp.o/ 1073924792 1032 20 100644 3536 ` ELF 4(.shstrtab.text.bss.data.rodata.stab.index.stab.indexstr.stab.excl.stab.exclstr.comment.strtab.symtab.rela.textH'X'T'P'L'H'DDHLPTX\`dhlptx'|''''ؐ@@#\#`#d#h#l#p#t#x#|##@#gctp_3 d!d+8,8-<@ʸ4 $ br_gctp.c/ecs/hdfeos/gctp/src/br_gctp.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb4qsAAGIq./ecs/hdfeos/gctp/src; /opt/SUNWspro/bin/../WS6U1/bin/cc -g -DSUN5 -Dunix -c -o br_gctp.o br_gctp.c -W0,-xp\$XAEBTnb4qsAAGIq.gctp_$XBEBTnb4qsAAGIq.gctp_.__func__4 d!d+8,8-<@ʸр=Yvڀ4Ym$RDaHoL~PTX\`ƠdҠhlptx|/;GDDT,$Dbbr_gctp.c/ecs/hdfeos/gctp/src/br_gctp.cXa ; g ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06 ; G=$XAEBTnb4qsAAGIq.char:t(0,1)=bsc1;0;8;short:t(0,2)=bs2;0;16;int:t(0,3)=bs4;0;32;long:t(0,4)=bs4;0;32;long long:t(0,5)=bs8;0;64;signed char:t(0,6)=bsc1;0;8;signed short:t(0,7)=bs2;0;16;signed int:t(0,8)=bs4;0;32;signed long:t(0,9)=bs4;0;32;signed long long:t(0,10)=bs8;0;64;unsigned char:t(0,11)=buc1;0;8;unsigned short:t(0,12)=bu2;0;16;unsigned:t(0,13)=bu4;0;32;unsigned int:t(0,14)=bu4;0;32;unsigned long:t(0,15)=bu4;0;32;unsigned long long:t(0,16)=bu8;0;64;float:t(0,17)=R1;4;double:t(0,18)=R2;8;long double:t(0,19)=R6;16;void:t(0,20)=bs0;0;0gctp_:F(0,20);(0,21)=*(0,18);(0,22)=*(0,4);(0,22);(0,21);(0,22);(0,22);(0,22);(0,23)=*(0,1);(0,22);(0,23);(0,21);(0,22);(0,22);(0,21);(0,22);(0,3);(0,3);(0,22)incoor:p(0,21)insys:p(0,22)inzone:p(0,22)inparm:p(0,21)inunit:p(0,22)indatum:p(0,22)ipr:p(0,22)efile:p(0,23)jpr:p(0,22)pfile:p(0,23)outcoor:p(0,21)outsys:p(0,22)outzone:p(0,22)outparm:p(0,21)outunit:p(0,22)fn27:p(0,3)fn83:p(0,3)iflg:p(0,22)$XBEBTnb4qsAAGIq.gctp_.__func__:V(0,24)=ar(0,4);0;5;(0,25)=k(0,1)gctp:P(0,3)acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-09 2002/02/06br_gctp.cBbss.bssDdata.dataDrodata.rodatagctp$XBEBTnb4qsAAGIq.gctp_.__func__gctp_ .3S4| $l 0$3?X|  JX wAa Yi  q  hdf-eos5-5.1.14+dfsg.1/lib/tmp/geolibDEC.a0000755000175000017500000450373212024715435020735 0ustar amckinstryamckinstry! ________64ELEL_ 1074015701 0 0 0 5762 ` >~J RS0 n/ bq#VCyJ  a6J y" ga_~6vI1QJ vI)yg ~VaR` yD8 yYR`J  J ^ v JV8 J yr9y~\ J b vILRy>ey>T JGU> J /~Z>yU։ 4yVz CV8 Kyb RS&u vy nf9ΘvI V^4u J vIJ J #vI)BVJ hJ ]^4. [ J $"J J  JM։ k[^yvff9hFJo ' rjy. 2BVvIK EbF "yk.28 z D^O^n/ uZbF tBA 66C Spa yJ . 0^v |ΘBA J vJ &;y.28rFJ[ Wl&<Qzgctpalberforalberforintalberinvalberinvintalconforalconforintalconinvalconinvintazimforazimforintaziminvaziminvinteqconforeqconforinteqconinveqconinvintequiforequiforintequiinvequiinvintgnomforgnomforintgnominvgnominvintgoodforgoodforintgoodinvgoodinvintgvnspforgvnspforintgvnspinvgvnspinvinthamforhamforinthaminvhaminvintimolwforimolwforintimolwinvimolwinvintlamazforlamazforintlamazinvlamazinvintmerformerforintmerinvmerinvintmillformillforintmillinvmillinvintmolwformolwforintmolwinvmolwinvintobleqforobleqforintobleqinvobleqinvintomerforomerforintomerinvomerinvintorthfororthforintorthinvorthinvintpolyforpolyforintpolyinvpolyinvintpsforpsforintpsinvpsinvintrobforrobforintrobinvrobinvintsinforsinforintsininvsininvintsomforsomforintgsat_ratiosominvsominvintsterforsterforintsterinvsterinvintstplnforstplnforintstplninvstplninvinttmfortmforinttminvtminvintutmforutmforintutminvutminvintvandgforvandgforintvandginvvandginvintwivforwivforintwivinvwivinvintwviiforwviiforintwviiinvwviiinvintfor_initinv_initcalc_utm_zonetsincosmsfnzqsfnztsfnzadjust_lonphi1zphi2zphi3zphi4zasinzsigne0fne1fne2fne3fne4fnmlfnpakczpakr2dmp_errorptitleradius2radiusstanparlcenlonmercenloncenlattrue_scaleoriginoffsetpstparl1genrptgenrpt_longpblankinitclose_filelamccforlamccforintlamccinvlamccinvintpakszuntfzsphdzgctp_isinusforinitIsin_for_initisinusforIsin_fwdIsin_for_freeisinusinvinitIsin_inv_initisinusinvIsin_invIsin_inv_freebceaforintbceaforbceainvintbceainvceaforintceaforceainvintceainvgctp.o 1074015700 1032 20 100644 16016 ` -@hP  @x 0.text h .rconst  x .xdata  @.pdata0 0  h.data@ @  @.lita`( .sdata  .bss00@x'##^> ^(~08@޵H G^ GX^hޥ`X0@>18^H~h}@[k'4#N@G`}c6` GA+MXCMXC0MXC`MXC8MXC <MXCP? G MMtBXC MMBXCB 4AA_ 4A4G`4GX4G`]:li4`)!LXC`!^B"@) LXC0~c@ LXC@ɤU@ G 4AA MMAXC MqA1Xc4G`^4G`j4`ʦNXCP?֦`B)NXC 1P>^R @UB~s`B`4GP޶B UCB ^GP}@[k'#LHCP) PGx^"@}@[k'#PTGx^"@}@[k'#IU@@@P~d8}@[k'P#Gè>x>@Xc~Cx~JKYc^`|ɤLXC MXC0)!N^RXC`Q G NMBMvAXC 4AA馷5B> TGMMzAC 4AA>! ˍ델 àL'@>[\Q2Zc>>1 |~Xu"޵ >1^"~s0}@[k'#Xu ޵ >1G~s0}@[k'@#8}@[k'(#G) p>h>LXCud>p^"h~"@[k'Ԉ#8}@[k'#GX>o JALjXC8bLxXC <ʤL`XCP? G NMBMAXCB 4AAj5`B1` TGMMA6C5 4AAO @p(}@[k'ć#h(}@[k'#/>O^Xq ޵ `>1^"x~s }@[k'T#Xq ޵ `>1Gx~s }@[k'#8}@[k'#G* pP~h>P%ʤLXCqfph>Pp"P^@[k'#8}@[k'#Gjp>!P>x^B @jU`@`pՀ@4GPxޤƤ@ꤧU@pA `GP}@[k'#LHCP GP>x^"@}@[k'#TGP>x^"@}@[k'#JU@@@P~pdxPޤ&@ XcPx^PpJjYcP>Q8}@[k'4#GH"H=1"}@[k' #TGG H"H=1"}@[k'܄#4GG^> ^(~08@ޥH0#k̀L$tI& Insys is illegalGCTP-INPUTOutsys is illegalGCTP-OUTPUT 0 t xx|       $ < p t    d       $ ((,X \\`        $ ((,8 <h llp    4 P    $ (T XX\h l    ( , , 0              t x x |                  0 4  R h:`$ 3 3H=:=)*r"#%Ҁ  !/d! /d!d IA#5A%"!   # ! # %"! % !/ #a" #R9!"&Ygctp.citerinpjindatinznpdinoutpjoutdatoutznpdoutfor_transinv_transNADUTgctpincoorinsysinzoneinparminunitindatumiprefilejprpfileoutcooroutsysoutzoneoutparmoutunitoutdatumfn27fn83iflgxyfactorlonlatijininit_flagoutinit_flagunitdummy/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hsize_twchar_tdiv_tquotremldiv_t/usr/include/sys/types.hptrdiff_twctype_tfpos_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimevalcproj_prototypes.hK B#0 @`@@  I"@PL(@O/@R5 ;`@E` OUF0ZCQ agC nQuC|C0C8C@CHCPCQ `CQpCxCCCPGXDPDHD@D8D ! !0D!(D! D! Da H UHHK(ǂb@$r)"."3"HK"b&r,ɢ 1ɢ&2&ʲ5,B@1B5Ȃ5HKP "$b-"4;C"KrSʲ\bc"kbtʢ~""bPbR2ʲrʲrR"" r$*12:2D2MbT"]bn"@vr}"r ] Dzn"@2 rʒ pn"@ R Ǣr@rɲr$r0r;ɲ GrQ"\ hrvrr@rr"r @"bbb rʲ #ʂ 00bBb nb@vr}bIbQ"Q"@Yr0ar(qb nb@vr}bQ"YrqrbXR"@R"Rʲbʂ 2"#ʂ*282?rGʲPW2_"_Ȳeʂj"r2zrbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK Hx/d@,3/@/dxx/d@x/@x/,,/@x, ,0U||<</0?<0x<ߊx<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</</ 0?<o0t  0Fd:0/@:0 /`<L97`GO]`<" `;^ ``p_errorgctppakr2dminituntfzclose_fileinv_initfor_init_OtsDivide64_fpdataF  +4=Jalberfor.o 1074015660 1032 20 100644 15240 ` -@XP @P .text( .rconst .xdata@.pdata.datap@.lita00X(.sbssP' #p#^^~x>R^s^ph8} >8($p^8EXc}@[k'#H<Xc Ę=@1"}@[k'#GÀ8=x>8]"8}C8djKYc@^@@LYcP܉,YcHH(}@[k'#8\`>"X^"@}@[k'#`P8=`>X^}@[k'Ȅ#\8`>X^0}@[k'#(c\`>"X^"@}@[k'#8`>X^}@[k'd#88`>X^0}@[k'@# h`>"X^"@}@[k' #8`>X^0}@[k'#00Xc}@[k'䃽#H<XcJBXc8~8KlYc*KYc (ލ-YcjMYc8@P8=PBXc8]"(^Q2ZcZc8}8d~88ݤ0ގUZc0Zc(}@[k'#>@ Xc8@` Xc8=P"}@[k'؂#88=!x}@[k'#\c\p}@[k'#8h}@[k'#h`}@[k't#8 8=(!X}@[k'T#G^^~#k'0##^H@>8^0~@(>" ^"@}@[k'#8(> ^0}@[k'܁#8@P^8=a8]LYc0lYc(}@[k'#P>@ Xc8@` Xc8=aP~8]H0Yc }@[k'H#P>@ Xc}@[k'$#>@ Xc8 @ Xc8>8]bP~}@[k'#>@ XcP^ @Yc8(` Xc0>G^`#k?|= Equal latitudes for St. Parallels on opposite sides of equatoralber-forinitALBERS CONICAL EQUAL-AREA8 <D HP T` ddhp t           ( ,,0@ DP TT Xd ht xx |             4 88<D H           $0 48 <@ DDHP TX \` dd hx ||           $, 0< @@ DP T\ `d h       ( ,8 <<@` d      08@HP X`hpx     d 3p5@@.@. P959 &!"&(&(&(*E   alberfor.cr_majorr_minorce3rhns0lon_centerfalse_eastingfalse_northingalberforintr_majr_minlat1lat2lon0lat0false_eastfalse_northsin_pocos_poconestempms1ms2qs0qs1qs2alberforlonlatxysin_phicos_phiqsthetarh1/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK !$(3APF \CbC$h#mrCwC0|C8C4GDDDDD"DDDDH0PHFCCCC GDDDDDHPHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, -,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  px(j& `n53.d@n.`-a?( `F2]`<) `;e `: `- ``cosfabssinsqrtalberforalberforintp_errorptitletsincosmsfnzqsfnzradius2stanparlcenlonmeroriginoffsetpadjust_lon_fpdata  FF'/6>DJR[eltalberinv.o 1074015660 1032 20 100644 16728 ` -@P ppPp0.textp( .rconstpp0 .xdata @.pdata 8.data @.lita@@h .sbssP'0#p#^^~xp>R^s^h`P}>P$h^PEXc0}@[k'ȇ#<Xc Ĩ=1"}@[k'#GxP=p>P]"P}CPdjKYc@^@@LYc܉,YcPPݤH}@[k'#P\X>"P^"}@[k'#XHP=X>P^}@[k'І#\PX>P^}@[k'#(c\X>"P^"}@[k'#PX>P^}@[k'l#8PX>P^}@[k'H# `X>"P^"}@[k'(#PX>P^}@[k'#00Xc0}@[k'셽#<XcJBXc8~8KlYc*KYc (ލ-YcjMYcP@HP=PBXcP]"(^Q2ZcZcP}Pd~PPݤ0ގUZc0ZcH}@[k'#>@ XcP@` XcP="}@[k'#PP=!x}@[k'#\c\p}@[k'#Ph}@[k'#``}@[k'|#PP=!X}@[k'\#G^^~#k'8##^>^~ (^1^H^ G0P]%XcP}#!$XcPD*XcPe``LXcMXcYcH}@[k'#@\JXcKXcKYcH}@[k'h# \@\8@> PEXcQDXc@}@[k',#8P@@~JjYcP=bLYcP]NBXc-YcP}cYcP<ZcVPE|2rZcRTZcP^Pݤ܊5ZcPZcpZc8}@[k'L#P>@ XcP@` Xc|"`YcB\0}@[k' #Pc\0}@[k'#P>0 Xc0}@[k'؁#<Xc Pc\0^"(}@[k'# 0> 0'``<)\I Pc\0^"(}@[k'H# 0> 0P}#8^aAYcPd+Xc }@[k'#HG^>^~ (`#k??-DT!-DT!?|=  alber-invinitALBERS CONICAL EQUAL-AREAEqual latitudes for Standard Parallels on opposite sides of equatorp 8 <D HP T` ddhp t              0 448H LX \\ `l p|             $$ (< @@DL P         ( ,8 <@ DH LLPX \` dh ll p         0 4@ DP T` d      $ (4 8L P\ `d hx |             $4 88<P TTX` dt x       ( ,,0      @HPX`hpx       J ;#33?;? &!"&(&(&(*E  * + /(AX> alberinv.cr_majorr_minorce3esrhns0lon_centerfalse_eastingfalse_northingalberinvintr_majr_minlat1lat2lon0lat0false_eastfalse_northsin_pocos_pocontempms1ms2qs0qs1qs2alberinvxylonlatrh1qsthetaflag/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK  ! $ ' + 6( DSF_CeC$k#puCzC0C8C4GDDDD"DDDDH@SHF%$C 4GD#"DD!LHPlHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, -,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  px,n& <`r;J.@n.`-V?) `F3]`< `;Z `: `- ``atan2fabslogsqrtalberinvalberinvintp_errorptitletsincosmsfnzqsfnzradius2stanparlcenlonmeroriginoffsetpadjust_lonphi1z_fpdata FF)18@FLT]gnvalconfor.o 1074015661 1032 20 100644 16600 ` -@XP P` p.texthx .rconst( .xdata@@ @.pdataPP .data`` @.lita H.sbss  P.bss` ` p'p##^80>(^ ~8X=0>X]"(^X}C ~XdpXhXݤGX8`܍ޝ}@[k'܇#X0X< =!P\ ]BH| }c@ 8 (0܍ ݤ0Ɲ @( H  P< =X1\ ]`R| }hsX0@X@}@[k'#@>@ XcX@| KYc[cpLYc8}@[k'#@<^!*Xc| Ycp+XcX0[cqYc0}@[k'T#@>P Xc(}@[k'8#Xc< XcX= 1"X](R"H}@[k'#}@[k'䅽#XX=!x}@[k'ą#Xp}@[k'#Xh}@[k'#XX=!`}@[k't#G^P#k'\#0#^>^~ (0ޜ8@H>>^~X=>0 XcP}@[k'#>"^"H}@[k'܄#X0@@}@[k'#@@Xcx<^AYc[cp+Xc8}@[k'#\"^"H}@[k'ԃ#X @@@XcX]("^A*Xc~A+XcXcpp Yc[ciYcO/YcOYchX('^Q2ZcX pStZcSuZc13ZcQ1Yc`>hގhZcPޞhh>X[c`^`~Z[[c [cX}8saN CX8N C8X8N5B CՌXݦ8֦N6B C8 TGX8 7A(P\[cXcP][cXcX8 8AX=899)C!O CُB(Yc&[cX]8Z:ICAO C8ZK'Yc%KYc\c\ 4 A!)]F(Xc )]EXc\c\hMYc`LYc,Yc YcX}ۍLYcX Yc>`OYch^RGZcYcYcX]OYcX}YcG^>^~ (0ތ8@H>#k?-DT!?OvҿSXnNȿə$s?7< sfKzs?s? =;jzY}?!bLUu?1,51?^s{?5RF?#9  ALASKA CONFORMAL` `$ (0 4< @H LP TX \` dh lt x|                     $ (, 04 8< @D HL PT X\ `h lp ttx       0 448H L` dh lp ttx                X \l pp t       , 0D HHL\ ``dt x    $ (8 <         L P\ `l       \ `l p P T  X \        +k T ;p#33@?;p? "#,(TF&T$*  alconfor.cr_majorr_minorlon_centerlat_centerfalse_eastingfalse_northingacoefbcoefsin_p26cos_p26enalconforintr_majr_minfalse_eastfalse_northeschiesphialconforlonlatxydlonsinloncoslonsinphicosphigsxpyparaibrbiarnainrj/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK@ # # #( '#0 2#8 @#` O U@ [#H c#P k#X m3oF@{C!C!C!C! GpD!D!D!H oHF` C!C!CCDG D!D!D!D!D!D!D!)!D!D!(!'!&!%!$!#!D!D! 1tHHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,/@,x3,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  P1c%0@g;T4@n4`-qE/ `L9]`<9 `;u `: `- ``atanpowsinsqrttanalconforalconforintptitletsincosradius2cenloncenlatoffsetpadjust_lon_fpdata  FF+2:BIPXcalconinv.o 1074015661 1032 20 100644 19480 ` -@$P   @0.text hX+ .rconst  x .xdata @.pdata #.data (@.lita@ @ #.sbss P.bss@@p'0##^80>(^ ~8=0>]"(^}C ~dxpݤG(h܍ޝ`}@[k'# `<=!X\]BP|}cH @(8܍ݤ0Ɲ@0H(P <=X1\]`R|}hs @@}@[k'#@>@ Xc@| KYc[cpLYc8}@[k'p#@<^!*Xc| Ycp+Xc [cqYc0}@[k'#@>P XcX}@[k'#Xc< Xc=1"]R"P}@[k'#p"}@[k'#=!}@[k'#}@[k'h#}@[k'P#=!}@[k'0#G^P#k'##^>^^ ~(08ޜ@HP>80>(^ ~=8>  Xc]B` Xc8}c0+YckmYc0~80 G XcRXcSXcSZc(LCŌݤ(ƤLC8挈(L'@C(M(AC8(Ў[BZc=([CZc(45B@@[>X[cݦ(֦65BH޶H^[~Z[[c^ TG( XAb\&Yc[c^'YcZc=(9 YAP 爀](Z:JCAOC:AYc!!Zc>}({;jCaOC8[@Yc @YcތK"Ycލ Yc~O#Yc^OZc(  @@@~[}(s3jBaNCStZcUYc3uZc~=(!!*@@>@ގ[}(c#j@aLC8VZcYYc6Zcޞ^~ 4@A:]ZF[c^=]][cތPXcQXc0Zc>Zc8^!*Xc>@XcLXc Xc Xc0ލ XcKXcRXc+rYc oYc~TXcUXcZcZc~SwZc>ގV6[cvZc~~X^Z][c[c8_x[cޏ>Q[c^J Zc*QYc>aAYc>XcXcx}@[k' #\x}@[k'#Xc 4 A"A<^AYc? pp= 1"h}@[k'#tGEXc>@XcXc`}@[k'l#p[cp^pAYcX}@[k'D#Xcx>"^"P}@[k'#(>px}@[k'#XcĈ >!GÀ^}cJKYcxLYcōLYcplYcLYcH}@[k't#h Gh>X> X@}@[k'H#@Xc Xc`X^`~ KYcX^ 4 A"A `x}@[k'8#Xc p0"p=P1"h}@[k'#G'X >]xPXc$p^AAYc~A+XcݤLYcxލLYc1,Xc(}@[k'#Xc }@[k'h#(G^>^^ ~(08ތ@HP>P#k?-DT!?|=OvҿSXnNȿə$s?7< sfKzs?s? =;jzY}?!bLUu?1,51?^s{?5RF?#9 *ALASKA CONFORMALToo many iterations in inversealcon-invToo many iterations in inversealcon-inv  @$ (0 4< @H LP TX \` dh lt x|                     $ (, 04 8< @D HL PT X\ `h lp ttx       0 448H L` dh lp tt x               ` dt x        ( 8 <H X \l p    $ (4 T Xd      $ (4    $4 88<\ `x |           0 4 4 8 @ D T X p t                $ $ ( 4 8 H L d h |                   $ ( , , 0 L P ` d               @ H P X ` h p x               \ h%EH->>%IhFPJ "#(U+q$%+f|#/9$jR@alconinv.cr_majorr_minorlon_centerlat_centerfalse_eastingfalse_northingacoefbcoefsin_p26cos_p26enalconinvintr_majr_minfalse_eastfalse_northeschiesphialconinvxylonlatrsbrbiaiarcicrdidrarnaincrncinfxyrfxyifpxyrfpxyixpypdendxpdypdszcoszsinzrhdphiphijnn/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK0 # ##'#2#@#@OxU [#(c#0k#8m3oF@{C!C!C!C! GpD!D!D! H oHF`C!C!CCHGD!)!(!D!D!'!&!#!"!D!D!D!D!D!D!D!xD!pD!hD!$!`D!XD!P D!HD!@D!8D!0D!(D! #D!D!&D!+D! /1 11HHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,/@,xB,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  P1b%PfhF4C@n4C`-T/ `[9]`<j `; `: `- `H`atanatan2fabspowsinsqrttanalconinvalconinvintp_errorptitletsincosradius2cenloncenlatoffsetpadjust_lonasinz_fpdata !F*F6>EMU\ckv|azimfor.o 1074015662 1032 20 100644 13424 ` -@HP 0@@.text({ .rconst  .xdata@.pdata.data`@.litaPPx8.sbss@'@##^( >^~(h= >h]"^h}C~hdhh= 1"h](R"X}@[k'ă#@"}@[k'#h}@[k'#h}@[k'|#hx}@[k'd#hh=!p}@[k'D#G^0#k',#0#^^h`>X^P~h=h>0 Xc`}@[k'삽#8`H>"@^"X}@[k'̂#8P}@[k'#0h @H~JKYch](@LYc0ލLYcLYc ^ H}@[k'`#<0XcH}@[k'@#<Xc\(^ ^&@h`KlYc~x"@=^8}@[k'#x"@=81"0}@[k'ā#tGC (}@[k'# }@[k'#>` Xc(h@h=A(~JKYc@JLYcp^8 }@[k'@#p>@ Xc@XcXh=Ah]b(KlYch}(HލMYch @OYc0>OYc-YcKmYc KYcPGG^^#k?-DT! @|=AZIMUTHAL EQUIDISTANTPoint projects into a circle of radius = %12.2lfazim-for( ,4 8@ DL PX \d hl pt xx |               8 <L PPTl pp t          0 48 <P X \\`l pt xx|     $ (, 0@ DT X      PX`hpx      w (.P'P'x2/2 (E"&U/ azimfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12azimforintr_majcenter_loncenter_latfalse_eastfalse_northazimforlonlatxysinphicosphidloncoslonkspgconzmess/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK0 )8FNVF(aC gCrC}CC$GHVHFCCCC$GxDpDhD`DXDPDHD@DD!H`HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,",/OKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0&@E08En/(#@n#`-A4. `n;8]`<  `;E `: `- ``sprintfacoscosfabssinazimforazimforintp_errorptitletsincosradiuscenlonmeroriginoffsetpadjust_lon_fpdata F"F-5<DKU\doaziminv.o 1074015662 1032 20 100644 14160 ` -@P @@.text( .rconst  .xdata@.pdata(.data@8@.litaPPx.sbss@'@##^( >^~(`= >`]"^`}C~`d``=1"`]R"@}@[k'Ą#P"}@[k'#`}@[k'#`x}@[k'|#`p}@[k'd#``=!h}@[k'D#G^0#k',##^>^~ (^1^ GH~`=%Xc`]"$XcJXcKXcKYcX}@[k'#\` \A*XcaXc PP=1"H}@[k't#G`=``Xc@@8>"0^"@}@[k'<#` c\8}@[k'#<Xc`@H>AG0~`}KlYc8MXc`ōMYcmYcmYc0}@[k'#H`=8}@[k'#<"XcB\8}@[k'\#<Xc*`@@@`=aP~1\\(}@[k'#P> Xc }@[k'# GS`=!P>0\\(}@[k'ȁ#P>0 Xc }@[k'# G@0>P>`]BX^H~}@[k't#X>@ XcP^"@YcB\8}@[k'H#<Xc \8}@[k' #<XcG`=AP^8~KXc`}PlYcQCXc(}@[k'Ā#P> Xc }@[k'# G^>^~ (`#k-DT!?|=-DT! @  AZIMUTHAL EQUIDISTANTInput data errorazim-inv(( ,4 8@ DL PX \d hl pt xx|               H LX \             $, 0@ D\ `x |        $ ((,@ DD H\ `p ttx        ( ,D H\ `t xx|        PX` hpx     4w 3x18H*H*PX515 (E &$#/#/O? aziminv.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p12cos_p12aziminvintr_majcenter_loncenter_latfalse_eastfalse_northaziminvxylonlatrhzsinzcoszcon/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK )8FNVF(aC gCrC}CC$GHVHF%$ C4G#DDD"H`HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0&@E<`Ew134@n`-)0( `V72]`< `;- `:h `- ``atan2fabssinsqrtaziminvaziminvintp_errorptitletsincosradiuscenlonmeroriginoffsetpadjust_lonasinz_fpdata FF'/6>EOV^ioeqconfor.o 1074015665 1032 20 100644 17016 ` -@xP ```.text`(  .rconst`` .xdatapp@.pdatax.datap@.lita( .sbss'##^^~h`>R^s^XPh0`>0%X^0ݤFx~08gp0@00=эmYcHHHގOYc@/Zc0](0}(Ȁ}@[k'0#0 0=(}@[k'#00=(}@[k'#00=(}@[k'Ѕ#00=(}@[k'#0c\@>"8^"}@[k'#0 @>8^}@[k'l#000=!0]B0}cc\(}@[k'4# NbXc}@[k'#8<Xc Ĉ=01"}@[k'#4GB\@>"8^"}@[k'#0 @>8^}@[k'#(00=!0]B0}cB\(}@[k'd#0bXc}@[k'H#8<Xc 0^(~*KYc ,YcjLYc0H@@ލ0]H@0H0H0>p0Zc ^PZc0ݤP00(0P0=qP(}@[k'#000=!0]PB0}0c*KYcA*Xc0X$(䈀@"x}@[k'0#00=!p}@[k'#c\B\h}@[k'#0`}@[k'#PX}@[k'̂#0@0=8!P}@[k'#&ÈX"x}@[k'#00=!p}@[k'p#c\H}@[k'\#0`}@[k'D#PX}@[k'0#0@0=8!P}@[k'#G^^~p#k'##^80>(^ ~0=0]"0}C0d0(}@[k'#0@0=Pa+lYcJKYc^0]H@0}Í80Yc }@[k'H#@>@ Xc0@@@^}@[k'#>@ Xc@^@Yc(0=8a0]X lYc@~}@[k'Ȁ#>@ Xc@^ @Yc G^P#k?|= Standard Parallels on opposite sides of equatoreqcon_forEQUIDISTANT CONICEQUIDISTANT CONICh`4 8@ DL PX \d hl pt x               ( ,0 48 <<@H L\ ``dl p|              , 004< @L PP T` dh lp tx |        4 8< @D HL PT X` ddhp tx |                    $, 04 8< @@DP TX \\`h lp tx ||            $( ,0 48 <D HHLX \` d          $$(       (08@H P X ` hpx  " <;p$44H?H<P@ &&A*&&2Q% %0  eqconfor.cr_majorr_minorlon_centere0e1e2e3eesml0false_northingfalse_eastingnsgrheqconforintr_majr_minlat1lat2center_loncenter_latfalse_eastfalse_northmodetempsinphicosphims1ms2ml1ml2eqconforlonlatxymlthetarh1/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK '*-0358<K Y(\0^aF(mC sC#y"~CC0C8C@C0G0DDDDDDDHaHFCCC!C! GDDDTH`H@HK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,$x/,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  p+}1$@PH<<0@n0`-hA) `H3]`<0 `;l `: `- ``cosfabssinsqrteqconforeqconforintp_errorptitletsincosmsfnzradius2stanparlcenlonmeroriginoffsetpadjust_lone0fne1fne2fne3fnmlfnstparl1_fpdata  F@F'/6>DLU_fny~eqconinv.o 1074015665 1032 20 100644 17368 ` -@P `.text(x  .rconst .xdata( @.pdata8 .data  pH @.lita (.sbssPP'##^^~h`>R^s^XPh8`>8%X^8ݤFx~8gp888=эmYcHHHގOYc/Zc8]8}0}@[k'#88=Ȁ}@[k'#88=}@[k'#88=}@[k'`#88=}@[k'@#8c\@>"8^"}@[k'#8@>8^}@[k'#088=!8]B8}cc\}@[k'ą# NbXc}@[k'#@<Xc Ĉ=01"}@[k'p#4GB\@>"8^"}@[k'L#8@>8^}@[k',#(88=!8]B8}cB\}@[k'#0bXc}@[k'؄#@<Xc 0^(~*KYc ,YcjLYc8@@ލ8]@880>p0Zc ^PZc8ݤ88(8P8=qP}@[k'#88=!8]B8}c*KYcA*Xc8$(䈀@"x}@[k'#88=!p}@[k'#c\B\h}@[k'#8`}@[k'p#PX}@[k'\#88=!P}@[k'<#&ÈX"x}@[k' #88=!p}@[k'#c\H}@[k'삽#8`}@[k'Ԃ#PX}@[k'#88=!P}@[k'#G^^~p#k'##^^~^1^H^@~8]#`Xc8}#!"Xc8D*Xc8e``LcXcMBXcYc0}@[k'#8\(^KcXcLBXclYc0}@[k'# \8<(> 8^ @(~PcYc(QYc(}@[k'p# 8@8=a8kYc*KYc0^8]"8}C8d80" }@[k' #@8=!8]B ~jjYc*Xc}@[k'Ѐ#H> G^^~P#k?|= Standard Parallels on opposite sides of equatoreqcon-forEQUIDISTANT CONICEQUIDISTANT CONIC 4 8@ DL PX \d hl pt x               ( ,0 48 <<@H L\ ``dl p|             , 004< @L PPT` dh lp tx |        4 8< @D HL PT X` ddhp tx |                    $, 04 8< @@ DP TX \\`h lp tx ||           , 0< @L P\ `         $ (D HL PT X\ `l ppt               (08@H + G8(=%55A=A &&A*&&2Q% %0 * + ! eqconinv.cr_majorr_minorlon_centere0e1e2e3eesml0false_northingfalse_eastingnsgrheqconinvintr_majr_minlat1lat2center_loncenter_latfalse_eastfalse_northmodetempsinphicosphims1ms2ml1ml2eqconinvxylonlatrh1mlconthetaflag/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK P X`h'p*x-0358<KY\^aF(mC sC#y"~CC0C8C@C0G0DDDDDDDHaHF#"(C! C!(GDDDDDHH@HK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,$x1,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  p+}1$@ P=G2@n2`-qC) `J3]`<9 `;u `: `- ``atan2fabssqrteqconinveqconinvintp_errorptitletsincosmsfnzradius2stanparlcenlonmeroriginoffsetpadjust_lonphi3ze0fne1fne2fne3fnmlfnstparl1_fpdata F@F%-4<BJS]dlw}equifor.o 1074015666 1032 20 100644 11176 ` -@8 P 0.text8? .xdata@.pdata(.data@.litaP .sbssPP0'##^( >^~( = > ]"^ }C~ d PH}@[k'# @}@[k'l# 8}@[k'T# 0}@[k'<#  =!(}@[k'#G^0#k'##^( >^~ =(>0 Xc}@[k'Ȁ# @0^ =aKlYc8~ ]}@[k'#8>@ Xc0^@Yc =a ] LYc lYc~cG^@#kEQUIRECTANGULARX( ,4 8@ DL PX \` d hhlt x|            $$(4 8@ DX \` ddh         (08@ tQ  &PP `*'* D equifor.cr_majorlon_centerlat_originfalse_northingfalse_eastingequiforintr_majcenter_lonlat1false_eastfalse_northequiforlonlatxydlon/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKP X`h)p8FF(QC WCbCgCrC$GHFH`~FCCCC GpDH@~HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0$<;@AO't@n`-*( `212]`< `;  `:D `-~ ``cosequiforequiforintptitleradiuscenlonmeroriginoffsetpadjust_lon_fpdataF F`%/6>Iequiinv.o 1074015666 1032 20 100644 11736 ` -@8 P 000.text0((M .rconst00X .xdata@@h@.pdataPPx .data``@@.lita`x .sbss0'##^( >^~(@= >@]"^@}C~@d@0"h}@[k' #@`}@[k'#@X}@[k'#@P}@[k'؁#@@=!H}@[k'#G^0#k'##^^( >^~@=(>  Xc(@]B ^"JXc ^@}c ^kKXcd8}@[k' #<Xc 00=1"(}@[k'#G@=A@]0@} }@[k'#0>@ Xc(^`@Yc@Xc}@[k'#G^^@#k-DT!?EQUIRECTANGULARInput data errorequi-inv0p ( ,4 8@ DL PX \` dh llpx |          , 0D Hh llpx |          P T  X \    ^  x(H!H! X,(, E &/equiinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingequiinvintr_majcenter_lonlat1false_eastfalse_northequiinvxylonlat/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK ) 8FF(QC WCbCgCrC$GHFH`~FCCCC$G`(H@8~HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0$<<@AT(@n`-)( `-02]`< `; `:? `-y ``cosfabsequiinvequiinvintp_errorptitleradiuscenlonmeroriginoffsetpadjust_lon_fpdata FF`$+2<CKVgnomfor.o 1074015667 1032 20 100644 12280 ` -@ P 0@.text(W .rconst .xdata@.pdata(X .data@8@.litaPPpx .sbss0'@##^( >^~(H= >H]"^H} C~H(dH=1"H]R"8}@[k'Ђ#("p}@[k'#(h}@[k'# `}@[k'#X}@[k'|#H H=(!P}@[k'\#G^0#k'D##^PH>@^8~H=P>0 Xc@}@[k'#0H(>" ^"8}@[k'聽#00}@[k'ԁ#H@(~JKYcH] LYcލLYc LYc^ ((= 1" }@[k'l#G<>`XcH= AX^H]bKlYc KmYc`~0}@[k'#`>@ XcX^@Yc@H=(aH]LYcH}Í(NYcH >PZc^PZc.YcLYc lYc8gG^p#k?GNOMONICPoint projects into infinitygnomfor-conv ( ,4 8@ DL PX \` dh llpx |           0 44 8P TTXd hhlx |        0 448` dh l|        PX`hpx    b 8 x*8H#H#X X.*. E&% 0gnomfor.clon_centerRsin_p13cos_p13false_eastingfalse_northinggnomforintrcenter_longcenter_latfalse_eastfalse_northgnomforlonlatxydlonsinphicosphicoslongksp/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK  (6EF(PC RC^CiCtC$GHEHpFCCCC GDDDDDDHPHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0+B?pFe* @n`-"0( `O72]`< `;& `:a `- ``cossingnomforgnomforintp_errorptitletsincosradiuscenloncenlatoffsetpadjust_lon_fpdataFFp#*29@GOZgnominv.o 1074015667 1032 20 100644 13792 ` -@(P @.text(x .rconst .xdata@.pdata.data@.lita(.sbssPP@'##^^( >R^~(X= >X]"X}C^XD~XeB\X=1"X]R"@}@[k'D#}@[k'0#(x}@[k'# p}@[k'#B\h}@[k'#XX=!`}@[k'ԃ#G^^0#k'##^>^~ (^1^ GH~X=%XcX]"$XcJXcKXcKYcP}@[k'D#\X paXcH}@[k' #@@8>"0^"@}@[k'#X c\8}@[k'#<XcX@H>AG0~X}KlYc8MXcXōMYcmYcmYc0}@[k'd#HX=8}@[k'D#<"XcB\8}@[k' #<Xc*X@@@X=aP~1\\(}@[k'؁#P> Xc }@[k'# GSX=!P>0\\(}@[k'#P>0 Xc }@[k'p# G@0>P>X]BX^H~}@[k'8#X>@ XcP^"@YcB\8}@[k' #<Xc \8}@[k'䀽#<XcGX=AP^8~KXcX}PlYcQCXc(}@[k'#P> Xc }@[k'l# G^>^~ (`#k-DT!?|=  GNOMONICx, 08 <@ DL PX \d hl pt xx|            < @L Pt xx|        4 8T XX\l pt xx|         , 004H LL Pl p       0 448L PP T         ( 0 8 @H $q 00((30`4 D )#/#/O?0gnominv.clon_centerlat_centerRsin_p13cos_p13false_eastingfalse_northinggnominvintrcenter_longcenter_latfalse_eastfalse_northgnominvxylonlatrhzsinzcoszcon/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKP X`!h#p+x3APF([C ]C"itCC(GHPHF%$ C4G#DDD"\H`|HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0,DB<`Hx00$@n`- 0( `M72]`< `;$ `:_ `- ``atanatan2fabssinsqrtgnominvgnominvintptitletsincosradiuscenloncenlatoffsetpadjust_lonasinz_fpdata F!F,3;BIPXcigoodfor.o 1074015668 1032 20 100644 15792 ` -@P PpP@.textPh( .rconstPP .xdataH @.pdataX .dataPh @.litaPPp 8 .sbss.bss'@##^(=@<`]"@\`}C|`d`x`ݤ p܍`(ǝx`0p<`80h\`=@Q`|`]Hrh`}P``X(Վ@VZc`ݦ`֞(@^^ ~(08ޜ@H^1^X^P~XXc P<Xc G? TG= P\Xc@ 4G4 tG2H|Xc`@Xc G&8Xc G0܍Xc G 4G@Xc G8\Xc@ G0|Xc` TG tG5 A u A@ A` A!A5!A!M`C0XcX}@[k'䃽#\\\P}@[k'ȃ#(@ XcYcX(=\P}@[k'4#<@Xc`\ }@[k' #hh[<@Xc`^ @Yc@YcP^&!M`Cc0XcX}@[k'#\!M`C`(=!A%Xc`>\H}@[k'l#`>@ XcYcX(=AJFYcP^BG^>^^ ~(08ތ@Hp#k?_ ?;f?)d?-DT!?|=-DT! @UJW?MJWֿɠ]y̛iMJWy̛i?IA5@MJW?@-8R_^~ ^(~08^1^ G Gh=h<@XcXc h]B`|JKYcXc@ G_ TG] h}`LYcXc 4GP tGNhčXNYcXc#hEP|RSZcXc@ G:hݤHTZcXc G/hǎ@VZcXc G$ 4G"hP@ XcXch]B0|JKYcc Xcc\P}@[k'#<Xc rc\H}@[k'膽#\!M`C H>h=A(|JKYcP^B\@}@[k'#P>@ Xc`XcH^@Yc k lYc` J BXcHBXc8}@[k'8#H> Xc\c Xcc\P}@[k'#<Xc .c\H}@[k'؅# Nh=!aXc* P}@[k'#<Xc 00=1"(}@[k'x#G P}@[k'\#< Xc@@P}@[k'4#<Xc!M`C@H^h=aP~ @}@[k'섽#P>@ Xc`XcH^@Yc@@ }@[k'# !M`C!+ K|*jYcLYc @ ܍ YcYc 0^  + \2Zc k`tZc` ð5 A ܎Zc`Zc óU A`+`\:[c k|[c` öu A`܏[c <Xc ù A k lYc`KP܍NYc@ qá A PYc H\Zc aä A+ 4Zc kP܎vZc` Qç APZcH\Zc Añ!A +H<[c k@܏~[c` 1ô5!A@<[c  Xc !÷U!AkH܍nYc`K@OYc@ úu!A@@\Yc Zc G^>^~ ^(~08`#k?GT! @|=-DT!?-DT! @GT! )d?;f?_ ?UJW?MJWֿɠ]y̛iMJWy̛i?IA5@MJW?@-8R_ ^~0H=H]"(^aAYc|+XcH}# HH(ލHݤ0ƝH=1"H] R"8}@[k'#("x}@[k'h#0p}@[k'T#((=1"h}@[k'8# `}@[k'$#X}@[k'#H(H=0!P}@[k'#G^@#k'؂##^PH>@^8~H=P>0 Xc@}@[k'#0H(>" ^"8}@[k'|#00}@[k'h#H@(~JKYcH] LYcލLYc LYc^HoZc>/Zc ((= 1" }@[k'#4GDH=< XcH]B~*KYc` XcH}(XHލMYc MYc`0}@[k'\#`>@ XcX^@Yc@H=0aH]LYcH} Í(NYcH >PZc^PZc.YcLYc lYc8gG^p#k?GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Point cannot be projectedgvnsp-forp, 04 8H LX \d hp t|                  $( ,, 0Hh l|         , 0 48 <<@P TX \h l            H   08@HPX` hp x   k "h,x%%0X-(1 E&- gvnspfor.clon_centerRpsin_p15cos_p15false_eastingfalse_northinggvnspforintrhcenter_longcenter_latfalse_eastfalse_northgvnspforlonlatxydlonsinphicosphicoslongksp/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK #+9HF TCVCXCdCoCzC(G<HHHHHFCCCC GDDDDDDHp$H HK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t @.HHRpMjX-"!@n!`-)2( `V92]`< `;- `:h `- ``cossingvnspforgvnspforintp_errorptitletsincosradiuscenloncenlatoffsetpadjust_longenrpt_fpdataHF F%,4;BIQ\cgvnspinv.o 1074015669 1032 20 100644 15064 ` -@P P@.text(X .rconst  .xdata(@.pdata8.data  H@.lita.sbss00@'##^^0(> ^s^0h=h]"(^aAYc|+Xch}# hhEhݤލhǝB\h=1"h]R"@}@[k'䅽#X"}@[k'̅#0}@[k'#(X=1"}@[k'# }@[k'#B\x}@[k't#hh=!p}@[k'T#G^^@#k'8##^>^~ (0ޜ^1^ GX~h=&Xch]"%XcJXcKXcKYc`}@[k'#\h cXch=A|"KYch] YcPPލpNXc`}@[k'\#`Xc XX=1"P}@[k'4#tGh=`AcXcP^A*Xca"Xc|0aYc`}@[k'䃽#`>  XcjCXckbXc KYc` Xc@@H}@[k'#HH@>"8^"@}@[k'#h \8}@[k'`#<Xch@X>AG8~h}KlYc@MXchōMYcmYcmYcH}@[k'䂽#Xh=8}@[k'Ă#<"XcB\8}@[k'#<Xc*h@@@h=a`~1\\0}@[k'X#`> Xc(}@[k'<# GSh=!`>0\\0}@[k' #`>0 Xc(}@[k'# G@8>`>h]Bh^X~ }@[k'#h>@ Xc`^"@YcB\8}@[k'#<Xc \8}@[k'd#<XcGh=A`^@~KXch}PlYcQDXc0}@[k'#`> Xc(}@[k'쀽# G^>^~ (0ތp#k?-DT!?|= GENERAL VERTICAL NEAR-SIDE PERSPECTIVEHeight of Point Above Surface of Sphere: Input data errorgvnsp-forx`0 48 <L P\ `h lp t|               $ (, 04 88 <X         , 004H L PT XX\l p       ( ,,08 <L Ph l           0 448L PP Th l|        $ ((,4 8P Th l      X         ( x} :84`--x8`5@9 E &/ #/#/O? gvnspinv.clon_centerlat_centerRpsin_p15cos_p15false_eastingfalse_northinggvnspinvintrhcenter_longcenter_latfalse_eastfalse_northgvnspinvxylonlatrhconcomzsinzcosz/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK00 8@"H$P&X.`6hDSF _CaCcC"ozCC,G HHXSHXF&% C8G$#_"DDDD\HH0HK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,",KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  @-HXV|pM`5:#x@n#`-+4( `X;2]`< `;/ `:j `- ``atan2fabssinsqrtgvnspinvgvnspinvintp_errorptitletsincosradiuscenloncenlatoffsetpadjust_lonasinzgenrpt_fpdata XF0F)18@GNU]hnuhamfor.o 1074015670 1032 20 100644 11576 ` -@ P ` `.text`((G .rconst`` .xdatapp@.pdata .lita` .sdata.sbss '##^ >^~ @=>@]"^@}C~@dh`}@[k'$# X}@[k'#P}@[k'#@@=!H}@[k'܁#G^0#k'ā##^^80>(^ ~@=8>0 Xc8}@[k'#@@|BKYc00}@[k'T#@[c^pAYc0}@[k',#@>@ Xc\ Xc(}@[k'#`@Xc@@>^*Xc@>00}@[k'Ā#@>@ Xc@[c~pjYc }@[k'#@>@ Xc@Xc(@=A0 }@[k'X#>@ Xc@Xc G^^P#k?>ef? h`HAMMER$ (0 4< @H LP T XX\h llp|          $ ((,L PPTh lx ||      $$(        N h (0 +(0, D / hamfor.clon_centerRfalse_eastingfalse_northinghamforintrcenter_longfalse_eastfalse_northhamforlonlatxydlonfac/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK %4F >C@CLCWC GH4HPcFjCnCrCtC$G`vD{DH cHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0)> /PBU(@n`-)( `02]`< `; `:, `-f ``cossinsqrthamforhamforintptitleradiuscenlonoffsetpadjust_lon_fpdata FFP%,3;Fhaminv.o 1074015670 1032 20 100644 11584 ` -@ P  .text(HG .rconst .xdata@.pdata .lita`8 .sdata8.sbss   '##^ >^~ 8=>8]"^8}C~8d`X}@[k'D# P}@[k'0#H}@[k'#88=!@}@[k'#G^0#k'䁽##^^~^1^(^ ~8=#`Xc8]""AXc8}C|JKYc8JLYcMcXc܉mYc*MYcOBXc0OYc0}@[k'<#[c`Xc8@0^~PkXc8= Yc8]LYcNcXcnYc,YcQBXc1Yc(}@[k'#Xc0> Xc }@[k'#(>AAXc8=Aa*Xc8]bp+Xc}@[k'H# G^^~@#k@0HAMMER$ (0 4< @H LP T XX\h llp|           4 8\ ``d       0 4@ DP TT X        R x (@ +(8, D  /haminv.clon_centerRfalse_eastingfalse_northinghaminvintrcenter_longfalse_eastfalse_northhaminvxylonlatfac/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKp  (08%4F >C@CLCWC GH4HPcF#j"lnCrC(GPvDH cHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0)> / @BT(z@nz`-(( `/2]`< `; `:' `-a ``atan2sqrthaminvhaminvintptitleradiuscenlonoffsetpadjust_lonasinz_fpdata FFP#*19DJimolwfor.o 1074015671 1032 20 100644 14008 ` -@8P pP.texth( .rconstx .xdataH@.pdataX.data`h@.lita```x .sbss.bss`'P##^ =^^ ~(08ޜ@^1^X^P~$`XcX<Xc G;P\Xc@H|Xc `@Xc8Xc 4G% TG#`܍Xc0Xc tG0\Xc@H|Xc `@Xc(Xc G G!MXC0XcP}@[k'P#H\\H}@[k'4# @ XcXcX =A|GKYc\H}@[k'#@XcPG^>^^ ~(08ތ@p#k?;f?)d?-DT!?|=-DT! @ˡA5IA5@ky]/-DT! /-DT! @f? f?֠yJW?^@T\n?2 ާE؎W@T\nĿ^֠yJWֿIA5CT!?d8R࿥ω@-8R?? INTERRUPTED MOLLWEIDE EQUAL-AREAIteration failed to convergeIntMoll-forward(  $( ,0 48 <@ DH LP TX \` dh lp tx |                  $( ,8 <@ DH LLP\ ``d|       0 4T Xh l       $ (< @@D` ddhp t         4 @ DH Ll ppt      |   `hpx DK A1H*H*x525RCGE*##0J##0:@/`] imolwfor.cRlon_centerfeastimolwforintrimolwforlonlatxydelta_lonthetadelta_thetaconiregion/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK #F0(+C!GpH`|H@|-FP&6!%:!>Cq@Cq@G`BD!$L!#R!"^! b d\H-HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,/@, ,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t (F| _pJ2AkD@nk`-)/ `09]`< `; `: `-R ``cosfabssinimolwforimolwforintp_errorptitleradiusadjust_lon_fpdata | FF@"*18Cimolwinv.o 1074015671 1032 20 100644 13832 ` -@P pp.texthh .rconst .xdata``@.pdatapp.data0@.litaP x .sbss.bss`'##^@=<8]"\8}C|8d88ݤ܍8ǝ@^^ ~^0> G(~0@=!`\A*XcaXc G$@]bXKlYckXc` 4G TG@}P܍MYcmXc tG @H\OYcoXc G G!M8Ce#sXc@ݤ@TZc0ގpZc0}@[k'샽#\!M8C 8>@=A8|JKYc@^B\(}@[k'#@>@ Xc``Xc8^@Yc }@[k't# BXc8>BXc}@[k'L#8> Xc0\p Xc0}@[k' #( *(\*Xc j lYc` iã5 A` ܍Yc(Yc *\2Zc j(tZc` MèU A܎Zc(Zc =òu A@*(\:[c j|[c` -õ A܏[c (\ Xc *,Xc j(܍nYc` ú A@Yc(\Yc G^>^^ ~P#kˡA5IA5@ky]ɠ] f?֠yJW?-DT! @)d?;f?~f?=k8}+=k8}+?~f^@T\n?2 ާE؎W@T\nĿ^֠yJWֿIA5CT!?d8R࿥ω@-8R? INTERRUPTED MOLLWEIDE EQUAL-AREA@  $( ,0 48 <@ DH LP TX \` dh lp tx |                  $( ,8 <@ D HHLX \\`x       @ DH Lt        $ ((,L PPTh lx ||        $H L` d      8 <P T p t x x |  dwC 41X))4105RCGD )I%- Nimolwinv.cRlon_centerfeastimolwinvintrimolwinvxylonlatthetaregion/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK@ #@F0(+C!GlH`xH@x-FP#6!8C! :q>Cq0G "B! HH-HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,/@, ,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t &Dx ^ PFn14Od@nO`-%/ `,9]`< `; `: `-6 `c`asincossinimolwinvimolwinvintptitleradiusadjust_lon_fpdata x FF@")0;lamazfor.o 1074015673 1032 20 100644 12584 ` -@h P  0 .text (H] .rconst  H .xdata00X@.pdata@@h .dataPP`x@.litap .sbss  0'##^( >^~(H= >H]"^H} C~H(dH=1"H]R"8}@[k'0#0"p}@[k'#(h}@[k'# `}@[k'#X}@[k'܂#H H=(!P}@[k'#G^0#k'#P#^>^~H=>0 Xc@}@[k'h#x`>"X^"8}@[k'H#xp>"h^"8}@[k',#H`>@XcH]BX~JKYchJLYc XcPPލYcHYc"0=(}@[k'#"0=01" }@[k'#4G:H=@ XcHX^H~JjYcpJLYcH] MYc~CHč`NYcHݤX>PZch^PZc.YcH~NnZcH(Yc>ѝG^#k?LAMBERT AZIMUTHAL EQUAL-AREAPoint projects to a circle of radius = %lf lamaz-forward p ( ,4 8@ DL PX \` dh llpx |           0 44 8P TTXl ppt|            $, 0P TTX     @ D  H L     i # +(X$X$ / ,/ E)/ lamazfor.clon_centerRsin_lat_ocos_lat_ofalse_eastingfalse_northinglamazforintrcenter_longcenter_latfalse_eastfalse_northlamazforlonlatxydelta_lonsin_delta_loncos_delta_lonsin_latcos_latgkspmess/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK  (08#@-H;JF(VC XCdCoCzC$GHJHpFCCCC GDDDDDDDXD! HPHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,/;KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0+B?PFf ,#!@n!`-J2. `w98]`< `;N `: `- ``sprintfsqrtlamazforlamazforintp_errorptitletsincosradiuscenloncenlatoffsetpadjust_lon_fpdata FFp"*19@GNValamazinv.o 1074015674 1032 20 100644 13848 ` -@XP p @p.textp( .rconstpp  .xdata@.pdata.dataP@.lita(H.sbss@'##^^( >R^~(h= >h]"h}C^hD~heB\h=1"h]R"@}@[k't#X"}@[k'\#(}@[k'H# }@[k'4#B\x}@[k' #hh=!p}@[k'#G^^0#k'䃽##^>^~ (^1^ GH~h=%Xch]"$XcJXcKXcKYc`}@[k'p#\h !XcbaXc\JXc @XX=1"P}@[k'$#tGB\H}@[k'#Xc@@8>"0^"@}@[k'#h c\8}@[k'#<Xc|h@0~JKYch]8LYcLYclYcLYcH}@[k'\#Hh=8}@[k'<#<"XcB\8}@[k'#<Xc+0^P^h=aX~H^0}@[k'؁#X>@ XcP^"@YcD@h`P~8LXch]PYcQCXc(}@[k'|#P> Xc }@[k'`# +h=! h]BP^0\\(}@[k'(#P>0 Xc }@[k' # h=!P>1\\(}@[k'#P> Xc }@[k'Ā# h=!H^"G^>^~ (`#k?-DT!?|=  LAMBERT AZIMUTHAL EQUAL-AREAInput data errorlamaz-inversexp, 08 <@ DL PX \d hl pt xx|             @ DP Tx ||          ( ,,08 <L P` d        < @T Xl ppt           $ (( ,< @        (08@HPX` h p x  v -@0)) 404 E &'// /#lamazinv.clon_centerlat_centerRsin_lat_ocos_lat_ofalse_eastingfalse_northinglamazinvintrcenter_longcenter_latfalse_eastfalse_northlamazinvxylonlatRhzsin_zcos_ztemp/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK "$.8FUF(aC cC"ozCC(GH UH F%$ C4G#DDD"DH`dHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0.F C<`Jr0-@n`-*0( `W72]`< `;. `:i `- ``atan2fabssinsqrtlamazinvlamazinvintp_errorptitletsincosradiuscenloncenlatoffsetpadjust_lonasinz_fpdata  FF)18@GNU]hnmerfor.o 1074015675 1032 20 100644 13528 ` -@P  P0.text( .rconst  .xdata@.pdata.dataP@.lita@@h.sbssP'0##^^80>(^s^ 80=0>0]"(^0}C0D~0e 0ݤ 00ȍmYcގOYcX/Zc00=}@[k'l#0B\}@[k'P#@0 H>B\8}@[k',#H>@ XcHB\8}@[k'#H>@ XcX\0@Yc}@[k'܂#@>` Xc0H"}@[k'#00=!x}@[k'#0p}@[k'x#0h}@[k'`#0 0=!`}@[k'@#G^^P#k'$##^^80>(^ ~0P}@[k'#<0XcP}@[k'ԁ#<Xc HH=01"@}@[k'#G>08}@[k'#00>^(}@[k'd#0 @0=A0]bJKYc@^0}80Yc }@[k'#@>@ Xc@Xc(0=A0]B0}cJKYc@^}@[k'Ā#@>@ Xc @Xc G^^P#k?|=-DT!?  MERCATORTransformation cannot be computed at the polesmer-forward0 4< @H LP T\ `h lp tx |          $$(< @L PPTh lp tx ||               4 88<D HT XX\d hx |           < @D HL Pd hhl      @HPX `hpx     p %/''2/X3 &E &E merfor.cr_majorr_minorlon_centerlat_origineesm1false_northingfalse_eastingmerforintr_majr_mincenter_loncenter_latfalse_eastfalse_northtempmerforlonlatxytssinphi/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK %0258GUF_CeCkC"vCC,G@DH UH FCCCC$GDDHHPHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  P)J POg/% @n `-(1( `U82]`< `;, `:g `- ``cosfabslogsinsqrtmerformerforintp_errorptitletsfnzradius2cenlonmeroriginoffsetpadjust_lon_fpdata   FPF'/6<DNU]hmerinv.o 1074015676 1032 20 100644 12800 ` -@xP 0P0`.text0(q .rconst00X .xdata@@h@.pdataPPx .data``@.litappp .sbssP'`##^^80>(^s^ 8(=0>(]"(^(}C(D~(e (ݤ((ȍmYcގOYc0/Zc((=x}@[k'#(B\p}@[k'#@( H>B\h}@[k'\#H>@ XcHB\h}@[k'8#H>@ Xc0\0@Ycx}@[k' #@>` Xc(`X}@[k'䁽#((=!P}@[k'ā#(H}@[k'#(@}@[k'#((=!8}@[k't#G^^P#k'X##^^01^(^ ~(]0>  Xc0(}C"JXc+B\((LYcplYc }@[k'܀#(>^"}@[k'# > (}#(D(eJKYc0jYc*Xc}@[k'\#(G^^@#k? MERCATOR 0`0 4< @H LP T\ `h lp tx |          $$(< @L PPTh lp t xx|            0 4H L\ `d h|          P T  X \ p x    c $h,0%0%0H0,0 &D  merinv.cr_majorr_minorlon_centerlat_origineesm1false_northingfalse_eastingmerinvintr_majr_mincenter_loncenter_latfalse_eastfalse_northtempmerinvxylonlattsflag/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK %0258 GUF_CeCkC"vCC,G@DHUHF C"CC$GDD!H HPHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  P)J@Oe,$ @n `-&1) `S83]`< `;* `:e `- ``cosexpsinsqrtmerinvmerinvintptitleradius2cenlonmeroriginoffsetpadjust_lonphi2z_fpdata FPF")1;BJU[millfor.o 1074015676 1032 20 100644 11192 ` -@ P  .text(; .rconst .xdata@.pdataX.data (@.lita  `H .sbss '##^ >^~ 8=>8]"^8}C~8d`X}@[k'# P}@[k'#H}@[k'#88=!@}@[k'l#G^0#k'T##^( >^~8=(>0 Xc0}@[k'#8@8=aKlYc KYc^B8}08č8ޝ oZc<Yc(}@[k'#\ }@[k'#8>@ Xc\@ Xc0~`YcG^@#k? @-DT!?MILLER CYLINDRICAL$ (0 4< @H LP T XX\h llp|         0 4< @H L\ `l ppt        (08@HPX`hp tK  &hh0 x*'*D  millfor.clon_centerRfalse_eastingfalse_northingmillforintrcenter_longfalse_eastfalse_northmillforlonlatxydlon/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKp &5F @CBCNCYC GH5HPeFmCqCuCwC GPyDH eHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0)= /@AQ'~t@n~`-(( `/2]`< `; `:+ `-e ``logtanmillformillforintptitleradiuscenlonoffsetpadjust_lon_fpdataFFP")08Cmillinv.o 1074015677 1032 20 100644 11176 ` -@ P  .text(; .rconst .xdata@.pdataX.data (@.lita  `H .sbss '##^ >^~ 8=>8]"^8}C~8d`X}@[k'# P}@[k'#H}@[k'#88=!@}@[k'l#G^0#k'T##^^ 1^^~8= >  Xc 8]B"JXc8}c8 lYclYc0}@[k'܀#8=!aAXc\p*Xc(}@[k'#\ }@[k'#< Xc\@ XcG^^0#k @?-DT!?MILLER CYLINDRICAL$ (0 4< @H LP T XX\h llp|         , 004D HT Xd hhlx ||        (08@HPX`hp tL  &XX0 h*'*D . millinv.clon_centerRfalse_eastingfalse_northingmillinvintrcenter_longfalse_eastfalse_northmillinvxylonlat/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK` &5F @CBCNCYC GH5HPeF mC"oqCuC$G@H eHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0)= /0AR'yt@ny`-'( `.2]`< `; `:& `-` ``atanexpmillinvmillinvintptitleradiuscenlonoffsetpadjust_lon_fpdata FFP#*19Dmolwfor.o 1074015677 1032 20 100644 12392 ` -@ P  .text(H_ .rconst08 .xdata@@h@.pdataPPx8 .data``P@.litap .sbss   '##^ >^~P=>P]" ^P}C~Pd("p}@[k'@# h}@[k',#`}@[k'#PP=!X}@[k'#G^0#k'##^>^~ (PH>@^8~P=P>0 XcH}@[k'#0HH@}@[k't# P]B|EKYc\@}@[k'܀#@XcP Xc8>G^>^~ (`#k?;f?)d?-DT!?|=-DT! @  MOLLWEIDEIteration failed to convergeMollweide-forwardp $ (0 4< @H LP TX \\`l ppt          $ ((,4 8L PPTp ttx         $0 4H LP Tp ttx      P T  X \    X (+##@.+H/E @/ 3]molwfor.clon_centerRfalse_eastingfalse_northingmolwforintrcenter_longfalse_eastfalse_northmolwforlonlatxydelta_lonthetadelta_thetaconi/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK  (08&5F @CBCNCYC GH5HPeF mCqCuCwC4GyD$#" !0H PeHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0%9 0<`=f+(@n`- ,) `633]`< `;  `:H `- ``cosfabssinmolwformolwforintp_errorptitleradiuscenlonoffsetpadjust_lon_fpdata  FFP (/6=EPmolwinv.o 1074015678 1032 20 100644 12144 ` -@ P  @.text([ .rconst0 .xdata  H@.pdata00X .data@@h@.litaPPpx .sbss '@##^ >^~H=>H]" ^H}C~Hdph}@[k'䂽# `}@[k'Ђ#X}@[k'#HH=!P}@[k'#G^0#k'##^>^~0(> G ~H=0>  Xc0H]B(~*jYc(^H} LYc(ލbYcB\@}@[k'#<Xc\B\8}@[k'ȁ#\H 8>H=A|JKYc@^c\0}@[k'#@>@ Xc0^`@Yc8~`Yc(}@[k'T# )\*Xc |iYc܍ɝcXc8cXc }@[k'䀽#8> Xc\b XcB\@}@[k'#<Xc\B\8}@[k'# G^>^~P#k?-DT! @-DT! )d??;f? MOLLWEIDE@$ (0 4< @H LP T XX\h llp|          $@ DDHP Td hp ttx          $4 8T XX\p t     0 4  8 < PX`h px  U x *H"" -*P.D [ molwinv.clon_centerRfalse_eastingfalse_northingmolwinvintrcenter_longfalse_eastfalse_northmolwinvxylonlatthetaarg/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK &5F @CBCNCYC GH5HPeFmCoC quC,G`#y"H ,eHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0$8 / P<W*@n`-)( `02]`< `; `:0 `-j ``asincosfabssinmolwinvmolwinvintptitleradiuscenlonoffsetpadjust_lon_fpdata FFP%,3:BMobleqfor.o 1074015678 1032 20 100644 14624 ` -@(P @P@.text@ .xdata@@(@.pdataPP8.data```H@.litapH.sbss00P'##^0(> ^~0@}((>@$ ^@E~@ݤf@ @@ލ@@НH@=Hxp}@[k'#@(h}@[k'#@`}@[k'섽#@X}@[k'Ԅ#@x=1"P}@[k'#@ x=01"P}@[k'#@x=H1"P}@[k't#@@@=H!H}@[k'T#@@=01"@]8R"8}@[k',#G^@#k'#`#^^~>^x~@=>  XcpX>"P^"8}@[k'#ph>"`^"8}@[k'#@0X>@Xc@]8BP~JKYc`JLYc Xc0}@[k'T#HP^h~PKYc@]8XLYc@0čPNYc`>NYc1Yc(}@[k'#@ Xc@@8>"0^"8}@[k'Ă#[cH>p Xc }@[k'#Xc8>AXc(>0^JXc ^[c(pYc}@[k'T#\[c ^aAYc>c\}@[k'$#>@ Xc cXc@`pKYc}@[k'쁽#>d Xc\}@[k'́#\@ @=(AA*Xc> BXc@] plYc }@[k'#>@ Xc@@@ Xcx>@]b@}(KlYc~ cXc@čpYc }@[k'#>@ XcB\}@[k'#>@ Xc BXc@ `pKYc}@[k'#>` Xc@H@ Xc>G^^~#kOBLATED EQUAL-AREAParameter m: Parameter n: Theta: 0`, 08 <D HP T\ `h lt x                     $ (, 04 88 <D HL PT XX \d hl pt x|       , 0T XX\x |       T XX\       $ ((,@ DX \` d|       P T  X \       ( PKh 5p3@@,@,P737 DY &  obleqfor.clon_centerlat_othetamnRsin_lat_ocos_lat_ofalse_eastingfalse_northingobleqforintrcenter_longcenter_latshape_mshape_nanglefalse_eastfalse_northobleqforlonlatxydelta_lonsin_delta_loncos_delta_lonsin_latcos_latzAzsin_Azcos_Aztempx_primey_primeMN/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK0 8@H#P%X'`)h3p=xKZF fChCtCCCC0C8C(G`H@ZHF CCCC,GDDDDDDDDD$ DD#"!HHpHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,-,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  @(Mg`hOv35#.P@n#.`-?( `F2]`<Y `; `: `-  `7`acosasinatan2cossinobleqforobleqforintptitletsincosradiuscenloncenlatoffsetpgenrpt_fpdata Fp!F-4<CJQY`obleqinv.o 1074015679 1032 20 100644 14840 ` -@P P.texth .xdatah@.pdatax.data`@.lita.sbssP'##^0(> ^~0H}(>H$ ^HE~HݤfHH@ލHНHH=񝀀x}@[k'\#Hp}@[k'D#Hh}@[k',#H`}@[k'#H=1"X}@[k'#H=01"X}@[k'Ԅ#H=H1"X}@[k'#HH=!P}@[k'#HH=1"H]R"}@[k'l#G^@#k'T#p#^^~x>p^h~H=>  XcH]Bx~*jYcx^H}[clYcHčHNYcx^pNZc@}@[k'#>B XcH@H=aJKYcjYc^ BXcH]pYc8}@[k'X#>@ XcB\8}@[k'4#>` Xc@H@[cjKYc^@@}@[k'#>C Xcc\0}@[k'Ԃ#Xc8B\0}@[k'#XccXcH@p*Xc8}@[k'#>@ Xcc\8}@[k'\#>` Xc08^8~JKYc00LYcLYc(}@[k'#[c`Xc@@@}@[k'쁽#Xc`80> }@[k'ȁ#HH@H~*jYc(^( >"^"}@[k'#`X>"P^"}@[k't#HP>@XcH]BX~JKYcJLYc Xc@}@[k'(#hH=!>X^ ~PKYcHPLYcHݤƍXNYc>NYc1Yc }@[k'#> Xc}@[k'#pG^^~#kOBLATED EQUAL-AREAParameter m: Parameter n: Theta: , 08 <D HP T\ `h lt x                   $ (, 04 88<D HL PT XX \d hl pt x|      4 88<P TX \      4 88<X \h llp     $$(4 8X \\`t xx|       0 448L PP T        (08@ HP X ` hp `<s 4 4,,84x8 DY  obleqinv.clon_centerlat_othetamnRsin_lat_ocos_lat_ofalse_eastingfalse_northingobleqinvintrcenter_longcenter_latshape_mshape_nanglefalse_eastfalse_northobleqinvxylonlatzsin_zcos_zAztempx_primey_primeMNdiff_anglesin_diff_anglecos_diff_angle/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK #%')3=KZF fChCtCCCC0C8C(G`H@ZHF CCCC(GDDDDDDD#"DDDHHpHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,+,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  @*Ogp xQw44,`@n,`-=( `D2]`<J `; `: `- `(`asinatan2cossinsqrtobleqinvobleqinvintptitletsincosradiuscenloncenlatoffsetpadjust_longenrpt_fpdata Fp!F-4<CJQYdkomerfor.o 1074015679 1032 20 100644 28504 ` -@(GP 0.text(( .rconstP8 .xdata``@.pdatapp8E.data@.lita@@hE.sbss'0#@#^^~ (ޜ08@>>^ s^h>h0^h=Q~h]rh} h(hՍhݦnYcޝގVZc6[chמh}@[k'H#hh=h=01"h]8R"}@[k'#hh=0!@Xch]0B@ Xc|'`Ych}0Yc}@[k'#hh=8\hP@|h=Xa`h]h}#h0DP}@[k't#\}@[k'\#\h@>AXch=8AJGYca*Xch]P"h}PchPKlYc+mYc*`hōhݤPhPhPOYc<0Yc}@[k'#XchPh=P!h]PBA*Xc|0+Xc}@[k'\##XchP`h=@!H}@[k',#@`XchX0x"}@[k'#hh=!}@[k'䐽#h0=1"}@[k'Đ#h(h= !}@[k'#eXc%eXc@XcP)]p}@[k'\#hPpXc}@[k'<#\B\}@[k'$#PPXc}@[k'#h@`Xc>  Xch=0\P*Yc0=1"}@[k'#h}@[k'#hx}@[k'#hX}@[k't#\Xcf<0XcX}@[k'<#XcYB\h=h1"h]pR"}@[k'#)]h=x1"h]R"}@[k'#h!h=Hh]@"eXch}PChPdJKYc0LYc}@[k'#h pXc8}@[k'`#@Xch`h=H!h]@Ba*Xc%!\h}PchPKlYc0mYc}@[k'#h pXc8}@[k'؍#@Xch`0"0=1"(}@[k'#4Gp}@[k'#Hh>H^P}@[k'd#xp}@[k'L#Hh>H^P}@[k'(#ph@ xH}@[k'#\h@ pH}@[k'茽#hhX c&Xc\jCYc*jXc|JKYcP^h=Xh]XLYchލNYc,Ych}XhXOYch>Q&ZcYclYc`h^2FZch~fZcrSZcX^$Zc(Xc ܎(YcXc Yc>$([c^H[c|E[[ch@\[cP[c}@[k't#`>@ XcX^p Xc8}@[k'L#h@ `Xc Xch=h]B~0jYc`}@[k'#\h@PXcp}@[k'䊽#PpXc8}@[k'Ȋ#\hPB\p}@[k'#PXc}@[k'# \0>P%Xc0=1"}@[k'`#0PXc0=(1"}@[k'4#0PYc0=H1"}@[k' #0PXc0=h1"}@[k'#0XcX}@[k'#Xc 0"0=1"(}@[k'#TGX}@[k'p#\Xc<0XcX}@[k'8#XcwhX}@[k' #0XcX}@[k'숽#Xc 0"0=1"(}@[k'#TGcB\h=h1"h]pR"}@[k'#)]h=x1"h]R"}@[k'h#h!h=Hh]@"eXch}PChPdJKYc0LYc}@[k'#h pXc8}@[k'臽#@Xch`!h=H!h]@Ba*Xc%!\h}PchPKlYc0mYc}@[k'#h pXc8}@[k'`#@Xch`G 0"0=1"(}@[k'(#TG^^~ (ތ08@>#k'#p#^^~ x1^p^h~\p}@[k'#`h@x~0jYc`}@[k'#0h@@0~PKYcp}@[k'd#H\X}@[k'L#<0XcX}@[k',#<Xch\`^P}@[k'#(hX@^h=@!(H}@[k'̅#>d Xc\jDYc*Xc|JKYc8^lYc XcLYcXhh8NYch=pH>P0Zc.YcX^bYch]@b0PtZc@}@[k'#PPX}@[k'#<Xc hH@h=@aJKYc0CLYc<h]Hh}pÍ8NYchhH>P0ZcYcP^pYc8}@[k'\#>@ Xch@@c XcP~`h=HLYch]@lYclXch}hChh"]hHPZchݤ@&cZcB\X}@[k'#<0XcX}@[k'#<Xc 00= 1"(}@[k'`#GDh=H<@Xc\*BYc| KXcpKYc }@[k'#>@ Xch@@` Xc@h=`a#kXch](h}@ލMYc YchxOoXc Ycphݤ h'QqXcZchxH@~RrZc0ZchG^^~ #k??@-DT! @Hz>|=-DT!?-DT!@-DT! cܥL@ OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-initPoint projects into infinityomer-for P T\ `h lt x                 $( ,8 <H LX \` dp ttx            8 <@ DH LLPX \l px |                , 0@ DP TX \` dp t            $ (( ,4 8< @D HHLT X\ `d hhlt x|           $$(0 4L PT Xd hl ppt|             $ (( ,8 <@ DH LL PX \h lp t              $0 448@ DP TTXh lt x|              $$(4 8@ DDHT Xd h|     $ ( 8 < H L \ `                      $ $ ( 4 8 D H H L ` d d h t x                                $ , 0 @ D H L L P h l l p x |                            $ , 0 < @ @ D L P ` d h l p t t x                              $ $ ( 0 4 @ D D H X \ d h l p                         @t xx|           $0 44 8D HP T\ ``dx |         $$(8 <<@H L\ `d h         < @H LT Xd hx ||            $ ((,@ DT Xd hl p     p t @ x | @HPX `hpx     GhOaaXHlPiHm&) " *#1U!*I&(GUJ,'5o'8! (( / Q/&/  omerfor.cr_majorr_minorscale_factorlon_originlat_origineesfalse_northingfalse_eastingsin_p20cos_p20blaldelusingamcosgamsinazcosazomerforintr_majr_minscale_factazimuthlon_origlat_origfalse_eastfalse_northlon1lat1lon2lat2modetempconcomtsts1ts2hljpdlonfggamasinphiomerforlonlatxysin_phitqusvlulvss/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK ( 3(>0@8C@RH`PhXp`shvpxx{}F(C CC)CC0C8C@CHC(XC`CLG@D' DDDD&DD!D$##(*D",1DH0@HP@8F@C%DHC!JC!0GpLDTDD$V#X[D"^aDdD#DDH8HPHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,5xH,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t @H/@u5p<x PifI@nfI`-Z) `a3]`< `; `: `-M  `z`atancosfabslogpowsinsqrttanomerforomerforintp_errorptitletsincostsfnzradius2cenloncenlatoffsetpadjust_lonasinzgenrpt_fpdata @#FP+FP6>EMS[biq|omerinv.o 1074015680 1032 20 100644 27856 ` -@hDP 00 .text0(( .rconst00PX .xdata@.pdataXB.data@.lita00XB.sbss' #@#^^~ (ޜ08@>>^ s^h>h0^h=Q~h]rh}hhՍhݦnYcޝގVZc6[chמhH}@[k'8#hh=h=1"h]R"Ѐ}@[k'#hh=!@Xch]B@ Xc|'`Ych}0YcH}@[k'#hh=<@}@[k'|#@Xch \!AYc`Xc| XcH}@[k'4#hh=h]"AXch}CA*Xc~A+Xca'Xch $hP}@[k'Б#Xc AXch=AJGYca*Xch]0"h}0ch0KlYc+mYc*`hōhݤ0h0h0OYc<0YcH}@[k'#Xch0h=0!h]0BA*Xc|0+XcH}@[k'D##Xch0`h=(h]"@}@[k'#@`Xch8}@[k'쏽#hh=!}@[k'̏#h= 1"}@[k'#hh=!}@[k'#eXc%eXc@XcP)]X}@[k'D#h0pXc}@[k'$#\B\}@[k' #PPXc}@[k'#h`Xc>  Xch=0\P*Yc=H1"}@[k'#h}@[k'#h}@[k't#hP}@[k'\#\Xcf<0XcP}@[k'$#XcYB\h=H1"h]PR"Ѐ}@[k'썽#)]h=X1"h]`R"Ѐ}@[k'ȍ#h!h= h]"eXch}0Ch0dJKYc0LYcH}@[k'h#h` pXcx}@[k'H#@Xch@h= !h]Ba*Xc%!\h}0ch0KlYc0mYcH}@[k'#h` pXcx}@[k'#@Xch@h"=1"p}@[k'#4GX}@[k'p#Hh>H^Ȁ}@[k'L#pX}@[k'4#Hh>H^Ȁ}@[k'#hh p@}@[k'#\h h@}@[k'Ћ#xh8 c&Xc\jCYc*jXc|JKYcP^h=8h]8LYcxލNYc,Ych}8h8OYcx>Q&ZcYclYc`x^2FZcx~fZcrSZcX^$Zc(Xc ܎(YcXc Yc>$([c^H[c|E[[ch\[cP[c}@[k'\#`>@ XcX^p Xcx}@[k'4#h `Xc Xch=h]B~0jYc }@[k'#\hPXcX}@[k'̉#PpXcx}@[k'#\h0B\X}@[k'#PXc}@[k'x# \0>P%Xc=1"}@[k'H#0PXc=1"}@[k'#0PYc=1"}@[k'#0PXc=1"}@[k'Ȉ#0XcP}@[k'#Xc "=(1"p}@[k't#TGP}@[k'X#\Xc<0XcP}@[k' #XcwhP}@[k'#0XcP}@[k'ԇ#Xc `"=x1"p}@[k'#TGcB\h=H1"h]PR"Ѐ}@[k't#)]h=X1"h]`R"Ѐ}@[k'P#h!h= h]"eXch}0Ch0dJKYc0LYcH}@[k'#h` pXcx}@[k'І#@Xch@!h= !h]Ba*Xc%!\h}0ch0KlYc0mYcH}@[k'h#h` pXcx}@[k'H#@Xch@G 8"=P1"p}@[k'#TG^^~ (ތ08@>#k'؅#p#^>^~ (0ޜ^1^x^ Gh=&Xch]"%Xc8h`DJXchXeKXc*KYcX^hݤ`LXchXMXcYch@ȍXch/]X^OYch= qpYc`}@[k'脽#\|kcYc kXcKlYch~hMYch= pYcX}@[k'\#@hP@@~JjYch=HPLYc LYchލbNYcB\P}@[k'#<0XcP}@[k'能#<Xch@x>A@@|ib^h܉mYc`h8區PXc<1"ZcpZcH}@[k'<#>p Xc`>@}@[k'#HhH>8^"8}@[k'# 8> 81h}#A$Xch Dp*Xc0}@[k'#`h@^h=PaPKYch]H@ލMYc0mYc`>(}@[k'`#h `Xc^ @Ycpp }@[k',#xG^>^~ (0ތ#k??@-DT!-DT!?|=-DT! @-DT!@-DT! cܥL@  OBLIQUE MERCATOR (HOTINE)Scale Factor at C. Meridian: Azimuth of Central Line: Input data erroromer-initLongitude of First Point: Latitude of First Point: Longitude of Second Point: Latitude of Second Point: Input data erroromer-initInput data erroromer-initInput data erroromer-init@0@P T\ `h lt x                 $( ,8 <H LX \` dp ttx            8 <@ DH LLPX \l pt x|               $ (4 8H LX \` dh lx |              $( , 00 4< @D HL PPT\ `d hl ppt|          ( ,,08 <T X\ `l pt xx|            $ (, 00 4@ DH LP TT X` dp tx |           ( ,8 <<@H LX \\`p t|              ( ,,0< @H LLP\ `l p     , 0 @ D P T d h                     ( , , 0 < @ L P P T h l l p |                              $ ( ( , 4 8 H L P T T X p t t x                           $ ( ( , 4 8 D H H L T X h l p t x | |                              ( , , 0 8 < H L L P ` d l p t x                          H           $0 448D H\ `p t         $0 448@ DT Xl p|           $$(D HT Xd hhlx |        H   08@HPX`hpx     Df(M^^Eifj&) # +#1T!*I&(GUJ,'5o'8! #F   omerinv.cr_majorr_minorscale_factorlon_originlat_origineesfalse_northingfalse_eastingsin_p20cos_p20blaltsdelusingamcosgamsinazcosazomerinvintr_majr_minscale_factazimuthlon_origlat_origfalse_eastfalse_northlon1lat1lon2lat2modetempconcomhlts1ts2jpdlonfggamasinphiomerinvxylonlatthetatvsusqsvlulflag/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK ( 3(>0@8C@RH`PhXp`shvpyx{~F CCC)CC0C8C@CHC(XC`CLG@D' D&DDDD!D$##(*D",1DH@HH`H8F&@%BDC! H!8GpLDRD DTD$W#Z\DD^D"adDH8HPHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,5xH,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t @H0Hu5p|fiI@niI`-Z) `a3]`< `; `: `-P  `}`atanatan2cosexpfabspowsinsqrttanomerinvomerinvintp_errorptitletsincostsfnzradius2cenloncenlatoffsetpadjust_lonphi2zasinzgenrpt_fpdata  %H)FP1F`<DKSYahoworthfor.o 1074015680 1032 20 100644 12688 ` -@ P  @ .text (8e .rconst  H .xdata00X@.pdata@@h .dataPP@x@.lita .sbss@'##^( >^~(X= >X]"^X}C~XdXX= 1"X](R"H}@[k'#0"}@[k'삽#Xx}@[k'Ԃ#Xp}@[k'#Xh}@[k'#XX=!`}@[k'#G^0#k'l##^PH>@^8~X=P>0 XcP}@[k'0# H0>"(^"H}@[k'# @}@[k'#X @0~JKYcX]((LYcލLYc LYc^8}@[k'#<Xc 00= 1"(}@[k'`#G6X=XX]"^A*Xc(~A+Xc`>  }@[k'#`>@ XcX^@Yc@X=aX]LYcX}(Í0NYcX (>PZc^PZc.YcLYc lYc8gG^p#k?|=ORTHOGRAPHICPoint can not be projectedorth-for( `( ,4 8@ DL PX \d hl pt xx|              4 8H LL Ph llp|           0 4< @d hhl     @ D  H L      j &+$$/p,@0 (Eorthfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthforintr_majcenter_loncenter_latfalse_eastfalse_northorthforlonlatxysinphicosphidloncoslonkspg/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK  ()088F@NVF(aC gCrC}CC$GHVHFCCCC GDDDDDDH`HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0&@EpEdp,& @n `-61( `c82]`< `;: `:u `- ``cosfabssinorthfororthforintp_errorptitletsincosradiuscenlonmeroriginoffsetpadjust_lon_fpdata  FF (/7>HOWborthinv.o 1074015681 1032 20 100644 14224 ` -@P @@.text( .rconst  .xdata@.pdata(H.data@8@.litaPPx.sbss@'@##^( >^~(`= >`]"^`}C~`d``=1"`]R"8}@[k'Ą#P"}@[k'#`}@[k'#`x}@[k'|#`p}@[k'd#``=!h}@[k'D#G^0#k',##^>^~ (^1^ GH~`=%Xc`]"$XcJXcKXcKYcX}@[k'#\` \*XcaXc PP=1"H}@[k't#4G`=p`Xc@}@[k'L#@@8>"0^"8}@[k',#` c\0}@[k' #<Xc`@H>AG0~`}KlYc8MXc`ōMYcmYcmYc@}@[k'#H`=0}@[k'p#<"XcB\0}@[k'L#<Xc*`@@@`=aP~1\\(}@[k'#P> Xc }@[k'聽# GQ`=!P>0\\(}@[k'#P>0 Xc }@[k'# G>0>P>`]BX^H~}@[k'd#X>@ XcP^"@YcB\0}@[k'8#<Xc \0}@[k'#<Xc`@P^8~KXc`]PlYcQCXc(}@[k'#P> Xc }@[k'# G^>^~ (`#k-DT!?|=Hz>  ORTHOGRAPHICInput data errororth-inv ( ,4 8@ DL PX \d hl pt xx|               H LX \            , 004< @P Tl p          $4 88<P TT Xl p       ( ,,08 <L Pd h|         PX` hpx     4w 2X1x**5826 (E &(#/#/O? orthinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p14cos_p14orthinvintr_majcenter_loncenter_latfalse_eastfalse_northorthinvxylonlatrhzsinzcoszcon/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK )8FNVF(aC gCrC}CC$GHVHF%$ C4G#DDD"H`HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0&@E<`Ev8224@n`-)0( `V72]`< `;- `:h `- ``atan2fabssinsqrtorthinvorthinvintp_errorptitletsincosradiuscenlonmeroriginoffsetpadjust_lonasinz_fpdata FF'/6>EOV^iopolyfor.o 1074015681 1032 20 100644 14640 ` -@hP p.text( .rconst .xdata@.pdata.data@.lita.sbssp'##^80>(^ ~8X=0>X]"(^X}C ~XdXHXݤPXǍXnYcޝގVZc6[cX8ОX=8}@[k'#X0X=8}@[k'܃#XX=8}@[k'#XX=8}@[k'#X X=8}@[k'|#X(X=X]"X} CX(dX8}@[k'<#X@}@[k' #XX=!x}@[k'#Xp}@[k'肽#Xh}@[k'Ђ#XPX=H!`}@[k'#G^@#k'##^^H@>8^0~X=H>0 XcP}@[k'X#\@H}@[k'@#<XcXP@X=aKbYc KYc8^BX}HXX@ōMYc,Yc0ޤ`@(>" ^"@}@[k'#XX=!X] BX}(c@8}@[k'#X0(> ^0}@[k'\#(^BJXcX=PaP~X]LYcXB\(}@[k'#X>@ Xc(^` XcP~`Yc8>X]HPX}XX@č.Yc`ޝB\ }@[k'#<  Xc^@@Yc(~` Xc`YcX@YcPލYc0>G^^p#k?Hz>POLYCONIC, 08 <D HP T\ `h lp tx |                $, 04 8< @@DL PT X\ `d hl pt x|                    (L P` dd hx ||           $ (, 08 <<@L P\ ``d|       $ (   (      ( 0 8 @HPX`hp $ +2(++(6h3P7 &D ) &0polyfor.cr_majorr_minorlon_centerlat_origine0e1e2e3eesml0false_northingfalse_eastingpolyforintr_majr_mincenter_loncenter_latfalse_eastfalse_northtemppolyforlonlatxysinphicosphiconmlms/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKp &147:=?BFUcF(nC tCzCCCC(GDHP(cH(FCCCC$GPDD"DDTHdHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,&,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t @(L(pQnh3+'$@n'`-F8( `s?2]`< `;J `: `- ``cosfabssinsqrtpolyforpolyforintptitletsincosmsfnzradius2cenlonmeroriginoffsetpadjust_lone0fne1fne2fne3fnmlfn_fpdata  (FF%,4:BLS[fkpuzpolyinv.o 1074015682 1032 20 100644 14072 ` -@P  ` P.text (( .rconst  H .xdata00X@.pdata@@h.dataPPx@.lita``X.sbss`'P##^80>(^ ~8@=0>@]"(^@}C ~@d@@ݤ@Ǎ@nYcޝގVZcH6[c@О@=}@[k'#@@=}@[k'l#@@=}@[k'L#@@=}@[k',#@@=@]"@}C@d@}@[k'삽#@xp}@[k'Ђ#@@=!h}@[k'#@`}@[k'#@X}@[k'#@@=!P}@[k'`#G^@#k'H##^ >(^0~^X>P^ G@=#`Xc@]"X^!AYcX>@}c@XlYclYc8B\8}@[k'#<Xc @@jjXc@=a KYcP^BJLBXc@mmXc@ōnnXcMYc YcH@ݤ@'@H@p@=@^"H^>B\0}@[k'#[c``88^@TG@>AaXc@Dp*Xc(}@[k'#` }@[k'#`>` Xc@@ Xc}@[k'\#PG^ >(^0~p#k?Hz>POLYCONIC(X P, 08 <D HP T\ `h lp tx |                  $, 04 8< @D HL PT X\ ``dl pt x ||          4 8D H\ `d h         $( ,0 48 <X \\ `        @ D  H L `h px     | +0@))H4h1H5 &D ) . 0polyinv.cr_majorr_minorlon_centerlat_origine0e1e2e3esml0false_northingfalse_eastingpolyinvintr_majr_mincenter_loncenter_latfalse_eastfalse_northtemppolyinvxylonlatalbciflg/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKP & 1(4078:@=H@PDXSaF(lC rCxCCCC(GpDH@aHF#CC ,G0"DDD!HHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,$,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  @(K pPph1+%@n%`-86) `e=3]`< `;< `:w `- ``fabssinpolyinvpolyinvintptitleradius2cenlonmeroriginoffsetpadjust_lonphi4zasinze0fne1fne2fne3fnmlfn_fpdata FF#+5<DOU[`ejotpsfor.o 1074015683 1032 20 100644 14200 ` -@P `p`.text`(x .rconst``  .xdata@.pdatah.data @.lita.sbssPPp'##^^PH>@^s^80P0=H>0]"0^0} C8~0(d00ݤlYc((ލ(NYc@܊.Zc0ǝ0}@[k'#00=}@[k'#0@>0=!0]B@@\0}C@|0d0B\}@[k'#8<0Xc}@[k'`#8<Xc&@\0@0=a0]KlYc ~ >"^"x}@[k'#0>^p}@[k'䂽#00=^ >}@[k'#0h`}@[k'#00=!X}@[k'#0P}@[k'h#80>H}@[k'P#G^^`#k'4##^^PH>@^8~0=X0]"P^0AYc(}@[k'聽#X>@ Xc00@H~JKYc(^( }@[k'#0(>^}@[k'#0@@0=a0]KlYcKmYc0}ÍbnYc ^ 0YcOYc0%bYc ^0ݤF ^BBZc0 }@[k'䀽#@@Xc0( Xc@>0]B*J] ~BKYc0}@[k'#@@Xc0 Xc8>G^^`#k?|=-DT!?  POLAR STEREOGRAPHICh`0 4< @H LT X\ `d h                 ( ,,08 <H LLPX \l pt x|                 $( ,, 08 <@ DD HX \\ `|         $$ (4 8@ DH Ld h|       ( ,   |         (08@ k 01x*x*5(25  #D   psfor.cr_majorr_minoresee4center_loncenter_latfacindmcstcsfalse_northingfalse_eastingpsforintr_majr_minc_lonc_latfalse_eastfalse_northtempcon1sinphicosphipsforlonlatxycon2rhts/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKP X`hpx!,7;?CGVdF mCsCyC"CC,GDDDDlHP|dH|F CCCC$GDDDDDHHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,),KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t `,Z|`^w(20*@n*`-?;( `lB2]`< `;C `:~ `- ``cosfabssinsqrtpsforpsforintptitletsincosmsfnztsfnzradius2cenlonoffsetpadjust_lone4fn_fpdata  |FF!(06<DKS^cpsinv.o 1074015683 1032 20 100644 14152 ` -@P p`p.textp( .rconstpp  .xdata@.pdata8.data @.lita.sbss```'##^^XP>H^s^@8X0=P>0]"@^0}C8~0d00ݤlYc00ލ0NYc@܊.Zcޝ(}@[k'#00=}@[k'#0H>0=!0]B@@\0}C@|0d0B\}@[k'#8<0Xc}@[k'x#8<Xc&@\0@0=a0]KlYc(~( >"^"}@[k'#0 >^x}@[k'#00= ^(>p}@[k'Ԃ#0h`}@[k'#00=!X}@[k'#0P}@[k'#@8>H}@[k'h#G^^`#k'L##^^~^1^@^8~0] `Xc0}#CXc0D*JXc0eBKYcLcXcMBXcYc(}@[k'#00@@0=a0KYc0]0}ÍMYckmYc(~ 00OZc0%1ZcoYc(0ݤFH^0(>^" }@[k'#H>@ Xc8> "0^ @0}c0KlYc@e1B\c\}@[k'# 0@ ~JKYc0=LYc}@[k'x#@G^^~P#k?|=-DT!?  POLAR STEREOGRAPHICxp0 4< @H LT X\ `d h                $$(0 4@ DDHP Td hl pt x|              $$ (0 48 << @P TT Xt        , 04 8T Xh l           0 4@ DD H   t         (08@HP o 4Xx1@*@*X515  #D  &0psinv.cr_majorr_minoree4center_loncenter_latfacindmcstcsfalse_northingfalse_eastingpsinvintr_majr_minc_lonc_latfalse_eastfalse_northtempcon1sinphicosphiespsinvxylonlatrhtsflag/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK` hpx)48<@DSaF(jC pCvC"|CC,GDDDDDdH@taHtF#" CC(GpDDDD!HHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,(,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  `+Zt P^~14)@n)`-?:) `lA3]`< `;C `:~ `- ``atan2fabssqrtpsinvpsinvintptitletsincosmsfnztsfnzradius2cenlonoffsetpadjust_lonphi2ze4fn_fpdata tFF&.4:BIQ\bgrobfor.o 1074015684 1032 20 100644 16208 ` -@xP p @.texth .rconstP8 .xdata  @.pdata0 0  H.data@ @  @.litaP P `  .sbss .bss P'@##^>( >^~(8= >8]"^8}C~8d8 `0 ݤ h܉ ȝ( p0 =  ]x܎ } Ӟ  (< ݦ6\ 0W| x =8 ]܏ }@۟ < =H!\ ]B| }Pc < X%\ ݤF| `g  h܍ =ѝx ]pp }h x`܎ ՞X ݦP H< 8@\ =Y8| ]z0 }( ܋ =  ] G !M @%\Q2Zc C$ 4 A"A`X}@[k'(#(P}@[k'# H}@[k'#88=!@}@[k'#G^>0#k'ą##^>^80>(^ ~8=8>0 Xc0}@[k'#\0~jjYcpLYc(}@[k'H#\@>H>H^["JXc8]b!Mb@ C!M@ C!M@ Cō-YcMMXc[cmYc YcPBXc!M@ C&!M@ CGRZc12Zc!MA Ch3ZcPZc[cpZc YcKlYcKuYc8Ў vYc(>q0K8]!MbB CX3!MB CXT!MB CXu:[[cZZXc[cz\[c:[c]BXc!MB CX֏!MB CXXc [c!MC CX8Xc@[c[c` Xc [c@[c܍@Xc[c`Xc8= Xc ^K8}[2R^!M@ CX`!M#@ CX!!MA@ CX14ZcQQXc[cp0ZcpZcLBXc!Mc@ CX!M@ CXĎZc5Zc!M@ CXe ZcKYc[ckwYc  ZcKKZc|K{Yc[ck|Yc8ݤF zYc gG^>^P#k@?-DT! @|=RFߑ? q?d]K?_vO?46:x> #!T D  !B !0 !@robfor.clon_centerRfalse_eastingfalse_northingprxlrrobforintrcenter_longfalse_eastfalse_northirobforlonlatxydlonp2ip1/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK # # # %# 4x 7;F0(EC! GC!SC!^C!$G jQlH|;Hp|lF`sC!wC!{C}C(GD!"! Q8HPLlHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,/@,x,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0+m|8Pq:Z@n`--/ `&49]`< `; `:8 `-r ``fabsrobforrobforintptitleradiuscenlonoffsetpadjust_lon_fpdata|F Fp$+3>robinv.o 1074015684 1032 20 100644 18240 ` -@#P  Pp P .text h- .rconst `H .xdata@ @ @.pdataP P h".data` ` p@.lita `8" .sbss0 0 .bssP P P'##^>( >^~(H= >H]"^H}C~Hd@888ݤ8܉8ȝ0888=(8]  ܎8}Ӟ8(8<8ݦ06\8W|88x8=8]@܏8}۟8H<8=!\8]PB|8}c8X<8%\8ݤ`F|8g8h8܍8=pѝ8]x8}xp8 h܎8՞`8ݦ(X8P<808H\8=Y@|8]8z88}08@܋8=(8]H G !M8@% \Q2Zc8C$ 4 A"A0"h}@[k'#(`}@[k'# X}@[k'|#HH=!P}@[k'\#G^>0#k'@#p#^>^^ ~(08ޜ@HP>p 1^h^`~H=p>  XcpH]B)*Yc )YcklYcH}kmYcX~ ܉XCYc\prXc@}@[k'x#\x^@ 4G GAM#@8CAAMA@8Cb'KYcAMc@8CAM@8C Yc,YcAM@8CōYcX@}@[k'#AM@8C *Xc Xc@YceXcdXcKXc XcLYc,YcKlYc܉+YcHXc ١5@A *5@A_00= 1"(}@[k'#TG5 x^x[Ycx^^^[( Yc E H]bAMb@8CAM@8CAM@8Cō-YcM Yc[cmYc YcPYcAM@8C&AM@8CGRZc12ZcAMA8Ch3ZcPZc[cpZc YcKlYcKuYc[cbvYcEH7^AM"B8CAMCB8C2AMaB8CS9:[cYYc[cy;[c[c\YcAMB8CAMB8CՏ[c=[cAMB8C[c@[c[c`Xc[c@Zc\@ Xc[cbXc/IXcMYc\mYcHwmYcmXc 4 A})A 0IXc@}@[k'#<Xc@ 0"0=1"(}@[k'x#TGT@`Xc`>H]"H}Cp~jjYcAM@8CAM@8CAM@8Cƍ-YcM Yc[cmYc YcPYcAM@8C'AMA8CHRZc12ZcAMB8Cp3ZcPZc[cpZc YcjLYc*Xch>1h^ }@[k',#hG^>^^ ~(08ތ@HP>#k4?@BRFߑ?h㈵>|=-DT! @ q?d]K?_vO?46^~  => ]"^ }C~ dH@}@[k'T# 8}@[k'@#0}@[k',#  =!(}@[k' #G^0#k'##^( >^~ =(>0 Xc}@[k'# @~JKYc0^ }@[k'#0>@ Xc @ Xc> ]b KlYc } mYcdG^@#kSINUSOIDAL$ (0 4< @H LP T XX\h llp|         $$(< @T Xh l       dE %H(%0)D sinfor.clon_centerRfalse_eastingfalse_northingsinforintrcenter_longfalse_eastfalse_northsinforlonlatxydelta_lon/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKp %4F >C@CLCWC GH4HPcFjCnCrCtC GPvDH cHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0&: /@>L%d@n`-(( `/2]`< `; `:- `-g ``cossinforsinforintptitleradiuscenlonoffsetpadjust_lon_fpdataF FP#*2=sininv.o 1074015685 1032 20 100644 11696 ` -@X P ` `.text`(XM .rconst`` .xdatapp@.pdata( .data@@.lita` .sbss00 '##^ >^~ @=>@]"^@}C~@d0"`}@[k'`# X}@[k'L#P}@[k'8#@@=!H}@[k'#G^0#k'##^>^0(> ^ G@=0>  Xc0@]B(~*jYc(^@}(lYc 8}@[k'#<Xc 00=1"(}@[k'T#G4 8}@[k'8#<"Xc^8}@[k'#<Xc@@@=A8^ }@[k'Ԁ#8>@ Xc0^`@Yc@Xc}@[k'# @=A ^BG^>^@#k|=-DT!?SINUSOIDALInput data errorsinusoidal-inverse`@$ (0 4< @H LP TX \\`l ppt       4 88<D HX \ `d hhl           $8 <         R  p(@!@! P,(,E &)/$sininv.clon_centerRfalse_eastingfalse_northingsininvintrcenter_longfalse_eastfalse_northsininvxylonlattemp/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKp0 8@H%4F >C@CLCWC GH4HPcF jClCnC r(GPvDH cHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0&: 0@>X({@n{`-(( `/2]`< `; `:( `-b ``cosfabssininvsininvintp_errorptitleradiuscenlonoffsetpadjust_lon_fpdata FFP")07?Jsomfor.o 1074015686 1032 20 100644 26880 ` -@=P ``P.text`((+ .rconst`` .xdata@@ h@.pdata`` ; .data@.lita``<.sbss'P#@#^>^~ (0ޜ8@>^~x>(^P~=qލmYc^oYcMYc |-mZcpަ$w[cX>8>>^[}[>à@|]Xr~~[\[c܏<[cP[c]p`LYcݤ`ƍLYcx /Ycp' \1QZcoYcH蝀Hp=HStZc 3uZc]Hr}pӎ 'Zcxx[c8p5[c9Y[cx~Yy[c\Xcy<[cݦ@6]Xc][cPph"`>"X^"P~"H"p"@`ތXh^PH~ 4G=*A0>[ph"`>"X^"P~"H"p"@`<@XcXcX^|JKYcXchLYcLXcPލNYcXcH^[p^h"`>"X^"P~"H"p"@``>XcXcX^X~ KYcXchh YcLXcPލPYcXcHH>ZcpXc T"A \p^h"`>"X^"P~"H"p"n@`XcX>Xch^JXcP~XcHlXcmXc܉nXcݤ ƝoOXcpXc(^~ (0ތ8@#k'##^>^^ ~(0> G G@P^=A~*jYc^8LXc8\0MXc0\H^ލ@ޝ@@(|] |@|'x}C|RSZc^Zc`4@y@ގXc`XcXc |`>Xc (|~ݤXFZC[c@~z[c^p}@[k' #h}@[k'#P>Xc@\~*jYc^ XލXc\`}@[k'#X>@ Xc(\@ Xc `XcX`KlYc@Yc\p}@[k'0#h}@[k'#@<Xc@\$Xcp` +Yc~HX}@[k'ċ#>@ Xc`@@ Xc\`}@[k'#h @Xc^@Yc~` XcP}@[k'P#\>Xch}@[k',#\h}@[k'#>  Xch}@[k'#P>Xc?4@>]&@ "H=@}@[k'#"H= 1"8}@[k'#GH`}@[k'p#hp@ |*jYc=hJLYchJMYc^]`ޝHp}@[k'#>@ Xc\`}@[k'#>@ Xc^ @Ycp`hKlYchKmYc ܉0Yc0}@[k'#>p Xc(}@[k'x#p[cp~jjYc LYcx^xX}@[k'8#\ }@[k'$#\`}@[k' #^~JKYc^X=`LYc\p}@[k'Ĉ#>@ Xc@@~JKYc LYc=HލMYc Yc]8>PZc \ZcMYcpMYc0}@[k'(#>@ Xcx=PA]PbJKYc}xxLYcLYc0}@[k'̇#@JEYc^=a~Xc`}@[k'#>@ Xc^@Yc `~PXc`}@[k'H#>@ Xc^@Ycx`KYckmYc  Xc ]NYcɝ(>PZcݤ0F^|PXc`}@[k'#>@ Xc^@YcP`KYckmYc Xc ]NYcʝ 8*G2Zc)p8ZcjG^>^^ ~(0p#k#^>^XP>H^@~8 G H<@Xc `}@[k'#00^0~BKYcX=`LYc` p}@[k'T#`>@ Xc`@@JBYc | KYc=HLYc Yc]8NYc YcLYcpLYc0}@[k'Ą#`>@ Xcx=8AJBYc | KYc]HLYc YcpLYc0}@[k'X#H A"Xc \*Xc=8aKbYc lYc]8MYc ܉ YcKmYca+Xc}X㍀hOYc!/Xc@Xc(P%ݤPFQ2ZcxgxStZc3Zc0}@[k't# P@(~JjYc=x]xLYc*LYc ލjNYcX~CX` Zcp}@[k'#`>@ XcPX>A`^iPlYcp}@[k'#`>@ XcH=xA]Pb( YcJKYc jMYc^ p}@[k'`#>@ Xc@I|PKYcp}@[k'(#>@ Xc8^>^p#k@@@?4BpApBABD-DT!?-DT!@-DT! @!3|@^8U)zj@-DT!?z!z!?Hz>Fߑ?& .>cܥL@)`@l?~CS?j\a0l?O)?5RFߑ?p= `@&?wO[?=? . SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without conv som-forward`(L PX \d hp t|          $( ,0 4H LX \h lx |                $ (, 04 88 <P TX \\`l pt xx|                $$(0 48 <@ DDHP Td hl px ||            $ (, 0< @L PT X\ `x |   <D H` d|           $0 48 <H LP T` d      ( ,D HL PX \d ht x|       < @ @ D T X X \ t x                 0 4 4 8 @ D T X d h l p                    $ 4 8 8 < X \ \ `                      $ ( 4 8 8 < X \ \ `                   $ ( ( , < @ @ D d h l p                  $$(< @D HL P\ `d h|       ( ,T Xl p      , 0      $ (4 8D HT Xd h           $0 4@ DP Tp tx |        H LLP|        $$( ` d  h l l p t `hpx    @ h>b8G8[8[8?fPc8gB  "! !QU&)&# # " F  E IA /somfor.clon_centeraba2a4c1c3qtwxjp21sacaessstartfalse_eastingfalse_northingsomforintr_majorr_minorsatnumpathalf_inlonfalse_eastfalse_northtimestart1flagsat_ratioialfe2ce2sone_esdlamfbfa2fa4fc1fc3suma2suma4sumc1sumc3sumbsomforlatyxnldelta_lonrlmtabstlamxlamcxlamtab2ab1xlampsavdsdsqsdtanlgxtantphidprlm2scltlampconvdelta_latradltradlntemperrorbufL230L240L250L260L300som_serieshsqfc/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK  (0"8%@'H)P+X.`2h5p8x;=CQ`F jCrCzCCCC0C8C@CHCPCXCHG0 (DD'DDDDDD&%$#"lH`H@ FCC 1 18GDxDp Dh*D`.D%3X8DP=D$?HED@ID8MD0SD(WD YD^DaDgDlDqDtDyD#}D"DDDDA E EtE E EH H@lNC1C1C1C1C1 1(G^D"YDDDHPHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK Hh</,4x^,/OmhKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t @P)b4<pl^p !Pcn@nn`-F2 `s<]`< `;J `:) `-2 `>`sprintfasinatancosfabslogsinsqrttansomforsomforintp_errorptitleradius2offsetpgenrptgenrpt_longgsat_ratio_fpdata #(,F@3F@=ELT\coAzsominv.o 1074015687 1032 20 100644 26992 ` -@?P `@.text(K .rconst .xdata00 X@.pdataPP x= .datapp@.litaPPx>.sbss'@#@#^>^~ (0ޜ8@>^~xݤ>x'^xH~xplYcލnYcLYc \,LZcx= ގxx՞$w[cxݦ4àBph>^[`|Z[[cX:[cPZ][cx}x[H@܏x^^[8xxLYcxݤƍLYcx /Ycx' \1QZcoYcxxpx=StZc 3uZcx]rx}ӎ 'Zcxx[cxx5[c9Y[cx~Yy[c\Xcy<[cxݦ6}[cx^Xc^[cx؟ph"`>"X^"P~"H"p"@`ތXh^PH~ 4G=*A0>[ph"`>"X^"P~"H"p"@`<@XcXcX^|JKYcXchLYcLXcPލNYcXcH^[p^h"`>"X^"P~"H"p"@``>XcXcX^X~ KYcXchh YcLXcPލPYcXcHH>ZcpXc T"A \p^h"`>"X^"P~"H"p"@`XcX>Xch^JXcP~XcHlXcmXcx܉nXcxݤƝoOXcxpXcx^~ (0ތ8@#k'쎽##^>^~ (0ޜ8@H>>^~Px=^$@Xcx]"P^"AYc^x}cxKlYc^cKXc GY&A c\c\p}@[k'$#\GYcx x=AB*Xcc\h}@[k'썽#B@Xcx A'Xc \*Xcx=aKgYc lYcx]MYc ܉ YcKmYcp+Xc`}@[k'd#@@Xcxx=!^aAYcx]bkXcx}KlYcxkmYc+XcxcXcp}@[k'䌽#@Xc"@XcxAAXc$Xcx]Œ\PjXcp}@[k'Њ#@Xc XcPXc@}@[k'#8}@[k'#^"DXc>!%XcAXc>^~JKYc^c\h}@[k'0#\X}@[k'#܌Xc#dXcp}@[k'䉽#^ތBFXc^x A$Xc \!AYcpXc8}@[k't#xxތ pxc\h}@[k'0# \h^c\h}@[k'#܈hޜ h$Xc\BXcp>AAXcx^!AYcx>x`KcYcx+YcX~x=X}@[k'#܌Xc!x $Xcx=A AG^>^~ (0ތ8@H>#k#^>^XP>H^@~8 G  <@Xc p}@[k'X#00^0~BKYcxx=LYc` h}@[k'#`>@ Xc`x@JBYc | KYcx=LYc Ycx]NYc YcLYcpLYc`}@[k'#`>@ Xcxx=AJBYc | KYcx]LYc YcpLYc`}@[k'#x A"Xc \*Xcx=aKbYc lYcx]MYc ܉ YcKmYca+Xcx}xOYc!/Xc@Xc(x%xݤFQ2ZcxgxStZc3Zc`}@[k'4# x@(~JjYcx=x]LYc*LYc ލjNYcX~CX` Zch}@[k'#`>@ XcPX>A`^iPlYch}@[k'|#`>@ XcHx=Ax]b( YcJKYc jMYc^ h}@[k' #>@ Xc@I|PKYch}@[k'聽#>@ Xc8_^>^p#k@@@?4BpApBABD-DT!?Hz>-DT!?& .>Fߑ?cܥL@)`@l?~CS?j\a0l?5RFߑ?p= `@&?wO[?=?  SPACE OBLIQUE MERCATORPath Number: Satellite Number: Inclination of Orbit: Longitude of Ascending Orbit: Landsat Ratio: 50 iterations without convergencesom-inversexL PX \d hp t         $ (4 8D HT X` dh lp t                 $$(0 4@ DH LLPX \` dp tx ||                $$(0 48 <@ DP Td hl p|             $( ,\ `p t    8 <T Xp tH Ll            T      0 48 <L PPTd ht x           , 0 D H T X X \ t x |                        4 8 X \ \ `                           $ 4 8 P T X \ h l l p                    $ , 0 @ D T X X \ |                    0 4 L P P T h l l p                    $0 448D HP Td h         0 448L PPT` dh llpx |          $0 4D HHL     $ ((,D HT Xd ht x           $$(0 4@ DP T` dp t          , 04 8x ||      @ DP TTX P T T X \  ` d PX`hpx     $2z H@ cH[[A@gcg!  "! ! &# # "  $ &UDUO  /sominv.clon_centeraba2a4c1c3qtuwxjp21sacaessfalse_eastingfalse_northingsominvintr_majorr_minorsatnumpathalf_inlonfalse_eastfalse_northtimeflagsat_ratioialfe2ce2sone_esdlamfbfa2fa4fc1fc3suma2suma4sumc1sumc3sumbsominvyxlattlonconvsavsdsdsqblondifstdefacactantlatddbigkbigk2xlamtslscldlatdlontempinumbsom_serieshsqfc/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK  "(%0'8)@+H-P0X4`7h:p=x?M\F fCnCvC}CCC0C8C@CHCPCHG  (DD'DDDDDD&%$#"(HT\H@TF( C CC! C!DG#D)('"'D,D0D3D9D?DDDGDLDRDXDx[Dp_DhdD`iD n HH H0tN0C!C!C!C!C! !(GD""DDDHptHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,3xP,_,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t @P&T_3 P'pc`$@n``-q+ `"x5]`<  `; `:4 `-n$ `0`asinatancosexpfabssinsqrttansominvsominvintp_errorptitleradius2offsetpadjust_longenrptgenrpt_long_fpdata  T$F0+F@5=DLT_frsterfor.o 1074015687 1032 20 100644 12752 ` -@8P @@@.text@(Xg .rconst@@h .xdataPPx@.pdata`` .datapp@@.litaH .sbss00@'##^( >^~(X= >X]"^X}C~XdXX= 1"X](R"H}@[k'$#0"}@[k' #Xx}@[k'#Xp}@[k'܂#Xh}@[k'Ă#XX=!`}@[k'#G^0#k'##^PH>@^8~X=P>0 XcP}@[k'P# H0>"(^"H}@[k'0# @}@[k'#X @0~JKYcX]((LYcލLYc LYc^Zc8}@[k'#<Xc 00= 1"(}@[k'#G@> Xc[c`@YcX=aX~X]LYc(ލLYc`  }@[k'#`>@ XcX^@Yc@X=aX]LYcX}(Í0NYcX (>PZc^PZc.YcLYc lYc8gG^p#k?|=STEREOGRAPHICPoint projects into infinityster-forH@8( ,4 8@ DL PX \d hl pt xx|              4 8H LL Ph llp|          , 0T X` d      ` d  h l       j "0,%%0,0 (E&I0sterfor.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterforintr_majcenter_loncenter_latfalse_eastfalse_northsterforlonlatxysinphicosphidloncoslonkspg/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK0 8@H)P8XF`NVF(aC gCrC}CC$GHVHFCCCC GDDDDDDH`$HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0&@EpEd," @n `-61( `c82]`< `;: `:u `- ``cosfabssinsterforsterforintp_errorptitletsincosradiuscenlonmeroriginoffsetpadjust_lon_fpdata  FF (/7>HOWbsterinv.o 1074015688 1032 20 100644 13912 ` -@P @Є.text( .rconst .xdata@.pdata.data@.lita.sbss``@'Є##^( >^~(X= >X]"^X}C~XdXX=1"X]R"@}@[k'T#}@[k'@#Xx}@[k'(#Xp}@[k'#Xh}@[k'#XX=!`}@[k'؃#G^0#k'##^>^~ (^1^ GH~X=%XcX]"$XcJXcKXcKYcP}@[k'L#\X !XcpaXcH}@[k' #Xc@@8>"0^"@}@[k'#X c\8}@[k'؂#<XcX@H>AG0~X}KlYc8MXcXōMYcmYcmYc0}@[k'\#HX=8}@[k'<#<"XcB\8}@[k'#<Xc*X@@@X=aP~1\\(}@[k'Ё#P> Xc }@[k'# GSX=!P>0\\(}@[k'#P>0 Xc }@[k'h# G@0>P>X]BX^H~}@[k'0#X>@ XcP^"@YcB\8}@[k'#<Xc \8}@[k'܀#<XcGX=AP^8~KXcX}PlYcQCXc(}@[k'#P> Xc }@[k'd# G^>^~ (`#k-DT!?|=  STEREOGRAPHIC( ,4 8@ DL PX \d hl pt xx |               D HT X|         0 4L Pl ppt         0 4D HHL` ddh       0 4H LLPd hhl        (0 8 @ H PX (s 0(0@P)P)X`414 (D #O#/O_/@sterinv.cr_majorlon_centerlat_originfalse_northingfalse_eastingsin_p10cos_p10sterinvintr_majcenter_loncenter_latfalse_eastfalse_northsterinvxylonlatrhzsinzcoszcon/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK` hpx)8FNVF(aC gCrC}CC$GHVHF%$ C4G#DDD"lH`HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0&@D<`Ey10(@n`-)0( `V72]`< `;- `:h `- ``asinatanatan2fabssinsqrtsterinvsterinvintptitletsincosradiuscenlonmeroriginoffsetpadjust_lon_fpdata F&F18@GQX`kstplnfor.o 1074015689 1032 20 100644 20720 ` -@h)P ` P ` .text` h .rconst` `  .xdatap p  @.pdata  h'.data @ @.lita8'.sdata .sbss'##8^@>H^P~X`h޵px^~ޜGG8^0~!Ȁ=!/@ Ȁ] G 4AِA`MCA GåA G 4AِAMC0礧A G !"= 1"GG}@[k'#"=H1"}@[k'#G 8Ȁ=1"}@[k't# G0Ȁ=1"}@[k'P# G `X"=1"}@[k'(#Gð? MGG}@[k'#"4GGG}@[k'#0G4GG}@[k'#@"G4GG}@[k'#G}@[k'#0@! G tG"L@BAb,bHC,fDHEHD< 4AA?0 G9A@>"M 2B G G4BTA.JC.xJWJF> 4 A!AMC@ 4A0}{`"=1"GG}@[k'#"=1"}@[k'|#G\"}@[k'\#G=1"}@[k'@#tG(tG(>(=1"}@[k' #@H@<0 Xcx}@[k'䏽#@>FXc0=!5 @6 X^^Pp}@[k'#\>"h}@[k'#8"h}@[k'H#8"h}@[k'#8<@Xc`p}@[k'|#\>"h}@[k'd#8<@XcPp}@[k',#\>"h}@[k'#8"h}@[k'ȍ#8"h}@[k'0#8"h}@[k'䌽#8"h}@[k'L#8<@XcIPp}@[k'#\>"h}@[k'#8<@Xc5pp}@[k'ċ#\>"h}@[k'#8<@Xc!x~^4G~^^^^^^ ^^(^>0>\\^~H}@[k'#GG8^@>H^P~X`hޥpx^~ތ#k'##^>^~ ^(~^1^ G G0=!5 @ c\B\GG(}@[k'`# G2 C10=!U @ c\B\GG }@[k' # G" C!0=!u @ c\B\GG}@[k'# G C0=! @ c\B\GG}@[k'# G CG^>^~ ^(~0#k?5RFߑ??> Illegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-forIllegal zone #%4ld for spheroid #%4ldstate-initSTATE PLANEZone: Datum: NADef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(Ph ` p rrX \h l        $< @D HHL` dh llp         , 004< @     $$(4 8< @@DT X\ ``dp tx ||       $ ((,4 8X \\`p ttx        < @@DT XX\d h      H LL P\ `p ttx     $ (( ,8 <T XX\l ppt|           8 < X \ \ ` x |                            (08@HPX`hpx @ )I1 B B*(NhJN0 $% Q$% a(0''A*B""*C2(U C!0/0. ! 1^ )3)3)3)0stplnfor.cidinzoneNAD27NAD83stplnforintzonespherefn27fn83indinadvaltablepnamebufr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northazimuthlat_origlon_origlon1lat1lon2lat2modeiflgptrswapswapPtrjstplnforlonlatxy/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hgctp_prototypes.hK 3B#p "F0.!3!x:Cp?CTG` D! H!8JD!PQDQWD]D'a&gmD%x$#"DDDDDDDD!D! qD  !H "HP F #" A A4G !8HXHpHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK HK H</x/@x',/@//c</,0,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t ɞH5 'A 0hJ15@n15`-sBK `IU]`<; `;w `: `- ``-`freadfclosefopensprintffseeksqrtstplnforstplnforintlamccforlamccforintpolyforpolyforinttmfortmforintomerforomerforintp_errorptitlepakszpakczgenrpt_long_fpdata ! &Fp/FP; D P X c i r z stplninv.o 1074015689 1032 20 100644 20864 ` -@)P p ` p Г.textp h8  .rconstp p  .xdata  @.pdata  '.data @  @.litaHH(.sdata .sbss'Г##8^@>H^P~X`h޵px^~ޜGG@^8~!Ѐ=!/@ Ѐ] G 4AِA`MȀCA GåA G 4AِAMȀC0礧A G !"Ȁ= 1"GG}@[k'Ȓ#"Ȁ=H1"}@[k'#G @Ѐ=1"}@[k'# G8Ѐ=1"}@[k'`# G `ȀX"Ȁ=1"}@[k'8#Gð? MGG}@[k'#G}@[k'#"4GGG}@[k'ܑ#0G4GG}@[k'#H"G4GG}@[k'#G}@[k'#0@! G tG"L@BAb,bHC,fDHEHD< 4AA?0 G9AH>"M 2B G G4BTA.JC.xJWJF> 4 A!AMCH 4A0}{`"Ȁ=1"GG}@[k'#"Ȁ=1"}@[k'x#G\Ȁ"}@[k'X#GȀ=1"}@[k'<#tG0tG0>0Ȁ=1"}@[k'#HP@<0 Xcx}@[k'#H>FXc0=!5 @6 `^^Xp}@[k'#\>"h}@[k'#8"h}@[k'D#8"h}@[k'#8<@Xchp}@[k'x#\>"h}@[k'`#8<@XcXp}@[k'(#\>"h}@[k'#8"h}@[k'č#8"h}@[k',#8"h}@[k'#8"h}@[k'H#8<@XcIXp}@[k'#\>"h}@[k'#8<@Xc5xp}@[k'#\>"h}@[k'#8<@Xc!À~^4G~^^^^^^ ^^(^>0>\\^~H}@[k' #GG8^@>H^P~X`hޥpx^~ތ#k'##^>^~ ^(~^1^ G G0=!5 @ c\B\GG(}@[k'\# G2 C10=!U @ c\B\GG }@[k'# G" C!0=!u @ c\B\GG}@[k'܉# G C0=! @ c\B\GG}@[k'# G CG^>^~ ^(~0#k?5RFߑ??@ Illegal zone #%4ld for spheroid #%4ldstate-initError opening State Plane parameter filestate-invIllegal zone #%4ld for spheroid #%4ldstate-initSTATE PLANEZone: Datum: NADef-.XMNOyzAB  l567?@Aa b c ) * T    I J uv=>ijklm0]^%&'(QRef-.XMNOyzAB  l567?@Aa b c ( T    I J uv<ijklm0]^%&'(Px p rrX \h l        $< @D HHL` dh llp         , 004@ DDHP T  $ (4 88<H LP TTXh lp ttx         $$(8 <<@H Ll ppt       ( ,P TTXh llpx |       \ `` dp t      8 << @L Ph llp          $$(0 4  L P l p p t               , 0 0 4           ( 08@HPX`hpx @ h*XJ@2BB+NJXO0 $% Q$% a(0''A*B""*C2(U@#!0/0. ! A\ )3)3)3)0stplninv.cidinzonenad27nad83stplninvintzonespherefn27fn83indinadvaltablepnamebufr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northazimuthlat_origlon_origlon1lat1lon2lat2modeiflgptrswapswapPtrjstplninvxylonlat/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hgctp_prototypes.hK 3B# "F0.!3!p:Ch?CTG` D! H!0JD!HQDQWD]D'a&gmD%x$#"DDDDDDDD!D! qD  !H "HP F #" A A4G !8HXHpHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK HK H</x/@x',/@/ /c</,0,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t ɞ8x5 'F 0J15@n15`-sBK `IU]`<; `;w `: `- ``-`freadfclosefopensprintffseekftellsqrtstplninvstplninvintlamccinvlamccinvintpolyinvpolyinvinttminvtminvintomerinvomerinvintp_errorptitlepakszpakczgenrpt_long_fpdata !' ,Fp5FPA J V ^ i o x tmfor.o 1074015690 1032 20 100644 18128 ` -@ P .texth  .rconstP .xdata h @.pdata  x x.data p @.lita .sdata` `  .sbssp p '##^80>(^ ~8]0>}#(^D ~eݤPHލPȝ=юoYcWZc8<77[c]0򞈀}0؀}@[k'#=0Ѐ}@[k'#=0Ȁ}@[k'p# =0}@[k'P#(=!@>]}# D(eݤ }@[k'#@>@ Xc@=0A]0b8+YcjKYc}8C0܍Yc8XÈݤX`"}@[k'p#=!}@[k'P#`=1"}@[k'0#}@[k'#}@[k'#P=H!}@[k'#G^P#k'Ȇ#p#^^~ (ޜ01^x^p~=>0 Xc}@[k't#h\`>"X^"x}@[k'T#XqX>>hp}@[k',#>E Xc\h}@[k' #8<0Xch}@[k'셽#<Xc`X=P}@[k'#G.È=4<@Xc]B@ Xc8| Xc8,YcplYcH}@[k'T#>@ XcxX^^h@}@[k'$#>@ XcJXc8|0jYc8}@[k'섽#>p Xc0}@[k'Є#\"B\ =AA*Xc]b+KXcA+Xcp~#GXhLYcPPލPFYc8X>X^Q2ZcDZc\(}@[k',#HH^H~CKYc0``ލMYcLYc8"Yc}B\8}@[k'ȃ#>` Xc@@^=]"} C(d\ }@[k'x#>@ Xc8@@~JKYcPJLYc0mXc8܉.YcYc,oXc(PpXc$<00ZcRcXcZc |SXcZc=8TZc0ZcOYcYcMYc8܊ YcJMYc]P WYcx~C@%8^9Y[c@~H[|[c}Xc$܋>[c ? TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Point projects into infinity` h tm-for, 08 <D HP T\ `h lt x|                 $( ,,08 <@ DL PT X\ `d hl pt xx|                  $( ,, 08 <@ DH LLPX \` dd hp tx ||      $ (( ,4 8L PPTl ppt|             $ ((,T XX\|      ( ,L PPTp t           $@ DP Th lx |      ( ,0 4T Xd ht x        < @l p                        ( 0 8 @ H P X  ,3 P(!@(88x!C@D &&E B)%O  D/ > !@tmfor.cr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindtmforintr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northtemptmforlonlatxydelta_lonsin_phicos_phialalsbcttqconnml/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKp x   & 1 < ? B E H K O S b ptF}CCCCCC0C(GDHtHF C'CC8GDDDD&%$#D"DDHHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,0,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t P2^pxd@P 1,@n 1`-yB( `I2]`<A `;} `: `- ``acoscosfabslogsinsqrttantmfortmforintp_errorptitletsincosradius2cenlonmeroriginoffsetpadjust_lone0fne1fne2fne3fnmlfngenrpt_fpdata F%F.6=EMW^fqv{tminv.o 1074015691 1032 20 100644 19568 ` -@8%P   .text (C .rconst ` .xdata0 0 X @.pdata@ @ h #.dataP P x @.lita #.sbss '##^80>(^ ~8]0>}#(^D ~eݤPލȝ=юoYcWZcD<77[c]򞈀}}@[k'#=؀}@[k'Њ#=Ѐ}@[k'#=Ȁ}@[k'#=!@>]}#Deݤ}@[k'D#@>@ Xc=A]bD+YcjKYc}C܍Yc4Gݤ@"}@[k'#=!}@[k'#@=1"}@[k'#}@[k'h#}@[k'P#=!}@[k'0#G^P#k'# #^>^~ (^0~8@HޜPX`>> G G G=!k 䈀]}#@Xc^p@Yc}@[k'#D\~jKYc*Yc@JMYcp^=ፈ]OYc^oOXcYchޝhx}@[k'#xx~x~AcXcD\!AYcp~pKlYcD mYcp+Xcp}@[k'# \)]h}@[k'# h> K*J]Kp~`x~`Ԉ}Gpx>`}@[k'@# XcX}@[k' # GxÈ=!^!AYc>]b^"KXc^}^mMXc YcōiYc)] GݤfYcP}@[k'#@`Xc Yc@<"^"0}@[k'H#](}@[k'4#`>^A*XcFaXcKXc~EYcNXcޝ}>PZcOYcD\)OZcݤF)]p}@[k'#`@Xc`D=aKYckYc~ލDYc>PZcPZc^pZc4|sXc0TXc,Zc(܊VXcZc<W[c4Zc]"$\Y:[c4Zc |{Xc\Xc[c܋^Xc[c\@Xc[c}c \CjXc Xc0<AYc Xc@`[c Zc@`Zc@ Yc@Zc Yc e8܉nXcXcD<YcYc\rXcXc,܊5ZcXXcZc0^WW[c5Zcݤ&Y=[cZc4܋^B^XcZcBBZc"YcBYcD"[c^BBYc~bCXcbYcX}@[k'#  }@[k'd#~[\BbXcK} G^>^~ (^0~8@HތPX`>#kAAA|C4BCtBBAA A@@@A@@??-DT!?|=h㈵> TRANSVERSE MERCATOR (TM)Scale Factor at C. Meridian: Latitude failed to convergeTM-INVERSE , 08 <D HP T\ `h lt x|                 $( ,,08 <@ DL PT X\ `d hl pt xx|                 ( ,0 48 <<@H LP TT X` dh llpx |      , 004@ D` dt x|       $ ((,\ `x ||          $0 448P TX \h llp         $ (( ,@ DDHP Tp tt x        $8 <@ Dh l      $ (, 0D HT Xd ht x       $ ( , @ D X \ p t             8 < < @ T X X \ p t    @ D  H L           ( 0 8 @ H P X ` h p x        N q%xE-@>@>@&XIEJ &&E B-"Ne,/Q9&= @, tminv.cr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindtminvintr_majr_minscale_factcenter_loncenter_latfalse_eastfalse_northtemptminvxylonlatconphidelta_phiisin_phicos_phitan_phiccsttsnrddsfhgmax_iter/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK   & 1 < ? B E H K O S b ptF}CCCCCC0C(GDHtHF CC ! !PGp)(' DDD&D%  DDDD$DDDD H(HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,x8,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t P3] HcEq&9@n&9`-J) `Q3]`<\ `; `: `-  `: `atan2cosexpfabssinsqrttantminvtminvintp_errorptitletsincosradius2cenlonmeroriginoffsetpadjust_lonasinzsigne0fne1fne2fne3fnmlfngenrpt_fpdata  F&F/7>FNX_grx}utmfor.o 1074015691 1032 20 100644 18520 ` -@h"P 0 0 P.text0 h * .rconst0 0 ` .xdata  @.pdata  H .data  @.lita` ` .sdata0 0  .sbss@ @ 'P##^>( >^ GG؀}@[k' #G؀}@[k'#@(= >]"^}CG؀}@[k'#L @00[<@Xc]@\}PC <| _HdݤlYcލNYc8.Zc0ǝ0Ѐ}@[k' #=0Ȁ}@[k'숽#=0}@[k'̈# =0}@[k'#(=!0>]}# D(eݤ }@[k'`#0>@ Xc@=0A]0b8+YcjKYc}8C0܍Yc8X`"}@[k'؇#G`=1"}@[k'#=!}@[k'#`=1"}@[k'|#}@[k'd#G `x"`=1"P}@[k'<#tG^>@#k' #p#^^~ (ޜ01^x^p~=>0 Xc}@[k'̆#h\`>"X^"x}@[k'#XqX>>hp}@[k'#>E Xc\h}@[k'd#8<0Xch}@[k'D#<Xc`X=P}@[k'#G.È=4<@Xc]B@ Xc8| Xc8,YcplYcH}@[k'#>@ XcxX^^h@}@[k'|#>@ XcJXc8|0jYc8}@[k'D#>p Xc0}@[k'(#\"B\ =AA*Xc]b+KXcA+Xcp~#GXhLYcPPލPFYc8X>X^Q2ZcDZc\(}@[k'#HH^H~CKYc0``ލMYcLYc8"Yc}B\8}@[k' #>` Xc@@^=]"} C(d\ }@[k'Ѓ#>@ Xc8@@~JKYcPJLYc0mXc8܉.YcYc,oXc(PpXc$<00ZcRcXcZc |SXcZc=8TZc0ZcOYcYcMYc8܊ YcJMYc]P WYcx~C@%8^9Y[c@~H[|[c}Xc$܋>[c5RFߑ?? Illegal zone numberutm-forintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Point projects into infinityx 0 0 8 X utm-for( ,,0@ DDH\ `h lt x|            , 04 8< @@DL PT X\ ``dl pt x|                  4 8< @D HX \` dh lp tt x                0h l|          ( , 0 44 8H LP T` dt x        $$(< @D HT X      ( ,,0H LT X\ `d hl px ||        $8 <@ Dp t        $ (4 8D Hd h|      0  ` h p x                      (  L T"A`*`:`:P#xEBFR&&E B)%O  D/ > !@utmfor.cr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindutmforintr_majr_minscale_factzonetemputmforlonlatxydelta_lonsin_phicos_phialalsbcttqconnml/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/stdlib.hdiv_tquotremldiv_t/usr/include/math.hexceptiontypenamearg1arg2retvalcproj_prototypes.hK@ H P X '` 2h =p @x C F I L P T c quFCCC $GD HP0uH0F C'C!C!8GDDDD&%$#D"DDHHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHKRR "R"&Ǣ@"&b&ʒHK(ǂb@$r)"."3"HK H</,x-,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 oC0<_0ox< ,0t @2[0#pxbBT.L@n.`-T?) `F3]`< `;X `- `: ``labsacoscosfabslogsinsqrttanutmforutmforintp_errorptitletsincosradius2cenlonmeradjust_lone0fne1fne2fne3fnmlfngenrptgenrpt_long_fpdata  0$F+F5=DLT^insx}utminv.o 1074015692 1032 20 100644 20048 ` -@X'P ` 0` .text` (W .rconst` ` p .xdata  @.pdata (%.data @.lita %.sbss '##^>( >^ GG}@[k'p#G}@[k'X#@(= >]"^}CG}@[k'#L @00[<@Xc]L\}C H| _dݤlYcލNYcD.Zcǝ؀}@[k'\#=Ѐ}@[k'<#=Ȁ}@[k'#=}@[k'#=!0>]}#Deݤ}@[k'#0>@ Xc=A]bD+YcjKYc}C܍Yc4GݤÈ@"}@[k' #G@=1"}@[k'#=!}@[k'䉽#@=1"}@[k'ĉ#}@[k'#G @x"@=1"8}@[k'#tG^>@#k'h# #^>^~ (^0~8@HޜPX`>> G G G=!k 䈀]}#@Xc^p@Yc}@[k'܈#D\~jKYc*Yc@JMYcp^=ፈ]OYc^oOXcYchޝhx}@[k'X#xx~x~AcXcD\!AYcp~pKlYcD mYcp+Xcp}@[k'# \)]h}@[k'䇽# h> K*J]Kp~`x~`Ԉ}Gpx>`}@[k'# XcX}@[k'p# GxÈ=!^!AYc>]b^"KXc^}^mMXc YcōiYc)] GݤfYcP}@[k'؆#@`Xc Yc@<"^"0}@[k'#](}@[k'#`>^A*XcFaXcKXc~EYcNXcޝ}>PZcOYcD\)OZcݤF)]p}@[k'섽#`@Xc`D=aKYckYc~ލDYc>PZcPZc^pZc4|sXc0TXc,Zc(܊VXcZc<W[c4Zc]"$\Y:[c4Zc |{Xc\Xc[c܋^Xc[c\@Xc[c}c \CjXc Xc0<AYc Xc@`[c Zc@`Zc@ Yc@Zc Yc e8܉nXcXcD<YcYc\rXcXc,܊5ZcXXcZc0^WW[c5Zcݤ&Y=[cZc4܋^B^XcZcBBZc"YcBYcD"[c^BBYc~bCXcbYcX}@[k'Ё#  }@[k'#~[\BbXcK} G^>^~ (^0~8@HތPX`>#kAAA|C4BCtBBAA A@@@A@@??K$H-DT!?|=h㈵>5RFߑ?Illegal zone numberutm-invintUNIVERSAL TRANSVERSE MERCATOR (UTM)Zone: Scale Factor at C. Meridian: Latitude failed to convergeUTM-INVERSE ` x ( ,,0@ DDH\ `h lt x|            , 04 8< @@DL PT X\ ``dl pt x|                  4 8< @D H\ `h lp tx ||                 8          @ DDHd h        ( ,,0D H\ `t x|          $0 448P Tt xx|          ( ,p t      P T` dp t           8 < @ D X \               ( , D H L P d h                 8                ( 0 8 @ H P X ` h p x   ) y'PG/@@h(0KGKR&&E  B-"Ne,/Q9&= @, utminv.cr_majorr_minorscale_factorlon_centerlat_origine0e1e2e3esespml0false_northingfalse_eastingindutminvintr_majr_minscale_factzonetemputminvxylonlatconphidelta_phiisin_phicos_phitan_phiccsttsnrddsfhgmax_iter/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/stdlib.hdiv_tquotremldiv_t/usr/include/math.hexceptiontypenamearg1arg2retvalcproj_prototypes.hK`   ' 2 = @ C F I L P T cquFCCC $GD(HP8uH8F CC ! !PG@)(' DDD&D%DDDD$DDDD H(HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHKRR "R"&Ǣ@"&b&ʒHK(ǂb@$r)"."3"HK H</,x5,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 oC0<_0ox< ,0t @4_8% HeGy6@n6`-oG) `N3]`<7 `;s `- `: ``labsatan2cosexpfabssinsqrttanutminvutminvintp_errorptitletsincosradius2cenlonmeradjust_lonasinzsigne0fne1fne2fne3fnmlfngenrptgenrpt_long_fpdata !8%F,F6>EMU_jpuzvandgfor.o 1074015692 1032 20 100644 14440 ` -@P ` `.text`(H .rconst``  .xdata@.pdatax.data@.litap.sbss   '##^ >^~ P=>P]"^P}C~Pdxp}@[k'D# h}@[k'0#`}@[k'#PP=!X}@[k'#G^0#k'䅽#p#^>^~ (0ޜ8x1^p^ GP=x>0 XcH}@[k'#\\@}@[k't#<XcP@P=aKfYc KYcp^BP}G,pXc@}@[k'#Xc8}@[k'섽#h\@}@[k'Ԅ#<Xc\@}@[k'#<0Xc@}@[k'#<Xc\jFYc|kXc0KYc@}@[k'@#"H^"0}@[k'#H@>H^*Xc|!+XcdXcLXcX@[cmYc-YcMXcPPP>CZcPD|RSZc^4XcTXc5Xc`ގUZc7XcUZc`xXcX>9#[cX[c0Zc(}@[k'#> Xc^@@Yc`~ kXcb Xc"B\P Ycp>P]܍MYcpMXc@}@[k'#\"P >P=A|JKYc^LBXc,YcXcNYc0Yc(}@[k'#>@ Xc^@Yc !P=a~P]LYcNBXc.YcXcPZc0Yc(}@[k'#>@ Xc^ @Yc G=P=ap^bP}P܍MYchPZc }@[k'#>@ Xc^@Yc P=a~P]LYc܉hPYc }@[k'# \>@ Xc^@Yc G^>^~ (0ތ8#k??-DT!?-DT! @|=? VAN DER GRINTENh` $ (0 4< @H LP T XX\h llp|         $ ((,4 8H LP Tp t            0 4@ DX \\`h l      $     , 08 <@ D\ `       @ DX \d hl p                 a Bh2++6h307D)).  !  vandgfor.clon_centerRfalse_eastingfalse_northingvandgforintrcenter_longfalse_eastfalse_northvandgforlonlatxydlonthetaalasqggsqmmsqconcosthsinth/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK  (08'6F BCDCPC[C GH6HPgFpC'txC z<G&|D%D$DD#"DDxH gHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,  ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0)= /pAwh3B!@n!`-2( `E92]`< `; `:W `- ``fabssqrttanvandgforvandgforintptitletsincosradiuscenlonoffsetpadjust_lonasinz_fpdata FFP#*29@HSYvandginv.o 1074015693 1032 20 100644 13600 ` -@P  0.text({ .rconst0 .xdata8@.pdata  H.data00X@.lita@@ph .sbss '0##^ >^~ H=>H]"^H}C~Hdph}@[k'ԅ# `}@[k'#X}@[k'#HH=!P}@[k'#G^0#k't#p#^^~ (ޜ08@>>x^p~H=>  XcH]B>)*Yc>H}cBlYchYc>g"YcNYcOXcYc\@}@[k'# \<XcEXch XcJGYch*XcKYcKYchLXc YcXcNYc YcOXcYcPXcpZcXcQ$ZcQ$Zcq#Zcq#Zcq#Zc \hRXcRDZcrCZcrCZc12Zc|q3ZcZcHTXctZctZch4XctZc``ގ6^pZc8}@[k'(#XcX  X^%J]|PYc(}@[k'L#@Xc!G5H]\)XcKYcLYcMXcNXc+mYc,Yc lYc oYcPXcpYc8}@[k'܀# Yc<@Xc[c` Xc`XcXc }@[k'#xG^^~ (ތ08@>#k@@AA?|=es-8R?-DT! @ VAN DER GRINTEN0$ (0 4< @H LP T XX\h llp|       , 04 8x ||   ` d      L PPT\ `x |       8 <L PPTd h      , 0L PPTd h     $  ( , @HP X`hpx  xX 7h/h((3H04D-!)  )#% 0vandginv.clon_centerRfalse_eastingfalse_northingvandginvintrcenter_longfalse_eastfalse_northvandginvxylonlatxxyyxysc1c2c3a1m1conth1d/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK '6F BCDCPC[C GH6HPgF(pC rCtCxC@G(|'&D$#DD"DDH  gHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,  ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0)= /pxAuH07!x@n!`- 2( `:92]`< `; `:L `- ``acoscosfabssqrtvandginvvandginvintptitleradiuscenlonoffsetpadjust_lon_fpdata FFP(/6=EPwivfor.o 1074015693 1032 20 100644 12128 ` -@ P  `.text(S .rconst0 .xdata(@.pdata88 .data  PH@.litappp .sbss '`##^ >^~ P=>P]"^P}C~Pd("p}@[k'# h}@[k'삽#`}@[k'؂#>X}@[k'#G^0#k'##^>^~ (PH>@^8~P=P>0 XcH}@[k'X#0HH@}@[k'<#P]B|EKYc\@}@[k'耽#@XcP Xc8>G^>^~ (`#k?\4 ?%䃞?|=LKD@  WAGNER IVIteration failed to convergewagneriv-forward0$ (0 4< @H LP TX \\`l ppt         $, 0D HHLh llpx |       $ ((,< @T X\ `p ttx       px   V " *""@ -*@.E @/`wivfor.clon_centerRfalse_eastingfalse_northingwivforintrcenter_longfalse_eastfalse_northwivforlonlatxydelta_lonthetadelta_thetaconi/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK %4F >C@CLCWC GH4HPcF jCnCrCtC4GvD$#" !H  cHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0$8 .<`<[*"@n`-,) `333]`< `;  `:E `- ``cosfabssinwivforwivforintp_errorptitleradiuscenlonoffsetpadjust_lon_fpdata  FFP&-4;CNwivinv.o 1074015694 1032 20 100644 11384 ` -@( P 0 0p.text0(? .rconst00 X .xdataPPx@.pdata``.datapp@.lita`x .sbss 'p##^ >^~ 8=>8]"^8}C~8d`X}@[k'# P}@[k'#H}@[k'쁽#>@}@[k'ԁ#G^0#k'##^^( >^~8=(>  Xc(8]B ~*jYc ^8}LYc ލpYc0}@[k'<#\8 0>8=A|JKYc8^B\(}@[k'#8>@ Xc(^`@Yc0~`Yc }@[k'Ȁ#BXc0>BXc}@[k'#0> Xc\p Xc0}@[k'p#G^^@#kLKD@%䃞?\4 ?WAGNER IV0p$ (0 4< @H LP T XX\h llp|       , 004@ DL PT Xl ppt      ` d  h l   N  @'  +'p+D  wivinv.clon_centerRfalse_eastingfalse_northingwivinvintrcenter_longfalse_eastfalse_northwivinvxylonlattheta/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKp %4F >C@CLCWC GH4HPcFjClCnCrC$GP"v`H pcHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0#7 -@;K'|@n|`-(( `/2]`< `; `:) `-c ``asincossinwivinvwivinvintptitleradiuscenlonoffsetpadjust_lon_fpdata  FFP%,3;Fwviifor.o 1074015694 1032 20 100644 11760 ` -@( P  .text(XI .rconst  .xdata@.pdata .data@.lita`h .sbss00 '##^ >^~ @=>@]"^@}C~@dh`}@[k'd# X}@[k'P#P}@[k'<#@@=!H}@[k'#G^0#k'##^^PH>@^8~@=P>0 Xc8}@[k'ā#0\0~pjYc(>" ^"0}@[k'#H(}@[k'#^~ P=>P]"^P}C~Pdxp}@[k'd# h}@[k'P#`}@[k'<#PP=!X}@[k'#G^0#k'##^^~ ^1^@^8~P=%XcP]"$Xc\cXc|bXcCcXcBBXcbXcH}@[k't#0P@ JYc0~pjYc@}@[k'D#Xc((8}@[k'$#@Xc<0^AAYcpXc@}@[k'#8P=!H>(0}@[k'Ȁ#PXc<0^QAYc(}@[k'#<@XcH^@Yc }@[k'p#@G^^~ P#k@@tr ?rPL?G|V@ WAGNER VIIP$ (0 4< @H LP T XX\h llp|           D HHLX \t xx |           $, 0H LL P          (08 \ ( (!!H ,h)(-D wviiinv.clon_centerRfalse_eastingfalse_northingwviiinvintrcenter_longfalse_eastfalse_northwviiinvxylonlatt1t2pc/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK@ HPX&5F @CBCNCYC GH5HPeF%m$o qCuC0G#y"|DDH eHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</, ,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t 0&: /<P>Sh)@n`-+( `22]`< `; `:0 `-j ``atan2sinsqrttanwviiinvwviiinvintptitleradiuscenlonoffsetpadjust_lonasinz_fpdata FFP&-4;CNTfor_init.o 1074015696 1032 20 100644 33992 ` -@(VP   .text % .rconst " .xdata!!"@.pdata!!"xQ.lita ! !@"QG'#p#8^@>H^P~X`h޵px^~ޜ> Gx>GGph Cx~Cx~C>!5lA/ O@o`!GG ^"~""@}@[k'@# àUlA/ O@o`G!GG ^"~""@}@[k'䟽# GG ^"~""@}@[k'#0o8O5lA;@ G8}@[k'#<@Xc\G Xc I@ (G8}@[k'D#<@Xc\I Xc I@  >\)]c\B\0}@[k'䞽# IMaMA( æUlA; G8}@[k'#<@Xc\G Xc I@ y(G8}@[k'P#<@Xc\I Xc I@ e >\)]c\B\ }@[k'# IMaMA Qæ5`AY G ^"~""@}@[k'#x``>7 G8}@[k'p#<@Xc\@ Xc@ I@ ,G8}@[k'#<@Xc\I Xc I@ |@PYc}@[k'#` `^"C`^ >\`~}@[k'# IMaMA æU`AxGp^h~}@[k'8# IM aMAݤ Ŵçu`AeG8}@[k'䛽#<@Xc\I Xc I@ G8}@[k'#<@Xc\H Xc I@ (G8}@[k'D#<@Xc\E Xc I@  G8}@[k'#<@Xc\G Xc I@  >~^)]]\\}@[k'# IMaMA xæ`AeG8}@[k'H#<@Xc\I Xc I@ cG8}@[k'#<@Xc\H Xc I@ O G8}@[k'#<@Xc\G Xc I@ ;(G8}@[k'X#<@Xc\E Xc I@ ' >~^)]]\\؁}@[k'# IMaMAЁ æ`A; G8}@[k'#<@Xc\G Xc I@ (G8}@[k'\#<@Xc\I Xc I@  >\)]c\B\ȁ}@[k'# IMaMA æ`A; G8}@[k'#<@Xc\G Xc I@ (G8}@[k'h#<@Xc\I Xc I@  >\)]c\B\}@[k'# IMaMA æ`A; G8}@[k'Ė#<@Xc\G Xc I@ (G8}@[k't#<@Xc\E Xc I@ n >\\c\B\}@[k'# IMaMA ZæaAkG8}@[k'Е#<@Xc\I Xc I@ EG8}@[k'#<@Xc\H Xc I@ 1 G8}@[k'0#<@Xc\G Xc I@ (G8}@[k'#<@Xc\E Xc I@ @o` G 4G >~^^)]]\\}@[k'`# IMaMA æ5aA= G8}@[k'#<@Xc\G Xc I@ (G8}@[k'ȓ#<@Xc\E Xc I@  >^\\\c\}@[k'd# IMaMA æUaA: G8}@[k' #<@Xc\G Xc I@ (G8}@[k'В#<@Xc\F Xc I@ \\c\B\x}@[k't# IMaMAp ræuaA: G8}@[k'0#<@Xc\G Xc I@ ](G8}@[k'#<@Xc\F Xc I@ I\\c\B\h}@[k'# IMaMA` 6æaA: G8}@[k'@#<@Xc\G Xc I@ !(G8}@[k'#<@Xc\F Xc I@ \\c\B\X}@[k'# IMaMAP æaA: G8}@[k'P#<@Xc\G Xc I@ (G8}@[k'#<@Xc\F Xc I@ \\c\B\H}@[k'# IMaMA@ æaA: G8}@[k'`#<@Xc\G Xc I@ (G8}@[k'#<@Xc\F Xc I@ \\c\B\8}@[k'# IMaMA0 æaA= G8}@[k'p#<@Xc\G Xc I@ m(G8}@[k' #<@Xc\F Xc I@ Yo0~0>\\c\B\(}@[k'# IMaMA CæbA% G8}@[k't#<@Xc\G Xc I@ .\c\B\}@[k'# IMaMA æ5bA: G8}@[k'،#<@Xc\G Xc I@ (G8}@[k'#<@Xc\I Xc I@ \)]c\B\}@[k',# IMaMA æUbA% G8}@[k'苽#<@Xc\G Xc I@ \c\B\}@[k'# IMaMA æubA% G8}@[k'L#<@Xc\G Xc I@ \c\B\}@[k'# IMaMA æbA(G8}@[k'#<@Xc\E Xc I@ |`o+` 4GG8}@[k'P#<@Xc\@ XcX I@ d G8}@[k'#<@Xc\@ Xc( IU@ O G@G8}@[k'#<@Xc\@ Xc@ I@ 9HG8}@[k'P#<@Xc\I Xc I@ %PG8}@[k'#<@Xc\@ Xc8 I@ XG8}@[k'#<@Xc\H Xc I@  >~^@~~>8 (0^\X~(\؀}@[k'(# IMaMAЀ æbAa[c/[c>^^`O6@ 4GG8}@[k'#<@Xc\@ XcP I@  G8}@[k'T#<@Xc\@ Xc@ I@ @o~HP[cޤ޴ G >~^ލޝ~~ ^(^~P@Ȁ}@[k'# IMaMA |æucA% G8}@[k'X#<@Xc\G Xc I@ g\c\B\}@[k'# IMaMA UæbA% G8}@[k'#<@Xc\G Xc I@ @\c\B\}@[k'd# IMaMA .æcA}@[k'$# IMaMA æ5cA% G8}@[k'#<@Xc\G Xc I@ \c\B\}@[k'# IMaMA æUcAx}@[k'H# IMaMAp æbA >c\B\h}@[k'# IMaMA` æcA% G8}@[k'#<@Xc\G Xc I@ \c\B\X}@[k'`# IMaMAP æcA% G8}@[k'#<@Xc\G Xc I@ \c\B\H}@[k'Ă# IMaMA@ æcAV G8}@[k'#<@Xc\G Xc I@ q(G8}@[k'0#<@Xc\F Xc I@ ]o~@G8}@[k'Ё#<@Xc\@ XcH I@ D~^\\~H8}@[k'd# IMaMA0 .æulAcA* G8}@[k'#<@Xc\G Xc I@ @o~P\c\B\(}@[k'# IMaMA G8^@>H^P~X`hޥpx^~ތ>#kaEx#?cܥL@U>2  D$ ((D,L PPDTt xxC|   C  $ ((?,H Lh llCpx |  C   A < @p ttDx C   C   4 8H LL>Pl p =   $ ((C,4 8D Ht xxC|   C   C$ (4 8|   C   C  $0 4` ddChp t  C    < @\ ``Cdl p|  C      0 4 P T T CX ` d p t    C         $ ( D H H CL T X d h    C           8 < < C@ H L X \    C        C     ( , , C0 8 < H L          C     @ D D CH P T ` d          C     8 <<C@H LX \   C  ( ,,C08 <H L   C   C ( ,8 <t xx|  C     C ( ,d hhl  C   C   T XX\x | C   C   P TTXt x C    0 44C8@ DP T C      $$C(0 4@ Dx ||!  C   #8 <\ ``Cdl p|  C    C  , 0d hhClt x  C     C ( ,\ ``Cdl p|  % ` ddChp t  C  l pp't  C     ), 0L PPCT\ `l p +  -  ( ,,C08 <H L /  1   30 4P TTCX` dp t 5  C   D HH7Lh l C   C  8 <<C@H LX \ 9  C    ` d d ;h    F! ! !(!0!:8!;@!8H!9P!6X!7`!4h!5p!2x!3!0!1!.!/!,!-!*!+!(!)!&!'!$!%!"!#" "!"" "("0"8"@"H"P"X"`"h"p"x"""""" " " " "" """"""###<#= #>(#B0#A8#@@#?H#CP#D 8 GVw`8p8pX{w ~ $a# 8"# (0!]-*! ]-*! ` !.! H M! M! M! M*!$ M! M! @! M! M! M! M! M! M! M M M M @ @/1 E  _! M M E M E H M M M! ]*!$0for_init.cfor_initoutsysoutzoneoutparmoutdatumfn27fn83iflgfor_transzoneazimuthalfanglelon1lon2lat1lat2center_longcenter_lathlon_originlat_originr_majorr_minorscale_factorfalse_eastingfalse_northingshape_mshape_nstarttimeradiustmpdatumpathsatnummodesat_ratiodzonedjustifythingiflg64/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hgctp_prototypes.hK F 1C1$,15C:C ? DGND!SD1[D1_D1eD1jD1)o1(t1'y1&1D1D1%1D1D1$1#1"1D1xD1pD!hD1`D1XD!P D!HD! !@D18(D10.D1(7D! =A H HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK HK H</-,x,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t ɞ6wD.8@nD.`-?+ `F5]`<z `; `: `-+ `X`l`stplnforstplnforintalberforalberforintlamccforlamccforintmerformerforintpsforpsforintpolyforpolyforinteqconforeqconforinttmfortmforintsterforsterforintlamazforlamazforintazimforazimforintgnomforgnomforintorthfororthforintgvnspforgvnspforintsinforsinforintequiforequiforintmillformillforintvandgforvandgforintomerforomerforintsomforsomforinthamforhamforintrobforrobforintgoodforgoodforintmolwformolwforintimolwforimolwforintalconforalconforintwivforwivforintwviiforwviiforintobleqforobleqforintisinusforisinusforinitutmforutmforintcalc_utm_zoneceaforintceaforbceaforintbceaforpakszsphdzfor_init_fpdata   * 3 ? F P V _ g r {     % 0 8 C L X ` k r |                  ' 1 ? F P ^ h o z Finv_init.o 1074015697 1032 20 100644 33936 ` -@VP   .text $ .rconst h" .xdata "@.pdata "XQ.lita!!@"QG'#p#8^@>H^P~X`h޵px^~ޜ> Gp>GGh` Cp~Cp~C>!5lA/ O@o`!GG^"~""@}@[k' # àUlA/ O@o`G!GG^"~""@}@[k'ğ# GG^"~""@}@[k'#0o8O5lA;@ G8}@[k't#<@Xc\G Xc I@ (G8}@[k'$#<@Xc\I Xc I@ >\)]c\B\0}@[k'Ğ# IMaMA( æUlA; G8}@[k'#<@Xc\G Xc I@ q(G8}@[k'0#<@Xc\I Xc I@ ]>\)]c\B\ }@[k'Н# IMaMA Iæ5`AY G^"~""@}@[k'x#pXX>7 G8}@[k'P#<@Xc\@ Xc8 I@ $G8}@[k'#<@Xc\I Xc I@ |8PYc}@[k'#X X^"CX^>\X~}@[k'd# IMaMA æU`ApGh^`~}@[k'# IM aMAݤ Ŵçu`AeG8}@[k'ě#<@Xc\I Xc I@ G8}@[k't#<@Xc\H Xc I@  G8}@[k'$#<@Xc\G Xc I@ (G8}@[k'Ԛ#<@Xc\E Xc I@ >~^)]]\\}@[k'l# IMaMA pæ`AeG8}@[k'(#<@Xc\I Xc I@ [G8}@[k'ؙ#<@Xc\H Xc I@ G G8}@[k'#<@Xc\G Xc I@ 3(G8}@[k'8#<@Xc\E Xc I@ >~^)]]\\؁}@[k'И# IMaMAЁ æ`A; G8}@[k'#<@Xc\G Xc I@ (G8}@[k'<#<@Xc\I Xc I@ >\)]c\B\ȁ}@[k'ܗ# IMaMA æ`A; G8}@[k'#<@Xc\G Xc I@ (G8}@[k'H#<@Xc\I Xc I@ >\)]c\B\}@[k'薽# IMaMA æ`A; G8}@[k'#<@Xc\G Xc I@ z(G8}@[k'T#<@Xc\E Xc I@ f>\\c\B\}@[k'# IMaMA RæaAkG8}@[k'#<@Xc\I Xc I@ =G8}@[k'`#<@Xc\H Xc I@ ) G8}@[k'#<@Xc\G Xc I@ (G8}@[k'#<@Xc\E Xc I@ @o` G 4G>~^^)]]\\}@[k'@# IMaMA æ5aA= G8}@[k'#<@Xc\G Xc I@ (G8}@[k'#<@Xc\E Xc I@ >^\\\c\}@[k'D# IMaMA æUaA: G8}@[k'#<@Xc\G Xc I@ (G8}@[k'#<@Xc\F Xc I@ }\\c\B\x}@[k'T# IMaMAp jæuaA: G8}@[k'#<@Xc\G Xc I@ U(G8}@[k'#<@Xc\F Xc I@ A\\c\B\h}@[k'd# IMaMA` .æaA: G8}@[k' #<@Xc\G Xc I@ (G8}@[k'А#<@Xc\F Xc I@ \\c\B\X}@[k't# IMaMAP æaA: G8}@[k'0#<@Xc\G Xc I@ (G8}@[k'#<@Xc\F Xc I@ \\c\B\H}@[k'# IMaMA@ æaA: G8}@[k'@#<@Xc\G Xc I@ (G8}@[k'#<@Xc\F Xc I@ \\c\B\8}@[k'# IMaMA0 zæaA= G8}@[k'P#<@Xc\G Xc I@ e(G8}@[k'#<@Xc\F Xc I@ Qo(~(>\\c\B\(}@[k'# IMaMA ;æbA% G8}@[k'T#<@Xc\G Xc I@ &\c\B\}@[k'# IMaMA æ5bA: G8}@[k'#<@Xc\G Xc I@ (G8}@[k'h#<@Xc\I Xc I@ \)]c\B\}@[k' # IMaMA æUbA% G8}@[k'ȋ#<@Xc\G Xc I@ \c\B\}@[k'p# IMaMA æubA% G8}@[k',#<@Xc\G Xc I@ \c\B\}@[k'Ԋ# IMaMA æbA(G8}@[k'#<@Xc\E Xc I@ t`o+` 4GG8}@[k'0#<@Xc\@ XcP I@ \ G8}@[k'܉#<@Xc\@ Xc  IU@ G G@G8}@[k'#<@Xc\@ Xc8 I@ 1HG8}@[k'0#<@Xc\I Xc I@ PG8}@[k'#<@Xc\@ Xc0 I@ XG8}@[k'#<@Xc\H Xc I@ >~^8~~>0 (0^\P~ \؀}@[k'# IMaMAЀ æbAY[cxx/[c>^^`O0@ 4GG8}@[k'#<@Xc\@ Xc@ I@  G8}@[k'4#<@Xc\@ Xc8 I@ @o~H G>~^^ލ ޝ^~@8Ȁ}@[k'# IMaMA |æucA% G8}@[k'X#<@Xc\G Xc I@ g\c\B\}@[k'# IMaMA UæbA% G8}@[k'#<@Xc\G Xc I@ @\c\B\}@[k'd# IMaMA .æcA}@[k'$# IMaMA æ5cA% G8}@[k'#<@Xc\G Xc I@ \c\B\}@[k'# IMaMA æUcAx}@[k'H# IMaMAp æbA>c\B\h}@[k'# IMaMA` æcA% G8}@[k'#<@Xc\G Xc I@ \c\B\X}@[k'`# IMaMAP æcA% G8}@[k'#<@Xc\G Xc I@ \c\B\H}@[k'Ă# IMaMA@ æcAV G8}@[k'#<@Xc\G Xc I@ q(G8}@[k'0#<@Xc\F Xc I@ ]o~@G8}@[k'Ё#<@Xc\@ XcH I@ D~^\\~H8}@[k'd# IMaMA0 .æulAcA* G8}@[k'#<@Xc\G Xc I@ @o~P\c\B\(}@[k'# IMaMA G8^@>H^P~X`hޥpx^~ތ>#kaEx#?cܥL@U>2  D$ ((D,L PPDTt xxC|   C  $ ((?,H Lh llCpx |  C   A < @p ttDx C   C   4 8H LL>Pl p =   $ ((C,4 8D Ht xxC|   C   C$ (4 8|   C   C  $0 4` ddChp t  C    < @\ ``Cdl p|  C      0 4 P T T CX ` d p t    C         $ ( D H H CL T X d h    C           8 < < C@ H L X \    C        C     ( , , C0 8 < H L          C     @ D D CH P T ` d          C     8 <<C@H LX \   C  ( ,,C08 <H L   C   C ( ,8 <t xx|  C     C ( ,d hhl  C   C   T XX\x | C   C   P TTXt x C    0 44C8@ DP T C      $$C(0 4@ Dx ||!  C   #8 <\ ``Cdl p|  C    C  , 0d hhClt x  C     C ( ,\ ``Cdl p|  % ` ddChp t  C  L PP'Tp t C   )  , 00C4< @L P +  -    C ( ,` dd/h  1  3 0 44C8@ DP T 5  C  $ ((7,H Lh llCpx |  C   C ( ,8 < 9  C  @ D D ;H d h  F !!!:!; !8(!90!68!7@!4H!5P!2X!3`!0h!1p!.x!/!,!-!*!+!(!)!&!'!$!%!"!#! !!!!"""" "("0"8"@"H"P"X"`"h"p"x"" " " " "" """""""""<"=#>#B#A#@ #?(#C0#D 0u GVHw_ppxXH{w} $a# 8"# ( !]-*! ]-*! ` !.! H M! M! M! M! M! M! @! M! M! M! M! M! M! M M! M M @ @?1 E 0o! M M E M E H M M M! ]*!$0inv_init.cinv_initinsysinzoneinparmindatumfn27fn83iflginv_transzoneazimuthanglealflon1lon2lat1lat2center_longcenter_lathlat_originlon_originr_majorr_minorscale_factorfalse_eastingfalse_northingradiusshape_mshape_ntimepathsatnummodetmpdatumsat_ratiodzonedjustifythingiflg64/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hgctp_prototypes.hK F 1C1")11C6C ; @GJD!OD1WD1]D1aD1fD1)k1(p1'u1&1D1%1D1D1D1$1#1"1xD1pD1hD1`D1XD!PD! !H D!@D18D10$D1(-D! 3At H HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK HK H</,,x,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t ɞ6w:-0@n:-`->+ `E5]`<p `; `: `-! `N`b`stplninvstplninvintalberinvalberinvintlamccinvlamccinvintmerinvmerinvintpsinvpsinvintpolyinvpolyinvinteqconinveqconinvinttminvtminvintsterinvsterinvintlamazinvlamazinvintaziminvaziminvintgnominvgnominvintorthinvorthinvintgvnspinvgvnspinvintsininvsininvintequiinvequiinvintmillinvmillinvintvandginvvandginvintomerinvomerinvintsominvsominvinthaminvhaminvintrobinvrobinvintgoodinvgoodinvintmolwinvmolwinvintimolwinvimolwinvintalconinvalconinvintwivinvwivinvintwviiinvwviiinvintobleqinvobleqinvintisinusinvisinusinvinitutminvutminvintcalc_utm_zoneceainvintceainvbceainvintbceainvpakszsphdzinv_init_fpdata   * 3 ? F P V _ g r {     % 0 8 C L X ` k r |                  ' 1 ? F P ^ h o z Fcproj.o 1074015697 1032 20 100644 28720 ` -@h;P 0p.text .rconst .xdatah@.pdata  h5P.data@.litahh:'p##^>^}@[k'H#`}@[k',#^ #k'##^^^B\@}@[k'엽#<Xc \JXc@\H\B\p}@[k'#^^#k'##^ >^ >@Xc^~JKYc0Yc }@[k',#>` Xc^0#k' ##^^~^1^ ^0PXc/BXcAXc\!AYc(>KBXc+YckkXc0~0mYc8܉.YcOXcpYcx}@[k'D#8>@ Xc0^ @Yc(~@`YccXc^^~@#k'##^>^~ (0ޜ8@H>^p>h^0pPXc}@[k'#\0H<Yc B\aFYc`ޜ 4G=#ANB\X>"P^"}@[k'D#XDYcAXc\#AYc0|KkXcKcYcPilYc`ތ-YcpmXcXލnYc&Yc0gYc0Zc<XcpZcx}@[k'#@XcXcE YcEXc\@}@[k'L#0PXc 4 AB\ Xp"X=1"P}@[k'#4Gh>H^>^~ (0ތ8@H>#k'##^>^~ (0ޜ8@^1^H^H>0FYc\h}@[k'\#Xc00<% Xc G!A5\}@[k'$#\DYc[c^>^~ (0ތ8@P#k'##^>^~ (0ޜ8@H>^1^R^s^^P] G!A8 cXc}@[k'#@Xc Yc $^>^~ (0ތ8@H>`#k'\#P#^>^~ ^(~08@ޜHPX>>R^~^~^ 4G!A }@[k'䏽#\ H}@[k'̏#^JCYcJCYc|0jYc }@[k'#>@ Xc JJYc}@[k'h# \*^AAYcKXc(+Xc PYc}@[k' #>@ XcYcJ|PKYc}@[k'莽#>@ Xc'YcXcJJYc`}@[k'#@Yc>( Xc \~BjYc PYc`}@[k'd#@@XcYc<^BAYcjPlYc`}@[k'#@@Xc&YcXcKKXc lYcJKYc*Xc XcˍNYcYcMYc!-Xcx>P ZcQXc^2ZcXcSgZc13ZcPZcZcpZcp5Xc6XcZcWZc[cx [c7ZcUZcXc5Zchp^h~[[cxz[c`^`ޏ[c`@}@[k'#0H\Xc 4 A$_ XX= 1"P}@[k'l# ^>^~ ^(~08@ތHPX>#k'$##^^0G>0G^0@}@[k'苽#\D8 '_ ~bL@^@~["KXc@lLXc0@ Yc[c88L@@ލ[.NXc(ޝ HH[8OYc^8^8>[4\Q2ZcYc(~YcB"B\B\^^P#k'##^^~^G>08C`Xc`G^c\@}@[k'p#\[c8>8((^@^@^[*JXc<|BKYc[cHH ޤ8޴8[-MXc<܉MYc0(@@[8OYc >H>H>[4\Q2ZcYc0~Yc~eB`"B\B\^^~P#k'l##^^( >^(>BXc0\(~JjYc^,Yc MXcpYc>(}@[k'#\00< ^!*Xc0|P+XcH}@[k'#`Xc^^0#k^ 4Gk'##^>^^ GB\@}@[k'T#0(<Xc0(\pJXc@}@[k' #[cY@B\8}@[k'#  [0 <@Xc"@Xch0 \pJXc@}@[k'#[c[0<Xc0 \jJXc[c[0 |JKYc"JXcJ0pLXc@}@[k'4#[c[0<Xc0\jJXc[c[0|JKYc"JXc,0pLXc@}@[k'#[c[0<Xc0\jJXc[c[0|JKYc"JXcB\8}@[k'P#[0 <@Xc"@Xc 4 A An_B\^>^0#k'#^@ Xc,\j*Xc(|K+Xc$ lYcJKYc MYc@ Xc܉ Yck'#^ @ Xc\J*Xc|K+Xc lYcJKYc MYc@ Xck'#^@ Xc@Xc\J*Xc| KYc@ Xck'#^@!Xc@Xc0\@ Xck'##^> Xc\~*KYc^>(}@[k'<# >(}@[k' # >P Xc }@[k'#^0#k'##^^( >^~^(@Xc0BXc}@[k'# >@ Xc0^ @Yc0 |PKXc}@[k'l#>@ Xc0^@Yc0|PKXc}@[k'0#>@ Xc0^ @Yc^^@#k'##^<Xc\a*Xc|+Xc[c>#k?@4C@@?p=>>>@@?A?zD$tIpBB@FUUUUUU?=~S!C!T! BA-DT!@-DT! @-DT!?cܥL@MbP?|=Hz>       \\\\\\\\\\\\\\\\\\\\Convergence errorphi1z-convConvergence errorphi2z-convLatitude failed to converge after 15 iterationsPHI3Z-CONVLattitude failed to convergephi4z-conv P $$(< @@D`|      , 0< @@Dd       $ ((,|   $ (( ,H LX \|        $, 0P TX \` dd h|    $ (D HHL` dp t        $ (( ,t     ( ,8 <<@t xx|              8 < H L L P p t                 $ ( < @ L P P T                  L             L P l p       8 <t x  4 8L P\ `x ||    $ (8 <H LLPt xx|       $ (4 88<P Td h        4 8p|           , 0D H`l p      , 004H LLPd hhl   ( ,8 <<@p      $ ` ( ,  0 4 d 8 < | @ D  H L t P T  X \ L  ` d  h l  p t  x |    p      `            p      tn ;(dHDX\X\<l(iHm)$$t t!A&! ' % ! ' /! 7%o// &09=, , , @  E cproj.ctsincosvalsin_valcos_valasinzconmsfnzeccentsinphicosphiqsfnzphi1zqsflageccntsdphicomsinpicospiphiiphi2ztseccnthphi3zmle0e1e2e3phi4zabcsin2phtanphimlpcon1con2con3pakczpaksecsdegsminssgnapakr2dmtsfnzsignxadjust_loncounte0fne1fne2fne3fne4fnmlfncalc_utm_zonelon/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK F(C CCGpTHP` H`%F"+G|H%H/F0 5C<CCCG@+DlHx/HdJFP$5#<CC(G"+HJHP|PFp(5 VCYC@G^D%e$+#jnDtD"z ~H8PHF(5'(YC<G&%z$+#e"n ~HHtF('&%$ YCLGP#z"e ~pHHF 5CC%CC$0C  z\G#<)D'&DDDeD ~H8H`L FCG`"+DDDD1XHhH F@#G"+DDDD1<HPHpF`(5C zC<C G"+jDHPHF GHHF"G@ lHHpF! G|HpHPF! GlHpH` F! G0 LH P H%F ! G ,H` 0%H@ *F@CG +DjDH *H /F`CCCC"z(G H` /H p4F BG PH X4H HK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK Hh</h,, ,,,,,xx9,F,],g,q,z,,,,,,,,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  34`;E ;0JSdY@Xg|l5,-PtK9``FPpL ]P  gm P!6q0<HzMM0Rtpzz{{`||}}0 @p\(iFt:@nF:`-P `Z]`<|\ `;` `:j `--s `Z`asinatancosfabslogpowsinsqrttancalc_utm_zonep_errortsincosmsfnzqsfnztsfnzadjust_lonphi1zphi2zphi3zphi4zasinzsigne0fne1fne2fne3fne4fnmlfnpakczpakr2dm_fpdata $p(F 6>FFFdLFPRFXF|cFiFtoFuF``{FFpFPF`FF@ F F L F Fpreport.o 1074015698 1032 20 100644 30824 `  -@IP @0@P .text@ .rconst@@ .xdataPP@.pdataDD.datapp@.lita00`8I .sdata8.sbss  0.bssPP' ##^>@=! H`">^0}@[k'䕽#@("8=1" }@[k'#@=(@](H=p1"^~}@[k'#@(}@[k'p#^ #k'\##^>^ > G G > 4G@}C@? 5@@ݤGh}@[k'#Gx4G@]"("G`}@[k'#' U@ 4G@]"Gh}@[k'# @=H"H=1"X}@[k'd#GU4G@]"("G`}@[k'4#@@=^@4G@d@=ޤ5@@Gh}@[k'ؓ#G14G@]"(G`}@[k'#&U@4G@]"Gh}@[k'x# @=H"H=1"X}@[k'L#G4G@]"(G`}@[k' #@@=G^>^0#k'쒽##^@=(! @](}@[k'#@ @= }@[k'#^#k'##^@=! H">0}@[k'T#@(8=1" }@[k',#@= @] H=1"^}@[k'#@ }@[k'葽#^#k'ԑ##^@=! H ">0}@[k'#@(8=1" }@[k'x#@= @] H=H1"^}@[k'L#@ }@[k'4#^#k' ##^>@=! Hp">0}@[k'落#H">0}@[k'̐#@!(8=1" }@[k'#@= @] H=1"^}@[k'x#@ H=1"^}@[k'T#@ }@[k'<#^ #k'(##^@=! P>Q XcHP"0}@[k'䏽#@(8=1" }@[k'#@= @] P>R XcH=1"}@[k'#@ }@[k'h#^#k'T##^@=! P>Q XcH"0}@[k'#@(8=1" }@[k'莽#@= @] P>R XcH=1"}@[k'#@ }@[k'#^#k'##^@=! P>Q XcH "0}@[k'<#@(8=1" }@[k'#@= @] P>R XcH=P1"}@[k'؍#@ }@[k'#^#k'##^@=! P>Q XcHx"0}@[k'h#@(8=1" }@[k'@#@= @] P>R XcH=1"}@[k'#@ }@[k'쌽#^#k'،##^@=! P>Q XcH"0}@[k'#@(8=1" }@[k'l#@= @] P>R XcH=1"}@[k'0#@ }@[k'#^#k'##^>@=! P>Q XcH0"0}@[k'#P>Q XcH`"0}@[k'#@)(8=1" }@[k'h#@= @] P>R XcH=1"}@[k',#@ P>R XcH=1"}@[k'#@ }@[k'#^ #k'̊##^@=! P>Q XcH"0}@[k'#@(8=1" }@[k'`#@= @] P>R XcH=1"}@[k'$#@ }@[k' #^#k'##^>@=! H@">0}@[k'#Hh">0}@[k'#@!(8=1" }@[k'|#@= @] H=1"^}@[k'P#@ H=1"^}@[k',#@ }@[k'#^ #k'##^>@=! H">^0}@[k'Ĉ#@(8=1" }@[k'#@= @] H=1"^~}@[k'l#@ }@[k'T#^ #k'@##^>@=! H>^0}@[k'#@(8=1" }@[k'#@= @] H=1"^~}@[k'#@ }@[k'#^ #k'##^@=! 80}@[k'\#@(8=1" }@[k'4#@= @] 8=1"}@[k' #@ }@[k'#^#kcܥL@lllllllllllllllll[%s] %s [%s] %s Output file name not specifiedreport-fileOutput file name not specifiedreport-file %s PROJECTION PARAMETERS: %s PROJECTION PARAMETERS: Radius of Sphere: %lf meters Radius of Sphere: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Semi-Major Axis of Ellipsoid: %lf meters Semi-Minor Axis of Ellipsoid: %lf meters Longitude of Center: %lf degrees Longitude of Center: %lf degrees Longitude of Central Meridian: %lf degrees Longitude of Central Meridian: %lf degrees Latitude of Center: %lf degrees Latitude of Center: %lf degrees Latitude of Origin: %lf degrees Latitude of Origin: %lf degrees Latitude of True Scale: %lf degrees Latitude of True Scale: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees 1st Standard Parallel: %lf degrees 2nd Standard Parallel: %lf degrees Standard Parallel: %lf degrees Standard Parallel: %lf degrees False Easting: %lf meters False Northing: %lf meters False Easting: %lf meters False Northing: %lf meters %s %lf %s %lf %s %ld %s %ld P @aaaaaaaaaaaaaa a  $ (4 88<D HP TX \` ddhp tx |       $ ((,D HL PX \\`|              4 8@ DDH` dh p ttx            4D HP TX \\`h lt x|              ( ,0 448L` dl px ||           $ (0 448@ DL PPT\ `h l pt xx|            , 04 88<D HP T X\ ``dl pt x|            $ ( ,0 448@ DH LP Td hl ppt|              $ (8 <@ DDHP TX \\`t                 $ ( , 0 0 4 H \ ` h l |                                  4 8 @ D T X \ ` ` d l p                                   $ $ ( 0 4 8 < < @ T h l t x                                  ( @ D L P X \ \ ` h l t x x |                                   8 < D H T X X \ d h p t x |                           $, 0 48 <<@H LP TX \h llpx |               $ ((,      4      L               $ t ( , H  0 4   8 < T  @ D (  H L  P T  X \  ` d 08@HPX`hpx 8* JmpRee@Khur(v)2 q" !!" "!" !!" !!" "!" ! ""(""(""&"(""(""(""(""(""(2"*"(""*"(""&"(""(""(""("report.cterminal_pterminal_efile_efile_pfptr_pfptr_eparm_fileerr_filep_errorwhatwhereinitiprjprefilepfileclose_fileptitleAradiusradius2Bcenloncenlonmercenlatorigintrue_scalestanparlstparl1offsetpgenrptSgenrpt_longpblank/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/string.h/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tK`  c(c0 c8'c@.H5P<PFOFp WC\CGHOHbF gCakCa o u(G`\H@pbH4{FGXHd{HpF(CGHHLF(C!G@H HF0 C!C!GHHPFP(C!GHHFp(C!G@H HF(C!GHpHPtF(C!GHHH F(C!G0HH F C!C!G,Hp8H@T F(C!GHH( F0 C!C!G@H H FP C!CGHHP Fp CaCGHHFG@H HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK HK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHh</</xhh h%h,+h0h5h:h?hDhJhOhUh[hahehKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o00"Q ,0 oC0<_0ox<  :V 10Z49?LG O%@ Y+~a0i5tq:H y?R  D #T J%1( O  3A UH CM [x NXaYcrf;@nf;`-mwQ `~[]`<5 `;q `!`:# `-, `fclosefopenfprintfprintfstrlenstrcpyp_errorptitleradius2radiusstanparlcenlonmercenloncenlattrue_scaleoriginoffsetpstparl1genrptgenrpt_longpblankinitclose_file_fpdata #*F2F9FPLAF HF@QF[FbFPH iFttF( {FT F FP FFF4Fplamccfor.o 1074015674 1032 20 100644 16280 ` -@P @`@.text@( .rconst@@ h .xdata``@.pdatappH.data@.lita  H .sbss`'#p#^^~xp>R^s^h`xH}p>H$^H8E~Hݤ0fbXcX}@[k'#<Xc 0"0=1"(}@[k'l#4GH=H]"`Xc00^0~JKYc`*YcH}CH}@[k'#Hh>H=!`^H]Bc\X>"P^"}@[k'̅#XHH=X>P^}@[k'#@HX^c\@}@[k'# B\X>"P^"}@[k'`#HX>P^}@[k'@#8HX^B\@}@[k'#HP}@[k'#XH=H]"X^@}@[k'؄#(0bXcX}@[k'#<Xc@^8~pKYc}@[k'# >^p*Xc}@[k'd#>` XcHH^H=AH]b~H}# 8}@[k'#>@ Xc@^`@YcH H=aH] KlYc~H}#(8}@[k'#>@ XcH(0"}@[k'#HH=!}@[k't#c\B\}@[k'\#Hx}@[k'D#`p}@[k'0#H0H=8!h}@[k'#G^^~#k'##^^H1^@^8~B\X}@[k'#<0XcX}@[k'#0\0~jYc"@B\P}@[k'p# HB\ ^@}@[k'L#H@H= aJKYcP^H]"8}@[k'#P>@ Xc(H@JJXc0^0~ `00= 1"(}@[k'ā#G4(H=PH]"H^0AYc }@[k'#P>@ XcP}@[k'd#(>@ XcH0@ Xc@>H](bP~}@[k' #(>@ XcP^ @YcH8` Xc8>G^^`#k?|=-DT!? Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-forLAMBERT CONFORMAL CONICPoint can not be projectedlamcc-forH@4 8@ DL PX \h llpx |            ( ,< @@ DT Xd hh lx |                $ (0 44 8L PPT\ `          $( ,< @H LLPd hl pt xx |            H LLPX \h llp|           8 < @D HHL` dl p       p t  x | (08@HP X`hpx      >H9"22(=9= J'!6"*U  % $& / lamccfor.cr_majorr_minoresecenter_loncenter_latnsf0rhfalse_eastingfalse_northinglamccforintr_majr_minlat1lat2c_lonc_latfalse_eastfalse_northsin_pocos_poconms1ms2tempts0ts1ts2lamccforlonlatxyrh1sinphithetats/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK !,7:=@ N]FiCoC#u"zCC0C8C0GDDDDDDDDD HP ]H FC"CC$GDDDDD H`HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,!.,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  p x+n )!`q9>/@n/`-d@( `G2]`<, `;h `: `- ` `cosfabslogpowsinsqrtlamccforlamccforintp_errorptitletsincosmsfnztsfnzradius2stanparlcenlonmeroriginoffsetpadjust_lon_fpdata   F#F/7>FLRZcmt|lamccinv.o 1074015675 1032 20 100644 16120 ` -@HP 0``0І.text0( .rconst00 X .xdataPPx@.pdata``h.datappp@.lita .sbss`'І#p#^^~xp>R^s^h`xH}p>H$^HE~HݤfbXc}@[k'`#<Xc İ=@1"}@[k'0#4GH=H]"`Xc00^0~JKYc*YcH}CH@}@[k'̅#Hh>H=!`^H]Bc\X>"P^"}@[k'#XHH=X>P^}@[k'h#@HX^c\}@[k'D# B\X>"P^"}@[k'$#HX>P^}@[k'#8HX^B\}@[k'#H}@[k'Ą#XH=H]"X^}@[k'#(0bXc}@[k'#<Xc@^8~pKYc}@[k'L# >^p*Xc}@[k'(#>` XcHH^H=AH]b~H}# 0}@[k'܃#>@ Xc@^`@YcHH=aH]KlYc~H}#(0}@[k'#>@ XcHP"x}@[k'X#HH=!p}@[k'8#c\B\h}@[k' #H`}@[k'#`X}@[k'#HH=!P}@[k'Ԃ#G^^~#k'##^^~ ^1^H^@~(H]%XcH}#!$XcHD*XcHe`LXcMXcYc@}@[k'$#\\ AXcJXc*Xc@}@[k'쁽##\\0 `PEXcQDXc8}@[k'#0`H@@|@>a"H]bYcH}ÍHNYcpnXcB\0}@[k'D#8H8>(^"(}@[k' #@(> (H}#0^aAYcHd+Xc }@[k'Ԁ#HG^^~ P#k?-DT!|= Equal Latitiudes for St. Parallels on opposite sides of equatorlamcc-invLAMBERT CONFORMAL CONIC80p4 8@ DL PX \h llpx |            $ (8 << @P T` dd ht x                $, 00 4H LLPX \|          $ (8 <D HHL` dh lp tt x           P T` dp t      ( ,4 8H LP T` dh l       ` d  h l  (08@ H PX` h p x  D8@!P1P1 h<9= J&!6"*e  * *  Nlamccinv.cr_majorr_minoresecenter_loncenter_latnsf0rhfalse_eastingfalse_northinglamccinvintr_majr_minlat1lat2c_lonc_latfalse_eastfalse_northsin_pocos_poconms1ms2tempts0ts1ts2lamccinvxylonlatrh1tsthetaflag/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK !,7:=@N]FiCoC#u"zCC0C8C0GDDDDDDDDDHP]HF%$(C C0G#"DDD!H`HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,!.,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  p x*o)!<Ps9D/@n/`-b@) `G3]`<* `;f `: `- ``atan2fabslogpowsinsqrtlamccinvlamccinvintp_errorptitletsincosmsfnztsfnzradius2stanparlcenlonmeroriginoffsetpadjust_lonphi2z_fpdata F%F19@HNT\eov~paksz.o 1074015699 1032 20 100644 10472 ` -@P   Ђ.text 2 .rconst    .xdata@@(@.pdataPP8.data``H@.lita H'Ђ##^>^^ ~(@ G@<8>\8^@(}@[k'p#\ \abXc[cH>H>h? )@  =1"}@[k'$#\ NH>H>[JXc#jXc\kbXc[cH~H>'A (" =@1"}@[k'#\ 0H>H>[0>0^JBYc#jXc|kXc ` P" =h1"}@[k'@#\ ^^ ~(P#kaEpBzD$tI?  Illegal DMS fieldpaksz-degIllegal DMS fieldpaksz-minIllegal DMS fieldpaksz-sec `8 <H LX \\`l p           $4 8d hx |       P T  V ! $@ h(%( !E&2C'3D'? paksz.cpakszangiflgfacdegminsectmpi/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK F C ,GD$ D#$"( ,H@  HHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</ ,,xxKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t P5q%!.@n.`-' `&1]`<d `; `: `- `B`fabsp_errorpaksz_fpdata Funtfz.o 1074015700 1032 20 100644 9672 ` -@P p.text8 .xdata@.pdataX.data@.lita('p##^> G^ 顽 A ^@~`@`L!M@Cޤ' "=1"}@[k'聽#M G "=1"}@[k'#G^> #kUncompatable unit codesuntfz-codeIllegal source or target unit codeuntfz-unit?y1s- AcܥL@?;pjځ?u:?X%? @?(? @U>?xV42?:RFߑ? @?B?ׁ??`P p tx |       8U H! ppXh%"%T8' Funtfz.cfactorsuntfzinunitoutunitfactor/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK` Fp(C  &C GH`H HK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,3/@/ x,xKӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  '="- 8@n- `-1 `";]`<c `; `: `- `A`p_erroruntfz_fpdataF sphdz.o 1074015699 1032 20 100644 11608 ` -@H P 0.textH .rconst  .xdata  @.pdata00 .data@@(@.lita@ '##^>^~ (0^8~ G@> G G GX@>@}@[k'#\@@}@[k'p#\`<AXc lKj@lj\0BYc8}@[k'#@Xc {ljkw @0$,0ݤFJ0hkl-" 0]0܍˝`" 00] <+T0=AL0}cjJG(}@[k'0# G"A 0"0=1" }@[k'#0"0=1" }@[k'䂽# 4G G/à"A!M0C !M0C#+!M0CEJç"A!M0Chl!M0C0} !M0CՍ̝!M0C0= G^>^~ (0^8~P#kjmJ8oJ?˯MXA>  Invalid spheroid selectionINFORMATIONALReset to 0INFORMATIONALTXAGITXAISXA`TXATXATXASXA@TXA@TXAbXTXA'1SXAu SXA@TXATXATXA@TXATXATXATXA@MXAMXA˯MXA333?XA ?XA+?XA ?XAd?XAIF?XA؁s?XA =?XA?XAp=:H?XA~!?XA1?XA?XAoT?XA?XA4?XAX?XAp'?XAR_?XA@MXAMXA˯MXAL PPTh llp       $ (0 4< @T X` dl p|           0 D d x      0 4   y% > )!! ,@), & $    0" " " "E' $ $ $0sphdz.cmajorminorsphdzisphparmr_majorr_minorradiust_majort_minorjsph/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/stdlib.hdiv_tquotremldiv_t/usr/include/math.hexceptiontypenamearg1arg2retvalcproj_prototypes.hK @F  Q CA %A -A 5A@G#<a"Da LQHH0HK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHKRR "R"&Ǣ@"&b&ʒHK(ǂb@$r)"."3"HK H</,/@,x,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 oC0<_0ox< ,0t > Pl@)>Q@nQ`-!- `(7]`< `; `- `:+ `e`labsfabssqrtp_errorsphdz_fpdata F0br_gctp.o 1074015700 1032 20 100644 1728 ` -@P 0Ѐ.texthX .xdata(@.pdata8.litaH'Ѐ#`#`^>^x~ph^^^^ (08@HPX>^x~ph}@[k'(#`^#k     0 `x Cbr_gctp.cgctp_incoorinsysinzoneinparminunitindatumiprefilejprpfileoutcooroutsysoutzoneoutparmoutunitfn27fn83iflgK FP CqCC%Cq,C3C0;C8?C@ECHICPOCqXWC`^ChfCqpnCxvC1{C1C(G`H@ HHhh,x0 @gctp_gctp_fpdataF isinusfor.o 1074015672 1032 20 100644 21536 ` -@X'P @ @@ .text@ (  .rconst@ @ ph .xdata @@.pdata @x$.data0 0 X8&@.litap(x&.sdatapp#^> =p"=X1"^~}@[k'#^ #k'##^>^~@8>0^(~^^H=! H]x}@[k'\#  ^@"=1"_ @8"=H1"_ 0 8> Xc0\8~jYc@0`lXct0XmXco0P܍nXc[cHޝH>P>P[0oXcp}@[k't#0P<Xc"=1"_ _0 Ec  0"=@1"_ U0H@Xc<0@<AXc7 0P\ JXc[cH^H>$>$~P~P~[0KXcp}@[k'#0P<Xc"=1"b_ ,@8>0^(~G$h}@[k'P#H=H]B@"=1"L_ Gp"=1"C_ "=1"<_ p"=1"5_ ^>^~`#k?!U @'##^>^~ (0^8~@^1^X^P~ G G C08Xc"= 1" @G0 `Xc 0<aXc 00\jXc@0|kXc00lXc0#mXcYA _$B M@@0E`"=P1"@G]A G`}@[k'X# G`x"=p1"@GhX P>+8\jDYcK``~[00klYc k(TGGX}@[k'̋#0 @k00-mXc88ˍ0(Yc8 0<Zc8 H0kcL`}@[k'd#` `K @G(}@[k'D#x"=1"@G`K G0K "A]@`>`[8<Xc0K[` Xc8| `Yc0B XcYAB\P}@[k'#Xc``>[@Xc8\ Xc[c B\P}@[k'\#``>[@Xc8\ Xc[c JT@LJ4Gj[8kYcj5A *4 BTGX}@[k'Љ#  TGX}@[k'# 4 AJ!` 0+#O9#CCH0MXcH^`^`ލ[mYcP0OXcHhh[oZcX띬 %#!h G"=`1"@G "=@1"@G"=01"@G^>^~ (0^8~@p#k#U`@'##^( >^~H=(> ^~@}@[k'H#^@"=1"_ G^0#k'##^>^^ ~ GH>R^@~8@8@"=1"@yh* _$#B "@ "=1"@n0 H> Xcg0\H~jYca@0lXcZ0mXcUʍOoXcYc8~Ý00Zc *PZc00^[cP^P>0ʤ @('@)5@ G8jH3Zc0BuZc @[cPޞP4G00BXX[WXc8XXc[c["YXc`j#MtBS[ZB[c`#MBu[:[[c(^P(ޏ][c[c@>G  ^>^^ ~`#k'##^> G "=1"@h) _$#B "@ "=1"@h` (}@[k'8#`G(}@[k' # GG^>#k#^> =p"=^~s}@[k'Ȅ# ^ #k??m0_?-DT!?-DT!-DT!@-DT!-DT! -DT! @|=Gz@{Gz{Gz?)\3Aףp= ? >   error (isinusfor.c/%s : %s ` memory allocation invalid parameter invalid handle invalid keyisinusforinitbad return from Isin_for_freeisinusforinitbad parameter; sphere radius invalidisinusforinitbad parameter; longitude of central meridian invalidisinusforinitbad parameter; nzone out of rangeisinusforinitbad parameter; nzone not near an integer valueisinusforinitbad parameter; nzone not multiple of twoisinusforinitbad parameter; ijustify out of rangeisinusforinitbad parameter; ijustify not near an integer valueIsin_for_initbad return from Isin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initIsin_for_initisinusforbad return from Isin_fwdIsin_fwdIsin_fwdIsin_for_freeIsin_for_free error (isinusfor.c/%s) : (%i) %s H @ p  ( ,,0Dx |          , 0@ Dt xx|        @ DDHP Td hl pt             $(T          0 4d hl pt         $4 8L Pd h        $< @@Dh l      8 << @t x         $(h     0 4 8 < @ \ ` d h l t x         P T   H d h l p t                  $ $ (   D  T   h     H      $ X     (0 8@H PX`h  <t 'L0DD(pRNR)2 ,a;Tg24h["1*%)(%""U@FpOAA€@6B1~y0 '&GGGNH!04 0isinusfor.cISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinerrorroutinetextisinusforinitspherelon_cen_merfalse_eastfalse_northdzonedjustifynzoneijustifyistatIsin_for_initnrowthisIsinrowirowclatncol_cenisinusforlonlatxyIsin_fwdcolflonIsin_for_freeIsin_errorerr/usr/include/stdio.h/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/stdlib.hdiv_tquotremldiv_t/usr/include/math.hexceptiontypenamearg1arg2retvalisin.hncolicol_cenncol_invIsin_row_tfalse_eastfalse_northspheresphere_invang_size_invnrownrow_halfref_lonlon_cen_merijustifycol_distcol_dist_invrowkeyIsin_tnumstrerror_tKP x  ) 8pDBIN0 OCQWCQG8HDIH`D\F`jCqC}CC#"4G D1D1H0\HTF$j#q}CC  1LGp   "DHHhF(C CC1C1 GD1tHHF@ aC#C1C14GD D" DHp`HH F G HH !N ,COCQGDH`P!H0HK HK"b8$% *@1ɢ6ɢ<DɲJɲP"@Z`ɢ$2iHKpR"@b%2HKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHKRR "R"&Ǣ@"&b&ʒHK(ǂR@$b)r.r3rHKb "@"2 Bpr+2@62B2I2T2@a"f"p2x2@ɢ22ɲ@"rɢ@ɢȒʲHh</< < h,x(< <o 1,>< CI< </KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 oC0<_0ox< 0,UN+x,0 <o <o 0 0 < < 0 < 0 <  TYD  `jT5>ph(01: `H >; C >XN0J0@O0J0 @nFL:`-]P `dZ]`<| `; `- `:  `Z '`_iobfprintffreemalloccosfabsisinusforinitIsin_for_initisinusforIsin_fwdIsin_for_free_OtsDivide64_fpdata! D"FT0Fh>FHFH QF_lisinusinv.o 1074015673 1032 20 100644 21600 ` -@'P @ @@ .text@ ( .rconst@ @ ph .xdata @@.pdata @$.data0 0 Xx&@.litap(&.sdatapp#^> =p"=X1"^~}@[k'#^ #k'##^>^~@8>0^(~^^H=! H]x}@[k'\#  ^@"=1"_ @8"=H1"_ 0(8> Xc0\8~jYc@0XlXct0PmXco0H܍nXc[cHޝH>P>P[0oXcp}@[k't#0H<Xc"=1"_ _0 Ec  0"=@1"_ U0@@Xc<08<AXc7 0H\ JXc[cH^H>$>$~P~P~[0KXcp}@[k'#0H<Xc"=1"b_ ,@8>0^(~G$h}@[k'P#H=H]B@"=1"L_ Gp"=1"C_ "=1"<_ p"=1"5_ ^>^~`#k?!U @'##^>^~ (0^8~@^1^X^P~ G G C00Xc"= 1" @G0(`Xc 0<aXc 0\jXc@0|kXc0lXc0#mXcYA _$B M@@0E`"=P1"@G]A G`}@[k'X# G`x"=p1"@GhX P>+8\jDYcK``~[0klYc k(TGGX}@[k'̋#0 @k0-mXc88ˍ0Yc8 0<Zc8 H0kcL`}@[k'd#` `K @G(}@[k'D#x"=1"@G`K G0K "A]@`>`[8<Xc0K[` Xc8| `Yc0B XcYAB\P}@[k'#Xc``>[@Xc8\ Xc[c B\P}@[k'\#``>[@Xc8\ Xc[c JT@LJ4Gj[8kYcj5A *4 BTGX}@[k'Љ#  TGX}@[k'# 4 AJ!` 0+#O9#CCH0MXcH^`^`ލ[mYcP0OXcHhh[oZcX띬 %#!h G"=`1"@G "=@1"@G"=01"@G^>^~ (0^8~@p#k#U`@'##^( >^~H=(> ^~@}@[k'H#^@"=1"_ G^0#k'##^>^~ (^ GH>@^ G G"=1"@xh, _$#B "@ "=1"@m @>  XcL@ Xc j0 lYc]`0܍YcW0/Zc ,OYc88^[cP^P>0 B(,1)B)5 B GlH3ZcXSuZc0~`#MBԎ[0Zc`̦#MBBZc'@8<YXc" 8L0|[[Xc[[cK0[cˏ0^~ (^`#k'##^> G "=1"@h) _$#B "@ "=1"@h` (}@[k'<#`G(}@[k'$# GG^>#k#^> =p"=^~s}@[k'̄# ^ #k??-DT! -DT! @-DT!@-DT!?-DT!-DT!|=Gz@{Gz{Gz?)\3Aףp= ? >    error (isinusinv.c/%s) : %s ` memory allocation invalid parameter invalid handle invalid keyisinusinvinitbad return from Isin_inv_freeisinusinvinitbad parameter; sphere radius invalidisinusinvinitbad parameter; longitude of central meridian invalidisinusinvinitbad parameter; nzone out of rangeisinusinvinitbad parameter; nzone not near an integer valueisinusinvinitbad parameter; nzone not multiple of twoisinusinvinitbad parameter; ijustify out of rangeisinusinvinitbad parameter; ijustify not near an integer valueisinusinvinitbad return from Isin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initIsin_inv_initisinusinvbad return from Isin_invIsin_invIsin_invIsin_inv_freeIsin_inv_free error (isinusinv.c/%s) : (%i) %s H @ p  ( ,,0Dx |          , 0@ Dt xx|        @ DDHP Td hl pt             $(T          0 4d hl pt         $4 8L Pd h        $< @@Dh l      8 << @t x         $(h     , 0 4 8 < X \ ` d h       t x           D ` d h l p                    $   D  T   h     D      $ X     (0 8@H PX`h  <t ((0M1DD(RN(S)2 ,a;Tg24h["1*%)(%""U@FpOAA€@6B1~y0 (&GXGMW!04 @isinusinv.cISIN_BADALLOCISIN_BADPARAMISIN_BADHANDLEISIN_BADKEYisinerrorroutinetextisinusinvinitspherelon_cen_merfalse_eastfalse_northdzonedjustifynzoneijustifyistatIsin_inv_initnrowthisIsinrowirowclatncol_cenisinusinvxylonlatIsin_invcolflonIsin_inv_freeIsin_errorerr/usr/include/stdio.h/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/stdlib.hdiv_tquotremldiv_t/usr/include/math.hexceptiontypenamearg1arg2retvalisin.hncolicol_cenncol_invIsin_row_tfalse_eastfalse_northspheresphere_invang_size_invnrownrow_halfref_lonlon_cen_merijustifycol_distcol_dist_invrowkeyIsin_tnumstrerror_tKP x  ) 8pDBIN0 OCQWCQG8HDIH`D\F`jCqC}CC#"4G D1D1H0\HTF$j#q}CC  1LGp   "DHHhF(C CC1C1 GD1tHHF@ aCC 1 18GD D" <Hp\HD F G HH !N ,COCQGDH`P!H0HK HK"b8$% *@1ɢ6ɢ<DɲJɲP"@Z`ɢ$2iHKpR"@b%2HKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHKRR "R"&Ǣ@"&b&ʒHK(ǂR@$b)r.r3rHKb "@"2 Bpr+2@62B2I2T2@a"f"p2x2@ɢ22ɲ@"rɢ@ɢȒʲHh</< < h,x(< <o 1,>< CI< </KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 oC0<_0ox< 0,UN+x,0 <o <o 0 0 < < 0 < 0 <  TYD  `jT5>ph(01:`D >; C >YN0J0@PO0J0 @nFL:`-]P `dZ]`<| `; `- `:  `Z '`_iobfprintffreemalloccosfabsisinusinvinitIsin_inv_initisinusinvIsin_invIsin_inv_free_OtsDivide64_fpdata! D"FT0Fh>FHFD QF_lbceafor.o 1074015663 1032 20 100644 14096 ` -@8P `.text( .rconst .xdata@.pdata.data @.litap8X.sbss`'##^80>(^ ~80=0>0]"(^0}C ~0d00ݤ0Ǎ0nYcޝގVZc6[c0О0=x}@[k'<#00=!8\*Xc 4G0}8C080p}@[k'能#0 0= }@[k'ȃ#0(0= !@>0]B0}(cJKYc0(JLYc0Ycx}@[k'l#@>` Xc00h`}@[k'D#00=!X}@[k'$#0P}@[k' #0H}@[k'#00=!@}@[k'Ԃ#G^P#k'##^^80>(^ ~0=8>0 Xc(}@[k'|#0 }@[k'd#\080=!0]B~JKYc0} JLYc*Xc($00ݤƍNYc0 nYc Yc ]0<00Zc@0=QRBZcRBZc|2rZcrRXcH^0]ZctZcP0}ӎVZc6Zc0X[c<[cpZc}@[k'#P>@ XcH^ @Yc@~@`Yc00=0]0MYcMYc Yc(~00%^Q2Zc0ݤ0fsZcq3ZcZc G^^`#k?h㈵>  Cylinderical Equal Area, 08 <D HP T\ `h lp tx |              $( ,0 448@ DH LT X\ `l p|                 $ (( ,Dh l|           , 04 8H L` d|         $( ,0 4\ `d hx |   D    ( 08@ H PX`hpx 0c 01X*X*p525 &&" !7 D ". />0bceafor.cr_majorr_minoreeslon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzindbceaforintr_majr_mincenter_loncenter_latfalse_eastfalse_northtempbceaforlonlatxydlonsinphiq/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK@  +6ES[cfjFuC{CCCCC(GpD8H@DjHDFCCC!C!$G D"D`HpHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,x#,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  P2^D`c20$0@n$`-C5) `p<3]`<  `;G `: `- ``coslogsinsqrtbceaforintbceaforptitleradius2cenlonmertrue_scaleoffsetpadjust_lon_fpdata FDF$+3=HP[bceainv.o 1074015663 1032 20 100644 15712 ` -@HP ``І.text`( .rconst``@ .xdata@.pdata.data @.lita X.sbss``'І##^80>(^ ~88=0>8]"(^8}C ~8d88ݤ8Ǎ8nYcޝގVZc 6[c8О8=}@[k' #88=!8]BA*Xc8}#8d8KlYc8ݤf8(܍Yc4G8([c8= :8](8} <00Zc@8T |2rZc rZcH^8Zc ܊uZcP8ݦ 7[c87 \:[cpZcx}@[k'̄#P>@ XcH^ @Yc@~@`Yc8 8=p}@[k'#88= }@[k'h#88=!@>8]B8}cJKYc8JLYc 0Yc}@[k' #@>` Xc8h`}@[k'䃽#88=!X}@[k'ă#8P}@[k'#8H}@[k'#88=!@}@[k't#G^`#k'\##^^~^1^(^ ~8=$Xc8]"#aXc8}(c!`8DJjXc8epKYc0}@[k'܂# 8=!8]B8}cJKYcjXc*Xc(}@[k'#(}cXc8=AA*Xc8]b8} KlYcp+Xc0}@[k'@#\8 \a*Xc8=a KlYc+Xc8]܍MYc-Xc0>BXc }@[k'ȁ#0>@ Xc@Xc08@|JKYc8=LYc LYc8^܉PNXc }@[k'T#8>@ Xc0^@Yc08`KlYc8~PMXc }@[k'#8>@ Xc0^@Yc 8=a8]8}LYclXclYc(}@[k'#(G^^~@#k@@@@?m-?U?[[?*B*B?` ` ?h㈵> Cylinderical Equal Areap`, 08 <D HP T\ `h lp tx |               4 8D HP TX \` dt x|         0 48 <@ DDHP TX \` ddhp tx |                 $, 04 88 <D HL PT XX \t          4 88 <X \h lp t        ( ,0 4@ DH Ld ht xx|        , 00 4   t        (08@HP h @7 !00;H8< 6&" !7 D "-/ /-%O_0bceainv.cr_majorr_minoreese_p4e_p6lon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzqpindbceainvintr_majr_mincenter_loncenter_latfalse_eastfalse_northtempbceainvxylonlatbeta/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKP` hpx %*5@O]empswFCCCCCC(GDhHptwHtF$#C!C!,G0"HHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,x$,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t `5ft"@kH8@%@n%`-G6) `t=3]`< `;K `: `- ``asincoslogsinsqrtbceainvintbceainvptitleradius2cenlonmertrue_scaleoffsetpadjust_lon_fpdata  Ft!F)08BMU`ceafor.o 1074015664 1032 20 100644 14096 ` -@8P `.text( .rconst .xdata@.pdata.data @.litap8X.sbss`'##^80>(^ ~80=0>0]"(^0}C ~0d00ݤ0Ǎ0nYcޝގVZc6[c0О0=x}@[k'<#00=!8\*Xc 4G0}8C080p}@[k'能#0 0= }@[k'ȃ#0(0= !@>0]B0}(cJKYc0(JLYc0Ycx}@[k'l#@>` Xc00h`}@[k'D#00=!X}@[k'$#0P}@[k' #0H}@[k'#00=!@}@[k'Ԃ#G^P#k'##^^80>(^ ~0=8>0 Xc(}@[k'|#0 }@[k'd#\080=!0]B~JKYc0} JLYc*Xc($00ݤƍNYc0 nYc Yc ]0<00Zc@0=QRBZcRBZc|2rZcrRXcH^0]ZctZcP0}ӎVZc6Zc0X[c<[cpZc}@[k'#P>@ XcH^ @Yc@~@`Yc00=0]0MYcMYc Yc(~00%^Q2Zc0ݤ0fsZcq3ZcZc G^^`#k?h㈵>  Cylinderical Equal Area, 08 <D HP T\ `h lp tx |              $( ,0 448@ DH LT X\ `l p|                 $ (( ,Dh l|           , 04 8H L` d|         $( ,0 4\ `d hx |   D    ( 08@ H PX`hpx 0a 01X*X*p525 &&" !7 D ". />0ceafor.cr_majorr_minoreeslon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzindceaforintr_majr_mincenter_loncenter_latfalse_eastfalse_northtempceaforlonlatxydlonsinphiq/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hK@ *5DRZbeiFsCyCCCCC(GpD8H@DiHDFCCC!C!$G D"D`HpHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,x#,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t  P1]D`b20$0@n$`-@5) `m<3]`< `;D `: `- ``coslogsinsqrtceaforintceaforptitleradius2cenlonmertrue_scaleoffsetpadjust_lon_fpdata FDF")1;FNYceainv.o 1074015664 1032 20 100644 15704 ` -@HP ``І.text`( .rconst``@ .xdata@.pdata.data @.lita X.sbss``'І##^80>(^ ~88=0>8]"(^8}C ~8d88ݤ8Ǎ8nYcޝގVZc 6[c8О8=}@[k' #88=!8]BA*Xc8}#8d8KlYc8ݤf8(܍Yc4G8([c8= :8](8} <00Zc@8T |2rZc rZcH^8Zc ܊uZcP8ݦ 7[c87 \:[cpZcx}@[k'̄#P>@ XcH^ @Yc@~@`Yc8 8=p}@[k'#88= }@[k'h#88=!@>8]B8}cJKYc8JLYc 0Yc}@[k' #@>` Xc8h`}@[k'䃽#88=!X}@[k'ă#8P}@[k'#8H}@[k'#88=!@}@[k't#G^`#k'\##^^~^1^(^ ~8=$Xc8]"#aXc8}(c!`8DJjXc8epKYc0}@[k'܂# 8=!8]B8}cJKYcjXc*Xc(}@[k'#(}cXc8=AA*Xc8]b8} KlYcp+Xc0}@[k'@#\8 \a*Xc8=a KlYc+Xc8]܍MYc-Xc0>BXc }@[k'ȁ#0>@ Xc@Xc08@|JKYc8=LYc LYc8^܉PNXc }@[k'T#8>@ Xc0^@Yc08`KlYc8~PMXc }@[k'#8>@ Xc0^@Yc 8=a8]8}LYclXclYc(}@[k'#(G^^~@#k@@@@?m-?U?[[?*B*B?` ` ?h㈵> Cylinderical Equal Areap`, 08 <D HP T\ `h lp tx |               4 8D HP TX \` dt x|         0 48 <@ DDHP TX \` ddhp tx |                 $, 04 88 <D HL PT XX \t          4 88 <X \h lp t        ( ,0 4@ DH Ld ht xx|        , 00 4   t        (08@HP f @7!00;@8< &&" !7 D "-/ /-%O_0ceainv.cr_majorr_minoreese_p4e_p6lon_centerlat_truescfalse_northingfalse_eastingcosphi1sinphi1kzqpindceainvintr_majr_mincenter_loncenter_latfalse_eastfalse_northtempceainvxylonlatbeta/usr/include/stdio.hsize_tfpos_t_cnt_flag2_ptr_base_bufsiz_flag_file__newbase_lock_bufendpFILE/usr/include/va_list.h_a0_offsetva_list/usr/include/sys/types.hptrdiff_twchar_twctype_ttime_tclock_tssize_tuchar_tushort_tuint_tulong_tvuchar_tvushort_tvuint_tvulong_trphysadr_tlabel_tvallevel_tdaddr_tcaddr_tqaddr_taddr_tino_tcnt_tdev_tchan_toff_trlim_tpaddr_tnlink_tkey_tmode_tuid_tgid_tmid_tpid_tslab_tshmatt_tmsgqnum_tmsglen_twint_tsigset_t__pthread_attr_t__valid__name__arg__reservedpthread_attr_t__pthread_mutexattr_tpthread_mutexattr_t__pthread_condattr_tpthread_condattr_t__pthread_t__reserved1__reserved2__size__version__reserved3__external__reserved4__creator__sequence__reserved5__per_kt_area__stack_base__stack_reserve__stack_yellow__stack_guard__stack_size__tsd_values__tsd_count__reserved6__reserved7__thread_flags__thd_errno__stack_hiwaterpthread_tpthreadTeb_t__pthread_mutex_t__lock__depth__owner__blockpthread_mutex_t__pthread_cond_t__statepthread_cond_tpthread_key_t__pthread_once_tpthread_once_ttimer_tsig_tid_tuseconds_tmajor_tminor_tdevs_tunit_tucharushortuintulongphysadru_charu_shortu_intu_longvu_charvu_shortvu_intvu_long_quadquadswblk_tfixpt_tsa_family_tin_addr_tin_port_t/usr/include/mach/machine/vm_types.hvm_offset_tvm_size_t/usr/include/sys/select.hfd_maskfd_setfds_bitstimeval/usr/include/math.hexceptiontypenamearg1arg2retval/usr/include/stdlib.hdiv_tquotremldiv_tcproj_prototypes.hKP` hpx$)4?N\dlorvFCCCCCC(GDhHptvHtF$#C!C!,G0"HHHK"b8$% *"@1ɢ6ɢ<DɲJɲP@Z`ɢ$2iHKpR"@2%BHKP "$b,b5<D"LrTʲ]bd"lbuʢ""bPbR2ʲrʲrR"" r%+22;2E2NbU"^bo"@wr~"r ^ Dzo"@2 rʒ po"@ R Ǣr@rɲr%r1r<ɲ HrR"] irwrr@rr"r @"bbb rʲ $ʂ 01bCb ob@wr~bJbR"R"@Zr1br(rb ob@wr~bR"ZrrrbXR"@R"Rʲbʂ 2"$ʂ+392@rHʲQX2`"`Ȳfʂk"s2{rbʲHK@&"2"HK""#b*ɒ#2#3ǒ3rHK(ǂb@$r)"."3"HKRR "R"&Ǣ@"&b&ʒHK H</,x$,KӠ|<x</ h0?<4Z0<_x<</<?<O<_<o <<<|< <<<|<x/@00</x/ @0?<o<<<x<<<<<<<<</<?<O<_<o<h<</ <<<<<<|/@0<o|/@0<|/ @0< /|/@h00<<00<o00<<00<_<oh<<<<<<<<<<<</<?<O<_<o<<<</ 0<<< < </ <? & <|<</&`<</<// 0?<o0 ,0 oC0<_0ox<t `4dt"@i@8@%@n%`-D6) `q=3]`<  `;H `: `- ``asincoslogsinsqrtceainvintceainvptitleradius2cenlonmertrue_scaleoffsetpadjust_lon_fpdata  Ft F'.6@KS^hdf-eos5-5.1.14+dfsg.1/src/0000755000175000017500000000000012024715435016216 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/src/Makefile.am0000644000175000017500000000112012024715435020244 0ustar amckinstryamckinstry# HDF-EOS5 src Makefile.am # Boilerplate definitions include $(top_srcdir)/config/include.am ## Note that gctp/include contains several header files with the same names ## as files in $(top_srcdir)/include. This doesn't currently cause problems ## in this directory, but may if Automake changes. INCLUDES=-I$(top_srcdir)/include/ # Set LDFLAGS to allow the HDF-EOS library to use extern variables from # HDF5 LDFLAGS=-Wl,-single_module # Build HDF-EOS5 lib_LTLIBRARIES=libhe5_hdfeos.la # Source files for library libhe5_hdfeos_la_SOURCES=EHapi.c GDapi.c PTapi.c SWapi.c TSapi.c ZAapi.c hdf-eos5-5.1.14+dfsg.1/src/GDapi.c0000755000175000017500000421325212024715435017362 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (c) 1999 Emergent IT Inc. and Raytheon Systems Company | | | | Permission to use, modify, and distribute this software and its | | documentation for any purpose without fee is hereby granted, provided | | that the above copyright notice appear in all copies and that both that | | copyright notice and this permission notice appear in supporting | | documentation. | ---------------------------------------------------------------------------- */ #include #include #include #define HE5_GRIDOFFSET 671088642 /* (2**26)*10 + 2 */ #define HE5_NGRID 400 #define HE5_NGRIDREGN 512 #define M_PI1 3.14159265358979323846 #define SQUARE(x) ((x) * (x)) /* x**2 */ char HE5_GDXSDname[HE5_HDFE_NAMBUFSIZE]; char HE5_GDXSDdims[HE5_HDFE_DIMBUFSIZE]; /* Grid Structure External Arrays */ struct HE5_gridStructure { hid_t fid; /* HDF-EOS file ID */ hid_t obj_id; /* "GRIDS" group ID */ hid_t gd_id; /* one grid group ID */ hid_t data_id; /* "Data Fields" group ID */ hid_t plist; /* current dataset creation property */ HE5_DTSinfo *ddataset; /* Ptr to dataset info structure */ int compparm[5]; /* compression level */ int active; /* Flag: if file is active or not */ int tilecode; /* tile/no-tile flag */ int tilerank; /* rank of a dataset to tile */ long nDFLD; /* number of data fields */ hsize_t tiledims[HE5_DTSETRANKMAX];/* dimension sizes of tiled dataset */ char gdname[HE5_OBJNAMELENMAX]; /* grid name */ char compmethod[HE5_HDFE_NAMBUFSIZE];/* compression method */ }; struct HE5_gridStructure HE5_GDXGrid[HE5_NGRID]; struct HE5_gridRegion { hid_t fid; hid_t gridID; double upleftpt[2]; double lowrightpt[2]; long xStart; long xCount; long yStart; long yCount; long somStart; long somCount; long StartVertical[HE5_DTSETRANKMAX]; long StopVertical[HE5_DTSETRANKMAX]; char *DimNamePtr[HE5_DTSETRANKMAX]; }; struct HE5_gridRegion *HE5_GDXRegion[HE5_NGRIDREGN]; /* Grid Function Prototypes (internal routines) */ /* --------------------------------------------- */ static size_t HE5_GDfielddatasize(hid_t gridID, const char *fieldname ); static herr_t HE5_GDgetfieldID(hid_t gridID, const char *fieldname, hid_t *fieldID); static herr_t HE5_GDchkgdid(hid_t gridID, const char *routname, hid_t *fid, hid_t *gid, long *idx ); static herr_t HE5_GDwrrdfield(hid_t gridID, const char *fieldname, char *code,const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *datbuf); static herr_t HE5_GDtangentpnts(int, double[], double[], double[], double[], double[], long *); herr_t HE5_GDgetdefaults(int projcode, int zonecode, double projparm[], int spherecode, double upleftpt[], double lowrightpt[]); static int HE5_GDfldnameinfo(hid_t gridID, const char *fieldname, char *fldactualname); herr_t HE5_GDll2mm_cea(int projcode,int zonecode, int spherecode, double projparm[], long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[], long npnts, double lon[], double lat[], double x[], double y[], double *scaleX, double *scaleY); herr_t HE5_GDmm2ll_cea(int projcode,int zonecode, int spherecode, double projparm[], long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[], long npnts, double x[], double y[], double longitude[], double latitude[]); int HE5_szip_can_encode(void ); void HE5_GDgetEastAndNorthFiles(char *eastFile, char *northFile); static herr_t HE5_GDflddiminfo(int gridID, char *fieldname, int *rank, hsize_t dims[], hsize_t maxdims[]); static herr_t HE5_GDupdatedim(int gridhID, char *dimname, hsize_t dim); /* FORTRAN wrappers */ /* ================ */ /* File/Grid access routine */ int HE5_GDopenF(char *filename, int Flags); int HE5_GDcreateF(int fileID, char *gridname, long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[]); int HE5_GDattachF(int fileID, char *gridname); int HE5_GDdetachF(int gridID); int HE5_GDcloseF(int fileID); /* Definition routines */ int HE5_GDdefdimF(int gridID, char *dimname, long dim); int HE5_GDdefprojF(int gridID, int projcode, int zonecode, int spherecode, double projparm[]); int HE5_GDdeforiginF(int gridID, int origincode); int HE5_GDdeffld(int gridID, char *fieldname, char *fortdimlist, char *fortmaxdimlist, int ntype, int merge); int HE5_GDsetfill(int gridID, char *fieldname, int ntype, void *fillval); int HE5_GDdefcompF(int gridID, int compcode, int compparm[]); int HE5_GDdeftileF(int gridID, int tilecode, int tilerank, long *tiledims); int HE5_GDdefcomtileF(int gridID, int compcode, int compparm[], int tilerank, long *tiledims ); int HE5_GDdefpixregF(int gridID, int pixregcode); int HE5_GDsetaliasF(int gridID, char *fieldname, char *fortaliaslist); int HE5_GDdropaliasF(int gridID, int fldgroup, char *aliasname); /* I/O routines */ int HE5_GDwrfld(int gridID, char *fieldname, long fortstart[], long fortstride[], long fortedge[], void *data); int HE5_GDwrcharfld(int gridID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *data); int HE5_GDrdfld(int gridID, char *fieldname, long fortstart[], long fortstride[], long fortedge[], void *buffer); int HE5_GDrdcharfld(int gridID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *buffer); int HE5_GDgetfill(int gridID, char *fieldname, void *fillval); int HE5_GDwrattr(int gridID, char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_GDwrgattr(int gridID, char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_GDwrlattr(int gridID, char *fieldname, char *attrname, int ntype,long fortcount[], void *datbuf); int HE5_GDrdattr(int gridID, char *attrname, void *datbuf); int HE5_GDrdgattr(int gridID, char *attrname, void *datbuf); int HE5_GDrdlattr(int gridID, char *fieldname, char *attrname, void *datbuf); /* Inquiry routines */ long HE5_GDinqdimsF(int gridID, char *dimnames, long dims[]); long HE5_GDdiminfoF(int gridID, char *dimname); int HE5_GDinqflds(int gridID, char *fieldlist, int rank[], int ntype[]); int HE5_GDfldinfo(int gridID, char *fieldname, int *rank, long dims[], int *ntype, char *fortdimlist, char *fortmaxdimlist); int HE5_GDinqdatatypeF(int gridID, char *fieldname, char *attrname, int fieldgroup, int *type, int *TypeClass, int *TypeOrder, long *TypeSize); long HE5_GDinqgridF(char *filename, char *gridlist, long *strbufsize); int HE5_GDgridinfoF(int gridID, long *xdimsize, long *ydimsize, double upleftpt[], double lowrightpt[]); int HE5_GDatinfo(int gridID, char *attrname, int *ntype, long *fortcount); int HE5_GDgatinfo(int gridID, char *attrname, int *ntype, long *fortcount); int HE5_GDlatinfo(int gridID, char *fieldname, char *attrname, int *ntype, long *fortcount); int HE5_GDprojinfoF(int gridID, int *projcode, int *zonecode, int *spherecode, double projparm[]); int HE5_GDorigininfoF(int gridID, int *origincode); int HE5_GDreginfo(int gridID, int regionID, char *fieldname, int *ntype, int *rank, long dims[], long *size, double upleftpt[], double lowrightpt[]); int HE5_GDpixreginfoF(int gridID, int *pixregcode); int HE5_GDcompinfoF(int gridID, char *fieldname, int *compcode, int compparm[]); long HE5_GDnentriesF(int gridID, int entrycode, long *strbufsize); long HE5_GDinqattrsF(int gridID, char *attrnames, long *strbufsize); long HE5_GDinqgrpattrsF(int gridID, char *attrnames, long *strbufsize); long HE5_GDinqlocattrsF(int gridID, char *fieldname, char *attrnames, long *strbufsize); int HE5_GDtileinfoF(int gridID, char *fieldname, int *tilecode, int *tilerank, long tiledims[]); int HE5_GDaliasinfoF(int gridID, int fldgroup, char *aliasname, int *length, char *buffer); long HE5_GDinqfldaliasF(int gridID, char *fldalias, long *strbufsize); long HE5_GDgetaliaslistF(int gridID, int fldgroup, char *aliaslist, long *strbufsize); /* Subsetting/Retrieving routines */ int HE5_GDdefboxregionF(int gridID, double cornerlon[], double cornerlat[]); int HE5_GDextractregionF(int gridID, int regionID, char *fieldname, void *buffer); int HE5_GDdeftimeperiodF(int gridID, int periodID, double starttime, double stoptime); int HE5_GDdefvrtregionF(int gridID, int regionID, char *vertObj, double range[]); int HE5_GDdupregionF(int oldregionID); int HE5_GDgetpixelsF(int gridID, long nLonLat, double lonVal[], double latVal[], long pixRow[], long pixCol[]); long HE5_GDgetpixvaluesF(int gridID, long nPixels, long pixRow[], long pixCol[], char *fieldname, void *buffer); long HE5_GDinterpolateF(int gridID, long nValues, double lonVal[], double latVal[], char *fieldname, double interpVal[]); /* EXTERNAL DATA FILE INTERFACE */ int HE5_GDsetextdataF(int gridID, char *fortfilelist, long offset[], long size[]); int HE5_GDgetextdataF(int gridID, char *fieldname, long namelength, char *fortfilelist, long offset[], long size[]); /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDopen | | | | DESCRIPTION: Opens or creates HDF file in order to create, read, or write | | a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | fid hid_t None HDF-EOS file ID | | | | INPUTS: | | filename char* None Filename | | | | OUTPUTS: | | None | | | | NOTES: | | | | HDF5 Library Functions Called: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A. Muslimov Changed the return type from int32_t to hid_t. | | 7/12/00 A. Muslimov Unmasked the hdf5 data types. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_GDopen(const char *filename, uintn flags) { hid_t fid = FAIL;/* hdf5 type file ID */ char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDopen", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory to error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Call EHopen to perform file access */ /* ---------------------------------- */ fid = HE5_EHopen(filename,flags, H5P_DEFAULT ); if(fid == FAIL) { sprintf(errbuf, "Cannot open the file \"%s\". Check the file name. \n", filename); H5Epush(__FILE__, "HE5_GDopen", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); return(fid); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDcreate | | | | DESCRIPTION: Creates a grid within the file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | gridID hid_t None Grid structure ID | | | | INPUTS: | | fid hid_t None File ID | | gridname char None Grid structure name | | xdimsize long None Number of columns in grid | | ydimsize long None Number of rows in grid | | upleftpt double None Location (m/deg) of upper left corner | | lowrightpt double None Location (m/deg) of lower right corner | | | | OUTPUTS: | | None | | | | NOTES: | | | | HDF5 Library Functions Called: | | | | H5Gopen | | H5Gcreate | | H5Gclose | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A. Muslimov Replaced gid by fid in the call to EHinsertmeta(). | | Added a statement 'nGrid = ngridopen;' to fix a bug | | associated with grid numbering in StructMetadata. | | Also, added the calls gd_id = H5Gcreate( GRIDS_ID, | | gridname, 0). Dynamically allocated memory for | | buffers. Replaced the call to EHattrcat() by | | EHdatasetcat(). Added error hadling after the calls | | to EHinsertmeta() and EHdatasetcat(). | | 3/29/00 A. Muslimov Added "Data Fields" group for consistency with the | | Swath interface. | | 7/12/00 A. Muslimov Unmasked the hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_GDcreate(hid_t fid, const char *gridname, long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[]) { hid_t gridID = FAIL;/* grid ID (return value) */ hid_t HDFfid = FAIL;/* HDF file id */ hid_t gd_id = FAIL;/* gridname group ID */ hid_t GRIDS_ID = FAIL;/* GRIDS group ID */ hid_t gid = FAIL;/* HDF-EOS group ID */ hid_t data_id = FAIL;/* "Data Fields" group ID */ hid_t i; /* Loop index */ herr_t status = FAIL;/* routine status variable */ int ngridopen = 0; /* # of grid structures opened */ long nGrid = 0; /* Grid counter */ char *errbuf = (char *)NULL; /* Buffer for error message */ char *utlbuf = (char *)NULL; /* Utility buffer */ char *header = (char *)NULL; /* Structural metadata header string */ char *footer = (char *)NULL; /* Structural metadata footer string */ char *refstr1 = (char *)NULL; /* Upper left ref string (metadata) */ char *refstr2 = (char *)NULL; /* Lower right ref string (metadata) */ uintn acs = 777; /* Read/Write file access code */ HE5_LOCK; CHECKNAME(gridname); errbuf = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char) ); if (errbuf == NULL) { H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for buffers */ /* --------------------------- */ utlbuf = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if ( utlbuf == NULL ) { sprintf(errbuf, "Cannot allocate memory for buffer.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } header = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if ( header == NULL ) { sprintf(errbuf, "Cannot allocate memory for buffer.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlbuf); return(FAIL); } footer = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if ( footer == NULL ) { sprintf(errbuf, "Cannot allocate memory for buffer.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlbuf); free(header); return(FAIL); } refstr1 = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if ( refstr1 == NULL ) { sprintf(errbuf, "Cannot allocate memory for buffer.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlbuf); free(header); free(footer); return(FAIL); } refstr2 = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if ( refstr1 == NULL ) { sprintf(errbuf, "Cannot allocate memory for buffer.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlbuf); free(header); free(footer); free(refstr1); return(FAIL); } /* ********************************************************** * Check for proper file ID and return HDF-EOS file ID, * * "HDFEOS" group ID and access code * ********************************************************** */ status = HE5_EHchkfid(fid,"HE5_GDcreate", &HDFfid, &gid, &acs); /* Check file access */ /* -------------------------- */ if ( acs == 0 ) { status = FAIL; sprintf(errbuf, "Cannot call HE5_GDcreate on a file opened read-only.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if ( status == FAIL ) { sprintf(errbuf, "Checking for file ID failed.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlbuf); free(header); free(footer); free(refstr1); free(refstr2); return(FAIL); } /* Check gridname for length */ /* ------------------------- */ if ( strlen(gridname) > HE5_OBJNAMELENMAX) { status = FAIL; sprintf(errbuf, "Gridname \"%s\" must be less than %d characters.\n", gridname, HE5_OBJNAMELENMAX); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_FILE, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Determine number of grids currently opened */ /* ------------------------------------------- */ for (i = 0; i < HE5_NGRID; i++) ngridopen += HE5_GDXGrid[i].active; /* Setup file interface */ /* -------------------- */ if (ngridopen < HE5_NGRID) { /* Probe , check if GRIDS group exists */ /* ----------------------------------- */ H5E_BEGIN_TRY { GRIDS_ID = H5Gopen(gid, "GRIDS"); } H5E_END_TRY; if(GRIDS_ID == FAIL ) { nGrid = 0; /* Create the "GRIDS" group */ /* ------------------------ */ GRIDS_ID = H5Gcreate(gid,"GRIDS",0); if ( GRIDS_ID == FAIL ) { sprintf(errbuf, "Cannot create \"GRIDS\" group.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlbuf != NULL) free(utlbuf); if (header != NULL) free(header); if (footer != NULL) free(footer); if (refstr1 != NULL) free(refstr1); if (refstr2 != NULL) free(refstr2); return( FAIL ); } } /* Group "GRIDS" exists */ else { /* Probe , check if gridname group exists */ /* -------------------------------------- */ H5E_BEGIN_TRY{ gd_id = H5Gopen(GRIDS_ID, gridname); } H5E_END_TRY; if( gd_id == FAIL ) { /* Get the number of grids in "GRIDS" group */ /* ---------------------------------------- */ nGrid = HE5_EHdatasetcat(fid, "/HDFEOS/GRIDS", NULL, NULL); if (nGrid == FAIL ) { sprintf(errbuf,"Cannot retrieve the number of grids."); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); H5Gclose(GRIDS_ID); if (errbuf != NULL) free(errbuf); if (utlbuf != NULL) free(utlbuf); if (header != NULL) free(header); if (footer != NULL) free(footer); if (refstr1 != NULL) free(refstr1); if (refstr2 != NULL) free(refstr2); return(FAIL); } } else { sprintf(errbuf, "Grid \"%s\" already exists.", gridname); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_BTREE, H5E_EXISTS, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); H5Gclose(GRIDS_ID); if (errbuf != NULL) free(errbuf); if (utlbuf != NULL) free(utlbuf); if (header != NULL) free(header); if (footer != NULL) free(footer); if (refstr1 != NULL) free(refstr1); if (refstr2 != NULL) free(refstr2); return(FAIL); } } /* gridname does not exist */ /* ----------------------- */ /* Create gridname group */ /* --------------------- */ gd_id = H5Gcreate( GRIDS_ID, gridname, 0); if ( gd_id == FAIL ) { sprintf(errbuf, "Cannot create \"%s\" group.\n", gridname); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlbuf != NULL) free(utlbuf); if (header != NULL) free(header); if (footer != NULL) free(footer); if (refstr1 != NULL) free(refstr1); if (refstr2 != NULL) free(refstr2); return( FAIL ); } /* Create "gridname/Data Fields" group */ /* ----------------------------------- */ data_id = H5Gcreate( gd_id, "Data Fields", 0); if ( data_id == FAIL ) { sprintf(errbuf, "Cannot create \"Data Fields\" group.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlbuf != NULL) free(utlbuf); if (header != NULL) free(header); if (footer != NULL) free(footer); if (refstr1 != NULL) free(refstr1); if (refstr2 != NULL) free(refstr2); return( FAIL ); } /* Establish Grid in Structural MetaData Block */ /* -------------------------------------------- */ sprintf(header, "%s%li%s%s%s%s%li%s%s%li%s", "\tGROUP=GRID_", nGrid + 1, "\n\t\tGridName=\"", gridname, "\"\n", "\t\tXDim=", xdimsize, "\n", "\t\tYDim=", ydimsize, "\n"); sprintf(footer, "%s%s%s%s%s%s%s%li%s", "\t\tGROUP=Dimension\n", "\t\tEND_GROUP=Dimension\n", "\t\tGROUP=DataField\n", "\t\tEND_GROUP=DataField\n", "\t\tGROUP=MergedFields\n", "\t\tEND_GROUP=MergedFields\n", "\tEND_GROUP=GRID_", nGrid + 1, "\n"); /* Build Ref point Col-Row strings */ /* ------------------------------- */ if ( upleftpt == NULL || ( upleftpt[0] == 0 && upleftpt[1] == 0 && lowrightpt[0] == 0 && lowrightpt[1] == 0)) { strcpy(refstr1, "DEFAULT"); strcpy(refstr2, "DEFAULT"); } else { sprintf(refstr1, "%s%lf%s%lf%s","(", upleftpt[0], ",", upleftpt[1], ")"); sprintf(refstr2, "%s%lf%s%lf%s", "(", lowrightpt[0], ",", lowrightpt[1], ")"); } sprintf(utlbuf, "%s%s%s%s%s%s%s%s", header, "\t\tUpperLeftPointMtrs=", refstr1, "\n","\t\tLowerRightMtrs=", refstr2, "\n",footer); /* Insert record to SM dataset */ /* --------------------------- */ status = HE5_EHinsertmeta(fid, (char*)gridname, "g", 1002L, utlbuf, NULL); if (status == FAIL ) { sprintf(errbuf,"Cannot insert metadata."); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); H5Gclose(GRIDS_ID); if (errbuf != NULL) free(errbuf); if (utlbuf != NULL) free(utlbuf); if (header != NULL) free(header); if (footer != NULL) free(footer); if (refstr1 != NULL) free(refstr1); if (refstr2 != NULL) free(refstr2); return(FAIL); } /* Release "GRIDS" group ID */ /* ------------------------ */ status = H5Gclose(GRIDS_ID); if ( status == FAIL ) { sprintf(errbuf, "Cannot close \"GRIDS\" group.\n"); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlbuf != NULL) free(utlbuf); if (header != NULL) free(header); if (footer != NULL) free(footer); if (refstr1 != NULL) free(refstr1); if (refstr2 != NULL) free(refstr2); return( FAIL ); } /* Set up entries in external Table */ /* -------------------------------- */ for (i = 0; i < HE5_NGRID; i++) { if (HE5_GDXGrid[ i ].active == 0) { gridID = i + HE5_GRIDOFFSET; HE5_GDXGrid[ i ].active = 1; HE5_GDXGrid[ i ].fid = fid; HE5_GDXGrid[ i ].gd_id = gd_id; HE5_GDXGrid[ i ].data_id = data_id; HE5_GDXGrid[ i ].obj_id = GRIDS_ID; HE5_GDXGrid[ i ].plist = FAIL; HE5_GDXGrid[ i ].tilecode = HE5_HDFE_NOTILE; strcpy(HE5_GDXGrid[ i ].gdname, gridname); strcpy(HE5_GDXGrid[ i ].compmethod,"HE5_HDFE_COMP_NONE"); break; } } } else { /* Too many files opened */ /* --------------------- */ gridID = FAIL; sprintf(errbuf, "No more than %d grids may be opened simutaneously.\n", HE5_NGRID); H5Epush(__FILE__, "HE5_GDcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Deallocate memory */ /* ----------------- */ if (errbuf != NULL) free(errbuf); if (utlbuf != NULL) free(utlbuf); if (header != NULL) free(header); if (footer != NULL) free(footer); if (refstr1 != NULL) free(refstr1); if (refstr2 != NULL) free(refstr2); utlbuf = NULL; header = NULL; footer = NULL; refstr1 = NULL; refstr2 = NULL; errbuf = NULL; COMPLETION: HE5_UNLOCK; return(gridID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDattach | | | | DESCRIPTION: Attaches to an existing grid within the file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | gridID hid_t None HDF-EOS type grid ID | | | | INPUTS: | | fid hid_t None HDF-EOS file id | | gridname char* None grid sructure name | | | | OUTPUTS: | | None | | | | NOTES: | | | | HDF5 Library Functions Called: | | H5Gopen | | H5Giterate | | H5Dopen | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/24/99 A.Muslimov Added proper error handling after function calls. | | Removed redundant if(status==0){} brackets. | | In the block if( inout.name != NULL){} changed the | | statement before the last one from | | "if(inout.name==NULL) free(inout.name);" onto | | "if(inout.name!=NULL) free(inout.name);" | | Changed the datatype of idx from int32_t to int. | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 10/18/99 A.Taaheri Replaced strcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 01/21/00 A.Muslimov Reset the value of "tilecode" to HDFE_NOTILE in | | external array. | | 02/24/00 A.Muslimov Added more error checkings and cleanings. | | 03/29/00 A.Muslimov Added attaching to the "Data Fields" group. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_GDattach(hid_t fid, const char *gridname) { hid_t gridID = FAIL; /* Return value of the Grid ID */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ hid_t datid = FAIL; /* dataset ID */ hid_t infogid = FAIL; /* "HDFEOS" group ID */ hid_t gd_id = FAIL; /* Grid group ID */ hid_t data_id = FAIL; /* "Data Fields" Group ID */ hid_t i; /* Loop index */ hid_t emptyslot = FAIL; /* "empty" grid index */ herr_t status = FAIL; /* routine return status variable */ int ngridopen = 0; /* no. of grid structures opened */ int idx = FAIL; /* Object index */ uintn acs = 777; /* Read/Write file access code */ HE5_OBJINFO inout; /* IN/OUT data of the operation */ char *grpname = (char *)NULL; /* Grid group name string */ char *errbuf = (char *)NULL; /* Error message buffer */ char *namebuf = (char *)NULL; /* Name list buffer */ char *fldname = (char *)NULL; /* Dataset name buffer */ char *comma = (char *)NULL; /* Pointer to the comma */ HE5_LOCK; CHECKPOINTER(gridname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory to error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper file ID and return HDF-EOS file ID, * * "HDFEOS" group ID and access code * ********************************************************** */ status = HE5_EHchkfid(fid, "HE5_GDattach", &HDFfid, &infogid, &acs); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Determine number of grids currently opened */ /* ------------------------------------------ */ for (i = 0; i < HE5_NGRID; i++) ngridopen += HE5_GDXGrid[ i ].active; if (ngridopen < HE5_NGRID) { /* Allocate memory to the "HDFEOS/GRIDS/gridname" buffer */ grpname = (char *)calloc( (strlen(gridname)+40), sizeof(char)); if(grpname == NULL) { sprintf(errbuf, "Cannot allocate memory to the grpname.\n"); H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } strcpy( grpname, "/HDFEOS/GRIDS/"); strcat( grpname, gridname); /* Try to open the Grid group */ /* ========================== */ H5E_BEGIN_TRY{ gd_id = H5Gopen(HDFfid,grpname); } H5E_END_TRY; if( gd_id == FAIL ) { sprintf(errbuf, "Grid:\"%s\" does not exist within HDF file.",gridname) ; H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(grpname != NULL) free(grpname); free(errbuf); return(FAIL); } /* Try to open the "Data Fields" group */ /* =================================== */ H5E_BEGIN_TRY{ data_id = H5Gopen(gd_id,"Data Fields"); } H5E_END_TRY; if( data_id == FAIL ) { sprintf(errbuf, "Group \"Data Fields\" does not exist in \"%s\" grid.",gridname) ; H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(grpname != NULL) free(grpname); free(errbuf); return(FAIL); } /* Setup External Arrays */ /* ===================== */ for (i = 0; i < HE5_NGRID; i++) { /* Find empty entry in array of grids */ /* ---------------------------------- */ if (HE5_GDXGrid[ i ].active == 0) { /* Set IDs, Flags, and Codes */ /* -------------------------- */ HE5_GDXGrid[ i ].active = 1; HE5_GDXGrid[ i ].fid = fid; HE5_GDXGrid[ i ].gd_id = gd_id; HE5_GDXGrid[ i ].data_id = data_id; HE5_GDXGrid[ i ].plist = FAIL; HE5_GDXGrid[ i ].tilecode = HE5_HDFE_NOTILE; strcpy(HE5_GDXGrid[ i ].compmethod,"HE5_HDFE_COMP_NONE"); gridID = i + HE5_GRIDOFFSET; strcpy(HE5_GDXGrid[ i ].gdname, gridname); break; } } emptyslot = i; /* Get the number of OBJECTS within the "Data Fields" group */ /* ========================================================= */ inout.count = 0; inout.name = NULL; inout.strsize = 0; strcat( grpname, "/Data Fields"); idx = H5Giterate(data_id, grpname , NULL, HE5_EHobj_info, &inout); if (idx == FAIL ) { sprintf(errbuf, "Cannot get information about \"Data Fields\" group.\n"); H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); if (grpname != NULL) free(grpname); return(FAIL); } if(grpname != NULL) free(grpname); /* Set the data members of external structure */ /* ========================================== */ HE5_GDXGrid[ emptyslot ].nDFLD = inout.count; /*--------------------------------------------------*/ /* Loop through all datasets and open them */ /* Allocate space for namebuf, */ /* copy inout.name into it, append comma, etc. */ /*--------------------------------------------------*/ if( inout.name != NULL && inout.count > 0 ) { /* Allocate memory to "ddataset" struct */ HE5_GDXGrid[emptyslot].ddataset = (HE5_DTSinfo *)realloc((void *)HE5_GDXGrid[emptyslot].ddataset,(HE5_GDXGrid[emptyslot].nDFLD) * sizeof(HE5_DTSinfo)); if(HE5_GDXGrid[ emptyslot ].ddataset == NULL) { sprintf(errbuf, "Cannot allocate memory to the ddataset structure.\n"); H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Allocate memory to the name list buffer */ namebuf = (char *) calloc(strlen(inout.name) + 2, sizeof(char)); if(namebuf == NULL) { sprintf(errbuf, "Cannot allocate memory to the name list buffer.\n"); H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } strcpy(namebuf, inout.name); strcat(namebuf, ","); /* Find comma */ comma = strchr(namebuf, ','); i = 0; /* Loop through entries in name list */ /* ================================= */ while (comma != NULL) { /* Copy field list entry to fldname */ fldname = (char *) calloc(comma - namebuf + 1, sizeof(char)); if(fldname == NULL) { sprintf(errbuf, "Cannot allocate memory to fldname.\n"); H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(namebuf); return(FAIL); } memmove(fldname, namebuf, comma - namebuf); fldname[comma - namebuf] = 0; /* Open the dataset */ /* ================ */ datid = H5Dopen(data_id, fldname); if ( datid == FAIL) { sprintf(errbuf, "Cannot open the dataset \"%s\" .\n", fldname); H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(namebuf); free(fldname); return(FAIL); } /*allocate memory to the dataset name*/ HE5_GDXGrid[ emptyslot ].ddataset[ i ].name = (char *) calloc((strlen(fldname)+1), sizeof(char) ); if(HE5_GDXGrid[ emptyslot ].ddataset[ i ].name == NULL) { sprintf(errbuf, "Cannot allocate memory to the dataset name.\n"); H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(namebuf); free(fldname); return(FAIL); } /* Set the data members of external structure */ /* ========================================== */ HE5_GDXGrid[ emptyslot ].ddataset[ i ].ID = datid; strcpy(HE5_GDXGrid[ emptyslot ].ddataset[ i ].name, fldname); /* Go to the next dataset/field entry */ /* ================================== */ memmove(namebuf, comma + 1, strlen(comma)-1); namebuf[strlen(comma)-1] = 0; comma = strchr(namebuf, ','); if (fldname != NULL) free(fldname); i++; } if (namebuf != NULL) { free(namebuf); namebuf = NULL; } if(inout.name != NULL ) { free( inout.name); inout.name = NULL; } } /* end 'if(name!==NULL)' */ } else { /* Too many Grids opened */ gridID = FAIL; sprintf(errbuf, "No more than %d grids may be open simultaneously", HE5_NGRID); H5Epush(__FILE__, "HE5_GDattach", __LINE__, H5E_FILE, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if (errbuf != NULL) free(errbuf); COMPLETION: HE5_UNLOCK; return(gridID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDchkgdid | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None hdf5 type grid ID | | routname char None Name of routine calling GDchkgdid | | | | OUTPUTS: | | fid hid_t None HDF-EOS file ID | | gid hid_t None "HDFEOS" group ID | | idx long None Grid index | | | | NOTES: | | | | HDF5 Library Functions Called: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/30/99 A.Muslimov Added error handlings after the function calls. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_GDchkgdid(hid_t gridID, const char *routname, hid_t *fid, hid_t *gid, long *idx ) { herr_t status = SUCCEED;/* routine return status variable */ uintn access = 777; /* Read/Write file access code */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ long idOffset = HE5_GRIDOFFSET;/* HDF-EOS Grid ID offset */ char message1[] = "Invalid grid id: %d in routine \"%s\". ID must be >= %d and < %d.\n"; char message2[] = "Grid id %d in routine \"%s\" not active.\n"; /* char *errbuf = (char *)NULL;*//* Buffer for error mesage */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ /* errbuf = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDchkgdid", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } */ /* ******************************* * Check for proper grid ID * ******************************* */ if (gridID < idOffset || gridID >= HE5_NGRID + idOffset) { status = FAIL; sprintf(errbuf, message1, gridID, routname, idOffset, HE5_NGRID + idOffset); H5Epush(__FILE__, "HE5_GDchkgdid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* Check for active grid ID */ /* ------------------------- */ if (HE5_GDXGrid[gridID % idOffset].active == 0) { status = FAIL; sprintf(errbuf, message2, gridID, routname); H5Epush(__FILE__, "HE5_GDchkgdid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf) ; HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* Get Grid index */ /* -------------- */ *idx = HE5_EHhid2long(gridID) % idOffset; if ( *idx == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the Grid index \n"); H5Epush(__FILE__, "HE5_GDchkgdid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf) ; HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Get HDF-EOS file ID and "HDFEOS" group ID */ /* ----------------------------------------- */ *fid = HE5_GDXGrid[ *idx ].fid; status = HE5_EHchkfid(*fid,"", &HDFfid, gid, &access); if (status == FAIL) { sprintf(errbuf, "Checking for file ID failed.\n"); H5Epush(__FILE__,"HE5_GDchkgdid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } /* free(errbuf); errbuf = NULL; */ return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefdim | | | | DESCRIPTION: Defines a new dimension within the grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | dimname char* None Dimension name to define | | dim hsize_t None Dimemsion value | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/20/99 A.Muslimov In the call to EHinsertmeta() replaced the argument | | gid by fid. | | 9/27/99 A.Muslimov Added proper error handlings. Removed redundant | | if(status == 0){} brackets. | | 1/06/00 A.Muslimov Changed the datatype of "dim" from int32_t to | | hsize_t to make a call to EHinsertmeta() successfull| | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdefdim(hid_t gridID, char *dimname, hsize_t dim) { herr_t status = FAIL; /* routine return status variable */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ long idx = FAIL; /* Grid index */ char *errbuf = (char *)NULL;/* Buffer for error message */ HE5_LOCK; CHECKNAME(dimname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdefdim", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdefdim", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDdefdim", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Insert Dimension value to Structural MetaData */ /* --------------------------------------------- */ status = HE5_EHinsertmeta(fid, HE5_GDXGrid[idx].gdname, "g", 0L, dimname, &dim); if (status == FAIL ) { status = FAIL; sprintf(errbuf,"Cannot insert metadata."); H5Epush(__FILE__, "HE5_GDdefdim", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); errbuf = NULL; COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefproj | | | | DESCRIPTION: Defines projection of grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | projcode int GCTP projection code | | zonecode int UTM zone code | | spherecode int GCTP spheriod code | | projparm double Projection parameters | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A.Muslimov In the call to EHinsertmeta() replaced the argument | | gid by fid. Added error handling after the call to | | EHinsertmeta(). | | 4/19/00 A.Muslimov Changed 'slen' type from long to size_t. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdefproj(hid_t gridID, int projcode, int zonecode, int spherecode, double projparm[]) { herr_t status = FAIL; /* routine return status variable */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* Grid group ID */ long idx = FAIL; /* Grid index */ size_t slen = 0; /* String length */ char *utlbuf = (char *)NULL; /* Utility Buffer */ char projparmbuf[HE5_HDFE_UTLBUFSIZE];/* Projection parameter */ char *GCTPproj[128] = {"HE5_GCTP_GEO","HE5_GCTP_UTM","HE5_GCTP_SPCS", "HE5_GCTP_ALBERS","HE5_GCTP_LAMCC","HE5_GCTP_MERCAT", "HE5_GCTP_PS","HE5_GCTP_POLYC","HE5_GCTP_EQUIDC", "HE5_GCTP_TM","HE5_GCTP_STEREO", "HE5_GCTP_LAMAZ", "HE5_GCTP_AZMEQD", "HE5_GCTP_GNOMON","HE5_GCTP_ORTHO", "HE5_GCTP_GVNSP","HE5_GCTP_SNSOID","HE5_GCTP_EQRECT", "HE5_GCTP_MILLER","HE5_GCTP_VGRINT","HE5_GCTP_HOM", "HE5_GCTP_ROBIN","HE5_GCTP_SOM","HE5_GCTP_ALASKA", "HE5_GCTP_GOOD", "HE5_GCTP_MOLL","HE5_GCTP_IMOLL", "HE5_GCTP_HAMMER","HE5_GCTP_WAGIV","HE5_GCTP_WAGVII", "HE5_GCTP_OBLEQA"/*,"HE5_GCTP_CEA","HE5_GCTP_BCEA", "HE5_GCTP_ISINUS"*/};/* GCTP projection codes */ char *errbuf = (char *)NULL; /* Buffer for error message */ HE5_LOCK; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdefproj", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for utility buffer */ /* ---------------------------------- */ utlbuf = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlbuf == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDdefproj", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Add "non-standard" GCTP codes */ /* ----------------------------- */ GCTPproj[ 97 ] = (char *)calloc( (strlen("HE5_GCTP_CEA")+ 1), sizeof(char) ); if(GCTPproj[ 97 ] == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDdefproj", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlbuf); return(FAIL); } strcpy(GCTPproj[97], "HE5_GCTP_CEA"); GCTPproj[ 98 ] = (char *)calloc( (strlen("HE5_GCTP_BCEA")+ 1), sizeof(char) ); if(GCTPproj[ 98 ] == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDdefproj", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlbuf); free(GCTPproj[97]); return(FAIL); } strcpy(GCTPproj[98], "HE5_GCTP_BCEA"); GCTPproj[ 99 ] = (char *)calloc( (strlen("HE5_GCTP_ISINUS") + 1), sizeof(char) ); if(GCTPproj[ 99 ] == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDdefproj", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlbuf); free(GCTPproj[97]); free(GCTPproj[98]); return(FAIL); } strcpy(GCTPproj[99], "HE5_GCTP_ISINUS"); /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdefproj", &fid, &gid, &idx); if (status == SUCCEED) { /* * If projection not GEO, UTM, or State Code build projection * parameter string */ if (projcode != HE5_GCTP_GEO && projcode != HE5_GCTP_UTM && projcode != HE5_GCTP_SPCS) { /* Begin projection parameter list with "(" */ strcpy(projparmbuf, "("); /* Add each projection parameter to string */ for (i = 0; i < 13; i++) { /* If projparm[i] = 0 ... */ if (projparm[i] == 0.0) { strcpy(utlbuf, "0,"); } else { /* if projparm[i] is integer ... */ if ( ((long)projparm[ i ]) == projparm[ i ]) { sprintf(utlbuf, "%li%s", (long)projparm[ i ], ","); } /* else if projparm[i] is between 0 and 1 ... */ else if ((i == 1) && (projparm[1] > 0) && (projparm[1] < 1)) { sprintf(utlbuf, "%g%s", projparm[i], ","); } else { sprintf(utlbuf, "%lf%s", projparm[i], ","); } } strcat(projparmbuf, utlbuf); } slen = strlen(projparmbuf); /* Add trailing ")" */ projparmbuf[slen - 1] = ')'; } /* Build metadata string */ /* --------------------- */ if (projcode == HE5_GCTP_GEO) { sprintf(utlbuf, "%s%s%s", "\t\tProjection=", GCTPproj[projcode], "\n"); } else if (projcode == HE5_GCTP_UTM || projcode == HE5_GCTP_SPCS) { sprintf(utlbuf, "%s%s%s%s%d%s%s%d%s", "\t\tProjection=", GCTPproj[projcode], "\n", "\t\tZoneCode=", zonecode, "\n", "\t\tSphereCode=", spherecode, "\n"); } else { sprintf(utlbuf, "%s%s%s%s%s%s%s%d%s", "\t\tProjection=", GCTPproj[projcode], "\n", "\t\tProjParams=", projparmbuf, "\n", "\t\tSphereCode=", spherecode, "\n"); } /* Insert in structural metadata */ /* ----------------------------- */ status = HE5_EHinsertmeta(fid, HE5_GDXGrid[ idx ].gdname, "g", 101L, utlbuf, NULL); if (status == FAIL ) { sprintf(errbuf,"Cannot insert metadata.\n"); H5Epush(__FILE__, "HE5_GDdefproj", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlbuf); if (GCTPproj[97] != NULL) free(GCTPproj[97]); if (GCTPproj[98] != NULL) free(GCTPproj[98]); if (GCTPproj[99] != NULL) free(GCTPproj[99]); return(FAIL); } } free(errbuf); free(utlbuf); free(GCTPproj[97]); free(GCTPproj[98]); free(GCTPproj[99]); GCTPproj[97] = NULL; GCTPproj[98] = NULL; GCTPproj[99] = NULL; utlbuf = NULL; errbuf = NULL; COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDblkSOMoffset | | | | DESCRIPTION: Writes Block SOM offset values | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | offset long Offset values | | count[] hsize_t Number of offset values | | code char w/r code (w/r) | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov Added more checkings. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDblkSOMoffset(hid_t gridID, long offset[], hsize_t count[], char *code) { herr_t status = FAIL; /* routine return status variable */ int projcode = FAIL; /* GCTP projection code */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ double projparm[13]; /* Projection parameters */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility Buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message Buffer */ HE5_LOCK; CHECKPOINTER(offset); CHECKPOINTER(count); CHECKPOINTER(code); /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDblkSOMoffset", &fid, &gid, &idx); if (status == SUCCEED) { /* Initialize projection parameters */ /* -------------------------------- */ for (i = 0; i < 13; i++) projparm[i] = 0.; /* Get projection parameters */ /* ------------------------- */ status = HE5_GDprojinfo(gridID, &projcode, NULL, NULL, projparm); if ( status == FAIL) { sprintf(errbuf, "Cannot get projection information.\n"); H5Epush(__FILE__, "HE5_GDblkSOMoffset", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* If SOM projection with projparm[11] non-zero ... */ /* ------------------------------------------------ */ if (projcode == HE5_GCTP_SOM && projparm[11] != 0) { sprintf(utlbuf, "%s", "_BLKSOM"); /* Write offset values as attribute */ if (strcmp(code, "w") == 0) { status = HE5_GDwriteattr(gridID, "_BLKSOM", H5T_NATIVE_LONG, count, offset); if ( status == FAIL) { sprintf(errbuf, "Cannot write in offset values.\n"); H5Epush(__FILE__, "HE5_GDblkSOMoffset", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Read offset values from attribute */ /* --------------------------------- */ else if (strcmp(code, "r") == 0) { status = HE5_GDreadattr(gridID, utlbuf, offset); if ( status == FAIL) { sprintf(errbuf, "Cannot read out the offset values.\n"); H5Epush(__FILE__, "HE5_GDblkSOMoffset", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefcomp | | | | DESCRIPTION: Defines compression type and parameters | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | compcode int compression code | | compparm int compression parameters | | | | OUTPUTS: | | None | | | | NOTES: Before calling this function, storage must be CHUNKED | | Values of compression code | | HDFE_COMP_NONE 0 | | HDFE_COMP_RLE 1 | | HDFE_COMP_NBIT 2 | | HDFE_COMP_SKPHUFF 3 | | HDFE_COMP_DEFLATE 4 | | HDFE_COMP_SZIP_CHIP 5 | | HDFE_COMP_SZIP_K13 6 | | HDFE_COMP_SZIP_EC 7 | | HDFE_COMP_SZIP_NN 8 | | HDFE_COMP_SZIP_K13orEC 9 | | HDFE_COMP_SZIP_K13orNN 10 | | HDFE_COMP_SHUF_DEFLATE 11 | | HDFE_COMP_SHUF_SZIP_CHIP 12 | | HDFE_COMP_SHUF_SZIP_K13 13 | | HDFE_COMP_SHUF_SZIP_EC 14 | | HDFE_COMP_SHUF_SZIP_NN 15 | | HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HDFE_COMP_SHUF_SZIP_K13orNN 17 | | | | HDF5 Library Functions Called: | | H5Pget_layout | | H5Pset_layout | | H5Pset_deflate | | H5Pset_szip | | H5Pset_shuffle | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A.Muslimov Changed the return type from intn to int . | | 1/18/99 A.Muslimov Added compcode parameter, and "switch (comcode)" | | block. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 06/04/01 A.Muslimov Added checking for compression code/level. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | Aug 03 S.Zhao Added Szip compression methods. | | Oct 03 S.Zhao Added the shuffling method. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdefcomp(hid_t gridID, int compcode, int compparm[]) { herr_t status = FAIL;/* routine return status variable */ int level = 0; /* compression level */ hid_t fid = FAIL;/* HDF-EOS file id */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t (*func)(void*); void *edata = (void *)NULL; long idx = FAIL;/* Grid index */ H5D_layout_t layout = H5D_LAYOUT_ERROR;/* Type of storage */ int can_encode=0; /* szip encoder presence flag */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ H5Eget_auto(&func,&edata); HE5_LOCK; CHECKPOINTER(compparm); /* Check if compression code is valid */ /* ---------------------------------- */ if( compcode != HE5_HDFE_COMP_DEFLATE && compcode != HE5_HDFE_COMP_NONE && compcode != HE5_HDFE_COMP_SZIP_CHIP && compcode != HE5_HDFE_COMP_SZIP_K13 && compcode != HE5_HDFE_COMP_SZIP_EC && compcode != HE5_HDFE_COMP_SZIP_NN && compcode != HE5_HDFE_COMP_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SZIP_K13orNN && compcode != HE5_HDFE_COMP_SHUF_DEFLATE && compcode != HE5_HDFE_COMP_SHUF_SZIP_CHIP && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13 && compcode != HE5_HDFE_COMP_SHUF_SZIP_EC && compcode != HE5_HDFE_COMP_SHUF_SZIP_NN && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orNN ) { status = FAIL; H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Invalid/unsupported compression code. \n"); HE5_EHprint("Error: Invalid/unsupported compression code, occured", __FILE__, __LINE__); return(status); } if( compcode == HE5_HDFE_COMP_DEFLATE || compcode == HE5_HDFE_COMP_NONE || compcode == HE5_HDFE_COMP_SHUF_DEFLATE) { /* Check GZIP compression level */ /* ---------------------------- */ if( compparm[0] < 0 || compparm[0] > 9) { status = FAIL; H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Invalid GZIP compression level. \n"); HE5_EHprint("Error: Invalid GZIP compression level, occured", __FILE__, __LINE__); return(status); } } else { /* Check SZIP compression block size */ /* --------------------------------- */ if( compparm[0] != 2 && compparm[0] != 4 && compparm[0] != 6 && compparm[0] != 8 && compparm[0] != 10 && compparm[0] != 12 && compparm[0] != 14 && compparm[0] != 16 && compparm[0] != 18 && compparm[0] != 20 && compparm[0] != 22 && compparm[0] != 24 && compparm[0] != 26 && compparm[0] != 28 && compparm[0] != 30 && compparm[0] != 32) { status = FAIL; H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Invalid SZIP compression block size. \n"); HE5_EHprint("Error: Invalid SZIP compression block size, occured", __FILE__, __LINE__); return(status); } } #ifdef H5_HAVE_FILTER_SZIP can_encode = HE5_szip_can_encode(); #endif /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdefcomp", &fid, &gid, &idx); if (status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADRANGE, "Checking for grid ID failed.\n"); HE5_EHprint("Error: Checking for grid ID failed, occured", __FILE__, __LINE__); return( status ); } /* if current property instance has not been created, report error */ /* --------------------------------------------------------------- */ if( HE5_GDXGrid[ idx ].plist == FAIL ) { if (compcode != HE5_HDFE_COMP_NONE) { status = FAIL; H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_PLIST, H5E_NOTFOUND, "Unable to compress, dataset storage layout has not been set to CHUNKED."); HE5_EHprint("Error: Unable to compress, dataset storage layout has not been set to CHUNKED, occured", __FILE__, __LINE__); return(status); } } else { layout = H5Pget_layout(HE5_GDXGrid[ idx ].plist); if( layout != H5D_CHUNKED ) { status = H5Pset_layout(HE5_GDXGrid[idx].plist, H5D_CHUNKED); if ( status == FAIL ) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set the layout.\n"); HE5_EHprint("Error: Cannot set the layout, occured", __FILE__, __LINE__); return(status ); } } switch(compcode) { /* Set NBIT compression parameters in ext. array */ /* --------------------------------------------- */ case HE5_HDFE_COMP_NBIT: HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; HE5_GDXGrid[ idx ].compparm[ 1 ] = compparm[ 1 ]; HE5_GDXGrid[ idx ].compparm[ 2 ] = compparm[ 2 ]; HE5_GDXGrid[ idx ].compparm[ 3 ] = compparm[ 3 ]; break; /* Set compression method to HE5_HDFE_COMP_DEFLATE */ /* ----------------------------------------------- */ case HE5_HDFE_COMP_DEFLATE: level = compparm[0]; status = H5Pset_deflate(HE5_GDXGrid[ idx ].plist, level); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set GZIP compression method.\n"); HE5_EHprint("Error: Cannot set GZIP compression method, occured", __FILE__, __LINE__); return(status ); } /* ------------------------------------------------- */ /* Set GZIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_DEFLATE"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_CHIP: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_CHIP_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_CHIP compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_CHIP compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_CHIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_CHIP"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_K13: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_K13 compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_K13 compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13 compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_K13"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_EC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_EC compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_EC compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_EC compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_EC"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_NN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_NN_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_NN compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_NN compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_NN compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_NN"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_K13orEC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_K13orSZIP_EC compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_K13orSZIP_EC compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------------- */ /* Set SZIP_K13orEC compression method and compression */ /* parameters in external array */ /* ------------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_K13orHE5_HDFE_COMP_SZIP_EC"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_K13orNN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_K13orSZIP_NN compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_K13orSZIP_NN compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ----------------------------------------------------- */ /* Set SZIP_K13orNN compression method and compression */ /* parameters in external array */ /* ----------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_K13orHE5_HDFE_COMP_SZIP_NN"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_DEFLATE: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if (status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot set the shuffling method. \n"); HE5_EHprint("Error: Cannot set the shuffling method, occured", __FILE__, __LINE__); return(status); } level = compparm[0]; status = H5Pset_deflate(HE5_GDXGrid[ idx ].plist, level); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set GZIP compression method.\n"); HE5_EHprint("Error: Cannot set GZIP compression method, occured", __FILE__, __LINE__); return(status ); } /* ------------------------------------------------- */ /* Set shuffling+GZIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_DEFLATE"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_CHIP: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if (status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot set the shuffling method. \n"); HE5_EHprint("Error: Cannot set the shuffling method, occured", __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_CHIP_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_CHIP compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_CHIP compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_CHIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_CHIP"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if (status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot set the shuffling method. \n"); HE5_EHprint("Error: Cannot set the shuffling method, occured", __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_K13 compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_K13 compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13 method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_K13"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_EC: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if (status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot set the shuffling method. \n"); HE5_EHprint("Error: Cannot set the shuffling method, occured", __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_EC compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_EC compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_EC method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_EC"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_NN: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if (status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot set the shuffling method. \n"); HE5_EHprint("Error: Cannot set the shuffling method, occured", __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_NN_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_NN compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_NN compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_NN method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_NN"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orEC: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if (status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot set the shuffling method. \n"); HE5_EHprint("Error: Cannot set the shuffling method, occured", __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_K13orEC compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_K13orEC compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------------ */ /* Set shuffling+SZIP_K13orEC method and compression */ /* parameters in external array */ /* ------------------------------------------------------ */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_K13orEC"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orNN: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if (status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot set the shuffling method. \n"); HE5_EHprint("Error: Cannot set the shuffling method, occured", __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK,compparm[0]); if ( status == FAIL) { H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set SZIP_K13orNN compression method.\n"); HE5_EHprint("Error: Cannot set SZIP_K13orNN compression method, occured", __FILE__, __LINE__); return(status ); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------------ */ /* Set shuffling+SZIP_K13orNN method and compression */ /* parameters in external array */ /* ------------------------------------------------------ */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_K13orNN"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_NONE: strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_NONE"); HE5_GDXGrid[idx].compparm[0] = compparm[0]; break; default: { status = FAIL; H5Epush(__FILE__, "HE5_GDdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, "Compression method is not specified.\n"); HE5_EHprint("Error: Compression method is not specified, occured", __FILE__, __LINE__); } break; } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdeftile | | | | DESCRIPTION: Defines tiling parameters | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | tilecode int tile code | | tilerank int number of tiling dimensions | | tiledims hsize_t tiling dimensions | | | | OUTPUTS: | | None | | | | NOTES: | | None | | | | HDF5 Library Functions Called: | | H5Pcreate | | H5Pset_layout | | H5Pset_chunk | | | | Date Programmer Description | | ====== ============ ================================================= | | Jan 00 A.Muslimov Changed the datatype of tiledims[] from int32_t to | | const hsize_t. Added retrieving/creation of the | | property list. Added setting up of the dataset | | chunking. | | Feb 00 A.Muslimov Added error checkings. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdeftile(hid_t gridID, int tilecode, int tilerank, const hsize_t *tiledims) { herr_t status = FAIL; /* routine return status variable */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file id */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message Buffer */ int temp_tilerank; hsize_t temp_dims[8]; HE5_LOCK; /*CHECKPOINTER(tiledims);*/ if (tilerank == 0) { temp_tilerank = 1; } else { temp_tilerank = tilerank; } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdeftile", &fid, &gid, &idx); if (status == SUCCEED) { /* Initialize external array */ /* ------------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) { HE5_GDXGrid[ idx ].tiledims[ i ] = 0; } HE5_GDXGrid[ idx ].tilecode = tilecode; switch (tilecode) { case HE5_HDFE_NOTILE: HE5_GDXGrid[idx].tilerank = 0; break; case HE5_HDFE_TILE: HE5_GDXGrid[ idx ].tilerank = temp_tilerank; for (i = 0; i < temp_tilerank; i++) { HE5_GDXGrid[ idx ].tiledims[ i ] = tiledims[ i ]; if (HE5_GDXGrid[ idx ].tiledims[i] == 0) { HE5_GDXGrid[ idx ].tiledims[ i ] = 1; } } break; default: { sprintf(errbuf, "Unknown tile code.\n"); H5Epush(__FILE__, "HE5_GDdeftile", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } /* get the current dataset creation property ID from external array */ /* if current property instance has not been created, then create it */ /* ----------------------------------------------------------------- */ if( HE5_GDXGrid[idx].plist == FAIL) { HE5_GDXGrid[idx].plist = H5Pcreate(H5P_DATASET_CREATE); if ( HE5_GDXGrid[idx].plist == FAIL ) { status = FAIL; sprintf(errbuf, "Cannot create the property list.\n"); H5Epush(__FILE__, "HE5_GDdeftile", __LINE__, H5E_PLIST, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Set layout */ /* ---------- */ status = H5Pset_layout( HE5_GDXGrid[idx].plist, H5D_CHUNKED); if ( status == FAIL ) { sprintf(errbuf, "Cannot set the type of storage of the raw data to \"CHUNKED\".\n"); H5Epush(__FILE__, "HE5_GDdeftile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Set chunking */ /* ------------ */ if (tiledims == NULL) { for (i = 0; i < temp_tilerank; i++) { temp_dims[ i ] = 1; HE5_GDXGrid[ idx ].tiledims[ i ] = temp_dims[ i ]; } } else { for (i = 0; i < temp_tilerank; i++) { temp_dims[ i ] = tiledims[i]; HE5_GDXGrid[ idx ].tiledims[ i ] = temp_dims[ i ]; } } status = H5Pset_chunk( HE5_GDXGrid[idx].plist, temp_tilerank, temp_dims); if ( status == FAIL ) { sprintf(errbuf, "Cannot set the sizes of the chunks.\n"); H5Epush(__FILE__, "HE5_GDdeftile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefcomtile | | | | DESCRIPTION: Defines compression type and parameters and sets tiling/ | | chunking | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | compcode int compression code | | compparm[] int compression parameters | | tilerank int number of tiling dimensions | | tiledims hsize_t tiling dimensions | | | | OUTPUTS: | | None | | | | HDF5 Library Functions Called: | | H5Pcreate | | H5Pget_layout | | H5Pset_layout | | H5Pset_deflate | | H5Pset_szip | | | | | | Date Programmer Description | | ======== ============ ================================================= | | 07/24/00 A.Muslimov Original development. | | 06/04/01 A.Muslimov Added checking for compression code/level. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | Aug 03 S.Zhao Added Szip compression methods. | | Oct 03 S.Zhao Added the shuffling method. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdefcomtile(hid_t gridID, int compcode, int compparm[], int tilerank, const hsize_t *tiledims ) { herr_t status = FAIL;/* routine return status variable */ int i; /* Loop index */ hid_t fid = FAIL;/* HDF-EOS file id */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t (*func)(void*); hsize_t dims[HE5_DTSETRANKMAX];/* default dimension sizes */ void *edata = (void *)NULL; long idx = FAIL;/* Grid index */ H5D_layout_t layout = H5D_LAYOUT_ERROR;/* Type of storage of the raw data */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message Buffer */ int can_encode; /* szip encoder presence flag */ H5Eget_auto(&func,&edata); HE5_LOCK; CHECKPOINTER(compparm); /*CHECKPOINTER(tiledims);*/ /* Check if compression code is valid */ /* ---------------------------------- */ if( compcode != HE5_HDFE_COMP_DEFLATE && compcode != HE5_HDFE_COMP_NONE && compcode != HE5_HDFE_COMP_SZIP_CHIP && compcode != HE5_HDFE_COMP_SZIP_K13 && compcode != HE5_HDFE_COMP_SZIP_EC && compcode != HE5_HDFE_COMP_SZIP_NN && compcode != HE5_HDFE_COMP_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SZIP_K13orNN && compcode != HE5_HDFE_COMP_SHUF_DEFLATE && compcode != HE5_HDFE_COMP_SHUF_SZIP_CHIP && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13 && compcode != HE5_HDFE_COMP_SHUF_SZIP_EC && compcode != HE5_HDFE_COMP_SHUF_SZIP_NN && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orNN ) { status = FAIL; H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_ARGS, H5E_BADVALUE, "Invalid/unsupported compression code. \n"); HE5_EHprint("Error: Invalid/unsupported compression code, occured", __FILE__, __LINE__); return(status); } if( compcode == HE5_HDFE_COMP_DEFLATE || compcode == HE5_HDFE_COMP_NONE || compcode == HE5_HDFE_COMP_SHUF_DEFLATE) { /* Check GZIP compression level */ /* ---------------------------- */ if( compparm[0] < 0 || compparm[0] > 9) { status = FAIL; H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_ARGS, H5E_BADVALUE, "Invalid GZIP compression level. \n"); HE5_EHprint("Error: Invalid GZIP compression level, occured", __FILE__, __LINE__); return(status); } } else { /* Check SZIP compression block size */ /* --------------------------------- */ if( compparm[0] != 2 && compparm[0] != 4 && compparm[0] != 6 && compparm[0] != 8 && compparm[0] != 10 && compparm[0] != 12 && compparm[0] != 14 && compparm[0] != 16 && compparm[0] != 18 && compparm[0] != 20 && compparm[0] != 22 && compparm[0] != 24 && compparm[0] != 26 && compparm[0] != 28 && compparm[0] != 30 && compparm[0] != 32) { status = FAIL; H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_ARGS, H5E_BADVALUE, "Invalid SZIP compression block size. \n"); HE5_EHprint("Error: Invalid SZIP compression block size, occured", __FILE__, __LINE__); return(status); } } #ifdef H5_HAVE_FILTER_SZIP can_encode = HE5_szip_can_encode(); #endif /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdefcomtile", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf,"Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return( status ); } /* Initialize arrays */ /* ----------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) { HE5_GDXGrid[ idx ].tiledims[ i ] = 0; dims[ i ] = 0; } /* Get the current property list ID */ /* -------------------------------- */ if( HE5_GDXGrid[ idx ].plist == FAIL ) { /* create property list */ /* -------------------- */ HE5_GDXGrid[idx].plist = H5Pcreate(H5P_DATASET_CREATE); if (HE5_GDXGrid[idx].plist == FAIL ) { status = FAIL; sprintf(errbuf, "Cannot create the property list."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_PLIST, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* set layout to "H5D_CHUNKED" */ /* --------------------------- */ status = H5Pset_layout( HE5_GDXGrid[idx].plist, H5D_CHUNKED); if (status == FAIL ) { sprintf(errbuf, "Cannot set the \"CHUNKED\" type of storage."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_STORAGE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Get layout of the raw data */ /* -------------------------- */ layout = H5Pget_layout(HE5_GDXGrid[ idx ].plist); if (layout == H5D_LAYOUT_ERROR) { status = FAIL; sprintf(errbuf, "Cannot get the layout of the raw data."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_STORAGE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if( layout != H5D_CHUNKED ) { /* set layout to "H5D_CHUNKED" */ /* --------------------------- */ status = H5Pset_layout(HE5_GDXGrid[idx].plist, H5D_CHUNKED); if ( status == FAIL ) { H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot set the layout.\n"); HE5_EHprint("Error: Cannot set the layout, occured", __FILE__, __LINE__); return(status ); } } } /* Set tiling/chunking */ /* ------------------- */ if ( tilerank > 0 && tiledims != (hsize_t *)NULL) { status = H5Pset_chunk( HE5_GDXGrid[idx].plist, tilerank, tiledims); if (status == FAIL ) { sprintf(errbuf, "Cannot set the sizes of chunks."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Set tile/chunk sizes */ /* -------------------- */ for (i = 0; i < tilerank; i++) HE5_GDXGrid[ idx ].tiledims[ i ] = tiledims[ i ]; } else if ( tilerank > 0 && tiledims == (hsize_t *)NULL) { /* Set default tile/chunk sizes */ /* ---------------------------- */ for (i = 0; i < tilerank; i++) { /* dims[ i ] = HE5_CHUNKSIZE;*/ dims[ i ] = 1; HE5_GDXGrid[ idx ].tiledims[ i ] = dims[ i ]; } if (compcode == HE5_HDFE_COMP_NONE) { HE5_GDXGrid[idx].tilecode = HE5_HDFE_NOTILE; } status = H5Pset_chunk( HE5_GDXGrid[idx].plist, tilerank, dims); if (status == FAIL) { sprintf(errbuf, "Cannot set the sizes of chunks."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Invalid dataset rank: %d .", tilerank); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } HE5_GDXGrid[ idx ].tilerank = tilerank; switch(compcode) { /* Set NBIT compression parameters in ext. array */ case HE5_HDFE_COMP_NBIT: HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; HE5_GDXGrid[ idx ].compparm[ 1 ] = compparm[ 1 ]; HE5_GDXGrid[ idx ].compparm[ 2 ] = compparm[ 2 ]; HE5_GDXGrid[ idx ].compparm[ 3 ] = compparm[ 3 ]; break; /* Set compression method to HE5_HDFE_COMP_DEFLATE */ /* ----------------------------------------------- */ case HE5_HDFE_COMP_DEFLATE: status = H5Pset_deflate(HE5_GDXGrid[ idx ].plist,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set GZIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_DEFLATE"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_CHIP: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_CHIP_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_CHIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_CHIP"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_K13: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 cmpression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13 compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_K13"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_EC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_EC compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_EC"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_NN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_NN_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_NN compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_NN"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_K13orEC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orEC compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ---------------------------------------------------------- */ /* Set SZIP_K13orEC compression method and compression */ /* parameters in external array */ /* ---------------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_K13orEC"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SZIP_K13orNN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ---------------------------------------------------------- */ /* Set SZIP_K13orNN compression method and compression */ /* parameters in external array */ /* ---------------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SZIP_K13orNN"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_DEFLATE: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if ( status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Pset_deflate(HE5_GDXGrid[ idx ].plist,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level."); H5Epush(__FILE__,"HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set shuffling+GZIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_DEFLATE"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_CHIP: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if ( status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_CHIP_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_CHIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_CHIP"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if ( status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 cmpression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13 method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_K13"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_EC: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if ( status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_EC method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_EC"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_NN: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if ( status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_NN_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_NN method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_NN"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orEC: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if ( status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orEC compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ---------------------------------------------------------- */ /* Set shuffling+SZIP_K13orEC method and compression */ /* parameters in external array */ /* ---------------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_K13orEC"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orNN: status = H5Pset_shuffle(HE5_GDXGrid[idx].plist); if ( status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method."); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_GDXGrid[ idx ].plist,H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK,compparm[0]); if ( status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compression method and block size.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_GDdefcomptile", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ---------------------------------------------------------- */ /* Set shuffling+SZIP_K13orNN method and compression */ /* parameters in external array */ /* ---------------------------------------------------------- */ strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_SHUF_SZIP_K13orNN"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; case HE5_HDFE_COMP_NONE: strcpy(HE5_GDXGrid[ idx ].compmethod, "HE5_HDFE_COMP_NONE"); HE5_GDXGrid[ idx ].compparm[ 0 ] = compparm[ 0 ]; break; default: { status = FAIL; sprintf(errbuf, "Compression method is not specified.\n"); H5Epush(__FILE__, "HE5_GDdefcomtile", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdeforigin | | | | DESCRIPTION: Defines the origin of the grid data. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | origincode int origin code | | HDFE_GD_UL (0) | | HDFE_GD_UR (1) | | HDFE_GD_LL (2) | | HDFE_GD_LR (3) | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/20/99 A.Muslimov In the call to EHinsertmeta() replaced the argument | | gid by fid. | | 9/27/99 A.Muslimov Added proper error handlings. Removed redundant | | if(status == 0){} brackets. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdeforigin(hid_t gridID, int origincode) { herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ char *utlbuf = (char *)NULL; /* Utility buffer */ char *errbuf = (char *)NULL; /* Buffer for error message */ char *originNames[] = {"HE5_HDFE_GD_UL", "HE5_HDFE_GD_UR", "HE5_HDFE_GD_LL", "HE5_HDFE_GD_LR"}; HE5_LOCK; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdeforigin", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdeforigin", &fid, &gid, &idx); if ( status == FAIL) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDdeforigin", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } utlbuf = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if( utlbuf == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDdeforigin", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* If proper origin code then write to structural metadata */ /* ------------------------------------------------------- */ if (origincode >= 0 && origincode <= 3) { sprintf(utlbuf, "%s%s%s", "\t\tGridOrigin=", originNames[origincode], "\n"); status = HE5_EHinsertmeta(fid, HE5_GDXGrid[idx].gdname, "g", 101L, utlbuf, NULL); if (status == FAIL) { sprintf(errbuf,"Cannot insert metadata."); H5Epush(__FILE__, "HE5_GDdeforigin", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { status = FAIL; sprintf(errbuf, "Improper Grid Origin code: %d\n", origincode); H5Epush(__FILE__, "HE5_GDdeforigin", __LINE__, H5E_FILE, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(utlbuf); free(errbuf); utlbuf = NULL; errbuf = NULL; COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefpixreg | | | | DESCRIPTION: Defines pixel registration within grid cell. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | pixregcode int None Pixel registration code | | HDFE_CENTER (0) | | HDFE_CORNER (1) | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/20/99 A.Muslimov In the call to EHinsertmeta() replaced gid by fid. | | 9/27/99 A.Muslimov Added proper error hadlings. Removed redundant | | if(status == 0){} brackets. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdefpixreg(hid_t gridID, int pixregcode) { herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ char *utlbuf = (char *)NULL; /* Utility buffer */ char *pixregNames[] = {"HE5_HDFE_CENTER", "HE5_HDFE_CORNER"};/* Pixel Registration Codes */ char *errbuf = (char *)NULL; /* Buffer for error message */ HE5_LOCK; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdefpixreg", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdefpixreg", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDdefpixreg", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Allocate memory for utility buffer */ utlbuf = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlbuf == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDdefpixreg", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* If proper pix reg code then write to structural metadata */ /* -------------------------------------------------------- */ if (pixregcode >= 0 && pixregcode <= 1) { sprintf(utlbuf, "%s%s%s", "\t\tPixelRegistration=", pixregNames[pixregcode], "\n"); status = HE5_EHinsertmeta(fid, HE5_GDXGrid[idx].gdname, "g", 101L,utlbuf, NULL); if(status == FAIL) { status = FAIL; sprintf(errbuf, "Cannot insert metadata.\n"); H5Epush(__FILE__, "HE5_GDdefpixreg", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { status = FAIL; sprintf(errbuf, "Improper Pixel Registration code: %d\n", pixregcode); H5Epush(__FILE__, "HE5_GDdefpixreg", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(utlbuf); free(errbuf); utlbuf = NULL; errbuf = NULL; COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdiminfo | | | | DESCRIPTION: Retrieve size of specified dimension. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size hsize_t None Size of dimension | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | dimname char* None Dimension name | | | | OUTPUTS: | | None | | | | NOTES: | | | | HDF5 Library Functions Called: | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 04/11/01 A.Muslimov Initialized size to 0, but "Unlim" returns -1!, | | not 0! | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hsize_t HE5_GDdiminfo(hid_t gridID, char *dimname) { hsize_t size = 0; /* Dimension size (return value) */ herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ char *metabuf = (char *)NULL; /* Pointer to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL};/* Pointers to begin and end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ char *errbuf = (char *)NULL; /* Buffer for error mesage */ CHECKPOINTER(dimname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdiminfo", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(0); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdiminfo", &fid, &gid, &idx); if ( status == FAIL) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDdiminfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(0); } /* Allocate memory for utility string */ /* ---------------------------------- */ utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDdiminfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(0); } /* Get pointers to "Dimension" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname, "g", "Dimension", metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer.\n"); H5Epush(__FILE__, "HE5_GDdiminfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(0); } /* Search for dimension name (surrounded by quotes) */ /* ------------------------------------------------ */ sprintf(utlstr, "%s%s%s", "\"", dimname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); /* * If dimension found within grid structure then get dimension value */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Set endptr at end of dimension definition entry */ metaptrs[1] = strstr(metaptrs[0], "\t\t\tEND_OBJECT"); status = HE5_EHgetmetavalue(metaptrs, "Size", utlstr); if (status == SUCCEED) size = atol(utlstr); else { size = 0; sprintf(errbuf, "\"Size\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDdiminfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { size = 0; sprintf(errbuf, "Dimension \"%s\" not found.", dimname); H5Epush(__FILE__, "HE5_GDdiminfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(metabuf); free(utlstr); free(errbuf); metabuf = NULL; utlstr = NULL; errbuf = NULL; COMPLETION: return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgridinfo | | | | DESCRIPTION: Returns xdim, ydim and location of upper left and lower | | right corners, in meters. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | | | OUTPUTS: | | xdimsize long Number of columns in grid | | ydimsize long Number of rows in grid | | upleftpt double Location (m/deg) of upper left corner | | lowrightpt double Location (m/deg) of lower right corner | | | | NOTES: | | | | HDF5 Library Functions Called: | | | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. Changed the data type of statmeta from | | intn to int . | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDgridinfo(hid_t gridID, long *xdimsize, long *ydimsize, double upleftpt[], double lowrightpt[]) { herr_t status = FAIL; /* routine return status variable */ herr_t statmeta = FAIL; /* EHgetmetavalue return status */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ char *metabuf = (char *)NULL; /* Pointer to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL};/* Pointers to begin and end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ /* char *errbuf = (char *)NULL;*/ /* buffer for error message */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ /* errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDgridinfo", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } */ /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDgridinfo", &fid, &gid, &idx); if ( status == FAIL) { sprintf(errbuf,"Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDgridinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ return( FAIL ); } /* Allocate memory for utility string */ /* ---------------------------------- */ utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDgridinfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ return(FAIL); } /* Get pointers to grid structure section within SM */ /* ------------------------------------------------ */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname, "g", NULL, metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer string.\n"); H5Epush(__FILE__, "HE5_GDgridinfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); return(FAIL); } /* Get xdimsize if requested */ /* ------------------------- */ if (xdimsize != NULL) { statmeta = HE5_EHgetmetavalue(metaptrs, "XDim", utlstr); if (statmeta == SUCCEED) { *xdimsize = atol(utlstr); } else { status = FAIL; sprintf(errbuf, "\"XDim\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDgridinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Get ydimsize if requested */ /* ------------------------- */ if (ydimsize != NULL) { statmeta = HE5_EHgetmetavalue(metaptrs, "YDim", utlstr); if (statmeta == SUCCEED) { *ydimsize = atol(utlstr); } else { status = FAIL; sprintf(errbuf, "\"YDim\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDgridinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Get upleftpt if requested */ /* ------------------------- */ if (upleftpt != NULL) { statmeta = HE5_EHgetmetavalue(metaptrs, "UpperLeftPointMtrs", utlstr); if (statmeta == SUCCEED) { /* If value is "DEFAULT" then return zeros */ /* --------------------------------------- */ if (strcmp(utlstr, "DEFAULT") == 0) { upleftpt[0] = 0; upleftpt[1] = 0; } else { sscanf(utlstr, "(%lf,%lf)", &upleftpt[0], &upleftpt[1]); } } else { status = FAIL; sprintf( errbuf, "\"UpperLeftPointMtrs\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDgridinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Get lowrightpt if requested */ /* --------------------------- */ if (lowrightpt != NULL) { statmeta = HE5_EHgetmetavalue(metaptrs, "LowerRightMtrs", utlstr); if (statmeta == SUCCEED) { /* If value is "DEFAULT" then return zeros */ if (strcmp(utlstr, "DEFAULT") == 0) { lowrightpt[0] = 0; lowrightpt[1] = 0; } else { sscanf(utlstr, "(%lf,%lf)", &lowrightpt[0], &lowrightpt[1]); } } else { status = FAIL; sprintf( errbuf,"\"LowerRightMtrs\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDgridinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } free(metabuf); free(utlstr); /*free(errbuf);*/ metabuf = NULL; utlstr = NULL; /*errbuf = NULL;*/ return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDprojinfo | | | | DESCRIPTION: Returns GCTP projection code, zone code, spheroid code | | and projection parameters. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | | | OUTPUTS: | | projcode int GCTP projection code | | zonecode int UTM zone code | | spherecode int GCTP spheriod code | | projparm double Projection parameters | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. Changed the datatype of statmeta from | | intn to int , and initialized the return statuses | | to -1. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDprojinfo(hid_t gridID, int *projcode, int *zonecode, int *spherecode, double projparm[]) { herr_t status = FAIL; /* routine return status variable */ herr_t statmeta = FAIL; /* EHgetmetavalue return status */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ char *metabuf = (char *)NULL; /*Pointer to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL};/* Pointers to begin and end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ char fmt[96]; /* Format String */ char *GCTPproj[128] = {"HE5_GCTP_GEO", "HE5_GCTP_UTM", "HE5_GCTP_SPCS", "HE5_GCTP_ALBERS", "HE5_GCTP_LAMCC", "HE5_GCTP_MERCAT", "HE5_GCTP_PS", "HE5_GCTP_POLYC", "HE5_GCTP_EQUIDC", "HE5_GCTP_TM", "HE5_GCTP_STEREO", "HE5_GCTP_LAMAZ", "HE5_GCTP_AZMEQD", "HE5_GCTP_GNOMON", "HE5_GCTP_ORTHO", "HE5_GCTP_GVNSP","HE5_GCTP_SNSOID", "HE5_GCTP_EQRECT", "HE5_GCTP_MILLER", "HE5_GCTP_VGRINT","HE5_GCTP_HOM", "HE5_GCTP_ROBIN","HE5_GCTP_SOM", "HE5_GCTP_ALASKA", "HE5_GCTP_GOOD", "HE5_GCTP_MOLL","HE5_GCTP_IMOLL", "HE5_GCTP_HAMMER","HE5_GCTP_WAGIV", "HE5_GCTP_WAGVII","HE5_GCTP_OBLEQA" /*,"HE5_GCTP_CEA", "HE5_GCTP_BCEA", "HE5_GCTP_ISINUS"*/};/* GCTP projection codes */ /* char *errbuf = (char *)NULL;*/ /* Error message buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ /* errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } */ /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDprojinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ return( FAIL); } /* Allocate memory for utility string */ /* ---------------------------------- */ utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ return(FAIL); } /* Add "non-standard" GCTP codes */ /* ----------------------------- */ GCTPproj[ 97 ] = (char *)calloc( HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if(GCTPproj[ 97 ] == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(FAIL); } strcpy(GCTPproj[97], "HE5_GCTP_CEA"); GCTPproj[ 98 ] = (char *)calloc( HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if(GCTPproj[ 98 ] == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(GCTPproj[ 97 ]); return(FAIL); } strcpy(GCTPproj[98], "HE5_GCTP_BCEA"); GCTPproj[99] = (char *) calloc( HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if(GCTPproj[99] == NULL) { sprintf(errbuf, "Cannot allocate memory for GCTP codes string.\n"); H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(GCTPproj[ 97 ]); free(GCTPproj[ 98 ]); return(FAIL); } strcpy(GCTPproj[99],"HE5_GCTP_ISINUS"); /* Get pointers to grid structure section within SM */ /* ------------------------------------------------ */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname, "g", NULL, metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer string.\n"); H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(GCTPproj[ 97 ]); free(GCTPproj[ 98 ]); free(GCTPproj[99]); return(FAIL); } /* Get projcode if requested */ /* ------------------------- */ if (projcode != NULL) { *projcode = FAIL; statmeta = HE5_EHgetmetavalue(metaptrs, "Projection", utlstr); if (statmeta == SUCCEED) { /* Loop through projection codes until found */ /* ----------------------------------------- */ for (i = 0; i < 128; i++) { if (GCTPproj[i] != NULL) { if (strcmp(utlstr, GCTPproj[i]) == 0) { *projcode = i; break; } } } } else { sprintf(errbuf, "Projection Code not defined for \"%s\".\n", HE5_GDXGrid[idx].gdname); H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (projparm != NULL) { for (i = 0; i < 13; i++) { projparm[i] = FAIL; } } /*free(errbuf);*/ free(utlstr); free(GCTPproj[97]); free(GCTPproj[98]); free(GCTPproj[99]); free(metabuf); return(FAIL); } } /* Get zonecode if requested */ /* ------------------------- */ if (zonecode != NULL) { *zonecode = FAIL; /* Zone code only relevant for UTM and State Code projections */ /* ---------------------------------------------------------- */ if (*projcode == HE5_GCTP_UTM || *projcode == HE5_GCTP_SPCS) { statmeta = HE5_EHgetmetavalue(metaptrs, "ZoneCode", utlstr); if (statmeta == SUCCEED) { *zonecode = atoi(utlstr); } else { sprintf(errbuf, "Zone Code not defined for \"%s\".\n", HE5_GDXGrid[idx].gdname); H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(GCTPproj[97]); free(GCTPproj[98]); free(GCTPproj[99]); free(metabuf); return(FAIL); } } } /* Get projection parameters if requested */ /* -------------------------------------- */ if (projparm != NULL) { /* * Note: No projection parameters for GEO, UTM, and State Code * projections */ if (*projcode == HE5_GCTP_GEO || *projcode == HE5_GCTP_UTM || *projcode == HE5_GCTP_SPCS) { for (i = 0; i < 13; i++) { projparm[i] = 0.0; } } else { statmeta = HE5_EHgetmetavalue(metaptrs, "ProjParams", utlstr); if (statmeta == SUCCEED) { /* Build format string to read projection parameters */ /* ------------------------------------------------- */ strcpy(fmt, "%lf,"); for (i = 1; i <= 11; i++) strcat(fmt, "%lf,"); strcat(fmt, "%lf"); /* Read parameters from numeric list */ /* --------------------------------- */ sscanf(&utlstr[1], fmt, &projparm[0], &projparm[1], &projparm[2], &projparm[3], &projparm[4], &projparm[5], &projparm[6], &projparm[7], &projparm[8], &projparm[9], &projparm[10], &projparm[11], &projparm[12]); } else { sprintf(errbuf, "Projection parameters not defined for \"%s\".\n", HE5_GDXGrid[idx].gdname); H5Epush(__FILE__, "HE5_GDprojinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(GCTPproj[97]); free(GCTPproj[98]); free(GCTPproj[99]); free(metabuf); return(FAIL); } } } /* Get spherecode if requested */ /* --------------------------- */ if (spherecode != NULL) { *spherecode = 0; /* Note: Spherecode not defined for GEO projection */ /* ----------------------------------------------- */ if (*projcode != HE5_GCTP_GEO) { statmeta = HE5_EHgetmetavalue(metaptrs, "SphereCode", utlstr); if (statmeta == SUCCEED) { *spherecode = atoi(utlstr); } } } free(metabuf); free(GCTPproj[97]); free(GCTPproj[98]); free(GCTPproj[99]); free(utlstr); /*free(errbuf);*/ metabuf = NULL; GCTPproj[97] = NULL; GCTPproj[98] = NULL; GCTPproj[99] = NULL; utlstr = NULL; /*errbuf = NULL;*/ return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDorigininfo | | | | DESCRIPTION: Returns origin code | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | | | OUTPUTS: | | origincode int grid origin code | | | | NOTES: | | | | HDF5 Library Functions Called: | | | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. Changed the type of statmeta from intn | | to int , and initialized the return statuses to | | -1. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | Mar 04 S.Zhao Changed the default origin code from 0 to FAIL. | | Aug 11 Abe Taaheri Modified to return default value if it is not found | | in structure metadata | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDorigininfo(hid_t gridID, int *origincode) { herr_t status = FAIL; /* routine return status variable */ herr_t statmeta = FAIL; /* EHgetmetavalue return status */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ char *metabuf = (char *)NULL; /* Pointer to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL}; /* Pointers to begin and end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ char *originNames[] = {"HE5_HDFE_GD_UL", "HE5_HDFE_GD_UR","HE5_HDFE_GD_LL", "HE5_HDFE_GD_LR"}; /* Array of origin codes */ char *errbuf = (char *)NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDorigininfo", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDorigininfo", &fid, &gid, &idx); if ( status == FAIL) { *origincode = FAIL; sprintf(errbuf,"Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDorigininfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Allocate memory for utility string */ /* ---------------------------------- */ utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { *origincode = FAIL; sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDorigininfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Set default origin code */ /* ----------------------- */ *origincode = FAIL; /* Get pointers to grid structure section within SM */ /* ------------------------------------------------ */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname, "g",NULL, metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer string.\n"); H5Epush(__FILE__, "HE5_GDorigininfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(FAIL); } /* Get "GridOrigin" metadata string */ /* -------------------------------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "GridOrigin", utlstr); if (statmeta == FAIL) { /* return default value */ status = 0; *origincode = 0; /* sprintf(errbuf,"Cannot get metadata string.\n"); H5Epush(__FILE__, "HE5_GDorigininfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status=FAIL; */ free(errbuf); free(utlstr); free(metabuf); metabuf = NULL; utlstr = NULL; errbuf = NULL; return(status); } /* * If "GridOrigin" string found in metadata then convert to * numeric origin code (fixed added: Jan 97) */ for (i = 0; i < 4; i++) { if (strcmp(utlstr, originNames[i]) == 0) { *origincode = i; break; } } free(metabuf); free(utlstr); free(errbuf); metabuf = NULL; utlstr = NULL; errbuf = NULL; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDpixreginfo | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | | | OUTPUTS: | | pixregcode int None Pixel registration code | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. Changed the type of statmeta from intn | | to int , and initialized the return statuses to | | -1. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | Mar 04 S.Zhao Changed the default pixreg code from 0 to FAIL. | | Aug 11 Abe Taaheri Modified to return default value if it is not found | | in structure metadata | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDpixreginfo(hid_t gridID, int *pixregcode) { herr_t status = FAIL; /* routine return status variable */ herr_t statmeta = FAIL; /* EHgetmetavalue return status */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ char *metabuf = (char *)NULL; /* Ptr to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL}; /* Ptrs to begin/end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ char *pixregNames[] = {"HE5_HDFE_CENTER", "HE5_HDFE_CORNER"};/* Pixel Registration Codes */ char *errbuf = (char *)NULL; /* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDpixreginfo", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDpixreginfo", &fid, &gid, &idx); if ( status == FAIL ) { *pixregcode = FAIL; sprintf(errbuf,"Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDpixreginfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( FAIL ); } /* Set default pixreg code */ /* ----------------------- */ *pixregcode = FAIL; /* Allocate memory for utility string */ /* ---------------------------------- */ utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDpixreginfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get pointers to Grid structure section within SM */ /* ------------------------------------------------ */ metabuf = (char *)HE5_EHmetagroup(fid , HE5_GDXGrid[idx].gdname, "g", NULL, metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer string.\n"); H5Epush(__FILE__, "HE5_GDpixreginfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(FAIL); } /* Get "PixelRegistration" metadata string */ /* --------------------------------------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "PixelRegistration", utlstr); if (statmeta == FAIL) { /* return default value */ status = 0; *pixregcode = 0; /* sprintf(errbuf,"Cannot get metadata string.\n"); H5Epush(__FILE__, "HE5_GDpixreginfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; */ free(errbuf); free(utlstr); free(metabuf); metabuf = NULL; utlstr = NULL; errbuf = NULL; return(status); } /* * If "PixelRegistration" string found in metadata then convert * to numeric origin code (fixed added: Jan 97) */ for (i = 0; i < 2; i++) { if (strcmp(utlstr, pixregNames[i]) == 0) { *pixregcode = i; break; } } free(metabuf); free(utlstr); free(errbuf); metabuf = NULL; utlstr = NULL; errbuf = NULL; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDcompinfo | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char* None | | compcode int* None | | compparm int none | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A.Muslimov Changed the return type from intn to int . | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. Changed the type of gridID from int32_t | | to hid_t. Changed the type of statmeta from intn | | to int , and initialized the return statuses to | | -1. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | June 03 S.Zhao Changed the type of compcode from *char to *int. | | Aug 03 S.Zhao Added Szip compression methods. | | Apr 04 S.Zhao Added the HE5_GDfldnameinfo() call. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDcompinfo(hid_t gridID, const char *fieldname, int *compcode, int compparm[]) { herr_t status = FAIL; /* routine return status variable */ herr_t statmeta = FAIL; /* EHgetmetavalue return status */ int i; /* Loop Index */ hid_t (*func)(void*); hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ int nameflag = FAIL; /* Name flag (0-alias,1-actual)*/ char fldname[HE5_HDFE_NAMBUFSIZE]; /* Field name buffer */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual name of a field */ char *metabuf = (char *)NULL; /* Ptr to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL};/* Ptrs to begin/end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ char *errbuf = (char *)NULL; /* buffer for error message */ void *edata = (void *)NULL; char *HDFcomp[18] = {"HE5_HDFE_COMP_NONE", "HE5_HDFE_COMP_RLE", "HE5_HDFE_COMP_NBIT", "HE5_HDFE_COMP_SKPHUFF", "HE5_HDFE_COMP_DEFLATE", "HE5_HDFE_COMP_SZIP_CHIP", "HE5_HDFE_COMP_SZIP_K13", "HE5_HDFE_COMP_SZIP_EC", "HE5_HDFE_COMP_SZIP_NN", "HE5_HDFE_COMP_SZIP_K13orEC", "HE5_HDFE_COMP_SZIP_K13orNN", "HE5_HDFE_COMP_SHUF_DEFLATE", "HE5_HDFE_COMP_SHUF_SZIP_CHIP", "HE5_HDFE_COMP_SHUF_SZIP_K13", "HE5_HDFE_COMP_SHUF_SZIP_EC", "HE5_HDFE_COMP_SHUF_SZIP_NN", "HE5_HDFE_COMP_SHUF_SZIP_K13orEC", "HE5_HDFE_COMP_SHUF_SZIP_K13orNN"}; /* Compression method Codes */ H5Eget_auto(&func, &edata); CHECKPOINTER(fieldname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDcompinfo", &fid, &gid, &idx); if ( status == FAIL) { sprintf(errbuf,"Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( FAIL ); } /* Allocate memory for utility string */ /* ---------------------------------- */ utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Call HE5_GDfldnameinfo() to get actual field name */ /* ------------------------------------------------- */ nameflag = HE5_GDfldnameinfo(gridID, fieldname, fldactualname); if ( nameflag == FAIL ) { sprintf(errbuf, "Cannot get the actual name of the field.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(FAIL); } /* If fldname is alias, then change it to the actual name */ /* ------------------------------------------------------ */ if (nameflag == FALSE) { strcpy(fldname,""); strcpy(fldname,fldactualname); } if (nameflag == TRUE) { strcpy(fldname,""); strcpy(fldname,fieldname); } /* Get pointers to "DataField" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname, "g","DataField", metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer string.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(FAIL); } /* Search for field */ /* ---------------- */ sprintf(utlstr, "%s%s%s", "\"", fldname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); /* If field found and user wants compression code ... */ /* -------------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { if (compcode != NULL) { /* Set endptr at end of field's definition entry */ /* --------------------------------------------- */ metaptrs[1] = strstr(metaptrs[0], "\t\t\tEND_OBJECT"); /* Get compression type */ /* -------------------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "CompressionType", utlstr); /* if (statmeta == FAIL) { sprintf(errbuf,"Cannot get metadata string.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL ); } */ /* * Default is no compression if "CompressionType" string not * in metadata */ *compcode = HE5_HDFE_COMP_NONE; /* strcpy( compcode, utlstr);*/ /* If compression code is found ... */ /* -------------------------------- */ if (statmeta == SUCCEED) { /* Loop through compression types until match */ /* ------------------------------------------ */ for (i = 0; i < 18; i++) { if (strcmp(utlstr, HDFcomp[i]) == 0) { *compcode = i; break; } } } } /* If user wants compression parameters ... */ /* ---------------------------------------- */ if (compparm != NULL && compcode != NULL) { /* Initialize to zero */ for (i = 0; i < 5; i++) { compparm[i] = 0; } /* * Get compression parameters */ if(*compcode == HE5_HDFE_COMP_NBIT) { statmeta = HE5_EHgetmetavalue(metaptrs, "CompressionParams", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"CompressionParams\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL ); } sscanf(utlstr, "(%d,%d,%d,%d)",&compparm[0], &compparm[1],&compparm[2], &compparm[3]); } else if (*compcode == HE5_HDFE_COMP_DEFLATE) { statmeta = HE5_EHgetmetavalue(metaptrs, "DeflateLevel", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"DeflateLevel\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SZIP_CHIP) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SZIP_K13) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SZIP_EC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SZIP_NN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SZIP_K13orEC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SZIP_K13orNN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SHUF_DEFLATE) { statmeta = HE5_EHgetmetavalue(metaptrs, "DeflateLevel", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"DeflateLevel\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_CHIP) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_K13) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_EC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_NN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_K13orEC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_K13orNN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == FAIL) { sprintf(errbuf,"\"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return( FAIL); } sscanf(utlstr, "%d", &compparm[0]); } } } else { status = FAIL; sprintf(errbuf, "Fieldname \"%s\" not found.\n", fldname); H5Epush(__FILE__, "HE5_GDcompinfo", __LINE__, H5E_FILE, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(metabuf); free(utlstr); free(errbuf); metabuf = NULL; utlstr = NULL; errbuf = NULL; COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDfieldinfo | | | | DESCRIPTION: Retrieve information about a specific geolocation or data | | field in the grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char* name of field | | | | OUTPUTS: | | rank int rank of field (# of dims) | | dims hsize_t field dimensions | | ntype hid_t field number types | | dimlist char* field dimension list | | maxdimlist char* field maximum dimension list | | | | NOTES: | | | | HDF5 Library Functions Called: | | H5Dopen | | H5Dget_type | | H5Tget_class | | H5Dclose | | H5Dget_space | | H5Sget_simple_extent_ndims | | H5Sget_simple_extent_dims | | H5Sclose | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. Changed the type of statmeta from intn | | to int , and initialized the return status to | | -1. | | 9/27/99 A.Muslimov Added proper error handlings. | | 10/18/99 A.Muslimov Replace memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 01/13/00 A.Muslimov Added "maxdimlist" parameter to make it possible | | working with the appendable datasets. Modified the | | blocks retrieving the dimension lists. Added proper | | error handlings after the function calls. | | Feb 00 A.Muslimov Casted the type of a variable assigned to rank to | | "int". | | Mar 00 A.Muslimov Changed the ID of field group from gd_id to data_id.| | Apr 00 A.Muslimov Changed type of 'slen' from long to size_t. | | 5/10/00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | Jan 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | Oct. 03 S.Zhao Added the H5Tclose(datatype) call. | | Jan. 04 S.Zhao Modified to enable a character string dataset. | | Mar 04 S.Zhao Modified for a character string dataset. | | Apr 04 S.Zhao Added the HE5_GDfldnameinfo() call. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDfieldinfo(hid_t gridID, const char *fieldname, int *rank, hsize_t dims[], hid_t ntype[], char *dimlist, char *maxdimlist) { herr_t status = FAIL; /* routine return status variable */ herr_t statmeta = FAIL; /* EHgetmetavalue return status */ herr_t Dstatus = FAIL; /* Status for H5Dclose */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t datasetid = FAIL; /* dataset ID */ hid_t datatype = FAIL; /* data type ID */ hid_t fieldID = FAIL; /* field ID */ hid_t dspace = FAIL; /* data space ID */ size_t slen[HE5_DTSETRANKMAX];/* Length of each entry in a list */ long idx = FAIL; /* Grid index */ long ndims = 0; /* Number of dimensions */ long xdim = 0; /* X dim size */ long ydim = 0; /* Y dim size */ H5T_class_t classid = H5T_NO_CLASS; /* Data type class ID */ char *metabuf = (char *)NULL; /* Pointer to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL}; /* Pnts to begin and end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ char *ptr[HE5_DTSETRANKMAX]; /* String pointers for parsed string */ char dimstr[HE5_HDFE_DIMBUFSIZE]; /* Individual dimension entry string */ char maxdimstr[HE5_HDFE_DIMBUFSIZE];/* Maximum dimension entry string */ /* char *errbuf = (char *)NULL;*/ /* Buffer for error message */ char errbuf[HE5_HDFE_ERRBUFSIZE]; int nameflag = FAIL; /* Actual(1)/Alias(0) field name */ char fldname[HE5_HDFE_NAMBUFSIZE]; /* field name buffer */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual field name */ htri_t str_is_variable; /* boolean: TRUE if string is variable lengeth FALSE if string is fixed length -1 if error in H5Tis_variavle_str() */ CHECKPOINTER(fieldname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ /* errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } */ /* Allocate memory for utility string */ /* ---------------------------------- */ utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDfieldinfo", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for Grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); return(FAIL); } /* Call HE5_GDfldnameinfo() to get actual field name */ /* ------------------------------------------------- */ nameflag = HE5_GDfldnameinfo(gridID, fieldname, fldactualname); if ( nameflag == FAIL ) { sprintf(errbuf, "Cannot get actual name of the field.\n"); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); return(FAIL); } /* Name is not alias */ /* ----------------- */ if (nameflag == TRUE) { strcpy(fldname,""); strcpy(fldname,fieldname); } /* Name is alias */ /* ------------- */ if (nameflag == FALSE) { strcpy(fldname,""); strcpy(fldname,fldactualname); } /* Allocate memory for metabuf string */ /* ---------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname, "g", "DataField", metaptrs); if(metabuf == NULL) { sprintf(errbuf, "cannot allocate memory for metabuffer.\n"); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); return(FAIL); } /* Search for field */ /* ---------------- */ sprintf(utlstr, "%s%s%s", "\"", fldname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); /* If field found ... */ /* ------------------ */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* initialize the rank value */ /* ------------------------- */ *rank = FAIL; /* Set endptr at end of dimension definition entry */ /* ----------------------------------------------- */ metaptrs[1] = strstr(metaptrs[0], "\t\t\tEND_OBJECT"); /* Get "DataType" string */ /* --------------------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "DataType", utlstr); /* Convert to numbertype code */ /* -------------------------- */ if (statmeta == SUCCEED) { datasetid = H5Dopen(HE5_GDXGrid[idx].data_id, fldname); if (datasetid == FAIL) { sprintf(errbuf, "Cannot open the dataset \"%s\".", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*if (errbuf != NULL) free(errbuf);*/ if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); return(FAIL); } /* Get data type ID */ /* ---------------- */ datatype = H5Dget_type(datasetid); if (datatype == FAIL) { sprintf(errbuf, "Cannot get the data type for \"%s\" dataset.", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*if (errbuf != NULL) free(errbuf);*/ if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); return(FAIL); } /* Get data class ID */ /* ----------------- */ classid = H5Tget_class(datatype); if (classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for \"%s\" dataset.", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*if (errbuf != NULL) free(errbuf);*/ if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); return(FAIL); } if (classid == H5T_STRING) { /* HE5T_CHARSTRING has variable length for data fields */ str_is_variable = H5Tis_variable_str(datatype); if(str_is_variable == TRUE) { ntype[0] = HE5T_CHARSTRING; } else if(str_is_variable == FALSE) { ntype[0] = HE5T_NATIVE_CHAR; } else { status = FAIL; sprintf(errbuf, "Failed to see if string field is varaible or fixed length for the \"%s\" field.\n",fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*if (errbuf != NULL) free(errbuf);*/ if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); return(status); } /*HE5_GDgetstringtype(swathID, fieldname,classid);*/ /*ntype[0] = HE5T_CHARSTRING;*/ } else { /* ntype[0] = classid; */ ntype[0] = HE5_EHdtype2numtype(datatype); if (ntype[0] == FAIL) { sprintf(errbuf, "Cannot get the number type for \"%s\" dataset.", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*if (errbuf != NULL) free(errbuf);*/ if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); return(FAIL); } } /* Release datatype ID */ /* ------------------- */ status = H5Tclose(datatype); if (status == FAIL) { sprintf(errbuf, "Cannot close the datatype \"%s\".", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*if (errbuf != NULL) free(errbuf);*/ if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); return(FAIL); } /* Release dataset ID */ /* ------------------ */ Dstatus = H5Dclose(datasetid); if (Dstatus == FAIL) { sprintf(errbuf, "Cannot close the dataset \"%s\".", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*if (errbuf != NULL) free(errbuf);*/ if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); return(FAIL); } } else { sprintf(errbuf, "\"DataType\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(FAIL); } /* * Get DimList string and trim off leading and trailing parens * "()" */ statmeta = HE5_EHgetmetavalue(metaptrs, "DimList", utlstr); if (statmeta == SUCCEED) { /* Initialize slen[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) slen[ i ] = 0; memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); utlstr[strlen(utlstr) - 2] = 0; /* Parse trimmed DimList string and get rank */ /* ----------------------------------------- */ ndims = HE5_EHparsestr(utlstr, ',', ptr, slen); *rank = (int)ndims; } else { sprintf(errbuf, "\"DimList\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(FAIL); } /* Get information about grid */ /* -------------------------- */ status = HE5_GDgridinfo(gridID, &xdim, &ydim, NULL, NULL); if(status == FAIL) { sprintf(errbuf, "Cannot get information about Grid.\n"); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(FAIL); } for (i = 0; i < ndims; i++) { memmove(dimstr, ptr[i] + 1, slen[i] - 2); dimstr[slen[i] - 2] = 0; if (strcmp(dimstr, "XDim") == 0) { dims[i] = (hsize_t)xdim; } else if (strcmp(dimstr, "YDim") == 0) { dims[i] = (hsize_t)ydim; } else { /* Get dimension size */ /* ------------------ */ dims[i] = (hsize_t)HE5_GDdiminfo(gridID, dimstr); if ( dims[i] == FAIL) { sprintf(errbuf, "Cannot get the size of dimension.\n"); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(FAIL); } } /* If DimList string is requested ... */ /* ---------------------------------- */ if (dimlist != NULL) { if (i == 0) { dimlist[0] = 0; } if (i > 0) { strcat(dimlist, ","); } strcat(dimlist, dimstr); } } /* If MaxdimList is requested ... */ /* ------------------------------- */ if (maxdimlist != NULL ) { statmeta = HE5_EHgetmetavalue(metaptrs, "MaxdimList", utlstr); if (statmeta == SUCCEED) { memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); utlstr[strlen(utlstr) - 2] = 0; /* Parse trimmed MaxdimList string and get rank */ /* -------------------------------------------- */ ndims = HE5_EHparsestr(utlstr, ',', ptr, slen); } else { sprintf(errbuf, "\"MaxdimList\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(FAIL); } strcpy(maxdimstr,""); strcpy(maxdimlist,""); for (i = 0; i < ndims; i++) { memmove(maxdimstr, ptr[i] + 1, slen[i] - 2); maxdimstr[slen[i] - 2] = 0; /* If MaxdimList string is requested ... */ /* ------------------------------------- */ if (maxdimlist != NULL) { if (i > 0) { strcat(maxdimlist, ","); } strcat(maxdimlist, maxdimstr); } } } /* Get field-related dataset ID */ /* ---------------------------- */ status = HE5_GDgetfieldID(gridID, fldname, &fieldID); if ( status == FAIL ) { sprintf(errbuf, "Cannot get the dataset ID for the \"%s\" field.\n", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(status); } /* Get data space ID */ /* ----------------- */ dspace = H5Dget_space( fieldID ); if (dspace == FAIL) { sprintf(errbuf, "Cannot get the dataspace ID for the \"%s\" field.\n", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(FAIL); } /* Get dataset rank */ /* ---------------- */ *rank = H5Sget_simple_extent_ndims(dspace); if ( *rank == FAIL ) { sprintf(errbuf, "Cannot get the dataset rank for the \"%s\" field.\n", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(FAIL); } /* Get dataset dimension sizes */ /* --------------------------- */ status = H5Sget_simple_extent_dims(dspace,dims, NULL); if ( status == FAIL ) { sprintf(errbuf, "Cannot get the dataset dimension sizes for the \"%s\" field.\n", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(status); } /* Release the dataspace ID */ /* ------------------------ */ status = H5Sclose(dspace); if ( status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" field.\n", fldname); H5Epush(__FILE__, "HE5_GDfieldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ free(utlstr); free(metabuf); return(status); } } free(metabuf); free(utlstr); /*free(errbuf);*/ metabuf = NULL; utlstr = NULL; /*errbuf = NULL;*/ COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDtileinfo | | | | DESCRIPTION: Retrieves tiling information | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t Grid structure ID | | fldname char* name of field | | | | OUTPUTS: | | tilecode int* tile code | | tilerank int* number of tiling dimensions | | tiledims hsize_t the array containing sizes | | of each dimension of a tile | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================== | | Dec 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDtileinfo(hid_t gridID, char *fldname, int *tilecode, int *tilerank, hsize_t tiledims[]) { herr_t status = FAIL;/* Return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Grid index */ hid_t fieldID = FAIL;/* field dataset ID */ hid_t plist = FAIL;/* field dataset property list ID */ hid_t dspace = FAIL;/* "fieldname" Dataspace ID */ int ndims = 0; /* Number of dimensions */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Storage layout type */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Grid index */ /* ----------------------------------------------------- */ status = HE5_GDchkgdid(gridID, "HE5_GDtileinfo", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf,"Checking for valid grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDtileinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check out the field group and get field ID */ /* ------------------------------------------ */ status = HE5_GDgetfieldID(gridID, fldname, &fieldID); if(status == FAIL) { sprintf(errbuf, "Cannot get the field ID for the \"%s\" field.\n", fldname); H5Epush(__FILE__, "HE5_GDtileinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the property list ID */ /* ------------------------ */ plist = H5Dget_create_plist(fieldID); if (plist == FAIL) { sprintf(errbuf, "Cannot get the property list ID for the \"%s\" data field.\n", fldname); H5Epush(__FILE__, "HE5_GDtileinfo", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the data space ID */ /* --------------------- */ dspace = H5Dget_space(fieldID); if(dspace == FAIL) { sprintf(errbuf, "Cannot get the data space ID for the \"%s\" data field.\n", fldname); H5Epush(__FILE__, "HE5_GDtileinfo", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the dataset rank */ /* -------------------- */ ndims = H5Sget_simple_extent_ndims(dspace); if(ndims == FAIL) { sprintf(errbuf, "Cannot get the rank of the dataset.\n"); H5Epush(__FILE__, "HE5_GDtileinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get Layout */ /* ---------- */ layout = H5Pget_layout(plist); if (layout == H5D_LAYOUT_ERROR) { sprintf(errbuf, "Cannot get the layout of the raw data. \n"); H5Epush(__FILE__, "HE5_GDtileinfo", __LINE__, H5E_PLIST, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (layout == H5D_CHUNKED) { *tilecode = HE5_HDFE_TILE; /* Get chunking */ /* ------------ */ *tilerank = H5Pget_chunk(plist, ndims, tiledims); if (*tilerank == FAIL) { sprintf(errbuf, "Cannot get the sizes of chunks. \n"); H5Epush(__FILE__, "HE5_GDtileinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else { *tilecode = HE5_HDFE_NOTILE; *tilerank = 0; } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release property list ID. \n"); H5Epush(__FILE__, "HE5_GDtileinfo", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(dspace); if( status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_GDtileinfo", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdeffield | | | | DESCRIPTION: Defines a new data field within the grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char* fieldname | | dimlist char* Dimension list (comma-separated list) | | maxdimlist char* Maximum Dimension list | | ntype hid_t Data type ID of the field | | merge int merge code | | | | OUTPUTS: | | None | | | | NOTES: | | | | HDF5 Library Functions Called: | | H5Tequal | | H5Pget_layout | | H5Screate_simple | | H5Dcreate | | H5Dextend | | H5Tget_size | | H5Pget_fill_value | | H5Pclose | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/20/99 A.Muslimov In the call to EHinsertmeta() replaced the argument | | gid by fid. Added error handling after the function | | calls. In the call to H5Dcreate() replaced the first| | argument by gd_id (data field group ID). | | 9/30/99 A.Muslimov Added more error handlings after the function calls.| | Removed 'if(status == -1){}' block from the | | 'if((tilecode == HDFE_TILE ){}' block. | | 10/18/99 A.Muslimov Replace memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 10/18/99 A.Taaheri Replaced strcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | Jan 2000 A.Muslimov Modified to enable the functioning of routines | | dealing with extendible datsets. | | Mar,2000 A.Muslimov Changed the ID of field group from gd_id to | | data_id. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | Nov 2000 A.Muslimov Modified to enable appendability of any dimension. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | Aug 03 S.Zhao Added checking for SOMBlockDim in the dimlist. | | Aug 03 S.Zhao Added Szip compression methods. | | Jan 04 S.Zhao Added to create a character string dataset. | | Mar 04 S.Zhao Modified for a character string dataset. | | Apr 04 S.Zhao Modified for a character string dataset. | | May 04 S.Zhao Added to check in the maxdimlist section for "XDim" | | set to xdimsize and "YDim" set to ydimsize. | | May 05 S.Zhao Added HE5_EHdtype2numtype() and HE5_EHhid2hsize() | | functions calls. | | Aug 08 Abe Taaheri Fixed problem with fillvalue setting. Value set for | | fillvalue is used only in the field that intended. | | It must be set before defining the field. | | Sep 11 Abe Taaheri Modified for correcting Unlimited dimension | | behavior and extension, removing hardcoded name | | Unlim | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdeffield(hid_t gridID, const char *fieldname, char *dimlist, char *maxdimlist, hid_t numbertype_in, int merge) { herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t data_id = FAIL; /* "Data Fields" group ID */ hid_t dataset = FAIL; /* dataset ID */ hid_t data_space = FAIL; /* dataspace ID */ int i; /* Loop index */ int found = 0; /* "Found" flag */ int foundNT = 0; /* "Found number type" flag */ int foundAllDim = 1; /* "Found all dimensions" flag */ int first = 1; /* "First entry" flag */ int append = FALSE;/* "Appendibility" flag */ int tilecode = FAIL; /* Tiling code */ int projcode = FAIL; /* Projection Code */ int rank = 0; /* Field rank */ int maxrank = 0; /* Maximum dimension rank */ long idx = FAIL; /* Grid index */ long xdim = 0; /* Grid "X" dimension size */ long ydim = 0; /* Grid "Y" dimension size */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimension size array */ hsize_t maxdims[HE5_DTSETRANKMAX];/* Max.Dimension size array */ hsize_t count[] = { 1 } ; /* Number of elements array */ hsize_t dimsize = 0; /* Dimension size */ double projparm[13]; /* Projection Parameters */ H5D_layout_t layout = H5D_LAYOUT_ERROR;/* Type of storage ID */ void *value; /* Fill value buffer */ size_t tsize = 0; /* Size of a data type */ char compmethod[HE5_HDFE_NAMBUFSIZE];/* Compression code */ char *dimbuf = (char *)NULL; /* Dimension buffer */ char *dimlist0 = (char *)NULL; /* Auxilliary dimension list */ char *comma = (char *)NULL; /* Pointer to "," */ char *dimcheck = (char *)NULL; /* Individual dimen. string */ char *utlbuf = (char *)NULL; /* Utility buffer */ char *utlbuf2 = (char *)NULL; /* Utility buffer 2 */ char gridname[HE5_HDFE_NAMBUFSIZE]; /* Grid name buffer */ char parmbuf[HE5_HDFE_NAMBUFSIZE]; /* Parameter string buffer */ char *errbuf1 = (char *)NULL; /* Error message buffer #1 */ char *errbuf2 = (char *)NULL; /* Error message buffer #2 */ char *errmsg1 = "Dimension: %d (size: %lu) not divisible by "; char *errmsg2 = "tile dimension (size: %lu).\n"; char *errmsg = (char *)NULL; /* Tiling error message */ /* char *HDFcomp[5] = {"HE5_HDFE_COMP_NONE", "HE5_HDFE_COMP_RLE","HE5_HDFE_COMP_NBIT", "HE5_HDFE_COMP_SKPHUFF","HE5_HDFE_COMP_DEFLATE"}; Compression code names */ char compparmbuf[HE5_HDFE_NAMBUFSIZE]; /* Compression string buffer */ char maxdimlstbuf[HE5_HDFE_NAMBUFSIZE];/* Max.Dimension list buffer */ char *errbuf = (char *)NULL; /* Error message buffer */ char *nameptr = (char *)NULL; char tempname[HE5_HDFE_NAMBUFSIZE]; hid_t numbertype = FAIL; /* Number type ID */ int attr = 0; /* attribute value */ H5D_fill_value_t fill_status; /* to see if fill value is set or not */ hid_t numtype = FAIL; hsize_t metavalue = 0; /* Metavalue to insert */ hid_t ntype; HE5_LOCK; CHECKNAME(fieldname); CHECKPOINTER(dimlist); /* assuming that fillvalue is undefined for the field */ fill_status = H5D_FILL_VALUE_UNDEFINED; /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { ntype = numbertype_in; } else { ntype = HE5_EHconvdatatype((int) numbertype_in); } if(ntype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for defining field.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } errbuf1 = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf1 == NULL) { sprintf(errbuf,"Cannot allocate memory for error buffer1.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } errbuf2 = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf2 == NULL) { sprintf(errbuf,"Cannot allocate memory for error buffer2.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); return(FAIL); } /* Allocate memory for tiling error message */ /* ---------------------------------------- */ errmsg = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errmsg == NULL) { sprintf(errbuf,"Cannot allocate memory for tiling error message.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); return(FAIL); } /* Setup error message strings */ /* --------------------------- */ strcpy(errbuf1, "HE5_GDXSDname array too small.\nPlease increase "); strcat(errbuf1, "size of HE5_HDFE_NAMBUFSIZE in \"HE5_HdfEosDef.h\".\n"); strcpy(errbuf2, "HE5_GDXSDdims array too small.\nPlease increase "); strcat(errbuf2, "size of HE5_HDFE_DIMBUFSIZE in \"HE5_HdfEosDef.h\".\n"); /* Build tiling dimension error message */ /* ------------------------------------ */ strcpy(errmsg, errmsg1); strcat(errmsg, errmsg2); /* Initialize dims and maxdims arrays */ /* ---------------------------------- */ for(i = 0; i < HE5_DTSETRANKMAX; i++) { dims[i] = 0; maxdims[i] = 0; } /* Initialize projparm[] array */ /* --------------------------- */ for ( i = 0; i < 13; i++) projparm[ i ] = 0.; /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdeffield", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for Grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); return(FAIL); } /* Allocate memory for utility buffers */ /* ----------------------------------- */ utlbuf = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if( utlbuf == NULL ) { sprintf(errbuf,"Can not allocate memory for utility buffer.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); return(FAIL); } utlbuf2 = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if( utlbuf2 == NULL ) { sprintf(errbuf,"Can not allocate memory for utility buffer2.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); return(FAIL); } strcpy(gridname, HE5_GDXGrid[idx].gdname); /* Allocate space for dimension buffer and auxilliary dimension list */ /* ----------------------------------------------------------------- */ dimbuf = (char *)calloc(strlen(dimlist) + 64, sizeof(char)); if(dimbuf == NULL) { sprintf(errbuf,"Can not allocate memory for dimension buffer.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); return(FAIL); } dimlist0 = (char *)calloc(strlen(dimlist) + 64, sizeof(char)); if(dimlist0 == NULL) { sprintf(errbuf,"Can not allocate memory for dimension list string.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); free(dimbuf); return(FAIL); } status = HE5_GDgridinfo(gridID, &xdim, &ydim, NULL, NULL); if(status == FAIL) { sprintf(errbuf,"Cannot get information about Grid.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); free(dimbuf); free(dimlist0); return(FAIL); } /* Get Grid and Projection info */ /* ---------------------------- */ status = HE5_GDprojinfo(gridID, &projcode, NULL, NULL, projparm); if(status == FAIL) { sprintf(errbuf,"Cannot get Grid projection information.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); free(dimbuf); free(dimlist0); return(FAIL); } /* Setup Block Dimension if "Blocked" SOM projection */ /* ------------------------------------------------- */ if (projcode == HE5_GCTP_SOM && (long)projparm[11] != 0) { dimsize = HE5_GDdiminfo(gridID, "SOMBlockDim"); /* If "SOMBlockDim" not yet defined then do it */ if (dimsize == 0) { status = HE5_GDdefdim(gridID, "SOMBlockDim", (hsize_t)projparm[11]); if(status == FAIL) { sprintf(errbuf,"Cannot define \"SOMBlockDim\" dimension.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); free(dimbuf); free(dimlist0); return(FAIL); } } /* If not 1D field then prepend to dimension list */ if (strchr(dimlist, ',') != NULL) { strcpy(tempname, dimlist); nameptr = strchr( tempname, ',' ); if ( nameptr != NULL ) { nameptr[0] = '\0'; } if ( strcmp(tempname, "SOMBlockDim") != 0) { strcpy(dimbuf, "SOMBlockDim,"); strcat(dimbuf, dimlist); } else { strcpy(dimbuf, dimlist); } } else { strcpy(dimbuf, dimlist); } } else { /* If not "Blocked" SOM then just copy dim list to dim buffer */ strcpy(dimbuf, dimlist); } /* * Copy dimension buffer to auxilliary dimlist and Append comma to * end of dimension list */ strcpy(dimlist0, dimbuf); strcat(dimbuf, ","); /* Find comma */ /* ---------- */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in grid */ while (comma != NULL) { /* Copy dimension list entry to dimcheck */ /* ------------------------------------- */ dimcheck = (char *)calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(dimbuf != NULL) free(dimbuf); if(dimlist0 != NULL) free(dimlist0); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get Dimension Size */ /* ------------------ */ if (strcmp(dimcheck, "XDim") == 0) { /* If "XDim" then use xdim value for grid definition */ /* ------------------------------------------------- */ dimsize = (hsize_t)xdim; found = 1; dims[ rank ] = dimsize; rank++; } else if (strcmp(dimcheck, "YDim") == 0) { /* If "YDim" then use ydim value for grid definition */ /* ------------------------------------------------- */ dimsize = (hsize_t)ydim; found = 1; dims[ rank ] = dimsize; rank++; } else { /* "Regular" Dimension */ /* ------------------- */ dimsize = HE5_GDdiminfo(gridID, dimcheck); if (dimsize > 0) { found = 1; dims[ rank ] = dimsize; rank++; } else { found = 0; } } /* * If dimension list entry not found - set error return status, * append name to utility buffer for error report */ if (found == 0) { foundAllDim = 0; if (first == 1) { strcpy(utlbuf, dimcheck); } else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ memmove(dimbuf, comma + 1, strlen(comma)-1); dimbuf[strlen(comma)-1]= 0; comma = strchr(dimbuf, ','); if(dimcheck != NULL) free(dimcheck); } if(dimbuf != NULL) free(dimbuf); /* If all dimensions not found then report error */ /* --------------------------------------------- */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Cannot find dimensions for \"%s\" field.\n", fieldname); H5Eclear(); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FILE, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (dimlist0 != NULL) free(dimlist0); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); return (status); } /* Check maxdimlist */ /* Allocate space for dimbuf, copy dimlist into it, & append comma */ /*----------------------------------------------------------------*/ if(maxdimlist != NULL) { dimbuf = (char *)calloc(strlen(maxdimlist) + 64, sizeof(char)); strcpy(dimbuf, maxdimlist); strcat(dimbuf, ","); /* Find comma */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in grid */ while (comma != NULL) { /* Copy dimension list entry to dimcheck buffer */ /* -------------------------------------------- */ dimcheck = (char *)calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (dimbuf != NULL) free(dimbuf); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get dimension size */ /* ------------------ */ if (strcmp(dimcheck, "XDim") == 0) { /* If "XDim" then use xdim value for grid definition */ /* ------------------------------------------------- */ dimsize = (hsize_t)xdim; maxdims[ maxrank ] = dimsize; maxrank++; } else if (strcmp(dimcheck, "YDim") == 0) { /* If "YDim" then use ydim value for grid definition */ /* ------------------------------------------------- */ dimsize = (hsize_t)ydim; maxdims[ maxrank ] = dimsize; maxrank++; } else { dimsize = HE5_GDdiminfo(gridID, dimcheck); if ( (dimsize > 0) || (dimsize == H5S_UNLIMITED) ) { maxdims[ maxrank ] = dimsize; maxrank++; } else { /* * If dimension list entry not found - set error return * status, append name to utility buffer for error report */ foundAllDim = 0; if (first == 1) strcpy(utlbuf, dimcheck); else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ strcpy(dimbuf, comma + 1); comma = strchr(dimbuf, ','); if (dimcheck != NULL) free(dimcheck); } if(dimbuf != NULL) free(dimbuf); /* If all dimensions not found then report error */ /* --------------------------------------------- */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Cannot find dimensions for \"%s\" field.\n", fieldname); H5Eclear(); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FILE, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(status); } } /* end if */ /* max dimmension equal to dims */ else { for(i = 0; i < rank; i++ ) maxdims[ i ] = dims[ i ]; } /* Check out if dataset dimension is appendible */ /* -------------------------------------------- */ for(i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } else { status = FAIL; sprintf(errbuf, "Maximum dimension size is smaller than dimension size.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(status); } } /* Check for valid data type ID */ /* ----------------------------- */ if (ntype == HE5T_CHARSTRING) { foundNT=1; } else { if (H5Tequal(ntype, H5T_NATIVE_CHAR)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_UCHAR)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_SHORT)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_USHORT)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_INT)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_UINT)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_LONG)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_ULONG)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_LLONG)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_ULLONG)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_FLOAT)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_DOUBLE)) foundNT=1; else if (H5Tequal(ntype, H5T_NATIVE_LDOUBLE)) foundNT=1; else if (H5Tequal(ntype, H5T_C_S1)) foundNT=1; else foundNT=0; } if (foundNT == 0) { status = FAIL; sprintf(errbuf, "Invalid number type for \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_DATATYPE, H5E_BADTYPE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(status); } if (status == SUCCEED) { /* Get Field group ID, compresion code, & tiling code */ /* -------------------------------------------------- */ data_id = HE5_GDXGrid[idx].data_id; strcpy(compmethod, HE5_GDXGrid[idx].compmethod); tilecode = HE5_GDXGrid[idx].tilecode; /* Check that field dims are divisible by tile dims */ /* ------------------------------------------------ */ if (tilecode == HE5_HDFE_TILE) { for (i = 0; i < HE5_GDXGrid[idx].tilerank; i++) { if ((dims[ i ] % HE5_GDXGrid[ idx ].tiledims[ i ]) != 0) { status = FAIL; sprintf(errbuf, errmsg, i, (unsigned long)dims[i],(unsigned long)HE5_GDXGrid[idx].tiledims[i]); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(status); } } } /* Create dataspace then create dataset */ /* dataset creation property is not set outside by */ /* GDdefchunksize() or GDdefcom() */ if(HE5_GDXGrid[ idx ].plist == FAIL) { HE5_GDXGrid[ idx ].plist = H5Pcreate(H5P_DATASET_CREATE); if(HE5_GDXGrid[ idx ].plist == FAIL) { sprintf(errbuf,"Cannot create a new property list.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } } /* Get layout information */ /* ---------------------- */ layout = H5Pget_layout(HE5_GDXGrid[ idx ].plist); if(layout == H5D_LAYOUT_ERROR) { sprintf(errbuf,"Cannot get layout information for the dataset.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } if(append == FALSE) { data_space = H5Screate_simple(rank, dims, NULL); if(data_space == FAIL) { sprintf(errbuf,"Cannot create dataspace for the dataset.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } } else { if( layout == H5D_CHUNKED) { data_space = H5Screate_simple(rank, dims, maxdims); if(data_space == FAIL) { sprintf(errbuf,"Cannot create dataspace for the dataset.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } } else { status = FAIL; sprintf(errbuf, "Dataset MUST BE CHUNKED if it is extendible.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_DATASPACE, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(status); } } /* Note: in inquiry routines HE5T_CHARSTRING is distinguished from HE5T_NATIVE_CHAR for the field data (not attributes) based on whether string has variable or fixed length as set below. The field data of type HE5T_NATIVE_CHAR has fixed length of 1, and the field is array of characters, not strings. However, HE5T_CHARSTRING sets array of vaiable length strings for the field data. Currently HE5_EHattr treats HE5T_NATIVE_CHAR, HE5T_CHARSTRING, and H5T_C_S1 as fixed (any size) for attributes. */ numbertype = ntype; if ((ntype == HE5T_CHARSTRING) || (ntype == H5T_C_S1)) { numbertype = H5Tcopy(H5T_C_S1); status = H5Tset_size(numbertype, H5T_VARIABLE); if( status == FAIL) { sprintf(errbuf, "Cannot set the total size for \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(status); } /* Create dataset */ /* -------------- */ dataset = H5Dcreate(data_id, fieldname, numbertype, data_space, HE5_GDXGrid[ idx ].plist); if (dataset == FAIL) { sprintf(errbuf, "Cannot create dataset for \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } } else if (numbertype == H5T_NATIVE_CHAR) { numbertype = H5Tcopy(H5T_C_S1); status = H5Tset_size(numbertype, 1); if( status == FAIL) { sprintf(errbuf, "Cannot set the total size for \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(status); } /* Create dataset */ /* -------------- */ dataset = H5Dcreate(data_id, fieldname, numbertype, data_space, HE5_GDXGrid[ idx ].plist); if (dataset == FAIL) { sprintf(errbuf, "Cannot create dataset for \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } } else { /* Create dataset */ /* -------------- */ dataset = H5Dcreate(data_id, fieldname, ntype, data_space, HE5_GDXGrid[ idx ].plist); if(dataset == FAIL) { sprintf(errbuf, "Cannot create dataset \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } } /* Extend dataset. Assure that dataset is at least dims */ /* ---------------------------------------------------- */ if(append == TRUE) { status = H5Dextend(dataset,dims); if(status == FAIL) { sprintf(errbuf,"Cannot extend the dataset.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(status); } } /* Allocate space for the ID array */ /* ------------------------------- */ if (HE5_GDXGrid[idx].nDFLD > 0) { /* Array already exists therefore reallocate */ /* ----------------------------------------- */ HE5_GDXGrid[idx].ddataset = (HE5_DTSinfo *) realloc((void *)HE5_GDXGrid[idx].ddataset,(HE5_GDXGrid[idx].nDFLD + 1) * sizeof(HE5_DTSinfo)); if(HE5_GDXGrid[idx].ddataset == NULL) { sprintf(errbuf,"Cannot reallocate memory for the dataset.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } } else { /* Array does not exist */ /* -------------------- */ HE5_GDXGrid[idx].ddataset = (HE5_DTSinfo *) calloc(1, sizeof(HE5_DTSinfo)); if(HE5_GDXGrid[idx].ddataset == NULL) { sprintf(errbuf,"Cannot allocate memory for the dataset.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); return(FAIL); } } /* Allocate memory for the dataset name string */ /* ------------------------------------------- */ HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name = (char *)calloc( (strlen(fieldname)+1), sizeof(char) ); if(HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name == NULL) { sprintf(errbuf,"Cannot allocate memory for the dataset name string.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); free(HE5_GDXGrid[idx].ddataset); return(FAIL); } /* Save the field/dataset ID and field/dataset name */ /* ------------------------------------------------ */ HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].ID = dataset; strcpy( HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name, fieldname); HE5_GDXGrid[idx].nDFLD++; if ((ntype != HE5T_CHARSTRING) && (ntype != H5T_NATIVE_CHAR) && (ntype != H5T_C_S1)) { /* Get the data size (bytes) */ /* ------------------------- */ tsize = H5Tget_size(ntype); /* Allocate memory for the fillvalue buffer */ /* ---------------------------------------- */ value = (void *)calloc( 1, tsize ); if(value == (void *)NULL) { sprintf(errbuf,"Cannot allocate memory for the \"value\" variable.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); free(HE5_GDXGrid[idx].ddataset); free(HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name); return(FAIL); } /* Try to get fill value */ /* --------------------- */ H5E_BEGIN_TRY { status = H5Pfill_value_defined(HE5_GDXGrid[idx].plist, &fill_status ); } H5E_END_TRY; if (fill_status == H5D_FILL_VALUE_USER_DEFINED) { H5E_BEGIN_TRY { status = H5Pget_fill_value( HE5_GDXGrid[idx].plist, ntype, value); } H5E_END_TRY; /* Store fill value in the dataset attribute "_FillValue" */ /* ----------------------------------------------------- */ if( status != FAIL ) { status = HE5_EHattr( dataset, "_FillValue", ntype, count, "w", value); if(status == FAIL) { sprintf(errbuf, "Cannot write fill value to the \"_FillValue\" attribute.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); free(HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name); free(HE5_GDXGrid[idx].ddataset); free(value); return(FAIL); } } } free( value); } /* ************************************************************ * SET UP METADATA STRINGS * ************************************************************ */ /* set up "DimList" string content */ /* ------------------------------- */ strcpy(utlbuf,""); sprintf(utlbuf, "%s%s%s", fieldname, ":", dimlist0); /* set up max dim list string */ /* -------------------------- */ if ( maxdimlist != NULL) { /* Make metadata string list for max dimension list */ /* ------------------------------------------------ */ strcpy(utlbuf2,""); strcpy(maxdimlstbuf,""); status = HE5_EHmetalist(maxdimlist , maxdimlstbuf); if(status == FAIL) { sprintf(errbuf, "Cannot make metadata string list for the max dimension list.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); free(HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name); free(HE5_GDXGrid[idx].ddataset); return(FAIL); } sprintf(utlbuf2,"%s%s",":\n\t\t\t\tMaxdimList=",maxdimlstbuf); strcat(utlbuf,utlbuf2); } if ( maxdimlist == NULL ) { strcpy(utlbuf2,""); strcpy(maxdimlstbuf,""); status = HE5_EHmetalist(dimlist0, maxdimlstbuf); if(status == FAIL) { sprintf(errbuf, "Cannot make metadata string list for the max dimension list.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); free(HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name); free(HE5_GDXGrid[idx].ddataset); return(FAIL); } sprintf(utlbuf2,"%s%s",":\n\t\t\t\tMaxdimList=",maxdimlstbuf); strcat(utlbuf,utlbuf2); } /* Setup compression metadata */ /* -------------------------- */ strcpy(compmethod, HE5_GDXGrid[idx].compmethod); if ( strcmp(compmethod, "HE5_HDFE_COMP_NONE" ) != 0 ) { if(maxdimlist != NULL) { sprintf(utlbuf2, "%s%s", "\n\t\t\t\tCompressionType=", compmethod); } else { sprintf(utlbuf2, "%s%s", "\n\t\t\t\tCompressionType=", compmethod); } if( strcmp(compmethod,"HE5_HDFE_COMP_NBIT") == 0 ) { strcpy(compparmbuf,""); sprintf(compparmbuf, "%s%d,%d,%d,%d%s","\n\t\t\t\tCompressionParams=(", HE5_GDXGrid[idx].compparm[0], HE5_GDXGrid[idx].compparm[1], HE5_GDXGrid[idx].compparm[2], HE5_GDXGrid[idx].compparm[3], ")"); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_DEFLATE") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tDeflateLevel=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SZIP_CHIP") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SZIP_K13") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SZIP_EC") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SZIP_NN") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SZIP_K13orEC") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SZIP_K13orNN") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SHUF_DEFLATE") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tDeflateLevel=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SHUF_SZIP_CHIP") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SHUF_SZIP_K13") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SHUF_SZIP_EC") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SHUF_SZIP_NN") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SHUF_SZIP_K13orEC") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } else if ( strcmp(compmethod, "HE5_HDFE_COMP_SHUF_SZIP_K13orNN") == 0) { strcpy(compparmbuf,""); sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_GDXGrid[idx].compparm[0]); strcat(utlbuf2, compparmbuf); } /* Append compression parameters with compression code */ /* --------------------------------------------------- */ strcat(utlbuf, utlbuf2); } /* Setup tiling information metadata */ /* --------------------------------- */ if (tilecode == HE5_HDFE_TILE) { if ( strcmp(compmethod, "HE5_HDFE_COMP_NONE" ) != 0 ) { strcpy(utlbuf2,""); sprintf(utlbuf2,"%s%li","\n\t\t\t\tTilingDimensions=(", (long)HE5_GDXGrid[idx].tiledims[0]); } else { strcpy(utlbuf2,""); sprintf(utlbuf2, "%s%li","\n\t\t\t\tTilingDimensions=(", (long)HE5_GDXGrid[idx].tiledims[0]); } for (i = 1; i < HE5_GDXGrid[idx].tilerank; i++) { sprintf(parmbuf, ",%li", (long)HE5_GDXGrid[idx].tiledims[ i ]); strcat(utlbuf2, parmbuf); } strcat(utlbuf2, ")"); strcat(utlbuf, utlbuf2); } numtype = HE5_EHdtype2numtype(ntype); if (numtype == FAIL) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); free(HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name); free(HE5_GDXGrid[idx].ddataset); return(FAIL); } else if (numtype == 0) { metavalue = 0; } else { metavalue = HE5_EHhid2hsize(numtype); if (metavalue == 0) { sprintf(errbuf, "Cannot convert \"hid_t\" to \"hsize_t\" data type. \n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); free(HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name); free(HE5_GDXGrid[idx].ddataset); return(FAIL); } } /* Insert field metadata within File Structural Metadata */ /* ----------------------------------------------------- */ status = HE5_EHinsertmeta(fid, gridname, "g", 4L, utlbuf, &metavalue); if(status == FAIL) { sprintf(errbuf,"Cannot insert metadata.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(errbuf1); free(errbuf2); free(errmsg); free(utlbuf); free(utlbuf2); if (dimlist0 != NULL) free(dimlist0); free(HE5_GDXGrid[idx].ddataset[HE5_GDXGrid[idx].nDFLD].name); free(HE5_GDXGrid[idx].ddataset); return(FAIL); } } /* Release the property list ID */ /* ---------------------------- */ status = H5Pclose(HE5_GDXGrid[idx].plist); if(status == FAIL) { sprintf(errbuf,"Cannot release the property list ID.\n"); H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Reset property list ID */ /* ---------------------- */ HE5_GDXGrid[idx].plist = FAIL; strcpy(HE5_GDXGrid[idx].compmethod,"HE5_HDFE_COMP_NONE"); HE5_GDXGrid[idx].tilecode = HE5_HDFE_NOTILE; if (dimlist0 != NULL) free(dimlist0); if (utlbuf != NULL) free(utlbuf); if (utlbuf2 != NULL) free(utlbuf2); if (errbuf != NULL) free(errbuf); if (errbuf1 != NULL) free(errbuf1); if (errbuf2 != NULL) free(errbuf2); if (errmsg != NULL) free(errmsg); if ((ntype == HE5T_CHARSTRING) || (ntype == H5T_C_S1)) { attr = HE5T_CHARSTRING; status = HE5_GDwritelocattr(gridID, fieldname, "ARRAYOFSTRINGS", H5T_NATIVE_INT, count, &attr); if (status == FAIL) { sprintf(errbuf, "Cannot write attribute to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_GDdeffield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDupdatedim | | | | DESCRIPTION: Updates numerical value of dimension | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Grid structure ID | | dimname char* Dimension name | | dim hsize_t Dimension size | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================ | | Sep 2011 Abe Taaheri Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_GDupdatedim(hid_t gridID, char *dimname, hsize_t dim) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Grid index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hsize_t predims; long xdim = 0; /* X dim size */ long ydim = 0; /* Y dim size */ HE5_LOCK; CHECKNAME(dimname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_GDchkgdid(gridID, "HE5_GDupdatedim", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDupdatedim", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Make certain that dim != 0 */ /* -------------------------- */ if ( dim == 0 ) { status = FAIL; sprintf(errbuf, "Invalid (zero) dimension size.\n"); H5Epush(__FILE__, "HE5_GDupdatedim", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get dimension size */ /* ------------------ */ if ((strcmp(dimname, "XDim") == 0) || (strcmp(dimname, "YDim") == 0)) { status = HE5_GDgridinfo(gridID, &xdim, &ydim, NULL, NULL); if(status == FAIL) { sprintf(errbuf, "Cannot get information about Grid.\n"); H5Epush(__FILE__, "HE5_GDupdatedim", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if(strcmp(dimname, "XDim") == 0) { predims = (hsize_t)xdim; } else if(strcmp(dimname, "YDim") == 0) { predims = (hsize_t)ydim; } } else { predims = HE5_GDdiminfo(gridID, dimname); } if (predims == 0) { status = FAIL; sprintf(errbuf, "Failed to retrieve the size of \"%s\" dimension. \n", dimname); H5Epush(__FILE__, "HE5_GDupdatedim", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Write updated dimension back to the dataset "StructMetadata.0" */ /* -------------------------------------------------------------- */ if (dim > predims) { status = HE5_EHupdatemeta(fid, HE5_GDXGrid[idx].gdname, "g", 0L, dimname, &dim); if ( status == FAIL ) { sprintf(errbuf, "Cannot update the value for \"%s\" dimension in Metadata.\n", dimname); H5Epush(__FILE__, "HE5_GDupdatedim", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDsetdimscale | | | | DESCRIPTION: Defines a dimension scale for a dimension for fields of a grid| | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t grid structure ID | | fieldname char field name | | dimname char dim name | | dimsize hsize_t Dimemsion size value | | numbertype_in hid_t dim scale data type such as DFNT_INT32, | | DFNT_FLOAT64, DFNT_FLOAT32, etc. | | data void data buffer for write | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDsetdimscale(hid_t gridID, char *fieldname, char *dimname, const hsize_t dimsize, hid_t numbertype_in, void * data) { herr_t status; hid_t ntype; hsize_t dims[HE5_DTSETRANKMAX]; int rankSDS; hid_t field_ntype = (hid_t)NULL; /* number types */ char dimlist[HE5_HDFE_DIMBUFSIZE]; char maxdimlist[HE5_HDFE_DIMBUFSIZE]; long xdimsize; long ydimsize; double upleftpt[2]; double lowrightpt[2]; double pixsizeX; double pixsizeY; hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t did; hid_t dsid; hid_t fspace = FAIL; /* File dataspace ID */ unsigned int Dimindex; hid_t dsplist = FAIL; /* Property list ID */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Type of storage */ hid_t data_space = FAIL; /* dataspace ID */ long idx = FAIL; /* Grid index */ char *errbuf = (char *)NULL; /* buffer for error message*/ double *data_bufff64 = NULL; void *data_buff; int i, found; int rankds; hsize_t dimsds[1]; /*char *gridname = (char *)NULL; */ /* Name list buffer */ int projcode; int zonecode; int spherecode; double projparm[13]; HE5_LOCK; CHECKNAME(fieldname); CHECKNAME(dimname); /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDsetdimscale", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { ntype = numbertype_in; } else { ntype = HE5_EHconvdatatype((int) numbertype_in); } if(ntype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for dimscale.\n"); H5Epush(__FILE__, "HE5_GDsetdimscale", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the data size (bytes) */ /* ------------------------- */ /*tsize = H5Tget_size(ntype);*/ if((data == NULL) || (strcmp(dimname, "XDim") == 0) || (strcmp(dimname, "YDim") == 0)) { data_bufff64 = (double *)calloc(dimsize, sizeof(double)); if(data_bufff64 == NULL) { sprintf(errbuf, "Cannot allocate memory for buffer.\n"); H5Epush(__FILE__, "HE5_GDsetdimscale", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } /************************************************************************ * Check for proper grid ID and return HDF-EOS file ID, SDinterface ID, * * and grid root Vgroup ID * ************************************************************************/ status = HE5_GDchkgdid(gridID, "HE5_GDsetdimscale", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDsetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); if(data_bufff64 != NULL) free(data_bufff64); return(FAIL); } if (status == 0) { /* Check that field exists */ /* ----------------------- */ status = HE5_GDfieldinfo(gridID, fieldname, &rankSDS, dims, &field_ntype, dimlist, maxdimlist); if (status != 0) { sprintf(errbuf, "Fieldname \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_GDsetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); if(data_bufff64 != NULL) free(data_bufff64); return(FAIL); } /* get gridname */ /*strcpy(gridname, HE5_GDXGrid[idx].gdname);*/ /* if dimname is XDim or YDim, data scale will be recalculated using xdim, ydim, upleft and lowright for the grid*/ if((data == NULL) || (strcmp(dimname, "XDim") == 0) || (strcmp(dimname, "YDim") == 0)) { status = HE5_GDgridinfo(gridID, &xdimsize, &ydimsize, upleftpt, lowrightpt); /* Get proj info */ /* ------------- */ status = HE5_GDprojinfo(gridID, &projcode, &zonecode, &spherecode, projparm); /* If no projection code defined then bail */ /* --------------------------------------- */ if (projcode == -1 || status == FAIL) { sprintf(errbuf,"Cannot get Grid projection information.\n"); H5Epush(__FILE__, "HE5_GDsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); if(data_bufff64 != NULL) free(data_bufff64); return(FAIL); } /* Get default values for upleft and lowright if necessary */ /* ------------------------------------------------------- */ if (upleftpt[0] == 0 && upleftpt[1] == 0 && lowrightpt[0] == 0 && lowrightpt[1] == 0) { status = HE5_GDgetdefaults(projcode, zonecode, projparm, spherecode, upleftpt, lowrightpt); /* If error then bail */ /* ------------------ */ if (status != 0) { sprintf(errbuf,"Failed to get default values for uplft and lowrght points.\n" ); H5Epush(__FILE__, "HE5_GDsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); if(data_bufff64 != NULL) free(data_bufff64); status = -1; return (status); } } if (projcode == HE5_GCTP_GEO) { /* GEO projection */ /* -------------- */ /* Convert upleft and lowright X coords from DMS to degrees */ /* -------------------------------------------------------- */ upleftpt[0] = HE5_EHconvAng(upleftpt[0], HE5_HDFE_DMS_DEG); lowrightpt[0] = HE5_EHconvAng(lowrightpt[0], HE5_HDFE_DMS_DEG); upleftpt[1] = HE5_EHconvAng(upleftpt[1], HE5_HDFE_DMS_DEG); lowrightpt[1] = HE5_EHconvAng(lowrightpt[1], HE5_HDFE_DMS_DEG); } if(strcmp(dimname, "XDim") == 0) { pixsizeX = (lowrightpt[0] - upleftpt[0])/dimsize; for (i = 0; i 0) { dims[rankidx1] = dimsize; dimname[rankidx1] = (char *)malloc(HE5_HDFE_NAMBUFSIZE * sizeof(char)); strcpy(dimname[rankidx1],dimcheck); rankidx1++; } else { sprintf(errbuf, "Dimension \"%s\" not found.\n", dimcheck); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(dimbuf != NULL) free(dimbuf); if(dimlist0 != NULL) free(dimlist0); return(FAIL); } } memmove(dimbuf, comma + 1, strlen(comma)-1); dimbuf[strlen(comma)-1]= 0; comma = strchr(dimbuf, ','); if(dimcheck != NULL) free(dimcheck); } if(dimbuf != NULL) free(dimbuf); free(dimlist0); /* Initialize maxdims[] array with dims[] array values */ /* --------------------------------------------------- */ for (i = 0; i < rank; i++) maxdims[i] = dims[i]; /* Check out if the field is appendible */ /* in the following it is assumed that XDim and YDim cannot be appendible since they define a grid that has a preset corner lat/lon (x/y) coordinates. The other dimensions represent band, etc abd can be appendible */ /* ---------------------------------------------------- */ dimbuf = (char *)calloc(strlen(maxdimlist) + 64, sizeof(char)); if(dimbuf == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(dimbuf, maxdimlist); strcat(dimbuf,","); comma = strchr(dimbuf,','); while(comma != NULL) { dimcheck = (char *)calloc(comma-dimbuf +1, 1); memmove(dimcheck,dimbuf,comma-dimbuf); if (strcmp(dimcheck,"XDim") == 0) { dimsize = (hsize_t)xdim; /* XDim will not be appendible */ } else if (strcmp(dimcheck,"YDim") == 0) { dimsize = (hsize_t)ydim; /* YDim will not be appendible */ } else dimsize = HE5_GDdiminfo(gridID, dimcheck); /* update maxdim array */ if ( (dimsize > 0) || (dimsize == H5S_UNLIMITED) ) { maxdims[ rankidx2 ] = dimsize; /* see if we need to update dim in the structuremetadata */ if ( (dims[rankidx2] < maxdims[rankidx2]) || (maxdims[rankidx2] == H5S_UNLIMITED)) { /* update dim if new dim is still <= maxdim */ if((start[rankidx2]+1) > maxdims[rankidx2] && (maxdims[rankidx2] != H5S_UNLIMITED)) { sprintf(errbuf, "Cannot update the dimension, new dimension size is larger than the max dimension size in the datafiled.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else { status = HE5_GDupdatedim(gridID,dimname[rankidx2], start[rankidx2]+1); if( status == FAIL ) { sprintf(errbuf, "Cannot update the dimension.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } rankidx2++; } strcpy(dimbuf,comma+1); comma=strchr(dimbuf,','); free(dimcheck); } free(dimbuf); for(i = 0; i < rank; i++) { if(dimname[i] != NULL) { free(dimname[i]); dimname[i] = NULL; } } for(i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } else { status = FAIL; sprintf(errbuf, "Maximum dimension size is smaller than dimension size.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* ============================================================== */ /* start and count are being passed as NULL from GDdefvrtregion */ /* which calls GDreadfield, which have NULL for start and count. */ /* H5Sselect_hyperslab won't take NULL values for start and count */ /* ============================================================== */ if(start == NULL) { tstart = (hssize_t *)calloc(rank, sizeof(hssize_t)); for(i = 0; i < rank; i++) tstart[ i ] = 0; startf = 1; } if(count == NULL) { tcount = (hsize_t *)calloc(rank, sizeof(hsize_t)); for(i = 0; i < rank; i++) tcount[ i ] = dims[ i ]; if(startf == 1) bothf = 1; else countf = 1; } else { lcount = (hsize_t *)calloc(rank, sizeof(hsize_t)); /* get dims and maxdims for the field after dim update for appendable dim*/ status = HE5_GDflddiminfo(gridID, fldname, &rank, dims, maxdims); for(i = 0; i < rank; i++) { if(count[ i ] > dims[ i ]) lcount[ i ] = dims[ i ]; else lcount[ i ] = count[ i ]; } } if (append == TRUE) { /* Get the field-related dataset ID */ /* -------------------------------- */ status = HE5_GDgetfieldID(gridID, fldname, &dtsid); if ( status == FAIL ) { sprintf(errbuf, "Cannot get %s field ID.\n", fldname ); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } if(bothf == 1) status = H5Dextend(dtsid, tcount); else if(startf == 1) status = H5Dextend(dtsid, lcount); else if(countf == 1) status = H5Dextend(dtsid, tcount); else { /* Calculate the size to extend the dataset to */ /* ------------------------------------------- */ for (i = 0; i < rank; i++) size[ i ] = start[ i ] + lcount[ i ]; /* Extend the dataset size */ /* ----------------------- */ status = H5Dextend(dtsid, size); } if ( status == FAIL ) { sprintf(errbuf, "Cannot extend dataset for the \"%s\" field.\n", fldname ); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } } if (append == FALSE) { /* Get the field-related dataset ID only */ status = HE5_GDgetfieldID(gridID, fldname, &dtsid); if ( status == FAIL ) { sprintf(errbuf, "Cannot get %s field ID.\n", fldname ); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } } /* Get the field space ID */ /* --------------------- */ fspace = H5Dget_space(dtsid); if ( fspace == FAIL) { sprintf(errbuf, "Cannot get the file data space ID.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Select the hyperslab */ /* -------------------- */ if(bothf == 1) status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)tstart,stride,tcount,NULL); else if(startf == 1) status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)tstart,stride,lcount,NULL); else if(countf == 1) status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)start,stride,tcount,NULL); else status = H5Sselect_hyperslab(fspace,H5S_SELECT_SET,(const hsize_t *)start,stride,lcount,NULL) ; if ( status == FAIL ) { sprintf(errbuf, "Cannot select the hyperslab.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Create dataspace for the dataset */ /* -------------------------------- */ if(countf == 1 || bothf == 1) mid = H5Screate_simple(rank, tcount, NULL); else mid = H5Screate_simple(rank,lcount, NULL); if ( mid == FAIL ) { sprintf(errbuf, "Cannot create the dataspace for the dataset.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Get the data type ID */ /* -------------------- */ tid = H5Dget_type( dtsid ); if ( tid == FAIL) { sprintf(errbuf, "Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Get the data type class ID */ /* -------------------------- */ classid = H5Tget_class(tid); if (classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Write whole data to dataset */ /* --------------------------- */ if( strcmp(code,"w")==0) { strbufsize1 = 0; nattr = HE5_GDinqlocattrs(gridID, fldname, NULL, &strbufsize1); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } attrlist1 = (char *) calloc(strbufsize1 + 2, sizeof(char)); if (attrlist1 == NULL) { sprintf(errbuf, "Cannot allocate memory for attrlist1.\n") ; H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } nattr = HE5_GDinqlocattrs(gridID, fldname, attrlist1, &strbufsize1); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } attptr = strstr(attrlist1,"ARRAYOFSTRINGS"); if ( (classid == H5T_STRING) && (attptr == NULL) ) { status = H5Dwrite(dtsid, tid, mid, fspace, H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } else if ( (classid == H5T_STRING) && (attptr != NULL) ) { strbufsize2 = 0; nattr = HE5_GDinqlocattrs(gridID, fldname, NULL, &strbufsize2); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } attrlist2 = (char *) calloc(strbufsize2 + 2, sizeof(char)); if (attrlist2 == NULL) { sprintf(errbuf, "Cannot allocate memory for attrlist2.\n") ; H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } nattr = HE5_GDinqlocattrs(gridID, fldname, attrlist2, &strbufsize2); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } if ( (nattr == 0) || ((attptr = strstr(attrlist2,"StringLengthAttribute")) == NULL) ) { chardatbuf = (char **)datbuf; if (count == NULL) mycount = tcount[0]; if (count != NULL) mycount = *lcount; for (ibuf = 0; ibuf < mycount; ibuf++) { if (chardatbuf[ibuf] == NULL) strsize = 0; else strsize = strlen(chardatbuf[ibuf]); if (strsize > maxlen) maxlen = strsize; } numattr[0] = 1; status = HE5_GDwritelocattr(gridID, fldname, "StringLengthAttribute", H5T_NATIVE_INT, numattr, &maxlen); if (status == FAIL) { sprintf(errbuf, "Cannot write attribute to the field \"%s\".",fldname) ; H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } status = H5Dwrite(dtsid, tid, mid, fspace, H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } else { /* Get memory data type ID */ /* ----------------------- */ mtype = HE5_EHdtype2mtype(tid); if( mtype == FAIL ) { sprintf(errbuf,"Cannot convert to memory data type.\n"); status = FAIL; H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } status = H5Dwrite(dtsid, mtype, mid, fspace, H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } } else { if (classid == H5T_STRING) { /* Read the data buffer */ /* -------------------- */ status = H5Dread(dtsid, tid, mid, fspace , H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot read out data from the dataset.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } else { /* Get memory data type ID */ /* ----------------------- */ mtype = HE5_EHdtype2mtype(tid); if ( mtype == FAIL ) { sprintf(errbuf, "Cannot get the memory data type.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } status = H5Dread(dtsid, mtype, mid,fspace , H5P_DEFAULT, datbuf); if ( status == FAIL ) { sprintf(errbuf, "Cannot read out data from the dataset.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } } } if ( count == NULL) { if(tcount != NULL) free(tcount); } if( start == NULL) { if(tstart != NULL) free(tstart); } if (lcount != NULL) free(lcount); /* Release data space ID */ /* --------------------- */ status = H5Sclose(fspace); if ( status == FAIL ) { sprintf(errbuf, "Cannot release the dataspace ID.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(mid); if ( status == FAIL ) { sprintf(errbuf, "Cannot release the dataspace ID.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* --------------------- */ status = H5Tclose( tid ); if ( status == FAIL ) { sprintf(errbuf, "Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_GDwrrdfield", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDwritefield | | | | DESCRIPTION: Writes data to a grid field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char* fieldname | | start hssize_t start array | | stride hsize_t stride array | | edge hsize_t edge array | | data void data buffer for write | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | 09/29/11 Abe Taaheri Modified for correcting Unlimited dimension | | behavior and extension | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDwritefield(hid_t gridID, const char *fieldname, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *data) { herr_t status = FAIL; /* routine return status variable */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ int rank = 0; /* Field rank */ int unlimdim; hsize_t maxdims[HE5_DTSETRANKMAX];/* Field maximum dimensions */ int append = FALSE; /* FLAG (if field is appendible)*/ int i; /* Loop index */ char *errbuf = (char *)NULL; /* error message buffer */ char *temp_fieldname; int stlen; HE5_LOCK; CHECKNAME(fieldname); CHECKPOINTER(data); /* If a field is appendable and need to be extended, do extension here before writing extended data into it */ stlen = strlen(fieldname); temp_fieldname = (char *)malloc((stlen+1)*sizeof(char)); if(temp_fieldname == NULL) { H5Epush(__FILE__, "HE5_GDwritefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for temp_fieldname, occured", __FILE__, __LINE__); return(FAIL); } else { strcpy(temp_fieldname,fieldname); temp_fieldname[stlen] = '\0'; } /* get maxdims for the field */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDwritefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); free(temp_fieldname); return(FAIL); } status = HE5_GDflddiminfo(gridID, temp_fieldname, &rank, dims, maxdims); /* see if we need first to extend data dimensions for unlimited dimensions */ for (i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } } unlimdim = i; if((append == TRUE) && (edge[unlimdim] > dims[unlimdim])) { hssize_t newstart[8]; hsize_t newedge[8]; for (i = 0; i < rank; i++) { if (start != NULL) { newstart[i]=start[i]; } else { newstart[i]= 0; } if (edge!= NULL) { newedge[i] = edge[i]; } else { newedge[i]=dims[i]; } } newstart[unlimdim]=edge[unlimdim]-1; newedge[unlimdim] = 1; status = HE5_GDwrrdfield(gridID, fieldname, "w", newstart, stride, newedge, data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_GDwritefield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(temp_fieldname); return(FAIL); } else { for (i = 0; i < rank; i++) { dims[i]=edge[i]; } } } status = HE5_GDwrrdfield(gridID, fieldname, "w", start, stride, edge, data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_GDwritefield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(temp_fieldname); return(FAIL); } else { status = SUCCEED; free(errbuf); free(temp_fieldname); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDreadfield | | | | DESCRIPTION: Reads data from a grid field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char fieldname | | start hssize_t start array | | stride hsize_t stride array | | edge hsize_t edge array | | | | OUTPUTS: | | buffer void data buffer for read | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDreadfield(hid_t gridID, const char *fieldname, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *buffer) { herr_t status = FAIL; /* routine return status variable */ HE5_LOCK; CHECKPOINTER(fieldname); status = HE5_GDwrrdfield(gridID, fieldname, "r", start, stride, edge, buffer); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDwriteattr | | | | DESCRIPTION: Writes/updates attribute in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | attrname char* attribute name | | ntype hid_t Attribute data type ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDwriteattr(hid_t gridID, const char *attrname, hid_t ntype, hsize_t count[], void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Grid index */ hid_t dtype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if ntype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ dtype = HE5_EHconvdatatype(ntype); if(dtype == FAIL) { dtype = ntype; } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDwriteattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Grid Attributes" group ID and call EHattr to perform I/O */ /* ------------------------------------------------------------- */ status = HE5_EHattr(HE5_GDXGrid[idx].gd_id, attrname, ntype, count,"w", datbuf); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDreadattr | | | | DESCRIPTION: Reads attribute from a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDreadattr(hid_t gridID, const char *attrname, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t ntype = FAIL;/* Data type ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hsize_t count[] = {0};/* array with elements number */ long idx = FAIL;/* Grid index */ HE5_LOCK; CHECKPOINTER(attrname); /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDreadattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get attribute group ID and call EHattr to perform I/O */ /* ------------------------------------------------------ */ status = HE5_EHattr(HE5_GDXGrid[idx].gd_id, attrname, ntype, count, "r", datbuf); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqgrid | | | | DESCRIPTION: Returns number and names of grid structures in file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nGrid long Number of grid structures in file | | | | INPUTS: | | filename char HDF-EOS filename | | | | OUTPUTS: | | gridlist char List of grid names (comma-separated) | | strbufsize long Length of gridlist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqgrid(const char *filename, char *gridlist, long *strbufsize) { long nGrid = FAIL;/* Number of grid structures in file */ herr_t status = FAIL;/* status variable */ CHECKPOINTER(filename); /* Call "HE5_EHinquire" routine */ /* ---------------------------- */ nGrid = HE5_EHinquire(filename, "/HDFEOS/GRIDS", gridlist, strbufsize); COMPLETION: return (nGrid); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDsetfillvalue | | | | DESCRIPTION: Sets fill value for the specified field. | | write attribute "_FillValue" to dataset(field) | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char* field name | | ntype hid_t None data type ID | | fillval void fill value | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | H5Pset_fill_value | | | | Date Programmer Description | | ====== ============ ================================================= | | 10/5/99 A.Muslimov Added dynamical memory allocation for errbuf, and | | nt arrays. Added error handlings after the function | | calls. | | | | 12/3/99 A.Muslimov Fixed a bug resulted in not writing a fill value | | into the dataset. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | Mar 04 S.Zhao Modified for a character string dataset. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDsetfillvalue(hid_t gridID, const char *fieldname, hid_t numbertype_in, void *fillval) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Grid index */ char *errbuf = (char *)NULL;/*error message buffer */ hid_t ntype; HE5_LOCK; CHECKPOINTER(fillval); /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { ntype = numbertype_in; } else { ntype = HE5_EHconvdatatype((int) numbertype_in); } if(ntype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for fillvalue.\n"); H5Epush(__FILE__, "HE5_GDsetfillvalue", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDsetfillvalue", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDsetfillvalue", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDsetfillvalue", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( status ); } /* Get current dataset creation property ID, set dataset fill value */ /* ---------------------------------------------------------------- */ if( HE5_GDXGrid[idx].plist == FAIL) { HE5_GDXGrid[idx].plist = H5Pcreate(H5P_DATASET_CREATE); if ( HE5_GDXGrid[idx].plist == FAIL ) { sprintf(errbuf, "Cannot create the dataset property list.\n"); H5Epush(__FILE__, "HE5_GDsetfillvalue", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } /* Set fill value */ /* -------------- */ if ((ntype != HE5T_CHARSTRING) && (ntype != H5T_NATIVE_CHAR) && (ntype != H5T_C_S1)) { status = H5Pset_fill_value(HE5_GDXGrid[idx].plist, ntype, fillval); if ( status == FAIL ) { sprintf(errbuf, "Cannot set the fill value for a dataset creation property list.\n"); H5Epush(__FILE__, "HE5_GDsetfillvalue", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status ); } } free(errbuf); errbuf = NULL; COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgetfillvalue | | | | DESCRIPTION: Retrieves fill value for a specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char* field name | | | | OUTPUTS: | | fillval void fill value | | | | NOTES: | | | | HDF5 Library Functions Called: | | H5Dget_type | | H5Tclose | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/22/99 A.Muslimov Changed the type of status variable from intn to | | int . Added error handlings. Removed redundant | | 'if else' statements. Initialized return status | | variable to -1. | | | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | Aug 22,11 Abe Taaheri Add code to return error if fillvalue attribute | | not found. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDgetfillvalue(hid_t gridID, const char *fieldname, void *fillval) { herr_t status = FAIL;/* routine return status variable */ int rank = FAIL;/* Dummy rank variable */ int i; /* loop index */ int found = 0; /* found (1), not found (0) flag */ hid_t *nt = (hid_t *)NULL; /* number types */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldid = FAIL;/* dataset ID */ hid_t typeID = FAIL;/* datatype ID */ long idx = FAIL;/* Grid index */ hsize_t dims[HE5_DTSETRANKMAX];/* Dimensions array */ hsize_t count[] = { 1 };/* number of attribute elements */ char *errbuf = (char *)NULL;/* error message buffer */ char *attrnames; long strbufsize; long nattr = 0; HE5_LOCK; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDgetfillvalue", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get field info */ /* -------------- */ nt = (hid_t *)calloc(1, sizeof(hid_t)); if ( nt == (hid_t *)NULL ) { sprintf(errbuf, "Cannot allocate memory for data type class ID.\n"); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; status = HE5_GDfieldinfo(gridID, fieldname, &rank, dims, nt, NULL, NULL); if( status == FAIL) { sprintf(errbuf, "Failed to get information about \"%s\" data field.\n", fieldname); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(nt); return(FAIL); } /* Loop through all data datasets in grid */ /* -------------------------------------- */ for (i = 0; i < HE5_GDXGrid[ idx ].nDFLD; i++) { /* Get dataset name */ if( strcmp(fieldname, HE5_GDXGrid[ idx ].ddataset[ i ].name) == 0 ) { found = 1; break; } } /* Get dataset ID */ /* -------------- */ if( found == 1) { fieldid = HE5_GDXGrid[ idx ].ddataset[ i ].ID; typeID = H5Dget_type(fieldid); if ( typeID == FAIL ) { sprintf(errbuf, "Cannot get the dataset data type ID.\n"); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(nt); return(FAIL); } /* if fillvalue attribute exist, get the value */ nattr = HE5_GDinqlocattrs(gridID, fieldname, NULL, &strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve fillvalue attribute. \n"); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(nt); return(FAIL); } attrnames = (char*)malloc(sizeof(char)*(strbufsize+1)); if (attrnames == NULL) { sprintf(errbuf, "Cannot allocate memory for attrnames.\n") ; H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(nt); return(FAIL); } nattr = HE5_GDinqlocattrs(gridID, fieldname, attrnames, &strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve fillvalue attribute. \n"); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(nt); return(FAIL); } if(strstr(attrnames, "_FillValue")!=NULL) { /* Retrieve the fill value */ /* ----------------------- */ status = HE5_EHattr( fieldid, "_FillValue", typeID, count, "r", fillval); if ( status == FAIL ) { sprintf(errbuf, "Cannot retrieve the fill value.\n"); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(nt); return(FAIL); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(typeID); if ( status == FAIL ) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(nt); return(FAIL); } } else { status = FAIL; sprintf(errbuf, "Cannot retrieve fillvalue attribute. \n"); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { status = FAIL; sprintf(errbuf, "Data field \"%s\" not found. \n", fieldname); H5Epush(__FILE__, "HE5_GDgetfillvalue", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); errbuf = NULL; if (nt != NULL) free(nt); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqdatatype | | | | DESCRIPTION: Inquires about data fields in grid | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char * | | attrname char * | | | | OUTPUTS: | | dtype H5T_class_t None HDF-EOS data type ID | | Class H5T_class_t | | Order H5T_order_t | | size size_t | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | H5Dopen | | H5Dget_type | | H5Tget_class | | H5Tget_order | | H5Tget_size | | H5Dclose | | H5Aopen_name | | H5Aget_type | | H5Aclose | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 99 D.Wynne Original Programmer | | Dec 99 A.Muslimov Changed the status return data type from hid_t to | | int . | | Feb 00 A.Muslimov Added error checkings. | | Mar 00 A.Muslimov Changed the ID of field group from gd_id to data_id.| | Mar 00 A.Muslimov Updated to include Group/Local attributes. | | 5/10/00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDinqdatatype(hid_t gridID, const char *fieldname, const char *attrname, int fieldgroup, hid_t *dtype, H5T_class_t *classID, H5T_order_t *Order, size_t *size) { herr_t status = FAIL; /* routine return status */ hid_t datasetid = FAIL; /* dataset ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t attr = FAIL; /* attribute dataset ID */ hid_t fldgroup = FAIL; /* group ID */ hid_t fieldID = FAIL; /* Data field dataset ID */ long idx = FAIL; /* Grid index */ char *errbuf = (char *)NULL;/* Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDinqdatatype", &fid, &gid, &idx); if(status == SUCCEED) { if(fieldgroup == HE5_HDFE_DATAGROUP) fldgroup = HE5_GDXGrid[idx].data_id; else if(fieldgroup == HE5_HDFE_ATTRGROUP) fldgroup = HE5_GDXGrid[idx].gd_id; else if(fieldgroup == HE5_HDFE_GRPATTRGROUP) fldgroup = HE5_GDXGrid[idx].data_id; else if(fieldgroup == HE5_HDFE_LOCATTRGROUP) fldgroup = HE5_GDXGrid[idx].data_id; else { sprintf(errbuf, "Group \"%d\" unknown.\n", fieldgroup); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Call HDF 5 routines */ /* =================== */ if(fieldgroup == HE5_HDFE_DATAGROUP) { datasetid = H5Dopen(fldgroup, fieldname); if (datasetid == FAIL) { sprintf(errbuf, "Cannot open the dataset for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_DATASET, H5E_NOTFOUND , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } *dtype = H5Dget_type(datasetid); if (*dtype == FAIL) { sprintf(errbuf, "Cannot get the datatype for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } *classID = H5Tget_class(*dtype); if (*classID == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } *Order = H5Tget_order(*dtype); if (*Order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } if (*classID == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*dtype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } status = H5Dclose(datasetid); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } else if(fieldgroup == HE5_HDFE_ATTRGROUP || fieldgroup == HE5_HDFE_GRPATTRGROUP) { attr = H5Aopen_name(fldgroup, attrname); if (attr == FAIL) { sprintf(errbuf, "Cannot open the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } *dtype = H5Aget_type(attr); if (*dtype == FAIL) { sprintf(errbuf, "Cannot get the data type for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } *classID = H5Tget_class(*dtype); if (*classID == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } *Order = H5Tget_order(*dtype); if (*Order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } if (*classID == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*dtype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } status = H5Aclose(attr); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } else if(fieldgroup == HE5_HDFE_LOCATTRGROUP) { fieldID = H5Dopen(fldgroup, fieldname); if (fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset.\n", fieldname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } attr = H5Aopen_name(fieldID, attrname); if (attr == FAIL) { sprintf(errbuf, "Cannot open the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } *dtype = H5Aget_type(attr); if (*dtype == FAIL) { sprintf(errbuf, "Cannot get the data type for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } *classID = H5Tget_class(*dtype); if (*classID == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } *Order = H5Tget_order(*dtype); if (*Order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } if (*classID == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*dtype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } status = H5Aclose(attr); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Dclose(fieldID); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_GDinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } free(errbuf); return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDnentries | | | | DESCRIPTION: Returns number of entries and descriptive string buffer | | size for a specified entity. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nEntries long Number of entries | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | entrycode int None Entry code | | HDFE_NENTDIM (0) | | HDFE_NENTDFLD (4) | | | | OUTPUTS: | | strbufsize long Length of comma-separated list | | (Does not include null-terminator) | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. | | 9/28/99 A.Muslimov Added proper error handlings after function calls. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDnentries(hid_t gridID, int entrycode, long *strbufsize) { herr_t status = FAIL;/* routine return status variable */ int metaflag = FAIL;/* Old (0), New (1) metadata flag) */ int nVal = FAIL;/* Number of strings to search for */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long i; /* Loop index */ long idx = FAIL;/* Grid index */ long nEntries = 0; /* Number of entries */ char *metabuf=(char *)NULL; /* Ptr to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL};/* Ptrs to begin/end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ char valName[2][32]; /* Strings to search for */ char *errbuf = (char *)NULL; /* buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDnentries", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDnentries", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDnentries", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Allocate memory for utility string */ /* ---------------------------------- */ utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDnentries", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Zero out string buffer size */ /* --------------------------- */ *strbufsize = 0; /* * Get pointer to relevant section within SM and Get names of * metadata strings to inquire about */ switch (entrycode) { case HE5_HDFE_NENTDIM: { metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname, "g", "Dimension", metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer.\n"); H5Epush(__FILE__, "HE5_GDnentries", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(FAIL); } nVal = 1; strcpy(&valName[0][0], "DimensionName"); } break; case HE5_HDFE_NENTDFLD: { metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname, "g", "DataField", metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer.\n"); H5Epush(__FILE__, "HE5_GDnentries", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(FAIL); } nVal = 1; strcpy(&valName[0][0], "DataFieldName"); } break; default: { sprintf(errbuf, "Unknown entry code.\n"); H5Epush(__FILE__, "HE5_GDnentries", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } /* * Check for presence of 'GROUP="' string If found then old metadata, * search on OBJECT string */ metaflag = (strstr(metabuf, "GROUP=\"") == NULL) ? 1 : 0; if (metaflag == 0) { nVal = 1; strcpy(&valName[0][0], "\t\tOBJECT"); } /* Begin loop through entries in metadata */ /* -------------------------------------- */ while (1) { /* Search for first string */ strcpy(utlstr, &valName[0][0]); strcat(utlstr, "="); metaptrs[0] = strstr(metaptrs[0], utlstr); /* If found within relevant metadata section ... */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { for (i = 0; i < nVal; i++) { /* * Get all string values Don't count quotes */ status = HE5_EHgetmetavalue(metaptrs, &valName[i][0], utlstr); if ( status == FAIL ) { sprintf(errbuf, "Cannot get metadata string.\n"); H5Epush(__FILE__, "HE5_GDnentries", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return(FAIL); } *strbufsize += strlen(utlstr) - 2; } /* Increment number of entries */ nEntries++; /* Go to end of OBJECT */ metaptrs[0] = strstr(metaptrs[0], "END_OBJECT"); } else /* No more entries found */ { break; } } if (metabuf != NULL) free(metabuf); /* Count comma separators & slashes (if mappings) */ /* ---------------------------------------------- */ if (nEntries > 0) { *strbufsize += nEntries - 1; *strbufsize += (nVal - 1) * nEntries; } free(errbuf); free(utlstr); errbuf = NULL; utlstr = NULL; return (nEntries); } #define REMQUOTE \ \ memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); \ utlstr[strlen(utlstr) - 2] = 0; /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqdims | | | | DESCRIPTION: Retrieve information about all dimensions defined in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nDim int Number of defined dimensions | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | | | OUTPUTS: | | dimnames char Dimension names (comma-separated) | | dims hsize_t Dimension values | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. | | 9/28/99 A.Muslimov Added proper error handlings after function calls. | | 10/18/99 A.Muslimov Replace memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 07/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDinqdims(hid_t gridID, char *dimnames, hsize_t dims[]) { int nDim = 0; /* Number of dimensions (return) */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Grid index */ hsize_t size = 0; /* Dimension size */ char *metabuf = (char *)NULL; /* Ptr to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL}; /* Ptrs to begin/end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ char *errbuf = (char *)NULL; /* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqdims", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDinqdims", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDinqdims", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDinqdims", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* If dimension names or sizes are requested */ /* ----------------------------------------- */ if (dimnames != NULL || dims != NULL) { /* Get pointers to "Dimension" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname, "g","Dimension", metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer.\n"); H5Epush(__FILE__, "HE5_GDinqdims", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(FAIL); } /* If dimension names are requested then "clear" name buffer */ /* --------------------------------------------------------- */ if (dimnames != NULL) { dimnames[0] = 0; } while (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { strcpy(utlstr, "\t\tOBJECT="); metaptrs[0] = strstr(metaptrs[0], utlstr); if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get Dimension Name */ /* ------------------ */ if (dimnames != NULL) { /* Check 1st for old meta data then new */ /* ------------------------------------ */ status = HE5_EHgetmetavalue(metaptrs, "OBJECT", utlstr); if (status == FAIL) { sprintf(errbuf, "\"OBJECT\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDinqdims", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return(FAIL); } if (utlstr[0] != '"') { metaptrs[0] = strstr(metaptrs[0], "\t\t\t\tDimensionName="); status = HE5_EHgetmetavalue(metaptrs, "DimensionName", utlstr); if (status == FAIL) { sprintf(errbuf, "\"DimensionName\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDinqdims", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return(FAIL); } } /* Strip off double quotes */ /* ----------------------- */ memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); utlstr[strlen(utlstr) - 2] = 0; if (nDim > 0) { strcat(dimnames, ","); } strcat(dimnames, utlstr); } /* Get Dimension Size */ /* ------------------ */ if (dims != NULL) { status = HE5_EHgetmetavalue(metaptrs, "Size", utlstr); if (status == FAIL) { sprintf(errbuf, "\"Size\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDinqdims", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return(FAIL); } size = (hsize_t)atol(utlstr); dims[ nDim ] = size; } nDim++; } } if (metabuf != NULL) free(metabuf); } free(utlstr); free(errbuf); utlstr = NULL; errbuf = NULL; return (nDim); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDattrinfo | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | attrname char* attribute name | | | | OUTPUTS: | | ntype hid_t Data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/28/99 A.Muslimov Changed the type of return value from intn | | to int . | | 5/10/00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDattrinfo(hid_t gridID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Grid index */ CHECKPOINTER(attrname); /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get attribute group ID and call EHattrinfo */ /* ------------------------------------------ */ status = HE5_EHattrinfo( HE5_GDXGrid[idx].gd_id, attrname, ntype, count); } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqattrs | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long number of attributes (-1 if fails) | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | attrnames char attribute name(s) | | | | OUTPUTS: | | strbufsize long String length of attribute (in bytes) | | | | NOTES: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov Changed the data type of status variable from intn | | to int . Added error handling after the call to | | GDchkgdid(). | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqattrs(hid_t gridID, char *attrnames, long *strbufsize) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long nattr = 0; /* Number of attributes */ long idx = FAIL;/* Grid index */ char *grpname = (char *)NULL;/* Buffer for group name */ char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqattrs", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDinqattrs", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for grid ID failed.\n" ); H5Epush(__FILE__, "HE5_GDinqattrs", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Allocate memory for the group name string */ /* ----------------------------------------- */ grpname = (char *) calloc( (strlen(HE5_GDXGrid[idx].gdname)+40), sizeof(char)); if( grpname == NULL) { sprintf(errbuf, "Cannot allocate memory for the group name string.\n"); H5Epush(__FILE__, "HE5_GDinqattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } strcpy(grpname,"/HDFEOS/GRIDS/"); strcat(grpname, HE5_GDXGrid[idx].gdname); nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); if (grpname != NULL) free(grpname); free(errbuf); errbuf = NULL; return (nattr); } /*----------------------------------------------------------------------------r | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqfields | | | | DESCRIPTION: Retrieve information about all data fields defined in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nFld int Number of fields in grid | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | | | OUTPUTS: | | fieldlist char* Field names (comma-separated) | | rank int Array of ranks | | ntype hid_t Array of field number types | | | | NOTES: | | | | HDF5 Library Functions Called: | | H5Dopen | | H5Dget_type | | H5Tget_class | | H5Dclose | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. Added propere error handling after the | | function calls. | | Mar 00 A.Muslimov Changed the ID of field group from gd_id to data_id.| | Apr 00 A.Muslimvo Changed type of 'slen', 'fldnmlen' from long to | | size_t. | | May 00 A.Muslimov Changed 'H5T_class_t" type to 'int' data type. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | Jan 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | Oct. 03 S.Zhao Added the H5Tclose(datatype) call. | | Jan. 04 S.Zhao Modified to enable a character string dataset. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDinqfields(hid_t gridID, char *fieldlist, int rank[], hid_t ntype[]) { int nFld = 0; /* Number of fields (return) */ int i; /* loop index */ herr_t status = FAIL;/* routine return status variable */ herr_t Dstatus = FAIL;/* Status for H5Dclose */ long ntflds = 0; /* Number of entries in field list*/ long idx = FAIL;/* Grid index */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t datasetid = FAIL;/* Dataset ID */ hid_t datatype = FAIL;/* Datatype ID */ size_t slen[HE5_DTSETRANKMAX]; /* String length array */ size_t fldnmlen[HE5_HDFE_NAMBUFSIZE]; char *tempfield = (char *)NULL; char *fldnm[HE5_HDFE_NAMBUFSIZE]; char *metabuf = (char *)NULL;/* Pointer to structural metadata (SM) */ char *metaptrs[2]; /* Pointers to begin and end of SM section */ char *utlstr = (char *)NULL; /* Utility string */ char *ptr[HE5_DTSETRANKMAX]; /* String pointer array */ char *errbuf = (char *)NULL; /* error message buffer */ H5T_class_t classid = H5T_NO_CLASS; /* Data type class ID */ htri_t str_is_variable; /* boolean: TRUE if string is variable lengeth FALSE if string is fixed length -1 if error in H5Tis_variavle_str() */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDinqfields", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char) ); if(utlstr == NULL) { sprintf(errbuf, "Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* If field names, ranks, or number types desired ... */ /* --------------------------------------------------- */ if (fieldlist != NULL || rank != NULL || ntype != NULL) { /* Get pointers to "DataField" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_GDXGrid[idx].gdname,"g","DataField", metaptrs); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for metabuffer.\n"); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); return(FAIL); } /* If field names are desired then "clear" name buffer */ /* --------------------------------------------------- */ if (fieldlist != NULL) fieldlist[0] = 0; /* Begin loop through mapping entries in metadata */ /* ---------------------------------------------- */ while (1) { /* Search for OBJECT string */ /* ------------------------ */ metaptrs[0] = strstr(metaptrs[0], "\t\tOBJECT="); /* If found within "Data" Field metadata section .. */ /* ------------------------------------------------ */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get Fieldnames (if desired) */ /* --------------------------- */ if (fieldlist != NULL) { /* Check 1st for old meta data then new */ /* ------------------------------------ */ status = HE5_EHgetmetavalue(metaptrs, "OBJECT", utlstr); if (status == FAIL) { sprintf(errbuf, "\"OBJECT\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return(FAIL); } /* * If OBJECT value begins with double quote then old * metadata, field name is OBJECT value. Otherwise * search for "DataFieldName" string */ if (utlstr[0] != '"') { strcpy(utlstr, "\t\t\t\t"); strcat(utlstr, "DataFieldName"); strcat(utlstr, "="); metaptrs[0] = strstr(metaptrs[0], utlstr); status = HE5_EHgetmetavalue(metaptrs, "DataFieldName", utlstr); if (status == FAIL) { sprintf(errbuf, "\"DataFieldName\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(utlstr); free(metabuf); return(FAIL); } } /* Strip off double quotes */ /* ----------------------- */ REMQUOTE /* Add to fieldlist */ /* ---------------- */ if (nFld > 0) { strcat(fieldlist, ","); } strcat(fieldlist, utlstr); } if (ntype != NULL) { ntflds = HE5_EHparsestr(fieldlist, ',', fldnm, fldnmlen); if(ntflds != FAIL) { for( i = 0; i < ntflds; i++) { tempfield = (char *)calloc(fldnmlen[i] + 1, sizeof(char)); if (tempfield == NULL) { sprintf(errbuf, "Cannot allocate memory."); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); return(FAIL); } memmove(tempfield,fldnm[i],fldnmlen[i]); datasetid = H5Dopen(HE5_GDXGrid[idx].data_id, tempfield); if (datasetid == FAIL) { sprintf(errbuf, "Cannot open the dataset."); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } datatype = H5Dget_type(datasetid); if (datatype == FAIL) { sprintf(errbuf, "Cannot get the data type."); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } classid = H5Tget_class(datatype); if (classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class."); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } if (classid == H5T_STRING) { /* HE5T_CHARSTRING has variable length for data fields */ str_is_variable = H5Tis_variable_str(datatype); if(str_is_variable == TRUE) { ntype[i] = HE5T_CHARSTRING; } else if(str_is_variable == FALSE) { ntype[i] = HE5T_NATIVE_CHAR; } else { status = FAIL; sprintf(errbuf, "Failed to see if string field is varaible or fixed length.\n"); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); free(tempfield); return(status); } /*ntype[i] = HE5T_CHARSTRING;*/ } else { ntype[i] = HE5_EHdtype2numtype(datatype); if (ntype[i] == FAIL) { sprintf(errbuf, "Cannot get the number type.\n"); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } } status = H5Tclose(datatype); if ( status == FAIL ) { sprintf(errbuf, "Cannot close the datatype."); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } Dstatus = H5Dclose(datasetid); if (Dstatus == FAIL) { sprintf(errbuf, "Cannot close the dataset."); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } free(tempfield); } } } /* * Get Rank (if desired) by counting # of dimensions in * "DimList" string */ if (rank != NULL) { status = HE5_EHgetmetavalue(metaptrs, "DimList", utlstr); if (status == FAIL) { sprintf(errbuf, "\"DimList\" string not found in metadata."); H5Epush(__FILE__, "HE5_GDinqfields", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); if (utlstr != NULL) free(utlstr); if (metabuf != NULL) free(metabuf); return(FAIL); } rank[ nFld ] = (int)HE5_EHparsestr(utlstr, ',', ptr, slen); } /* Increment number of fields */ nFld++; } else /* No more fields found */ { break; } } if (metabuf != NULL) free(metabuf); } free(utlstr); free(errbuf); return (nFld); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdetach | | | | DESCRIPTION: Detaches from grid interface and performs file housekeeping. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | H5Dclose | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A.Muslimov Changed the return type from intn to int . | | 9/9/99 A.Muslimov Checked for the statuses returned by H5Dclose() and | | H5Gclose(). Cleaned up minor things. | | Feb,2000 A.Muslimov Fixed bug-prone release of IDs. | | Mar,2000 A.Muslimov Added detaching from the "Data Fields" group. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdetach(hid_t gridID) { herr_t status = FAIL;/* routine return status variable */ int i, k; /* loop indices */ long idx = FAIL;/* Grid index */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ char *errbuf = (char *)NULL;/*Error message buffer */ HE5_LOCK; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdetach", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdetach", &fid, &gid, &idx); if( status == FAIL) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDdetach", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* "Detach" from previously attached datasets */ /* ------------------------------------------ */ if( HE5_GDXGrid[ idx ].nDFLD > 0 ) { for (k = 0; k < HE5_GDXGrid[ idx ].nDFLD; k++) { if ( HE5_GDXGrid[ idx ].ddataset[ k ].ID > 0 ) { status = H5Dclose(HE5_GDXGrid[ idx ].ddataset[ k ].ID); if( status == FAIL) { sprintf(errbuf, "Cannot close the dataset."); H5Epush(__FILE__, "HE5_GDdetach", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } if (HE5_GDXGrid[ idx ].ddataset[ k ].name != NULL) free(HE5_GDXGrid[ idx ].ddataset[ k ].name); } if ( HE5_GDXGrid[ idx ].ddataset != NULL ) free(HE5_GDXGrid[ idx ].ddataset); } /* Detach from "Data Fields" groups */ /* -------------------------------- */ if ( HE5_GDXGrid[ idx ].data_id > 0 ) { status = H5Gclose(HE5_GDXGrid[ idx ].data_id); if( status == FAIL) { sprintf(errbuf,"Cannot close the group."); H5Epush(__FILE__, "HE5_GDdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } /* Detach from Grid groups */ /* ----------------------- */ if ( HE5_GDXGrid[ idx ].gd_id > 0 ) { status = H5Gclose(HE5_GDXGrid[ idx ].gd_id); if( status == FAIL) { sprintf(errbuf,"Cannot close the group."); H5Epush(__FILE__, "HE5_GDdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } /* Delete entries from External Arrays */ /* ----------------------------------- */ HE5_GDXGrid[ idx ].active = 0; HE5_GDXGrid[ idx ].fid = 0; HE5_GDXGrid[ idx ].gd_id = 0; HE5_GDXGrid[ idx ].data_id = 0; HE5_GDXGrid[ idx ].obj_id = 0; HE5_GDXGrid[ idx ].ddataset = NULL; HE5_GDXGrid[ idx ].nDFLD = 0; /* Free Region Pointers */ /* -------------------- */ for (k = 0; k < HE5_NGRIDREGN; k++) { if (HE5_GDXRegion[ k ] != NULL && HE5_GDXRegion[ k ]->gridID == gridID) { for (i = 0; i < HE5_DTSETRANKMAX; i++) { if (HE5_GDXRegion[ k ]->DimNamePtr[ i ] != NULL) { if( HE5_GDXRegion[ k ]->DimNamePtr[ i ] != NULL ) { free(HE5_GDXRegion[ k ]->DimNamePtr[ i ]); HE5_GDXRegion[ k ]->DimNamePtr[ i ] = NULL; } } } if ( HE5_GDXRegion[ k ] != NULL ) { free(HE5_GDXRegion[ k ]); HE5_GDXRegion[ k ] = NULL; } } } free(errbuf); errbuf = (char *)NULL; COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDclose | | | | DESCRIPTION: Closes file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t HDF-EOS type file ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDclose(hid_t fid) { herr_t status = FAIL;/* routine return status variable */ /* Call HE5_EHclose to perform file close */ /* -------------------------------------- */ status = HE5_EHclose(fid); return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgetdefaults | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | projcode int GCTP projection code | | zonecode int UTM zone code | | projparm double Projection parameters | | spherecode int GCTP spheriod code | | upleftpt double upper left corner coordinates | | lowrightpt double lower right corner coordinates | | | | OUTPUTS: | | upleftpt double upper left corner coordinates | | lowrightpt double lower right corner coordinates | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A.Muslimov Changed the return type from intn to int . | | 9/28/99 A.Muslimov Added proper error handlings after the function | | calls. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDgetdefaults(int projcode, int zonecode, double projparm[], int spherecode, double upleftpt[], double lowrightpt[]) { herr_t status = SUCCEED;/* routine return status variable */ long errorcode = 0; #if defined(SGI64) int (*for_trans[100]) (double, double, double*, double*); #else long (*for_trans[100]) (double, double, double*, double*); #endif double lon = 0.; double lat = 0.; double plat = 0.; double x = 0.; double y = 0.; double plon = 0.; double tlon = 0.; double llon = 0.; double rlon = 0.; double pplon = 0.; double RLon = 0.; double RLat = 0.; double LLon = 0.; double LLat = 0.; char *errbuf; /* buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* invoke GCTP initialization routine */ /* ---------------------------------- */ for_init(projcode, zonecode, projparm, spherecode, NULL, NULL,&errorcode, for_trans); /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } /* Compute Default Boundary Points for EASE Grid */ /* Use Global coverage */ /* ------------------------------------------------------ */ if (projcode == HE5_GCTP_BCEA && upleftpt[0] == 0 && upleftpt[1] == 0 && lowrightpt[0] == 0 && lowrightpt[1] == 0) { upleftpt[0] = HE5_EHconvAng(EASE_GRID_DEFAULT_UPLEFT_LON, HE5_HDFE_DEG_DMS); upleftpt[1] = HE5_EHconvAng(EASE_GRID_DEFAULT_UPLEFT_LAT, HE5_HDFE_DEG_DMS); lowrightpt[0] = HE5_EHconvAng(EASE_GRID_DEFAULT_LOWRGT_LON, HE5_HDFE_DEG_DMS); lowrightpt[1] = HE5_EHconvAng(EASE_GRID_DEFAULT_LOWRGT_LAT, HE5_HDFE_DEG_DMS); } /* Compute Default Boundary Points for CEA */ /* --------------------------------------------*/ if (projcode ==HE5_GCTP_CEA && upleftpt[0] == 0 && upleftpt[1] == 0 && lowrightpt[0] == 0 && lowrightpt[1] == 0) { LLon = HE5_EHconvAng(EASE_GRID_DEFAULT_UPLEFT_LON, HE5_HDFE_DEG_RAD); LLat = HE5_EHconvAng(EASE_GRID_DEFAULT_UPLEFT_LAT, HE5_HDFE_DEG_RAD); RLon = HE5_EHconvAng(EASE_GRID_DEFAULT_LOWRGT_LON, HE5_HDFE_DEG_RAD); RLat = HE5_EHconvAng(EASE_GRID_DEFAULT_LOWRGT_LAT, HE5_HDFE_DEG_RAD); errorcode = for_trans[projcode] (LLon, LLat, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[0] = x; upleftpt[1] = y; errorcode = for_trans[projcode] (RLon, RLat, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[0] = x; lowrightpt[1] = y; } /* Compute Default Boundary Points for Polar Sterographic */ /* ------------------------------------------------------ */ if (projcode == HE5_GCTP_PS && upleftpt[0] == 0 && upleftpt[1] == 0 && lowrightpt[0] == 0 && lowrightpt[1] == 0) { /* * Convert the longitude and latitude from the DMS to decimal degree * format. */ plon = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_DEG); plat = HE5_EHconvAng(projparm[5], HE5_HDFE_DMS_DEG); /* * Compute the longitudes at 90, 180 and 270 degrees from the central * longitude. */ if (plon <= 0.0) { tlon = 180.0 + plon; pplon = plon + 360.0; } else { tlon = plon - 180.0; pplon = plon; } rlon = pplon + 90.0; if (rlon > 360.0) rlon = rlon - 360.; if (rlon > 180.0) rlon = rlon - 360.0; if (rlon <= 0.0) llon = 180.0 + rlon; else llon = rlon - 180.0; /* Convert all four longitudes from decimal degrees to radians */ plon = HE5_EHconvAng(plon, HE5_HDFE_DEG_RAD); tlon = HE5_EHconvAng(tlon, HE5_HDFE_DEG_RAD); llon = HE5_EHconvAng(llon, HE5_HDFE_DEG_RAD); rlon = HE5_EHconvAng(rlon, HE5_HDFE_DEG_RAD); errorcode = for_trans[projcode] (llon, 0., &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[0] = x; errorcode = for_trans[projcode](rlon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[0] = x; /* * Compute the upperleft and lowright y values based on the south or * north polar projection */ if (plat < 0.0) { errorcode = for_trans[projcode] (plon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[1] = y; errorcode = for_trans[projcode] (tlon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[1] = y; } else { errorcode = for_trans[projcode] (tlon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[1] = y; errorcode = for_trans[projcode](plon, 0., &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[1] = y; } } /* Compute Default Boundary Points for Goode Homolosine */ /* ---------------------------------------------------- */ if (projcode == HE5_GCTP_GOOD && upleftpt[0] == 0 && upleftpt[1] == 0 && lowrightpt[0] == 0 && lowrightpt[1] == 0) { lon = HE5_EHconvAng(-180, HE5_HDFE_DEG_RAD); lat = 0.0; errorcode = for_trans[projcode] (lon, lat, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[0] = -fabs(x); lowrightpt[0] = +fabs(x); lat = HE5_EHconvAng(90, HE5_HDFE_DEG_RAD); errorcode = for_trans[projcode] (lon, lat, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[1] = +fabs(y); lowrightpt[1] = -fabs(y); } /* Compute Default Boundary Points for Lambert Azimuthal */ /* ----------------------------------------------------- */ if (projcode == HE5_GCTP_LAMAZ && upleftpt[0] == 0 && upleftpt[1] == 0 && lowrightpt[0] == 0 && lowrightpt[1] == 0) { /* * Convert the longitude and latitude from the DMS to decimal degree * format. */ plon = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_DEG); plat = HE5_EHconvAng(projparm[5], HE5_HDFE_DMS_DEG); /* * Compute the longitudes at 90, 180 and 270 degrees from the central * longitude. */ if (plon <= 0.0) { tlon = 180.0 + plon; pplon = plon + 360.0; } else { tlon = plon - 180.0; pplon = plon; } rlon = pplon + 90.0; if (rlon > 360.0) rlon = rlon - 360.; if (rlon > 180.0) rlon = rlon - 360.0; if (rlon <= 0.0) llon = 180.0 + rlon; else llon = rlon - 180.0; /* Convert all four longitudes from decimal degrees to radians */ plon = HE5_EHconvAng(plon, HE5_HDFE_DEG_RAD); tlon = HE5_EHconvAng(tlon, HE5_HDFE_DEG_RAD); llon = HE5_EHconvAng(llon, HE5_HDFE_DEG_RAD); rlon = HE5_EHconvAng(rlon, HE5_HDFE_DEG_RAD); errorcode = for_trans[projcode] (llon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[0] = x; errorcode = for_trans[projcode] (rlon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[0] = x; /* * Compute upperleft and lowerright values based on whether the * projection is south polar, north polar or equitorial */ if (plat == -90.0) { errorcode = for_trans[projcode] (plon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[1] = y; errorcode = for_trans[projcode] (tlon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[1] = y; } else if (plat == 90.0) { errorcode = for_trans[projcode] (tlon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[1] = y; errorcode = for_trans[projcode] (plon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[1] = y; } else { lat = HE5_EHconvAng(90, HE5_HDFE_DEG_RAD); errorcode = for_trans[projcode] (plon, lat, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[1] = y; lat = HE5_EHconvAng(-90, HE5_HDFE_DEG_RAD); errorcode = for_trans[projcode] (plon, lat, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[1] = y; } } /* Compute Default Boundary Points for Integerized Sinusoidal Grid */ /* --------------------------------------------------------------- */ if (projcode == HE5_GCTP_ISINUS && upleftpt[0] == 0 && upleftpt[1] == 0 && lowrightpt[0] == 0 && lowrightpt[1] == 0) { /* * Convert the longitude and latitude from the DMS to decimal degree * format. */ plon = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_DEG); plat = HE5_EHconvAng(projparm[5], HE5_HDFE_DMS_DEG); /* * Compute the longitudes at 90, 180 and 270 degrees from the central * longitude. */ if (plon <= 0.0) { tlon = 180.0 + plon; pplon = plon + 360.0; } else { tlon = plon - 180.0; pplon = plon; } rlon = pplon + 90.0; if (rlon > 360.0) rlon = rlon - 360.; if (rlon > 180.0) rlon = rlon - 360.0; if (rlon <= 0.0) llon = 180.0 + rlon; else llon = rlon - 180.0; /* Convert all four longitudes from decimal degrees to radians */ plon = HE5_EHconvAng(plon, HE5_HDFE_DEG_RAD); tlon = HE5_EHconvAng(tlon, HE5_HDFE_DEG_RAD); llon = HE5_EHconvAng(llon, HE5_HDFE_DEG_RAD); rlon = HE5_EHconvAng(rlon, HE5_HDFE_DEG_RAD); errorcode = for_trans[projcode] (llon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[0] = x; errorcode = for_trans[projcode] (rlon, 0.0, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[0] = x; lat = HE5_EHconvAng(90, HE5_HDFE_DEG_RAD); errorcode = for_trans[projcode] (plon, lat, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } upleftpt[1] = y; lat = HE5_EHconvAng(-90, HE5_HDFE_DEG_RAD); errorcode = for_trans[projcode] (plon, lat, &x, &y); if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li \n", errorcode); H5Epush(__FILE__, "HE5_GDgetdefaults", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } lowrightpt[1] = y; } free(errbuf); errbuf = NULL; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDll2ij | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | projcode int GCTP projection code | | zonecode int UTM zone code | | projparm double Projection parameters | | spherecode int GCTP spheriod code | | xdimsize long xdimsize from GDcreate | | ydimsize long ydimsize from GDcreate | | upleftpt double upper left corner coordinates | | lowrightpt double lower right corner coordinates | | npnts long number of lon-lat points | | longitude double longitude array (decimal degrees) | | latitude double latitude array (decimal degrees) | | | | OUTPUTS: | | row long Row array | | col long Column array | | xval double X value array | | yval double Y value array | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A.Muslimov Changed the return type from intn to int . | | Added proper error handlings. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 2/02/08 Abe Taaheri Created Fortran Wrapper, and made it an API | | Jun 11 Abe Taaher Modified for State Plane Files inclusion | | | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDll2ij(int projcode, int zonecode, double projparm[], int spherecode, long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[], long npnts, double longitude[], double latitude[], long row[], long col[], double xval[], double yval[]) { herr_t status = SUCCEED; /* routine return status variable */ long i; /* Loop index */ #if defined(SGI64) int (*for_trans[100]) (double, double, double *, double *); #else long (*for_trans[100]) (double, double, double *, double *); #endif long errorcode = 0; /* GCTP error code */ double xVal = 0.; /* Scaled x distance */ double yVal = 0.; /* Scaled y distance */ double xMtr = 0.; /* X value in meters from GCTP */ double yMtr = 0.; /* Y value in meters from GCTP */ double lonrad0 = 0.; /* Longitude in radians of upleft point */ double latrad0 = 0.; /* Latitude in radians of upleft point */ double lonrad = 0.; /* Longitude in radians of point */ double latrad = 0.; /* Latitude in radians of point */ double scaleX = 0.; /* X scale factor */ double scaleY = 0.; /* Y scale factor */ double HE5_EHconvAng(double, int);/* Angle conversion routine */ double xMtr0, xMtr1, yMtr0, yMtr1; char *errbuf; /* Buffer for error message */ char *eastFile = NULL; char *northFile = NULL; CHECKPOINTER(upleftpt); CHECKPOINTER(lowrightpt); CHECKPOINTER(longitude); CHECKPOINTER(latitude); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDll2ij", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* If projection not GEO call GCTP initialization routine */ /* ------------------------------------------------------ */ if (projcode != HE5_GCTP_GEO) { eastFile = (char *) malloc(300*sizeof(char)); northFile = (char *) malloc(300*sizeof(char)); HE5_GDgetEastAndNorthFiles(eastFile,northFile); for_init(projcode, zonecode, projparm, spherecode, eastFile, northFile, &errorcode, for_trans); free (eastFile); free (northFile); eastFile = NULL; northFile = NULL; /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDll2ij", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } } if (status == SUCCEED) { /* GEO projection */ /* -------------- */ if (projcode == HE5_GCTP_GEO) { /* Convert upleft and lowright X coords from DMS to radians */ /* -------------------------------------------------------- */ lonrad0 = HE5_EHconvAng(upleftpt[0], HE5_HDFE_DMS_RAD); lonrad = HE5_EHconvAng(lowrightpt[0], HE5_HDFE_DMS_RAD); /* Compute x scale factor */ /* ---------------------- */ scaleX = (lonrad - lonrad0) / xdimsize; /* Convert upleft and lowright Y coords from DMS to radians */ /* -------------------------------------------------------- */ latrad0 = HE5_EHconvAng(upleftpt[1], HE5_HDFE_DMS_RAD); latrad = HE5_EHconvAng(lowrightpt[1], HE5_HDFE_DMS_RAD); /* Compute y scale factor */ /* ---------------------- */ scaleY = (latrad - latrad0) / ydimsize; } /* BCEA projection */ /* -------------- */ else if ( projcode == HE5_GCTP_BCEA) { /* Convert upleft and lowright X coords from DMS to radians */ /* ----------------------------------------------------------*/ lonrad0 = HE5_EHconvAng(upleftpt[0], HE5_HDFE_DMS_RAD); lonrad = HE5_EHconvAng(lowrightpt[0],HE5_HDFE_DMS_RAD); /* Convert upleft and lowright Y coords from DMS to radians */ /* ----------------------------------------------------------*/ latrad0 = HE5_EHconvAng(upleftpt[1], HE5_HDFE_DMS_RAD); latrad = HE5_EHconvAng(lowrightpt[1], HE5_HDFE_DMS_RAD); /* Convert from lon/lat to meters(or whatever unit is, i.e unit of r_major and r_minor) using GCTP */ /* ----------------------------------------- */ errorcode = for_trans[projcode] (lonrad0, latrad0, &xMtr0, &yMtr0); /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDll2ij", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } /* Convert from lon/lat to meters(or whatever unit is, i.e unit of r_major and r_minor) using GCTP */ /* ----------------------------------------- */ errorcode = for_trans[projcode] (lonrad, latrad, &xMtr1, &yMtr1); /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDll2ij", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } /* Compute x scale factor */ /* ---------------------- */ scaleX = (xMtr1 - xMtr0) / xdimsize; /* Compute y scale factor */ /* ---------------------- */ scaleY = (yMtr1 - yMtr0) / ydimsize; } else { /* Non-GEO, Non-BCEA projections */ /* ------------------ */ /* Compute x & y scale factors */ /* --------------------------- */ scaleX = (lowrightpt[0] - upleftpt[0]) / xdimsize; scaleY = (lowrightpt[1] - upleftpt[1]) / ydimsize; } /* Loop through all points */ /* ----------------------- */ for (i = 0; i < npnts; i++) { /* Convert lon & lat from decimal degrees to radians */ /* ------------------------------------------------- */ lonrad = HE5_EHconvAng(longitude[i], HE5_HDFE_DEG_RAD); latrad = HE5_EHconvAng(latitude[i], HE5_HDFE_DEG_RAD); /* GEO projection */ /* -------------- */ if (projcode == HE5_GCTP_GEO) { /* Compute scaled distance to point from origin */ /* -------------------------------------------- */ xVal = (lonrad - lonrad0) / scaleX; yVal = (latrad - latrad0) / scaleY; } else { /* Convert from lon/lat to meters using GCTP */ /* ----------------------------------------- */ errorcode = for_trans[projcode](lonrad, latrad, &xMtr, &yMtr); /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDll2ij", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* if projection is BCEA normalize x and y by cell size and measure it from the uperleft corner of the grid */ /* Compute scaled distance to point from origin */ /* -------------------------------------------- */ if( projcode == HE5_GCTP_BCEA) { xVal = (xMtr - xMtr0) / scaleX; yVal = (yMtr - yMtr0) / scaleY; } else { xVal = (xMtr - upleftpt[0]) / scaleX; yVal = (yMtr - upleftpt[1]) / scaleY; } } } /* Compute row and col from scaled distance */ /* ---------------------------------------- */ col[i] = (long)xVal; row[i] = (long)yVal; /* Store scaled distances if requested */ /* ----------------------------------- */ if (xval != NULL) { xval[i] = xVal; } if (yval != NULL) { yval[i] = yVal; } } } if (errbuf != NULL) free(errbuf); COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDij2ll | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | projcode int GCTP projection code | | zonecode int UTM zone code | | projparm double Projection parameters | | spherecode int GCTP spheriod code | | xdimsize long xdimsize from GDcreate | | ydimsize long ydimsize from GDcreate | | upleftpt double upper left corner coordinates | | lowrightpt double lower right corner coordinates | | pixcen int pixel center code | | npnts long number of lon-lat points | | row long Row array | | col long Column array | | pixcen int Code from GDpixreginfo | | pixcnr int Code from GDorigininfo | | | | OUTPUTS: | | longitude double longitude array (decimal degrees) | | latitude double latitude array (decimal degrees) | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A.Muslimov Changed the return type from intn to int . | | Added proper error handling after the function calls| | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 2/02/08 Abe Taaheri Created Fortran Wrapper, and made it an API | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDij2ll(int projcode, int zonecode, double projparm[], int spherecode, long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[], long npnts, long row[], long col[], double longitude[], double latitude[], int pixcen, int pixcnr) { herr_t status = FAIL;/* routine return status variable */ long errorcode = 0; /* GCTP error code */ long i; /* Loop index */ #if defined(SGI64) int (*inv_trans[100]) (double, double, double*, double*); #else long (*inv_trans[100]) (double, double, double*, double*); #endif #if defined(SGI64) int (*for_trans[100]) (double, double, double*, double*); #else long (*for_trans[100]) (double, double, double*, double*); #endif double arg1, arg2; double pixadjX = 0.; /* Pixel adjustment (x) */ double pixadjY = 0.; /* Pixel adjustment (y) */ double lonrad0 = 0.; /* Longitude in radians of upleft point */ double latrad0 = 0.; /* Latitude in radians of upleft point */ double scaleX = 0.; /* X scale factor */ double scaleY = 0.; /* Y scale factor */ double lonrad = 0.; /* Longitude in radians of point */ double latrad = 0.; /* Latitude in radians of point */ double HE5_EHconvAng(double, int);/* Angle conversion routine */ double xMtr0, yMtr0, xMtr1, yMtr1; char *errbuf; /* buffer for error message */ char *eastFile = NULL; char *northFile = NULL; CHECKPOINTER(upleftpt); CHECKPOINTER(lowrightpt); CHECKPOINTER(row); CHECKPOINTER(col); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDij2ll", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Compute adjustment of position within pixel */ /* ------------------------------------------- */ if (pixcen == HE5_HDFE_CENTER) { /* Pixel defined at center */ /* ----------------------- */ pixadjX = 0.5; pixadjY = 0.5; } else { switch (pixcnr) { case HE5_HDFE_GD_UL: { /* Pixel defined at upper left corner */ /* ---------------------------------- */ pixadjX = 0.0; pixadjY = 0.0; break; } case HE5_HDFE_GD_UR: { /* Pixel defined at upper right corner */ /* ----------------------------------- */ pixadjX = 1.0; pixadjY = 0.0; break; } case HE5_HDFE_GD_LL: { /* Pixel defined at lower left corner */ /* ---------------------------------- */ pixadjX = 0.0; pixadjY = 1.0; break; } case HE5_HDFE_GD_LR: { /* Pixel defined at lower right corner */ /* ----------------------------------- */ pixadjX = 1.0; pixadjY = 1.0; break; } default: { sprintf(errbuf, "Unknown pixel corner.\n"); H5Epush(__FILE__, "HE5_GDij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } } /* If projection not GEO or BCEA call GCTP initialization routine */ /* ------------------------------------------------------ */ if (projcode != HE5_GCTP_GEO && projcode != HE5_GCTP_BCEA) { eastFile = (char *) malloc(300*sizeof(char)); northFile = (char *) malloc(300*sizeof(char)); HE5_GDgetEastAndNorthFiles(eastFile,northFile); scaleX = (lowrightpt[0] - upleftpt[0]) / xdimsize; scaleY = (lowrightpt[1] - upleftpt[1]) / ydimsize; inv_init(projcode, zonecode, projparm, spherecode, eastFile, northFile, &errorcode, inv_trans); free (eastFile); free (northFile); eastFile = NULL; northFile = NULL; /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } else { /* For each point ... */ /* ------------------ */ for (i = 0; i < npnts; i++) { /* Convert from meters to lon/lat (radians) using GCTP */ /* --------------------------------------------------- */ /*errorcode = inv_trans[projcode] ((col[i] + pixadjX) * scaleX + upleftpt[0], (row[i] + pixadjY) * scaleY + upleftpt[1], &lonrad, &latrad);*/ /* modified previous line to the following for the linux64 with -fPIC in cmpilation. Whithout the change col[] and row[] values are ridiclous numbers, resulting a strange number (very big) for arg1 and arg2. But with (int) typecast they become normal integers, resulting in a acceptable values for arg1 and arg2. The problem was discovered during the lat/lon geolocating of an hdfeos5 file with 64-bit hadview plug-in, developped for linux64. */ arg1 = (((int)col[i] + pixadjX) * scaleX + upleftpt[0]); arg2 = (((int)row[i] + pixadjY) * scaleY + upleftpt[1]); errorcode = inv_trans[projcode] (arg1, arg2, &lonrad, &latrad); /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } else { /* Convert from radians to decimal degrees */ /* --------------------------------------- */ longitude[i] = HE5_EHconvAng(lonrad, HE5_HDFE_RAD_DEG); latitude[i] = HE5_EHconvAng(latrad, HE5_HDFE_RAD_DEG); } } } } else if (projcode == HE5_GCTP_BCEA) { /* BCEA projection */ /* -------------- */ /* Note: upleftpt and lowrightpt are in packed degrees, so they must be converted to meters for this projection */ /* Initialize forward transformation */ /* --------------------------------- */ for_init(projcode, zonecode, projparm, spherecode, NULL, NULL,&errorcode, for_trans); /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (-1); } /* Convert upleft and lowright X coords from DMS to radians */ /* -------------------------------------------------------- */ lonrad0 =HE5_EHconvAng(upleftpt[0], HE5_HDFE_DMS_RAD); lonrad = HE5_EHconvAng(lowrightpt[0], HE5_HDFE_DMS_RAD); /* Convert upleft and lowright Y coords from DMS to radians */ /* -------------------------------------------------------- */ latrad0 = HE5_EHconvAng(upleftpt[1], HE5_HDFE_DMS_RAD); latrad = HE5_EHconvAng(lowrightpt[1], HE5_HDFE_DMS_RAD); /* Convert form lon/lat to meters(or whatever unit is, i.e unit of r_major and r_minor) using GCTP */ /* ----------------------------------------- */ errorcode = for_trans[projcode] (lonrad0, latrad0, &xMtr0, &yMtr0); /* Report error if any */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } /* Convert from lon/lat to meters or whatever unit is, i.e unit of r_major and r_minor) using GCTP */ /* ----------------------------------------- */ errorcode = for_trans[projcode] (lonrad, latrad, &xMtr1, &yMtr1); /* Report error if any */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } /* Compute x scale factor */ /* ---------------------- */ scaleX = (xMtr1 - xMtr0) / xdimsize; /* Compute y scale factor */ /* ---------------------- */ scaleY = (yMtr1 - yMtr0) / ydimsize; /* Initialize inverse transformation */ /* --------------------------------- */ inv_init(projcode, zonecode, projparm, spherecode, NULL, NULL, &errorcode, inv_trans); /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (-1); } /* For each point ... */ /* ------------------ */ for (i = 0; i < npnts; i++) { /* Convert from meters (or any units that r_major and r_minor has) to lon/lat (radians) using GCTP */ /* --------------------------------------------------- */ errorcode = inv_trans[projcode] ( (col[i] + pixadjX) * scaleX + xMtr0, (row[i] + pixadjY) * scaleY + yMtr0, &lonrad, &latrad); /* Report error if any */ /* ------------------- */ if (errorcode != 0) { /* status = -1; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDij2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); */ longitude[i] = 1.0e51; /* PGSd_GCT_IN_ERROR */ latitude[i] = 1.0e51; /* PGSd_GCT_IN_ERROR */ } /* Convert from radians to decimal degrees */ /* --------------------------------------- */ longitude[i] = HE5_EHconvAng(lonrad, HE5_HDFE_RAD_DEG); latitude[i] = HE5_EHconvAng(latrad, HE5_HDFE_RAD_DEG); } } else if (projcode == HE5_GCTP_GEO) { /* GEO projection */ /* -------------- */ /* * Note: lonrad, lonrad0, latrad, latrad0 are actually in degrees for * the GEO projection case. */ /* Convert upleft and lowright X coords from DMS to degrees */ /* -------------------------------------------------------- */ lonrad0 = HE5_EHconvAng(upleftpt[0], HE5_HDFE_DMS_DEG); lonrad = HE5_EHconvAng(lowrightpt[0], HE5_HDFE_DMS_DEG); /* Compute x scale factor */ /* ---------------------- */ scaleX = (lonrad - lonrad0) / xdimsize; /* Convert upleft and lowright Y coords from DMS to degrees */ /* -------------------------------------------------------- */ latrad0 = HE5_EHconvAng(upleftpt[1], HE5_HDFE_DMS_DEG); latrad = HE5_EHconvAng(lowrightpt[1], HE5_HDFE_DMS_DEG); /* Compute y scale factor */ /* ---------------------- */ scaleY = (latrad - latrad0) / ydimsize; /* For each point ... */ /* ------------------ */ for (i = 0; i < npnts; i++) { /* Convert to lon/lat (decimal degrees) */ /* ------------------------------------ */ longitude[i] = (col[i] + pixadjX) * scaleX + lonrad0; latitude[i] = (row[i] + pixadjY) * scaleY + latrad0; } } if (errbuf != NULL) free(errbuf); COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: GDrs2ll | | | | DESCRIPTION: Converts EASE grid's (r,s) coordinates to longitude and | | latitude (in decimal degrees). | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status intn return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | projcode int GCTP projection code | | projparm double Projection parameters | | xdimsize long xdimsize from GDcreate | | ydimsize long ydimsize from GDcreate | | pixcen int pixel center code | | npnts long number of lon-lat points | | s long s coordinate | | r long r coordinate | | pixcen int Code from GDpixreginfo | | pixcnr int Code from GDorigininfo | | upleft double upper left corner coordinates (DMS) | | lowright double lower right corner coordinates (DMS) | | | | OUTPUTS: | | longitude double longitude array (decimal degrees) | | latitude double latitude array (decimal degrees) | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Dec 04 Adura Adekunjo Added function to hdfeos5 | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDrs2ll(int projcode, double projparm[], long xdimsize, long ydimsize, double upleft[], double lowright[], int npnts, double r[], double s[], double longitude[], double latitude[], int pixcen, int pixcnr) { herr_t status = SUCCEED;/* routine return status variable */ long i; /* Loop index */ long errorcode = 0; /* GCTP error code */ #if defined(SGI64) int (*inv_trans[100]) (double, double, double*, double*); #else long (*inv_trans[100]) (double, double, double*, double*); #endif double pixadjX; /* Pixel adjustment (x) */ double pixadjY; /* Pixel adjustment (y) */ double lonrad; /* Longitude in radians of point */ double latrad; /* Latitude in radians of point */ double HE5_EHconvAng(double, int);/* Angle conversion routine */ double xMtr; /* X value in meters from GCTP */ double yMtr; /* Y value in meters from GCTP */ double epsilon; double beta; double qp_cea; double kz_cea; double eccen, eccen_sq; double phi1, sinphi1, cosphi1; double scaleX, scaleY; int zonecode=0; int spherecode=0; double lon[2],lat[2]; double xcor[2], ycor[2]; int nlatlon; char *errbuf; /* buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDrs2ll", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* If projection is BCEA define scale, r0 and s0 */ if (projcode == HE5_GCTP_BCEA) { eccen_sq = 1.0 - SQUARE(projparm[1]/projparm[0]); eccen = sqrt(eccen_sq); if(eccen < 0.00001) { qp_cea = 2.0; } else { qp_cea = (1.0 - eccen_sq)*((1.0/(1.0 - eccen_sq))-(1.0/(2.0*eccen))* log((1.0 - eccen)/(1.0 + eccen))); } phi1 = HE5_EHconvAng(projparm[5],HE5_HDFE_DMS_RAD); cosphi1 = cos(phi1); sinphi1 = sin(phi1); kz_cea = cosphi1/(sqrt(1.0 - (eccen_sq*sinphi1*sinphi1))); } else /* fail for all other projections */ { sprintf(errbuf, "Error: HE5_GDrs2ll can be called only for HE5_GCTP_BCEA projection."); H5Epush(__FILE__, "HE5_GDrs2ll", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Compute adjustment of position within pixel */ /* ------------------------------------------- */ if (pixcen == HE5_HDFE_CENTER) { /* Pixel defined at center */ /* ----------------------- */ pixadjX = 0.5; pixadjY = 0.5; } else { switch (pixcnr) { case HE5_HDFE_GD_UL: { /* Pixel defined at upper left corner */ /* ---------------------------------- */ pixadjX = 0.0; pixadjY = 0.0; break; } case HE5_HDFE_GD_UR: { /* Pixel defined at upper right corner */ /* ----------------------------------- */ pixadjX = 1.0; pixadjY = 0.0; break; } case HE5_HDFE_GD_LL: { /* Pixel defined at lower left corner */ /* ---------------------------------- */ pixadjX = 0.0; pixadjY = 1.0; break; } case HE5_HDFE_GD_LR: { /* Pixel defined at lower right corner */ /* ----------------------------------- */ pixadjX = 1.0; pixadjY = 1.0; break; } default: { sprintf(errbuf, "Unknown pixel corner.\n"); H5Epush(__FILE__, "HE5_GDrs2ll", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } } /* If projection is BCEA call GCTP initialization routine */ /* ------------------------------------------------------ */ if (projcode == HE5_GCTP_BCEA) { inv_init(projcode, 0, projparm, 0, NULL, NULL, &errorcode, inv_trans); /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDrs2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } else { /* For each point ... */ /* ------------------ */ for (i = 0; i < npnts; i++) { /* Convert from EASE grid's (r,s) to lon/lat (radians) using GCTP */ /* --------------------------------------------------- */ nlatlon = 2; lon[0] = upleft[0]; lon[1] = lowright[0]; lat[0] = upleft[1]; lat[1] = lowright[1]; status = HE5_GDll2mm_cea(projcode,zonecode,spherecode,projparm, xdimsize, ydimsize, upleft, lowright, nlatlon, lon, lat, xcor, ycor, &scaleX, &scaleY); if (status == FAIL) { sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDrs2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } xMtr = (r[i]/ scaleX + pixadjX - 0.5)* scaleX; yMtr = - (s[i]/fabs(scaleY) + pixadjY - 0.5)* fabs(scaleY); /* allow .5 cell tolerance in arcsin function (used in bceainv function) so that grid coordinates which are less than .5 cells above 90.00N or below 90.00S are given lat of 90.00 */ epsilon = 1 + 0.5 * (fabs(scaleY)/projparm[0]); beta = 2.0 * (yMtr - projparm[7]) * kz_cea/(projparm[0] * qp_cea); if( fabs (beta) > epsilon) { status = FAIL; sprintf(errbuf, "GCTP Error: %s %s %s\n", "grid coordinates", "are more than .5 cells", "above 90.00N or below 90.00S. "); H5Epush(__FILE__, "HE5_GDrs2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } else if( beta <= -1) { errorcode = inv_trans[projcode] (xMtr, 0.0, &lonrad, &latrad); latrad = - M_PI1/2; } else if( beta >= 1) { errorcode = inv_trans[projcode] (xMtr, 0.0, &lonrad, &latrad); latrad = M_PI1/2; } else { errorcode = inv_trans[projcode] (xMtr, yMtr, &lonrad, &latrad); } /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDrs2ll", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } /* Convert from radians to decimal degrees */ /* --------------------------------------- */ longitude[i] = HE5_EHconvAng(lonrad, HE5_HDFE_RAD_DEG); latitude[i] = HE5_EHconvAng(latrad, HE5_HDFE_RAD_DEG); } } } if (errbuf != NULL) free(errbuf); COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_lamazDxDtheta | | | | DESCRIPTION: Partial derivative along longitude line for Lambert Azimuthal | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | double Dx/D(theta) for LAMAZ projection | | | | INPUTS: | | parms double Parameters defining partial derivative | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | END_PROLOG | -----------------------------------------------------------------------------*/ double HE5_lamazDxDtheta(double parms[]) { double ans = 0.; double snTheta = 0.; double sn2Theta = 0.; double snTheta1 = 0.; double csTheta1 = 0.; double csLamda = 0.; herr_t status = FAIL; CHECKPOINTER(parms); snTheta = sin(HE5_EHconvAng(parms[0], HE5_HDFE_DEG_RAD)); sn2Theta = sin(2. * HE5_EHconvAng(parms[0], HE5_HDFE_DEG_RAD)); snTheta1 = sin(HE5_EHconvAng(parms[1], HE5_HDFE_DEG_RAD)); csTheta1 = cos(HE5_EHconvAng(parms[1], HE5_HDFE_DEG_RAD)); csLamda = cos(HE5_EHconvAng(parms[2], HE5_HDFE_DEG_RAD) - HE5_EHconvAng(parms[3], HE5_HDFE_DEG_RAD)); ans = 4. * snTheta + (csTheta1 * csLamda * sn2Theta) + (2. * snTheta1 * (1. + (snTheta * snTheta))); COMPLETION: return(ans); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_lamazDxDlamda | | | | DESCRIPTION: Partial derivative along latitude line for Lambert Azimuthal | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | double Dx/D(lamda) for LAMAZ projection | | | | INPUTS: | | parms double Parameters defining partial derivative | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | END_PROLOG | -----------------------------------------------------------------------------*/ double HE5_lamazDxDlamda(double parms[]) { double ans = 0.; double snTheta = 0.; double csTheta = 0.; double snTheta1 = 0.; double csTheta1 = 0.; double csLamda = 0.; double cs = 0.; double sn = 0.; herr_t status = FAIL; CHECKPOINTER(parms); snTheta = sin(HE5_EHconvAng(parms[2], HE5_HDFE_DEG_RAD)); csTheta = cos(HE5_EHconvAng(parms[2], HE5_HDFE_DEG_RAD)); snTheta1 = sin(HE5_EHconvAng(parms[1], HE5_HDFE_DEG_RAD)); csTheta1 = cos(HE5_EHconvAng(parms[1], HE5_HDFE_DEG_RAD)); csLamda = cos(HE5_EHconvAng(parms[0], HE5_HDFE_DEG_RAD) - HE5_EHconvAng(parms[3], HE5_HDFE_DEG_RAD)); cs = csTheta * csTheta1; sn = snTheta * snTheta1; ans = cs + (2. * (1. + sn) + (cs * csLamda)) * csLamda; COMPLETION: return(ans); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_lamazDyDtheta | | | | DESCRIPTION: Partial derivative along longitude line for Lambert Azimuthal | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | double Dy/D(theta) for LAMAZ projection | | | | INPUTS: | | parms double Parameters defining partial derivative | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | END_PROLOG | -----------------------------------------------------------------------------*/ double HE5_lamazDyDtheta(double parms[]) { double ans = 0.; double snTheta = 0.; double csTheta = 0.; double snTheta1 = 0.; double csTheta1 = 0.; double csLamda = 0.; double sn2 = 0.; double cs2 = 0.; double sndiff = 0.; herr_t status = FAIL; CHECKPOINTER(parms); snTheta = sin(HE5_EHconvAng(parms[0], HE5_HDFE_DEG_RAD)); csTheta = cos(HE5_EHconvAng(parms[0], HE5_HDFE_DEG_RAD)); snTheta1 = sin(HE5_EHconvAng(parms[1], HE5_HDFE_DEG_RAD)); csTheta1 = cos(HE5_EHconvAng(parms[1], HE5_HDFE_DEG_RAD)); csLamda = cos(HE5_EHconvAng(parms[2], HE5_HDFE_DEG_RAD) - HE5_EHconvAng(parms[3], HE5_HDFE_DEG_RAD)); sn2 = snTheta1 * snTheta; cs2 = csTheta1 * csTheta; sndiff = snTheta1 - snTheta; ans = cs2 * (sn2 * (1. + (csLamda * csLamda)) + 2.) + csLamda * (2. * (1. + sn2 * sn2) - (sndiff * sndiff)); COMPLETION: return(ans); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_homDyDtheta | | | | DESCRIPTION: Partial derivative along longitude line for Oblique Mercator | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | double Dx/D(theta) for HOM projection | | | | INPUTS: | | parms double Parameters defining partial derivative | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | END_PROLOG | -----------------------------------------------------------------------------*/ double HE5_homDyDtheta(double parms[]) { double ans = 0.; double tnTheta = 0.; double tnTheta1 = 0.; double snLamda = 0.; herr_t status = FAIL; CHECKPOINTER(parms); tnTheta = tan(HE5_EHconvAng(parms[0], HE5_HDFE_DEG_RAD)); tnTheta1 = tan(HE5_EHconvAng(parms[1], HE5_HDFE_DEG_RAD)); snLamda = cos(HE5_EHconvAng(parms[2], HE5_HDFE_DEG_RAD) - HE5_EHconvAng(parms[3], HE5_HDFE_DEG_RAD)); ans = tnTheta * snLamda + tnTheta1; COMPLETION: return(ans); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDtangentpnts | | | | DESCRIPTION: Finds tangent points along lon/lat lines | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | projcode int Projection code | | projparm double Projection parameters | | cornerlon double dec deg Longitude of opposite corners of box | | cornerlat double dec deg Latitude of opposite corners of box | | longitude double dec deg Longitude of points to check | | latitude double dec deg Latitude of points to check | | | | OUTPUTS: | | npnts long Number of points to check in subset | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A.Muslimov Changed the return type from intn to int . | | 3/16/00 A.Muslimov Added Abe Taaheri's update (MERCATOR and ALBERS | | projections) from HDF-EOSv2. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | May 04 S.Zhao Added a case for GEO projections. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_GDtangentpnts(int projcode, double projparm[], double cornerlon[], double cornerlat[], double longitude[], double latitude[], long *npnts) { herr_t status = FAIL;/* return status variable */ int i; /* Loop index */ double lonrad = 0.;/* Longitude (radians) */ double latrad = 0.;/* Latitude (radians) */ double cs[4]={0.,0.,0.,0.};/* Cosine array */ double sn[4]={0.,0.,0.,0.};/* Sine array */ double csTest = 0.;/* Cosine test value */ double snTest = 0.;/* Sine test value */ double crs01 = 0.;/* Cross product */ double crsTest[2]= {0.,0.};/* Cross product array */ double longPol = 0.;/* Longitude beneath pole */ double minLat = 0.;/* Minimum latitude */ double bisectParm[4]={0.,0.,0.,0.};/* Bisection parms */ double tanLat = 0.;/* Tangent latitude */ double tanLon = 0.;/* Tangent lontitude */ double dotPrd = 0.;/* Dot product */ double centMerd = 0.;/* Central Meridian */ double orgLat = 0.;/* Latitude of origin */ double dpi = 0.;/* Double precision pi */ double HE5_lamazDxDtheta(double *);/* Lambert Azimuthal Dx/Dtheta */ double HE5_lamazDxDlamda(double *);/* Lambert Azimuthal Dx/Dlamda */ double HE5_lamazDyDtheta(double *);/* Lambert Azimuthal Dy/Dtheta */ double HE5_homDyDtheta(double *); /* Oblique Mercator Dy/Dtheta */ char *errbuf; /* Buffer for error message */ CHECKPOINTER(projparm); CHECKPOINTER(cornerlon); CHECKPOINTER(cornerlat); CHECKPOINTER(longitude); CHECKPOINTER(latitude); /* Allocate memory for error message buffer */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDtangentpnts", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Conpute pi (double precsion) */ /* ---------------------------- */ dpi = atan(1.) * 4.; switch (projcode) { case HE5_GCTP_GEO: { /* No need for tangent points, since GEO projection is rectangular */ } break; case HE5_GCTP_MERCAT: { /* No need for tangent points, since MERCAT projection is rectangular */ } break; case HE5_GCTP_BCEA: { /* No need for tangent points, since BCEA projection is rectangular */ } break; case HE5_GCTP_CEA: { /* No need for tangent points, since CEA projection is rectangular */ } break; case HE5_GCTP_PS: { /* Add "xy axis" points for Polar Stereographic if necessary */ /* --------------------------------------------------------- */ /* Get minimum of corner latitudes */ /* ------------------------------- */ minLat = (fabs(cornerlat[0]) <= fabs(cornerlat[1])) ? cornerlat[0] : cornerlat[1]; /* Compute sine and cosine of corner longitudes */ /* -------------------------------------------- */ for (i = 0; i < 2; i++) { lonrad = HE5_EHconvAng(cornerlon[i], HE5_HDFE_DEG_RAD); cs[i] = cos(lonrad); sn[i] = sin(lonrad); } /* Compute cross product */ /* --------------------- */ crs01 = cs[0] * sn[1] - cs[1] * sn[0]; /* Convert longitude beneath pole from DMS to DEG */ /* ---------------------------------------------- */ longPol = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_RAD); for (i = 0; i < 4; i++) { csTest = cos(longPol); snTest = sin(longPol); crsTest[0] = cs[0] * snTest - csTest * sn[0]; crsTest[1] = cs[1] * snTest - csTest * sn[1]; if ((crs01 > 0 && crsTest[0] > 0 && crsTest[1] < 0) || (crs01 < 0 && crsTest[0] < 0 && crsTest[1] < 0) || (crs01 < 0 && crsTest[0] > 0 && crsTest[1] < 0) || (crs01 < 0 && crsTest[0] > 0 && crsTest[1] > 0)) { longitude[*npnts] = HE5_EHconvAng(longPol, HE5_HDFE_RAD_DEG); latitude[*npnts] = minLat; (*npnts)++; } longPol += 0.5 * dpi; } } break; case HE5_GCTP_LAMAZ: { if ((long)projparm[5] == +90000000 || (long)projparm[5] == -90000000) { /* Add "xy axis" points for Polar Lambert Azimuthal */ /* ------------------------------------------------ */ minLat = (fabs(cornerlat[0]) <= fabs(cornerlat[1])) ? cornerlat[0] : cornerlat[1]; for (i = 0; i < 2; i++) { lonrad = HE5_EHconvAng(cornerlon[i], HE5_HDFE_DEG_RAD); cs[i] = cos(lonrad); sn[i] = sin(lonrad); } crs01 = cs[0] * sn[1] - cs[1] * sn[0]; longPol = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_RAD); for (i = 0; i < 4; i++) { csTest = cos(longPol); snTest = sin(longPol); crsTest[0] = cs[0] * snTest - csTest * sn[0]; crsTest[1] = cs[1] * snTest - csTest * sn[1]; if ((crs01 > 0 && crsTest[0] > 0 && crsTest[1] < 0) || (crs01 < 0 && crsTest[0] < 0 && crsTest[1] < 0) || (crs01 < 0 && crsTest[0] > 0 && crsTest[1] < 0) || (crs01 < 0 && crsTest[0] > 0 && crsTest[1] > 0)) { longitude[*npnts] = HE5_EHconvAng(longPol, HE5_HDFE_RAD_DEG); latitude[*npnts] = minLat; (*npnts)++; } longPol += 0.5 * dpi; } } else if ((long)projparm[5] == 0) { /* Add "Equator" points for Equatorial Lambert Azimuthal */ /* ----------------------------------------------------- */ if (cornerlat[0] * cornerlat[1] < 0) { longitude[4] = cornerlon[0]; latitude[4] = 0; longitude[5] = cornerlon[1]; latitude[5] = 0; *npnts = 6; } } else { /* Add tangent points for Oblique Lambert Azimuthal */ /* ------------------------------------------------ */ bisectParm[0] = HE5_EHconvAng(projparm[5], HE5_HDFE_DMS_DEG); bisectParm[2] = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_DEG); /* Tangent to y-axis along longitude */ /* --------------------------------- */ for (i = 0; i < 2; i++) { bisectParm[1] = cornerlon[i]; if (HE5_EHbisect(HE5_lamazDxDtheta, bisectParm, 3, cornerlat[0], cornerlat[1], 0.0001, &tanLat) == 0) { longitude[*npnts] = cornerlon[i]; latitude[*npnts] = tanLat; (*npnts)++; } } /* Tangent to y-axis along latitude */ /* -------------------------------- */ for (i = 0; i < 2; i++) { bisectParm[1] = cornerlat[i]; if (HE5_EHbisect(HE5_lamazDxDlamda, bisectParm, 3, cornerlon[0], cornerlon[1], 0.0001, &tanLon) == 0) { longitude[*npnts] = tanLon; latitude[*npnts] = cornerlat[i]; (*npnts)++; } } /* Tangent to x-axis along longitude */ /* --------------------------------- */ for (i = 0; i < 2; i++) { bisectParm[1] = cornerlon[i]; if (HE5_EHbisect(HE5_lamazDyDtheta, bisectParm, 3, cornerlat[0], cornerlat[1], 0.0001, &tanLat) == 0) { longitude[*npnts] = cornerlon[i]; latitude[*npnts] = tanLat; (*npnts)++; } } /* Tangent to x-axis along latitude */ /* -------------------------------- */ for (i = 0; i < 2; i++) { lonrad = HE5_EHconvAng(cornerlon[i], HE5_HDFE_DEG_RAD); cs[i] = cos(lonrad); sn[i] = sin(lonrad); } crs01 = cs[0] * sn[1] - cs[1] * sn[0]; longPol = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_RAD); for (i = 0; i < 2; i++) { csTest = cos(longPol); snTest = sin(longPol); crsTest[0] = cs[0] * snTest - csTest * sn[0]; crsTest[1] = cs[1] * snTest - csTest * sn[1]; if ((crs01 > 0 && crsTest[0] > 0 && crsTest[1] < 0) || (crs01 < 0 && crsTest[0] < 0 && crsTest[1] < 0) || (crs01 < 0 && crsTest[0] > 0 && crsTest[1] < 0) || (crs01 < 0 && crsTest[0] > 0 && crsTest[1] > 0)) { longitude[*npnts] = HE5_EHconvAng(longPol, HE5_HDFE_RAD_DEG); latitude[*npnts] = cornerlat[0]; (*npnts)++; longitude[*npnts] = HE5_EHconvAng(longPol, HE5_HDFE_RAD_DEG); latitude[*npnts] = cornerlat[1]; (*npnts)++; } longPol += dpi; } } } break; case HE5_GCTP_GOOD: { /* Add "Equator" points for Goode Homolosine if necessary */ /* ------------------------------------------------------ */ if (cornerlat[0] * cornerlat[1] < 0) { longitude[4] = cornerlon[0]; latitude[4] = 0; longitude[5] = cornerlon[1]; latitude[5] = 0; *npnts = 6; } } break; case HE5_GCTP_LAMCC: { /* Compute sine and cosine of corner longitudes */ /* -------------------------------------------- */ for (i = 0; i < 2; i++) { lonrad = HE5_EHconvAng(cornerlon[i], HE5_HDFE_DEG_RAD); cs[i] = cos(lonrad); sn[i] = sin(lonrad); } /* Compute dot product */ /* ------------------- */ dotPrd = cs[0] * cs[1] + sn[0] * sn[1]; /* Convert central meridian (DMS to DEG) & compute sin & cos */ /* --------------------------------------------------------- */ centMerd = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_DEG); lonrad = HE5_EHconvAng(centMerd, HE5_HDFE_DEG_RAD); cs[1] = cos(lonrad); sn[1] = sin(lonrad); /* If box brackets central meridian ... */ /* ------------------------------------ */ if (cs[0] * cs[1] + sn[0] * sn[1] > dotPrd) { latitude[4] = cornerlat[0]; longitude[4] = centMerd; latitude[5] = cornerlat[1]; longitude[5] = centMerd; *npnts = 6; } } break; case HE5_GCTP_ALBERS: { /* Compute sine and cosine of corner longitudes */ /* -------------------------------------------- */ for (i = 0; i < 2; i++) { lonrad = HE5_EHconvAng(cornerlon[i], HE5_HDFE_DEG_RAD); cs[i] = cos(lonrad); sn[i] = sin(lonrad); } /* Compute dot product */ /* ------------------- */ dotPrd = cs[0] * cs[1] + sn[0] * sn[1]; /* Convert central meridian (DMS to DEG) & compute sin & cos */ /* --------------------------------------------------------- */ centMerd = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_DEG); lonrad = HE5_EHconvAng(centMerd, HE5_HDFE_DEG_RAD); cs[1] = cos(lonrad); sn[1] = sin(lonrad); /* If box brackets central meridian ... */ /* ------------------------------------ */ if (cs[0] * cs[1] + sn[0] * sn[1] > dotPrd) { latitude[4] = cornerlat[0]; longitude[4] = centMerd; latitude[5] = cornerlat[1]; longitude[5] = centMerd; *npnts = 6; } } break; case HE5_GCTP_POLYC: { /* Compute sine and cosine of corner longitudes */ /* -------------------------------------------- */ for (i = 0; i < 2; i++) { lonrad = HE5_EHconvAng(cornerlon[i], HE5_HDFE_DEG_RAD); cs[i] = cos(lonrad); sn[i] = sin(lonrad); } /* Compute dot product */ /* ------------------- */ dotPrd = cs[0] * cs[1] + sn[0] * sn[1]; /* Convert central meridian (DMS to DEG) & compute sin & cos */ /* --------------------------------------------------------- */ centMerd = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_DEG); lonrad = HE5_EHconvAng(centMerd, HE5_HDFE_DEG_RAD); cs[1] = cos(lonrad); sn[1] = sin(lonrad); /* If box brackets central meridian ... */ /* ------------------------------------ */ if (cs[0] * cs[1] + sn[0] * sn[1] > dotPrd) { latitude[4] = cornerlat[0]; longitude[4] = centMerd; latitude[5] = cornerlat[1]; longitude[5] = centMerd; *npnts = 6; } } break; case HE5_GCTP_TM: { /* Compute sine and cosine of corner longitudes */ /* -------------------------------------------- */ for (i = 0; i < 2; i++) { lonrad = HE5_EHconvAng(cornerlon[i], HE5_HDFE_DEG_RAD); cs[i] = cos(lonrad); sn[i] = sin(lonrad); } /* Compute dot product */ /* ------------------- */ dotPrd = cs[0] * cs[1] + sn[0] * sn[1]; for (i = -1; i <= 1; i++) { centMerd = HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_DEG); lonrad = HE5_EHconvAng(centMerd + 90 * i, HE5_HDFE_DEG_RAD); csTest = cos(lonrad); snTest = sin(lonrad); /* If box brackets meridian ... */ /* ---------------------------- */ if (csTest * cs[1] + snTest * sn[1] > dotPrd) { latitude[*npnts] = cornerlat[0]; longitude[*npnts] = centMerd; (*npnts)++; latitude[*npnts] = cornerlat[1]; longitude[*npnts] = centMerd; (*npnts)++; } } /* Compute sine and cosine of corner latitudes */ /* ------------------------------------------- */ for (i = 0; i < 2; i++) { latrad = HE5_EHconvAng(cornerlat[i], HE5_HDFE_DEG_RAD); cs[i] = cos(latrad); sn[i] = sin(latrad); } /* Compute dot product */ /* ------------------- */ dotPrd = cs[0] * cs[1] + sn[0] * sn[1]; /* Convert origin latitude (DMS to DEG) & compute sin & cos */ /* -------------------------------------------------------- */ orgLat = HE5_EHconvAng(projparm[5], HE5_HDFE_DMS_DEG); latrad = HE5_EHconvAng(orgLat, HE5_HDFE_DEG_RAD); cs[1] = cos(latrad); sn[1] = sin(latrad); /* If box brackets origin latitude ... */ /* ----------------------------------- */ if (cs[0] * cs[1] + sn[0] * sn[1] > dotPrd) { latitude[*npnts] = orgLat; longitude[*npnts] = cornerlon[0]; (*npnts)++; latitude[*npnts] = orgLat; longitude[*npnts] = cornerlon[1]; (*npnts)++; } } break; case HE5_GCTP_HOM: { /* Tangent to y-axis along longitude */ /* --------------------------------- */ if (projparm[12] == 0) { cs[0] = cos(HE5_EHconvAng(projparm[8], HE5_HDFE_DMS_RAD)); sn[0] = sin(HE5_EHconvAng(projparm[8], HE5_HDFE_DMS_RAD)); cs[1] = cos(HE5_EHconvAng(projparm[9], HE5_HDFE_DMS_RAD)); sn[1] = sin(HE5_EHconvAng(projparm[9], HE5_HDFE_DMS_RAD)); cs[2] = cos(HE5_EHconvAng(projparm[10], HE5_HDFE_DMS_RAD)); sn[2] = sin(HE5_EHconvAng(projparm[10], HE5_HDFE_DMS_RAD)); cs[3] = cos(HE5_EHconvAng(projparm[11], HE5_HDFE_DMS_RAD)); sn[3] = sin(HE5_EHconvAng(projparm[11], HE5_HDFE_DMS_RAD)); bisectParm[2] = atan2( (cs[1] * sn[3] * cs[0] - sn[1] * cs[3] * cs[2]), (sn[1] * cs[3] * sn[2] - cs[1] * sn[3] * sn[0])); bisectParm[0] = atan( (sin(bisectParm[3]) * sn[0] - cos(bisectParm[3]) * cs[0]) / (sn[1] / cs[1])); bisectParm[2] = bisectParm[3] + 0.5 * dpi; } else { cs[0] = cos(HE5_EHconvAng(projparm[3], HE5_HDFE_DMS_RAD)); sn[0] = sin(HE5_EHconvAng(projparm[3], HE5_HDFE_DMS_RAD)); cs[1] = cos(HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_RAD)); sn[1] = sin(HE5_EHconvAng(projparm[4], HE5_HDFE_DMS_RAD)); bisectParm[0] = asin(cs[1] * sn[0]); bisectParm[2] = atan2(-cs[0], (-sn[1] * sn[0])) + 0.5 * dpi; } for (i = 0; i < 2; i++) { bisectParm[1] = cornerlon[i]; if (HE5_EHbisect(HE5_homDyDtheta, bisectParm, 3, cornerlat[0], cornerlat[1], 0.0001, &tanLat) == 0) { longitude[*npnts] = cornerlon[i]; latitude[*npnts] = tanLat; (*npnts)++; } } } break; default: { if(projcode != HE5_GCTP_UTM) { status = FAIL; H5Epush(__FILE__, "HE5_GDtangentpnts", __LINE__, H5E_ARGS, H5E_BADVALUE, "Unknown projection code."); HE5_EHprint("Error: Unknown projection code, occured", __FILE__, __LINE__); } } break; } free(errbuf); COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefboxregion | | | | DESCRIPTION: Defines region for subsetting in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | regionID hid_t None Region ID | | | | INPUTS: | | gridID hid_t Grid structure ID | | cornerlon double dec deg Longitude of opposite corners of box | | cornerlat double dec deg Latitude of opposite corners of box | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/22/99 A.Muslimov Changed the type of return value from intn to hid_t.| | Added error handling after the function calls. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_GDdefboxregion(hid_t gridID, double cornerlon[], double cornerlat[]) { hid_t regionID = FAIL;/* Region ID (return value) */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t i; /* Loop index */ herr_t status = FAIL;/* routine return status variable */ int j; /* Loop index */ int projcode = FAIL;/* Projection code */ int zonecode = FAIL;/* Zone code */ int spherecode=FAIL;/* Sphere code */ long idx = FAIL;/* Grid index */ long xdimsize = 0; /* XDim size */ long ydimsize = 0; /* YDim size */ long row[32]; /* Row array */ long col[32]; /* Column array */ long minCol = 0; /* Minimun column value */ long minRow = 0; /* Minimun row value */ long maxCol = 0; /* Maximun column value */ long maxRow = 0; /* Maximun row value */ long npnts = 4; /* No. of boundary (edge & tangent) pnts */ double longitude[32]; /* Longitude array */ double latitude[32]; /* Latitude array */ double upleftpt[2]={0.,0.}; /* Upper left pt coordinates */ double lowrightpt[2]={0.,0.};/* Lower right pt coordinates */ double projparm[16]; /* Projection parameters */ double xscale = 0.0;/* X scale */ double yscale = 0.0;/* Y scale */ double lonrad0 = 0.0;/* Longitude of upper left point (radians) */ double latrad0 = 0.0;/* Latitude of upper left point (radians) */ double lonrad2 = 0.0;/* Longitude of point (radians) */ double latrad2 = 0.0;/* Latitude of point (radians) */ double lon[2], lat[2]; double xcor[2], ycor[2]; double upleftpt_m[2]; double xmtr[2], ymtr[2]; int nlatlon; /* Used for SOM projection */ long blockindexstart = -1; long blockindexstop = -1; double offset[180]; char *errbuf=(char *)NULL; /* Buffer for error message */ HE5_LOCK; CHECKPOINTER(cornerlat); CHECKPOINTER(cornerlon); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdefboxregion", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get grid info */ /* ------------- */ status = HE5_GDgridinfo(gridID, &xdimsize, &ydimsize, upleftpt, lowrightpt); if (status == FAIL) { regionID = FAIL; sprintf(errbuf, "Failed to get grid information.\n" ); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (regionID); } /* Make sure that xdimsize or ydimsize != 0 */ /* ---------------------------------------- */ if ( xdimsize == 0 || ydimsize == 0) { regionID = FAIL; sprintf(errbuf, "Zero values of \"xdimsize\" and \"ydimsize\".\n" ); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (regionID); } /* Initialize projparm[] array */ /* --------------------------- */ for (j = 0; j < 16; j++) projparm[ j ] = 0.; /* Get proj info */ /* ------------- */ status = HE5_GDprojinfo(gridID, &projcode, &zonecode, &spherecode, projparm); /* If no projection code defined then bail */ /* --------------------------------------- */ if (projcode == FAIL) { regionID = FAIL; sprintf(errbuf,"No projection code is defined.\n" ); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (regionID); } /* Get default values for upleft and lowright if necessary */ /* ------------------------------------------------------- */ if (upleftpt[0] == 0 && upleftpt[1] == 0 && lowrightpt[0] == 0 && lowrightpt[1] == 0) { status = HE5_GDgetdefaults(projcode, zonecode, projparm, spherecode, upleftpt, lowrightpt); if (status == FAIL) { regionID = FAIL; sprintf(errbuf,"Failed to get default values for uplft and lowrght points.\n" ); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (regionID); } } /* Fill-up longitude and latitude arrays */ /* ------------------------------------- */ longitude[0] = cornerlon[0]; latitude[0] = cornerlat[0]; longitude[1] = cornerlon[0]; latitude[1] = cornerlat[1]; longitude[2] = cornerlon[1]; latitude[2] = cornerlat[0]; longitude[3] = cornerlon[1]; latitude[3] = cornerlat[1]; /* Find additional tangent points from GDtangentpnts */ /* ------------------------------------------------- */ status = HE5_GDtangentpnts(projcode, projparm, cornerlon, cornerlat, longitude, latitude, &npnts); if ( status == FAIL ) { sprintf(errbuf,"Failed to find additional tangent points.\n" ); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Initialize row[]/col[] arrays */ /* ----------------------------- */ for (j = 0; j < 32; j++) { row[j] = 0; col[j] = 0; } /* Convert from lon/lat to row/col */ /* ------------------------------- */ status = HE5_GDll2ij(projcode, zonecode, projparm, spherecode,xdimsize, ydimsize, upleftpt, lowrightpt,npnts, longitude, latitude, row, col, NULL, NULL); if ( status == FAIL ) { sprintf(errbuf, "Cannot convert from lon/lat to row/col.\n" ); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Find min/max values for row & col */ /* --------------------------------- */ minCol = col[0]; minRow = row[0]; maxCol = col[0]; maxRow = row[0]; for (i = 1; i < npnts; i++) { if (col[i] < minCol) { minCol = col[i]; } if (col[i] > maxCol) { maxCol = col[i]; } if (row[i] < minRow) { minRow = row[i]; } if (row[i] > maxRow) { maxRow = row[i]; } } /* "Clamp" if outside Grid */ /* ----------------------- */ minCol = (minCol < 0) ? 0 : minCol; minRow = (minRow < 0) ? 0 : minRow; maxCol = (maxCol >= xdimsize) ? xdimsize - 1 : maxCol; maxRow = (maxRow >= ydimsize) ? ydimsize - 1 : maxRow; /* Check whether subset region is outside grid region */ /* -------------------------------------------------- */ if (minCol >= xdimsize || minRow >= ydimsize || maxCol < 0 || maxRow < 0 ) { regionID = FAIL; sprintf(errbuf, "Subset Region outside of Grid Region."); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(regionID); } else { /* Store grid region info */ /* ---------------------- */ for (i = 0; i < HE5_NGRIDREGN; i++) { /* Find first empty grid region */ /* ---------------------------- */ if (HE5_GDXRegion[i] == 0) { /* Allocate space for grid region entry */ /* ------------------------------------ */ HE5_GDXRegion[i] = (struct HE5_gridRegion *)calloc(1, sizeof(struct HE5_gridRegion)); if(HE5_GDXRegion[i] == NULL) { regionID = FAIL; sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(regionID); } /* Store file and grid ID */ /* ---------------------- */ HE5_GDXRegion[i]->fid = fid; HE5_GDXRegion[i]->gridID = gridID; /* Initialize vertical subset entries to FAIL */ /* ------------------------------------------ */ for (j = 0; j < HE5_DTSETRANKMAX; j++) { HE5_GDXRegion[ i ]->StartVertical[j] = FAIL; HE5_GDXRegion[ i ]->StopVertical[j] = FAIL; } /* Store start & count along x & y */ /* ------------------------------- */ HE5_GDXRegion[ i ]->xStart = minCol; HE5_GDXRegion[ i ]->xCount = maxCol - minCol + 1; HE5_GDXRegion[ i ]->yStart = minRow; HE5_GDXRegion[ i ]->yCount = maxRow - minRow + 1; /* Store upleft and lowright points of subset region */ /* ------------------------------------------------- */ if (projcode == HE5_GCTP_GEO) { /* GEO projection */ /* -------------- */ /* Convert upleft & lowright lon from DMS to radians */ /* ------------------------------------------------- */ lonrad0 = HE5_EHconvAng(upleftpt[0], HE5_HDFE_DMS_RAD); lonrad2 = HE5_EHconvAng(lowrightpt[0], HE5_HDFE_DMS_RAD); /* Compute X scale */ /* --------------- */ xscale = (lonrad2 - lonrad0) / xdimsize; /* Convert upleft & lowright lat from DMS to radians */ /* ------------------------------------------------- */ latrad0 = HE5_EHconvAng(upleftpt[1], HE5_HDFE_DMS_RAD); latrad2 = HE5_EHconvAng(lowrightpt[1], HE5_HDFE_DMS_RAD); /* Compute Y scale */ /* --------------- */ yscale = (latrad2 - latrad0) / ydimsize; /* MinCol -> radians -> DMS -> upleftpt[0] */ /* --------------------------------------- */ HE5_GDXRegion[i]->upleftpt[0] = HE5_EHconvAng(lonrad0 + xscale * minCol, HE5_HDFE_RAD_DMS); /* MinRow -> radians -> DMS -> upleftpt[1] */ /* --------------------------------------- */ HE5_GDXRegion[i]->upleftpt[1] = HE5_EHconvAng(latrad0 + yscale * minRow, HE5_HDFE_RAD_DMS); /* MinCol + 1 -> radians -> DMS -> lowrightpt[0] */ /* --------------------------------------------- */ HE5_GDXRegion[i]->lowrightpt[0] = HE5_EHconvAng(lonrad0 + xscale * (maxCol + 1), HE5_HDFE_RAD_DMS); /* MinRow + 1 -> radians -> DMS -> lowrightpt[1] */ /* --------------------------------------------- */ HE5_GDXRegion[i]->lowrightpt[1] = HE5_EHconvAng(latrad0 + yscale * (maxRow + 1), HE5_HDFE_RAD_DMS); } else if (projcode == HE5_GCTP_BCEA) { /* BCEA projection */ /* -------------- */ nlatlon = 2; lon[0] = upleftpt[0]; lon[1] = lowrightpt[0]; lat[0] = upleftpt[1]; lat[1] = lowrightpt[1]; status = HE5_GDll2mm_cea(projcode,zonecode,spherecode,projparm, xdimsize, ydimsize,upleftpt, lowrightpt,nlatlon, lon, lat, xcor, ycor, &xscale, &yscale); upleftpt_m[0] = xcor[0]; upleftpt_m[1] = ycor[0]; if (status == FAIL) { sprintf(errbuf, "Error converting ."); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* MinCol -> meters -> upleftpt[0] */ /* ------------------------------- */ xmtr[0] = upleftpt_m[0] + xscale * minCol; /* MinRow -> meters -> upleftpt[1] */ /* ------------------------------- */ ymtr[0] = upleftpt_m[1] + yscale * minRow; /* MinCol + 1 -> meters -> lowrightpt[0] */ /* ------------------------------------- */ xmtr[1] = upleftpt_m[0] + xscale * (maxCol + 1); /* MinRow + 1 -> meters -> lowrightpt[1] */ /* ------------------------------------- */ ymtr[1] = upleftpt_m[1] + yscale * (maxRow + 1); /* Convert upleft & lowright lon from DMS to radians */ /* ------------------------------------------------- */ npnts = 2; status = HE5_GDmm2ll_cea(projcode, zonecode, spherecode, projparm, xdimsize, ydimsize, upleftpt, lowrightpt, npnts, xmtr, ymtr, longitude, latitude); if (status == -1) { sprintf(errbuf, "Subsetting failed "); H5Epush(__FILE__, "HE5_GDdefboxregion", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return (status); } HE5_GDXRegion[i]->upleftpt[0] = longitude[0]; HE5_GDXRegion[i]->upleftpt[1] = latitude[0]; HE5_GDXRegion[i]->lowrightpt[0] = longitude[1]; HE5_GDXRegion[i]->lowrightpt[1] = latitude[1]; } else if (projcode == HE5_GCTP_SOM) { /* Store start & count along x & y */ /* ------------------------------- */ HE5_GDXRegion[i]->xStart = 0; HE5_GDXRegion[i]->xCount = xdimsize; HE5_GDXRegion[i]->yStart = 0; HE5_GDXRegion[i]->yCount = ydimsize; HE5_GDXRegion[i]->somStart = blockindexstart; HE5_GDXRegion[i]->somCount = blockindexstop - blockindexstart + 1; /* Store upleft and lowright points of subset region */ /* ------------------------------------------------- */ if (blockindexstart == 0) { HE5_GDXRegion[i]->upleftpt[0] = upleftpt[0]; HE5_GDXRegion[i]->upleftpt[1] = upleftpt[1]; HE5_GDXRegion[i]->lowrightpt[0] = lowrightpt[0]; HE5_GDXRegion[i]->lowrightpt[1] = lowrightpt[1]; } else { HE5_GDXRegion[i]->upleftpt[0] = (lowrightpt[0] - upleftpt[0])* (offset[blockindexstart-1]/xdimsize) + upleftpt[0]; HE5_GDXRegion[i]->upleftpt[1] = (lowrightpt[1] - upleftpt[1])* (blockindexstart+1-1) + upleftpt[1]; HE5_GDXRegion[i]->lowrightpt[0] = (lowrightpt[0] - upleftpt[0])* (offset[blockindexstart-1]/xdimsize) + lowrightpt[0]; HE5_GDXRegion[i]->lowrightpt[1] = (lowrightpt[1] - upleftpt[1])* (blockindexstart+1-1) + lowrightpt[1]; } } else { /* Non-GEO, Non-BCEA projections */ /* ------------------------------ */ /* Compute X & Y scale */ /* ------------------- */ xscale = (lowrightpt[0] - upleftpt[0]) / xdimsize; yscale = (lowrightpt[1] - upleftpt[1]) / ydimsize; /* MinCol -> meters -> upleftpt[0] */ /* ------------------------------- */ HE5_GDXRegion[i]->upleftpt[0] = upleftpt[0] + xscale * minCol; /* MinRow -> meters -> upleftpt[1] */ /* ------------------------------- */ HE5_GDXRegion[i]->upleftpt[1] = upleftpt[1] + yscale * minRow; /* MinCol + 1 -> meters -> lowrightpt[0] */ /* ------------------------------------- */ HE5_GDXRegion[i]->lowrightpt[0] = upleftpt[0] + xscale * (maxCol + 1); /* MinRow + 1 -> meters -> lowrightpt[1] */ /* ------------------------------------- */ HE5_GDXRegion[i]->lowrightpt[1] = upleftpt[1] + yscale * (maxRow + 1); } /* Store region ID */ /* --------------- */ regionID = i; break; } } } free(errbuf); errbuf = NULL; COMPLETION: HE5_UNLOCK; return (regionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDregioninfo | | | | DESCRIPTION: Retrieves size of region in bytes. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | regionID hid_t Region ID | | fieldname char* Fieldname | | | | OUTPUTS: | | ntype hid_t field number types | | rank int field rank | | dims hsize_t dimensions of field region | | size long size in bytes of field region | | upleftpt double Upper left corner coord for region | | lowrightpt double Lower right corner coord for region | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/24/99 A.Muslimov Changed the return type from intn to int . | | 9/23/99 A.Muslimov Changed the type of gridID, regionID from int32_t | | to hid_t.Removed redundant if(status == 0){} blocks.| | Added error handling after the function calls. | | Cleaned up minor things. | | 5/10/00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | Jan 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | June 04 S.Zhao Enabled to subset on a one-dimensional field. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDregioninfo(hid_t gridID, hid_t regionID, const char *fieldname, hid_t *ntype, int *rank, hsize_t dims[], long *size, double upleftpt[], double lowrightpt[]) { herr_t status = FAIL;/* routine return status variable */ int j; /* Loop index */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Grid index */ long index = FAIL;/* Dimension index */ char dimlist[HE5_HDFE_DIMBUFSIZE];/* Dimension list */ char *errMesg = "Vertical Dimension Not Found: \"%s\".\n"; char *errM1 = "Both \"XDim\" and \"YDim\" must be present "; char *errM2 = "in the dimension list for \"%s\".\n"; char *errbuf= (char *)NULL; /* Error buffer */ CHECKPOINTER(fieldname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDregioninfo", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); free(errbuf); return(status); } /* Check for valid region ID */ /* ------------------------- */ if (regionID < 0 || regionID >= HE5_NGRIDREGN) { status = FAIL; sprintf(errbuf, "Invalid Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Check for active region ID */ /* -------------------------- */ if (HE5_GDXRegion[regionID] == 0) { status = FAIL; sprintf(errbuf, "Inactive Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Check that region defined for this file */ /* --------------------------------------- */ if (HE5_GDXRegion[regionID]->fid != fid) { status = FAIL; sprintf(errbuf, "Region is not defined for this file.\n"); H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Check that region defined for this grid */ /* --------------------------------------- */ if (HE5_GDXRegion[regionID]->gridID != gridID) { status = FAIL; sprintf(errbuf, "Region is not defined for this Grid.\n"); H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Check for valid fieldname */ /* ------------------------- */ status = HE5_GDfieldinfo(gridID, fieldname, rank, dims, ntype, dimlist, NULL); if (status == FAIL) { /* Fieldname not found in grid */ /* --------------------------- */ sprintf(errbuf, "Fieldname \"%s\" not found.\n", fieldname); H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } else if (*rank > 1) { /* "XDim" and/or "YDim" not found */ /* ------------------------------ */ if ( HE5_EHstrwithin("XDim", dimlist, ',') == FAIL || HE5_EHstrwithin("YDim", dimlist, ',') == FAIL) { status = FAIL; sprintf(errbuf, "%s%s%s", errM1, errM2, fieldname); H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } /* If no problems ... */ /* ------------------ */ if (*rank > 1) { /* Load XDim dimension from region entry */ /* ------------------------------------- */ if (HE5_GDXRegion[regionID]->xCount != 0) { dims[ HE5_EHstrwithin("XDim", dimlist, ',') ] = (hsize_t)HE5_GDXRegion[regionID]->xCount; } /* Load YDim dimension from region entry */ /* ------------------------------------- */ if (HE5_GDXRegion[regionID]->yCount != 0) { dims[ HE5_EHstrwithin("YDim", dimlist, ',') ] = (hsize_t)HE5_GDXRegion[regionID]->yCount; } } /* Vertical Subset */ /* --------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) { /* If active vertical subset ... */ /* ----------------------------- */ if (HE5_GDXRegion[regionID]->StartVertical[j] != FAIL) { /* Find vertical dimension within dimlist */ /* -------------------------------------- */ index = HE5_EHstrwithin(HE5_GDXRegion[regionID]->DimNamePtr[j], dimlist, ','); /* If dimension found ... */ /* ---------------------- */ if (index != FAIL) { /* Compute dimension size */ /* ---------------------- */ dims[ index ] = HE5_GDXRegion[regionID]->StopVertical[j] - HE5_GDXRegion[regionID]->StartVertical[j] + 1; } else { /* Vertical dimension not found */ /* ---------------------------- */ status = FAIL; *size = FAIL; sprintf( errbuf, errMesg, HE5_GDXRegion[regionID]->DimNamePtr[j]); H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } } /* Compute number of total elements */ /* -------------------------------- */ *size = (long)dims[ 0 ]; for (j = 1; j < *rank; j++) *size *= (long)dims[j]; /* Multiply by size in bytes of numbertype */ /* --------------------------------------- */ *size *= (long)HE5_GDfielddatasize(gridID,fieldname); if(*size == 0) { status = FAIL; sprintf(errbuf, "Cannot get the data size of the data field.\n"); H5Epush(__FILE__, "HE5_GDregioninfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); free(errbuf); return(status); } /* Return upper left and lower right subset values */ /* ----------------------------------------------- */ upleftpt[0] = HE5_GDXRegion[regionID]->upleftpt[0]; upleftpt[1] = HE5_GDXRegion[regionID]->upleftpt[1]; lowrightpt[0] = HE5_GDXRegion[regionID]->lowrightpt[0]; lowrightpt[1] = HE5_GDXRegion[regionID]->lowrightpt[1]; free(errbuf); errbuf = NULL; COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgetfieldID | | | | DESCRIPTION: Return a data field ID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov Added error handling after the call to GDchkgdid(). | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_GDgetfieldID(hid_t gridID, const char *fieldname, hid_t *fieldID) { herr_t status = FAIL;/* routine return status variable */ int i; /* Loop index */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Grid index */ /* char *errbuf=(char *)NULL;*//* error message buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; CHECKPOINTER(fieldname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ /* errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDgetfieldID", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } */ /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDgetfieldID", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDgetfieldID", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ return(FAIL); } /* Loop through all data datasets in grid and get dataset name */ /* ----------------------------------------------------------- */ for (i = 0; i < HE5_GDXGrid[idx].nDFLD; i++) { if( strcmp(fieldname, HE5_GDXGrid[idx].ddataset[i].name) == 0 ) break; } /* Get field-related dataset ID */ /* ============================= */ *fieldID = HE5_GDXGrid[idx].ddataset[i].ID; /*free(errbuf);*/ COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDfielddatasize | | | | DESCRIPTION: Return size in bytes of a data field | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size size_t data type size in bytes | | | | INPUTS: | | | | OUTPUTS: | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | H5Dget_type | | H5Tget_size | | H5Tclose | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/28/99 A.Muslimov Added proper error handlings after the function | | calls. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static size_t HE5_GDfielddatasize(hid_t gridID, const char *fieldname) { size_t size = 0; /* return value, data type size in bytes */ herr_t status = FAIL;/* routine return status variable */ int i; /* Loop index */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t dtype = FAIL;/* datatype ID */ hid_t datasetid = FAIL;/* field dataset ID */ long idx = FAIL;/* Grid index */ char *errbuf=(char *)NULL;/* error message buffer */ CHECKPOINTER(fieldname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { size = 0; H5Epush(__FILE__, "HE5_GDfielddatasize", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(size); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDfielddatasize", &fid, &gid, &idx); if ( status == FAIL ) { size = 0; sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDfielddatasize", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(size); } /* Loop through all data datasets in grid */ /* -------------------------------------- */ for (i = 0; i < HE5_GDXGrid[idx].nDFLD; i++) { /* Get dataset name */ /* ---------------- */ if( strcmp(fieldname, HE5_GDXGrid[idx].ddataset[i].name) == 0 ) break; } /* Get dataset ID */ /* -------------- */ datasetid = HE5_GDXGrid[idx].ddataset[i].ID; dtype = H5Dget_type(datasetid); if ( dtype == FAIL ) { size = 0; sprintf(errbuf, "Cannot get data type ID.\n"); H5Epush(__FILE__, "HE5_GDfielddatasize", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(size); } /* Get data type size (bytes) */ /* -------------------------- */ size = H5Tget_size(dtype); if ( size == 0 ) { sprintf(errbuf, "Cannot retrieve data size.\n"); H5Epush(__FILE__, "HE5_GDfielddatasize", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(size); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(dtype); if ( status == FAIL ) { size = 0; sprintf(errbuf, "Cannot release datatype ID.\n"); H5Epush(__FILE__, "HE5_GDfielddatasize", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); errbuf = NULL; COMPLETION: return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDextractregion | | | | DESCRIPTION: Retrieves data from specified region. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | regionID hid_t Region ID | | fieldname char* Fieldname | | | | OUTPUTS: | | buffer void Data buffer containing subsetted region | | | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/23/99 A.Muslimov Changed the data type of gridID and regionID from | | int32_t to hid_t. Added proper error handling after | | the function calls. Removed redundant | | if(status==0){} brackets. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | June 04 S.Zhao Enabled to subset on a one-dimensional field. | | July 04 S.Zhao Set a default origin if HE5_GDorigininfo fails. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDextractregion(hid_t gridID, hid_t regionID, const char *fieldname, void *buffer) { herr_t status = FAIL; /* routine return status variable */ int i, j; /* Loop indices */ int rank = FAIL; /* Field rank */ int origincode=FAIL; /* Pixel origin code */ hid_t *ntype = (hid_t *)NULL; /* number types */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ long index = FAIL; /* Dimension index */ hssize_t start[HE5_DTSETRANKMAX]; /* Start array for data to read */ hsize_t edge[HE5_DTSETRANKMAX]; /* Edge array for data to read */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimensions */ char dimlist[HE5_HDFE_DIMBUFSIZE]; /* Dimension list */ char *errMesg = "Vertical Dimension Not Found: \"%s\".\n"; char *errM1 = "Both \"XDim\" and \"YDim\" must be present "; char *errM2 = "in the dimension list for \"%s\".\n"; char *errbuf = (char *)NULL; /* error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDextractregion", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Check for valid region ID */ /* ------------------------- */ if (regionID < 0 || regionID >= HE5_NGRIDREGN) { status = FAIL; sprintf(errbuf, "Invalid Region id: %d.\n", regionID); H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Check for active region ID */ /* -------------------------- */ if (HE5_GDXRegion[regionID] == 0) { status = FAIL; sprintf(errbuf, "Inactive Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Check that region defined for this file */ /* --------------------------------------- */ if (HE5_GDXRegion[regionID]->fid != fid) { status = FAIL; sprintf(errbuf, "Region is not defined for this file.\n"); H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Check that region defined for this grid */ /* --------------------------------------- */ if (HE5_GDXRegion[regionID]->gridID != gridID) { status = FAIL; sprintf(errbuf, "Region is not defined for this Grid.\n"); H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Check for valid fieldname */ /* ------------------------- */ ntype = (hid_t *)calloc(1, sizeof(hid_t)); status = HE5_GDfieldinfo(gridID, fieldname, &rank, dims, ntype, dimlist, NULL); if (status == FAIL) { /* Fieldname not found in grid */ /* --------------------------- */ sprintf(errbuf, "Fieldname \"%s\" not found.\n", fieldname); H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(ntype); return(status); } else if (rank > 1) { /* "XDim" and/or "YDim" not found */ /* ------------------------------ */ if ( HE5_EHstrwithin("XDim", dimlist, ',') == FAIL || HE5_EHstrwithin("YDim", dimlist, ',') == FAIL) { status = FAIL; sprintf(errbuf, "%s%s%s", errM1, errM2, fieldname); H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(ntype); return(status); } } /* Get origin order info */ /* --------------------- */ status = HE5_GDorigininfo(gridID, &origincode); if (status == FAIL) { /* Set a default origin code */ /* ------------------------- */ origincode = HE5_HDFE_GD_UL; } /* Initialize start & edge arrays */ /* ------------------------------ */ for (i = 0; i < HE5_DTSETRANKMAX; i++) { start[ i ] = 0; edge[ i ] = dims[ i ]; } if (rank > 1) { /* Set start & edge arrays for XDim */ /* -------------------------------- */ index = HE5_EHstrwithin("XDim", dimlist, ','); if (HE5_GDXRegion[regionID]->xCount != 0) { edge[index] = (hsize_t)HE5_GDXRegion[regionID]->xCount; start[index] = (hssize_t)HE5_GDXRegion[regionID]->xStart; } /* Adjust X-dim start if origin on right edge */ /* ------------------------------------------ */ if ((origincode & 1) == 1) { start[index] = dims[index] - (start[index] + edge[index]); } /* Set start & edge arrays for YDim */ /* -------------------------------- */ index = HE5_EHstrwithin("YDim", dimlist, ','); if (HE5_GDXRegion[regionID]->yCount != 0) { start[index] = (hssize_t)HE5_GDXRegion[regionID]->yStart; edge[index] = (hsize_t)HE5_GDXRegion[regionID]->yCount; } /* Adjust Y-dim start if origin on lower edge */ /* ------------------------------------------ */ if ((origincode & 2) == 2) { start[index] = dims[index] - (start[index] + edge[index]); } } /* Vertical Subset */ /* --------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) { /* If active vertical subset ... */ /* ----------------------------- */ if (HE5_GDXRegion[regionID]->StartVertical[j] != FAIL) { /* Find vertical dimension within dimlist */ /* -------------------------------------- */ index = HE5_EHstrwithin(HE5_GDXRegion[regionID]->DimNamePtr[j], dimlist, ','); /* If dimension found ... */ /* ---------------------- */ if (index != FAIL) { /* Compute start and edge for vertical dimension */ /* --------------------------------------------- */ start[index] = (hssize_t)HE5_GDXRegion[regionID]->StartVertical[j]; edge[index] = (hsize_t)(HE5_GDXRegion[regionID]->StopVertical[j] - HE5_GDXRegion[regionID]->StartVertical[j] + 1); } else { /* Vertical dimension not found */ /* ---------------------------- */ status = FAIL; sprintf(errbuf, errMesg, HE5_GDXRegion[regionID]->DimNamePtr[j]); H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(ntype); return(status); } } } /* Read into data buffer */ /* --------------------- */ status = HE5_GDreadfield(gridID, fieldname, start, NULL, edge, buffer); if (status == FAIL) { sprintf(errbuf, "Cannot read data for the \"%s\" data field into data buffer.\n", fieldname); H5Epush(__FILE__, "HE5_GDextractregion", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); errbuf = NULL; free(ntype); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdupregion | | | | DESCRIPTION: Duplicates a region | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | newRegionID hid_t New region ID | | | | INPUTS: | | oldRegionID hid_t Old region ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 98 Abe Taaheri changed *GDXRegion[i] = *GDXRegion[oldregionID]; | | to copy elements of structure one by one to avoid | | copying pointer for DimNamePtr to another place that| | causes "Freeing Unallocated Memory" in purify when | | using GDdetach | | 9/23/99 A.Muslimov Changed the data type for newregionID(return value) | | and oldregionID from int32_t to hid_t. | | 4/19/00 A.Muslimov Changed type of 'slendupregion' from long to size_t.| | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_GDdupregion(hid_t oldRegionID) { hid_t newRegionID = FAIL;/* New region ID (return value) */ hid_t i, j; /* Loop indices */ size_t slendupregion = 0;/* length of dimension name string */ /* Find first empty (inactive) region */ /* ---------------------------------- */ for (i = 0; i < HE5_NGRIDREGN; i++) { if (HE5_GDXRegion[i] == 0) { /* Allocate space for new grid region entry */ /* ---------------------------------------- */ HE5_GDXRegion[i] = (struct HE5_gridRegion *)calloc(1, sizeof(struct HE5_gridRegion)); if(HE5_GDXRegion[i] == NULL) { H5Epush(__FILE__, "HE5_GDdupregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Copy old region structure data to new region */ /* -------------------------------------------- */ HE5_GDXRegion[i]->fid = HE5_GDXRegion[oldRegionID]->fid; HE5_GDXRegion[i]->gridID = HE5_GDXRegion[oldRegionID]->gridID; HE5_GDXRegion[i]->xStart = HE5_GDXRegion[oldRegionID]->xStart; HE5_GDXRegion[i]->xCount = HE5_GDXRegion[oldRegionID]->xCount; HE5_GDXRegion[i]->yStart = HE5_GDXRegion[oldRegionID]->yStart; HE5_GDXRegion[i]->yCount = HE5_GDXRegion[oldRegionID]->yCount; HE5_GDXRegion[i]->upleftpt[0] = HE5_GDXRegion[oldRegionID]->upleftpt[0]; HE5_GDXRegion[i]->upleftpt[1] = HE5_GDXRegion[oldRegionID]->upleftpt[1]; HE5_GDXRegion[i]->lowrightpt[0] = HE5_GDXRegion[oldRegionID]->lowrightpt[0]; HE5_GDXRegion[i]->lowrightpt[1] = HE5_GDXRegion[oldRegionID]->lowrightpt[1]; for (j = 0; j < HE5_DTSETRANKMAX; j++) { HE5_GDXRegion[i]->StartVertical[j] = HE5_GDXRegion[oldRegionID]->StartVertical[j]; HE5_GDXRegion[i]->StopVertical[j] = HE5_GDXRegion[oldRegionID]->StopVertical[j]; } for (j = 0; j < HE5_DTSETRANKMAX; j++) { if(HE5_GDXRegion[oldRegionID]->DimNamePtr[j] != NULL) { slendupregion = strlen(HE5_GDXRegion[oldRegionID]->DimNamePtr[j]); HE5_GDXRegion[i]->DimNamePtr[j] = (char *) calloc( (slendupregion + 1), sizeof(char) ); strcpy(HE5_GDXRegion[i]->DimNamePtr[j],HE5_GDXRegion[oldRegionID]->DimNamePtr[j]); } } /* Define new region ID */ /* -------------------- */ newRegionID = i; break; } } return (newRegionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefvrtregion | | | | DESCRIPTION: Finds elements of a monotonic field within a vertical subset | | region. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | regionID hid_t None Region ID | | | | INPUTS: | | gridID hid_t Grid structure ID | | regionID hid_t Region ID | | vertObj char Vertical object to subset | | range double Vertical subsetting range | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/23/99 A.Muslimov Changed the data types of return value, gridID, and | | RegionID from int32_t to hid_t. Added error handling| | after the function calls. | | 10/18/99 A.Muslimov Replace memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 11/10/99 A.Muslimov In the call to GDreadfield() 3d and 5th arguments | | were passed as "NULL"s, which resulted in a core | | dump. To fix this bug, replaced them by start and | | edge, respectively. | | 04/19/00 A.Muslimov Changed type of 'slen' from long to size_t. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | Mar 04 S.Zhao Modified for supported field type. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ #define HE5_SETGRIDREG \ \ status = HE5_GDgridinfo(gridID, &xdimsize, &ydimsize, upleftpt, lowrightpt); \ for (k = 0; k < HE5_NGRIDREGN; k++) \ { \ if (HE5_GDXRegion[k] == 0) \ { \ HE5_GDXRegion[k] = (struct HE5_gridRegion *)calloc(1, sizeof(struct HE5_gridRegion)); \ HE5_GDXRegion[k]->fid = fid; \ HE5_GDXRegion[k]->gridID = gridID; \ HE5_GDXRegion[k]->xStart = 0; \ HE5_GDXRegion[k]->xCount = xdimsize; \ HE5_GDXRegion[k]->yStart = 0; \ HE5_GDXRegion[k]->yCount = ydimsize; \ HE5_GDXRegion[k]->upleftpt[0] = upleftpt[0]; \ HE5_GDXRegion[k]->upleftpt[1] = upleftpt[1]; \ HE5_GDXRegion[k]->lowrightpt[0] = lowrightpt[0]; \ HE5_GDXRegion[k]->lowrightpt[1] = lowrightpt[1]; \ regionID = k; \ for (j = 0; j < HE5_DTSETRANKMAX; j++) \ { \ HE5_GDXRegion[k]->StartVertical[j] = FAIL; \ HE5_GDXRegion[k]->StopVertical[j] = FAIL; \ } \ break; \ } \ } #define HE5_FILLVERTREG \ for (j = 0; j < HE5_DTSETRANKMAX; j++) \ { \ if (HE5_GDXRegion[regionID]->StartVertical[j] == FAIL) \ { \ HE5_GDXRegion[regionID]->StartVertical[j] = i; \ HE5_GDXRegion[regionID]->DimNamePtr[j] = (char *) calloc( (slen + 1),sizeof(char) ); \ memmove(HE5_GDXRegion[regionID]->DimNamePtr[j], dimlist, slen + 1); \ break; \ } \ } hid_t HE5_GDdefvrtregion(hid_t gridID, hid_t regionID, char *vertObj, double range[]) { herr_t status = FAIL; /* Return status variable */ int tmp = 999; /* Temporary flag */ int rank = FAIL; /* Dataset rank */ int vertINT= 0; int j; /* Loop index */ hid_t *nt = (hid_t *)NULL; /* number types */ unsigned char found = 0; /* "Found" flag */ hid_t k; /* loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t dtype = FAIL; /* Datatype ID */ hid_t fieldID= FAIL; /* Data field dataset ID */ size_t slen = 0; /* String length value */ size_t size = 0; /* Field datasize (bytes) */ long i; /* loop index */ long idx = FAIL; /* Grid index */ long xdimsize = 0; /* Size of "XDim" */ long ydimsize = 0; /* Size of "YDim" */ short vertSHORT= 0; /* Temp "short" variable */ float vertFLT = 0.; /* Temp "float" variable */ double vertDBL = 0.; /* Temp "double" variable */ double upleftpt[2]={0.,0.}; /* Upper left point */ double lowrightpt[2]={0.,0.}; /* Lower right point */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimension sizes array */ hssize_t start[HE5_DTSETRANKMAX]; /* Start array */ hsize_t edge[HE5_DTSETRANKMAX]; /* Edge array */ char *vertArr = (char *)NULL; /* Temp "char" variable */ char dimlist[HE5_HDFE_DIMBUFSIZE]; /* Dimension list */ char *errbuf = (char *)NULL; /* Error message buffer */ HE5_LOCK; CHECKPOINTER(vertObj); CHECKPOINTER(range); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Initialize arrays */ /* ----------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) { dims[ j ] = 0; start[ j ] = 0; edge[ j ] = 0; } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDdefvrtregion", &fid, &gid, &idx); if ( status == FAIL ) { regionID = FAIL; sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( regionID ); } memmove(dimlist, vertObj, 4); dimlist[4] = 0; if (strcmp(dimlist, "DIM:") == 0) { slen = strlen(vertObj) - 4; if (regionID == FAIL) { HE5_SETGRIDREG; } for (j = 0; j < HE5_DTSETRANKMAX; j++) { if (HE5_GDXRegion[regionID]->StartVertical[j] == FAIL) { HE5_GDXRegion[regionID]->StartVertical[j] = (long)range[0]; HE5_GDXRegion[regionID]->StopVertical[j] = (long)range[1]; HE5_GDXRegion[regionID]->DimNamePtr[j] = (char *) calloc( (slen + 1),sizeof(char) ); if(HE5_GDXRegion[regionID]->DimNamePtr[j] == NULL) { sprintf(errbuf,"Cannot allocate memory\n") ; H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf) ; HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } memmove(HE5_GDXRegion[regionID]->DimNamePtr[j],vertObj + 4, slen + 1); break; } } } else { nt = (hid_t *)calloc(1, sizeof(hid_t)); if (nt == (hid_t *)NULL ) { regionID = FAIL; sprintf(errbuf, "Cannot allocate memory for data type class ID.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(regionID); } status = HE5_GDfieldinfo(gridID, vertObj, &rank, dims, nt, dimlist,NULL); if (status == FAIL) { regionID = FAIL; sprintf(errbuf, "Vertical Field: \"%s\" not found.\n", vertObj); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(nt); return(regionID); } else { if (rank != 1) { regionID = FAIL; sprintf(errbuf, "Vertical Field: \"%s\" must be 1-dim.\n", vertObj); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(nt); return(regionID); } else { slen = strlen(dimlist); size = HE5_GDfielddatasize(gridID, vertObj); vertArr = (char *)calloc(dims[0], size); if(vertArr == NULL) { regionID = FAIL; sprintf(errbuf,"Cannot allocate memory\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); free(errbuf); free(nt); return(regionID); } /* ------------------------------------------------ */ /* Generate start[] and edge[] arrays to pass to the */ /* GDreadfield(). The NULL values are not */ /* allowed for the 3d and 5th argument */ /* of this function. (A.M) */ /* ------------------------------------------------ */ for( k = 0; k < rank; k++ ) { start[k] = 0; edge[k] = dims[k]; } status = HE5_GDreadfield(gridID, vertObj, start, NULL, edge, vertArr); if(status == FAIL) { regionID = FAIL; sprintf(errbuf, "Cannot read out data from the data field.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); free(errbuf); free(vertArr); free(nt); return(regionID); } /* Get field ID and field data type */ /* ------------------------------- */ status = HE5_GDgetfieldID(gridID, vertObj, &fieldID); if(status == FAIL) { regionID = FAIL; sprintf(errbuf, "Cannot get the data field ID.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); free(errbuf); free(vertArr); free(nt); return(regionID); } dtype = H5Dget_type(fieldID); if(dtype == FAIL) { regionID = FAIL; sprintf(errbuf, "Cannot get the data type of the data field.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); free(errbuf); free(vertArr); free(nt); return(regionID); } if ( H5Tequal( dtype, H5T_NATIVE_SHORT) || H5Tequal( dtype, H5T_STD_I16BE) || H5Tequal( dtype, H5T_STD_I16LE) ) tmp = 1; else if ( H5Tequal(dtype, H5T_NATIVE_INT) || H5Tequal(dtype, H5T_STD_I32BE) || H5Tequal(dtype, H5T_STD_I32LE) ) tmp = 2; else if ( H5Tequal( dtype, H5T_NATIVE_FLOAT) || H5Tequal( dtype, H5T_IEEE_F32BE) || H5Tequal( dtype, H5T_IEEE_F32LE) ) tmp = 3; else if ( H5Tequal(dtype, H5T_NATIVE_DOUBLE) || H5Tequal(dtype, H5T_IEEE_F64BE) || H5Tequal(dtype, H5T_IEEE_F64LE) ) tmp = 4; status = H5Tclose(dtype); if(status == FAIL) { regionID = FAIL; sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); free(errbuf); free(vertArr); free(nt); return(regionID); } switch (tmp ) { case 1: for (i = 0; i < dims[0]; i++) { memmove(&vertINT, vertArr + i * size, size); if (vertINT >= range[0] && vertINT <= range[1]) { found = 1; if (regionID == FAIL) { HE5_SETGRIDREG; } HE5_FILLVERTREG; break; } } if (found == 1) { for (i = dims[0] - 1; i >= 0; i--) { memmove(&vertINT, vertArr + i * size, size); if (vertINT >= range[0] && vertINT <= range[1]) { HE5_GDXRegion[regionID]->StopVertical[j] = i; break; } } } else { regionID = FAIL; sprintf(errbuf,"Data field not found.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); free(errbuf); free(vertArr); free(nt); return(regionID); } break; case 2: for (i = 0; i < dims[0]; i++) { memmove(&vertSHORT, vertArr + i * size, size); if (vertSHORT >= range[0] && vertSHORT <= range[1]) { found = 1; if (regionID == FAIL) { HE5_SETGRIDREG; } HE5_FILLVERTREG; break; } } if (found == 1) { for (i = dims[0] - 1; i >= 0; i--) { memmove(&vertSHORT, vertArr + i * size, size); if (vertSHORT >= range[0] && vertSHORT <= range[1]) { HE5_GDXRegion[regionID]->StopVertical[j] = i; break; } } } else { status = FAIL; } break; case 3: for (i = 0; i < dims[0]; i++) { memmove(&vertFLT, vertArr + i * size, size); if (vertFLT >= range[0] && vertFLT <= range[1]) { found = 1; if (regionID == FAIL) { HE5_SETGRIDREG; } HE5_FILLVERTREG; break; } } if (found == 1) { for (i = dims[0] - 1; i >= 0; i--) { memmove(&vertFLT, vertArr + i * size, size); if (vertFLT >= range[0] && vertFLT <= range[1]) { HE5_GDXRegion[regionID]->StopVertical[j] = i; break; } } } else { regionID = FAIL; sprintf(errbuf, "Data field not found.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); free(errbuf); free(vertArr); free(nt); return(regionID); } break; case 4: for (i = 0; i < dims[0]; i++) { memmove(&vertDBL, vertArr + i * size, size); if (vertDBL >= range[0] && vertDBL <= range[1]) { found = 1; if (regionID == FAIL) { HE5_SETGRIDREG; } HE5_FILLVERTREG; break; } } if (found == 1) { for (i = dims[0] - 1; i >= 0; i--) { memmove(&vertDBL, vertArr + i * size, size); if (vertDBL >= range[0] && vertDBL <= range[1]) { HE5_GDXRegion[regionID]->StopVertical[j] = i; break; } } } else { regionID = FAIL; sprintf(errbuf, "Data field not found.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); free(errbuf); free(vertArr); free(nt); return(regionID); } break; default: { regionID = FAIL; sprintf(errbuf, "Unknown Data type.\n"); H5Epush(__FILE__, "HE5_GDdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); free(errbuf); free(vertArr); free(nt); } break; } if (vertArr != NULL) free(vertArr); } } } free(errbuf); errbuf = NULL; if (nt != NULL) free(nt); COMPLETION: HE5_UNLOCK; return (regionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdeftimeperiod | | | | DESCRIPTION: Finds elements of the "Time" field within a given time | | period. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | periodID hid_t Period ID | | | | INPUTS: | | gridID hid_t Grid structure ID | | periodID hid_t Period ID | | starttime double TAI sec Start of time period | | stoptime double TAI sec Stop of time period | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/23/99 A.Muslimov Changed the data type of periodID, gridID from | | int32_t| to hid_t. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_GDdeftimeperiod(hid_t gridID, hid_t periodID, double starttime, double stoptime) { double timerange[2]={0.,0.};/* Range of periods */ timerange[0] = starttime; timerange[1] = stoptime; periodID = HE5_GDdefvrtregion(gridID, periodID, "Time", timerange); return (periodID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgetpixels | | | | DESCRIPTION: Finds row and columns for specified lon/lat values | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t Grid structure ID | | nLonLat long Number of lonlat values | | lonVal double dec deg Longitude values | | latVal double dec deg Latitude values | | | | OUTPUTS: | | pixRow long Pixel rows | | pixCol long Pixel columns | | | | NOTES: | | | | HDF5 Library Functions Called: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/23/99 A.Muslimov Added proper error handling after function calls. | | Removed redundant if(status==0){} brackets. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDgetpixels(hid_t gridID, long nLonLat, double lonVal[], double latVal[], long pixRow[], long pixCol[]) { herr_t status = FAIL;/* routine return status variable */ int projcode = FAIL;/* GCTP projection code */ int zonecode = FAIL;/* Zone code */ int spherecode = FAIL;/* Sphere code */ int origincode = FAIL;/* Origin code */ int pixregcode = FAIL;/* Pixel registration code */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long i; /* Loop index */ long idx = FAIL;/* Grid index */ long xdimsize = 0;/* Size of "XDim" */ long ydimsize = 0;/* Size of "YDim" */ double upleftpt[2]={0.,0.}; /* Upper left point */ double lowrightpt[2]={0.,0.};/* Lower right point */ double projparm[16]; /* Projection parameters */ double *xVal=(double *)NULL;/* Ptr to x location values */ double *yVal=(double *)NULL;/* Ptr to y location values */ char *errbuf; /* buffer for error message */ CHECKPOINTER(lonVal); CHECKPOINTER(latVal); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDgetpixels", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for grid ID failed.\n" ); H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get grid info */ /* ------------- */ status = HE5_GDgridinfo(gridID, &xdimsize, &ydimsize, upleftpt, lowrightpt); if ( status == FAIL ) { sprintf(errbuf,"Cannot get information about Grid.\n"); H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Initialize projparm[] array */ /* --------------------------- */ for (i = 0; i < 16; i++) projparm[i] = 0.; /* Get projection info */ /* ------------------- */ status = HE5_GDprojinfo(gridID, &projcode, &zonecode, &spherecode, projparm); if ( status == FAIL ) { sprintf(errbuf, "Cannot get projection information.\n"); H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get explicit upleftpt & lowrightpt if defaults are used */ /* ------------------------------------------------------- */ status = HE5_GDgetdefaults(projcode, zonecode, projparm, spherecode, upleftpt, lowrightpt); if ( status == FAIL ) { sprintf(errbuf, "Cannot get explicit upleftpt and lowrghtpt values.\n"); H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get pixel registration and origin info */ /* -------------------------------------- */ status = HE5_GDorigininfo(gridID, &origincode); if ( status == FAIL ) { sprintf(errbuf,"Cannot get pixel registration information.\n"); H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = HE5_GDpixreginfo(gridID, &pixregcode); if ( status == FAIL ) { sprintf(errbuf,"Cannot get pixel origin information.\n"); H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Allocate space for x & y locations */ /* ---------------------------------- */ xVal = (double *) calloc(nLonLat, sizeof(double)); if(xVal == NULL) { status = FAIL; sprintf(errbuf, "Cannot allocate memory"); H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } yVal = (double *) calloc(nLonLat, sizeof(double)); if(yVal == NULL) { status = FAIL; sprintf(errbuf,"Cannot allocate memory"); H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(xVal); return(status); } /* Get pixRow, pixCol, xVal, & yVal */ /* -------------------------------- */ status = HE5_GDll2ij(projcode, zonecode, projparm, spherecode, xdimsize, ydimsize, upleftpt, lowrightpt, nLonLat, lonVal, latVal, pixRow, pixCol, xVal, yVal); if ( status == FAIL ) { sprintf(errbuf, "Cannot get pixRow, pixCol, xVal, and yVal.\n"); H5Epush(__FILE__, "HE5_GDgetpixels", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(xVal); free(yVal); return(status); } /* Loop through all lon/lat values */ /* ------------------------------- */ for (i = 0; i < nLonLat; i++) { /* Adjust columns & rows for "corner" registered grids */ /* --------------------------------------------------- */ if (pixregcode == HE5_HDFE_CORNER) { if (origincode == HE5_HDFE_GD_UL) { if (xVal[i] - pixCol[i] > 0.5) { ++pixCol[i]; } if (yVal[i] - pixRow[i] > 0.5) { ++pixRow[i]; } } else if (origincode == HE5_HDFE_GD_UR) { if (xVal[i] - pixCol[i] <= 0.5) { --pixCol[i]; } if (yVal[i] - pixRow[i] > 0.5) { ++pixRow[i]; } } else if (origincode == HE5_HDFE_GD_LL) { if (xVal[i] - pixCol[i] > 0.5) { ++pixCol[i]; } if (yVal[i] - pixRow[i] <= 0.5) { --pixRow[i]; } } else if (origincode == HE5_HDFE_GD_LR) { if (xVal[i] - pixCol[i] <= 0.5) { --pixCol[i]; } if (yVal[i] - pixRow[i] <= 0.5) { --pixRow[i]; } } } /* If outidxe grid boundaries then set to FAIL */ /* ------------------------------------------- */ if (pixCol[i] < 0 || pixCol[i] >= xdimsize || pixRow[i] < 0 || pixRow[i] >= ydimsize) { pixCol[i] = FAIL; pixRow[i] = FAIL; } } if (xVal != NULL) free(xVal); if (yVal != NULL) free(yVal); free(errbuf); errbuf = NULL; COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgetpixvalues | | | | DESCRIPTION: Retrieves data from specified pixels. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size*nPixels long bytes Size of data buffer | | | | INPUTS: | | gridID hid_t Grid structure ID | | nPixels long Number of pixels | | pixRow long Pixel row numbers | | pixCol long Pixel column numbers | | fieldname char* Fieldname | | | | OUTPUTS: | | buffer void Data buffer | | | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | H5Screate_simple | | H5Dget_space | | H5Dget_type | | H5Sselect_elements | | H5Dread | | H5Tclose | | H5Sclose | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 98 Abe Taaheri revised to reduce overhead for rechecking | | for gridid, fieldname, etc in GDreadfield. | | June 98 AT fixed bug with 2-dim field merged in 3-dim field | | (for offset and count) | | 9/23/99 A.Muslimov Added proper error handling after function calls. | | Removed redundant if(status==0){} brackets. Dynami- | | cally allocated memory for dimlist, ntype, and | | errbuf strings. | | 12/7/99 A.Muslimov Modified a block that reads out the pixel values | | from the dataset. This fixes a bug resulted in | | a failure of getting the pixel values. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 7/17/00 A.Muslimov Added EHdtype2mtype() before the call to H5Dread(). | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDgetpixvalues(hid_t gridID, long nPixels, long pixRow[], long pixCol[], const char *fieldname, void *buffer) { herr_t status = FAIL; /* routine return status variable */ int j; /* Loop indices */ int rank = FAIL; /* Field rank */ int mrank = 1; /* Rank of dataspace in memory */ int origincode = FAIL; /* Origin code */ hid_t *ntype = (hid_t *)NULL; /* number types */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t dataID = FAIL; /* dataset ID */ hid_t dtype = FAIL; /* data type ID */ hid_t mtype = FAIL; /* memory data type ID */ hid_t fspace = FAIL; /* file data space ID */ hid_t mspace = FAIL; /* memory data space ID */ long i; /* loop index */ long idx = FAIL; /* Grid index */ long xdim = FAIL; /* Location of "XDim" within field list */ long ydim = FAIL; /* Location of "YDim" within field list */ hssize_t *coord; /* Array of pixel coordinates */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ hsize_t mdims[1] = {0}; /* Dimension of dataspace in memory */ size_t npoints = 0; /* Number of points/pixels to read */ size_t size = 0; /* Size of data buffer (bytes) */ char *dimlist=(char *)NULL; /* Dimension list string */ char *errbuf = (char *)NULL; /* buffer for error message */ CHECKPOINTER(fieldname); CHECKPOINTER(pixRow); CHECKPOINTER(pixCol); /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Initialize dims[] array */ /* ----------------------- */ for ( j = 0; j < HE5_DTSETRANKMAX; j++) dims[j] = 0; dimlist = (char *)calloc( HE5_HDFE_DIMBUFSIZE, sizeof(char )); if ( dimlist == NULL ) { sprintf(errbuf,"Cannot allocate memory for dimension list string.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDgetpixvalues", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } /* Get field list */ /* -------------- */ ntype = (hid_t *)calloc(1, sizeof(hid_t)); if ( ntype == (hid_t *)NULL ) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } status = HE5_GDfieldinfo(gridID, fieldname, &rank, dims, ntype, dimlist, NULL); if ( status == FAIL ) { sprintf(errbuf, "Fieldname \"%s\" not found.\n", fieldname); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Check for "XDim" & "YDim" in dimension list */ /* ------------------------------------------- */ xdim = HE5_EHstrwithin("XDim", dimlist, ','); if (xdim == FAIL) { sprintf( errbuf,"\"XDim\" not present in dimlist for field \"%s\".\n",fieldname); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } ydim = HE5_EHstrwithin("YDim", dimlist, ','); if (ydim == FAIL) { sprintf( errbuf,"\"YDim\" not present in dimlist for field \"%s\".\n",fieldname); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Get origin order info */ /* --------------------- */ status = HE5_GDorigininfo(gridID, &origincode); if ( status == FAIL ) { sprintf(errbuf,"Cannot get origin order information.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Compute size of data buffer for each pixel */ /* ------------------------------------------ */ size = (size_t)dims[ 0 ]; for (j = 1; j < rank; j++) size *= dims[ j ]; /* Calculate size of a whole data buffer */ /* ------------------------------------- */ size *= HE5_GDfielddatasize(gridID,fieldname); if (size == 0) { sprintf(errbuf,"Cannot get the field data size.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* If data values are requested ... */ /* -------------------------------- */ if (buffer != NULL) { status = HE5_GDgetfieldID( gridID, fieldname, &dataID); if ( status == FAIL ) { sprintf(errbuf,"Cannot get data field ID.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } mdims[0] = (hsize_t)nPixels; npoints = (size_t)nPixels; /* Create a data space in memory */ /* ----------------------------- */ mspace = H5Screate_simple(mrank, (const hsize_t *)mdims, NULL); if ( mspace == FAIL ) { sprintf(errbuf,"Cannot create the data space.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_DATASPACE, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Allocate memory for pixel coordinates array */ /* ------------------------------------------- */ coord = (hssize_t *)calloc((unsigned)(rank * nPixels), sizeof(hssize_t)); if ( coord == (hssize_t *)NULL ) { sprintf(errbuf,"Cannot allocate memory for pixel coordinates array.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Loop through all pixels */ /* ----------------------- */ for (i = 0; i < nPixels; i++) { /* If pixel row & column OK ... */ /* ---------------------------- */ if (pixCol[i] != FAIL && pixRow[i] != FAIL) { /* Fill out the array of pixel coordinates */ /* --------------------------------------- */ coord[2 * i] = (hssize_t)pixRow[i]; coord[2 * i + 1] = (hssize_t)pixCol[i]; } } fspace = H5Dget_space(dataID); if ( fspace == FAIL) { sprintf(errbuf,"Cannot get the file data space ID.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); free(coord); return(FAIL); } dtype = H5Dget_type(dataID); if ( dtype == FAIL ) { sprintf(errbuf,"Cannot get the datatype ID.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); free(coord); return(FAIL); } /* Select the points/pixels to read */ /* -------------------------------- */ status = H5Sselect_elements(fspace, H5S_SELECT_SET, npoints, (const hsize_t *)coord); if ( status == FAIL ) { sprintf(errbuf,"Cannot select the pixels to read.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); free(coord); return(FAIL); } /* Get the memory data type ID */ /* --------------------------- */ mtype = HE5_EHdtype2mtype(dtype); if ( mtype == FAIL ) { sprintf(errbuf,"Cannot get the memory data type.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); free(coord); return(FAIL); } /* Read the selected points into the buffer */ /* --------------------------------------- */ status = H5Dread(dataID, mtype, mspace, fspace, H5P_DEFAULT, buffer); if ( status == FAIL ) { sprintf(errbuf,"Cannot read out the data from the dataset.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); free(coord); return(FAIL); } status = H5Tclose(dtype); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); free(coord); return(FAIL); } status = H5Sclose(mspace); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the memory data space ID.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); free(coord); return(FAIL); } status = H5Sclose(fspace); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the file data space ID.\n"); H5Epush(__FILE__, "HE5_GDgetpixvalues", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); free(coord); return(FAIL); } free(coord); } /* If successful return size of returned data in bytes */ /* --------------------------------------------------- */ if (dimlist != NULL) free(dimlist); free(errbuf); free(ntype); COMPLETION: return( (long)(size * nPixels) ); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinterpolate | | | | DESCRIPTION: Performs bilinear interpolate on a set of xy values | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nRetn*nValues* long Size of data buffer (bytes) | | sizeof(double) | | | | INPUTS: | | gridID hid_t Grid structure ID | | nValues long Number of lon/lat points to interpolate | | xyValues double XY values of points to interpolate | | fieldname char* Fieldname | | | | OUTPUTS: | | interpVal double Interpolated Data Values | | | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | H5Dget_type | | H5Tequal | | H5Tclose | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 98 Abe Taaheri changed the return value so that the Return Value | | is size in bytes for the data buffer which is | | float64. | | 8/24/99 A.Muslimov Changed the return type from intn to int . | | 9/23/99 A.Muslimov Added proper error handling after function calls. | | Removed redundant if(status==0){} brackets. | | 10/18/99 A.Muslimov Replace memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | Mar 04 S.Zhao Modified for supported field type. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinterpolate(hid_t gridID, long nValues, double lonVal[], double latVal[], const char *fieldname, double interpVal[]) { long nRetn = 0; /* Number of data values returned */ long i, j; /* loop indices */ long idx = FAIL;/* Grid index */ long xdimsize = 0; /* XDim size */ long ydimsize = 0; /* YDim size */ long numsize = 0; /* Size in bytes of number type */ long xdim = FAIL;/* Location of "XDim" in a list */ long ydim = FAIL;/* Location of "YDim" in a list */ long dum = 0; /* Dummy variable */ long size = 0; /* Size of buffer in bytes */ long pixCol[4]; /* Pixel columns for 4 nearest neighbors */ long pixRow[4]; /* Pixel rows for 4 nearest neighbors */ long tDen = 0;/*Interpolation denominator value 1 */ long uDen = 0;/*Interpolation denominator value 2 */ herr_t status = FAIL; /* routine return status variable */ int k; /* Loop indices */ int rank = FAIL; /* Field rank */ int iINT[4]={0,0,0,0};/* Working buffer (int) */ int tmp = 999; /* temp variable (for type code) */ int projcode = FAIL;/* Projection code */ int zonecode = FAIL;/* Zone code */ int spherecode = FAIL;/* Sphere code */ int pixregcode = FAIL;/* Pixel registration code */ int origincode = FAIL;/* Origin code */ hid_t *ntype = (hid_t *)NULL; /* number types */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t dataID = FAIL;/* data field dataset ID */ hid_t dtype = FAIL;/* data field datatype ID */ hsize_t dims[HE5_DTSETRANKMAX];/* Field dimensions */ double upleftpt[2]={0.,0.}; /* Upper left pt coordinates */ double lowrightpt[2]={0.,0.};/* Lower right pt coordinates */ double projparm[16]; /* Projection parameters */ double xVal = FAIL;/* "Exact" x location of interpolated point */ double yVal = FAIL;/* "Exact" y location of interpolated point */ double tNum = 0.; /* Interpolation numerator value 1 */ double uNum = 0.; /* Interpolation numerator value 2 */ double fdbl[4]={0.,0.,0.,0.};/* Working buffer (double) */ short ishort[4]={0,0,0,0};/* Working buffer (short) */ float flt[4]={0.,0.,0.,0.};/* Working buffer (float) */ char *pixVal = NULL; /* Nearest neighbor values */ char *dimlist = NULL; /* Dimension list string */ char *errbuf = NULL; /* Error message buffer */ CHECKPOINTER(fieldname); CHECKPOINTER(lonVal); CHECKPOINTER(latVal); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDinterpolate", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } dimlist = (char *)calloc( HE5_HDFE_DIMBUFSIZE, sizeof(char )); if ( dimlist == NULL ) { sprintf(errbuf,"Cannot allocate memory for dimension list string.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get field information */ /* --------------------- */ ntype = (hid_t *)calloc(1, sizeof(hid_t)); if ( ntype == (hid_t *)NULL ) { sprintf(errbuf,"Cannot allocate memory for data type class ID.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } /* Initialize dims[] array */ /* ----------------------- */ for (k = 0; k < HE5_DTSETRANKMAX; k++) dims[ k ] = 0; status = HE5_GDfieldinfo(gridID, fieldname, &rank, dims, ntype, dimlist,NULL); if ( status == FAIL ) { sprintf(errbuf,"Cannot get information about \"%s\" data field.\n", fieldname); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Check for "XDim" & "YDim" in dimension list */ /* ------------------------------------------- */ xdim = HE5_EHstrwithin("XDim", dimlist, ','); if (xdim == FAIL) { sprintf( errbuf, "\"XDim\" not present in dimlist for field: \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } ydim = HE5_EHstrwithin("YDim", dimlist, ','); if (ydim == FAIL) { sprintf( errbuf,"\"YDim\" not present in dimlist for field: \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* If no problems ... */ /* ------------------ */ /* Compute size of data buffer for each interpolated value */ /* ------------------------------------------------------- */ dims[xdim] = 1; dims[ydim] = 1; size = (long)dims[0]; for (k = 1; k < rank; k++) size *= (long)dims[ k ]; numsize = (long)HE5_GDfielddatasize(gridID, fieldname); if ( numsize == 0 ) { sprintf(errbuf,"Cannot get the size of data type.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } size *= numsize; nRetn = size / numsize; /* If interpolated values are requested ... */ /* ---------------------------------------- */ if (interpVal != NULL) { /* Get grid info */ /* ------------- */ status = HE5_GDgridinfo(gridID, &xdimsize, &ydimsize,upleftpt, lowrightpt); if ( status == FAIL ) { sprintf(errbuf,"Cannot get information about Grid.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Initialize projparm[] array */ /* --------------------------- */ for (k = 0; k < 16; k++) projparm[ k ] = 0.; /* Get projection info */ /* ------------------- */ status = HE5_GDprojinfo(gridID, &projcode, &zonecode,&spherecode, projparm); if ( status == FAIL ) { sprintf(errbuf,"Cannot get projection information.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Get explicit upleftpt & lowrightpt if defaults are used */ /* ------------------------------------------------------- */ status = HE5_GDgetdefaults(projcode, zonecode, projparm, spherecode, upleftpt, lowrightpt); if ( status == FAIL ) { sprintf(errbuf,"Cannot get upleftpt and lowrightpt defaults.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Get pixel registration and origin info */ /* -------------------------------------- */ status = HE5_GDpixreginfo(gridID, &pixregcode); if ( status == FAIL ) { sprintf(errbuf,"Cannot get pixel registration information.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } status = HE5_GDorigininfo(gridID, &origincode); if ( status == FAIL ) { sprintf(errbuf,"Cannot get pixel origin information.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(ntype); return(FAIL); } /* Loop through all interpolated points */ /* ------------------------------------ */ for (i = 0; i < nValues; i++) { /* Get row & column of point pixel */ /* ------------------------------- */ status = HE5_GDll2ij(projcode, zonecode, projparm, spherecode,xdimsize, ydimsize, upleftpt, lowrightpt, 1, &lonVal[i], &latVal[i], pixRow, pixCol, &xVal, &yVal); if ( status == FAIL ) { sprintf(errbuf,"Cannot get row and column of point pixel.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(pixVal); free(ntype); return(FAIL); } /* Get diff of interp. point from pixel location */ /* --------------------------------------------- */ if (pixregcode == HE5_HDFE_CENTER) { tNum = xVal - (pixCol[0] + 0.5); uNum = yVal - (pixRow[0] + 0.5); } else if (origincode == HE5_HDFE_GD_UL) { tNum = xVal - pixCol[0]; uNum = yVal - pixRow[0]; } else if (origincode == HE5_HDFE_GD_UR) { tNum = xVal - (pixCol[0] + 1); uNum = yVal - pixRow[0]; } else if (origincode == HE5_HDFE_GD_LL) { tNum = xVal - pixCol[0]; uNum = yVal - (pixRow[0] + 1); } else if (origincode == HE5_HDFE_GD_LR) { tNum = xVal - (pixCol[0] + 1); uNum = yVal - (pixRow[0] + 1); } /* Get rows and columns of other nearest neighbor pixels */ /* ----------------------------------------------------- */ pixCol[1] = pixCol[0]; pixRow[3] = pixRow[0]; if (tNum >= 0) { pixCol[2] = pixCol[0] + 1; pixCol[3] = pixCol[0] + 1; } if (tNum < 0) { pixCol[2] = pixCol[0] - 1; pixCol[3] = pixCol[0] - 1; } if (uNum >= 0) { pixRow[2] = pixRow[0] + 1; pixRow[1] = pixRow[0] + 1; } if (uNum < 0) { pixRow[2] = pixRow[0] - 1; pixRow[1] = pixRow[0] - 1; } /* Get values of nearest neighbors */ /* -------------------------------- */ pixVal = (char *)calloc( 4 , size); if(pixVal == NULL) { sprintf(errbuf,"Cannot allocate memory"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); free(errbuf); free(dimlist); free(ntype); return(FAIL); } dum = HE5_GDgetpixvalues(gridID,4,pixRow,pixCol,fieldname,pixVal); /* Trap interpolation boundary out of range error */ /* ---------------------------------------------- */ if (dum == FAIL) { sprintf(errbuf, "Interpolation boundary out of grid.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(pixVal); free(ntype); return(FAIL); } else { /* * Algorithm taken for Numerical Recipies in C, 2nd * edition, Section 3.6 */ /* Perform bilinear interpolation */ /* ------------------------------ */ tDen = pixCol[3] - pixCol[0]; uDen = pixRow[1] - pixRow[0]; status = HE5_GDgetfieldID( gridID, fieldname, &dataID); if ( status == FAIL ) { sprintf(errbuf,"Cannot get \"%s\" field ID.\n", fieldname); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(pixVal); free(ntype); return(FAIL); } dtype = H5Dget_type( dataID); if ( status == FAIL ) { sprintf(errbuf,"Cannot get the dataset datatype.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(pixVal); free(ntype); return(FAIL); } if ( H5Tequal( dtype, H5T_NATIVE_SHORT) || H5Tequal( dtype, H5T_STD_I16BE) || H5Tequal( dtype, H5T_STD_I16LE) ) tmp = 1; else if ( H5Tequal(dtype, H5T_NATIVE_INT) || H5Tequal(dtype, H5T_STD_I32BE) || H5Tequal(dtype, H5T_STD_I32LE) ) tmp = 2; else if ( H5Tequal(dtype, H5T_NATIVE_FLOAT) || H5Tequal( dtype, H5T_IEEE_F32BE) || H5Tequal( dtype, H5T_IEEE_F32LE) ) tmp = 3; else if ( H5Tequal( dtype, H5T_NATIVE_DOUBLE) || H5Tequal(dtype, H5T_IEEE_F64BE) || H5Tequal(dtype, H5T_IEEE_F64LE) ) tmp = 4; status = H5Tclose(dtype); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(pixVal); free(ntype); return(FAIL); } switch ( tmp) { case 1: /* Loop through all returned data values */ /* ------------------------------------- */ for (j = 0; j < nRetn; j++) { /* Copy 4 NN values into working array */ /* ----------------------------------- */ for (k = 0; k < 4; k++) { memmove(&ishort[k],pixVal + j * numsize + k * size, sizeof(short)); } /* Compute interpolated value */ /* -------------------------- */ interpVal[i * nRetn + j] = (1 - tNum / tDen) * (1 - uNum / uDen) * ishort[0] + (tNum / tDen) * (1 - uNum / uDen) * ishort[3] + (tNum / tDen) * (uNum / uDen) * ishort[2] + (1 - tNum / tDen) * (uNum / uDen) * ishort[1]; } break; case 2: for (j = 0; j < nRetn; j++) { for (k = 0; k < 4; k++) { memmove(&iINT[k], pixVal + j * numsize + k * size, sizeof(int)); } interpVal[i * nRetn + j] = (1 - tNum / tDen) * (1 - uNum / uDen) * iINT[0] + (tNum / tDen) * (1 - uNum / uDen) * iINT[3] + (tNum / tDen) * (uNum / uDen) * iINT[2] + (1 - tNum / tDen) * (uNum / uDen) * iINT[1]; } break; case 3: for (j = 0; j < nRetn; j++) { for (k = 0; k < 4; k++) { memmove(&flt[k], pixVal + j * numsize + k * size, sizeof(float)); } interpVal[i * nRetn + j] = (1 - tNum / tDen) * (1 - uNum / uDen) * flt[0] + (tNum / tDen) * (1 - uNum / uDen) * flt[3] + (tNum / tDen) * (uNum / uDen) * flt[2] + (1 - tNum / tDen) * (uNum / uDen) * flt[1]; } break; case 4: for (j = 0; j < nRetn; j++) { for (k = 0; k < 4; k++) { memmove(&fdbl[k], pixVal + j * numsize + k * size, sizeof(double)); } interpVal[i * nRetn + j] = (1 - tNum / tDen) * (1 - uNum / uDen) * fdbl[0] + (tNum / tDen) * (1 - uNum / uDen) * fdbl[3] + (tNum / tDen) * (uNum / uDen) * fdbl[2] + (1 - tNum / tDen) * (uNum / uDen) * fdbl[1]; } break; default: { sprintf(errbuf,"Unknown data type.\n"); H5Epush(__FILE__, "HE5_GDinterpolate", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(pixVal); free(ntype); return(FAIL); } } } free(pixVal); pixVal = NULL; } } free(dimlist); free(errbuf); errbuf = NULL; free(ntype); dimlist = NULL; COMPLETION: /* always return size of double buffer */ return ( (long)(nRetn*nValues*sizeof(double)) ); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDwritelocattr | | | | DESCRIPTION: Writes/updates attribute associated with a specified field in | | a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t grid structure ID | | fieldname char* field name | | attrname char* attribute name | | numtype hid_t attribute datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov Original development. | | Mar 00 A.Muslimov Changed the ID of field group from gd_id to data_id.| | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDwritelocattr(hid_t gridID, const char *fieldname, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* Field-related dataset ID */ long idx = FAIL;/* Grid index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t ntype; HE5_LOCK; CHECKPOINTER(fieldname); CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ ntype = HE5_EHconvdatatype(numtype); if(ntype == FAIL) { ntype = numtype; } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDwritelocattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get field ID */ /* ------------ */ fieldID = H5Dopen(HE5_GDXGrid[idx].data_id, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_GDwritelocattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattr to perform I/O */ /* -------------------------- */ status = HE5_EHattr(fieldID, attrname, ntype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\" for the \"%s\" field.\n", attrname, fieldname); H5Epush(__FILE__, "HE5_GDwritelocattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_GDwritelocattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDreadlocattr | | | | DESCRIPTION: Reads attribute associated with a specified field from a grid.| | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char field name | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov Original development | | Mar 00 A.Muslimov Changed the ID of field group from gd_id to data_id.| | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDreadlocattr(hid_t gridID, const char *fieldname, const char *attrname, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t ntype = FAIL;/* hdf5 type data type ID */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* Field-related dataset ID */ long idx = FAIL;/* Grid index */ hsize_t count[]={0}; /* array with the number of elements */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDreadattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get field ID */ /* ------------ */ fieldID = H5Dopen(HE5_GDXGrid[idx].data_id, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_GDreadlocattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattr to perform I/O */ /* -------------------------- */ status = HE5_EHattr(fieldID, attrname, ntype, count, "r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" associated wth the \"%s\" field.\n", attrname,fieldname); H5Epush(__FILE__, "HE5_GDreadlocattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_GDreadlocattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDlocattrinfo | | | | DESCRIPTION: Retrieves information about local attribute (attribute asso- | | ciated with a specified field) in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char* field name | | attrname char* attribute name | | | | OUTPUTS: | | ntype hid_t attribute data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov Original Development | | Mar 00 A.Muslimov Changed the ID of field group from gd_id to data_id.| | 5/10/00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDlocattrinfo(hid_t gridID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* Field-related dataset ID */ long idx = FAIL;/* Grid index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDlocattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get field ID */ /* ------------ */ fieldID = H5Dopen(HE5_GDXGrid[idx].data_id, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_GDlocattrinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattrinfo */ /* --------------- */ status = HE5_EHattrinfo(fieldID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" associated with the \"%s\" field.\n", attrname, fieldname); H5Epush(__FILE__, "HE5_GDlocattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_GDlocattrinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqdscaleattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified dimension scale | | in a grid. | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long number of attributes (-1 if fails) | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char dimension scale name | | attrnames char attribute name(s) | | | | OUTPUTS: | | strbufsize long String length of attribute (in bytes) | | | | NOTES: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | June 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqdscaleattrs(hid_t gridID, const char *fieldname, char *attrnames, long *strbufsize) { long nattr = 0; /* Number of attributes (return) */ long idx = FAIL;/* Grid index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ char *dtsname = NULL;/* Buffer for dataset name */ char errbuf[HE5_HDFE_ERRBUFSIZE]; CHECKPOINTER(fieldname); /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDinqdscaleattrs", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for grid ID failed.\n" ); H5Epush(__FILE__, "HE5_GDinqdscaleattrs", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } dtsname = (char *) calloc(HE5_HDFE_NAMBUFSIZE, 1); if( dtsname == NULL) { sprintf(errbuf, "Can not allocate memory.\n"); H5Epush(__FILE__, "HE5_GDinqdscaleattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(dtsname,"/HDFEOS/GRIDS/"); strcat(dtsname, HE5_GDXGrid[idx].gdname); strcat(dtsname,"/"); strcat(dtsname,fieldname); nattr = HE5_EHattrcat(fid, dtsname, attrnames, strbufsize); if (dtsname != NULL) free(dtsname); COMPLETION: return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqlocattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified field in a grid. | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long number of attributes (-1 if fails) | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char field name | | attrnames char attribute name(s) | | | | OUTPUTS: | | strbufsize long String length of attribute (in bytes) | | | | NOTES: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov Original development. | | Mar 00 A.Muslimov Changed the field group to "Data Fields". | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqlocattrs(hid_t gridID, const char *fieldname, char *attrnames, long *strbufsize) { long nattr = 0; /* Number of attributes (return) */ long idx = FAIL;/* Grid index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ char *dtsname = NULL;/* Buffer for dataset name */ /* char *errbuf = NULL;*//* Buffer for error message */ char errbuf[HE5_HDFE_ERRBUFSIZE]; CHECKPOINTER(fieldname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ /* errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqlocattrs", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } */ /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDinqlocattrs", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for grid ID failed.\n" ); H5Epush(__FILE__, "HE5_GDinqlocattrs", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ return(FAIL); } dtsname = (char *) calloc(HE5_HDFE_NAMBUFSIZE, 1); if( dtsname == NULL) { sprintf(errbuf, "Can not allocate memory.\n"); H5Epush(__FILE__, "HE5_GDinqlocattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); /*free(errbuf);*/ return(FAIL); } strcpy(dtsname,"/HDFEOS/GRIDS/"); strcat(dtsname, HE5_GDXGrid[idx].gdname); strcat(dtsname,"/Data Fields/"); strcat(dtsname,fieldname); nattr = HE5_EHattrcat(fid, dtsname, attrnames, strbufsize); if (dtsname != NULL) free(dtsname); /* free(errbuf); errbuf = NULL; */ COMPLETION: return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDwritegrpattr | | | | DESCRIPTION: Writes/updates attribute associated with "Data Fields" group | | in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | attrname char* attribute name | | numtype hid_t attribute data type ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 00 A.Muslimov Original development. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDwritegrpattr(hid_t gridID, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t dataID = FAIL;/* "Data Fields" group ID */ long idx = FAIL;/* Grid index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t ntype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ ntype = HE5_EHconvdatatype(numtype); if(ntype == FAIL) { ntype = numtype; } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDwritegrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data Fields" group ID */ /* -------------------------- */ dataID = H5Gopen(HE5_GDXGrid[idx].gd_id,"Data Fields"); if(dataID == FAIL) { sprintf(errbuf,"Cannot open the \"Data Fields\" group.\n"); H5Epush(__FILE__, "HE5_GDwritegrpattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattr to perform I/O */ /* -------------------------- */ status = HE5_EHattr(dataID, attrname, ntype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\" for the \"Data Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_GDwritegrpattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release group ID */ /* ---------------- */ status = H5Gclose(dataID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_GDwritegrpattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDreadgrpattr | | | | DESCRIPTION: Reads attribute associated with "Data Fields" group in a grid.| | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 00 A.Muslimov Original development | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDreadgrpattr(hid_t gridID, const char *attrname, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t ntype = FAIL;/* hdf5 type data type ID */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t dataID = FAIL;/* "Data Fields" group ID */ long idx = FAIL;/* Grid index */ hsize_t count[]={0}; /* array with the number of elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(attrname); /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDreadgrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data Fields" group ID */ /* ---------------------------- */ dataID = H5Gopen(HE5_GDXGrid[idx].gd_id, "Data Fields"); if(dataID == FAIL) { sprintf(errbuf,"Cannot open the \"Data Fields\" group.\n"); H5Epush(__FILE__, "HE5_GDreadgrpattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_EHattr to perform I/O */ /* ------------------------------ */ status = HE5_EHattr(dataID, attrname, ntype, count, "r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" associated wth the \"Data Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_GDreadgrpattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release group ID */ /* ---------------- */ status = H5Gclose(dataID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_GDreadgrpattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgrpattrinfo | | | | DESCRIPTION: Retrieves information about group attribute (attribute asso- | | ciated with "Data Fields" group) in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | attrname char* attribute name | | | | OUTPUTS: | | ntype hid_t attribute data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 00 A.Muslimov Original Development | | 5/10/00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDgrpattrinfo(hid_t gridID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t dataID = FAIL;/* "Data Fields" group ID */ long idx = FAIL;/* Grid index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDgrpattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data Fields" group ID */ /* -------------------------- */ dataID = H5Gopen(HE5_GDXGrid[idx].gd_id, "Data Fields"); if(dataID == FAIL) { sprintf(errbuf,"Cannot open the \"Data Fields\" group.\n"); H5Epush(__FILE__, "HE5_GDgrpattrinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_EHattrinfo */ /* ------------------- */ status = HE5_EHattrinfo(dataID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" associated with the \"Data Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_GDgrpattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release group ID */ /* ---------------- */ status = H5Gclose(dataID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_GDgrpattrinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqgrpattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with "Data Fields" group in a grid.| | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long number of attributes (-1 if fails) | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | attrnames char attribute name(s) | | | | OUTPUTS: | | strbufsize long String length of attribute (in bytes) | | | | NOTES: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 00 A.Muslimov Original development. | | 7/12/00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqgrpattrs(hid_t gridID, char *attrnames, long *strbufsize) { long nattr = 0; /* Number of attributes (return) */ long idx = FAIL;/* Grid index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ char *grpname = NULL;/* Buffer for group name */ char *errbuf = NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqgrpattrs", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDinqgrpattrs", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for grid ID failed.\n" ); H5Epush(__FILE__, "HE5_GDinqgrpattrs", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Allocate memory for a group name buffer */ /* --------------------------------------- */ grpname = (char *) calloc(HE5_HDFE_NAMBUFSIZE, 1); if( grpname == NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_GDinqgrpattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Construct group pathname string */ /* ------------------------------- */ strcpy(grpname,"/HDFEOS/GRIDS/"); strcat(grpname, HE5_GDXGrid[idx].gdname); strcat(grpname,"/Data Fields"); /* search group for the number of attributes */ /* --------------------------------------------------- */ nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); if (grpname != NULL) free(grpname); free(errbuf); errbuf = NULL; return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDsetextdata | | | | DESCRIPTION: Sets external data files. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t grid structure ID | | filelist const char* list of external files | | offset off_t array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size hsize_t array of sizes (in bytes) reserved in | | the file for the data. | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 01 A.Muslimov Original development. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDsetextdata(hid_t gridID, const char *filelist, off_t offset[], hsize_t size[]) { herr_t status = FAIL; /* return status variable */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Grid index */ char *namebuf = (char *)NULL;/* File list buffer */ char *filename = (char *)NULL;/* File name buffer */ char *comma = (char *)NULL;/* Pointer to comma */ char *errbuf = (char *)NULL;/* error message buffer */ HE5_LOCK; CHECKPOINTER(filelist); CHECKPOINTER(offset); CHECKPOINTER(size); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDsetextdata", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDsetextdata", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDsetextdata", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( status ); } /* Get current dataset creation property list */ /* ------------------------------------------ */ if( HE5_GDXGrid[idx].plist == FAIL) HE5_GDXGrid[idx].plist = H5Pcreate(H5P_DATASET_CREATE); /* Allocate space for namebuf, copy dimlist into it, & append comma */ /* ---------------------------------------------------------------- */ namebuf = (char *)calloc(strlen(filelist) + 64, sizeof(char)); if(namebuf == NULL) { H5Epush(__FILE__, "HE5_GDsetextdata", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory."); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); free(errbuf); return(FAIL); } /* ******************************************************************** * C H E C K T H E C O N T E N T O F filelist S T R I N G * ******************************************************************** */ strcpy(namebuf, filelist); strcat(namebuf, ","); /* Find comma */ /* ---------- */ comma = strchr(namebuf, ','); i = 0; /* Parse the list of file names */ /* ---------------------------- */ while (comma != NULL) { /* Allocate memory for filename buffer */ /* ----------------------------------- */ filename = (char *) calloc(comma - namebuf + 1, sizeof(char)); if (filename == NULL) { sprintf(errbuf, "Cannot allocate memory for filename. \n") ; H5Epush(__FILE__, "HE5_GDsetextdata", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(namebuf); return(FAIL); } /* Copy file list entry to filename */ /* -------------------------------- */ memmove(filename, namebuf, comma - namebuf); filename[comma-namebuf] = 0; /* Set the property list */ /* --------------------- */ status = H5Pset_external(HE5_GDXGrid[idx].plist, filename, offset[i], size[i]); if(status == FAIL) { sprintf(errbuf,"Cannot set external dataset property list.\n"); H5Epush(__FILE__, "HE5_GDsetextdata", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(namebuf); free(filename); return(status); } /* Go to next file entry, find next comma, ... */ /* ============================================ */ strcpy(namebuf, comma + 1); comma = strchr(namebuf, ','); if (filename != NULL) free(filename); i++; } if (namebuf != NULL) free(namebuf); free(errbuf); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgetextdata | | | | DESCRIPTION: Gets external data files information. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfiles int number of external files SUCCEED, | | (-1) FAIL | | INPUTS: | | gridID hid_t grid structure ID | | fieldname char* External field name | | | | OUTPUTS: | | namelength size_t Length of each name entry | | filelist char* List of file names | | offset off_t array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size hsize_t ARRAY of sizes (in bytes) reserved in | | the file for the data. | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 01 A.Muslimov Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDgetextdata(hid_t gridID, char *fieldname, size_t namelength, char *filelist, off_t offset[], hsize_t size[]) { int nfiles = FAIL; /* Number of ext. files */ int i; /* Loop index */ int found = 0; /* found flag */ size_t slen = 0; /* String length */ herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t fieldID = FAIL; /* Data field ID */ hid_t plist = FAIL; /* Property list ID */ off_t off = 0; /* Offset of data segment */ hsize_t sz = 0; /* Size of data segment */ long idx = FAIL; /* Grid index */ char *filename = (char *)NULL;/* File name buffer */ char *errbuf = (char *)NULL;/*error message buffer */ CHECKPOINTER(fieldname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDgetextdata", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper grid ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_GDchkgdid(gridID, "HE5_GDgetextdata", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDgetextdata", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Loop through all data datasets in grid */ /* -------------------------------------- */ for (i = 0; i < HE5_GDXGrid[ idx ].nDFLD; i++) { /* Get dataset name */ /* ---------------- */ if( strcmp(fieldname, HE5_GDXGrid[ idx ].ddataset[ i ].name) == 0 ) { found = 1; break; } } /* Get dataset ID */ /* -------------- */ if( found == 1) { fieldID = HE5_GDXGrid[ idx ].ddataset[ i ].ID; /* Get the property list ID */ /* ------------------------ */ plist = H5Dget_create_plist(fieldID); if ( plist == FAIL ) { sprintf(errbuf, "Cannot get the property list ID for the \"%s\" data field.\n", fieldname); H5Epush(__FILE__, "HE5_GDgetextdata", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get the number of external files */ /* -------------------------------- */ nfiles = H5Pget_external_count(plist); if ( nfiles < 0 ) { sprintf(errbuf, "Cannot get the number of external files.\n"); H5Epush(__FILE__, "HE5_GDgetextdata", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Allocate memory for file name */ /* ----------------------------- */ filename = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char)); if(filename == NULL) { H5Epush(__FILE__, "HE5_GDgetextdata", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory."); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); free(errbuf); return(FAIL); } strcpy(filelist,""); /* Loop through all external files */ /* ------------------------------- */ for (i = 0; i < nfiles; i++) { strcpy(filename,""); /* Get the file name, offset, and size */ /* ----------------------------------- */ status = H5Pget_external(plist, i, namelength, filename, &off, &sz); if( status == FAIL) { sprintf(errbuf,"Cannot get information about external file.\n"); H5Epush(__FILE__, "HE5_GDgetextdata", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(filename); return(FAIL); } offset[i] = off; size[i] = sz; strcat(filelist, filename); /* Append comma */ /* ------------ */ if (nfiles > 1 && i < nfiles - 1) strcat(filelist,","); } slen = strlen(filelist); filelist[slen] = 0; if (filename != NULL) free(filename); /* Release property list ID */ /* ------------------------ */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release property list ID.\n"); H5Epush(__FILE__, "HE5_GDgetextdata", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } else { nfiles = FAIL; sprintf(errbuf, "Data field \"%s\" not found. \n", fieldname); H5Epush(__FILE__, "HE5_GDgetextdata", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); COMPLETION: return(nfiles); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDfldnameinfo | | | | DESCRIPTION: Retrieves actual name of the field | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nameFlag int None return (1) actual name, (0) alias, | | (-1) FAIL | | INPUTS: | | gridID hid_t Grid structure ID | | fieldname char* name of field | | | | OUTPUTS: | | actualname char* field actual name | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static int HE5_GDfldnameinfo(int gridID, const char *fieldname, char *actualname) { int nameFlag = FAIL;/* Return value of flag */ int length = 0; /* String length */ int fldgroup = FAIL;/* Field group code */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t groupID = FAIL;/* data field group ID */ long idx = FAIL;/* grid index */ H5G_stat_t *statbuf = (H5G_stat_t *)NULL;/* buffer for link info */ herr_t status = FAIL;/* routine return status variable */ char *namebuf = NULL;/* Buffer for an actual field name */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and grid index */ /* ----------------------------------------------------- */ status = HE5_GDchkgdid(gridID, "HE5_GDfldnameinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed.\n"); H5Epush(__FILE__, "HE5_GDfldnameinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } statbuf = (H5G_stat_t *)calloc(1, sizeof(H5G_stat_t )); /* Try to get information about specified field */ /* -------------------------------------------- */ H5E_BEGIN_TRY { groupID = HE5_GDXGrid[idx].data_id; fldgroup = HE5_HDFE_DATAGROUP; status = H5Gget_objinfo(groupID, fieldname, 0, statbuf); } H5E_END_TRY; if (status == FAIL) { nameFlag = FAIL; sprintf(errbuf, "Cannot find \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_GDfldnameinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(statbuf); return(nameFlag); } /* If the field name is an alias */ /* ----------------------------- */ if (statbuf->type == H5G_LINK) nameFlag = FALSE; else nameFlag = TRUE; if (nameFlag == FALSE) { if (actualname != NULL) { status = HE5_GDaliasinfo(gridID, fldgroup, fieldname, &length, NULL); if ( status == FAIL ) { sprintf(errbuf, "Cannot get information about alias \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_GDfldnameinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } namebuf = (char *)calloc(length, sizeof(char)); if ( namebuf == NULL ) { sprintf(errbuf, "Cannot allocate memory for namebuf.\n"); H5Epush(__FILE__, "HE5_GDfldnameinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Retrieve information about alias */ /* -------------------------------- */ status = HE5_GDaliasinfo(gridID, fldgroup, fieldname, &length, namebuf); if ( status == FAIL ) { sprintf(errbuf, "Cannot get information about alias \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_GDfldnameinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(namebuf); return(FAIL); } strcpy(actualname,""); strcpy(actualname,namebuf); free(namebuf); } } if (nameFlag == TRUE) { if (actualname != NULL) { strcpy(actualname,""); strcpy(actualname, fieldname); } } free(statbuf); COMPLETION: return(nameFlag); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDsetalias | | | | DESCRIPTION: Defines alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | gridID hid_t Grid structure ID | | fieldname char Original field name | | | | OUTPUTS: | | aliaslist char List of aliases for the field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Apr 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDsetalias(hid_t gridID, char *fieldname, const char *aliaslist) { herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "GRIDS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* grid index */ char *buf = NULL; /* Pointer to temporary buffer */ char *comma = NULL; /* Pointer to comma */ char *aliasname = NULL; /* Pointer to the alias name */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); CHECKPOINTER(aliaslist); /* Get HDF-EOS file ID, "HDFEOS" group ID and grid index */ /* ----------------------------------------------------- */ status = HE5_GDchkgdid(gridID, "HE5_GDsetalias", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed. \n"); H5Epush(__FILE__, "HE5_GDsetalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Find out the field group */ /* ------------------------ */ groupID = HE5_GDXGrid[idx].data_id; if (groupID == FAIL) { sprintf(errbuf, "Cannot find \"%s\" field in grid. \n", fieldname); H5Epush(__FILE__, "HE5_GDsetalias", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for temporary buffer */ /* ------------------------------------ */ buf = (char *)calloc(strlen(aliaslist)+64, sizeof(char)); if (buf == NULL) { sprintf(errbuf, "Cannot allocate memory for \"buf\". \n"); H5Epush(__FILE__, "HE5_GDsetalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Make a list like "name1,name2,name3," */ /* ------------------------------------- */ strcpy(buf,aliaslist); strcat(buf,","); /* Find first comma and make pointer pointing to it */ /* ------------------------------------------------ */ comma = strchr(buf, ','); while(comma != NULL) { /* Allocate memory for individual entry */ /* ------------------------------------ */ aliasname = (char *)calloc(comma-buf+1, sizeof(char)); if (aliasname == NULL) { sprintf(errbuf, "Cannot allocate memory for \"aliasname\". \n"); H5Epush(__FILE__, "HE5_GDsetalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (buf != NULL) free(buf); return(FAIL); } /* Pick up an individual entry and put it to the "aliasname" */ /* --------------------------------------------------------- */ memmove(aliasname,buf,comma-buf); /* Create a symbolic link for a specified object */ /* --------------------------------------------- */ status = H5Glink(groupID, H5G_LINK_SOFT, fieldname, aliasname); if (status == FAIL) { sprintf(errbuf, "Cannot create an alias \"%s\" for \"%s\" field. \n", aliasname, fieldname); H5Epush(__FILE__, "HE5_GDsetalias", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (aliasname != NULL) free(aliasname); if (buf != NULL) free(buf); return(FAIL); } /* Go to the next name entry */ /* ------------------------- */ strcpy(buf,comma+1); comma = strchr(buf, ','); if (aliasname != NULL) free(aliasname); } if (buf != NULL) free(buf); COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdropalias | | | | DESCRIPTION: Removes the alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | gridID hid_t Grid structure ID | | aliasname char Alias name to remove | | fldgroup int Field group flag | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Apr 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDdropalias(hid_t gridID, int fldgroup, const char *aliasname) { herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "GRIDS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* grid index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(aliasname); /* Get HDF-EOS file ID, "HDFEOS" group ID and grid index */ /* ----------------------------------------------------- */ status = HE5_GDchkgdid(gridID, "HE5_GDdropalias", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed. \n"); H5Epush(__FILE__, "HE5_GDdropalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get Group ID */ /* ------------ */ groupID = HE5_GDXGrid[idx].data_id; if (groupID == FAIL) { sprintf(errbuf, "Invalid input group flag. \n"); H5Epush(__FILE__, "HE5_GDdropalias", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Destroy a symbolic link */ /* ----------------------- */ status = H5Gunlink(groupID, aliasname); if (status == FAIL) { sprintf(errbuf, "Cannot remove alias named \"%s\". \n", aliasname); H5Epush(__FILE__, "HE5_GDdropalias", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDaliasinfo | | | | DESCRIPTION: Retrieves information about field aliases | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | gridID hid_t Grid structure ID | | aliasname char alias name | | fldgroup int Field group flag | | | | OUTPUTS: | | length int Buffer size | | buffer char Buffer with original field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Apr 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDaliasinfo(hid_t gridID, int fldgroup, const char *aliasname, int *length, char *buffer) { herr_t status = FAIL; /* return status variable */ int type = FAIL; /* type-value of an object */ size_t size = 0; /* Size of the name buffer */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDF-EOS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* grid index */ H5G_stat_t *statbuf = (H5G_stat_t *)NULL; /* pointer to a structure */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ CHECKPOINTER(aliasname); /* Get HDF-EOS file ID, "HDFEOS" group ID and grid index */ /* ----------------------------------------------------- */ status = HE5_GDchkgdid(gridID, "HE5_GDaliasinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for grid ID failed. \n"); H5Epush(__FILE__, "HE5_GDaliasinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the group ID */ /* ---------------- */ if (fldgroup == HE5_HDFE_DATAGROUP) groupID = HE5_GDXGrid[idx].data_id; else { sprintf(errbuf, "Invalid input group flag. \n"); H5Epush(__FILE__, "HE5_GDaliasinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (buffer == NULL) { /* Get the string length of a "real" name */ /* -------------------------------------- */ statbuf = (H5G_stat_t *)calloc(1, sizeof(H5G_stat_t)); if (statbuf == NULL) { sprintf(errbuf, "Cannot allocate memory for \"statbuf\". \n"); H5Epush(__FILE__, "HE5_GDaliasinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the Object Info */ /* ------------------- */ status = H5Gget_objinfo(groupID, aliasname, 0, statbuf); if (status == FAIL) { sprintf(errbuf, "Cannot get information about \"%s\" alias. \n", aliasname); H5Epush(__FILE__, "HE5_GDaliasinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* LINK name length with a null terminator */ /* --------------------------------------- */ size = statbuf->linklen; /* Object type (dataset, link, etc) */ /* -------------------------------- */ type = statbuf->type; /* Make sure that the object is a LINK */ /* ----------------------------------- */ if (type != H5G_LINK) { sprintf(errbuf,"The object named \"%s\" is not a symbolic link.\n", aliasname); H5Epush(__FILE__, "HE5_GDaliasinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *length = (int)size; if ( statbuf != (H5G_stat_t *)NULL ) free(statbuf); } if (buffer != NULL) { size = (size_t)*length; /* Get the "real" name by an "alias" */ /* --------------------------------- */ status = H5Gget_linkval(groupID, aliasname, size, buffer); if (status == FAIL) { sprintf(errbuf,"Cannot get the real name for the alias named \"%s\".\n", aliasname); H5Epush(__FILE__, "HE5_GDaliasinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqfldalias | | | | DESCRIPTION: Retrieves the number of fields & aliases and string length of| | fields & aliases list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfldalias long Number of fields & aliases in "Data | | Fields" group. | | | | INPUTS: | | gridID hid_t Grid structure ID | | | | OUTPUTS: | | fldalias char* Fields & aliases names in "Data Fields" | | group (Comma-separated list) | | strbufsize long* Fields & aliases name list string length| | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqfldalias(hid_t gridID, char *fldalias, long *strbufsize) { long nfldalias = FAIL; /* Number of fields & aliases (return) */ long idx = FAIL; /* grid index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDF-EOS" group ID */ char *grpname = (char *)NULL; /* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and grid index */ /* ----------------------------------------------------- */ status = HE5_GDchkgdid(gridID, "HE5_GDinqfldalias", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_GDinqfldalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/GRIDS/"); strcat(grpname, HE5_GDXGrid[idx].gdname); strcat(grpname,"/Data Fields"); /* search group with grpname for the number of fields & aliases */ /* ------------------------------------------------------------ */ nfldalias = HE5_EHdatasetcat(fid, grpname, fldalias, strbufsize); if ( nfldalias < 0 ) { sprintf(errbuf, "Cannot find the fields & aliases. \n"); H5Epush(__FILE__, "HE5_GDinqfldalias", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } else { sprintf(errbuf, "Checking for grid ID failed. \n"); H5Epush(__FILE__, "HE5_GDinqfldalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return (nfldalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDll2mm_cea | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | projcode int GCTP projection code | | zonecode int UTM zone code | | projparm long Projection parameters | | spherecode int GCTP spheriod code | | xdimsize long xdimsize from GDcreate | | ydimsize long ydimsize from GDcreate | | upleftpt double upper left corner coordinates (DMS) | | lowrightpt double lower right corner coordinates (DMS) | | longitude long longitude array (DMS) | | latitude long latitude array (DMS) | | npnts long number of lon-lat points | | | | OUTPUTS: | | x double X value array | | y double Y value array | | scaleX double X grid size | | scaley double Y grid size | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Dec 04 Adura Adekunjo Added support for EASE grid | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDll2mm_cea(int projcode,int zonecode, int spherecode, double projparm[], long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[], long npnts, double lon[], double lat[], double x[], double y[], double *scaleX, double *scaleY) { herr_t status = SUCCEED; /* routine return status variable */ #if defined(SGI64) int (*for_trans[100]) (double, double, double *, double *); #else long (*for_trans[100]) (double, double, double *, double *); #endif long errorcode = 0; /* GCTP error code */ double xMtr0, xMtr1, yMtr0, yMtr1; double lonrad0; /* Longitude in radians of upleft point */ double latrad0; /* Latitude in radians of upleft point */ double lonrad; /* Longitude in radians of point */ double latrad; /* Latitude in radians of point */ char *errbuf; /* Buffer for error message */ /*CHECKPOINTER(upleftpt); CHECKPOINTER(lowrightpt); CHECKPOINTER(longitude); CHECKPOINTER(latitude);*/ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDll2mm_cea", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } if(npnts <= 0) { status = FAIL; sprintf(errbuf,"Improper npnts value\"%li\" must be greater than zero. \n", npnts); H5Epush(__FILE__, "HE5_GDll2mm_cea", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } if ( projcode == HE5_GCTP_BCEA) { for_init(projcode, zonecode, projparm, spherecode, NULL, NULL, &errorcode, for_trans); /* Convert upleft and lowright X coords from DMS to radians */ /* -------------------------------------------------------- */ lonrad0 = HE5_EHconvAng(upleftpt[0], HE5_HDFE_DMS_RAD); lonrad = HE5_EHconvAng(lowrightpt[0], HE5_HDFE_DMS_RAD); /* Convert upleft and lowright Y coords from DMS to radians */ /* -------------------------------------------------------- */ latrad0 = HE5_EHconvAng(upleftpt[1], HE5_HDFE_DMS_RAD); latrad = HE5_EHconvAng(lowrightpt[1], HE5_HDFE_DMS_RAD); /* Convert from lon/lat to meters(or whatever unit is, i.e unit of r_major and r_minor) using GCTP */ /* ----------------------------------------- */ errorcode = for_trans[projcode] (lonrad0, latrad0, &xMtr0, &yMtr0); x[0] = xMtr0; y[0] = yMtr0; /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDll2mm_cea", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* Convert from lon/lat to meters(or whatever unit is, i.e unit of r_major and r_minor) using GCTP */ /* ----------------------------------------- */ errorcode = for_trans[projcode] (lonrad, latrad, &xMtr1, &yMtr1); x[1] = xMtr1; y[1] = yMtr1; /* Report error if any */ /* ------------------- */ if (errorcode != 0) { status = FAIL; sprintf(errbuf, "GCTP Error: %li\n", errorcode); H5Epush(__FILE__, "HE5_GDll2mm_cea", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* Compute x scale factor */ /* ---------------------- */ *scaleX = (xMtr1 - xMtr0) / xdimsize; /* Compute y scale factor */ /* ---------------------- */ *scaleY = (yMtr1 - yMtr0) / ydimsize; } else { status = FAIL; sprintf(errbuf, "Wrong projection code; this function is only for EASE grid \n"); H5Epush(__FILE__, "HE5_GDll2mm_cea", __LINE__, H5E_ARGS, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } if (errbuf != NULL) free(errbuf); COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDmm2ll_cea | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | projcode int GCTP projection code | | zonecode int UTM zone code | | projparm double Projection parameters | | spherecode int GCTP spheriod code | | xdimsize long xdimsize from GDcreate | | ydimsize long ydimsize from GDcreate | | upleftpt double upper left corner coordinates (DMS) | | lowrightpt double lower right corner coordinates (DMS) | | x double X value array | | y double Y value array | | npnts long number of x-y points | | | | OUTPUTS: | | longitude double longitude array (DMS) | | latitude double latitude array (DMS) | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ =============================================== | | Dec 04 Adura Adekunjo Added support for EASE grid | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDmm2ll_cea(int projcode,int zonecode, int spherecode, double projparm[], long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[], long npnts, double x[], double y[], double longitude[], double latitude[]) { herr_t status = FAIL; /* routine return status variable */ /* #if defined(SGI64) int (*for_trans[100]) (double, double, double *, double *); #else long (*for_trans[100]) (double, double, double *, double *); #endif */ #if defined(SGI64) int (*inv_trans[100]) (double, double, double*, double*); #else long (*inv_trans[100]) (double, double, double*, double*); #endif long errorcode = 0; /* GCTP error code */ int i; char *errbuf; /* Buffer for error message */ CHECKPOINTER(upleftpt); CHECKPOINTER(lowrightpt); CHECKPOINTER(longitude); CHECKPOINTER(latitude); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDmm2ll_cea", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } if(npnts <= 0) { status = FAIL; sprintf(errbuf,"Improper npnts value\"%li\" must be greater than zero. \n", npnts); H5Epush(__FILE__, "HE5_GDmm2ll_cea", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } if ( projcode == HE5_GCTP_BCEA) { inv_init(projcode, zonecode, projparm, spherecode, NULL, NULL, &errorcode, inv_trans); /* Convert from meters(or whatever unit is, i.e unit of r_major and r_minor) to lat/lon using GCTP */ /* ----------------------------------------- */ for(i=0; i 0 ) { if (fieldlist != NULL) free(fieldlist); if (fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return (nalias); } else { sprintf(errbuf, "Cannot find the aliases.\n"); H5Epush(__FILE__, "HE5_GDgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return(FAIL); } } else { if(nalias > 0 ) { strncpy(aliaslist, tmpbuf, *strbufsize-1); aliaslist[*strbufsize-1] = '\0'; } else { sprintf(errbuf, "Cannot find the aliases.\n"); H5Epush(__FILE__, "HE5_GDgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return(FAIL); } } } else { sprintf(errbuf, "Invalid input field group flag. \n"); H5Epush(__FILE__, "HE5_GDgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else { sprintf(errbuf, "Checking for grid ID failed. \n"); H5Epush(__FILE__, "HE5_GDgetaliaslist", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (fieldlist != NULL) free(fieldlist); if (fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return (nalias); } /* ***************************************************************************** | | | F O R T R A N 7 7 W R A P P E R S | | | ***************************************************************************** */ /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDopenF (FORTRAN wrapper) | | | | DESCRIPTION: Opens or creates HDF file in order to create, read, or write | | a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | FileID int None HDF-EOS file ID | | | | INPUTS: | | filename char* None Filename | | | | OUTPUTS: | | None | | | | NOTES: | | | | HDF5 Library Functions Called: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/28/00 A. Muslimov | | 3/13/02 A. Muslimov Added "Flags" options for core metadata. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDopenF(char *filename, int Flags) { int FileID = FAIL;/* Return file ID */ hid_t fid = FAIL;/* hdf5 type file ID */ uintn flags = 9999;/* HDF5 file access code */ char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDopenF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Set up the file access flag */ /* --------------------------- */ if (Flags == HE5F_ACC_RDWR || Flags == HDF5_ACC_RDWR) flags = H5F_ACC_RDWR; else if (Flags == HE5F_ACC_RDONLY || Flags == HDF5_ACC_RDONLY) flags = H5F_ACC_RDONLY; else if (Flags == HE5F_ACC_TRUNC || Flags == HDF5_ACC_CREATE) flags = H5F_ACC_TRUNC; else { sprintf(errbuf, "File access flag is not supported. \n"); H5Epush(__FILE__, "HE5_GDopenF", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Call HE5_GDopen to perform file access */ /* -------------------------------------- */ fid = HE5_GDopen(filename,flags); if(fid == FAIL) { sprintf(errbuf, "Error calling HE5_GDopen() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDopenF", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } FileID = (int)fid; free(errbuf); return(FileID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDcreateF (FORTRAN wrapper) | | | | DESCRIPTION: Creates a grid within the file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | GridID int None Grid structure ID | | | | INPUTS: | | FileID int None File ID | | gridname char None Grid structure name | | xdimsize long None Number of columns in grid | | ydimsize long None Number of rows in grid | | upleftpt double None Location (m/deg) of upper left corner | | lowrightpt double None Location (m/deg) of lower right corner | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/28/00 A. Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDcreateF(int FileID, char *gridname, long xdimsize, long ydimsize, double upleftpt[], double lowrightpt[]) { int GridID = FAIL;/* grid ID (return value) */ hid_t gridID = FAIL;/* HDF5 type grid ID */ hid_t fid = FAIL;/* HDF5 type file ID */ char *errbuf = (char *)NULL; /* Buffer for error message */ errbuf = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char) ); if (errbuf == NULL) { H5Epush(__FILE__, "HE5_GDcreateF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } fid = (hid_t)FileID; gridID = HE5_GDcreate(fid, gridname, xdimsize, ydimsize, upleftpt, lowrightpt); if (gridID == FAIL) { sprintf(errbuf, "Error calling HE5_GDcreate() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDcreateF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); GridID = (int)gridID; return(GridID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDattachF (FORTRAN wrapper) | | | | DESCRIPTION: Attaches to an existing grid within the file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | GridID int None HDF-EOS type grid ID | | | | INPUTS: | | FileID int None HDF-EOS file id | | gridname char* None grid sructure name | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDattachF(int FileID, char *gridname) { int GridID = FAIL; /* Return value of the Grid ID */ hid_t gridID = FAIL; /* HDF5 type Grid ID */ hid_t fid = FAIL; /* HDF5 type file ID */ char *errbuf = (char *)NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDattachF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } fid = (hid_t)FileID; gridID = HE5_GDattach(fid, gridname); if(gridID == FAIL) { sprintf(errbuf, "Error calling HE5_GDattach() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDattachF", __LINE__,H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } GridID = (int)gridID; return(GridID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdetachF (FORTRAN wrapper) | | | | DESCRIPTION: Detaches from grid interface and performs file housekeeping. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | HDF5 Library Functions Called: | | H5Dclose | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdetachF(int GridID) { int ret = FAIL;/* (int) Return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdetachF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDdetach(gridID); if(status == FAIL) { sprintf(errbuf, "Error calling HE5_GDdetach() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDdetachF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDcloseF (FORTRAN wrapper) | | | | DESCRIPTION: Closes file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | FileID int HDF-EOS type file ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDcloseF(int FileID) { int ret = FAIL;/* (int) return status variable */ hid_t fid = FAIL;/* HDF5 type file ID */ herr_t status = FAIL;/* routine return status variable */ char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDcloseF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } fid = (hid_t)FileID; /* Call HE5_GDclose to perform file close */ /* -------------------------------------- */ status = HE5_GDclose(fid); if(status == FAIL) { sprintf(errbuf, "Error calling HE5_GDclose() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDcloseF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefdimF | | | | DESCRIPTION: Defines numerical value of dimension (FORTRAN wrapper) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GrdiID int grid structure ID | | dim. name char dimension name | | dim. size long dimension size | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 00 D.Wynne Original Version | | Aug 00 A.Muslimov Updated to reflect data type changes. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdefdimF(int GridID, char *dimname, long dim) { int ret = SUCCEED; herr_t status = SUCCEED; hid_t gridID = FAIL; hsize_t tdim = 0; char *errbuf = (char *)NULL; errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); tdim = (hsize_t)dim; gridID = (hid_t)GridID; status = HE5_GDdefdim(gridID, dimname, tdim); if ( status == FAIL ) { sprintf(errbuf, "Error calling HE5_GDdefdim from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDdefdimF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefprojF (FORTRAN wrapper) | | | | DESCRIPTION: Defines projection of grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | projcode int GCTP projection code | | zonecode int UTM zone code | | spherecode int GCTP spheriod code | | projparm double Projection parameters | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdefprojF(int GridID, int projcode, int zonecode, int spherecode, double projparm[]) { int ret = FAIL; /* routine return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t gridID = FAIL; /* HDF5 type grid ID */ char *errbuf = (char *)NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdefprojF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDdefproj(gridID, projcode, zonecode, spherecode, projparm); if(status == FAIL) { sprintf(errbuf, "Error calling HE5_GDdefproj() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDdefprojF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdeforiginF (FORTRAN wrapper) | | | | DESCRIPTION: Defines the origin of the grid data. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None Grid ID | | origincode int origin code | | HDFE_GD_UL (0) | | HDFE_GD_UR (1) | | HDFE_GD_LL (2) | | HDFE_GD_LR (3) | | | | OUTPUTS: | | None | | | | NOTES: | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdeforiginF(int GridID, int origincode) { int ret = FAIL;/* routine return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ char *errbuf = (char *)NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdeforigin", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDdeforigin(gridID, origincode); if ( status == FAIL) { sprintf(errbuf, "Error calling HE5_GDdeforigin() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDdeforiginF", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdeffld | | | | | | DESCRIPTION: Defines data field within grid structure (FORTRAN) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int Grid structure ID | | fieldname char fieldname | | fortdimlist char Dimension list (comma-separated list) | | FORTRAN dimesion order | | fortmaxdimlist char Max Dimension list (FORTRAN order) | | numtype int field type | | merge int merge code | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 00 D.Wynne Modified for HDF5 | | Aug 00 A.Muslimov Updated to reflect data type changes. | | Nov 00 A.Muslimov Updated to reverse order of "fortmaxdimlist"entries.| | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdeffld(int GridID, char *fieldname, char *fortdimlist, char *fortmaxdimlist, int numtype, int merge) { int ret = SUCCEED;/* routine return status variable */ herr_t status = SUCCEED;/* routine return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ hid_t numbertype = FAIL;/* HDF5 type data type ID */ char *dimlist = (char *)NULL;/* Dimension list (C order) */ char *maxdimlist = (char *)NULL;/* Max. Dim. list (C) */ char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdeffld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { sprintf(errbuf,"Error calling HE5_EHconvdatatype() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDdeffld", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } if(strcmp(fortmaxdimlist,"") == 0) fortmaxdimlist = NULL; /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *)calloc(strlen(fortdimlist) + 1, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for dimlist.\n"); H5Epush(__FILE__, "HE5_GDdeffld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortdimlist, dimlist); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_EHrevflds() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDdeffld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } if (fortmaxdimlist != NULL) { /* Allocate space for C order dimension list */ /* ----------------------------------------- */ maxdimlist = (char *)calloc(strlen(fortmaxdimlist) + 1, sizeof(char)); if(maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for maxdimlist.\n"); H5Epush(__FILE__, "HE5_GDdeffld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } /* Reverse entries in maximum dimension list (FORTRAN -> C) */ /* -------------------------------------------------------- */ status = HE5_EHrevflds(fortmaxdimlist, maxdimlist); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_EHrevflds() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDdeffld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(maxdimlist); return(FAIL); } } else { maxdimlist = NULL; } gridID = (hid_t)GridID; /* Call Define Field routine */ /* ------------------------- */ status = HE5_GDdeffield(gridID, fieldname, dimlist, maxdimlist, numbertype, merge); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_GDdeffld() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDdeffld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); if (maxdimlist !=NULL) free(maxdimlist); return(FAIL); } free(dimlist); if (maxdimlist !=NULL) free(maxdimlist); free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDsetfill (FORTRAN wrapper) | | | | DESCRIPTION: Sets fill value for the specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int grid structure ID | | fieldname char* field name | | fillval void* fill value | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDsetfill(int GridID, char *fieldname, int numtype, void *fillval) { int ret = FAIL;/* (int) return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ hid_t ntype = FAIL;/* HDF5 type data type ID */ char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDsetfill", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } ntype = HE5_EHconvdatatype(numtype); if(ntype == FAIL) { sprintf(errbuf,"Error calling HE5_EHconvdatatype() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDsetfill", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDsetfillvalue(gridID, fieldname, ntype, fillval); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_GDsetfillvalue() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDsetfill", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdeftileF | | | | DESCRIPTION: Defines tiling parameters, FORTRAN wrapper for GDdeftile | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | tilecode int tile code | | tilerank int number of tiling dimensions | | tiledims long tiling dimensions | | | | OUTPUTS: | | None | | | | NOTES: | | None | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 00 D.Wynne Original Version | | Aug 00 A.Muslimov Updated to reflect data type changes | | Jan 01 A.Muslimov Added proper FORTRAN to C dimension order conversion| | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdeftileF(int GridID, int tilecode, int tilerank, long *tiledims) { int ret = FAIL; /* (int) return status */ int i = 0; /* Loop index */ hid_t gridID = FAIL; /* HDF5 type grid ID */ herr_t status = FAIL; /* return status */ hsize_t *tdims = (hsize_t *)NULL;/* size variable */ char *errbuf = (char *)NULL; /* error message buffer */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdeftileF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } tdims = (hsize_t *)calloc(tilerank, sizeof(hsize_t)); if(tdims == NULL) { sprintf(errbuf,"Cannot allocate memory for tdims.\n"); H5Epush(__FILE__, "HE5_GDdeftileF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Convert from FORTRAN to C dimension order */ /* ----------------------------------------- */ for(i = 0; i < tilerank; i++) tdims[i] = (hsize_t)tiledims[tilerank - 1 - i]; gridID = (hid_t)GridID; status = HE5_GDdeftile(gridID, tilecode, tilerank, tdims); if ( status == FAIL ) { sprintf(errbuf, "Error calling HE5_GDdeftile() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDdeftileF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(tdims); return(FAIL); } free(tdims); free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefcompF (FORTRAN wrapper) | | | | DESCRIPTION: Defines compression type and parameters | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | compcode int compression code | | compparm int compression parameters | | | | OUTPUTS: | | None | | | | NOTES: Before calling this function, storage must be CHUNKED | | Values of compression code | | HDFE_COMP_NONE 0 | | HDFE_COMP_RLE 1 | | HDFE_COMP_NBIT 2 | | HDFE_COMP_SKPHUFF 3 | | HDFE_COMP_DEFLATE 4 | | HDFE_COMP_SZIP_CHIP 5 | | HDFE_COMP_SZIP_K13 6 | | HDFE_COMP_SZIP_EC 7 | | HDFE_COMP_SZIP_NN 8 | | HDFE_COMP_SZIP_K13orEC 9 | | HDFE_COMP_SZIP_K13orNN 10 | | HDFE_COMP_SHUF_DEFLATE 11 | | HDFE_COMP_SHUF_SZIP_CHIP 12 | | HDFE_COMP_SHUF_SZIP_K13 13 | | HDFE_COMP_SHUF_SZIP_EC 14 | | HDFE_COMP_SHUF_SZIP_NN 15 | | HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HDFE_COMP_SHUF_SZIP_K13orNN 17 | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | Aug 03 S.Zhao Added Szip compression methods. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdefcompF(int GridID, int compcode, int compparm[]) { int ret = FAIL;/* (int) return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ char *errbuf = (char *)NULL; /* error message buffer */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdefcompF", __LINE__, H5E_RESOURCE, H5E_NOSPACE,"Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDdefcomp(gridID, compcode, compparm); if ( status == FAIL ) { sprintf(errbuf, "Error calling HE5_GDdefcomp() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDdefcompF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefpixregF (FORTRAN wrapper) | | | | DESCRIPTION: Defines pixel registration within grid cell. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | pixregcode int None Pixel registration code | | HDFE_CENTER (0) | | HDFE_CORNER (1) | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdefpixregF(int GridID, int pixregcode) { int ret = FAIL; /* (int) returmn status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t gridID = FAIL; /* HDF5 type grid ID */ char *errbuf = (char *)NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdefpixregF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDdefpixreg(gridID, pixregcode); if ( status == FAIL) { sprintf(errbuf, "Error calling HE5_GDdefpixreg() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDdefpixregF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDwrcharfld | | | | DESCRIPTION: Writes data to a character field (FORTRAN wrapper around | | GDwritefield) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int grid structure ID | | fieldname char fieldname | | elemlen int each element length in array of string | | numelem int number of elements in declared buffer | | array | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | | | | | OUTPUTS: | | data void data buffer for write | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao For an array of character string dataset. | | Jun 04 S.Zhao Added one more argument (numelem). | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDwrcharfld(int GridID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *data) { int ret = FAIL; /* (int) return status variable */ int i = 0; /* Loop index */ int rank = 0; /* Field rank */ hid_t gridID = FAIL; /* HDF5 type grid ID */ hid_t ntype[1] = {FAIL}; /* Field number type */ herr_t status = FAIL; /* return status variable */ hsize_t dims[HE5_DTSETRANKMAX];/* Field dimensions */ hsize_t *stride = (hsize_t *)NULL;/* Stride array (C order) */ hsize_t *edge = (hsize_t *)NULL;/* Edge array (C order) */ hssize_t *start = (hssize_t *)NULL;/* Start array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char **strdatabuf = NULL; /* string data buffer */ int nelem = 0; /* number of elements in array of str*/ int strsize = 0; /* each str length in array of str */ char *blankPtr = (char *)NULL; /* pointer to blank character */ char *tmpString = (char *)NULL; /* pointer to temp string */ int attr = 0; /* attribute value */ hsize_t count[1]; /* number of attribute elements */ /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[i] = 0; /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; /* Get field info */ status = HE5_GDfieldinfo(gridID, fieldname, &rank, dims, ntype, NULL, NULL); if (status == SUCCEED) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_GDwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_GDwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(errbuf); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_GDwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } strsize = elemlen; nelem = dims[0]; tmpString = (char *)calloc(1,strsize+1); if(tmpString == NULL) { sprintf(errbuf,"Cannot allocate memory for tmpString.\n"); H5Epush(__FILE__, "HE5_GDwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } strdatabuf = (char **)malloc(nelem*sizeof(char *)); for (i = 0; i C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } myedge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(myedge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_GDwrfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } /* get maxdims for the field */ status = HE5_GDflddiminfo(gridID, fieldname, &rank, dims, maxdims); /* see if we need first to extend data dimensions for unlimited dimensions */ for (i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } } unlimdim = i; if(append == FALSE) { for (i = 0; i < rank; i++) { if(edge[i] > dims[i]) myedge[i] = dims[i]; else myedge[i] = edge[i]; } } else { for (i = 0; i < rank; i++) { myedge[i] = edge[i]; } } if((append == TRUE) && (edge[unlimdim] > dims[unlimdim])) { hssize_t newstart[8]; hsize_t newedge[8]; for (i = 0; i < rank; i++) { newstart[i]=start[i]; newedge[i] = edge[i]; } newstart[unlimdim]=edge[unlimdim]-1; newedge[unlimdim] = 1; status = HE5_GDwrrdfield(gridID, fieldname, "w", newstart, stride, newedge,data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_GDwrfld", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(myedge); free(errbuf); return(FAIL); } else { for (i = 0; i < rank; i++) { dims[i]=edge[i]; } } } status = HE5_GDwrrdfield(gridID, fieldname, "w", start, stride, myedge,data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_GDwrfld", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(myedge); free(errbuf); return(FAIL); } } else { sprintf(errbuf, "Error calling GDfieldinfo() from FORTRAN wrapper.") ; H5Epush(__FILE__, "HE5_GDwrfld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; } if (start != NULL) free(start); if (stride != NULL) free(stride); if (edge != NULL) free(edge); if (errbuf != NULL) free(errbuf); if (myedge != NULL) free(myedge); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDrdfld | | | | DESCRIPTION: Reads data from field (FORTRAN wrapper around GDreadfield) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int Grid structure ID | | fieldname char fieldname | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | buffer void data buffer for read | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 99 Abe Taaheri Modified for HDF5 | | Jun 00 D.Wynne Updated to reflect data type changes | | Aug 00 A.Muslimov Updated to reflect data type changes. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDrdfld(int GridID, char *fieldname, long fortstart[], long fortstride[], long fortedge[], void *buffer) { int ret = FAIL; /* (int) return status variable */ int i = 0; /* Loop index */ int rank = 0; /* Field rank */ hid_t gridID = FAIL; /* HDF5 type grid ID */ hid_t ntype[1] = {FAIL}; /* Field number type */ herr_t status = FAIL; /* return status variable */ hsize_t dims[HE5_DTSETRANKMAX];/* Field dimensions */ hsize_t *stride = (hsize_t *)NULL;/* Stride array (C order) */ hsize_t *edge = (hsize_t *)NULL;/* Edge array (C order) */ hssize_t *start = (hssize_t *)NULL;/* Start array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[i] = 0; /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDrdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; /* Get field info */ /* -------------- */ status = HE5_GDfieldinfo(gridID, fieldname, &rank, dims, ntype, NULL,NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_GDrdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_GDrdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(errbuf); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_GDrdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } status = HE5_GDwrrdfield(gridID, fieldname, "r", start, stride, edge, buffer); if (status == FAIL) { sprintf(errbuf, "Error calling HE5_GDwrrdfield() from FORTRAN wrapper.") ; H5Epush(__FILE__, "HE5_GDrdfld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } } else { sprintf(errbuf, "Error calling HE5_GDfieldinfo() from FORTRAN wrapper.") ; H5Epush(__FILE__, "HE5_GDrdfld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; } if (start != NULL) free(start); if (stride != NULL) free(stride); if (edge != NULL) free(edge); if (errbuf != NULL) free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDrdcharfld | | | | DESCRIPTION: Reads data from a character string field (FORTRAN wrapper | | around GDreadfield) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int Grid structure ID | | fieldname char fieldname | | elemlen int each element length in array of string | | numelem int number of elements in declared buffer | | array | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | buffer void data buffer for read | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 04 S.Zhao For an array of character string dataset. | | Jun 04 S.Zhao Added two more arguments (elemlen and numelem). | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDrdcharfld(int GridID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *buffer) { int ret = FAIL; /* (int) return status variable */ int i = 0; /* Loop index */ int rank = 0; /* Field rank */ hid_t gridID = FAIL; /* HDF5 type grid ID */ hid_t ntype[1] = {FAIL}; /* Field number type */ herr_t status = FAIL; /* return status variable */ hsize_t dims[HE5_DTSETRANKMAX];/* Field dimensions */ hsize_t *stride = (hsize_t *)NULL;/* Stride array (C order) */ hsize_t *edge = (hsize_t *)NULL;/* Edge array (C order) */ hssize_t *start = (hssize_t *)NULL;/* Start array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char **strdatabuf = NULL; /* string data buffer */ int stlen = 0; /* whole string array length */ int nelem = 0; /* number of elements in array of str*/ int strsize = 0; /* each str length in array of str */ int attr = 0; /* attribute value */ int j = 0; /* Loop index */ int num_elem_passed_out; int numread; /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[i] = 0; /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDrdcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; /* Get field info */ /* -------------- */ status = HE5_GDfieldinfo(gridID, fieldname, &rank, dims, ntype, NULL,NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_GDrdcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_GDrdcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(errbuf); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_GDrdcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } status = HE5_GDreadlocattr(gridID, fieldname, "StringLengthAttribute", &attr); if (status == FAIL) { sprintf(errbuf, "Cannot read attribute from the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_GDrdcharfld", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } if(elemlen < attr ) { sprintf(errbuf, "Element length passed in is not correct. Should be same as in declration"); H5Epush(__FILE__, "HE5_GDrdcharfld", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } strsize = attr; stlen = dims[0] * strsize; nelem = stlen / strsize; strdatabuf = (char **)malloc(nelem*sizeof(char *)); for (i = 0; i C) */ /* ------------------------------------------ */ for (i = 0; i < RANK; i++) { count[i] = (hsize_t)fortcount[RANK - 1 - i]; } gridID = (hid_t)GridID; if ((dtype == HE5T_CHARSTRING) || (dtype == H5T_NATIVE_CHAR) || (dtype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of attribute elements.\n"); H5Epush(__FILE__, "HE5_GDwrattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_GDwrattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; status = HE5_GDwriteattr(gridID, attrname, dtype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write data to the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_GDwrattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { status = HE5_GDwriteattr(gridID, attrname, dtype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write data to the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_GDwrattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDwrgattr | | | | DESCRIPTION: FORTRAN wrapper to write/update group attribute in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int grid structure ID | | attrname char* attribute name | | ntype int attribute HDF numbertype | | fortcount[] long Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 99 Abe Taaheri Modified data types | | Jun 00 D.Wynne Updated for native datatypes | | Aug 00 A.Muslimov Updated to reflect recent datatype changes. | | Mar 04 S.Zhao Modified for a character string attribute. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDwrgattr(int GridID, char *attrname, int ntype, long fortcount[], void *datbuf) { int ret = FAIL; /* (int) return status variable */ int RANK = 1; /* Rank of a dataset */ int i = 0; /* Loop index */ herr_t status = FAIL; /* routine return status variable */ hid_t gridID = FAIL; /* HDF5 type grid ID */ hid_t dtype = FAIL; /* HDF5 type data type ID */ hsize_t *count = (hsize_t *)NULL;/* Count array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDwrgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } dtype = HE5_EHconvdatatype(ntype); if(dtype == FAIL) { sprintf(errbuf,"Error calling HE5_EHconvdatatype() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDwrgattr", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } count = (hsize_t *)calloc(RANK, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_GDwrgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < RANK; i++) { count[i] = (hsize_t)fortcount[RANK - 1 - i]; } gridID = (hid_t)GridID; if ((dtype == HE5T_CHARSTRING) || (dtype == H5T_NATIVE_CHAR) || (dtype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of group attribute elements.\n"); H5Epush(__FILE__, "HE5_GDwrgattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_GDwrgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; status = HE5_GDwritegrpattr(gridID, attrname, dtype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_GDwrgattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { status = HE5_GDwritegrpattr(gridID, attrname, dtype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_GDwrgattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDwrlattr | | | | DESCRIPTION: FORTRAN wrapper to Write/update local attribute in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int grid structure ID | | fieldname char* field with local attribute | | attrname char* local attribute name | | ntype int local attribute HDF numbertype | | fortcount[] long Number of local attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 00 D.Wynne Original Programmer | | Mar 04 S.Zhao Modified for a character string attribute. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDwrlattr(int GridID, char *fieldname, char *attrname, int ntype, long fortcount[], void *datbuf) { int ret = FAIL; /* (int) return status variable */ int RANK = 1; /* Rank of a dataset */ int i = 0; /* Loop index */ herr_t status = FAIL; /* routine return status variable */ hid_t gridID = FAIL; /* HDF5 type grid ID */ hid_t dtype = FAIL; /* HDF5 type data type ID */ hsize_t *count = (hsize_t *)NULL;/* Count array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDwrlattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } dtype = HE5_EHconvdatatype(ntype); if(dtype == FAIL) { sprintf(errbuf,"Error calling HE5_EHconvdatatype() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDwrlattr", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } count = (hsize_t *)calloc(RANK, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_GDwrlattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < RANK; i++) { count[i] = (hsize_t)fortcount[RANK - 1 - i]; } gridID = (hid_t)GridID; if ((dtype == HE5T_CHARSTRING) || (dtype == H5T_NATIVE_CHAR) || (dtype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of local attribute elements.\n"); H5Epush(__FILE__, "HE5_GDwrlattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_GDwrlattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; status = HE5_GDwritelocattr(gridID, fieldname, attrname, dtype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write local attribute value.\n"); H5Epush(__FILE__, "HE5_GDwrlattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { status = HE5_GDwritelocattr(gridID, fieldname, attrname, dtype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write local attribute value.\n"); H5Epush(__FILE__, "HE5_GDwrlattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDrdattr (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute from a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDrdattr(int GridID, char *attrname, void *datbuf) { int ret = FAIL;/* (int) return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDrdattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDreadattr(gridID, attrname, datbuf); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_GDreadattr() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDrdattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDrdgattr (FORTRAN wrapper) | | | | DESCRIPTION: Reads group attribute from a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDrdgattr(int GridID, char *attrname, void *datbuf) { int ret = FAIL;/* (int) return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDrdgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDreadgrpattr(gridID, attrname, datbuf); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_GDreadgrpattr() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDrdgattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDrdlattr (FORTRAN wrapper) | | | | DESCRIPTION: Reads local attribute from a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | fieldname char field name | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDrdlattr(int GridID, char *fieldname, char *attrname, void *datbuf) { int ret = FAIL;/* (int) return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDrdlattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDreadlocattr(gridID, fieldname, attrname, datbuf); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_GDreadlocattr() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDrdlattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqdimsF | | | | DESCRIPTION: Returns dimension names and values defined in grid structure | | (FORTRAN Wrapper) | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nDim long Number of defined dimensions | | | | INPUTS: | | GridID int grid structure ID | | | | OUTPUTS: | | dimnames char Dimension names (comma-separated) | | dims long Dimension values | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 00 D.Wynne Original Version | | Aug 00 A.Muslimov Updated to reflect data type changes. | | | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqdimsF(int GridID, char *dimnames, long dims[]) { long nDim = FAIL; /* Number of dimensions */ long strbufsize = 0; /* Size of a string */ hid_t gridID = FAIL; /* HDF5 type grid ID */ int i = 0; /* Loop index */ hsize_t *tdims = (hsize_t *)NULL;/* Dimension size array */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqdimsF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; nDim = HE5_GDnentries(gridID, 0, &strbufsize); if(nDim == FAIL) { sprintf(errbuf,"Error calling HE5_GDnentries() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDinqdimsF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } tdims = (hsize_t *)calloc(nDim, sizeof(hsize_t)); if(tdims == NULL) { sprintf(errbuf,"Cannot allocate memory for tdims.\n"); H5Epush(__FILE__, "HE5_GDinqdimsF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } nDim = HE5_GDinqdims(gridID, dimnames, tdims); if(nDim == FAIL) { sprintf(errbuf,"Error calling HE5_GDinqdims() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDinqdimsF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(tdims); return(FAIL); } for(i = 0; i < nDim; i++) dims[i] = (long)tdims[i]; free(tdims); free(errbuf); return(nDim); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdiminfoF | | | | DESCRIPTION: FORTRAN wrapper for GDdiminfo to Retrieve size of specified | | dimension. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size long None Size of dimension | | | | INPUTS: | | GridID int None grid structure id | | dimname char* None Dimension name | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. | | Oct 99 Abe Taaheri Added to convert hsize_t to integer | | Jun 00 D.Wynne Modified to update datatype changes | | Aug 00 A.Muslimov Modified to reflect data type changes | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDdiminfoF(int GridID, char *dimname) { long size = FAIL; /* dimension size (return) */ hid_t gridID = FAIL; /* HDF5 type grid ID */ hsize_t tsize = 0; char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdiminfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; tsize = HE5_GDdiminfo(gridID, dimname); if(tsize == 0) { sprintf(errbuf,"Error calling HE5_GDdiminfo() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDdiminfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } size = (long)tsize; free(errbuf); return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDfldinfo | | | | DESCRIPTION: FORTRAN wrapper arount GDfieldinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int grid structure id | | fieldname char name of field | | | | OUTPUTS: | | rank long rank of field (# of dims) | | dims long field dimensions | | ntype int field number type | | fortdimlist char field dimension list (FORTRAN order) | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 99 Abe Taaheri Modified for HDF5 | | Jun 00 D.Wynne Updated to reflect datatypes changes | | Aug 00 A.Muslimov Updated to reflect data type changes | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDfldinfo(int GridID, char *fieldname, int *rank, long dims[], int *ntype, char *fortdimlist, char *fortmaxdimlist) { int ret = SUCCEED;/* (int) return status variable */ int j = 0; /* Loop Index */ hid_t gridID = FAIL; /* HDF5 type grid ID */ hid_t dtype[1] = {FAIL};/* number types */ herr_t status = SUCCEED;/* routine return status variable */ hsize_t swap = 0; /* Temporary variable */ hsize_t tempdims[HE5_DTSETRANKMAX]; /* Dimension list in C order */ char *dimlist = (char *)NULL; char *maxdimlist = (char *)NULL; char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDfldinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for dimlist.\n"); H5Epush(__FILE__, "HE5_GDfldinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Allocate space for C order max dimension list */ /* --------------------------------------------- */ maxdimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for maxdimlist.\n"); H5Epush(__FILE__, "HE5_GDfldinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } /* Initialize tempdims[] array */ /* --------------------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) tempdims[j] = 0; /* Get field info */ /* -------------- */ gridID = (hid_t)GridID; status = HE5_GDfieldinfo(gridID, fieldname, rank, tempdims, dtype, dimlist, maxdimlist); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_GDfieldinfo() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDfldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(maxdimlist); return(FAIL); } *ntype = (int)dtype[0]; /* If no error then reverse order of dimension sizes */ /* ------------------------------------------------- */ if (status == SUCCEED) { for (j = 0; j < *rank / 2; j++) { swap = tempdims[*rank - 1 - j]; tempdims[*rank - 1 - j] = tempdims[j]; tempdims[j] = swap; } /*change the datatype */ for (j = 0; j < *rank; j++) { dims[j] = (long)tempdims[j]; } /* Reverse order of dimensions entries in dimension list */ /* ----------------------------------------------------- */ if(fortdimlist != (char *)NULL) { status = HE5_EHrevflds(dimlist, fortdimlist); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_EHrevflds() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDfldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } if(fortmaxdimlist != (char *)NULL) { status = HE5_EHrevflds(maxdimlist, fortmaxdimlist); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_EHrevflds() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDfldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } if (maxdimlist != NULL) free(maxdimlist); if (dimlist != NULL) free(dimlist); if (errbuf != NULL) free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDtileinfoF | | | | DESCRIPTION: FORTRAN wrapper for GDtileinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int grid structure ID | | fieldname char* name of field | | | | OUTPUTS: | | tilecode int* tile code | | tilerank int* rank of a dataset | | tiledims long the array containing sizes | | of each dimension of a tile | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================ | | Dec 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDtileinfoF(int GridID, char *fieldname, int *tilecode, int *tilerank, long tiledims[]) { int ret = FAIL; /* return status */ int j = 0; /* Loop index */ herr_t status = FAIL; /* return status */ hid_t gridID = FAIL; /* HDF5 type grid ID */ hsize_t tempdims[HE5_DTSETRANKMAX]; /* Temporary dimension sizes array */ hsize_t swap = 0; /* Temporary dimension size */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffer */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDtileinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Initialize tempdims[] array */ /* --------------------------- */ for ( j = 0; j < HE5_DTSETRANKMAX; j++) tempdims[ j ] = 0; gridID = (hid_t)GridID; status = HE5_GDtileinfo(gridID, fieldname, tilecode, tilerank, tempdims); if(status == FAIL) { sprintf(errbuf,"Error calling GDtileinfo() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDtileinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } for (j = 0; j < *tilerank / 2; j++) { swap = tempdims[*tilerank - 1 - j]; tempdims[*tilerank - 1 - j] = tempdims[j]; tempdims[j] = swap; } for (j = 0; j < *tilerank; j++) tiledims[j] = (long)tempdims[j]; free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqdatatypeF | | | | DESCRIPTION: Inquires about data fields in grid (FORTRAN Wrapper) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | fieldname char * | | attrname char * | | | | OUTPUTS: | | type int None HDF-EOS data type ID | | TypeClass int | | TypeOrder int | | TypeSize long | | | | NOTES: | | Date Programmer Description | | ====== ============ ================================================= | | Oct 99 D.Wynne Original Programmer | | Dec 99 A.Muslimov Changed the status return data type from hid_t to | | int . | | Feb 00 A.Muslimov Added error checkings. | | Mar 00 A.Muslimov Changed the ID of field group from gd_id to data_id.| | Mar 00 A.Muslimov Updated to include Group/Local attributes. | | 5/10/00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | Aug 00 A.Muslimov Updated to reflect data type changes. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDinqdatatypeF(int GridID, char *fieldname, char *attrname, int fieldgroup, int *type, int *TypeClass, int *TypeOrder, long *TypeSize) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* return status variable */ hid_t *typeID = NULL; /* HDF5 type data type ID */ hid_t gridID = FAIL; /* HDF5 type grid ID */ H5T_class_t *classID = (H5T_class_t *)NULL;/* Data type class ID */ H5T_order_t *Order = (H5T_order_t *)NULL;/* Data type byte order */ size_t *tempsize = (size_t *)NULL;/* Temporary variable */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } typeID = (hid_t *)calloc(1, sizeof(hid_t)); if(typeID == NULL) { sprintf(errbuf,"Cannot allocate memory for typeID.\n"); H5Epush(__FILE__, "HE5_GDinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } classID = (H5T_class_t *)calloc(1, sizeof(H5T_class_t)); if(classID == NULL) { sprintf(errbuf,"Cannot allocate memory for classID.\n"); H5Epush(__FILE__, "HE5_GDinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); return(FAIL); } Order = (H5T_order_t *)calloc(1, sizeof(H5T_order_t)); if(Order == NULL) { sprintf(errbuf,"Cannot allocate memory for Order.\n"); H5Epush(__FILE__, "HE5_GDinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(classID); return(FAIL); } tempsize = (size_t *)calloc(1, sizeof(size_t)); if(tempsize == NULL) { sprintf(errbuf,"Cannot allocate memory for tempsize.\n"); H5Epush(__FILE__, "HE5_GDinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(classID); free(Order); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDinqdatatype(gridID, fieldname, attrname, fieldgroup, typeID,classID, Order, tempsize); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_GDinqdatatype() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDinqdatatypeF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(classID); free(Order); free(tempsize); return(FAIL); } *type = (int)typeID[0]; *TypeSize = (long)tempsize[0]; *TypeClass = (int)classID[0]; *TypeOrder = (int)Order[0]; free(errbuf); free(typeID); free(classID); free(Order); free(tempsize); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqgridF (FORTRAN wrapper) | | | | DESCRIPTION: Returns number and names of grid structures in file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nGrid long Number of grid structures in file | | | | INPUTS: | | filename char HDF-EOS filename | | | | OUTPUTS: | | gridlist char List of grid names (comma-separated) | | strbufsize long Length of gridlist | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================ | | 9/11/00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqgridF(char *filename, char *gridlist, long *strbufsize) { long nGrid = FAIL; /* Number of grid structures in file */ char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqgridF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Call "HE5_GDinqgrid" routine */ /* ------------------------ */ nGrid = HE5_GDinqgrid(filename, gridlist, strbufsize); if(nGrid == FAIL) { sprintf(errbuf,"Error calling HE5_GDinqgrid() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDinqgridF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); return(nGrid); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgridinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Returns xdim, ydim and location of upper left and lower | | right corners, in meters. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None Grid ID | | | | OUTPUTS: | | xdimsize long Number of columns in grid | | ydimsize long Number of rows in grid | | upleftpt double Location (m/deg) of upper left corner | | lowrightpt double Location (m/deg) of lower right corner | | | | NOTES: | | | | Date Programmer Description | | ======= ============ ================================================= | | 9/11/00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDgridinfoF(int GridID, long *xdimsize, long *ydimsize, double upleftpt[], double lowrightpt[]) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t gridID = FAIL; /* "HDFEOS" group ID */ char *errbuf = (char *)NULL; /* buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDgridinfoF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDgridinfo(gridID, xdimsize, ydimsize, upleftpt, lowrightpt); if(status == FAIL) { sprintf( errbuf,"Error calling \"HE5_GDgridinfo()\" from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDgridinfoF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------r | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqflds (FORTRAN wrapper) | | | | DESCRIPTION: Retrieve information about all data fields defined in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nFld int Number of fields in grid | | | | INPUTS: | | GridID int None Grid ID | | | | OUTPUTS: | | fieldlist char* Field names (comma-separated) | | rank int Array of ranks | | ntype int Array of field data type class IDs | | | | NOTES: | | | | Date Programmer Description | | ======= ============ ================================================= | | 9/11/00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDinqflds(int GridID, char *fieldlist, int rank[], int ntype[]) { int nFld = 0; /* Number of fields (return) */ int i; /* Loop index */ hid_t gridID = FAIL;/* Grid ID */ hid_t *dtype = (hid_t *)NULL;/* number types */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDinqflds", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; /* Call "HE5_GDinqfields" routine to get number of fields */ /* -------------------------------------------------- */ nFld = HE5_GDinqfields(gridID, fieldlist, NULL, NULL); if (nFld == FAIL) { sprintf(errbuf, "Error calling \"HE5_GDinqfields()\" from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDinqflds", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } if (nFld > 0) { dtype = (hid_t *)calloc(nFld, sizeof(hid_t)); if (dtype == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_GDinqflds", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } nFld = HE5_GDinqfields(gridID, fieldlist, rank, dtype); if (nFld == FAIL) { sprintf(errbuf, "Error calling \"HE5_GDinqfields()\" from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDinqflds", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dtype); return(FAIL); } for (i = 0; i < nFld; i++) ntype[ i ] = (int)dtype[i]; free(dtype); } free(errbuf); return(nFld); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDprojinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Returns GCTP projection code, zone code, spheroid code | | and projection parameters. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None Grif ID | | | | OUTPUTS: | | projcode int GCTP projection code | | zonecode int UTM zone code | | spherecode int GCTP spheriod code | | projparm double Projection parameters | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/11/00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDprojinfoF(int GridID, int *projcode, int *zonecode, int *spherecode, double projparm[]) { int ret = FAIL; /* routine return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t gridID = FAIL; /* HDF-EOS file ID */ char *errbuf = (char *)NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDprojinfoF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; status = HE5_GDprojinfo(gridID,projcode,zonecode,spherecode,projparm); if (status == FAIL) { sprintf(errbuf, "Error calling \"HE5_GDprojinfo()\" from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDprojinfoF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdefboxregionF (FORTRAN wrapper) | | | | DESCRIPTION: Defines region for subsetting in a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | RegionID int None Region ID | | | | INPUTS: | | GridID int Grid structure ID | | cornerlon double dec deg Longitude of opposite corners of box | | cornerlat double dec deg Latitude of opposite corners of box | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/12/00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdefboxregionF(int GridID, double cornerlon[], double cornerlat[]) { int RegionID = FAIL;/* Region ID (return value) */ hid_t regionID = FAIL;/* Region ID */ hid_t gridID = FAIL;/* Grid structure ID */ char *errbuf=(char *)NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDdefboxregionF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; regionID = HE5_GDdefboxregion(gridID, cornerlon, cornerlat); if (regionID == FAIL) { sprintf(errbuf, "Error calling \"HE5_GDdefboxregion()\" from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDdefboxregionF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); RegionID = (int)regionID; return(RegionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDreginfo | | | | DESCRIPTION: Retrieves size of region in bytes. FORTRAN Wrapper | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int None HDF-EOS type grid ID | | RegionID int Region ID | | fieldname char* Fieldname | | | | OUTPUTS: | | ntype int field data type class ID | | rank int field rank | | dims long dimensions of field region | | size long size in bytes of field region | | upleftpt double Upper left corner coord for region | | lowrightpt double Lower right corner coord for region | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 99 Abe Taaheri Added for HDF5 | | Jun 00 D.Wynne Modified to reflect datatype changes | | Sep 00 A.Muslimov Updated to reflect data type changes. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDreginfo(int GridID, int RegionID, char *fieldname, int *ntype, int *rank, long dims[], long *size, double upleftpt[], double lowrightpt[]) { int ret = FAIL; /* (int) return status variable */ int j; /* Loop index */ hid_t gridID = FAIL; /* Grid ID */ hid_t regionID = FAIL; /* Region ID */ herr_t status = FAIL; /* routine return status variable */ hid_t *dtype = (hid_t *)NULL;/* number type */ hsize_t swap = 0; /* Temporary swap variable */ hsize_t tempdims[HE5_DTSETRANKMAX];/* Temporary dimensions array */ char *errbuf = (char *)NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDreginfoF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } gridID = (hid_t)GridID; regionID = (hid_t)RegionID; dtype = (hid_t *)calloc(1, sizeof(hid_t)); if (dtype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for dtype.\n"); H5Epush(__FILE__, "HE5_GDreginfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Initialize tempdims[] array */ /* --------------------------- */ for (j = 0; j C) */ /* -------------------------------------------- */ status = HE5_EHrevflds(fortaliaslist, aliaslist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in alias list.\n"); H5Epush(__FILE__, "HE5_GDsetaliasF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(aliaslist); return(FAIL); } /* Call GDsetalias() */ /* ----------------- */ status = HE5_GDsetalias(gridID, fieldname, aliaslist); if ( status == FAIL ) { sprintf(errbuf, "Error calling GDsetalias() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_GDsetaliasF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(aliaslist); return(FAIL); } free(aliaslist); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdropaliasF (FORTRAN wrapper) | | | | DESCRIPTION: Removes the alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | GridID int Grid structure ID | | aliasname char Alias name to remove | | fldgroup int Field group flag | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Apr 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdropaliasF(int GridID, int fldgroup, char *aliasname) { int ret = FAIL;/* (int)Return status variable */ herr_t status = FAIL;/* return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ gridID = (hid_t)GridID; status = HE5_GDdropalias(gridID, fldgroup, aliasname); if(status == FAIL) { sprintf(errbuf,"Error calling GDdropalias() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDdropaliasF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDaliasinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves information about field aliases | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | GridID int Grid structure ID | | aliasname char alias name | | fldgroup int Field group flag | | | | OUTPUTS: | | length int Buffer size | | buffer char Buffer with original field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Apr 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDaliasinfoF(int GridID, int fldgroup, char *aliasname, int *length, char *buffer) { int ret = FAIL;/* (int) return status variable */ herr_t status = FAIL;/* return status variable */ hid_t gridID = FAIL;/* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ gridID = (hid_t)GridID; status = HE5_GDaliasinfo(gridID, fldgroup, aliasname, length, buffer); if(status == FAIL) { sprintf(errbuf,"Error calling GDaliasinfo() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_GDaliasinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqfldaliasF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of fields & aliases and string length of| | fields & aliases list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfldalias long Number of fields & aliases in "Data | | Fields" group. | | | | INPUTS: | | GridID int Grid structure ID | | | | OUTPUTS: | | fldalias char* Fields & aliases names in "Data Fields" | | group (Comma-separated list) | | strbufsize long* Fields & aliases name list string length| | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqfldaliasF(int GridID, char *fldalias, long *strbufsize) { long nfldalias = FAIL; /* Number of fields & aliases (return) */ hid_t gridID = FAIL; /* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ gridID = (hid_t)GridID; nfldalias = HE5_GDinqfldalias(gridID, fldalias, strbufsize); if ( nfldalias < 0 ) { sprintf(errbuf, "Cannot retrieve the fields & aliases. \n"); H5Epush(__FILE__, "HE5_GDinqfldaliasF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nfldalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDwrmeta | | | | DESCRIPTION: Defines structural metadata for pre-existing field | | within grid structure (FORTRAN) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | GridID int grid structure ID | | fieldname char fieldname | | fortdimlist char Dimension list (comma-separated list) | | FORTRAN dimesion order | | ntype int field type | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 05 S. Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDwrmeta(int GridID, char *fieldname, char *fortdimlist, int ntype) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t gridID = FAIL; /* HDF5 type grid ID */ hid_t numbertype = FAIL; /* HDF5 type data type ID */ char *dimlist = (char *)NULL; /* Dimension list (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ gridID = (hid_t)GridID; numbertype = HE5_EHconvdatatype(ntype); if(numbertype == FAIL) { H5Epush(__FILE__, "HE5_GDwrmeta", __LINE__, H5E_DATATYPE, H5E_BADVALUE, "Cannot convert datatype for FORTRAN wrapper."); HE5_EHprint("Error: Cannot convert datatype for FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_GDwrmeta", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *) calloc(strlen(fortdimlist) + 1, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for dimlist.\n"); H5Epush(__FILE__, "HE5_GDwrmeta", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortdimlist, dimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_GDwrmeta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } /* Call Write Metadata routine */ /* --------------------------- */ status = HE5_GDwritefieldmeta(gridID, fieldname, dimlist, numbertype); if(status == FAIL) { sprintf(errbuf,"Cannot write \"%s\" field metadata.\n", fieldname); H5Epush(__FILE__, "HE5_GDwrmeta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } free(dimlist); free(errbuf); ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgetaliaslistF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of aliases and aliases list in "Data | | Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nalias long number of aliases in "Data Fields" | | group | | | | INPUTS: | | GridID int grid structure ID | | fldgroup int field group flag | | | | OUTPUTS: | | aliaslist char* list of aliases in "Data Fields" group | | (comma-separated list) | | strbufsize long* length of aliases list | | | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 05 S.Zhao Original development | | Dec 05 T.Roegner NCR 44092 - Added CYGWIN capability | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDgetaliaslistF(int GridID, int fldgroup, char *aliaslist, long *strbufsize) { long nalias = FAIL; /* Number of aliases (return) */ hid_t gridID = FAIL; /* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ gridID = (hid_t)GridID; nalias = HE5_GDgetaliaslist(gridID, fldgroup, aliaslist, strbufsize); if (nalias < 0) { sprintf(errbuf, "Cannot retrieve the aliases. \n"); H5Epush(__FILE__, "HE5_GDgetaliaslistF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDsetdimscaleF (FORTRAN wrapper) | | | | DESCRIPTION: Defines a dimension scale for a fields dimension in a GRID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gdID int GRID structure ID | | fieldname char field name | | dimname char dim name | | dim long Dimemsion value | | numbertype_in int dim scale data type such as DFNT_INT32, | | DFNT_FLOAT64, DFNT_FLOAT32, etc. | | data void data buffer for write | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDsetdimscaleF(int GridID, char *fieldname, char *dimname, long dim, int numbertype_in, void * data) { herr_t status; hid_t gdID; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ gdID = (hid_t)GridID; status = HE5_GDsetdimscale(gdID, fieldname, dimname, (hsize_t) dim, (hid_t) numbertype_in, data); if (status < 0) { sprintf(errbuf, "Cannot set dimension scale %s for field %s. \n", dimname, fieldname); H5Epush(__FILE__, "HE5_GDsetdimscaleF", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgetdimscaleF (FORTRAN wrapper) | | | | DESCRIPTION: Get dimension scale for a dimension of a field in a GRID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return databuffsize SUCCEED, (-1) FAIL | | | | INPUTS: | | gdID int GRID structure ID | | fieldname char field name | | dimname char dim name | | | | | | OUTPUTS: | | dimsize long dimension size | | ntype int number type | | databuff void data buffer for read | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDgetdimscaleF(int GridID, char *fieldname, char *dimname, long *dimsize, int *ntype, void * databuff) { hsize_t databuffsize = (hsize_t)FAIL;/* Size of buffer */ hid_t gdID = FAIL; /* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ hsize_t ds; hid_t numtype; gdID = (hid_t)GridID; databuffsize = HE5_GDgetdimscale(gdID, fieldname, dimname, &ds, &numtype, databuff); *dimsize = (long) ds; *ntype = (int) numtype; if ( databuffsize < 0 ) { sprintf(errbuf,"Cannot get dimension scale %s for field %s. \n", dimname, fieldname); H5Epush(__FILE__, "HE5_GDgetdimscaleF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((long)databuffsize); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDreaddscaleattrF (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute associated with a dimension scale field | | from a GD. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gdID int None HDF-EOS type GRID ID | | fieldname char field name | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 10 Abe Taaheri Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDreaddscaleattrF(int GridID, char *fieldname, char *attrname, void *datbuf) { herr_t status = FAIL; /* return status */ hid_t gdID = FAIL; /* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ gdID = (hid_t)GridID; status = HE5_GDreaddscaleattr(gdID, fieldname, attrname, datbuf); if ( status < 0 ) { sprintf(errbuf,"Cannot read attribute %s for dimension scale %s. \n", attrname, fieldname); H5Epush(__FILE__, "HE5_GDreaddscaleattrF", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDwritedscaleattrF (FORTRAN wrapper) | | | | DESCRIPTION: Writes/updates attribute associated with a dimension scale | | field in a GD. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gdID int GRID structure ID | | fieldname char* dimension scale SDS name | | attrname char* attribute name | | numtype int attribute datatype ID | | count[] long Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDwritedscaleattrF(int GridID, char *fieldname, char *attrname, int numtype, long count[], void *datbuf) { herr_t status = FAIL; /* return status */ hid_t gdID = FAIL; /* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ hsize_t fort_count[HE5_FLDNUMBERMAX]; gdID = (hid_t)GridID; fort_count[0] = (hsize_t)count[0]; status = HE5_GDwritedscaleattr(gdID, fieldname, attrname, (hid_t)numtype, fort_count, datbuf); if ( status < 0 ) { sprintf(errbuf,"Cannot write attribute %s for dimension scale %s. \n", attrname, fieldname); H5Epush(__FILE__, "HE5_GDwritedscaleattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDdscaleattrinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves information about dimension scale attribute | | (attribute associated with a specified dimension scale field) | | in a GD. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gdID int None HDF-EOS type GRID ID | | fieldname char* field name | | attrname char* attribute name | | | | OUTPUTS: | | ntype int attribute data type ID | | fortcount long Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_GDdscaleattrinfoF(int GridID, char *fieldname, char *attrname, int *ntype, long *fortcount) { herr_t status = FAIL; /* return status */ hid_t gdID = FAIL; /* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ hsize_t *count = (hsize_t *)NULL; /* C-order count array */ hid_t *dtype = (hid_t *)NULL; /* Data type class ID */ gdID = (hid_t)GridID; dtype = (hid_t *)calloc(1, sizeof(hid_t)); if(dtype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for \"dtype\".\n"); H5Epush(__FILE__, "HE5_GDdscaleattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if(count == NULL) { sprintf(errbuf,"Cannot allocate memory for \"count\".\n"); H5Epush(__FILE__, "HE5_GDdscaleattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dtype); return(FAIL); } count[0] = 0; status = HE5_GDdscaleattrinfo(gdID, fieldname, attrname, dtype, count); if ( status == FAIL) { sprintf(errbuf, "Cannot retrieve attribute info for the %s dimension scale. \n", fieldname); H5Epush(__FILE__, "HE5_GDdscaleattrinfoF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(dtype); return(FAIL); } *fortcount = (long)(*count); *ntype = (int)(*dtype); free(count); free(dtype); return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDinqdscaleattrsF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified dimension scale | | in a GD. | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long number of attributes (-1 if fails) | | | | INPUTS: | | gdID int None HDF-EOS type GRID ID | | fieldname char dimension scale name | | attrnames char attribute name(s) | | | | OUTPUTS: | | strbufsize long String length of attribute (in bytes) | | | | NOTES: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | June 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_GDinqdscaleattrsF(int GridID, char *fieldname, char *attrnames, long *strbufsize) { long status = FAIL; /* return status */ hid_t gdID = FAIL; /* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ gdID = (hid_t)GridID; status = HE5_GDinqdscaleattrs(gdID, fieldname, attrnames, strbufsize); if ( status == FAIL ) { sprintf(errbuf, "Cannot find the attribute %s for dimension scale %s. \n",attrnames,fieldname); H5Epush(__FILE__, "HE5_GDinqdscaleattrsF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDgetEastAndNorthFiles | | | | DESCRIPTION: With user provided STPDATADIR environment variable this | | functions returns the files needed for STP projection. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | None void | | | | INPUTS: | | eastFile char nad27 file provides in gctp | | northFile char nad83 file provides in gctp | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 11 Abe Taaheri Added support for State Plane Projection grid | | | | END_PROLOG | -----------------------------------------------------------------------------*/ void HE5_GDgetEastAndNorthFiles(char *eastFile, char *northFile) { char *ptr = NULL; char lastables[256]; ptr = (char *)getenv("STPDATADIR"); #if defined(HDFVIEWPLUGIN) if(ptr == NULL) { ptr = (char *)getenv("PWD"); strcpy(lastables, "STPDATADIR="); strcat(lastables,ptr); strcat(lastables,"/lib/ext/eosdata"); putenv(lastables); } ptr = (char *)getenv("STPDATADIR"); #endif if (ptr == NULL) { eastFile = (char *) NULL; northFile = (char *) NULL; } else { strcpy(lastables, ptr); #if defined(CYGWIN) sprintf( eastFile, "%s/nad27sp_le", lastables ); /* use littlt endian binary files */ sprintf( northFile, "%s/nad83sp_le", lastables ); #else sprintf( eastFile, "%s/nad27sp_be", lastables ); /* use big endian binary files */ sprintf( northFile, "%s/nad83sp_be", lastables ); #endif } return; } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_GDflddiminfo | | | | DESCRIPTION: This functions returns dims and maxdims | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | gridID hid_t None HDF-EOS type grid ID | | fieldname char* fieldname | | | | OUTPUTS: | | rank int field rank | | dims hsize_t dimensions of field | | maxdims hsize_t max dimensions of field | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Sep 11 Abe Taaheri Added support for unlimited dimension adjustment | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_GDflddiminfo(int GridID, char *fieldname, int *rank, hsize_t dims[], hsize_t maxdims[]) { herr_t status = FAIL; /* return status */ hid_t gdID = FAIL; /* HDF5 type grid ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Buffer for error message */ hid_t ntype[1] = {FAIL}; /* Field numbertypes */ char *dimlist = (char *)NULL; /* Dimension list in C order */ char *maxdimlist = (char *)NULL; /* max Dimension list in C order */ char *dimbuf = (char *)NULL; /* Dimension buffer */ char *comma = (char *)NULL; /* Pointer to comma */ char *dimcheck = (char *)NULL; /* Dimension check buffer */ hsize_t dimsize = 0; /* Dimension size */ int maxrank = 0; /* max dim rank */ int i = 0; /* Loop index */ int foundAllDim = 1; /* found all dimensions flag */ int first = 1; /* first entry flag */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ long xdim = 0; /* X dim size */ long ydim = 0; /* Y dim size */ gdID = (hid_t)GridID; /* Allocate space for C order dimension list */ /* ----------------------------------------- */ maxdimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); dimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(dimlist == NULL || maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for input list.\n"); H5Epush(__FILE__, "HE5_GDflddiminfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get field info */ /* --------------- */ status = HE5_GDfieldinfo(gdID, fieldname, rank, dims, ntype, dimlist, maxdimlist); if ( status == FAIL ) { sprintf(errbuf, "Error calling HE5_GDfieldinfo. \n") ; H5Epush(__FILE__, "HE5_GDflddiminfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate space for dimbuf, copy maxdimlist into it, & append comma */ /* ------------------------------------------------------------------ */ if(maxdimlist != NULL) { dimbuf = (char *) calloc(strlen(maxdimlist) + 64, sizeof(char)); if(dimbuf == NULL) { H5Epush(__FILE__, "HE5_GDflddiminfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Copy "maxdimlist" to "dimbuf", & append comma */ /* --------------------------------------------- */ strcpy(dimbuf, maxdimlist); strcat(dimbuf, ","); /* Find comma */ /* ---------- */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in grid */ while (comma != NULL) { /* Copy dimension list entry to dimcheck */ /* ------------------------------------- */ dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { H5Epush(__FILE__, "HE5_GDflddiminfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(dimbuf); free(dimlist); free(maxdimlist); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get dimension size */ /* ------------------ */ if ((strcmp(dimcheck, "XDim") == 0) || (strcmp(dimcheck, "YDim") == 0)) { status = HE5_GDgridinfo(gdID, &xdim, &ydim, NULL, NULL); if(status == FAIL) { sprintf(errbuf, "Cannot get information about Grid.\n"); H5Epush(__FILE__, "HE5_GDflddiminfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimbuf); free(dimlist); free(maxdimlist); return(FAIL); } if(strcmp(dimcheck, "XDim") == 0) { dimsize = (hsize_t)xdim; } else if(strcmp(dimcheck, "YDim") == 0) { dimsize = (hsize_t)ydim; } } else { dimsize = HE5_GDdiminfo(gdID, dimcheck); } if ( (dimsize > 0) || (dimsize == H5S_UNLIMITED) ) { maxdims[maxrank] = dimsize; maxrank++; } else { /* * If dimension list entry not found - set error return * status, append name to utility buffer for error report */ status = FAIL; foundAllDim = 0; if (first == 1) strcpy(utlbuf, dimcheck); else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ strcpy(dimbuf, comma + 1); comma = strchr(dimbuf, ','); free(dimcheck); } free(dimbuf); free(dimlist); free(maxdimlist); /* If no dimensions found, report error */ /* ------------------------------------ */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Dimension(s) \"%s\" not found for \"%s\" field. \n", utlbuf, fieldname); H5Epush(__FILE__, "HE5_GDflddiminfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* If maxrank !=rank then report error */ /* ------------------------------------ */ if ( maxrank != *rank ) { status = FAIL; sprintf(errbuf,"Dimension rank doesn't match Max dimension rank.\n"); H5Epush(__FILE__, "HE5_GDflddiminfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } } /* "maxlist == NULL" ==> maxdims[]= dims[] */ /* ---------------------------------------- */ else { for(i = 0; i < *rank; i++ ) maxdims[ i ] = dims[ i ]; } return (status); } #ifndef __cplusplus /* HDF types used in FORTRAN bindings */ #if defined(DEC_ALPHA) || defined(IRIX) || defined(UNICOS) || defined(LINUX64) || defined(IA64) || defined(MACINTOSH) || defined(MACINTEL) || defined(IBM6000) || defined(CYGWIN) #define INT32 INT #define INT32V INTV #define PINT32 PINT #else #define INT32 LONG #define INT32V LONGV #define PINT32 PLONG #endif /* File/Grid access routines */ FCALLSCFUN2(INT, HE5_GDopenF, HE5_GDOPEN, he5_gdopen, STRING, INT) FCALLSCFUN6(INT, HE5_GDcreateF, HE5_GDCREATE, he5_gdcreate, INT, STRING, LONG, LONG, DOUBLEV, DOUBLEV) FCALLSCFUN2(INT, HE5_GDattachF, HE5_GDATTACH, he5_gdattach, INT, STRING) FCALLSCFUN1(INT, HE5_GDdetachF, HE5_GDDETACH, he5_gddetach, INT) FCALLSCFUN1(INT, HE5_GDcloseF, HE5_GDCLOSE, he5_gdclose, INT) /* Definition routines */ FCALLSCFUN3(INT, HE5_GDdefdimF, HE5_GDDEFDIM, he5_gddefdim, INT, STRING, LONG) FCALLSCFUN5(INT, HE5_GDdefprojF, HE5_GDDEFPROJ, he5_gddefproj, INT, INT, INT, INT, DOUBLEV) FCALLSCFUN2(INT, HE5_GDdeforiginF, HE5_GDDEFORIGIN, he5_gddeforigin, INT, INT) FCALLSCFUN6(INT, HE5_GDdeffld, HE5_GDDEFFLD, he5_gddeffld, INT, STRING, STRING, STRING, INT, INT) FCALLSCFUN4(INT, HE5_GDsetfill, HE5_GDSETFILL, he5_gdsetfill, INT, STRING, INT, PVOID) FCALLSCFUN3(INT, HE5_GDdefcompF, HE5_GDDEFCOMP, he5_gddefcomp, INT, INT, INTV) FCALLSCFUN4(INT, HE5_GDdeftileF, HE5_GDDEFTLE, he5_gddeftle, INT, INT, INT, PLONG) FCALLSCFUN5(INT, HE5_GDdefcomtileF, HE5_GDDEFCOMTLE, he5_gddefcomtle, INT, INT, PINT, INT, PLONG) FCALLSCFUN2(INT, HE5_GDdefpixregF, HE5_GDDEFPREG, he5_gddefpreg, INT, INT) FCALLSCFUN3(INT, HE5_GDsetaliasF, HE5_GDSETALIAS, he5_gdsetalias, INT, STRING, STRING) FCALLSCFUN3(INT, HE5_GDdropaliasF, HE5_GDDRPALIAS, he5_gddrpalias, INT, INT, STRING) /* I/O routines */ FCALLSCFUN6(INT, HE5_GDwrfld, HE5_GDWRFLD, he5_gdwrfld, INT, STRING, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN8(INT, HE5_GDwrcharfld, HE5_GDWRCHARFLD, he5_gdwrcharfld, INT, STRING, INT, INT, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN6(INT, HE5_GDrdfld, HE5_GDRDFLD, he5_gdrdfld, INT, STRING, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN8(INT, HE5_GDrdcharfld, HE5_GDRDCHARFLD, he5_gdrdcharfld, INT, STRING, INT, INT, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN3(INT, HE5_GDgetfill, HE5_GDGETFILL, he5_gdgetfill, INT, STRING, PVOID) FCALLSCFUN5(INT, HE5_GDwrattr, HE5_GDWRATTR, he5_gdwrattr, INT, STRING, INT, LONGV, PVOID) FCALLSCFUN5(INT, HE5_GDwrgattr, HE5_GDWRATTR, he5_gdwrgattr, INT, STRING, INT, LONGV, PVOID) FCALLSCFUN6(INT, HE5_GDwrlattr, HE5_GDWRLATTR, he5_gdwrlattr, INT, STRING, STRING, INT, LONGV, PVOID) FCALLSCFUN3(INT, HE5_GDrdattr, HE5_GDRDATTR, he5_gdrdattr, INT, STRING, PVOID) FCALLSCFUN3(INT, HE5_GDrdgattr, HE5_GDRDGATTR, he5_gdrdgattr, INT, STRING, PVOID) FCALLSCFUN4(INT, HE5_GDrdlattr, HE5_GDRDLATTR, he5_gdrdlattr, INT, STRING, STRING, PVOID) FCALLSCFUN4(INT, HE5_GDwrmeta, HE5_GDWRMETA, he5_gdwrmeta, INT, STRING, STRING, INT) /* Inquiry routines */ FCALLSCFUN3(LONG, HE5_GDinqdimsF, HE5_GDINQDIMS, he5_gdinqdims, INT, PSTRING, LONGV) FCALLSCFUN2(LONG, HE5_GDdiminfoF, HE5_GDDIMINFO, he5_gddiminfo, INT, STRING) FCALLSCFUN4(INT, HE5_GDinqflds, HE5_GDINQFLDS, he5_gdinqflds, INT, PSTRING, INTV, INTV) FCALLSCFUN7(INT, HE5_GDfldinfo, HE5_GDFLDINFO, he5_gdfldinfo, INT, STRING, PINT, LONGV, INTV, PSTRING, PSTRING) FCALLSCFUN8(INT, HE5_GDinqdatatypeF, HE5_GDINQDATATYPE, he5_gdinqdatatype, INT, STRING, STRING, INT, PINT, PINT, PINT, PLONG) FCALLSCFUN3(LONG, HE5_GDinqgridF, HE5_GDINQGRID, he5_gdinqgrid, STRING, PSTRING, PLONG) FCALLSCFUN5(INT, HE5_GDgridinfoF, HE5_GDGRIDINFO, he5_gdgridinfo, INT, PLONG, PLONG, DOUBLEV, DOUBLEV) FCALLSCFUN5(INT, HE5_GDprojinfoF, HE5_GDPROJINFO, he5_gdprojinfo, INT, PINT, PINT, PINT, DOUBLEV) FCALLSCFUN9(INT, HE5_GDreginfo, HE5_GDREGINFO, he5_gdreginfo, INT, INT, STRING, PINT, PINT, LONGV, PLONG, DOUBLEV, DOUBLEV) FCALLSCFUN4(INT, HE5_GDatinfo, HE5_GDATINFO, he5_gdattrinfo, INT, STRING, PINT, PLONG) FCALLSCFUN4(INT, HE5_GDgatinfo, HE5_GDGATINFO, he5_gdgatinfo, INT, STRING, PINT, PLONG) FCALLSCFUN5(INT, HE5_GDlatinfo, HE5_GDLATINFO, he5_gdlatinfo, INT, STRING, STRING, PINT, PLONG) FCALLSCFUN2(INT, HE5_GDorigininfoF, HE5_GDORGINFO, he5_gdorginfo, INT, PINT) FCALLSCFUN2(INT, HE5_GDpixreginfoF, HE5_GDPREGINFO, he5_gdpreginfo, INT, PINT) FCALLSCFUN4(INT, HE5_GDcompinfoF, HE5_GDCOMPINFO, he5_gdcompinfo, INT, STRING, PINT, INTV) FCALLSCFUN3(LONG, HE5_GDnentriesF, HE5_GDNENTRIES, he5_gdnentries, INT, INT, PLONG) FCALLSCFUN3(LONG, HE5_GDinqattrsF, HE5_GDINQATTRS, he5_gdinqattrs, INT, PSTRING, PLONG) FCALLSCFUN3(LONG, HE5_GDinqgrpattrsF, HE5_GDINQGATTRS, he5_gdinqgattrs, INT, PSTRING, PLONG) FCALLSCFUN4(LONG, HE5_GDinqlocattrsF, HE5_GDINQLATTRS, he5_gdinqlattrs, INT, STRING, PSTRING, PLONG) FCALLSCFUN5(INT, HE5_GDtileinfoF, HE5_GDTILEINFO, he5_gdtileinfo,INT,STRING,PINT,PINT,LONGV) FCALLSCFUN5(INT, HE5_GDaliasinfoF, HE5_GDALIASINFO, he5_gdaliasinfo, INT, INT, STRING, PINT, STRING) FCALLSCFUN3(LONG, HE5_GDinqfldaliasF, HE5_GDINQFLDALIAS, he5_gdinqfldalias,INT,PSTRING,PLONG) FCALLSCFUN4(LONG, HE5_GDgetaliaslistF, HE5_GDGETALIASLIST, he5_gdgetaliaslist,INT,INT,PSTRING,PLONG) /* Subsetting/Retrieving routines */ FCALLSCFUN3(INT, HE5_GDdefboxregionF, HE5_GDDEFBOXREG, he5_gddefboxreg, INT, DOUBLEV, DOUBLEV) FCALLSCFUN4(INT, HE5_GDextractregionF, HE5_GDEXTREG, he5_gdextreg, INT, INT, STRING, PVOID) FCALLSCFUN4(INT, HE5_GDdeftimeperiodF, HE5_GDDEFTMEPER, he5_gddeftmeper, INT, INT, DOUBLE, DOUBLE) FCALLSCFUN4(INT, HE5_GDdefvrtregionF, HE5_GDDEFVRTREG, he5_gddefvrtreg, INT, INT, STRING, DOUBLEV) FCALLSCFUN1(INT, HE5_GDdupregionF, HE5_GDDUPREG, he5_gddupreg, INT) FCALLSCFUN6(INT, HE5_GDgetpixelsF, HE5_GDGETPIX, he5_gdgetpix, INT, LONG, DOUBLEV, DOUBLEV, LONGV, LONGV) FCALLSCFUN6(LONG, HE5_GDgetpixvaluesF, HE5_GDGETPIXVAL, he5_gdgetpixval, INT, LONG, LONGV, LONGV, STRING, PVOID) FCALLSCFUN6(LONG, HE5_GDinterpolateF, HE5_GDINTERPOLATE, he5_gdinterpolate, INT, LONG, DOUBLEV, DOUBLEV, STRING, DOUBLEV) /* EXTERNAL DATA FILE INTERFACE */ FCALLSCFUN4(INT, HE5_GDsetextdataF, HE5_GDSETXDAT, he5_gdsetxdat,INT,STRING,LONGV,LONGV) FCALLSCFUN6(INT, HE5_GDgetextdataF, HE5_GDGETXDAT, he5_gdgetxdat,INT,STRING,LONG,STRING,LONGV,LONGV) /* Utility routine */ FCALLSCFUN15(INT,HE5_GDij2ll, HE5_GDIJ2LL, he5_gdij2ll, INT, INT, DOUBLEV, INT, LONG, LONG, DOUBLEV, DOUBLEV, LONG, LONGV, LONGV, DOUBLEV, DOUBLEV, INT, INT) FCALLSCFUN15(INT,HE5_GDll2ij, HE5_GDLL2IJ, he5_gdll2ij, INT, INT, DOUBLEV, INT, LONG, LONG, DOUBLEV, DOUBLEV, LONG, DOUBLEV, DOUBLEV, LONGV, LONGV, DOUBLEV, DOUBLEV) FCALLSCFUN13(INT, HE5_GDrs2ll, HE5_GDRS2LL, he5_gdrs2ll, INT, DOUBLEV, LONG, LONG, DOUBLEV, DOUBLEV, INT, DOUBLEV, DOUBLEV, DOUBLEV, DOUBLEV, INT, INT) FCALLSCFUN6(INT, HE5_GDsetdimscaleF, HE5_GDSETDIMSCALE, he5_gdsetdimscale,INT,STRING,STRING,LONG,INT,PVOID) FCALLSCFUN6(LONG, HE5_GDgetdimscaleF, HE5_GDGETDIMSCALE, he5_gdgetdimscale,INT,STRING,STRING,PLONG,PINT,PVOID) FCALLSCFUN4(INT, HE5_GDreaddscaleattrF,HE5_GDREADDSCALEATTR, he5_gdreaddscaleattr,INT,STRING,STRING,PVOID) FCALLSCFUN6(INT, HE5_GDwritedscaleattrF, HE5_GDWRITEDSCALEATTR, he5_gdwritedscaleattr,INT,STRING,STRING,INT,LONGV,PVOID) FCALLSCFUN5(INT, HE5_GDdscaleattrinfoF, HE5_GDDSCALEATTRINFO, he5_gddscaleattrinfo,INT,STRING,STRING,PINT,PLONG) FCALLSCFUN4(INT, HE5_GDinqdscaleattrsF, HE5_GDINQDSCALATTRS, he5_gdinqdscaleattrs,INT,STRING,STRING,PLONG) #endif hdf-eos5-5.1.14+dfsg.1/src/EHapi.c0000755000175000017500000160252312024715435017364 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | | | | Permission to use, modify, and distribute this software and its | | documentation for any purpose without fee is hereby granted, provided | | that the above copyright notice appear in all copies and that both that | | copyright notice and this permission notice appear in supporting | | documentation. | ---------------------------------------------------------------------------- */ #include /* The modification that needs _IGNORE_DIMSCALE_ preprocessor macro definition. It can be defined somewhere other than in EHapi.c, such as when configure script is executed. Problem ~ We want to make existing HDF-EOS5 files read by the netCDF-4 library. Although the netCDF-4 library is similar to the HDF-EOS5 library, the netCDF-4 library cannot read HDF-EOS5 files mainly due to the lack of netCDF-4 dimensions. So, we added netCDF-4 dimensions to existing HDF-EOS5 files. Attaching a netCDF-4 dimension scale to an HDF-EOS5 field introduces an attribute, "DIMENSION_LIST". Unfortunately, the type class of "DIMENSION_LIST" is H5T_VLEN, and its element is of H5T_STD_REF_OBJ type. This type is not allowed by the HDF-EOS5 library; so, users may get errors when accessing that attribute. For example, HE5_GDlocattrinfo() fails saying Cannot retrieve information about Attribute "DIMENSION_LIST" associated with the "..." field. Goal ~ Assuming that users do not have hard-coded list of attributes, they will call HE5_GDinqlocattrs() to get the attribute names attached to a field. If "DIMENSION_LIST" is not contained in the attribute names, users will not know that the problematic "DIMENSION_LIST" attribute exists, which prevents users from accessing that attribute. Implementation Details ~ HE5_GDinqlocattrs() is the function users call to get the list of attribute names. This HE5_GDinqlocattrs() will finally call HE5_EHobj_info() for each attribute, and we modified HE5_EHobj_info() function so that this function ignores an attribute if its class is H5T_VLEN, and its base type is H5T_STD_REF_OBJ If these two conditions are satisfied, HE5_EHobj_info() will return immediately without appending this attribute name to the list of attribute names. */ #ifndef _IGNORE_DIMSCALE_ #define _IGNORE_DIMSCALE_ #endif #define HE5_EHIDOFFSET 67108864 #define HE5_VERSIONLEN 32 #define HE5_NEOSHDF 200 #define HE5_DYNAMIC_BLKSIZE 32000 /* size of each Structure metadata block */ #define MetaBlocks 32 /* Max number of 32000 Structure metadata blocks */ /*int HDFEOS5ver_flg ; *//* will be set to 1 if the HDF-EOS5 version is later than 5.1.7, otherwise to 0 */ /*int HE5_STATIC_BLKSIZE = HE5_BLKSIZE;*/ /* will be used, after mdifications in EHopen, for buffer size memory allocatins of StructMetadata.0 for static method */ static int error_flg = 0; typedef struct { int active; /* File open flag */ hid_t HDFfid; /* HDF-EOS file ID */ hid_t gid; /* "HDFEOS" group ID */ uintn flags; /* File access flag */ char *filename; /* File name */ int DYNAMIC_flag; /* Flage for checking for the compatibality of StruvtMetadata with the version of HDF-EOS5 */ int HE5_STATIC_BLKSIZE; /* will be used, after mdifications in EHopen, for buffer size memory allocatins of StructMetadata.0 for static method */ }HE5_EHXTable; HE5_EHXTable HE5_HeosTable[HE5_NEOSHDF]; typedef struct { int metafile_active; char *saved_metabuf; long metabuf_length; long nmeta; int metaread_flag; }HE5_SAVED_METABUF; HE5_SAVED_METABUF Stored_meta[HE5_NEOSHDF]; /* FORTRAN WRAPPER PROTOTYPES */ int HE5_EHidinfoF(int fileID, int *fid, int *gid); double HE5_EHconvAngF(double inAngle, int code); int HE5_EHwrglatt(int fileID, char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_EHrdglatt(int fileID, char *attrname, void *datbuf); int HE5_EHglattinf(int fileID, char *attrname, int *ntype, long *fortcount); long HE5_EHinqglatts(int fileID, char *attrnames, long *strbufsize); int HE5_EHrdwrfileF(char *extfilename, uintn Flags, int ntype, long nelmnts, void *data); int HE5_EHinqglbtype(int fileID, char *attrname, int *Type, int *Class, int *Order, long *size); herr_t HE5_EHinsertmeta_Static(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]); herr_t HE5_EHinsertmeta_Dynamic(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]); char * HE5_EHmetagroup_Static(hid_t fid , char *structname, char *structcode, char *groupname, char *metaptrs[]); char * HE5_EHmetagroup_Dynamic(hid_t fid , char *structname, char *structcode, char *groupname, char *metaptrs[]); herr_t HE5_EHupdatemeta_Static(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]); herr_t HE5_EHupdatemeta_Dynamic(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]); herr_t HE5_EHgetnmeta(hid_t gid, long *nmeta); /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | FUNCTION: HE5_EHchkptr | | DESCRIPTION : Checks if the passed pointer != NULL | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | p void * Pointer | | OUTPUTS: | | | | NOTES: | | Date Programmer Description | | ======== ============ ================================================= | | 05/01/01 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHchkptr(void *p, char *name) { herr_t status = SUCCEED; char errbuf[HE5_HDFE_ERRBUFSIZE]; if(p == NULL) { status = FAIL; sprintf(errbuf,"INPUT ERROR: Parameter-pointer %s == NULL.\n", name); H5Epush(__FILE__, "HE5_EHchkptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | FUNCTION: HE5_EHchkname | | DESCRIPTION : Checks if the passed string doesn't contain illegal | | characters | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | p void * Pointer | | OUTPUTS: | | | | NOTES: | | Date Programmer Description | | ======== ============ ================================================= | | 06/01/01 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHchkname(char *p, char *name) { herr_t status = SUCCEED; char errbuf[HE5_HDFE_ERRBUFSIZE]; if(p == NULL) { status = FAIL; sprintf(errbuf,"HDF-EOS WARNING: The input parameter \"%s\" is a null pointer.\n", name); H5Epush(__FILE__, "HE5_EHchkname", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if( strchr(p,',') || strchr(p,';') || strchr(p,'/') ) { status = FAIL; sprintf(errbuf,"HDF-EOS WARNING: The input string named \"%s\" contains illegal character.\n", name); H5Epush(__FILE__, "HE5_EHchkname", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | FUNCTION: HE5_EHdtype2mtype | | DESCRIPTION : Takes file data type ID, converts it to a memory data type ID| | Return Value Type Units Description | | ============ ====== ========= ===================================== | | mtype hid_t Memory data type ID | | INPUTS: | | dtype hid_t File data type ID | | OUTPUTS: | | None | | NOTES: | | Date Programmer Description | | ======== ============ ================================================= | | 07/12/00 A.Muslimov Original development. | | June 02 S.Zhao Added an H5T_NATIVE_CHAR data type ID. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_EHdtype2mtype(hid_t dtype) { hid_t mtype = FAIL; hid_t nativetype; char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *) calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHdtype2mtype", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } nativetype = H5Tget_native_type(dtype, H5T_DIR_ASCEND); /* We cannot return nativetype because the caller will not call H5Tclose() for it. */ if (nativetype == FAIL) { sprintf(errbuf,"The datatype \"%d\" is not supported (unknown).\n", (int)dtype); H5Epush(__FILE__, "HE5_EHdtype2mtype", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); } else { int i; hid_t typelists[] = { H5T_NATIVE_CHAR, H5T_NATIVE_SCHAR, H5T_NATIVE_UCHAR, H5T_NATIVE_SHORT, H5T_NATIVE_USHORT, H5T_NATIVE_INT, H5T_NATIVE_UINT, H5T_NATIVE_LONG, H5T_NATIVE_ULONG, H5T_NATIVE_LLONG, H5T_NATIVE_ULLONG, H5T_NATIVE_FLOAT, H5T_NATIVE_DOUBLE, H5T_NATIVE_LDOUBLE }; for (i = 0; i < sizeof(typelists) / sizeof(typelists[0]); ++i) { if (H5Tequal(typelists[i], nativetype) > 0) { mtype = typelists[i]; break; } } if (mtype == FAIL) { sprintf(errbuf,"The datatype \"%d\" is not supported (unknown).\n", (int)dtype); H5Epush(__FILE__, "HE5_EHdtype2mtype", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); } H5Tclose(nativetype); } free(errbuf); return(mtype); } /* Data type WRAPPERS */ /* ================== */ /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | FUNCTION: HE5_EHhid2long | | DESCRIPTION : Takes a scalar variable of 'hid_t' type, converts it to a | | scalar variable of 'long' type, and returns the value. | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue long | | INPUTS: | | invalue hid_t | | OUTPUTS: | | None | | NOTES: | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHhid2long(hid_t invalue) { long outvalue = FAIL; if (sizeof(hid_t) == sizeof(int)) outvalue = HE5_EHint2long(invalue); else if (sizeof(hid_t) == sizeof(long)) outvalue = invalue; return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHint2long | | | | DESCRIPTION : Takes a scalar variable of 'int' type, converts it to a | | scalar variable of 'long' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue long | | INPUTS: | | invalue int | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHint2long(int invalue) { herr_t status = FAIL; long outvalue = FAIL; long buf = FAIL; memmove(&buf,&invalue,sizeof(int)); status = H5Tconvert(H5T_NATIVE_INT, H5T_NATIVE_LONG, 1, &buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHint2long", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"int\" to \"long\" data type."); return(status); } memmove(&outvalue,&buf,sizeof(long)); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhid2int | | | | DESCRIPTION : Takes a scalar variable of 'hid_t' type, converts it to a | | scalar variable of 'int' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue int | | INPUTS: | | invalue hid_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_EHhid2int(hid_t invalue) { int outvalue = FAIL; if (sizeof(hid_t) == sizeof(int)) outvalue = invalue; else if (sizeof(hid_t) == sizeof(long)) outvalue = HE5_EHlong2int(invalue); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHint2hid | | | | DESCRIPTION : Takes a scalar variable of 'int' type, converts it to a | | scalar variable of 'hid_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hid_t | | INPUTS: | | invalue int | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_EHint2hid(int invalue) { hid_t outvalue = FAIL; if (sizeof(hid_t) == sizeof(int)) outvalue = invalue; else if (sizeof(hid_t) == sizeof(long)) outvalue = HE5_EHint2long(invalue); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHlong2hid | | | | DESCRIPTION : Takes a scalar variable of 'long' type, converts it to a | | scalar variable of 'hid_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hid_t | | INPUTS: | | invalue long | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_EHlong2hid(long invalue) { hid_t outvalue = FAIL; if (sizeof(hid_t) == sizeof(int)) outvalue = HE5_EHlong2int(invalue); else if (sizeof(hid_t) == sizeof(long)) outvalue = invalue; return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHlong2int | | | | DESCRIPTION : Takes a scalar variable of 'long' type, converts it to a | | scalar variable of 'int' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue int | | INPUTS: | | invalue long | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_EHlong2int(long invalue) { herr_t status = FAIL; int outvalue = FAIL; long *buf = (long *)NULL; buf = (long *)calloc(1,sizeof(long)); memmove(buf,&invalue,sizeof(long)); status = H5Tconvert(H5T_NATIVE_LONG, H5T_NATIVE_INT, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHlong2int", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"long\" to \"int\" data type."); return(status); } memmove(&outvalue,buf,sizeof(int)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhid2hsize | | | | DESCRIPTION : Takes a scalar variable of 'hid_t' type, converts it to a | | scalar variable of 'hsize_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hsize_t | | INPUTS: | | invalue hid_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hsize_t HE5_EHhid2hsize(hid_t invalue) { hsize_t outvalue = 0; if (sizeof(hid_t) == sizeof(int)) outvalue = HE5_EHint2hsize(invalue); else if (sizeof(hid_t) == sizeof(long) ) outvalue = HE5_EHlong2hsize(invalue); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHint2hsize | | | | DESCRIPTION : Takes a scalar variable of 'int' type, converts it to a | | scalar variable of 'hsize_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hsize_t | | INPUTS: | | invalue int | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hsize_t HE5_EHint2hsize(int invalue) { herr_t status = FAIL; int *buf = (int *)NULL; hsize_t outvalue = 0; size_t maxsize = 0; maxsize = MAX(sizeof(int),H5Tget_size(H5T_NATIVE_HSIZE)); buf = (int *)calloc(1,maxsize); memmove(buf,&invalue, sizeof(int)); status = H5Tconvert(H5T_NATIVE_INT, H5T_NATIVE_HSIZE, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHint2hsize", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"int\" to \"hsize_t\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_HSIZE)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHlong2hsize | | | | DESCRIPTION : Takes a scalar variable of 'long' type, converts it to a | | scalar variable of 'hsize_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hsize_t | | INPUTS: | | invalue long | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hsize_t HE5_EHlong2hsize(long invalue) { herr_t status = FAIL; long *buf = (long *)NULL; hsize_t outvalue = 0; size_t maxsize = 0; maxsize = MAX(H5Tget_size(H5T_NATIVE_LONG),H5Tget_size(H5T_NATIVE_HSIZE)); buf = (long *)calloc(1,maxsize); memmove(buf,&invalue,sizeof(long)); status = H5Tconvert(H5T_NATIVE_LONG, H5T_NATIVE_HSIZE, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHlong2hsize", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"long\" to \"hsize_t\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_HSIZE)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhsize2hid | | | | DESCRIPTION : Takes a scalar variable of 'hsize_t' type, converts it to a | | scalar variable of 'hid_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hid_t | | INPUTS: | | invalue hsize_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_EHhsize2hid(hsize_t invalue) { hid_t outvalue = FAIL; if (sizeof(hid_t) == sizeof(int)) outvalue = HE5_EHhsize2int(invalue); else if (sizeof(hid_t) == sizeof(long) ) outvalue = HE5_EHhsize2long(invalue); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhsize2long | | | | DESCRIPTION : Takes a scalar variable of 'hsize_t' type, converts it to a | | scalar variable of 'long' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue long | | INPUTS: | | invalue hsize_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHhsize2long(hsize_t invalue) { herr_t status = FAIL; long *buf = (long *)NULL; long outvalue = FAIL; size_t maxsize = 0; maxsize = MAX(H5Tget_size(H5T_NATIVE_LONG),H5Tget_size(H5T_NATIVE_HSIZE)); buf = (long *)calloc(1,maxsize); memmove(buf,&invalue,H5Tget_size(H5T_NATIVE_HSIZE)); status = H5Tconvert(H5T_NATIVE_HSIZE, H5T_NATIVE_LONG, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHhsize2long", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"hsize_t\" to \"long\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_LONG)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhsize2int | | | | DESCRIPTION : Takes a scalar variable of 'hsize_t' type, converts it to a | | scalar variable of 'int' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue int | | INPUTS: | | invalue hsize_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_EHhsize2int(hsize_t invalue) { herr_t status = FAIL; int *buf = (int *)NULL; int outvalue = FAIL; size_t maxsize = 0; maxsize = MAX(H5Tget_size(H5T_NATIVE_INT),H5Tget_size(H5T_NATIVE_HSIZE)); buf = (int *)calloc(1,maxsize); memmove(buf,&invalue,H5Tget_size(H5T_NATIVE_HSIZE)); status = H5Tconvert(H5T_NATIVE_HSIZE, H5T_NATIVE_INT, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHhsize2int", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"hsize_t\" to \"int\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_INT)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhid2hssize | | | | DESCRIPTION : Takes a scalar variable of 'hid_t' type, converts it to a | | scalar variable of 'hssize_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hssize_t | | INPUTS: | | invalue hid_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hssize_t HE5_EHhid2hssize(hid_t invalue) { hssize_t outvalue = FAIL; if (sizeof(hid_t) == sizeof(int)) outvalue = HE5_EHint2hssize(invalue); else if (sizeof(hid_t) == sizeof(long) ) outvalue = HE5_EHlong2hssize(invalue); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHint2hssize | | | | DESCRIPTION : Takes a scalar variable of 'int' type, converts it to a | | scalar variable of 'hssize_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hssize_t | | INPUTS: | | invalue int | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hssize_t HE5_EHint2hssize(int invalue) { herr_t status = FAIL; int *buf = (int *)NULL; hssize_t outvalue = FAIL; size_t maxsize = 0; maxsize = MAX(sizeof(int),H5Tget_size(H5T_NATIVE_HSSIZE)); buf = (int *)calloc(1,maxsize); memmove(buf,&invalue, sizeof(int)); status = H5Tconvert(H5T_NATIVE_INT, H5T_NATIVE_HSSIZE, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHint2hssize", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"int\" to \"hssize\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_HSSIZE)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHlong2hssize | | | | DESCRIPTION : Takes a scalar variable of 'int' type, converts it to a | | scalar variable of 'hssize_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hssize_t | | INPUTS: | | invalue long | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hssize_t HE5_EHlong2hssize(long invalue) { herr_t status = FAIL; long *buf = (long *)NULL; hssize_t outvalue = FAIL; size_t maxsize = 0; maxsize = MAX(sizeof(long),H5Tget_size(H5T_NATIVE_HSSIZE)); buf = (long *)calloc(1,maxsize); memmove(buf,&invalue,sizeof(long)); status = H5Tconvert(H5T_NATIVE_LONG, H5T_NATIVE_HSSIZE, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHint2ullong", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"long\" to \"hssize_t\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_HSSIZE)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhssize2hid | | | | DESCRIPTION : Takes a scalar variable of 'hsize_t' type, converts it to a | | scalar variable of 'hid_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hid_t | | INPUTS: | | invalue hssize_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_EHhssize2hid(hssize_t invalue) { hid_t outvalue = FAIL; if (sizeof(hid_t) == sizeof(int)) outvalue = HE5_EHhssize2int(invalue); else if (sizeof(hid_t) == sizeof(long) ) outvalue = HE5_EHhssize2long(invalue); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhssize2long | | | | DESCRIPTION : Takes a scalar variable of 'hsize_t' type, converts it to a | | scalar variable of 'long' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue long | | INPUTS: | | invalue hssize_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHhssize2long(hssize_t invalue) { herr_t status = FAIL; long *buf = (long *)NULL; long outvalue = FAIL; size_t maxsize = 0; maxsize = MAX(H5Tget_size(H5T_NATIVE_LONG),H5Tget_size(H5T_NATIVE_HSSIZE)); buf = (long *)calloc(1,maxsize); memmove(buf,&invalue,H5Tget_size(H5T_NATIVE_HSSIZE)); status = H5Tconvert(H5T_NATIVE_HSSIZE, H5T_NATIVE_LONG, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHhssize2long", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"hssize_t\" to \"long\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_LONG)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhssize2int | | | | DESCRIPTION : Takes a scalar variable of 'hsize_t' type, converts it to a | | scalar variable of 'int' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue int | | INPUTS: | | invalue hssize_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_EHhssize2int(hssize_t invalue) { herr_t status = FAIL; int *buf = (int *)NULL; int outvalue = FAIL; size_t maxsize = 0; maxsize = MAX(H5Tget_size(H5T_NATIVE_INT),H5Tget_size(H5T_NATIVE_HSSIZE)); buf = (int *)calloc(1,maxsize); memmove(buf,&invalue,H5Tget_size(H5T_NATIVE_HSSIZE)); status = H5Tconvert(H5T_NATIVE_HSSIZE, H5T_NATIVE_INT, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHhssize2int", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"hssize_t\" to \"int\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_INT)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHint2ullong | | | | DESCRIPTION : Takes a scalar variable of 'int' type, converts it to a | | scalar variable of 'ullong' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue ullong | | INPUTS: | | invalue int | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | Sept. 04 S.Zhao Changed "long long" to "LONGLONG" for Windows. | | END_PROLOG | -----------------------------------------------------------------------------*/ unsigned LONGLONG HE5_EHint2ullong(int invalue) { herr_t status = FAIL; unsigned LONGLONG outvalue = 0; unsigned LONGLONG buf = 0; memmove(&buf,&invalue,sizeof(int)); status = H5Tconvert(H5T_NATIVE_INT, H5T_NATIVE_ULLONG, 1, &buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHint2ullong", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"int\" to \"unsigned long long\" data type."); return(status); } memmove(&outvalue,&buf,sizeof(unsigned LONGLONG)); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHullong2long | | | | DESCRIPTION : Takes a scalar variable of 'ullong' type, converts it to a | | scalar variable of 'long' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue long | | INPUTS: | | invalue ullong | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | Sept. 04 S.Zhao Changed "long long" to "LONGLONG" for Windows. | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHullong2long(unsigned LONGLONG invalue) { herr_t status = FAIL; long outvalue = FAIL; long *buf = (long *)NULL; size_t maxsize = 0; maxsize = MAX(sizeof(unsigned LONGLONG),sizeof(long)); buf = (long *)calloc(1,maxsize); memmove(buf,&invalue,sizeof(unsigned LONGLONG)); status = H5Tconvert(H5T_NATIVE_ULLONG, H5T_NATIVE_LONG, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHullong2long", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"unsigned long long\" to \"long\" data type."); return(status); } memmove(&outvalue,buf,sizeof(long)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhssize2hsize | | | | DESCRIPTION : Takes a scalar variable of 'hssize_t' type, converts it to a | | scalar variable of 'hsize_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hsize_t | | INPUTS: | | invalue hssize_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | Sept. 04 S.Zhao Changed "long long" to "LONGLONG" for Windows. | | END_PROLOG | -----------------------------------------------------------------------------*/ hsize_t HE5_EHhssize2hsize(hssize_t invalue) { herr_t status = FAIL; LONGLONG *buf = (LONGLONG *)NULL; hsize_t outvalue = 0; size_t maxsize = 0; maxsize = MAX(H5Tget_size(H5T_NATIVE_HSIZE),H5Tget_size(H5T_NATIVE_HSSIZE)); buf = (LONGLONG *)calloc(1,maxsize); memmove(buf,&invalue,H5Tget_size(H5T_NATIVE_HSSIZE)); status = H5Tconvert(H5T_NATIVE_HSSIZE, H5T_NATIVE_HSIZE, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHhssize2hsize", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"hssize_t\" to \"hsize\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_HSIZE)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHhsize2hssize | | | | DESCRIPTION : Takes a scalar variable of 'hsize_t' type, converts it to a | | scalar variable of 'hssize_t' type, and returns the value. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outvalue hssize_t | | INPUTS: | | invalue hsize_t | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/25/00 A.Muslimov Original development. | | Sept. 04 S.Zhao Changed "long long" to "LONGLONG" for Windows. | | END_PROLOG | -----------------------------------------------------------------------------*/ hssize_t HE5_EHhsize2hssize(hsize_t invalue) { herr_t status = FAIL; LONGLONG *buf = (LONGLONG *)NULL; hssize_t outvalue = FAIL; size_t maxsize = 0; maxsize = MAX(H5Tget_size(H5T_NATIVE_HSIZE),H5Tget_size(H5T_NATIVE_HSSIZE)); buf = (LONGLONG *)calloc(1,maxsize); memmove(buf,&invalue,H5Tget_size(H5T_NATIVE_HSIZE)); status = H5Tconvert(H5T_NATIVE_HSIZE, H5T_NATIVE_HSSIZE, 1, buf, NULL, H5P_DEFAULT); if (status == FAIL) { H5Epush(__FILE__, "HE5_EHhsize2hssize", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"hsize_t\" to \"hssize\" data type."); return(status); } memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_HSSIZE)); free(buf); return(outvalue); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHopen | | | | DESCRIPTION: opens HDF-EOS file and returns file handle | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | fid hid_t None HDF-EOS file ID | | | | INPUTS: | | filename char* None HDF-EOS file name string | | | | flags uintn None File access Flag | | | | valid flags: H5F_ACC_RDONLY | | H5F_ACC_RDWR | | H5F_ACC_TRUNC | | | | | | access_id hid_t None File access property list ID (or | | H5P_DEFAULT for the default I/O access | | parameters. | | OUTPUTS: | | None | | | | NOTES: The dataset StructMetadata is not extandible. The next release | | (V5.?) will be supporting 'variable-length strings'. | | | | ----------- | | | Root "/" | | | ----------- | | / \ | | ---------------------- -------------------- | | | HDFEOS INFORMATION | | HDFEOS | | | ---------------------- -------------------- | | / | / / \ \ \ | | / | / / \ \ \ | | [StructMetadata.0] / / \ \ \ | | / | | \ \ | | ---------- ------ ------- ------- -------- | | |ADDITIONAL| |GRID| |POINT| |SWATH| | ZA | | | ---------- ------ ------- ------- -------- | | / : : : : | | / [dts] [dts] [dts] [dts] | | ----------------- | | |FILE_ATTRIBUTES| | | ----------------- | | : | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 99 A.Muslimov Modified to conform to the HDFEOS file structure | | 07.15.99 A.Muslimov Implemented creating of two separate groups HDFEOS, | | and HDFEOS INFORMATION. Added the calls to H5Tcopy | | and H5Tset_size(). Modified a block "Create dataset | | StructMetadata.0 ... " to allocate memory for the | | BLKSIZE elements of metabuf array. | | 9/24/99 A.Muslimov Added some more error handling after function calls.| | 02/07/00 A.Muslimov Added error handling after function calls and | | "free(errbuf)". | | May 01 A.Muslimov Added "ADDITIONAL/FILE_ATTRIBUTES" group. | | Nov 01 A.Muslimov Changed the data space/datatype of Version attribute| | Retaylored the OPEN/CREATE blocks. | | Jun 02 S.Zhao Added some warnings for "ADDITIONAL/FILE_ATTRIBUTES"| | groups. | | 05/17/04 Abe Taaheri Modified to adopt alocation of metabuf in chunks of | | HE5_DYNAMIC_BLKSIZE | | Nov 04 S.Zhao Modified to save tsize in HE5_HeosTable[HE5_NEOSHDF]| | Sep 06 Abe Taaheri Added initialize of hdfeosVersion | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_EHopen(const char *filename, uintn flags, hid_t access_id) { hid_t fid = FAIL;/* HDF-EOS file ID (RETURN VALUE) */ hid_t HDFfid = FAIL;/* HDF file ID */ hid_t sid1 = FAIL;/* Data space ID */ hid_t sid2 = FAIL;/* Data space ID */ hid_t atype = FAIL;/* Data type ID */ hid_t attid = FAIL;/* "HDFEOSVersion" Attribute ID */ hid_t datid = FAIL;/* "StructuralMetadata.0" dataset ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t ggid = FAIL;/* "HDFEOS INFORMATION" group ID */ hid_t adid = FAIL;/* "ADDITIONAL" group ID */ hid_t fagid = FAIL;/* "FILE_ATTRIBUTES" group ID */ hid_t i; /* Loop index */ hid_t iver; /* Loop index */ herr_t status = FAIL;/* Status variable */ int nfileopen = 0; /* "Number of files opened" Flag */ size_t size = 0; /* Data size (bytes) */ char *errbuf = (char *)NULL; /* Error message buffer */ char *metabuf = (char *)NULL; /* Pointer to SM buffer */ char hdfeosVersion[HE5_VERSIONLEN];/* HDFEOS version string */ char *version_buf = NULL; char version_buf1[13]; size_t tsize = 0; /* size of dataset */ int HDFEOS5ver_flg ; /* will be set to 1 if the HDF-EOS5 version is later than 5.1.7, otherwise to 0 */ int newfile_num; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } for (i = 0; i < HE5_NEOSHDF; i++) { if (HE5_HeosTable[i].active == 0) Stored_meta[i].metaread_flag = 0; } /* Determine number of files currently opened */ /* ------------------------------------------ */ for (i = 0; i < HE5_NEOSHDF; i++) nfileopen += HE5_HeosTable[i].active; /* Setup file interface */ /* -------------------- */ if (nfileopen < HE5_NEOSHDF) { /* Open HDF-EOS file */ /* ================= */ if (flags == H5F_ACC_RDWR || flags == H5F_ACC_RDONLY) { H5Eset_auto(NULL,NULL); HDFfid = H5Fopen(filename, flags, access_id); if(HDFfid < 0) { sprintf(errbuf,"File \"%s\" cannot be opened. \n", filename); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } else if (flags == H5F_ACC_TRUNC) { /* H5Eset_auto(NULL,NULL); */ HDFfid = H5Fcreate(filename,flags,H5P_DEFAULT,H5P_DEFAULT); if(HDFfid < 0) { sprintf(errbuf,"File \"%s\" cannot be created. \n", filename); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_FILE,H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } else { sprintf(errbuf,"Invalid file access flag. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_FILE,H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } if(flags == H5F_ACC_RDONLY ) { /* open group "HDFEOS" */ /* =================== */ gid = H5Gopen(HDFfid, "HDFEOS"); if(gid < 0) { sprintf(errbuf, "Group \"HDFEOS\" does not exist in \"%s\" file. \n", filename); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* open group "ADDITIONAL" */ /* ======================= */ adid = H5Gopen(gid, "ADDITIONAL"); if(adid < 0) { sprintf(errbuf, "Warning: Group \"ADDITIONAL\" does not exist in \"%s\" file, the hdfeos5 files produced by hdfeos5.0 or an earlier version. \n", filename); printf("Warning: Group \"ADDITIONAL\" does not exist in \"%s\" file, the hdfeos5 files produced by hdfeos5.0 or an earlier version. \n", filename); } else if(adid > 0) { /* open group "FILE_ATTRIBUTES" */ /* ============================ */ fagid = H5Gopen(adid, "FILE_ATTRIBUTES"); if(fagid < 0) { sprintf(errbuf, "Warning: Group \"FILE_ATTRIBUTES\" does not exist in \"%s\" file. \n", filename); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } /* open group "HDFEOS INFORMATION" */ /* =============================== */ ggid = H5Gopen(HDFfid,"HDFEOS INFORMATION"); if(ggid < 0) { sprintf(errbuf, "Group \"HDFEOS INFORMATION\" does not exist in \"%s\" file. \n", filename); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } else if (flags == H5F_ACC_RDWR) { /* open group "HDFEOS" */ /* =================== */ gid = H5Gopen(HDFfid, "HDFEOS"); if(gid < 0) { sprintf(errbuf, "Group \"HDFEOS\" does not exist in \"%s\" file. \n", filename); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* open group "ADDITIONAL" */ /* ======================= */ adid = H5Gopen(gid, "ADDITIONAL"); if(adid < 0) { sprintf(errbuf, "Warning: Group \"ADDITIONAL\" does not exist in \"%s\" file, need to create it. \n", filename); printf("Warning: Group \"ADDITIONAL\" does not exist in \"%s\" file, need to create it. \n", filename); /* Create a group "ADDITIONAL" */ /* =========================== */ adid = H5Gcreate(gid, "ADDITIONAL", 0); if (adid < 0) { sprintf(errbuf, "Cannot create \"ADDITIONAL\" group. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } /* open group "FILE_ATTRIBUTES" */ /* ============================ */ fagid = H5Gopen(adid, "FILE_ATTRIBUTES"); if(fagid < 0) { sprintf(errbuf, "Group \"FILE_ATTRIBUTES\" does not exist in \"%s\" file, need to create it. \n", filename); printf("Warning: Group \"FILE_ATTRIBUTES\" does not exist in \"%s\" file, need to create it. \n", filename); /* Create a group "FILE_ATTRIBUTES" */ /* ================================ */ fagid = H5Gcreate(adid, "FILE_ATTRIBUTES", 0); if (fagid < 0) { sprintf(errbuf, "Cannot create \"FILE_ATTRIBUTES\" group. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } /* open group "HDFEOS INFORMATION" */ /* =============================== */ ggid = H5Gopen(HDFfid,"HDFEOS INFORMATION"); if(ggid < 0) { sprintf(errbuf, "Group \"HDFEOS INFORMATION\" does not exist in \"%s\" file. \n", filename) ; H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } else if (flags == H5F_ACC_TRUNC) { /* Create a group "HDFEOS" */ /* ======================= */ gid = H5Gcreate(HDFfid, "HDFEOS", 0); if (gid < 0) { sprintf(errbuf, "Cannot create \"HDFEOS\" group. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Create a group "ADDITIONAL" */ /* =========================== */ adid = H5Gcreate(gid, "ADDITIONAL", 0); if (adid < 0) { sprintf(errbuf, "Cannot create \"ADDITIONAL\" group. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Create a group "FILE_ATTRIBUTES" */ /* ================================ */ fagid = H5Gcreate(adid, "FILE_ATTRIBUTES", 0); if (fagid < 0) { sprintf(errbuf, "Cannot create \"FILE_ATTRIBUTES\" group. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Create a group "HDFEOS INFORMATION" */ /* =================================== */ ggid = H5Gcreate(HDFfid, "HDFEOS INFORMATION", 0); if (ggid == FAIL) { sprintf(errbuf, "Cannot create \"HDFEOS INFORMATION\" group. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Initialize hdfeosVersion */ for( iver=0; iver < HE5_VERSIONLEN; iver++) hdfeosVersion[iver]='\0'; /* Set HDFEOS version number in file */ /* ================================= */ sprintf(hdfeosVersion, "%s.%s", "HDFEOS_5", HE5_HDFEOSVERSION); /* create attribute "HDFEOSVersion" under "HDFEOS INFORMATION */ /* ========================================================== */ sid1 = H5Screate(H5S_SCALAR); if (sid1 == FAIL) { sprintf(errbuf, "Cannot create dataspace for \"HDFEOSVersion\" attribute. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASPACE, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } atype = H5Tcopy(H5T_C_S1); status = H5Tset_size(atype,HE5_VERSIONLEN); if (status == FAIL) { sprintf(errbuf, "Cannot set the total size for atomic datatype. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATATYPE, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Set up "HDFEOSVersion" attribute */ /* -------------------------------- */ attid = H5Acreate(ggid, "HDFEOSVersion", atype, sid1, H5P_DEFAULT); if (attid == FAIL) { sprintf(errbuf, "Cannot create \"HDFEOSVersion\" attribute. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_ATTR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Write attribute */ /* --------------- */ status = H5Awrite(attid, atype, hdfeosVersion); if (status == FAIL) { sprintf(errbuf, "Cannot write in data to the \"HDFEOSVerion\" attribute. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* ******************************* * Setup Structural Metadata * ******************************* */ metabuf = (char *)calloc(HE5_DYNAMIC_BLKSIZE, sizeof(char )); if (metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for the metadata buffer. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } strcpy(metabuf, "GROUP=SwathStructure\n"); strcat(metabuf, "END_GROUP=SwathStructure\n"); strcat(metabuf, "GROUP=GridStructure\n"); strcat(metabuf, "END_GROUP=GridStructure\n"); strcat(metabuf, "GROUP=PointStructure\n"); strcat(metabuf, "END_GROUP=PointStructure\n"); strcat(metabuf, "GROUP=ZaStructure\n"); strcat(metabuf, "END_GROUP=ZaStructure\n"); strcat(metabuf, "END\n"); /* ----------------------------------------------- | Create dataset "StructMetadata.0" and attach | | it to the "HDFEOS INFORMATION" group | ------------------------------------------------ */ /* metalen = strlen(metabuf) + 1; */ /* Create dataspace */ /* ---------------- */ sid2 = H5Screate(H5S_SCALAR); if (sid2 == FAIL) { sprintf(errbuf, "Cannot create dataspace for \"StructMetadata.0\" dataset. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASPACE, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); return(FAIL); } atype = H5Tcopy(H5T_C_S1); /* size = metalen; */ size = HE5_DYNAMIC_BLKSIZE; /* Set data type size */ /* ------------------ */ status = H5Tset_size(atype,size); if (status == FAIL) { sprintf(errbuf, "Cannot set the total size for atomic datatype. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATATYPE, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); return(FAIL); } metabuf[ HE5_DYNAMIC_BLKSIZE - 1 ] = '\0'; /* Create "StructMetadata" dataset */ /* ------------------------------- */ datid = H5Dcreate(ggid,"StructMetadata.0", atype, sid2, H5P_DEFAULT); if (datid == FAIL) { sprintf(errbuf, "Cannot create \"StructMetadata.0\" dataset. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASET, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); return(FAIL); } /* ----------------------------------------------------------- */ /* ! The dataset extension for a string is not supported yet ! */ /* the corresponding call is H5Dextend(datid, &metalen); */ /* ----------------------------------------------------------- */ /* ------------------------------------- | Write data to "StructMetadata.0" | ------------------------------------- */ status = H5Dwrite(datid,atype,H5S_ALL,H5S_ALL,H5P_DEFAULT,metabuf); if (status == FAIL) { sprintf(errbuf, "Cannot write in data to the \"StructMetadata.0\" dataset. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); return(FAIL); } free(metabuf); /* Release IDs */ /* ----------- */ status = H5Sclose(sid1); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataspace ID. \n"); H5Epush(__FILE__, "HE5_HE5_EHopen", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Aclose(attid); if (status == FAIL) { sprintf(errbuf, "Cannot release the attribute ID. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_ATTR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Sclose(sid2); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataspace ID. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Dclose(datid); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } /* Close "HDFEOS INFORMATION" group */ /* -------------------------------- */ status = H5Gclose(ggid); if (status == FAIL) { sprintf(errbuf, "Cannot release the \"HDFEOS INFORMATION\" group ID. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Close "ADDITIONAL" group */ /* ------------------------ */ status = H5Gclose(adid); if (status == FAIL) { sprintf(errbuf, "Cannot release the \"ADDITIONAL\" group ID. \n"); /* H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); */ } /* Close "FILE_ATTRIBUTES" group */ /* ----------------------------- */ status = H5Gclose(fagid); if (status == FAIL) { sprintf(errbuf, "Cannot release the \"FILE_ATTRIBUTES\" group ID. \n"); /* H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); */ } /* Assign HDFEOS fid # & Load HDF fid tables */ /* ========================================= */ for (i = 0; i < HE5_NEOSHDF; i++) { if (HE5_HeosTable[i].active == 0) { HE5_HeosTable[i].flags = flags; HE5_HeosTable[i].active = 1; HE5_HeosTable[i].gid = gid; HE5_HeosTable[i].HDFfid = HDFfid; fid = i + HE5_EHIDOFFSET; HE5_HeosTable[i].filename = (char *)calloc((strlen(filename)+1), sizeof(char)); if (HE5_HeosTable[i].filename == NULL) { sprintf(errbuf, "Cannot allocate memory for file name. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(HE5_HeosTable[i].filename, filename); newfile_num = i; break; } } if (flags == H5F_ACC_RDWR || flags == H5F_ACC_RDONLY) { /* if version is before 5.1.7 set DYNAMIC_SMB global flag to 1, Otherwise to 0. Starting with version 5.1.8 we use dynamic memory allocation for StructMetadata buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ version_buf = (char * )calloc( 64, sizeof(char)); if(version_buf == NULL) { H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } status = HE5_EHgetversion(fid, version_buf); if (status == FAIL) { sprintf(errbuf, "Cannot get version. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(version_buf); return(FAIL); } if(strlen(version_buf) < 12) { strcpy(version_buf1, version_buf); } else { strncpy(version_buf1, version_buf, 12); version_buf1[12] = '\0'; } if ( strcmp(version_buf1, "HDFEOS_5.0") == 0 || strcmp(version_buf1, "HDFEOS_5.1") == 0 || strcmp(version_buf1, "HDFEOS_5.1.2") == 0 || strcmp(version_buf1, "HDFEOS_5.1.3") == 0 || strcmp(version_buf1, "HDFEOS_5.1.4") == 0 || strcmp(version_buf1, "HDFEOS_5.1.5") == 0 || strcmp(version_buf1, "HDFEOS_5.1.6") == 0 || strcmp(version_buf1, "HDFEOS_5.1.7") == 0 ) { HDFEOS5ver_flg = 1; /* Static StructMetadata type */ } else { HDFEOS5ver_flg = 0; /* Dynamic StructMetadata type */ } free(version_buf); version_buf = NULL; if(HDFEOS5ver_flg == 1) /* if StructMetadata is static type, get size of StructMetadata.0 and save it in global parameter for later use */ { /* Open "HDFEOS INFORMATION" group to get its zise for backward compatibality issue */ /* =========================================================== */ ggid = H5Gopen(HDFfid, "HDFEOS INFORMATION"); if(ggid == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open \"HDFEOS INFORMATION\" group. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* *--------------------------------------------------------------* * Open dataset "StructMetadata.0", get datatype and space ID * *--------------------------------------------------------------* */ datid = H5Dopen(ggid, "StructMetadata.0"); if( datid == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open \"StructMetadata.0\" dataset. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } atype = H5Dget_type(datid); if( atype == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the dataset datatype. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get dataset size */ /* ---------------- */ tsize = H5Tget_size(atype); if ( tsize == 0 ) { status = FAIL; sprintf(errbuf, "The datatype is of ZERO size. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( status ); } HE5_HeosTable[newfile_num].HE5_STATIC_BLKSIZE = tsize; /* Save tsize in global parameter for later use */ /*HE5_STATIC_BLKSIZE = tsize;*/ status = H5Tclose(atype); if( status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Dclose(datid); if( status == FAIL) { sprintf(errbuf,"Cannot release the dataset ID.\n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Gclose(ggid); if( status == FAIL) { sprintf(errbuf,"Cannot release the group ID.\n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } } else { HDFEOS5ver_flg = 0; /* Dynamic StructMetadata type */ } /* Load table with the flag */ /* ========================================= */ for (i = 0; i < HE5_NEOSHDF; i++) { if ((HE5_HeosTable[i].active == 1) && (strcmp(HE5_HeosTable[i].filename, filename) == 0) && (fid == i + HE5_EHIDOFFSET)) { HE5_HeosTable[i].DYNAMIC_flag = HDFEOS5ver_flg; break; } } } else { /* Too many files opened */ /* --------------------- */ fid = FAIL; sprintf(errbuf,"Illegal attempt to open more than %d files simultaneously. \n", HE5_NEOSHDF); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); errbuf = NULL; return(fid); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHchkfid | | | | DESCRIPTION: Checks for valid file id and returns HDF file ID and | | "HDFEOS" group id | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 99 A.Muslimov Modified to conform to the HDFEOS file structure | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message | | buffer. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHchkfid(hid_t fid, const char *name, hid_t *HDFfid, hid_t *grpID, uintn *access) { herr_t status = FAIL; /* routine return status variable */ hid_t fid0 = 0; /* HDFEOS file ID-offset */ char *errbuf; /* Error message buffer */ CHECKPOINTER(name); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *) calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHchkfid", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Check for valid HDFEOS file ID range */ /* ------------------------------------ */ if (fid < HE5_EHIDOFFSET || fid > HE5_NEOSHDF + HE5_EHIDOFFSET) { status = FAIL; sprintf(errbuf,"Invalid file ID: %d. ID should range from %d to %d .\n", fid, HE5_EHIDOFFSET, HE5_NEOSHDF + HE5_EHIDOFFSET); H5Epush(__FILE__, "HE5_EHchkfid", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* Compute "reduced" file ID */ /* ------------------------- */ fid0 = fid % HE5_EHIDOFFSET; if( HE5_HeosTable[ fid0 ].active == 0) { status = FAIL; sprintf(errbuf,"HE5_EHchkid: File ID %d not active (%s).\n",fid, name); H5Epush(__FILE__, "HE5_EHchkfid", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* Get HDF file ID, group ID and file access from external arrays */ /* ============================================================== */ *HDFfid = HE5_HeosTable[ fid0 ].HDFfid; *grpID = HE5_HeosTable[ fid0 ].gid; *access = HE5_HeosTable[ fid0 ].flags; status = SUCCEED; } } free(errbuf); errbuf = NULL; COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHidinfo | | | | DESCRIPTION: Gets HDF ID and group ID from HDF-EOS ID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t HDF-EOS file ID | | | | OUTPUTS: | | HDFfid hid_t HDF File ID | | gid hid_t group ID | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHidinfo(hid_t fid, hid_t *HDFfid, hid_t *gid) { herr_t status = FAIL; /* routine return status variable */ uintn access = 0; /* file access code */ /* Call HE5_EHchkfid to get HDF-EOS interface IDs */ /* ---------------------------------------------- */ status = HE5_EHchkfid(fid, "HE5_EHidinfo", HDFfid, gid, &access); return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHfilename | | | | DESCRIPTION: Returns HDF filename | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t HDF-EOS file id | | | | OUTPUTS: | | filename char* HDF-EOS file name | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHfilename(hid_t fid, char *filename) { herr_t status = SUCCEED; /* routine return status variable */ if( filename == NULL || HE5_HeosTable[fid % HE5_EHIDOFFSET].filename == NULL) status = FAIL; else strcpy(filename, HE5_HeosTable[fid % HE5_EHIDOFFSET].filename); return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHgetversion | | | | DESCRIPTION: Returns HDF-EOS version string | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t HDF-EOS file id | | | | OUTPUTS: | | version char* HDF-EOS version string | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A. Muslimov Initialized status to -1, and checked for the | | statuses returned by H5Tclose() and H5Aclose(). | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message | | buffer and atttribute name string. | | 2/01/00 A.Muslimov Fixed a bug associated with a pointing to the wrong | | group and aborting a call. | | 2/07/00 A.Muslimov Added free() calls. | | Nov 01 A.Muslimov Commented out two blocks, and changed the attribute | | data type to H5T_NATIVE_CHAR. | | Aug 02 S.Zhao Fixed a bug regarding 'HDFEOSVersion' represented | | as a series of integers, not a character string. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHgetversion(hid_t fid, char *version) { herr_t status = FAIL; /* routine return status variable */ uintn access = 0; /* Access code */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t att_id = FAIL; /* attribute ID */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ hid_t InfGrpID = FAIL; /* "HDFEOS INFORMATION" group ID */ hid_t atype = FAIL; /* Attribute data type ID */ hid_t mtype = FAIL; /* Attribute memory data type ID */ char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Get HDF-EOS file ID and "HDFEOS" group ID */ /* ========================================= */ status = HE5_EHchkfid(fid,"HE5_EHgetversion", &HDFfid, &gid, &access); if(status == FAIL) { H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_FILE, H5E_NOTFOUND, "Invalid file ID. \n"); HE5_EHprint("Error: Invalid file ID, occured", __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Open "HDFEOS/HDFEOS INFORMATION" group */ /* -------------------------------------- */ InfGrpID = H5Gopen(HDFfid, "HDFEOS INFORMATION"); if(InfGrpID == FAIL) { status = FAIL; sprintf(errbuf, "Cannot open \"HDFEOS INFORMATION\" group. \n"); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } if(status == SUCCEED) { /* Open attribute "HDFEOSVersion" */ /* ============================== */ att_id = H5Aopen_name(InfGrpID, "HDFEOSVersion"); if(att_id == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the \"HDFEOSVersion\" attribute ID."); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } atype = H5Aget_type(att_id); if( atype == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the \"HDFEOSVersion\" attribute data type ID."); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get the memory data type ID */ /* --------------------------- */ mtype = HE5_EHdtype2mtype(atype); if (mtype < 0) { atype = H5Tcopy(H5T_C_S1); if( atype == FAIL) { status = FAIL; sprintf(errbuf,"Cannot copy the \"HDFEOSVersion\" attribute datatype."); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Tset_size(atype, HE5_VERSIONLEN); if( status == FAIL) { sprintf(errbuf,"Cannot set the total size for the \"HDFEOSVersion\" attribute."); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Read out version attribute */ /* ========================== */ status = H5Aread(att_id, atype, version); if( status == FAIL) { sprintf(errbuf,"Cannot read out the \"HDFEOSVersion\" attribute."); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } else { /* Read out version attribute */ /* ========================== */ status = H5Aread(att_id, mtype, (void *)version); if( status == FAIL) { sprintf(errbuf,"Cannot read out the \"HDFEOSVersion\" attribute."); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } /* Release the attribute datatype ID */ /* --------------------------------- */ status = H5Tclose(atype); if( status == FAIL) { sprintf(errbuf,"Cannot release the \"HDFEOSVersion\" attribute datatype ID."); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Release the attribute ID */ /* ------------------------ */ status = H5Aclose(att_id); if( status == FAIL) { sprintf(errbuf,"Cannot release the \"HDFEOSVersion\" attribute ID."); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_ATTR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Gclose(InfGrpID); if( status == FAIL) { sprintf(errbuf,"Cannot release the \"HDFEOS INFORMATION\" group ID."); H5Epush(__FILE__, "HE5_EHgetversion", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } free(errbuf); errbuf = NULL; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHconvAng | | | | DESCRIPTION: Angle conversion Utility | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outAngle double Output Angle value | | | | INPUTS: | | inAngle double Input Angle value | | code int Conversion code | | HDFE_RAD_DEG (0) | | HDFE_DEG_RAD (1) | | HDFE_DMS_DEG (2) | | HDFE_DEG_DMS (3) | | HDFE_RAD_DMS (4) | | HDFE_DMS_RAD (5) | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 96 Joel Gales Original Programmer | | Feb 97 Joel Gales Correct "60" min & "60" sec in _DMS conversion | | Feb 06 Abe Taaheri Modified checking sec not to exceed 60. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ double HE5_EHconvAng(double inAngle, int code) { long min = 0; /* Truncated Minutes */ long deg = 0; /* Truncated Degrees */ double sec = 0.; /* Seconds */ double outAngle = 0.; /* Angle in desired units */ double pi = 3.14159265358979324;/* Pi */ double r2d = 180 / pi; /* Rad-deg conversion */ double d2r = 1 / r2d; /* Deg-rad conversion */ switch (code) { /* Convert radians to degrees */ /* -------------------------- */ case HE5_HDFE_RAD_DEG: outAngle = inAngle * r2d; break; /* Convert degrees to radians */ /* -------------------------- */ case HE5_HDFE_DEG_RAD: outAngle = inAngle * d2r; break; /* Convert packed degrees to degrees */ /* --------------------------------- */ case HE5_HDFE_DMS_DEG: deg = (long)(inAngle / 1000000); min = (long)((inAngle - deg * 1000000) / 1000); sec = (inAngle - deg * 1000000 - min * 1000); outAngle = deg + min / 60.0 + sec / 3600.0; break; /* Convert degrees to packed degrees */ /* --------------------------------- */ case HE5_HDFE_DEG_DMS: deg = (long)inAngle; min = (long)((inAngle - deg) * 60); sec = (inAngle - deg - min / 60.0) * 3600; /* if ((int)sec == 60) { sec = sec - 60; min = min + 1; } */ if ( fabs(sec - 0.0) < 1.e-7 ) { sec = 0.0; } if ( (fabs(sec - 60) < 1.e-7 ) || ( sec > 60.0 )) { sec = sec - 60; min = min + 1; if(sec < 0.0) { sec = 0.0; } } if (min == 60) { min = min - 60; deg = deg + 1; } outAngle = deg * 1000000 + min * 1000 + sec; break; /* Convert radians to packed degrees */ /* --------------------------------- */ case HE5_HDFE_RAD_DMS: inAngle = inAngle * r2d; deg = (long)inAngle; min = (long)((inAngle - deg) * 60); sec = ((inAngle - deg - min / 60.0) * 3600); /* if ((int)sec == 60) { sec = sec - 60; min = min + 1; } */ if ( fabs(sec - 0.0) < 1.e-7 ) { sec = 0.0; } if ( (fabs(sec - 60) < 1.e-7 ) || ( sec > 60.0 )) { sec = sec - 60; min = min + 1; if(sec < 0.0) { sec = 0.0; } } if (min == 60) { min = min - 60; deg = deg + 1; } outAngle = deg * 1000000 + min * 1000 + sec; break; /* Convert packed degrees to radians */ /* --------------------------------- */ case HE5_HDFE_DMS_RAD: deg = (long)(inAngle / 1000000); min = (long)((inAngle - deg * 1000000) / 1000); sec = (inAngle - deg * 1000000 - min * 1000); outAngle = deg + min / 60.0 + sec / 3600.0; outAngle = outAngle * d2r; break; } return (outAngle); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHparsestr | | | | DESCRIPTION: String Parser Utility | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | count long Number of string entries | | | | INPUTS: | | instring char* Input string | | delim char string delimitor | | | | OUTPUTS: | | pntr char* Pointer array to beginning of each | | string entry | | len size_t Array of string entry lengths | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | 04/19/00 A.Muslimov Changed type of 'slen','i','prevDelimPos' and | | 'len[]' from long to size_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHparsestr(const char *instring, char delim, char *pntr[], size_t len[]) { long count = 0;/* Number of elements in string list */ herr_t status = FAIL; /* Return status variable */ size_t slen = 0;/* String length */ size_t i; /* Loop index */ size_t prevDelimPos = 0;/* Previous delimitor position */ char *delimitor = (char *)NULL;/* Pointer to delimitor */ CHECKPOINTER(instring); /* Get length of input string list & Point to first delimitor */ /* ---------------------------------------------------------- */ slen = strlen(instring); delimitor = strchr(instring, delim); /* If NULL string set count to zero otherwise set to 1 */ /* --------------------------------------------------- */ count = (slen == 0) ? 0 : 1; /* if string pointers are requested set first one to beginning of string */ /* --------------------------------------------------------------------- */ if (&pntr[0] != NULL) pntr[0] = (char *)instring; /* If delimitor not found ... */ /* -------------------------- */ if (delimitor == NULL) { /* if string length requested then set to input string length */ /* ---------------------------------------------------------- */ if (len != NULL) len[0] = slen; } else /* Delimitors Found */ /* ---------------- */ { /* Loop through all characters in string */ /* ------------------------------------- */ for (i = 1; i < slen; i++) { /* If character is a delimitor ... */ /* ------------------------------- */ if (instring[i] == delim) { /* If string pointer requested */ /* --------------------------- */ if (&pntr[0] != NULL) { /* if requested then compute string length of entry */ /* ------------------------------------------------ */ if (len != NULL) len[count - 1] = i - prevDelimPos; /* Point to beginning of string entry */ /* ---------------------------------- */ pntr[count] = (char *)instring + i + 1; } /* Reset previous delimitor position and increment counter */ /* ------------------------------------------------------- */ prevDelimPos = i + 1; count++; } } /* Compute string length of last entry */ /* ----------------------------------- */ if (&pntr[0] != NULL && len != NULL) len[count - 1] = i - prevDelimPos; } COMPLETION: return(count); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHstrwithin | | | | DESCRIPTION: Searchs for string within target string | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | indx long Element index (0 - based) | | | | INPUTS: | | target char Target string | | search char Search string | | delim char Delimitor | | | | OUTPUTS: | | None | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 10/05/99 A.Muslimov Added dynamical memory allocation for the buffers. | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 02/07/00 A.Muslimov Added free() calls before return(FAIL) and more | | error handlings. | | 04/19/00 A.Muslimov Changed type of '*slen' from long to size_t. | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHstrwithin(char *target, char *search, char delim) { long indx = FAIL; /* Index of searched element (RETURN) */ long nentries = 0; /* Number of entries in search string */ herr_t status = FAIL; /* Return status variable */ size_t *slen = (size_t *)NULL;/* Pointer to string length array */ int found = 0; /* Target string found flag */ char **ptr; /* Pointer to string pointer array */ char *buffer = (char *)NULL;/* Buffer to hold "test" string entry */ char *errbuf = (char *)NULL;/* buffer for error message */ CHECKPOINTER(target); CHECKPOINTER(search); /* Allocate memory for error message buffer */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHstrwithin", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for buffer */ buffer = (char * )calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(buffer == NULL) { sprintf(errbuf,"Cannot allocate memory for buffer."); H5Epush(__FILE__, "HE5_EHstrwithin", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Count number of entries in search string list */ /* --------------------------------------------- */ nentries = HE5_EHparsestr(search, delim, NULL, NULL); if(nentries == 0) { sprintf(errbuf,"Input test string has no entries."); H5Epush(__FILE__, "HE5_EHstrwithin", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(buffer); return(FAIL); } /* Allocate string pointer and length arrays */ /* ----------------------------------------- */ ptr = (char **) calloc(nentries, sizeof(char *)); if(ptr == NULL) { sprintf(errbuf,"Cannot allocate memory for a string pointer."); H5Epush(__FILE__, "HE5_EHstrwithin", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(buffer); return(FAIL); } slen = (size_t *) calloc(nentries, sizeof(size_t)); if(slen == NULL) { sprintf(errbuf,"Cannot allocate memory for a string length pointer."); H5Epush(__FILE__, "HE5_EHstrwithin", __LINE__, H5E_FILE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(buffer); free(ptr); return(FAIL); } /* Parse search string */ /* ------------------- */ nentries = HE5_EHparsestr(search, delim, ptr, slen); if(nentries == 0) { sprintf(errbuf,"Input test string has no entries."); H5Epush(__FILE__, "HE5_EHstrwithin", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(buffer); free(ptr); free(slen); return(FAIL); } /* Loop through all elements in search string list */ /* ----------------------------------------------- */ for (indx = 0; indx < nentries; indx++) { /* Copy string entry into buffer */ /* ----------------------------- */ memmove(buffer, ptr[indx], slen[indx]); buffer[slen[indx]] = 0; /* Compare target string with string entry */ /* --------------------------------------- */ if (strcmp(target, buffer) == 0) { found = 1; break; } } /* If not found set return to FAIL */ /* ------------------------------- */ if (found == 0) indx = FAIL; free(slen); free(ptr); free(errbuf); free(buffer); COMPLETION: return(indx); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHloadliststr | | | | DESCRIPTION: Builds list string from string array | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ptr char String pointer array | | nentries long Number of string array elements | | delim char Delimitor | | | | OUTPUTS: | | liststr char Output list string | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 04/19/00 A.Muslimov Changed 'slen', 'off' types from long to size_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHloadliststr(char *ptr[], long nentries, char *liststr, char delim) { herr_t status = SUCCEED; /* routine return status variable */ long i; /* Loop index */ size_t off = 0; /* Position of next entry in a list */ size_t slen = 0; /* String entry length */ char dstr[2]; /* string containing "delim" value */ dstr[0] = delim; dstr[1] = '\0'; /* Loop through all entries in string array */ /* ---------------------------------------- */ for (i = 0; i < nentries; i++) { /* Get string length of string array entry */ /* --------------------------------------- */ slen = strlen(ptr[i]); /* Copy string entry to string list */ /* -------------------------------- */ memmove(liststr + off, ptr[i], slen + 1); /* Concatenate with delimitor */ /* -------------------------- */ if (i != nentries - 1) { strcat(liststr, dstr); } /* Get position of next entry for string list */ /* ------------------------------------------ */ off += slen + 1; } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHrevflds | | | | DESCRIPTION: Reverses elements in a string list | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | dimlist char* Original dimension list | | | | OUTPUTS: | | revdimlist char* Reversed dimension list | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 04/19/00 A.Muslimov Changed type of 'slen' from long to size_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHrevflds(char *dimlist, char *revdimlist) { herr_t status = FAIL; /* routine return status variable */ long indx = 0; /* Loop index */ long nentries = 0; /* Number of entries in search string */ size_t *slen = (size_t *)NULL;/* Pointer to string length array */ char **ptr; /* Pointer to string pointer array */ char *tempPtr = (char *)NULL;/* Temporary string pointer */ char *tempdimlist = (char *)NULL;/* Temporary dimension list */ CHECKPOINTER(dimlist); /* Copy dimlist into temp dimlist */ /* ------------------------------ */ tempdimlist = (char *)calloc((strlen(dimlist) + 1), sizeof(char) ); if(tempdimlist == NULL) { H5Epush(__FILE__, "HE5_EHrevflds", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(tempdimlist, dimlist); /* Count number of entries in search string list */ /* --------------------------------------------- */ nentries = HE5_EHparsestr(tempdimlist, ',', NULL, NULL); /* Allocate string pointer and length arrays */ /* ----------------------------------------- */ ptr = (char **) calloc(nentries, sizeof(char *)); if(ptr == NULL) { H5Epush(__FILE__, "HE5_EHrevflds", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); if(tempdimlist != NULL) free(tempdimlist); return(FAIL); } slen = (size_t *)calloc(nentries, sizeof(size_t)); if(slen == NULL) { H5Epush(__FILE__, "HE5_EHrevflds", __LINE__, H5E_RESOURCE,H5E_NOSPACE, "Can not allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); if (ptr != NULL) free(ptr); if (tempdimlist != NULL) free(tempdimlist); return(FAIL); } /* Parse search string */ /* ------------------- */ nentries = HE5_EHparsestr(tempdimlist, ',', ptr, slen); /* Reverse entries in string pointer array */ /* --------------------------------------- */ for (indx = 0; indx < nentries / 2; indx++) { tempPtr = ptr[indx]; ptr[indx] = ptr[nentries - 1 - indx]; ptr[nentries - 1 - indx] = tempPtr; } /* Replace comma delimitors by nulls */ /* --------------------------------- */ for (indx = 0; indx < nentries - 1; indx++) { *(ptr[indx] - 1) = 0; } /* Build new string list */ /* --------------------- */ status = HE5_EHloadliststr(ptr, nentries, revdimlist, ','); free(slen); free(ptr); free(tempdimlist); COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHcntOBJECT | | | | DESCRIPTION: Determines number of OBJECTs in metadata GROUP | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | count long Number of OBJECTs in GROUP | | | | INPUTS: | | metabur char Begin & end metadata pointer array | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHcntOBJECT(char *metabuf[]) { long count = 0; /* Counter (RETURN) */ herr_t status = FAIL; /* Return status variable */ char *metaptr = (char *)NULL;/* Beginning of metadata section */ char *endptr = (char *)NULL;/* End of metadata section */ char *tempptr = (char *)NULL;/* Pointer within metadata section */ CHECKPOINTER(metabuf[0]); CHECKPOINTER(metabuf[1]); /* Get Pointers to beginning and ending of metadata section */ /* -------------------------------------------------------- */ metaptr = metabuf[0]; endptr = metabuf[1]; /* Find number of "END_OBJECT" strings within section */ /* -------------------------------------------------- */ tempptr = metaptr; while (tempptr < endptr && tempptr != NULL) { tempptr = strstr(tempptr + 1, "END_OBJECT"); count++; } count--; COMPLETION: return(count); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHcntGROUP | | | | DESCRIPTION: Determines number of GROUPs in metadata GROUP | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | count long Number of GROUPs in GROUP | | | | INPUTS: | | metabur char Begin & end metadata pointer array | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHcntGROUP(char *metabuf[]) { long count = 0; /* Counter (RETURN) */ herr_t status = FAIL; /* Return status variable */ char *metaptr = (char *)NULL;/* Beginning of metadata section */ char *endptr = (char *)NULL;/* End of metadata section */ char *tempptr = (char *)NULL;/* Pointer within metadata section */ CHECKPOINTER(metabuf[0]); CHECKPOINTER(metabuf[1]); /* Get Pointers to beginning and ending of metadata section */ /* -------------------------------------------------------- */ metaptr = metabuf[0]; endptr = metabuf[1]; /* Find number of "END_GROUP" strings within section */ /* ------------------------------------------------- */ tempptr = metaptr; while (tempptr < endptr && tempptr != NULL) { tempptr = strstr(tempptr + 1, "END_GROUP"); count++; } count--; COMPLETION: return (count); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHmetalist | | | | DESCRIPTION: Converts string list to metadata list | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | instring char* Input string list | | | | OUTPUTS: | | outstring char* Output metadata string | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 04/19/00 A.Muslimov Changed type of '*slen', 'listlen' from long to | | size_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHmetalist(char *instring, char *outstring) { herr_t status = FAIL; /* routine return status variable */ long i; /* Loop index */ long nentries = 0; /* Number of entries in search string */ size_t listlen = 1; /* String list length */ size_t *slen = (size_t *)NULL; /* Pointer to string length array */ char **ptr; /* Pointer to string pointer array */ CHECKPOINTER(instring); /* Count number of entries in search string list */ /* --------------------------------------------- */ nentries = HE5_EHparsestr(instring, ',', NULL, NULL); if(nentries == 0) { H5Epush(__FILE__, "HE5_EHmetalist", __LINE__, H5E_FUNC, H5E_BADVALUE, "NULL input string"); HE5_EHprint("Error: NULL input string, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate string pointer */ /* ------------------------ */ ptr = (char **) calloc(nentries, sizeof(char *)); if(ptr == NULL) { H5Epush(__FILE__, "HE5_EHmetalist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate length array */ /* --------------------- */ slen = (size_t *) calloc(nentries, sizeof(size_t)); if(slen == (size_t *)NULL) { H5Epush(__FILE__, "HE5_EHmetalist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); if (ptr != NULL) free(ptr); return(FAIL); } /* Parse input string */ /* ------------------ */ nentries = HE5_EHparsestr(instring, ',', ptr, slen); if(nentries == 0) { H5Epush(__FILE__, "HE5_EHmetalist", __LINE__, H5E_ARGS, H5E_BADVALUE, "NULL input string. \n"); HE5_EHprint("Error: NULL input string, occured", __FILE__, __LINE__); if (ptr != NULL) free(ptr); if (slen != NULL) free(slen); return(FAIL); } /* Start output string with leading "(" */ /* ------------------------------------ */ strcpy(outstring, "("); /* Loop through all entries */ /* ------------------------ */ for (i = 0; i < nentries; i++) { /* Add double quote (") to output string */ /* ------------------------------------- */ strcat(outstring, "\""); listlen++; /* Add input string entry to output string */ /* --------------------------------------- */ memmove(outstring + listlen, ptr[i], slen[i]); listlen += slen[i]; outstring[listlen] = 0; /* Add closing double quote (") to output string */ /* --------------------------------------------- */ strcat(outstring, "\""); listlen++; outstring[listlen] = 0; /* Add comma delimitor to output string */ /* ------------------------------------ */ if (i != (nentries - 1)) { strcat(outstring, ","); listlen++; } /* Place null terminator in output string */ /* -------------------------------------- */ outstring[listlen] = 0; } /* End output string with trailing ")" */ /* ----------------------------------- */ strcat(outstring, ")"); status = SUCCEED; free(ptr); free(slen); COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHinsertmeta | | | | DESCRIPTION: Writes metadata | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | status herr_t None return status variable (0 for success, | | -1 for failure) | | | | INPUTS: | | | | fid hid_t None HDF-EOS file ID | | structname char* None Object name string | | structcode char* None "s" for a swath, "g" for a grid, | | "p" for a point, and "z" for a za. | | metacode long None Code of a metadata block to insert to. | | metastr char* None Buffer containing metadata information | | to insert. | | metadata[] hsize_t None Array of data values | | | | OUTPUTS: | | | | None | | | | NOTES: There is memory allocation of HE5_STATIC_BLKSIZE chunk for the | | dataset "StructMetadata.0" when the buffer is allocated | | statically (old scheme), or memory allocation is in cuncks | | of HE5_DYNAMIC_BLKSIZE (new scheme) allocated dynamically. | | The chuncks will be written to datasets "StructMetadata.0", | | "StructMetadata.1", "StructMetadata.2", etc. | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 05/17/04 Abe Taaheri Initial version | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHinsertmeta(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]) { herr_t status = SUCCEED; int HDFEOS5ver_flg ; /* will be set to 1 if the HDF-EOS5 version is later than 5.1.7, otherwise to 0 */ /* Get HDFEOS5ver_flg flag for the file */ /* --------------- */ HDFEOS5ver_flg = HE5_HeosTable[fid%HE5_EHIDOFFSET].DYNAMIC_flag; if(HDFEOS5ver_flg == 1) { status = HE5_EHinsertmeta_Static(fid, structname, structcode, metacode, metastr, metadata); } else if(HDFEOS5ver_flg == 0) { status = HE5_EHinsertmeta_Dynamic(fid, structname, structcode, metacode, metastr, metadata); } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHinsertmeta_Static | | | | DESCRIPTION: Writes metadata using a static buffer | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | status herr_t None return status variable (0 for success, | | -1 for failure) | | | | INPUTS: | | | | fid hid_t None HDF-EOS file ID | | structname char* None Object name string | | structcode char* None "s" for a swath, "g" for a grid, | | "p" for a point, and "z" for a za. | | metacode long None Code of a metadata block to insert to. | | metastr char* None Buffer containing metadata information | | to insert. | | metadata[] hsize_t None Array of data values | | | | OUTPUTS: | | | | None | | | | NOTES: There is memory allocation of HE5_STATIC_BLKSIZE chunk for the | | dataset "StructMetadata.0" | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 07/16/99 A.Muslimov Replaced the 1st argument by fid (file ID). Did | | the same change in the call to H5Dopen(). Modified | | the first two calls to HDF5 lib.func. and commented | | out the fourth and fifth calls. Allocated a fixed | | chunk of memory of BLKSIZE for the output metabuf[] | | array. | | 08/26/99 A.Muslimov Added if() condition after the H5Dread() H5Dwrite() | | calls. | | 09/07/99 A.Muslimov Allocated a BLKSIZE bytes for the newbuf[] array. | | 09/13/99 A.Muslimov Checked for the value (nentries) returned by | | EHparsestr(). Checked for the status returned by | | EHmetalist(). | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message | | buffer. | | 01/06/00 A.Muslimov Changed the datatype of parameter "metadata[]" | | from int32_t to hsize_t to allow passing the | | Unlimited dimension value. Modified the correspon - | | ding sprintf() calls. | | 02/07/00 A.Muslimov Added free() before return(FAIL). | | 04/19/00 A.Muslimov Changed type of 'slen' from long to size_t. | | 09/05/00 A.Muslimov Added conversion of 'fid' to 'HDFfid'. In the call | | H5Gopen(fid, ...) replaced 'fid' by 'HDFfid'. | | 12/12/00 A.Muslimov Updated to add "case 5" ("Profile Fields"). | | Jan 2004 S.Zhao Added a FAIL status for redefining a dimension. | | Mar 2004 S.Zhao Modified for redefining a dimension. | | May 2005 S.Zhao Added data type string designators in the dataset | | "StructMetadata.0". | | Feb 06 Abe Taaheri Casted Switch argument to long for HP11 | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHinsertmeta_Static(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]) { herr_t status = FAIL; /* routine return status variable */ int i; /* Loop index */ hid_t gid = FAIL; /* "HDFEOS INFORMATION" group ID */ hid_t meta_id = FAIL; /* "StructuralMetadat.0" group ID */ hid_t atype = FAIL; /* Data type ID */ hid_t aspace = FAIL; /* Data space ID */ hid_t HDFfid = FAIL; /* HDF5 file ID */ size_t slen[HE5_DTSETRANKMAX];/* String length array */ hsize_t tempdim = 0; /* Temporary variable */ long count = 0; /* Objects/Groups counter */ long offset = 0; /* Offset insertion position of new metadata */ long nentries = 0; /* Number of comma separated string entries */ char *metabuf = NULL; /* Pointer to Structural Metadata array */ char *begptr = NULL; /* Pointer to beginning of metadata section */ char *metaptr = NULL; /* Metadata pointer */ char *prevmetaptr = NULL;/* Previous position of metadata pointer */ char *ptr[HE5_DTSETRANKMAX];/* String pointer array */ char *metaArr[2]={NULL,NULL};/* Array of metadata positions */ char *colon = NULL; /* Colon position */ char *colon2 = NULL; /* 2nd colon position */ char *slash = NULL; /* Slash postion */ char *utlstr = NULL; /* Utility string */ char *utlstr1 = NULL; /* Utility string 1 */ char *utlstr2 = NULL; /* Utility string 2 */ char *newbuf = NULL; /* updated metadata string */ char *type = NULL; /* data type string */ char *errbuf = NULL; /* Error message buffer */ char *dimptr = NULL; /* Dimension pointer */ char *newmetastr = NULL; /* Modified metadata string */ char *endptr = NULL; /* Pointer to ending of metadata section */ char *newmetaptr = NULL; /* Updated metadata pointer */ char *begptr2 = NULL; /* Pointer 2 to beginning of metadata section*/ int len1, len2, difflen = 0; CHECKPOINTER(structname); CHECKPOINTER(structcode); CHECKPOINTER(metastr); /* Get HDF file ID */ /* --------------- */ HDFfid = HE5_HeosTable[fid%HE5_EHIDOFFSET].HDFfid; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffe, occuredr", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for data type string */ /* ------------------------------------ */ type = (char * )calloc( HE5_HDFE_TYPESTRSIZE, sizeof(char)); if(type == NULL) { sprintf(errbuf,"Cannot allocate memory for data type string. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Open "HDFEOS INFORMATION" group */ /* =============================== */ gid = H5Gopen(HDFfid, "HDFEOS INFORMATION"); if(gid == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open \"HDFEOS INFORMATION\" group. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } /* *--------------------------------------------------------------* * Open dataset "StructMetadata.0", get datatype and space ID * *--------------------------------------------------------------* */ meta_id = H5Dopen(gid, "StructMetadata.0"); if( meta_id == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open \"StructMetadata.0\" dataset. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } atype = H5Dget_type(meta_id); if( atype == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the dataset datatype. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } aspace = H5Dget_space(meta_id); if( aspace == FAIL ) { status = FAIL; sprintf(errbuf,"Cannot get the dataset dataspace. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } /* NOTE: this call is not supported yet for a string npoints = H5Sget_simple_extent_npoints(aspace); it will be implemented for memory allocation for metabuf[] array */ /* *-------------------------------------------------------------* * Allocate memory for the output array and Read attribute * *-------------------------------------------------------------* */ metabuf = (char *)calloc( HE5_HeosTable[fid%HE5_EHIDOFFSET].HE5_STATIC_BLKSIZE, sizeof(char)); if( metabuf == NULL ) { sprintf(errbuf,"Cannot allocate memory for meta buffer. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); return(status); } utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr == NULL ) { sprintf(errbuf,"Cannot allocate memory for utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); return(status); } utlstr2 = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr2 == NULL ) { sprintf(errbuf,"Cannot allocate memory for the 2d utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); return(status); } status = H5Dread(meta_id, atype,H5S_ALL, H5S_ALL, H5P_DEFAULT,metabuf); if( status == FAIL) { sprintf(errbuf, "Cannot read structural metadata. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Find HDF-EOS structure "root" group in metadata */ /* ----------------------------------------------- */ /* Setup proper search string */ if (strcmp(structcode, "s") == 0) { strcpy(utlstr, "GROUP=SwathStructure"); } else if (strcmp(structcode, "g") == 0) { strcpy(utlstr, "GROUP=GridStructure"); } else if (strcmp(structcode, "p") == 0) { strcpy(utlstr, "GROUP=PointStructure"); } else if (strcmp(structcode, "z") == 0) { strcpy(utlstr, "GROUP=ZaStructure"); } /* Use string search routine (strstr) to move through metadata */ /* ----------------------------------------------------------- */ metaptr = strstr(metabuf, utlstr); if ((int)abs((int)metacode) == 0) { utlstr1 = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr1 == NULL ) { sprintf(errbuf,"Cannot allocate memory for the 2d utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } if (strcmp(structcode, "s") == 0) { strcpy(utlstr1, "END_GROUP=SwathStructure"); } else if (strcmp(structcode, "g") == 0) { strcpy(utlstr1, "END_GROUP=GridStructure"); } else if (strcmp(structcode, "p") == 0) { strcpy(utlstr1, "END_GROUP=PointStructure"); } else if (strcmp(structcode, "z") == 0) { strcpy(utlstr1, "END_GROUP=ZaStructure"); } newmetaptr = (char *)malloc(sizeof(char)*(strlen(metaptr)+1)); strcpy(newmetaptr, metaptr); endptr = strstr(newmetaptr, utlstr1); endptr++; *endptr = '\0'; free(utlstr1); utlstr1 = NULL; } /* Find specific (named) structure */ /* ------------------------------- */ if (metacode < 1000) { /* Save current metadata pointer */ /* ----------------------------- */ prevmetaptr = metaptr; /* First loop for "old-style" (non-ODL) metadata string */ /* ---------------------------------------------------- */ if (strcmp(structcode, "s") == 0) { sprintf(utlstr, "%s%s%s", "SwathName=\"", structname, "\""); } else if (strcmp(structcode, "g") == 0) { sprintf(utlstr, "%s%s%s", "GridName=\"", structname, "\""); } else if (strcmp(structcode, "p") == 0) { sprintf(utlstr, "%s%s%s", "PointName=\"", structname, "\""); } else if (strcmp(structcode, "z") == 0) { sprintf(utlstr, "%s%s%s", "ZaName=\"", structname, "\""); } /* Perform string search */ /* --------------------- */ metaptr = strstr(metaptr, utlstr); if ((int)abs((int)metacode) == 0) { len1 = strlen(newmetaptr); newmetaptr = strstr(newmetaptr, utlstr); len2 = strlen(newmetaptr); difflen = len1 - len2; } /* *--------------------------------------------------------------------* * If not found then return to previous position in metadata and look * * for "new-style" (ODL) metadata string * *--------------------------------------------------------------------* */ if (metaptr == NULL) { sprintf(utlstr, "%s%s%s", "GROUP=\"", structname, "\""); metaptr = strstr(prevmetaptr, utlstr); } } /* Searching for geo fields (3), data fields (4), profile fields (5), */ /* or point fields (11) convert type code to string designator */ /* ------------------------------------------------------------------ */ if (metacode == 3 || metacode == 4 || metacode == 5 || metacode == 11) { #ifndef HP9000 /* HP11 has problem with hsize_t type as switch argumet */ switch (metadata[0]) #else switch ((long)metadata[0]) #endif { case 0: strcpy(type, "H5T_NATIVE_INT"); break; case 1: strcpy(type, "H5T_NATIVE_UINT"); break; case 2: strcpy(type, "H5T_NATIVE_SHORT"); break; case 3: strcpy(type, "H5T_NATIVE_USHORT"); break; case 4: strcpy(type, "H5T_NATIVE_SCHAR"); break; case 5: strcpy(type, "H5T_NATIVE_UCHAR"); break; case 6: strcpy(type, "H5T_NATIVE_LONG"); break; case 7: strcpy(type, "H5T_NATIVE_ULONG"); break; case 8: strcpy(type, "H5T_NATIVE_LLONG"); break; case 9: strcpy(type, "H5T_NATIVE_ULLONG"); break; case 10: strcpy(type, "H5T_NATIVE_FLOAT"); break; case 11: strcpy(type, "H5T_NATIVE_DOUBLE"); break; case 12: strcpy(type, "H5T_NATIVE_LDOUBLE"); break; case 13: strcpy(type, "H5T_NATIVE_INT8"); break; case 14: strcpy(type, "H5T_NATIVE_UINT8"); break; case 15: strcpy(type, "H5T_NATIVE_INT16"); break; case 16: strcpy(type, "H5T_NATIVE_UINT16"); break; case 17: strcpy(type, "H5T_NATIVE_INT32"); break; case 18: strcpy(type, "H5T_NATIVE_UINT32"); break; case 19: strcpy(type, "H5T_NATIVE_INT64"); break; case 20: strcpy(type, "H5T_NATIVE_UINT64"); break; case 21: strcpy(type, "H5T_NATIVE_B8"); break; case 22: strcpy(type, "H5T_NATIVE_B16"); break; case 23: strcpy(type, "H5T_NATIVE_B32"); break; case 24: strcpy(type, "H5T_NATIVE_B64"); break; case 25: strcpy(type, "H5T_NATIVE_HSIZE"); break; case 26: strcpy(type, "H5T_NATIVE_HERR"); break; case 27: strcpy(type, "H5T_NATIVE_HBOOL"); break; case 56: strcpy(type, "H5T_NATIVE_CHAR"); break; case 57: strcpy(type, "HE5T_CHARSTRING"); break; } } /* Metadata Section Switch */ /* ----------------------- */ switch ((int)abs((int)metacode)) { case 0: /* Dimension Section */ /* ================= */ /* Find beginning of metadata section */ /* ---------------------------------- */ strcpy(utlstr, "\t\tGROUP=Dimension"); begptr = strstr(metaptr, utlstr); begptr2 = strstr(newmetaptr, utlstr); /* Search for dimension name */ /* ------------------------- */ newmetastr = (char *)malloc(sizeof(char)*strlen(metastr)+6); strcpy(newmetastr, "\""); strcat(newmetastr, metastr); strcat(newmetastr, "\""); dimptr = strstr(begptr2, newmetastr); free(newmetastr); newmetastr = NULL; if (dimptr != NULL) { status = FAIL; sprintf(errbuf,"Cannot redefine the dimension \"%s\". \n", metastr); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); free(newmetaptr - difflen); return(status); } else { /* Find ending of metadata section */ /* ------------------------------- */ strcpy(utlstr, "\t\tEND_GROUP=Dimension"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%li%s%li%s", "\t\t\tOBJECT=Dimension_",count,"\n\t\t\t\tDimensionName=\"",&metastr[0],"\"\n\t\t\t\tSize=", (long)metadata[0],"\n\t\t\tEND_OBJECT=Dimension_", count, "\n"); } if (newmetaptr != NULL) { free(newmetaptr - difflen); newmetaptr = NULL; } break; case 1: /* DimensionMap Section */ /* ==================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=DimensionMap"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=DimensionMap"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Initialize slen[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) slen[ i ] = 0; /* Find slash within input mapping string and replace with NULL */ /* ------------------------------------------------------------ */ nentries = HE5_EHparsestr(metastr, '/', ptr, slen); if( nentries == 0) { status = FAIL; sprintf(errbuf,"Input metadata string has no entries. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } metastr[slen[0]] = 0; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%li%s%li%s%li%s", "\t\t\tOBJECT=DimensionMap_", count, "\n\t\t\t\tGeoDimension=\"", &metastr[0], "\"\n\t\t\t\tDataDimension=\"", &metastr[slen[0] + 1], "\"\n\t\t\t\tOffset=", (long)metadata[0], "\n\t\t\t\tIncrement=", (long)metadata[1], "\n\t\t\tEND_OBJECT=DimensionMap_", count, "\n"); break; case 2: /* IndexDimensionMap Section */ /* ========================= */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=IndexDimensionMap"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=IndexDimensionMap"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find slash within input mapping string and replace with NULL */ /* ------------------------------------------------------------ */ nentries = HE5_EHparsestr(metastr, '/', ptr, slen); if( nentries == 0) { status = FAIL; sprintf(errbuf,"The input metadata string has no entries. \n"); H5Epush(__FILE__,"HE5_EHinsertmeta_Static", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } metastr[slen[0]] = 0; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%li%s", "\t\t\tOBJECT=IndexDimensionMap_", count, "\n\t\t\t\tGeoDimension=\"", &metastr[0], "\"\n\t\t\t\tDataDimension=\"", &metastr[slen[0] + 1], "\"\n\t\t\tEND_OBJECT=IndexDimensionMap_", count, "\n"); break; case 3: /* Geolocation Fields Section */ /* ========================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=GeoField"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=GeoField"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find colon (parse off field name) */ /* --------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Search for next colon (compression and/or tiling parameters) */ /* ------------------------------------------------------------ */ colon2 = strchr(colon + 1, ':'); if (colon2 != NULL) { *colon2 = 0; } /* Make metadata string list for dimension list */ /* -------------------------------------------- */ status = HE5_EHmetalist(colon + 1, utlstr2); if( status == FAIL) { sprintf(errbuf,"Cannot convert the string list to metadata list. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%s", "\t\t\tOBJECT=GeoField_", count, "\n\t\t\t\tGeoFieldName=\"", metastr, "\"\n\t\t\t\tDataType=", type, "\n\t\t\t\tDimList=", utlstr2); /* If compression and/or tiling parameters add to string */ /* ----------------------------------------------------- */ if (colon2 != NULL) { strcat(utlstr, colon2 + 1); } /* Add END_OBJECT terminator to metadata string */ /* -------------------------------------------- */ sprintf(utlstr2, "%s%li%s", "\n\t\t\tEND_OBJECT=GeoField_", count, "\n"); strcat(utlstr, utlstr2); break; case 4: /* Data Fields Section */ /* =================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=DataField"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=DataField"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find colon (parse off field name) */ /* --------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Search for next colon (compression and/or tiling parameters) */ /* ------------------------------------------------------------ */ colon2 = strchr(colon + 1, ':'); if (colon2 != NULL) { *colon2 = 0; } /* Make metadata string list from dimension list */ /* --------------------------------------------- */ status = HE5_EHmetalist(colon + 1, utlstr2); if( status == FAIL) { sprintf(errbuf, "Cannot convert the string list to metadata list. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%s", "\t\t\tOBJECT=DataField_", count, "\n\t\t\t\tDataFieldName=\"", metastr, "\"\n\t\t\t\tDataType=", type, "\n\t\t\t\tDimList=", utlstr2); /* If compression and/or tiling parameters add to string */ /* ----------------------------------------------------- */ if (colon2 != NULL) { strcat(utlstr, colon2 + 1); } /* Add END_OBJECT terminator to metadata string */ /* -------------------------------------------- */ sprintf(utlstr2, "%s%li%s", "\n\t\t\tEND_OBJECT=DataField_", count, "\n"); strcat(utlstr, utlstr2); break; case 5: /* Profile Fields Section */ /* ====================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=ProfileField"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=ProfileField"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find colon (parse off profile name) */ /* ----------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Search for next colon (compression and/or tiling parameters) */ /* ------------------------------------------------------------ */ colon2 = strchr(colon + 1, ':'); if (colon2 != NULL) { *colon2 = 0; } /* Make metadata string list from dimension list */ /* --------------------------------------------- */ status = HE5_EHmetalist(colon + 1, utlstr2); if( status == FAIL) { sprintf(errbuf, "Cannot convert the string list to metadata list. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%s", "\t\t\tOBJECT=ProfileField_", count, "\n\t\t\t\tProfileFieldName=\"", metastr, "\"\n\t\t\t\tDataType=", type, "\n\t\t\t\tDimList=", utlstr2); /* If compression and/or tiling parameters add to string */ /* ----------------------------------------------------- */ if (colon2 != NULL) { strcat(utlstr, colon2 + 1); } /* Add END_OBJECT terminator to metadata string */ /* -------------------------------------------- */ sprintf(utlstr2, "%s%li%s", "\n\t\t\tEND_OBJECT=ProfileField_", count, "\n"); strcat(utlstr, utlstr2); break; case 10: /* Point Level Section */ /* =================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=Level"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\n\t\tEND_GROUP=Level"); metaptr = strstr(metaptr, utlstr) + 1; /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntGROUP(metaArr); /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%li%s", "\t\t\tGROUP=Level_", count, "\n\t\t\t\tLevelName=\"", metastr, "\"\n\t\t\tEND_GROUP=Level_", count, "\n"); break; case 11: /* Point Field Section */ /* =================== */ /* Find colon (parse off point field name) */ /* --------------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\t\t\tLevelName=\""); strcat(utlstr, colon + 1); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\t\tEND_GROUP=Level_"); metaptr = strstr(begptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%li%s%li%s", "\t\t\t\tOBJECT=PointField_", count, "\n\t\t\t\t\tPointFieldName=\"", metastr, "\"\n\t\t\t\t\tDataType=", type, "\n\t\t\t\t\tOrder=", (long)metadata[1], "\n\t\t\t\tEND_OBJECT=PointField_", count, "\n"); break; case 12: /* LevelLink Section */ /* ================= */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=LevelLink"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=LevelLink"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find colon (parse off parent/child level names from link field) */ /* --------------------------------------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Find slash (divide parent and child levels) */ /* ------------------------------------------- */ slash = strchr(metastr, '/'); *slash = 0; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%s%s%li%s", "\t\t\tOBJECT=LevelLink_", count, "\n\t\t\t\tParent=\"", metastr, "\"\n\t\t\t\tChild=\"", slash + 1, "\"\n\t\t\t\tLinkField=\"", colon + 1, "\"\n\t\t\tEND_OBJECT=LevelLink_", count, "\n"); break; case 101: /* Position metadata pointer for Grid proj parms, pix reg, origin */ /* -------------------------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=Dimension"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; case 1001: /* Position metadata pointer for new swath structure (SWcreate) */ /* ------------------------------------------------------------ */ strcpy(utlstr, "END_GROUP=SwathStructure"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; case 1002: /* Position metadata pointer for new grid structure (GDcreate) */ /* ----------------------------------------------------------- */ strcpy(utlstr, "END_GROUP=GridStructure"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; case 1003: /* Position metadata pointer for new point structure (PTcreate) */ /* ------------------------------------------------------------ */ strcpy(utlstr, "END_GROUP=PointStructure"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; case 1004: /* Position metadata pointer for new za structure (ZAcreate) */ /* ------------------------------------------------------------ */ strcpy(utlstr, "END_GROUP=ZaStructure"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; default: { sprintf(errbuf, "Unknown metacode.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } /* Get offset of entry postion within existing metadata */ /* ---------------------------------------------------- */ offset = (long)(metaptr - metabuf); /* Reallocate memory for a new metadata array, newbuf */ /* ------------------------------------------------------ */ newbuf = (char *) calloc(HE5_HeosTable[fid%HE5_EHIDOFFSET].HE5_STATIC_BLKSIZE, sizeof(char)); if(newbuf==NULL) { sprintf(errbuf, "Cannot allocate memory for a new metadata string.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Copy new metadata string to newbuf array */ /* ---------------------------------------- */ for(i = 0; i < offset; i++) newbuf[ i ] = metabuf[ i ]; newbuf[ offset ] = 0; strcat( newbuf, utlstr); strcat( newbuf, metaptr); tempdim = (hsize_t)strlen( newbuf ); tempdim++; /* *-----------------------------------------------------------------* * Write metadata back to dataset "StructMetadata.0" * *-----------------------------------------------------------------* */ /* H5Sset_extent_simple(aspace, 1, &tempdim, 0 ); NOT SUPPORTED YET !!! */ /* H5Dextend(meta_id, &tempdim); NOT SUPPORTED YET !!! */ status = H5Dwrite(meta_id, atype, H5S_ALL, H5S_ALL, H5P_DEFAULT, newbuf); if( status == FAIL) { sprintf(errbuf,"Cannot write in structural metadata.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); free(newbuf); return(status); } free(metabuf); free(newbuf); free(utlstr); free(utlstr2); free(type); metabuf = NULL; newbuf = NULL; utlstr2 = NULL; utlstr = NULL; type = NULL; status = H5Sclose(aspace); if( status == FAIL) { sprintf(errbuf,"Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Tclose(atype); if( status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Dclose(meta_id); if( status == FAIL) { sprintf(errbuf,"Cannot release the dataset ID.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Gclose(gid); if( status == FAIL) { sprintf(errbuf,"Cannot release the group ID.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Static", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } free(errbuf); errbuf = NULL; COMPLETION: return status; } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHinsertmeta_Dynamic | | | | DESCRIPTION: Writes metadata using dynamic buffer | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | status herr_t None return status variable (0 for success, | | -1 for failure) | | | | INPUTS: | | | | fid hid_t None HDF-EOS file ID | | structname char* None Object name string | | structcode char* None "s" for a swath, "g" for a grid, | | "p" for a point, and "z" for a za. | | metacode long None Code of a metadata block to insert to. | | metastr char* None Buffer containing metadata information | | to insert. | | metadata[] hsize_t None Array of data values | | | | OUTPUTS: | | | | None | | | | NOTES: memory allocation is in cuncks of HE5_DYNAMIC_BLKSIZE (new scheme)| | allocated dynamically. | | The chuncks will be written to datasets "StructMetadata.0", | | "StructMetadata.1", "StructMetadata.2", etc. | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 05/17/04 Abe Taaheri Added to support dynamic allocation of metadata | | buffer | | May 05 S.Zhao Added data type string designators in the dataset | | "StructMetadata.X". | | Feb 06 Abe Taaheri Casted Switch argument to long for HP11 | | Oct 11 Abe Taaheri Corrected end of structre metadata by adding one | | more NULL character to the end of it (without this | | change a garbage character was present at the end | | of last piece of multiple 32000 size structre | | metadatas). | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHinsertmeta_Dynamic(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]) { herr_t status = FAIL; /* routine return status variable */ int i; /* Loop index */ hid_t gid = FAIL; /* "HDFEOS INFORMATION" group ID */ hid_t meta_id[MetaBlocks] = {FAIL}; /* "StructuralMetadat.0" group ID */ hid_t atype[MetaBlocks] = {FAIL}; /* Data type ID */ hid_t aspace[MetaBlocks] = {FAIL}; /* Data space ID */ hid_t HDFfid = FAIL; /* HDF5 file ID */ size_t slen[HE5_DTSETRANKMAX];/* String length array */ hsize_t tempdim = 0; /* Temporary variable */ long count = 0; /* Objects/Groups counter */ long offset = 0; /* Offset insertion position of new metadata */ long nentries = 0; /* Number of comma separated string entries */ char *metabuf = NULL; /* Pointer to Structural Metadata array */ char *begptr = NULL; /* Pointer to beginning of metadata section */ char *metaptr = NULL; /* Metadata pointer */ char *prevmetaptr = NULL;/* Previous position of metadata pointer */ char *ptr[HE5_DTSETRANKMAX];/* String pointer array */ char *metaArr[2]={NULL,NULL};/* Array of metadata positions */ char *colon = NULL; /* Colon position */ char *colon2 = NULL; /* 2nd colon position */ char *slash = NULL; /* Slash postion */ char *utlstr = NULL; /* Utility string */ char *utlstr1 = NULL; /* Utility string 1 */ char *utlstr2 = NULL; /* Utility string 2 */ char *newbuf = NULL; /* updated metadata string */ char *type = NULL; /* data type string */ char *errbuf = NULL; /* Error message buffer */ char *dimptr = NULL; /* Dimension pointer */ char *newmetastr = NULL; /* Modified metadata string */ char *endptr = NULL; /* Pointer to ending of metadata section */ char *newmetaptr = NULL; /* Updated metadata pointer */ char *begptr2 = NULL; /* Pointer 2 to beginning of metadata section*/ int len1, len2, difflen = 0; long nmeta; /*char *metobjectlist;*/ /*long *metstrbufsize = 0;*/ char metutlstr[32]; int ism; long metalen, seglen; size_t size = 0; /* Data size (bytes) */ CHECKPOINTER(structname); CHECKPOINTER(structcode); CHECKPOINTER(metastr); Stored_meta[fid%HE5_EHIDOFFSET].metaread_flag = 0; /* Get HDF file ID */ /* --------------- */ HDFfid = HE5_HeosTable[fid%HE5_EHIDOFFSET].HDFfid; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for data type string */ /* ------------------------------------ */ type = (char * )calloc( HE5_HDFE_TYPESTRSIZE, sizeof(char)); if(type == NULL) { sprintf(errbuf,"Cannot allocate memory for data type string. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Open "HDFEOS INFORMATION" group */ /* =============================== */ gid = H5Gopen(HDFfid, "HDFEOS INFORMATION"); if(gid == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open \"HDFEOS INFORMATION\" group. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } /* Determine number of structural metadata "sections" */ /* -------------------------------------------------- */ nmeta = 0; status= HE5_EHgetnmeta(gid, &nmeta); if(status == FAIL) { sprintf(errbuf,"Cannot find any StructMetadata.X dataset. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Allocate space for metadata (in units of 32000 bytes) */ /* ----------------------------------------------------- */ metabuf = (char *) calloc(HE5_DYNAMIC_BLKSIZE * nmeta, sizeof(char )); if(metabuf == NULL) { sprintf(errbuf, "Cannot allocate memory for the metadata buffer. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(FAIL); } /* Read structural metadata from all StructMetadata datasets */ /* --------------------------------------------------------- */ for (ism = 0; ism < nmeta; ism++) { /* *--------------------------------------------------------------* * Open dataset "StructMetadata.X", get datatype and space ID * *--------------------------------------------------------------* */ sprintf(metutlstr, "%s%d", "StructMetadata.", ism); meta_id[ism] = H5Dopen(gid, metutlstr); metalen = strlen(metabuf); if( meta_id[ism] == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open %s dataset. \n",metutlstr); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); return(status); } atype[ism] = H5Dget_type(meta_id[ism]); if( atype[ism] == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the dataset datatype. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); status = H5Dclose(meta_id[ism]); return(status); } aspace[ism] = H5Dget_space(meta_id[ism]); if( aspace[ism] == FAIL ) { status = FAIL; sprintf(errbuf,"Cannot get the dataset dataspace. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); status = H5Tclose(atype[ism]); status = H5Dclose(meta_id[ism]); return(status); } /* NOTE: this call is not supported yet for a string npoints = H5Sget_simple_extent_npoints(aspace); it will be implemented for memory allocation for metabuf[] array */ /* *-------------------------------------------------------------* * Allocate memory for the output array and Read attribute * *-------------------------------------------------------------* */ utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr == NULL ) { sprintf(errbuf,"Cannot allocate memory for utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); return(status); } utlstr2 = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr2 == NULL ) { sprintf(errbuf,"Cannot allocate memory for the 2d utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); return(status); } status = H5Dread(meta_id[ism], atype[ism],H5S_ALL, H5S_ALL, H5P_DEFAULT, metabuf + metalen); if( status == FAIL) { sprintf(errbuf, "Cannot read structural metadata. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } } /* Determine length (# of characters) of metadata */ /* ---------------------------------------------- */ metalen = strlen(metabuf); /* Find HDF-EOS structure "root" group in metadata */ /* ----------------------------------------------- */ /* Setup proper search string */ if (strcmp(structcode, "s") == 0) { strcpy(utlstr, "GROUP=SwathStructure"); } else if (strcmp(structcode, "g") == 0) { strcpy(utlstr, "GROUP=GridStructure"); } else if (strcmp(structcode, "p") == 0) { strcpy(utlstr, "GROUP=PointStructure"); } else if (strcmp(structcode, "z") == 0) { strcpy(utlstr, "GROUP=ZaStructure"); } /* Use string search routine (strstr) to move through metadata */ /* ----------------------------------------------------------- */ metaptr = strstr(metabuf, utlstr); if ((int)abs((int)metacode) == 0) { utlstr1 = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr1 == NULL ) { sprintf(errbuf,"Cannot allocate memory for the 2d utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } if (strcmp(structcode, "s") == 0) { strcpy(utlstr1, "END_GROUP=SwathStructure"); } else if (strcmp(structcode, "g") == 0) { strcpy(utlstr1, "END_GROUP=GridStructure"); } else if (strcmp(structcode, "p") == 0) { strcpy(utlstr1, "END_GROUP=PointStructure"); } else if (strcmp(structcode, "z") == 0) { strcpy(utlstr1, "END_GROUP=ZaStructure"); } newmetaptr = (char *)malloc(sizeof(char)*(strlen(metaptr)+1)); strcpy(newmetaptr, metaptr); endptr = strstr(newmetaptr, utlstr1); endptr++; *endptr = '\0'; free(utlstr1); utlstr1 = NULL; } /* Find specific (named) structure */ /* ------------------------------- */ if (metacode < 1000) { /* Save current metadata pointer */ /* ----------------------------- */ prevmetaptr = metaptr; /* First loop for "old-style" (non-ODL) metadata string */ /* ---------------------------------------------------- */ if (strcmp(structcode, "s") == 0) { sprintf(utlstr, "%s%s%s", "SwathName=\"", structname, "\""); } else if (strcmp(structcode, "g") == 0) { sprintf(utlstr, "%s%s%s", "GridName=\"", structname, "\""); } else if (strcmp(structcode, "p") == 0) { sprintf(utlstr, "%s%s%s", "PointName=\"", structname, "\""); } else if (strcmp(structcode, "z") == 0) { sprintf(utlstr, "%s%s%s", "ZaName=\"", structname, "\""); } /* Perform string search */ /* --------------------- */ metaptr = strstr(metaptr, utlstr); if ((int)abs((int)metacode) == 0) { len1 = strlen(newmetaptr); newmetaptr = strstr(newmetaptr, utlstr); len2 = strlen(newmetaptr); difflen = len1 - len2; } /* *--------------------------------------------------------------------* * If not found then return to previous position in metadata and look * * for "new-style" (ODL) metadata string * *--------------------------------------------------------------------* */ if (metaptr == NULL) { sprintf(utlstr, "%s%s%s", "GROUP=\"", structname, "\""); metaptr = strstr(prevmetaptr, utlstr); } } /* Searching for geo fields (3), data fields (4), profile fields (5), */ /* or point fields (11) convert type code to string designator */ /* ------------------------------------------------------------------ */ if (metacode == 3 || metacode == 4 || metacode == 5 || metacode == 11) { #ifndef HP9000 /* HP11 has problem with hsize_t type as switch argumet */ switch (metadata[0]) #else switch ((long)metadata[0]) #endif { case 0: strcpy(type, "H5T_NATIVE_INT"); break; case 1: strcpy(type, "H5T_NATIVE_UINT"); break; case 2: strcpy(type, "H5T_NATIVE_SHORT"); break; case 3: strcpy(type, "H5T_NATIVE_USHORT"); break; case 4: strcpy(type, "H5T_NATIVE_SCHAR"); break; case 5: strcpy(type, "H5T_NATIVE_UCHAR"); break; case 6: strcpy(type, "H5T_NATIVE_LONG"); break; case 7: strcpy(type, "H5T_NATIVE_ULONG"); break; case 8: strcpy(type, "H5T_NATIVE_LLONG"); break; case 9: strcpy(type, "H5T_NATIVE_ULLONG"); break; case 10: strcpy(type, "H5T_NATIVE_FLOAT"); break; case 11: strcpy(type, "H5T_NATIVE_DOUBLE"); break; case 12: strcpy(type, "H5T_NATIVE_LDOUBLE"); break; case 13: strcpy(type, "H5T_NATIVE_INT8"); break; case 14: strcpy(type, "H5T_NATIVE_UINT8"); break; case 15: strcpy(type, "H5T_NATIVE_INT16"); break; case 16: strcpy(type, "H5T_NATIVE_UINT16"); break; case 17: strcpy(type, "H5T_NATIVE_INT32"); break; case 18: strcpy(type, "H5T_NATIVE_UINT32"); break; case 19: strcpy(type, "H5T_NATIVE_INT64"); break; case 20: strcpy(type, "H5T_NATIVE_UINT64"); break; case 21: strcpy(type, "H5T_NATIVE_B8"); break; case 22: strcpy(type, "H5T_NATIVE_B16"); break; case 23: strcpy(type, "H5T_NATIVE_B32"); break; case 24: strcpy(type, "H5T_NATIVE_B64"); break; case 25: strcpy(type, "H5T_NATIVE_HSIZE"); break; case 26: strcpy(type, "H5T_NATIVE_HERR"); break; case 27: strcpy(type, "H5T_NATIVE_HBOOL"); break; case 56: strcpy(type, "H5T_NATIVE_CHAR"); break; case 57: strcpy(type, "HE5T_CHARSTRING"); break; } } /* Metadata Section Switch */ /* ----------------------- */ switch ((int)abs((int)metacode)) { case 0: /* Dimension Section */ /* ================= */ /* Find beginning of metadata section */ /* ---------------------------------- */ strcpy(utlstr, "\t\tGROUP=Dimension"); begptr = strstr(metaptr, utlstr); begptr2 = strstr(newmetaptr, utlstr); /* Search for dimension name */ /* ------------------------- */ newmetastr = (char *)malloc(sizeof(char)*strlen(metastr)+6); strcpy(newmetastr, "\""); strcat(newmetastr, metastr); strcat(newmetastr, "\""); dimptr = strstr(begptr2, newmetastr); free(newmetastr); newmetastr = NULL; if (dimptr != NULL) { status = FAIL; sprintf(errbuf,"Cannot redefine the dimension \"%s\". \n", metastr); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); free(newmetaptr - difflen); return(status); } else { /* Find ending of metadata section */ /* ------------------------------- */ strcpy(utlstr, "\t\tEND_GROUP=Dimension"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%li%s%li%s", "\t\t\tOBJECT=Dimension_",count,"\n\t\t\t\tDimensionName=\"",&metastr[0],"\"\n\t\t\t\tSize=", (long)metadata[0],"\n\t\t\tEND_OBJECT=Dimension_", count, "\n"); } if (newmetaptr != NULL) { free(newmetaptr - difflen); newmetaptr = NULL; } break; case 1: /* DimensionMap Section */ /* ==================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=DimensionMap"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=DimensionMap"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Initialize slen[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) slen[ i ] = 0; /* Find slash within input mapping string and replace with NULL */ /* ------------------------------------------------------------ */ nentries = HE5_EHparsestr(metastr, '/', ptr, slen); if( nentries == 0) { status = FAIL; sprintf(errbuf,"Input metadata string has no entries. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } metastr[slen[0]] = 0; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%li%s%li%s%li%s", "\t\t\tOBJECT=DimensionMap_", count, "\n\t\t\t\tGeoDimension=\"", &metastr[0], "\"\n\t\t\t\tDataDimension=\"", &metastr[slen[0] + 1], "\"\n\t\t\t\tOffset=", (long)metadata[0], "\n\t\t\t\tIncrement=", (long)metadata[1], "\n\t\t\tEND_OBJECT=DimensionMap_", count, "\n"); break; case 2: /* IndexDimensionMap Section */ /* ========================= */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=IndexDimensionMap"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=IndexDimensionMap"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find slash within input mapping string and replace with NULL */ /* ------------------------------------------------------------ */ nentries = HE5_EHparsestr(metastr, '/', ptr, slen); if( nentries == 0) { status = FAIL; sprintf(errbuf,"The input metadata string has no entries. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } metastr[slen[0]] = 0; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%li%s", "\t\t\tOBJECT=IndexDimensionMap_", count, "\n\t\t\t\tGeoDimension=\"", &metastr[0], "\"\n\t\t\t\tDataDimension=\"", &metastr[slen[0] + 1], "\"\n\t\t\tEND_OBJECT=IndexDimensionMap_", count, "\n"); break; case 3: /* Geolocation Fields Section */ /* ========================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=GeoField"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=GeoField"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find colon (parse off field name) */ /* --------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Search for next colon (compression and/or tiling parameters) */ /* ------------------------------------------------------------ */ colon2 = strchr(colon + 1, ':'); if (colon2 != NULL) { *colon2 = 0; } /* Make metadata string list for dimension list */ /* -------------------------------------------- */ status = HE5_EHmetalist(colon + 1, utlstr2); if( status == FAIL) { sprintf(errbuf,"Cannot convert the string list to metadata list. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%s", "\t\t\tOBJECT=GeoField_", count, "\n\t\t\t\tGeoFieldName=\"", metastr, "\"\n\t\t\t\tDataType=", type, "\n\t\t\t\tDimList=", utlstr2); /* If compression and/or tiling parameters add to string */ /* ----------------------------------------------------- */ if (colon2 != NULL) { strcat(utlstr, colon2 + 1); } /* Add END_OBJECT terminator to metadata string */ /* -------------------------------------------- */ sprintf(utlstr2, "%s%li%s", "\n\t\t\tEND_OBJECT=GeoField_", count, "\n"); strcat(utlstr, utlstr2); break; case 4: /* Data Fields Section */ /* =================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=DataField"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=DataField"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find colon (parse off field name) */ /* --------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Search for next colon (compression and/or tiling parameters) */ /* ------------------------------------------------------------ */ colon2 = strchr(colon + 1, ':'); if (colon2 != NULL) { *colon2 = 0; } /* Make metadata string list from dimension list */ /* --------------------------------------------- */ status = HE5_EHmetalist(colon + 1, utlstr2); if( status == FAIL) { sprintf(errbuf, "Cannot convert the string list to metadata list. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%s", "\t\t\tOBJECT=DataField_", count, "\n\t\t\t\tDataFieldName=\"", metastr, "\"\n\t\t\t\tDataType=", type, "\n\t\t\t\tDimList=", utlstr2); /* If compression and/or tiling parameters add to string */ /* ----------------------------------------------------- */ if (colon2 != NULL) { strcat(utlstr, colon2 + 1); } /* Add END_OBJECT terminator to metadata string */ /* -------------------------------------------- */ sprintf(utlstr2, "%s%li%s", "\n\t\t\tEND_OBJECT=DataField_", count, "\n"); strcat(utlstr, utlstr2); break; case 5: /* Profile Fields Section */ /* ====================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=ProfileField"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=ProfileField"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find colon (parse off profile name) */ /* ----------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Search for next colon (compression and/or tiling parameters) */ /* ------------------------------------------------------------ */ colon2 = strchr(colon + 1, ':'); if (colon2 != NULL) { *colon2 = 0; } /* Make metadata string list from dimension list */ /* --------------------------------------------- */ status = HE5_EHmetalist(colon + 1, utlstr2); if( status == FAIL) { sprintf(errbuf, "Cannot convert the string list to metadata list. \n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%s", "\t\t\tOBJECT=ProfileField_", count, "\n\t\t\t\tProfileFieldName=\"", metastr, "\"\n\t\t\t\tDataType=", type, "\n\t\t\t\tDimList=", utlstr2); /* If compression and/or tiling parameters add to string */ /* ----------------------------------------------------- */ if (colon2 != NULL) { strcat(utlstr, colon2 + 1); } /* Add END_OBJECT terminator to metadata string */ /* -------------------------------------------- */ sprintf(utlstr2, "%s%li%s", "\n\t\t\tEND_OBJECT=ProfileField_", count, "\n"); strcat(utlstr, utlstr2); break; case 10: /* Point Level Section */ /* =================== */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=Level"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\n\t\tEND_GROUP=Level"); metaptr = strstr(metaptr, utlstr) + 1; /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntGROUP(metaArr); /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%li%s", "\t\t\tGROUP=Level_", count, "\n\t\t\t\tLevelName=\"", metastr, "\"\n\t\t\tEND_GROUP=Level_", count, "\n"); break; case 11: /* Point Field Section */ /* =================== */ /* Find colon (parse off point field name) */ /* --------------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\t\t\tLevelName=\""); strcat(utlstr, colon + 1); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\t\tEND_GROUP=Level_"); metaptr = strstr(begptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%li%s%li%s", "\t\t\t\tOBJECT=PointField_", count, "\n\t\t\t\t\tPointFieldName=\"", metastr, "\"\n\t\t\t\t\tDataType=", type, "\n\t\t\t\t\tOrder=", (long)metadata[1], "\n\t\t\t\tEND_OBJECT=PointField_", count, "\n"); break; case 12: /* LevelLink Section */ /* ================= */ /* Find beginning and ending of metadata section */ /* --------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=LevelLink"); begptr = strstr(metaptr, utlstr); strcpy(utlstr, "\t\tEND_GROUP=LevelLink"); metaptr = strstr(metaptr, utlstr); /* Count number of existing entries and increment */ /* ---------------------------------------------- */ metaArr[0] = begptr; metaArr[1] = metaptr; count = HE5_EHcntOBJECT(metaArr) + 1; /* Find colon (parse off parent/child level names from link field) */ /* --------------------------------------------------------------- */ colon = strchr(metastr, ':'); *colon = 0; /* Find slash (divide parent and child levels) */ /* ------------------------------------------- */ slash = strchr(metastr, '/'); *slash = 0; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%s%s%s%s%li%s", "\t\t\tOBJECT=LevelLink_", count, "\n\t\t\t\tParent=\"", metastr, "\"\n\t\t\t\tChild=\"", slash + 1, "\"\n\t\t\t\tLinkField=\"", colon + 1, "\"\n\t\t\tEND_OBJECT=LevelLink_", count, "\n"); break; case 101: /* Position metadata pointer for Grid proj parms, pix reg, origin */ /* -------------------------------------------------------------- */ strcpy(utlstr, "\t\tGROUP=Dimension"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; case 1001: /* Position metadata pointer for new swath structure (SWcreate) */ /* ------------------------------------------------------------ */ strcpy(utlstr, "END_GROUP=SwathStructure"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; case 1002: /* Position metadata pointer for new grid structure (GDcreate) */ /* ----------------------------------------------------------- */ strcpy(utlstr, "END_GROUP=GridStructure"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; case 1003: /* Position metadata pointer for new point structure (PTcreate) */ /* ------------------------------------------------------------ */ strcpy(utlstr, "END_GROUP=PointStructure"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; case 1004: /* Position metadata pointer for new za structure (ZAcreate) */ /* ------------------------------------------------------------ */ strcpy(utlstr, "END_GROUP=ZaStructure"); metaptr = strstr(metaptr, utlstr); strcpy(utlstr, metastr); break; default: { sprintf(errbuf, "Unknown metacode.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } /* Get length of metadata string to insert */ /* --------------------------------------- */ seglen = strlen(utlstr); /* Get offset of entry postion within existing metadata */ /* ---------------------------------------------------- */ offset = (long)(metaptr - metabuf); /* If end of new metadata string outside of current metadata buffer ... */ /* -------------------------------------------------------------------- */ if (metalen + seglen > HE5_DYNAMIC_BLKSIZE * nmeta - 1) { /* Reallocate metadata buffer with additional HE5_DYNAMIC_BLKSIZE bytes */ /* -------------------------------------------------------------------- */ newbuf = (char *) calloc(HE5_DYNAMIC_BLKSIZE * (nmeta + 1), sizeof(char)); if(newbuf == NULL) { sprintf(errbuf, "Cannot allocate memory for a new metadata string.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Increment metadata section counter */ /* ---------------------------------- */ nmeta++; sprintf(metutlstr, "%s%ld", "StructMetadata.", nmeta - 1); /* and create meta_id, atype and aspace for the new block */ /* Create dataspace first*/ /* ---------------- */ aspace[nmeta - 1] = H5Screate(H5S_SCALAR); if (aspace[nmeta - 1] == FAIL) { sprintf(errbuf, "Cannot create dataspace for %s dataset. \n",metutlstr); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASPACE, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(FAIL); } atype[nmeta - 1] = H5Tcopy(H5T_C_S1); size = HE5_DYNAMIC_BLKSIZE; /* Set data type size */ /* ------------------ */ status = H5Tset_size(atype[nmeta - 1], size); if (status == FAIL) { sprintf(errbuf, "Cannot set the total size for atomic datatype. \n"); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATATYPE, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(FAIL); } /* Create "StructMetadata" dataset */ /* ------------------------------- */ meta_id[nmeta - 1] = H5Dcreate(gid, metutlstr, atype[nmeta - 1], aspace[nmeta - 1], H5P_DEFAULT); if (meta_id[nmeta - 1] == FAIL) { sprintf(errbuf, "Cannot create %s dataset. \n", metutlstr); H5Epush(__FILE__, "HE5_EHopen", __LINE__, H5E_DATASET, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(FAIL); } /* Reposition metadata pointer (entry position) */ /* -------------------------------------------- */ metaptr = metabuf + offset; } else { newbuf = (char *) calloc(HE5_DYNAMIC_BLKSIZE * (nmeta), sizeof(char)); if(newbuf == NULL) { sprintf(errbuf, "Cannot allocate memory for a new metadata string.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Reposition metadata pointer (entry position) */ /* -------------------------------------------- */ metaptr = metabuf + offset; } /* Copy new metadata string to newbuf array */ /* ---------------------------------------- */ for(i = 0; i < offset; i++) newbuf[ i ] = metabuf[ i ]; newbuf[ offset ] = 0; strcat( newbuf, utlstr); strcat( newbuf, metaptr); /* set to null character remaining of the metabuf */ memset((newbuf + metalen + seglen), '\0', (nmeta*HE5_DYNAMIC_BLKSIZE - (metalen + seglen))); /* Add new null string terminator */ /* ------------------------------ */ newbuf[metalen + seglen] = 0; tempdim = (hsize_t)strlen( newbuf ); tempdim++; /* *-----------------------------------------------------------------* * Write metadata back to dataset "StructMetadata.X" * *-----------------------------------------------------------------* */ /* H5Sset_extent_simple(aspace, 1, &tempdim, 0 ); NOT SUPPORTED YET !!! */ /* H5Dextend(meta_id, &tempdim); NOT SUPPORTED YET !!! */ for (ism = 0; ism < nmeta; ism++) { status = H5Dwrite(meta_id[ism], atype[ism], H5S_ALL, H5S_ALL, H5P_DEFAULT, newbuf + ism * HE5_DYNAMIC_BLKSIZE); if( status == FAIL) { sprintf(errbuf,"Cannot write in structural metadata.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); free(newbuf); return(status); } } free(metabuf); free(newbuf); free(utlstr); free(utlstr2); free(type); metabuf = NULL; newbuf = NULL; utlstr2 = NULL; utlstr = NULL; type = NULL; for (ism = 0; ism < nmeta; ism++) { status = H5Sclose(aspace[ism]); if( status == FAIL) { sprintf(errbuf,"Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Tclose(atype[ism]); if( status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Dclose(meta_id[ism]); if( status == FAIL) { sprintf(errbuf,"Cannot release the dataset ID.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } status = H5Gclose(gid); if( status == FAIL) { sprintf(errbuf,"Cannot release the group ID.\n"); H5Epush(__FILE__, "HE5_EHinsertmeta_Dynamic", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } free(errbuf); errbuf = NULL; COMPLETION: return status; } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHgetmetavalue | | | | DESCRIPTION: Returns metadata value | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | metaptrs char Begin and end of metadata section | | parameter char parameter to access | | | | OUTPUTS: | | metaptr char Ptr to (updated) beginning of metadata | | retstr char return string containing value | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 4/19/00 A.Muslimov Changed type of 'slen' from int to size_t. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHgetmetavalue(char *metaptrs[], char *parameter, char *retstr) { herr_t status = FAIL; /* routine return status variable */ size_t slen = 0; /* String length */ char *newline = (char *)NULL;/* Position of new line character */ char *sptr = (char *)NULL;/* String pointer within metadata */ CHECKPOINTER(metaptrs[0]); CHECKPOINTER(metaptrs[1]); CHECKPOINTER(parameter); /* Get string length of parameter string + 1 */ /* ----------------------------------------- */ slen = strlen(parameter) + 1; /* Build search string (parameter string + "=") */ /* -------------------------------------------- */ strcpy(retstr, parameter); strcat(retstr, "="); /* Search for string within metadata (beginning at metaptrs[0]) */ /* ------------------------------------------------------------ */ sptr = strstr(metaptrs[0], retstr); /* If string found within desired section ... */ /* ------------------------------------------ */ if (sptr != NULL && sptr < metaptrs[1]) { /* Store position of string within metadata */ /* ---------------------------------------- */ metaptrs[0] = sptr; /* Find newline "\n" character */ /* --------------------------- */ newline = strchr(metaptrs[0], '\n'); /* Copy from "=" to "\n" (exclusive) into return string */ /* ---------------------------------------------------- */ memmove(retstr, metaptrs[0] + slen, newline - metaptrs[0] - slen); /* Terminate return string with null */ /* --------------------------------- */ retstr[newline - metaptrs[0] - slen] = 0; status = SUCCEED; } else { /* * if parameter string not found within section, null return string * and set status to FAIL. */ retstr[0] = 0; status = FAIL; } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHmetagroup | | | | DESCRIPTION: Returns pointers to beginning and end of metadata group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | metabuf char* None Pointer to HDF-EOS object in metadata | | | | INPUTS: | | gid hid_t None group ID | | structname char* None HDF-EOS structure name | | structcode char* None Structure code ("s/g/p/z") | | groupname char* None Metadata group name | | | | OUTPUTS: | | metaptrs char* None pointers to begin and end of metadata | | | | NOTES: Allocates memory of fixed size (= HE5_STATIC_BLKSIZE) | | for metabuf[] array (old scheme), or allocates buffer in chuncks | | of HE5_DYNAMIC_BLKSIZE (new scheme). | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 05/17/04 Abe Taaheri Initial version | | END_PROLOG | -----------------------------------------------------------------------------*/ char * HE5_EHmetagroup(hid_t fid , char *structname, char *structcode, char *groupname, char *metaptrs[]) { char *metabuf=(char *)NULL; /* Ptr to StrucMetadata (SM) */ int HDFEOS5ver_flg ; /* will be set to 1 if the HDF-EOS5 version is later than 5.1.7, otherwise to 0 */ /* Get HDFEOS5ver_flg flag for the file */ /* --------------- */ HDFEOS5ver_flg = HE5_HeosTable[fid%HE5_EHIDOFFSET].DYNAMIC_flag; if(HDFEOS5ver_flg == 1) { metabuf = (char *)HE5_EHmetagroup_Static(fid , structname, structcode, groupname, metaptrs); } else if(HDFEOS5ver_flg == 0) { metabuf = (char *)HE5_EHmetagroup_Dynamic(fid , structname, structcode, groupname, metaptrs); } return(metabuf); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHmetagroup_Static | | | | DESCRIPTION: Returns pointers to beginning and end of metadata group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | metabuf char* None Pointer to HDF-EOS object in metadata | | | | INPUTS: | | gid hid_t None group ID | | structname char* None HDF-EOS structure name | | structcode char* None Structure code ("s/g/p/z") | | groupname char* None Metadata group name | | | | OUTPUTS: | | metaptrs char* None pointers to begin and end of metadata | | | | NOTES: A.M.: Temporarily allocates memory of fixed size (= BLKSIZE) | | for metabuf[] array. Also allocates memory of fixed | | size (= HDFE_UTLBUFSIZE) for utlstr[]. | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 3/30/99 Make metadata ODL compliant | | 7/28/99 A.Muslimov Replaced the 1st argument of EHmetagroup by fid | | (file ID). Did the same change in the call to | | H5Gopen(). Added error handling right after the | | call to H5Dread(). | | 9/02/99 A.Muslimov Replaced the call in 'OPEN "HDFEOS INFORMATION" | | GROUP' block by two calls to pass the HDFfid | | instead of fid to H5Gopen(). | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message | | buffer. | | 02/07/00 A.Muslimov Added free() calls before return(NULL). | | July 02 S.Zhao Added H5Gclose(gid) to release the "HDFEOS | | INFORMATION" group ID. | | END_PROLOG | -----------------------------------------------------------------------------*/ char * HE5_EHmetagroup_Static(hid_t fid , char *structname, char *structcode, char *groupname, char *metaptrs[]) { herr_t status = FAIL;/* return status variable */ hid_t meta_id = FAIL;/* metadata ID */ hid_t gid = FAIL;/* "HDFEOS INFORMATION" group ID */ hid_t atype = FAIL;/* datatype ID */ hid_t aspace = FAIL;/* dataspace ID */ hid_t HDFfid = FAIL;/* HDF-EOS file ID */ hid_t grpID = FAIL;/* HDFEOS group ID */ size_t tsize = 0; /* number of elements in a dataset */ uintn access = 0; /* read-write access mode */ char *metabuf = NULL; /* Pointer (handle) to structural metadata */ char *endptr = NULL; /* Pointer to end of metadata section */ char *metaptr = NULL; /* Metadata pointer */ char *prevmetaptr =NULL;/* Previous position of metadata pointer */ char *utlstr = NULL; /* Utility string */ char *errbuf = NULL; /* buffer for error message */ CHECKPOINTER(structname); CHECKPOINTER(structcode); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(NULL); } /* Check HDF-EOS file ID */ /* --------------------- */ status = HE5_EHchkfid(fid, "HE5_EHmetagroup_Static", &HDFfid, &grpID, &access); if ( status == FAIL ) { sprintf(errbuf, "Checking for file ID failed.\n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(NULL); } /* *-------------------------------------------------------------------------* * O P E N "HDFEOS INFORMATION" G R O U P * *-------------------------------------------------------------------------* */ gid = H5Gopen(HDFfid,"HDFEOS INFORMATION"); if ( gid == FAIL ) { sprintf(errbuf,"Cannot open \"HDFEOS INFORMATION\" group. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_OHDR, H5E_NOTFOUND,errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } /* *--------------------------------------------------------------------------* * Open dataset "StructMetadata.0" * *--------------------------------------------------------------------------* */ meta_id = H5Dopen(gid, "StructMetadata.0"); if ( meta_id == FAIL ) { sprintf(errbuf,"Cannot open \"StructMetadata.0\" dataset. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } /* Get dataset type */ /* ---------------- */ atype = H5Dget_type(meta_id); if ( atype == FAIL ) { sprintf(errbuf,"Cannot get datatype ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } /* Get dataset size */ /* ---------------- */ tsize = H5Tget_size(atype); if ( tsize == 0 ) { sprintf(errbuf, "The datatype is of ZERO size. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } /* Get dataset space */ /* ----------------- */ aspace = H5Dget_space(meta_id); if ( aspace == FAIL ) { sprintf(errbuf,"Cannot get the data space ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } /* -------------------------------------------------------------- */ /* Get attribute size */ /* This call is not supported yet for a string */ /* npoints = H5Sget_simple_extent_npoints(aspace); */ /* It'll be implemented for memory allocation for metabuf[] array */ /* -------------------------------------------------------------- */ /* Allocate memory */ /* --------------- */ metabuf = (char *)calloc( HE5_HeosTable[fid%HE5_EHIDOFFSET].HE5_STATIC_BLKSIZE, sizeof(tsize) ); if( metabuf==NULL) { sprintf(errbuf,"Can not allocate memory for meta bufer. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(NULL); } utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(tsize) ); if( utlstr==NULL) { sprintf(errbuf,"Can not allocate memory for utility string. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); return(NULL); } /* Read the metadata buffer */ /* ------------------------ */ status = H5Dread(meta_id,atype,H5S_ALL, H5S_ALL, H5P_DEFAULT, metabuf); if (status == FAIL ) { metabuf = NULL; sprintf(errbuf,"Cannot read the metadata buffer. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } /* Find HDF-EOS structure "root" group in metadata */ /* ----------------------------------------------- */ /* Setup proper search string */ /* -------------------------- */ if (strcmp(structcode, "s") == 0) strcpy(utlstr, "GROUP=SwathStructure"); else if (strcmp(structcode, "g") == 0) strcpy(utlstr, "GROUP=GridStructure"); else if (strcmp(structcode, "p") == 0) strcpy(utlstr, "GROUP=PointStructure"); else if (strcmp(structcode, "z") == 0) strcpy(utlstr, "GROUP=ZaStructure"); /* Use string search routine (strstr) to move through metadata */ /* ----------------------------------------------------------- */ metaptr = strstr(metabuf, utlstr); /* Save current metadata pointer */ /* ----------------------------- */ prevmetaptr = metaptr; /* First loop for "old-style" (non-ODL) metadata string */ /* ---------------------------------------------------- */ if (strcmp(structcode, "s") == 0) sprintf(utlstr, "%s%s%s", "SwathName=\"", structname, "\""); else if (strcmp(structcode, "g") == 0) sprintf(utlstr, "%s%s%s", "GridName=\"", structname, "\""); else if (strcmp(structcode, "p") == 0) sprintf(utlstr, "%s%s%s", "PointName=\"", structname, "\""); else if (strcmp(structcode, "z") == 0) sprintf(utlstr, "%s%s%s", "ZaName=\"", structname, "\""); /* Do string search */ /* ---------------- */ metaptr = strstr(metaptr, utlstr); /* * If not found then return to previous position in metadata and look for * "new-style" (ODL) metadata string */ if (metaptr == NULL) { sprintf(utlstr, "%s%s%s", "GROUP=\"", structname, "\""); metaptr = strstr(prevmetaptr, utlstr); } /* Find group within structure */ /* --------------------------- */ if (groupname != NULL) { sprintf(utlstr, "%s%s", "GROUP=", groupname); metaptr = strstr(metaptr, utlstr); sprintf(utlstr, "%s%s", "\t\tEND_GROUP=", groupname); endptr = strstr(metaptr, utlstr); } else { /* If groupname == NULL then find end of structure in metadata */ /* ----------------------------------------------------------- */ sprintf(utlstr, "%s", "\n\tEND_GROUP="); endptr = strstr(metaptr, utlstr); } /* Return beginning and ending pointers */ /* ------------------------------------ */ metaptrs[0] = metaptr; metaptrs[1] = endptr; /* Release the dataspace ID */ /* ------------------------ */ status = H5Sclose(aspace); if (status == FAIL ) { sprintf(errbuf, "Cannot release the dataspace ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(atype); if (status == FAIL ) { sprintf(errbuf,"Cannot release the datatype ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(meta_id); if (status == FAIL ) { sprintf(errbuf,"Cannot release the dataset ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } /* Release the "HDFEOS INFORMATION" group ID */ /* ----------------------------------------- */ status = H5Gclose(gid); if (status == FAIL ) { sprintf(errbuf,"Cannot release the \"HDFEOS INFORMATION\" group ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Static", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } free(errbuf); free(utlstr); COMPLETION: return(metabuf); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHmetagroup_Dynamic | | | | DESCRIPTION: Returns pointers to beginning and end of metadata group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | metabuf char* None Pointer to HDF-EOS object in metadata | | | | INPUTS: | | gid hid_t None group ID | | structname char* None HDF-EOS structure name | | structcode char* None Structure code ("s/g/p/z") | | groupname char* None Metadata group name | | | | OUTPUTS: | | metaptrs char* None pointers to begin and end of metadata | | | | NOTES: Allocates buffer in chuncks of HE5_DYNAMIC_BLKSIZE (new scheme). | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 05/17/04 Abe Taaheri Modified the version with static buffer allocation | | to adopt dynamic buffer allocation in chuncks of | | HE5_DYNAMIC_BLKSIZE | | END_PROLOG | -----------------------------------------------------------------------------*/ char * HE5_EHmetagroup_Dynamic(hid_t fid , char *structname, char *structcode, char *groupname, char *metaptrs[]) { herr_t status = FAIL;/* return status variable */ hid_t meta_id[MetaBlocks] = {FAIL};/* metadata ID */ hid_t gid = FAIL;/* "HDFEOS INFORMATION" group ID */ hid_t atype[MetaBlocks] = {FAIL};/* datatype ID */ hid_t aspace[MetaBlocks] = {FAIL};/* dataspace ID */ hid_t HDFfid = FAIL;/* HDF-EOS file ID */ hid_t grpID = FAIL;/* HDFEOS group ID */ size_t tsizeblk[MetaBlocks] = {0}; /* number of elements in a dataset */ size_t tsize = 0; /* number of elements in a dataset */ uintn access = 0; /* read-write access mode */ char *metabuf = NULL; /* Pointer (handle) to structural metadata */ char *endptr = NULL; /* Pointer to end of metadata section */ char *metaptr = NULL; /* Metadata pointer */ char *prevmetaptr =NULL;/* Previous position of metadata pointer */ char *utlstr = NULL; /* Utility string */ char *errbuf = NULL; /* buffer for error message */ int ism; long nmeta; /*long *metstrbufsize = 0;*/ char metutlstr[32]; long metalen; CHECKPOINTER(structname); CHECKPOINTER(structcode); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(NULL); } /* Check HDF-EOS file ID */ /* --------------------- */ status = HE5_EHchkfid(fid, "HE5_EHmetagroup_Dynamic", &HDFfid, &grpID, &access); if ( status == FAIL ) { sprintf(errbuf, "Checking for file ID failed.\n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(NULL); } /* *-------------------------------------------------------------------------* * O P E N "HDFEOS INFORMATION" G R O U P * *-------------------------------------------------------------------------* */ gid = H5Gopen(HDFfid,"HDFEOS INFORMATION"); if ( gid == FAIL ) { sprintf(errbuf,"Cannot open \"HDFEOS INFORMATION\" group. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } /* *--------------------------------------------------------------------------* * Open dataset "StructMetadata.X" * *--------------------------------------------------------------------------* */ /* Determine number of structural metadata "sections" */ /* -------------------------------------------------- */ nmeta = 0; status= HE5_EHgetnmeta(gid, &nmeta); if(status == FAIL) { sprintf(errbuf,"Cannot find any StructMetadata.X dataset. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(NULL); } for (ism = 0; ism < nmeta; ism++) { sprintf(metutlstr, "%s%d", "StructMetadata.", ism); meta_id[ism] = H5Dopen(gid, metutlstr); if ( meta_id[ism] == FAIL ) { sprintf(errbuf,"Cannot open %s dataset. \n", metutlstr); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } /* Get dataset type */ /* ---------------- */ atype[ism] = H5Dget_type(meta_id[ism]); if ( atype[ism] == FAIL ) { sprintf(errbuf,"Cannot get datatype ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } /* Get dataset size */ /* ---------------- */ tsizeblk[ism] = H5Tget_size(atype[ism]); if ( tsizeblk[ism] == 0 ) { sprintf(errbuf, "The datatype is of ZERO size for StructMetadata block (zero based) %d. \n", ism); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } /* Get dataset space */ /* ----------------- */ aspace[ism] = H5Dget_space(meta_id[ism]); if ( aspace[ism] == FAIL ) { sprintf(errbuf,"Cannot get the data space ID for StructMetadata block (zero based) %d. \n", ism); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } } tsize = tsizeblk[0]; for (ism = 0; ism < nmeta; ism++) { if(tsizeblk[ism] != tsize) { sprintf(errbuf,"Data sizes are not the same for StructMetadata blocks. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return( NULL ); } } /* -------------------------------------------------------------- */ /* Get attribute size */ /* This call is not supported yet for a string */ /* npoints = H5Sget_simple_extent_npoints(aspace); */ /* It'll be implemented for memory allocation for metabuf[] array */ /* -------------------------------------------------------------- */ /* Allocate memory */ /* --------------- */ metabuf = (char *)calloc( HE5_DYNAMIC_BLKSIZE * nmeta, sizeof(tsize) ); if( metabuf==NULL) { sprintf(errbuf,"Can not allocate memory for meta bufer. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(NULL); } utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(tsize) ); if( utlstr==NULL) { sprintf(errbuf,"Can not allocate memory for utility string. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); return(NULL); } /* Read the metadata buffer */ /* ------------------------ */ metalen = 0; if (Stored_meta[fid%HE5_EHIDOFFSET].metaread_flag == 0) { for (ism = 0; ism < nmeta; ism++) { status = H5Dread(meta_id[ism],atype[ism],H5S_ALL, H5S_ALL, H5P_DEFAULT, metabuf + metalen); if (status == FAIL ) { metabuf = NULL; sprintf(errbuf,"Cannot read the metadata buffer. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } /* Determine length (# of characters) of metadata */ /* ---------------------------------------------- */ metalen = strlen(metabuf); } Stored_meta[fid%HE5_EHIDOFFSET].metabuf_length = strlen(metabuf); Stored_meta[fid%HE5_EHIDOFFSET].saved_metabuf = (char *)realloc(Stored_meta[fid%HE5_EHIDOFFSET].saved_metabuf,(Stored_meta[fid%HE5_EHIDOFFSET].metabuf_length+1)*sizeof(tsize)); strcpy(Stored_meta[fid%HE5_EHIDOFFSET].saved_metabuf, metabuf); Stored_meta[fid%HE5_EHIDOFFSET].nmeta = nmeta; Stored_meta[fid%HE5_EHIDOFFSET].metaread_flag = 1; } else { strcpy(metabuf,Stored_meta[fid%HE5_EHIDOFFSET].saved_metabuf); } /* Find HDF-EOS structure "root" group in metadata */ /* ----------------------------------------------- */ /* Setup proper search string */ /* -------------------------- */ if (strcmp(structcode, "s") == 0) strcpy(utlstr, "GROUP=SwathStructure"); else if (strcmp(structcode, "g") == 0) strcpy(utlstr, "GROUP=GridStructure"); else if (strcmp(structcode, "p") == 0) strcpy(utlstr, "GROUP=PointStructure"); else if (strcmp(structcode, "z") == 0) strcpy(utlstr, "GROUP=ZaStructure"); /* Use string search routine (strstr) to move through metadata */ /* ----------------------------------------------------------- */ metaptr = strstr(metabuf, utlstr); /* Save current metadata pointer */ /* ----------------------------- */ prevmetaptr = metaptr; /* First loop for "old-style" (non-ODL) metadata string */ /* ---------------------------------------------------- */ if (strcmp(structcode, "s") == 0) sprintf(utlstr, "%s%s%s", "SwathName=\"", structname, "\""); else if (strcmp(structcode, "g") == 0) sprintf(utlstr, "%s%s%s", "GridName=\"", structname, "\""); else if (strcmp(structcode, "p") == 0) sprintf(utlstr, "%s%s%s", "PointName=\"", structname, "\""); else if (strcmp(structcode, "z") == 0) sprintf(utlstr, "%s%s%s", "ZaName=\"", structname, "\""); /* Do string search */ /* ---------------- */ metaptr = strstr(metaptr, utlstr); /* * If not found then return to previous position in metadata and look for * "new-style" (ODL) metadata string */ if (metaptr == NULL) { sprintf(utlstr, "%s%s%s", "GROUP=\"", structname, "\""); metaptr = strstr(prevmetaptr, utlstr); } /* Find group within structure */ /* --------------------------- */ if (groupname != NULL) { sprintf(utlstr, "%s%s", "GROUP=", groupname); metaptr = strstr(metaptr, utlstr); sprintf(utlstr, "%s%s", "\t\tEND_GROUP=", groupname); endptr = strstr(metaptr, utlstr); } else { /* If groupname == NULL then find end of structure in metadata */ /* ----------------------------------------------------------- */ sprintf(utlstr, "%s", "\n\tEND_GROUP="); endptr = strstr(metaptr, utlstr); } /* Return beginning and ending pointers */ /* ------------------------------------ */ metaptrs[0] = metaptr; metaptrs[1] = endptr; /* Release the dataspace ID */ /* ------------------------ */ for (ism = 0; ism < nmeta; ism++) { status = H5Sclose(aspace[ism]); if (status == FAIL ) { sprintf(errbuf, "Cannot release the dataspace ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(atype[ism]); if (status == FAIL ) { sprintf(errbuf,"Cannot release the datatype ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(meta_id[ism]); if (status == FAIL ) { sprintf(errbuf,"Cannot release the dataset ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } } /* Release the "HDFEOS INFORMATION" group ID */ /* ----------------------------------------- */ status = H5Gclose(gid); if (status == FAIL ) { sprintf(errbuf,"Cannot release the \"HDFEOS INFORMATION\" group ID. \n"); H5Epush(__FILE__, "HE5_EHmetagroup_Dynamic", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(metabuf); free(utlstr); return(NULL); } free(errbuf); free(utlstr); COMPLETION: return(metabuf); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHbisect | | | | DESCRIPTION: Finds root of function using bisection | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | func() double Function to bisect | | funcParms double Function parameters (fixed) | | nParms long Number of function parameters | | limLft double Lower limit of function arguement | | limRgt double Upper limit of function arguement | | convCrit double Convergence criterion | | | | OUTPUTS: | | root double Function root | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHbisect(double(*func) (double[]), double funcParms[], long nParms, double limLft, double limRgt, double convCrit, double *root) { herr_t status = SUCCEED;/* routine return status variable */ int i; /* Loop index */ double midPnt = 0.;/* Mid-point value */ double newmidPnt = 0.;/* New mid-point value */ double funcLft = 0.;/* Function value at left-hand limit */ double funcMid = 0.;/* Function value at mid-point */ double funcRgt = 0.;/* Function value at right-hand limit*/ double *parms=(double *)NULL;/* Function parameters */ /* Allocate space for function parameters */ /* -------------------------------------- */ parms = (double *)calloc(nParms + 1, sizeof(double)); if(parms == NULL) { H5Epush(__FILE__,"HE5_EHbisect", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Copy (fixed) function parameters */ /* -------------------------------- */ for (i = 0; i < nParms; i++) parms[i + 1] = funcParms[i]; /* Copy left-hand limit to "floating" parameter */ /* -------------------------------------------- */ parms[0] = limLft; /* Determine function value */ /* ------------------------ */ funcLft = (*func) (parms); /* Copy right-hand limit to "floating" parameter */ /* --------------------------------------------- */ parms[0] = limRgt; /* Determine function value */ /* ------------------------ */ funcRgt = (*func) (parms); /* If left and right limits function values of same sign then no root */ /* ------------------------------------------------------------------ */ if (funcLft * funcRgt > 0) { if (parms != NULL) free(parms); return (FAIL); } /* Compute (initial) mid-point */ /* --------------------------- */ newmidPnt = 0.5 * (limLft + limRgt); /* Bisection Loop */ /* -------------- */ while (1) { /* Compute function at new mid-point */ /* --------------------------------- */ midPnt = newmidPnt; parms[0] = midPnt; funcMid = (*func) (parms); /* If left limit same sign as mid-point move it to mid-point */ /* --------------------------------------------------------- */ if (funcLft * funcMid > 0.0) { limLft = midPnt; }else { /* Otherwise move over right-hand limit */ /* ------------------------------------ */ limRgt = midPnt; } /* Compute new mid-point */ /* --------------------- */ newmidPnt = 0.5 * (limLft + limRgt); /* If relative change in midpoint < convergence crit then exit loop */ /* ---------------------------------------------------------------- */ if (fabs((newmidPnt - midPnt) / midPnt) < convCrit) break; } /* Save root */ /* --------- */ *root = newmidPnt; free(parms); return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | FUNCTION: HE5_EHattr | | | | DESCRIPTION: Reads/Writes attributes for HDF-EOS structures | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t HDF-EOS file ID | | attrname char attribute name | | numbertype hid_t attribute HDF numbertype | | count[] hsize_t Number of attribute elements | | wrcode char Read/Write Code "w/r" | | datbuf void I/O buffer | | | | | | OUTPUTS: | | datbuf void I/O buffer | | | | | | Date Programmer Description | | ========= ============ ============================================== | | July 1999 A.Muslimov Changed the sequence of calls in "write attri- | | bute" block (the change is based on examples | | provided in "Introduction to HDF5 Release 1.0" | | Chapter 4, Paragraph 8). | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message| | buffer. Added error handlings after the function | | calls. | | 12/13/99 A.Muslimov Fixed a bug associated with the attempt to | | close the data space outside the block in which | | it was created. Put a call to H5Sclose() inside | | this block and separated the rest by else{} | | block. | | 07/12/00 A.Muslimov Added conversion of disk/file data type ID into | | memory data type ID before H5Aread() call. | | July 02 S.Zhao Updated for writing a character string attribute.| | Mar 04 S.Zhao Modified for a character string attribute. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHattr(hid_t grpID, const char *attrname, hid_t numbertype, hsize_t count[], char *wrcode, void *datbuf) { herr_t status = FAIL; /* Return status variable */ int RANK = 1; /* Rank of attribute dataset */ hid_t attid = FAIL; /* Attribute ID */ hid_t sid = FAIL; /* dataspace ID */ hid_t atype = FAIL; /* attribute datatype ID */ hid_t mtype = FAIL; /* memory data type ID */ char *errbuf = (char *)NULL;/* Error message buffer */ size_t size = 0; CHECKPOINTER(attrname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Probe , if Attribute does not exist, Create it */ /* ---------------------------------------------- */ H5E_BEGIN_TRY { attid = H5Aopen_name(grpID,attrname); } H5E_END_TRY; /* Write Attribute Section */ /* ----------------------- */ if (strcmp(wrcode, "w") == 0) { if( attid == FAIL) { if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { /* Create attribute dataspace */ /* -------------------------- */ sid = H5Screate(H5S_SCALAR); if(sid == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create the data space for attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_DATASPACE, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } numbertype = H5Tcopy(H5T_C_S1); if( (size_t)count[0] > strlen(datbuf) ) { size = strlen(datbuf); } else { size = (size_t)count[0]; } status = H5Tset_size(numbertype, size); if( status == FAIL) { sprintf(errbuf,"Cannot set the total size for the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } else { /* Create attribute dataspace */ /* -------------------------- */ sid = H5Screate(H5S_SIMPLE); if(sid == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create the data space for attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_DATASPACE, H5E_CANTCREATE, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Extend the dataspace */ /* -------------------- */ status = H5Sset_extent_simple(sid,RANK,count,NULL); if(status == FAIL) { sprintf(errbuf, "Cannot extend data space.\n"); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } /* Create the attribute */ /* -------------------- */ attid = H5Acreate(grpID,attrname,numbertype,sid,H5P_DEFAULT); if(attid == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create the attribute \"%s\".\n",attrname); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_ATTR, H5E_CANTCREATE, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Write attribute data */ /* -------------------- */ status = H5Awrite(attid,numbertype,datbuf); if(status == FAIL) { status = FAIL; sprintf(errbuf, "Cannot write in data to the attribute.\n"); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Release the dataspace ID */ /* ------------------------ */ status = H5Sclose(sid); if(status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Release the attribute ID */ /* ------------------------ */ status = H5Aclose(attid); if(status == FAIL) { sprintf(errbuf, "Cannot release the attribute ID.\n"); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_ATTR, H5E_CLOSEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } else { if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { numbertype = H5Tcopy(H5T_C_S1); if( (size_t)count[0] > strlen(datbuf) ) { size = strlen(datbuf); } else { size = (size_t)count[0]; } status = H5Tset_size(numbertype, size); if( status == FAIL) { sprintf(errbuf,"Cannot set the total size for the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } /* Write data to the attribute */ /* --------------------------- */ status = H5Awrite(attid,numbertype,datbuf); if(status == FAIL) { status = FAIL; sprintf(errbuf, "Cannot write in data to the attribute.\n"); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Release the attribute ID */ /* ------------------------ */ status = H5Aclose(attid); if(status == FAIL) { sprintf(errbuf, "Cannot release the attribute ID.\n"); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_ATTR, H5E_CLOSEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } } /* Read Attribute Section */ /* ---------------------- */ else if (strcmp(wrcode, "r") == 0) { if(attid == FAIL) { status = FAIL; sprintf(errbuf, "Attribute \"%s\" not defined.", attrname); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } else { atype = H5Aget_type(attid); if(atype == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the data type ID for attribute \"%s\".\n",attrname); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get the memory data type ID */ /* --------------------------- */ mtype = HE5_EHdtype2mtype(atype); if (mtype < 0) { mtype = atype; } /* Read attribute */ /* -------------- */ status = H5Aread(attid, mtype, datbuf); if(status == FAIL) { sprintf(errbuf, "Cannot read out data from the attribute \"%s\".\n",attrname); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Release the attribute datatype ID */ /* --------------------------------- */ status = H5Tclose(atype); if(status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Release the attribute ID */ /* ------------------------ */ status = H5Aclose(attid); if(status == FAIL) { sprintf(errbuf, "Cannot release the attribute ID.\n"); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_ATTR, H5E_CLOSEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } } free(errbuf); COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHattrinfo | | | | DESCRIPTION: Returns numbertype and count of given HDF-EOS attribute | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | grpID hid_t Attribute group ID | | attrname char* attribute name | | | | OUTPUTS: | | datatype hid_t* Attribute Data type ID | | count hsize_t * Number of attribute elements | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message | | buffer. | | Feb 03 S.Zhao Changed the type of 'datatype' from an H5T_class_t | | to an hid_t. | | Mar 04 S.Zhao Modified for a character string attribute. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHattrinfo( hid_t grpID, const char *attrname, hid_t *datatype, hsize_t *count) { herr_t status = FAIL; /* Return status variable */ hid_t aspace = FAIL; /* attribute data space ID */ hid_t atype = FAIL; /* attribute data type ID */ hid_t attid = FAIL; /* attribute object ID */ H5T_class_t classid = H5T_NO_CLASS; /* data type class ID */ char *errbuf = (char *)NULL;/* Error message buffer */ CHECKPOINTER(attrname); /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Try to open up specified attribute */ /* ---------------------------------- */ H5E_BEGIN_TRY { attid = H5Aopen_name(grpID, attrname); } H5E_END_TRY; if( attid == FAIL ) { status = FAIL; sprintf(errbuf, "Attribute \"%s\" not defined.", attrname); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get attribute data type ID */ /* -------------------------- */ atype = H5Aget_type(attid); if(atype == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the data type ID for attribute \"%s\".\n",attrname); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get attribute data space ID */ /* --------------------------- */ aspace = H5Aget_space(attid); if(aspace == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the data space ID for attribute \"%s\".\n",attrname); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get attribute Data type class ID */ /* -------------------------------- */ classid = H5Tget_class(atype); if( classid == FAIL ) { status = FAIL; sprintf(errbuf,"Cannot get the data type class ID for attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Get the number of attribute elements */ /* ------------------------------------ */ if (classid == H5T_STRING) { *count = H5Tget_size(atype); if( *count == 0) { status = FAIL; sprintf(errbuf,"Cannot get the size of string in attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } *datatype = HE5T_CHARSTRING; } else { *count = H5Sget_simple_extent_npoints(aspace); if( *count == 0) { status = FAIL; sprintf(errbuf,"Cannot get the number of elements in attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } *datatype = HE5_EHdtype2numtype(atype); if(*datatype == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the number type in attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(atype); if(status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(aspace); if(status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Release the attribute ID */ /* ------------------------ */ status = H5Aclose(attid); if(status == FAIL) { sprintf(errbuf, "Cannot release the attribute ID.\n"); H5Epush(__FILE__, "HE5_EHattrinfo", __LINE__, H5E_ATTR, H5E_CLOSEERROR, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } free(errbuf); errbuf = NULL; COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHobj_info | | | | DESCRIPTION: Returns number and names of objects in HDF-EOS structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | NOTES: | | | | | | Date Programmer Description | | 10/15/99 A.Muslimov Replaced memcmp() by strncmp() to fix an ABR | | associated with the the first if() block for | | name string containing less than 13 characters. | | 04/19/00 A.Muslimov Changed type of 'slen' from long to size_t. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_EHobj_info(hid_t loc_id, const char *name, void *opdata) { size_t slen = 0; HE5_OBJINFO *ptr; char *indxstr = "_INDEXMAP:"; char *bsom = "_BLKSOM"; char *lvwr = "_LevelWritten"; #ifdef _IGNORE_DIMSCALE_ hid_t attid = FAIL; hid_t atype = FAIL; H5T_class_t atclass; hid_t suptype = FAIL; char errbuf[HE5_HDFE_ERRBUFSIZE]; #endif ptr = (HE5_OBJINFO *)opdata; #ifdef _IGNORE_DIMSCALE_ H5E_BEGIN_TRY { attid = H5Aopen_name(loc_id,name); } H5E_END_TRY; if ( attid != FAIL ) { /* Check if the type class is H5T_VLEN, and its base type is H5T_STD_REF_OBJ. */ atype = H5Aget_type(attid); if ( atype == FAIL) { sprintf(errbuf, "Cannot get the data type ID for attribute \"%s\".\n", name); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); H5Aclose(attid); return 0; } atclass = H5Tget_class(atype); if ( atclass == H5T_NO_CLASS ) { sprintf(errbuf, "Cannot get the data type class for attribute \"%s\".\n", name); H5Epush(__FILE__, "HE5_EHattr", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); H5Aclose(attid); return 0; } else if ( atclass == H5T_VLEN ) { suptype = H5Tget_super(atype); if ( suptype >= 0 ) { if ( H5Tequal(suptype, H5T_STD_REF_OBJ) == TRUE ) { /* Do not append the attribute name because this attribute is not a proper * attribute like "DIMENSION_LIST". */ H5Aclose(attid); return 0; } } } H5Aclose(attid); } #endif if ( strncmp(name, indxstr, strlen(indxstr)) != 0 && strncmp(name, bsom, strlen(bsom)) != 0 && strncmp(name, lvwr, strlen(lvwr)) != 0 ) { /* Get the number of objects */ /* ------------------------- */ ptr->count++; /* Compute string length of object entry */ /* ------------------------------------- */ slen = ( ptr->count == 1) ? strlen(name) : strlen(name) + 1; ptr->strsize = ptr->strsize + slen; /* Get comma separated name list */ /* ----------------------------- */ if( ptr->count == 1) { ptr->name = (char *)calloc( (strlen(name)+1), sizeof(char) ); strcpy( ptr->name, name); } else { ptr->name = (char *)realloc( ptr->name, sizeof(char)*(ptr->strsize+1)); strcat( ptr->name, ","); strcat( ptr->name, name); } } return 0; } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHinquire | | | | DESCRIPTION: Returns number and names of HDF-EOS structures in file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nobj long Number of HDF-EOS structures in file | | | | INPUTS: | | filename char HDF-EOS filename | | grpname char Object Group name("SWATH/GRID/POINT/ZA")| | | | OUTPUTS: | | objectlist char List of object names (comma-separated) | | strbufsize long Length of objectlist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/01/99 A.Muslimov Checked for the statuses returned by H5Gclose() and | | H5Fclose() calls. | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message | | buffer. | | Nov. 00 A.Muslimov Disabled error message and set return value to | | "0" if a specified group is not found. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHinquire(const char *filename, char *grpname, char *objectlist, long *strbufsize) { long nobj = FAIL;/* Number of objects in the group */ herr_t status = FAIL;/* Return status variable */ HE5_OBJINFO inout; /* Output "info" data structure */ hid_t HDFfid = FAIL;/* HDFEOS file ID */ hid_t heos_id = FAIL;/* Group ID for a specified group */ int index = FAIL;/* Return value from an operator */ char *errbuf; /* Buffer for error message */ CHECKPOINTER(filename); CHECKPOINTER(grpname); /* Initialize the data */ /* ------------------- */ inout.strsize = 0; inout.count = 0; inout.name = (char *)NULL; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHinquire", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Try to open HDFEOS file for read-only */ /* ------------------------------------- */ H5E_BEGIN_TRY { HDFfid = H5Fopen(filename, H5F_ACC_RDONLY, H5P_DEFAULT); } H5E_END_TRY; if(HDFfid == FAIL ) { sprintf(errbuf, " Cannot open \"%s\" file. Check the file name. \n", filename); H5Epush(__FILE__, "HE5_EHinquire", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); nobj = FAIL; free(errbuf); return(nobj); } /* Try to open group "grpname" */ /* --------------------------- */ H5E_BEGIN_TRY { heos_id = H5Gopen(HDFfid, grpname); } H5E_END_TRY; if(heos_id == FAIL) { nobj = 0; H5Fclose(HDFfid); free(errbuf); return(nobj); } /* Loop to get hdfeos object information */ /* ------------------------------------- */ index = H5Giterate(heos_id, grpname, NULL, HE5_EHobj_info, &inout); if( index == FAIL) { H5Epush(__FILE__, "HE5_EHinquire",__LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot get HDFEOS object information. \n"); HE5_EHprint("Error: Cannot get HDFEOS object information, occured", __FILE__, __LINE__); nobj = FAIL; goto done; } if(objectlist != (char *)NULL) memmove(objectlist, inout.name, strlen(inout.name)); if(strbufsize != (long *)NULL) *strbufsize = inout.strsize; nobj = inout.count; done: /* inout.name is allocated in HE5_EHobj_info() */ /* ------------------------------------------- */ if( inout.name != NULL) free( inout.name); /* Release group ID */ /* ---------------- */ status = H5Gclose(heos_id); if( status == FAIL) { sprintf(errbuf, "Cannot close the group \"%s\". \n", grpname); H5Epush(__FILE__, "HE5_EHinquire",__LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); errbuf = NULL; return(nobj); } /* Release file ID */ /* --------------- */ status = H5Fclose(HDFfid); if( status == FAIL) { sprintf(errbuf, "Cannot close the HDFEOS file \"%s\" . \n", filename); H5Epush(__FILE__, "HE5_EHinquire",__LINE__, H5E_FILE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); errbuf = NULL; COMPLETION: return(nobj); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHattrcat | | | | DESCRIPTION: Returns a listing of attributes within an HDF-EOS structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nobj long Number of attributes in a struct | | | | INPUTS: | | fid hid_t HDF-EOS file ID | | | | OUTPUTS: | | grpname char* Group name | | objectlist char* Attribute names in a struct | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: attributes "INDXMAP:..", "_FV_", "_BLKSOM:.." are not counted. | | | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message | | buffer. | | 2/1/00 A.Muslimov Added H5Dopen(dts_id, ...) call for the case of | | accessing dataset. | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHattrcat(hid_t fid, char *grpname, char *objectlist, long *strbufsize) { long nobj = FAIL;/* number of attributes in a structure */ HE5_OBJINFO inout; hid_t heos_id = FAIL;/* Group ID of a specified group */ hid_t HDFfid = FAIL; hid_t dts_id = FAIL;/* Dataset ID of a specified dataset */ herr_t status = FAIL;/* return status variable */ int index = FAIL;/* return value of index */ char *errbuf = NULL;/* buffer for error message */ CHECKPOINTER(grpname); /* Initialize the data */ /* ------------------- */ inout.strsize = 0; /* object list size */ inout.count = 0; /* number of objects */ inout.name = NULL; /* onject name (comma separated) list */ /* Get HDF file ID */ /* --------------- */ HDFfid = HE5_HeosTable[fid%HE5_EHIDOFFSET].HDFfid; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHattrcat", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Try to open group with name "grpname" */ /* ------------------------------------- */ H5E_BEGIN_TRY { heos_id = H5Gopen(HDFfid, grpname); } H5E_END_TRY; if(heos_id == FAIL) { /* Try to open dataset with name "grpname" */ /* --------------------------------------- */ H5E_BEGIN_TRY { dts_id = H5Dopen(HDFfid, grpname); } H5E_END_TRY; if(dts_id == FAIL) { sprintf(errbuf, "No group/dataset named \"%s\" exists. \n", grpname); H5Epush(__FILE__, "HE5_EHattrcat", __LINE__, H5E_FILE, H5E_CANTOPENOBJ, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); nobj = FAIL; free(errbuf); return(nobj); } } /* Loop to get attributes information */ /* ---------------------------------- */ if (heos_id != FAIL) index = H5Aiterate(heos_id, NULL, HE5_EHobj_info, &inout); if (dts_id != FAIL) index = H5Aiterate(dts_id, NULL, HE5_EHobj_info, &inout); if( index == FAIL) { sprintf(errbuf,"Cannot get attribute information. \n"); H5Epush(__FILE__, "HE5_EHattrcat", __LINE__, H5E_ATTR, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); nobj = FAIL; goto done; } if(objectlist != NULL && inout.name != NULL ) strcpy( objectlist, inout.name); if(strbufsize != NULL) *strbufsize = inout.strsize; nobj = inout.count; done: /* inout.name is allocated in HE5_EHobj_info() */ /* ------------------------------------------- */ if( inout.name != NULL) free( inout.name); if (heos_id != FAIL) { status = H5Gclose(heos_id); if( status == FAIL ) { sprintf(errbuf, "Cannot release the group ID.\n"); H5Epush(__FILE__, "HE5_EHattrcat",__LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } if (dts_id != FAIL) { status = H5Dclose(dts_id); if( status == FAIL ) { sprintf(errbuf, "Cannot release the dataset ID.\n"); H5Epush(__FILE__, "HE5_EHattrcat",__LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } free(errbuf); errbuf = NULL; COMPLETION: return(nobj); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHdatasetcat | | | | DESCRIPTION: Returns a listing of datasets within an HDF-EOS structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | fid hid_t HDF-EOS file ID | | | | OUTPUTS: | | strbufsize long Attributes name list string length | | | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message | | buffer. | | | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHdatasetcat(hid_t fid, char *grpname, char *objectlist, long *strbufsize) { long nobj = FAIL;/* Number of datasets (RETURN) */ herr_t status = FAIL;/* Return status variable */ int index = FAIL;/* Return value of an operation */ HE5_OBJINFO inout; hid_t heos_id = FAIL;/* Group ID */ hid_t HDFfid = FAIL;/* HDF-EOS file ID */ char *errbuf; /* buffer for error message */ CHECKPOINTER(grpname); /* Initialize data */ /* --------------- */ inout.strsize = 0; /*object list size*/ inout.count = 0; /*number of objects*/ inout.name = NULL; /*onject name list, seperated by comma*/ /* Get HDF file ID */ /* --------------- */ HDFfid = HE5_HeosTable[fid%HE5_EHIDOFFSET].HDFfid; /* Allocate memory for error message buffer */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHdatasetcat", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Try to open group "grpname" */ /* --------------------------- */ H5E_BEGIN_TRY { heos_id = H5Gopen(HDFfid, grpname); } H5E_END_TRY; if(heos_id == FAIL) { sprintf(errbuf, "Cannot open \"%s\" group. Group may not exist. \n", grpname); H5Epush(__FILE__, "HE5_EHdatasetcat", __LINE__, H5E_FILE, H5E_CANTOPENOBJ, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); nobj = FAIL; free(errbuf); return(nobj); } /* Loop to get datasets information */ /* -------------------------------- */ index = H5Giterate(heos_id, grpname, NULL, HE5_EHobj_info, &inout); if( index == FAIL ) { sprintf(errbuf,"Cannot get datasets information.\n"); H5Epush(__FILE__, "HE5_EHdatasetcat", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); nobj = FAIL; goto done; } if(objectlist != NULL) strcpy( objectlist, inout.name); if(strbufsize != NULL) *strbufsize = inout.strsize; nobj = inout.count; done: /* inout.name is allocated in HE5_EHobj_info() */ if( inout.name != NULL) free( inout.name); status = H5Gclose(heos_id); if( status == FAIL ) { sprintf(errbuf, "Cannot release the group ID.\n"); H5Epush(__FILE__, "HE5_EHdatasetcat",__LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); errbuf = NULL; COMPLETION: return(nobj); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHclose | | | | DESCRIPTION: close HDF-EOS file and returns status | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: fid hid_t None HDF-EOS file ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======= ========== ================================================= | | July 99 A.Muslimov Modified to conform to the HDFEOS file structure | | 9/01/99 A.Muslimov Added error handling right after the calls to | | H5Gclose() and H5Fclose(). | | 9/29/99 A.Muslimov Added dynamic memory allocation for error message | | buffer. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHclose(hid_t fid) { herr_t status = FAIL;/* routine return status variable */ hid_t idx = FAIL;/* HDF-EOS file index (reduced ID) */ char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHclose", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Check for valid HDFEOS file ID range */ /* ------------------------------------ */ if (fid >= HE5_EHIDOFFSET && fid < HE5_NEOSHDF + HE5_EHIDOFFSET) { /* Compute "reduced" file ID */ /* ------------------------- */ idx = fid % HE5_EHIDOFFSET; /* Close "HDFEOS" group */ /* -------------------- */ status = H5Gclose(HE5_HeosTable[ idx ].gid); if( status == FAIL) { sprintf(errbuf,"Cannot release \"HDFEOS\" group ID. \n"); H5Epush(__FILE__, "HE5_EHclose", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Close HDF-EOS file */ /* ------------------ */ status = H5Fclose(HE5_HeosTable[idx].HDFfid); if( status == FAIL) { sprintf(errbuf,"Cannot release the file ID. \n"); H5Epush(__FILE__, "HE5_EHclose", __LINE__, H5E_FILE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Clear out external array entries */ /* -------------------------------- */ HE5_HeosTable[ idx ].active = 0; HE5_HeosTable[ idx ].flags = 0; HE5_HeosTable[ idx ].HDFfid = FAIL; HE5_HeosTable[ idx ].gid = FAIL; if(HE5_HeosTable[ idx ].filename != NULL) { free(HE5_HeosTable[ idx ].filename); HE5_HeosTable[ idx ].filename = NULL; } if(Stored_meta[ idx ].saved_metabuf != NULL) { free(Stored_meta[ idx ].saved_metabuf); Stored_meta[ idx ].saved_metabuf = NULL; } } else { status = FAIL; sprintf(errbuf,"Invalid file ID: %d . ID should range from %d to %d . \n", fid, HE5_EHIDOFFSET, HE5_NEOSHDF + HE5_EHIDOFFSET); H5Epush(__FILE__, "HE5_EHclose", __LINE__, H5E_FILE, H5E_BADFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); errbuf = NULL; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHconvdatatype | | | | DESCRIPTION: Returns native data types for C functions | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | cdatatype hid_t datatype uesd in C functions | | | | INPUTS: | | fdatatype int code for datatypes | | | | OUTPUTS: none | | | | 11/06/99 Abe Taaheri | | Aug 00 A.Muslimov Updated | | Mar 02 A.Muslimov Added more data type tags | | Mar 04 S.Zhao Added a data type tag HE5T_CHARSTRING | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_EHconvdatatype(int fdatatype) { hid_t cdatatype = FAIL; /* return data type ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Check the input datatype flag and set data type ID */ /* -------------------------------------------------- */ if(fdatatype == HE5T_NATIVE_INT || fdatatype == 0) cdatatype = H5T_NATIVE_INT; else if(fdatatype == HE5T_NATIVE_UINT || fdatatype == 1) cdatatype = H5T_NATIVE_UINT; else if(fdatatype == HE5T_NATIVE_SHORT || fdatatype == 2) cdatatype = H5T_NATIVE_SHORT; else if(fdatatype == HE5T_NATIVE_USHORT || fdatatype == 3) cdatatype = H5T_NATIVE_USHORT; else if(fdatatype == HE5T_NATIVE_SCHAR || fdatatype == 4) cdatatype = H5T_NATIVE_SCHAR; else if(fdatatype == HE5T_NATIVE_UCHAR || fdatatype == 5) cdatatype = H5T_NATIVE_UCHAR; else if(fdatatype == HE5T_NATIVE_LONG || fdatatype == 6) cdatatype = H5T_NATIVE_LONG; else if(fdatatype == HE5T_NATIVE_ULONG || fdatatype == 7) cdatatype = H5T_NATIVE_ULONG; else if(fdatatype == HE5T_NATIVE_LLONG || fdatatype == 8) cdatatype = H5T_NATIVE_LLONG; else if(fdatatype == HE5T_NATIVE_ULLONG || fdatatype == 9) cdatatype = H5T_NATIVE_ULLONG; else if(fdatatype == HE5T_NATIVE_FLOAT || fdatatype == 10) cdatatype = H5T_NATIVE_FLOAT; else if(fdatatype == HE5T_NATIVE_DOUBLE || fdatatype == 11) cdatatype = H5T_NATIVE_DOUBLE; else if(fdatatype == HE5T_NATIVE_LDOUBLE || fdatatype == 12) cdatatype = H5T_NATIVE_LDOUBLE; else if(fdatatype == HE5T_NATIVE_INT8 || fdatatype == 13) { cdatatype = H5Tcopy(H5T_NATIVE_INT); H5Tset_size(cdatatype, 1); } else if(fdatatype == HE5T_NATIVE_UINT8 || fdatatype == 14) { cdatatype = H5Tcopy(H5T_NATIVE_UINT); H5Tset_size(cdatatype, 1); } else if(fdatatype == HE5T_NATIVE_INT16 || fdatatype == 15) { cdatatype = H5Tcopy(H5T_NATIVE_INT); H5Tset_size(cdatatype, 2); } else if(fdatatype == HE5T_NATIVE_UINT16 || fdatatype == 16) { cdatatype = H5Tcopy(H5T_NATIVE_UINT); H5Tset_size(cdatatype, 2); } else if(fdatatype == HE5T_NATIVE_INT32 || fdatatype == 17) { cdatatype = H5Tcopy(H5T_NATIVE_INT); H5Tset_size(cdatatype, 4); } else if(fdatatype == HE5T_NATIVE_UINT32 || fdatatype == 18) { cdatatype = H5Tcopy(H5T_NATIVE_UINT); H5Tset_size(cdatatype, 4); } else if(fdatatype == HE5T_NATIVE_INT64 || fdatatype == 19) { cdatatype = H5Tcopy(H5T_NATIVE_INT); H5Tset_size(cdatatype, 8); } else if(fdatatype == HE5T_NATIVE_UINT64 || fdatatype == 20) { cdatatype = H5Tcopy(H5T_NATIVE_UINT); H5Tset_size(cdatatype, 8); } else if(fdatatype == HE5T_NATIVE_B8 || fdatatype == 21) cdatatype = H5T_NATIVE_B8; else if(fdatatype == HE5T_NATIVE_B16 || fdatatype == 22) cdatatype = H5T_NATIVE_B16; else if(fdatatype == HE5T_NATIVE_B32 || fdatatype == 23) cdatatype = H5T_NATIVE_B32; else if(fdatatype == HE5T_NATIVE_B64 || fdatatype == 24) cdatatype = H5T_NATIVE_B64; else if(fdatatype == HE5T_NATIVE_HSIZE || fdatatype == 25) cdatatype = H5T_NATIVE_HSIZE; else if(fdatatype == HE5T_NATIVE_HERR || fdatatype == 26) cdatatype = H5T_NATIVE_HERR; else if(fdatatype == HE5T_NATIVE_HBOOL || fdatatype == 27) cdatatype = H5T_NATIVE_HBOOL; else if(fdatatype == HE5T_STD_I8BE || fdatatype == 28 || fdatatype == HE5T_STD_I8LE || fdatatype == 29) cdatatype = H5T_NATIVE_SCHAR; else if(fdatatype == HE5T_STD_I16BE || fdatatype == 30 || fdatatype == HE5T_STD_I16LE || fdatatype == 31) cdatatype = H5T_NATIVE_SHORT; else if(fdatatype == HE5T_STD_I32BE || fdatatype == 32 || fdatatype == HE5T_STD_I32LE || fdatatype == 33) cdatatype = H5T_NATIVE_INT; else if(fdatatype == HE5T_STD_I64BE || fdatatype == 34 || fdatatype == HE5T_STD_I64LE || fdatatype == 35) cdatatype = H5T_NATIVE_LONG; else if(fdatatype == HE5T_STD_U8BE || fdatatype == 36 || fdatatype == HE5T_STD_U8LE || fdatatype == 37) cdatatype = H5T_NATIVE_UCHAR; else if(fdatatype == HE5T_STD_U16BE || fdatatype == 38 || fdatatype == HE5T_STD_U16LE || fdatatype == 39) cdatatype = H5T_NATIVE_USHORT; else if(fdatatype == HE5T_STD_U32BE || fdatatype == 40 || fdatatype == HE5T_STD_U32LE || fdatatype == 41) cdatatype = H5T_NATIVE_UINT; else if(fdatatype == HE5T_STD_U64BE || fdatatype == 42 || fdatatype == HE5T_STD_U64LE || fdatatype == 43) cdatatype = H5T_NATIVE_ULONG; else if(fdatatype == HE5T_STD_B8BE || fdatatype == 44) cdatatype = H5T_STD_B8BE; else if(fdatatype == HE5T_STD_B8LE || fdatatype == 45) cdatatype = H5T_STD_B8LE; else if(fdatatype == HE5T_STD_B16BE || fdatatype == 46) cdatatype = H5T_STD_B16BE; else if(fdatatype == HE5T_STD_B16LE || fdatatype == 47) cdatatype = H5T_STD_B16LE; else if(fdatatype == HE5T_STD_B32BE || fdatatype == 48) cdatatype = H5T_STD_B32BE; else if(fdatatype == HE5T_STD_B32LE || fdatatype == 49) cdatatype = H5T_STD_B32LE; else if(fdatatype == HE5T_STD_B64BE || fdatatype == 50) cdatatype = H5T_STD_B64BE; else if(fdatatype == HE5T_STD_B64LE || fdatatype == 51) cdatatype = H5T_STD_B64LE; else if(fdatatype == HE5T_IEEE_F32BE || fdatatype == 52 || fdatatype == HE5T_IEEE_F32LE || fdatatype == 53) cdatatype = H5T_NATIVE_FLOAT; else if(fdatatype == HE5T_IEEE_F64BE || fdatatype == 54 || fdatatype == HE5T_IEEE_F64LE || fdatatype == 55) cdatatype = H5T_NATIVE_DOUBLE; else if(fdatatype == HE5T_NATIVE_CHAR || fdatatype == 56) cdatatype = H5T_NATIVE_CHAR; else if(fdatatype == HE5T_CHARSTRING || fdatatype == 57) cdatatype = H5T_C_S1; /* The error will be issued after the call */ /* else { sprintf(errbuf,"Invalid FORTRAN datatype flag (\"%d\").\n", fdatatype); H5Epush(__FILE__, "HE5_EHconvdatatype", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } */ return(cdatatype); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHdtype2numtype | | | | DESCRIPTION: Takes file data type ID, and converts it to a number type ID | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | numtype hid_t Number type ID | | | | INPUTS: | | dtype hid_t File data type ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 02 S.Zhao Original development | | Dec 03 S.Zhao Updated | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_EHdtype2numtype(hid_t dtype) { hid_t numtype = FAIL; /* char *errbuf = NULL;*/ /* Error message buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ /* errbuf = (char *) calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHdtype2numtype", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } */ if ((dtype == HE5T_CHARSTRING) || H5Tequal(dtype,H5T_C_S1)) numtype = HE5T_CHARSTRING; else if(H5Tequal(dtype, H5T_NATIVE_INT) || H5Tequal(dtype,H5T_STD_I32BE) || H5Tequal(dtype,H5T_STD_I32LE)) numtype = HE5T_NATIVE_INT; else if(H5Tequal(dtype, H5T_NATIVE_UINT) || H5Tequal(dtype,H5T_STD_U32BE) || H5Tequal(dtype,H5T_STD_U32LE)) numtype = HE5T_NATIVE_UINT; else if(H5Tequal(dtype, H5T_NATIVE_SHORT)) numtype = HE5T_NATIVE_SHORT; else if(H5Tequal(dtype, H5T_NATIVE_USHORT)) numtype = HE5T_NATIVE_USHORT; else if(H5Tequal(dtype, H5T_NATIVE_SCHAR)) numtype = HE5T_NATIVE_SCHAR; else if(H5Tequal(dtype, H5T_NATIVE_UCHAR)) numtype = HE5T_NATIVE_UCHAR; else if(H5Tequal(dtype, H5T_NATIVE_LONG) || H5Tequal(dtype,H5T_STD_I64BE) || H5Tequal(dtype,H5T_STD_I64LE)) numtype = HE5T_NATIVE_LONG; else if(H5Tequal(dtype, H5T_NATIVE_ULONG) || H5Tequal(dtype,H5T_STD_U64BE) || H5Tequal(dtype,H5T_STD_U64LE)) numtype = HE5T_NATIVE_ULONG; else if(H5Tequal(dtype, H5T_NATIVE_LLONG)) numtype = HE5T_NATIVE_LLONG; else if(H5Tequal(dtype, H5T_NATIVE_ULLONG)) numtype = HE5T_NATIVE_ULLONG; else if(H5Tequal(dtype, H5T_NATIVE_FLOAT) || H5Tequal(dtype,H5T_IEEE_F32BE) || H5Tequal(dtype,H5T_IEEE_F32LE)) numtype = HE5T_NATIVE_FLOAT; else if(H5Tequal(dtype, H5T_NATIVE_DOUBLE) || H5Tequal(dtype,H5T_IEEE_F64BE) || H5Tequal(dtype,H5T_IEEE_F64LE)) numtype = HE5T_NATIVE_DOUBLE; else if(H5Tequal(dtype, H5T_NATIVE_LDOUBLE)) numtype = HE5T_NATIVE_LDOUBLE; else if(H5Tequal(dtype, H5T_NATIVE_INT8) || H5Tequal(dtype,H5T_STD_I8BE) || H5Tequal(dtype,H5T_STD_I8LE)) numtype = HE5T_NATIVE_INT8; else if(H5Tequal(dtype, H5T_NATIVE_UINT8) || H5Tequal(dtype,H5T_STD_U8BE) || H5Tequal(dtype,H5T_STD_U8LE)) numtype = HE5T_NATIVE_UINT8; else if(H5Tequal(dtype, H5T_NATIVE_INT16) || H5Tequal(dtype,H5T_STD_I16BE) || H5Tequal(dtype,H5T_STD_I16LE)) numtype = HE5T_NATIVE_INT16; else if(H5Tequal(dtype, H5T_NATIVE_UINT16) || H5Tequal(dtype,H5T_STD_U16BE) || H5Tequal(dtype,H5T_STD_U16LE)) numtype = HE5T_NATIVE_UINT16; else if(H5Tequal(dtype, H5T_NATIVE_INT32)) numtype = HE5T_NATIVE_INT32; else if(H5Tequal(dtype, H5T_NATIVE_UINT32)) numtype = HE5T_NATIVE_UINT32; else if(H5Tequal(dtype, H5T_NATIVE_INT64)) numtype = HE5T_NATIVE_INT64; else if(H5Tequal(dtype, H5T_NATIVE_UINT64)) numtype = HE5T_NATIVE_UINT64; else if(H5Tequal(dtype, H5T_NATIVE_B8) || H5Tequal(dtype,H5T_STD_B8BE) || H5Tequal(dtype,H5T_STD_B8LE)) numtype = HE5T_NATIVE_B8; else if(H5Tequal(dtype, H5T_NATIVE_B16) || H5Tequal(dtype,H5T_STD_B16BE) || H5Tequal(dtype,H5T_STD_B16LE)) numtype = HE5T_NATIVE_B16; else if(H5Tequal(dtype, H5T_NATIVE_B32) || H5Tequal(dtype,H5T_STD_B32BE) || H5Tequal(dtype,H5T_STD_B32LE)) numtype = HE5T_NATIVE_B32; else if(H5Tequal(dtype, H5T_NATIVE_B64) || H5Tequal(dtype,H5T_STD_B64BE) || H5Tequal(dtype,H5T_STD_B64LE)) numtype = HE5T_NATIVE_B64; else if(H5Tequal(dtype, H5T_NATIVE_HSIZE)) numtype = HE5T_NATIVE_HSIZE; else if(H5Tequal(dtype, H5T_NATIVE_HERR)) numtype = HE5T_NATIVE_HERR; else if(H5Tequal(dtype, H5T_NATIVE_HBOOL)) numtype = HE5T_NATIVE_HBOOL; else if (H5Tequal(dtype, H5T_NATIVE_CHAR)) numtype = HE5T_NATIVE_CHAR; else { numtype = FAIL; sprintf(errbuf,"The datatype \"%d\" is not supported (unknown).\n", (int)dtype); H5Epush(__FILE__, "HE5_EHdtype2numtype", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /*free(errbuf);*/ return(numtype); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHwriteglbattr | | | | DESCRIPTION: Writes/updates attribute associated with the "FILE_ATTRIBUTES"| | group in a Swath/Grid/Point/ZA. | | | | ----------- | | | Root "/" | | | ----------- | | / \ | | ---------------------- --------------------- | | | HDFEOS INFORMATION | | HDFEOS | | | ---------------------- --------------------- | | / | / / \ \ \ | | / | / / \ \ \ | | [StructMetadata.0] / / \ \ \ | | / | | \ \ | | ---------- ------ ------- ------- -------- | | |ADDITIONAL| |GRID| |POINT| |SWATH| | ZA | | | ---------- ------ ------- ------- -------- | | / : : : : | | / [dts] [dts] [dts] [dts] | | ----------------- | | |FILE_ATTRIBUTES| | | ----------------- | | : | | Writes/Updates data here=> | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t HDFEOS File ID | | attrname char attribute name | | numbertype hid_t attribute dataset datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | May 01 A.Muslimov Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHwriteglbattr(hid_t fid, const char *attrname, hid_t numbertype, hsize_t count[], void *datbuf) { herr_t status = FAIL; /* Return status variable */ uintn access = 0; /* Access code */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t AddGrpID = FAIL; /* "ADDITIONAL" group ID */ hid_t FileAttrGrpID = FAIL; /* "FILE_ATTRIBUTES" group ID */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* Get HDF-EOS file ID and "HDFEOS" group ID */ /* ========================================= */ status = HE5_EHchkfid(fid,"HE5_EHwriteglbattr", &HDFfid, &gid, &access); if(status == FAIL) { H5Epush(__FILE__, "HE5_EHwriteglbattr", __LINE__, H5E_FILE, H5E_NOTFOUND, "Invalid file ID. \n"); HE5_EHprint("Error: Invalid file ID, occured", __FILE__, __LINE__); return(FAIL); } if (status == SUCCEED) { /* Get "ADDITIONAL" group ID */ /* ------------------------- */ AddGrpID = H5Gopen(gid, "ADDITIONAL"); if(AddGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"ADDITIONAL\" group. \n"); H5Epush(__FILE__, "HE5_EHwriteglbattr", __LINE__, H5E_OHDR, H5E_NOTFOUND,errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get "FILE_ATTRIBUTES" group ID and call HE5_EHattr to perform I/O */ /* ----------------------------------------------------------------- */ FileAttrGrpID = H5Gopen(AddGrpID, "FILE_ATTRIBUTES"); if(FileAttrGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"FILE_ATTRIBUTES\" group. \n"); H5Epush(__FILE__, "HE5_EHwriteglbattr", __LINE__, H5E_OHDR, H5E_NOTFOUND,errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(FileAttrGrpID, attrname, numbertype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\"to the \"FILE_ATTRIBUTES\" group.\n", attrname); H5Epush(__FILE__, "HE5_EHwriteglbattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(AddGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"ADDITIONAL\" group ID. \n"); H5Epush(__FILE__, "HE5_EHwriteglbattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(FileAttrGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"FILE_ATTRIBUTES\" group ID. \n"); H5Epush(__FILE__, "HE5_EHwriteglbattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHreadglbattr | | | | DESCRIPTION: Reads attribute from the "FILE_ATTRIBUTES" group in a file. | | | | | | ----------- | | | Root "/"| | | ----------- | | / \ | | ---------------------- --------------------- | | | HDFEOS INFORMATION | | HDFEOS | | | ---------------------- --------------------- | | / | / / \ \ \ | | / | / / \ \ \ | | [StructMetadata.0] / / \ \ \ | | / | | \ \ | | ---------- ------ ------- ------- -------- | | |ADDITIONAL| |GRID| |POINT| |SWATH| | ZA | | | ---------- ------ ------- ------- -------- | | / : : : : | | / [dts] [dts] [dts] [dts] | | ----------------- | | |FILE_ATTRIBUTES| | | ----------------- | | : | | Reads attributes from => | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t file ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 01 A.Muslimov Original development. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHreadglbattr(hid_t fid, const char *attrname, void * datbuf) { herr_t status = FAIL; /* return status variable */ uintn access = 0; /* Access code */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t AddGrpID = FAIL; /* "ADDITIONAL" group ID */ hid_t FileAttrGrpID = FAIL; /* "FILE_ATTRIBUTES" group ID */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ hid_t ntype = FAIL; /* Data type ID */ hsize_t count[] = { 0 }; /* # of attribute elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Get HDF-EOS file ID and "HDFEOS" group ID */ /* ========================================= */ status = HE5_EHchkfid(fid,"HE5_EHreadglbattr", &HDFfid, &gid, &access); if (status == SUCCEED) { /* Get "ADDITIONAL" group ID */ /* --------------------------- */ AddGrpID = H5Gopen(gid, "ADDITIONAL"); if(AddGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"ADDITIONAL\" group.\n"); H5Epush(__FILE__, "HE5_EHreadglbattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get "FILE_ATTRIBUTES" group ID and call HE5_EHattr to perform I/O */ /* ------------------------------------------------------------------ */ FileAttrGrpID = H5Gopen(AddGrpID, "FILE_ATTRIBUTES"); if(FileAttrGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"FILE_ATTRIBUTES\" group.\n"); H5Epush(__FILE__, "HE5_EHreadglbattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(FileAttrGrpID,attrname,ntype,count,"r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" from the \"FILE_ATTRIBUTES\" group.\n", attrname); H5Epush(__FILE__, "HE5_EHreadglbattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(AddGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"ADDITIONAL\" group ID.\n"); H5Epush(__FILE__,"HE5_EHreadglbattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(FileAttrGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"FILE_ATTRIBUTES\" group ID.\n"); H5Epush(__FILE__, "HE5_EHreadglbattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHglbattrinfo | | | | DESCRIPTION: Retrieves information about attributes in "FILE_ATTRIBUTES" | | group within a file. | | | | ----------- | | | Root "/"| | | ----------- | | / \ | | ---------------------- --------------------- | | | HDFEOS INFORMATION | | HDFEOS | | | ---------------------- --------------------- | | / | / / \ \ \ | | / | / / \ \ \ | | [StructMetadata.0] / / \ \ \ | | / | | \ \ | | ---------- ------ ------- ------- -------- | | |ADDITIONAL| |GRID| |POINT| |SWATH| | ZA | | | ---------- ------ ------- ------- -------- | | / : : : : | | / [dts] [dts] [dts] [dts] | | ----------------- | | |FILE_ATTRIBUTES| | | ----------------- | | : | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t file ID | | attrname const char* attribute name | | | | OUTPUTS: | | ntype hid_t data type ID | | count hsize_t Number of attribute elements | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 01 A.Muslimov Original development. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHglbattrinfo(hid_t fid, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL; /* Return status variable */ uintn access = 0; /* Access code */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t AddGrpID = FAIL; /* "ADDITIONAL" group ID */ hid_t FileAttrGrpID = FAIL; /* "FILE_ATTRIBUTES" group ID */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Get HDF-EOS file ID and "HDFEOS" group ID */ /* ========================================= */ status = HE5_EHchkfid(fid,"HE5_EHglbattrinfo", &HDFfid, &gid, &access); if (status == SUCCEED) { /* Get "ADDITIONAL" group ID */ /* -------------------------- */ AddGrpID = H5Gopen(gid, "ADDITIONAL"); if(AddGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"ADDITIONAL\" group.\n"); H5Epush(__FILE__, "HE5_EHglbattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get "FILE_ATTRIBUTES" group ID and call HE5_EHattrinfo */ /* ------------------------------------------------------- */ FileAttrGrpID = H5Gopen(AddGrpID, "FILE_ATTRIBUTES"); if(FileAttrGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"FILE_ATTRIBUTES\" group.\n"); H5Epush(__FILE__,"HE5_EHglbattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattrinfo(FileAttrGrpID,attrname,ntype,count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" in the \"FILE_ATTRIBUTES\" group.\n", attrname); H5Epush(__FILE__, "HE5_EHglbattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(AddGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"ADDITIONAL\" group ID.\n"); H5Epush(__FILE__, "HE5_EHglbattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(FileAttrGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"FILE_ATTRIBUTES\" group ID.\n"); H5Epush(__FILE__, "HE5_EHglbattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHinqglbattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "FILE_ATTRIBUTES" group | | | | ----------- | | | Root "/"| | | ----------- | | / \ | | ---------------------- -------------------- | | | HDFEOS INFORMATION | | HDFEOS | | | ---------------------- -------------------- | | / | / / \ \ \ | | / | / / \ \ \ | | [StructMetadata.0] / / \ \ \ | | / | | \ \ | | ---------- ------ ------- ------- -------- | | |ADDITIONAL| |GRID| |POINT| |SWATH| | ZA | | | ---------- ------ ------- ------- -------- | | / : : : : | | / [dts] [dts] [dts] [dts] | | ----------------- | | |FILE_ATTRIBUTES| | | ----------------- | | : | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in | | "FILE_ATTRIBUTES" group. | | | | INPUTS: | | fid hid_t file ID | | | | OUTPUTS: | | attrnames char Attribute names in "FILE_ATTRIBUTES" | | group (Comma-separated list) | | strbufsize long Attributes name list string length | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | May 01 A.Muslimov Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHinqglbattrs(hid_t fid, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes */ herr_t status = FAIL; /* Return status variable */ uintn access = 0; /* Access code */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ char *grpname = (char *)NULL; /* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID and "HDFEOS" group ID */ /* ========================================= */ status = HE5_EHchkfid(fid,"HE5_EHinqglbattrs", &HDFfid, &gid, &access); if(status == SUCCEED ) { grpname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_EHinqgrpattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Set the Group name */ /* ------------------ */ strcpy(grpname,"/HDFEOS/ADDITIONAL/FILE_ATTRIBUTES"); /* search group with grpname for the number of attributes */ /* ------------------------------------------------------ */ nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot find the attributes. \n"); H5Epush(__FILE__, "HE5_EHinqglbattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHinqglbdatatype | | | | DESCRIPTION: Inquires the data type of attributes in "FILE_ATTRIBUTES" | | group within a file. | | | | ----------- | | | Root "/"| | | ----------- | | / \ | | ---------------------- -------------------- | | | HDFEOS INFORMATION | | HDFEOS | | | ---------------------- -------------------- | | / | / / \ \ \ | | / | / / \ \ \ | | [StructMetadata.0] / / \ \ \ | | / | | \ \ | | ---------- ------ ------- ------- -------- | | |ADDITIONAL| |GRID| |POINT| |SWATH| | ZA | | | ---------- ------ ------- ------- -------- | | / : : : : | | / [dts] [dts] [dts] [dts] | | ----------------- | | |FILE_ATTRIBUTES| | | ----------------- | | : | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t file ID | | attrname const char* attribute name | | | | OUTPUTS: | | datatype hid_t | | classid H5T_class_t | | order H5T_order_t | | size size_t | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 03 S.Zhao Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHinqglbdatatype(hid_t fid, const char *attrname, hid_t *datatype, H5T_class_t *classid, H5T_order_t *order, size_t *size) { herr_t status = FAIL; /* Return status variable */ uintn access = 0; /* Access code */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t AddGrpID = FAIL; /* "ADDITIONAL" group ID */ hid_t FileAttrGrpID = FAIL; /* "FILE_ATTRIBUTES" group ID */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ hid_t attr = FAIL; /* attribute dataset ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Get HDF-EOS file ID and "HDFEOS" group ID */ /* ========================================= */ status = HE5_EHchkfid(fid,"HE5_EHinqglbdatatype", &HDFfid, &gid, &access); if (status == SUCCEED) { /* Get "ADDITIONAL" group ID */ /* -------------------------- */ AddGrpID = H5Gopen(gid, "ADDITIONAL"); if(AddGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"ADDITIONAL\" group.\n"); H5Epush(__FILE__, "HE5_EHinqglbdatatype", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get "FILE_ATTRIBUTES" group ID */ /* ------------------------------- */ FileAttrGrpID = H5Gopen(AddGrpID, "FILE_ATTRIBUTES"); if(FileAttrGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"FILE_ATTRIBUTES\" group.\n"); H5Epush(__FILE__, "HE5_EHinqglbdatatype", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data type information about global attribute */ /* ------------------------------------------------ */ attr = H5Aopen_name(FileAttrGrpID,attrname); if (attr == FAIL) { sprintf(errbuf, "Cannot open the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_EHinqglbdatatype", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *datatype = H5Aget_type(attr); if (*datatype == FAIL) { sprintf(errbuf, "Cannot get the data type for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_EHinqglbdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classid = H5Tget_class(*datatype); if (*classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__,"HE5_EHinqglbdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *order = H5Tget_order(*datatype); if (*order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_EHinqglbdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classid == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*datatype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_EHinqglbdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Aclose(attr); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_EHinqglbdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Gclose(AddGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"ADDITIONAL\" group ID.\n"); H5Epush(__FILE__, "HE5_EHinqglbdatatype", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(FileAttrGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"FILE_ATTRIBUTES\" group ID.\n"); H5Epush(__FILE__, "HE5_EHinqglbdatatype", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHupdatemeta | | | | DESCRIPTION: Updates metadata | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | status herr_t None return status variable (0 for success, | | -1 for failure) | | | | INPUTS: | | | | fid hid_t None HDF-EOS file ID | | structname char* None Object name string | | structcode char* None "s" for a swath, "g" for a grid, | | "p" for a point, and "z" for a za. | | metacode long None Code of a metadata block to insert to. | | metastr char* None Buffer containing metadata information | | to insert. | | metadata[] hsize_t None Array of data values | | | | OUTPUTS: | | | | None | | | | NOTES: Allocates memory of fixed size (= HE5_STATIC_BLKSIZE) | | for metabuf[] array (old scheme), or allocates buffer in chuncks | | of HE5_DYNAMIC_BLKSIZE (new scheme). | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 05/17/04 Abe Taaheri Initial version | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHupdatemeta(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]) { herr_t status = SUCCEED; int HDFEOS5ver_flg ; /* will be set to 1 if the HDF-EOS5 version is later than 5.1.7, otherwise to 0 */ /* Get HDFEOS5ver_flg flag for the file */ /* --------------- */ HDFEOS5ver_flg = HE5_HeosTable[fid%HE5_EHIDOFFSET].DYNAMIC_flag; if(HDFEOS5ver_flg == 1) { status = HE5_EHupdatemeta_Static(fid, structname, structcode, metacode, metastr, metadata); } else if(HDFEOS5ver_flg == 0) { status = HE5_EHupdatemeta_Dynamic(fid, structname, structcode, metacode, metastr, metadata); } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHupdatemeta_Static | | | | DESCRIPTION: Updates metadata | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | status herr_t None return status variable (0 for success, | | -1 for failure) | | | | INPUTS: | | | | fid hid_t None HDF-EOS file ID | | structname char* None Object name string | | structcode char* None "s" for a swath, "g" for a grid, | | "p" for a point, and "z" for a za. | | metacode long None Code of a metadata block to insert to. | | metastr char* None Buffer containing metadata information | | to insert. | | metadata[] hsize_t None Array of data values | | | | OUTPUTS: | | | | None | | | | NOTES: There is memory allocation of BLKSIZE chunk for the | | dataset "StructMetadata.0" | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct. 02 S. ZHAO Original development | | Dec. 02 H. LO Update dimension size | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHupdatemeta_Static(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]) { herr_t status = FAIL; /* routine return status variable */ int i; /* Loop index */ hid_t gid = FAIL; /* "HDFEOS INFORMATION" group ID */ hid_t meta_id = FAIL; /* "StructuralMetadat.0" group ID */ hid_t atype = FAIL; /* Data type ID */ hid_t aspace = FAIL; /* Data space ID */ hid_t HDFfid = FAIL; /* HDF5 file ID */ hsize_t tempdim = 0; /* Temporary variable */ long count = 0; /* Objects/Groups counter */ char *metabuf = NULL; /* Pointer to Structural Metadata array */ char *metaptr = NULL; /* Metadata pointer */ char *prevmetaptr = NULL;/* Previous position of metadata pointer */ char *utlstr = NULL; /* Utility string */ char *utlstr2 = NULL; /* Utility string 2 */ char *newbuf = NULL; /* updated metadata string */ char *type = NULL; /* data type string */ char *errbuf = NULL; /* Error message buffer */ char *meta_dim_name = NULL; char *utl_dim_name = NULL; int ii, jj, i1, j1; CHECKPOINTER(structname); CHECKPOINTER(structcode); CHECKPOINTER(metastr); /* Get HDF file ID */ /* --------------- */ HDFfid = HE5_HeosTable[fid%HE5_EHIDOFFSET].HDFfid; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for data type string */ /* ------------------------------------ */ type = (char * )calloc( HE5_HDFE_TYPESTRSIZE, sizeof(char)); if(type == NULL) { sprintf(errbuf,"Cannot allocate memory for data type string. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Open "HDFEOS INFORMATION" group */ /* =============================== */ gid = H5Gopen(HDFfid, "HDFEOS INFORMATION"); if(gid == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open \"HDFEOS INFORMATION\" group. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } /* *--------------------------------------------------------------* * Open dataset "StructMetadata.0", get datatype and space ID * *--------------------------------------------------------------* */ meta_id = H5Dopen(gid, "StructMetadata.0"); if( meta_id == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open \"StructMetadata.0\" dataset. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } atype = H5Dget_type(meta_id); if( atype == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the dataset datatype. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } aspace = H5Dget_space(meta_id); if( aspace == FAIL ) { status = FAIL; sprintf(errbuf,"Cannot get the dataset dataspace. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } /* *-------------------------------------------------------------* * Allocate memory for the output array and Read attribute * *-------------------------------------------------------------* */ metabuf = (char *)calloc( HE5_HeosTable[fid%HE5_EHIDOFFSET].HE5_STATIC_BLKSIZE, sizeof(char)); if( metabuf == NULL ) { sprintf(errbuf,"Cannot allocate memory for meta buffer. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); return(status); } utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr == NULL ) { sprintf(errbuf,"Cannot allocate memory for utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); return(status); } utlstr2 = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr2 == NULL ) { sprintf(errbuf,"Cannot allocate memory for the 2d utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); return(status); } status = H5Dread(meta_id, atype,H5S_ALL, H5S_ALL, H5P_DEFAULT,metabuf); if( status == FAIL) { sprintf(errbuf, "Cannot read structural metadata. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Find HDF-EOS structure "root" group in metadata */ /* ----------------------------------------------- */ /* Setup proper search string */ if (strcmp(structcode, "s") == 0) { strcpy(utlstr, "GROUP=SwathStructure"); } else if (strcmp(structcode, "g") == 0) { strcpy(utlstr, "GROUP=GridStructure"); } else if (strcmp(structcode, "p") == 0) { strcpy(utlstr, "GROUP=PointStructure"); } else if (strcmp(structcode, "z") == 0) { strcpy(utlstr, "GROUP=ZaStructure"); } /* Use string search routine (strstr) to move through metadata */ /* ----------------------------------------------------------- */ metaptr = strstr(metabuf, utlstr); /* Find specific (named) structure */ /* ------------------------------- */ if (metacode < 1000) { /* Save current metadata pointer */ /* ----------------------------- */ prevmetaptr = metaptr; /* First loop for "old-style" (non-ODL) metadata string */ /* ---------------------------------------------------- */ if (strcmp(structcode, "s") == 0) { sprintf(utlstr, "%s%s%s", "SwathName=\"", structname, "\""); } else if (strcmp(structcode, "g") == 0) { sprintf(utlstr, "%s%s%s", "GridName=\"", structname, "\""); } else if (strcmp(structcode, "p") == 0) { sprintf(utlstr, "%s%s%s", "PointName=\"", structname, "\""); } else if (strcmp(structcode, "z") == 0) { sprintf(utlstr, "%s%s%s", "ZaName=\"", structname, "\""); } /* Perform string search */ /* --------------------- */ metaptr = strstr(metaptr, utlstr); /* *--------------------------------------------------------------------* * If not found then return to previous position in metadata and look * * for "new-style" (ODL) metadata string * *--------------------------------------------------------------------* */ if (metaptr == NULL) { sprintf(utlstr, "%s%s%s", "GROUP=\"", structname, "\""); metaptr = strstr(prevmetaptr, utlstr); } } /* Metadata Section Switch */ /* ----------------------- */ switch ((int)abs((int)metacode)) { case 0: /* Dimension Section */ /* ================= */ /* Find beginning and end of metadata section */ /* ------------------------------------------ */ strcpy(utlstr, "\t\tGROUP=Dimension"); /* begptr = strstr(metaptr, utlstr);*/ strcpy(utlstr, "\t\tEND_GROUP=Dimension"); metaptr = strstr(metaptr, utlstr); count = 1; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%li%s%li%s", "\t\t\tOBJECT=Dimension_",count,"\n\t\t\t\tDimensionName=\"",&metastr[0],"\"\n\t\t\t\tSize=", (long)metadata[0],"\n\t\t\tEND_OBJECT=Dimension_", count, "\n"); break; default: { sprintf(errbuf, "Unknown metacode.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } /* Reallocate memory for a new metadata array, newbuf */ /* ------------------------------------------------------ */ newbuf = (char *) calloc(HE5_HeosTable[fid%HE5_EHIDOFFSET].HE5_STATIC_BLKSIZE, sizeof(char)); if(newbuf==NULL) { sprintf(errbuf, "Cannot allocate memory for a new metadata string.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Copy new metadata string to newbuf array */ /* ---------------------------------------- */ strncpy(newbuf, prevmetaptr, strlen(prevmetaptr)); newbuf[strlen(prevmetaptr)] = '\0'; meta_dim_name = strstr(newbuf, metastr); utl_dim_name = strstr(utlstr, metastr); ii = strlen(newbuf) - strlen(meta_dim_name); jj = strlen(utlstr) - strlen(utl_dim_name); for(i = 1; i < jj+1; i++) { i1 = ii+i; j1 = jj+i; newbuf[i1] = utlstr[j1]; } tempdim = (hsize_t)strlen( newbuf ); tempdim++; /* *-----------------------------------------------------------------* * Write updated metadata back to dataset "StructMetadata.0" * *-----------------------------------------------------------------* */ status = H5Dwrite(meta_id, atype, H5S_ALL, H5S_ALL, H5P_DEFAULT, newbuf); if( status == FAIL) { sprintf(errbuf,"Cannot write in structural metadata.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); free(newbuf); return(status); } free(metabuf); free(newbuf); free(utlstr); free(utlstr2); free(type); metabuf = NULL; newbuf = NULL; utlstr2 = NULL; utlstr = NULL; type = NULL; status = H5Sclose(aspace); if( status == FAIL) { sprintf(errbuf,"Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Tclose(atype); if( status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Dclose(meta_id); if( status == FAIL) { sprintf(errbuf,"Cannot release the dataset ID.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Gclose(gid); if( status == FAIL) { sprintf(errbuf,"Cannot release the group ID.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Static", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } free(errbuf); errbuf = NULL; COMPLETION: return status; } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHupdatemeta_Dynamic | | | | DESCRIPTION: Updates metadata | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | status herr_t None return status variable (0 for success, | | -1 for failure) | | | | INPUTS: | | | | fid hid_t None HDF-EOS file ID | | structname char* None Object name string | | structcode char* None "s" for a swath, "g" for a grid, | | "p" for a point, and "z" for a za. | | metacode long None Code of a metadata block to insert to. | | metastr char* None Buffer containing metadata information | | to insert. | | metadata[] hsize_t None Array of data values | | | | OUTPUTS: | | | | None | | | | NOTES: Allocates buffer in chuncks of HE5_DYNAMIC_BLKSIZE (new scheme). | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 05/17/04 Abe Taaheri Modified the version with static buffer allocation | | to adopt dynamic buffer allocation in chuncks of | | HE5_DYNAMIC_BLKSIZE | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_EHupdatemeta_Dynamic(hid_t fid, const char *structname, char *structcode, long metacode, char *metastr, hsize_t metadata[]) { herr_t status = FAIL; /* routine return status variable */ int i; /* Loop index */ hid_t gid = FAIL; /* "HDFEOS INFORMATION" group ID */ hid_t meta_id[MetaBlocks] = {FAIL}; /* "StructuralMetadat.0" group ID */ hid_t atype[MetaBlocks] = {FAIL}; /* Data type ID */ hid_t aspace[MetaBlocks] = {FAIL}; /* Data space ID */ hid_t HDFfid = FAIL; /* HDF5 file ID */ hsize_t tempdim = 0; /* Temporary variable */ long count = 0; /* Objects/Groups counter */ char *metabuf = NULL; /* Pointer to Structural Metadata array */ char *metaptr = NULL; /* Metadata pointer */ char *prevmetaptr = NULL;/* Previous position of metadata pointer */ char *utlstr = NULL; /* Utility string */ char *utlstr2 = NULL; /* Utility string 2 */ char *newbuf = NULL; /* updated metadata string */ char *type = NULL; /* data type string */ char *errbuf = NULL; /* Error message buffer */ char *meta_dim_name = NULL; char *utl_dim_name = NULL; int ii, jj, i1, j1; long nmeta; /*long *metstrbufsize = 0;*/ char metutlstr[32]; int ism; long metalen; CHECKPOINTER(structname); CHECKPOINTER(structcode); CHECKPOINTER(metastr); /* Get HDF file ID */ /* --------------- */ HDFfid = HE5_HeosTable[fid%HE5_EHIDOFFSET].HDFfid; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for data type string */ /* ------------------------------------ */ type = (char * )calloc( HE5_HDFE_TYPESTRSIZE, sizeof(char)); if(type == NULL) { sprintf(errbuf,"Cannot allocate memory for data type string. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Open "HDFEOS INFORMATION" group */ /* =============================== */ gid = H5Gopen(HDFfid, "HDFEOS INFORMATION"); if(gid == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open \"HDFEOS INFORMATION\" group. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } /* Determine number of structural metadata "sections" */ /* -------------------------------------------------- */ nmeta = 0; status= HE5_EHgetnmeta(gid, &nmeta); if(status == FAIL) { sprintf(errbuf,"Cannot find any StructMetadata.X dataset. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } for (ism = 0; ism < nmeta; ism++) { /* *--------------------------------------------------------------* * Open dataset "StructMetadata.X", get datatype and space ID * *--------------------------------------------------------------* */ sprintf(metutlstr, "%s%d", "StructMetadata.", ism); meta_id[ism] = H5Dopen(gid, metutlstr); if( meta_id[ism] == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open %s dataset. \n", metutlstr); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } atype[ism] = H5Dget_type(meta_id[ism]); if( atype[ism] == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the dataset datatype. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } aspace[ism] = H5Dget_space(meta_id[ism]); if( aspace[ism] == FAIL ) { status = FAIL; sprintf(errbuf,"Cannot get the dataset dataspace. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); return(status); } } /* *-------------------------------------------------------------* * Allocate memory for the output array and Read attribute * *-------------------------------------------------------------* */ metabuf = (char *)calloc( HE5_DYNAMIC_BLKSIZE * nmeta, sizeof(char)); if( metabuf == NULL ) { sprintf(errbuf,"Cannot allocate memory for meta buffer. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); return(status); } utlstr = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr == NULL ) { sprintf(errbuf,"Cannot allocate memory for utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); return(status); } utlstr2 = (char *)calloc( HE5_HDFE_UTLBUFSIZE, sizeof(char)); if( utlstr2 == NULL ) { sprintf(errbuf,"Cannot allocate memory for the 2d utility string buffer. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); return(status); } metalen = 0; for (ism = 0; ism < nmeta; ism++) { status = H5Dread(meta_id[ism], atype[ism],H5S_ALL, H5S_ALL, H5P_DEFAULT,metabuf + metalen); if( status == FAIL) { sprintf(errbuf, "Cannot read structural metadata. \n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Determine length (# of characters) of metadata */ /* ---------------------------------------------- */ metalen = strlen(metabuf); } /* Find HDF-EOS structure "root" group in metadata */ /* ----------------------------------------------- */ /* Setup proper search string */ if (strcmp(structcode, "s") == 0) { strcpy(utlstr, "GROUP=SwathStructure"); } else if (strcmp(structcode, "g") == 0) { strcpy(utlstr, "GROUP=GridStructure"); } else if (strcmp(structcode, "p") == 0) { strcpy(utlstr, "GROUP=PointStructure"); } else if (strcmp(structcode, "z") == 0) { strcpy(utlstr, "GROUP=ZaStructure"); } /* Use string search routine (strstr) to move through metadata */ /* ----------------------------------------------------------- */ metaptr = strstr(metabuf, utlstr); /* Find specific (named) structure */ /* ------------------------------- */ if (metacode < 1000) { /* Save current metadata pointer */ /* ----------------------------- */ prevmetaptr = metaptr; /* First loop for "old-style" (non-ODL) metadata string */ /* ---------------------------------------------------- */ if (strcmp(structcode, "s") == 0) { sprintf(utlstr, "%s%s%s", "SwathName=\"", structname, "\""); } else if (strcmp(structcode, "g") == 0) { sprintf(utlstr, "%s%s%s", "GridName=\"", structname, "\""); } else if (strcmp(structcode, "p") == 0) { sprintf(utlstr, "%s%s%s", "PointName=\"", structname, "\""); } else if (strcmp(structcode, "z") == 0) { sprintf(utlstr, "%s%s%s", "ZaName=\"", structname, "\""); } /* Perform string search */ /* --------------------- */ metaptr = strstr(metaptr, utlstr); /* *--------------------------------------------------------------------* * If not found then return to previous position in metadata and look * * for "new-style" (ODL) metadata string * *--------------------------------------------------------------------* */ if (metaptr == NULL) { sprintf(utlstr, "%s%s%s", "GROUP=\"", structname, "\""); metaptr = strstr(prevmetaptr, utlstr); } } /* Metadata Section Switch */ /* ----------------------- */ switch ((int)abs((int)metacode)) { case 0: /* Dimension Section */ /* ================= */ /* Find beginning and end of metadata section */ /* ------------------------------------------ */ strcpy(utlstr, "\t\tGROUP=Dimension"); /* begptr = strstr(metaptr, utlstr);*/ strcpy(utlstr, "\t\tEND_GROUP=Dimension"); metaptr = strstr(metaptr, utlstr); count = 1; /* Build metadata entry string */ /* --------------------------- */ sprintf(utlstr, "%s%li%s%s%s%li%s%li%s", "\t\t\tOBJECT=Dimension_",count,"\n\t\t\t\tDimensionName=\"",&metastr[0],"\"\n\t\t\t\tSize=", (long)metadata[0],"\n\t\t\tEND_OBJECT=Dimension_", count, "\n"); break; default: { sprintf(errbuf, "Unknown metacode.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } /* The size of the whole structure metadat will not change during the the update (????), so no need for extending newbuf by one more block size */ /* Reallocate memory for a new metadata array, newbuf */ /* ------------------------------------------------------ */ newbuf = (char *) calloc(HE5_DYNAMIC_BLKSIZE * (nmeta), sizeof(char)); if(newbuf==NULL) { sprintf(errbuf, "Cannot allocate memory for a new metadata string.\n"); H5Epush(__FILE__,"HE5_EHupdatemeta_Dynamic", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); return(status); } /* Copy new metadata string to newbuf array */ /* ---------------------------------------- */ strncpy(newbuf, prevmetaptr, strlen(prevmetaptr)); newbuf[strlen(prevmetaptr)] = '\0'; meta_dim_name = strstr(newbuf, metastr); utl_dim_name = strstr(utlstr, metastr); ii = strlen(newbuf) - strlen(meta_dim_name); jj = strlen(utlstr) - strlen(utl_dim_name); for(i = 1; i < jj+1; i++) { i1 = ii+i; j1 = jj+i; newbuf[i1] = utlstr[j1]; } tempdim = (hsize_t)strlen( newbuf ); tempdim++; /* *-----------------------------------------------------------------* * Write updated metadata back to dataset "StructMetadata.X" * *-----------------------------------------------------------------* */ for (ism = 0; ism < nmeta; ism++) { status = H5Dwrite(meta_id[ism], atype[ism], H5S_ALL, H5S_ALL, H5P_DEFAULT, newbuf + ism * HE5_DYNAMIC_BLKSIZE); if( status == FAIL) { sprintf(errbuf,"Cannot write in structural metadata.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(type); free(metabuf); free(utlstr); free(utlstr2); free(newbuf); return(status); } } free(metabuf); free(newbuf); free(utlstr); free(utlstr2); free(type); metabuf = NULL; newbuf = NULL; utlstr2 = NULL; utlstr = NULL; type = NULL; for (ism = 0; ism < nmeta; ism++) { status = H5Sclose(aspace[ism]); if( status == FAIL) { sprintf(errbuf,"Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Tclose(atype[ism]); if( status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } status = H5Dclose(meta_id[ism]); if( status == FAIL) { sprintf(errbuf,"Cannot release the dataset ID.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } status = H5Gclose(gid); if( status == FAIL) { sprintf(errbuf,"Cannot release the group ID.\n"); H5Epush(__FILE__, "HE5_EHupdatemeta_Dynamic", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } free(errbuf); errbuf = NULL; COMPLETION: return status; } /* ****************************************************************************** | | | F O R T R A N 7 7 W R A P P E R S | | | ****************************************************************************** */ /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHidinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Gets HDF ID and group ID from HDF-EOS ID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | FileID int HDF-EOS file ID | | | | OUTPUTS: | | fileID int HDF File ID | | gid int group ID | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 01 A. Muslimov Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_EHidinfoF(int FileID, int *fileID, int *gid) { int ret = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* Input hdf5 type file ID */ hid_t HDFfid = FAIL;/* Output hdf5 file ID */ hid_t Gid = FAIL;/* HDF-EOS group ID */ herr_t status = FAIL; /* Return status */ char *errbuf; /* Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *) calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHidinfoF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } fid = (hid_t)FileID; /* Call HE5_EHidinfo to get HDF-EOS interface IDs */ /* ---------------------------------------------- */ status = HE5_EHidinfo(fid,&HDFfid,&Gid); if(status == FAIL) { sprintf(errbuf, "Error calling \"HE5_EHidinfo\" from FORTAN wrapper.\n"); H5Epush(__FILE__, "HE5_EHidinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } *fileID = (int)HDFfid; *gid = (int)Gid; free(errbuf); ret=(int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHconvAngF (FORTRAN wrapper) | | | | DESCRIPTION: Angle conversion Utility | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | outAngle double Output Angle value | | | | INPUTS: | | inAngle double Input Angle value | | code int Conversion code | | HDFE_RAD_DEG (0) | | HDFE_DEG_RAD (1) | | HDFE_DMS_DEG (2) | | HDFE_DEG_DMS (3) | | HDFE_RAD_DMS (4) | | HDFE_DMS_RAD (5) | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 01 A.Muslimov Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ double HE5_EHconvAngF(double inAngle, int code) { double outAngle = 0.; /* Angle in desired units */ char *errbuf = (char *)NULL;/* error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHconvAngF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer. \n"); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); } /* Call HE5_EHconvAngF */ /* ------------------- */ outAngle = HE5_EHconvAng(inAngle,code); if(errbuf != NULL) free(errbuf); return(outAngle); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHwrglatt | | | | DESCRIPTION: FORTRAN wrapper to (Over)Write global attribute in a file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | FileID int file ID | | attrname char* Global attribute name | | numtype int HDFEOS datatype Flag | | fortcount[] long Number of global attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | It is assumed that fortcout has just one element to agree | | with EHattr() call. | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 01 A.Muslimov Original Programmer | | Nov 02 S.Zhao Updated for writing character string attributes. | | Mar 04 S.Zhao Modified for a character string attribute. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_EHwrglatt(int FileID, char *attrname, int numtype, long fortcount[], void *datbuf) { int ret = FAIL; /* (int) Return status variable */ int rank = 1; /* Rank variable */ int i; /* Loop index */ herr_t status = FAIL; /* routine return status variable */ hid_t fileID = FAIL; /* HDF5 type File ID */ hid_t numbertype = FAIL; /* HDF5 data type ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHwrglatt", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Get HDF5 data type ID */ /* --------------------- */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID.\n"); H5Epush(__FILE__, "HE5_EHwrglatt", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } count = (hsize_t *)calloc(rank, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_EHwrglatt", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) count[i] = (hsize_t)fortcount[rank - 1 - i]; fileID = (hid_t)FileID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of global attribute elements.\n"); H5Epush(__FILE__, "HE5_EHwrglatt", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_EHwrglatt", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; status = HE5_EHwriteglbattr(fileID, attrname, numbertype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write data to the global attribute.\n"); H5Epush(__FILE__, "HE5_EHwrglatt", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { status = HE5_EHwriteglbattr(fileID, attrname, numbertype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write data to the global attribute.\n"); H5Epush(__FILE__, "HE5_EHwrglatt", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHrdglatt (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute from the "FILE_ATTRIBUTES" group in a file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | FileID int file ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 01 A.Muslimov Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_EHrdglatt(int FileID, char *attrname, void *datbuf) { int ret = FAIL; /* (int) return status */ herr_t status = FAIL; /* return status variable */ hid_t fileID = FAIL; /* HDF5 type File ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ fileID = (hid_t)FileID; status = HE5_EHreadglbattr(fileID,attrname,datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" from the \"FILE_ATTRIBUTES\" group.\n", attrname); H5Epush(__FILE__, "HE5_EHrdglatt", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHglattinf | | | | DESCRIPTION: FORTRAN wrapper for HE5_EHglbattrinfo() | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | FileID int File ID | | attrname char* Attribute name | | | | OUTPUTS: | | numbertype int Attribute HDFEOS data type Flag | | fortcount long Number of attribute elements | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 01 A.Muslimov Original development. | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_EHglattinf(int FileID, char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) Return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type ID */ hid_t fileID = FAIL; /* HDF5 type File ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHglattinf", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_EHglattinf", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if( ntype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_EHglattinf", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } fileID = (hid_t)FileID; status = HE5_EHglbattrinfo(fileID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about global attribute from \"FILE_ATTRIBUTES\" group.\n"); H5Epush(__FILE__, "HE5_EHglattinf", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(ntype); return(FAIL); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHinqglatts (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list from "FILE_ATTRIBUTES" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long No. of attributes in "FILE_ATTRIBUTES" | | group. | | | | INPUTS: | | FileID int file ID | | | | OUTPUTS: | | attrnames char Attribute names in "FILE_ATTRIBUTES" | | group (Comma-separated list) | | strbufsize long Attributes name list string length | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | May 01 A.Muslimov Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_EHinqglatts(int FileID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ hid_t fileID = FAIL; /* HDF5 type file ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ fileID = (hid_t)FileID; nattr = HE5_EHinqglbattrs(fileID, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_EHinqglatts", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHinqglbtype | | | | DESCRIPTION: FORTRAN wrapper for HE5_EHinqglbdatatype() | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | FileID int File ID | | attrname char* Attribute name | | | | OUTPUTS: | | Type int | | Class int | | Order int | | size long | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 03 S.Zhao Original development. | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_EHinqglbtype(int FileID, char *attrname, int *Type, int *Class, int *Order, long *size) { int ret = FAIL; /* (int) status variable */ herr_t status = FAIL; /* return status variable */ size_t *tsize = (size_t *)NULL; /* data size variable */ hid_t *typeID = (hid_t *)NULL; /* HDF5 Data type ID */ hid_t fileID = FAIL; /* HDF5 type File ID */ H5T_class_t *classID = (H5T_class_t *)NULL;/* Data type class ID */ H5T_order_t *order = (H5T_order_t *)NULL;/* Byte order of datatype */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHinqglbtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } typeID = (hid_t *)calloc(1, sizeof(hid_t)); if(typeID == NULL) { sprintf(errbuf,"Cannot allocate memory for typeID.\n"); H5Epush(__FILE__,"HE5_EHinqglbtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } tsize = (size_t *)calloc(1, sizeof(size_t)); if(tsize == NULL) { sprintf(errbuf,"Cannot allocate memory for tsize.\n"); H5Epush(__FILE__, "HE5_EHinqglbtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); return(FAIL); } classID = (H5T_class_t *)calloc(1, sizeof(H5T_class_t)); if(classID == (H5T_class_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for classID.\n"); H5Epush(__FILE__, "HE5_EHinqglbtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); return(FAIL); } order = (H5T_order_t *)calloc(1, sizeof(H5T_order_t)); if(order == (H5T_order_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for order.\n"); H5Epush(__FILE__, "HE5_EHinqglbtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); free(classID); return(FAIL); } fileID = (hid_t)FileID; /* Get data type information */ /* ------------------------- */ status = HE5_EHinqglbdatatype(fileID, attrname, typeID, classID, order, tsize); if(status == FAIL) { sprintf(errbuf,"Cannot get information about data type.\n"); H5Epush(__FILE__, "HE5_EHinqglbtype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); free(classID); free(order); return(FAIL); } *Type = (int)(*typeID); *Class = (int)(*classID); *Order = (int)(*order); *size = (long)(*tsize); free(errbuf); free(typeID); free(classID); free(order); free(tsize); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_EHrdwrfileF (FORTRAN wrapper) | | | | DESCRIPTION: Opens and reads or writes an external binary file which is in | | non-Fortran format. This is needed for HDF-EOS5 routines | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | extfilename char External file name | | Flags uintn Access Code | | ntype int HDF numbertype of field datatype | | nelmnts long Number of datatype elements in data | | buffer. | | data char* Data buffer | | | | | | | | | | OUTPUTS: | | | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 01 C.Praderas Original development. | | Dec 05 T.Roegner NCR 44092 - Added CYGWIN capability | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_EHrdwrfileF(char *extfilename, uintn Flags, int ntype, long nelmnts, void *data) { herr_t status = SUCCEED;/* routine return status variable */ int ret = SUCCEED;/* (int) return status variable */ long datatype_size = 0; /* Size of datatype */ long numread = 0; long numwrite = 0; char *access_code = (char *)NULL; char *errbuf = (char *)NULL;/*Error message buffer */ FILE *fptr; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_EHrdwrfileF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for access code */ /* ------------------------------- */ access_code = (char * )calloc( 3, sizeof(char)); if(access_code == NULL) { H5Epush(__FILE__, "HE5_EHrdwrfileF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for access_code buffer."); HE5_EHprint("Error: Cannot allocate memory for access_code buffer, occured", __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Determine access_code */ /* --------------------- */ switch (Flags) { case 0: { strcpy(access_code, "r+"); access_code[2] = 0; } break; case 1: { strcpy(access_code, "r"); access_code[1] = 0; } break; case 2: { strcpy(access_code, "w"); access_code[1] = 0; } break; default: break; } /* Open external file */ /* ------------------ */ fptr = fopen( extfilename, access_code ); if(fptr == NULL) { sprintf(errbuf, "Cannot open external file:\"%s\".\n",extfilename) ; H5Epush(__FILE__, "HE5_EHrdwrfileF", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(access_code); return(FAIL); } /* Determine datatype size */ /* ----------------------- */ switch( ntype ) { case 0: { datatype_size = sizeof(int); } break; case 1: { datatype_size = sizeof(float); } break; case 2: { datatype_size = sizeof(double); } break; case 3: { datatype_size = 1; } break; case 4: { datatype_size = 2; } break; case 5: { datatype_size = sizeof(char); } break; case 6: { datatype_size = sizeof(long); } break; default: break; } /* Read or write data to external file */ /* ----------------------------------- */ if( Flags == 0 || Flags == 2 ) { numwrite= fwrite( data, datatype_size, nelmnts, fptr ); if(numwrite <= 0) { sprintf(errbuf, "Cannot write to file:\"%s\".\n",extfilename) ; H5Epush(__FILE__, "HE5_EHrdwrfileF", __LINE__, H5E_FILE, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(access_code); return(FAIL); } } if( Flags == 1 ) { numread = fread( data, datatype_size, nelmnts, fptr ); if(numread <= 0) { sprintf(errbuf, "Cannot read from file:\"%s\".\n",extfilename) ; H5Epush(__FILE__, "HE5_EHrdwrfileF", __LINE__, H5E_FILE, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(access_code); return(FAIL); } } /* Close external file */ /* ------------------- */ fclose(fptr); free(errbuf); free(access_code); ret = (int)status; return(ret); } herr_t HE5_EHgetnmeta(hid_t gid, long *nmeta) { char metutlstr[32]; hid_t status = -1; *nmeta = 0; while (1) { /* Search for "StructMetadata.x" attribute */ /* --------------------------------------- */ sprintf(metutlstr, "%s%ld", "StructMetadata.", *nmeta); H5Eset_auto(NULL,NULL); status = H5Dopen(gid, metutlstr); /* If found then increment metadata section counter else exit loop */ /* --------------------------------------------------------------- */ if (status != -1) { *nmeta = *nmeta + 1; H5Dclose(status); status = 0; } else { status = 0; break; } } if(*nmeta < 1) { return(FAIL); } return(status); } hsize_t HE5_EHset_error_on(int flag, int err_level) { H5Eclear(); if (flag == 0 || flag == 1 || flag == 2) { error_flg = flag; } else { error_flg = 0; } return(error_flg); } long HE5_EHset_error_onF(int flag, int err_level) { hsize_t status; status = HE5_EHset_error_on(flag, err_level); return((long)status); } herr_t HE5_EHprint(char *errbuf, const char *file, unsigned line) { if (error_flg == 0) { H5Eprint(stderr); } else if(error_flg == 1) { fprintf(stderr, "%s in %s on line %d \n", errbuf, file, line); } H5Eclear(); return(SUCCEED); } #ifdef H5_HAVE_FILTER_SZIP /*----------------------------------------------------------------------------- | Function: HE5_szip_can_encode | | | | Purpose: Retrieve the filter config flags for szip, tell if | | encoder is available. | | | | Return: 1: decode+encode is enabled | | 0: only decode is enabled | | -1: other | | | | Programmer: | | | | Modifications: | | | -----------------------------------------------------------------------------*/ int HE5_szip_can_encode(void ) { herr_t status; unsigned int filter_config_flags; status =H5Zget_filter_info(H5Z_FILTER_SZIP, &filter_config_flags); if ((filter_config_flags & (H5Z_FILTER_CONFIG_ENCODE_ENABLED|H5Z_FILTER_CONFIG_DECODE_ENABLED)) == 0) { /* filter present but neither encode nor decode is supported (???) */ return -1; } else if ((filter_config_flags & (H5Z_FILTER_CONFIG_ENCODE_ENABLED|H5Z_FILTER_CONFIG_DECODE_ENABLED)) == H5Z_FILTER_CONFIG_DECODE_ENABLED) { /* decoder only: read but not write */ return 0; } else if ((filter_config_flags & (H5Z_FILTER_CONFIG_ENCODE_ENABLED|H5Z_FILTER_CONFIG_DECODE_ENABLED)) == H5Z_FILTER_CONFIG_ENCODE_ENABLED) { /* encoder only: write but not read (???) */ return -1; } else if ((filter_config_flags & (H5Z_FILTER_CONFIG_ENCODE_ENABLED|H5Z_FILTER_CONFIG_DECODE_ENABLED)) == (H5Z_FILTER_CONFIG_ENCODE_ENABLED|H5Z_FILTER_CONFIG_DECODE_ENABLED)) { return 1; } return(-1); } #endif /* H5_HAVE_FILTER_SZIP */ #ifndef __cplusplus /* HDF types used in FORTRAN bindings */ #if defined(DEC_ALPHA) || defined(IRIX) || defined(UNICOS) || defined(LINUX64) || defined(IA64) || defined(MACINTOSH) || defined(MACINTEL) || defined(IBM6000) || defined(CYGWIN) #define INT32 INT #define INT32V INTV #define PINT32 PINT #else #define INT32 LONG #define INT32V LONGV #define PINT32 PLONG #endif /* FORTRAN Macros */ FCALLSCFUN3(INT, HE5_EHidinfoF, HE5_EHIDINFO, he5_ehidinfo, INT, PINT, PINT) FCALLSCFUN2(DOUBLE, HE5_EHconvAngF, HE5_EHCONVANG, he5_ehconvang, DOUBLE, INT) FCALLSCFUN5(INT, HE5_EHwrglatt, HE5_EHWRGLATT, he5_ehwrglatt, INT, STRING, INT, LONGV,PVOID) FCALLSCFUN3(INT, HE5_EHrdglatt, HE5_EHRDGLATT, he5_ehrdglatt,INT,STRING,PVOID) FCALLSCFUN4(INT, HE5_EHglattinf, HE5_EHGLATTINF, he5_ehglattinf, INT, STRING, PINT, PLONG) FCALLSCFUN3(LONG, HE5_EHinqglatts, HE5_EHINQGLATTS, he5_ehinqglatts,INT,PSTRING,PLONG) FCALLSCFUN5(INT, HE5_EHrdwrfileF, HE5_EHRDWRFILE, he5_ehrdwrfile, STRING, INT, INT, LONG, PVOID) FCALLSCFUN6(INT, HE5_EHinqglbtype, HE5_EHINQGLBTYPE, he5_ehinqglbtype, INT, STRING, PINT, PINT, PINT, PLONG) FCALLSCFUN2(LONG, HE5_EHset_error_onF, HE5_EHSET_ERROR_ONF, he5_ehset_error_onf, INT, INT) FCALLSCFUN2(INT, HE5_EHgetversion, HE5_EHGETVERSION, he5_ehgetver, INT, PSTRING) #ifdef H5_HAVE_FILTER_SZIP FCALLSCFUN0(INT, HE5_szip_can_encode, HE5_SZIP_CAN_ENCODE, he5_szip_can_encode) #endif #endif hdf-eos5-5.1.14+dfsg.1/src/Makefile_alt0000755000175000017500000000323712024715435020526 0ustar amckinstryamckinstry# # # Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its documentation # for any purpose without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both that copyright notice and # this permission notice appear in supporting documentation. # # Makefile # # Makefile for field build of HDFEOS5 # # The following environment variables must be defined: # # Flags: # AR # CC # F77 # MACHINE # NSL_FLAG (Set to -lnsl on Sun, blank on all others) # RANLIB # # Directories: # HDFEOS5_BIN # HDFEOS5_INC # HDFEOS5_LIB # HDFEOS5_OBJ # HDFEOS5_SRC SHELL=/bin/sh INCLUDE = -I. -I$(HDFEOS5_INC) -I$(HDF5INC) LIBRARY = -L. -L$(HDFEOS5_LIB) -L$(HDF5LIB) GCTP = -lGctp LDFLAGS = -lhe5_hdfeos $(GCTP) -lhdf5 $(NSL_FLAG) -lz -lm RM = rm -f .SUFFIXES : .SUFFIXES : .o .c .f .c.o: $(CC) $(INCLUDE) -c $< .f.o: $(F77) -c $< all: libhe5_hdfeos.a hdfeos5: libhe5_hdfeos.a libhe5_hdfeos.a : EHapi.o TSapi.o PTapi.o SWapi.o GDapi.o ZAapi.o @if [ -f $(HDFEOS5_LIB)/$@ ] ; then \ echo "Removing old library." ; \ $(RM) $(HDFEOS5_LIB)/$@ ; \ fi $(AR) $(HDFEOS5_LIB)/$@ $? $(RANLIB) $(HDFEOS5_LIB)/$@ EHapi.o : EHapi.c $(CC) $(INCLUDE) -c EHapi.c -o $@ TSapi.o : TSapi.c $(CC) $(INCLUDE) -c TSapi.c -o $@ PTapi.o : PTapi.c $(CC) $(INCLUDE) -c PTapi.c -o $@ SWapi.o : SWapi.c $(CC) $(INCLUDE) -c SWapi.c -o $@ GDapi.o : GDapi.c $(CC) $(INCLUDE) -c GDapi.c -o $@ ZAapi.o : ZAapi.c $(CC) $(INCLUDE) -c ZAapi.c -o $@ install: echo "No files to move" clean: $(RM) *.o $(HDFEOS5_OBJ)/*.o hdf-eos5-5.1.14+dfsg.1/src/make_IT/0000755000175000017500000000000012024715435017527 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/src/make_IT/makeSGI4.0r10000755000175000017500000000132212024715435021420 0ustar amckinstryamckinstry # Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its documentation # for any purpose without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both that copyright notice and # this permission notice appear in supporting documentation. CC = cc -DSGI F77 = f77 MACHINE = SGI INCLUDE = -I/home/hdf/sgi/40r1p1/include -I/home/hdf/gctpc/source -I. LIBRARY = -L/home/hdf/sgi/40r1p1/lib -L. GCTP = /home/rgejjaga/gctpc/source/geolibSGI.a LDFLAGS = -lhdfeos ${GCTP} -lmfhdf -ldf -ljpeg -lz -lm #INCLUDE = -I #LIBRARY = -L include makeinc hdf-eos5-5.1.14+dfsg.1/src/make_IT/makeinc0000755000175000017500000000642212024715435021070 0ustar amckinstryamckinstry # Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its documentation # for any purpose without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both that copyright notice and # this permission notice appear in supporting documentation. EXECBLD = ${CC} $@.o -o $@ ${LIBRARY} ${LDFLAGS} EXECBLDF77 = ${F77} $@.o -o $@ ${LIBRARY} ${LDFLAGS} AR = ar r .SUFFIXES : .SUFFIXES : .o .c .f .c.o: ${CC} ${INCLUDE} -c $< .f.o: ${F77} -c $< hdfeos: swathlib gridlib pointlib swathflib gridflib pointflib swathlib: SetupSwath DefineFields WriteFields ReadFields AppendField \ InquireSwath SubsetSwath SetupSwath: $$@.o he5_linhdfeos.a ${EXECBLD} DefineFields: $$@.o he5_linhdfeos.a ${EXECBLD} WriteFields: $$@.o he5_linhdfeos.a ${EXECBLD} ReadFields: $$@.o he5_linhdfeos.a ${EXECBLD} AppendField: $$@.o he5_linhdfeos.a ${EXECBLD} InquireSwath: $$@.o he5_linhdfeos.a ${EXECBLD} SubsetSwath: $$@.o he5_linhdfeos.a ${EXECBLD} swathflib: setupswath definefields writefields readfields appendfield \ inquireswath subsetswath setupswath: $$@.o he5_linhdfeos.a ${EXECBLDF77} definefields: $$@.o he5_linhdfeos.a ${EXECBLDF77} writefields: $$@.o he5_linhdfeos.a ${EXECBLDF77} readfields: $$@.o he5_linhdfeos.a ${EXECBLDF77} appendfield: $$@.o he5_linhdfeos.a ${EXECBLDF77} inquireswath: $$@.o he5_linhdfeos.a ${EXECBLDF77} subsetswath: $$@.o he5_linhdfeos.a ${EXECBLDF77} gridlib: SetupGrid DefineGDflds WriteGDflds ReadGDflds InquireGrid \ SubsetGrid SetupGrid: $$@.o he5_linhdfeos.a ${EXECBLD} DefineGDflds: $$@.o he5_linhdfeos.a ${EXECBLD} WriteGDflds: $$@.o he5_linhdfeos.a ${EXECBLD} ReadGDflds: $$@.o he5_linhdfeos.a ${EXECBLD} InquireGrid: $$@.o he5_linhdfeos.a ${EXECBLD} SubsetGrid: $$@.o he5_linhdfeos.a ${EXECBLD} gridflib: setupgrid definegdflds writegdflds readgdflds inquiregrid \ subsetgrid setupgrid: $$@.o he5_linhdfeos.a ${EXECBLDF77} definegdflds: $$@.o he5_linhdfeos.a ${EXECBLDF77} writegdflds: $$@.o he5_linhdfeos.a ${EXECBLDF77} readgdflds: $$@.o he5_linhdfeos.a ${EXECBLDF77} inquiregrid: $$@.o he5_linhdfeos.a ${EXECBLDF77} subsetgrid: $$@.o he5_linhdfeos.a ${EXECBLDF77} pointlib: SetupPoint DefineLevels WriteLevels UpdateLevels ReadLevels \ SubsetPoint SetupPoint: $$@.o he5_linhdfeos.a ${EXECBLD} DefineLevels: $$@.o he5_linhdfeos.a ${EXECBLD} WriteLevels: $$@.o he5_linhdfeos.a ${EXECBLD} UpdateLevels: $$@.o he5_linhdfeos.a ${EXECBLD} ReadLevels: $$@.o he5_linhdfeos.a ${EXECBLD} SubsetPoint: $$@.o he5_linhdfeos.a ${EXECBLD} pointflib: setuppoint definelevels writelevels readlevels updatelevels \ subsetpoint setuppoint: $$@.o he5_linhdfeos.a ${EXECBLDF77} definelevels: $$@.o he5_linhdfeos.a ${EXECBLDF77} writelevels: $$@.o he5_linhdfeos.a ${EXECBLDF77} readlevels: $$@.o he5_linhdfeos.a ${EXECBLDF77} updatelevels: $$@.o he5_linhdfeos.a ${EXECBLDF77} subsetpoint: $$@.o he5_linhdfeos.a ${EXECBLDF77} EHapi.o : EHapi.c ${CC} ${INCLUDE} -c EHapi.c -o EHapi.o SWapi.o : SWapi.c ${CC} ${INCLUDE} -c SWapi.c -o SWapi.o GDapi.o : GDapi.c ${CC} ${INCLUDE} -c GDapi.c -o GDapi.o PTapi.o : PTapi.c ${CC} ${INCLUDE} -c PTapi.c -o PTapi.o he5_linhdfeos.a : EHapi.o SWapi.o GDapi.o PTapi.o ${AR} $@ $? hdf-eos5-5.1.14+dfsg.1/src/make_IT/makeSUN4.0r10000755000175000017500000000135412024715435021450 0ustar amckinstryamckinstry # Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its documentation # for any purpose without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both that copyright notice and # this permission notice appear in supporting documentation. #CC = cc -DSUN CC = gcc -DSUN -g F77 = f77 MACHINE = SUN INCLUDE = -I. -I/home/hdf/sun/40r1p1/include -I/home/hdf/gctpc/source LIBRARY = -L. -L/home/hdf/sun/40r1p1/lib GCTP = /home/rgejjaga/gctpc/source/geolibSUN.a LDFLAGS = -lhdfeos ${GCTP} -lmfhdf -ldf -ljpeg -lnsl -lz -lm #INCLUDE = -I #LIBRARY = -L include makeinc hdf-eos5-5.1.14+dfsg.1/src/make_IT/makeHP4.0r10000755000175000017500000000132112024715435021304 0ustar amckinstryamckinstry # Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its documentation # for any purpose without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both that copyright notice and # this permission notice appear in supporting documentation. CC = c89 -DHP F77 = fort77 MACHINE = HP INCLUDE = -I. -I/home/hdf/hp/40r1p1/include -I/home/hdf/gctpc/source LIBRARY = -L. -L/home/hdf/hp/40r1p1/lib GCTP = /home/rgejjaga/gctpc/source/geolibHP.a LDFLAGS = -lhdfeos ${GCTP} -lmfhdf -ldf -ljpeg -lz -lm #INCLUDE = -I #LIBRARY = -L include makeinc hdf-eos5-5.1.14+dfsg.1/src/make_IT/makeIBM4.0r10000755000175000017500000000133012024715435021404 0ustar amckinstryamckinstry # Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its documentation # for any purpose without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both that copyright notice and # this permission notice appear in supporting documentation. CC = cc -DIBM F77 = xlf MACHINE = IBM INCLUDE = -I/home/hdf/ibm/40r1p1/include -I/home/hdf/gctpc/source -I. LIBRARY = -L. -L/home/hdf/ibm/40r1p1/lib GCTP = /home/rgejjaga/gctpc/source/geolib${MACHINE}.a LDFLAGS = -lhdfeos ${GCTP} -lmfhdf -ldf -ljpeg -lz -lm #INCLUDE = -I #LIBRARY = -L include makeinc hdf-eos5-5.1.14+dfsg.1/src/make_IT/makeDEC4.0r10000755000175000017500000000137712024715435021403 0ustar amckinstryamckinstry # Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its documentation # for any purpose without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both that copyright notice and # this permission notice appear in supporting documentation. CC = cc -DDEC F77 = f77 MACHINE = DEC INCLUDE = -I/home/hdf/dec/40r1p1/include -I/home/hdf/gctpc/source -I. LIBRARY = -L/home/hdf/dec/40r1p1/lib -L. #GCTP = /home/rgejjaga/gctpc/source/geolibDEC.a GCTP = /home/hdf/dec/gctpc/source/geolib.a LDFLAGS = -lhdfeos ${GCTP} -lmfhdf -ldf -ljpeg -lz -lm #INCLUDE = -I #LIBRARY = -L include makeinc hdf-eos5-5.1.14+dfsg.1/src/ZAapi.c0000755000175000017500000254175712024715435017416 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | | | | Permission to use, modify, and distribute this software and its | | documentation for any purpose without fee is hereby granted, provided | | that the above copyright notice appear in all copies and that both that | | copyright notice and this permission notice appear in supporting | | documentation. | ---------------------------------------------------------------------------- */ #include #define HE5_ZAIDOFFSET 671088642 #define HE5_NZA 200 /* ZA Structure External Arrays */ struct HE5_zaStructure { hid_t fid; /* HDF-EOS file ID */ hid_t obj_id; /* "ZAS" group ID */ hid_t za_id; /* specified za group ID */ hid_t data_id; /* "Data Fields" group ID */ hid_t plist; /* current dataset creation property*/ int active; /* Flag: file active or not */ int compcode; /* compression mode */ int compparm[5]; /* compression level */ HE5_DTSinfo *ddataset; /* pointer to Data field info */ long nDFLD; /* number of data fields */ char zaname[HE5_OBJNAMELENMAX];/* za name */ }; struct HE5_zaStructure HE5_ZAXZa[HE5_NZA]; /* INTERNAL FUNCTION PROTOTYPES */ int HE5_szip_can_encode(void ); static herr_t HE5_ZAchkzaid(hid_t zaID, const char *routname, hid_t *fid, hid_t *gid, long *idx); static long HE5_ZAinqfield(hid_t zaID, char *datafield, char *fieldlist, int rank[], hid_t ntype[]); static size_t HE5_ZAfieldsizeID(hid_t zaID, char *fieldname, hid_t *fieldID); static herr_t HE5_ZAdefinefield(hid_t zaID, char *datafield, const char *fieldname, char *dimlist, char *maxdimlist, hid_t typeID); static herr_t HE5_ZAwrrdfield(hid_t zaID, char *fieldname, char *code, const hssize_t start[], const hsize_t stride[], const hsize_t count[], void * datbuf); static herr_t HE5_ZAfldinfo(hid_t zaID, char *datafield, char *fieldname, int *rank, hsize_t dims[], hid_t ntype[], char *dimlist, char *maxdimlist); static int HE5_ZAfldnameinfo(hid_t zaID, char *fieldname, char *fldactualname); /* FORTRAN WRAPPER PROTOTYPES */ /* File/ZA access routines */ int HE5_ZAopenF(char *filename, int flags); int HE5_ZAcreateF(int fileID, char *zaname); int HE5_ZAattachF(int fileID, char *zaname); int HE5_ZAdetachF(int zaID); int HE5_ZAcloseF(int fileID); /* Definition routines */ int HE5_ZAdefdimF(int zaID, char *dimname, long dim); int HE5_ZAdefineF(int zaID, char *fieldname, char *fortdimlist, char *fortmaxdimlist, int numtype); int HE5_ZAdefchunkF(int zaID, int ndims, long *dim); int HE5_ZAdefcompF(int zaID, int compcode, int *compparm); int HE5_ZAdefcomchunkF(int zaID, int compcode, int *compparm, int rank, long *dim); int HE5_ZAfldrenameF(int zaID, char *oldfieldname, char *newfieldname); /* I/O routines */ int HE5_ZAwriteF(int zaID, char *fieldname, long fortstart[], long fortstride[], long fortedge[], void *data); int HE5_ZAwritecharF(int zaID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *data); int HE5_ZAreadF(int zaID, char *fieldname, long fortstart[], long fortstride[], long fortedge[], void *buffer); int HE5_ZAreadcharF(int zaID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *buffer); int HE5_ZAsetfill(int zaID, char *fieldname, int ntype, void *fillval); int HE5_ZAgetfill(int zaID, char *fieldname, void *fillval); int HE5_ZAwrattr(int zaID, char *attrname, int ntype, long fortcount[], void * datbuf); int HE5_ZAwrgattr(int zaID, char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_ZAwrlattr(int zaID, char *fieldname, char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_ZArdattr(int zaID, char *attrname, void *datbuf); int HE5_ZArdgattr(int zaID, char *attrname, void *datbuf); int HE5_ZArdlattr(int zaID, char *fieldname, char *attrname, void *datbuf); int HE5_ZAsetaliasF(int zaID, char *fieldname, char *fortaliaslist); int HE5_ZAdropaliasF(int zaID, int fldgroup, char *aliasname); /* Inquiry routines */ long HE5_ZAinqzaF(char *filename, char *zalist, long *strbufsize); long HE5_ZAnentriesF(int zaID, int entrycode, long *strbufsize); long HE5_ZAdiminfoF(int zaID, char *dimname); int HE5_ZAinfoF(int zaID, char *fieldname, int *rank, long dims[], int *ntype, char *fortdimlist, char *fortmaxdimlist); long HE5_ZAinqdimsF(int zaID, char *dimlist, long dims[]); long HE5_ZAinquireF(int zaID, char *fieldlist, int rank[], int ntype[]); int HE5_ZAatinfo(int zaID, char *attrname, int *ntype, long *fortcount); int HE5_ZAgatinfo(int zaID, char *attrname, int *ntype, long *fortcount); int HE5_ZAlatinfo(int zaID, char *fieldname, char *attrname, int *ntype, long *fortcount); long HE5_ZAinqattrsF(int zaID, char *attrnames, long *strbufsize); long HE5_ZAinqgattrs(int zaID, char *attrnames, long *strbufsize); long HE5_ZAinqlattrs(int zaID, char *fieldname, char *attrnames, long *strbufsize); int HE5_ZAcompinfoF(int zaID, char *fieldname, int *compcode, int compparm[]); int HE5_ZAidtype(int zaID, char *fieldname, char *attrname, int fieldgroup, int *Type, int *Class, int *Order, long *size); int HE5_ZAaliasinfoF(int zaID, int fldgroup, char *aliasname, int *length, char *buffer); long HE5_ZAinqfldaliasF(int zaID, char *fldalias, long *strbufsize); int HE5_ZAchunkinfoF(int zaID, char *fieldname, int *ndims, long dims[]); long HE5_ZAgetaliaslistF(int zaID, int fldgroup, char *aliaslist, long *strbufsize); /* EXTERNAL DATA FILE INTERFACE */ int HE5_ZAsetextdataF(int zaID, char *fortfilelist, long offset[], long size[]); int HE5_ZAgetextdataF(int zaID, char *fieldname, long namelength, char *fortfilelist, long offset[], long size[]); /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAopen | | | | DESCRIPTION: Opens or creates HDF-EOS file in order to create, read, | | or write a ZA. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | fid hid_t None HDF-EOS file ID | | | | INPUTS: | | filename char* None File name string | | flags uintn None File access code | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_ZAopen(const char *filename, uintn flags) { hid_t fid = FAIL;/* hdf5 type file ID */ char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAopen", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Call HE5_EHopen to open file */ /* ---------------------------- */ fid = HE5_EHopen(filename,flags, H5P_DEFAULT ); if(fid == FAIL) { sprintf(errbuf, "Cannot open the file \"%s\". Check the file name. \n", filename); H5Epush(__FILE__, "HE5_ZAopen", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); return (fid); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAcreate | | | | DESCRIPTION: Creates a new ZA structure and returns ZA ID | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | zaID hid_t None ZA structure ID | | | | INPUTS: | | fid hid_t None HDF-EOS file ID | | zaname const char* None za name string | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_ZAcreate(hid_t fid, const char *zaname) { hid_t zaID = FAIL; /* return value of ZA ID */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t za_id = FAIL; /* HDF-EOS ZA ID */ hid_t data_id = FAIL; /* "Data Fields" group ID */ hid_t ZAS_ID = FAIL; /* "ZAS" group ID */ hid_t i; /* Loop index */ int nzaopen = 0; /* # of za structures open */ herr_t status = FAIL; /* routine return status variable */ uintn access = 0; /* Read/Write file access code */ long nza = FAIL; /* za counter */ char *errbuf =(char *)NULL; /* Buffer for error message */ char *utlbuf =(char *)NULL; /* Utility buffer */ char *utlbuf2=(char *)NULL; /* Utility buffer 2 */ HE5_LOCK; CHECKNAME(zaname); /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char *)calloc( HE5_HDFE_DIMBUFSIZE, sizeof(char ) ) ; if ( errbuf == NULL ) { H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* * Check HDF-EOS file ID, get HDFEOS group ID and * access code */ status = HE5_EHchkfid(fid, "HE5_ZAcreate", &HDFfid, &gid, &access); /* Check file access */ /* -------------------------- */ if ( access == 0 ) { status = FAIL; sprintf(errbuf, "Cannot call HE5_ZAcreate on a file opened read-only.\n"); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if ( status == FAIL ) { sprintf(errbuf, "Checking for file ID failed.\n"); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Check zaname for length */ /* ----------------------- */ if ( strlen(zaname) > HE5_OBJNAMELENMAX) { sprintf(errbuf, "za name \"%s\" must be less than %d characters.\n", zaname, HE5_OBJNAMELENMAX); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Determine number of zas currently opened */ /* ---------------------------------------- */ for (i = 0; i < HE5_NZA; i++) nzaopen += HE5_ZAXZa[i].active; if(nzaopen < HE5_NZA) { /* Probe , check if "ZAS" group exists */ /* ----------------------------------- */ H5E_BEGIN_TRY { ZAS_ID = H5Gopen(gid, "ZAS"); } H5E_END_TRY; if(ZAS_ID == FAIL ) { nza = 0; /* Create the "ZAS" group */ /* ---------------------- */ ZAS_ID = H5Gcreate(gid,"ZAS",0); if(ZAS_ID == FAIL) { sprintf(errbuf,"Cannot create the \"ZAS\" group.\n"); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } else { /* Probe , check if zaname group exist */ /* ----------------------------------- */ H5E_BEGIN_TRY{ za_id = H5Gopen(ZAS_ID, zaname); } H5E_END_TRY; if( za_id == FAIL ) { /* Get the number of zas in "ZAS" group */ /* ------------------------------------ */ nza = HE5_EHdatasetcat(fid, "/HDFEOS/ZAS", NULL, NULL); if (nza == FAIL) { sprintf(errbuf,"Cannot retrieve the number of zas.\n"); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(ZAS_ID); free(errbuf); return(FAIL); } } else { sprintf(errbuf, "za \"%s\" already exists.\n", zaname); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_OHDR, H5E_EXISTS, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(ZAS_ID); free(errbuf); return(FAIL); } } /* za does not exist */ /* ----------------- */ /* Create zaname group */ /* ------------------- */ za_id = H5Gcreate( ZAS_ID, zaname, 0); if(za_id == FAIL) { sprintf(errbuf,"Cannot create the \"%s\" group.\n", zaname); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(ZAS_ID); free(errbuf); return(FAIL); } /* Create /ZA/zaname/Data Fields group */ /* ----------------------------------- */ data_id = H5Gcreate( za_id, "Data Fields", 0); if(data_id == FAIL) { sprintf(errbuf,"Cannot create the \"Data Fields\" group.\n"); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(ZAS_ID); free(errbuf); return(FAIL); } /* Allocate memory for utility buffers */ /* ----------------------------------- */ utlbuf = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char ) ) ; if ( utlbuf == NULL ) { H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for utility buffer.\n"); HE5_EHprint("Error: Cannot allocate memory for utility buffer, occured", __FILE__, __LINE__); status = H5Gclose(ZAS_ID); free(errbuf); return(FAIL); } utlbuf2 = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char ) ) ; if ( utlbuf2 == NULL ) { H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE,"Cannot allocate memory for utility buffer2.\n"); HE5_EHprint("Error: Cannot allocate memory for utility buffer2, occured", __FILE__, __LINE__); status = H5Gclose(ZAS_ID); free(errbuf); free(utlbuf); return(FAIL); } /* Establish za in "Structural MetaData" Block */ /* ------------------------------------------- */ sprintf(utlbuf, "%s%li%s%s%s", "\tGROUP=ZA_", nza + 1, "\n\t\tZaName=\"", zaname, "\"\n"); strcat(utlbuf, "\t\tGROUP=Dimension\n"); strcat(utlbuf, "\t\tEND_GROUP=Dimension\n"); strcat(utlbuf, "\t\tGROUP=DimensionMap\n"); strcat(utlbuf, "\t\tEND_GROUP=DimensionMap\n"); strcat(utlbuf, "\t\tGROUP=IndexDimensionMap\n"); strcat(utlbuf, "\t\tEND_GROUP=IndexDimensionMap\n"); strcat(utlbuf, "\t\tGROUP=DataField\n"); strcat(utlbuf, "\t\tEND_GROUP=DataField\n"); sprintf(utlbuf2, "%s%li%s","\tEND_GROUP=ZA_", nza + 1, "\n"); strcat(utlbuf, utlbuf2); /* Insert metadata buffer to the "StructMetadata" */ /* ---------------------------------------------- */ status = HE5_EHinsertmeta(fid, (char*)zaname, "z", 1004L, utlbuf, NULL); if (status == FAIL ) { sprintf(errbuf,"Cannot insert metadata buffer to \"StructMetadata\".\n"); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(ZAS_ID); free(errbuf); free(utlbuf); free(utlbuf2); return(FAIL); } /* Release "ZAS" group ID */ /* ---------------------- */ status = H5Gclose(ZAS_ID); if(status == FAIL ) { sprintf(errbuf,"Cannot release the \"ZAS\" group ID.\n"); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(ZAS_ID); free(utlbuf); free(utlbuf2); free(errbuf); return(FAIL); } /* Assign zaID & Load za and ZAXZa table entries */ /* --------------------------------------------- */ for (i = 0; i < HE5_NZA; i++) { if (HE5_ZAXZa[i].active == 0) { /* * Set za_id, Set za entry active, Store root group * ID, Store sub group IDs, Store HDF-EOS file ID */ HE5_ZAXZa[i].active = 1; HE5_ZAXZa[i].za_id = za_id; HE5_ZAXZa[i].data_id = data_id; HE5_ZAXZa[i].fid = fid; HE5_ZAXZa[i].obj_id = ZAS_ID; HE5_ZAXZa[i].plist = FAIL; strcpy(HE5_ZAXZa[i].zaname, zaname); HE5_ZAXZa[i].compcode = HE5_HDFE_COMP_NONE; zaID = i + HE5_ZAIDOFFSET; break; } } } else { /* Too many files opened */ /* --------------------- */ zaID = FAIL; sprintf(errbuf,"\n Illegal attempt to open more than %d zas simultaneously.\n", HE5_NZA); H5Epush(__FILE__, "HE5_ZAcreate", __LINE__, H5E_OHDR, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Release allocated memory */ /* ------------------------ */ free(errbuf); free(utlbuf); free(utlbuf2); COMPLETION: HE5_UNLOCK; return (zaID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAattach | | | | DESCRIPTION: Attaches to an existing za within the file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | zaID hid_t ZA structure ID | | | | INPUTS: | | fid hid_t HDF-EOS file ID | | zaname const char* ZA structure name | | | | OUTPUTS: | | None | | | | NOTES: | | The iteration over the "Data Fields" group has the followings | | side effect: it counts as an object (which is supposed to be | | a dataset) the group "Ragged Arrays". So the external structure | | "ddataset" gets filled with a fake member and nDFLD gets | | incremented by one. This shouldn't affect the other interfacing | | routines unless someone tries to access the datasets in "Data | | Fields" group directly through their IDs retrieved from external| | "ddataset" structure, or use "nDFLD" data member of to retrieve | | the actual number of data sets (fields). To avoid potential | | problems, the dataset counter is decremented by one and the | | corresponding error checking are inserted to handle this case. | | | | | | Date Programmer Description | | ========= ============ ============================================== | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_ZAattach(hid_t fid, const char *zaname) { hid_t zaID = FAIL;/* ZA ID (return value) */ hid_t i; /* Loop index */ hid_t emptyslot = 0; /* Spare za index */ herr_t status = FAIL;/* Return status variable */ int nzaopen = 0; /* # of za structures open */ int idx = FAIL;/* return value from an operator */ uintn acs = 0; /* Read/Write file access code */ hid_t HDFfid = FAIL;/* HDF-EOS file ID */ hid_t datid = FAIL;/* Dataset ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t data_id = FAIL;/* "Data Fields" Group ID */ hid_t za_id = FAIL;/* za ID */ HE5_OBJINFO inout; /* IN/OUT operator data */ char *grpname =NULL;/* Ptr to a group name string */ char *tmpname =NULL;/* ..... temporary name ... */ char *namebuf =NULL;/* ..... temporary buffer name ... */ char *fldname =NULL;/* ..... temporary field name ... */ char *comma =NULL; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer*/ HE5_LOCK; CHECKPOINTER(zaname); /* Check HDF-EOS file ID, get back HDF file ID and access code */ /* ----------------------------------------------------------- */ status = HE5_EHchkfid(fid, "HE5_ZAattach", &HDFfid, &gid, &acs); if ( status == FAIL ) { H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_ARGS, H5E_BADRANGE, "Checking for file ID failed.\n"); HE5_EHprint("Error: Checking for file ID failed, occured", __FILE__, __LINE__); return(FAIL); } /* Determine number of zas currently opened */ /* ---------------------------------------- */ for (i = 0; i < HE5_NZA; i++) nzaopen += HE5_ZAXZa[i].active; /* Check there is a room for more */ /* ------------------------------ */ if (nzaopen < HE5_NZA) { /* Search for group "/ZAS/zaname" */ /* ============================== */ grpname = (char *) calloc( (strlen(zaname)+40), sizeof(char) ); if (grpname == NULL) { sprintf(errbuf, "Cannot allocate memory for grpname.\n") ; H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy( grpname, "/HDFEOS/ZAS/"); strcat( grpname, zaname); /* * If group with zaname found, open the group, load tables */ H5E_BEGIN_TRY{ za_id = H5Gopen(HDFfid, grpname); } H5E_END_TRY; if( za_id == FAIL ) { sprintf(errbuf, "za \"%s\" does not exist within HDF-EOS file.\n",zaname) ; H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Attach to "Data Fields" */ /* ======================= */ data_id = H5Gopen( za_id, "Data Fields"); if (data_id == FAIL) { sprintf(errbuf, "Cannot open the \"Data Fields\" group. \n") ; H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Setup External Arrays */ /* --------------------- */ for (i = 0; i < HE5_NZA; i++) { /* Find empty entry in array */ /* ------------------------- */ if (HE5_ZAXZa[i].active == 0) { /* Set IDs, codes., etc */ /* ==================== */ HE5_ZAXZa[i].active = 1; HE5_ZAXZa[i].data_id = data_id; HE5_ZAXZa[i].fid = fid; HE5_ZAXZa[i].za_id = za_id; HE5_ZAXZa[i].plist = FAIL; HE5_ZAXZa[i].compcode = HE5_HDFE_COMP_NONE; zaID = i + HE5_ZAIDOFFSET; strcpy(HE5_ZAXZa[i].zaname, zaname); break; } } emptyslot = i; /* Access za "Data Fields" datasets */ /* ----------------------------------- */ tmpname = (char *) calloc( (strlen(grpname)+ 20), sizeof(char)); if (tmpname == NULL) { sprintf(errbuf, "Cannot allocate memory for tmpname. \n") ; H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } strcpy(tmpname,grpname); strcat(tmpname,"/Data Fields"); /* Get the number of OBJECTS in "Data Fields" group */ /* ================================================ */ inout.count = 0; inout.name = NULL; inout.strsize = 0; idx = H5Giterate(data_id, tmpname , NULL, HE5_EHobj_info, &inout); if ( idx == FAIL ) { sprintf(errbuf, "Iteration of \"HE5_EHobj_info()\" operation failed. \n") ; H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(tmpname); return(FAIL); } free(tmpname); /* Set the data members of external structure */ /* ========================================== */ HE5_ZAXZa[emptyslot].nDFLD = inout.count; /*------------------------------------------------------*/ /* Loop through all data field datasets and open it */ /* Allocate space for namebuf, copy inout.name into it, */ /* and append comma */ /*------------------------------------------------------*/ if( inout.name != NULL && inout.count > 0 ) { /* Allocate memory to ddataset struct */ /* ---------------------------------- */ HE5_ZAXZa[emptyslot].ddataset = (HE5_DTSinfo *)realloc((void *)HE5_ZAXZa[emptyslot].ddataset,(HE5_ZAXZa[emptyslot].nDFLD) * sizeof(HE5_DTSinfo)); /* Allocate memory to the list of dataset names */ /* -------------------------------------------- */ namebuf = (char *) calloc(strlen(inout.name) + 2, sizeof(char)); if (namebuf == NULL) { sprintf(errbuf, "Cannot allocate memory for namebuf. \n") ; H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } strcpy(namebuf, inout.name); strcat(namebuf, ","); /* Find comma */ /* ---------- */ comma = strchr(namebuf, ','); i = 0; /* Parse the list of dataset names */ /* ------------------------------- */ while (comma != NULL) { /* Allocate memory for fldname buffer */ /* ---------------------------------- */ fldname = (char *) calloc(comma - namebuf + 1, sizeof(char)); if (fldname == NULL) { sprintf(errbuf, "Cannot allocate memory for fldname. \n") ; H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); return(FAIL); } /* Copy field list entry to fldname */ /* -------------------------------- */ memmove(fldname, namebuf, comma - namebuf); fldname[comma-namebuf]=0; /* open dataset fldname */ /* -------------------- */ H5E_BEGIN_TRY{ datid = H5Dopen(data_id, fldname); }H5E_END_TRY; if ( datid == FAIL ) { sprintf(errbuf, "Cannot open the dataset \"%s\". \n",fldname ); H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); free(fldname); return(FAIL); } /* allocate memory to the dataset name */ /* ----------------------------------- */ HE5_ZAXZa[emptyslot].ddataset[i].name = (char *)calloc((strlen(fldname)+1), sizeof(char)); if (HE5_ZAXZa[emptyslot].ddataset[i].name == NULL) { sprintf(errbuf, "Cannot allocate memory for the dataset name. \n") ; H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); free(fldname); return(FAIL); } /* Set the data members of external structure */ /* ========================================== */ HE5_ZAXZa[emptyslot].ddataset[i].ID = datid; strcpy(HE5_ZAXZa[emptyslot].ddataset[i].name, fldname); /* Go to next field entry, find next comma, ... */ /* ============================================ */ strcpy(namebuf, comma + 1); comma = strchr(namebuf, ','); if (fldname != NULL) free(fldname); i++; } if (namebuf != NULL) free(namebuf); if(inout.name != NULL ) free( inout.name); } /* end if(inout.name!=NULL) */ } else { /* Too many zas opened */ /* ------------------- */ zaID = FAIL; sprintf(errbuf,"\n Illegal attempt to open more than %d zas simultaneously. \n", HE5_NZA); H5Epush(__FILE__, "HE5_ZAattach", __LINE__, H5E_OHDR, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } COMPLETION: HE5_UNLOCK; free (grpname); return(zaID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAchkzaid | | | | DESCRIPTION: Checks for valid zaID and returns file ID and | | "HDFEOS" group ID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | routname const char* Routine name | | | | OUTPUTS: | | fid hid_t* HDF-EOS file ID | | gid hid_t* "HDFEOS" Group ID | | idx long* za index | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_ZAchkzaid(hid_t zaID, const char *routname, hid_t *fid, hid_t *gid, long *idx ) { herr_t status = FAIL;/* routine return status variable */ uintn access = 0; /* Read/Write access code */ hid_t HDFfid = FAIL;/* HDF-EOS file ID */ hid_t idOffset = HE5_ZAIDOFFSET; char message1[] = "Invalid za id: %d in routine \"%s\". ID must be >= %d and < %d.\n"; char message2[] = "za id %d in routine \"%s\" not active.\n"; char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Check for valid za ID */ /* --------------------- */ if (zaID < idOffset || zaID >= HE5_NZA + idOffset) { status = FAIL; sprintf(errbuf, message1, zaID, routname, idOffset, HE5_NZA + idOffset); H5Epush(__FILE__, "HE5_ZAchkzaid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* Check for active za ID */ /* ---------------------- */ if (HE5_ZAXZa[zaID % idOffset].active == 0) { status = FAIL; sprintf(errbuf, message2, zaID, routname); H5Epush(__FILE__, "HE5_ZAchkzaid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { *idx = HE5_EHhid2long(zaID % idOffset); if (*idx == FAIL) { status = FAIL; sprintf(errbuf,"Cannot set up the za index.\n"); H5Epush(__FILE__, "HE5_ZAchkzaid", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Get HDF file ID & "HDFEOS" group ID */ /* ------------------------------------ */ *fid = HE5_ZAXZa[*idx].fid; status = HE5_EHchkfid(*fid,"", &HDFfid, gid, &access); if (status == FAIL) { sprintf(errbuf,"Checking for file ID failed.\n"); H5Epush(__FILE__, "HE5_ZAchkzaid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefdim | | | | DESCRIPTION: Defines numerical value of dimension | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None Return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | dimname char* dimension name | | dim hsize_t dimension size | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAdefdim(hid_t zaID, char *dimname, hsize_t dim) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKNAME(dimname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAdefdim", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed.\n"); H5Epush(__FILE__, "HE5_ZAdefdim", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Make certain that dim != 0 */ /* -------------------------- */ if ( dim == 0 ) { status = FAIL; sprintf(errbuf, "Invalid (zero) dimension size.\n"); H5Epush(__FILE__, "HE5_ZAdefdim", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Write dimension to the dataset "StructMetadata.0" */ /* ------------------------------------------------- */ status = HE5_EHinsertmeta(fid, HE5_ZAXZa[idx].zaname,"z", 0L, dimname, &dim); if ( status == FAIL ) { sprintf(errbuf, "Cannot insert the value for \"%s\" dimension into Metadata.\n", dimname); H5Epush(__FILE__, "HE5_ZAdefdim", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAsetdimscale | | | | DESCRIPTION: Defines a dimension scale for a fields dimension in a ZA | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char field name | | dimname char dim name | | dimsize hsize_t Dimemsion size value | | numbertype_in hid_t dim scale data type such as DFNT_INT32, | | DFNT_FLOAT64, DFNT_FLOAT32, etc. | | data void data buffer for write | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAsetdimscale(hid_t zaID, char *fieldname, char *dimname, const hsize_t dimsize, hid_t numbertype_in, void * data) { herr_t status; hid_t ntype; hsize_t dims[HE5_DTSETRANKMAX]; int rankSDS; hid_t field_ntype = (hid_t)NULL; /* number types */ char dimlist[HE5_HDFE_DIMBUFSIZE]; char maxdimlist[HE5_HDFE_DIMBUFSIZE]; hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t did; hid_t dsid; hid_t fspace = FAIL; /* File dataspace ID */ unsigned int Dimindex; hid_t dsplist = FAIL; /* Property list ID */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Type of storage */ hid_t data_space = FAIL; /* dataspace ID */ long idx = FAIL; /* Grid index */ char *errbuf = (char *)NULL; /* buffer for error message*/ void *data_buff; int i, found; int rankds; hsize_t dimsds[1]; HE5_LOCK; CHECKNAME(fieldname); CHECKNAME(dimname); /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer ", __FILE__, __LINE__); return(FAIL); } /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { ntype = numbertype_in; } else { ntype = HE5_EHconvdatatype((int) numbertype_in); } if(ntype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for dimscale\n"); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper ZA ID and return HDF-EOS file ID, * * "HDFEOS" group ID and ZA index * ********************************************************** */ status = HE5_ZAchkzaid(zaID, "HE5_ZAsetdimscale", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for ZA ID failed.\n"); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* * Check for proper ZA ID and return HDF-EOS file ID, SDinterface ID, * and ZA root Vgroup ID */ status = HE5_ZAchkzaid(zaID, "HE5_ZAsetdimscale", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for ZA ID failed.\n"); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } if (status == 0) { /* Check that field exists */ /* ----------------------- */ status = HE5_ZAinfo(zaID, fieldname, &rankSDS, dims, &field_ntype, dimlist, maxdimlist); if (status != 0) { sprintf(errbuf, "Fieldname \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } data_buff = data; /* Loop through all datasets in ZA */ /* ------------------------------ */ for (i = 0; i < HE5_ZAXZa[idx].nDFLD; i++) { /* Get dataset name */ if( strcmp(fieldname, HE5_ZAXZa[ idx ].ddataset[ i ].name) == 0 ) { found = 1; did = HE5_ZAXZa[ idx ].ddataset[ i ].ID; break; } } if(found != 1) /* did not find fieldname */ { sprintf(errbuf, "Fieldname \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Dimension index */ Dimindex = HE5_EHstrwithin(dimname, dimlist, ','); if (Dimindex == FAIL) /* dimension not found */ { status = FAIL; sprintf( errbuf, "Dimname \"%s\" does not exist for field \"%s\".\n", dimname, fieldname ); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* If dimension found ... */ /* Found the dimname; Use its dimid to set Dimension Scale*/ /* See if dimscale dataset already exist */ dsid = H5Dopen(HE5_ZAXZa[idx].za_id, dimname); if(dsid < 0) { /* create Dim Scale dataset */ /* Try to open the " group */ /* =================================== */ dsplist = H5Pcreate(H5P_DATASET_CREATE); if(dsplist == FAIL) { sprintf(errbuf,"Cannot create a new property list.\n"); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get layout information */ /* ---------------------- */ layout = H5Pget_layout(dsplist); if(layout == H5D_LAYOUT_ERROR) { sprintf(errbuf,"Cannot get layout information for the dataset.\n"); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } rankds = 1; dimsds[0] = dims[Dimindex]; data_space = H5Screate_simple(rankds, dimsds, NULL); if(data_space == FAIL) { sprintf(errbuf,"Cannot create dataspace for the dimension scale dataset.\n"); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } dsid = H5Dcreate(HE5_ZAXZa[idx].za_id,dimname,ntype, data_space, dsplist); if( dsid == FAIL ) { sprintf(errbuf, "Cannot create dataset for Dimension Scale \"%s\" field. \n", dimname); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* write data_buff to it */ /* Get the field space ID */ /* --------------------- */ fspace = H5Dget_space(dsid); if ( fspace == FAIL) { sprintf(errbuf, "Cannot get the file data space ID.\n"); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Dwrite(dsid, ntype, data_space, fspace, H5P_DEFAULT, data_buff); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_ZAsetdimscale", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } /* Dataset exist. See if it is Dimension Scale already. If not make it */ if ((H5DSis_scale(dsid)) <= 0 ) { status = H5DSset_scale(dsid, dimname); if( status < 0) { status = -1; free(errbuf); goto COMPLETION; } if(H5DSattach_scale(did, dsid, Dimindex) < 0) { status = -1; free(errbuf); goto COMPLETION; } } else { if(H5DSattach_scale(did, dsid, Dimindex) < 0) { status = -1; free(errbuf); goto COMPLETION; } } if( H5Dclose(dsid) < 0) { status = -1; free(errbuf); goto COMPLETION; } } free(errbuf); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgetdimscale | | | | DESCRIPTION: Get dimension scale for a dimension of a field in a ZA | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status long return databuffsize SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char field name | | dimname char dim name | | | | | | OUTPUTS: | | dimsize hsize_t dimension size | | ntype hid_t dtata type of dimension scale | | databuff void data buffer for read | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAgetdimscale(hid_t zaID, char *fieldname, char *dimname, hsize_t *dimsize,hid_t *ntype, void * databuff) { int i,j; /* Loop index */ long status; /* routine return status */ long idx = FAIL; /* ZA index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t did = FAIL; /* dataset ID */ hid_t dsid = FAIL; /* dimscale dataset ID */ hid_t dspace = FAIL; /* data space ID */ hid_t mspace = FAIL; /* memory data space ID */ hid_t dtype = FAIL; /* data type ID */ hid_t mtype = FAIL; /* memory data type ID */ H5T_class_t classid = H5T_NO_CLASS; /* Data type class ID */ hsize_t dimsds[HE5_DTSETRANKMAX]; /* Field dimensions */ char *errbuf = (char *)NULL; /* buff for error message */ long size = 0; /* data buffer size(bytes)*/ int rankds; size_t sd_type_size = 0; /* Size of a data type */ unsigned int Dimindex; int rankSDS; hid_t field_ntype = (hid_t)NULL; /* number types */ char dimlist[HE5_HDFE_DIMBUFSIZE]; char maxdimlist[HE5_HDFE_DIMBUFSIZE]; /*hid_t ntype = FAIL; */ hsize_t dims[HE5_DTSETRANKMAX]; int found = 0; htri_t str_is_variable; /* boolean: TRUE if string is variable lengeth FALSE if string is fixed length -1 if error in H5Tis_variavle_str() */ HE5_LOCK; CHECKNAME(fieldname); CHECKNAME(dimname); /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper ZA ID and return HDF-EOS file ID, * * "HDFEOS" group ID and ZA index * ********************************************************** */ status = HE5_ZAchkzaid(zaID, "HE5_ZAgetdimscale", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for ZA ID failed.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* See if dimscale dataset exist */ dsid = H5Dopen(HE5_ZAXZa[idx].za_id, dimname); if(dsid < 0) { status = FAIL; sprintf( errbuf, "Dimension scale dataset \"%s\" does not exist.\n", dimname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Loop through all datasets in ZA */ /* ------------------------------ */ for (i = 0; i < HE5_ZAXZa[idx].nDFLD; i++) { /* Get dataset name */ if( strcmp(fieldname, HE5_ZAXZa[ idx ].ddataset[ i ].name) == 0 ) { found = 1; did = HE5_ZAXZa[ idx ].ddataset[ i ].ID; break; } } if(found != 1) /* did not find fieldname */ { sprintf(errbuf, "Fieldname \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Check that field exists */ /* ----------------------- */ status = HE5_ZAinfo(zaID, fieldname, &rankSDS, dims, &field_ntype, dimlist, maxdimlist); if (status != 0) { sprintf(errbuf, "Fieldname \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* find the index of the dimension in the field */ Dimindex = HE5_EHstrwithin(dimname, dimlist, ','); if (Dimindex == FAIL) /* dimension not found */ { status = FAIL; sprintf( errbuf, "Dimname \"%s\" does not exist for field \"%s\".\n", dimname, fieldname ); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* check that dimname is dimension scale name for the field dimname */ status = H5DSis_attached(did, dsid, Dimindex); if( status < 0) { status = FAIL; sprintf( errbuf, "Dimname \"%s\" is not dimension scale for a dimension in the field \"%s\".\n", dimname, fieldname ); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* OK. dsid is a dimension scale for did. It is time to read Dimension Scale dataset for output */ /* get size first ... */ /* ------------------ */ dtype = H5Dget_type(dsid); if ( dtype == FAIL ) { size = 0; sprintf(errbuf, "Cannot get data type ID.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get data type size (bytes) */ /* -------------------------- */ sd_type_size = H5Tget_size(dtype); if ( sd_type_size == 0 ) { sprintf(errbuf, "Cannot retrieve data type size.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get data space ID */ /* ----------------- */ dspace = H5Dget_space( dsid ); if (dspace == FAIL) { sprintf(errbuf, "Cannot get the dataspace ID for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get dataset rank */ /* ---------------- */ rankds = H5Sget_simple_extent_ndims(dspace); if ( rankds == FAIL ) { sprintf(errbuf, "Cannot get the dataset rank for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get dataset dimension sizes */ /* --------------------------- */ status = H5Sget_simple_extent_dims(dspace,dimsds, NULL); if ( status == FAIL ) { sprintf(errbuf, "Cannot get the dataset dimension sizes for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /*----------------------------------------------------------------------*/ /* Get data class ID */ /* ----------------- */ classid = H5Tget_class(dtype); if (classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for \"%s\" dataset.", dimname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); return(FAIL); } if (classid == H5T_STRING) { /* HE5T_CHARSTRING has variable length for data fields */ str_is_variable = H5Tis_variable_str(dtype); if(str_is_variable == TRUE) { *ntype = HE5T_CHARSTRING; } else if(str_is_variable == FALSE) { *ntype = HE5T_NATIVE_CHAR; } else { sprintf(errbuf, "Failed to see if string field is varaible or fixed length for the \"%s\" field.\n",dimname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); return(FAIL); } } else { *ntype = HE5_EHdtype2numtype(dtype); if (*ntype == FAIL) { sprintf(errbuf, "Cannot get the number type for \"%s\" dataset.", dimname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); return(FAIL); } } /*----------------------------------------------------------------------*/ status = H5Tclose(dtype); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Release the dataspace ID */ /* ------------------------ */ status = H5Sclose(dspace); if ( status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } size = (long)dimsds[ 0 ]; *dimsize = (hsize_t)size; for (j = 1; j < rankds; j++) size *= (long)dimsds[j]; size *= (long)sd_type_size; /* If data values are requested ... */ /* -------------------------------- */ if (databuff != NULL) { /* Create a data space in memory */ /* ----------------------------- */ mspace = H5Screate_simple(rankds, (const hsize_t *)dimsds, NULL); if ( mspace == FAIL ) { sprintf(errbuf,"Cannot create the data space.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATASPACE, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } dspace = H5Dget_space(dsid ); if (dspace == FAIL) { sprintf(errbuf, "Cannot get the dataspace ID for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } dtype = H5Dget_type(dsid); if ( dtype == FAIL ) { sprintf(errbuf,"Cannot get the datatype ID.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get the memory data type ID */ /* --------------------------- */ mtype = HE5_EHdtype2mtype(dtype); if ( mtype == FAIL ) { sprintf(errbuf,"Cannot get the memory data type.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Read the selected points into the buffer */ /* --------------------------------------- */ status = H5Dread(dsid, mtype, mspace, dspace, H5P_DEFAULT, databuff); if ( status == FAIL ) { sprintf(errbuf,"Cannot read out the data from the dataset.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Tclose(dtype); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Sclose(mspace); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the memory data space ID.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Sclose(dspace); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the file data space ID.\n"); H5Epush(__FILE__, "HE5_ZAgetdimscale", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } free(errbuf); COMPLETION: HE5_UNLOCK; return (size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAreaddscaleattr | | | | DESCRIPTION: Reads attribute associated with a dimension scale field | | from a ZA. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t None HDF-EOS type ZA ID | | fieldname char field name | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 10 Abe Taaheri Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAreaddscaleattr(hid_t zaID, const char *fieldname, const char *attrname, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t ntype = FAIL;/* hdf5 type data type ID */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* Field-related dataset ID */ long idx = FAIL;/* ZA index */ hsize_t count[]={0}; /* array with the number of elements */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* ********************************************************** * Check for proper ZA ID and return HDF-EOS file ID, * * "HDFEOS" group ID and ZA index * ********************************************************** */ status = HE5_ZAchkzaid(zaID, "HE5_ZAreaddscaleattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get field ID */ /* ------------ */ fieldID = H5Dopen(HE5_ZAXZa[idx].za_id, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_ZAreaddscaleattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattr to perform I/O */ /* -------------------------- */ status = HE5_EHattr(fieldID, attrname, ntype, count, "r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" associated wth the \"%s\" field.\n", attrname,fieldname); H5Epush(__FILE__, "HE5_ZAreaddscaleattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_ZAreaddscaleattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwritedscaleattr | | | | DESCRIPTION: Writes/updates attribute associated with a dimension scale | | field in a ZA. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char* dimension scale SDS name | | attrname char* attribute name | | numtype hid_t attribute datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAwritedscaleattr(hid_t zaID, const char *fieldname, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* Field-related dataset ID */ long idx = FAIL;/* ZA index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t ntype; HE5_LOCK; CHECKPOINTER(fieldname); CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ ntype = HE5_EHconvdatatype(numtype); if(ntype == FAIL) { ntype = numtype; } /* ********************************************************** * Check for proper ZA ID and return HDF-EOS file ID, * * "HDFEOS" group ID and ZA index * ********************************************************** */ status = HE5_ZAchkzaid(zaID, "HE5_ZAwritedscaleattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get field ID */ /* ------------ */ fieldID = H5Dopen(HE5_ZAXZa[idx].za_id, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_ZAwritedscaleattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattr to perform I/O */ /* -------------------------- */ status = HE5_EHattr(fieldID, attrname, ntype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\" for the \"%s\" field.\n", attrname, fieldname); H5Epush(__FILE__, "HE5_ZAwritedscaleattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_ZAwritedscaleattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdscaleattrinfo | | | | DESCRIPTION: Retrieves information about dimension scale attribute | | (attribute associated with a specified dimension scale field) | | in a ZA. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t None HDF-EOS type ZA ID | | fieldname char* field name | | attrname char* attribute name | | | | OUTPUTS: | | ntype hid_t attribute data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAdscaleattrinfo(hid_t zaID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* Field-related dataset ID */ long idx = FAIL;/* ZA index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* ********************************************************** * Check for proper ZA ID and return HDF-EOS file ID, * * "HDFEOS" group ID and ZA index * ********************************************************** */ status = HE5_ZAchkzaid(zaID, "HE5_ZAdscaleattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get field ID */ /* ------------ */ fieldID = H5Dopen(HE5_ZAXZa[idx].za_id, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_ZAdscaleattrinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattrinfo */ /* --------------- */ if(strcmp(attrname,"REFERENCE_LIST") !=0)/* do not need ntype for internal dimension scale attribute */ { status = HE5_EHattrinfo(fieldID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" associated with the \"%s\" field.\n", attrname, fieldname); H5Epush(__FILE__, "HE5_ZAdscaleattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { status = -1; *ntype = -1; *count = 0; sprintf(errbuf,"Will not retrieve information about internal Attribute \"%s\" associated with the dimension scale \"%s\" .\n", attrname, fieldname); H5Epush(__FILE__, "HE5_ZAdscaleattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_ZAdscaleattrinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqdscaleattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified dimension scale | | in a ZA. | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long number of attributes (-1 if fails) | | | | INPUTS: | | zaID hid_t None HDF-EOS type ZA ID | | fieldname char dimension scale name | | attrnames char attribute name(s) | | | | OUTPUTS: | | strbufsize long String length of attribute (in bytes) | | | | NOTES: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | June 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqdscaleattrs(hid_t zaID, const char *fieldname, char *attrnames, long *strbufsize) { long nattr = 0; /* Number of attributes (return) */ long idx = FAIL;/* Grid index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ char *dtsname = NULL;/* Buffer for dataset name */ char errbuf[HE5_HDFE_ERRBUFSIZE]; CHECKPOINTER(fieldname); /* ********************************************************** * Check for proper ZA ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Grid index * ********************************************************** */ status = HE5_ZAchkzaid(zaID, "HE5_ZAinqdscaleattrs", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for ZA ID failed.\n" ); H5Epush(__FILE__, "HE5_ZAinqdscaleattrs", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } dtsname = (char *) calloc(HE5_HDFE_NAMBUFSIZE, 1); if( dtsname == NULL) { sprintf(errbuf, "Can not allocate memory.\n"); H5Epush(__FILE__, "HE5_ZAinqdscaleattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(dtsname,"/HDFEOS/ZAS/"); strcat(dtsname, HE5_ZAXZa[idx].zaname); strcat(dtsname,"/"); strcat(dtsname,fieldname); nattr = HE5_EHattrcat(fid, dtsname, attrnames, strbufsize); if (dtsname != NULL) free(dtsname); COMPLETION: return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdiminfo | | | | DESCRIPTION: Returns size in bytes of named dimension | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size hsize_t size of dimension | | | | INPUTS: | | zaID hid_t ZA structure ID | | dimname char* dimension name | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hsize_t HE5_ZAdiminfo(hid_t zaID, char *dimname) { hsize_t size = 0; /* Dimension size (return value) */ herr_t status = FAIL;/* status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* za index */ char *metabuf=(char *)NULL; /* Ptr to StrucMetadata (SM) */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to the start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE];/* Utility string buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAdiminfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get pointers to "Dimension" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_ZAXZa[idx].zaname, "z", "Dimension", metaptrs); /* Search for dimension name (surrounded by quotes) */ /* ------------------------------------------------ */ sprintf(utlstr, "%s%s%s", "\"", dimname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); /* * If dimension found within za structure then get dimension value */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Set "end" ptr at the end of dimension definition entry */ /* ------------------------------------------------------ */ metaptrs[1] = strstr(metaptrs[0], "\t\t\tEND_OBJECT"); /* Get the value of "Size" entry */ /* ----------------------------- */ status = HE5_EHgetmetavalue(metaptrs, "Size", utlstr); if (status == SUCCEED) { size = atol(utlstr); if (size == 0) { sprintf(errbuf, "Returning zero \"Size\" value from Metadata.\n"); H5Epush(__FILE__, "HE5_ZAdiminfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { sprintf(errbuf, "The \"Size\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_ZAdiminfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { sprintf(errbuf, "The Dimension \"%s\" not found in metadata. \n", dimname); H5Epush(__FILE__, "HE5_ZAdiminfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if (metabuf != NULL) free(metabuf); } return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAcompinfo | | | | DESCRIPTION: Retrieves compression information about a field | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None Return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fldname char* field name | | compcode int* compression code | | compparm int compression parameters | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAcompinfo(hid_t zaID, char *fldname, int *compcode, int compparm[]) { herr_t status = FAIL; /* Return status variable */ herr_t statmeta = FAIL; /* Status variable */ int i; /* Loop Index */ int nameflag = FAIL; /* Name flag (0-alias,1-actual)*/ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* za index */ char fieldname[HE5_HDFE_NAMBUFSIZE]; /* Field name buffer */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual name of a field */ char *metabuf = (char *)NULL; /* Pntr to StrucMetadata (SM) */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to the start/end of SM */ char *utlstr = (char *)NULL; /* Utility string buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ char *HDFcomp[18] = {"HE5_HDFE_COMP_NONE", "HE5_HDFE_COMP_RLE", "HE5_HDFE_COMP_NBIT", "HE5_HDFE_COMP_SKPHUFF", "HE5_HDFE_COMP_DEFLATE", "HE5_HDFE_COMP_SZIP_CHIP", "HE5_HDFE_COMP_SZIP_K13", "HE5_HDFE_COMP_SZIP_EC", "HE5_HDFE_COMP_SZIP_NN", "HE5_HDFE_COMP_SZIP_K13orEC", "HE5_HDFE_COMP_SZIP_K13orNN", "HE5_HDFE_COMP_SHUF_DEFLATE", "HE5_HDFE_COMP_SHUF_SZIP_CHIP", "HE5_HDFE_COMP_SHUF_SZIP_K13", "HE5_HDFE_COMP_SHUF_SZIP_EC", "HE5_HDFE_COMP_SHUF_SZIP_NN", "HE5_HDFE_COMP_SHUF_SZIP_K13orEC", "HE5_HDFE_COMP_SHUF_SZIP_K13orNN"}; /* Compression method Codes */ CHECKPOINTER(fldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAcompinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Allocate space for utility string */ /* --------------------------------- */ utlstr = (char *)calloc(HE5_HDFE_DIMBUFSIZE, sizeof(char)); if ( utlstr == NULL ) { sprintf( errbuf,"Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_ZAfldnameinfo() to get actual field name */ /* ------------------------------------------------- */ nameflag = HE5_ZAfldnameinfo(zaID, fldname, fldactualname); if ( nameflag == FAIL ) { sprintf(errbuf, "Cannot get the actual name of the field.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (utlstr != NULL) free(utlstr); return(FAIL); } /* If fieldname is alias, then change it to the actual name */ /* -------------------------------------------------------- */ if (nameflag == FALSE) { strcpy(fieldname,""); strcpy(fieldname,fldactualname); } if (nameflag == TRUE) { strcpy(fieldname,""); strcpy(fieldname,fldname); } /* Get the field group code */ /* ------------------------ */ fldgroup = HE5_ZAfldsrch(zaID,fieldname,NULL,NULL,NULL,NULL); if (fldgroup == HE5_HDFE_DATAGROUP) { /* Get pointers to "DataField" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_ZAXZa[idx].zaname, "z", "DataField", metaptrs); /* Search for field */ /* ---------------- */ sprintf(utlstr, "%s%s%s", "\"", fieldname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); } else { sprintf(errbuf , "Cannot get the field group code.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); if (utlstr != NULL) free(utlstr); return(FAIL); } /* If field found and user wants compression code ... */ /* -------------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { if (compcode != NULL) { /* Set endptr at end of field's definition entry */ /* --------------------------------------------- */ metaptrs[1] = strstr(metaptrs[0], "\t\t\tEND_OBJECT"); /* Get compression type */ /* -------------------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "CompressionType", utlstr); /* * Default is no compression if "CompressionType" string not * in metadata */ *compcode = HE5_HDFE_COMP_NONE; /* If compression code is found ... */ /* -------------------------------- */ if (statmeta == SUCCEED) { /* Loop through compression types until match */ /* ------------------------------------------ */ for (i = 0; i < 11; i++) { if (strcmp(utlstr, HDFcomp[i]) == 0) { *compcode = i; break; } } } } /* If user wants compression parameters ... */ /* ---------------------------------------- */ if (compparm != NULL && compcode != NULL) { /* Initialize to zero */ /* ------------------ */ for (i = 0; i < 5; i++) compparm[i] = 0; /* Get compression parameters */ /* -------------------------- */ if (*compcode == HE5_HDFE_COMP_NBIT) { statmeta = HE5_EHgetmetavalue(metaptrs, "CompressionParams", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "(%d,%d,%d,%d)", &compparm[0], &compparm[1], &compparm[2], &compparm[3]); } else { status = FAIL; sprintf( errbuf,"\"CompressionParams\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_DEFLATE) { statmeta = HE5_EHgetmetavalue(metaptrs, "DeflateLevel", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"DeflateLevel\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_CHIP) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_K13) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_EC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_NN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_K13orEC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_K13orNN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n" ); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_DEFLATE) { statmeta = HE5_EHgetmetavalue(metaptrs, "DeflateLevel", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"DeflateLevel\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_CHIP) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_K13) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_EC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_NN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_K13orEC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_K13orNN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_ZAcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } } if (metabuf != NULL) free(metabuf); if (utlstr != NULL) free(utlstr); } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAfldnameinfo | | | | DESCRIPTION: Retrieves actual name of the field | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nameFlag int None return (1) actual name, (0) alias, | | (-1) FAIL | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char* name of field | | | | OUTPUTS: | | actualname char* field actual name | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static int HE5_ZAfldnameinfo(int zaID, char *fieldname, char *actualname) { int nameFlag = FAIL;/* Return value of flag */ int length = 0; /* String length */ int fldgroup = FAIL;/* Field group code */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t groupID = FAIL;/* data field group ID */ long idx = FAIL;/* za index */ H5G_stat_t *statbuf = (H5G_stat_t *)NULL;/* buffer for link info */ herr_t status = FAIL;/* routine return status variable */ char *namebuf = NULL;/* Buffer for an actual field name */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAfldnameinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed.\n"); H5Epush(__FILE__, "HE5_ZAfldnameinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } statbuf = (H5G_stat_t *)calloc(1, sizeof(H5G_stat_t )); /* Try to get information about specified field */ /* -------------------------------------------- */ H5E_BEGIN_TRY { groupID = HE5_ZAXZa[idx].data_id; fldgroup = HE5_HDFE_DATAGROUP; status = H5Gget_objinfo(groupID, fieldname, 0, statbuf); } H5E_END_TRY; if (status == FAIL) { nameFlag = FAIL; sprintf(errbuf, "Cannot find \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAfldnameinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(statbuf); return(nameFlag); } /* If the field name is an alias */ /* ----------------------------- */ if (statbuf->type == H5G_LINK) nameFlag = FALSE; else nameFlag = TRUE; if (nameFlag == FALSE) { if (actualname != NULL) { status = HE5_ZAaliasinfo(zaID, fldgroup, fieldname, &length, NULL); if ( status == FAIL ) { sprintf(errbuf, "Cannot get information about alias \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_ZAfldnameinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } namebuf = (char *)calloc(length, sizeof(char)); if ( namebuf == NULL ) { sprintf(errbuf, "Cannot allocate memory for namebuf.\n"); H5Epush(__FILE__, "HE5_ZAfldnameinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Retrieve information about alias */ /* -------------------------------- */ status = HE5_ZAaliasinfo(zaID, fldgroup, fieldname, &length, namebuf); if ( status == FAIL ) { sprintf(errbuf, "Cannot get information about alias \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_ZAfldnameinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(namebuf); return(FAIL); } strcpy(actualname,""); strcpy(actualname,namebuf); free(namebuf); } } if (nameFlag == TRUE) { if (actualname != NULL) { strcpy(actualname,""); strcpy(actualname, fieldname); } } free(statbuf); COMPLETION: return(nameFlag); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAfldinfo | | | | DESCRIPTION: Retrieves information about specified ZA structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | datafield char* data field | | za_name char* name of a specific ZA data set | | | | OUTPUTS: | | rank int* rank of ZA data set | | dims hsize_t array of dimension sizes | | numbertype hid_t number type | | dimlist char* dimension list | | maxdimlist char* maximum dimension list | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | Oct 03 S.ZHAO Added the H5Tclose(datatype) call. | | Jan 04 S.Zhao Modified to enable a character string dataset. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_ZAfldinfo(int zaID, char *datafield, char *za_name, int *rank, hsize_t dims[], hid_t numbertype[], char *dimlist, char *maxdimlist) { herr_t status = FAIL;/* routine return status variable */ herr_t statmeta = FAIL;/* EHgetmetavalue return status */ herr_t Dstatus = FAIL;/* Status for H5Dclose */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t dspace = FAIL;/* "fieldname" Dataspace ID */ hid_t fieldID = FAIL;/* "fieldname" Dataset ID */ hid_t groupid = FAIL;/* group ID */ hid_t datasetid = FAIL;/* dataset ID */ hid_t datatype = FAIL;/* data type ID */ H5T_class_t classid = H5T_NO_CLASS;/* data type class ID */ long ndims = 0; /* Number of dimensions */ long idx = FAIL;/* Index of a za */ long i = 0; /* Loop index */ size_t slen[HE5_DTSETRANKMAX]; /* Length of each entry in parsed string */ char *metabuf = (char *)NULL; /* Ptr to structural metadata (SM) */ char *metaptrs[2] = {NULL, NULL}; /* Ptrs to the begining and end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE]; /* Utility string */ char *ptr[HE5_DTSETRANKMAX]; /* String pointers for parsed string */ char dimstr[HE5_HDFE_DIMBUFSIZE]; /* Individual dimension entry string */ char maxdimstr[HE5_HDFE_DIMBUFSIZE]; /* Individual max. dimension entry string */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ htri_t str_is_variable; /* boolean: TRUE if string is variable lengeth FALSE if string is fixed length -1 if error in H5Tis_variavle_str() */ CHECKPOINTER(datafield); CHECKPOINTER(za_name); /* Initialize rank to FAIL (error) */ /* ------------------------------- */ *rank = FAIL; /* Initialize slen[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) slen[i] = 0; /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAfldinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed.\n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Reset status to FAIL */ /* -------------------- */ status = FAIL; /* Get pointers to appropriate "Field" section within SM */ /* ----------------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_ZAXZa[idx].zaname, "z", "DataField", metaptrs); if ( metabuf == NULL ) { status = FAIL; sprintf(errbuf, "Cannot get pointer to metabuf.\n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } sprintf(utlstr, "%s%s%s", "\"", za_name, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); /* If field is found in "Data Fields" group */ /* ---------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get DataType string */ /* ------------------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "DataType", utlstr); /* Convert to data type class ID */ /* ----------------------------- */ if (statmeta == SUCCEED) { groupid = HE5_ZAXZa[idx].data_id; /* Open the field dataset */ /* ---------------------- */ datasetid = H5Dopen(groupid, za_name); if (datasetid == FAIL) { status = FAIL; sprintf(errbuf, "Cannot open the dataset for the \"%s\" field.\n",za_name); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the data type ID */ /* -------------------- */ datatype = H5Dget_type(datasetid); if (datatype == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the data type for the \"%s\" field.\n",za_name); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the data type class ID */ /* -------------------------- */ classid = H5Tget_class(datatype); if (classid == H5T_NO_CLASS) { status = FAIL; sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" field.\n",za_name); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if (classid == H5T_STRING) { /* HE5T_CHARSTRING has variable length for data fields */ str_is_variable = H5Tis_variable_str(datatype); if(str_is_variable == TRUE) { numbertype[0] = HE5T_CHARSTRING; } else if(str_is_variable == FALSE) { numbertype[0] = HE5T_NATIVE_CHAR; } else { status = FAIL; sprintf(errbuf, "Failed to see if string field is varaible or fixed length for the \"%s\" field.\n",za_name); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); return(status); } /*HE5_ZAgetstringtype(zaID, fieldname,classid);*/ /*numbertype[0] = HE5T_CHARSTRING;*/ } else { numbertype[0] = HE5_EHdtype2numtype(datatype); if (numbertype[0] == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the number type for the \"%s\" field.\n",za_name); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(datatype); if (status == FAIL) { sprintf(errbuf, "Cannot release the datatype ID for the \"%s\" field.\n",za_name); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the dataset ID */ /* ---------------------- */ Dstatus = H5Dclose(datasetid); if (Dstatus == FAIL) { status = FAIL; sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" field.\n",za_name); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { status = FAIL; sprintf(errbuf, "The \"DataType\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATASET, H5E_SEEKERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get "DimList" string, trim off "(" and ")" */ /* ------------------------------------------ */ statmeta = HE5_EHgetmetavalue(metaptrs, "DimList", utlstr); if (statmeta == SUCCEED) { memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); utlstr[strlen(utlstr) - 2] = 0; /* Parse trimmed "DimList" string and get rank */ /* ------------------------------------------- */ ndims = HE5_EHparsestr(utlstr, ',', ptr, slen); *rank = HE5_EHlong2int(ndims); if (*rank == FAIL) { sprintf(errbuf, "Cannot convert from \"long\" to \"int\" data type. \n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else { status = FAIL; sprintf(errbuf, "The \"DimList\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATASET, H5E_SEEKERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* If "DimList" IS REQUESTED ... */ /* ----------------------------- */ if (dimlist != NULL) { strcpy(dimstr,""); strcpy(dimlist,""); /* * Copy each entry in DimList and remove leading and trailing quotes. * Get dimension sizes and concatenate dimension names to dimension list. */ for (i = 0; i < ndims; i++) { memmove(dimstr, ptr[i] + 1, slen[i] - 2); dimstr[slen[i] - 2] = 0; if (i > 0) { strcat(dimlist,","); } strcat(dimlist, dimstr); } } /* If "MaxdimList" IS REQUESTED ... */ /* -------------------------------------- */ if(maxdimlist != NULL) { strcpy(utlstr,""); statmeta = HE5_EHgetmetavalue(metaptrs,"MaxdimList", utlstr); if (statmeta == SUCCEED) { memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); utlstr[strlen(utlstr) - 2] = 0; ndims = HE5_EHparsestr(utlstr,',', ptr, slen); } else { status = FAIL; sprintf(errbuf, "The \"MaxdimList\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATASET, H5E_SEEKERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } strcpy(maxdimstr,""); strcpy(maxdimlist,""); for (i = 0; i < ndims; i++) { memmove(maxdimstr, ptr[i] + 1, slen[i] - 2); maxdimstr[slen[i] - 2] = 0; if (maxdimlist != NULL) { if (i > 0) { strcat(maxdimlist,","); } strcat(maxdimlist, maxdimstr); } } } /* Get field ID */ /* ------------ */ HE5_ZAfieldsizeID( zaID, za_name, &fieldID); /* Get the data space ID */ /* --------------------- */ dspace = H5Dget_space( fieldID ); if(dspace == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the data space ID.\n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the dataset rank */ /* -------------------- */ *rank = H5Sget_simple_extent_ndims(dspace); if( *rank == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the rank of the dataset.\n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the dataset dimension sizes */ /* ------------------------------- */ status = H5Sget_simple_extent_dims(dspace, dims, NULL); if( status == FAIL) { sprintf(errbuf, "Cannot get the dimension array of the dataset.\n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(dspace); if( status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_ZAfldinfo", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if (metabuf != NULL) free(metabuf); COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinfo | | | | DESCRIPTION: Wrapper around HE5_ZAfldinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | za_name char* za name | | | | | | OUTPUTS: | | rank int* rank of field (# of dims) | | dims hsize_t field dimensions | | dtype hid_t data type ID | | dimlist char* field dimension list | | maxdimlist char* field maximum dimension list | | | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ================================================ | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAinfo(hid_t zaID, char *za_name, int *rank, hsize_t dims[], hid_t dtype[], char *dimlist, char *maxdimlist) { herr_t status = FAIL;/* routine return status variable */ int nameflag = FAIL;/* Actual(1)/Alias(0) field name */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* za index */ char fieldname[HE5_HDFE_NAMBUFSIZE]; /* field name buffer */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual field name */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ CHECKPOINTER(za_name); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Call HE5_ZAfldnameinfo() to get actual field name */ /* ------------------------------------------------- */ nameflag = HE5_ZAfldnameinfo(zaID, za_name, fldactualname); if ( nameflag == FAIL ) { sprintf(errbuf, "Cannot get actual name of the field.\n"); H5Epush(__FILE__, "HE5_ZAinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Name is not alias */ /* ----------------- */ if (nameflag == TRUE) { strcpy(fieldname,""); strcpy(fieldname,za_name); } /* Name is alias */ /* ------------- */ if (nameflag == FALSE) { strcpy(fieldname,""); strcpy(fieldname,fldactualname); } /* Check for field within Data Fields */ /* ---------------------------------- */ status = HE5_ZAfldinfo(zaID, "Data Fields", fieldname, rank, dims, dtype, dimlist, maxdimlist); /* If not there either then can't be found */ /* --------------------------------------- */ if (status == FAIL) { sprintf(errbuf,"Field \"%s\" not found. Check out the field name. \n", fieldname); H5Epush(__FILE__, "HE5_ZAinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefchunk | | | | DESCRIPTION: Defines size of chunk used to store a chunked layout dataset | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | rank int rank of a dataset | | dim const hsize_t* pointer to the array containing sizes | | of each dimension of a chunk | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================== | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAdefchunk(hid_t zaID, int rank, const hsize_t *dim) { herr_t status = FAIL;/* Return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(dim); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAdefchunk", &fid, &gid, &idx); if (status == SUCCEED) { /* get the current dataset creation property ID from external array */ /* if current property instance has not been created, then create it */ if( HE5_ZAXZa[idx].plist == FAIL){ HE5_ZAXZa[idx].plist = H5Pcreate(H5P_DATASET_CREATE); if (HE5_ZAXZa[idx].plist == FAIL){ sprintf(errbuf, "Cannot create the property list. \n"); H5Epush(__FILE__, "HE5_ZAdefchunk", __LINE__, H5E_PLIST, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Set layout */ /* ---------- */ status = H5Pset_layout( HE5_ZAXZa[idx].plist, H5D_CHUNKED); if (status == FAIL) { sprintf(errbuf, "Cannot set the \"CHUNKED\" type of storage. \n"); H5Epush(__FILE__, "HE5_ZAdefchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Set chunking */ /* ------------ */ status = H5Pset_chunk( HE5_ZAXZa[idx].plist, rank, dim); if (status == FAIL) { sprintf(errbuf, "Cannot set the sizes of chunks. \n"); H5Epush(__FILE__, "HE5_ZAdefchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefcomp | | | | DESCRIPTION: Defines compression type and parameters | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | compcode int compression code | | compparm int* compression parameters | | | | OUTPUTS: | | None | | | | NOTES: Before calling this function, storage must be CHUNKED | | Values of compression code | | HDFE_COMP_NONE 0 | | HDFE_COMP_RLE 1 | | HDFE_COMP_NBIT 2 | | HDFE_COMP_SKPHUFF 3 | | HDFE_COMP_DEFLATE 4 | | HDFE_COMP_SZIP_EC 5 | | HDFE_COMP_SZIP_NN 6 | | HDFE_COMP_SZIP_K13 7 | | HDFE_COMP_SZIP_CHIP 8 | | HDFE_COMP_SZIP_K13orEC 9 | | HDFE_COMP_SZIP_K13orNN 10 | | HDFE_COMP_SHUF_DEFLATE 11 | | HDFE_COMP_SHUF_SZIP_CHIP 12 | | HDFE_COMP_SHUF_SZIP_K13 13 | | HDFE_COMP_SHUF_SZIP_EC 14 | | HDFE_COMP_SHUF_SZIP_NN 15 | | HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HDFE_COMP_SHUF_SZIP_K13orNN 17 | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | Aug 03 S.Zhao Added Szip compression methods. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAdefcomp(hid_t zaID, int compcode, int *compparm) { herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* za index */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Storage layout type */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ int can_encode = 0; /* szip encoder presence flag */ HE5_LOCK; CHECKPOINTER(compparm); /* Check if compression code is valid */ /* ---------------------------------- */ if( compcode != HE5_HDFE_COMP_DEFLATE && compcode != HE5_HDFE_COMP_NONE && compcode != HE5_HDFE_COMP_SZIP_CHIP && compcode != HE5_HDFE_COMP_SZIP_K13 && compcode != HE5_HDFE_COMP_SZIP_EC && compcode != HE5_HDFE_COMP_SZIP_NN && compcode != HE5_HDFE_COMP_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SZIP_K13orNN && compcode != HE5_HDFE_COMP_SHUF_DEFLATE && compcode != HE5_HDFE_COMP_SHUF_SZIP_CHIP && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13 && compcode != HE5_HDFE_COMP_SHUF_SZIP_EC && compcode != HE5_HDFE_COMP_SHUF_SZIP_NN && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orNN ) { status = FAIL; sprintf(errbuf,"Invalid/unsupported compression code. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if( compcode == HE5_HDFE_COMP_DEFLATE || compcode == HE5_HDFE_COMP_NONE || compcode == HE5_HDFE_COMP_SHUF_DEFLATE) { /* Check GZIP compression level */ /* ---------------------------- */ if( compparm[0] < 0 || compparm[0] > 9) { status = FAIL; sprintf(errbuf,"Invalid GZIP compression level. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Check SZIP compression block size */ /* --------------------------------- */ if( compparm[0] != 2 && compparm[0] != 4 && compparm[0] != 6 && compparm[0] != 8 && compparm[0] != 10 && compparm[0] != 12 && compparm[0] != 14 && compparm[0] != 16 && compparm[0] != 18 && compparm[0] != 20 && compparm[0] != 22 && compparm[0] != 24 && compparm[0] != 26 && compparm[0] != 28 && compparm[0] != 30 && compparm[0] != 32) { status = FAIL; sprintf(errbuf,"Invalid SZIP compression block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } #ifdef H5_HAVE_FILTER_SZIP can_encode = HE5_szip_can_encode(); #endif /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAdefcomp", &fid, &gid, &idx); if (status == SUCCEED) { /* If the current property list is not set up */ /* ------------------------------------------ */ if( HE5_ZAXZa[idx].plist == FAIL) { status = FAIL; sprintf(errbuf,"Unable to compress, dataset storage layout has not been set to CHUNKED. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { layout = H5Pget_layout(HE5_ZAXZa[idx].plist); if (layout == H5D_LAYOUT_ERROR) { status = FAIL; sprintf(errbuf, "Cannot get the layout of the raw data. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_PLIST, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if( layout != H5D_CHUNKED ) status = H5Pset_layout(HE5_ZAXZa[idx].plist, H5D_CHUNKED); if (status == FAIL) { sprintf(errbuf, "Cannot set the \"CHUNKED\" type of storage of the raw data. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } switch (compcode) { /* Set NBIT compression parameters in compression external array */ /* ------------------------------------------------------------- */ case HE5_HDFE_COMP_NBIT: HE5_ZAXZa[idx].compparm[0] = compparm[0]; HE5_ZAXZa[idx].compparm[1] = compparm[1]; HE5_ZAXZa[idx].compparm[2] = compparm[2]; HE5_ZAXZa[idx].compparm[3] = compparm[3]; break; case HE5_HDFE_COMP_DEFLATE: /* ------------------------------------------------- */ /* Set compression method to H5D_COMPRESS_DEFLATE */ /* and compression level to "compparm[0]" */ /* ------------------------------------------------- */ status = H5Pset_deflate(HE5_ZAXZa[idx].plist, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set GZIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_CHIP: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_CHIP_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_CHIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13 compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_EC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_EC compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_NN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_NN compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13orEC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orEC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13orEC compression method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13orNN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13orNN compression method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_DEFLATE: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Pset_deflate(HE5_ZAXZa[idx].plist, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set shuffling+GZIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_CHIP: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_CHIP_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_CHIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13 method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_EC: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_EC method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_NN: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_NN method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orEC: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orEC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13orEC method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orNN: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13orNN method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_NONE: HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; default: { status = FAIL; sprintf(errbuf, "Invalid compression method \"%d\" . \n", compcode); H5Epush(__FILE__, "HE5_ZAdefcomp", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefcomchunk | | | | DESCRIPTION: Defines compression type and parameters and sets chunking | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | compcode int compression code | | compparm int* compression parameters | | rank int rank of a dataset | | dim const hsize_t* pointer to the array containing sizes | | of each dimension of a chunk | | OUTPUTS: | | None | | | | NOTES: Before calling this function, storage must be CHUNKED | | Values of compression code | | HDFE_COMP_NONE 0 | | HDFE_COMP_RLE 1 | | HDFE_COMP_NBIT 2 | | HDFE_COMP_SKPHUFF 3 | | HDFE_COMP_DEFLATE 4 | | HDFE_COMP_SZIP_EC 5 | | HDFE_COMP_SZIP_NN 6 | | HDFE_COMP_SZIP_K13 7 | | HDFE_COMP_SZIP_CHIP 8 | | HDFE_COMP_SZIP_K13orEC 9 | | HDFE_COMP_SZIP_K13orNN 10 | | HDFE_COMP_SHUF_DEFLATE 11 | | HDFE_COMP_SHUF_SZIP_CHIP 12 | | HDFE_COMP_SHUF_SZIP_K13 13 | | HDFE_COMP_SHUF_SZIP_EC 14 | | HDFE_COMP_SHUF_SZIP_NN 15 | | HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HDFE_COMP_SHUF_SZIP_K13orNN 17 | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | Aug 03 S.Zhao Added Szip compression methods. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAdefcomchunk(hid_t zaID, int compcode, int *compparm, int rank, const hsize_t *dim) { herr_t status = FAIL; /* Return status variable */ int i = 0; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hsize_t dims[HE5_DTSETRANKMAX]; /* Default dim. sizes */ long idx = FAIL; /* za index */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Storage layout type */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ int can_encode; /* szip encoder presence flag */ HE5_LOCK; CHECKPOINTER(compparm); CHECKPOINTER(dim); /* Check if compression code is valid */ /* ---------------------------------- */ if( compcode != HE5_HDFE_COMP_DEFLATE && compcode != HE5_HDFE_COMP_NONE && compcode != HE5_HDFE_COMP_SZIP_CHIP && compcode != HE5_HDFE_COMP_SZIP_K13 && compcode != HE5_HDFE_COMP_SZIP_EC && compcode != HE5_HDFE_COMP_SZIP_NN && compcode != HE5_HDFE_COMP_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SZIP_K13orNN && compcode != HE5_HDFE_COMP_SHUF_DEFLATE && compcode != HE5_HDFE_COMP_SHUF_SZIP_CHIP && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13 && compcode != HE5_HDFE_COMP_SHUF_SZIP_EC && compcode != HE5_HDFE_COMP_SHUF_SZIP_NN && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orNN) { status = FAIL; sprintf(errbuf, "Invalid/unsupported compression code. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if( compcode == HE5_HDFE_COMP_DEFLATE || compcode == HE5_HDFE_COMP_NONE || compcode == HE5_HDFE_COMP_SHUF_DEFLATE) { /* Check GZIP compression level */ /* ---------------------------- */ if( compparm[0] < 0 || compparm[0] > 9) { status = FAIL; sprintf(errbuf,"Invalid GZIP compression level. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Check SZIP compression block size */ /* --------------------------------- */ if( compparm[0] != 2 && compparm[0] != 4 && compparm[0] != 6 && compparm[0] != 8 && compparm[0] != 10 && compparm[0] != 12 && compparm[0] != 14 && compparm[0] != 16 && compparm[0] != 18 && compparm[0] != 20 && compparm[0] != 22 && compparm[0] != 24 && compparm[0] != 26 && compparm[0] != 28 && compparm[0] != 30 && compparm[0] != 32) { status = FAIL; sprintf(errbuf,"Invalid SZIP compression block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } #ifdef H5_HAVE_FILTER_SZIP can_encode = HE5_szip_can_encode(); #endif /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAdefcomchunk", &fid, &gid, &idx); if (status == SUCCEED) { /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[i] = 0; /* get the current dataset creation property ID from external array */ /* ----------------------------------------------------------------- */ if(HE5_ZAXZa[idx].plist == FAIL) { /* create property list */ /* -------------------- */ HE5_ZAXZa[idx].plist = H5Pcreate(H5P_DATASET_CREATE); /* set layout to "H5D_CHUNKED" */ /* --------------------------- */ status = H5Pset_layout(HE5_ZAXZa[idx].plist, H5D_CHUNKED); if (status == FAIL) { sprintf(errbuf, "Cannot set the \"CHUNKED\" type of storage. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_STORAGE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Get layout of the raw data */ /* -------------------------- */ layout = H5Pget_layout(HE5_ZAXZa[idx].plist); if (layout == H5D_LAYOUT_ERROR) { status = FAIL; sprintf(errbuf, "Cannot get the layout of the raw data. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_STORAGE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if( layout != H5D_CHUNKED ) { /* set layout to "H5D_CHUNKED" */ /* --------------------------- */ status = H5Pset_layout( HE5_ZAXZa[idx].plist, H5D_CHUNKED); if (status == FAIL) { sprintf(errbuf, "Cannot set the \"CHUNKED\" type of storage. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_STORAGE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } } /* set chunking */ /* ------------ */ if ( rank > 0 && dim != (hsize_t *)NULL) { status = H5Pset_chunk(HE5_ZAXZa[idx].plist, rank, dim); if (status == FAIL) { sprintf(errbuf, "Cannot set the sizes of chunks. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else if ( rank > 0 && dim == (hsize_t *)NULL) { /* Set default chunk sizes */ /* ----------------------- */ for (i = 0; i < rank; i++) dims[ i ] = HE5_CHUNKSIZE; status = H5Pset_chunk(HE5_ZAXZa[idx].plist, rank, dims); if (status == FAIL) { sprintf(errbuf, "Cannot set the sizes of chunks. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Invalid dataset rank,\"%d\" . \n", rank); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } switch (compcode) { /* Set NBIT compression parameters in compression external array */ /* ------------------------------------------------------------- */ case HE5_HDFE_COMP_NBIT: HE5_ZAXZa[idx].compparm[0] = compparm[0]; HE5_ZAXZa[idx].compparm[1] = compparm[1]; HE5_ZAXZa[idx].compparm[2] = compparm[2]; HE5_ZAXZa[idx].compparm[3] = compparm[3]; break; case HE5_HDFE_COMP_DEFLATE: /* ------------------------------------------------- */ /* Set compression method to H5D_COMPRESS_DEFLATE */ /* and compression level to "compparm[0]" */ /* ------------------------------------------------- */ status = H5Pset_deflate(HE5_ZAXZa[idx].plist, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set GZIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_CHIP: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_CHIP_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_CHIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13 compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_EC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_EC compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_NN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_NN compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13orEC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orEC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13orEC compression method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13orNN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13orNN compression method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_DEFLATE: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Pset_deflate(HE5_ZAXZa[idx].plist, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set shuffling+GZIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_CHIP: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_CHIP_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_CHIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13 method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_EC: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_EC method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_NN: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_NN method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orEC: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orEC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13orEC method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orNN: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_ZAXZa[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_ZAdefcompchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13orNN method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_ZAXZa[idx].compcode = compcode; HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_NONE: status = H5Pset_shuffle(HE5_ZAXZa[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } HE5_ZAXZa[idx].compparm[0] = compparm[0]; break; default: { status = FAIL; sprintf(errbuf, "Invalid (unsupported) compression method \"%d\". \n", compcode); H5Epush(__FILE__, "HE5_ZAdefcomchunk", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefinefield | | | | DESCRIPTION: Defines data field within ZA structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | datafield char* data field | | za_name const char* za name | | dimlist char* Dimension (comma-separated)list | | maxdimlist char* Maximum Dimension (comma-separated) list| | numbertype hid_t field data type ID | | | | OUTPUTS: | | None | | | | NOTES: H5S_UNLIMITED is -1, not 0 => unlimited extendiable dimention | | size = -1. | | If maxdimlist = NULL, then dimlist string is copied to the | | maxdimlist string, and corresponding information is written to | | the metadata section. | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | Jan 04 S.Zhao Added to create a character string dataset. | | Mar 04 S.Zhao Modified for a character string dataset. | | Apr 04 S.Zhao Modified for a character string dataset. | | May 05 S.Zhao Added HE5_EHdtype2numtype() function call. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_ZAdefinefield(hid_t zaID, char *datafield, const char *za_name, char *dimlist, char *maxdimlist, hid_t numbertype_in) { herr_t status = FAIL; /* Return status variable */ int i = 0; /* Loop index */ int foundAllDim = 1; /* found all dimensions flag */ int append = FALSE;/* "Is field appendable?" flag */ int first = 1; /* first entry flag */ int compcode = FAIL; /* Compression code */ int rank = 0; /* Field rank */ int maxrank = 0; /* max dim rank */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t data_space = FAIL;/* dataspace ID */ hid_t dataset = FAIL;/* dataset ID */ hid_t heos_gid = FAIL;/* "ZAS" group ID */ hid_t ntype = FAIL;/* Number type ID */ hid_t numtype = FAIL; hid_t numbertype; hsize_t metavalue = 0; /* Metavalue to insert */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimension size array */ hsize_t maxdims[HE5_DTSETRANKMAX];/* Dimension size array */ hsize_t dimsize = 0; /* Dimension size */ hsize_t count[] = { 1 }; /* number of elements to insert */ long idx = FAIL; /* za index */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Storage layout for raw data */ void *value; size_t tsize = 0; /* Size of a datatype in bytes */ int attr = 0; /* attribute value */ char *dimbuf = (char *)NULL; /* Dimension buffer */ char *comma = (char *)NULL; /* Pointer to comma */ char *dimcheck = (char *)NULL; /* Dimension check buffer */ char utlbuf[HE5_HDFE_UTLBUFSIZE]; /* Utility buffer */ char utlbuf2[HE5_HDFE_UTLBUFSIZE]; /* Utility buffer 2 */ char errbuf1[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer 1 */ char errbuf2[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer 2 */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ char maxdimlstbuf[HE5_HDFE_DIMBUFSIZE]; char dimlstbuf[HE5_HDFE_DIMBUFSIZE]; char compparmbuf[HE5_HDFE_DIMBUFSIZE];/* Compression parmeter */ char *HDFcomp[18] = {"HE5_HDFE_COMP_NONE", "HE5_HDFE_COMP_RLE", "HE5_HDFE_COMP_NBIT", "HE5_HDFE_COMP_SKPHUFF", "HE5_HDFE_COMP_DEFLATE", "HE5_HDFE_COMP_SZIP_CHIP", "HE5_HDFE_COMP_SZIP_K13", "HE5_HDFE_COMP_SZIP_EC", "HE5_HDFE_COMP_SZIP_NN", "HE5_HDFE_COMP_SZIP_K13orEC", "HE5_HDFE_COMP_SZIP_K13orNN", "HE5_HDFE_COMP_SHUF_DEFLATE", "HE5_HDFE_COMP_SHUF_SZIP_CHIP", "HE5_HDFE_COMP_SHUF_SZIP_K13", "HE5_HDFE_COMP_SHUF_SZIP_EC", "HE5_HDFE_COMP_SHUF_SZIP_NN", "HE5_HDFE_COMP_SHUF_SZIP_K13orEC", "HE5_HDFE_COMP_SHUF_SZIP_K13orNN"}; /* Compression code names */ CHECKNAME(za_name); CHECKPOINTER(datafield); CHECKPOINTER(dimlist); /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { numbertype = numbertype_in; } else { numbertype = HE5_EHconvdatatype((int) numbertype_in); } if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for defining field.\n"); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Setup error message strings */ /* --------------------------- */ strcpy(errbuf1, "HE5_ZAXZDname array too small.\nPlease increase "); strcat(errbuf1, "size of HE5_HDFE_NAMBUFSIZE in \"HE5_HdfEosDef.h\".\n"); strcpy(errbuf2, "HE5_ZAXZDdims array too small.\nPlease increase "); strcat(errbuf2, "size of HE5_HDFE_DIMBUFSIZE in \"HE5_HdfEosDef.h\".\n"); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAdefinefield", &fid, &heos_gid, &idx); if(status == FAIL ) return(status); /* initialize dims and maxdims array */ /* --------------------------------- */ for(i = 0; i < HE5_DTSETRANKMAX; i++) { dims[i] = 0; maxdims[i] = 0; } /* Allocate space for dimbuf, copy dimlist into it, & append comma */ /* --------------------------------------------------------------- */ dimbuf = (char *) calloc(strlen(dimlist) + 64, sizeof(char)); if(dimbuf == NULL) { H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* ******************************************************************** * C H E C K T H E C O N T E N T O F dimlist S T R I N G * ******************************************************************** */ strcpy(dimbuf, dimlist); strcat(dimbuf, ","); /* Find comma */ /* ---------- */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in za */ while (comma != NULL) { /* Copy dimension list entry to dimcheck */ /* ------------------------------------- */ dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); free(dimbuf); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get dimension size */ /* ------------------ */ dimsize = HE5_ZAdiminfo(zaID, dimcheck); if (dimsize > 0) { dims[rank] = dimsize; rank++; } else { /* * If dimension list entry not found - set error return * status, append name to utility buffer for error report */ status = FAIL; foundAllDim = 0; if (first == 1) strcpy(utlbuf, dimcheck); else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ strcpy(dimbuf, comma + 1); comma = strchr(dimbuf, ','); free(dimcheck); } free(dimbuf); /* If no dimensions found, report error */ /* ------------------------------------ */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Dimension(s) \"%s\" not found for \"%s\" field. \n", utlbuf, za_name); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* ************************************************************************ * C H E C K T H E C O N T E N T O F maxdimlist S T R I N G * ************************************************************************ */ /* Allocate space for dimbuf, copy maxdimlist into it, & append comma */ /* ------------------------------------------------------------------ */ if(maxdimlist != NULL) { dimbuf = (char *) calloc(strlen(maxdimlist) + 64, sizeof(char)); if(dimbuf == NULL) { H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Copy "maxdimlist" to "dimbuf", & append comma */ /* --------------------------------------------- */ strcpy(dimbuf, maxdimlist); strcat(dimbuf, ","); /* Find comma */ /* ---------- */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in za */ while (comma != NULL) { /* Copy dimension list entry to dimcheck */ /* ------------------------------------- */ dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); free(dimbuf); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get dimension size */ /* ------------------ */ dimsize = HE5_ZAdiminfo(zaID, dimcheck); if ( (dimsize > 0 && strcmp(dimcheck,"Unlim") != 0 ) || (dimsize == H5S_UNLIMITED && strcmp(dimcheck, "Unlim") == 0 ) ) { maxdims[maxrank] = dimsize; maxrank++; } else { /* * If dimension list entry not found - set error return * status, append name to utility buffer for error report */ status = FAIL; foundAllDim = 0; if (first == 1) strcpy(utlbuf, dimcheck); else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ strcpy(dimbuf, comma + 1); comma = strchr(dimbuf, ','); free(dimcheck); } free(dimbuf); /* If no dimensions found, report error */ /* ------------------------------------ */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Dimension(s) \"%s\" not found for \"%s\" field. \n", utlbuf, za_name); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* If maxrank !=rank then report error */ /* ------------------------------------ */ if ( maxrank != rank ) { status = FAIL; sprintf(errbuf,"Dimension rank doesn't match Maximum dimension rank. \n"); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } } /* "maxlist == NULL" ==> maxdims[]= dims[] */ /* ---------------------------------------- */ else { for(i = 0; i < rank; i++ ) maxdims[ i ] = dims[ i ]; } /* Find out if the dataset dimension is appendable */ /* ----------------------------------------------- */ for(i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } else { status = FAIL; H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_BADRANGE, "Maximum dimension size is smaller than Dimension size. \n"); HE5_EHprint("Error: Maximum dimension size is smaller than Dimension size, occured", __FILE__, __LINE__); return(status); } } /* Check for valid data type ID ("numbertype") */ /* ------------------------------------------- */ if (numbertype != HE5T_CHARSTRING) { if (H5Tequal(numbertype, H5T_NATIVE_CHAR) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_SCHAR) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_UCHAR) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_SHORT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_USHORT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_INT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_UINT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_LONG) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_ULONG) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_LLONG) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_ULLONG) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_FLOAT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_DOUBLE) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_LDOUBLE)!= SUCCEED && H5Tequal(numbertype, H5T_C_S1) != SUCCEED ) { H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, "Invalid (unsupported) data type. \n"); HE5_EHprint("Error: Invalid (unsupported) data type, occured", __FILE__, __LINE__); return(FAIL); } } /* Get the field group ID */ /*----------------------- */ if (strcmp(datafield, "Data Fields") == 0) { gid = HE5_ZAXZa[idx].data_id; } else { sprintf(errbuf,"Invalid (unsupported) field group. \n"); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (FAIL); } /* Create dataspace then create dataset */ /* ------------------------------------ */ if( HE5_ZAXZa[idx].plist == FAIL ) { HE5_ZAXZa[idx].plist = H5Pcreate(H5P_DATASET_CREATE); } /* Get dataset layout */ /* ------------------ */ layout = H5Pget_layout(HE5_ZAXZa[idx].plist); if( layout == H5D_LAYOUT_ERROR) { H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot get dataset layout.\n"); HE5_EHprint("Error: Cannot get dataset layout, occured", __FILE__, __LINE__); return(FAIL); } if(append == FALSE) data_space = H5Screate_simple(rank, dims, NULL); else { if( layout == H5D_CHUNKED) data_space = H5Screate_simple(rank, dims, maxdims); else { status = FAIL; H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, "Appendable dataset MUST BE CHUNKED first.\n"); HE5_EHprint("Error: Appendable dataset MUST BE CHUNKED first, occured", __FILE__, __LINE__); return(status); } } /* Get current compression code */ /* ---------------------------- */ compcode = HE5_ZAXZa[idx].compcode; /* Note: in inquiry routines HE5T_CHARSTRING is distinguished from HE5T_NATIVE_CHAR for the field data (not attributes) based on whether string has variable or fixed length as set below. The field data of type HE5T_NATIVE_CHAR has fixed length of 1, and the field is array of characters, not strings. However, HE5T_CHARSTRING sets array of vaiable length strings for the field data. Currently HE5_EHattr treats HE5T_NATIVE_CHAR, HE5T_CHARSTRING, and H5T_C_S1 as fixed (any size) for attributes. */ ntype = numbertype; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_C_S1)) { ntype = H5Tcopy(H5T_C_S1); status = H5Tset_size(ntype, H5T_VARIABLE); if( status == FAIL) { sprintf(errbuf, "Cannot set the total size for \"%s\" field. \n", za_name); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create dataset */ /* -------------- */ dataset = H5Dcreate(gid, za_name, ntype, data_space, HE5_ZAXZa[idx].plist); if (dataset == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create dataset for \"%s\" field. \n", za_name); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else if (numbertype == H5T_NATIVE_CHAR) { ntype = H5Tcopy(H5T_C_S1); status = H5Tset_size(ntype, 1); if( status == FAIL) { sprintf(errbuf, "Cannot set the total size for \"%s\" field. \n", za_name); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create dataset */ /* -------------- */ dataset = H5Dcreate(gid, za_name, ntype, data_space, HE5_ZAXZa[idx].plist); if (dataset == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create dataset for \"%s\" field. \n", za_name); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Create dataset */ /* -------------- */ dataset = H5Dcreate(gid, za_name, numbertype, data_space, HE5_ZAXZa[idx].plist); if (dataset == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create dataset for \"%s\" field. \n", za_name); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Extend the dataset. assure that dataset is at least dims */ /* -------------------------------------------------------- */ if( append == TRUE) { status = H5Dextend(dataset,dims); if (status == FAIL) { sprintf(errbuf, "Cannot extend the dataset for \"%s\" field.\n", za_name); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* load external array */ /* ------------------- */ /* store dataset IDs and dataset name */ /* ---------------------------------- */ if (HE5_ZAXZa[idx].nDFLD > 0) { /* Allocate memory to ddataset struct */ /* ---------------------------------- */ HE5_ZAXZa[idx].ddataset = (HE5_DTSinfo *)realloc((void *)HE5_ZAXZa[idx].ddataset,(HE5_ZAXZa[idx].nDFLD + 1) * sizeof(HE5_DTSinfo)); } else { HE5_ZAXZa[idx].ddataset = (HE5_DTSinfo *)calloc(1, sizeof(HE5_DTSinfo)); if (HE5_ZAXZa[idx].ddataset == NULL ) { status = FAIL; H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(status); } } /* Allocate memory to name */ /* ----------------------- */ HE5_ZAXZa[idx].ddataset[HE5_ZAXZa[idx].nDFLD].name = (char *)calloc( (strlen(za_name)+1), sizeof(char) ); if (HE5_ZAXZa[idx].ddataset[HE5_ZAXZa[idx].nDFLD].name == NULL) { status = FAIL; H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory.\n"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(status); } /* load table */ /* ---------- */ HE5_ZAXZa[idx].ddataset[HE5_ZAXZa[idx].nDFLD].ID = dataset; strcpy(HE5_ZAXZa[idx].ddataset[HE5_ZAXZa[idx].nDFLD].name, za_name); HE5_ZAXZa[idx].nDFLD++; if ((numbertype != HE5T_CHARSTRING) && (numbertype != H5T_NATIVE_CHAR) && (numbertype != H5T_C_S1)) { /* Get the size of a datatype in bytes */ /* ----------------------------------- */ tsize = H5Tget_size( numbertype); if( tsize == 0) { sprintf(errbuf, "Cannot get the size of a datatype. \n"); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (FAIL); } /* allocate memory for "fill" value */ /* -------------------------------- */ value = (void *)calloc(1, tsize); if( value == (void *)NULL) { sprintf(errbuf, "Cannot allocate memory for fill value.\n"); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (FAIL); } /* Try to retrieve the fill value (in case it's already defined) */ /* ------------------------------------------------------------- */ H5E_BEGIN_TRY { status = H5Pget_fill_value(HE5_ZAXZa[idx].plist, numbertype, value); } H5E_END_TRY; /* Store fill value in the dataset attribute "_FillValue" */ /* ----------------------------------------------------- */ if( status != FAIL) { status = HE5_EHattr( dataset, "_FillValue", numbertype, count, "w", value); if( status == FAIL ) { sprintf(errbuf, "Cannot store fill value in the attribute \"_FillValue\"."); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(value); return (status); } } free( value); } /* ****************************************************************** * SET UP METADATA STRINGS * ****************************************************************** */ /* set up "DimList" string content */ /* ------------------------------- */ strcpy(utlbuf,""); sprintf(utlbuf, "%s%s%s", za_name,":",dimlist); /* set up "MaxdimList" string content */ /* ----------------------------------- */ if ( maxdimlist != NULL) { status = HE5_EHmetalist(maxdimlist,maxdimlstbuf); if (status == FAIL) { sprintf(errbuf, "Cannot convert the input \"%s\" list to the metadata list. \n", maxdimlist); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } sprintf(utlbuf2,"%s%s",":\n\t\t\t\tMaxdimList=", maxdimlstbuf); strcat(utlbuf,utlbuf2); } if (maxdimlist == NULL) { status = HE5_EHmetalist(dimlist,dimlstbuf); if (status == FAIL) { sprintf(errbuf, "Cannot convert the input \"%s\" list to the metadata list.\n", dimlist); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } sprintf(utlbuf2,"%s%s",":\n\t\t\t\tMaxdimList=", dimlstbuf); strcat(utlbuf,utlbuf2); } /* setup "CompressionType" & "CompressionParams" strings content */ /* ------------------------------------------------------------- */ if (compcode != HE5_HDFE_COMP_NONE) { sprintf(utlbuf2,"%s%s","\n\t\t\t\tCompressionType=", HDFcomp[compcode]); switch (compcode) { case HE5_HDFE_COMP_NBIT: sprintf(compparmbuf, "%s%d,%d,%d,%d%s", "\n\t\t\t\tCompressionParams=(", HE5_ZAXZa[idx].compparm[0], HE5_ZAXZa[idx].compparm[1], HE5_ZAXZa[idx].compparm[2], HE5_ZAXZa[idx].compparm[3], ")"); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_DEFLATE: sprintf(compparmbuf,"%s%d","\n\t\t\t\tDeflateLevel=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_CHIP: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_K13: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_EC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_NN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_K13orEC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_K13orNN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_DEFLATE: sprintf(compparmbuf,"%s%d","\n\t\t\t\tDeflateLevel=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_CHIP: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_K13: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_EC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_NN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_K13orEC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_K13orNN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_ZAXZa[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; default: { sprintf(errbuf,"Compression code \"%d\" is not supported. \n", compcode); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } /* Concatanate compression parameters with compression code */ /* -------------------------------------------------------- */ strcat(utlbuf, utlbuf2); } /* ****************************************************************** * Insert metadata information to Structural Metadata section * ****************************************************************** */ numtype = HE5_EHdtype2numtype(numbertype); if (numtype == FAIL) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (numtype == 0) { metavalue = 0; } else { metavalue = HE5_EHhid2hsize(numtype); if (metavalue == 0) { sprintf(errbuf, "Cannot convert \"hid_t\" to \"hsize_t\" data type. \n"); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = HE5_EHinsertmeta(fid, HE5_ZAXZa[idx].zaname, "z", 4L, utlbuf, &metavalue); if (status == FAIL) { sprintf(errbuf, "Cannot insert metadata for \"%s\" field.\n", za_name); H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(data_space); if (status == FAIL) { H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, "Cannot release the data space ID.\n"); HE5_EHprint("Error: Cannot release the data space ID, occured", __FILE__, __LINE__); return(status); } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(HE5_ZAXZa[idx].plist); if (status == FAIL) { H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_PLIST, H5E_CLOSEERROR, "Cannot release the property list ID.\n"); HE5_EHprint("Error: Cannot release the property list ID, occured", __FILE__, __LINE__); return(status); } /* Reset external array entry for next dataset creation */ /* ==================================================== */ HE5_ZAXZa[idx].plist = FAIL; HE5_ZAXZa[idx].compcode = HE5_HDFE_COMP_NONE; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_C_S1)) { attr = HE5T_CHARSTRING; status = HE5_ZAwritelocattr(zaID, za_name, "ARRAYOFSTRINGS", H5T_NATIVE_INT, count, &attr); if (status == FAIL) { sprintf(errbuf, "Cannot write attribute to the field \"%s\".",za_name) ; H5Epush(__FILE__, "HE5_ZAdefinefield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefine | | | | DESCRIPTION: Defines data field within ZA structure (wrapper) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | za_name const char* za name | | dimlist char* Dimension (comma-separated)list | | maxdimlist char* Maximum Dimension (comma-separated) list| | dtype hid_t field data type ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAdefine(hid_t zaID, const char *za_name, char *dimlist, char *maxdimlist, hid_t dtype) { herr_t status = FAIL; /* routine return status variable */ HE5_LOCK; CHECKNAME(za_name); CHECKPOINTER(dimlist); /* Call HE5_ZAdefinefield routine */ /* ============================== */ status = HE5_ZAdefinefield(zaID, "Data Fields", za_name, dimlist,maxdimlist,dtype); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwritedatameta | | | | DESCRIPTION: Defines structural metadata for pre-existing data | | field within za structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname const char* fieldname | | dimlist char* Dimension list (comma-separated list) | | mvalue hid_t metavalue to insert | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | May 05 S.Zhao Added HE5_EHdtype2numtype() function call. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAwritedatameta(hid_t zaID, const char *fieldname, char *dimlist, hid_t mvalue) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hsize_t metavalue = 0; /* Metavalue to insert */ long idx = FAIL; /* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ char utlbuf[HE5_HDFE_DIMBUFSIZE];/* Utility buffer */ hid_t numtype = FAIL; /* Number type ID */ HE5_LOCK; CHECKNAME(fieldname); CHECKPOINTER(dimlist); numtype = HE5_EHdtype2numtype(mvalue); if (numtype == FAIL) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_ZAwritedatameta", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (numtype == 0) { metavalue = 0; } else { /* Convert 'numtype' to 'metavalue' */ /* -------------------------------- */ metavalue = HE5_EHhid2hsize(numtype); if ( metavalue == 0 ) { sprintf(errbuf, "Cannot convert metadata value. \n"); H5Epush(__FILE__, "HE5_ZAwritedatameta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAwritedatameta", &fid, &gid, &idx); if (status == SUCCEED) { /* Setup and write field metadata */ /* ------------------------------ */ sprintf(utlbuf, "%s%s%s", fieldname, ":", dimlist); status = HE5_EHinsertmeta(gid, HE5_ZAXZa[idx].zaname, "z", 4L, utlbuf, &metavalue); if ( status == FAIL ) { sprintf(errbuf, "Cannot insert metadata value. \n"); H5Epush(__FILE__, "HE5_ZAwritedatameta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwriteattr | | | | DESCRIPTION: Writes/updates attribute in a za. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | attrname const char* attribute name | | numbertype hid_t attribute dataset datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void* I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAwriteattr(hid_t zaID, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { numbertype = numtype; } /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAwriteattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Call HE5_EHattr to perform I/O */ /* ------------------------------ */ status = HE5_EHattr(HE5_ZAXZa[idx].za_id, attrname, numbertype, count,"w", datbuf); if ( status == FAIL ) { sprintf(errbuf, "Cannot write the attribute value. \n"); H5Epush(__FILE__, "HE5_ZAwriteattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAreadattr | | | | DESCRIPTION: Reads attribute from a za. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | attrname const char* attribute name | | | | OUTPUTS: | | datbuf void* I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAreadattr(hid_t zaID, const char *attrname, void *datbuf) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ntype = FAIL; /* Data type ID */ long idx = FAIL; /* za index */ hsize_t count[] ={0}; /* Number of elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAreadattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Call HE5_EHattr to perform I/O */ /* ------------------------------ */ status = HE5_EHattr(HE5_ZAXZa[idx].za_id, attrname, ntype, count,"r", datbuf); if ( status == FAIL ) { sprintf(errbuf, "Cannot read the attribute value. \n"); H5Epush(__FILE__, "HE5_ZAreadattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAattrinfo | | | | DESCRIPTION: Returns information about a za attribute | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | attrname const char* attribute name | | | | OUTPUTS: | | ntype hid_t* Data type ID | | count hsize_t* Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAattrinfo(hid_t zaID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get attribute group ID and call HE5_EHattrinfo */ /* ---------------------------------------------- */ status = HE5_EHattrinfo(HE5_ZAXZa[idx].za_id, attrname, ntype, count); if ( status == FAIL ) { sprintf(errbuf, "Cannot retrieve information about attribute. \n"); H5Epush(__FILE__, "HE5_ZAattrinfo", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqattrs | | | | DESCRIPTION: Retrieves information about attributes defined in ZA | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in za struct | | | | INPUTS: | | zaID hid_t ZA structure ID | | | | OUTPUTS: | | attrnames char* Attribute names in za struct | | (Comma-separated list) | | strbufsize long* Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqattrs(hid_t zaID, char *attrnames, long *strbufsize) { long nattr = FAIL;/* Number of attributes (return) */ long idx = FAIL;/* za index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* za group ID */ char *grpname = (char *)NULL;/* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAinqattrs", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc( HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_ZAinqattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/ZAS/"); strcat(grpname, HE5_ZAXZa[idx].zaname); nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); if ( nattr == FAIL ) { sprintf(errbuf, "Cannot find the attributes. \n"); H5Epush(__FILE__, "HE5_ZAinqattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } return (nattr); } #define REMQUOTE \ \ memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); \ utlstr[strlen(utlstr) - 2] = 0; /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqdims | | | | DESCRIPTION: Returns dimension names and values defined in ZA structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nDim long Number of defined dimensions | | | | INPUTS: | | zaID hid_t ZA structure ID | | | | OUTPUTS: | | dimlist char* Dimension names (comma-separated) | | dims hsize_t Dimension values | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqdims(hid_t zaID, char *dimlist, hsize_t dims[]) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* ZA index */ long nDim = 0; /* Number of dimensions */ hsize_t size = 0; /* Dimension size */ char *metabuf = (char *)NULL; /* Pointer to SM */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE]; /* Utility string */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and ZA index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAinqdims", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for ZA ID failed.\n"); H5Epush(__FILE__, "HE5_ZAinqdims", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* If dimension names or sizes are desired ... */ /* ------------------------------------------- */ if (dimlist != NULL || dims != NULL) { /* Get pointers to "Dimension" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_ZAXZa[idx].zaname, "z", "Dimension", metaptrs); /* If dimension names are desired then "clear" name buffer */ /* ------------------------------------------------------- */ if (dimlist != NULL) dimlist[0] = 0; /* Begin loop through dimension entries in metadata */ /* ------------------------------------------------ */ while (1) { /* Search for OBJECT string */ /* ------------------------ */ metaptrs[0] = strstr(metaptrs[0], "\t\tOBJECT="); /* If found within "Dimension" metadata section ... */ /* ------------------------------------------------ */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get Dimension Name (if desired) */ /* ------------------------------- */ if (dimlist != NULL) { /* Check 1st for old meta data then new */ /* ------------------------------------ */ HE5_EHgetmetavalue(metaptrs, "OBJECT", utlstr); /* * If OBJECT value begins with double quote then old * metadata, dimension name is OBJECT value. * Otherwise search for "DimensionName" string */ if (utlstr[0] != '"') { metaptrs[0] = strstr(metaptrs[0], "\t\t\t\tDimensionName="); HE5_EHgetmetavalue(metaptrs, "DimensionName", utlstr); } /* Strip off double quotes */ /* ----------------------- */ REMQUOTE /* If not first name then add comma delimitor */ /* ------------------------------------------ */ if (nDim > 0) { strcat(dimlist, ","); } /* Add dimension name to dimension list */ /* ------------------------------------ */ strcat(dimlist, utlstr); } /* Get Dimension Size (if desired) */ /* ------------------------------- */ if (dims != NULL) { HE5_EHgetmetavalue(metaptrs, "Size", utlstr); size = (hsize_t)atol(utlstr); dims[ nDim ] = size; } /* Increment dimension counter */ /* --------------------------- */ nDim++; } else /* No more dimensions found */ /* ------------------------ */ break; } free(metabuf); } return(nDim); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqfield | | | | DESCRIPTION: Returns fieldnames, ranks and numbertypes defined in ZA. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nFld long Number of data fields in ZA | | | | INPUTS: | | zaID hid_t ZA structure ID | | datafield char* data field | | | | OUTPUTS: | | fieldlist char* Field names (comma-separated) | | rank int Array of ranks | | numbertype hid_t Array of HDF number types | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | Oct 03 S.ZHAO Added the H5Tclose(datatype) call. | | Jan 04 S.Zhao Modified to enable a character string dataset. | | Mar 04 S.Zhao Modified for a character string dataset. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static long HE5_ZAinqfield(hid_t zaID, char *datafield, char *fieldlist, int rank[], hid_t numbertype[]) { long nFld = 0; /* Return number of mappings */ long i = 0; /* Loop index */ long idx = FAIL; /* za index */ long ntflds = 0; /* field counter */ herr_t status = FAIL;/* routine return status variable */ herr_t Dstatus = FAIL;/* Status for H5Dclose */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t datasetid = FAIL;/* Dataset ID */ hid_t datatype = FAIL;/* Data type ID */ hid_t groupid = FAIL;/* Group ID */ H5T_class_t classid = H5T_NO_CLASS; /* Data type class ID */ size_t slen[HE5_DTSETRANKMAX]; /* String length array */ size_t fldnmlen[HE5_FLDNUMBERMAX]; /* Array of namelengths */ char *fldnm[HE5_FLDNUMBERMAX]; /* Array of names */ char *metabuf = (char *)NULL; /* Pntr to SM */ char *metaptrs[2]={NULL,NULL}; /* Start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE]; /* Utility string */ char utlstr2[HE5_HDFE_UTLBUFSIZE];/* Utility string 2 */ char *ptr[HE5_DTSETRANKMAX]; /* String pointer array */ char *tempfield = (char *)NULL; char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ htri_t str_is_variable; /* boolean: TRUE if string is variable lengeth FALSE if string is fixed length -1 if error in H5Tis_variavle_str() */ CHECKPOINTER(datafield); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAinqfield", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed.\n"); H5Epush(__FILE__, "HE5_ZAinqfield", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Initialize slen[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) slen[i] = 0; /* Initialize fldnmlen[] array */ /* --------------------------- */ for (i = 0; i < HE5_FLDNUMBERMAX; i++) fldnmlen[i] = 0; /* If field names, ranks, or number types desired ... */ /* --------------------------------------------------- */ if (fieldlist != NULL || rank != NULL || numbertype != NULL) { /* Get pointers to "DataField" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup( fid, HE5_ZAXZa[idx].zaname, "z", "DataField", metaptrs); strcpy(utlstr2, "DataFieldName"); /* If field names are desired then "clear" name buffer */ /* --------------------------------------------------- */ if (fieldlist != NULL) fieldlist[0] = 0; /* Begin loop through mapping entries in metadata */ /* ---------------------------------------------- */ while (1) { /* Search for OBJECT string */ /* ------------------------ */ metaptrs[0] = strstr(metaptrs[0], "\t\tOBJECT="); /* If found within "Data" Field metadata section ... */ /* ------------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get field names (if desired) */ /* ---------------------------- */ if (fieldlist != NULL) { /* Check 1st for old meta data then new */ /* ------------------------------------ */ HE5_EHgetmetavalue(metaptrs, "OBJECT", utlstr); /* * If OBJECT value begins with double quote then old * metadata, field name is OBJECT value. Otherwise * search for "DataFieldName" string */ if (utlstr[0] != '"') { strcpy(utlstr, "\t\t\t\t"); strcat(utlstr, utlstr2); strcat(utlstr, "="); metaptrs[0] = strstr(metaptrs[0], utlstr); HE5_EHgetmetavalue(metaptrs, utlstr2, utlstr); } /* Strip off double quotes */ /* ----------------------- */ REMQUOTE /* Add to fieldlist */ /* ---------------- */ if (nFld > 0) strcat(fieldlist, ","); strcat(fieldlist, utlstr); } /* If numbertype are desired then "clear" name buffer */ /* --------------------------------------------------- */ if (numbertype != NULL) { ntflds = HE5_EHparsestr(fieldlist, ',', fldnm,fldnmlen); if(ntflds != FAIL) { groupid = HE5_ZAXZa[idx].data_id; for(i = 0; i < ntflds; i++) { tempfield = (char *)calloc(fldnmlen[i] + 1, sizeof(char)); memmove(tempfield,fldnm[i],fldnmlen[i]); /* Open the dataset */ /* ---------------- */ datasetid = H5Dopen(groupid, tempfield); if ( datasetid == FAIL ) { sprintf(errbuf, "Cannot open the dataset \"%s\". \n", tempfield); H5Epush(__FILE__, "HE5_ZAinqfield", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } /* Get the data type */ /* ----------------- */ datatype = H5Dget_type(datasetid); if ( datatype == FAIL ) { sprintf(errbuf, "Cannot get the data type ID. \n"); H5Epush(__FILE__, "HE5_ZAinqfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } /* Get the data type class ID */ /* -------------------------- */ classid = H5Tget_class(datatype); if ( classid == H5T_NO_CLASS ) { sprintf(errbuf, "Cannot get the data type class ID. \n"); H5Epush(__FILE__, "HE5_ZAinqfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } if (classid == H5T_STRING) { /* HE5T_CHARSTRING has variable length for data fields */ str_is_variable = H5Tis_variable_str(datatype); if(str_is_variable == TRUE) { numbertype[i] = HE5T_CHARSTRING; } else if(str_is_variable == FALSE) { numbertype[i] = HE5T_NATIVE_CHAR; } else { status = FAIL; sprintf(errbuf, "Failed to see if string field is varaible or fixed length.\n"); H5Epush(__FILE__, "HE5_ZAinqfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(status); } /*HE5_ZAgetstringtype(zaID, fieldname,classid);*/ /*numbertype[i] = HE5T_CHARSTRING;*/ } else { numbertype[i] = HE5_EHdtype2numtype(datatype); if ( numbertype[i] == FAIL ) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_ZAinqfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(datatype); if ( status == FAIL ) { sprintf(errbuf, "Cannot close the datatype \"%s\". \n", tempfield); H5Epush(__FILE__, "HE5_ZAinqfield", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } /* Release the dataset ID */ /* ---------------------- */ Dstatus = H5Dclose(datasetid); if ( Dstatus == FAIL ) { sprintf(errbuf, "Cannot close the dataset \"%s\". \n", tempfield); H5Epush(__FILE__, "HE5_ZAinqfield", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } free(tempfield); } } } /* * Get Rank (if desired) by counting # of dimensions in * "DimList" string */ if (rank != NULL) { HE5_EHgetmetavalue(metaptrs, "DimList", utlstr); rank[nFld] = HE5_EHlong2int(HE5_EHparsestr(utlstr, ',', ptr, slen) ); if (rank[nFld] == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_ZAinqfield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(metabuf != NULL) free(metabuf); return(FAIL); } } /* Increment field counter */ /* ----------------------- */ nFld++; } else /* No more fields found */ /* -------------------- */ break; } if (metabuf != NULL) free(metabuf); } COMPLETION: return(nFld); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinquire | | | | DESCRIPTION: Inquires about data fields in za | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nflds long Number of data fields in za | | | | INPUTS: | | zaID hid_t ZA structure ID | | | | OUTPUTS: | | za_name_list char* Field names (comma-separated) | | rank int Array of ranks | | dtype hid_t data type ID | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinquire(hid_t zaID, char *za_name_list, int rank[], hid_t dtype[]) { long nflds = FAIL; /* Number of Data fields */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Call "HE5_ZAinqfield" routine to get number of fields */ /* ----------------------------------------------------- */ nflds = HE5_ZAinqfield(zaID, "Data Fields", za_name_list, NULL, NULL); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_ZAinquire", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call "HE5_ZAinqfield" routine to get other parameters */ /* ----------------------------------------------------- */ nflds = HE5_ZAinqfield(zaID, "Data Fields", za_name_list, rank, dtype); if (nflds == FAIL) { sprintf(errbuf, "Inquiry about fields in \"Data Fields\" group fails. \n"); H5Epush(__FILE__, "HE5_ZAinquire", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return(nflds); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqdatatype | | | | DESCRIPTION: Inquires about data field in za | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t | | fieldname const char* | | attrname const char* | | group int Group flag: | | ...DATAGROUP - for the field | | ...ATTRGROUP, ...GRPATTRGROUP, | | ...LOCATTRGROUP - for the attribute | | OUTPUTS: | | datatype hid_t* | | classid H5T_class_t* | | order H5T_order_t* | | size size_t* | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAinqdatatype(hid_t zaID, const char *fieldname, const char *attrname, int group, hid_t *datatype, H5T_class_t *classid, H5T_order_t *order, size_t *size) { herr_t status = FAIL; /* routine return status */ int fldgroup = FAIL; /* Field group flag */ hid_t datasetid = FAIL; /* Dataset ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t attr = FAIL; /* attribute dataset ID */ hid_t fldgroupID = FAIL; /* Field group ID */ hid_t fieldID = FAIL; /* Field dataset ID */ long idx = FAIL; /* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAinqdatatype", &fid, &gid, &idx); if(status == SUCCEED) { if(group == HE5_HDFE_DATAGROUP) fldgroupID = HE5_ZAXZa[idx].data_id; else if(group == HE5_HDFE_ATTRGROUP) fldgroupID = HE5_ZAXZa[idx].za_id; else if(group == HE5_HDFE_GRPATTRGROUP) fldgroupID = HE5_ZAXZa[idx].data_id; else if(group == HE5_HDFE_LOCATTRGROUP) { /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_ZAfldsrch(zaID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (fldgroup == HE5_HDFE_DATAGROUP) fldgroupID = HE5_ZAXZa[idx].data_id; } else { sprintf(errbuf, "Invalid group flag (\"%d\"). \n", group); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data type information for the field */ /* --------------------------------------- */ if( group == HE5_HDFE_DATAGROUP ) { datasetid = H5Dopen(fldgroupID, fieldname); if (datasetid == FAIL) { sprintf(errbuf, "Cannot open the dataset for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_DATASET, H5E_NOTFOUND , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *datatype = H5Dget_type(datasetid); if (*datatype == FAIL) { sprintf(errbuf, "Cannot get the datatype for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classid = H5Tget_class(*datatype); if (*classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *order = H5Tget_order(*datatype); if (*order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classid == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*datatype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Dclose(datasetid); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Get data type information about global/group attribute */ /* ------------------------------------------------------ */ else if(group == HE5_HDFE_ATTRGROUP || group == HE5_HDFE_GRPATTRGROUP) { attr = H5Aopen_name(fldgroupID, attrname); if (attr == FAIL) { sprintf(errbuf, "Cannot open the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *datatype = H5Aget_type(attr); if (*datatype == FAIL) { sprintf(errbuf, "Cannot get the data type for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classid = H5Tget_class(*datatype); if (*classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *order = H5Tget_order(*datatype); if (*order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classid == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*datatype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Aclose(attr); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Get data type information for local attribute */ /* --------------------------------------------- */ else if(group == HE5_HDFE_LOCATTRGROUP) { fieldID = H5Dopen(fldgroupID, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset.\n", fieldname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } attr = H5Aopen_name(fieldID, attrname); if (attr == FAIL) { sprintf(errbuf, "Cannot open the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *datatype = H5Aget_type(attr); if (*datatype == FAIL) { sprintf(errbuf, "Cannot get the data type for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classid = H5Tget_class(*datatype); if (*classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *order = H5Tget_order(*datatype); if (*order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classid == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*datatype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Aclose(attr); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Dclose(fieldID); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_ZAinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAchunkinfo | | | | DESCRIPTION: Retrieves chunking information | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fldname char* name of field | | | | OUTPUTS: | | chunk_rank int* rank of a dataset | | chunk_dims hsize_t the array containing sizes | | of each dimension of a chunk | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================== | | Dec 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAchunkinfo(hid_t zaID, char *fldname, int *chunk_rank, hsize_t chunk_dims[]) { herr_t status = FAIL;/* Return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* ZA index */ hid_t fieldID = FAIL;/* field dataset ID */ hid_t plist = FAIL;/* field dataset property list ID */ hid_t dspace = FAIL;/* "fieldname" Dataspace ID */ int ndims = 0; /* Number of dimensions */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Storage layout type */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fldname); /* Initialize chunk_rank to FAIL (error) */ /* ------------------------------------- */ *chunk_rank = FAIL; /* Get HDF-EOS file ID, "HDFEOS" group ID and ZA index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAchunkinfo", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf,"Checking for valid ZA ID failed.\n"); H5Epush(__FILE__, "HE5_ZAchunkinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check out the field group and get field ID */ /* ------------------------------------------ */ HE5_ZAfldsrch(zaID,fldname,&fieldID,NULL,NULL,NULL); if(fieldID == FAIL) { sprintf(errbuf, "Cannot get the field ID for the \"%s\" field.\n", fldname); H5Epush(__FILE__, "HE5_ZAchunkinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the property list ID */ /* ------------------------ */ plist = H5Dget_create_plist(fieldID); if (plist == FAIL) { sprintf(errbuf, "Cannot get the property list ID for the \"%s\" data field.\n", fldname); H5Epush(__FILE__, "HE5_ZAchunkinfo", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the data space ID */ /* --------------------- */ dspace = H5Dget_space(fieldID); if(dspace == FAIL) { sprintf(errbuf, "Cannot get the data space ID for the \"%s\" data field.\n", fldname); H5Epush(__FILE__, "HE5_ZAchunkinfo", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the dataset rank */ /* -------------------- */ ndims = H5Sget_simple_extent_ndims(dspace); if(ndims == FAIL) { sprintf(errbuf, "Cannot get the rank of the dataset.\n"); H5Epush(__FILE__, "HE5_ZAchunkinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get Layout */ /* ---------- */ layout = H5Pget_layout(plist); if (layout == H5D_LAYOUT_ERROR) { sprintf(errbuf, "Cannot get the layout of the raw data. \n"); H5Epush(__FILE__, "HE5_ZAchunkinfo", __LINE__, H5E_PLIST, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (layout == H5D_CHUNKED) { /* Get chunking */ /* ------------ */ *chunk_rank = H5Pget_chunk(plist, ndims, chunk_dims); if (*chunk_rank == FAIL) { sprintf(errbuf, "Cannot get the sizes of chunks. \n"); H5Epush(__FILE__, "HE5_ZAchunkinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else { *chunk_rank = 0; } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release property list ID. \n"); H5Epush(__FILE__, "HE5_ZAchunkinfo", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(dspace); if( status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_ZAchunkinfo", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAnentries | | | | DESCRIPTION: Returns number of entries and string buffer size | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nEntries long Number of entries | | | | INPUTS: | | zaID hid_t ZA structure ID | | entrycode int Entry code: | | | | HE5_HDFE_NENTDIM (0) | | HE5_HDFE_NENTMAP (1) | | HE5_HDFE_NENTIMAP (2) | | HE5_HDFE_NENTDFLD (4) | | | | OUTPUTS: | | strbufsize long* Length of comma-separated list | | (Does not include null-terminator) | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAnentries(hid_t zaID, int entrycode, long *strbufsize) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* za index */ long nEntries = 0; /* Number of entries */ long metaflag = FAIL;/* Old (0), New (1) metadata flag) */ long nVal = 0; /* Number of strings to search for */ long i; /* Loop index */ char *metabuf = (char *)NULL; /* Ptr to SM */ char *metaptrs[2]={NULL,NULL}; /* Start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE];/* Utility string */ char valName[2][32]; /* Strings to search for */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAnentries", &fid, &gid, &idx); if (status == SUCCEED) { /* Zero out string buffer size */ /* --------------------------- */ *strbufsize = 0; /* * Get pointer to relevant section within SM and Get names of * metadata strings to inquire about */ switch (entrycode) { case HE5_HDFE_NENTDIM: /* Dimensions */ /* ---------- */ { metabuf = (char *)HE5_EHmetagroup(fid, HE5_ZAXZa[idx].zaname, "z", "Dimension", metaptrs); nVal = 1; strcpy(&valName[0][0], "DimensionName"); } break; case HE5_HDFE_NENTMAP: /* Dimension Maps */ /* -------------- */ { metabuf = (char *)HE5_EHmetagroup(fid, HE5_ZAXZa[idx].zaname, "z", "DimensionMap", metaptrs); nVal = 1; strcpy(&valName[0][0], "DataDimension"); } break; case HE5_HDFE_NENTIMAP: /* Indexed Dimension Maps */ /* ---------------------- */ { metabuf = (char *)HE5_EHmetagroup(fid, HE5_ZAXZa[idx].zaname, "z","IndexDimensionMap", metaptrs); nVal = 1; strcpy(&valName[0][0], "DataDimension"); } break; case HE5_HDFE_NENTDFLD: /* Data Fields */ /* ----------- */ { metabuf = (char *)HE5_EHmetagroup(fid, HE5_ZAXZa[idx].zaname, "z", "DataField", metaptrs); nVal = 1; strcpy(&valName[0][0], "DataFieldName"); } break; default: { sprintf(errbuf,"Invalid (unsupported) entry code \"%d\". \n", entrycode); H5Epush(__FILE__, "HE5_ZAnentries", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } if ( metabuf == NULL ) { nEntries = FAIL; sprintf(errbuf,"Cannot get the number of entries. \n"); H5Epush(__FILE__, "HE5_ZAnentries", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(nEntries); } /* * Check for presence of 'GROUP="' string If found then old metadata, * search on OBJECT string */ metaflag = (strstr(metabuf, "GROUP=\"") == NULL) ? 1 : 0; if (metaflag == 0) { nVal = 1; strcpy(&valName[0][0], "\t\tOBJECT"); } /* Begin loop through entries in metadata */ /* -------------------------------------- */ while (1) { /* Search for first string */ /* ----------------------- */ strcpy(utlstr, &valName[0][0]); strcat(utlstr, "="); metaptrs[0] = strstr(metaptrs[0], utlstr); /* If found within relevant metadata section ... */ /* --------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { for (i = 0; i < nVal; i++) { /* * Get all string values Don't count quotes */ status = HE5_EHgetmetavalue(metaptrs, &valName[i][0], utlstr); if ( status == FAIL ) { nEntries = FAIL; sprintf(errbuf,"Cannot get metavalue. \n"); H5Epush(__FILE__, "HE5_ZAnentries", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(metabuf); return(nEntries); } *strbufsize += strlen(utlstr) - 2; } /* Increment number of entries */ /* --------------------------- */ nEntries++; /* Go to end of OBJECT */ /* ------------------- */ metaptrs[0] = strstr(metaptrs[0], "END_OBJECT"); } else /* No more entries found */ /* --------------------- */ { break; } } if (metabuf != NULL) free(metabuf); /* Count comma separators & slashes (if mappings) */ /* ---------------------------------------------- */ if (nEntries > 0) { *strbufsize += nEntries - 1; *strbufsize += (nVal - 1) * nEntries; } } return(nEntries); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqza | | | | DESCRIPTION: Returns number and names of ZA structures in file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nZA long Number of ZA structures in file | | | | INPUTS: | | filename const char* HDF-EOS filename | | | | OUTPUTS: | | zalist char* List of za names (comma-separated) | | strbufsize long* Length of zalist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqza(const char *filename, char *zalist, long *strbufsize) { long nZA = FAIL; /* Number of zas in file */ herr_t status = FAIL; /* Return status variable */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(filename); /* Call "HE5_EHinquire" routine */ /* ---------------------------- */ nZA = HE5_EHinquire(filename, "/HDFEOS/ZAS", zalist, strbufsize); if ( nZA == FAIL ) { sprintf(errbuf,"Cannot get information about ZA. \n"); H5Epush(__FILE__, "HE5_ZAinqza", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } COMPLETION: return(nZA); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwrrdfield | | | | DESCRIPTION: Writes/Reads fields | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fldname char* field name | | code char* Write/Read code (w/r) | | start hssize_t start array | | stride hsize_t stride array | | count hsize_t count array | | datbuf void data buffer for read | | | | OUTPUTS: | | datbuf void data buffer for write | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | Jan 04 S.Zhao Added to write/read a character string dataset. | | Apr 04 S.Zhao Modified for a character string dataset. | | Feb 05 S.Zhao Replaced the "count" array by the "dims" array if | | it was declared larger than the dimension size. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_ZAwrrdfield(hid_t zaID, char *fldname, char *code, const hssize_t start[], const hsize_t stride[], const hsize_t count[], void *datbuf) { herr_t status = FAIL; /* routine return status variable */ int i; /* Loop index */ int startf = 0; /* flag (if start is NULL) */ int countf = 0; /* flag (if counf is NULL) */ int bothf = 0; /* flag (if start and count are NULL) */ int append = FALSE;/* FLAG (if field is appendible) */ int rank = FAIL; /* Rank of dataset */ int maxrank = 0; /* Rank dummy variable */ int nameflag = FAIL; /* Actual (1)/Alias (0) field name */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t fieldID = FAIL;/* fieldname Dataset ID */ hid_t fspace = FAIL;/* file data space ID */ hid_t mid = FAIL;/* memory data space ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t tid = FAIL;/* datatype ID */ hid_t mtype = FAIL;/* Memory data type ID */ long idx = FAIL;/* za index */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ hsize_t maxdims[HE5_DTSETRANKMAX];/* Field maximum dimensions */ hssize_t *tstart =(hssize_t *)NULL;/* Not NULL "start" value */ hsize_t *tcount = (hsize_t *)NULL;/* Not NULL "count" value */ hsize_t *lcount = (hsize_t *)NULL; hsize_t dimsize = 0; /* Field dimension size */ hsize_t size[HE5_DTSETRANKMAX]; /* Extended dimension size */ hid_t ntype[1] = {FAIL}; /* Datatype ID */ char *dimbuf = (char *)NULL; char *comma = (char *)NULL; char *dimcheck = (char *)NULL; char fieldname[HE5_HDFE_NAMBUFSIZE]; /* Field name buffer */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual field name */ char maxdimlist[HE5_HDFE_DIMBUFSIZE]; /* Maximum dimension list */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ H5T_class_t classid = H5T_NO_CLASS; /* data type class ID */ int ibuf; /* Loop index */ char **chardatbuf = NULL; /* string data buffer */ int maxlen = 0; /* max length in array of string */ int strsize = 0; /* each str length in array of str */ hsize_t numattr[1]; /* number of attribute elements */ int mycount = 0; /* flag */ long strbufsize1; /* string buffer size */ long strbufsize2; /* string buffer size */ long nattr = 0; /* number of attributes */ char *attrlist1 = (char *)NULL;/* attribute list */ char *attrlist2 = (char *)NULL;/* attribute list */ char *attptr = (char *)NULL; /* attribute pointer */ CHECKNAME(fldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAwrrdfield", &fid, &gid, &idx); if (status == FAIL) return(status); /* Call HE5_ZAfldnameinfo() to get actual field name */ /* ------------------------------------------------- */ nameflag = HE5_ZAfldnameinfo(zaID, fldname, fldactualname); if ( nameflag == FAIL ) { sprintf(errbuf, "Cannot get actual name of the field.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__,H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Name is not alias */ /* ----------------- */ if (nameflag == TRUE) { strcpy(fieldname,""); strcpy(fieldname,fldname); } /* Name is an alias */ /* ---------------- */ if (nameflag == FALSE) { strcpy(fieldname,""); strcpy(fieldname,fldactualname); } /* Initialize dims[]/maxdims[]/size[] arrays */ /* ----------------------------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) { dims[i] = 0; maxdims[i] = 0; size[i] = 0; } /* Check whether fieldname is in dataset (multi-dim field) */ /* ------------------------------------------------------- */ status = HE5_ZAinfo(zaID, fieldname, &rank, dims, ntype, NULL, maxdimlist); if( status == FAIL ) { sprintf(errbuf,"Cannot get information about \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Find out if the field is appendable */ /* ----------------------------------- */ dimbuf = (char *) calloc(strlen(maxdimlist) + 64, sizeof(char)); if(dimbuf == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(dimbuf,maxdimlist); strcat(dimbuf,","); comma = strchr(dimbuf,','); while(comma != NULL) { dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimbuf); return(FAIL); } memmove(dimcheck,dimbuf,comma-dimbuf); /* Get dimension size */ /* ------------------ */ dimsize = HE5_ZAdiminfo(zaID, dimcheck); if ( (dimsize > 0 && strcmp(dimcheck,"Unlim") != 0 ) || (dimsize == H5S_UNLIMITED && strcmp(dimcheck,"Unlim") == 0 ) ) { maxdims[maxrank] = dimsize; maxrank++; } strcpy(dimbuf,comma+1); comma = strchr(dimbuf,','); free(dimcheck); } free(dimbuf); for(i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } else { sprintf(errbuf,"Maximum dimension size is smaller than dimension size.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } if(start == NULL) { tstart = (hssize_t *)calloc(rank, sizeof(hssize_t)); for(i = 0; i < rank; i++) tstart[ i ] = 0; startf = 1; } if(count == NULL) { tcount = (hsize_t *)calloc(rank, sizeof(hsize_t)); for(i = 0; i < rank; i++) tcount[ i ] = dims[ i ]; if(startf == 1) bothf = 1; else countf = 1; } else { lcount = (hsize_t *)calloc(rank, sizeof(hsize_t)); for(i = 0; i < rank; i++) { if(count[ i ] > dims[ i ]) lcount[ i ] = dims[ i ]; else lcount[ i ] = count[ i ]; } } if (append == TRUE) { /* Get the field-related dataset ID */ /* -------------------------------- */ HE5_ZAfieldsizeID(zaID, fieldname, &fieldID); if(bothf == 1) status = H5Dextend(fieldID, tcount); else if(startf == 1) status = H5Dextend(fieldID, lcount); else if(countf == 1) status = H5Dextend(fieldID, tcount); else { for(i = 0; i < rank; i++) size[ i ] = start[ i ] + lcount[ i ]; /* Extend the dataset size */ /* ----------------------- */ status = H5Dextend(fieldID, size); } if( status == FAIL) { sprintf(errbuf,"Cannot extend the dataset. \n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } } if (append == FALSE) { /* Get the field-related dataset ID */ /* -------------------------------- */ HE5_ZAfieldsizeID(zaID, fieldname, &fieldID); } /* Get the file space ID */ /* --------------------- */ fspace = H5Dget_space(fieldID ); if( fspace == FAIL) { sprintf(errbuf,"Cannot get data space ID. \n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Select the hyperslab */ /* -------------------- */ if(bothf == 1) status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)tstart,stride,tcount,NULL); else if(startf == 1) status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)tstart,stride,lcount,NULL); else if(countf == 1) status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)start,stride,tcount,NULL); else status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)start,stride,lcount,NULL) ; if( status == FAIL ) { sprintf(errbuf,"Cannot select a hyperslab. \n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Define memory space */ /* =================== */ if(countf == 1 || bothf == 1) mid = H5Screate_simple(rank, tcount, NULL); else mid = H5Screate_simple(rank, lcount, NULL); if( mid == FAIL) { sprintf(errbuf,"Cannot create the data space.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASPACE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Get the data type ID */ /* -------------------- */ tid = H5Dget_type(fieldID ); if( tid == FAIL ) { sprintf(errbuf,"Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Get the data type class ID */ /* -------------------------- */ classid = H5Tget_class(tid); if (classid == H5T_NO_CLASS) { sprintf(errbuf,"Cannot get the data type class ID.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Write/read whole data to/from the dataset */ /* ========================================= */ if( strcmp(code,"w") == 0) { strbufsize1 = 0; nattr = HE5_ZAinqlocattrs(zaID, fieldname, NULL, &strbufsize1); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } attrlist1 = (char *) calloc(strbufsize1 + 2, sizeof(char)); if (attrlist1 == NULL) { sprintf(errbuf, "Cannot allocate memory for attrlist1.\n") ; H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } nattr = HE5_ZAinqlocattrs(zaID, fieldname, attrlist1, &strbufsize1); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } attptr = strstr(attrlist1,"ARRAYOFSTRINGS"); if ( (classid == H5T_STRING) && (attptr == NULL) ) { status = H5Dwrite(fieldID, tid, mid, fspace, H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } else if ( (classid == H5T_STRING) && (attptr != NULL) ) { strbufsize2 = 0; nattr = HE5_ZAinqlocattrs(zaID, fieldname, NULL, &strbufsize2); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } attrlist2 = (char *) calloc(strbufsize2 + 2, sizeof(char)); if (attrlist2 == NULL) { sprintf(errbuf, "Cannot allocate memory for attrlist2.\n") ; H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } nattr = HE5_ZAinqlocattrs(zaID, fieldname, attrlist2, &strbufsize2); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } if ( (nattr == 0) || ((attptr = strstr(attrlist2,"StringLengthAttribute")) == NULL) ) { chardatbuf = (char **)datbuf; if (count == NULL) mycount = tcount[0]; if (count != NULL) mycount = *lcount; for (ibuf = 0; ibuf < mycount; ibuf++) { if (chardatbuf[ibuf] == NULL) strsize = 0; else strsize = strlen(chardatbuf[ibuf]); if (strsize > maxlen) maxlen = strsize; } numattr[0] = 1; status = HE5_ZAwritelocattr(zaID, fieldname, "StringLengthAttribute", H5T_NATIVE_INT, numattr, &maxlen); if (status == FAIL) { sprintf(errbuf, "Cannot write attribute to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } status = H5Dwrite(fieldID, tid, mid, fspace, H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } else { /* Get memory data type ID */ /* ----------------------- */ mtype = HE5_EHdtype2mtype(tid); if( mtype == FAIL ) { sprintf(errbuf,"Cannot convert to memory data type.\n"); status = FAIL; H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } status = H5Dwrite(fieldID, mtype, mid, fspace, H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } } else { if (classid == H5T_STRING) { /* Read the data buffer */ /* -------------------- */ status = H5Dread(fieldID, tid, mid, fspace , H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot read data from the dataset.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } else { /* Get memory data type ID */ /* ----------------------- */ mtype = HE5_EHdtype2mtype(tid); if( mtype == FAIL ) { sprintf(errbuf,"Cannot convert to memory data type.\n"); status = FAIL; H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } /* Read the data buffer */ /* -------------------- */ status = H5Dread(fieldID, mtype, mid, fspace , H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot read data from the dataset.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } } if ( count == NULL) { if(tcount != NULL) free(tcount); } if( start == NULL) { if(tstart != NULL) free(tstart); } if (lcount != NULL) free(lcount); /* Release data space ID */ /* --------------------- */ status = H5Sclose(mid); if( status == FAIL ) { sprintf(errbuf,"Cannot release memory data space ID.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(fspace); if( status == FAIL ) { sprintf(errbuf,"Cannot release the file data space ID.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(tid); if( status == FAIL ) { sprintf(errbuf,"Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_ZAwrrdfield", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwrite | | | | DESCRIPTION: Writes data to field | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | za_name char* za name | | start hssize_t start array | | stride hsize_t stride array | | count hsize_t count array | | | | OUTPUTS: | | datbuf void* data buffer for write | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAwrite(hid_t zaID, char *za_name, const hssize_t start[], const hsize_t stride[], const hsize_t count[], void *datbuf) { herr_t status = FAIL;/* routine return status variable */ HE5_LOCK; CHECKNAME(za_name); CHECKPOINTER(datbuf); status = HE5_ZAwrrdfield(zaID, za_name, "w", start, stride, count, datbuf); COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAread | | | | DESCRIPTION: Reads data from field | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | za_name char* za name | | start hssize_t start array | | stride hsize_t stride array | | count hsize_t count array | | datbuf void* data buffer for read | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAread(hid_t zaID, char *za_name, const hssize_t start[], const hsize_t stride[], const hsize_t count[], void *datbuf) { herr_t status = FAIL;/* routine return status variable */ HE5_LOCK; CHECKPOINTER(za_name); status = HE5_ZAwrrdfield(zaID, za_name, "r", start, stride, count, datbuf); COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAfldsrch | | | | DESCRIPTION: Retrieves information about field DATASET | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | fldgroup int Flag representing the group: | | "Data Fields". (-1) FAILS. | | INPUTS: | | zaID hid_t ZA structure ID | | fldname char field name | | | | OUTPUTS: | | fieldID hid_t Field dataset ID | | rank int dataset Rank | | dims hsize_t Dimensions of field | | typeID hid_t Data type ID | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAfldsrch(hid_t zaID, char *fldname, hid_t *fieldID, int *rank, hsize_t dims[], hid_t *typeID) { int fldgroup = FAIL; /* Field group flag (return value) */ int i; /* Loop index */ int nameflag = FAIL; /* Alias (0) /actual (1) name flag */ herr_t status = FAIL; /* routine return status variable */ hid_t idx = FAIL; /* za index */ hid_t idOffset = HE5_ZAIDOFFSET;/* za ID offset */ hid_t spaceID = FAIL; /* File data space ID */ char fieldname[HE5_HDFE_NAMBUFSIZE]; /* Buffer for name of a field */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual name of a field */ char fldtype ='n'; /* Internal group discriminating flag */ char name[HE5_HDFE_NAMBUFSIZE]; /* Field Name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Buffer for error message */ CHECKPOINTER(fldname); /* Compute "reduced" za ID */ /* ----------------------- */ idx = zaID % idOffset; /* Call HE5_ZAfldnameinfo() to get actual field name */ /* ------------------------------------------------- */ nameflag = HE5_ZAfldnameinfo(zaID, fldname, fldactualname); if (nameflag == FAIL) { sprintf(errbuf, "Cannot get actual name of the field.\n"); H5Epush(__FILE__, "HE5_ZAfldsrch", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (nameflag == FALSE) { strcpy(fieldname,""); strcpy(fieldname,fldactualname); } if (nameflag == TRUE) { strcpy(fieldname,""); strcpy(fieldname,fldname); } /* Loop through all data datasets in za */ /* ------------------------------------ */ for (i = 0; i < HE5_ZAXZa[idx].nDFLD; i++) { /* get dataset name */ /* ---------------- */ strcpy(name, HE5_ZAXZa[idx].ddataset[i].name); if( strcmp(fieldname, name) == 0 ) { fldtype ='d'; fldgroup = HE5_HDFE_DATAGROUP; break; } } if (fieldID != NULL) { /* Get dataset ID */ /* ============== */ if( fldtype =='d') *fieldID = HE5_ZAXZa[idx].ddataset[i].ID; else { sprintf(errbuf,"Cannot find \"%s\" field in za. Check the spelling.\n", fieldname); H5Epush(__FILE__, "HE5_ZAfldsrch", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data space ID */ /* ----------------- */ spaceID = H5Dget_space(*fieldID); if (spaceID == FAIL) { sprintf(errbuf,"Cannot get the data space ID.\n"); H5Epush(__FILE__, "HE5_ZAfldsrch", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (rank != NULL) { /* Get dataset rank */ /* ---------------- */ *rank = H5Sget_simple_extent_ndims(spaceID); if (*rank == FAIL) { sprintf(errbuf,"Cannot get the dataset rank.\n"); H5Epush(__FILE__, "HE5_ZAfldsrch", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } if (typeID != NULL || dims != NULL) { /* Get data type ID */ /* ---------------- */ *typeID = H5Dget_type(*fieldID); if (*typeID == FAIL) { sprintf(errbuf,"Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_ZAfldsrch", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get dimension sizes */ /* ------------------- */ status = H5Sget_simple_extent_dims(spaceID, dims, NULL); if (status == FAIL) { sprintf(errbuf,"Cannot get the data space dimension sizes.\n"); H5Epush(__FILE__, "HE5_ZAfldsrch", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(*typeID); if (status == FAIL) { sprintf(errbuf,"Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_ZAfldsrch", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(spaceID); if (status == FAIL) { sprintf(errbuf,"Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_ZAfldsrch", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } COMPLETION: return(fldgroup); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdetach | | | | DESCRIPTION: Detachs za structure and performs housekeeping | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAdetach(hid_t zaID) { herr_t status = FAIL; /* Return status variable */ long idx = FAIL; /* za index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ int k; /* Loop indices */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAdetach", &fid, &gid, &idx); if (status == SUCCEED) { /* "Detach" from previously attached "Data Fields" datasets */ /* -------------------------------------------------------- */ if( HE5_ZAXZa[idx].nDFLD > 0 ) { for (k = 0; k < HE5_ZAXZa[idx].nDFLD; k++) { if ( HE5_ZAXZa[idx].ddataset[k].ID > 0 ) { status = H5Dclose(HE5_ZAXZa[idx].ddataset[k].ID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data dataset ID. \n") ; H5Epush(__FILE__, "HE5_ZAdetach", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if(HE5_ZAXZa[idx].ddataset[k].name != NULL) free(HE5_ZAXZa[idx].ddataset[k].name); } if (HE5_ZAXZa[idx].ddataset != NULL) free(HE5_ZAXZa[idx].ddataset); } /* Detach from the za groups */ /* ------------------------- */ if ( HE5_ZAXZa[idx].data_id > 0 ) { status = H5Gclose(HE5_ZAXZa[idx].data_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the \"Data Fields\" group ID. \n") ; H5Epush(__FILE__, "HE5_ZAdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if ( HE5_ZAXZa[idx].za_id > 0 ) { status = H5Gclose(HE5_ZAXZa[idx].za_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the za group ID. \n") ; H5Epush(__FILE__, "HE5_ZAdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Delete entries from External Arrays */ /* ----------------------------------- */ HE5_ZAXZa[idx].active = 0; HE5_ZAXZa[idx].data_id = 0; HE5_ZAXZa[idx].ddataset = NULL; HE5_ZAXZa[idx].fid = 0; HE5_ZAXZa[idx].za_id = 0; HE5_ZAXZa[idx].obj_id = 0; HE5_ZAXZa[idx].nDFLD = 0; } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAsetfillvalue | | | | DESCRIPTION: Sets fill value for the specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char* field name | | numbertype hid_t number type | | fillval void* fill value | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | Mar 04 S.Zhao Modified for a character string dataset. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAsetfillvalue(hid_t zaID, char *fieldname, hid_t numbertype_in, void *fillval) { herr_t status = FAIL;/* return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKPOINTER(fillval); /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { numbertype = numbertype_in; } else { numbertype = HE5_EHconvdatatype((int) numbertype_in); } if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for fillvalue.\n"); H5Epush(__FILE__, "HE5_ZAsetfillvalue", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAsetfillvalue", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for valid za ID failed.\n"); H5Epush(__FILE__, "HE5_ZAsetfillvalue", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get current dataset creation property list */ /* ------------------------------------------ */ if( HE5_ZAXZa[idx].plist == FAIL) { HE5_ZAXZa[idx].plist = H5Pcreate(H5P_DATASET_CREATE); if (HE5_ZAXZa[idx].plist == FAIL) { sprintf(errbuf,"Cannot create the dataset property list.\n"); H5Epush(__FILE__, "HE5_ZAsetfillvalue", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Set fill value */ /* -------------- */ if ((numbertype != HE5T_CHARSTRING) && (numbertype != H5T_NATIVE_CHAR) && (numbertype != H5T_C_S1)) { status = H5Pset_fill_value(HE5_ZAXZa[idx].plist, numbertype, fillval); if(status == FAIL) { sprintf(errbuf,"Cannot set fill value for \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAsetfillvalue", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgetfillvalue | | | | DESCRIPTION: Retrieves fill value for a specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char* field name | | | | OUTPUTS: | | fillval void* fill value | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAgetfillvalue(hid_t zaID, char *fieldname, void *fillval) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* field dataset ID */ hid_t tid = FAIL;/* field dataset data type ID */ hid_t plist = FAIL;/* field dataset property list ID */ long idx = FAIL;/* za index */ hsize_t count[1] = { 1 };/* number of attribute elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAgetfillvalue", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for valid za ID failed.\n"); H5Epush(__FILE__, "HE5_ZAgetfillvalue", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check out the field group and get field ID */ /* ------------------------------------------ */ HE5_ZAfldsrch(zaID,fieldname,&fieldID,NULL,NULL,NULL); if( fieldID == FAIL ) { sprintf(errbuf, "Cannot get the field ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetfillvalue", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the property list ID */ /* ------------------------ */ plist = H5Dget_create_plist(fieldID); if ( plist == FAIL ) { sprintf(errbuf, "Cannot get the property list ID for the \"%s\" data field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetfillvalue", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the datatype ID */ /* ------------------- */ tid = H5Dget_type(fieldID); if ( tid == FAIL ) { sprintf(errbuf, "Cannot get the data type ID for the \"%s\" data field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetfillvalue", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Read out a fill value from the attribute */ /* ---------------------------------------- */ status = HE5_EHattr(fieldID, "_FillValue", tid, count, "r", fillval); if (status == FAIL ) { sprintf(errbuf, "Cannot get fill value for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetfillvalue", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(tid); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID for the \"%s\" dataset.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetfillvalue", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release property list ID for the \"%s\" dataset.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetfillvalue", __LINE__, H5E_PLIST, H5E_CLOSEERROR,errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAclose | | | | DESCRIPTION: Closes HDF-EOS file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t File ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAclose(hid_t fid) { herr_t status = FAIL;/* routine return status variable */ /* Call HE5_EHclose to perform file close */ /* -------------------------------------- */ status = HE5_EHclose(fid); return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAfieldsizeID | | | | DESCRIPTION: Returns the size (in bytes) of field-related data type, | | otherwise returns 0. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size size_t Size of field data type | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char fieldname | | | | OUTPUTS: | | fieldID hid_t field-related dataset ID | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static size_t HE5_ZAfieldsizeID( hid_t zaID, char *fieldname, hid_t *fieldID) { size_t size = 0; /* Size of field data type */ herr_t status = FAIL; /* Return status variable */ int i; /* Loop index */ int found = 0; /* Flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t dtype = FAIL; /* datatype ID */ long idx = FAIL; /* ZA index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Buffer for error message */ CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and ZA index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAfieldsizeID", &fid, &gid, &idx); /* Loop through all data fields in ZA */ /* ---------------------------------- */ for (i = 0; i < HE5_ZAXZa[idx].nDFLD; i++) { if( strcmp(fieldname, HE5_ZAXZa[idx].ddataset[i].name) == 0 ) { /* get dataset ID */ /* -------------- */ *fieldID = HE5_ZAXZa[idx].ddataset[i].ID; dtype = H5Dget_type(*fieldID); if (dtype == FAIL) { sprintf(errbuf, "Cannot get the dataset data type. \n"); H5Epush(__FILE__, "HE5_ZAfieldsizeID", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } size = H5Tget_size(dtype); if (size == 0) { sprintf(errbuf, "Cannot get the data type size. \n"); H5Epush(__FILE__, "HE5_ZAfieldsizeID", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } status = H5Tclose(dtype); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_ZAfieldsizeID", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } found = 1; break; } } if( found == 0 ) { sprintf(errbuf, "field \"%s\" is not in ZA. \n", fieldname); H5Epush(__FILE__, "HE5_ZAfieldsizeID", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } COMPLETION: return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwritegrpattr | | | | DESCRIPTION: Writes/updates attribute associated with the "Data Fields" | | group in a za. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | attrname char attribute name | | numbertype hid_t attribute dataset datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAwritegrpattr(hid_t zaID, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t DataFieldsGrpID = FAIL; /* "Data Fields" group ID */ long idx = FAIL; /* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if ntype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { numbertype = numtype; } /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAwritegrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data Fields" group ID and call HE5_EHattr to perform I/O */ /* ------------------------------------------------------------- */ DataFieldsGrpID = H5Gopen(HE5_ZAXZa[idx].za_id, "Data Fields"); if(DataFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data Fields\" group ID. \n"); H5Epush(__FILE__, "HE5_ZAwritegrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(DataFieldsGrpID, attrname, numbertype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\"to the \"Data Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_ZAwritegrpattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data Fields\" group ID. \n"); H5Epush(__FILE__, "HE5_ZAwritegrpattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAreadgrpattr | | | | DESCRIPTION: Reads attribute from the "Data Fields" group in a za. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAreadgrpattr(hid_t zaID, const char *attrname, void * datbuf) { herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ntype = FAIL; /* Data type ID */ hid_t DataFieldsGrpID = FAIL; /* "Data Fields" group ID */ long idx = FAIL; /* za index */ hsize_t count[] = { 0 }; /* # of attribute elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAreadgrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data Fields" group ID and call HE5_EHattr to perform I/O */ /* -------------------------------------------------------------- */ DataFieldsGrpID = H5Gopen(HE5_ZAXZa[idx].za_id, "Data Fields"); if(DataFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_ZAreadgrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(DataFieldsGrpID,attrname,ntype,count,"r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" from the \"Data Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_ZAreadgrpattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_ZAreadgrpattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgrpattrinfo | | | | DESCRIPTION: Retrieves information about attributes in "Data Fields" group.| | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | attrname const char* attribute name | | | | OUTPUTS: | | ntype hid_t data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAgrpattrinfo(hid_t zaID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t DataFieldsGrpID = FAIL; /* "Data Fields" group ID */ long idx = FAIL; /* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAgrpattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data Fields" group ID and call HE5_EHattrinfo */ /* --------------------------------------------------- */ DataFieldsGrpID = H5Gopen(HE5_ZAXZa[idx].za_id, "Data Fields"); if(DataFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_ZAgrpattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattrinfo(DataFieldsGrpID,attrname,ntype,count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" in the \"Data Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_ZAgrpattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_ZAgrpattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqgrpattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Data Fields" | | group. | | INPUTS: | | zaID hid_t ZA structure ID | | | | OUTPUTS: | | attrnames char Attribute names in "Data Fields" group | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqgrpattrs(hid_t zaID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ long idx = FAIL; /* za index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZAS" group ID */ char *grpname = (char *)NULL; /* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAinqgrpattrs", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_ZAinqgrpattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Can not allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/ZAS/"); strcat(grpname, HE5_ZAXZa[idx].zaname); strcat(grpname,"/Data Fields"); /* search group with grpname for the number of attributes */ /* ------------------------------------------------------ */ nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot find the attributes. \n"); H5Epush(__FILE__, "HE5_ZAinqgrpattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwritelocattr | | | | DESCRIPTION: Writes/updates attribute associated with a specified field | | in a za. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char field name | | attrname char attribute name | | numbertype hid_t attribute dataset datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAwritelocattr(hid_t zaID, const char *fieldname, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL; /* Return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t FieldGrpID = FAIL; /* Field group ID */ hid_t fieldID = FAIL; /* Field dataset ID */ long idx = FAIL; /* za index */ char *grpname = (char *)NULL; /* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKPOINTER(fieldname); CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if ntype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { numbertype = numtype; } /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAwritelocattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Allocate memory for the group name buffer */ /* ----------------------------------------- */ grpname = (char *)calloc(64, sizeof(char) ); if( grpname == NULL) { sprintf(errbuf,"Cannot allocate memory for the group name buffer.\n"); H5Epush(__FILE__, "HE5_ZAwritelocattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_ZAfldsrch(zaID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_ZAwritelocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } if (fldgroup == HE5_HDFE_DATAGROUP) strcpy(grpname,"Data Fields"); /* Get the Field group ID */ /* ---------------------- */ FieldGrpID = H5Gopen(HE5_ZAXZa[idx].za_id, grpname); if(FieldGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" group.\n", grpname); H5Epush(__FILE__, "HE5_ZAwritelocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Get field ID and call HE5_EHattr to perform I/O */ /* ----------------------------------------------- */ fieldID = H5Dopen(FieldGrpID, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset.\n", fieldname); H5Epush(__FILE__, "HE5_ZAwritelocattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Call EHattr() to perform I/O */ /* ---------------------------- */ status = HE5_EHattr(fieldID, attrname, numbertype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\" for the \"%s\" field.\n", attrname, fieldname); H5Epush(__FILE__, "HE5_ZAwritelocattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_ZAwritelocattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release group ID */ /* ---------------- */ status = H5Gclose(FieldGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" group ID.\n",grpname); H5Epush(__FILE__, "HE5_ZAwritelocattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } free(grpname); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAreadlocattr | | | | DESCRIPTION: Reads attribute associated with a specified field in a za. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char fieldname | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAreadlocattr(hid_t zaID, const char *fieldname, const char *attrname, void * datbuf) { herr_t status = FAIL; /* return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ntype = FAIL; /* Data type ID */ hid_t FieldGrpID = FAIL; /* Field group ID */ hid_t fieldID = FAIL; /* Field dataset ID */ long idx = FAIL; /* za index */ hsize_t count[] = { 0 }; /* number of elements */ char *grpname = (char *)NULL; /* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAreadlocattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Allocate memory for the group name buffer */ /* ----------------------------------------- */ grpname = (char *)calloc(64, sizeof(char) ); if( grpname == NULL) { sprintf(errbuf,"Cannot allocate memory for the group name buffer.\n"); H5Epush(__FILE__, "HE5_ZAreadlocattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_ZAfldsrch(zaID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field. \n",fieldname); H5Epush(__FILE__, "HE5_ZAreadlocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } if (fldgroup == HE5_HDFE_DATAGROUP) strcpy(grpname,"Data Fields"); /* Get Field group ID */ /* -------------------- */ FieldGrpID = H5Gopen(HE5_ZAXZa[idx].za_id, grpname); if(FieldGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" group.\n", grpname); H5Epush(__FILE__, "HE5_ZAreadlocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Get field ID and call HE5_EHattr to perform I/O */ /* ----------------------------------------------- */ fieldID = H5Dopen(FieldGrpID, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset.\n", fieldname); H5Epush(__FILE__, "HE5_ZAreadlocattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Call EHattr() to perform I/O */ /* ---------------------------- */ status = HE5_EHattr(fieldID,attrname,ntype,count,"r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" associated wth the \"%s\" field.\n", attrname,fieldname); H5Epush(__FILE__, "HE5_ZAreadlocattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_ZAreadlocattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release the group ID */ /* -------------------- */ status = H5Gclose(FieldGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" group ID.\n", grpname); H5Epush(__FILE__, "HE5_ZAreadlocattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } free(grpname); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAlocattrinfo | | | | DESCRIPTION: Retrievs information about attribute associated with a | | specified field in the "Data Fields" group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char* field name | | attrname const char* attribute name | | | | OUTPUTS: | | ntype hid_t data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAlocattrinfo(hid_t zaID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL; /* Return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t FieldGrpID = FAIL; /* Field group ID */ hid_t fieldID = FAIL; /* Field dataset ID */ long idx = FAIL; /* za index */ char *grpname = (char *)NULL; /* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAlocattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Allocate memory for the group name buffer */ /* ----------------------------------------- */ grpname = (char *)calloc(64, sizeof(char) ); if( grpname == NULL) { sprintf(errbuf,"Cannot allocate memory for the group name buffer.\n"); H5Epush(__FILE__, "HE5_ZAlocattrinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_ZAfldsrch(zaID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field. \n",fieldname); H5Epush(__FILE__, "HE5_ZAlocattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } if (fldgroup == HE5_HDFE_DATAGROUP) strcpy(grpname,"Data Fields"); /* Get Field group ID */ /* ------------------- */ FieldGrpID = H5Gopen(HE5_ZAXZa[idx].za_id, grpname); if(FieldGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" group.\n", grpname); H5Epush(__FILE__, "HE5_ZAlocattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Get field ID */ /* ------------ */ fieldID = H5Dopen(FieldGrpID, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset.\n", fieldname); H5Epush(__FILE__, "HE5_ZAlocattrinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Call EHattrinfo() to perform I/O */ /* -------------------------------- */ status = HE5_EHattrinfo(fieldID,attrname,ntype,count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" in the \"%s\" group.\n", attrname, grpname); H5Epush(__FILE__, "HE5_ZAlocattrinfo", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_ZAlocattrinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release group ID */ /* ---------------- */ status = H5Gclose(FieldGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the field group ID.\n"); H5Epush(__FILE__, "HE5_ZAlocattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } free(grpname); } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqlocattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified field in the | | "Data Fields" group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Data Fields" | | group. | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char field name | | | | OUTPUTS: | | attrnames char Attribute names in "Data Fields" group | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqlocattrs(hid_t zaID, const char *fieldname, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes */ long idx = FAIL; /* za index */ herr_t status = FAIL; /* Return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZAS" group ID */ char *dtsname = (char *)NULL; /* Dataset name string */ char *grpname = (char *)NULL; /* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAinqlocattrs", &fid, &gid, &idx); if(status == SUCCEED ) { /* Allocate memory for the dataset name buffer */ /* ------------------------------------------- */ dtsname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( dtsname == NULL) { sprintf(errbuf, "Cannot allocate memory for the dataset name buffer. \n"); H5Epush(__FILE__, "HE5_ZAinqlocattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for the group name buffer */ /* ----------------------------------------- */ grpname = (char *)calloc(64, sizeof(char) ); if( grpname == NULL) { sprintf(errbuf,"Cannot allocate memory for the group name buffer.\n"); H5Epush(__FILE__, "HE5_ZAinqlocattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dtsname); return(FAIL); } /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_ZAfldsrch(zaID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_ZAinqlocattrs", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(dtsname); return(FAIL); } if (fldgroup == HE5_HDFE_DATAGROUP) strcpy(grpname,"/Data Fields/"); strcpy(dtsname,"/HDFEOS/ZAS/"); strcat(dtsname, HE5_ZAXZa[idx].zaname); strcat(dtsname, grpname); strcat(dtsname, fieldname); /* search group with grpname for the number of attributes */ /* ------------------------------------------------------ */ nattr = HE5_EHattrcat(fid, dtsname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot find the attributes. \n"); H5Epush(__FILE__, "HE5_ZAinqlocattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if (dtsname != NULL) free(dtsname); if (grpname != NULL) free(grpname); } COMPLETION: return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAsetalias | | | | DESCRIPTION: Defines alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | zaID hid_t ZA structure ID | | fieldname char Original field name | | | | OUTPUTS: | | aliaslist char List of aliases for the field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAsetalias(hid_t zaID, char *fieldname, const char *aliaslist) { herr_t status = FAIL; /* return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZAS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* za index */ char *buf = NULL; /* Pointer to temporary buffer */ char *comma = NULL; /* Pointer to comma */ char *aliasname = NULL; /* Pointer to the alias name */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); CHECKPOINTER(aliaslist); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAsetalias", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed. \n"); H5Epush(__FILE__, "HE5_ZAsetalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Find out the field group */ /* ------------------------ */ fldgroup = HE5_ZAfldsrch(zaID,fieldname,NULL,NULL,NULL,NULL); if (fldgroup == HE5_HDFE_DATAGROUP) groupID = HE5_ZAXZa[idx].data_id; else { sprintf(errbuf, "Cannot find \"%s\" field in za. \n", fieldname); H5Epush(__FILE__, "HE5_ZAsetalias", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for temporary buffer */ /* ------------------------------------ */ buf = (char *)calloc(strlen(aliaslist)+64, sizeof(char)); if (buf == NULL) { sprintf(errbuf, "Cannot allocate memory for \"buf\". \n"); H5Epush(__FILE__, "HE5_ZAsetalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Make a list like "name1,name2,name3," */ /* ------------------------------------- */ strcpy(buf,aliaslist); strcat(buf,","); /* Find first comma and make pointer pointing to it */ /* ------------------------------------------------ */ comma = strchr(buf, ','); while(comma != NULL) { /* Allocate memory for individual entry */ /* ------------------------------------ */ aliasname = (char *)calloc(comma-buf+1, sizeof(char)); if (aliasname == NULL) { sprintf(errbuf, "Cannot allocate memory for \"aliasname\". \n"); H5Epush(__FILE__, "HE5_ZAsetalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (buf != NULL) free(buf); return(FAIL); } /* Pick up an individual entry and put it to the "aliasname" */ /* --------------------------------------------------------- */ memmove(aliasname,buf,comma-buf); /* Create a symbolic link for a specified object */ /* --------------------------------------------- */ status = H5Glink(groupID, H5G_LINK_SOFT, fieldname, aliasname); if (status == FAIL) { sprintf(errbuf, "Cannot create an alias \"%s\" for \"%s\" field. \n", aliasname, fieldname); H5Epush(__FILE__, "HE5_ZAsetalias", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (aliasname != NULL) free(aliasname); if (buf != NULL) free(buf); return(FAIL); } /* Go to the next name entry */ /* ------------------------- */ strcpy(buf,comma+1); comma = strchr(buf, ','); if (aliasname != NULL) free(aliasname); } if (buf != NULL) free(buf); COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdropalias | | | | DESCRIPTION: Removes the alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | zaID hid_t ZA structure ID | | aliasname char Alias name to remove | | fldgroup int Field group flag | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAdropalias(hid_t zaID, int fldgroup, const char *aliasname) { herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZAS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(aliasname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAdropalias", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed. \n"); H5Epush(__FILE__, "HE5_ZAdropalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get Group ID */ /* ------------ */ if (fldgroup == HE5_HDFE_DATAGROUP) groupID = HE5_ZAXZa[idx].data_id; else { sprintf(errbuf, "Invalid input group flag. \n"); H5Epush(__FILE__, "HE5_ZAdropalias", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Destroy a symbolic link */ /* ----------------------- */ status = H5Gunlink(groupID, aliasname); if (status == FAIL) { sprintf(errbuf, "Cannot remove alias named \"%s\". \n", aliasname); H5Epush(__FILE__, "HE5_ZAdropalias", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqfldalias | | | | DESCRIPTION: Retrieves the number of fields & aliases and string length of| | fields & aliases list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfldalias long Number of fields & aliases in "Data | | Fields" group. | | | | INPUTS: | | zaID hid_t za structure ID | | | | OUTPUTS: | | fldalias char* Fields & aliases names in "Data Fields" | | group (Comma-separated list) | | strbufsize long* Fields & aliases name list string length| | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqfldalias(hid_t zaID, char *fldalias, long *strbufsize) { long nfldalias = FAIL;/* Number of fields & aliases (return) */ long idx = FAIL; /* za index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZA" group ID */ char *grpname = (char *)NULL; /* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAinqfldalias", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_ZAinqfldalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Can not allocate memory"); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/ZAS/"); strcat(grpname, HE5_ZAXZa[idx].zaname); strcat(grpname,"/Data Fields"); /* search group with grpname for the number of fields & aliases */ /* ------------------------------------------------------------ */ nfldalias = HE5_EHdatasetcat(fid, grpname, fldalias, strbufsize); if ( nfldalias < 0 ) { sprintf(errbuf, "Cannot find the fields & aliases. \n"); H5Epush(__FILE__, "HE5_ZAinqfldalias", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } else { sprintf(errbuf, "Checking for za ID failed. \n"); H5Epush(__FILE__, "HE5_ZAinqfldalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return (nfldalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAaliasinfo | | | | DESCRIPTION: Retrieves information about field aliases | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | zaID hid_t ZA structure ID | | aliasname char alias name | | fldgroup int Field group flag | | | | OUTPUTS: | | length int Buffer size | | buffer char Buffer with original field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAaliasinfo(hid_t zaID, int fldgroup, const char *aliasname, int *length, char *buffer) { herr_t status = FAIL; /* return status variable */ int type = FAIL; /* type-value of an object */ size_t size = 0; /* Size of the name buffer */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZAS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* za index */ H5G_stat_t *statbuf = (H5G_stat_t *)NULL; /* pointer to a structure */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ CHECKPOINTER(aliasname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAaliasinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed. \n"); H5Epush(__FILE__, "HE5_ZAaliasinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the group ID */ /* ---------------- */ if (fldgroup == HE5_HDFE_DATAGROUP) groupID = HE5_ZAXZa[idx].data_id; else { sprintf(errbuf, "Invalid input group flag. \n"); H5Epush(__FILE__, "HE5_ZAaliasinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (buffer == NULL) { /* Get the string length of a "real" name */ /* -------------------------------------- */ statbuf = (H5G_stat_t *)calloc(1, sizeof(H5G_stat_t)); if (statbuf == NULL) { sprintf(errbuf, "Cannot allocate memory for \"statbuf\". \n"); H5Epush(__FILE__, "HE5_ZAaliasinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the Object Info */ /* ------------------- */ status = H5Gget_objinfo(groupID, aliasname, 0, statbuf); if (status == FAIL) { sprintf(errbuf, "Cannot get information about \"%s\" alias. \n", aliasname); H5Epush(__FILE__, "HE5_ZAaliasinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* LINK name length with a null terminator */ /* --------------------------------------- */ size = statbuf->linklen; /* Object type (dataset, link, etc) */ /* -------------------------------- */ type = statbuf->type; /* Make sure that the object is a LINK */ /* ----------------------------------- */ if (type != H5G_LINK) { sprintf(errbuf,"The object named \"%s\" is not a symbolic link.\n", aliasname); H5Epush(__FILE__, "HE5_ZAaliasinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *length = (int)size; if ( statbuf != (H5G_stat_t *)NULL ) free(statbuf); } if (buffer != NULL) { size = (size_t)*length; /* Get the "real" name by an "alias" */ /* --------------------------------- */ status = H5Gget_linkval(groupID, aliasname, size, buffer); if (status == FAIL) { sprintf(errbuf,"Cannot get the real name for the alias named \"%s\".\n", aliasname); H5Epush(__FILE__, "HE5_ZAaliasinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgetaliaslist | | | | DESCRIPTION: Retrieves the number of aliases and the list of aliases in | | "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nalias long number of aliases in "Data Fields" | | group | | | | INPUTS: | | zaID hid_t za structure ID | | fldgroup int field group flag | | | | OUTPUTS: | | aliaslist char* list of aliases in "Data Fields" group | | (comma-separated list) | | strbufsize long* length of aliases list | | | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 05 S.Zhao Original development | | Mar 06 Abe Taaheri Added code to get alias strbufsize only when user | | passes aliaslist as NULL pointer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAgetaliaslist(hid_t zaID, int fldgroup, char *aliaslist, long *strbufsize) { long nalias = FAIL; /* Number of aliases (return) */ long idx = FAIL; /* za index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZAS" group ID */ char *fieldlist = (char *)NULL; /* List of Data fields */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ long fldstrbuf = FAIL; /* Buffer size for Data fields */ long nflds = FAIL; /* Number of Data fields */ long nfldalias = FAIL; /* Number of fields & aliases */ char *fldalias = (char *)NULL; /* List of fields & aliases */ long fldaliasbuf = FAIL; /* Buffer size for fields & aliases */ char *buff = (char *)NULL; /* Pointer to temporary buffer */ char *comma = (char *)NULL; /* Pointer to comma */ char *comma1 = (char *)NULL; /* Pointer to comma */ char *nameptr = (char *)NULL; /* Pointer to each name */ char *tmpbuf = (char *)NULL; /* Pointer to temp buffer */ long nameflag = FAIL; /* Name flag */ /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAgetaliaslist", &fid, &gid, &idx); if(status == SUCCEED ) { /* If aliaslist and strbufsize desired */ /* ----------------------------------- */ if (fldgroup == HE5_HDFE_DATAGROUP) { /* Call "HE5_ZAnentries" routine to get number of fields */ /* ----------------------------------------------------- */ nflds = HE5_ZAnentries(zaID, HE5_HDFE_NENTDFLD, &fldstrbuf); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for fields list buffer */ /* -------------------------------------- */ fieldlist = (char *) calloc(fldstrbuf+6, sizeof(char)); if(fieldlist == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call "HE5_ZAinquire" routine to get the list of Data fields */ /* ----------------------------------------------------------- */ nflds = HE5_ZAinquire(zaID, fieldlist, NULL, NULL); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the list of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); return(FAIL); } /* Call "HE5_ZAinqfldalias" routine to get number of fields & aliases */ /* -------------------------------------------------------- */ nfldalias = HE5_ZAinqfldalias(zaID, NULL, &fldaliasbuf); if (nfldalias == FAIL) { sprintf(errbuf, "Cannot get the number of fields & aliases in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); return(FAIL); } /* Allocate memory for fields & aliases list buffer */ /* ------------------------------------------------ */ fldalias = (char *) calloc(fldaliasbuf+6, sizeof(char)); if(fldalias == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); return(FAIL); } /* Call "HE5_ZAinqfldalias" routine to get the list of fields & aliases */ /* ---------------------------------------------------------- */ nfldalias = HE5_ZAinqfldalias(zaID, fldalias, &fldaliasbuf); if (nfldalias == FAIL) { sprintf(errbuf, "Cannot get the list of fields & aliases in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); free(fldalias); return(FAIL); } *strbufsize = strlen(fldalias) - strlen(fieldlist); if (*strbufsize <= 0) { sprintf(errbuf, "Cannot find the aliases.\n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); free(fldalias); return(FAIL); } else { nalias = 0; /* Allocate memory for temporary buffer */ /* ------------------------------------ */ buff = (char *)calloc(strlen(fldalias)+6, sizeof(char)); if (buff == NULL) { sprintf(errbuf, "Cannot allocate memory for \"buff\". \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); free(fldalias); return(FAIL); } /* Allocate memory for aliases */ /* --------------------------- */ tmpbuf = (char *)calloc(*strbufsize+6, sizeof(char)); if (tmpbuf == NULL) { sprintf(errbuf, "Cannot allocate memory for \"tmpbuf\". \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); free(fldalias); free(buff); return(FAIL); } strcpy(buff, fldalias); strcat(buff, ","); strcat(fieldlist, ","); /* Find first comma and make pointer pointing to it */ /* ------------------------------------------------ */ comma = strchr(buff, ','); while(comma != NULL) { /* Allocate memory for individual entry */ /* ------------------------------------ */ nameptr = (char *)calloc(comma-buff+6, sizeof(char)); if (nameptr == NULL) { sprintf(errbuf, "Cannot allocate memory for \"nameptr\". \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); free(fldalias); free(buff); free(tmpbuf); return(FAIL); } /* Pick up an individual entry and put it to the "nameptr" */ /* ------------------------------------------------------- */ memmove(nameptr,buff,comma-buff); strcat(nameptr, ","); nameflag = (strstr(fieldlist,nameptr) == NULL) ? 1 : 0; if (nameflag == 1) { comma1 = strchr(tmpbuf, ','); if(comma1 == NULL) strcpy(tmpbuf, nameptr); else strcat(tmpbuf, nameptr); nalias++; } strcpy(buff,comma+1); comma = strchr(buff, ','); if (nameptr != NULL) free(nameptr); } } if(aliaslist == NULL)/* just return buffersize and number of aliases */ { if(nalias > 0 ) { if (fieldlist != NULL) free(fieldlist); if (fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return (nalias); } else { sprintf(errbuf, "Cannot find the aliases.\n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return(FAIL); } } else { if(nalias > 0 ) { strncpy(aliaslist, tmpbuf, *strbufsize-1); aliaslist[*strbufsize-1] = '\0'; } else { sprintf(errbuf, "Cannot find the aliases.\n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return(FAIL); } } } else { sprintf(errbuf, "Invalid input field group flag. \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else { sprintf(errbuf, "Checking for za ID failed. \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslist", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (fieldlist != NULL) free(fieldlist); if (fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return (nalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAfldrename | | | | DESCRIPTION: Changes the field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | zaID hid_t ZA structure ID | | oldfieldname char Original field name | | | | OUTPUTS: | | newfieldname char New field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Aug 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAfldrename(hid_t zaID, char *oldfieldname, const char *newfieldname) { herr_t status = FAIL; /* Return status variable */ int fldgroup = FAIL; /* Field group flag */ int k; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZAS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* za index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(oldfieldname); CHECKNAME(newfieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAfldrename", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed. \n"); H5Epush(__FILE__, "HE5_ZAfldrename", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Find out the field group */ /* ------------------------ */ fldgroup = HE5_ZAfldsrch(zaID,oldfieldname,NULL,NULL,NULL,NULL); if (fldgroup == HE5_HDFE_DATAGROUP) groupID = HE5_ZAXZa[idx].data_id; else { sprintf(errbuf, "Error returning field group flag. \n"); H5Epush(__FILE__, "HE5_ZAfldrename", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Rename the field */ /* ---------------- */ status = H5Gmove(groupID, oldfieldname, newfieldname); if (status == FAIL) { sprintf(errbuf, "Cannot change the field name from \"%s\" to \"%s\". \n", oldfieldname, newfieldname); H5Epush(__FILE__, "HE5_ZAfldrename", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Update Table */ /* ------------ */ if (fldgroup == HE5_HDFE_DATAGROUP) { for (k = 0; k < HE5_ZAXZa[idx].nDFLD; k++) { if (strcmp(HE5_ZAXZa[idx].ddataset[k].name, oldfieldname) == 0 ) strcpy(HE5_ZAXZa[idx].ddataset[k].name, newfieldname); } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAmountexternal | | | | DESCRIPTION: Mounts external data file onto "Data Fields" | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | extfID hid_t External file ID | | | | INPUTS: | | zaID hid_t ZA structure ID | | fldgroup int Group flag | | extfilename char External File Name | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Aug 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_ZAmountexternal(hid_t zaID, int fldgroup, const char *extfilename) { hid_t extfID = FAIL; /* External file ID (return) */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZAS" group ID */ herr_t status = FAIL; /* Return status variable */ long idx = FAIL; /* za index */ char grpname[HE5_HDFE_NAMBUFSIZE];/* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ HE5_LOCK; CHECKNAME(extfilename); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAmountexternal", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed. \n"); H5Epush(__FILE__, "HE5_ZAmountexternal", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/ZAS/"); strcat(grpname, HE5_ZAXZa[idx].zaname); if (fldgroup == HE5_HDFE_DATAGROUP) strcat(grpname,"/Data Fields"); /* Open external data file */ /* ----------------------- */ extfID = H5Fopen(extfilename, H5F_ACC_RDONLY, H5P_DEFAULT); if ( extfID == FAIL ) { sprintf(errbuf, "Cannot open external file named \"%s\". \n", extfilename); H5Epush(__FILE__, "HE5_ZAmountexternal", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Mount external file */ /* ------------------- */ status = H5Fmount(fid, grpname, extfID, H5P_DEFAULT); if ( status == FAIL ) { sprintf(errbuf, "Cannot mount external file onto \"%s\" group. \n", grpname); H5Epush(__FILE__, "HE5_ZAmountexternal", __LINE__, H5E_FILE, H5E_MOUNT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(extfID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: ZAunmount | | | | DESCRIPTION: Unmounts external data file from "Data Fields" | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | zaID hid_t ZA structure ID | | fldgroup int Group flag | | fileID hid_t ID of file to be unmounted | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Aug 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAunmount(hid_t zaID, int fldgroup, hid_t fileID) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "ZAS" group ID */ long idx = FAIL; /* za index */ char grpname[HE5_HDFE_NAMBUFSIZE];/* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ HE5_LOCK; /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAunmount", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed. \n"); H5Epush(__FILE__, "HE5_ZAunmount", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/ZAS/"); strcat(grpname, HE5_ZAXZa[idx].zaname); if (fldgroup == HE5_HDFE_DATAGROUP) strcat(grpname,"/Data Fields"); status = H5Funmount(fid, grpname); if ( status == FAIL ) { sprintf(errbuf, "Cannot unmount external file from \"%s\" group. \n", grpname); H5Epush(__FILE__, "HE5_ZAunmount", __LINE__, H5E_FILE, H5E_MOUNT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Fclose(fileID); if ( status == FAIL ) { sprintf(errbuf, "Cannot close external file. \n"); H5Epush(__FILE__, "HE5_ZAunmount", __LINE__, H5E_FILE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAreadexternal | | | | DESCRIPTION: Reads external dataset | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | zaID hid_t ZA structure ID | | fldgroup int Group flag | | fieldname const char* Field name to read | | | | OUTPUTS: | | buffer void* Output data bufer | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Aug 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAreadexternal(hid_t zaID, int fldgroup, const char *fieldname, void *buffer) { herr_t status = FAIL;/* return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "ZAS" group ID */ hid_t groupID = FAIL;/* Group ID */ hid_t datasetID = FAIL;/* Dataset ID */ hid_t typeID = FAIL;/* File data type ID */ hid_t mtypeID = FAIL;/* Memory datatype ID */ long idx = FAIL;/* za index */ char grpname[HE5_HDFE_NAMBUFSIZE];/* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAreadexternal", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for za ID failed. \n"); H5Epush(__FILE__, "HE5_ZAreadexternal", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/ZAS/"); strcat(grpname, HE5_ZAXZa[idx].zaname); if (fldgroup == HE5_HDFE_DATAGROUP) strcat(grpname,"/Data Fields"); /* Open the group containing mounted file */ /* -------------------------------------- */ groupID = H5Gopen(fid, grpname); if ( groupID == FAIL ) { sprintf(errbuf, "Cannot open group containing mounted file. \n"); H5Epush(__FILE__, "HE5_ZAreadexternal", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Open the dataset */ /* ---------------- */ datasetID = H5Dopen(groupID, fieldname); if ( datasetID == FAIL ) { sprintf(errbuf, "Cannot open mounted dataset. \n"); H5Epush(__FILE__, "HE5_ZAreadexternal", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the data type ID */ /* -------------------- */ typeID = H5Dget_type(datasetID); if ( typeID == FAIL ) { sprintf(errbuf, "Cannot get the data type ID of mounted dataset. \n"); H5Epush(__FILE__, "HE5_ZAreadexternal", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get memory data type ID */ /* ----------------------- */ mtypeID = HE5_EHdtype2mtype(typeID); if (mtypeID == FAIL) { sprintf(errbuf, "Cannot convert to memory data type.") ; H5Epush(__FILE__, "HE5_ZAreadexternal", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Read the mounted dataset */ /* ------------------------ */ status = H5Dread(datasetID, mtypeID, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer); if ( status == FAIL ) { sprintf(errbuf, "Cannot read mounted data.") ; H5Epush(__FILE__, "HE5_ZAreadexternal", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(typeID); if ( status == FAIL ) { sprintf(errbuf, "Cannot release data type ID.") ; H5Epush(__FILE__, "HE5_ZAreadexternal", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(datasetID); if ( status == FAIL ) { sprintf(errbuf, "Cannot release dataset ID.") ; H5Epush(__FILE__, "HE5_ZAreadexternal", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the group ID */ /* -------------------- */ status = H5Gclose(groupID); if ( status == FAIL ) { sprintf(errbuf, "Cannot release group ID.") ; H5Epush(__FILE__, "HE5_ZAreadexternal", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAsetextdata | | | | DESCRIPTION: Sets external data files. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID hid_t ZA structure ID | | filelist const char* list of external files | | offset off_t array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size hsize_t array of sizes (in bytes) reserved in | | the file for the data. | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_ZAsetextdata(hid_t zaID, const char *filelist, off_t offset[], hsize_t size[]) { herr_t status = FAIL; /* return status variable */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* za index */ char *namebuf = (char *)NULL;/* File list buffer */ char *filename = (char *)NULL;/* File name buffer */ char *comma = (char *)NULL;/* Pointer to comma */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(filelist); CHECKPOINTER(offset); CHECKPOINTER(size); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAsetextdata", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for valid za ID failed.\n"); H5Epush(__FILE__, "HE5_ZAsetextdata", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get current dataset creation property list */ /* ------------------------------------------ */ if( HE5_ZAXZa[idx].plist == FAIL) HE5_ZAXZa[idx].plist = H5Pcreate(H5P_DATASET_CREATE); /* Allocate space for namebuf, copy dimlist into it, & append comma */ /* ---------------------------------------------------------------- */ namebuf = (char *)calloc(strlen(filelist) + 64, sizeof(char)); if(namebuf == NULL) { H5Epush(__FILE__, "HE5_ZAsetextdata", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory."); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* ******************************************************************** * C H E C K T H E C O N T E N T O F filelist S T R I N G * ******************************************************************** */ strcpy(namebuf, filelist); strcat(namebuf, ","); /* Find comma */ /* ---------- */ comma = strchr(namebuf, ','); i = 0; /* Parse the list of file names */ /* ---------------------------- */ while (comma != NULL) { /* Allocate memory for filename buffer */ /* ----------------------------------- */ filename = (char *) calloc(comma - namebuf + 1, sizeof(char)); if (filename == NULL) { sprintf(errbuf, "Cannot allocate memory for filename. \n") ; H5Epush(__FILE__, "HE5_ZAsetextdata", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(namebuf); return(FAIL); } /* Copy file list entry to filename */ /* -------------------------------- */ memmove(filename, namebuf, comma - namebuf); filename[comma-namebuf] = 0; /* Set the property list */ /* --------------------- */ status = H5Pset_external(HE5_ZAXZa[idx].plist, filename, offset[i], size[i]); if(status == FAIL) { sprintf(errbuf,"Cannot set external dataset property list.\n"); H5Epush(__FILE__, "HE5_ZAsetextdata", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(namebuf); free(filename); return(status); } /* Go to next file entry, find next comma, ... */ /* ============================================ */ strcpy(namebuf, comma + 1); comma = strchr(namebuf, ','); if (filename != NULL) free(filename); i++; } if (namebuf != NULL) free(namebuf); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgetextdata | | | | DESCRIPTION: Gets external data files information. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfiles int number of external files SUCCEED, | | (-1) FAIL | | INPUTS: | | zaID hid_t za structure ID | | fieldname char* External field name | | | | OUTPUTS: | | namelength size_t Length of each name entry | | filelist char* List of file names | | offset off_t array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size hsize_t array of sizes (in bytes) reserved in | | the file for the data. | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAgetextdata(hid_t zaID, char *fieldname, size_t namelength, char *filelist, off_t offset[], hsize_t size[]) { int nfiles = FAIL; /* Number of ext. files */ int i; /* Loop index */ size_t slen = 0; /* String length */ herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t fieldID = FAIL; /* Data field ID */ hid_t plist = FAIL; /* Property list ID */ off_t off = 0; /* Offset of data segment */ hsize_t sz = 0; /* Size of data segment */ long idx = FAIL; /* za index */ char *filename = (char *)NULL;/* File name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and za index */ /* --------------------------------------------------- */ status = HE5_ZAchkzaid(zaID, "HE5_ZAgetextdata", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for valid za ID failed.\n"); H5Epush(__FILE__, "HE5_ZAgetextdata", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check out the field group and get field ID */ /* ------------------------------------------ */ HE5_ZAfldsrch(zaID,fieldname,&fieldID,NULL,NULL,NULL); if( fieldID == FAIL ) { sprintf(errbuf, "Cannot get the field ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetextdata", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the property list ID */ /* ------------------------ */ plist = H5Dget_create_plist(fieldID); if ( plist == FAIL ) { sprintf(errbuf, "Cannot get the property list ID for the \"%s\" data field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetextdata", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the number of external files */ /* -------------------------------- */ nfiles = H5Pget_external_count(plist); if ( nfiles < 0 ) { sprintf(errbuf, "Cannot get the number of external files.\n"); H5Epush(__FILE__, "HE5_ZAgetextdata", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for file name */ /* ----------------------------- */ filename = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char)); if(filename == NULL) { H5Epush(__FILE__, "HE5_ZAgetextdata", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory."); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(filelist,""); /* Loop through all external files */ /* ------------------------------- */ for (i = 0; i < nfiles; i++) { strcpy(filename,""); /* Get the file name, offset, and size */ /* ----------------------------------- */ status = H5Pget_external(plist, i, namelength, filename, &off, &sz); if( status == FAIL) { sprintf(errbuf,"Cannot get information about external file.\n"); H5Epush(__FILE__, "HE5_ZAgetextdata", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filename); return(FAIL); } offset[i] = off; size[i] = sz; strcat(filelist, filename); /* Append comma */ /* ------------ */ if (nfiles > 1 && i < nfiles - 1) strcat(filelist,","); } slen = strlen(filelist); filelist[slen] = 0; if (filename != NULL) free(filename); /* Release property list ID */ /* ------------------------ */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release property list ID.\n"); H5Epush(__FILE__, "HE5_ZAgetextdata", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return (nfiles); } /* ****************************************************************************** | | | F O R T R A N 7 7 W R A P P E R S | | | ****************************************************************************** */ /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAopenF (FORTRAN wrapper) | | | | DESCRIPTION: Opens or creates HDF-EOS file in order to create, read, or | | write a ZA. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | FileID int None HDF-EOS file ID | | | | INPUTS: | | filename char* None File name string | | Flags int None File access code | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAopenF(char *filename, int Flags) { hid_t fid = FAIL;/* HDF5 file ID */ int FileID = FAIL;/* hdf-eos file ID */ uintn flags = 9999;/* HDF5 file access code */ char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAopenF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Set up the file access flag */ /* --------------------------- */ if (Flags == HE5F_ACC_RDWR || Flags == HDF5_ACC_RDWR) flags = H5F_ACC_RDWR; else if (Flags == HE5F_ACC_RDONLY || Flags == HDF5_ACC_RDONLY) flags = H5F_ACC_RDONLY; else if (Flags == HE5F_ACC_TRUNC || Flags == HDF5_ACC_CREATE) flags = H5F_ACC_TRUNC; else { sprintf(errbuf, "File access flag is not supported. \n"); H5Epush(__FILE__, "HE5_ZAopenF", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Call HE5_EHopen to open file */ /* ---------------------------- */ fid = HE5_EHopen(filename, flags, H5P_DEFAULT); if(fid == FAIL) { sprintf(errbuf, "Cannot open the file \"%s\". Check the file name. \n", filename); H5Epush(__FILE__, "HE5_ZAopenF", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); FileID = (int)fid; return(FileID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAcreateF (FORTRAN wrapper) | | | | DESCRIPTION: Creates a new za structure and returns za ID | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | zaID int None ZA structure ID | | | | INPUTS: | | FileID int None HDF-EOS file ID | | zaname char* None za name string | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAcreateF(int FileID, char *zaname) { hid_t zaID = FAIL;/* return value of za ID */ hid_t fid = FAIL;/* HDF-EOS file ID */ int ZaID = FAIL;/* int Za ID */ char *errbuf =(char *)NULL;/* Buffer for error message */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_DIMBUFSIZE, sizeof(char ) ) ; if ( errbuf == NULL ) { H5Epush(__FILE__, "HE5_ZAcreateF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } fid = (hid_t)FileID; zaID = HE5_ZAcreate(fid, zaname); if (zaID == FAIL) { sprintf(errbuf,"Cannot create za. \n"); H5Epush(__FILE__, "HE5_ZAcreateF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ZaID = (int)zaID; /* Deallocate memory */ /* ----------------- */ free(errbuf); return(ZaID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAattachF (FORTRAN wrapper) | | | | DESCRIPTION: Attaches to an existing za within the file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ZaID int ZA structure ID | | | | INPUTS: | | FileID int HDF-EOS file ID | | zaname char ZA structure name | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ========= ============ ============================================== | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAattachF(int FileID, char *zaname) { int ZaID = FAIL;/* int za ID (return) */ hid_t zaID = FAIL;/* za ID (return value) */ hid_t fid = FAIL;/* HDF-EOS file ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer*/ fid = (hid_t)FileID; zaID = HE5_ZAattach(fid, zaname); if (zaID == FAIL) { sprintf(errbuf,"Cannot attach to the za \"%s\". \n", zaname); H5Epush(__FILE__, "HE5_ZAattachF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ZaID = (int)zaID; return (ZaID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdetachF (FORTRAN wrapper) | | | | DESCRIPTION: Detachs za structure and performs housekeeping | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAdetachF(int ZaID) { int ret = FAIL;/* int return status */ hid_t zaID = FAIL;/* HDF-EOS za ID */ herr_t status = FAIL;/* routine return status variable */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; status = HE5_ZAdetach(zaID); if (status == FAIL) { sprintf(errbuf,"Cannot detach from the za. \n"); H5Epush(__FILE__, "HE5_ZAdetachF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAcloseF (FORTRAN wrapper) | | | | DESCRIPTION: Closes HDF-EOS file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | FileID int File ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAcloseF(int FileID) { int ret = FAIL;/* int return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ herr_t status = FAIL;/* routine return status variable */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ fid = (hid_t)FileID; status = HE5_ZAclose(fid); if (status == FAIL) { sprintf(errbuf,"Cannot close the file. \n"); H5Epush(__FILE__, "HE5_ZAcloseF", __LINE__, H5E_FILE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefdimF | | | | DESCRIPTION: Defines numerical value of dimension (FORTRAN wrapper) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | dimname char dimension name | | dim long dimension size | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAdefdimF(int ZaID, char *dimname, long dim) { int ret = SUCCEED;/* (int) return status variable */ hid_t zaID = FAIL; /* HDF5 type za ID */ herr_t status = SUCCEED;/* HDF5 type return status */ hsize_t tdim = 0; /* temporary(dimension) variable */ char *errbuf = (char *)NULL;/* Error message buffer */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); tdim = (hsize_t)dim; zaID = (hid_t)ZaID; status = HE5_ZAdefdim(zaID, dimname, tdim); if ( status == FAIL ) { sprintf(errbuf, "Error calling HE5_ZAdefdim from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_ZAdefdimF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefineF | | | | | | DESCRIPTION: Defines data field within ZA structure (FORTRAN) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID int ZA structure ID | | fieldname char fieldname | | fortdimlist char Dimension list (comma-separated list) | | FORTRAN dimesion order | | fortmaxdimlist char Max Dimension list (FORTRAN order) | | numtype int field type | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAdefineF(int zaID, char *fieldname, char *fortdimlist, char *fortmaxdimlist, int numtype) { int ret = SUCCEED;/* (int) return status variable */ herr_t status = SUCCEED;/* routine return status variable */ hid_t ZaID = FAIL; /* HDF5 type za ID */ hid_t numbertype = FAIL; /* HDF5 type data type ID */ char *dimlist = (char *)NULL;/* Dimension list (C order) */ char *maxdimlist= (char *)NULL;/* Max. dimension list (C) */ char *errbuf = (char *)NULL;/* error message buffer */ ZaID = (hid_t)zaID; numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { H5Epush(__FILE__, "HE5_ZAdefineF", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, "Cannot convert datatype for FORTRAN wrapper."); HE5_EHprint("Error: Cannot convert datatype for FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } if(strcmp(fortmaxdimlist,"") == 0) fortmaxdimlist = NULL; /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAdefineF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *)calloc(strlen(fortdimlist) + 1, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for dimlist.\n"); H5Epush(__FILE__, "HE5_ZAdefineF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortdimlist, dimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_ZAdefineF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } if (fortmaxdimlist != NULL) { /* Allocate space for C order max. dim. list */ /* ----------------------------------------- */ maxdimlist = (char *)calloc(strlen(fortmaxdimlist) + 1, sizeof(char)); if(maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for maxdimlist.\n"); H5Epush(__FILE__, "HE5_ZAdefineF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimlist); free(errbuf); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortmaxdimlist, maxdimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in maximum dimension list.\n"); H5Epush(__FILE__, "HE5_ZAdefineF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(maxdimlist); return(FAIL); } } else { maxdimlist = NULL; } /* Call Define Field routine */ /* ------------------------- */ status = HE5_ZAdefinefield(ZaID, "Data Fields", fieldname, dimlist, maxdimlist, numbertype); if(status == FAIL) { sprintf(errbuf,"Cannot define \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_ZAdefineF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); if (maxdimlist!=NULL) free(maxdimlist); return(FAIL); } free(dimlist); if (maxdimlist != NULL) free(maxdimlist); free(errbuf); ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefcompF (FORTRAN wrapper) | | | | DESCRIPTION: Defines compression type and parameters | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | compcode int compression code | | compparm int compression parameters | | | | OUTPUTS: | | None | | | | NOTES: Before calling this function, storage must be CHUNKED | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAdefcompF(int ZaID, int compcode, int *compparm) { int ret = FAIL; /* routine return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ zaID = (hid_t)ZaID; status = HE5_ZAdefcomp(zaID, compcode, compparm); if(status == FAIL) { sprintf(errbuf,"Error calling ZAdefcomp() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAdefcompF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefchunkF | | | | DESCRIPTION: FORTRAN wrapper for ZAdefchunk | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | ndims int rank of a dataset | | *dim long pointer to the array containing sizes | | of each dimension of a chunk | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================== | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAdefchunkF(int ZaID, int ndims, long *dim) { int ret = FAIL; /* return status */ int j = 0; /* Loop index */ herr_t status = FAIL; /* return status */ hid_t zaID = FAIL; /* HDF5 type za ID */ hsize_t *tempdims = (hsize_t *)NULL;/* Temporary variable */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffer */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAdefchunkF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ tempdims = (hsize_t *)calloc(ndims, sizeof(hsize_t)); if(tempdims == NULL) { sprintf(errbuf,"Cannot allocate memory for tempdims.\n"); H5Epush(__FILE__, "HE5_ZAdefchunkF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Change from FORTRAN to C dimension order */ /* ---------------------------------------- */ for (j = 0; j < ndims; j++) tempdims[j] = (hsize_t)dim[ndims - 1 - j]; zaID = (hid_t)ZaID; status = HE5_ZAdefchunk(zaID, ndims, tempdims); if(status == FAIL) { sprintf(errbuf,"Error calling ZAdefchunk() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAdefchunkF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(tempdims); return(FAIL); } free(tempdims); free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAcompinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves compression information about a field | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None Return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname const char* Field name | | compcode int* Compression code | | compparm int Compression parameters | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAcompinfoF(int ZaID, char *fieldname, int *compcode, int compparm[]) { int ret = FAIL; /* Return status variable */ herr_t status = FAIL; /* Return status variable */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; status = HE5_ZAcompinfo(zaID, fieldname, compcode, compparm); if (status == FAIL) { sprintf(errbuf , "Compression information for \"%s\" not found.\n", fieldname); H5Epush(__FILE__, "HE5_ZAcompinfoF", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwritecharF | | | | DESCRIPTION: Writes data to a character string field (FORTRAN wrapper | | around ZAwrite) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char fieldname | | elemlen int each element length in array of string | | numelem int number of elements in declared buffer | | array | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | | | OUTPUTS: | | data void data buffer for write | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.ZHAO For an array of character string dataset. | | Jun 04 S.Zhao Added one more argument (numelem). | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAwritecharF(int ZaID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *data) { int ret = SUCCEED; /* int return status variable */ int i; /* Loop index */ int rank = 0; /* Field rank */ herr_t status = SUCCEED; /* routine return status variable */ hid_t ntype[1] = {FAIL}; /* Field datatype ID */ hid_t zaID = FAIL; /* HDF-EOS za ID */ hssize_t *start = (hssize_t *)NULL;/* Pointer to start array (C order)*/ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ hsize_t *stride = (hsize_t *)NULL;/* Pointer to stride array (C order)*/ hsize_t *edge = (hsize_t *)NULL;/* Pointer to edge array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char **strdatabuf = NULL; /* string data buffer */ int nelem = 0; /* number of elements in array of str*/ int strsize = 0; /* each str length in array of str */ char *blankPtr = (char *)NULL; /* pointer to blank character */ char *tmpString = (char *)NULL;/* pointer to temp string */ int attr = 0; /* attribute value */ hsize_t count[1]; /* number of attribute elements */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAwritecharF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } zaID = (hid_t)ZaID; /* Initialize dims[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Get field info */ /* --------------- */ status = HE5_ZAinfo(zaID, fieldname, &rank, dims, ntype, NULL, NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_ZAwritecharF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_ZAwritecharF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(errbuf); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_ZAwritecharF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } strsize = elemlen; nelem = dims[0]; tmpString = (char *)calloc(sizeof(char),strsize+1); if(tmpString == NULL) { sprintf(errbuf,"Cannot allocate memory for tmpString.\n"); H5Epush(__FILE__, "HE5_ZAwritecharF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } strdatabuf = (char **)malloc(nelem*sizeof(char *)); for (i = 0; i C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } myedge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(myedge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_ZAwriteF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } for (i = 0; i < rank; i++) { if(edge[i] > dims[i]) myedge[i] = dims[i]; else myedge[i] = edge[i]; } status = HE5_ZAwrrdfield(zaID, fieldname, "w", start, stride, myedge, data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_ZAwriteF", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(myedge); free(errbuf); return(FAIL); } free(start); free(stride); free(edge); free(myedge); free(errbuf); } else { sprintf(errbuf, "Error calling HE5_ZAinfo() from FORTRAN wrapper. \n") ; H5Epush(__FILE__, "HE5_ZAwriteF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwrattr | | | | DESCRIPTION: FORTRAN wrapper to write/update attribute in a za. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | attrname char* attribute name | | numtype int attribute HDF numbertype | | fortcount[] long number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | Mar 04 S.Zhao Modified for a character string attribute. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAwrattr(int ZaID, char *attrname, int numtype, long fortcount[], void * datbuf) { int ret = FAIL;/* int return status variable */ int rank = 1; /* Note: It is assumed that fortcout has just */ /* one element to agree with EHattr function */ int i; /* Loop index */ hid_t zaID = FAIL;/* HDF-EOS za ID */ hid_t numbertype = FAIL;/* HDF5 data type ID */ herr_t status = FAIL;/* routine return status variable */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count array (C order)*/ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { H5Epush(__FILE__, "HE5_ZAwrattr", __LINE__, H5E_DATATYPE, H5E_BADVALUE, "Error calling HE5_EHconvdatatype() from FORTRAN wrapper."); HE5_EHprint("Error: Error calling HE5_EHconvdatatype() from FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAwrattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for "count" array */ /* --------------------------------- */ count = (hsize_t *)calloc(rank, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_ZAwrattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { count[i] = (hsize_t)fortcount[rank - 1 - i]; } zaID = (hid_t)ZaID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of attribute elements.\n"); H5Epush(__FILE__, "HE5_ZAwrattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_ZAwrattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; /* Call ZAwriteattr() */ /* ------------------ */ status = HE5_ZAwriteattr(zaID, attrname, numbertype, count, tempbuf); if( status == FAIL) { sprintf(errbuf,"Cannot write data to the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_ZAwrattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { /* Call ZAwriteattr() */ /* ------------------ */ status = HE5_ZAwriteattr(zaID, attrname, numbertype, count, datbuf); if( status == FAIL) { sprintf(errbuf,"Cannot write data to the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_ZAwrattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAsetfill (FORTRAN wrapper) | | | | DESCRIPTION: Sets fill value for the specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char* field name | | fillval void* fill value | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAsetfill(int ZaID, char *fieldname, int numtype, void *fillval) { int ret = FAIL;/* int return status variable */ herr_t status = FAIL;/* return status variable */ hid_t numbertype = FAIL;/* HDF5 data tyope ID */ hid_t zaID = FAIL;/* HDF5 za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAsetfill", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } zaID = (hid_t)ZaID; status = HE5_ZAsetfillvalue(zaID, fieldname, numbertype, fillval); if (status == FAIL) { sprintf(errbuf,"Cannot set fill value for the field \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_ZAsetfill", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgetfill (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves fill value for a specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char* field name | | | | OUTPUTS: | | fillval void* fill value | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAgetfill(int ZaID, char *fieldname, void *fillval) { int ret = FAIL;/* routine return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t zaID = FAIL;/* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; status = HE5_ZAgetfillvalue(zaID, fieldname, fillval); if (status == FAIL) { sprintf(errbuf,"Cannot get fill value for the field \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_ZAgetfill", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAreadF | | | | DESCRIPTION: Reads data from field (FORTRAN wrapper around ZAread) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char fieldname | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | buffer void data buffer for read | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAreadF(int ZaID, char *fieldname, long fortstart[], long fortstride[], long fortedge[], void *buffer) { int ret = SUCCEED; /* routine return status variable */ int i = 0; /* Loop index */ int rank = 0; /* Field rank */ hid_t ntype[1] = {FAIL}; /* Field data type ID */ hid_t zaID = FAIL; /* za HDF5 type ID */ herr_t status = SUCCEED; /* routine return status variable */ hssize_t *start = (hssize_t *)NULL;/* Pointer to start array (C order) */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ hsize_t *stride = (hsize_t *)NULL; /* Pointer to stride array (C order)*/ hsize_t *edge = (hsize_t *)NULL; /* Pointer to edge array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAreadF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } zaID = (hid_t)ZaID; /* Initialize dims[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Get field info */ /* -------------- */ status = HE5_ZAinfo(zaID, fieldname, &rank, dims, ntype, NULL,NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_ZAreadF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_ZAreadF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(errbuf); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_ZAreadF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } /* Read data from the field */ /* ------------------------ */ status = HE5_ZAwrrdfield(zaID, fieldname, "r", start, stride, edge, buffer); if (status == FAIL) { sprintf(errbuf, "Cannot read data from the \"%s\" field.",fieldname) ; H5Epush(__FILE__, "HE5_ZAreadF", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } free(start); free(stride); free(edge); free(errbuf); } else { sprintf(errbuf, "Fieldname \"%s\" does not exist.",fieldname) ; H5Epush(__FILE__, "HE5_ZAreadF", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); status = FAIL; } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAreadcharF | | | | DESCRIPTION: Reads data from a character string field (FORTRAN wrapper | | around ZAread) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char fieldname | | elemlen int each element length in array of string | | numelem int number of elements in declared buffer | | array | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | buffer void data buffer for read | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 04 S.Zhao For an array of character string dataset. | | Jun 04 S.Zhao Added two more arguments (elemlen and numelem). | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAreadcharF(int ZaID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *buffer) { int ret = SUCCEED; /* routine return status variable */ int i = 0; /* Loop index */ int rank = 0; /* Field rank */ hid_t ntype[1] = {FAIL}; /* Field data type ID */ hid_t zaID = FAIL; /* za HDF5 type ID */ herr_t status = SUCCEED; /* routine return status variable */ hssize_t *start = (hssize_t *)NULL;/* Pointer to start array (C order) */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ hsize_t *stride = (hsize_t *)NULL; /* Pointer to stride array (C order)*/ hsize_t *edge = (hsize_t *)NULL; /* Pointer to edge array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char **strdatabuf = NULL; /* string data buffer */ int stlen = 0; /* whole string array length */ int nelem = 0; /* number of elements in array of str */ int strsize = 0; /* each str length in array of str */ int attr = 0; /* attribute value */ int j = 0; /* Loop index */ int num_elem_passed_out; int numread; /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAreadcharF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } zaID = (hid_t)ZaID; /* Initialize dims[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Get field info */ /* -------------- */ status = HE5_ZAinfo(zaID, fieldname, &rank, dims, ntype, NULL,NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_ZAreadcharF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_ZAreadcharF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(errbuf); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_ZAreadcharF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } status = HE5_ZAreadlocattr(zaID, fieldname, "StringLengthAttribute", &attr); if (status == FAIL) { sprintf(errbuf, "Cannot read attribute from the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_ZAreadcharF", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } if(elemlen < attr ) { sprintf(errbuf, "Element length passed in is not correct. Should be same as in declration"); H5Epush(__FILE__, "HE5_ZAreadcharF", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } strsize = attr; stlen = dims[0] * strsize; nelem = stlen / strsize; strdatabuf = (char **)malloc(nelem*sizeof(char *)); for (i = 0; i C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { count[i] = (hsize_t)fortcount[rank - 1 - i]; } zaID = (hid_t)ZaID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of local attribute elements.\n"); H5Epush(__FILE__, "HE5_ZAwrlattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_ZAwrlattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; /* Write local attribute buffer */ /* ---------------------------- */ status = HE5_ZAwritelocattr(zaID, fieldname, attrname, numbertype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write local attribute value.\n"); H5Epush(__FILE__, "HE5_ZAwrlattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { /* Write local attribute buffer */ /* ---------------------------- */ status = HE5_ZAwritelocattr(zaID, fieldname, attrname, numbertype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write local attribute value.\n"); H5Epush(__FILE__, "HE5_ZAwrlattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZArdlattr (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute associated with a specified field in a za. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char fieldname | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZArdlattr(int ZaID, char *fieldname, char *attrname, void *datbuf) { int ret = FAIL;/* return status variable */ herr_t status = FAIL;/* return status variable */ hid_t zaID = FAIL;/* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; status = HE5_ZAreadlocattr(zaID,fieldname, attrname, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" associated wth the \"%s\" field.\n", attrname,fieldname); H5Epush(__FILE__, "HE5_ZArdlattr", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqdimsF | | | | DESCRIPTION: Returns dimension names and values defined in ZA structure | | (FORTRAN Wrapper) | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nDim long Number of defined dimensions | | | | INPUTS: | | ZaID int ZA structure ID | | | | OUTPUTS: | | dimlist char* Dimension names (comma-separated) | | dims long Dimension values | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqdimsF(int ZaID, char *dimlist, long dims[]) { int i = 0; /* Loop index */ hid_t zaID = FAIL;/* HDF5 type za ID */ long nDim = FAIL;/* (return) number of dimensions */ long strbufsize = 0; /* String size variable */ hsize_t *tdims = (hsize_t *)NULL;/* Dimension variable */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; nDim = HE5_ZAnentries(zaID, 0, &strbufsize); if(nDim == FAIL) { sprintf(errbuf,"Error calling ZAnentries() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAinqdimsF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } tdims = (hsize_t *)calloc(nDim, sizeof(hsize_t)); if(tdims == NULL) { sprintf(errbuf,"Cannot allocate memory for tdims.\n"); H5Epush(__FILE__, "HE5_ZAinqdimsF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nDim = HE5_ZAinqdims(zaID, dimlist, tdims); if(nDim == FAIL) { sprintf(errbuf,"Error calling HE5_ZAinqdims() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAinqdimsF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(tdims); return(FAIL); } /* Convert data type */ /* ----------------- */ for(i = 0; i < nDim; i++) dims[i] = (long)tdims[i]; free(tdims); return (nDim); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinquireF (FORTRAN wrapper) | | | | DESCRIPTION: Inquires about data fields in za | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nflds long Number of data fields in za | | | | INPUTS: | | ZaID int ZA structure ID | | | | OUTPUTS: | | fieldlist char Field names (comma-separated) | | rank int Array of ranks | | ntype int data type class ID | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinquireF(int ZaID, char *fieldlist, int rank[], int ntype[]) { long nflds = FAIL; /* Number of Data fields */ long i; /* Looop index */ hid_t zaID = FAIL; /* HDF5 type za ID */ hid_t *dtype = (hid_t *)NULL; /* Data type ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ zaID = (hid_t)ZaID; /* Call "HE5_ZAinquire" routine to get number of fields */ /* ---------------------------------------------------- */ nflds = HE5_ZAinquire(zaID, fieldlist, NULL, NULL); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_ZAinquireF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } dtype = (hid_t *)calloc(nflds, sizeof(hid_t)); if (dtype == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_ZAinquireF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nflds = HE5_ZAinquire(zaID, fieldlist, rank, dtype); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_ZAinquireF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dtype); return(FAIL); } for (i = 0; i < nflds; i++) ntype[i] = (int)dtype[i]; free(dtype); return(nflds); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdiminfoF | | | | DESCRIPTION: FORTRAN wrapper for ZAdiminfo to retrieve size of specified | | dimension. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size long None Size of dimension | | | | INPUTS: | | ZaID int None ZA structure ID | | dimname char* None Dimension name | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAdiminfoF(int ZaID, char *dimname) { long size = 0; /* dimension size (return) */ hid_t zaID = FAIL; /* HDF5 data type ID */ hsize_t tsize = 0; /* size variable */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ zaID = (hid_t)ZaID; tsize = HE5_ZAdiminfo(zaID, dimname); if (tsize == 0) { sprintf(errbuf, "Error calling ZAdiminfo() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_ZAdiminfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } size = (long)tsize; return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinfoF | | | | DESCRIPTION: FORTRAN wrapper around ZAinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure id | | fieldname char name of field | | | | OUTPUTS: | | rank long rank of field (# of dims) | | dims long field dimensions | | ntype int field number type | | fortdimlist char field dimension list (FORTRAN order) | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAinfoF(int ZaID, char *fieldname, int *rank, long dims[], int *ntype, char *fortdimlist, char *fortmaxdimlist) { int ret = SUCCEED; /* routine return status variable */ int j = 0; /* Loop Index */ herr_t status = SUCCEED; /* routine return status variable */ hid_t zaID = FAIL; /* HDF5 type data type ID */ hid_t dtype[1] = {FAIL}; /* Data type ID */ hsize_t tempdims[HE5_DTSETRANKMAX];/* Dimension sizes array */ hsize_t swap = 0; /* Temporary dimension size */ char *errbuf = (char *)NULL; /* error message buffer */ /* Dimension lists in C order */ /* -------------------------- */ char *dimlist = (char *)NULL; char *maxdimlist = (char *)NULL; /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ maxdimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); dimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(dimlist == NULL || maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for input list.\n"); H5Epush(__FILE__, "HE5_ZAinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } zaID = (hid_t)ZaID; /* Initialize tempdims[] array */ /* --------------------------- */ for ( j = 0; j < HE5_DTSETRANKMAX; j++) tempdims[ j ] = 0; /* Get field info */ /* -------------- */ status = HE5_ZAinfo(zaID, fieldname, rank, tempdims, dtype, dimlist, maxdimlist); if (status == SUCCEED) { for (j = 0; j < *rank / 2; j++) { swap = tempdims[*rank - 1 - j]; tempdims[*rank - 1 - j] = tempdims[j]; tempdims[j] = swap; } /* change the datatype */ /* ------------------- */ for (j = 0; j < *rank; j++) dims[j] = (long)tempdims[j]; /* Reverse order of dimensions entries in dimension list */ /* ----------------------------------------------------- */ if(fortdimlist != (char *)NULL) { status = HE5_EHrevflds(dimlist, fortdimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_ZAinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(maxdimlist); return(FAIL); } } if(fortmaxdimlist != (char *)NULL) { status = HE5_EHrevflds(maxdimlist, fortmaxdimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in maximum dimension list.\n"); H5Epush(__FILE__, "HE5_ZAinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(maxdimlist); return(FAIL); } } } *ntype = (int)dtype[0]; free(maxdimlist); free(dimlist); free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAchunkinfoF | | | | DESCRIPTION: FORTRAN wrapper for ZAchunkinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char* name of field | | | | OUTPUTS: | | ndims int* rank of a dataset | | dims long the array containing sizes | | of each dimension of a chunk | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================ | | Dec 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAchunkinfoF(int ZaID, char *fieldname, int *ndims, long dims[]) { int ret = FAIL; /* return status */ int j = 0; /* Loop index */ herr_t status = FAIL; /* return status */ hid_t zaID = FAIL; /* HDF5 type za ID */ hsize_t tempdims[HE5_DTSETRANKMAX]; /* Temporary dimension sizes array */ hsize_t swap = 0; /* Temporary dimension size */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffer */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAchunkinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Initialize tempdims[] array */ /* --------------------------- */ for ( j = 0; j < HE5_DTSETRANKMAX; j++) tempdims[ j ] = 0; zaID = (hid_t)ZaID; status = HE5_ZAchunkinfo(zaID, fieldname, ndims, tempdims); if(status == FAIL) { sprintf(errbuf,"Error calling ZAchunkinfo() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAchunkinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } for (j = 0; j < *ndims / 2; j++) { swap = tempdims[*ndims - 1 - j]; tempdims[*ndims - 1 - j] = tempdims[j]; tempdims[j] = swap; } for (j = 0; j < *ndims; j++) dims[j] = (long)tempdims[j]; free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwrgattr | | | | DESCRIPTION: FORTRAN wrapper to write/update group attribute in a za. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | attrname char* group attribute name | | numtype int group attribute HDF numbertype | | fortcount[] long number of group attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | It is assumed that fortcout has just one element to agree | | with EHattr() call. | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | Mar 04 S.Zhao Modified for a character string attribute. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAwrgattr(int ZaID, char *attrname, int numtype, long fortcount[], void *datbuf) { int ret = FAIL; /* (int) return status variable */ int rank = 1; /* Rank variable */ int i; /* Loop index */ herr_t status = FAIL; /* routine return status variable */ hid_t zaID = FAIL; /* HDF5 type za ID */ hid_t numbertype = FAIL; /* HDF5 data type ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAwrgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get HDF5 data type ID */ /* --------------------- */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID.\n"); H5Epush(__FILE__, "HE5_ZAwrgattr", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } count = (hsize_t *)calloc(rank, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_ZAwrgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) count[i] = (hsize_t)fortcount[rank - 1 - i]; zaID = (hid_t)ZaID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of group attribute elements.\n"); H5Epush(__FILE__, "HE5_ZAwrgattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_ZAwrgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; status = HE5_ZAwritegrpattr(zaID, attrname, numbertype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_ZAwrgattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { status = HE5_ZAwritegrpattr(zaID, attrname, numbertype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_ZAwrgattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAatinfo | | | | DESCRIPTION: FORTRAN wrapper for ZAattrinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | attrname char* attribute name | | | | OUTPUTS: | | numbertype int attribute HDF numbertype | | fortcount long Number of attribute elements | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_ZAatinfo(int ZaID, char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* return status variable */ hid_t *ntype = (hid_t *)NULL;/* Data type ID */ hid_t zaID = FAIL; /* HDF5 type za ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *) calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_ZAatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *) calloc(1, sizeof(hid_t)); if(ntype == NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_ZAatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } zaID = (hid_t)ZaID; status = HE5_ZAattrinfo(zaID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_ZAatinfo", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(ntype); return(FAIL); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgatinfo | | | | DESCRIPTION: FORTRAN wrapper for ZAgrpattrinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | attrname char* attribute name | | | | OUTPUTS: | | numbertype int attribute HDF numbertype | | fortcount long Number of attribute elements | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_ZAgatinfo(int ZaID, char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type ID */ hid_t zaID = FAIL; /* HDF5 type za ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAgatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_ZAgatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if( ntype == NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_ZAgatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } zaID = (hid_t)ZaID; status = HE5_ZAgrpattrinfo(zaID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about group attribute.\n"); H5Epush(__FILE__, "HE5_ZAgatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(ntype); return(FAIL); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqgattrs (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Data Fields" | | group. | | | | INPUTS: | | ZaID int ZA structure ID | | | | OUTPUTS: | | attrnames char Attribute names in "Data Fields" group | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqgattrs(int ZaID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; nattr = HE5_ZAinqgrpattrs(zaID, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_ZAinqgattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqattrsF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves information about attributes defined in ZA | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in za struct | | | | INPUTS: | | ZaID int ZA structure ID | | | | OUTPUTS: | | attrnames char Attribute names in za struct | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqattrsF(int ZaID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; nattr = HE5_ZAinqattrs(zaID, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_ZAinqattrsF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAlatinfo | | | | DESCRIPTION: FORTRAN wrapper for ZAlocattrinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char* field name name | | | | OUTPUTS: | | attrname char* attribute name | | numbertype int attribute HDF numbertype | | fortcount long Number of attribute elements | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_ZAlatinfo(int ZaID, char *fieldname, char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type ID */ hid_t zaID = FAIL; /* HDF5 type za ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAlatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_ZAlatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if( ntype == NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_ZAlatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } zaID = (hid_t)ZaID; status = HE5_ZAlocattrinfo(zaID, fieldname, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about local attribute.\n"); H5Epush(__FILE__, "HE5_ZAlatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(ntype); return(FAIL); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqlattrs (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified field in the | | "Data Fields" group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Data Fields" | | group. | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char field name | | | | OUTPUTS: | | attrnames char Attribute names in "Data Fields" group | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqlattrs(int ZaID, char *fieldname, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; nattr = HE5_ZAinqlocattrs(zaID, fieldname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_ZAinqlattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAidtype | | | | DESCRIPTION: Inquires about data fields in za (FORTRAN Wrapper) | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char* Field name | | attrname char* Attribute name | | fieldgroup int Field group id | | | | OUTPUTS: | | Type int* | | Class int* | | Order int* | | size long* | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAidtype(int ZaID, char *fieldname, char *attrname, int fieldgroup, int *Type, int *Class, int *Order, long *size) { int ret = FAIL; /* (int) status variable */ herr_t status = FAIL; /* return status variable */ size_t *tsize = (size_t *)NULL; /* data size variable */ hid_t *typeID = (hid_t *)NULL; /* HDF5 Data type ID */ hid_t zaID = FAIL; /* HDF5 type za ID */ H5T_class_t *classID = (H5T_class_t *)NULL;/* Data type class ID */ H5T_order_t *order = (H5T_order_t *)NULL;/* Byte order of datatype */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } typeID = (hid_t *)calloc(1, sizeof(hid_t)); if(typeID == NULL) { sprintf(errbuf,"Cannot allocate memory for typeID.\n"); H5Epush(__FILE__, "HE5_ZAidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } tsize = (size_t *)calloc(1, sizeof(size_t)); if(tsize == NULL) { sprintf(errbuf,"Cannot allocate memory for tsize.\n"); H5Epush(__FILE__, "HE5_ZAidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); return(FAIL); } classID = (H5T_class_t *)calloc(1, sizeof(H5T_class_t)); if(classID == (H5T_class_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for classID.\n"); H5Epush(__FILE__, "HE5_ZAidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); return(FAIL); } order = (H5T_order_t *)calloc(1, sizeof(H5T_order_t)); if(order == (H5T_order_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for order.\n"); H5Epush(__FILE__, "HE5_ZAidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); free(classID); return(FAIL); } zaID = (hid_t)ZaID; /* Get data type information */ /* ------------------------- */ status = HE5_ZAinqdatatype(zaID, fieldname, attrname, fieldgroup, typeID, classID, order, tsize); if(status == FAIL) { sprintf(errbuf,"Cannot get information about data type.\n"); H5Epush(__FILE__, "HE5_ZAidtype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); free(classID); free(order); return(FAIL); } *Type = (int)(*typeID); *Class = (int)(*classID); *Order = (int)(*order); *size = (long)(*tsize); free(errbuf); free(typeID); free(classID); free(order); free(tsize); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqzaF (FORTRAN wrapper) | | | | DESCRIPTION: Returns number and names of za structures in file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nza long Number of ZA structures in file | | | | INPUTS: | | filename char HDF-EOS filename | | | | OUTPUTS: | | zalist char List of za names (comma-separated) | | strbufsize long Length of zalist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqzaF(char *filename, char *zalist, long *strbufsize) { long nza = FAIL;/* Number of za structures in file */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ nza = HE5_ZAinqza(filename, zalist, strbufsize); if ( nza < 0 ) { sprintf(errbuf,"Cannot get information about za."); H5Epush(__FILE__, "HE5_ZAinqzaF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nza); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAnentriesF (FORTRAN wrapper) | | | | DESCRIPTION: Returns number of entries and string buffer size | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nEntries long Number of entries | | | | INPUTS: | | ZaID int ZA structure ID | | entrycode int Entry code | | | | OUTPUTS: | | strbufsize long Length of comma-separated list | | (Does not include null-terminator | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAnentriesF(int ZaID, int entrycode, long *strbufsize) { long nEntries = FAIL; /* Number of entries */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ zaID = (hid_t)ZaID; nEntries = HE5_ZAnentries(zaID, entrycode, strbufsize); if (nEntries < 0) { sprintf(errbuf,"Failed to get number of entries in a za."); H5Epush(__FILE__, "HE5_ZAnentriesF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nEntries); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAsetaliasF (FORTRAN wrapper) | | | | DESCRIPTION: Defines alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char Original field name | | | | OUTPUTS: | | fortaliaslist char Comma separated list of aliases for| | the field name | | | | NOTES: | | None | | | | Date Programmer Description | | ======= ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAsetaliasF(int ZaID, char *fieldname, char *fortaliaslist) { int ret = FAIL;/* (int)Return status variable */ herr_t status = FAIL;/* return status variable */ hid_t zaID = FAIL;/* HDF5 type za ID */ char *aliaslist = NULL;/* C-order list of aliases */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; /* Allocate space for C order alias list */ /* ------------------------------------- */ aliaslist = (char *)calloc(strlen(fortaliaslist) + 1, sizeof(char)); if(aliaslist == NULL) { sprintf(errbuf,"Cannot allocate memory for aliaslist.\n"); H5Epush(__FILE__, "HE5_ZAsetaliasF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Reverse entries in alias list (FORTRAN -> C) */ /* -------------------------------------------- */ status = HE5_EHrevflds(fortaliaslist, aliaslist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in alias list.\n"); H5Epush(__FILE__, "HE5_ZAsetaliasF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(aliaslist); return(FAIL); } /* Call ZAsetalias() */ /* ----------------- */ status = HE5_ZAsetalias(zaID, fieldname, aliaslist); if ( status == FAIL ) { sprintf(errbuf, "Error calling ZAsetalias() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_ZAsetaliasF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(aliaslist); return(FAIL); } free(aliaslist); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdropaliasF (FORTRAN wrapper) | | | | DESCRIPTION: Removes the alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | ZaID int ZA structure ID | | aliasname char Alias name to remove | | fldgroup int Field group flag | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAdropaliasF(int ZaID, int fldgroup, char *aliasname) { int ret = FAIL;/* (int)Return status variable */ herr_t status = FAIL;/* return status variable */ hid_t zaID = FAIL;/* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; status = HE5_ZAdropalias(zaID, fldgroup, aliasname); if(status == FAIL) { sprintf(errbuf,"Error calling ZAdropalias() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAdropaliasF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqfldaliasF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of fields & aliases and string length of| | fields & aliases list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfldalias long Number of fields & aliases in "Data | | Fields" group. | | | | INPUTS: | | ZaID int za structure ID | | | | OUTPUTS: | | fldalias char* Fields & aliases names in "Data Fields" | | group (Comma-separated list) | | strbufsize long* Fields & aliases name list string length| | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqfldaliasF(int ZaID, char *fldalias, long *strbufsize) { long nfldalias = FAIL; /* Number of fields & aliases (return) */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; nfldalias = HE5_ZAinqfldalias(zaID, fldalias, strbufsize); if ( nfldalias < 0 ) { sprintf(errbuf, "Cannot retrieve the fields & aliases. \n"); H5Epush(__FILE__, "HE5_ZAinqfldaliasF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nfldalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAaliasinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves information about field aliases | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | ZaID int ZA structure ID | | aliasname char alias name | | fldgroup int Field group flag | | | | OUTPUTS: | | length int Buffer size | | buffer char Buffer with original field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAaliasinfoF(int ZaID, int fldgroup, char *aliasname, int *length, char *buffer) { int ret = FAIL;/* (int) return status variable */ herr_t status = FAIL;/* return status variable */ hid_t zaID = FAIL;/* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; status = HE5_ZAaliasinfo(zaID, fldgroup, aliasname, length, buffer); if(status == FAIL) { sprintf(errbuf,"Error calling ZAaliasinfo() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAaliasinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAfldrenameF (FORTRAN wrapper) | | | | DESCRIPTION: Changes the field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | ZaID int ZA structure ID | | oldfieldname char Original field name | | | | OUTPUTS: | | newfieldname char New field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAfldrenameF(int ZaID, char *oldfieldname, char *newfieldname) { int ret = FAIL;/* (int)Return status variable */ herr_t status = FAIL;/* return status variable */ hid_t zaID = FAIL;/* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; status = HE5_ZAfldrename(zaID, oldfieldname, newfieldname); if(status == FAIL) { sprintf(errbuf,"Error calling ZAfldrename() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAfldrenameF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdefcomchunkF (FORTRAN wrapper) | | | | DESCRIPTION: Defines compression type and parameters and sets chunking | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | compcode int compression code | | compparm int compression parameters | | rank int rank of a dataset | | *dim long pointer to the array containing sizes | | of each dimension of a chunk | | | | OUTPUTS: | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAdefcomchunkF(int ZaID, int compcode, int *compparm, int rank, long *dim) { int ret = FAIL; /* return status */ int j = 0; /* Loop index */ herr_t status = FAIL; /* return status */ hsize_t *tempdims = (hsize_t *)NULL;/* Temporary variable */ hid_t zaID = FAIL; /* HDF5 type za ID */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAdefcomchunkF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ tempdims = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(tempdims == (hsize_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for tempdims.\n"); H5Epush(__FILE__, "HE5_ZAdefcomchunkF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Change from FORTRAN to C dimension order */ /* ---------------------------------------- */ for (j = 0; j < rank; j++) tempdims[j] = (hsize_t)dim[ rank - 1 - j ]; zaID = (hid_t)ZaID; /* Call HE5_ZAdefcomchunk() */ /* ------------------------ */ status = HE5_ZAdefcomchunk(zaID, compcode, compparm, rank, tempdims); if (status == FAIL) { sprintf(errbuf, "Error calling HE5_ZAdefcomchunk from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAdefcomchunkF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(tempdims); return(FAIL); } free(tempdims); free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAsetextdataF (FORTRAN wrapper) | | | | DESCRIPTION: Sets external data files. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fortfilelist char* list of external files (FORTRAN order) | | offset long array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size long array of sizes (in bytes) reserved in | | the file for the data. | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAsetextdataF(int ZaID, char *fortfilelist, long offset[], long size[]) { int ret = FAIL; /* return status variable */ herr_t status = FAIL; /* Return status variable */ hid_t zaID = FAIL; /* ZA HDF5 type ID */ off_t *off = (off_t *)NULL; /* Array of data offsets */ long nentries = 0; /* Number of list entries */ long i; /* Loop index */ hsize_t *sz = (hsize_t *)NULL;/* Array of data sizes */ char *filelist = (char *)NULL; /* Files list (C order) */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Allocate space for C order file list */ /* ------------------------------------ */ filelist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(filelist == NULL) { sprintf(errbuf,"Cannot allocate memory for input list.\n"); H5Epush(__FILE__, "HE5_ZAsetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Reverse entries in input list */ /* ----------------------------- */ status = HE5_EHrevflds(fortfilelist, filelist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in file list.\n"); H5Epush(__FILE__, "HE5_ZAsetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); return(FAIL); } /* Parse the list of entries to get number of files */ /* ------------------------------------------------ */ nentries = HE5_EHparsestr(filelist, ',', NULL, NULL); if(nentries <= 0) { sprintf(errbuf,"Cannot parse the input list/input list is empty.\n"); H5Epush(__FILE__, "HE5_ZAsetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); return(FAIL); } /* Allocate space for offset array */ /* ------------------------------- */ off = (off_t *)calloc(nentries, sizeof(off_t)); if(off == (off_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for input offset array.\n"); H5Epush(__FILE__, "HE5_ZAsetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); return(FAIL); } /* Allocate space for size array */ /* ----------------------------- */ sz = (hsize_t *)calloc(nentries, sizeof(hsize_t)); if(sz == (hsize_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for input size array.\n"); H5Epush(__FILE__, "HE5_ZAsetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); return(FAIL); } /* Copy the elements of input arrays */ /* --------------------------------- */ for (i = 0; i < nentries; i++) { off[ nentries - 1 - i ] = (off_t)offset[ i ]; sz[ nentries - 1 - i ] = (hsize_t)size[ i ]; } zaID = (hid_t)ZaID; /* Call the C function */ /* ------------------- */ status = HE5_ZAsetextdata(zaID, filelist, off, sz); if (status == FAIL) { sprintf(errbuf, "Error calling HE5_ZAsetextdata from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAsetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); free(sz); return(FAIL); } if (filelist != NULL) free(filelist); if (off != NULL) free(off); if (sz != NULL) free(sz); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgetextdataF (FORTRAN wrapper) | | | | DESCRIPTION: Gets external data files information. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfiles int number of external files SUCCEED, | | (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char* External field name | | | | OUTPUTS: | | namelength long Length of each name entry | | fortfilelist char* List of file names (FORTRAN order) | | offset long array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size long array of sizes (in bytes) reserved in | | the file for the data. | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 02 S.ZHAO Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAgetextdataF(int ZaID, char *fieldname, long namelength, char *fortfilelist, long offset[], long size[]) { int nfiles = FAIL; /* number of files (return) */ int i; /* Loop index */ herr_t status = FAIL; /* Return status variable */ hid_t zaID = FAIL; /* ZA HDF5 type ID */ off_t *off = (off_t *)NULL; /* Array of data offsets */ hsize_t *sz = (hsize_t *)NULL;/* Array of sizes */ size_t nmlen = 0; /* Each entry string length */ char *filelist = (char *)NULL; /* Files list (C order) */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Allocate space for C order output file list */ /* ------------------------------------------- */ filelist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(filelist == NULL) { sprintf(errbuf,"Cannot allocate memory for output list.\n"); H5Epush(__FILE__, "HE5_ZAgetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate space for offset array */ /* ------------------------------- */ off = (off_t *)calloc(HE5_FLDNUMBERMAX , sizeof(off_t)); if(off == (off_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for input offset array.\n"); H5Epush(__FILE__, "HE5_ZAgetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); return(FAIL); } /* Allocate space for size array */ /* ----------------------------- */ sz = (hsize_t *)calloc(HE5_FLDNUMBERMAX, sizeof(hsize_t)); if(sz == (hsize_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for input size array.\n"); H5Epush(__FILE__, "HE5_ZAgetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); return(FAIL); } zaID = (hid_t)ZaID; nmlen = (size_t)namelength; /* Call the C function */ /* ------------------- */ nfiles = HE5_ZAgetextdata(zaID, fieldname, nmlen, filelist, off, sz); if (nfiles == FAIL) { sprintf(errbuf, "Error calling HE5_ZAgetextdata from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_ZAgetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); free(sz); return(FAIL); } /* Reverse entries in output list */ /* ----------------------------- */ status = HE5_EHrevflds(filelist, fortfilelist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in output file list.\n"); H5Epush(__FILE__, "HE5_ZAgetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); free(sz); return(FAIL); } /* Populate the output arrays */ /* -------------------------- */ for (i = 0; i < nfiles; i++) { offset[ nfiles - 1 - i ] = (long)off[ i ]; size[ nfiles - 1 - i ] = (long)sz[ i ]; } if (filelist != NULL) free(filelist); if (off != NULL) free(off); if (sz != NULL) free(sz); return(nfiles); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwrdmeta | | | | DESCRIPTION: Defines structural metadata for pre-existing data | | field within ZA structure (FORTRAN) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | ZaID int ZA structure ID | | fieldname char fieldname | | fortdimlist char Dimension list (comma-separated list) | | FORTRAN dimesion order | | mvalue int field type | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 05 S. Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAwrdmeta(int ZaID, char *fieldname, char *fortdimlist, int mvalue) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t zaID = FAIL; /* HDF5 type za ID */ hid_t numbertype = FAIL; /* HDF5 type data type ID */ char *dimlist = (char *)NULL; /* Dimension list (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ zaID = (hid_t)ZaID; numbertype = HE5_EHconvdatatype(mvalue); if(numbertype == FAIL) { H5Epush(__FILE__, "HE5_ZAwrdmeta", __LINE__, H5E_DATATYPE, H5E_BADVALUE, "Cannot convert datatype for FORTRAN wrapper."); HE5_EHprint("Error: Cannot convert datatype for FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_ZAwrdmeta", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *) calloc(strlen(fortdimlist) + 1, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for dimlist.\n"); H5Epush(__FILE__, "HE5_ZAwrdmeta", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortdimlist, dimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_ZAwrdmeta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } /* Call Write Metadata routine */ /* --------------------------- */ status = HE5_ZAwritedatameta(zaID, fieldname, dimlist, numbertype); if(status == FAIL) { sprintf(errbuf,"Cannot write \"%s\" field metadata.\n", fieldname); H5Epush(__FILE__, "HE5_ZAwrdmeta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } free(dimlist); free(errbuf); ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgetaliaslistF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of aliases and aliases list in "Data | | Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nalias long number of aliases in "Data Fields" | | group | | | | INPUTS: | | ZaID int za structure ID | | fldgroup int field group flag | | | | OUTPUTS: | | aliaslist char* list of aliases in "Data Fields" group | | (comma-separated list) | | strbufsize long* length of aliases list | | | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 05 S.Zhao Original development | | Dec 05 T.Roegner NCR 44092 - Added CYGWIN capability | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAgetaliaslistF(int ZaID, int fldgroup, char *aliaslist, long *strbufsize) { long nalias = FAIL; /* Number of aliases (return) */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; nalias = HE5_ZAgetaliaslist(zaID, fldgroup, aliaslist, strbufsize); if (nalias < 0) { sprintf(errbuf, "Cannot retrieve the aliases. \n"); H5Epush(__FILE__, "HE5_ZAgetaliaslistF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAsetdimscaleF (FORTRAN wrapper) | | | | DESCRIPTION: Defines a dimension scale for a fields dimension in a ZA | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID int ZA structure ID | | fieldname char field name | | dimname char dim name | | dim long Dimemsion value | | numbertype_in int dim scale data type such as DFNT_INT32, | | DFNT_FLOAT64, DFNT_FLOAT32, etc. | | data void data buffer for write | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAsetdimscaleF(int ZaID, char *fieldname, char *dimname, long dim, int numbertype_in, void * data) { herr_t status; hid_t zaID; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ zaID = (hid_t)ZaID; status = HE5_ZAsetdimscale(zaID, fieldname, dimname, (hsize_t) dim, (hid_t) numbertype_in, data); if (status < 0) { sprintf(errbuf, "Cannot set dimension scale %s for field %s. \n", dimname, fieldname); H5Epush(__FILE__, "HE5_ZAsetdimscaleF", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAgetdimscaleF (FORTRAN wrapper) | | | | DESCRIPTION: Get dimension scale for a dimension of a field in a ZA | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return databuffsize SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID int ZA structure ID | | fieldname char field name | | dimname char dim name | | | | | | OUTPUTS: | | dimsize long dimension size | | ntype int number type | | databuff void data buffer for read | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAgetdimscaleF(int ZaID, char *fieldname, char *dimname, long *dimsize, int *ntype, void * databuff) { hsize_t databuffsize = (hsize_t)FAIL;/* Size of buffer */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ hsize_t ds; hid_t numtype; zaID = (hid_t)ZaID; databuffsize = HE5_ZAgetdimscale(zaID, fieldname, dimname, &ds, &numtype, databuff); *dimsize = (long) ds; *ntype = (int) numtype; if ( databuffsize < 0 ) { sprintf(errbuf,"Cannot get dimension scale %s for field %s. \n", dimname, fieldname); H5Epush(__FILE__, "HE5_ZAgetdimscaleF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((long)databuffsize); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAreaddscaleattrF (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute associated with a dimension scale field | | from a ZA. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID int None HDF-EOS type ZA ID | | fieldname char field name | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 10 Abe Taaheri Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAreaddscaleattrF(int ZaID, char *fieldname, char *attrname, void *datbuf) { herr_t status = FAIL; /* return status */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ zaID = (hid_t)ZaID; status = HE5_ZAreaddscaleattr(zaID, fieldname, attrname, datbuf); if ( status < 0 ) { sprintf(errbuf,"Cannot read attribute %s for dimension scale %s. \n", attrname, fieldname); H5Epush(__FILE__, "HE5_ZAreaddscaleattrF", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAwritedscaleattrF (FORTRAN wrapper) | | | | DESCRIPTION: Writes/updates attribute associated with a dimension scale | | field in a ZA. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID int ZA structure ID | | fieldname char* dimension scale SDS name | | attrname char* attribute name | | numtype int attribute datatype ID | | count[] long Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAwritedscaleattrF(int ZaID, char *fieldname, char *attrname, int numtype, long count[], void *datbuf) { herr_t status = FAIL; /* return status */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ hsize_t fort_count[HE5_FLDNUMBERMAX]; zaID = (hid_t)ZaID; fort_count[0] = (hsize_t)count[0]; status = HE5_ZAwritedscaleattr(zaID, fieldname, attrname, (hid_t)numtype, fort_count, datbuf); if ( status < 0 ) { sprintf(errbuf,"Cannot write attribute %s for dimension scale %s. \n", attrname, fieldname); H5Epush(__FILE__, "HE5_ZAwritedscaleattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAdscaleattrinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves information about dimension scale attribute | | (attribute associated with a specified dimension scale field) | | in a ZA. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | zaID int None HDF-EOS type ZA ID | | fieldname char* field name | | attrname char* attribute name | | | | OUTPUTS: | | ntype int attribute data type ID | | fortcount long Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_ZAdscaleattrinfoF(int ZaID, char *fieldname, char *attrname, int *ntype, long *fortcount) { herr_t status = FAIL; /* return status */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ hsize_t *count = (hsize_t *)NULL; /* C-order count array */ hid_t *dtype = (hid_t *)NULL; /* Data type class ID */ zaID = (hid_t)ZaID; dtype = (hid_t *)calloc(1, sizeof(hid_t)); if(dtype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for \"dtype\".\n"); H5Epush(__FILE__, "HE5_ZAdscaleattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if(count == NULL) { sprintf(errbuf,"Cannot allocate memory for \"count\".\n"); H5Epush(__FILE__, "HE5_ZAdscaleattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dtype); return(FAIL); } count[0] = 0; status = HE5_ZAdscaleattrinfo(zaID, fieldname, attrname, dtype, count); if ( status == FAIL) { sprintf(errbuf, "Cannot retrieve attribute info for the %s dimension scale. \n", fieldname); H5Epush(__FILE__, "HE5_ZAdscaleattrinfoF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(dtype); return(FAIL); } *fortcount = (long)(*count); *ntype = (int)(*dtype); free(count); free(dtype); return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_ZAinqdscaleattrsF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified dimension scale | | in a ZA. | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long number of attributes (-1 if fails) | | | | INPUTS: | | zaID int None HDF-EOS type ZA ID | | fieldname char dimension scale name | | attrnames char attribute name(s) | | | | OUTPUTS: | | strbufsize long String length of attribute (in bytes) | | | | NOTES: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | June 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_ZAinqdscaleattrsF(int ZaID, char *fieldname, char *attrnames, long *strbufsize) { long status = FAIL; /* return status */ hid_t zaID = FAIL; /* HDF5 type za ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ zaID = (hid_t)ZaID; status = HE5_ZAinqdscaleattrs(zaID, fieldname, attrnames, strbufsize); if ( status == FAIL ) { sprintf(errbuf, "Cannot find the attribute %s for dimension scale %s. \n",attrnames,fieldname); H5Epush(__FILE__, "HE5_ZAinqdscaleattrsF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return (status); } #ifndef __cplusplus /* HDF types used in FORTRAN bindings */ #if defined(DEC_ALPHA) || defined(IRIX) || defined(UNICOS) || defined(LINUX64) || defined(IA64) || defined(MACINTOSH) || defined(MACINTEL) || defined(IBM6000) || defined(CYGWIN) #define INT32 INT #define INT32V INTV #define PINT32 PINT #else #define INT32 LONG #define INT32V LONGV #define PINT32 PLONG #endif /* File/ZA access routines */ FCALLSCFUN2(INT, HE5_ZAopenF, HE5_ZAOPEN, he5_zaopen, STRING, INT) FCALLSCFUN2(INT, HE5_ZAcreateF, HE5_ZACREATE, he5_zacreate, INT, STRING) FCALLSCFUN2(INT, HE5_ZAattachF, HE5_ZAATTACH, he5_zaattach, INT, STRING) FCALLSCFUN1(INT, HE5_ZAdetachF, HE5_ZADETACH, he5_zadetach, INT) FCALLSCFUN1(INT, HE5_ZAcloseF, HE5_ZACLOSE, he5_zaclose, INT) /* Definition routines */ FCALLSCFUN3(INT, HE5_ZAdefdimF, HE5_ZADEFDIM, he5_zadefdim, INT, STRING, LONG) FCALLSCFUN5(INT, HE5_ZAdefineF, HE5_ZADEFINE, he5_zadefine, INT, STRING, STRING, STRING, INT) FCALLSCFUN3(INT, HE5_ZAdefcompF, HE5_ZADEFCOMP, he5_zadefcomp, INT, INT, PINT) FCALLSCFUN3(INT, HE5_ZAdefchunkF, HE5_ZADEFCHUNK, he5_zadefchunk, INT, INT, PLONG) FCALLSCFUN5(INT, HE5_ZAdefcomchunkF, HE5_ZADEFCOMCH, he5_zadefcomch, INT, INT, PINT, INT, PLONG) FCALLSCFUN3(INT, HE5_ZAfldrenameF, HE5_ZAFLDRNM, he5_zafldrnm, INT, STRING, STRING) /* I/O routines */ FCALLSCFUN6(INT, HE5_ZAwriteF, HE5_ZAWRITE, he5_zawrite, INT, STRING, LONGV, LONGV, LONGV,PVOID) FCALLSCFUN8(INT, HE5_ZAwritecharF, HE5_ZAWRITECHAR, he5_zawritechar, INT, STRING, INT, INT, LONGV, LONGV, LONGV,PVOID) FCALLSCFUN6(INT, HE5_ZAreadF, HE5_ZAREAD, he5_zaread, INT, STRING, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN8(INT, HE5_ZAreadcharF, HE5_ZAREADCHAR, he5_zareadchar, INT, STRING, INT, INT, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN5(INT, HE5_ZAwrattr, HE5_ZAWRATTR, he5_zawrattr,INT,STRING,INT,LONGV,PVOID) FCALLSCFUN5(INT, HE5_ZAwrgattr, HE5_ZAWRGATTR, he5_zawrgattr, INT, STRING, INT, LONGV,PVOID) FCALLSCFUN6(INT, HE5_ZAwrlattr, HE5_ZAWRLATTR, he5_zawrlattr, INT, STRING,STRING,INT,LONGV,PVOID) FCALLSCFUN3(INT, HE5_ZArdattr, HE5_ZARDATTR, he5_zardattr, INT, STRING, PVOID) FCALLSCFUN3(INT, HE5_ZArdgattr, HE5_ZARDGATTR, he5_zardgattr,INT,STRING,PVOID) FCALLSCFUN4(INT, HE5_ZArdlattr, HE5_ZARDLATTR, he5_zardlattr,INT,STRING,STRING,PVOID) FCALLSCFUN4(INT, HE5_ZAsetfill, HE5_ZASETFILL, he5_zasetfill, INT, STRING, INT, PVOID) FCALLSCFUN3(INT, HE5_ZAgetfill, HE5_ZAGETFILL, he5_zagetfill, INT, STRING, PVOID) FCALLSCFUN3(INT, HE5_ZAsetaliasF, HE5_ZASETALIAS, he5_zasetalias, INT, STRING, STRING) FCALLSCFUN3(INT, HE5_ZAdropaliasF, HE5_ZADRPALIAS, he5_zadrpalias, INT, INT, STRING) FCALLSCFUN4(INT, HE5_ZAwrdmeta, HE5_ZAWRDMETA, he5_zawrdmeta, INT, STRING, STRING, INT) /* Inquiry routines */ FCALLSCFUN3(LONG, HE5_ZAinqzaF, HE5_ZAINQZA, he5_zainqza, STRING, PSTRING,PLONG) FCALLSCFUN3(LONG, HE5_ZAnentriesF, HE5_ZANENTRIES, he5_zanentries,INT,INT,PLONG) FCALLSCFUN2(LONG, HE5_ZAdiminfoF, HE5_ZANDIMINFO, he5_zadiminfo, INT, STRING) FCALLSCFUN7(INT, HE5_ZAinfoF, HE5_ZAINFO, he5_zainfo,INT,STRING,PINT,LONGV,PINT,PSTRING,PSTRING) FCALLSCFUN3(LONG, HE5_ZAinqdimsF, HE5_ZAINQDIMS, he5_zainqdims,INT,PSTRING,LONGV) FCALLSCFUN4(LONG, HE5_ZAinquireF, HE5_ZAINQUIRE, he5_zainquire, INT,PSTRING, INTV, INTV) FCALLSCFUN4(INT, HE5_ZAatinfo, HE5_ZAATTRINFO, he5_zaattrinfo, INT, STRING, PINT, PLONG) FCALLSCFUN4(INT, HE5_ZAgatinfo, HE5_ZAGATTRINFO, he5_zagattrinfo, INT, STRING, PINT, PLONG) FCALLSCFUN5(INT, HE5_ZAlatinfo, HE5_ZALATTRINFO, he5_zalattrinfo, INT, STRING, STRING, PINT, PLONG) FCALLSCFUN4(INT, HE5_ZAcompinfoF, HE5_ZACOMPINFO, he5_zacompinfo, INT, STRING,PINT, INTV) FCALLSCFUN3(LONG, HE5_ZAinqattrsF, HE5_ZAINQATTRS, he5_zainqattrs,INT,PSTRING,PLONG) FCALLSCFUN4(LONG, HE5_ZAinqlattrs, HE5_ZAINQLATTRS, he5_zainqlattrs,INT,STRING,PSTRING,PLONG) FCALLSCFUN3(LONG, HE5_ZAinqgattrs, HE5_ZAINQGATTRS, he5_zainqgattrs,INT,PSTRING,PLONG) FCALLSCFUN8(INT, HE5_ZAidtype, HE5_ZAIDYPEF, he5_zaidtype, INT,STRING,STRING,INT,PINT,PINT,PINT,PLONG) FCALLSCFUN5(INT, HE5_ZAaliasinfoF, HE5_ZAALIASINFO, he5_zaaliasinfo, INT, INT, STRING, PINT, STRING) FCALLSCFUN3(LONG, HE5_ZAinqfldaliasF, HE5_ZAINQFLDALIAS, he5_zainqfldalias,INT,PSTRING,PLONG) FCALLSCFUN4(INT, HE5_ZAchunkinfoF, HE5_ZACHUNKINFO, he5_zachunkinfo,INT,STRING,PINT,LONGV) FCALLSCFUN4(LONG, HE5_ZAgetaliaslistF, HE5_ZAGETALIASLIST, he5_zagetaliaslist,INT,INT,PSTRING,PLONG) FCALLSCFUN6(INT, HE5_ZAsetdimscaleF, HE5_ZASETDIMSCALE, he5_zasetdimscale,INT,STRING,STRING,LONG,INT,PVOID) FCALLSCFUN6(LONG, HE5_ZAgetdimscaleF, HE5_ZAGETDIMSCALE, he5_zagetdimscale,INT,STRING,STRING,PLONG,PINT,PVOID) FCALLSCFUN4(INT, HE5_ZAreaddscaleattrF,HE5_ZAREADDSCALEATTR, he5_zareaddscaleattr,INT,STRING,STRING,PVOID) FCALLSCFUN6(INT, HE5_ZAwritedscaleattrF, HE5_ZAWRITEDSCALEATTR, he5_zawritedscaleattr,INT,STRING,STRING,INT,LONGV,PVOID) FCALLSCFUN5(INT, HE5_ZAdscaleattrinfoF, HE5_ZADSCALEATTRINFO, he5_zadscaleattrinfo,INT,STRING,STRING,PINT,PLONG) FCALLSCFUN4(INT, HE5_ZAinqdscaleattrsF, HE5_ZAINQDSCALATTRS, he5_zainqdscaleattrs,INT,STRING,STRING,PLONG) /* EXTERNAL DATA FILE INTERFACE */ FCALLSCFUN4(INT, HE5_ZAsetextdataF, HE5_ZASETXDAT, he5_zasetxdat,INT,STRING,LONGV,LONGV) FCALLSCFUN6(INT, HE5_ZAgetextdataF, HE5_ZAGETXDAT, he5_zagetxdat,INT,STRING,LONG,PSTRING,LONGV,LONGV) #endif hdf-eos5-5.1.14+dfsg.1/src/SWapi.c0000755000175000017500000502105112024715435017414 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | | | | Permission to use, modify, and distribute this software and its | | documentation for any purpose without fee is hereby granted, provided | | that the above copyright notice appear in all copies and that both that | | copyright notice and this permission notice appear in supporting | | documentation. | ---------------------------------------------------------------------------- */ #include #define HE5_SWIDOFFSET 671088642 #define HE5_NSWATH 400 #define HE5_NSWATHREGN 512 #define HE5_MAXNREGIONS 2048 int HE5_timeflag = 0; /* Swath Structure External Arrays */ struct HE5_swathStructure { hid_t fid; /* HDF-EOS file ID */ hid_t obj_id; /* "SWATHS" group ID */ hid_t sw_id; /* specified swath group ID */ hid_t data_id; /* "Data Fields" group ID */ hid_t geo_id; /* "Geo Fields" group ID */ hid_t prof_id; /* "Profile Fields" group ID */ hid_t plist; /* current dataset creation property */ int active; /* Flag: file active or not */ int compcode; /* compression mode */ int compparm[5]; /* compression level */ HE5_DTSinfo *gdataset; /* pointer to Geo field info */ HE5_DTSinfo *ddataset; /* pointter to Data field info */ HE5_DTSinfo *pdataset; /* pointer to Profile field info */ long nGFLD; /* number of geo fields */ long nDFLD; /* number of data fields */ long nPROF; /* number of profile fields */ char swname[HE5_OBJNAMELENMAX];/* swath name */ }; struct HE5_swathStructure HE5_SWXSwath[HE5_NSWATH]; struct HE5_swathRegion { hid_t fid; hid_t swathID; long nRegions; long StartRegion[HE5_MAXNREGIONS]; long StopRegion[HE5_MAXNREGIONS]; long StartVertical[HE5_DTSETRANKMAX]; long StopVertical[HE5_DTSETRANKMAX]; char *DimNamePtr[HE5_DTSETRANKMAX]; }; struct HE5_swathRegion *HE5_SWXRegion[HE5_NSWATHREGN]; struct HE5_dtsIDs { hid_t type_id; hid_t space_id; hid_t plist_id; }; struct HE5_dtsIDs profile; /* INTERNAL FUNCTION PROTOTYPES */ int HE5_szip_can_encode(void ); static herr_t HE5_SWchkswid(hid_t swathID, const char *routname, hid_t *fid, hid_t *gid, long *idx); static long HE5_SWinqfields(hid_t swathID, char *fieldtype, char *fieldlist, int rank[], hid_t ntype[]); static size_t HE5_SWfieldsizeID(hid_t swathID, char *fieldname, hid_t *fieldID); static herr_t HE5_SWdefinefield(hid_t swathID, char *fieldtype, const char *fieldname, char *dimlist, char *maxdimlist, hid_t typeID, int merge); static herr_t HE5_SWwrrdfield(hid_t swathID, char *fieldname, char *code, const hssize_t start[], const hsize_t stride[], const hsize_t count[], void * datbuf); static herr_t HE5_SWfinfo(hid_t swathID, char *fieldtype, char *fieldname, int *rank, hsize_t dims[], hid_t ntype[], char *dimlist, char *maxdimlist); static int HE5_SWfldnameinfo(hid_t swathID, char *fieldname, char *fldactualname); static herr_t HE5_SWupdatedim(int swathID, char *dimname, hsize_t dim); static herr_t HE5_SWllmapedidxinfo(hid_t swathID, char *object, long *index0, long *index1); static herr_t HE5_SWflddiminfo(int SwathID, char *fieldname, int *rank, hsize_t dims[], hsize_t maxdims[]); /* CUSTOM MEMORY MANAGEMENT ROUTINES */ /* void * vltypes_alloc_custom(size_t size, void *info); void vltypes_free_custom(void *mem, void *info); */ /* FORTRAN WRAPPER PROTOTYPES */ /* File/Swath access routines */ int HE5_SWopenF(char *filename, int flags); int HE5_SWcreateF(int fileID, char *swathname); int HE5_SWattachF(int fileID, char *swathname); int HE5_SWdetachF(int swathID); int HE5_SWcloseF(int fileID); /* Definition routines */ int HE5_SWdefdimF(int swathID, char *dimname, long dim); int HE5_SWdefdimmapF(int swathID, char *geodim, char *datadim, long offset, long increment); int HE5_SWdefidxmapF(int swathID, char *geodim, char *datadim, long index[]); int HE5_SWdefgfld(int swathID, char *fieldname, char *fortdimlist, char *fortmaxdimlist, int numtype, int create_plist_id); int HE5_SWdefdfld(int swathID, char *fieldname, char *fortdimlist, char *fortmaxdimlist, int numtype, int create_plist_id); int HE5_SWdefchunkF(int swathID, int ndims, long *dim); int HE5_SWdefcompF(int swathID, int compcode, int *compparm); int HE5_SWdefcomchunkF(int swathID, int compcode, int *compparm, int rank, long *dim); long HE5_SWupimap(int swathID, int regionID, long indexin[], long indexout[], long indicies[]); int HE5_SWfldrenameF(int swathID, char *oldfieldname, char *newfieldname); /* I/O routines */ int HE5_SWwrfld(int swathID, char *fieldname, long fortstart[], long fortstride[], long fortedge[], void *data); int HE5_SWwrcharfld(int swathID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *data); int HE5_SWrdfld(int swathID, char *fieldname, long fortstart[], long fortstride[], long fortedge[], void *buffer); int HE5_SWrdcharfld(int swathID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *buffer); int HE5_SWsetfill(int swathID, char *fieldname, int ntype, void *fillval); int HE5_SWgetfill(int swathID, char *fieldname, void *fillval); int HE5_SWwrattr(int swathID, char *attrname, int ntype, long fortcount[], void * datbuf); int HE5_SWwrgattr(int swathID, char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_SWwrgeogattr(int swathID, char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_SWwrlattr(int swathID, char *fieldname, char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_SWrdattr(int swathID, char *attrname, void *datbuf); int HE5_SWrdgattr(int swathID, char *attrname, void *datbuf); int HE5_SWrdgeogattr(int swathID, char *attrname, void *datbuf); int HE5_SWrdlattr(int swathID, char *fieldname, char *attrname, void *datbuf); int HE5_SWsetaliasF(int swathID, char *fieldname, char *fortaliaslist); int HE5_SWdropaliasF(int swathID, int fldgroup, char *aliasname); /* Inquiry routines */ long HE5_SWinqswathF(char *filename, char *swathlist, long *strbufsize); long HE5_SWnentriesF(int swathID, int entrycode, long *strbufsize); long HE5_SWdiminfoF(int swathID, char *dimname); int HE5_SWfldinfoF(int swathID, char *fieldname, int *rank, long dims[], int *ntype, char *fortdimlist, char *fortmaxdimlist); long HE5_SWinqmapsF(int swathID, char *dimmaps, long offset[], long increment[]); long HE5_SWinqimapsF(int swathID, char *idxmaps, long idxsizes[]); long HE5_SWinqdimsF(int swathID, char *dimnames, long dims[]); long HE5_SWinqgflds(int swathID, char *fieldlist, int rank[], int ntype[]); long HE5_SWinqdflds(int swathID, char *fieldlist, int rank[], int ntype[]); int HE5_SWmapinfoF(int swathID, char *geodim, char *datadim, long *offset, long *increment); int HE5_SWgmapinfo(int swathID, char *geodim); long HE5_SWidxmapinfoF(int swathID, char *geodim, char *datadim, long index[]); int HE5_SWatinfo(int swathID, char *attrname, int *ntype, long *fortcount); int HE5_SWgatinfo(int swathID, char *attrname, int *ntype, long *fortcount); int HE5_SWgeogatinfo(int swathID, char *attrname, int *ntype, long *fortcount); int HE5_SWlatinfo(int swathID, char *fieldname, char *attrname, int *ntype, long *fortcount); long HE5_SWinqattrsF(int swathID, char *attrnames, long *strbufsize); long HE5_SWinqgattrs(int swathID, char *attrnames, long *strbufsize); long HE5_SWinqgeogattrs(int swathID, char *attrnames, long *strbufsize); long HE5_SWinqlattrs(int swathID, char *fieldname, char *attrnames, long *strbufsize); int HE5_SWcompinfoF(int swathID, char *fieldname, int *compcode, int compparm[]); int HE5_SWreginfo(int swathID, int regionID, char *fieldname, int *ntype, int *rank, long dims[], long *size); int HE5_SWperinfo(int swathID, int periodID, char *fieldname, int *ntype, int *rank, long dims[], long *size); int HE5_SWidtype(int swathID, char *fieldname, char *attrname, int fieldgroup, int *Type, int *Class, int *Order, long *size); int HE5_SWaliasinfoF(int swathID, int fldgroup, char *aliasname, int *length, char *buffer); long HE5_SWinqdfldaliasF(int swathID, char *fldalias, long *strbufsize); long HE5_SWinqgfldaliasF(int swathID, char *fldalias, long *strbufsize); int HE5_SWchunkinfoF(int swathID, char *fieldname, int *ndims, long dims[]); long HE5_SWgetaliaslistF(int swathID, int fldgroup, char *aliaslist, long *strbufsize); /* Subsetting routines */ int HE5_SWdefboxreg(int swathID, double cornerlon[], double cornerlat[], int mode); int HE5_SWdefvrtreg(int rwathID, int regionID, char *vertObj, double fortrange[]); int HE5_SWdeftmeper(int swathID, double starttime, double stoptime, int mode); int HE5_SWextreg(int swathID, int regionID, char *fieldname, int externalflag, void *buffer); int HE5_SWextper(int swathID, int periodID, char *fieldname, int externalflag, void *buffer); int HE5_SWregidx(int swathID, double cornerlon[], double cornerlat[], int mode, char *geodim, long idxrange[]); int HE5_SWdupreg(int oldregionID); int HE5_SWupscene(int swathID, int regionID); int HE5_SWindexinfoF(int regionID, char *object, int *rank, char *fortdimlist, long *fortindices); /* PROFILE INTERFACE */ int HE5_PRdefineF(int swathID, char *profilename, char *fortdimlist, char *fortmaxdimlist, int datatype_id); int HE5_PRwriteF(int swathID, char *profilename, long fortstart[], long fortstride[], long fortedge[], long size, long len[], void *buffer); int HE5_PRreadF(int swathID, char *profilename, long fortstart[], long fortstride[], long fortedge[], long len[], void *buffer); long HE5_PRinquireF(int swathID, char *profnames, int *rank, int *ntype); int HE5_PRinfoF(int swathID, char *profname, int *rank, long dims[], long maxdims[], int *ntype, char *fortdimlist, char *fortmaxdimlist); int HE5_PRwrgattrF(int swathID, char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_PRrdgattrF(int swathID, char *attrname, void *datbuf); int HE5_PRgattrinfoF(int swathID, char *attrname, int *ntype, long *fortcount); long HE5_PRinqgattrsF(int swathID, char *attrnames, long *strbufsize); /* EXTERNAL DATA FILE INTERFACE */ int HE5_SWsetextdataF(int swathID, char *fortfilelist, long offset[], long size[]); int HE5_SWgetextdataF(int swathID, char *fieldname, long namelength, char *fortfilelist, long offset[], long size[]); /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWopen | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | fid hid_t None HDF-EOS file ID | | | | INPUTS: | | filename char* None File name string | | flags uintn None File access code | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_SWopen(const char *filename, uintn flags) { hid_t fid = FAIL;/* hdf5 type file ID */ char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWopen", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Call HE5_EHopen to open file */ /* ---------------------------- */ fid = HE5_EHopen(filename,flags, H5P_DEFAULT ); if(fid == FAIL) { sprintf(errbuf, "Cannot open the file \"%s\". Check the file name. \n", filename); H5Epush(__FILE__, "HE5_SWopen", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); return (fid); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWcreate | | | | DESCRIPTION: Creates a new swath structure and returns swath ID | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | swathID hid_t None Swath ID | | | | INPUTS: | | fid hid_t None HDF-EOS file ID | | swathname const char* None Swath name string | | | | OUTPUTS: | | None | | | | NOTES: | | ___________ | | | Swath | | | ----------- | | / | \ | | Data Profile Geolocation | | Fields Fields Fields | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7/20/99 A. Muslimov Replaced parameter gid by fid in the call to | | EHinsertmeta(). | | 8/20/99 A. Muslimov Fixed a bug associated with a swath numbering: | | within the 'if(nswathopen < NSWATH ){}' block | | initialized NSWATH to NSWATHopen. Checked for the | | statuses returned by H5Gclose() calls. | | 8/31/99 A. Muslimov Disabled assignment NSWATH = NSWATHopen. Replaced | | the call to EHattrcat() by EHdatasetcat(). Added | | error hadling after the calls to EHinsertmeta() and | | EHdatasetcat(). | | 02/08/00 A. Muslimov Added more error checkings. | | 04/05/00 A. Muslimov Removed "Ragged Arrays" group. | | July 00 A. Muslimov Unmasked hdf5 data types. | | Sep 00 A. Muslimov Added "PRofile Fields" group. | | Dec 00 A. Muslimov Added "ProfileField" section to the metadata. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Feb 03 S. Zhao Removed the creation of the "Profile Fields" group | | to HE5_PRdefine(). | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_SWcreate(hid_t fid, const char *swathname) { hid_t swathID = FAIL;/* return value of Swath ID */ hid_t HDFfid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t sw_id = FAIL;/* HDF-EOS swath ID */ hid_t geo_id = FAIL;/* "Geolocation Fields" group ID */ hid_t data_id = FAIL;/* "Data Fields" group ID */ hid_t prof_id = FAIL;/* "Profile Fields" group ID */ hid_t SWATHS_ID = FAIL;/* "SWATHS" group ID */ hid_t i; /* Loop index */ int nswathopen = 0; /* # of swath structures open */ herr_t status = FAIL;/* routine return status variable */ uintn access = 0; /* Read/Write file access code */ long nSwath = FAIL;/* Swath counter */ char *errbuf =(char *)NULL;/* Buffer for error message */ char *utlbuf =(char *)NULL;/* Utility buffer */ char *utlbuf2=(char *)NULL;/* Utility buffer 2 */ HE5_LOCK; CHECKNAME(swathname); /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char *)calloc( HE5_HDFE_DIMBUFSIZE, sizeof(char ) ) ; if ( errbuf == NULL ) { H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* * Check HDF-EOS file ID, get HDFEOS group ID and * access code */ status = HE5_EHchkfid(fid, "HE5_SWcreate", &HDFfid, &gid, &access); /* Check file access */ /* -------------------------- */ if ( access == 0 ) { status = FAIL; sprintf(errbuf, "Cannot call HE5_SWcreate on a file opened read-only.\n"); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if ( status == FAIL ) { sprintf(errbuf, "Checking for file ID failed.\n"); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Check swathname for length */ /* -------------------------- */ if ( strlen(swathname) > HE5_OBJNAMELENMAX) { sprintf(errbuf, "Swath name \"%s\" must be less than %d characters.\n", swathname, HE5_OBJNAMELENMAX); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Determine number of swaths currently opened */ /* ------------------------------------------- */ for (i = 0; i < HE5_NSWATH; i++) nswathopen += HE5_SWXSwath[i].active; if(nswathopen < HE5_NSWATH) { /* Probe , check if "SWATHS" group exists */ /* -------------------------------------- */ H5E_BEGIN_TRY { SWATHS_ID = H5Gopen(gid, "SWATHS"); } H5E_END_TRY; if(SWATHS_ID == FAIL ) { nSwath = 0; /* Create the "SWATHS" group */ /* ------------------------- */ SWATHS_ID = H5Gcreate(gid,"SWATHS",0); if(SWATHS_ID == FAIL) { sprintf(errbuf,"Cannot create the \"SWATHS\" group.\n"); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } else { /* Probe , check if swathname group exist */ /* -------------------------------------- */ H5E_BEGIN_TRY{ sw_id = H5Gopen(SWATHS_ID, swathname); } H5E_END_TRY; if( sw_id == FAIL ) { /* Get the number of swaths in "SWATHS" group */ /* ------------------------------------------ */ nSwath = HE5_EHdatasetcat(fid, "/HDFEOS/SWATHS", NULL, NULL); if (nSwath == FAIL) { sprintf(errbuf,"Cannot retrieve the number of swaths.\n"); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(errbuf); return(FAIL); } } else { sprintf(errbuf, "Swath \"%s\" already exists.\n", swathname); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_OHDR, H5E_EXISTS, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(errbuf); return(FAIL); } } /* Swath does not exist */ /* -------------------- */ /* Create swathname group */ /* ---------------------- */ sw_id = H5Gcreate( SWATHS_ID, swathname, 0); if(sw_id == FAIL) { sprintf(errbuf,"Cannot create the \"%s\" group.\n", swathname); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(errbuf); return(FAIL); } /* Create "/SWATH/swathname/Geolocation Fields" group */ /* -------------------------------------------------- */ geo_id = H5Gcreate( sw_id, "Geolocation Fields", 0); if(geo_id == FAIL) { sprintf(errbuf,"Cannot create the \"Geolocation Fields\" group.\n"); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(errbuf); return(FAIL); } /* Create /SWATH/swathname/Data Fields group */ /* ----------------------------------------- */ data_id = H5Gcreate( sw_id, "Data Fields", 0); if(data_id == FAIL) { sprintf(errbuf,"Cannot create the \"Data Fields\" group.\n"); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(errbuf); return(FAIL); } /* Create /SWATH/swathname/Profile Fields group */ /* -------------------------------------------- */ /* prof_id = H5Gcreate( sw_id, "Profile Fields", 0); if(prof_id == FAIL) { sprintf(errbuf,"Cannot create the \"Profile Fields\" group.\n"); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(errbuf); return(FAIL); } */ /* Allocate memory for utility buffers */ /* ----------------------------------- */ utlbuf = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char ) ) ; if ( utlbuf == NULL ) { H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for utility buffer.\n"); HE5_EHprint("Error: Cannot allocate memory for utility buffer, occured", __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(errbuf); return(FAIL); } utlbuf2 = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char ) ) ; if ( utlbuf2 == NULL ) { H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for utility buffer2.\n"); HE5_EHprint("Error: Cannot allocate memory for utility buffer2, occured", __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(errbuf); free(utlbuf); return(FAIL); } /* Establish Swath in "Structural MetaData" Block */ /* ---------------------------------------------- */ sprintf(utlbuf, "%s%li%s%s%s", "\tGROUP=SWATH_", nSwath + 1, "\n\t\tSwathName=\"", swathname, "\"\n"); strcat(utlbuf, "\t\tGROUP=Dimension\n"); strcat(utlbuf, "\t\tEND_GROUP=Dimension\n"); strcat(utlbuf, "\t\tGROUP=DimensionMap\n"); strcat(utlbuf, "\t\tEND_GROUP=DimensionMap\n"); strcat(utlbuf, "\t\tGROUP=IndexDimensionMap\n"); strcat(utlbuf, "\t\tEND_GROUP=IndexDimensionMap\n"); strcat(utlbuf, "\t\tGROUP=GeoField\n"); strcat(utlbuf, "\t\tEND_GROUP=GeoField\n"); strcat(utlbuf, "\t\tGROUP=DataField\n"); strcat(utlbuf, "\t\tEND_GROUP=DataField\n"); strcat(utlbuf, "\t\tGROUP=ProfileField\n"); strcat(utlbuf, "\t\tEND_GROUP=ProfileField\n"); strcat(utlbuf, "\t\tGROUP=MergedFields\n"); strcat(utlbuf, "\t\tEND_GROUP=MergedFields\n"); sprintf(utlbuf2, "%s%li%s","\tEND_GROUP=SWATH_", nSwath + 1, "\n"); strcat(utlbuf, utlbuf2); /* Insert metadata buffer to the "StructMetadata" */ /* ---------------------------------------------- */ status = HE5_EHinsertmeta(fid, (char*)swathname, "s", 1001L, utlbuf, NULL); if (status == FAIL ) { sprintf(errbuf,"Cannot insert metadata buffer to \"StructMetadata\".\n"); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(errbuf); free(utlbuf); free(utlbuf2); return(FAIL); } /* Release "SWATHS" group ID */ /* ------------------------- */ status = H5Gclose(SWATHS_ID); if(status == FAIL ) { sprintf(errbuf,"Cannot release the \"SWATHS\" group ID.\n"); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(SWATHS_ID); free(utlbuf); free(utlbuf2); free(errbuf); return(FAIL); } /* Assign swathID & Load swath and SWXSwath table entries */ /* ------------------------------------------------------ */ for (i = 0; i < HE5_NSWATH; i++) { if (HE5_SWXSwath[i].active == 0) { /* * Set sw_id, Set swath entry active, Store root group * ID, Store sub group IDs, Store HDF-EOS file ID */ HE5_SWXSwath[i].active = 1; HE5_SWXSwath[i].sw_id = sw_id; HE5_SWXSwath[i].data_id = data_id; HE5_SWXSwath[i].prof_id = prof_id; HE5_SWXSwath[i].geo_id = geo_id; HE5_SWXSwath[i].fid = fid; HE5_SWXSwath[i].obj_id = SWATHS_ID; HE5_SWXSwath[i].plist = FAIL; strcpy(HE5_SWXSwath[i].swname, swathname); HE5_SWXSwath[i].compcode = HE5_HDFE_COMP_NONE; swathID = i + HE5_SWIDOFFSET; break; } } } else { /* Too many files opened */ /* --------------------- */ swathID = FAIL; sprintf(errbuf,"\n Illegal attempt to open more than %d swaths simultaneously.\n", HE5_NSWATH); H5Epush(__FILE__, "HE5_SWcreate", __LINE__, H5E_OHDR, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Release allocated memory */ /* ------------------------ */ free(errbuf); free(utlbuf); free(utlbuf2); COMPLETION: HE5_UNLOCK; return (swathID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWattach | | | | DESCRIPTION: Attaches to an existing swath within the file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | swathID hid_t swath structure ID | | | | INPUTS: | | fid hid_t HDF-EOS file ID | | swathname char swath structure name | | | | OUTPUTS: | | None | | | | NOTES: | | (02/23/00 A.M.) The iteration over the "Data Fields" group has | | the followings side effect: it counts as an object (which is | | supposed to be a dataset) the group "Ragged Arrays". So the | | external structure "ddataset" gets filled with a fake member | | and nDFLD gets incremented by one. This shouldn't affect the | | other interfacing routines unless someone tries to access the | | datasets in "Data Fields" group directly through their IDs | | retrieved from external "ddataset" structure, or use "nDFLD" | | data member of to retrieve the actual number of data sets | | (fields). To avoid potential problems, the dataset counter is | | decremented by one and the corresponding error checking are | | inserted to handle this case. | | | | | | | | Date Programmer Description | | ========= ============ ============================================== | | Aug 6,99 A. Muslimov In the first block if( inout.name != NULL){} | | changed the statement next to the last one from | | "if(inout.name==NULL) free(inout.name);" onto | | "if(inout.name!=NULL) free(inout.name);".Changed | | the type of datid from int32_t to hid_t. | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem| | when arguments 1 and 2 overlap in memory. | | 10/28/99 A.Muslimov Added ragged array stuff. | | 02/08/00 A.Muslimov Added more error checkings. | | 04/05/00 A.Muslimov Removed "Ragged Arrays" group. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 00 A.Muslimov Added "PRofile Fields group" and stuff | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_SWattach(hid_t fid, const char *swathname) { hid_t swathID = FAIL;/* Swath ID (return value) */ hid_t i; /* Loop index */ hid_t emptyslot = 0; /* Spare swath index */ herr_t status = FAIL;/* Return status variable */ int nswathopen = 0; /* # of swath structures open */ int idx = FAIL;/* return value from an operator */ uintn acs = 0; /* Read/Write file access code */ hid_t HDFfid = FAIL;/* HDF-EOS file ID */ hid_t datid = FAIL;/* Dataset ID */ hid_t profid = FAIL;/* Profile dataset ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t geo_id = FAIL;/* "Geolocation Fields" Group ID */ hid_t data_id = FAIL;/* "Data Fields" Group ID */ hid_t prof_id = FAIL;/* "PRofile Fields" Group ID */ hid_t sw_id = FAIL;/* Swath ID */ HE5_OBJINFO inout; /* IN/OUT operator data */ char *grpname =NULL;/* Ptr to a group name string */ char *tmpname1=NULL;/* ..... temporary name 1 ... */ char *tmpname2=NULL;/* ..... temporary name 2 ... */ char *tmpname3=NULL;/* ..... temporary name 3 ... */ char *namebuf =NULL;/* ..... temporary name ... */ char *fldname =NULL;/* ..... temporary field name ... */ char *comma =NULL; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer*/ HE5_LOCK; CHECKPOINTER(swathname); /* Check HDF-EOS file ID, get back HDF file ID and access code */ /* ----------------------------------------------------------- */ status = HE5_EHchkfid(fid, "HE5_SWattach", &HDFfid, &gid, &acs); if ( status == FAIL ) { H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_ARGS, H5E_BADRANGE, "Checking for file ID failed.\n"); HE5_EHprint("Error: Checking for file ID failed, occured", __FILE__, __LINE__); return(FAIL); } /* Determine number of swaths currently opened */ /* ------------------------------------------- */ for (i = 0; i < HE5_NSWATH; i++) nswathopen += HE5_SWXSwath[i].active; /* Is there a room for more ? */ /* -------------------------- */ if (nswathopen < HE5_NSWATH) { /* Search for group "/SWATHS/swathname" */ /* ==================================== */ grpname = (char *) calloc( (strlen(swathname)+40), sizeof(char) ); if (grpname == NULL) { sprintf(errbuf, "Cannot allocate memory for grpname.\n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy( grpname, "/HDFEOS/SWATHS/"); strcat( grpname, swathname); /* * If group with swathname found, open the group, load tables */ H5E_BEGIN_TRY{ sw_id = H5Gopen(HDFfid, grpname); } H5E_END_TRY; if( sw_id == FAIL ) { sprintf(errbuf, "Swath \"%s\" does not exist within HDF-EOS file.\n",swathname) ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Attach to "Geolocation Fields" */ /* ============================= */ geo_id = H5Gopen( sw_id, "Geolocation Fields"); if (geo_id == FAIL) { sprintf(errbuf, "Cannot open the \"Geolocation Fields\" group.\n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Attach to "Data Fields" */ /* ======================= */ data_id = H5Gopen( sw_id, "Data Fields"); if (data_id == FAIL) { sprintf(errbuf, "Cannot open the \"Data Fields\" group. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Attach to "Profile Fields" */ /* ========================== */ H5Eset_auto(NULL, NULL); prof_id = H5Gopen( sw_id, "Profile Fields"); /* if (prof_id == FAIL) { sprintf(errbuf, "Cannot open the \"Profile Fields\" group. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } */ /* Setup External Arrays */ /* --------------------- */ for (i = 0; i < HE5_NSWATH; i++) { /* Find empty entry in array */ /* ------------------------- */ if (HE5_SWXSwath[i].active == 0) { /* Set IDs, codes., etc */ /* ==================== */ HE5_SWXSwath[i].active = 1; HE5_SWXSwath[i].data_id = data_id; HE5_SWXSwath[i].prof_id = prof_id; HE5_SWXSwath[i].geo_id = geo_id; HE5_SWXSwath[i].fid = fid; HE5_SWXSwath[i].sw_id = sw_id; HE5_SWXSwath[i].plist = FAIL; HE5_SWXSwath[i].compcode = HE5_HDFE_COMP_NONE; swathID = i + HE5_SWIDOFFSET; strcpy(HE5_SWXSwath[i].swname, swathname); break; } } emptyslot = i; /* Access swath "Data Fields" datasets */ /* -------------------------------------- */ tmpname1 = (char *) calloc( (strlen(grpname)+ 20), sizeof(char)); if (tmpname1 == NULL) { sprintf(errbuf, "Cannot allocate memory for tmpname1. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } strcpy(tmpname1,grpname); strcat(tmpname1,"/Data Fields"); /* Get the number of OBJECTS in "Data Fields" group */ /* ================================================ */ inout.count = 0; inout.name = NULL; inout.strsize = 0; idx = H5Giterate(data_id, tmpname1 , NULL, HE5_EHobj_info, &inout); if ( idx == FAIL ) { sprintf(errbuf, "Iteration of \"HE5_EHobj_info()\" operation failed. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(tmpname1); return(FAIL); } free(tmpname1); /* Set the data members of external structure */ /* ========================================== */ HE5_SWXSwath[emptyslot].nDFLD = inout.count; /*------------------------------------------------------*/ /* Loop through all data field datasets and open it */ /* Allocate space for namebuf, copy inout.name into it, */ /* and append comma */ /*------------------------------------------------------*/ if( inout.name != NULL && inout.count > 0 ) { /* Allocate memory to ddataset struct */ /* ---------------------------------- */ HE5_SWXSwath[emptyslot].ddataset = (HE5_DTSinfo *)realloc((void *)HE5_SWXSwath[emptyslot].ddataset,(HE5_SWXSwath[emptyslot].nDFLD) * sizeof(HE5_DTSinfo)); /* Allocate memory to the list of dataset names */ /* -------------------------------------------- */ namebuf = (char *) calloc(strlen(inout.name) + 2, sizeof(char)); if (namebuf == NULL) { sprintf(errbuf, "Cannot allocate memory for namebuf. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } strcpy(namebuf, inout.name); strcat(namebuf, ","); /* Find comma */ /* ---------- */ comma = strchr(namebuf, ','); i = 0; /* Parse the list of dataset names */ /* ------------------------------- */ while (comma != NULL) { /* Allocate memory for fldname buffer */ /* ---------------------------------- */ fldname = (char *) calloc(comma - namebuf + 1, sizeof(char)); if (fldname == NULL) { sprintf(errbuf, "Cannot allocate memory for fldname. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); return(FAIL); } /* Copy field list entry to fldname */ /* -------------------------------- */ memmove(fldname, namebuf, comma - namebuf); fldname[comma-namebuf]=0; /* open dataset fldname */ /* -------------------- */ H5E_BEGIN_TRY{ datid = H5Dopen(data_id, fldname); }H5E_END_TRY; if ( datid == FAIL ) { sprintf(errbuf, "Cannot open the dataset \"%s\". \n",fldname ); H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); free(fldname); return(FAIL); } /* allocate memory to the dataset name */ /* ----------------------------------- */ HE5_SWXSwath[emptyslot].ddataset[i].name = (char *)calloc((strlen(fldname)+1), sizeof(char) ); if (HE5_SWXSwath[emptyslot].ddataset[i].name == NULL) { sprintf(errbuf, "Cannot allocate memory for the dataset name. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); free(fldname); return(FAIL); } /* Set the data members of external structure */ /* ========================================== */ HE5_SWXSwath[emptyslot].ddataset[i].ID = datid; strcpy(HE5_SWXSwath[emptyslot].ddataset[i].name, fldname); /* Go to next field entry, find next comma, ... */ /* ============================================ */ strcpy(namebuf, comma + 1); comma = strchr(namebuf, ','); if (fldname != NULL) free(fldname); i++; } if (namebuf != NULL) free(namebuf); if(inout.name != NULL ) free( inout.name); } /* end if(inout.name!=NULL) */ /* Access swath "Geolocation Fields" datasets */ /* ------------------------------------------- */ tmpname2 = (char *)calloc( (strlen(grpname)+60), sizeof(char) ); if (tmpname2 == NULL) { sprintf(errbuf, "Cannot allocate memory for tmpname2. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } strcpy(tmpname2,grpname); strcat(tmpname2,"/Geolocation Fields"); /* Get the number of OBJECTS in "Geolocation Fileds" group */ /* ======================================================= */ inout.count = 0; inout.name = NULL; inout.strsize = 0; idx = H5Giterate(geo_id, tmpname2 , NULL, HE5_EHobj_info, &inout); if ( idx == FAIL ) { sprintf(errbuf, "Iteration of \"HE5_EHobj_info()\" operation failed. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(tmpname2); return(FAIL); } /* Set the data members of external structure */ /* ========================================== */ HE5_SWXSwath[emptyslot].nGFLD = inout.count; if (tmpname2 != NULL) free(tmpname2); /*-----------------------------------------------------*/ /* Loop through all data fileds dataset and open it */ /* Allocate space for namebuf, copy inout.name into it */ /* and append comma */ /*-----------------------------------------------------*/ if( inout.name != NULL && inout.count > 0) { /* allocate memory to gdataset struct */ /* ---------------------------------- */ HE5_SWXSwath[emptyslot].gdataset = (HE5_DTSinfo *)realloc((void *)HE5_SWXSwath[emptyslot].gdataset, (HE5_SWXSwath[emptyslot].nGFLD) * sizeof(HE5_DTSinfo)); /* Allocate memory to the list of dataset names */ /* -------------------------------------------- */ namebuf = (char *) calloc(strlen(inout.name) + 2, sizeof(char)); if (namebuf == NULL) { sprintf(errbuf, "Cannot allocate memory for namebuf. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } strcpy(namebuf, inout.name); strcat(namebuf, ","); /* Find comma */ /* ---------- */ comma = strchr(namebuf, ','); i = 0; /* Parse the list of dataset names */ /* ------------------------------- */ while (comma != NULL) { /* Copy field list entry to fldname */ /* -------------------------------- */ fldname = (char *) calloc(comma - namebuf + 1, sizeof(char)); if (fldname == NULL) { sprintf(errbuf, "Cannot allocate memory for fldname. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); return(FAIL); } memmove(fldname, namebuf, comma - namebuf); fldname[comma-namebuf]='\0'; /* open dataset fldname */ /* -------------------- */ datid = H5Dopen(geo_id,fldname); if ( datid == FAIL ) { sprintf(errbuf, "Cannot open the dataset \"%s\". \n",fldname ); H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); free(fldname); return(FAIL); } /* Allocate memory to the dataset name */ /* ----------------------------------- */ HE5_SWXSwath[emptyslot].gdataset[i].name = (char *)calloc( (strlen(fldname)+1), sizeof(char) ); if (HE5_SWXSwath[emptyslot].gdataset[i].name == NULL) { sprintf(errbuf, "Cannot allocate memory for name. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); free(fldname); return(FAIL); } /* Set the data members of external structure */ /* ========================================== */ HE5_SWXSwath[emptyslot].gdataset[i].ID = datid; strcpy(HE5_SWXSwath[emptyslot].gdataset[i].name, fldname); /* Go to next field entry, ... */ /* ============================= */ strcpy(namebuf, comma + 1); comma = strchr(namebuf, ','); if (fldname != NULL) free(fldname); i++; } if (namebuf != NULL) free(namebuf); if(inout.name != NULL) free(inout.name); inout.name = NULL; } /* end if(inout.name!==NULL) */ /* Access swath "Profile Fields" datasets */ /* ----------------------------------------- */ if (prof_id != FAIL) { tmpname3 = (char *) calloc( (strlen(grpname)+ 20), sizeof(char)); if (tmpname3 == NULL) { sprintf(errbuf, "Cannot allocate memory for tmpname3. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } strcpy(tmpname3,grpname); strcat(tmpname3,"/Profile Fields"); /* Get the number of OBJECTS in "PRofile Fields" group */ /* =================================================== */ inout.count = 0; inout.name = NULL; inout.strsize = 0; idx = H5Giterate(HE5_SWXSwath[emptyslot].prof_id, tmpname3 , NULL, HE5_EHobj_info, &inout); if ( idx == FAIL ) { sprintf(errbuf, "Iteration of \"HE5_EHobj_info()\" operation failed. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(tmpname3); return(FAIL); } free(tmpname3); /* Set the data members of external structure */ /* ========================================== */ HE5_SWXSwath[emptyslot].nPROF = inout.count; /*-----------------------------------------------------------*/ /* Loop through all "Profile Field" datasets and open it */ /* Allocate space for namebuf, copy inout.name into it, */ /* and append comma */ /*-----------------------------------------------------------*/ if( inout.name != NULL && inout.count > 0 ) { /* Allocate memory to ddataset struct */ /* ---------------------------------- */ HE5_SWXSwath[emptyslot].pdataset = (HE5_DTSinfo *)realloc((void *)HE5_SWXSwath[emptyslot].pdataset,(HE5_SWXSwath[emptyslot].nPROF) * sizeof(HE5_DTSinfo)); /* Allocate memory to the list of dataset names */ /* -------------------------------------------- */ namebuf = (char *) calloc(strlen(inout.name) + 2, sizeof(char)); if (namebuf == NULL) { sprintf(errbuf, "Cannot allocate memory for namebuf. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } strcpy(namebuf, inout.name); strcat(namebuf, ","); /* Find comma */ /* ---------- */ comma = strchr(namebuf, ','); i = 0; /* Parse the list of dataset names */ /* ------------------------------- */ while (comma != NULL) { /* Allocate memory for fldname buffer */ /* ---------------------------------- */ fldname = (char *) calloc(comma - namebuf + 1, sizeof(char)); if (fldname == NULL) { sprintf(errbuf, "Cannot allocate memory for fldname buffer. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); return(FAIL); } /* Copy field list entry to fldname */ /* -------------------------------- */ memmove(fldname, namebuf, comma - namebuf); fldname[comma-namebuf]=0; /* open dataset fldname */ /* -------------------- */ H5E_BEGIN_TRY{ profid = H5Dopen(prof_id, fldname); }H5E_END_TRY; if ( profid == FAIL ) { sprintf(errbuf, "Cannot open the profile dataset \"%s\". \n",fldname ); H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); free(fldname); return(FAIL); } /* allocate memory to the dataset name */ /* ----------------------------------- */ HE5_SWXSwath[emptyslot].pdataset[i].name = (char *)calloc((strlen(fldname)+1), sizeof(char) ); if (HE5_SWXSwath[emptyslot].pdataset[i].name == NULL) { sprintf(errbuf, "Cannot allocate memory for profile name. \n") ; H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(namebuf); free(fldname); return(FAIL); } /* Set the data members of external structure */ /* ========================================== */ HE5_SWXSwath[emptyslot].pdataset[i].ID = profid; strcpy(HE5_SWXSwath[emptyslot].pdataset[i].name, fldname); /* Go to next field entry, find next comma, ... */ /* ============================================ */ strcpy(namebuf, comma + 1); comma = strchr(namebuf, ','); if (fldname != NULL) free(fldname); i++; } if (namebuf != NULL) free(namebuf); if(inout.name != NULL ) free( inout.name); } /* end if(inout.name!=NULL) */ } if (grpname != NULL) free(grpname); } else { /* Too many swaths opened */ /* ---------------------- */ swathID = FAIL; sprintf(errbuf,"\n Illegal attempt to open more than %d swaths simultaneously. \n", HE5_NSWATH); H5Epush(__FILE__, "HE5_SWattach", __LINE__, H5E_OHDR, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } COMPLETION: HE5_UNLOCK; return(swathID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWchkswid | | | | DESCRIPTION: Checks for valid swathID and returns file ID and | | "HDFEOS" group ID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A. Muslimov Checked for the status returned by EHchkfid(). | | Initialized status to -1. | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_SWchkswid(hid_t swathID, const char *routname, hid_t *fid, hid_t *gid, long *idx ) { herr_t status = FAIL;/* routine return status variable */ uintn access = 0; /* Read/Write access code */ hid_t HDFfid = FAIL;/* HDF-EOS file ID */ hid_t idOffset = HE5_SWIDOFFSET; char message1[] = "Invalid swath id: %d in routine \"%s\". ID must be >= %d and < %d.\n"; char message2[] = "Swath id %d in routine \"%s\" not active.\n"; char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Check for valid swath ID */ /* ------------------------ */ if (swathID < idOffset || swathID >= HE5_NSWATH + idOffset) { status = FAIL; sprintf(errbuf, message1, swathID, routname, idOffset, HE5_NSWATH + idOffset); H5Epush(__FILE__, "HE5_SWchkswid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* Check for active swath ID */ /* ------------------------- */ if (HE5_SWXSwath[swathID % idOffset].active == 0) { status = FAIL; sprintf(errbuf, message2, swathID, routname); H5Epush(__FILE__, "HE5_SWchkswid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { *idx = HE5_EHhid2long(swathID % idOffset); if (*idx == FAIL) { status = FAIL; sprintf(errbuf,"Cannot set up the swath index.\n"); H5Epush(__FILE__, "HE5_SWchkswid", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Get HDF file ID & "HDFEOS" group ID */ /* ------------------------------------ */ *fid = HE5_SWXSwath[*idx].fid; status = HE5_EHchkfid(*fid,"", &HDFfid, gid, &access); if (status == FAIL) { sprintf(errbuf,"Checking for file ID failed.\n"); H5Epush(__FILE__, "HE5_SWchkswid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefdim | | | | DESCRIPTION: Defines numerical value of dimension | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7/16/99 A.Muslimov In call to EHinsertmeta() replaced 'gid' by 'fid'. | | 01/06/00 A.Muslimov Changed the datatype of "dim" parameter from int32_t| | to hsize_t to handle an Unlimited dimension size. | | 02/08/00 A.Muslimov Added error checking after the EHinsertmeta() call. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdefdim(hid_t swathID, char *dimname, hsize_t dim) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKNAME(dimname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdefdim", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWdefdim", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Make certain that dim != 0 */ /* -------------------------- */ if ( dim == 0 ) { status = FAIL; sprintf(errbuf, "Invalid (zero) dimension size.\n"); H5Epush(__FILE__, "HE5_SWdefdim", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Write dimension to the dataset "StructMetadata.0" */ /* ------------------------------------------------- */ status = HE5_EHinsertmeta(fid, HE5_SWXSwath[idx].swname,"s", 0L, dimname, &dim); if ( status == FAIL ) { sprintf(errbuf, "Cannot insert the value for \"%s\" dimension into Metadata.\n", dimname); H5Epush(__FILE__, "HE5_SWdefdim", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWupdatedim | | | | DESCRIPTION: Updates numerical value of dimension | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | dimname char* Dimension name | | dim hsize_t Dimension size | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 02 S. ZHAO Original development | | Dec 02 H. LO Update the dimension size | | Feb 03 H. LO Update the dimension size | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_SWupdatedim(hid_t swathID, char *dimname, hsize_t dim) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hsize_t predims; HE5_LOCK; CHECKNAME(dimname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWupdatedim", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWupdatedim", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Make certain that dim != 0 */ /* -------------------------- */ if ( dim == 0 ) { status = FAIL; sprintf(errbuf, "Invalid (zero) dimension size.\n"); H5Epush(__FILE__, "HE5_SWupdatedim", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } predims = HE5_SWdiminfo(swathID, dimname); if (predims == 0) { status = FAIL; sprintf(errbuf, "Failed to retrieve the size of \"%s\" dimension. \n", dimname); H5Epush(__FILE__, "HE5_SWupdatedim", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Write updated dimension back to the dataset "StructMetadata.0" */ /* -------------------------------------------------------------- */ if (dim > predims) { status = HE5_EHupdatemeta(fid, HE5_SWXSwath[idx].swname,"s", 0L, dimname, &dim); if ( status == FAIL ) { sprintf(errbuf, "Cannot update the value for \"%s\" dimension in Metadata.\n", dimname); H5Epush(__FILE__, "HE5_SWupdatedim", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWsetdimscale | | | | DESCRIPTION: Defines a dimension scale for a fields dimension in a swath | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char field name | | dimname char dim name | | dimsize hsize_t Dimemsion size value | | numbertype_in hid_t dim scale data type such as DFNT_INT32, | | DFNT_FLOAT64, DFNT_FLOAT32, etc. | | data void data buffer for write | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWsetdimscale(hid_t swathID, char *fieldname, char *dimname, const hsize_t dimsize, hid_t numbertype_in, void * data) { herr_t status; hid_t ntype; hsize_t dims[HE5_DTSETRANKMAX]; int rankSDS; hid_t field_ntype = (hid_t)NULL; /* number types */ char dimlist[HE5_HDFE_DIMBUFSIZE]; char maxdimlist[HE5_HDFE_DIMBUFSIZE]; hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t did; hid_t dsid; hid_t fspace = FAIL; /* File dataspace ID */ unsigned int Dimindex; hid_t dsplist = FAIL; /* Property list ID */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Type of storage */ hid_t data_space = FAIL; /* dataspace ID */ long idx = FAIL; /* Swath index */ char *errbuf = (char *)NULL; /* buffer for error message*/ void *data_buff; int i, found; int rankds; hsize_t dimsds[1]; HE5_LOCK; CHECKNAME(fieldname); CHECKNAME(dimname); /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer ", __FILE__, __LINE__); return(FAIL); } /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { ntype = numbertype_in; } else { ntype = HE5_EHconvdatatype((int) numbertype_in); } if(ntype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for dimscale\n"); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper swath ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Swath index * ********************************************************** */ status = HE5_SWchkswid(swathID, "HE5_SWsetdimscale", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* * Check for proper swath ID and return HDF-EOS file ID, SDinterface ID, * and swath root Vgroup ID */ status = HE5_SWchkswid(swathID, "HE5_SWsetdimscale", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } if (status == 0) { /* Check that field exists */ /* ----------------------- */ status = HE5_SWfieldinfo(swathID, fieldname, &rankSDS, dims, &field_ntype, dimlist, maxdimlist); if (status != 0) { sprintf(errbuf, "Fieldname \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } data_buff = data; /* Loop through all datasets in swath */ /* ------------------------------ */ for (i = 0; i < HE5_SWXSwath[idx].nDFLD; i++) { /* Get dataset name */ if( strcmp(fieldname, HE5_SWXSwath[ idx ].ddataset[ i ].name) == 0 ) { found = 1; did = HE5_SWXSwath[ idx ].ddataset[ i ].ID; break; } } if(found != 1) /* did not find fieldname */ { sprintf(errbuf, "Fieldname \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Dimension index */ Dimindex = HE5_EHstrwithin(dimname, dimlist, ','); if (Dimindex == FAIL) /* dimension not found */ { status = FAIL; sprintf( errbuf, "Dimname \"%s\" does not exist for field \"%s\".\n", dimname, fieldname ); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* If dimension found ... */ /* Found the dimname; Use its dimid to set Dimension Scale*/ /* See if dimscale dataset already exist */ dsid = H5Dopen(HE5_SWXSwath[idx].sw_id, dimname); if(dsid < 0) { /* create Dim Scale dataset */ /* Try to open the " group */ /* =================================== */ dsplist = H5Pcreate(H5P_DATASET_CREATE); if(dsplist == FAIL) { sprintf(errbuf,"Cannot create a new property list.\n"); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get layout information */ /* ---------------------- */ layout = H5Pget_layout(dsplist); if(layout == H5D_LAYOUT_ERROR) { sprintf(errbuf,"Cannot get layout information for the dataset.\n"); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } rankds = 1; dimsds[0] = dims[Dimindex]; data_space = H5Screate_simple(rankds, dimsds, NULL); if(data_space == FAIL) { sprintf(errbuf,"Cannot create dataspace for the dimension scale dataset.\n"); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } dsid = H5Dcreate(HE5_SWXSwath[idx].sw_id,dimname,ntype, data_space, dsplist); if( dsid == FAIL ) { sprintf(errbuf, "Cannot create dataset for Dimension Scale \"%s\" field. \n", dimname); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* write data_buff to it */ /* Get the field space ID */ /* --------------------- */ fspace = H5Dget_space(dsid); if ( fspace == FAIL) { sprintf(errbuf, "Cannot get the file data space ID.\n"); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Dwrite(dsid, ntype, data_space, fspace, H5P_DEFAULT, data_buff); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_SWsetdimscale", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } /* Dataset exist. See if it is Dimension Scale already. If not make it */ if ((H5DSis_scale(dsid)) <= 0 ) { status = H5DSset_scale(dsid, dimname); if( status < 0) { status = -1; free(errbuf); goto COMPLETION; } if(H5DSattach_scale(did, dsid, Dimindex) < 0) { status = -1; free(errbuf); goto COMPLETION; } } else { if(H5DSattach_scale(did, dsid, Dimindex) < 0) { status = -1; free(errbuf); goto COMPLETION; } } if( H5Dclose(dsid) < 0) { status = -1; free(errbuf); goto COMPLETION; } } free(errbuf); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgetdimscale | | | | DESCRIPTION: Get dimension scale for a dimension of a field in a swath | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status long return databuffsize SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char field name | | dimname char dim name | | | | | | OUTPUTS: | | dimsize hsize_t dimension size | | ntype hid_t dtata type of dimension scale | | databuff void data buffer for read | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWgetdimscale(hid_t swathID, char *fieldname, char *dimname, hsize_t *dimsize, hid_t *ntype, void * databuff) { int i,j; /* Loop index */ long status; /* routine return status */ long idx = FAIL; /* Swath index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t did = FAIL; /* dataset ID */ hid_t dsid = FAIL; /* dimscale dataset ID */ hid_t dspace = FAIL; /* data space ID */ hid_t mspace = FAIL; /* memory data space ID */ hid_t dtype = FAIL; /* data type ID */ hid_t mtype = FAIL; /* memory data type ID */ H5T_class_t classid = H5T_NO_CLASS; /* Data type class ID */ hsize_t dimsds[HE5_DTSETRANKMAX]; /* Field dimensions */ char *errbuf = (char *)NULL; /* buff for error message */ long size = 0; /* data buffer size(bytes)*/ int rankds; size_t sd_type_size = 0; /* Size of a data type */ unsigned int Dimindex; int rankSDS; hid_t field_ntype = (hid_t)NULL; /* number types */ char dimlist[HE5_HDFE_DIMBUFSIZE]; char maxdimlist[HE5_HDFE_DIMBUFSIZE]; /*hid_t ntype = FAIL;*/ hsize_t dims[HE5_DTSETRANKMAX]; int found = 0; htri_t str_is_variable; /* boolean: TRUE if string is variable lengeth FALSE if string is fixed length -1 if error in H5Tis_variavle_str() */ HE5_LOCK; CHECKNAME(fieldname); CHECKNAME(dimname); /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* ********************************************************** * Check for proper swath ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Swath index * ********************************************************** */ status = HE5_SWchkswid(swathID, "HE5_SWgetdimscale", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* See if dimscale dataset exist */ dsid = H5Dopen(HE5_SWXSwath[idx].sw_id, dimname); if(dsid < 0) { status = FAIL; sprintf( errbuf, "Dimension scale dataset \"%s\" does not exist.\n", dimname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* Loop through all datasets in swath */ /* ------------------------------ */ for (i = 0; i < HE5_SWXSwath[idx].nDFLD; i++) { /* Get dataset name */ if( strcmp(fieldname, HE5_SWXSwath[ idx ].ddataset[ i ].name) == 0 ) { found = 1; did = HE5_SWXSwath[ idx ].ddataset[ i ].ID; break; } } if(found != 1) /* did not find fieldname */ { sprintf(errbuf, "Fieldname \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Check that field exists */ /* ----------------------- */ status = HE5_SWfieldinfo(swathID, fieldname, &rankSDS, dims, &field_ntype, dimlist, maxdimlist); if (status != 0) { sprintf(errbuf, "Fieldname \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* find the index of the dimension in the field */ Dimindex = HE5_EHstrwithin(dimname, dimlist, ','); if (Dimindex == FAIL) /* dimension not found */ { status = FAIL; sprintf( errbuf, "Dimname \"%s\" does not exist for field \"%s\".\n", dimname, fieldname ); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* check that dimname is dimension scale name for the field dimname */ status = H5DSis_attached(did, dsid, Dimindex); if( status < 0) { status = FAIL; sprintf( errbuf, "Dimname \"%s\" is not dimension scale for a dimension in the field \"%s\".\n", dimname, fieldname ); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /* OK. dsid is a dimension scale for did. It is time to read Dimension Scale dataset for output */ /* get size first ... */ /* ------------------ */ dtype = H5Dget_type(dsid); if ( dtype == FAIL ) { size = 0; sprintf(errbuf, "Cannot get data type ID.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get data type size (bytes) */ /* -------------------------- */ sd_type_size = H5Tget_size(dtype); if ( sd_type_size == 0 ) { sprintf(errbuf, "Cannot retrieve data type size.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get data space ID */ /* ----------------- */ dspace = H5Dget_space( dsid ); if (dspace == FAIL) { sprintf(errbuf, "Cannot get the dataspace ID for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get dataset rank */ /* ---------------- */ rankds = H5Sget_simple_extent_ndims(dspace); if ( rankds == FAIL ) { sprintf(errbuf, "Cannot get the dataset rank for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get dataset dimension sizes */ /* --------------------------- */ status = H5Sget_simple_extent_dims(dspace,dimsds, NULL); if ( status == FAIL ) { sprintf(errbuf, "Cannot get the dataset dimension sizes for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } /*----------------------------------------------------------------------*/ /* Get data class ID */ /* ----------------- */ classid = H5Tget_class(dtype); if (classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for \"%s\" dataset.", dimname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); return(FAIL); } if (classid == H5T_STRING) { /* HE5T_CHARSTRING has variable length for data fields */ str_is_variable = H5Tis_variable_str(dtype); if(str_is_variable == TRUE) { *ntype = HE5T_CHARSTRING; } else if(str_is_variable == FALSE) { *ntype = HE5T_NATIVE_CHAR; } else { sprintf(errbuf, "Failed to see if string field is varaible or fixed length for the \"%s\" field.\n",dimname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); return(FAIL); } } else { *ntype = HE5_EHdtype2numtype(dtype); if (*ntype == FAIL) { sprintf(errbuf, "Cannot get the number type for \"%s\" dataset.", dimname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (errbuf != NULL) free(errbuf); return(FAIL); } } /*----------------------------------------------------------------------*/ status = H5Tclose(dtype); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Release the dataspace ID */ /* ------------------------ */ status = H5Sclose(dspace); if ( status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } size = (long)dimsds[ 0 ]; *dimsize = (hsize_t)size; for (j = 1; j < rankds; j++) size *= (long)dimsds[j]; size *= (long)sd_type_size; /* If data values are requested ... */ /* -------------------------------- */ if (databuff != NULL) { /* Create a data space in memory */ /* ----------------------------- */ mspace = H5Screate_simple(rankds, (const hsize_t *)dimsds, NULL); if ( mspace == FAIL ) { sprintf(errbuf,"Cannot create the data space.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATASPACE, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } dspace = H5Dget_space(dsid ); if (dspace == FAIL) { sprintf(errbuf, "Cannot get the dataspace ID for the \"%s\" dataset.\n", dimname); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } dtype = H5Dget_type(dsid); if ( dtype == FAIL ) { sprintf(errbuf,"Cannot get the datatype ID.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Get the memory data type ID */ /* --------------------------- */ mtype = HE5_EHdtype2mtype(dtype); if ( mtype == FAIL ) { sprintf(errbuf,"Cannot get the memory data type.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Read the selected points into the buffer */ /* --------------------------------------- */ status = H5Dread(dsid, mtype, mspace, dspace, H5P_DEFAULT, databuff); if ( status == FAIL ) { sprintf(errbuf,"Cannot read out the data from the dataset.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Tclose(dtype); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Sclose(mspace); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the memory data space ID.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } status = H5Sclose(dspace); if ( status == FAIL ) { sprintf(errbuf,"Cannot release the file data space ID.\n"); H5Epush(__FILE__, "HE5_SWgetdimscale", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } } free(errbuf); COMPLETION: HE5_UNLOCK; return (size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWreaddscaleattr | | | | DESCRIPTION: Reads attribute associated with a dimension scale field | | from a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t None HDF-EOS type swath ID | | fieldname char field name | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 10 Abe Taaheri Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWreaddscaleattr(hid_t swathID, const char *fieldname, const char *attrname, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t ntype = FAIL;/* hdf5 type data type ID */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* Field-related dataset ID */ long idx = FAIL;/* Swath index */ hsize_t count[]={0}; /* array with the number of elements */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* ********************************************************** * Check for proper swath ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Swath index * ********************************************************** */ status = HE5_SWchkswid(swathID, "HE5_SWreaddscaleattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get field ID */ /* ------------ */ fieldID = H5Dopen(HE5_SWXSwath[idx].sw_id, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_SWreaddscaleattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattr to perform I/O */ /* -------------------------- */ status = HE5_EHattr(fieldID, attrname, ntype, count, "r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" associated wth the \"%s\" field.\n", attrname,fieldname); H5Epush(__FILE__, "HE5_SWreaddscaleattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_SWreaddscaleattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwritedscaleattr | | | | DESCRIPTION: Writes/updates attribute associated with a dimension scale | | field in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char* dimension scale SDS name | | attrname char* attribute name | | numtype hid_t attribute datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWwritedscaleattr(hid_t swathID, const char *fieldname, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* Field-related dataset ID */ long idx = FAIL;/* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t ntype; HE5_LOCK; CHECKPOINTER(fieldname); CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ ntype = HE5_EHconvdatatype(numtype); if(ntype == FAIL) { ntype = numtype; } /* ********************************************************** * Check for proper swath ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Swath index * ********************************************************** */ status = HE5_SWchkswid(swathID, "HE5_SWwritedscaleattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get field ID */ /* ------------ */ fieldID = H5Dopen(HE5_SWXSwath[idx].sw_id, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_SWwritedscaleattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattr to perform I/O */ /* -------------------------- */ status = HE5_EHattr(fieldID, attrname, ntype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\" for the \"%s\" field.\n", attrname, fieldname); H5Epush(__FILE__, "HE5_SWwritedscaleattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_SWwritedscaleattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdscaleattrinfo | | | | DESCRIPTION: Retrieves information about dimension scale attribute | | (attribute associated with a specified dimension scale field) | | in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t None HDF-EOS type swath ID | | fieldname char* field name | | attrname char* attribute name | | | | OUTPUTS: | | ntype hid_t attribute data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdscaleattrinfo(hid_t swathID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* Field-related dataset ID */ long idx = FAIL;/* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* ********************************************************** * Check for proper swath ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Swath index * ********************************************************** */ status = HE5_SWchkswid(swathID, "HE5_SWdscaleattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get field ID */ /* ------------ */ fieldID = H5Dopen(HE5_SWXSwath[idx].sw_id, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_SWdscaleattrinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattrinfo */ /* --------------- */ if(strcmp(attrname,"REFERENCE_LIST") !=0)/* do not need ntype for internal dimension scale attribute */ { status = HE5_EHattrinfo(fieldID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" associated with the \"%s\" field.\n", attrname, fieldname); H5Epush(__FILE__, "HE5_SWdscaleattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { status = -1; *ntype = -1; *count = 0; sprintf(errbuf,"Will not retrieve information about internal Attribute \"%s\" associated with the dimension scale \"%s\" .\n", attrname, fieldname); H5Epush(__FILE__, "HE5_SWdscaleattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_SWdscaleattrinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdiminfo | | | | DESCRIPTION: Returns size in bytes of named dimension | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size hsize_t Size of dimension | | | | INPUTS: | | swathID hid_t Swath structure ID | | dimname char Dimension name | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 3/18/99 | | 7/28/99 A.Muslimov In the call to EHmetagroup() replaced gid by fid | | (file ID). | | July 00 A.Muslimov Unmasked hdf5 data types. | | Apr 01 A.Muslimov Initialized size to 0, but "Unlim" returns -1!,not 0| | | | END_PROLOG | -----------------------------------------------------------------------------*/ hsize_t HE5_SWdiminfo(hid_t swathID, char *dimname) { hsize_t size = 0; /* Dimension size (return value) */ herr_t status = FAIL;/* status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Swath index */ char *metabuf=(char *)NULL; /* Ptr to StrucMetadata (SM) */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to the start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE];/* Utility string buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdiminfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get pointers to "Dimension" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "Dimension", metaptrs); /* Search for dimension name (surrounded by quotes) */ /* ------------------------------------------------ */ sprintf(utlstr, "%s%s%s", "\"", dimname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); /* * If dimension found within swath structure then get dimension value */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Set "end" ptr at the end of dimension definition entry */ /* ------------------------------------------------------ */ metaptrs[1] = strstr(metaptrs[0], "\t\t\tEND_OBJECT"); /* Get the value of "Size" entry */ /* ----------------------------- */ status = HE5_EHgetmetavalue(metaptrs, "Size", utlstr); if (status == SUCCEED) { size = atol(utlstr); if (size == 0) { sprintf(errbuf, "Returning zero \"Size\" value from Metadata.\n"); H5Epush(__FILE__, "HE5_SWdiminfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { sprintf(errbuf, "The \"Size\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_SWdiminfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { sprintf(errbuf, "The Dimension \"%s\" not found in metadata. \n", dimname); H5Epush(__FILE__, "HE5_SWdiminfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if (metabuf != NULL) free(metabuf); } return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWmapinfo | | | | DESCRIPTION: Returns dimension mapping information | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | geodim char geolocation dimension name | | datadim char data dimension name | | | | OUTPUTS: | | offset long mapping offset | | increment long mapping increment | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | 7/29/99 A.Muslimov In the call to EHmetagroup() replace gid by fid. | | 8/20/99 A.Muslimov Initialized statuses to -1. Disabled the last error | | message: | | " sprintf(errbuf, | | "Mapping \"%s/%s\"not found.", geodim, datadim) ".| | This error message shouldn't be issued, because | | the functions SWextractregion() and SWregioninfo() | | that call SWmapinfo() issue a proper error message | | upon receiving the error status = -1 from | | SWmapinfo(). | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWmapinfo(hid_t swathID, char *geodim, char *datadim, long *offset, long *increment) { herr_t status = FAIL; /* Routine return status variable */ herr_t statmeta = FAIL; /* EHgetmetavalue return status */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Swath index */ char *metabuf = (char *)NULL; /* Ptr to StrucMetadata */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE];/* Utility string buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(geodim); CHECKPOINTER(datadim); /* Initialize return values */ /* ------------------------ */ *offset = FAIL; *increment = FAIL; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWmapinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get pointers to "DimensionMap" section within SM */ /* ------------------------------------------------ */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "DimensionMap", metaptrs); /* Search for mapping - GeoDim/DataDim (surrounded by quotes) */ /* ---------------------------------------------------------- */ sprintf(utlstr, "%s%s%s%s%s", "\t\t\t\tGeoDimension=\"", geodim, "\"\n\t\t\t\tDataDimension=\"", datadim, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); /* * If mapping found within swath structure then get offset and * increment value */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get Offset */ /* ---------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "Offset", utlstr); if (statmeta == SUCCEED) *offset = atol(utlstr); else { status = FAIL; sprintf(errbuf, "The \"Offset\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_SWmapinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Get Increment */ /* ------------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "Increment", utlstr); if (statmeta == SUCCEED) *increment = atol(utlstr); else { status = FAIL; H5Epush(__FILE__, "HE5_SWmapinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, "The \"Increment\" string not found in metadata. \n"); HE5_EHprint("Error: The \"Increment\" string not found in metadata, occured", __FILE__, __LINE__); } } else { status = FAIL; } if (metabuf != NULL) free(metabuf); } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWidxmapinfo | | | | DESCRIPTION: Returns indexed mapping information | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | gsize hsize_t Number of index values (sz of geo dim) | | | | INPUTS: | | swathID hid_t swath structure ID | | geodim char geolocation dimension name | | datadim char data dimension name | | | | OUTPUTS: | | index long array of index values | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 02/08/00 A.Muslimov Initialized gsize to -1, and added more error | | checkings. | | July 00 A.Muslimov Unmasked hdf5 data types. | | 7/12/00 A.Muslimov Added conversion from disk/file data type ID to | | memory data type ID before H5Dread() call. | | Apr 01 A.Muslimov Initialized gsize to 0, but "Unlim" returns -1!, | | not 0. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hsize_t HE5_SWidxmapinfo(hid_t swathID, char *geodim, char *datadim, long index[]) { hsize_t gsize = 0; /* Size of geo dim (return) */ herr_t status = FAIL;/* Status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t sw_id = FAIL;/* Swath Attributes group ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t id = FAIL;/* Dataset ID */ hid_t tid = FAIL;/* File/Disk data type ID */ hid_t mid = FAIL;/* Memory data type ID */ long idx = FAIL;/* Swath index */ char utlbuf[HE5_HDFE_DIMBUFSIZE];/* Utility buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error buffer */ CHECKPOINTER(geodim); CHECKPOINTER(datadim); /* if field is empty bail out */ if(strcmp(geodim,"") == 0) { sprintf(errbuf,"The geolocation dimension name \"%s\" is null.. \n", geodim); H5Epush(__FILE__, "HE5_SWidxmapinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(gsize); } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWidxmapinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Find Index Mapping dataset */ /* -------------------------- */ sprintf(utlbuf, "%s%s%s%s", "_INDEXMAP:", geodim, ",", datadim); sw_id = HE5_SWXSwath[idx].sw_id; /* Open dataset "INDEXMAP:geodim,datadim" in swath group */ /* ----------------------------------------------------- */ id = H5Dopen(sw_id, utlbuf); if( id == FAIL ) { sprintf(errbuf,"The \"%s\" dataset not found. \n", utlbuf); H5Epush(__FILE__, "HE5_SWidxmapinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Get geodim size & read index mapping values */ /* ------------------------------------------- */ else { /* Get data type ID */ /* ---------------- */ tid = H5Dget_type(id); if (tid == FAIL) { sprintf(errbuf, "Cannot get the data type ID. \n") ; H5Epush(__FILE__, "HE5_SWidxmapinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(gsize); } /* Get memory data type ID */ /* ----------------------- */ mid = HE5_EHdtype2mtype(tid); if (mid == FAIL) { sprintf(errbuf, "Cannot convert to memory data type. \n") ; H5Epush(__FILE__, "HE5_SWidxmapinfo", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(gsize); } /* Read the dataset */ /* ---------------- */ status = H5Dread( id,mid , H5S_ALL, H5S_ALL, H5P_DEFAULT, index); if (status == FAIL) { sprintf(errbuf, "Cannot read out the data. \n") ; H5Epush(__FILE__, "HE5_SWidxmapinfo", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(gsize); } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(tid); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n") ; H5Epush(__FILE__, "HE5_SWidxmapinfo", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(gsize); } /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(id); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID. \n") ; H5Epush(__FILE__, "HE5_SWidxmapinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(gsize); } gsize = HE5_SWdiminfo(swathID, geodim); if (gsize == 0) { sprintf(errbuf, "Failed to retrieve the size of \"%s\" dimension. \n", geodim) ; H5Epush(__FILE__, "HE5_SWidxmapinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } COMPLETION: return (gsize); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWcompinfo | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None Return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t None Swath Object ID | | compcode int | | compparm int | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7/29/99 A.Muslimov In the call to EHmetagroup() replace gid by fid. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Oct 00 A.Muslimov Added the case where fieldname is an alias, and | | updated to include profile dataset. | | Dec 00 A.Muslimov Updated to include retrieving compression related | | metadata information for profile. | | Aug 03 S.Zhao Added Szip compression methods. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWcompinfo(hid_t swathID, char *fldname, int *compcode, int compparm[]) { herr_t status = FAIL; /* Return status variable */ herr_t statmeta = FAIL; /* Status variable */ int i; /* Loop Index */ int nameflag = FAIL; /* Name flag (0-alias,1-actual)*/ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Swath index */ char fieldname[HE5_HDFE_NAMBUFSIZE]; /* Field name buffer */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual name of a field */ char *metabuf = (char *)NULL; /* Pntr to StrucMetadata (SM) */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to the start/end of SM */ char *utlstr = (char *)NULL; /* Utility string buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ char *HDFcomp[18] = {"HE5_HDFE_COMP_NONE", "HE5_HDFE_COMP_RLE", "HE5_HDFE_COMP_NBIT", "HE5_HDFE_COMP_SKPHUFF", "HE5_HDFE_COMP_DEFLATE", "HE5_HDFE_COMP_SZIP_CHIP", "HE5_HDFE_COMP_SZIP_K13", "HE5_HDFE_COMP_SZIP_EC", "HE5_HDFE_COMP_SZIP_NN", "HE5_HDFE_COMP_SZIP_K13orEC", "HE5_HDFE_COMP_SZIP_K13orNN", "HE5_HDFE_COMP_SHUF_DEFLATE", "HE5_HDFE_COMP_SHUF_SZIP_CHIP", "HE5_HDFE_COMP_SHUF_SZIP_K13", "HE5_HDFE_COMP_SHUF_SZIP_EC", "HE5_HDFE_COMP_SHUF_SZIP_NN", "HE5_HDFE_COMP_SHUF_SZIP_K13orEC", "HE5_HDFE_COMP_SHUF_SZIP_K13orNN"}; /* Compression method Codes */ CHECKPOINTER(fldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWcompinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Allocate space for utility string */ /* --------------------------------- */ utlstr = (char *)calloc(HE5_HDFE_DIMBUFSIZE, sizeof(char)); if ( utlstr == NULL ) { sprintf( errbuf,"Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_SWfldnameinfo() to get actual field name */ /* ------------------------------------------------- */ nameflag = HE5_SWfldnameinfo(swathID, fldname, fldactualname); if ( nameflag == FAIL ) { sprintf(errbuf, "Cannot get the actual name of the field.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (utlstr != NULL) free(utlstr); return(FAIL); } /* If fieldname is alias, then change it to the actual name */ /* -------------------------------------------------------- */ if (nameflag == FALSE) { strcpy(fieldname,""); strcpy(fieldname,fldactualname); } if (nameflag == TRUE) { strcpy(fieldname,""); strcpy(fieldname,fldname); } /* Get the field group code */ /* ------------------------ */ fldgroup = HE5_SWfldsrch(swathID,fieldname,NULL,NULL,NULL,NULL); if (fldgroup == HE5_HDFE_DATAGROUP) { /* Get pointers to "DataField" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "DataField", metaptrs); /* Search for field */ /* ---------------- */ sprintf(utlstr, "%s%s%s", "\"", fieldname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); } else if (fldgroup == HE5_HDFE_GEOGROUP) { /* Search in "GeoField" section */ /* ---------------------------- */ if (metaptrs[0] > metaptrs[1] || metaptrs[0] == NULL) { /* Get pointers to "GeoField" section within SM */ /* -------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s","GeoField", metaptrs); /* Search for field */ /* ---------------- */ sprintf(utlstr, "%s%s%s", "\"", fieldname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); } } else if (fldgroup == HE5_HDFE_PROFGROUP) { /* Get pointers to "ProfileField" section within SM */ /* ------------------------------------------------ */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "ProfileField", metaptrs); /* Search for profile */ /* ------------------ */ sprintf(utlstr, "%s%s%s", "\"", fieldname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); } else { sprintf(errbuf , "Cannot get the field group code.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); if (utlstr != NULL) free(utlstr); return(FAIL); } /* If field found and user wants compression code ... */ /* -------------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { if (compcode != NULL) { /* Set endptr at end of field's definition entry */ /* --------------------------------------------- */ metaptrs[1] = strstr(metaptrs[0], "\t\t\tEND_OBJECT"); /* Get compression type */ /* -------------------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "CompressionType", utlstr); /* * Default is no compression if "CompressionType" string not * in metadata */ *compcode = HE5_HDFE_COMP_NONE; /* If compression code is found ... */ /* -------------------------------- */ if (statmeta == SUCCEED) { /* Loop through compression types until match */ /* ------------------------------------------ */ for (i = 0; i < 18; i++) { if (strcmp(utlstr, HDFcomp[i]) == 0) { *compcode = i; break; } } } } /* If user wants compression parameters ... */ /* ---------------------------------------- */ if (compparm != NULL && compcode != NULL) { /* Initialize to zero */ /* ------------------ */ for (i = 0; i < 5; i++) compparm[i] = 0; /* Get compression parameters */ /* -------------------------- */ if (*compcode == HE5_HDFE_COMP_NBIT) { statmeta = HE5_EHgetmetavalue(metaptrs, "CompressionParams", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "(%d,%d,%d,%d)", &compparm[0], &compparm[1], &compparm[2], &compparm[3]); } else { status = FAIL; sprintf( errbuf,"\"CompressionParams\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_DEFLATE) { statmeta = HE5_EHgetmetavalue(metaptrs, "DeflateLevel", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"DeflateLevel\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_CHIP) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_K13) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_EC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_NN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_K13orEC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SZIP_K13orNN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_DEFLATE) { statmeta = HE5_EHgetmetavalue(metaptrs, "DeflateLevel", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"DeflateLevel\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_CHIP) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_K13) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_EC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_NN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_K13orEC) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else if (*compcode == HE5_HDFE_COMP_SHUF_SZIP_K13orNN) { statmeta = HE5_EHgetmetavalue(metaptrs, "BlockSize", utlstr); if (statmeta == SUCCEED) { sscanf(utlstr, "%d", &compparm[0]); } else { status = FAIL; sprintf( errbuf,"The \"BlockSize\" string not found in metadata.\n"); H5Epush(__FILE__, "HE5_SWcompinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } } if (metabuf != NULL) free(metabuf); if (utlstr != NULL) free(utlstr); } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWfldnameinfo | | | | DESCRIPTION: Retrieves actual name of the field | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nameFlag int None return (1) actual name, (0) alias, | | (-1) FAIL | | INPUTS: | | swathID hid_t Swath structure ID | | fieldname char name of field | | | | OUTPUTS: | | actualname char field actual name | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 00 A.Muslimov Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static int HE5_SWfldnameinfo(int swathID, char *fieldname, char *actualname) { int nameFlag = FAIL;/* Return value of flag */ int length = 0; /* String length */ int fldgroup = FAIL;/* Field group code */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t groupID = FAIL;/* data/geo/prof fields group ID */ long idx = FAIL;/* Swath index */ H5G_stat_t *statbuf = (H5G_stat_t *)NULL;/* buffer for link info */ herr_t status = FAIL;/* routine return status variable */ char *namebuf = NULL;/* Buffer for an actual field name */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWfldnameinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWfldnameinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } statbuf = (H5G_stat_t *)calloc(1, sizeof(H5G_stat_t )); /* Try to get information about specified field */ /* -------------------------------------------- */ H5E_BEGIN_TRY { groupID = HE5_SWXSwath[idx].data_id; fldgroup = HE5_HDFE_DATAGROUP; status = H5Gget_objinfo(groupID, fieldname, 0, statbuf); } H5E_END_TRY; if (status == FAIL) { H5E_BEGIN_TRY { groupID = HE5_SWXSwath[idx].geo_id; fldgroup = HE5_HDFE_GEOGROUP; status = H5Gget_objinfo(groupID, fieldname, 0, statbuf); } H5E_END_TRY; if (status == FAIL) { H5E_BEGIN_TRY { groupID = HE5_SWXSwath[idx].prof_id; fldgroup = HE5_HDFE_PROFGROUP; status = H5Gget_objinfo(groupID, fieldname, 0, statbuf); } H5E_END_TRY; if (status == FAIL) { nameFlag = FAIL; sprintf(errbuf, "Cannot find \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWfldnameinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(statbuf); return(nameFlag); } } } /* If the field name is an alias */ /* ----------------------------- */ if (statbuf->type == H5G_LINK) nameFlag = FALSE; else nameFlag = TRUE; if (nameFlag == FALSE) { if (actualname != NULL) { status = HE5_SWaliasinfo(swathID, fldgroup, fieldname, &length, NULL); if ( status == FAIL ) { sprintf(errbuf, "Cannot get information about alias \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_SWfldnameinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } namebuf = (char *)calloc(length, sizeof(char)); if ( namebuf == NULL ) { sprintf(errbuf, "Cannot allocate memory for namebuf.\n"); H5Epush(__FILE__, "HE5_SWfldnameinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Retrieve information about alias */ /* -------------------------------- */ status = HE5_SWaliasinfo(swathID, fldgroup, fieldname, &length, namebuf); if ( status == FAIL ) { sprintf(errbuf, "Cannot get information about alias \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_SWfldnameinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(namebuf); return(FAIL); } strcpy(actualname,""); strcpy(actualname,namebuf); free(namebuf); } } if (nameFlag == TRUE) { if (actualname != NULL) { strcpy(actualname,""); strcpy(actualname, fieldname); } } free(statbuf); COMPLETION: return(nameFlag); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWfinfo | | | | DESCRIPTION: Returns field info | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | fieldtype char fieldtype (geo or data) | | fldname char name of field | | | | OUTPUTS: | | rank int rank of field (# of dims) | | dims hsize_t field dimensions | | numbertype hid_t field number type | | dimlist char field dimension list | | maxdimlist char field maximum dimension list | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7/29/99 A.Muslimov In the call to EHmetagroup() replaced gid by fid. | | 7/30/99 A.Muslimov Added *rank = H5Sget_simple_extent_ndims(dspace); | | and checked for error status from H5Sget_simple_\ | | extent_dims() and H5Sclose(). Replaced maxdims | | parameter by NULL in H5Sget_simple_extent_dims(). | | 8/11/99 A.Muslimov Initialized status to -1 before "Get pointers | | to appropriate "Field" section within SM ". | | Moved the lines of code under the comments | | "Get field ID" and "Get actual dimension size " | | within the block "if (metaptrs[0] < | | metaptrs[1] && metaptrs[0] != NULL) {} " to its end.| | Initialized "statmeta" and "fieldID" to -1. | | Cleaned up some minor things (mostly cosmetic). | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem| | | when arguments 1 and 2 overlap in memory. | | | | 01/13/00 A.Muslimov Added "maxdimlist" parameter to make it possible | | working with the appendable datasets. Modified the | | blocks retrieving the dimension lists. Added proper | | error handlings after the function calls. | |02/04/00 A.Muslimov H5Sget_simple_extent_ndims returns "int", so the | | data type of rank was changed from int32_t to int. | |04/19/00 A.Muslimov Changed type of 'slen' from long to size_t. | | July 00 A.Muslimov Unmasked hdf5 data types. | |10/02/00 A.Muslimov Updated to include alias field name. | | June 02 S.Zhao Changed the type of 'numbertype' from an H5T_class_t | | to an hid_t. | | Oct. 03 S.Zhao Added the H5Tclose(datatype) call. | | Oct. 03 S.Zhao Modified to enable a character string dataset. | | Mar 04 S.Zhao Modified for a character string dataset. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_SWfinfo(int swathID, char *fieldtype, char *fieldname, int *rank, hsize_t dims[], hid_t numbertype[], char *dimlist, char *maxdimlist) { herr_t status = FAIL;/* routine return status variable */ herr_t statmeta = FAIL;/* EHgetmetavalue return status */ herr_t Dstatus = FAIL;/* Status for H5Dclose */ int groupflag = FAIL;/* Flag for "Geo... Fields"/"Data Fields" group */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t dspace = FAIL;/* "fieldname" Dataspace ID */ hid_t fieldID = FAIL;/* "fieldname" Dataset ID */ hid_t groupid = FAIL;/* group ID */ hid_t datasetid = FAIL;/* dataset ID */ hid_t datatype = FAIL;/* data type ID */ H5T_class_t classid = H5T_NO_CLASS;/* data type class ID */ long ndims = 0; /* Number of dimensions */ long idx = FAIL;/* Index of a swath */ long i = 0; /* Loop index */ size_t slen[HE5_DTSETRANKMAX]; /* Length of each entry in parsed string */ char *metabuf = (char *)NULL; /* Ptr to structural metadata (SM) */ char *metaptrs[2] = {NULL, NULL}; /* Ptrs to the begining and end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE]; /* Utility string */ char *ptr[HE5_DTSETRANKMAX]; /* String pointers for parsed string */ char dimstr[HE5_HDFE_DIMBUFSIZE]; /* Individual dimension entry string */ char maxdimstr[HE5_HDFE_DIMBUFSIZE]; /* Individual max. dimension entry string */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ htri_t str_is_variable; /* boolean: TRUE if string is variable lengeth FALSE if string is fixed length -1 if error in H5Tis_variavle_str() */ CHECKPOINTER(fieldtype); CHECKPOINTER(fieldname); /* Initialize rank to FAIL (error) */ /* ------------------------------- */ *rank = FAIL; /* Initialize slen[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) slen[i] = 0; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWfinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Reset status to FAIL */ /* -------------------- */ status = FAIL; /* Get pointers to appropriate "Field" section within SM */ /* ----------------------------------------------------- */ if (strcmp(fieldtype, "Geolocation Fields") == 0) { metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "GeoField", metaptrs); groupflag = 0; } else { metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "DataField", metaptrs); groupflag = 1; } if ( metabuf == NULL ) { status = FAIL; sprintf(errbuf, "Cannot get pointer to metabuf.\n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } sprintf(utlstr, "%s%s%s", "\"", fieldname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); /* If field is found either in "Geolocation Fields" or "Data Fields" group */ /* ----------------------------------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get DataType string */ /* ------------------- */ statmeta = HE5_EHgetmetavalue(metaptrs, "DataType", utlstr); /* Convert to data type class ID */ /* ----------------------------- */ if (statmeta == SUCCEED) { if(groupflag == 0) groupid = HE5_SWXSwath[idx].geo_id; else groupid = HE5_SWXSwath[idx].data_id; /* Open the field dataset */ /* ---------------------- */ datasetid = H5Dopen(groupid, fieldname); if (datasetid == FAIL) { status = FAIL; sprintf(errbuf, "Cannot open the dataset for the \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the data type ID */ /* -------------------- */ datatype = H5Dget_type(datasetid); if (datatype == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the data type for the \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the data type class ID */ /* -------------------------- */ classid = H5Tget_class(datatype); if (classid == H5T_NO_CLASS) { status = FAIL; sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if (classid == H5T_STRING) { /* HE5T_CHARSTRING has variable length for data fields */ str_is_variable = H5Tis_variable_str(datatype); if(str_is_variable == TRUE) { numbertype[0] = HE5T_CHARSTRING; } else if(str_is_variable == FALSE) { numbertype[0] = HE5T_NATIVE_CHAR; } else { status = FAIL; sprintf(errbuf, "Failed to see if string field is varaible or fixed length for the \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /*numbertype[0] = HE5_SWgetstringtype(swathID, fieldname,classid);*/ /*numbertype[0] = HE5T_CHARSTRING;*/ } else { /*numbertype[0] = classid;*/ numbertype[0] = HE5_EHdtype2numtype(datatype); if (numbertype[0] == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the number type for the \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(datatype); if ( status == FAIL ) { sprintf(errbuf, "Cannot release the datatype ID for the \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the dataset ID */ /* ---------------------- */ Dstatus = H5Dclose(datasetid); if (Dstatus == FAIL) { status = FAIL; sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { status = FAIL; sprintf(errbuf, "The \"DataType\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATASET, H5E_SEEKERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get "DimList" string, trim off "(" and ")" */ /* ------------------------------------------ */ statmeta = HE5_EHgetmetavalue(metaptrs, "DimList", utlstr); if (statmeta == SUCCEED) { memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); utlstr[strlen(utlstr) - 2] = 0; /* Parse trimmed "DimList" string and get rank */ /* ------------------------------------------- */ ndims = HE5_EHparsestr(utlstr, ',', ptr, slen); *rank = HE5_EHlong2int(ndims); if (*rank == FAIL) { sprintf(errbuf, "Cannot convert from \"long\" to \"int\" data type. \n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else { status = FAIL; sprintf(errbuf, "The \"DimList\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATASET, H5E_SEEKERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* If "DimList" IS REQUESTED ... */ /* ----------------------------- */ if (dimlist != NULL) { strcpy(dimstr,""); strcpy(dimlist,""); /* * Copy each entry in DimList and remove leading and trailing quotes. * Get dimension sizes and concatenate dimension names to dimension list. */ for (i = 0; i < ndims; i++) { memmove(dimstr, ptr[i] + 1, slen[i] - 2); dimstr[slen[i] - 2] = 0; if (i > 0) { strcat(dimlist,","); } strcat(dimlist, dimstr); } } /* If "MaxdimList" IS REQUESTED ... */ /* -------------------------------------- */ if(maxdimlist != NULL) { strcpy(utlstr,""); statmeta = HE5_EHgetmetavalue(metaptrs,"MaxdimList", utlstr); if (statmeta == SUCCEED) { memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); utlstr[strlen(utlstr) - 2] = 0; ndims = HE5_EHparsestr(utlstr,',', ptr, slen); } else { status = FAIL; sprintf(errbuf, "The \"MaxdimList\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATASET, H5E_SEEKERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } strcpy(maxdimstr,""); strcpy(maxdimlist,""); for (i = 0; i < ndims; i++) { memmove(maxdimstr, ptr[i] + 1, slen[i] - 2); maxdimstr[slen[i] - 2] = 0; if (maxdimlist != NULL) { if (i > 0) { strcat(maxdimlist,","); } strcat(maxdimlist, maxdimstr); } } } /* Get field ID */ /* ------------ */ HE5_SWfieldsizeID( swathID, fieldname, &fieldID); /* Get the data space ID */ /* --------------------- */ dspace = H5Dget_space( fieldID ); if(dspace == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the data space ID.\n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the dataset rank */ /* -------------------- */ *rank = H5Sget_simple_extent_ndims(dspace); if( *rank == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the rank of the dataset.\n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the dataset dimension sizes */ /* ------------------------------- */ status = H5Sget_simple_extent_dims(dspace, dims, NULL); if( status == FAIL) { sprintf(errbuf, "Cannot get the dimension array of the dataset.\n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(dspace); if( status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_SWfinfo", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if (metabuf != NULL) free(metabuf); COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWfieldinfo | | | | DESCRIPTION: Wrapper around HE5_SWfinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID herr_t swath structure ID | | fldname char* name of field | | | | OUTPUTS: | | rank int rank of field (# of dims) | | dims hsize_t field dimensions | | ntype hid_t number types | | dimlist char* field dimension list | | maxdimlist char* field maximum dimension list | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ================================================ | | 01/13/00 A.Muslimov Added "maxdimlist" parameter to make it possible | | working with the appendable datasets. | | 05/10/00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Oct 5 00 A.Muslimov Added checking for actual field name (in case of | | passing an alias name as 'fldname'). | | Jan 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t | | to an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWfieldinfo(hid_t swathID, char *fldname, int *rank, hsize_t dims[], hid_t ntype[], char *dimlist, char *maxdimlist) { herr_t status = FAIL;/* routine return status variable */ int nameflag = FAIL;/* Actual(1)/Alias(0) field name */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Swath index */ char fieldname[HE5_HDFE_NAMBUFSIZE]; /* field name buffer */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual field name */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ CHECKPOINTER(fldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWfieldinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Call HE5_SWfldnameinfo() to get actual field name */ /* ------------------------------------------------- */ nameflag = HE5_SWfldnameinfo(swathID, fldname, fldactualname); if ( nameflag == FAIL ) { sprintf(errbuf, "Cannot get actual name of the field.\n"); H5Epush(__FILE__, "HE5_SWfieldinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Name is not alias */ /* ----------------- */ if (nameflag == TRUE) { strcpy(fieldname,""); strcpy(fieldname,fldname); } /* Name is alias */ /* ------------- */ if (nameflag == FALSE) { strcpy(fieldname,""); strcpy(fieldname,fldactualname); } /* Check for field within Geolocatation Fields */ /* ------------------------------------------- */ status = HE5_SWfinfo(swathID, "Geolocation Fields", fieldname, rank, dims, ntype, dimlist, maxdimlist); /* If not there then check within Data Fields */ /* ------------------------------------------ */ if (status == FAIL) status = HE5_SWfinfo(swathID, "Data Fields", fieldname, rank, dims, ntype, dimlist, maxdimlist); /* If not there either then can't be found */ /* --------------------------------------- */ if (status == FAIL) { sprintf(errbuf,"Field \"%s\" not found. Check out the field name. \n", fieldname); H5Epush(__FILE__, "HE5_SWfieldinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWchunkinfo | | | | DESCRIPTION: Retrieves chunking information | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | fldname char* name of field | | | | OUTPUTS: | | chunk_rank int* rank of a dataset | | chunk_dims hsize_t the array containing sizes | | of each dimension of a chunk | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================== | | Dec 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWchunkinfo(hid_t swathID, char *fldname, int *chunk_rank, hsize_t chunk_dims[]) { herr_t status = FAIL;/* Return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Swath index */ hid_t fieldID = FAIL;/* field dataset ID */ hid_t plist = FAIL;/* field dataset property list ID */ hid_t dspace = FAIL;/* "fieldname" Dataspace ID */ int ndims = 0; /* Number of dimensions */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Storage layout type */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fldname); /* Initialize chunk_rank to FAIL (error) */ /* ------------------------------------- */ *chunk_rank = FAIL; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWchunkinfo", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf,"Checking for valid swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWchunkinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check out the field group and get field ID */ /* ------------------------------------------ */ HE5_SWfldsrch(swathID,fldname,&fieldID,NULL,NULL,NULL); if(fieldID == FAIL) { sprintf(errbuf, "Cannot get the field ID for the \"%s\" field.\n", fldname); H5Epush(__FILE__, "HE5_SWchunkinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the property list ID */ /* ------------------------ */ plist = H5Dget_create_plist(fieldID); if (plist == FAIL) { sprintf(errbuf, "Cannot get the property list ID for the \"%s\" data field.\n", fldname); H5Epush(__FILE__, "HE5_SWchunkinfo", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the data space ID */ /* --------------------- */ dspace = H5Dget_space(fieldID); if(dspace == FAIL) { sprintf(errbuf, "Cannot get the data space ID for the \"%s\" data field.\n", fldname); H5Epush(__FILE__, "HE5_SWchunkinfo", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the dataset rank */ /* -------------------- */ ndims = H5Sget_simple_extent_ndims(dspace); if(ndims == FAIL) { sprintf(errbuf, "Cannot get the rank of the dataset.\n"); H5Epush(__FILE__, "HE5_SWchunkinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get Layout */ /* ---------- */ layout = H5Pget_layout(plist); if (layout == H5D_LAYOUT_ERROR) { sprintf(errbuf, "Cannot get the layout of the raw data. \n"); H5Epush(__FILE__, "HE5_SWchunkinfo", __LINE__, H5E_PLIST, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (layout == H5D_CHUNKED) { /* Get chunking */ /* ------------ */ *chunk_rank = H5Pget_chunk(plist, ndims, chunk_dims); if (*chunk_rank == FAIL) { sprintf(errbuf, "Cannot get the sizes of chunks. \n"); H5Epush(__FILE__, "HE5_SWchunkinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else { *chunk_rank = 0; } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release property list ID. \n"); H5Epush(__FILE__, "HE5_SWchunkinfo", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(dspace); if( status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_SWchunkinfo", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefdimmap | | | | DESCRIPTION: Defines mapping between geolocation and data dimensions | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 3/18/99 | | 7/29/99 A.Muslimov In the call to EHinsertmeta() replaced gid by fid. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdefdimmap(hid_t swathID, char *geodim, char *datadim, hsize_t offset, hsize_t increment) { herr_t status = FAIL; /* Routine return status */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hsize_t size = 0; /* Size of geo dim */ hsize_t metadata[2] = { 0, 0 }; /* Offset & Increment */ long idx = FAIL; /* Swath index */ char mapname[HE5_HDFE_NAMBUFSIZE];/* Mapping name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ HE5_LOCK; CHECKNAME(geodim); CHECKNAME(datadim); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdefdimmap", &fid, &gid, &idx); if (status == SUCCEED) { /* Geolocation Dimension Search */ /* ---------------------------- */ size = HE5_SWdiminfo(swathID, geodim); if (size == 0) { status = FAIL; sprintf(errbuf, "Geolocation dimension \"%s\" not found.", geodim); H5Epush(__FILE__, "HE5_SWdefdimmap", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Data Dimension Search */ /* --------------------- */ if (status == SUCCEED) { size = HE5_SWdiminfo(swathID, datadim); if (size == 0) { status = FAIL; sprintf(errbuf, "Data dimension \"%s\" not found.", datadim); H5Epush(__FILE__, "HE5_SWdefdimmap", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Write "DimensionMap" to Structural MetaData */ /* ------------------------------------------- */ if (status == SUCCEED) { sprintf(mapname, "%s%s%s", geodim, "/", datadim); metadata[0] = offset; metadata[1] = increment; status = HE5_EHinsertmeta(fid, HE5_SWXSwath[idx].swname, "s", 1L, mapname, metadata); if (status == FAIL) { sprintf(errbuf, "Cannot write \"Dimension Map\" offset and increment values to Structural Metadata."); H5Epush(__FILE__, "HE5_SWdefdimmap", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefidxmap | | | | DESCRIPTION: Defines indexed (non-linear) mapping between geolocation | | and data dimensions | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | geodim char Geolocation dimension | | datadim char Data dimension | | index long Index mapping array | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 3/18/99 | | 7/29/99 A.Muslimov In the call to EHinsertmeta() replaced gid by fid. | | 8/23/99 A.Muslimov Checked for the statuses returned by H5Dwrite(), | | H5Sclose(), and H5Dclose(). | | 2/08/00 A.Muslimov Added more error checkings. | | 3/03/00 A.Muslimov Changed the datatype passed to H5Dcreate() and | | H5Dwrite() from H5T_NASTIVE_INT to H5T_NATIVE_LONG. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdefidxmap(hid_t swathID, char *geodim, char *datadim, long index[]) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t dspace = FAIL; /* dataspace ID */ hid_t id = FAIL; /* dataset ID */ hid_t sw_id = FAIL; /* Swath ID */ long idx = FAIL; /* Swath index */ hsize_t metadata = 0; /* Dummy metadata buffer */ hsize_t gsize = 0; /* Size of geo dim */ hsize_t dsize = 0; /* Size of data dim */ char mapname[HE5_HDFE_NAMBUFSIZE];/* Mapping name */ char utlbuf[HE5_HDFE_DIMBUFSIZE]; /* Utility buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ HE5_LOCK; CHECKNAME(geodim); CHECKNAME(datadim); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdefidxmap", &fid, &gid, &idx); if (status == SUCCEED) { /* Geo Dimension Search */ /* -------------------- */ gsize = HE5_SWdiminfo(swathID, geodim); if (gsize == 0) { status = FAIL; sprintf(errbuf, "Geolocation dimension \"%s\" not found. \n", geodim); H5Epush(__FILE__, "HE5_SWdefidxmap", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Data Dimension Search */ /* --------------------- */ if (status == SUCCEED) { dsize = HE5_SWdiminfo(swathID, datadim); if (dsize == 0) { status = FAIL; sprintf(errbuf, "Data dimension \"%s\" not found. \n", datadim); H5Epush(__FILE__, "HE5_SWdefidxmap", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Define Index and Store Index Array */ /* ----------------------------------- */ if (status == SUCCEED) { sw_id = HE5_SWXSwath[idx].sw_id; /* Name: "_INDEXMAP:" + geodim + "/" + datadim */ /* ------------------------------------------- */ sprintf(utlbuf, "%s%s%s%s", "_INDEXMAP:", geodim, ",", datadim); /* Create dataspace */ /* ---------------- */ dspace = H5Screate_simple(1, &gsize, NULL); if (dspace == FAIL) { sprintf(errbuf, "Cannot create the data space. \n"); H5Epush(__FILE__, "HE5_SWdefidxmap", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* create dataset */ /* -------------- */ id = H5Dcreate(sw_id, utlbuf, H5T_NATIVE_LONG, dspace, H5P_DEFAULT); if (id == FAIL) { sprintf(errbuf, "Cannot create the dataset. \n"); H5Epush(__FILE__, "HE5_SWdefidxmap", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Write data buffer to dataset */ /* ---------------------------- */ status = H5Dwrite(id, H5T_NATIVE_LONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, index); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the dataset. \n"); H5Epush(__FILE__, "HE5_SWdefidxmap", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Write to Structural Metadata */ /* ---------------------------- */ sprintf(mapname, "%s%s%s", geodim, "/", datadim); status = HE5_EHinsertmeta(fid, HE5_SWXSwath[idx].swname, "s", 2L, mapname, &metadata); if (status == FAIL) { sprintf(errbuf, "Cannot insert data to the Metadata. \n"); H5Epush(__FILE__, "HE5_SWdefidxmap", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release dataspace ID */ /* -------------------- */ status = H5Sclose(dspace); if (status == FAIL) { sprintf(errbuf, "Cannot release the data space ID. \n"); H5Epush(__FILE__, "HE5_SWdefidxmap", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(id); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID. \n"); H5Epush(__FILE__, "HE5_SWdefidxmap", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefchunk | | | | DESCRIPTION: Defines size of chunk used to store a chunked layout dataset | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | rank int rank of a dataset | | *dim const hsize_t pointer to the array containing sizes | | of each dimension of a chunk | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================== | | 8/134/99 A.Muslimov Checked the statuses for H5P... calls. | | 02/08/00 A.Muslimov Added more error checkings. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdefchunk(hid_t swathID, int rank, const hsize_t *dim) { herr_t status = FAIL;/* Return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(dim); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdefchunk", &fid, &gid, &idx); if (status == SUCCEED) { /* get the current dataset creation property ID from external array */ /* if current property instance has not been created, then create it */ if( HE5_SWXSwath[idx].plist == FAIL){ HE5_SWXSwath[idx].plist = H5Pcreate(H5P_DATASET_CREATE); if (HE5_SWXSwath[idx].plist == FAIL){ sprintf(errbuf, "Cannot create the property list. \n"); H5Epush(__FILE__, "HE5_SWdefchunk", __LINE__, H5E_PLIST, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Set layout */ /* ---------- */ status = H5Pset_layout( HE5_SWXSwath[idx].plist, H5D_CHUNKED); if (status == FAIL) { sprintf(errbuf, "Cannot set the \"CHUNKED\" type of storage. \n"); H5Epush(__FILE__, "HE5_SWdefchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Set chunking */ /* ------------ */ status = H5Pset_chunk( HE5_SWXSwath[idx].plist, rank, dim); if (status == FAIL) { sprintf(errbuf, "Cannot set the sizes of chunks. \n"); H5Epush(__FILE__, "HE5_SWdefchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefcomp | | | | DESCRIPTION: Defines compression type and parameters | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | compcode int compression code | | compparm int compression parameters | | | | OUTPUTS: | | None | | | | NOTES: Before calling this function, storage must be CHUNKED | | Values of compression code | | HDFE_COMP_NONE 0 | | HDFE_COMP_RLE 1 | | HDFE_COMP_NBIT 2 | | HDFE_COMP_SKPHUFF 3 | | HDFE_COMP_DEFLATE 4 | | HDFE_COMP_SZIP_EC 5 | | HDFE_COMP_SZIP_NN 6 | | HDFE_COMP_SZIP_K13 7 | | HDFE_COMP_SZIP_CHIP 8 | | HDFE_COMP_SZIP_K13orEC 9 | | HDFE_COMP_SZIP_K13orNN 10 | | HDFE_COMP_SHUF_DEFLATE 11 | | HDFE_COMP_SHUF_SZIP_CHIP 12 | | HDFE_COMP_SHUF_SZIP_K13 13 | | HDFE_COMP_SHUF_SZIP_EC 14 | | HDFE_COMP_SHUF_SZIP_NN 15 | | HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HDFE_COMP_SHUF_SZIP_K13orNN 17 | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | 8/13/99 A.Muslimov Changed the return type of SWdefcomp from int | | to int . Checked the statuses in the H5P... calls.| | 02/08/00 A.Muslimov Added more error checkings. | | July 00 A.Muslimov Unmasked hdf5 data types. | | June 01 A.Muslimov Added checking of the compression code/level. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Aug 03 S.Zhao Added Szip compression methods. | | Oct 03 S.Zhao Added the shuffling method. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdefcomp(hid_t swathID, int compcode, int *compparm) { herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Swath index */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Storage layout type */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ int can_encode = 0; /* szip encoder presence flag */ HE5_LOCK; CHECKPOINTER(compparm); /* Check if compression code is valid */ /* ---------------------------------- */ if( compcode != HE5_HDFE_COMP_DEFLATE && compcode != HE5_HDFE_COMP_NONE && compcode != HE5_HDFE_COMP_SZIP_CHIP && compcode != HE5_HDFE_COMP_SZIP_K13 && compcode != HE5_HDFE_COMP_SZIP_EC && compcode != HE5_HDFE_COMP_SZIP_NN && compcode != HE5_HDFE_COMP_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SZIP_K13orNN && compcode != HE5_HDFE_COMP_SHUF_DEFLATE && compcode != HE5_HDFE_COMP_SHUF_SZIP_CHIP && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13 && compcode != HE5_HDFE_COMP_SHUF_SZIP_EC && compcode != HE5_HDFE_COMP_SHUF_SZIP_NN && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orNN ) { status = FAIL; sprintf(errbuf,"Invalid/unsupported compression code. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if( compcode == HE5_HDFE_COMP_DEFLATE || compcode == HE5_HDFE_COMP_NONE || compcode == HE5_HDFE_COMP_SHUF_DEFLATE) { /* Check GZIP compression level */ /* ---------------------------- */ if( compparm[0] < 0 || compparm[0] > 9) { status = FAIL; sprintf(errbuf,"Invalid GZIP compression level. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Check SZIP compression block size */ /* --------------------------------- */ if( compparm[0] != 2 && compparm[0] != 4 && compparm[0] != 6 && compparm[0] != 8 && compparm[0] != 10 && compparm[0] != 12 && compparm[0] != 14 && compparm[0] != 16 && compparm[0] != 18 && compparm[0] != 20 && compparm[0] != 22 && compparm[0] != 24 && compparm[0] != 26 && compparm[0] != 28 && compparm[0] != 30 && compparm[0] != 32) { status = FAIL; sprintf(errbuf,"Invalid SZIP compression block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } #ifdef H5_HAVE_FILTER_SZIP can_encode = HE5_szip_can_encode(); #endif /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdefcomp", &fid, &gid, &idx); if (status == SUCCEED) { /* If the current property list is not set up */ /* ------------------------------------------ */ if( HE5_SWXSwath[idx].plist == FAIL) { status = FAIL; sprintf(errbuf,"Unable to compress, dataset storage layout has not been set to CHUNKED. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { layout = H5Pget_layout(HE5_SWXSwath[idx].plist); if (layout == H5D_LAYOUT_ERROR) { status = FAIL; sprintf(errbuf, "Cannot get the layout of the raw data. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_PLIST, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if( layout != H5D_CHUNKED ) status = H5Pset_layout(HE5_SWXSwath[idx].plist, H5D_CHUNKED); if (status == FAIL) { sprintf(errbuf, "Cannot set the \"CHUNKED\" type of storage of the raw data. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } switch (compcode) { /* Set NBIT compression parameters in compression external array */ /* ------------------------------------------------------------- */ case HE5_HDFE_COMP_NBIT: HE5_SWXSwath[idx].compparm[0] = compparm[0]; HE5_SWXSwath[idx].compparm[1] = compparm[1]; HE5_SWXSwath[idx].compparm[2] = compparm[2]; HE5_SWXSwath[idx].compparm[3] = compparm[3]; break; case HE5_HDFE_COMP_DEFLATE: /* ------------------------------------------------- */ /* Set compression method to H5D_COMPRESS_DEFLATE */ /* and compression level to "compparm[0]" */ /* ------------------------------------------------- */ status = H5Pset_deflate(HE5_SWXSwath[idx].plist, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set GZIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_CHIP: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_CHIP_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ----------------------------------------------- */ /* Set SZIP_CHIP compression method and compression*/ /* parameters in external array */ /* ----------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13 compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_EC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_EC compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_NN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_NN compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13orEC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orEC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13orEC compression method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13orNN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13orNN compression method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_DEFLATE: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Pset_deflate(HE5_SWXSwath[idx].plist, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set shuffling+GZIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_CHIP: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_CHIP_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_CHIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13 method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_EC: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_EC method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_NN: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_NN method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orEC: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orEC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13orEC method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orNN: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13orNN method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_NONE: HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; default: { status = FAIL; sprintf(errbuf, "Invalid compression method \"%d\" . \n", compcode); H5Epush(__FILE__, "HE5_SWdefcomp", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefcomchunk | | | | DESCRIPTION: Defines compression type and parameters and sets chunking | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | compcode int compression code | | compparm int compression parameters | | rank int rank of a dataset | | *dim const hsize_t pointer to the array containing sizes | | of each dimension of a chunk | | OUTPUTS: | | None | | | | NOTES: Before calling this function, storage must be CHUNKED | | Values of compression code | | HDFE_COMP_NONE 0 | | HDFE_COMP_RLE 1 | | HDFE_COMP_NBIT 2 | | HDFE_COMP_SKPHUFF 3 | | HDFE_COMP_DEFLATE 4 | | HDFE_COMP_SZIP_EC 5 | | HDFE_COMP_SZIP_NN 6 | | HDFE_COMP_SZIP_K13 7 | | HDFE_COMP_SZIP_CHIP 8 | | HDFE_COMP_SZIP_K13orEC 9 | | HDFE_COMP_SZIP_K13orNN 10 | | HDFE_COMP_SHUF_DEFLATE 11 | | HDFE_COMP_SHUF_SZIP_CHIP 12 | | HDFE_COMP_SHUF_SZIP_K13 13 | | HDFE_COMP_SHUF_SZIP_EC 14 | | HDFE_COMP_SHUF_SZIP_NN 15 | | HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HDFE_COMP_SHUF_SZIP_K13orNN 17 | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | 8/13/99 A.Muslimov Changed the return type of SWdefcomp from int | | to int . Checked the statuses in the H5P... calls.| | 02/08/00 A.Muslimov Added more error checkings. | | July 00 A.Muslimov Unmasked hdf5 data types. | | July 00 A.Muslimov Original tayloring from SWdefcomp() & SWdefchunk(). | | June 01 A.Muslimov Added checking for validity of input parameters. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Aug 03 S.Zhao Added Szip compression methods. | | Oct 03 S.Zhao Added the shuffling method. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdefcomchunk(hid_t swathID, int compcode, int *compparm, int rank, const hsize_t *dim) { herr_t status = FAIL; /* Return status variable */ int i = 0; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hsize_t dims[HE5_DTSETRANKMAX]; /* Default dim. sizes */ long idx = FAIL; /* Swath index */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Storage layout type */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ int can_encode; /* szip encoder presence flag */ HE5_LOCK; CHECKPOINTER(compparm); CHECKPOINTER(dim); /* Check if compression code is valid */ /* ---------------------------------- */ if( compcode != HE5_HDFE_COMP_DEFLATE && compcode != HE5_HDFE_COMP_NONE && compcode != HE5_HDFE_COMP_SZIP_CHIP && compcode != HE5_HDFE_COMP_SZIP_K13 && compcode != HE5_HDFE_COMP_SZIP_EC && compcode != HE5_HDFE_COMP_SZIP_NN && compcode != HE5_HDFE_COMP_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SZIP_K13orNN && compcode != HE5_HDFE_COMP_SHUF_DEFLATE && compcode != HE5_HDFE_COMP_SHUF_SZIP_CHIP && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13 && compcode != HE5_HDFE_COMP_SHUF_SZIP_EC && compcode != HE5_HDFE_COMP_SHUF_SZIP_NN && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orEC && compcode != HE5_HDFE_COMP_SHUF_SZIP_K13orNN ) { status = FAIL; sprintf(errbuf, "Invalid/unsupported compression code. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if( compcode == HE5_HDFE_COMP_DEFLATE || compcode == HE5_HDFE_COMP_NONE || compcode == HE5_HDFE_COMP_SHUF_DEFLATE) { /* Check GZIP compression level */ /* ---------------------------- */ if( compparm[0] < 0 || compparm[0] > 9) { status = FAIL; sprintf(errbuf,"Invalid GZIP compression level. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Check SZIP compression block size */ /* --------------------------------- */ if( compparm[0] != 2 && compparm[0] != 4 && compparm[0] != 6 && compparm[0] != 8 && compparm[0] != 10 && compparm[0] != 12 && compparm[0] != 14 && compparm[0] != 16 && compparm[0] != 18 && compparm[0] != 20 && compparm[0] != 22 && compparm[0] != 24 && compparm[0] != 26 && compparm[0] != 28 && compparm[0] != 30 && compparm[0] != 32) { status = FAIL; sprintf(errbuf,"Invalid SZIP compression block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } #ifdef H5_HAVE_FILTER_SZIP can_encode = HE5_szip_can_encode(); #endif /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdefcomchunk", &fid, &gid, &idx); if (status == SUCCEED) { /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[i] = 0; /* get the current dataset creation property ID from external array */ /* ----------------------------------------------------------------- */ if(HE5_SWXSwath[idx].plist == FAIL) { /* create property list */ /* -------------------- */ HE5_SWXSwath[idx].plist = H5Pcreate(H5P_DATASET_CREATE); /* set layout to "H5D_CHUNKED" */ /* --------------------------- */ status = H5Pset_layout(HE5_SWXSwath[idx].plist, H5D_CHUNKED); if (status == FAIL) { sprintf(errbuf, "Cannot set the \"CHUNKED\" type of storage. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_STORAGE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Get layout of the raw data */ /* -------------------------- */ layout = H5Pget_layout(HE5_SWXSwath[idx].plist); if (layout == H5D_LAYOUT_ERROR) { status = FAIL; sprintf(errbuf, "Cannot get the layout of the raw data. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_STORAGE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if( layout != H5D_CHUNKED ) { /* set layout to "H5D_CHUNKED" */ /* --------------------------- */ status = H5Pset_layout( HE5_SWXSwath[idx].plist, H5D_CHUNKED); if (status == FAIL) { sprintf(errbuf, "Cannot set the \"CHUNKED\" type of storage. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_STORAGE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } } /* set chunking */ /* ------------ */ if ( rank > 0 && dim != (hsize_t *)NULL) { status = H5Pset_chunk(HE5_SWXSwath[idx].plist, rank, dim); if (status == FAIL) { sprintf(errbuf, "Cannot set the sizes of chunks. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else if ( rank > 0 && dim == (hsize_t *)NULL) { /* Set default chunk sizes */ /* ----------------------- */ for (i = 0; i < rank; i++) dims[ i ] = HE5_CHUNKSIZE; status = H5Pset_chunk(HE5_SWXSwath[idx].plist, rank, dims); if (status == FAIL) { sprintf(errbuf, "Cannot set the sizes of chunks. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Invalid dataset rank,\"%d\" . \n", rank); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } switch (compcode) { /* Set NBIT compression parameters in compression external array */ /* ------------------------------------------------------------- */ case HE5_HDFE_COMP_NBIT: HE5_SWXSwath[idx].compparm[0] = compparm[0]; HE5_SWXSwath[idx].compparm[1] = compparm[1]; HE5_SWXSwath[idx].compparm[2] = compparm[2]; HE5_SWXSwath[idx].compparm[3] = compparm[3]; break; case HE5_HDFE_COMP_DEFLATE: /* ------------------------------------------------- */ /* Set compression method to H5D_COMPRESS_DEFLATE */ /* and compression level to "compparm[0]" */ /* ------------------------------------------------- */ status = H5Pset_deflate(HE5_SWXSwath[idx].plist, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set GZIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_CHIP: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_CHIP_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_CHIP compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13 compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_EC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_EC compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_NN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_NN compression method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13orEC: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orSZIP_EC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13orEC compression method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SZIP_K13orNN: #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set SZIP_K13orNN compression method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_DEFLATE: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Pset_deflate(HE5_SWXSwath[idx].plist, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set GZIP compresssion method and level. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* ------------------------------------------------- */ /* Set shuffling+GZIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_CHIP: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_CHIP_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_CHIP compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_CHIP method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13 compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13 method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_EC: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_EC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_EC method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_NN: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_NN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_NN method and compression */ /* parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orEC: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_EC_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orEC compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13orEC method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_SHUF_SZIP_K13orNN: status = H5Pset_shuffle(HE5_SWXSwath[idx].plist); if (status == FAIL) { sprintf(errbuf, "Cannot set the shuffling method. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } #ifdef H5_HAVE_FILTER_SZIP if(can_encode == 1) { status = H5Pset_szip(HE5_SWXSwath[idx].plist, H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK, compparm[0]); if (status == FAIL) { sprintf(errbuf, "Cannot set SZIP_K13orNN compresssion method and block size. \n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Szip does not have encoder; szip compression won't apply to datafields.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_RESOURCE, H5E_CANTENCODE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } #endif /* ------------------------------------------------- */ /* Set shuffling+SZIP_K13orNN method and */ /* compression parameters in external array */ /* ------------------------------------------------- */ HE5_SWXSwath[idx].compcode = compcode; HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; case HE5_HDFE_COMP_NONE: HE5_SWXSwath[idx].compparm[0] = compparm[0]; break; default: { status = FAIL; sprintf(errbuf, "Invalid (unsupported) compression method \"%d\". \n", compcode); H5Epush(__FILE__, "HE5_SWdefcomchunk", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefinefield | | | | DESCRIPTION: Defines geolocation or data field within swath structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldtype char geo/data fieldtype | | fieldname char fieldname | | dimlist char Dimension (comma-separated)list | | maxdimlist char Maximum Dimension (comma-separated) list| | numbertype hid_t field data type ID | | merge int merge code | | | | OUTPUTS: | | None | | | | NOTES: H5S_UNLIMITED is -1, not 0 => unlimited extendiable dimention | | size = -1. | | (A.M.) If maxdimlist = NULL, then dimlist string is copied to the | | maxdimlist string, and corresponding information is written to | | the metadata section. | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A.Muslimov Checked for the statuse returned by H5Dclose() and | | H5Sclose(). | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 12/3/99 A.Muslimov Added a call (see last lines) to H5Pclose(). | | 01/14/00 A.Muslimov Modified setting up of the metadata strings to | | to enable the proper functioning of calls involving | | appendible fields. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Nov 00 A.Muslimov Updated a block checking if the data type is valid. | | Modified to enable appendability of any dimension. | | Aug 03 S.Zhao Added Szip compression methods. | | Oct 03 S.Zhao Added to create a character string dataset. | | Mar 04 S.Zhao Modified for a character string dataset. | | Apr 04 S.Zhao Modified for a character string dataset. | | May 05 S.Zhao Added HE5_EHdtype2numtype() function call. | | Sep 11 Abe Taaheri Modified for correcting Unlimited dimension | | behavior and extension, removing hardcoded name | | Unlim | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_SWdefinefield(hid_t swathID, char *fieldtype, const char *fieldname, char *dimlist, char *maxdimlist, hid_t numbertype, int merge) { herr_t status = FAIL; /* Return status variable */ int i = 0; /* Loop index */ int foundAllDim = 1; /* found all dimensions flag */ int append = FALSE;/* "Is field appendable?" flag */ int first = 1; /* first entry flag */ int fac = 0; /* Data (1)/Geo (2) Field flag */ int compcode = FAIL; /* Compression code */ int rank = 0; /* Field rank */ int maxrank = 0; /* max dim rank */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t data_space = FAIL;/* dataspace ID */ hid_t dataset = FAIL;/* dataset ID */ hid_t heos_gid = FAIL;/* "SWATHS" group ID */ hsize_t metavalue = 0; /* Metavalue to insert */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimension size array */ hsize_t maxdims[HE5_DTSETRANKMAX];/* Dimension size array */ hsize_t dimsize = 0; /* Dimension size */ hsize_t count[] = { 1 }; /* number of elements to insert */ long idx = FAIL; /* Swath index */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Storage layout for raw data */ void *value; size_t tsize = 0; /* Size of a datatype in bytes */ hid_t ntype = FAIL; /* number type ID */ int attr = 0; /* attribute value */ hid_t numtype = FAIL; H5D_fill_value_t fill_status; /* to see if fill value is set or not */ char *dimbuf = (char *)NULL; /* Dimension buffer */ char *comma = (char *)NULL; /* Pointer to comma */ char *dimcheck = (char *)NULL; /* Dimension check buffer */ char utlbuf[HE5_HDFE_UTLBUFSIZE]; /* Utility buffer */ char utlbuf2[HE5_HDFE_UTLBUFSIZE]; /* Utility buffer 2 */ char errbuf1[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer 1 */ char errbuf2[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer 2 */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ char maxdimlstbuf[HE5_HDFE_DIMBUFSIZE]; char dimlstbuf[HE5_HDFE_DIMBUFSIZE]; char compparmbuf[HE5_HDFE_DIMBUFSIZE];/* Compression parmeter */ char *HDFcomp[18] = {"HE5_HDFE_COMP_NONE", "HE5_HDFE_COMP_RLE", "HE5_HDFE_COMP_NBIT", "HE5_HDFE_COMP_SKPHUFF", "HE5_HDFE_COMP_DEFLATE", "HE5_HDFE_COMP_SZIP_CHIP", "HE5_HDFE_COMP_SZIP_K13", "HE5_HDFE_COMP_SZIP_EC", "HE5_HDFE_COMP_SZIP_NN", "HE5_HDFE_COMP_SZIP_K13orEC", "HE5_HDFE_COMP_SZIP_K13orNN", "HE5_HDFE_COMP_SHUF_DEFLATE", "HE5_HDFE_COMP_SHUF_SZIP_CHIP", "HE5_HDFE_COMP_SHUF_SZIP_K13", "HE5_HDFE_COMP_SHUF_SZIP_EC", "HE5_HDFE_COMP_SHUF_SZIP_NN", "HE5_HDFE_COMP_SHUF_SZIP_K13orEC", "HE5_HDFE_COMP_SHUF_SZIP_K13orNN"}; /* Compression code names */ CHECKNAME(fieldname); CHECKPOINTER(fieldtype); CHECKPOINTER(dimlist); /* Setup error message strings */ /* --------------------------- */ strcpy(errbuf1, "HE5_SWXSDname array too small.\nPlease increase "); strcat(errbuf1, "size of HE5_HDFE_NAMBUFSIZE in \"HE5_HdfEosDef.h\".\n"); strcpy(errbuf2, "HE5_SWXSDdims array too small.\nPlease increase "); strcat(errbuf2, "size of HE5_HDFE_DIMBUFSIZE in \"HE5_HdfEosDef.h\".\n"); /* assuming that fillvalue is undefined for the field */ fill_status = H5D_FILL_VALUE_UNDEFINED; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdefinefield", &fid, &heos_gid, &idx); if(status == FAIL ) return(status); /* initialize dims and maxdims array */ /* --------------------------------- */ for(i = 0; i < HE5_DTSETRANKMAX; i++) { dims[i] = 0; maxdims[i] = 0; } /* Allocate space for dimbuf, copy dimlist into it, & append comma */ /* --------------------------------------------------------------- */ dimbuf = (char *) calloc(strlen(dimlist) + 64, sizeof(char)); if(dimbuf == NULL) { H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* ******************************************************************** * C H E C K T H E C O N T E N T O F dimlist S T R I N G * ******************************************************************** */ strcpy(dimbuf, dimlist); strcat(dimbuf, ","); /* Find comma */ /* ---------- */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in swath */ while (comma != NULL) { /* Copy dimension list entry to dimcheck */ /* ------------------------------------- */ dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(dimbuf); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get dimension size */ /* ------------------ */ dimsize = HE5_SWdiminfo(swathID, dimcheck); if (dimsize > 0) { dims[rank] = dimsize; rank++; } else { /* * If dimension list entry not found - set error return * status, append name to utility buffer for error report */ status = FAIL; foundAllDim = 0; if (first == 1) strcpy(utlbuf, dimcheck); else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ strcpy(dimbuf, comma + 1); comma = strchr(dimbuf, ','); free(dimcheck); } free(dimbuf); /* If no dimensions found, report error */ /* ------------------------------------ */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Dimension(s) \"%s\" not found for \"%s\" field. \n", utlbuf, fieldname); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* ************************************************************************ * C H E C K T H E C O N T E N T O F maxdimlist S T R I N G * ************************************************************************ */ /* Allocate space for dimbuf, copy maxdimlist into it, & append comma */ /* ------------------------------------------------------------------ */ if(maxdimlist != NULL) { dimbuf = (char *) calloc(strlen(maxdimlist) + 64, sizeof(char)); if(dimbuf == NULL) { H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Copy "maxdimlist" to "dimbuf", & append comma */ /* --------------------------------------------- */ strcpy(dimbuf, maxdimlist); strcat(dimbuf, ","); /* Find comma */ /* ---------- */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in swath */ while (comma != NULL) { /* Copy dimension list entry to dimcheck */ /* ------------------------------------- */ dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(dimbuf); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get dimension size */ /* ------------------ */ dimsize = HE5_SWdiminfo(swathID, dimcheck); if ( (dimsize > 0) || (dimsize == H5S_UNLIMITED) ) { maxdims[maxrank] = dimsize; maxrank++; } else { /* * If dimension list entry not found - set error return * status, append name to utility buffer for error report */ status = FAIL; foundAllDim = 0; if (first == 1) strcpy(utlbuf, dimcheck); else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ strcpy(dimbuf, comma + 1); comma = strchr(dimbuf, ','); free(dimcheck); } free(dimbuf); /* If no dimensions found, report error */ /* ------------------------------------ */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Dimension(s) \"%s\" not found for \"%s\" field. \n", utlbuf, fieldname); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* If maxrank !=rank then report error */ /* ------------------------------------ */ if ( maxrank != rank ) { status = FAIL; sprintf(errbuf,"Dimension rank doesn't match Maximum dimension rank. \n"); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } } /* "maxlist == NULL" ==> maxdims[]= dims[] */ /* ---------------------------------------- */ else { for(i = 0; i < rank; i++ ) maxdims[ i ] = dims[ i ]; } /* Find out if the dataset dimension is appendable */ /* ----------------------------------------------- */ for(i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } else { status = FAIL; H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_BADRANGE, "Maximum dimension size is smaller than Dimension size. \n"); HE5_EHprint("Error: Maximum dimension size is smaller than Dimension size, occured", __FILE__, __LINE__); return(status); } } /* Check for valid data type ID ("numbertype") */ /* ------------------------------------------- */ if (numbertype != HE5T_CHARSTRING) { if ( H5Tequal(numbertype, H5T_NATIVE_CHAR) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_SCHAR) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_UCHAR) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_SHORT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_USHORT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_INT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_UINT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_LONG) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_ULONG) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_LLONG) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_ULLONG) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_FLOAT) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_DOUBLE) != SUCCEED && H5Tequal(numbertype, H5T_NATIVE_LDOUBLE)!= SUCCEED && H5Tequal(numbertype, H5T_C_S1) != SUCCEED ) { H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, "Invalid (unsupported) data type. \n"); HE5_EHprint("Error: Invalid (unsupported) data type, occured", __FILE__, __LINE__); return(FAIL); } } /* Get the field group ID */ /*----------------------- */ if (strcmp(fieldtype, "Data Fields") == 0) { gid = HE5_SWXSwath[idx].data_id; fac = 1; } else if (strcmp(fieldtype, "Geolocation Fields") == 0) { gid = HE5_SWXSwath[idx].geo_id; fac = 2; } else { sprintf(errbuf,"Invalid (unsupported) field group. \n"); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (FAIL); } /* Create dataspace then create dataset */ /*------------------------------------ */ if( HE5_SWXSwath[idx].plist == FAIL ) { HE5_SWXSwath[idx].plist = H5Pcreate(H5P_DATASET_CREATE); } /* Get dataset layout */ /* ------------------ */ layout = H5Pget_layout(HE5_SWXSwath[idx].plist); if( layout == H5D_LAYOUT_ERROR) { H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot get dataset layout.\n"); HE5_EHprint("Error: Cannot get dataset layout, occured", __FILE__, __LINE__); return(FAIL); } if(append == FALSE) data_space = H5Screate_simple(rank, dims, NULL); else { if( layout == H5D_CHUNKED) data_space = H5Screate_simple(rank, dims, maxdims); else { status = FAIL; H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, "Appendable dataset MUST BE CHUNKED first.\n"); HE5_EHprint("Error: Appendable dataset MUST BE CHUNKED first, occured", __FILE__, __LINE__); return(status); } } /* Get current compression code */ /* ---------------------------- */ compcode = HE5_SWXSwath[idx].compcode; /* Note: in inquiry routines HE5T_CHARSTRING is distinguished from HE5T_NATIVE_CHAR for the field data (not attributes) based on whether string has variable or fixed length as set below. The field data of type HE5T_NATIVE_CHAR has fixed length of 1, and the field is array of characters, not strings. However, HE5T_CHARSTRING sets array of vaiable length strings for the field data. Currently HE5_EHattr treats HE5T_NATIVE_CHAR, HE5T_CHARSTRING, and H5T_C_S1 as fixed (any size) for attributes. */ ntype = numbertype; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_C_S1)) { ntype = H5Tcopy(H5T_C_S1); status = H5Tset_size(ntype, H5T_VARIABLE); if( status == FAIL) { sprintf(errbuf, "Cannot set HDF5 datatype size for \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create dataset */ /* -------------- */ dataset = H5Dcreate(gid, fieldname, ntype, data_space, HE5_SWXSwath[idx].plist); if (dataset == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create dataset for \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else if (numbertype == H5T_NATIVE_CHAR) { ntype = H5Tcopy(H5T_C_S1); status = H5Tset_size(ntype, 1); if( status == FAIL) { sprintf(errbuf, "Cannot set HDF5 datatype size for \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create dataset */ /* -------------- */ dataset = H5Dcreate(gid, fieldname, ntype, data_space, HE5_SWXSwath[idx].plist); if (dataset == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create dataset for \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Create dataset */ /* -------------- */ dataset = H5Dcreate(gid, fieldname, numbertype, data_space, HE5_SWXSwath[idx].plist); if (dataset == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create dataset for \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Extend the dataset. assure that dataset is at least dims */ /* -------------------------------------------------------- */ if( append == TRUE) { status = H5Dextend(dataset,dims); if (status == FAIL) { sprintf(errbuf, "Cannot extend the dataset for \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* load external array */ /* ------------------- */ if ( fac == 2 ) /*"Geo fields"*/ { /* Store dataset IDs and dataset name */ /* ---------------------------------- */ if (HE5_SWXSwath[idx].nGFLD > 0) { /* allocate memory to gdataset struct */ /* ---------------------------------- */ HE5_SWXSwath[idx].gdataset = (HE5_DTSinfo *)realloc((void *)HE5_SWXSwath[idx].gdataset, (HE5_SWXSwath[idx].nGFLD + 1) * sizeof(HE5_DTSinfo)); } else { HE5_SWXSwath[idx].gdataset = (HE5_DTSinfo *)calloc(1, sizeof(HE5_DTSinfo)); if (HE5_SWXSwath[idx].gdataset == NULL ) { status = FAIL; H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(status); } } /* Allocate memory to name */ /* ----------------------- */ HE5_SWXSwath[idx].gdataset[HE5_SWXSwath[idx].nGFLD].name = (char *)calloc( (strlen(fieldname)+1), sizeof(char) ); if (HE5_SWXSwath[idx].gdataset[HE5_SWXSwath[idx].nGFLD].name == NULL) { status = FAIL; H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory.\n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(status); } /* Load table */ /* ---------- */ HE5_SWXSwath[idx].gdataset[HE5_SWXSwath[idx].nGFLD].ID = dataset; strcpy(HE5_SWXSwath[idx].gdataset[HE5_SWXSwath[idx].nGFLD].name, fieldname); HE5_SWXSwath[idx].nGFLD++; } else /* "Data Fields" */ { /* store dataset IDs and dataset name */ /* ---------------------------------- */ if (HE5_SWXSwath[idx].nDFLD > 0) { /* Allocate memory to ddataset struct */ /* ---------------------------------- */ HE5_SWXSwath[idx].ddataset = (HE5_DTSinfo *)realloc((void *)HE5_SWXSwath[idx].ddataset,(HE5_SWXSwath[idx].nDFLD + 1) * sizeof(HE5_DTSinfo)); } else { HE5_SWXSwath[idx].ddataset = (HE5_DTSinfo *)calloc(1, sizeof(HE5_DTSinfo)); if (HE5_SWXSwath[idx].ddataset == NULL ) { status = FAIL; H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(status); } } /* Allocate memory to name */ /* ----------------------- */ HE5_SWXSwath[idx].ddataset[HE5_SWXSwath[idx].nDFLD].name = (char *)calloc( (strlen(fieldname)+1), sizeof(char) ); if (HE5_SWXSwath[idx].ddataset[HE5_SWXSwath[idx].nDFLD].name == NULL) { status = FAIL; H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory.\n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(status); } /* load table */ /* ---------- */ HE5_SWXSwath[idx].ddataset[HE5_SWXSwath[idx].nDFLD].ID = dataset; strcpy(HE5_SWXSwath[idx].ddataset[HE5_SWXSwath[idx].nDFLD].name, fieldname); HE5_SWXSwath[idx].nDFLD++; } if ((numbertype != HE5T_CHARSTRING) && (numbertype != H5T_NATIVE_CHAR) && (numbertype != H5T_C_S1)) { /* Get the size of a datatype in bytes */ /* ----------------------------------- */ tsize = H5Tget_size( numbertype); if( tsize == 0) { sprintf(errbuf, "Cannot get the size of a datatype. \n"); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (FAIL); } /* allocate memory for "fill" value */ /* -------------------------------- */ value = (void *)calloc(1, tsize); if( value == (void *)NULL) { sprintf(errbuf, "Cannot allocate memory for fill value.\n"); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (FAIL); } /* Try to retrieve the fill value (in case it's already defined) */ /* ------------------------------------------------------------- */ H5E_BEGIN_TRY { status = H5Pfill_value_defined(HE5_SWXSwath[idx].plist, &fill_status ); } H5E_END_TRY; if (fill_status == H5D_FILL_VALUE_USER_DEFINED) { H5E_BEGIN_TRY { status = H5Pget_fill_value(HE5_SWXSwath[idx].plist, numbertype, value); } H5E_END_TRY; /* Store fill value in the dataset attribute "_FillValue" */ /* ----------------------------------------------------- */ if( status != FAIL) { status = HE5_EHattr( dataset, "_FillValue", numbertype, count, "w", value); if( status == FAIL ) { sprintf(errbuf, "Cannot store fill value in the attribute \"_FillValue\"."); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(value); return (status); } } } free( value); } /* ****************************************************************** * SET UP METADATA STRINGS * ****************************************************************** */ /* set up "DimList" string content */ /* ------------------------------- */ strcpy(utlbuf,""); sprintf(utlbuf, "%s%s%s", fieldname,":",dimlist); /* set up "MaxdimList" string content */ /* ----------------------------------- */ if ( maxdimlist != NULL) { status = HE5_EHmetalist(maxdimlist,maxdimlstbuf); if (status == FAIL) { sprintf(errbuf, "Cannot convert the input \"%s\" list to the metadata list. \n", maxdimlist); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } sprintf(utlbuf2,"%s%s",":\n\t\t\t\tMaxdimList=", maxdimlstbuf); strcat(utlbuf,utlbuf2); } if (maxdimlist == NULL) { status = HE5_EHmetalist(dimlist,dimlstbuf); if (status == FAIL) { sprintf(errbuf, "Cannot convert the input \"%s\" list to the metadata list.\n", dimlist); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } sprintf(utlbuf2,"%s%s",":\n\t\t\t\tMaxdimList=", dimlstbuf); strcat(utlbuf,utlbuf2); } /* setup "CompressionType" & "CompressionParams" strings content */ /* ------------------------------------------------------------- */ if (compcode != HE5_HDFE_COMP_NONE) { sprintf(utlbuf2,"%s%s","\n\t\t\t\tCompressionType=", HDFcomp[compcode]); switch (compcode) { case HE5_HDFE_COMP_NBIT: sprintf(compparmbuf, "%s%d,%d,%d,%d%s", "\n\t\t\t\tCompressionParams=(", HE5_SWXSwath[idx].compparm[0], HE5_SWXSwath[idx].compparm[1], HE5_SWXSwath[idx].compparm[2], HE5_SWXSwath[idx].compparm[3], ")"); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_DEFLATE: sprintf(compparmbuf,"%s%d","\n\t\t\t\tDeflateLevel=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_CHIP: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_K13: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_EC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_NN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_K13orEC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_K13orNN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_DEFLATE: sprintf(compparmbuf,"%s%d","\n\t\t\t\tDeflateLevel=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_CHIP: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_K13: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_EC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_NN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_K13orEC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_K13orNN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; default: { sprintf(errbuf,"Compression code \"%d\" is not supported. \n", compcode); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } /* Concatanate compression parameters with compression code */ /* -------------------------------------------------------- */ strcat(utlbuf, utlbuf2); } /* ****************************************************************** * Insert metadata information to Structural Metadata section * ****************************************************************** */ numtype = HE5_EHdtype2numtype(numbertype); if (numtype == FAIL) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (numtype == 0) { metavalue = 0; } else { metavalue = HE5_EHhid2hsize(numtype); if (metavalue == 0) { sprintf(errbuf, "Cannot convert \"hid_t\" to \"hsize_t\" data type. \n"); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } if (strcmp(fieldtype, "Geolocation Fields") == 0) status = HE5_EHinsertmeta(fid, HE5_SWXSwath[idx].swname, "s", 3L, utlbuf, &metavalue); else status = HE5_EHinsertmeta(fid, HE5_SWXSwath[idx].swname, "s", 4L, utlbuf, &metavalue); if (status == FAIL) { sprintf(errbuf, "Cannot insert metadata for \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(data_space); if (status == FAIL) { H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, "Cannot release the data space ID.\n"); HE5_EHprint("Error: Cannot release the data space ID, occured", __FILE__, __LINE__); return(status); } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(HE5_SWXSwath[idx].plist); if (status == FAIL) { H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_PLIST, H5E_CLOSEERROR, "Cannot release the property list ID.\n"); HE5_EHprint("Error: Cannot release the property list ID, occured", __FILE__, __LINE__); return(status); } /* Reset external array entry for next dataset creation */ /* ==================================================== */ HE5_SWXSwath[idx].plist = FAIL; HE5_SWXSwath[idx].compcode = HE5_HDFE_COMP_NONE; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_C_S1)) { attr = HE5T_CHARSTRING; status = HE5_SWwritelocattr(swathID, fieldname, "ARRAYOFSTRINGS", H5T_NATIVE_INT, count, &attr); if (status == FAIL) { sprintf(errbuf, "Cannot write attribute to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_SWdefinefield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefgeofield | | | | DESCRIPTION: Defines geolocation field within swath structure (wrapper) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdefgeofield(hid_t swathID, const char *fieldname, char *dimlist, char *maxdimlist, hid_t numbertype_in , int merge) { herr_t status = FAIL; /* Return status variable */ hid_t numbertype; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKNAME(fieldname); CHECKPOINTER(dimlist); /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { numbertype = numbertype_in; } else { numbertype = HE5_EHconvdatatype((int) numbertype_in); } if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for Geolocation Field.\n"); H5Epush(__FILE__, "HE5_SWdefdatafield", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_SWdefinefield routine */ /* ============================== */ status = HE5_SWdefinefield(swathID, "Geolocation Fields", fieldname, dimlist, maxdimlist, numbertype, merge); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefdatafield | | | | DESCRIPTION: Defines data field within swath structure (wrapper) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdefdatafield(hid_t swathID, const char *fieldname, char *dimlist, char *maxdimlist, hid_t numbertype_in, int merge) { herr_t status = FAIL; /* routine return status variable */ hid_t numbertype; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKNAME(fieldname); CHECKPOINTER(dimlist); /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { numbertype = numbertype_in; } else { numbertype = HE5_EHconvdatatype((int) numbertype_in); } if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for Data Field.\n"); H5Epush(__FILE__, "HE5_SWdefdatafield", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_SWdefinefield routine */ /* ============================== */ status = HE5_SWdefinefield(swathID, "Data Fields", fieldname, dimlist,maxdimlist,numbertype, merge); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwritedatameta | | | | DESCRIPTION: Defines structural metadata for pre-existing data | | field within swath structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath object ID | | fieldname char fieldname | | dimlist char Dimension list (comma-separated list) | | mvalue hid_t metavalue to insert | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | May 05 S.Zhao Added HE5_EHdtype2numtype() function call. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWwritedatameta(hid_t swathID, const char *fieldname, char *dimlist, hid_t mvalue) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hsize_t metavalue = 0; /* Metavalue to insert */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ char utlbuf[HE5_HDFE_DIMBUFSIZE];/* Utility buffer */ hid_t numtype = FAIL; /* Number type ID */ HE5_LOCK; CHECKNAME(fieldname); CHECKPOINTER(dimlist); numtype = HE5_EHdtype2numtype(mvalue); if (numtype == FAIL) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_SWwritedatameta", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (numtype == 0) { metavalue = 0; } else { /* Convert 'numtype' to 'metavalue' */ /* -------------------------------- */ metavalue = HE5_EHhid2hsize(numtype); if ( metavalue == 0 ) { sprintf(errbuf, "Cannot convert metadata value. \n"); H5Epush(__FILE__, "HE5_SWwritedatameta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWwritedatameta", &fid, &gid, &idx); if (status == SUCCEED) { /* Setup and write field metadata */ /* ------------------------------ */ sprintf(utlbuf, "%s%s%s", fieldname, ":", dimlist); status = HE5_EHinsertmeta(gid, HE5_SWXSwath[idx].swname, "s", 4L, utlbuf, &metavalue); if ( status == FAIL ) { sprintf(errbuf, "Cannot insert metadata value. \n"); H5Epush(__FILE__, "HE5_SWwritedatameta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwritegeometa | | | | DESCRIPTION: Defines structural metadata for pre-existing data | | field within swath structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath object ID | | fieldname char fieldname | | dimlist char Dimension list (comma-separated list) | | mvalue hid_t metadata value to write | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | May 05 S.Zhao Added HE5_EHdtype2numtype() function call. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWwritegeometa(hid_t swathID, const char *fieldname, char *dimlist, hid_t mvalue) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hsize_t metavalue = 0; /* Metavalue to insert */ long idx = FAIL;/* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ char utlbuf[HE5_HDFE_DIMBUFSIZE];/* Utility buffer */ hid_t numtype = FAIL; /* Number type ID */ HE5_LOCK; CHECKNAME(fieldname); CHECKPOINTER(dimlist); numtype = HE5_EHdtype2numtype(mvalue); if (numtype == FAIL) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_SWwritegeometa", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (numtype == 0) { metavalue = 0; } else { /* Convert 'numtype' to 'metavalue' */ /* -------------------------------- */ metavalue = HE5_EHhid2hsize(numtype); if ( metavalue == 0 ) { sprintf(errbuf, "Cannot convert metadata value. \n"); H5Epush(__FILE__, "HE5_SWwritegeometa", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWwritegeometa", &fid, &gid, &idx); if (status == SUCCEED) { /* Setup and write field metadata */ /* ------------------------------ */ sprintf(utlbuf, "%s%s%s", fieldname, ":", dimlist); status = HE5_EHinsertmeta(gid, HE5_SWXSwath[idx].swname, "s", 3L, utlbuf, &metavalue); if ( status == FAIL ) { sprintf(errbuf, "Cannot insert metadata value. \n"); H5Epush(__FILE__, "HE5_SWwritegeometa", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwriteattr | | | | DESCRIPTION: Writes/updates attribute in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | attrname char attribute name | | numtype hid_t attribute dataset datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWwriteattr(hid_t swathID, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { numbertype = numtype; } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWwriteattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Call HE5_EHattr to perform I/O */ /* ------------------------------ */ status = HE5_EHattr(HE5_SWXSwath[idx].sw_id, attrname, numbertype, count,"w", datbuf); if ( status == FAIL ) { sprintf(errbuf, "Cannot write the attribute value. \n"); H5Epush(__FILE__, "HE5_SWwriteattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWrdadattr | | | | DESCRIPTION: Reads attribute from a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWreadattr(hid_t swathID, const char *attrname, void *datbuf) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ntype = FAIL; /* Data type ID */ long idx = FAIL; /* Swath index */ hsize_t count[] ={0}; /* Number of elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWreadattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Call HE5_EHattr to perform I/O */ /* ------------------------------ */ status = HE5_EHattr(HE5_SWXSwath[idx].sw_id, attrname, ntype, count,"r", datbuf); if ( status == FAIL ) { sprintf(errbuf, "Cannot read the attribute value. \n"); H5Epush(__FILE__, "HE5_SWreadattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWattrinfo | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | attrname const char* attribute name | | | | OUTPUTS: | | ntype hid_t Data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | 05/10/00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t | | to an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWattrinfo(hid_t swathID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get attribute group ID and call HE5_EHattrinfo */ /* ---------------------------------------------- */ status = HE5_EHattrinfo(HE5_SWXSwath[idx].sw_id, attrname, ntype, count); if ( status == FAIL ) { sprintf(errbuf, "Cannot retrieve information about attribute. \n"); H5Epush(__FILE__, "HE5_SWattrinfo", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqattrs | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in swath struct | | | | INPUTS: | | swath ID hid_t Swath structure ID | | | | OUTPUTS: | | attrnames char Attribute names in swath struct | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqattrs(hid_t swathID, char *attrnames, long *strbufsize) { long nattr = FAIL;/* Number of attributes (return) */ long idx = FAIL;/* Swath index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* swath group ID */ char *grpname = (char *)NULL;/* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqattrs", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc( HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_SWinqattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/SWATHS/"); strcat(grpname, HE5_SWXSwath[idx].swname); nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); if ( nattr == FAIL ) { sprintf(errbuf, "Cannot find the attributes. \n"); H5Epush(__FILE__, "HE5_SWinqattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } return (nattr); } #define REMQUOTE \ \ memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); \ utlstr[strlen(utlstr) - 2] = 0; /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqdims | | | | DESCRIPTION: Returns dimension names and values defined in swath structure | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nDim long Number of defined dimensions | | | | INPUTS: | | swathID hid_t Swath structure ID | | | | OUTPUTS: | | dimnames char Dimension names (comma-separated) | | dims hsize_t Dimension values | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 3/22/99 | | 7/29/99 A.Muslimov In the call to EHmetagroup() replace gid by fid. | | July 00 A.Muslimov Unmasked hdf5 data types. | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqdims(hid_t swathID, char *dimnames, hsize_t dims[]) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Swath index */ long nDim = 0; /* Number of dimensions */ hsize_t size = 0; /* Dimension size */ char *metabuf = (char *)NULL; /* Pointer to SM */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE]; /* Utility string */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqdims", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWinqdims", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* If dimension names or sizes are desired ... */ /* ------------------------------------------- */ if (dimnames != NULL || dims != NULL) { /* Get pointers to "Dimension" section within SM */ /* --------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "Dimension", metaptrs); /* If dimension names are desired then "clear" name buffer */ /* ------------------------------------------------------- */ if (dimnames != NULL) dimnames[0] = 0; /* Begin loop through dimension entries in metadata */ /* ------------------------------------------------ */ while (1) { /* Search for OBJECT string */ /* ------------------------ */ metaptrs[0] = strstr(metaptrs[0], "\t\tOBJECT="); /* If found within "Dimension" metadata section ... */ /* ------------------------------------------------ */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get Dimension Name (if desired) */ /* ------------------------------- */ if (dimnames != NULL) { /* Check 1st for old meta data then new */ /* ------------------------------------ */ HE5_EHgetmetavalue(metaptrs, "OBJECT", utlstr); /* * If OBJECT value begins with double quote then old * metadata, dimension name is OBJECT value. * Otherwise search for "DimensionName" string */ if (utlstr[0] != '"') { metaptrs[0] = strstr(metaptrs[0], "\t\t\t\tDimensionName="); HE5_EHgetmetavalue(metaptrs, "DimensionName", utlstr); } /* Strip off double quotes */ /* ----------------------- */ REMQUOTE /* If not first name then add comma delimitor */ /* ------------------------------------------ */ if (nDim > 0) { strcat(dimnames, ","); } /* Add dimension name to dimension list */ /* ------------------------------------ */ strcat(dimnames, utlstr); } /* Get Dimension Size (if desired) */ /* ------------------------------- */ if (dims != NULL) { HE5_EHgetmetavalue(metaptrs, "Size", utlstr); size = (hsize_t)atol(utlstr); dims[ nDim ] = size; } /* Increment dimension counter */ /* --------------------------- */ nDim++; } else /* No more dimensions found */ /* ------------------------ */ break; } free(metabuf); } return(nDim); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqmaps | | | | DESCRIPTION: Returns dimension mappings and offsets and increments | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nMap long Number of dimension mappings | | | | INPUTS: | | swathID hid_t swath structure ID | | | | OUTPUTS: | | dimmaps char dimension mappings (comma-separated) | | offset long array of offsets | | increment long array of increments | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | 7/29/99 A.Muslimov In the call to EHmetagroup() replace gid by fid. | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqmaps(hid_t swathID, char *dimmaps, long offset[], long increment[]) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Swath index */ long off = 0; /* Mapping Offset */ long incr = 0; /* Mapping Increment */ long nMap = 0; /* Number of mappings */ char *metabuf = (char *)NULL; /* Pntr to SM */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE];/* Utility string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqmaps", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWinqmaps", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* If mapping names or offsets or increments desired ... */ /* ----------------------------------------------------- */ if (dimmaps != NULL || offset != NULL || increment != NULL) { /* Get pointers to "DimensionMap" section within SM */ /* ------------------------------------------------ */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "DimensionMap", metaptrs); /* If mapping names are desired then "clear" name buffer */ /* ----------------------------------------------------- */ if (dimmaps != NULL) dimmaps[0] = 0; /* Begin loop through mapping entries in metadata */ /* ---------------------------------------------- */ while (1) { /* Search for OBJECT string */ /* ------------------------ */ metaptrs[0] = strstr(metaptrs[0], "\t\tOBJECT="); /* If found within "DimensionMap" metadata section ... */ /* --------------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get Geo & Data Dimensions (if desired) */ /* -------------------------------------- */ if (dimmaps != NULL) { /* Get Geo Dim, remove quotes, add "/" */ /* ----------------------------------- */ HE5_EHgetmetavalue(metaptrs, "GeoDimension", utlstr); REMQUOTE strcat(utlstr, "/"); /* if not first map then add comma delimitor */ /* ----------------------------------------- */ if (nMap > 0) { strcat(dimmaps, ","); } /* Add to map list */ /* --------------- */ strcat(dimmaps, utlstr); /* Get Data Dim, remove quotes */ /* --------------------------- */ HE5_EHgetmetavalue(metaptrs, "DataDimension", utlstr); REMQUOTE /* Add to map list */ /* --------------- */ strcat(dimmaps, utlstr); } /* Get Offset (if desired) */ /* ----------------------- */ if (offset != NULL) { HE5_EHgetmetavalue(metaptrs, "Offset", utlstr); off = atol(utlstr); offset[nMap] = off; } /* Get Increment (if desired) */ /* -------------------------- */ if (increment != NULL) { HE5_EHgetmetavalue(metaptrs, "Increment", utlstr); incr = atol(utlstr); increment[nMap] = incr; } /* Increment map counter */ /* --------------------- */ nMap++; } else /* No more mappings found */ /* ---------------------- */ break; } free(metabuf); } return (nMap); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqidxmaps | | | | DESCRIPTION: Returns indexed mappings and index sizes | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nMap long Number of indexed dimension mappings | | | | INPUTS: | | swathID hid_t swath structure ID | | | | OUTPUTS: | | idxmaps char indexed dimension mappings | | (comma-separated) | | idxsizes hsize_t Number of elements in each mapping | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | 7/29/99 A.Muslimov In the call to EHmetagroup() replace gid by fid. | | 8/20/99 A.Muslimov Checked for the statuses returned by EHgetmetavalue.| | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqidxmaps(hid_t swathID, char *idxmaps, hsize_t idxsizes[]) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Swath index */ long nMap = 0; /* Number of mappings */ char *metabuf = (char *)NULL; /* Pntr to SM */ char *metaptrs[2]={NULL,NULL}; /* Pntrs to start/end of SM */ char *utlstr = (char *)NULL; /* Utility string */ char *slash = (char *)NULL; /* Pointer to slash */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqidxmaps", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWinqidxmaps", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate space for utility string */ /* --------------------------------- */ utlstr = (char *) calloc(HE5_HDFE_DIMBUFSIZE, sizeof(char)); if ( utlstr == NULL ) { sprintf( errbuf,"Cannot allocate memory for utility string.\n"); H5Epush(__FILE__, "HE5_SWinqidxmaps", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* If mapping names or index sizes desired ... */ /* ------------------------------------------- */ if (idxmaps != NULL || idxsizes != NULL) { /* Get pointers to "IndexDimensionMap" section within SM */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "IndexDimensionMap", metaptrs); /* If mapping names are desired then "clear" name buffer */ /* ----------------------------------------------------- */ if (idxmaps != NULL) idxmaps[ 0 ] = 0; /* Begin loop through mapping entries in metadata */ /* ---------------------------------------------- */ while (1) { /* Search for OBJECT string */ /* ------------------------ */ metaptrs[0] = strstr(metaptrs[0], "\t\tOBJECT="); /* If found within "IndexDimensionMap" metadata section ... */ /* -------------------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get Geo & Data Dimensions and # of indices */ /* ------------------------------------------ */ if (idxmaps != NULL) { /* Get Geo Dim, remove quotes, add "/" */ /* ----------------------------------- */ status = HE5_EHgetmetavalue(metaptrs, "GeoDimension", utlstr); REMQUOTE strcat(utlstr, "/"); /* if not first map then add comma delimitor */ /* ----------------------------------------- */ if(nMap > 0) strcat(idxmaps, ","); /* Add to map list */ /* --------------- */ strcat(idxmaps, utlstr); /* Get Index size (if desired) */ /* --------------------------- */ if (idxsizes != NULL) { /* Parse off geo dimension and find its size */ /* ----------------------------------------- */ slash = strchr(utlstr, '/'); *slash = 0; idxsizes[ nMap ] = HE5_SWdiminfo(swathID, utlstr); } /* Get Data Dim, remove quotes */ /* --------------------------- */ status = HE5_EHgetmetavalue(metaptrs, "DataDimension", utlstr); REMQUOTE /* Add to map list */ /* --------------- */ strcat(idxmaps, utlstr); } /* Increment map counter */ /* --------------------- */ nMap++; } else /* No more mappings found */ /* ---------------------- */ break; } if (metabuf != NULL) free(metabuf); } if(utlstr != NULL) free(utlstr); return (nMap); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqfields | | | | DESCRIPTION: Returns fieldnames, ranks and numbertypes defined in swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nFld long Number of (geo/data) fields in swath | | | | INPUTS: | | swathID hid_t Swath structure ID | | fieldtype char field type (geo or data) | | | | OUTPUTS: | | fieldlist char Field names (comma-separated) | | rank int Array of ranks | | numbertype hid_t Array of HDF number types | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7/29/99 A.Muslimov In the call to EHmetagroup() replace gid by fid. | | 4/19/00 A.Muslimov Changed type of 'slen' and 'fldnmlen' from long to | | size_t. | | July 00 A.Muslimov Unmasked hdf5 data types. | | June 02 S.Zhao Changed the type of 'numbertype' from an H5T_class_t| | to an hid_t. | | Oct. 03 S.Zhao Added the H5Tclose(datatype) call. | | Oct. 03 S.Zhao Modified to enable a character string dataset. | | Mar 04 S.Zhao Modified for a character string dataset. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static long HE5_SWinqfields(hid_t swathID, char *fieldtype, char *fieldlist, int rank[], hid_t numbertype[]) { long nFld = 0; /* Return number of mappings */ long i = 0; /* Loop index */ long idx = FAIL; /* Swath index */ long ntflds = 0; /* field counter */ herr_t status = FAIL;/* routine return status variable */ herr_t Dstatus = FAIL;/* Status for H5Dclose */ int groupflag = FAIL;/* "0" - geolocation, "1" - data */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t datasetid = FAIL;/* Dataset ID */ hid_t datatype = FAIL;/* Data type ID */ hid_t groupid = FAIL;/* Group ID */ H5T_class_t classid = H5T_NO_CLASS; /* Data type class ID */ size_t slen[HE5_DTSETRANKMAX]; /* String length array */ size_t fldnmlen[HE5_FLDNUMBERMAX]; /* Array of namelengths */ char *fldnm[HE5_FLDNUMBERMAX]; /* Array of names */ char *metabuf = (char *)NULL; /* Pntr to SM */ char *metaptrs[2]={NULL,NULL}; /* Start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE]; /* Utility string */ char utlstr2[HE5_HDFE_UTLBUFSIZE];/* Utility string 2 */ char *ptr[HE5_DTSETRANKMAX]; /* String pointer array */ char *tempfield = (char *)NULL; char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ htri_t str_is_variable; /* boolean: TRUE if string is variable lengeth FALSE if string is fixed length -1 if error in H5Tis_variavle_str() */ CHECKPOINTER(fieldtype); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqfields", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for Swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWinqfields", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Initialize slen[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) slen[i] = 0; /* Initialize fldnmlen[] array */ /* --------------------------- */ for (i = 0; i < HE5_FLDNUMBERMAX; i++) fldnmlen[i] = 0; /* If field names, ranks, or number types desired ... */ /* --------------------------------------------------- */ if (fieldlist != NULL || rank != NULL || numbertype != NULL) { /* Get pointers to "GeoField" or "DataField" section within SM */ /* ----------------------------------------------------------- */ if (strcmp(fieldtype, "Geolocation Fields") == 0) { metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "GeoField", metaptrs); strcpy(utlstr2, "GeoFieldName"); groupflag = 0; } else { metabuf = (char *)HE5_EHmetagroup( fid, HE5_SWXSwath[idx].swname, "s", "DataField", metaptrs); strcpy(utlstr2, "DataFieldName"); groupflag = 1; } /* If field names are desired then "clear" name buffer */ /* --------------------------------------------------- */ if (fieldlist != NULL) fieldlist[0] = 0; /* Begin loop through mapping entries in metadata */ /* ---------------------------------------------- */ while (1) { /* Search for OBJECT string */ /* ------------------------ */ metaptrs[0] = strstr(metaptrs[0], "\t\tOBJECT="); /* If found within "Geo" or "Data" Field metadata section ... */ /* ---------------------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get field names (if desired) */ /* ---------------------------- */ if (fieldlist != NULL) { /* Check 1st for old meta data then new */ /* ------------------------------------ */ HE5_EHgetmetavalue(metaptrs, "OBJECT", utlstr); /* * If OBJECT value begins with double quote then old * metadata, field name is OBJECT value. Otherwise * search for "GeoFieldName" or "DataFieldName" * string */ if (utlstr[0] != '"') { strcpy(utlstr, "\t\t\t\t"); strcat(utlstr, utlstr2); strcat(utlstr, "="); metaptrs[0] = strstr(metaptrs[0], utlstr); HE5_EHgetmetavalue(metaptrs, utlstr2, utlstr); } /* Strip off double quotes */ /* ----------------------- */ REMQUOTE /* Add to fieldlist */ /* ---------------- */ if (nFld > 0) strcat(fieldlist, ","); strcat(fieldlist, utlstr); } /* If numbertype are desired then "clear" name buffer */ /* --------------------------------------------------- */ if (numbertype != NULL) { ntflds = HE5_EHparsestr(fieldlist, ',', fldnm,fldnmlen); if(ntflds != FAIL) { if(groupflag == 0) groupid = HE5_SWXSwath[idx].geo_id; else groupid = HE5_SWXSwath[idx].data_id; for(i = 0; i < ntflds; i++) { tempfield = (char *)calloc(fldnmlen[i] + 1, sizeof(char)); memmove(tempfield,fldnm[i],fldnmlen[i]); /* Open the dataset */ /* ---------------- */ datasetid = H5Dopen(groupid, tempfield); if ( datasetid == FAIL ) { sprintf(errbuf, "Cannot open the dataset \"%s\". \n", tempfield); H5Epush(__FILE__, "HE5_SWinqfields", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } /* Get the data type */ /* ----------------- */ datatype = H5Dget_type(datasetid); if ( datatype == FAIL ) { sprintf(errbuf, "Cannot get the data type ID. \n"); H5Epush(__FILE__, "HE5_SWinqfields", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } /* Get the data type class ID */ /* -------------------------- */ classid = H5Tget_class(datatype); if ( classid == H5T_NO_CLASS ) { sprintf(errbuf, "Cannot get the data type class ID. \n"); H5Epush(__FILE__, "HE5_SWinqfields", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } if (classid == H5T_STRING) { /* HE5T_CHARSTRING has variable length for data fields */ str_is_variable = H5Tis_variable_str(datatype); if(str_is_variable == TRUE) { numbertype[i] = HE5T_CHARSTRING; } else if(str_is_variable == FALSE) { numbertype[i] = HE5T_NATIVE_CHAR; } else { status = FAIL; sprintf(errbuf, "Failed to see if string field is varaible or fixed length.\n"); H5Epush(__FILE__, "HE5_SWinqfields", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /*HE5_SWgetstringtype(swathID, fieldname,classid);*/ /*numbertype[i] = HE5T_CHARSTRING;*/ } else { /*numbertype[i] = classid;*/ numbertype[i] = HE5_EHdtype2numtype(datatype); if ( numbertype[i] == FAIL ) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_SWinqfields", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(datatype); if ( status == FAIL ) { sprintf(errbuf, "Cannot close the datatype \"%s\". \n", tempfield); H5Epush(__FILE__, "HE5_SWinqfields", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } /* Release the dataset ID */ /* ---------------------- */ Dstatus = H5Dclose(datasetid); if ( Dstatus == FAIL ) { sprintf(errbuf, "Cannot close the dataset \"%s\". \n", tempfield); H5Epush(__FILE__, "HE5_SWinqfields", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (metabuf != NULL) free(metabuf); free(tempfield); return(FAIL); } free(tempfield); } } } /* * Get Rank (if desired) by counting # of dimensions in * "DimList" string */ if (rank != NULL) { HE5_EHgetmetavalue(metaptrs, "DimList", utlstr); rank[nFld] = HE5_EHlong2int(HE5_EHparsestr(utlstr, ',', ptr, slen) ); if (rank[nFld] == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWinqfields", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(metabuf != NULL) free(metabuf); return(FAIL); } } /* Increment field counter */ /* ----------------------- */ nFld++; } else /* No more fields found */ /* -------------------- */ break; } if (metabuf != NULL) free(metabuf); } COMPLETION: return(nFld); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqdatafields | | | | DESCRIPTION: Inquires about data fields in swath | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nflds long Number of data fields in swath | | | | INPUTS: | | swathID hid_t Swath structure ID | | | | OUTPUTS: | | fieldlist char Field names (comma-separated) | | rank int Array of ranks | | ntype hid_t number types | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A.Muslimov Changed datatype of nflds from int to int32_t. | | 05/10/00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Jan 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqdatafields(hid_t swathID, char *fieldlist, int rank[], hid_t ntype[]) { long nflds = FAIL; /* Number of Data fields */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Call "HE5_SWinqfields" routine to get number of fields */ /* ------------------------------------------------------ */ nflds = HE5_SWinqfields(swathID, "Data Fields", fieldlist, NULL, NULL); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWinqdatafields", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call "HE5_SWinqfields" routine to get other parameters */ /* ------------------------------------------------------ */ nflds = HE5_SWinqfields(swathID, "Data Fields", fieldlist, rank, ntype); if (nflds == FAIL) { sprintf(errbuf, "Inquiry about fields in \"Data Fields\" group fails. \n"); H5Epush(__FILE__, "HE5_SWinqdatafields", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return(nflds); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqgeofields | | | | DESCRIPTION: Inquires about geo fields in swath | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nflds long Number of geo fields in swath | | | | INPUTS: | | swathID hid_t Swath structure ID | | | | OUTPUTS: | | fieldlist char Field names (comma-separated) | | rank int Array of ranks | | ntype hid_t number types | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 05/10/00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Jan 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqgeofields(hid_t swathID, char *fieldlist, int rank[], hid_t ntype[]) { long nflds = FAIL; /* Number of Geo fields */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Call "HE5_SWinqfields" routine to get number of fields */ /* ------------------------------------------------------ */ nflds = HE5_SWinqfields(swathID, "Geolocation Fields", fieldlist, NULL, NULL); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Geolocation Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWinqgeofields", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call "HE5_SWinqfields" routine to get other parameters */ /* ------------------------------------------------------ */ nflds = HE5_SWinqfields(swathID, "Geolocation Fields", fieldlist, rank, ntype); if (nflds == FAIL) { sprintf(errbuf, "Inquiry about fields in \"Geolocation Fields\" group fails. \n"); H5Epush(__FILE__, "HE5_SWinqgeofields", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return (nflds); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqdatatype | | | | DESCRIPTION: Inquires about geo/data/prof fields in swath | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t | | fieldname char * | | attrname char * | | group int Group flag: | | ...GEOGROUP, ...DATAGROUP, | | ...PROFGROUP - for the field | | ...ATTRGROUP, ...GRPATTRGROUP, | | ...PROFGRPATTRGROUP, | | ...GEOGRPATTRGROUP, | | ...LOCATTRGROUP - for the attribute | | | | OUTPUTS: | | datatype hid_t | | classid H5T_class_t | | order H5T_order_t | | size size_t | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 99 D.Wynne Original Programmer | | Dec 99 A.Muslimov Changed the status data type from hid_t to int . | | Feb 00 A.Muslimov Added error checking after the function calls. | | Mar 00 A.Muslimov Updated to include Group/Local Attributes options. | | May 00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | Jul 00 A.Muslimov Unmasked hdf5 data types. | | Set 00 A.Muslimov Updated to incorporate profile datasets. | | Feb 04 S.Zhao Added a group flag for the "Profile Fields" group | | attribute. | | Feb 04 S.Zhao Added a group flag for the "Geolocation Fields" | | group attribute. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWinqdatatype(hid_t swathID, const char *fieldname, const char *attrname, int group, hid_t *datatype, H5T_class_t *classid, H5T_order_t *order, size_t *size) { herr_t status = FAIL; /* routine return status */ int fldgroup = FAIL; /* Field group flag */ hid_t datasetid = FAIL; /* Dataset ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t attr = FAIL; /* attribute dataset ID */ hid_t fldgroupID = FAIL; /* Field group ID */ hid_t fieldID = FAIL; /* Field dataset ID */ long idx = FAIL; /* swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqdatatype", &fid, &gid, &idx); if(status == SUCCEED) { if(group == HE5_HDFE_GEOGROUP) fldgroupID = HE5_SWXSwath[idx].geo_id; else if(group == HE5_HDFE_DATAGROUP) fldgroupID = HE5_SWXSwath[idx].data_id; else if(group == HE5_HDFE_PROFGROUP) fldgroupID = HE5_SWXSwath[idx].prof_id; else if(group == HE5_HDFE_ATTRGROUP) fldgroupID = HE5_SWXSwath[idx].sw_id; else if(group == HE5_HDFE_GRPATTRGROUP) fldgroupID = HE5_SWXSwath[idx].data_id; else if(group == HE5_HDFE_GEOGRPATTRGROUP) fldgroupID = HE5_SWXSwath[idx].geo_id; else if(group == HE5_HDFE_PROFGRPATTRGROUP) fldgroupID = HE5_SWXSwath[idx].prof_id; else if(group == HE5_HDFE_LOCATTRGROUP) { /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_SWfldsrch(swathID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (fldgroup == HE5_HDFE_DATAGROUP) fldgroupID = HE5_SWXSwath[idx].data_id; if (fldgroup == HE5_HDFE_GEOGROUP) fldgroupID = HE5_SWXSwath[idx].geo_id; if (fldgroup == HE5_HDFE_PROFGROUP) fldgroupID = HE5_SWXSwath[idx].prof_id; } else { sprintf(errbuf, "Invalid group flag (\"%d\"). \n", group); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data type information for the field */ /* --------------------------------------- */ if( group == HE5_HDFE_GEOGROUP || group == HE5_HDFE_DATAGROUP || group == HE5_HDFE_PROFGROUP) { datasetid = H5Dopen(fldgroupID, fieldname); if (datasetid == FAIL) { sprintf(errbuf, "Cannot open the dataset for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_DATASET, H5E_NOTFOUND , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *datatype = H5Dget_type(datasetid); if (*datatype == FAIL) { sprintf(errbuf, "Cannot get the datatype for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classid = H5Tget_class(*datatype); if (*classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *order = H5Tget_order(*datatype); if (*order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classid == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*datatype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Dclose(datasetid); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Get data type information about global/group attribute */ /* ------------------------------------------------------ */ else if(group == HE5_HDFE_ATTRGROUP || group == HE5_HDFE_GRPATTRGROUP || group == HE5_HDFE_PROFGRPATTRGROUP || group == HE5_HDFE_GEOGRPATTRGROUP) { attr = H5Aopen_name(fldgroupID, attrname); if (attr == FAIL) { sprintf(errbuf, "Cannot open the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *datatype = H5Aget_type(attr); if (*datatype == FAIL) { sprintf(errbuf, "Cannot get the data type for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classid = H5Tget_class(*datatype); if (*classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *order = H5Tget_order(*datatype); if (*order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classid == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*datatype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Aclose(attr); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Get data type information for local attribute */ /* --------------------------------------------- */ else if(group == HE5_HDFE_LOCATTRGROUP) { fieldID = H5Dopen(fldgroupID, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset.\n", fieldname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } attr = H5Aopen_name(fieldID, attrname); if (attr == FAIL) { sprintf(errbuf, "Cannot open the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *datatype = H5Aget_type(attr); if (*datatype == FAIL) { sprintf(errbuf, "Cannot get the data type for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classid = H5Tget_class(*datatype); if (*classid == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *order = H5Tget_order(*datatype); if (*order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the data type order for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classid == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*datatype); if (*size == 0) { sprintf(errbuf, "Cannot get the data type size for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_FUNC, H5E_CANTINIT , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Aclose(attr); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Dclose(fieldID); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID for the \"%s\" attribute.\n", attrname); H5Epush(__FILE__, "HE5_SWinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWnentries | | | | DESCRIPTION: Returns number of entries and string buffer size | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nEntries long Number of entries | | | | INPUTS: | | swathID hid_t Swath structure ID | | entrycode int Entry code: | | | | HDFE_NENTDIM (0) | | HDFE_NENTMAP (1) | | HDFE_NENTIMAP (2) | | HDFE_NENTGFLD (3) | | HDFE_NENTDFLD (4) | | | | | | OUTPUTS: | | strbufsize long Length of comma-separated list | | (Does not include null-terminator | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | 7/29/99 A.Muslimov In the call to EHmetagroup() replace gid by fid. | | 9/01/99 A.Muslimov Initialized metabuf pointer. Added error handling | | right after the calls to EHmetagroup() and | | EHmetavalue(). Initialized nEntries to -1, and set | | nEntries to 0 in 'if( status == 0 ){}' block. | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWnentries(hid_t swathID, int entrycode, long *strbufsize) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Swath index */ long nEntries = 0; /* Number of entries */ long metaflag = FAIL;/* Old (0), New (1) metadata flag) */ long nVal = 0; /* Number of strings to search for */ long i; /* Loop index */ char *metabuf = (char *)NULL; /* Ptr to SM */ char *metaptrs[2]={NULL,NULL}; /* Start/end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE];/* Utility string */ char valName[2][32]; /* Strings to search for */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWnentries", &fid, &gid, &idx); if (status == SUCCEED) { /* Zero out string buffer size */ /* --------------------------- */ *strbufsize = 0; /* * Get pointer to relevant section within SM and Get names of * metadata strings to inquire about */ switch (entrycode) { case HE5_HDFE_NENTDIM: /* Dimensions */ /* ---------- */ { metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "Dimension", metaptrs); nVal = 1; strcpy(&valName[0][0], "DimensionName"); } break; case HE5_HDFE_NENTMAP: /* Dimension Maps */ /* -------------- */ { metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "DimensionMap", metaptrs); nVal = 2; strcpy(&valName[0][0], "GeoDimension"); strcpy(&valName[1][0], "DataDimension"); } break; case HE5_HDFE_NENTIMAP: /* Indexed Dimension Maps */ /* ---------------------- */ { metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s","IndexDimensionMap", metaptrs); nVal = 2; strcpy(&valName[0][0], "GeoDimension"); strcpy(&valName[1][0], "DataDimension"); } break; case HE5_HDFE_NENTGFLD: /* Geolocation Fields */ /* ------------------ */ { metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "GeoField", metaptrs); nVal = 1; strcpy(&valName[0][0], "GeoFieldName"); } break; case HE5_HDFE_NENTDFLD: /* Data Fields */ /* ----------- */ { metabuf = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "DataField", metaptrs); nVal = 1; strcpy(&valName[0][0], "DataFieldName"); } break; default: { sprintf(errbuf,"Invalid (unsupported) entry code \"%d\". \n", entrycode); H5Epush(__FILE__, "HE5_SWnentries", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } if ( metabuf == NULL ) { nEntries = FAIL; sprintf(errbuf,"Cannot get the number of entries. \n"); H5Epush(__FILE__, "HE5_SWnentries", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(nEntries); } /* * Check for presence of 'GROUP="' string If found then old metadata, * search on OBJECT string */ metaflag = (strstr(metabuf, "GROUP=\"") == NULL) ? 1 : 0; if (metaflag == 0) { nVal = 1; strcpy(&valName[0][0], "\t\tOBJECT"); } /* Begin loop through entries in metadata */ /* -------------------------------------- */ while (1) { /* Search for first string */ /* ----------------------- */ strcpy(utlstr, &valName[0][0]); strcat(utlstr, "="); metaptrs[0] = strstr(metaptrs[0], utlstr); /* If found within relevant metadata section ... */ /* --------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { for (i = 0; i < nVal; i++) { /* * Get all string values Don't count quotes */ status = HE5_EHgetmetavalue(metaptrs, &valName[i][0], utlstr); if ( status == FAIL ) { nEntries = FAIL; sprintf(errbuf,"Cannot get metavalue. \n"); H5Epush(__FILE__, "HE5_SWnentries", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(metabuf); return(nEntries); } *strbufsize += strlen(utlstr) - 2; } /* Increment number of entries */ /* --------------------------- */ nEntries++; /* Go to end of OBJECT */ /* ------------------- */ metaptrs[0] = strstr(metaptrs[0], "END_OBJECT"); } else /* No more entries found */ /* --------------------- */ { break; } } if (metabuf != NULL) free(metabuf); /* Count comma separators & slashes (if mappings) */ /* ---------------------------------------------- */ if (nEntries > 0) { *strbufsize += nEntries - 1; *strbufsize += (nVal - 1) * nEntries; } } return(nEntries); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqswath | | | | DESCRIPTION: Returns number and names of swath structures in file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nSwath long Number of swath structures in file | | | | INPUTS: | | filename char HDF-EOS filename | | | | OUTPUTS: | | swathlist char List of swath names (comma-separated) | | strbufsize long Length of swathlist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqswath(const char *filename, char *swathlist, long *strbufsize) { long nSwath = FAIL; /* Number of swaths in file */ herr_t status = FAIL; /* Return status variable */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(filename); /* Call "HE5_EHinquire" routine */ /* ---------------------------- */ nSwath = HE5_EHinquire(filename, "/HDFEOS/SWATHS", swathlist, strbufsize); if ( nSwath == FAIL ) { sprintf(errbuf,"Cannot get information about Swath. \n"); H5Epush(__FILE__, "HE5_SWinqswath", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } COMPLETION: return(nSwath); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWextend | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char fieldname | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A. Muslimov Checked for the status returned by H5Dextend(). | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWextend(hid_t swathID, char *fieldname, hsize_t size[]) { herr_t status = FAIL;/* Routine return status */ hid_t gid = FAIL;/* Swath group ID */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t fieldID = FAIL;/* fieldname dataset ID */ long idx = FAIL;/* Swath index */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWextend", &fid, &gid, &idx); HE5_SWfieldsizeID( swathID, fieldname, &fieldID); status = H5Dextend(fieldID, size); return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwrrdfield | | | | DESCRIPTION: Writes/Reads fields | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fldname char field name | | code char Write/Read code (w/r) | | start hssize_t start array | | stride hsize_t stride array | | count hsize_t edge array | | datbuf void data buffer for read | | | | OUTPUTS: | | datbuf void data buffer for write | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | 8/23/99 A. Muslimov Added error checkings after the function calls. | | July 00 A.Muslimov Unmasked hdf5 data types. | | 7/12/00 A.Muslimov Added conversion from disk/file data type ID to | | memory data type ID before H5Dread() call. | | 10/5/00 A.Muslimov Added checking for the field name (in case of pas- | | sing an alias as a "fldname"). | | Nov 00 A.Muslimov Modified a block checking if the dataset is | | appendable. Added "break" statement. | | Dec 00 A.Muslimov Modified to fix a problem with appending data to the| | extendible datset. | | Apr 03 S.Zhao Added conversion from data type ID to memory data | | type ID before H5Dwrite() call. | | Oct 03 S.Zhao Added to write/read a character string dataset. | | Apr 04 S.Zhao Modified for a character string dataset. | | Feb 05 S.Zhao Replaced the "count" array by the "dims" array if | | it was declared larger than the dimension size. | | Sep 11 Abe Taaheri Modified for correcting Unlimited dimension | | behavior and extension | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_SWwrrdfield(hid_t swathID, char *fldname, char *code, const hssize_t start[], const hsize_t stride[], const hsize_t count[], void *datbuf) { herr_t status = FAIL; /* routine return status variable */ int i; /* Loop index */ int startf = 0; /* flag (if start is NULL) */ int countf = 0; /* flag (if counf is NULL) */ int bothf = 0; /* flag (if start and count are NULL) */ int append = FALSE;/* FLAG (if field is appendible) */ int rank = FAIL; /* Rank of dataset */ int maxrank = 0; /* Rank dummy variable */ int nameflag = FAIL; /* Actual (1)/Alias (0) field name */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t fieldID = FAIL;/* fieldname Dataset ID */ hid_t fspace = FAIL;/* file data space ID */ hid_t mid = FAIL;/* memory data space ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t tid = FAIL;/* datatype ID */ hid_t mtype = FAIL;/* Memory data type ID */ long idx = FAIL;/* Swath index */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ hsize_t maxdims[HE5_DTSETRANKMAX];/* Field maximum dimensions */ hssize_t *tstart =(hssize_t *)NULL;/* Not NULL "start" value */ hsize_t *tcount = (hsize_t *)NULL;/* Not NULL "count" value */ hsize_t *lcount = (hsize_t *)NULL; hsize_t dimsize = 0; /* Field dimension size */ hsize_t size[HE5_DTSETRANKMAX]; /* Extended dimension size */ hid_t ntype[1] = {FAIL}; /* numbertype */ char *dimbuf = (char *)NULL; char *comma = (char *)NULL; char *dimcheck = (char *)NULL; char fieldname[HE5_HDFE_NAMBUFSIZE]; /* Field name buffer */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual field name */ char maxdimlist[HE5_HDFE_DIMBUFSIZE]; /* Maximum dimension list */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ H5T_class_t classid = H5T_NO_CLASS; /* data type class ID */ char dimlist[HE5_HDFE_DIMBUFSIZE]; char *dimbuf1 = (char *)NULL; char *dimbuf2 = (char *)NULL; char *comma1 = (char *)NULL; char *comma2 = (char *)NULL; char *newname = (char *)NULL; char *newname1 = (char *)NULL; int ibuf; /* Loop index */ char **chardatbuf = NULL; /* string data buffer */ int maxlen = 0; /* max length in array of string */ int strsize = 0; /* each str length in array of str */ hsize_t numattr[1]; /* number of attribute elements */ int mycount = 0; /* flag */ long strbufsize1; /* string buffer size */ long strbufsize2; /* string buffer size */ long nattr = 0; /* number of attributes */ char *attrlist1 = (char *)NULL;/* attribute list */ char *attrlist2 = (char *)NULL;/* attribute list */ char *attptr = (char *)NULL; /* attribute pointer */ hsize_t dimsize_dim, dimsize_maxdim; int extend_flag = 0; CHECKNAME(fldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWwrrdfield", &fid, &gid, &idx); if (status == FAIL) return(status); /* Get field info */ /* --------------- */ status = HE5_SWfieldinfo(swathID, fldname, &rank, dims, ntype, NULL, NULL); if( status == FAIL ) { sprintf(errbuf,"Cannot get information about \"%s\" field. \n", fldname); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } for (i=0; i 0) /* we may want to extend a dataset */ { extend_flag = 1; break; } } /* since in hdf5 all dimension can be appendable, the following was modified so that any dimension is extedned. In HDF4 only the first dimension is appenable, so start[0] > 0 is valid only for HDF4 based hdfeos if (start != NULL && start[0] > 0 && (strcmp(code,"w") == 0)) */ if (start != NULL && extend_flag == 1 && (strcmp(code,"w") == 0)) { /* Check whether fieldname is in dataset (multi-dim field) */ /* ------------------------------------------------------- */ status = HE5_SWfieldinfo(swathID, fldname, &rank, dims, ntype, dimlist, maxdimlist); if( status == FAIL ) { sprintf(errbuf,"Cannot get information about \"%s\" field. \n", fldname); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } dimbuf1 = (char *) calloc((strlen(dimlist) + 2), sizeof(char)); if(dimbuf1 == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } memcpy(dimbuf1,dimlist, strlen(dimlist)); dimbuf2 = (char *) calloc((strlen(maxdimlist) + 2), sizeof(char)); if(dimbuf2 == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimbuf1); return(FAIL); } memcpy(dimbuf2,maxdimlist, strlen(maxdimlist)); for (i = 1; i < rank + 1; i++) { strcat(dimbuf1,","); comma1 = strchr(dimbuf1,','); newname = (char *) calloc(comma1 - dimbuf1 + 1, sizeof(char)); if(newname == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimbuf1); free(dimbuf2); return(FAIL); } memmove(newname,dimbuf1,comma1 - dimbuf1); strcpy(dimbuf1,comma1+1); strcat(dimbuf2,","); comma2 = strchr(dimbuf2,','); newname1 = (char *) calloc(comma2 - dimbuf2 + 1, sizeof(char)); if(newname1 == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimbuf1); free(dimbuf2); free(newname); return(FAIL); } memmove(newname1,dimbuf2,comma2 - dimbuf2); strcpy(dimbuf2,comma2+1); /* get dimsize for newname1, and dimsize for the dimension whose maxdim is newname1 */ dimsize_dim = HE5_SWdiminfo(swathID, newname); dimsize_maxdim = HE5_SWdiminfo(swathID, newname1); /* Find out if the dataset dimension is appendable */ /* ----------------------------------------------- */ if ( (dimsize_dim < dimsize_maxdim) || (dimsize_maxdim == H5S_UNLIMITED)) { /* update dim if new dim is still <= maxdim */ if((start[i]+1) > dimsize_maxdim && (dimsize_maxdim != H5S_UNLIMITED)) { sprintf(errbuf, "Cannot update the dimension, new dimension size is larger than the max dimension size in the datafiled.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimbuf1); free(dimbuf2); free(newname); free(newname1); return(FAIL); } else { status = HE5_SWupdatedim(swathID, newname, start[i]+1); if( status == FAIL ) { sprintf(errbuf, "Cannot update the dimension.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimbuf1); free(dimbuf2); free(newname); free(newname1); return(FAIL); } } } free(newname); free(newname1); newname = NULL; newname1 = NULL; } free(dimbuf1); free(dimbuf2); dimbuf1 = NULL; dimbuf2 = NULL; } /* Call HE5_SWfldnameinfo() to get actual field name */ /* --------------------------------------------- */ nameflag = HE5_SWfldnameinfo(swathID, fldname, fldactualname); if ( nameflag == FAIL ) { sprintf(errbuf, "Cannot get actual name of the field.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Name is not alias */ /* ----------------- */ if (nameflag == TRUE) { strcpy(fieldname,""); strcpy(fieldname,fldname); } /* Name is an alias */ /* ---------------- */ if (nameflag == FALSE) { strcpy(fieldname,""); strcpy(fieldname,fldactualname); } /* Initialize dims[]/maxdims[]/size[] arrays */ /* ----------------------------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) { dims[i] = 0; maxdims[i] = 0; size[i] = 0; } /* Check whether fieldname is in dataset (multi-dim field) */ /* ------------------------------------------------------- */ status = HE5_SWfieldinfo(swathID, fieldname, &rank, dims, ntype, NULL, maxdimlist); if( status == FAIL ) { sprintf(errbuf,"Cannot get information about \"%s\" field. \n", fieldname); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Find out if the field is appendable */ /* ----------------------------------- */ dimbuf = (char *) calloc(strlen(maxdimlist) + 64, sizeof(char)); if(dimbuf == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(dimbuf,maxdimlist); strcat(dimbuf,","); comma = strchr(dimbuf,','); while(comma != NULL) { dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimbuf); return(FAIL); } memmove(dimcheck,dimbuf,comma-dimbuf); /* Get dimension size */ /* ------------------ */ dimsize = HE5_SWdiminfo(swathID, dimcheck); if((dimsize == H5S_UNLIMITED) || (dims[maxrank] <= dimsize)) { maxdims[maxrank] = dimsize; maxrank++; } strcpy(dimbuf,comma+1); comma = strchr(dimbuf,','); free(dimcheck); } free(dimbuf); for(i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } else { sprintf(errbuf,"Maximum dimension size is smaller than dimension size.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* ============================================================== */ /* start and count are being passed as NULL from SWdefvrtregion */ /* which calls SWreadfield, which have NULL for start and count. */ /* H5Sselect_hyperslab won't take NULL values for start and count */ /* ============================================================== */ if(start == NULL) { tstart = (hssize_t *)calloc(rank, sizeof(hssize_t)); for(i = 0; i < rank; i++) tstart[ i ] = 0; startf = 1; } if(count == NULL) { tcount = (hsize_t *)calloc(rank, sizeof(hsize_t)); for(i = 0; i < rank; i++) tcount[ i ] = dims[ i ]; if(startf == 1) bothf = 1; else countf = 1; } else { lcount = (hsize_t *)calloc(rank, sizeof(hsize_t)); for(i = 0; i < rank; i++) { if(count[ i ] > dims[ i ]) lcount[ i ] = dims[ i ]; else lcount[ i ] = count[ i ]; } } if (append == TRUE) { /* Get the field-related dataset ID */ /* -------------------------------- */ HE5_SWfieldsizeID(swathID, fieldname, &fieldID); if(bothf == 1) status = H5Dextend(fieldID, tcount); else if(startf == 1) status = H5Dextend(fieldID, lcount); else if(countf == 1) status = H5Dextend(fieldID, tcount); else { for(i = 0; i < rank; i++) size[ i ] = start[ i ] + lcount[ i ]; /* Extend the dataset size */ /* ----------------------- */ status = H5Dextend(fieldID, size); } if( status == FAIL) { sprintf(errbuf,"Cannot extend the dataset. \n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } } if (append == FALSE) { /* Get the field-related dataset ID */ /* -------------------------------- */ HE5_SWfieldsizeID(swathID, fieldname, &fieldID); } /* Get the file space ID */ /* --------------------- */ fspace = H5Dget_space(fieldID ); if( fspace == FAIL) { sprintf(errbuf,"Cannot get data space ID. \n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Select the hyperslab */ /* -------------------- */ if(bothf == 1) status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)tstart,stride,tcount,NULL); else if(startf == 1) status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)tstart,stride,lcount,NULL); else if(countf == 1) status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)start,stride,tcount,NULL); else status = H5Sselect_hyperslab( fspace, H5S_SELECT_SET, (const hsize_t *)start,stride,lcount,NULL) ; if( status == FAIL ) { sprintf(errbuf,"Cannot select a hyperslab. \n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Define memory space */ /* =================== */ if(countf == 1 || bothf == 1) mid = H5Screate_simple(rank, tcount, NULL); else mid = H5Screate_simple(rank, lcount, NULL); if( mid == FAIL) { sprintf(errbuf,"Cannot create the data space.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASPACE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Get the data type ID */ /* -------------------- */ tid = H5Dget_type(fieldID ); if( tid == FAIL ) { sprintf(errbuf,"Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Get the data type class ID */ /* -------------------------- */ classid = H5Tget_class(tid); if (classid == H5T_NO_CLASS) { sprintf(errbuf,"Cannot get the data type class ID.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } /* Write/read whole data to/from the dataset */ /* ========================================= */ if( strcmp(code,"w") == 0) { strbufsize1 = 0; nattr = HE5_SWinqlocattrs(swathID, fieldname, NULL, &strbufsize1); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } attrlist1 = (char *) calloc(strbufsize1 + 2, sizeof(char)); if (attrlist1 == NULL) { sprintf(errbuf, "Cannot allocate memory for attrlist1.\n") ; H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } nattr = HE5_SWinqlocattrs(swathID, fieldname, attrlist1, &strbufsize1); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__,"HE5_SWwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } attptr = strstr(attrlist1,"ARRAYOFSTRINGS"); if ( (classid == H5T_STRING) && (attptr == NULL) ) { status = H5Dwrite(fieldID, tid, mid, fspace, H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } else if ( (classid == H5T_STRING) && (attptr != NULL) ) { strbufsize2 = 0; nattr = HE5_SWinqlocattrs(swathID, fieldname, NULL, &strbufsize2); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } attrlist2 = (char *) calloc(strbufsize2 + 2, sizeof(char)); if (attrlist2 == NULL) { sprintf(errbuf, "Cannot allocate memory for attrlist2.\n") ; H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } nattr = HE5_SWinqlocattrs(swathID, fieldname, attrlist2, &strbufsize2); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(FAIL); } if ( (nattr == 0) || ((attptr = strstr(attrlist2,"StringLengthAttribute")) == NULL) ) { chardatbuf = (char **)datbuf; if (count == NULL) mycount = tcount[0]; if (count != NULL) mycount = *lcount; for (ibuf = 0; ibuf < mycount; ibuf++) { if (chardatbuf[ibuf] == NULL) strsize = 0; else strsize = strlen(chardatbuf[ibuf]); if (strsize > maxlen) maxlen = strsize; } numattr[0] = 1; status = HE5_SWwritelocattr(swathID, fieldname, "StringLengthAttribute", H5T_NATIVE_INT, numattr, &maxlen); if (status == FAIL) { sprintf(errbuf, "Cannot write attribute to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } status = H5Dwrite(fieldID, tid, mid, fspace, H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } else { /* Get memory data type ID */ /* ----------------------- */ mtype = HE5_EHdtype2mtype(tid); if( mtype == FAIL ) { sprintf(errbuf,"Cannot convert to memory data type.\n"); status = FAIL; H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } status = H5Dwrite(fieldID, mtype, mid, fspace, H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } if (attrlist1 != NULL) { free(attrlist1); attrlist1 = NULL; } if (attrlist2 != NULL) { free(attrlist2); attrlist2 = NULL; } } else { if (classid == H5T_STRING) { /* Read the data buffer */ /* -------------------- */ status = H5Dread(fieldID, tid, mid, fspace , H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot read data from the dataset.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } else { /* Get memory data type ID */ /* ----------------------- */ mtype = HE5_EHdtype2mtype(tid); if( mtype == FAIL ) { sprintf(errbuf,"Cannot convert to memory data type.\n"); status = FAIL; H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } /* Read the data buffer */ /* -------------------- */ status = H5Dread(fieldID, mtype, mid, fspace , H5P_DEFAULT, datbuf); if( status == FAIL ) { sprintf(errbuf,"Cannot read data from the dataset.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (start == NULL) { if (tstart != NULL) free(tstart); } if (count == NULL) { if (tcount != NULL) free(tcount); } if (lcount != NULL) free(lcount); return(status); } } } if ( count == NULL) { if(tcount != NULL) free(tcount); } if( start == NULL) { if(tstart != NULL) free(tstart); } if (lcount != NULL) free(lcount); /* Release data space ID */ /* --------------------- */ status = H5Sclose(mid); if( status == FAIL ) { sprintf(errbuf,"Cannot release memory data space ID.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(fspace); if( status == FAIL ) { sprintf(errbuf,"Cannot release the file data space ID.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(tid); if( status == FAIL ) { sprintf(errbuf,"Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_SWwrrdfield", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwritefield | | | | DESCRIPTION: Writes data to field | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char fieldname | | start hssize_t start array | | stride hsize_t stride array | | edge hsize_t edge array | | | | OUTPUTS: | | data void data buffer for write | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Sep 11 Abe Taaheri Modified for correcting Unlimited dimension | | behavior and extension | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWwritefield(hid_t swathID, char *fieldname, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *data) { herr_t status = FAIL; /* return status variable */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ int rank = 0; /* Field rank */ int unlimdim; hsize_t maxdims[HE5_DTSETRANKMAX];/* Field maximum dimensions */ int append = FALSE; /* FLAG (if field is appendible)*/ int i; /* Loop index */ char *errbuf = (char *)NULL; /* error message buffer */ HE5_LOCK; CHECKNAME(fieldname); CHECKPOINTER(data); /* If a field is appendable and need to be extended, do extension here before writing extended data into it */ /* get maxdims for the field */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWwritefield", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } status = HE5_SWflddiminfo(swathID, fieldname, &rank, dims, maxdims); /* see if we need first to extend data dimensions for unlimited dimensions */ for (i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } } unlimdim = i; if((append == TRUE) && (edge[unlimdim] > dims[unlimdim])) { hssize_t newstart[8]; hsize_t newedge[8]; for (i = 0; i < rank; i++) { if (start != NULL) { newstart[i]=start[i]; } else { newstart[i]= 0; } if (edge!= NULL) { newedge[i] = edge[i]; } else { newedge[i]=dims[i]; } } newstart[unlimdim]=edge[unlimdim]-1; newedge[unlimdim] = 1; status = HE5_SWwrrdfield(swathID, fieldname, "w", newstart, stride, newedge,data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_SWwritefield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } else { for (i = 0; i < rank; i++) { dims[i]=edge[i]; } } } status = HE5_SWwrrdfield(swathID, fieldname, "w", start, stride, edge, data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_SWwritefield", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } else { status = SUCCEED; free(errbuf); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWreadfield | | | | DESCRIPTION: Reads data from field | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char fieldname | | start hssize_t start array | | stride hsize_t stride array | | edge hsize_t edge array | | buffer void data buffer for read | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWreadfield(hid_t swathID, char *fieldname,const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *data) { herr_t status = FAIL;/* routine return status variable */ HE5_LOCK; CHECKPOINTER(fieldname); status = HE5_SWwrrdfield(swathID, fieldname, "r", start, stride, edge, data); COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWfldsrch | | | | DESCRIPTION: Retrieves information about field DATASET | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | fldgroup int Flag representing one of the groups: | | (0) "Data Fields", (1)"Geolocation | | Fields", and (5) "HE5_PRofile Fields". | | (-1) FAILS. | | | | INPUTS: | | swathID hid_t swath structure ID | | fldname char field name | | | | OUTPUTS: | | fieldID hid_t Field dataset ID | | rank int dataset Rank | | dims hsize_t Dimensions of field | | typeID hid_t Data type ID | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/23/99 A.Muslimov Checked for the status returned by H5Sclose(). | | 4/18/00 A.Muslimov Added more error handlings. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 00 A.Muslimov Modified to incorporate "PRofile Fields" group. | | Changed the coding scheme. | | Oct 00 A.Muslimov Added the case where fieldname is an alias. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWfldsrch(hid_t swathID, char *fldname, hid_t *fieldID, int *rank, hsize_t dims[], hid_t *typeID) { int fldgroup = FAIL; /* Field group flag (return value) */ int i; /* Loop index */ int nameflag = FAIL; /* Alias (0) /actual (1) name flag */ herr_t status = FAIL; /* routine return status variable */ hid_t idx = FAIL; /* Swath index */ hid_t idOffset = HE5_SWIDOFFSET;/* Swath ID offset */ hid_t spaceID = FAIL; /* File data space ID */ char fieldname[HE5_HDFE_NAMBUFSIZE]; /* Buffer for name of a field */ char fldactualname[HE5_HDFE_NAMBUFSIZE];/* Actual name of a field */ char fldtype ='n'; /* Internal group discriminating flag */ char name[HE5_HDFE_NAMBUFSIZE]; /* Field Name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Buffer for error message */ CHECKPOINTER(fldname); /* Compute "reduced" swath ID */ /* -------------------------- */ idx = swathID % idOffset; /* Call HE5_SWfldnameinfo() to get actual field name */ /* --------------------------------------------- */ nameflag = HE5_SWfldnameinfo(swathID, fldname, fldactualname); if (nameflag == FAIL) { sprintf(errbuf, "Cannot get actual name of the field.\n"); H5Epush(__FILE__, "HE5_SWfldsrch", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (nameflag == FALSE) { strcpy(fieldname,""); strcpy(fieldname,fldactualname); } if (nameflag == TRUE) { strcpy(fieldname,""); strcpy(fieldname,fldname); } /* Loop through all geo datasets in swath */ /* -------------------------------------- */ for (i = 0; i < HE5_SWXSwath[idx].nGFLD; i++) { /* get dataset name */ /* ---------------- */ strcpy(name, HE5_SWXSwath[idx].gdataset[i].name); if( strcmp(fieldname, name) == 0 ) { fldtype ='g'; fldgroup = HE5_HDFE_GEOGROUP; break; } } /* not found in geo fields */ /* ----------------------- */ if( fldtype == 'n') { /* Loop through all data datasets in swath */ /* --------------------------------------- */ for (i = 0; i < HE5_SWXSwath[idx].nDFLD; i++) { /* get dataset name */ /* ---------------- */ strcpy(name, HE5_SWXSwath[idx].ddataset[i].name); if( strcmp(fieldname, name) == 0 ) { fldtype ='d'; fldgroup = HE5_HDFE_DATAGROUP; break; } } } /* not found in data fields */ /* ------------------------ */ if( fldtype == 'n') { /* Loop through all profile datasets in swath */ /* ------------------------------------------ */ for (i = 0; i < HE5_SWXSwath[idx].nPROF; i++) { /* get dataset name */ /* ---------------- */ strcpy(name, HE5_SWXSwath[idx].pdataset[i].name); if( strcmp(fieldname, name) == 0 ) { fldtype ='p'; fldgroup = HE5_HDFE_PROFGROUP; break; } } } if (fieldID != NULL) { /* Get dataset ID */ /* ============== */ if( fldtype =='g') *fieldID = HE5_SWXSwath[idx].gdataset[i].ID; else if (fldtype =='d') *fieldID = HE5_SWXSwath[idx].ddataset[i].ID; else if (fldtype =='p') *fieldID = HE5_SWXSwath[idx].pdataset[i].ID; else { sprintf(errbuf,"Cannot find \"%s\" field in Swath. Check the spelling.\n", fieldname); H5Epush(__FILE__, "HE5_SWfldsrch", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data space ID */ /* ----------------- */ spaceID = H5Dget_space(*fieldID); if (spaceID == FAIL) { sprintf(errbuf,"Cannot get the data space ID.\n"); H5Epush(__FILE__, "HE5_SWfldsrch", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (rank != NULL) { /* Get dataset rank */ /* ---------------- */ *rank = H5Sget_simple_extent_ndims(spaceID); if (*rank == FAIL) { sprintf(errbuf,"Cannot get the dataset rank.\n"); H5Epush(__FILE__, "HE5_SWfldsrch", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } if (typeID != NULL || dims != NULL) { /* Get data type ID */ /* ---------------- */ *typeID = H5Dget_type(*fieldID); if (*typeID == FAIL) { sprintf(errbuf,"Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_SWfldsrch", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get dimension sizes */ /* ------------------- */ status = H5Sget_simple_extent_dims(spaceID, dims, NULL); if (status == FAIL) { sprintf(errbuf,"Cannot get the data space dimension sizes.\n"); H5Epush(__FILE__, "HE5_SWfldsrch", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(*typeID); if (status == FAIL) { sprintf(errbuf,"Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_SWfldsrch", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(spaceID); if (status == FAIL) { sprintf(errbuf,"Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_SWfldsrch", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } COMPLETION: return(fldgroup); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdetach | | | | DESCRIPTION: Detachs swath structure and performs housekeeping | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A. Muslimov Checked for the statuses returned by H5Dclose() | | and H5Gclose(). | | 10/28/99 A.Muslimov Added a block 'Close previously opened ragged | | arrays'. Added a call to | | H5Gclose(SWXSwath[sID].ra_id), and the lines, cor- | | responding to the ragged arrays in the block | | 'Delete entries from External Arrays'. | | Feb,2000 A.Muslimov Fixed a bug-prone release of IDs. | | Apr,2000 A.Muslimov Removed "Ragged Arrays" group. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 00 A.Muslimov Added "PRofile Fields" group. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdetach(hid_t swathID) { herr_t status = FAIL; /* Return status variable */ long idx = FAIL; /* Swath index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ int i, k; /* Loop indices */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdetach", &fid, &gid, &idx); if (status == SUCCEED) { /* "Detach" from previously attached "Data Fields" datasets */ /* -------------------------------------------------------- */ if( HE5_SWXSwath[idx].nDFLD > 0 ) { for (k = 0; k < HE5_SWXSwath[idx].nDFLD; k++) { if ( HE5_SWXSwath[idx].ddataset[k].ID > 0 ) { status = H5Dclose(HE5_SWXSwath[idx].ddataset[k].ID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data dataset ID. \n") ; H5Epush(__FILE__, "HE5_SWdetach", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if(HE5_SWXSwath[idx].ddataset[k].name != NULL) free(HE5_SWXSwath[idx].ddataset[k].name); } if (HE5_SWXSwath[idx].ddataset != NULL) free(HE5_SWXSwath[idx].ddataset); } /* "Detach" from previously attached "PRofile Fields" datasets */ /* ----------------------------------------------------------- */ if( HE5_SWXSwath[idx].nPROF > 0 ) { for (k = 0; k < HE5_SWXSwath[idx].nPROF; k++) { if ( HE5_SWXSwath[idx].pdataset[k].ID > 0 ) { status = H5Dclose(HE5_SWXSwath[idx].pdataset[k].ID); if (status == FAIL) { sprintf(errbuf, "Cannot release the profile dataset ID. \n") ; H5Epush(__FILE__, "HE5_SWdetach", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if(HE5_SWXSwath[idx].pdataset[k].name != NULL) free(HE5_SWXSwath[idx].pdataset[k].name); } if (HE5_SWXSwath[idx].pdataset != NULL) free(HE5_SWXSwath[idx].pdataset); } /* "Detach" from previously attached "Geolocation Fields" datasets */ /* --------------------------------------------------------------- */ if( HE5_SWXSwath[idx].nGFLD > 0 ) { for (k = 0; k < HE5_SWXSwath[idx].nGFLD; k++) { if ( HE5_SWXSwath[idx].gdataset[k].ID > 0 ) { status = H5Dclose(HE5_SWXSwath[idx].gdataset[k].ID); if (status == FAIL) { sprintf(errbuf, "Cannot release the geolocation dataset ID. \n") ; H5Epush(__FILE__, "HE5_SWdetach", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if (HE5_SWXSwath[idx].gdataset[k].name != NULL) free(HE5_SWXSwath[idx].gdataset[k].name); } if (HE5_SWXSwath[idx].gdataset != NULL) free(HE5_SWXSwath[idx].gdataset); } /* Detach from the Swath groups */ /* ---------------------------- */ if ( HE5_SWXSwath[idx].geo_id > 0 ) { status = H5Gclose(HE5_SWXSwath[idx].geo_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the \"Geolocation Fields\" group ID. \n") ; H5Epush(__FILE__, "HE5_SWdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if ( HE5_SWXSwath[idx].data_id > 0 ) { status = H5Gclose(HE5_SWXSwath[idx].data_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the \"Data Fields\" group ID. \n") ; H5Epush(__FILE__, "HE5_SWdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if ( HE5_SWXSwath[idx].prof_id > 0 ) { status = H5Gclose(HE5_SWXSwath[idx].prof_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the \"Profile Fields\" group ID.") ; H5Epush(__FILE__, "HE5_SWdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } if ( HE5_SWXSwath[idx].sw_id > 0 ) { status = H5Gclose(HE5_SWXSwath[idx].sw_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the swath group ID. \n") ; H5Epush(__FILE__, "HE5_SWdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Delete entries from External Arrays */ /* ----------------------------------- */ HE5_SWXSwath[idx].active = 0; HE5_SWXSwath[idx].geo_id = 0; HE5_SWXSwath[idx].data_id = 0; HE5_SWXSwath[idx].prof_id = 0; HE5_SWXSwath[idx].ddataset = NULL; HE5_SWXSwath[idx].pdataset = NULL; HE5_SWXSwath[idx].gdataset = NULL; HE5_SWXSwath[idx].fid = 0; HE5_SWXSwath[idx].sw_id = 0; HE5_SWXSwath[idx].obj_id = 0; HE5_SWXSwath[idx].nDFLD = 0; HE5_SWXSwath[idx].nPROF = 0; HE5_SWXSwath[idx].nGFLD = 0; /* Free Region Pointers */ /* -------------------- */ for (k = 0; k < HE5_NSWATHREGN; k++) { if (HE5_SWXRegion[k] != NULL && HE5_SWXRegion[k]->swathID == swathID) { for (i = 0; i < HE5_DTSETRANKMAX; i++) { if (HE5_SWXRegion[k]->DimNamePtr[i] != NULL) { free(HE5_SWXRegion[k]->DimNamePtr[i]); } } free(HE5_SWXRegion[k]); HE5_SWXRegion[k] = NULL; } } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefboxregion | | | | DESCRIPTION: Finds swath cross tracks within area of interest and returns | | region ID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | regionID hid_t Region ID | | | | INPUTS: | | swathID hid_t Swath structure ID | | cornerlon double dec deg Longitude of opposite corners of box | | cornerlat double dec deg Latitude of opposite corners of box | | mode int Search mode | | HDFE_MIDPOINT - Use midpoint of Xtrack | | HDFE_ENDPOINT - Use endpoints of Xtrack | | HDFE_ANYPOINT - Use all points of Xtrack| | | | OUTPUTS: | | None | | | | NOTES: | | | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 98 Abe Taaheri Fixed core dump in SWregioninfo associated with | | SWXRegion[k]->nRegions exceeding MAXNREGIONS in | | this function | | | | Aug 3,99 A.Muslimov Changed the type of lonArr[] and latArr[] from char | | to float64. Changed types of fid, idx from int32_t | | to hid_t. | | Aug 11,99 A.Muslimov Left out a factor 8 in front of "(i * edge[1] + j)" | | in "memcpy(&lonTestVal,&lonArr[i*edge[1]+j],8);" | | and "memcpy(&latTestVal,&latArr[i*edge[1]+j],8);". | | Made similar changes in the calls to | | "memcpy(&lonTestVal,&lonArr[j],8);" and | | "memcpy(&latTestVal,&latArr[j],8);", and in all | | other calls to memcpy(). | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 02/08/00 A.Muslimov Added more error checkings. | | 03/13/00 A.Muslimov Modified to convert non-native datatypes to native | | ones. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Jan 05 S. Zhao Modified to include a region starts and stops with | | the same index on the track. | | Jan 05 S. Zhao Returned error if regionID exceeded HE5_NSWATHREGN. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_SWdefboxregion(hid_t swathID, double cornerlon[], double cornerlat[], int mode) { hid_t regionID = FAIL;/* Region ID (return) */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t tid = FAIL;/* Longitude/Latitude Datatype ID */ hid_t fieldID = FAIL;/* Longitude/Latitude Dataset ID */ hid_t k; /* Loop index */ herr_t status = FAIL;/* routine return status variable */ herr_t statLon = FAIL;/* Status from SWfieldinfo for longitude */ herr_t statLat = FAIL;/* Status from SWfieldinfo for latitude */ herr_t statCoLat = FAIL;/* Status from SWfieldinfo for */ int validReg = FAIL; /* validReg flag */ int rank = FAIL; /* Rank of dataset */ hid_t nt[1] ={FAIL}; /* number types */ unsigned found = 0; /* Found flag */ unsigned char *flag = (unsigned char *)NULL;/* Track flag array */ long idx = FAIL; /* Swath index */ long bndflag = FAIL; /* +/-180 boundary flag */ long lonTest = FAIL; /* Longitude test flag */ long latTest = FAIL; /* Latitude test flag */ long i = 0, j = 0; /* Loop indices */ size_t tsize = 0; /* Data type size (bytes)*/ hssize_t start[2] = {FAIL, FAIL}; /* Start array (read) */ hssize_t anyStart[2]= {FAIL, FAIL}; /* ANYPOINT start array */ hsize_t nElem = 0; /* Number of elements to read */ hsize_t dims[HE5_DTSETRANKMAX];/* Dims of geolocation fields */ hsize_t stride[2] = {1, 1}; /* Stride array (read) */ hsize_t edge[2] = {0, 0}; /* Edge array (read) */ hsize_t anyEdge[2] = {0, 0}; /* ANYPOINT edge array (read) */ float tempFloat = 0.; /* Temporary float variable */ double tempDouble = 0.; /* Temporary double variable */ double lonTestVal = 0.; /* Longitude test value */ double latTestVal = 0.; /* Latitude test value */ char *lonArr = (char *)NULL;/* Longitude data array */ char *latArr = (char *)NULL;/* Latitude data array */ char dimlist[HE5_HDFE_DIMBUFSIZE];/* Dimension list */ char latName[16]; /* Latitude field name */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(cornerlon); CHECKPOINTER(cornerlat); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdefboxregion", &fid, &gid, &idx); /* Inclusion mode must be between 0 and 2 */ /* -------------------------------------- */ if (mode < 0 || mode > 2) { status = FAIL; sprintf(errbuf, "Improper Inclusion Mode: %d.\n", mode); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } strcpy(dimlist,""); if (status == SUCCEED) { /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[i] = 0; /* Get "Longitude" field info */ /* -------------------------- */ statLon = HE5_SWfieldinfo(swathID, "Longitude", &rank, dims, nt, dimlist, NULL); if (statLon == FAIL) { status = FAIL; sprintf(errbuf,"\"Longitude\" field not found.\n"); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Get "Latitude" field info */ /* -------------------------- */ statLat = HE5_SWfieldinfo(swathID, "Latitude", &rank, dims, nt, dimlist, NULL); if (statLat == FAIL) { /* If not found check for "Colatitude" field info */ /* ---------------------------------------------- */ statCoLat = HE5_SWfieldinfo(swathID, "Colatitude", &rank, dims, nt,dimlist, NULL); if (statCoLat == FAIL) { /* Neither "Latitude" nor "Colatitude" field found */ /* ----------------------------------------------- */ status = FAIL; sprintf( errbuf, "Neither \"Latitude\" nor \"Colatitude\" fields found.\n"); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* Latitude field is "Colatitude" */ /* ------------------------------ */ strcpy(latName, "Colatitude"); } } else { /* Latitude field is "Latitude" */ /* ---------------------------- */ strcpy(latName, "Latitude"); } /* Get "Latitude" or "Longitude" datatype */ tsize = HE5_SWfieldsizeID(swathID, "Latitude", &fieldID); if (tsize == 0) { status = FAIL; sprintf(errbuf,"The size of a data type = 0.\n"); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } tid = H5Dget_type( fieldID); if (tid == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the dataset data type ID.\n"); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if (status == SUCCEED) { /* Search along entire "Track" dimension from beginning to end */ /* ----------------------------------------------------------- */ start[0] = 0; edge[0] = dims[0]; /* If 1D geolocation fields then set mode to MIDPOINT */ /* -------------------------------------------------- */ if (rank == 1) mode = HE5_HDFE_MIDPOINT; switch (mode) { /* If MIDPOINT search single point in middle of "CrossTrack" */ /* --------------------------------------------------------- */ case HE5_HDFE_MIDPOINT: start[1] = HE5_EHlong2hssize( (dims[ 1 ] / 2) ); edge[1] = 1; break; /* If ENDPOINT search 2 points at either end of "CrossTrack" */ /* --------------------------------------------------------- */ case HE5_HDFE_ENDPOINT: start[1] = 0; stride[1] = dims[1] - 1; edge[1] = 2; break; /* If ANYPOINT do initial MIDPOINT search */ /* -------------------------------------- */ case HE5_HDFE_ANYPOINT: start[1] = HE5_EHlong2hssize( (dims[1] / 2) ); if ( start[1] == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } edge[1] = 1; break; } /* Compute number of elements */ /* -------------------------- */ nElem = edge[ 0 ] * edge[ 1 ]; /* Allocate space for longitude and latitude */ /* ------------------------------------------ */ lonArr = (char *)calloc(nElem, sizeof(double)); if(lonArr == NULL) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } latArr = (char *)calloc(nElem, sizeof(double)); if(latArr == NULL) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(lonArr); lonArr = NULL; return(FAIL); } /* Allocate space for flag array */ /* ----------------------------- */ flag = (unsigned char *) calloc(edge[0] + 1, sizeof(unsigned char )); if(flag == NULL) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(lonArr); free(latArr); lonArr = NULL; latArr = NULL; return(FAIL); } /* Read Longitude and Latitude fields */ /* ---------------------------------- */ status = HE5_SWreadfield(swathID, "Longitude", start, stride, edge, lonArr); if( status == FAIL ) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot read the \"Longitude\" field."); HE5_EHprint("Error: Cannot read the \"Longitude\" field, occured", __FILE__, __LINE__); free(lonArr); free(latArr); free(flag); lonArr = NULL; latArr = NULL; flag = NULL; return(FAIL); } status = HE5_SWreadfield(swathID, latName, start, stride, edge, latArr); if( status == FAIL ) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot read the \"Latitude\" field."); HE5_EHprint("Error: Cannot read the \"Latitude\" field, occured", __FILE__, __LINE__); free(lonArr); free(latArr); free(flag); lonArr = NULL; latArr = NULL; flag = NULL; return(FAIL); } /* * If geolocation fields are FLOAT then cast each entry as DOUBLE */ if ( H5Tequal( tid, H5T_NATIVE_FLOAT) || H5Tequal( tid, H5T_IEEE_F32LE) || H5Tequal( tid, H5T_IEEE_F32BE) ) { for (i = nElem - 1; i >= 0; i--) { memmove(&tempFloat, lonArr + sizeof(float) * i, sizeof(float)); tempDouble = (double)tempFloat; memmove(lonArr + sizeof(double) * i, &tempDouble, sizeof(double)); memmove(&tempFloat, latArr + sizeof(float) * i, sizeof(float)); tempDouble = (double) tempFloat; memmove(latArr + sizeof(double) * i, &tempDouble, sizeof(double)); } } /* Set boundary flag */ /* ----------------- */ /* * This variable is set to 1 if the region of interest crosses * the +/- 180 longitude boundary */ bndflag = (cornerlon[0] < cornerlon[1]) ? 0 : 1; /* Main Search Loop */ /* ---------------- */ /* For each track ... */ /* ------------------ */ for (i = 0; i < edge[0]; i++) { /* For each value from Cross Track ... */ /* ----------------------------------- */ for (j = 0; j < edge[1]; j++) { /* Read in single lon & lat values from data buffers */ /* ------------------------------------------------- */ memmove(&lonTestVal, &lonArr[sizeof(double) * (i * edge[1] + j)], sizeof(double)); memmove(&latTestVal, &latArr[sizeof(double) * (i * edge[1] + j)], sizeof(double)); /* If longitude value > 180 convert to -180 to 180 range */ /* ----------------------------------------------------- */ if (lonTestVal > 180) lonTestVal = lonTestVal - 360; /* If Colatitude value convert to latitude value */ /* --------------------------------------------- */ if (statCoLat == 0) latTestVal = 90 - latTestVal; /* Test if lat value is within range */ /* --------------------------------- */ latTest = (latTestVal >= cornerlat[0] && latTestVal <= cornerlat[1]); if (bndflag == 1) { /* * If boundary flag set test whether longitude value * is outside region and then flip */ lonTest = (lonTestVal >= cornerlon[1] && lonTestVal <= cornerlon[0]); lonTest = 1 - lonTest; } else { lonTest = (lonTestVal >= cornerlon[0] && lonTestVal <= cornerlon[1]); } /* * If both longitude and latitude are within region set * flag on for this track */ if ( (lonTest + latTest) == 2 ) { flag[i] = 1; found = 1; break; } } } /* ANYPOINT search */ /* --------------- */ if ( (mode == HE5_HDFE_ANYPOINT) && (rank > 1) ) { free(lonArr); free(latArr); lonArr = NULL; latArr = NULL; /* Allocate space for an entire single cross track */ /* ----------------------------------------------- */ lonArr = (char *) calloc(dims[1], sizeof(double)); if(lonArr == NULL) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } latArr = (char *) calloc(dims[1], sizeof(double)); if(latArr == NULL) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(lonArr); lonArr = NULL; return(FAIL); } /* Setup start and edge */ /* -------------------- */ anyStart[1] = 0; anyEdge[0] = 1; anyEdge[1] = dims[1]; /* For each track starting from 0 */ /* ------------------------------ */ for (i = 0; i < edge[0]; i++) { /* If cross track not in region (with MIDPOINT search ... */ /* ------------------------------------------------------ */ if (flag[i] == 0) { /* Setup track start */ /* ----------------- */ anyStart[0] = HE5_EHlong2hssize(i); if (anyStart[0] == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lonArr); free(latArr); lonArr = NULL; latArr = NULL; return(FAIL); } /* Read in lon and lat values for cross track */ /* ------------------------------------------ */ status = HE5_SWreadfield(swathID, "Longitude", anyStart, NULL, anyEdge, lonArr); if(status == FAIL) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot read the \"Longitude\" field. \n"); HE5_EHprint("Error: Cannot read the \"Longitude\" field, occured", __FILE__, __LINE__); free(lonArr); free(latArr); lonArr = NULL; latArr = NULL; return(FAIL); } status = HE5_SWreadfield(swathID, latName, anyStart, NULL, anyEdge, latArr); if(status == FAIL) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot read the \"Latitude\" field. \n"); HE5_EHprint("Error: Cannot read the \"Latitude\" field, occured", __FILE__, __LINE__); free(lonArr); free(latArr); lonArr = NULL; latArr = NULL; return(FAIL); } /* * If geolocation fields are FLOAT then cast each entry as DOUBLE */ if ( H5Tequal( tid, H5T_NATIVE_FLOAT) || H5Tequal( tid, H5T_IEEE_F32LE) || H5Tequal( tid, H5T_IEEE_F32BE) ) { for (j = dims[1] - 1; j >= 0; j--) { memmove(&tempFloat, lonArr + sizeof(float) * j, sizeof(float)); tempDouble = (double)tempFloat; memmove(lonArr + sizeof(double) * j, &tempDouble, sizeof(double)); memmove(&tempFloat, latArr + sizeof(float) * j, sizeof(float)); tempDouble = (double)tempFloat; memmove(latArr + sizeof(double) * j, &tempDouble, sizeof(double)); } } /* For each value from Cross Track ... */ /* ----------------------------------- */ for (j = 0; j < dims[1]; j++) { /* Read in single lon & lat values from buffers */ /* -------------------------------------------- */ memmove(&lonTestVal, &lonArr[sizeof(double) * j], sizeof(double)); memmove(&latTestVal, &latArr[sizeof(double) * j], sizeof(double)); /* If lon value > 180 convert to -180 - 180 range */ /* ---------------------------------------------- */ if (lonTestVal > 180) lonTestVal = lonTestVal - 360; /* If Colatitude value convert to latitude value */ /* --------------------------------------------- */ if (statCoLat == 0) latTestVal = 90 - latTestVal; /* Test if lat value is within range */ /* --------------------------------- */ latTest = (latTestVal >= cornerlat[0] && latTestVal <= cornerlat[1]); if (bndflag == 1) { /* * If boundary flag set test whether * longitude value is outside region and then * flip */ lonTest = (lonTestVal >= cornerlon[1] && lonTestVal <= cornerlon[0]); lonTest = 1 - lonTest; } else { lonTest = (lonTestVal >= cornerlon[0] && lonTestVal <= cornerlon[1]); } /* * If both longitude and latitude are within * region set flag on for this track */ if ( (lonTest + latTest) == 2 ) { flag[i] = 1; found = 1; break; } } } } } /* If within region setup Region Structure */ /* --------------------------------------- */ if (found == 1) { /* For all entries in SWXRegion array ... */ /* -------------------------------------- */ for (k = 0; k < HE5_NSWATHREGN; k++) { /* If empty region ... */ /* ------------------- */ if (HE5_SWXRegion[k] == 0) { /* Allocate space for region entry */ /* ------------------------------- */ HE5_SWXRegion[k] = (struct HE5_swathRegion *)calloc(1, sizeof(struct HE5_swathRegion)); if(HE5_SWXRegion[k] == NULL) { H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Store file and swath ID */ /* ----------------------- */ HE5_SWXRegion[k]->fid = fid; HE5_SWXRegion[k]->swathID = swathID; /* Set Start & Stop Vertical arrays to FAIL */ /* ---------------------------------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) { HE5_SWXRegion[k]->StartVertical[j] = FAIL; HE5_SWXRegion[k]->StopVertical[j] = FAIL; } /* Set region ID */ /* ------------- */ regionID = k; break; } } if (k >= HE5_NSWATHREGN) { sprintf(errbuf, "regionID exceeded HE5_NSWATHREGN.\n"); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_BTREE, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (lonArr != NULL) free(lonArr); if (latArr != NULL) free(latArr); if (flag != NULL) free(flag); return(FAIL); } /* Find start and stop of regions */ /* ------------------------------ */ /* Subtract previous flag value from current one */ /* --------------------------------------------- */ /* * Transisition points will have flag value (+1) start or * (255 = (uint8_t) -1) stop of region */ for (i = edge[0]; i > 0; i--) flag[i] -= flag[i - 1]; for (i = 0; i <= edge[0]; i++) { /* Start of region */ /* --------------- */ if (flag[i] == 1) { /* Increment (multiple) region counter */ /* ----------------------------------- */ j = ++HE5_SWXRegion[k]->nRegions; if ((HE5_SWXRegion[k]->nRegions) > HE5_MAXNREGIONS) { sprintf(errbuf, "HE5_SWXRegion[%d]->nRegions exceeded HE5_MAXNREGIONS = %d.\n", k, HE5_MAXNREGIONS); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (lonArr != NULL) free(lonArr); if (latArr != NULL) free(latArr); if (flag != NULL) free(flag); return(FAIL); } HE5_SWXRegion[k]->StartRegion[j - 1] = i; } /* End of region */ /* ------------- */ if (flag[i] == 255) { HE5_SWXRegion[k]->StopRegion[j - 1] = i - 1; validReg = 0; } } } if (lonArr != NULL) free(lonArr); if (latArr != NULL) free(latArr); if (flag != NULL) free(flag); } status = H5Tclose(tid); if (status == FAIL) { sprintf(errbuf,"Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } if(validReg != 0) { sprintf(errbuf,"Invalid region ID.\n"); H5Epush(__FILE__, "HE5_SWdefboxregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); regionID = FAIL; } COMPLETION: HE5_UNLOCK; return(regionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWregionindex | | | | DESCRIPTION: Finds swath cross tracks within area of interest and returns | | region index and region ID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | regionID hid_t Region ID | | | | INPUTS: | | swathID hid_t Swath structure ID | | cornerlon double dec deg Longitude of opposite corners of box | | cornerlat double dec deg Latitude of opposite corners of box | | mode int Search mode | | HDFE_MIDPOINT - Use midpoint of Xtrack | | HDFE_ENDPOINT - Use endpoints of Xtrack | | HDFE_ANYPOINT - Use all points of Xtrack| | | | OUTPUTS: | | geodim char geolocation track dimension | | idxrange hsize_t indices of region for along track dim. | | | | NOTES: | | | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 03/13/00 A.Muslimov Modified to convert non-native datatypes to native | | ones. | | 06/21/00 A.Muslimov Casted "flag[]" to "int". Moved "l = (hsize_t)i" out| | of the loop "if (mapstatus == 2){}". | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_SWregionindex(hid_t swathID, double cornerlon[], double cornerlat[], int mode, char *geodim, hsize_t idxrange[]) { hid_t regionID = FAIL; /* Region ID (return value) */ hid_t k = 0; /* loop index (region counter) */ herr_t status = FAIL; /* status variable */ herr_t mapstatus = FAIL; /* status variable */ herr_t statLon = FAIL; /* status variable */ herr_t statLat = FAIL; /* status variable */ herr_t statCoLat = FAIL; /* status variable */ int validReg = FAIL; /* validReg flag */ int rank = FAIL; /* Rank of geolocation fields */ hid_t *nt = (hid_t *)NULL;/* number types */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t datasetid = FAIL; /* Dataset ID */ hid_t datatype = FAIL; /* Data type ID */ unsigned char found = 0; /* Found flag */ unsigned char *flag = (unsigned char *)NULL;/* Track flag array */ long idx = FAIL; /* Swath index */ long bndflag = FAIL; /* +/-180 boundary flag */ long lonTest = FAIL; /* Longitude test flag */ long latTest = FAIL; /* Latitude test flag */ hssize_t start[2] = {FAIL, FAIL};/* Start array (read) */ hssize_t anyStart[2] = {FAIL, FAIL};/* ANYPOINT start array (read) */ hssize_t i = 0, j = 0; /* Loop indices */ hsize_t l = 0; /* loop index */ hsize_t tmpVal = 0; /* Start region tmp value */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimension array */ hsize_t nElem = 0; /* Number of elements to read */ hsize_t stride[2] = {1, 1}; /* Stride array (read) */ hsize_t edge[2] = {0, 0}; /* Edge array (read) */ hsize_t anyEdge[2] = {0, 0}; /* ANYPOINT edge array (read) */ float tempFloat = 0.; /* Temporary float variable */ double lonTestVal = 0.; /* Longitude test value */ double latTestVal = 0.; /* Latitude test value */ double tempDouble = 0.; /* Temporary double variable */ size_t size = 0; /* Data type size (bytes) */ char *lonArr = (char *)NULL; /* Longitude data array */ char *latArr = (char *)NULL; /* Latitude data array */ char dimlist[HE5_HDFE_DIMBUFSIZE];/* Dimension list (geo fields) */ char latName[16]; /* Latitude field name */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ CHECKPOINTER(cornerlon); CHECKPOINTER(cornerlat); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWregionindex", &fid, &gid, &idx); /* Inclusion mode must be between 0 and 2 */ /* -------------------------------------- */ if (mode < 0 || mode > 2) { status = FAIL; sprintf(errbuf, "Improper Inclusion Mode: %d.\n", mode); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } strcpy(dimlist,""); if (status == SUCCEED) { /* Initialize dims[] array */ /* ----------------------- */ for (l = 0; l < HE5_DTSETRANKMAX; l++) dims[l] = 0; /* Allocate memory for nt variable */ /* ------------------------------- */ nt = (hid_t *)calloc(1, sizeof(hid_t)); if(nt == (hid_t *)NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get "Longitude" field info */ /* -------------------------- */ statLon = HE5_SWfieldinfo(swathID, "Longitude", &rank, dims, nt, dimlist,NULL); if (statLon != SUCCEED) { status = FAIL; sprintf(errbuf, "\"Longitude\" field not found.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(nt); } /* Get "Latitude" field info */ /* ------------------------- */ statLat = HE5_SWfieldinfo(swathID, "Latitude", &rank, dims, nt, dimlist,NULL); if (statLat != SUCCEED) { /* If not found check for "Colatitude" field info */ /* ---------------------------------------------- */ statCoLat = HE5_SWfieldinfo(swathID, "Colatitude", &rank, dims, nt, dimlist, NULL); if (statCoLat != SUCCEED) { /* Neither "Latitude" nor "Colatitude" field found */ /* ----------------------------------------------- */ status = FAIL; sprintf(errbuf, "Neither \"Latitude\" nor \"Colatitude\" fields found.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(nt); } else { /* Latitude field is "Colatitude" */ /* ------------------------------ */ strcpy(latName, "Colatitude"); } } else { /* Latitude field is "Latitude" */ /* ---------------------------- */ strcpy(latName, "Latitude"); } /* This line modifies the dimlist variable so only the along-track */ /* dimension remains. */ /* --------------------------------------------------------------- */ strtok(dimlist,","); mapstatus = HE5_SWgeomapinfo(swathID,dimlist); if(mapstatus == FAIL) { status = FAIL; sprintf(errbuf, "Cannot retrieve geo map information.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(nt); } strcpy(geodim,dimlist); if (status == SUCCEED) { /* Search along entire "Track" dimension from beginning to end */ /* ----------------------------------------------------------- */ start[0] = 0; edge[0] = dims[0]; /* If 1D geolocation fields then set mode to MIDPOINT */ /* -------------------------------------------------- */ if (rank == 1) { mode = HE5_HDFE_MIDPOINT; } switch (mode) { /* If MIDPOINT search single point in middle of "CrossTrack" */ /* --------------------------------------------------------- */ case HE5_HDFE_MIDPOINT: start[1] = HE5_EHhsize2hssize(dims[ 1 ]/2); if ( start[1] == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(nt); return(FAIL); } edge[1] = 1; break; /* If ENDPOINT search 2 points at either end of "CrossTrack" */ /* --------------------------------------------------------- */ case HE5_HDFE_ENDPOINT: start[1] = 0; stride[1] = dims[1] - 1; edge[1] = 2; break; /* If ANYPOINT do initial MIDPOINT search */ /* -------------------------------------- */ case HE5_HDFE_ANYPOINT: start[1] = HE5_EHhsize2hssize(dims[ 1 ]/2); if ( start[1] == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(nt); return(FAIL); } edge[1] = 1; break; } /* Compute number of elements */ /* -------------------------- */ nElem = edge[0] * edge[1]; /* Allocate space for longitude and latitude */ /* ------------------------------------------ */ lonArr = (char *)calloc(nElem, sizeof(double)); if(lonArr == NULL) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(nt); return(FAIL); } latArr = (char *) calloc(nElem, sizeof(double)); if(latArr == NULL) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(lonArr); free(nt); return(FAIL); } /* Allocate space for flag array */ /* ----------------------------- */ flag = (unsigned char *)calloc(edge[0] + 1, sizeof(unsigned char)); if(flag == NULL) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(lonArr); free(latArr); free(nt); return(FAIL); } /* Read Longitude and Latitude fields */ /* ---------------------------------- */ status = HE5_SWreadfield(swathID, "Longitude",start, stride, edge, lonArr); if( status == FAIL) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATASET, H5E_READERROR, "Cannot read the \"Longitude\" field."); HE5_EHprint("Error: Cannot read the \"Longitude\" field, occured", __FILE__, __LINE__); free(lonArr); free(latArr); free(nt); free(flag); return(FAIL); } status = HE5_SWreadfield(swathID, latName, start, stride, edge, latArr); if( status == FAIL) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATASET, H5E_READERROR, "Cannot read the \"Latitude\" field."); HE5_EHprint("Error: Cannot read the \"Latitude\" field, occured", __FILE__, __LINE__); free(lonArr); free(latArr); free(nt); free(flag); return(FAIL); } /* * If geolocation fields are FLOAT then cast each entry as DOUBLE */ datasetid = H5Dopen(HE5_SWXSwath[idx].geo_id, "Longitude"); if(datasetid == FAIL) { sprintf(errbuf, "Cannot open the dataset.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lonArr); free(latArr); free(nt); free(flag); return(FAIL); } datatype = H5Dget_type(datasetid); if(datatype == FAIL) { sprintf(errbuf, "Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lonArr); free(latArr); free(nt); free(flag); return(FAIL); } size = H5Tget_size(datatype); if(size == 0) { sprintf(errbuf, "Cannot get the data type size.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lonArr); free(latArr); free(nt); free(flag); return(FAIL); } status = H5Dclose(datasetid); if(status == FAIL) { sprintf(errbuf, "Cannot close the dataset.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lonArr); free(latArr); free(nt); free(flag); return(FAIL); } if ( H5Tequal( datatype, H5T_NATIVE_FLOAT) || H5Tequal( datatype, H5T_IEEE_F32LE) || H5Tequal( datatype, H5T_IEEE_F32BE) ) { for (i = nElem - 1; i >= 0; i--) { memmove(&tempFloat, lonArr + sizeof(float) * i, sizeof(float)); tempDouble = (double)tempFloat; memmove(lonArr + sizeof(double) * i, &tempDouble, sizeof(double)); memmove(&tempFloat, latArr + sizeof(float) * i, sizeof(float)); tempDouble = (double)tempFloat; memmove(latArr + sizeof(double) * i, &tempDouble, sizeof(double)); } } /* Set boundary flag */ /* ----------------- */ /* * This variable is set to 1 if the region of interest crosses * the +/- 180 longitude boundary */ bndflag = (cornerlon[0] < cornerlon[1]) ? 0 : 1; /* Main Search Loop */ /* ---------------- */ /* For each track ... */ /* ------------------ */ for (i = 0; i < edge[0]; i++) { /* For each value from Cross Track ... */ /* ----------------------------------- */ for (j = 0; j < edge[1]; j++) { /* Read in single lon & lat values from data buffers */ /* ------------------------------------------------- */ memmove(&lonTestVal, &lonArr[ sizeof(double) * (i * edge[1] + j)], sizeof(double)); memmove(&latTestVal, &latArr[ sizeof(double) * (i * edge[1] + j)], sizeof(double)); /* If longitude value > 180 convert to -180 to 180 range */ /* ----------------------------------------------------- */ if (lonTestVal > 180) lonTestVal = lonTestVal - 360; /* If Colatitude value convert to latitude value */ /* --------------------------------------------- */ if (statCoLat == 0) latTestVal = 90 - latTestVal; /* Test if lat value is within range */ /* --------------------------------- */ latTest = (latTestVal >= cornerlat[0] && latTestVal <= cornerlat[1]); if (bndflag == 1) { /* * If boundary flag set test whether longitude value * is outside region and then flip */ lonTest = (lonTestVal >= cornerlon[1] && lonTestVal <= cornerlon[0]); lonTest = 1 - lonTest; } else { lonTest = (lonTestVal >= cornerlon[0] && lonTestVal <= cornerlon[1]); } /* * If both longitude and latitude are within region set * flag on for this track */ if (lonTest + latTest == 2) { flag[i] = 1; found = 1; break; } } } /* ANYPOINT search */ /* --------------- */ if (mode == HE5_HDFE_ANYPOINT && rank > 1) { if (lonArr != NULL) free(lonArr); if (latArr != NULL) free(latArr); /* Allocate space for an entire single cross track */ /* ----------------------------------------------- */ lonArr = (char *)calloc(dims[1], sizeof(double)); if(lonArr == NULL) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); if (nt != NULL) free(nt); if (flag != NULL) free(flag); return(FAIL); } latArr = (char *)calloc(dims[1], sizeof(double)); if(latArr == NULL) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(lonArr); if (nt != NULL) free(nt); if (flag != NULL) free(flag); return(FAIL); } /* Setup start and edge */ /* -------------------- */ anyStart[1] = 0; anyEdge[0] = 1; anyEdge[1] = dims[1]; /* For each track ... */ /* ------------------ */ for (i = 0; i < edge[0]; i++) { /* If cross track not in region (with MIDPOINT search ... */ /* ------------------------------------------------------ */ if (flag[i] == 0) { /* Setup track start */ /* ----------------- */ anyStart[0] = i; /* Read in lon and lat values for cross track */ /* ------------------------------------------ */ status = HE5_SWreadfield(swathID, "Longitude", anyStart, NULL, anyEdge, lonArr); if( status == FAIL ) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATASET, H5E_READERROR, "Cannot read the \"Longitude\" field. \n"); HE5_EHprint("Error: Cannot read the \"Longitude\" field, occured", __FILE__, __LINE__); free(lonArr); free(latArr); if (nt != NULL) free(nt); if (flag != NULL) free(flag); return(FAIL); } status = HE5_SWreadfield(swathID, latName, anyStart, NULL, anyEdge, latArr); if( status == FAIL ) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATASET, H5E_READERROR, "Cannot read the \"Latitude\" field. \n"); HE5_EHprint("Error: Cannot read the \"Latitude\" field, occured", __FILE__, __LINE__); free(lonArr); free(latArr); if (nt != NULL) free(nt); if (flag != NULL) free(flag); return(FAIL); } /* * If geolocation fields are FLOAT32 then cast each * entry as FLOAT64 */ datasetid = H5Dopen(HE5_SWXSwath[idx].geo_id, "Longitude"); if(datasetid == FAIL) { sprintf(errbuf, "Cannot open the dataset.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lonArr); free(latArr); if (nt != NULL) free(nt); if (flag != NULL) free(flag); return(FAIL); } datatype = H5Dget_type(datasetid); if(datatype == FAIL) { sprintf(errbuf, "Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lonArr); free(latArr); if (nt != NULL) free(nt); if (flag != NULL) free(flag); return(FAIL); } size = H5Tget_size(datatype); if(size == 0) { sprintf(errbuf, "Cannot get the data type size.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lonArr); free(latArr); if (nt != NULL) free(nt); if (flag != NULL) free(flag); return(FAIL); } status = H5Dclose(datasetid); if(status == FAIL) { sprintf(errbuf, "Cannot close the dataset.\n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lonArr); free(latArr); if (nt != NULL) free(nt); if (flag != NULL) free(flag); return(FAIL); } if ( H5Tequal( datatype, H5T_NATIVE_FLOAT) || H5Tequal( datatype, H5T_IEEE_F32LE) || H5Tequal( datatype, H5T_IEEE_F32BE) ) { for (j = dims[1] - 1; j >= 0; j--) { memmove(&tempFloat, lonArr + sizeof(float) * j, sizeof(float)); tempDouble = (double)tempFloat; memmove(lonArr + sizeof(double) * j, &tempDouble, sizeof(double)); memmove(&tempFloat, latArr + sizeof(float) * j, sizeof(float)); tempDouble = (double)tempFloat; memmove(latArr + sizeof(double) * j, &tempDouble, sizeof(double)); } } /* For each value from Cross Track ... */ /* ----------------------------------- */ for (j = 0; j < dims[1]; j++) { /* Read in single lon & lat values from buffers */ /* -------------------------------------------- */ memmove(&lonTestVal, &lonArr[ sizeof(double) * j ], sizeof(double)); memmove(&latTestVal, &latArr[ sizeof(double) * j ], sizeof(double)); /* If lon value > 180 convert to -180 - 180 range */ /* ---------------------------------------------- */ if (lonTestVal > 180) { lonTestVal = lonTestVal - 360; } /* If Colatitude value convert to latitude value */ /* --------------------------------------------- */ if (statCoLat == 0) { latTestVal = 90 - latTestVal; } /* Test if lat value is within range */ /* --------------------------------- */ latTest = (latTestVal >= cornerlat[0] && latTestVal <= cornerlat[1]); if (bndflag == 1) { /* * If boundary flag set test whether * longitude value is outside region and then * flip */ lonTest = (lonTestVal >= cornerlon[1] && lonTestVal <= cornerlon[0]); lonTest = 1 - lonTest; } else { lonTest = (lonTestVal >= cornerlon[0] && lonTestVal <= cornerlon[1]); } /* * If both longitude and latitude are within * region set flag on for this track */ if (lonTest + latTest == 2) { flag[i] = 1; found = 1; break; } } } } } /* If within region setup Region Structure */ /* --------------------------------------- */ if (found == 1) { /* For all entries in SWXRegion array ... */ /* -------------------------------------- */ for (k = 0; k < HE5_NSWATHREGN; k++) { /* If empty region ... */ /* --------------------- */ if ( HE5_SWXRegion[ k ] == 0 ) { /* Allocate space for region entry */ /* ------------------------------- */ HE5_SWXRegion[ k ] = (struct HE5_swathRegion *) calloc(1, sizeof(struct HE5_swathRegion)); if( HE5_SWXRegion[ k ] == NULL ) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); if(lonArr != NULL) free(lonArr); if(latArr != NULL) free(latArr); if(flag != NULL) free(flag); if(nt != (hid_t *)NULL) free(nt); return(FAIL); } /* Store file and swath ID */ /* ----------------------- */ HE5_SWXRegion[ k ]->fid = fid; HE5_SWXRegion[ k ]->swathID = swathID; /* Set Start & Stop Vertical arrays to FAIL */ /* ---------------------------------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) { HE5_SWXRegion[ k ]->StartVertical[j] = FAIL; HE5_SWXRegion[ k ]->StopVertical[j] = FAIL; } /* Set region ID */ /* ------------- */ regionID = k; break; } } /* Find start and stop of regions */ /* ------------------------------ */ /* Subtract previous flag value from current one */ /* --------------------------------------------- */ /* * Transisition points will have flag value (+1) start or * (255 = (uint8_t) -1) stop of region */ for ( i = edge[0]; i > 0; i-- ) flag[ i ] -= flag[i - 1]; for ( i = 0; i <= edge[0]; i++ ) { /* Start of region */ /* --------------- */ if ( (int)flag[i] == 1 ) { /* Delyth Jones Moved the increment of the region down */ /* to next if statement j = ++SWXRegion[k]->nRegions; */ /* using temp value, if not equal to stop region */ /* invalid region otherwise ok Delyth Jones */ tmpVal = HE5_EHhssize2hsize(i + 1); if ( tmpVal == 0 ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); if(lonArr != NULL) free(lonArr); if(latArr != NULL) free(latArr); if(flag != NULL) free(flag); if(nt != (hid_t *)NULL) free(nt); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* End of region */ /* ------------- */ if ( (int)flag[i] == 255 ) { if( tmpVal != i ) { /* Increment (multiple) region counter */ /* ----------------------------------- */ j = ++HE5_SWXRegion[k]->nRegions; l = HE5_EHhssize2hsize(i); if (mapstatus == 2) { if ((tmpVal - 1) % 2 == 1) tmpVal = tmpVal + 1; if ((l-1) % 2 == 0) l = l - 1; } HE5_SWXRegion[k]->StartRegion[j - 1] = HE5_EHhsize2long( (tmpVal - 1) ); if ( HE5_SWXRegion[k]->StartRegion[j - 1] == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); if(lonArr != NULL) free(lonArr); if(latArr != NULL) free(latArr); if(flag != NULL) free(flag); if(nt != (hid_t *)NULL ) free(nt); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } idxrange[0] = tmpVal - 1; HE5_SWXRegion[k]->StopRegion[j - 1] = HE5_EHhsize2long( (l - 1) ); if ( HE5_SWXRegion[k]->StopRegion[j - 1] == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); if(lonArr != NULL) free(lonArr); if(latArr != NULL) free(latArr); if(flag != NULL) free(flag); if(nt != (hid_t *)NULL ) free(nt); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } idxrange[1] = l - 1; validReg = 0; } } } } if(lonArr != NULL) free(lonArr); if(latArr != NULL) free(latArr); if(flag != NULL) free(flag); } if(nt != (hid_t *)NULL) free(nt); } if(validReg != 0) { H5Epush(__FILE__, "HE5_SWregionindex", __LINE__, H5E_FUNC, H5E_CANTINIT, "Invalid Region ID. \n"); HE5_EHprint("Error: Invalid Region ID, occured", __FILE__, __LINE__); regionID = FAIL; } COMPLETION: return(regionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdeftimeperiod | | | | DESCRIPTION: Finds swath cross tracks observed during time period and | | returns period ID | | | | region ID | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | periodID hid_t Period ID | | | | INPUTS: | | swathID hid_t Swath structure ID | | starttime double TAI sec Start of time period | | stoptime doubel TAI sec Stop of time period | | mode int Search mode | | HDFE_MIDPOINT - Use midpoint of Xtrack | | HDFE_ENDPOINT - Use endpoints of Xtrack | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | | | 8/23/99 A.Muslimov Changed the datatype of fid from int32_t to hid_t. | | 03/13/00 A.Muslimov Modified to convert non-native datatypes to native | | ones. | | July 00 A.Muslimov Unmasked hdf5 data types. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_SWdeftimeperiod(hid_t swathID, double starttime, double stoptime, int mode) { hid_t periodID = FAIL; /* Period ID (return) */ hid_t k = 0; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ int dum = 0; /* Dummy (loop) variable */ int rank = FAIL; /* Rank of a dataset */ herr_t status = FAIL; /* status variable */ herr_t statTime = FAIL; /* status variable */ hid_t *nt = (hid_t *)NULL; /* number types */ unsigned char found = 0; /* Found flag */ long idx = FAIL; /* Swath index */ long i = 0, j = 0; /* Loop indices */ hssize_t start[2] = {FAIL, FAIL}; /* Start array (read) */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimens. of geo fields */ hsize_t stride[2] = {1, 1}; /* Stride array (read) */ hsize_t edge[2] = {0, 0}; /* Edge array (read) */ double timeTest = 0.; /* Time test value */ double *timeDouble = (double *)NULL; /* Time data array */ char dimlist[HE5_HDFE_DIMBUFSIZE]; /* Dim. list (geo flds) */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdeftimeperiod", &fid, &gid, &idx); if (status == SUCCEED) { /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[i] = 0; strcpy(dimlist,""); /* Get "Time" field info */ /* --------------------- */ nt = (hid_t *)calloc(1, sizeof(hid_t)); if(nt == (hid_t *)NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWdeftimeperiod", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } statTime = HE5_SWfieldinfo(swathID, "Time", &rank, dims, nt, dimlist,NULL); if (statTime != SUCCEED) { status = FAIL; sprintf(errbuf, "\"Time\" field not found.\n"); H5Epush(__FILE__, "HE5_SWdeftimeperiod", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(nt); } if (status == SUCCEED) { /* Search along entire "Track" dimension from beginning to end */ /* ----------------------------------------------------------- */ start[0] = 0; edge[0] = dims[0]; /* If 1D geolocation fields then set mode to MIDPOINT */ /* -------------------------------------------------- */ if (rank == 1) { mode = HE5_HDFE_MIDPOINT; } switch (mode) { /* If MIDPOINT search single point in middle of "CrossTrack" */ /* --------------------------------------------------------- */ case HE5_HDFE_MIDPOINT: start[1] = HE5_EHhsize2hssize(dims[ 1 ]/2); if ( start[1] == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWdeftimeperiod", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); if (nt != NULL) free(nt); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } edge[1] = 1; /* Allocate space for time data */ /* ---------------------------- */ timeDouble = (double *)calloc(edge[0], sizeof(double)); if(timeDouble == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_SWdeftimeperiod", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (nt != NULL) free(nt); return(FAIL); } /* Read "Time" field */ /* ----------------- */ status = HE5_SWreadfield(swathID,"Time",start,NULL,edge,timeDouble); break; /* If ENDPOINT search 2 points at either end of "CrossTrack" */ /* --------------------------------------------------------- */ case HE5_HDFE_ENDPOINT: start[1] = 0; stride[1] = dims[1] - 1; edge[1] = 2; /* Allocate space for time data */ /* ---------------------------- */ timeDouble = (double *)calloc(edge[0] * 2, sizeof(double)); if(timeDouble == (double *)NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_SWdeftimeperiod", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (nt != NULL) free(nt); return(FAIL); } /* Read "Time" field */ /* ----------------- */ status = HE5_SWreadfield(swathID, "Time", start, stride, edge, timeDouble); break; } /* For each track (from top) ... */ /* ----------------------------- */ for (i = 0; i < edge[0]; i++) { /* For each value from Cross Track ... */ /* ----------------------------------- */ for (j = 0; j < edge[1]; j++) { /* Get time test value */ /* ------------------- */ timeTest = timeDouble[i * edge[1] + j]; /* If within time period ... */ /* ------------------------- */ if (timeTest >= starttime && timeTest <= stoptime) { /* Set found flag */ /* -------------- */ found = 1; /* For all entries in SWXRegion array ... */ /* -------------------------------------- */ for (k = 0; k < HE5_NSWATHREGN; k++) { /* If empty region ... */ /* ------------------- */ if (HE5_SWXRegion[k] == 0) { /* Allocate space for region entry */ /* ------------------------------- */ HE5_SWXRegion[k] = (struct HE5_swathRegion *) calloc(1, sizeof(struct HE5_swathRegion)); if(HE5_SWXRegion[k] == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_SWdeftimeperiod", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(nt != (hid_t *)NULL) free(nt); if(timeDouble != (double *)NULL) free(timeDouble); return(FAIL); } /* Store file and swath ID */ /* ----------------------- */ HE5_SWXRegion[k]->fid = fid; HE5_SWXRegion[k]->swathID = swathID; /* Set number of isolated regions to 1 */ /* ----------------------------------- */ HE5_SWXRegion[k]->nRegions = 1; /* Set start of region to first track found */ /* ---------------------------------------- */ HE5_SWXRegion[k]->StartRegion[0] = i; /* Set Start & Stop Vertical arrays to FAIL */ /* ---------------------------------------- */ for (dum = 0; dum < HE5_DTSETRANKMAX; dum++) { HE5_SWXRegion[k]->StartVertical[dum] = FAIL; HE5_SWXRegion[k]->StopVertical[dum] = FAIL; } /* Set period ID */ /* ------------- */ periodID = k; break; /* Break from "k" loop */ } } } if (found == 1) { break; /* Break from "j" loop */ } } if (found == 1) { break; /* Break from "i" loop */ } } /* Clear found flag */ /* ---------------- */ found = 0; /* For each track (from bottom) ... */ /* -------------------------------- */ for (i = edge[0] - 1; i >= 0; i--) { /* For each value from Cross Track ... */ /* ----------------------------------- */ for (j = 0; j < edge[1]; j++) { /* Get time test value */ /* ------------------- */ timeTest = timeDouble[i * edge[1] + j]; /* If within time period ... */ /* ------------------------- */ if (timeTest >= starttime && timeTest <= stoptime) { /* Set found flag */ /* -------------- */ found = 1; /* Set start of region to first track found */ /* ---------------------------------------- */ HE5_SWXRegion[k]->StopRegion[0] = i; break; /* Break from "j" loop */ } } if (found == 1) { break; /* Break from "i" loop */ } } if (timeDouble != (double *)NULL) free(timeDouble); } } if (nt != (hid_t *)NULL) free(nt); return (periodID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWextractregion | | | | DESCRIPTION: Retrieves data from specified region. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | regionID hid_t Region ID | | fieldname char Fieldname | | externalflag int External geolocation fields flag | | HDFE_INTERNAL (0) | | HDFE_EXTERNAL (1) | | | | OUTPUTS: | | buffer void Data buffer containing subsetted region | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 04/19/00 A.Muslimov Changed type of 'slen' from long to size_t. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Feb. 03 Terry Haran/ | | Abe Taaheri Forced map offset to 0 so that data is extracted | | without offset consideration. This will preserve | | original mapping between geofields and the data | | field. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWextractregion(hid_t swathID, hid_t regionID, char *fieldname, int externalflag, void *buffer) { herr_t status = FAIL; /* Return status variable */ herr_t statMap = FAIL; /* status variable */ int rank = FAIL; /* Field rank */ int dum = FAIL; /* Dummy (rank) variable */ int i = 0, j = 0, k = 0; /* Loop indices */ hid_t ntype[1] = {FAIL}; /* Field number types */ hid_t dumtype[1] = {FAIL}; /* Dummy number types */ unsigned char found = 0; /* Found flag */ unsigned char vfound = 0; /* Found flag for vert.subset. */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t fieldID = FAIL; /* Field dataset ID */ long idx = FAIL; /* Swath index */ long index = FAIL; /* Geo Dim Index */ long nDim = 0; /* Number of dimensions */ long offset = FAIL; /* Mapping offset */ long incr = FAIL; /* Mapping increment */ long *idxmap = (long *)NULL; /* Index mapping array */ long nXtrk = 0; /* Number of cross tracks */ size_t bufOffset = 0; /* Output buffer offset */ size_t size = 0; /* Size of data buffer */ size_t slen[HE5_DTSETRANKMAX]; /* String length array */ hssize_t start[HE5_DTSETRANKMAX]; /* Start array for data read */ hsize_t idxMapElem = 0; /* Number of idxmap elements */ hsize_t dumsize = 0; /* Dummy size variable */ hsize_t dumdims[HE5_DTSETRANKMAX]; /* Dimensions array */ hsize_t edge[HE5_DTSETRANKMAX]; /* Edge array for data read */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimensions */ char dimlist[HE5_HDFE_DIMBUFSIZE];/* Dimension list */ char geodim[HE5_HDFE_DIMBUFSIZE]; /* Geolocation dimension list */ char tgeodim[HE5_HDFE_DIMBUFSIZE];/* Time field dimension list */ char utlbuf[HE5_HDFE_DIMBUFSIZE]; /* Utility buffer */ char *ptr[HE5_DTSETRANKMAX]; /* String pointer array */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* error message buffer */ CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWextractregion", &fid, &gid, &idx); /* Check for valid region ID */ /* ------------------------- */ if (status == SUCCEED) { if (regionID < 0 || regionID >= HE5_NSWATHREGN) { status = FAIL; sprintf(errbuf, "Invalid Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWextractregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Check for active region ID */ /* -------------------------- */ if (status == SUCCEED) { if (HE5_SWXRegion[regionID] == 0) { status = FAIL; sprintf(errbuf, "Inactive Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWextractregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Check that geo file and data file are same for INTERNAL subsetting */ /* ------------------------------------------------------------------ */ if (status == SUCCEED) { if (HE5_SWXRegion[regionID]->fid != fid && externalflag != HE5_HDFE_EXTERNAL) { status = FAIL; sprintf(errbuf, "Region is not defined for this file.\n"); H5Epush(__FILE__, "HE5_SWextractregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Check that geo swath and data swath are same for INTERNAL subsetting */ /* -------------------------------------------------------------------- */ if (status == SUCCEED) { if (HE5_SWXRegion[regionID]->swathID != swathID && externalflag != HE5_HDFE_EXTERNAL) { status = FAIL; sprintf(errbuf, "Region is not defined for this SWath.\n"); H5Epush(__FILE__, "HE5_SWextractregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Check for valid fieldname */ /* ------------------------- */ if (status == SUCCEED) { /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[i] = 0; /* Get data field info */ /* ------------------- */ strcpy(dimlist,""); status = HE5_SWfieldinfo(swathID, fieldname, &rank, dims, ntype, dimlist, NULL); if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Fieldname \"%s\" not found.\n", fieldname); H5Epush(__FILE__, "HE5_SWextractregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* No problems so proceed ... */ /* -------------------------- */ if (status == SUCCEED) { /* Initialize start and edge for all dimensions */ /* -------------------------------------------- */ for (i = 0; i < rank; i++) { start[i] = 0; edge[i] = dims[i]; } /* Vertical Subset */ /* --------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) { /* If active vertical subset ... */ /* ----------------------------- */ if (HE5_SWXRegion[regionID]->StartVertical[j] != FAIL) { /* Find vertical dimension within dimlist */ /* -------------------------------------- */ dum = HE5_EHlong2int(HE5_EHstrwithin(HE5_SWXRegion[regionID]->DimNamePtr[j],dimlist, ',') ); if ( dum == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWextractregion", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* If dimension found ... */ /* ---------------------- */ if (dum != FAIL) { /* Compute start and edge for vertical dimension */ /* --------------------------------------------- */ vfound = 1; start[dum] = HE5_SWXRegion[regionID]->StartVertical[j]; edge[dum] = HE5_SWXRegion[regionID]->StopVertical[j] - HE5_SWXRegion[regionID]->StartVertical[j] + 1; } else { /* Vertical dimension not found */ /* ---------------------------- */ status = FAIL; sprintf(errbuf, "Vertical Dimension Not Found: \"%s\".\n", HE5_SWXRegion[regionID]->DimNamePtr[j]); H5Epush(__FILE__, "HE5_SWextractregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } /* No problems so proceed ... */ /* -------------------------- */ if (status == SUCCEED) { /* If non-vertical subset regions defined ... */ /* ------------------------------------------ */ if (HE5_SWXRegion[regionID]->nRegions > 0) { /* Initialize dumdims[] array */ /* -------------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) dumdims[i] = 0; /* Get geolocation dimension name */ /* ------------------------------ */ strcpy(geodim,""); status = HE5_SWfieldinfo(HE5_SWXRegion[regionID]->swathID, "Longitude", &dum, dumdims, dumtype, geodim, NULL); /* If Time field being used, check for dimensions */ /* ---------------------------------------------- */ if (HE5_timeflag == 1) { /* code change to fix time subset bug for Landsat7 */ strcpy(tgeodim,""); status = HE5_SWfieldinfo(HE5_SWXRegion[regionID]->swathID,"Time", &dum, dumdims, dumtype, tgeodim, NULL); if (strcmp(geodim, tgeodim) != 0) { strcpy(geodim, tgeodim); } } HE5_timeflag = 0; /* Initialize slen[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) slen[i] = 0; /* Get "Track" (first) Dimension from geo dimlist */ /* ---------------------------------------------- */ nDim = HE5_EHparsestr(geodim, ',', ptr, slen); geodim[slen[0]] = 0; /* Parse Data Field Dimlist & find mapping */ /* --------------------------------------- */ nDim = HE5_EHparsestr(dimlist, ',', ptr, slen); /* Loop through all dimensions and search for mapping */ /* -------------------------------------------------- */ strcpy(utlbuf,""); for (i = 0; i < nDim; i++) { memmove(utlbuf, ptr[i], slen[i]); utlbuf[slen[i]] = 0; statMap = HE5_SWmapinfo(swathID, geodim, utlbuf,&offset, &incr); /* * Force offset to 0. * We're not changing the mapping, so we want * the original offset to apply to the subsetted data. * Otherwise, bad things happen, such as subsetting * past the end of the original data, and being unable * to read the first elements of the * original data. * The offset is only important for aligning the * data with interpolated (incr > 0) or decimated * (incr < 0) geolocation information for the data. */ offset = 0; /* Mapping found */ /* ------------- */ if (statMap == SUCCEED) { found = 1; index = i; break; } } /* If mapping not found check for geodim within dimlist */ /* ---------------------------------------------------- */ if (found == 0) { index = HE5_EHstrwithin(geodim, dimlist, ','); /* Geo dimension found within subset field dimlist */ /* ----------------------------------------------- */ if (index != FAIL) { found = 1; offset = 0; incr = 1; } } /* If mapping not found check for indexed mapping */ /* ---------------------------------------------- */ if (found == 0) { /* Get size of geo dim & allocate space of index mapping */ /* ----------------------------------------------------- */ dumsize = HE5_SWdiminfo(swathID, geodim); if(dumsize == 0) { H5Epush(__FILE__, "HE5_SWextractregion", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot get the dimension size. \n"); HE5_EHprint("Error: Cannot get the dimension size, occured", __FILE__, __LINE__); return(FAIL); } idxmap = (long *)calloc(dumsize, sizeof(long)); if(idxmap == NULL) { H5Epush(__FILE__, "HE5_SWextractregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Loop through all dimensions and search for mapping */ /* -------------------------------------------------- */ strcpy(utlbuf,""); for (i = 0; i < nDim; i++) { memmove(utlbuf, ptr[i], slen[i]); utlbuf[slen[i]] = 0; idxMapElem = HE5_SWidxmapinfo(swathID, geodim, utlbuf, idxmap); /* Mapping found */ /* ------------- */ if (idxMapElem > 0) { found = 1; index = i; break; } } } /* If regular mapping found ... */ /* ---------------------------- */ if (found == 1 && idxMapElem == 0) { for (k = 0; k < HE5_SWXRegion[regionID]->nRegions; k++) { if (k > 0) { /* Compute size in bytes of previous region */ /* ---------------------------------------- */ size = edge[0]; for (j = 1; j < rank; j++) { size *= edge[j]; } size *= HE5_SWfieldsizeID(swathID, fieldname, &fieldID); /* Compute output buffer offset */ /* ---------------------------- */ bufOffset += size; } else { /* Initialize output buffer offset */ /* ------------------------------- */ bufOffset = 0; } /* Compute number of cross tracks in region */ /* ---------------------------------------- */ nXtrk = HE5_SWXRegion[regionID]->StopRegion[k] - HE5_SWXRegion[regionID]->StartRegion[k] + 1; /* Positive increment (geodim <= datadim) */ /* -------------------------------------- */ if (incr > 0) { start[index] = HE5_SWXRegion[regionID]->StartRegion[k] * incr + offset; edge[index] = nXtrk * incr; } else { /* Negative increment (geodim > datadim) */ /* ------------------------------------- */ start[index] = HE5_SWXRegion[regionID]->StartRegion[k] / (-incr) + offset; edge[index] = nXtrk / (-incr); /* * If Xtrk not exactly divisible by incr, round * edge to next highest integer */ if (nXtrk % (-incr) != 0) { edge[index]++; } } /* Read Data into output buffer */ /* ---------------------------- */ status = HE5_SWreadfield(swathID, fieldname,start, NULL, edge,(unsigned char *) buffer + bufOffset); } } else if (found == 1 && idxMapElem > 0) { /* Indexed Mapping */ /* --------------- */ for (k = 0; k < HE5_SWXRegion[regionID]->nRegions; k++) { if (k > 0) { /* Compute size in bytes of previous region */ /* ---------------------------------------- */ size = edge[0]; for (j = 1; j < rank; j++) { size *= edge[j]; } size *= HE5_SWfieldsizeID(swathID,fieldname, &fieldID); /* Compute output buffer offset */ /* ---------------------------- */ bufOffset += size; } else { /* Initialize output buffer offset */ /* ------------------------------- */ bufOffset = 0; } /* Compute start & edge from index mappings */ /* ---------------------------------------- */ start[index] = idxmap[HE5_SWXRegion[regionID]->StartRegion[k]]; edge[index] = idxmap[HE5_SWXRegion[regionID]->StopRegion[k]] - idxmap[HE5_SWXRegion[regionID]->StartRegion[k]] + 1; /* Read Data into output buffer */ /* ---------------------------- */ status = HE5_SWreadfield(swathID, fieldname, start, NULL, edge,(unsigned char *)buffer + bufOffset); } } else if(vfound == 1) { /* Vertical subsetting found previously, */ /* read out data buffer (xhua) */ status = HE5_SWreadfield(swathID, fieldname, start, NULL, edge, (unsigned char *)buffer); } else { /* Mapping not found */ /* ----------------- */ status = FAIL; sprintf(errbuf,"Mapping Not Defined for \"%s\" Dimension.\n", geodim); } } else { /* Read Data (Vert SS only) */ /* ------------------------ */ status = HE5_SWreadfield(swathID, fieldname, start, NULL, edge,(unsigned char *)buffer); } } } /* Free index mappings if applicable */ /* --------------------------------- */ if (idxmap != NULL) free(idxmap); COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWextractperiod | | | | DESCRIPTION: Retrieves data from specified period. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | periodID hid_t Period ID | | fieldname char Fieldname | | externalflag int External geolocation fields flag: | | | | HDFE_INTERNAL (0) | | HDFE_EXTERNAL (1) | | OUTPUTS: | | buffer void Data buffer containing subsetted region | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWextractperiod(hid_t swathID, hid_t periodID, char *fieldname, int externalflag, void *buffer) { herr_t status = FAIL;/* routine return status variable */ HE5_timeflag = 1; CHECKPOINTER(fieldname); /* Call SWextractregion routine */ /* ---------------------------- */ status = HE5_SWextractregion(swathID, periodID, fieldname, externalflag, (char *)buffer); COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdupregion | | | | DESCRIPTION: Duplicates a region | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | newregionID hid_t New region ID | | | | INPUTS: | | oldregionID hid_t Old region ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_SWdupregion(hid_t oldregionID) { hid_t newregionID = FAIL;/* New region ID (return) */ hid_t i; /* Loop index */ /* Find first empty (inactive) region */ /* ---------------------------------- */ for (i = 0; i < HE5_NSWATHREGN; i++) { if (HE5_SWXRegion[ i ] == 0) { /* Allocate space for new swath region entry */ /* ----------------------------------------- */ HE5_SWXRegion[ i ] = (struct HE5_swathRegion *) calloc(1, sizeof(struct HE5_swathRegion)); if(HE5_SWXRegion[ i ] == NULL) { H5Epush(__FILE__, "HE5_SWdupregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Copy old region structure data to new region */ /* -------------------------------------------- */ *HE5_SWXRegion[ i ] = *HE5_SWXRegion[ oldregionID ]; /* Define new region ID */ /* -------------------- */ newregionID = i; break; } } return (newregionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefvrtregion | | | | DESCRIPTION: Finds elements of a monotonic field within a given range. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | regionID hid_t Region ID | | | | INPUTS: | | swathID hid_t Swath structure ID | | regionID hid_t Region ID | | vertObj char Vertical object to subset | | range double Vertical subsetting range | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 03/13/00 A.Muslimov Modified to convert non-native datatypes to | | native ones. | | | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Mar 04 S.Zhao Modified for supported field type. | | END_PROLOG | -----------------------------------------------------------------------------*/ /* Macro to initialize swath region entry */ /* -------------------------------------- */ /* * 1) Find empty (inactive) region. 2) Allocate space for region entry. 3) * Store file ID and swath ID. 4) Set region ID. 5) Initialize vertical * subset entries to FAIL. */ #define HE5_SETSWTHREG \ \ for (k = 0; k < HE5_NSWATHREGN; k++) \ { \ if (HE5_SWXRegion[k] == 0) \ { \ HE5_SWXRegion[k] = (struct HE5_swathRegion *) \ calloc(1, sizeof(struct HE5_swathRegion)); \ HE5_SWXRegion[k]->fid = fid; \ HE5_SWXRegion[k]->swathID = swathID; \ regionID = k; \ for (j = 0; j < HE5_DTSETRANKMAX; j++) \ { \ HE5_SWXRegion[k]->StartVertical[j] = FAIL; \ HE5_SWXRegion[k]->StopVertical[j] = FAIL; \ } \ break; \ } \ } /* Macro to fill vertical subset entry */ /* ----------------------------------- */ /* * 1) Find empty (inactive) vertical region. 2) Set start of vertical region. * 3) Allocate space for name of vertical dimension. 4) Write vertical * dimension name. */ #define HE5_FILLVERTREG \ for (j = 0; j < HE5_DTSETRANKMAX; j++) \ { \ if (HE5_SWXRegion[regionID]->StartVertical[j] == FAIL) \ { \ HE5_SWXRegion[regionID]->StartVertical[j] = i; \ HE5_SWXRegion[regionID]->DimNamePtr[j] = \ (char *)calloc( (slen + 1), sizeof(char) ); \ memmove(HE5_SWXRegion[regionID]->DimNamePtr[j], \ dimlist, slen + 1); \ break; \ } \ } hid_t HE5_SWdefvrtregion(hid_t swathID, hid_t regionID, char *vertObj, double range[]) { hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t dtype = FAIL;/* Data type ID */ hid_t fieldID = FAIL;/* Field related dataset ID */ hid_t k = 0; /* Loop index */ herr_t status = FAIL;/* routine return status variable */ int vertINT = 0; /* Temporary INT variable */ int rank = FAIL;/* Field rank */ int temp = FAIL;/* Temporary data type code */ int j = 0; /* Loop index */ hid_t *nt = (hid_t *)NULL; /* number types */ unsigned char found = 0; /* Found flag */ long idx = FAIL; /* Swath index */ long slen = 0; /* String length */ long i = 0; /* Loop index */ hsize_t dims[HE5_DTSETRANKMAX];/* Field dimensions */ size_t size = 0; /* Size of numbertype in bytes */ short vertSHT = 0; /* Temporary SHORT variable */ float vertFLT = 0.; /* Temporary FLOAT variable */ double vertDBL = 0.; /* Temporary DOUBLE variable */ char *vertArr = (char *)NULL;/* Ptr to vrt field data buffer */ char dimlist[HE5_HDFE_DIMBUFSIZE];/* Dimension list */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(vertObj); CHECKPOINTER(range); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdefvrtregion", &fid, &gid, &idx); strcpy(dimlist,""); if (status == SUCCEED) { /* Copy first 4 characters of vertObj into dimlist */ /* ----------------------------------------------- */ memmove(dimlist, vertObj, 4); dimlist[4] = 0; /* If first 4 characters of vertObj = "DIM:" ... */ /* --------------------------------------------- */ /* Vertical Object is dimension name */ /* --------------------------------- */ if (strcmp(dimlist, "DIM:") == 0) { /* Get string length of vertObj (minus "DIM:) */ /* ------------------------------------------ */ slen = strlen(vertObj) - 4; /* Setup swath region entry */ /* ------------------------ */ if (regionID == FAIL) { HE5_SETSWTHREG; } /* Find first empty (inactive) vertical subset entry */ /* ------------------------------------------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) { if (HE5_SWXRegion[regionID]->StartVertical[j] == FAIL) { /* Store start & stop of vertical region */ /* ------------------------------------- */ HE5_SWXRegion[regionID]->StartVertical[j] = (long)range[0]; HE5_SWXRegion[regionID]->StopVertical[j] = (long)range[1]; /* Store vertical dimension name */ /* ----------------------------- */ HE5_SWXRegion[regionID]->DimNamePtr[j] = (char *)calloc( (slen + 1), sizeof(char) ); if(HE5_SWXRegion[regionID]->DimNamePtr[j] == NULL) { H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } memmove(HE5_SWXRegion[regionID]->DimNamePtr[j], vertObj + 4, slen + 1); break; } } } else { /* Check for valid fieldname */ /* ------------------------- */ nt = (hid_t *)calloc(1, sizeof(hid_t)); if ( nt == (hid_t *)NULL ) { status = FAIL; sprintf( errbuf,"Cannot allocate memory for data type class ID.\n"); H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Initialize dims[] array */ /* ----------------------- */ for ( j = 0; j < HE5_DTSETRANKMAX; j++) dims[j] = 0; /* Get field information */ /* --------------------- */ status = HE5_SWfieldinfo(swathID, vertObj, &rank, dims, nt,dimlist,NULL); if (status != SUCCEED) { status = FAIL; sprintf(errbuf,"Vertical Field: \"%s\" not found.\n", vertObj); H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (nt != NULL) free(nt); } /* Get field ID and field data type */ /* ------------------------------- */ HE5_SWfieldsizeID(swathID, vertObj, &fieldID); dtype = H5Dget_type( fieldID); /* Check for supported field type */ /* ------------------------------ */ if (!H5Tequal(dtype, H5T_NATIVE_SHORT) && !H5Tequal(dtype, H5T_STD_I16BE) && !H5Tequal(dtype, H5T_STD_I16LE) && !H5Tequal(dtype, H5T_NATIVE_INT) && !H5Tequal(dtype, H5T_STD_I32BE) && !H5Tequal(dtype, H5T_STD_I32LE) && !H5Tequal(dtype, H5T_NATIVE_FLOAT) && !H5Tequal(dtype, H5T_IEEE_F32BE) && !H5Tequal(dtype, H5T_IEEE_F32LE) && !H5Tequal(dtype, H5T_NATIVE_DOUBLE) && !H5Tequal(dtype, H5T_IEEE_F64BE) && !H5Tequal(dtype, H5T_IEEE_F64LE)) { status = FAIL; sprintf(errbuf,"Fieldtype not supported for vertical subsetting"); H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (nt != NULL) free(nt); } if ( H5Tequal( dtype, H5T_NATIVE_SHORT) || H5Tequal( dtype, H5T_STD_I16BE) || H5Tequal( dtype, H5T_STD_I16LE) ) temp = 1; else if ( H5Tequal(dtype, H5T_NATIVE_INT) || H5Tequal(dtype, H5T_STD_I32BE) || H5Tequal(dtype, H5T_STD_I32LE) ) temp = 2; else if ( H5Tequal( dtype, H5T_NATIVE_FLOAT) || H5Tequal( dtype, H5T_IEEE_F32BE) || H5Tequal( dtype, H5T_IEEE_F32LE) ) temp = 3; else if ( H5Tequal(dtype, H5T_NATIVE_DOUBLE) || H5Tequal(dtype, H5T_IEEE_F64BE) || H5Tequal(dtype, H5T_IEEE_F64LE) ) temp = 4; /* Check that vertical dimension is 1D */ /* ----------------------------------- */ if (status == SUCCEED) { if (rank != 1) { status = FAIL; sprintf(errbuf, "Vertical Field: \"%s\" must be 1-dim.\n", vertObj); H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (nt != NULL) free(nt); } } /* If no problems then continue */ /* ---------------------------- */ if (status == SUCCEED) { /* Get string length of vertical dimension */ /* --------------------------------------- */ slen = strlen(dimlist); /* Get size in bytes of vertical field numbertype */ /* ---------------------------------------------- */ size = HE5_SWfieldsizeID(swathID,vertObj, &fieldID); /* Allocate space for vertical field */ /* --------------------------------- */ vertArr = (char *)calloc(dims[0], size); if(vertArr == NULL) { H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); if (nt != NULL) free(nt); return(FAIL); } /* Read vertical field */ /* ------------------- */ status = HE5_SWreadfield(swathID, vertObj, NULL, NULL, NULL, vertArr); switch (temp) { case 1: for (i = 0; i < dims[0]; i++) { /* Get single element of vertical field */ /* ------------------------------------ */ memmove(&vertINT, vertArr + i * size, size); /* If within range ... */ /* ------------------- */ if (vertINT >= range[0] && vertINT <= range[1]) { /* Set found flag */ /* -------------- */ found = 1; /* Setup swath region entry */ /* ------------------------ */ if (regionID == FAIL) { HE5_SETSWTHREG; } /* Fill-in vertical region entries */ /* ------------------------------- */ HE5_FILLVERTREG; break; } } /* If found read from "bottom" of data field */ /* ----------------------------------------- */ if (found == 1) { for (i = dims[0] - 1; i >= 0; i--) { /* Get single element of vertical field */ /* ------------------------------------ */ memmove(&vertINT, vertArr + i * size, size); /* If within range ... */ /* ------------------- */ if (vertINT >= range[0] && vertINT <= range[1]) { /* Set end of vertical region */ /* -------------------------- */ HE5_SWXRegion[regionID]->StopVertical[j] = i; break; } } } else { /* No vertical entries within region */ /* --------------------------------- */ status = FAIL; sprintf(errbuf, "No vertical field entries within region.\n"); H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (nt != NULL) free(nt); } break; case 2: for (i = 0; i < dims[0]; i++) { /* Get single element of vertical field */ /* ------------------------------------ */ memmove(&vertSHT, vertArr + i * size, size); /* If within range ... */ /* ------------------- */ if (vertSHT >= range[0] && vertSHT <= range[1]) { /* Set found flag */ /* -------------- */ found = 1; /* Setup swath region entry */ /* ------------------------ */ if (regionID == FAIL) { HE5_SETSWTHREG; } /* Fill-in vertical region entries */ /* ------------------------------- */ HE5_FILLVERTREG; break; } } /* If found read from "bottom" of data field */ /* ----------------------------------------- */ if (found == 1) { for (i = dims[0] - 1; i >= 0; i--) { /* Get single element of vertical field */ /* ------------------------------------ */ memmove(&vertSHT, vertArr + i * size, size); /* If within range ... */ /* ------------------- */ if (vertSHT >= range[0] && vertSHT <= range[1]) { /* Set end of vertical region */ /* -------------------------- */ HE5_SWXRegion[regionID]->StopVertical[j] = i; break; } } } else { /* No vertical entries within region */ /* --------------------------------- */ status = FAIL; sprintf(errbuf, "No vertical field entries within region.\n"); H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (nt != NULL) free(nt); } break; case 3: for (i = 0; i < dims[0]; i++) { /* Get single element of vertical field */ /* ------------------------------------ */ memmove(&vertFLT, vertArr + i * size, size); /* If within range ... */ /* ------------------- */ if (vertFLT >= range[0] && vertFLT <= range[1]) { /* Set found flag */ /* -------------- */ found = 1; /* Setup swath region entry */ /* ------------------------ */ if (regionID == FAIL) { HE5_SETSWTHREG; } /* Fill-in vertical region entries */ /* ------------------------------- */ HE5_FILLVERTREG; break; } } /* If found read from "bottom" of data field */ /* ----------------------------------------- */ if (found == 1) { for (i = dims[0] - 1; i >= 0; i--) { /* Get single element of vertical field */ /* ------------------------------------ */ memmove(&vertFLT, vertArr + i * size, size); /* If within range ... */ /* ------------------- */ if (vertFLT >= range[0] && vertFLT <= range[1]) { /* Set end of vertical region */ /* -------------------------- */ HE5_SWXRegion[regionID]->StopVertical[j] = i; break; } } } else { /* No vertical entries within region */ /* --------------------------------- */ status = FAIL; sprintf(errbuf, "No vertical field entries within region.\n"); H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (nt != NULL) free(nt); } break; case 4: for (i = 0; i < dims[0]; i++) { /* Get single element of vertical field */ /* ------------------------------------ */ memmove(&vertDBL, vertArr + i * size, size); /* If within range ... */ /* ------------------- */ if (vertDBL >= range[0] && vertDBL <= range[1]) { /* Set found flag */ /* -------------- */ found = 1; /* Setup swath region entry */ /* ------------------------ */ if (regionID == FAIL) { HE5_SETSWTHREG; } /* Fill-in vertical region entries */ /* ------------------------------- */ HE5_FILLVERTREG; break; } } /* If found read from "bottom" of data field */ /* ----------------------------------------- */ if (found == 1) { for (i = dims[0] - 1; i >= 0; i--) { /* Get single element of vertical field */ /* ------------------------------------ */ memmove(&vertDBL, vertArr + i * size, size); /* If within range ... */ /* ------------------- */ if (vertDBL >= range[0] && vertDBL <= range[1]) { /* Set end of vertical region */ /* -------------------------- */ HE5_SWXRegion[regionID]->StopVertical[j] = i; break; } } } else { /* No vertical entries within region */ /* --------------------------------- */ status = FAIL; sprintf(errbuf, "No vertical field entries within region.\n"); H5Epush(__FILE__, "HE5_SWdefvrtregion", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (nt != NULL) free(nt); } break; } /* End of switch */ if (vertArr != NULL) free(vertArr); } } } if(nt != (hid_t *)NULL) free(nt); COMPLETION: if (status == FAIL) regionID = FAIL; HE5_UNLOCK; return(regionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWsetfillvalue | | | | DESCRIPTION: Sets fill value for the specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char* field name | | fillval void* fill value | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A.Muslimov Checked for the status returned by | | H5Pset_fill_value(). Changed the return status | | from intn to int . | | 11/9/99 A.Muslimov Modified the calls to write fill value to the | | attribute which fixed a bug resulted in a wrong | | value returned by the SWgetfillvalue(). | | 12/3/99 A.Muslimov Fixed a bug resulted in not writing a fill value | | into the dataset. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Mar 04 S.Zhao Modified for a character string dataset. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWsetfillvalue(hid_t swathID, char *fieldname, hid_t numbertype_in, void *fillval) { herr_t status = FAIL;/* return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long idx = FAIL;/* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKPOINTER(fillval); /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { numbertype = numbertype_in; } else { numbertype = HE5_EHconvdatatype((int) numbertype_in); } if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for fillvalue.\n"); H5Epush(__FILE__, "HE5_SWsetfillvalue", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWsetfillvalue", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for valid swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWsetfillvalue", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get current dataset creation property list */ /* ------------------------------------------ */ if( HE5_SWXSwath[idx].plist == FAIL) { HE5_SWXSwath[idx].plist = H5Pcreate(H5P_DATASET_CREATE); if (HE5_SWXSwath[idx].plist == FAIL) { sprintf(errbuf,"Cannot create the dataset property list.\n"); H5Epush(__FILE__, "HE5_SWsetfillvalue", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Set fill value */ /* -------------- */ if ((numbertype != HE5T_CHARSTRING) && (numbertype != H5T_NATIVE_CHAR) && (numbertype != H5T_C_S1)) { status = H5Pset_fill_value(HE5_SWXSwath[idx].plist, numbertype, fillval); if(status == FAIL) { sprintf(errbuf,"Cannot set fill value for \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWsetfillvalue", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgetfillvalue | | | | DESCRIPTION: Retrieves fill value for a specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | fieldname char* field name | | | | OUTPUTS: | | fillval void* fill value | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A.Muslimov Changed the return status from intn to int . | | 11/9/99 A.Muslimov Replaced a call to H5Pget_fill_value( plist, tid, | | fillval) by EHattr(). | | July 00 A.Muslimov Unmasked hdf5 data types. | | Oct 00 A.Muslimov Updated to allow getting of a fill value for a | | profile field. Replaced two calls by HE5_SWfldsrch. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Aug 22,11 Abe Taaheri Add code to return error if fillvalue attribute | | not found. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWgetfillvalue(hid_t swathID, char *fieldname, void *fillval) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* field dataset ID */ hid_t tid = FAIL;/* field dataset data type ID */ hid_t plist = FAIL;/* field dataset property list ID */ long idx = FAIL;/* Swath index */ hsize_t count[1] = { 1 };/* number of attribute elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ long strbufsize; char *attrnames; long nattr = 0; /* number of attributes */ HE5_LOCK; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWgetfillvalue", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for valid swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check out the field group and get field ID */ /* ------------------------------------------ */ HE5_SWfldsrch(swathID,fieldname,&fieldID,NULL,NULL,NULL); if( fieldID == FAIL ) { sprintf(errbuf, "Cannot get the field ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nattr = HE5_SWinqlocattrs(swathID, fieldname, NULL, &strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve fillvalue attribute. \n"); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } attrnames = (char*)malloc(sizeof(char)*(strbufsize+1)); if (attrnames == NULL) { sprintf(errbuf, "Cannot allocate memory for attrnames.\n") ; H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nattr = HE5_SWinqlocattrs(swathID, fieldname, attrnames, &strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve fillvalue attribute. \n"); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if(strstr(attrnames, "_FillValue")!=NULL) { /* Get the property list ID */ /* ------------------------ */ plist = H5Dget_create_plist(fieldID); if ( plist == FAIL ) { sprintf(errbuf, "Cannot get the property list ID for the \"%s\" data field.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the datatype ID */ /* ------------------- */ tid = H5Dget_type(fieldID); if ( tid == FAIL ) { sprintf(errbuf, "Cannot get the data type ID for the \"%s\" data field.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Read out a fill value from the attribute */ /* ---------------------------------------- */ status = HE5_EHattr(fieldID, "_FillValue", tid, count, "r", fillval); if (status == FAIL ) { sprintf(errbuf, "Cannot get fill value for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(tid); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID for the \"%s\" dataset.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release property list ID for the \"%s\" dataset.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { sprintf(errbuf, "Cannot retrieve fillvalue attribute. \n"); H5Epush(__FILE__, "HE5_SWgetfillvalue", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWregioninfo | | | | DESCRIPTION: Returns size of region in bytes | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | regionID hid_t Region ID | | fieldname char Fieldname | | | | OUTPUTS: | | ntype hid_t field number types | | rank int field rank | | dims hsize_t dimensions of field region | | size size_t size in bytes of field region | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | 08/20/99 A. Muslimov Initialized return statuses to -1. | | 10/18/99 A.Muslimov Replaced memcpy() by memmove() to avoid a problem | | when arguments 1 and 2 overlap in memory. | | 04/19/00 A.Muslimov Changed type of 'slen' from long to size_t. | | 05/10/00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Apr 01 A.Muslimov Initialized size to 0, but "Unlim" returns -1!, | | not 0. | | Jan 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWregioninfo(hid_t swathID, hid_t regionID, char *fieldname, hid_t *ntype, int *rank, hsize_t dims[], size_t *size) { herr_t status = FAIL;/* routine return status variable */ herr_t statMap = FAIL;/* Status from SWmapinfo */ int i, j, k; /* Loop indices */ int dum = FAIL;/* Dummy (rank) variable */ hid_t dum2[1] ={FAIL};/* Dummy (number types) variable */ unsigned char found = 0; /* Found flag */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ hid_t fieldID = FAIL;/* fieldname Dataset ID */ long idx = FAIL;/* Swath index */ long index = FAIL;/* Geo Dim Index */ long nDim = 0; /* Number of dimensions */ long incr = 0; /* Mapping increment */ long offset = FAIL;/* Mapping offset */ long *idxmap = (long *)NULL;/* Pointer to index mapping array */ long nXtrk = 0; /* Number of cross tracks */ hsize_t idxMapElem = 0; /* Number of index map elements */ hsize_t dumsize = 0; /* Dummy size variable */ hsize_t dumdims[HE5_DTSETRANKMAX]; /* Dimensions from SWfieldinfo */ size_t slen[HE5_DTSETRANKMAX]; /* String length array */ char dimlist[HE5_HDFE_DIMBUFSIZE];/* Dimension list */ char geodim[HE5_HDFE_DIMBUFSIZE]; /* Geolocation field dimension list */ char tgeodim[HE5_HDFE_DIMBUFSIZE];/* Time Geolocation field dim. list */ char utlbuf[HE5_HDFE_DIMBUFSIZE]; /* Utility buffer */ char *ptr[HE5_DTSETRANKMAX]; /* String pointer array */ char *errMesg = "Vertical Dimension Not Found: \"%s\".\n"; char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error buffer */ CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWregioninfo", &fid, &gid, &idx); /* Check for valid region ID */ /* ------------------------- */ if (status == SUCCEED) { if (regionID < 0 || regionID >= HE5_NSWATHREGN) { status = FAIL; sprintf(errbuf, "Invalid Region id: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWregioninfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Check for active region ID */ /* -------------------------- */ if (status == SUCCEED) { if (HE5_SWXRegion[regionID] == 0) { status = FAIL; sprintf(errbuf,"Inactive Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWregioninfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Check for valid fieldname */ /* ------------------------- */ if (status == SUCCEED) { /* Get data field info */ /* ------------------- */ strcpy(dimlist,""); status = HE5_SWfieldinfo(swathID, fieldname, rank, dims, ntype, dimlist, NULL); if (status != SUCCEED) { status = FAIL; sprintf(errbuf,"Field \"%s\" Not Found.\n", fieldname); H5Epush(__FILE__, "HE5_SWregioninfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* No problems so proceed ... */ /* -------------------------- */ if (status == SUCCEED) { /* If non-vertical subset regions defined ... */ /* ------------------------------------------ */ if (HE5_SWXRegion[regionID]->nRegions > 0) { /* Initialize dumdims[] array */ /* -------------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) dumdims[ i ] = 0; /* Get geolocation dimension name */ /* ------------------------------ */ strcpy(geodim,""); status = HE5_SWfieldinfo(HE5_SWXRegion[regionID]->swathID, "Longitude", &dum, dumdims, dum2, geodim,NULL); /* If Time field being used, check for dimensions */ /* ---------------------------------------------- */ if (HE5_timeflag == 1) { /* code change to fix time subset bug for Landsat7 */ strcpy(tgeodim,""); status = HE5_SWfieldinfo(HE5_SWXRegion[regionID]->swathID, "Time", &dum, dumdims, dum2, tgeodim,NULL); if (strcmp(geodim, tgeodim) != 0) { strcpy(geodim, tgeodim); } } HE5_timeflag = 0; /* Initialize slen[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) slen[ i ] = 0; /* Get "Track" (first) Dimension from geo dimlist */ /* ---------------------------------------------- */ nDim = HE5_EHparsestr(geodim, ',', ptr, slen); geodim[slen[0]] = 0; /* Parse Data Field Dimlist & find mapping */ /* --------------------------------------- */ nDim = HE5_EHparsestr(dimlist, ',', ptr, slen); /* Loop through all dimensions and search for mapping */ /* -------------------------------------------------- */ strcpy(utlbuf,""); for (i = 0; i < nDim; i++) { memmove(utlbuf, ptr[i], slen[i]); utlbuf[slen[i]] = 0; offset = HE5_EHint2long(dum); if ( offset == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWregioninfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } statMap = HE5_SWmapinfo(swathID, geodim, utlbuf, &offset, &incr); /* Mapping found */ /* ------------- */ if (statMap == SUCCEED) { found = 1; index = HE5_EHint2long(i); if ( index == FAIL ) { sprintf(errbuf, "Cannot convert data type. \n"); H5Epush(__FILE__, "HE5_SWregioninfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } break; } } /* If mapping not found check for geodim within dimlist */ /* ---------------------------------------------------- */ if (found == 0) { index = HE5_EHstrwithin(geodim, dimlist, ','); /* Geo dimension found within subset field dimlist */ /* ----------------------------------------------- */ if (index != FAIL) { found = 1; incr = 1; } } /* If mapping not found check for indexed mapping */ /* ---------------------------------------------- */ if (found == 0) { /* Get size of geo dim & allocate space of index mapping */ /* ----------------------------------------------------- */ dumsize = HE5_SWdiminfo(swathID, geodim); if(dumsize == 0) { H5Epush(__FILE__, "HE5_SWregioninfo", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot get the dimension size. \n"); HE5_EHprint("Error: Cannot get the dimension size, occured", __FILE__, __LINE__); return(FAIL); } idxmap = (long *) calloc(dumsize, sizeof(long)); if(idxmap == NULL) { H5Epush(__FILE__, "HE5_SWregioninfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Loop through all dimensions and search for mapping */ /* -------------------------------------------------- */ strcpy(utlbuf,""); for (i = 0; i < nDim; i++) { memmove(utlbuf, ptr[i], slen[i]); utlbuf[slen[i]] = 0; idxMapElem = HE5_SWidxmapinfo(swathID, geodim, utlbuf, idxmap); /* Mapping found */ /* ------------- */ if (idxMapElem > 0) { found = 1; index = i; break; } } } /* Regular Mapping Found */ /* --------------------- */ if (found == 1 && idxMapElem == 0) { dims[index] = 0; /* Loop through all regions */ /* ------------------------ */ for (k = 0; k < HE5_SWXRegion[regionID]->nRegions; k++) { /* Get number of cross tracks in particular region */ /* ----------------------------------------------- */ nXtrk = HE5_SWXRegion[regionID]->StopRegion[k] - HE5_SWXRegion[regionID]->StartRegion[k] + 1; /* If increment is positive (geodim <= datadim) ... */ /* ------------------------------------------------ */ if (incr > 0) { dims[index] += nXtrk * incr; } else { /* Negative increment (geodim > datadim) */ /* ------------------------------------- */ dims[index] += nXtrk / (-incr); /* * If Xtrk not exactly divisible by incr, round dims * to next highest integer */ if (nXtrk % (-incr) != 0) { dims[index]++; } } } } else if (found == 1 && idxMapElem > 0) { /* Indexed Mapping */ /* --------------- */ dims[index] = 0; /* Loop through all regions */ /* ------------------------ */ for (k = 0; k < HE5_SWXRegion[regionID]->nRegions; k++) { /* Get number of cross tracks in particular region */ /* ----------------------------------------------- */ nXtrk = idxmap[HE5_SWXRegion[regionID]->StopRegion[k]] - idxmap[HE5_SWXRegion[regionID]->StartRegion[k]] + 1; dims[index] += nXtrk; } } else { /* Mapping not found */ /* ----------------- */ status = FAIL; sprintf( errbuf, "Mapping Not Defined for \"%s\" Dimension.\n", geodim); H5Epush(__FILE__, "HE5_SWregioninfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Vertical Subset */ /* --------------- */ if (status == SUCCEED || status == FAIL) { for (j = 0; j < HE5_DTSETRANKMAX; j++) { /* If active vertical subset ... */ /* ----------------------------- */ if (HE5_SWXRegion[regionID]->StartVertical[j] != FAIL) { /* Find vertical dimension within dimlist */ /* -------------------------------------- */ index = HE5_EHstrwithin(HE5_SWXRegion[regionID]->DimNamePtr[j], dimlist, ','); /* If dimension found ... */ /* ---------------------- */ if (index != FAIL) { /* Compute dimension size */ /* ---------------------- */ dims[index] = HE5_SWXRegion[regionID]->StopVertical[j] - HE5_SWXRegion[regionID]->StartVertical[j] + 1; } else { /* Vertical dimension not found */ /* ---------------------------- */ status = FAIL; *size = 0; sprintf(errbuf, errMesg, HE5_SWXRegion[regionID]->DimNamePtr[j]); H5Epush(__FILE__, "HE5_SWregioninfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } } /* Compute size of region data buffer */ /* ---------------------------------- */ if (status == SUCCEED) { /* Compute number of total elements */ /* -------------------------------- */ *size = dims[0]; for (j = 1; j < *rank; j++) *size *= dims[j]; /* Multiply by size in bytes of numbertype */ /* --------------------------------------- */ *size *= HE5_SWfieldsizeID(swathID,fieldname, &fieldID); } } } /* Free index mappings if applicable */ /* --------------------------------- */ if (idxmap != NULL) free(idxmap); COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWperiodinfo | | | | DESCRIPTION: Returns size in bytes of region | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | periodID hid_t Period ID | | fieldname char Fieldname | | | | OUTPUTS: | | ntype hid_t field number types | | rank int field rank | | dims hsize_t dimensions of field region | | size size_t size in bytes of field region | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A.Muslimov Changed the return status from intn to int . | | 05/10/00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Jan 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWperiodinfo(hid_t swathID, hid_t periodID, char *fieldname, hid_t *ntype, int *rank, hsize_t dims[], size_t *size) { herr_t status = FAIL;/* routine return status variable */ HE5_timeflag = 1; CHECKPOINTER(fieldname); /* Call HE5_SWregioninfo */ /* --------------------- */ status = HE5_SWregioninfo(swathID, periodID, fieldname, ntype, rank, dims, size); COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWclose | | | | DESCRIPTION: Closes HDF-EOS file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t File ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWclose(hid_t fid) { herr_t status = FAIL;/* routine return status variable */ /* Call HE5_EHclose to perform file close */ /* -------------------------------------- */ status = HE5_EHclose(fid); return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWupdatescene | | | | DESCRIPTION: Updates the StartRegion and StopRegion values | | for a specified region. This function is for Landsat. | | The start and stop values must be set to the beginning | | and the end of a scene, fixed scene subsetting. | | | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath structure ID | | regionID hid_t Region ID | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 98 Xinmin Hua Original developing | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Jan 05 S. Zhao Modified to exclude regions that have the same | | start and stop. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWupdatescene(hid_t swathID, hid_t regionID) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ long k; /* Loop index */ long idx = FAIL;/* Swath index */ long startReg= 0; /* Indexed start region */ long stopReg = 0; /* Indexed stop region */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ long index[HE5_MAXNREGIONS];/* to store indicies when stop and start are different */ long ind; /* index */ long tempnRegions; /* temp number of regions */ HE5_LOCK; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWupdatescene", &fid, &gid, &idx); /* Check for valid region ID */ /* ------------------------- */ if (status == SUCCEED) { if (regionID < 0 || regionID >= HE5_NSWATHREGN) { status = FAIL; sprintf(errbuf, "Invalid Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWupdatescene", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Check for active region ID */ /* -------------------------- */ if (status == SUCCEED) { if (HE5_SWXRegion[regionID] == 0) { status = FAIL; sprintf(errbuf, "Inactive Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWupdatescene", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } if (status == SUCCEED) { tempnRegions = HE5_SWXRegion[regionID]->nRegions; ind =0; for (k = 0; k < HE5_SWXRegion[regionID]->nRegions; k++) { startReg = HE5_SWXRegion[regionID]->StartRegion[k]; stopReg = HE5_SWXRegion[regionID]->StopRegion[k]; if(startReg == stopReg) { /* reduce number of regions by 1, if tempnRegions is 0 issue error and break from loop*/ tempnRegions -= 1; if(tempnRegions == 0) { /* first free allocated memory for HE5_SWXRegion[regionID] in the function HE5_SWdefboxregion and make regionID inactive */ free(HE5_SWXRegion[regionID]); HE5_SWXRegion[regionID] = 0; status = FAIL; sprintf(errbuf, "Inactive Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWupdatescene", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); break; } } else { /* store index number of regions that have different start and stop */ index[ind] = k; ind += 1; } } if (status != SUCCEED) { return (status); } else { HE5_SWXRegion[regionID]->nRegions = tempnRegions; } /* keep starts and stops that are different in the structure */ for (k = 0; k < HE5_SWXRegion[regionID]->nRegions; k++) { HE5_SWXRegion[regionID]->StartRegion[k] = HE5_SWXRegion[regionID]->StartRegion[index[k]]; HE5_SWXRegion[regionID]->StopRegion[k] = HE5_SWXRegion[regionID]->StopRegion[index[k]]; } } if (status == SUCCEED) { for (k = 0; k < HE5_SWXRegion[regionID]->nRegions; k++) { startReg = HE5_SWXRegion[regionID]->StartRegion[k]; stopReg = HE5_SWXRegion[regionID]->StopRegion[k]; if(startReg % 2 == 1) { HE5_SWXRegion[regionID]->StartRegion[k] = ++startReg; } if(stopReg % 2 == 0) { HE5_SWXRegion[regionID]->StopRegion[k] = --stopReg; } } } COMPLETION: HE5_UNLOCK; return( status ); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWupdateidxmap | | | | DESCRIPTION: Updates the map index for a specified region. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nout long return Number of elements in output | | index array if SUCCEED, (-1) FAIL | | INPUTS: | | swathID hid_t Swath structure ID | | regionID hid_t Region ID | | indexin long array of index values | | | | OUTPUTS: | | indexout long array of index values | | indicies long array of start and stop in region | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 97 Abe Taaheri Original Programmer | | AUG 97 Abe Taaheri Add support for index mapping | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWupdateidxmap(hid_t swathID, hid_t regionID, long indexin[], long indexout[], long indicies[]) { long nout = FAIL;/* # of elements in output array (return) */ long i, k ; /* Loop indices */ long idx = FAIL;/* Swath index */ long startReg = 0; /* Indexed start region */ long stopReg = 0; /* Indexed stop region */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error buffer */ HE5_LOCK; CHECKPOINTER(indexin); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWupdateidxmap", &fid, &gid, &idx); /* Check for valid region ID */ /* ------------------------- */ if (status == SUCCEED) { if (regionID < 0 || regionID >= HE5_NSWATHREGN) { status = FAIL; sprintf(errbuf,"Invalid Region id: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWupdateidxmap", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } /* Check for active region ID */ /* -------------------------- */ if (status == SUCCEED) { if (HE5_SWXRegion[regionID] == 0) { status = FAIL; sprintf(errbuf, "Inactive Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWupdateidxmap", __LINE__, H5E_FILE, H5E_BADRANGE, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); } } if (status == SUCCEED) { /* Loop through all regions */ /* ------------------------ */ for (k = 0; k < HE5_SWXRegion[regionID]->nRegions; k++) { /* fix overlap index mapping problem for Landsat7 */ startReg = HE5_SWXRegion[regionID]->StartRegion[ k ]; stopReg = HE5_SWXRegion[regionID]->StopRegion[ k ]; /* If start of region is odd then increment */ /* ---------------------------------------- */ if (startReg % 2 == 1) { startReg++; } /* If end of region is even then decrement */ /* --------------------------------------- */ if (stopReg % 2 == 0) { stopReg--; } } indicies[0] = startReg; indicies[1] = stopReg; if (indexout != NULL) { /* get new index values */ for(i = startReg; i <= stopReg ; i++) { indexout[i - startReg] = indexin[ i ] - indexin[startReg]; } } nout = (stopReg - startReg) + 1; } COMPLETION: HE5_UNLOCK; if(status == FAIL) return(FAIL); else return(nout); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgeomapinfo | | | | DESCRIPTION: Returns mapping information for dimension | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t 2 for indexed mapping, 1 for regular | | mapping, 0 if the dimension is not | | and (-1) FAIL | | INPUTS: | | swathID hid_t Swath structure ID | | geodim char geolocation dimension name | | | | OUTPUTS: | | NONE | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7/29/99 A.Muslimov In the call to EHmetagroup() replace gid by fid. | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWgeomapinfo(hid_t swathID, char *geodim) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Swath index */ char *metabufr = (char *)NULL; /* Pointer to SM */ char *metabufi = (char *)NULL; /* Pointer to SM */ char *metaptrsr[2]={NULL,NULL};/* Pntrs to begin, end of SM */ char *metaptrsi[2]={NULL,NULL};/* Pntrs to begin, end of SM */ char utlstrr[HE5_HDFE_DIMBUFSIZE]; /* Utility string */ char utlstri[HE5_HDFE_DIMBUFSIZE]; /* Utility string */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWgeomapinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get pointers to "DimensionMap" section within SM */ metabufr = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "DimensionMap", metaptrsr); if (metabufr == NULL) { sprintf(errbuf, "Cannot get pointer to metabufer. \n") ; H5Epush(__FILE__, "HE5_SWgeomapinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Search for mapping - GeoDim/DataDim (surrounded by quotes) */ sprintf(utlstrr, "%s%s%s", "\t\t\t\tGeoDimension=\"", geodim, "\"\n\t\t\t\tDataDimension="); metaptrsr[0] = strstr(metaptrsr[0], utlstrr); /* Get pointers to "IndexDimensionMap" section within SM */ metabufi = (char *)HE5_EHmetagroup(fid, HE5_SWXSwath[idx].swname, "s", "IndexDimensionMap", metaptrsi); if (metabufi == NULL) { sprintf(errbuf, "Cannot allocate memory for metabufi.") ; H5Epush(__FILE__, "HE5_SWgeomapinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(metabufr); return(FAIL); } /* Search for mapping - GeoDim/DataDim (surrounded by quotes) */ sprintf(utlstri, "%s%s%s", "\t\t\t\tGeoDimension=\"", geodim, "\"\n\t\t\t\tDataDimension="); metaptrsi[0] = strstr(metaptrsi[0], utlstri); /* ** If regular mapping found add 1 to status ** If indexed mapping found add 2 */ if (metaptrsr[0] < metaptrsr[1] && metaptrsr[0] != NULL) { status = status + 1; } if (metaptrsi[0] < metaptrsi[1] && metaptrsi[0] != NULL) { status = status + 2; } free(metabufr); free(metabufi); } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWfieldsizeID | | | | DESCRIPTION: Returns the size (in bytes) of field-related data type, | | otherwise returns 0. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size size_t none | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char fieldname | | | | OUTPUTS: | | fieldID hid_t field-related dataset ID | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/23/99 A.Muslimov Checked for the statuses returned by H5Tclose(). | | 2/08/00 A.Muslimov Added more error checkings and desciption. | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static size_t HE5_SWfieldsizeID( hid_t swathID, char *fieldname, hid_t *fieldID) { size_t size = 0; /* Size of field data type */ herr_t status = FAIL; /* Return status variable */ int i; /* Loop index */ int found = 0; /* Flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t dtype = FAIL; /* datatype ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Buffer for error message */ CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWfieldsizeID", &fid, &gid, &idx); /* Loop through all geo datasets in swath */ /* -------------------------------------- */ for (i = 0; i < HE5_SWXSwath[idx].nGFLD; i++) { if( strcmp(fieldname, HE5_SWXSwath[idx].gdataset[i].name) == 0 ) { /* Get dataset ID */ /* -------------- */ *fieldID = HE5_SWXSwath[idx].gdataset[i].ID; dtype = H5Dget_type( *fieldID); if (dtype == FAIL) { sprintf(errbuf, "Cannot get the dataset data type. \n"); H5Epush(__FILE__, "HE5_SWfieldsizeID", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } size = H5Tget_size(dtype); if (size == 0) { sprintf(errbuf, "Cannot get the data type size. \n"); H5Epush(__FILE__, "HE5_SWfieldsizeID", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } status = H5Tclose(dtype); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_SWfieldsizeID", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } found = 1; break; } } /* not found in geo field */ /* ---------------------- */ if( found == 0 ) { /* Loop through all data fields in swath */ /* ------------------------------------- */ for (i = 0; i < HE5_SWXSwath[idx].nDFLD; i++) { if( strcmp(fieldname, HE5_SWXSwath[idx].ddataset[i].name) == 0 ) { /* get dataset ID */ /* -------------- */ *fieldID = HE5_SWXSwath[idx].ddataset[i].ID; dtype = H5Dget_type(*fieldID); if (dtype == FAIL) { sprintf(errbuf, "Cannot get the dataset data type. \n"); H5Epush(__FILE__, "HE5_SWfieldsizeID", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } size = H5Tget_size(dtype); if (size == 0) { sprintf(errbuf, "Cannot get the data type size. \n"); H5Epush(__FILE__, "HE5_SWfieldsizeID", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } status = H5Tclose(dtype); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_SWfieldsizeID", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } found = 1; break; } } } if( found == 0 ) { sprintf(errbuf, "field \"%s\" is not in Swath. \n", fieldname); H5Epush(__FILE__, "HE5_SWfieldsizeID", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } COMPLETION: return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwritegrpattr | | | | DESCRIPTION: Writes/updates attribute associated with the "Data Fields" | | group in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | attrname char attribute name | | numtype hid_t attribute dataset datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jan 00 A.Muslimov | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWwritegrpattr(hid_t swathID, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t DataFieldsGrpID = FAIL; /* "Data Fields" group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { numbertype = numtype; } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWwritegrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data Fields" group ID and call HE5_EHattr to perform I/O */ /* ------------------------------------------------------------- */ DataFieldsGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, "Data Fields"); if(DataFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data Fields\" group ID. \n"); H5Epush(__FILE__, "HE5_SWwritegrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(DataFieldsGrpID, attrname, numbertype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\"to the \"Data Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_SWwritegrpattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data Fields\" group ID. \n"); H5Epush(__FILE__, "HE5_SWwritegrpattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWreadgrpattr | | | | DESCRIPTION: Reads attribute from the "Data Fields" group in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jan 00 A.Muslimov | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWreadgrpattr(hid_t swathID, const char *attrname, void * datbuf) { herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ntype = FAIL; /* Data type ID */ hid_t DataFieldsGrpID = FAIL; /* "Data Fields" group ID */ long idx = FAIL; /* Swath index */ hsize_t count[] = { 0 }; /* # of attribute elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWreadgrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data Fields" group ID and call HE5_EHattr to perform I/O */ /* -------------------------------------------------------------- */ DataFieldsGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, "Data Fields"); if(DataFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_SWreadgrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(DataFieldsGrpID,attrname,ntype,count,"r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" from the \"Data Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_SWreadgrpattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_SWreadgrpattr", __LINE__,H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgrpattrinfo | | | | DESCRIPTION: Retrieves information about attributes in "Data Fields" group.| | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | attrname const char* attribute name | | | | OUTPUTS: | | ntype hid_t data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jan 00 A.Muslimov | | May 00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | July 00 A.Muslimov Unmasked hdf5 data types. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWgrpattrinfo(hid_t swathID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t DataFieldsGrpID = FAIL; /* "Data Fields" group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWgrpattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data Fields" group ID and call HE5_EHattrinfo */ /* --------------------------------------------------- */ DataFieldsGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, "Data Fields"); if(DataFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_SWgrpattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattrinfo(DataFieldsGrpID,attrname,ntype,count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" in the \"Data Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_SWgrpattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_SWgrpattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqgrpattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Data Fields" | | group. | | | | INPUTS: | | swath ID hid_t swath structure ID | | | | OUTPUTS: | | attrnames char Attribute names in "Data Fields" group | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jan 00 A.Muslimov | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqgrpattrs(hid_t swathID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ long idx = FAIL; /* Swath index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ char *grpname = (char *)NULL; /* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqgrpattrs", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_SWinqgrpattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Can not allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/SWATHS/"); strcat(grpname, HE5_SWXSwath[idx].swname); strcat(grpname,"/Data Fields"); /* search group with grpname for the number of attributes */ /* ------------------------------------------------------ */ nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot find the attributes. \n"); H5Epush(__FILE__, "HE5_SWinqgrpattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwritegeogrpattr | | | | DESCRIPTION: Writes/updates attribute associated with the "Geolocation | | Fields" group in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | attrname char attribute name | | numtype hid_t attribute dataset datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWwritegeogrpattr(hid_t swathID, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t GeoFieldsGrpID = FAIL; /* "Geolocation Fields" group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { numbertype = numtype; } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWwritegeogrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Geolocation Fields" group ID and call HE5_EHattr to perform I/O */ /* -------------------------------------------------------------------- */ GeoFieldsGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, "Geolocation Fields"); if(GeoFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Geolocation Fields\" group ID. \n"); H5Epush(__FILE__, "HE5_SWwritegeogrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(GeoFieldsGrpID, attrname, numbertype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write attribute \"%s\"to the \"Geolocation Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_SWwritegeogrpattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(GeoFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Geolocation Fields\" group ID. \n"); H5Epush(__FILE__, "HE5_SWwritegeogrpattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWreadgeogrpattr | | | | DESCRIPTION: Reads attribute from the "Geolocation Fields" group | | in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWreadgeogrpattr(hid_t swathID, const char *attrname, void * datbuf) { herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ntype = FAIL; /* Data type ID */ hid_t GeoFieldsGrpID = FAIL; /* "Geolocation Fields" group ID */ long idx = FAIL; /* Swath index */ hsize_t count[] = { 0 }; /* # of attribute elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWreadgeogrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Geolocation Fields" group ID and call HE5_EHattr to perform I/O */ /* --------------------------------------------------------------------- */ GeoFieldsGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, "Geolocation Fields"); if(GeoFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Geolocation Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_SWreadgeogrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(GeoFieldsGrpID,attrname,ntype,count,"r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read attribute \"%s\" from the \"Geolocation Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_SWreadgeogrpattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(GeoFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Geolocation Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_SWreadgeogrpattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgeogrpattrinfo | | | | DESCRIPTION: Retrieves information about attributes in "Geolocation Fields"| | group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | attrname const char* attribute name | | | | OUTPUTS: | | ntype hid_t data type ID | | count hsize_t Number of attribute elements | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWgeogrpattrinfo(hid_t swathID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t GeoFieldsGrpID = FAIL; /* "Geolocation Fields" group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWgeogrpattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Geolocation Fields" group ID and call HE5_EHattrinfo */ /* ---------------------------------------------------------- */ GeoFieldsGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, "Geolocation Fields"); if(GeoFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Geolocation Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_SWgeogrpattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattrinfo(GeoFieldsGrpID,attrname,ntype,count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about attribute \"%s\" in the \"Geolocation Fields\" group.\n",attrname); H5Epush(__FILE__, "HE5_SWgeogrpattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(GeoFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Geolocation Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_SWgeogrpattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqgeogrpattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Geolocation Fields" group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Geolocation | | Fields" group. | | | | INPUTS: | | swath ID hid_t swath structure ID | | | | OUTPUTS: | | attrnames char Attribute names in "Geolocation Fields" | | group (Comma-separated list) | | strbufsize long Attributes name list string length | | | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqgeogrpattrs(hid_t swathID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ long idx = FAIL; /* Swath index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ char *grpname = (char *)NULL; /* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqgeogrpattrs", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_SWinqgeogrpattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Can not allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/SWATHS/"); strcat(grpname, HE5_SWXSwath[idx].swname); strcat(grpname,"/Geolocation Fields"); /* search group with grpname for the number of attributes */ /* ------------------------------------------------------ */ nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot find the attributes. \n"); H5Epush(__FILE__, "HE5_SWinqgeogrpattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwritelocattr | | | | DESCRIPTION: Writes/updates attribute associated with a specified field in | | a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char field name | | attrname char attribute name | | numtype hid_t attribute dataset datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jan 00 A.Muslimov | | Jul 00 A.Muslimov Unmasked hdf5 data types. | | Nov 00 A.Muslimov Added writing local attribute to the field of | | "Geolocation Fields" group. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Jan 04 S.Zhao Added writing local attribute to the field of | | "Profile Fields" group. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWwritelocattr(hid_t swathID, const char *fieldname, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL; /* Return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t FieldGrpID = FAIL; /* Field group ID */ hid_t fieldID = FAIL; /* Field dataset ID */ long idx = FAIL; /* Swath index */ char *grpname = (char *)NULL; /* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKPOINTER(fieldname); CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { numbertype = numtype; } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWwritelocattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Allocate memory for the group name buffer */ /* ----------------------------------------- */ grpname = (char *)calloc(64, sizeof(char) ); if( grpname == NULL) { sprintf(errbuf,"Cannot allocate memory for the group name buffer.\n"); H5Epush(__FILE__, "HE5_SWwritelocattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_SWfldsrch(swathID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWwritelocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } if (fldgroup == HE5_HDFE_GEOGROUP) strcpy(grpname,"Geolocation Fields"); else if (fldgroup == HE5_HDFE_DATAGROUP) strcpy(grpname,"Data Fields"); else if (fldgroup == HE5_HDFE_PROFGROUP) strcpy(grpname,"Profile Fields"); /* Get the Field group ID */ /* ---------------------- */ FieldGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, grpname); if(FieldGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" group.\n", grpname); H5Epush(__FILE__, "HE5_SWwritelocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Get field ID and call HE5_EHattr to perform I/O */ /* ----------------------------------------------- */ fieldID = H5Dopen(FieldGrpID, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset.\n", fieldname); H5Epush(__FILE__, "HE5_SWwritelocattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Call EHattr() to perform I/O */ /* ---------------------------- */ status = HE5_EHattr(fieldID, attrname, numbertype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\" for the \"%s\" field.\n", attrname, fieldname); H5Epush(__FILE__, "HE5_SWwritelocattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_SWwritelocattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release group ID */ /* ---------------- */ status = H5Gclose(FieldGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" group ID.\n",grpname); H5Epush(__FILE__, "HE5_SWwritelocattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } free(grpname); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWreadlocattr | | | | DESCRIPTION: Reads attribute associated with a specified field in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char fieldname | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jan 00 A.Muslimov Original version. | | Jul 00 A.Muslimov Unmasked hdf5 data types. | | Nov 00 A.Muslimov Added reading local attribute from "Geolocation | | Fields" group. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Jan 04 S.Zhao Added reading local attribute from the field of | | "Profile Fields" group. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWreadlocattr(hid_t swathID, const char *fieldname, const char *attrname, void * datbuf) { herr_t status = FAIL; /* return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ntype = FAIL; /* Data type ID */ hid_t FieldGrpID = FAIL; /* Field group ID */ hid_t fieldID = FAIL; /* Field dataset ID */ long idx = FAIL; /* Swath index */ hsize_t count[] = { 0 }; /* number of elements */ char *grpname = (char *)NULL; /* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWreadlocattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Allocate memory for the group name buffer */ /* ----------------------------------------- */ grpname = (char *)calloc(64, sizeof(char) ); if( grpname == NULL) { sprintf(errbuf,"Cannot allocate memory for the group name buffer.\n"); H5Epush(__FILE__, "HE5_SWreadlocattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_SWfldsrch(swathID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field. \n",fieldname); H5Epush(__FILE__, "HE5_SWreadlocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } if (fldgroup == HE5_HDFE_GEOGROUP) strcpy(grpname,"Geolocation Fields"); else if (fldgroup == HE5_HDFE_DATAGROUP) strcpy(grpname,"Data Fields"); else if (fldgroup == HE5_HDFE_PROFGROUP) strcpy(grpname,"Profile Fields"); /* Get Field group ID */ /* -------------------- */ FieldGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, grpname); if(FieldGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" group.\n", grpname); H5Epush(__FILE__, "HE5_SWreadlocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Get field ID and call HE5_EHattr to perform I/O */ /* ----------------------------------------------- */ fieldID = H5Dopen(FieldGrpID, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset.\n", fieldname); H5Epush(__FILE__, "HE5_SWreadlocattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Call EHattr() to perform I/O */ /* ---------------------------- */ status = HE5_EHattr(fieldID,attrname,ntype,count,"r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" associated wth the \"%s\" field.\n", attrname,fieldname); H5Epush(__FILE__, "HE5_SWreadlocattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_SWreadlocattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release the group ID */ /* -------------------- */ status = H5Gclose(FieldGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" group ID.\n", grpname); H5Epush(__FILE__, "HE5_SWreadlocattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } free(grpname); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWlocattrinfo | | | | DESCRIPTION: Retrievs information about attribute associated with a | | specified field in the "Data Fields" / "Geolocation Fields" / | | "Profile Fields" group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char* field name | | attrname const char* attribute name | | | | OUTPUTS: | | ntype hid_t data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jan 00 A.Muslimov Original draft. | | May 00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | Jul 00 A.Muslimov Unmasked hdf5 data types. | | Nov 00 A.Muslimov Added retrieving info about attribute to a | | field from the "Geolocation Fields" group. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | Jan 04 S.Zhao Added retrieving info about attribute from a field | | in the "Profile Fields" group. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWlocattrinfo(hid_t swathID, const char *fieldname, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL; /* Return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t FieldGrpID = FAIL; /* Field group ID */ hid_t fieldID = FAIL; /* Field dataset ID */ long idx = FAIL; /* Swath index */ char *grpname = (char *)NULL; /* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWlocattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Allocate memory for the group name buffer */ /* ----------------------------------------- */ grpname = (char *)calloc(64, sizeof(char) ); if( grpname == NULL) { sprintf(errbuf,"Cannot allocate memory for the group name buffer.\n"); H5Epush(__FILE__, "HE5_SWlocattrinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_SWfldsrch(swathID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field. \n",fieldname); H5Epush(__FILE__, "HE5_SWlocattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } if (fldgroup == HE5_HDFE_GEOGROUP) strcpy(grpname,"Geolocation Fields"); else if (fldgroup == HE5_HDFE_DATAGROUP) strcpy(grpname,"Data Fields"); else if (fldgroup == HE5_HDFE_PROFGROUP) strcpy(grpname,"Profile Fields"); /* Get Field group ID */ /* ------------------- */ FieldGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, grpname); if(FieldGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" group.\n", grpname); H5Epush(__FILE__, "HE5_SWlocattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Get field ID */ /* ------------ */ fieldID = H5Dopen(FieldGrpID, fieldname); if(fieldID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" field dataset.\n", fieldname); H5Epush(__FILE__, "HE5_SWlocattrinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Call EHattrinfo() to perform I/O */ /* -------------------------------- */ status = HE5_EHattrinfo(fieldID,attrname,ntype,count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" in the \"%s\" group.\n", attrname, grpname); H5Epush(__FILE__, "HE5_SWlocattrinfo", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(fieldID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" field dataset ID.\n", fieldname); H5Epush(__FILE__, "HE5_SWlocattrinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } /* Release group ID */ /* ---------------- */ status = H5Gclose(FieldGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the field group ID.\n"); H5Epush(__FILE__, "HE5_SWlocattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(status); } free(grpname); } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqdscaleattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified dimension scale | | in a swath. | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long number of attributes (-1 if fails) | | | | INPUTS: | | swathID hid_t None HDF-EOS type swath ID | | fieldname char dimension scale name | | attrnames char attribute name(s) | | | | OUTPUTS: | | strbufsize long String length of attribute (in bytes) | | | | NOTES: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | June 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqdscaleattrs(hid_t swathID, const char *fieldname, char *attrnames, long *strbufsize) { long nattr = 0; /* Number of attributes (return) */ long idx = FAIL;/* Swath index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "HDFEOS" group ID */ char *dtsname = NULL;/* Buffer for dataset name */ char errbuf[HE5_HDFE_ERRBUFSIZE]; CHECKPOINTER(fieldname); /* ********************************************************** * Check for proper swath ID and return HDF-EOS file ID, * * "HDFEOS" group ID and Swath index * ********************************************************** */ status = HE5_SWchkswid(swathID, "HE5_SWinqdscaleattrs", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf,"Checking for swath ID failed.\n" ); H5Epush(__FILE__, "HE5_SWinqdscaleattrs", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } dtsname = (char *) calloc(HE5_HDFE_NAMBUFSIZE, 1); if( dtsname == NULL) { sprintf(errbuf, "Can not allocate memory.\n"); H5Epush(__FILE__, "HE5_SWinqdscaleattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(dtsname,"/HDFEOS/SWATHS/"); strcat(dtsname, HE5_SWXSwath[idx].swname); strcat(dtsname,"/"); strcat(dtsname,fieldname); nattr = HE5_EHattrcat(fid, dtsname, attrnames, strbufsize); if (dtsname != NULL) free(dtsname); COMPLETION: return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqlocattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified field in the | | "Data Fields" / "Geolocation Fields" / "Profile Fields" | | group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Data Fields" | | group. | | | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char field name | | | | OUTPUTS: | | attrnames char Attribute names in "Data Fields" group | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jan 00 A.Muslimov | | Jul 00 A.Muslimov Unmasked hdf5 data types. | | Nov 00 A.Muslimov Added inquiring about local attributes from | | "Geolocation Fields" group. | | Jan 04 S.Zhao Added inquiring about local attributes from | | the "Profile Fields" group. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqlocattrs(hid_t swathID, const char *fieldname, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes */ long idx = FAIL; /* Swath index */ herr_t status = FAIL; /* Return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ char *dtsname = (char *)NULL; /* Dataset name string */ char *grpname = (char *)NULL; /* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqlocattrs", &fid, &gid, &idx); if(status == SUCCEED ) { /* Allocate memory for the dataset name buffer */ /* ------------------------------------------- */ dtsname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( dtsname == NULL) { sprintf(errbuf, "Cannot allocate memory for the dataset name buffer. \n"); H5Epush(__FILE__, "HE5_SWinqlocattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for the group name buffer */ /* ----------------------------------------- */ grpname = (char *)calloc(64, sizeof(char) ); if( grpname == NULL) { sprintf(errbuf,"Cannot allocate memory for the group name buffer.\n"); H5Epush(__FILE__, "HE5_SWinqlocattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dtsname); return(FAIL); } /* Get the field group flag */ /* ------------------------ */ fldgroup = HE5_SWfldsrch(swathID,(char *)fieldname,NULL,NULL,NULL,NULL); if(fldgroup == FAIL) { sprintf(errbuf,"Cannot get the group flag for \"%s\" field.\n",fieldname); H5Epush(__FILE__, "HE5_SWinqlocattrs", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); free(dtsname); return(FAIL); } if (fldgroup == HE5_HDFE_GEOGROUP) strcpy(grpname,"/Geolocation Fields/"); else if (fldgroup == HE5_HDFE_DATAGROUP) strcpy(grpname,"/Data Fields/"); else if (fldgroup == HE5_HDFE_PROFGROUP) strcpy(grpname,"/Profile Fields/"); strcpy(dtsname,"/HDFEOS/SWATHS/"); strcat(dtsname, HE5_SWXSwath[idx].swname); strcat(dtsname, grpname); strcat(dtsname, fieldname); /* search group with grpname for the number of attributes */ /* ------------------------------------------------------ */ nattr = HE5_EHattrcat(fid, dtsname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot find the attributes. \n"); H5Epush(__FILE__, "HE5_SWinqlocattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if (dtsname != NULL) free(dtsname); if (grpname != NULL) free(grpname); } COMPLETION: return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRdefine | | | | DESCRIPTION: Defines "Profile" dataset within a specified Swath, under the| | "Profile Fields" group. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status (0) SUCCEED (-1) | | FAIL | | INPUTS: | | swathID hid_t Swath ID | | profilename const char Profile/dataset name | | dimlist char Comma separated list of dimensions | | maxdimlist char List of maximum dimensions | | datatype_id hid_t Base datatype ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Jun 00 A.Muslimov Original development | | Jul 00 A.Muslimov Unmasked hdf5 data types. | | Sep 00 A.Muslimov Changed referencing the "Data Fields" to "Profile | | Fields". | | Oct 00 A.Muslimov Moved a block that tries to retrieve a fill value | | to HE5_PRwrite() interface. | | Dec 00 A.Muslimov Modified to add "dimlist" and "maxdimlist" parame- | | ters and related metadata blocks. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Feb 03 S. Zhao Added the creation of the "Profile Fields" group. | | Aug 03 S.Zhao Added Szip compression methods. | | May 05 S.Zhao Added HE5_EHdtype2numtype() function call. | | Sep 11 Abe Taaheri Modified for correcting Unlimited dimension | | behavior and extension, removing hardcoded name | | Unlim | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PRdefine(hid_t swathID, const char *profilename, char *dimlist, char *maxdimlist, hid_t numbertype_in) { herr_t status = FAIL; /* Status variable (return) */ int i; /* Loop index */ int compcode = FAIL; /* Compression method flag */ int foundAllDim = 1; /* "found all dims" flag */ int append = FALSE; /* "Appendability" flag */ int first = 1; /* first entry flag */ int rank = 0; /* Profile rank */ int maxrank = 0; /* Max. dims rank */ hid_t heos_gid = FAIL; /* "SWATHS" group ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "Profile Fields" group ID */ hid_t dataset = FAIL; /* Profile dataset ID */ hid_t space = FAIL; /* Data space ID */ hid_t type = FAIL; /* Data type ID */ hid_t numtype = FAIL; /* Number type */ hid_t datatype_id; /* HDF5 type Number type */ hsize_t metavalue = 0; /* Metadata value to insert */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimension size array */ hsize_t maxdims[HE5_DTSETRANKMAX]; /* Dimension size array */ hsize_t dimsize = 0; /* Dimension size */ long idx = FAIL; /* Swath index */ H5D_layout_t layout = H5D_LAYOUT_ERROR; /* Type of storage layout */ char *dimbuf = (char *)NULL; /* Dimension buffer */ char *comma = (char *)NULL; /* Pointer to comma */ char *dimcheck = (char *)NULL; /* Dimension check buffer */ char maxdimlstbuf[HE5_HDFE_DIMBUFSIZE];/* Max. dim. list buffer */ char dimlstbuf[HE5_HDFE_DIMBUFSIZE]; /* Dim. list buffer */ char compparmbuf[HE5_HDFE_DIMBUFSIZE]; /* Compression parameter */ char utlbuf[HE5_HDFE_UTLBUFSIZE]; /* Utility buffer */ char utlbuf2[HE5_HDFE_UTLBUFSIZE]; /* Utility buffer 2 */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ char *HDFcomp[18] = {"HE5_HDFE_COMP_NONE", "HE5_HDFE_COMP_RLE", "HE5_HDFE_COMP_NBIT", "HE5_HDFE_COMP_SKPHUFF", "HE5_HDFE_COMP_DEFLATE", "HE5_HDFE_COMP_SZIP_CHIP", "HE5_HDFE_COMP_SZIP_K13", "HE5_HDFE_COMP_SZIP_EC", "HE5_HDFE_COMP_SZIP_NN", "HE5_HDFE_COMP_SZIP_K13orEC", "HE5_HDFE_COMP_SZIP_K13orNN", "HE5_HDFE_COMP_SHUF_DEFLATE", "HE5_HDFE_COMP_SHUF_SZIP_CHIP", "HE5_HDFE_COMP_SHUF_SZIP_K13", "HE5_HDFE_COMP_SHUF_SZIP_EC", "HE5_HDFE_COMP_SHUF_SZIP_NN", "HE5_HDFE_COMP_SHUF_SZIP_K13orEC", "HE5_HDFE_COMP_SHUF_SZIP_K13orNN"}; /* Compression code names */ HE5_LOCK; CHECKNAME(profilename); CHECKPOINTER(dimlist); /* Convert HDF-EOS5 datatype to HDF5 datatype */ if ( H5Tequal(numbertype_in, H5T_NATIVE_CHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UCHAR) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_SHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_USHORT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_INT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_UINT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_ULLONG) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_FLOAT) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_DOUBLE) == SUCCEED || H5Tequal(numbertype_in, H5T_NATIVE_LDOUBLE)== SUCCEED || H5Tequal(numbertype_in, H5T_C_S1) == SUCCEED) { datatype_id = numbertype_in; } else { datatype_id = HE5_EHconvdatatype((int) numbertype_in); } if(datatype_id == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID for PR Field.\n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRdefine", &fid, &heos_gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* initialize dims and maxdims array */ /* --------------------------------- */ for(i = 0; i < HE5_DTSETRANKMAX; i++) { dims[i] = 0; maxdims[i] = 0; } /* Allocate space for dimbuf, copy dimlist into it, & append comma */ /* --------------------------------------------------------------- */ dimbuf = (char *) calloc(strlen(dimlist) + 64, sizeof(char)); if(dimbuf == NULL) { H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* ******************************************************************** * C H E C K T H E C O N T E N T O F dimlist S T R I N G * ******************************************************************** */ strcpy(dimbuf, dimlist); strcat(dimbuf, ","); /* Find comma */ /* ---------- */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in swath */ while (comma != NULL) { /* Copy dimension list entry to dimcheck */ /* ------------------------------------- */ dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(dimbuf); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get dimension size */ /* ------------------ */ dimsize = HE5_SWdiminfo(swathID, dimcheck); if (dimsize > 0) { dims[rank] = dimsize; rank++; } else { /* * If dimension list entry not found - set error return * status, append name to utility buffer for error report */ status = FAIL; foundAllDim = 0; if (first == 1) strcpy(utlbuf, dimcheck); else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ strcpy(dimbuf, comma + 1); comma = strchr(dimbuf, ','); free(dimcheck); } free(dimbuf); /* If no dimensions found, report error */ /* ------------------------------------ */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Dimension(s) \"%s\" not found for \"%s\" profile. \n", utlbuf, profilename); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* ************************************************************************ * C H E C K T H E C O N T E N T O F maxdimlist S T R I N G * ************************************************************************ */ /* Allocate space for dimbuf, copy maxdimlist into it, & append comma */ /* ------------------------------------------------------------------ */ if(maxdimlist != NULL) { dimbuf = (char *) calloc(strlen(maxdimlist) + 64, sizeof(char)); if(dimbuf == NULL) { H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Copy "maxdimlist" to "dimbuf", & append comma */ /* --------------------------------------------- */ strcpy(dimbuf, maxdimlist); strcat(dimbuf, ","); /* Find comma */ /* ---------- */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in swath */ while (comma != NULL) { /* Copy dimension list entry to dimcheck */ /* ------------------------------------- */ dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(dimbuf); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get dimension size */ /* ------------------ */ dimsize = HE5_SWdiminfo(swathID, dimcheck); if ( (dimsize > 0) || (dimsize == H5S_UNLIMITED) ) { maxdims[maxrank] = dimsize; maxrank++; } else { /* * If dimension list entry not found - set error return * status, append name to utility buffer for error report */ status = FAIL; foundAllDim = 0; if (first == 1) strcpy(utlbuf, dimcheck); else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ strcpy(dimbuf, comma + 1); comma = strchr(dimbuf, ','); free(dimcheck); } free(dimbuf); /* If no dimensions found, report error */ /* ------------------------------------ */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Dimension(s) \"%s\" not found for \"%s\" profile. \n", utlbuf, profilename); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* If maxrank !=rank then report error */ /* ------------------------------------ */ if ( maxrank != rank ) { status = FAIL; sprintf(errbuf,"Dimension rank doesn't match Maximum dimension rank. \n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } } /* "maxdimlist == NULL" ==> maxdims[]= dims[] */ /* ------------------------------------------- */ else { for(i = 0; i < rank; i++ ) maxdims[ i ] = dims[ i ]; } /* Find out if the dataset dimension is appendable */ /* ----------------------------------------------- */ for(i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } else { status = FAIL; H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_ARGS, H5E_BADRANGE, "Maximum dimension size is smaller than Dimension size. \n"); HE5_EHprint("Error: Maximum dimension size is smaller than Dimension size, occured", __FILE__, __LINE__); return(status); } } /* Check for valid base data type ID */ /* --------------------------------- */ if (H5Tequal(datatype_id, H5T_NATIVE_CHAR) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_SCHAR) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_UCHAR) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_SHORT) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_USHORT) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_INT) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_UINT) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_LONG) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_ULONG) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_LLONG) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_ULLONG) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_FLOAT) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_DOUBLE) == FAIL && H5Tequal(datatype_id, H5T_NATIVE_LDOUBLE) == FAIL ) { H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, "Invalid (unsupported) data type. \n"); HE5_EHprint("Error: Invalid (unsupported) data type, occured", __FILE__, __LINE__); return(FAIL); } /* Check if "Profile Fields" group exists */ /* -------------------------------------- */ if (HE5_SWXSwath[idx].prof_id != FAIL) { /* Get the "Profile Fields" group ID */ /* --------------------------------- */ gid = HE5_SWXSwath[idx].prof_id; } else { /* Create /SWATH/swathname/Profile Fields group */ /* -------------------------------------------- */ gid = H5Gcreate(HE5_SWXSwath[idx].sw_id, "Profile Fields", 0); if (gid == FAIL) { sprintf(errbuf,"Cannot create the \"Profile Fields\" group.\n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_OHDR, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Setup External Arrays */ /* --------------------- */ HE5_SWXSwath[idx].prof_id = gid; } /* Create dataspace then create dataset */ /*------------------------------------ */ if( HE5_SWXSwath[idx].plist == FAIL ) HE5_SWXSwath[idx].plist = H5Pcreate(H5P_DATASET_CREATE); /* Get dataset layout */ /* ------------------ */ layout = H5Pget_layout(HE5_SWXSwath[idx].plist); if (layout == H5D_LAYOUT_ERROR) { status = FAIL; H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_ARGS, H5E_BADVALUE, "Cannot get dataset layout.\n"); HE5_EHprint("Error: Cannot get dataset layout, occured", __FILE__, __LINE__); return(status); } if(append == FALSE) space = H5Screate_simple(rank, dims, NULL); else { if( layout == H5D_CHUNKED) space = H5Screate_simple(rank, dims, maxdims); else { status = FAIL; H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_ARGS, H5E_BADVALUE, "Appendable dataset MUST BE CHUNKED first.\n"); HE5_EHprint("Error: Appendable dataset MUST BE CHUNKED first, occured", __FILE__, __LINE__); return(status); } } /* Create the VL data type from the base data type */ /* ----------------------------------------------- */ type = H5Tvlen_create(datatype_id); if (type == FAIL) { status = FAIL; sprintf(errbuf,"Cannot create the VL-data type for \"%s\" profile.\n", profilename); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create dataset */ /* -------------- */ dataset = H5Dcreate(gid, profilename, type, space, HE5_SWXSwath[idx].plist); if (dataset == FAIL) { status = FAIL; sprintf(errbuf,"Cannot create dataset for \"%s\" profile. \n", profilename); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Extend the dataset. assure that it is at least dims size */ /* -------------------------------------------------------- */ if( append == TRUE) { status = H5Dextend(dataset, dims); if (status == FAIL) { sprintf(errbuf,"Cannot extend the dataset for \"%s\" profile.\n", profilename); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Store dataset IDs and dataset name */ /* ---------------------------------- */ if (HE5_SWXSwath[idx].nPROF > 0) { /* Allocate memory to "Profile" struct */ /* ----------------------------------- */ HE5_SWXSwath[idx].pdataset = (HE5_DTSinfo *)realloc((void *)HE5_SWXSwath[idx].pdataset,(HE5_SWXSwath[idx].nPROF + 1) * sizeof(HE5_DTSinfo)); } else { HE5_SWXSwath[idx].pdataset = (HE5_DTSinfo *)calloc(1, sizeof(HE5_DTSinfo)); if (HE5_SWXSwath[idx].pdataset == (HE5_DTSinfo *)NULL ) { status = FAIL; sprintf(errbuf,"Cannot allocate memory for \"Profile\" structure. \n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Allocate memory to name */ /* ----------------------- */ HE5_SWXSwath[idx].pdataset[HE5_SWXSwath[idx].nPROF].name = (char *)calloc( (strlen(profilename)+1), sizeof(char) ); if ( HE5_SWXSwath[idx].pdataset[HE5_SWXSwath[idx].nPROF].name == (char *)NULL) { status = FAIL; sprintf(errbuf,"Cannot allocate memory for \"Profile\" structure. \n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(HE5_SWXSwath[idx].pdataset); return(status); } /* Load Table */ /* ---------- */ HE5_SWXSwath[idx].pdataset[HE5_SWXSwath[idx].nPROF].ID = dataset; strcpy(HE5_SWXSwath[idx].pdataset[HE5_SWXSwath[idx].nPROF].name, profilename); /* Increment the profile counter */ /* ----------------------------- */ HE5_SWXSwath[idx].nPROF++; /* ****************************************************************** * SET UP METADATA STRINGS * ****************************************************************** */ /* Set up "DimList" string content */ /* ------------------------------- */ strcpy(utlbuf,""); sprintf(utlbuf, "%s%s%s", profilename,":",dimlist); /* Set up "MaxdimList" string content */ /* ----------------------------------- */ if ( maxdimlist != NULL) { status = HE5_EHmetalist(maxdimlist,maxdimlstbuf); if (status == FAIL) { sprintf(errbuf, "Cannot convert the input \"%s\" list to the metadata list. \n", maxdimlist); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } sprintf(utlbuf2,"%s%s",":\n\t\t\t\tMaxdimList=", maxdimlstbuf); strcat(utlbuf,utlbuf2); } if (maxdimlist == NULL) { status = HE5_EHmetalist(dimlist,dimlstbuf); if (status == FAIL) { sprintf(errbuf, "Cannot convert the input \"%s\" list to the metadata list.\n", dimlist); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } sprintf(utlbuf2,"%s%s",":\n\t\t\t\tMaxdimList=", dimlstbuf); strcat(utlbuf,utlbuf2); } /* Get current compression code */ /* ---------------------------- */ compcode = HE5_SWXSwath[idx].compcode; /* setup "CompressionType" & "CompressionParams" strings content */ /* ------------------------------------------------------------- */ if (compcode != HE5_HDFE_COMP_NONE) { sprintf(utlbuf2,"%s%s","\n\t\t\t\tCompressionType=", HDFcomp[compcode]); switch (compcode) { case HE5_HDFE_COMP_NBIT: sprintf(compparmbuf, "%s%d,%d,%d,%d%s", "\n\t\t\t\tCompressionParams=(", HE5_SWXSwath[idx].compparm[0], HE5_SWXSwath[idx].compparm[1], HE5_SWXSwath[idx].compparm[2], HE5_SWXSwath[idx].compparm[3], ")"); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_DEFLATE: sprintf(compparmbuf,"%s%d","\n\t\t\t\tDeflateLevel=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_CHIP: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_K13: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_EC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_NN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_K13orEC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SZIP_K13orNN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_DEFLATE: sprintf(compparmbuf,"%s%d","\n\t\t\t\tDeflateLevel=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_CHIP: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_K13: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_EC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_NN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_K13orEC: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; case HE5_HDFE_COMP_SHUF_SZIP_K13orNN: sprintf(compparmbuf,"%s%d","\n\t\t\t\tBlockSize=", HE5_SWXSwath[idx].compparm[0]); strcat(utlbuf2, compparmbuf); break; default: { sprintf(errbuf,"Compression code \"%d\" is not supported. \n", compcode); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } break; } /* Concatanate compression parameters with compression code */ /* -------------------------------------------------------- */ strcat(utlbuf, utlbuf2); } /* Generate value of "DataType" metadata */ /* ------------------------------------- */ numtype = HE5_EHdtype2numtype(datatype_id); if (numtype == FAIL) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (numtype == 0) { metavalue = 0; } else { metavalue = HE5_EHhid2hsize(numtype); if (metavalue == 0) { sprintf(errbuf, "Cannot convert \"hid_t\" to \"hsize_t\" data type. \n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* ****************************************************************** * Insert metadata information to Structural Metadata section * ****************************************************************** */ status = HE5_EHinsertmeta(fid, HE5_SWXSwath[idx].swname, "s", 5L, utlbuf, &metavalue); if (status == FAIL) { sprintf(errbuf,"Cannot insert metadata for \"%s\" profile.\n",profilename); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(type); if ( status == FAIL) { sprintf(errbuf,"Cannot release the property list ID. \n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(HE5_SWXSwath[idx].pdataset); free(HE5_SWXSwath[idx].pdataset[HE5_SWXSwath[idx].nPROF].name); return(status); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(space); if ( status == FAIL) { sprintf(errbuf,"Cannot release the data space ID. \n"); H5Epush(__FILE__, "HE5_PRdefine", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(HE5_SWXSwath[idx].pdataset); free(HE5_SWXSwath[idx].pdataset[HE5_SWXSwath[idx].nPROF].name); return(status); } /* Reset external array entry */ /* -------------------------- */ /* The reset was moved to HE5_PRwrite, to make dataset property reset consistent with metadata reset. Unlike swath, grid and ZA, where the property list is reset after definition of every field, the PR APIs reset property list after first dataset writing (not definition), so if one defines several PR fields, all will have the same properties, such as compression. HE5_SWXSwath[idx].compcode = HE5_HDFE_COMP_NONE; for (i = 0; i < 5; i++) HE5_SWXSwath[idx].compparm[ i ] = 0; */ COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRwrite | | | | DESCRIPTION: Writes data into the "Profile" dataset within a Swath. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status (0) SUCCEED (-1) | | FAIL | | INPUTS: | | Swath_ID hid_t Swath ID | | profilename const char Name of Profile dataset | | start hssize_t start array | | stride hsize_t stride array | | edge hsize_t edge array | | size size_t Size (in bytes) of data to write | | buffer void Data buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | The "NULL" values for "start" and "edge" are not allowed. | | | | Date Programmer Description | | ======= ============ ================================================= | | 6/8/00 A.Muslimov Original development | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 00 A.Muslimov Changed referencing the "Data Fields" by "Profile | | Fields". | | Oct 00 A.Muslimov Added conditional release of the property list ID. | | Dec 00 A.Muslimov Enhanced to add "start", "stride", and "edge" para- | | meters. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Apr 03 S.Zhao Added conversion from dataset base datatype ID to | | memory base datatype ID. | | Sep 06 Abe Taaheri Added H5Dclose to close opened dataset | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PRwrite(hid_t swathID, const char *profilename, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], size_t size, void *buffer) { herr_t status = FAIL; /* Status variable (return) */ int rank = FAIL; /* Rank of profile dataset */ int i; /* Loop index */ int append = FALSE; /* FLAG (appendability) */ hid_t heos_gid = FAIL; /* "SWATHS" group ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t dataset = FAIL; /* Profile dataset ID */ hid_t datatype = FAIL; /* Profile datatype ID */ hid_t btype = FAIL; /* Dataset base datatype ID */ hid_t space = FAIL; /* File data space ID */ hid_t mspace = FAIL; /* Memory data space ID */ hid_t xfer_list = FAIL; /* Property list ID */ hid_t grp_id = FAIL; /* "Data Fields" group ID */ hid_t mbtype = FAIL; /* "Memory" base datatype ID*/ hid_t mtype = FAIL; /* Memory data type ID */ H5D_fill_value_t fill_status; /* to see if fill value is set or not */ void *value = (void *)NULL; /* Temp fill value variable */ hsize_t count[] = { 1 }; /* Number of attr. elements */ hsize_t dims[HE5_DTSETRANKMAX]; /* Array of dimension sizes */ hsize_t maxdims[HE5_DTSETRANKMAX]; /* Array of Max. dim. sizes */ hsize_t size_ext[HE5_DTSETRANKMAX]; /* Extended dimension size */ size_t tsize = 0; /* Size of base data type */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(profilename); CHECKPOINTER(buffer); /* assuming that fillvalue is undefined for the field */ fill_status = H5D_FILL_VALUE_UNDEFINED; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRwrite", &fid, &heos_gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Initialize dims[]/maxdims[]/size_ext[] arrays */ /* --------------------------------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) { dims[i] = 0; maxdims[i] = 0; size_ext[i] = 0; } /* Get "Profile Fields" group ID */ /* ----------------------------- */ grp_id = HE5_SWXSwath[idx].prof_id; /* Open the dataset */ /* ---------------- */ dataset = H5Dopen(grp_id, profilename); if (dataset == FAIL) { status = FAIL; sprintf(errbuf, "Cannot open the profile \"%s\". \n", profilename); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create property list ID */ /* ----------------------- */ xfer_list = H5Pcreate(H5P_DATASET_XFER); if (xfer_list == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create the property list for the profile \"%s\". \n", profilename); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the dataset data type ID */ /* ---------------------------- */ datatype = H5Dget_type(dataset); if (datatype == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the datatype ID for the profile \"%s\". \n", profilename); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the data space ID */ /* --------------------- */ space = H5Dget_space(dataset); if (space == FAIL) { status = FAIL; sprintf(errbuf, "Cannot get the data space ID for the profile \"%s\". \n", profilename); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the base data type ID */ /* ------------------------- */ btype = H5Tget_super(datatype); if( btype == FAIL) { sprintf(errbuf, "Cannot get the base data type ID. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (FAIL); } /* Get the memory base data type ID */ /* -------------------------------- */ mbtype = HE5_EHdtype2mtype(btype); if (mbtype == FAIL) { sprintf(errbuf,"Cannot get the memory data type from the base data type.\n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create data type ID */ /* ------------------- */ mtype = H5Tvlen_create(mbtype); if (mtype == FAIL) { sprintf(errbuf,"Cannot create data type from the base data type.\n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the size of a base data type in bytes */ /* ----------------------------------------- */ tsize = H5Tget_size(btype); if( tsize == 0) { sprintf(errbuf, "Cannot get the size of a base data type. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (FAIL); } /* Allocate memory for a fill value */ /* -------------------------------- */ value = (void *)calloc(1, tsize); if( value == (void *)NULL) { sprintf(errbuf, "Cannot allocate memory for fill value. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Try to retrieve the fill value (in case it's already defined) */ /* ------------------------------------------------------------- */ H5E_BEGIN_TRY { status = H5Pfill_value_defined(HE5_SWXSwath[idx].plist, &fill_status ); } H5E_END_TRY; if (fill_status == H5D_FILL_VALUE_USER_DEFINED) { H5E_BEGIN_TRY { status = H5Pget_fill_value(HE5_SWXSwath[idx].plist, btype, value); } H5E_END_TRY; /* Store fill value in the dataset attribute "_FillValue" */ /* ----------------------------------------------------- */ if( status != FAIL) { status = HE5_EHattr( dataset, "_FillValue", btype, count, "w", value); if( status == FAIL ) { sprintf(errbuf, "Cannot write fill value to the attribute \"_FillValue\". \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(value); return(status); } } } free( value); /* Get the dataset rank, and dimension sizes */ /* ----------------------------------------- */ rank = H5Sget_simple_extent_dims(space, dims, maxdims); if (rank == FAIL) { sprintf(errbuf, "Cannot get the data space dimension size and maximum dimension size. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Find out if the dataset is extendible */ /* ------------------------------------- */ for(i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } else { sprintf(errbuf,"Maximum dimension size is smaller than dimension size.\n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* If the dataset is APPENDIBLE, extend it */ /* --------------------------------------- */ if (append == TRUE) { for(i = 0; i < rank; i++) size_ext[ i ] = start[ i ] + edge[ i ]; status = H5Dextend(dataset, size_ext); if (status == FAIL) { sprintf(errbuf, "Cannot extend the dataset. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Select the hyperslab */ /* -------------------- */ status = H5Sselect_hyperslab( space, H5S_SELECT_SET, (const hsize_t *)start, stride, edge, NULL) ; if( status == FAIL ) { sprintf(errbuf,"Cannot select a hyperslab. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create dataspace in memory */ /* -------------------------- */ mspace = H5Screate_simple(rank, edge, NULL); if( mspace == FAIL) { sprintf(errbuf,"Cannot create the memory data space.\n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATASPACE, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Set "write" data buffer */ /* ----------------------- */ status = H5Pset_buffer(xfer_list, size, NULL, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot set data buffer for the profile \"%s\". \n", profilename); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Write data to the dataset */ /* ------------------------- */ status = H5Dwrite(dataset, mtype, mspace, space, xfer_list, buffer); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the profile \"%s\". \n", profilename); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Reclaim the write VL data. */ /* -------------------------- */ status = H5Dvlen_reclaim(datatype, space, H5P_DEFAULT, buffer); if (status == FAIL) { sprintf(errbuf, "Cannot reclaim the write VL data for the profile \"%s\". \n", profilename); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(space); if (status == FAIL) { sprintf(errbuf, "Cannot release the file data space ID. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the memory data space ID */ /* -------------------------------- */ status = H5Sclose(mspace); if (status == FAIL) { sprintf(errbuf, "Cannot release the memory data space ID. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check if the property list is "on" */ /* ---------------------------------- */ if ( HE5_SWXSwath[idx].plist != FAIL ) { /* Release property list ID */ /* ------------------------ */ status = H5Pclose(HE5_SWXSwath[idx].plist); if ( status == FAIL) { sprintf(errbuf,"Cannot release the property list ID.\n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Reset the externally stored property list ID */ /* -------------------------------------------- */ HE5_SWXSwath[idx].plist = FAIL; /* Reset external array entry */ /* -------------------------- */ HE5_SWXSwath[idx].compcode = HE5_HDFE_COMP_NONE; for (i = 0; i < 5; i++) HE5_SWXSwath[idx].compparm[ i ] = 0; } /* Release the xfer property list ID */ /* --------------------------------- */ status = H5Pclose(xfer_list); if (status == FAIL) { sprintf(errbuf, "Cannot release the xfer property list ID. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(datatype); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(dataset); if (status == FAIL) { sprintf(errbuf,"Cannot release dataset ID.\n"); H5Epush(__FILE__, "HE5_PRwrite", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRread | | | | DESCRIPTION: Reads data from the profile dataset. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status (0) SUCCEED (-1) | | FAIL | | INPUTS: | | swathID hid_t Swath ID | | profilename const char Name of profile/dataset | | start hssize_t start array | | stride hsize_t stride array | | edge hsize_t edge array | | | | OUTPUTS: | | buffer void Data buffer | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Jun 00 A.Muslimov Original development | | Jul 00 A.Muslimov Unmasked hdf5 data types. | | Jul 00 A.Muslimov Added calls to H5Tget_super() and EHdtype2mtype() | | to make sure that the data type ID passed to | | H5Dread() won't cause a portability problem. | | Sep 00 A.Muslimov Updated to change "Data Fields" group by "Profile | | Fields" group. | | Dec 00 A.Muslimov Enhanced to add "start", "stride", and "edge" para- | | meters. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | Sep 06 Abe Taaheri Added H5Dclose to close opened dataset | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PRread(hid_t swathID, const char *profilename, const hssize_t start[], const hsize_t stride[], const hsize_t edge[], void *buffer) { herr_t status = FAIL; /* Return status variable */ /* int mem_used = 0;*/ /* "Memory allocated" */ int rank = FAIL; /* Rank of profile dataset */ hid_t heos_gid = FAIL; /* "SWATHS" group ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t dataset = FAIL; /* dataset ID */ hid_t plist = FAIL; /* Property list ID */ hid_t type = FAIL; /* Datatype ID */ hid_t space = FAIL; /* File data space ID */ hid_t mspace = FAIL; /* Memory data space ID */ hid_t grp_id = FAIL; /* "Data Fields" group ID */ hid_t btype = FAIL; /* Base data type ID */ hid_t mbtype = FAIL; /* "Memory" base datatype ID */ hid_t mtype = FAIL; /* "Memory" data type ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(profilename); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRread", &fid, &heos_gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get "Profile Fields" group ID */ /* ----------------------------- */ grp_id = HE5_SWXSwath[idx].prof_id; /* Open the Profile dataset */ /* ------------------------ */ dataset = H5Dopen(grp_id, profilename); if (dataset == FAIL) { status = FAIL; sprintf(errbuf,"Cannot open the profile dataset \"%s\". \n", profilename); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the file data space ID */ /* -------------------------- */ space = H5Dget_space(dataset); if (space == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the space ID for the profile dataset \"%s\".\n", profilename); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create the property list */ /* ------------------------ */ plist = H5Pcreate(H5P_DATASET_XFER); if (plist == FAIL) { status = FAIL; sprintf(errbuf,"Cannot create the property list. \n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Set up memory manager */ /* --------------------- */ /* status = H5Pset_vlen_mem_manager(plist,vltypes_alloc_custom, &mem_used,vltypes_free_custom, &mem_used); if (status == FAIL) { sprintf(errbuf,"Cannot set up the memory manager. \n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } */ /* Get the datatype ID */ /* ------------------- */ type = H5Dget_type(dataset); if (type == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the dataset base data type ID */ /* --------------------------------- */ btype = H5Tget_super(type); if (btype == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the base data type ID.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the memory base data type ID */ /* -------------------------------- */ mbtype = HE5_EHdtype2mtype(btype); if (mbtype == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the memory data type from the base data type.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create data type ID */ /* ------------------- */ mtype = H5Tvlen_create(mbtype); if (mtype == FAIL) { status = FAIL; sprintf(errbuf,"Cannot create data type from the base data type.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the dataset rank */ /* -------------------- */ rank = H5Sget_simple_extent_ndims(space); if (rank == FAIL) { status = FAIL; sprintf(errbuf,"Cannot get the dataset rank.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Select the hyperslab */ /* -------------------- */ status = H5Sselect_hyperslab(space, H5S_SELECT_SET, (const hsize_t *)start, stride, edge, NULL) ; if (status == FAIL) { sprintf(errbuf,"Cannot select the hyperslab.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create the memory dataspace */ /* --------------------------- */ mspace = H5Screate_simple(rank, edge, NULL); if (mspace == FAIL) { status = FAIL; sprintf(errbuf,"Cannot create the memory dataspace.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATASPACE, H5E_CANTCREATE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Read out the dataset from the disk */ /* ----------------------------------- */ status = H5Dread(dataset, mtype, mspace, space, plist, buffer); if (status == FAIL) { sprintf(errbuf,"Cannot read the data from profile dataset \"%s\".\n",profilename); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Save the IDs for "reclaimspace" */ /* ------------------------------- */ profile.plist_id = plist; profile.type_id = mtype; profile.space_id = space; /* Release "disk" data type ID */ /* --------------------------- */ status = H5Tclose(type); if (status == FAIL) { sprintf(errbuf,"Cannot release data type ID.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release memory space ID */ /* ----------------------- */ status = H5Sclose(mspace); if (status == FAIL) { sprintf(errbuf,"Cannot release memory space ID.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release base data type ID */ /* ------------------------- */ status = H5Tclose(btype); if (status == FAIL) { sprintf(errbuf,"Cannot release base data type ID.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(dataset); if (status == FAIL) { sprintf(errbuf,"Cannot release dataset ID.\n"); H5Epush(__FILE__, "HE5_PRread", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return (status); } /* ------------------------------------------------------------ | VL datatype custom memory allocation routine | ------------------------------------------------------------ */ /* void *vltypes_alloc_custom(size_t size, void *info) { void *ret_value = NULL; int *mem_used = (int *)info; size_t extra; extra = MAX(sizeof(void *), sizeof(int)); if ( (ret_value = malloc(extra+size)) != NULL) { *(int *)ret_value = (int)size; *mem_used += (int)size; } ret_value = ((unsigned char*)ret_value) + extra; return(ret_value); } */ /* ------------------------------------------------------------ | VL datatype custom memory freeing routine | ------------------------------------------------------------ */ /* void vltypes_free_custom(void *_mem, void *info) { unsigned char *mem; int *mem_used = (int *)info; size_t extra; extra = MAX(sizeof(void *), sizeof(int)); if (_mem != NULL) { mem = ((unsigned char *)_mem) - extra; *mem_used -= *(int *)mem; free(mem); } } */ /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRreclaimspace | | | | DESCRIPTION: Reclaims the memory used by the read buffer. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status (0) SUCCEED (-1) | | FAIL | | INPUTS: | | swathID hid_t Swath ID | | profilename const char Name of profile/dataset | | | | OUTPUTS: | | buffer void Data buffer | | | | NOTES: | | After passing to H5Dvlen_reclaim the IDs may change, | | so please use externally stored ID values. | | | | Date Programmer Description | | ======= ============ ================================================= | | 6/8/00 A.Muslimov Original development | | July 00 A.Muslimov Unmasked hdf5 data types. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PRreclaimspace(hid_t swathID, const char *profilename, void *buffer) { herr_t status = FAIL; /* Return status variable */ hid_t heos_gid = FAIL; /* "SWATHS" group ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t plist = FAIL; /* property list ID */ hid_t type = FAIL; /* datatype ID */ hid_t space = FAIL; /* data space ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(buffer); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRreclaimspace", &fid, &heos_gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_PRreclaimspace", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the stored IDs */ /* ------------------- */ type = profile.type_id; space = profile.space_id; plist = profile.plist_id; /* Reclaim the data space */ /* ---------------------- */ status = H5Dvlen_reclaim(type, space, plist, buffer); if (status == FAIL) { sprintf(errbuf, "Cannot reclaim the memory space. \n"); H5Epush(__FILE__, "HE5_PRreclaimspace", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(profile.plist_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the property list ID. \n"); H5Epush(__FILE__, "HE5_PRreclaimspace", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(profile.type_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_PRreclaimspace", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(profile.space_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the data space ID. \n"); H5Epush(__FILE__, "HE5_PRreclaimspace", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Reset IDs for next buffer */ /* ------------------------- */ profile.type_id = FAIL; profile.space_id = FAIL; profile.plist_id = FAIL; COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRinquire | | | | DESCRIPTION: Retrieves number of profiles in a swath | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | nProf long Return number of profiles | | FAIL | | INPUTS: | | swathID hid_t swath ID | | | | OUTPUTS: | | profnames char List of profile names | | rank[] int Profile/dataset rank array | | classID[] H5T_class_t Array of profile base datatype IDs | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | 8/30/00 A. Muslimov Original development | | Sep 00 A. Muslimov Modified to change "Data Fields" onto "Profile | | Fields" | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_PRinquire(hid_t swathID, char *profnames, int *rank, H5T_class_t *classID) { long nProf = FAIL; /* Number of profiles */ long idx = FAIL; /* Swath index */ int index = FAIL; /* Iterator index */ int i; /* Loop index */ herr_t status = FAIL; /* Status variable */ hid_t gid = FAIL; /* "SWATHS" group ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t groupID = FAIL; /* "Profile Fields" group ID */ hid_t profID = FAIL; /* Profile dataset ID */ hid_t typeID = FAIL; /* Dataset type ID */ hid_t spaceID = FAIL; /* Dataset space ID */ hid_t btypeID = FAIL; /* Base data type ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ char *namebuf = (char *)NULL; /* Buffer for the list */ char *prname = (char *)NULL; /* Buffer for each entry */ char *comma = (char *)NULL; /* Pntr to comma */ char *groupname = (char *)NULL; /* Group name string */ HE5_OBJINFO profdata; /* Initialize the output data structure */ /* ------------------------------------ */ profdata.count = 0; profdata.name = NULL; profdata.strsize = 0; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRinquire", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } groupname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char)); if (groupname == NULL) { sprintf(errbuf,"Cannot allocate memory for \"groupname\".\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(groupname,"/HDFEOS/SWATHS/"); strcat(groupname, HE5_SWXSwath[idx].swname); strcat(groupname,"/Profile Fields"); /* Get "Profile Fields" group ID */ /* ------------------------------ */ groupID = HE5_SWXSwath[idx].prof_id; index = H5Giterate(groupID,groupname, NULL, HE5_EHobj_info, &profdata); if (index < 0) { sprintf(errbuf,"Iteration through the \"Profile Fields\" group failed.\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(groupname); if(profdata.name != NULL ) free(profdata.name); return(FAIL); } free(groupname); nProf = profdata.count; if (profnames != NULL) strcpy(profnames,profdata.name); if (rank != NULL || classID != NULL) { /* Allocate memory for name buffer */ /* ------------------------------- */ namebuf = (char *)calloc(strlen(profdata.name)+2, sizeof(char)); if (namebuf == NULL) { sprintf(errbuf,"Cannot allocate memory for \"namebuf\".\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(profdata.name != NULL ) free(profdata.name); return(FAIL); } strcpy(namebuf, profdata.name); strcat(namebuf, ","); /* Find comma */ /* ---------- */ comma = strchr(namebuf, ','); i = 0; /* Parse the list of profiles names */ /* -------------------------------- */ while (comma != NULL) { /* Copy profile list entry to prname */ /* --------------------------------- */ prname = (char *)calloc(comma - namebuf + 1, sizeof(char)); if (prname == NULL) { sprintf(errbuf,"Cannot allocate memory for \"Profile name\".\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(profdata.name != NULL ) free(profdata.name); if (namebuf != NULL) free(namebuf); return(FAIL); } memmove(prname, namebuf, comma - namebuf); prname[comma-namebuf] = 0; /* Open each profile dataset */ /* ------------------------- */ profID = H5Dopen(groupID, prname); if (profID == FAIL) { sprintf(errbuf,"Cannot open the profile \"%s\" dataset.\n", prname); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (prname != NULL) free(prname); if (namebuf != NULL) free(namebuf); if (profdata.name != NULL ) free(profdata.name); return(FAIL); } if (rank != NULL) { /* Get rank of the dataset */ /* ----------------------- */ spaceID = H5Dget_space(profID); if (spaceID == FAIL) { sprintf(errbuf,"Cannot get data space ID.\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (prname != NULL) free(prname); if (namebuf != NULL) free(namebuf); if (profdata.name != NULL ) free(profdata.name); return(FAIL); } rank[i] = H5Sget_simple_extent_ndims(spaceID); if (rank[i] == FAIL) { sprintf(errbuf,"Cannot get dataset rank.\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (prname != NULL) free(prname); if (namebuf != NULL) free(namebuf); if (profdata.name != NULL ) free(profdata.name); return(FAIL); } status = H5Sclose(spaceID); if (status == FAIL) { sprintf(errbuf,"Cannot release data space ID.\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (prname != NULL) free(prname); if (namebuf != NULL) free(namebuf); if (profdata.name != NULL ) free(profdata.name); return(FAIL); } } if (classID != NULL) { /* Get base data type class ID */ /* --------------------------- */ typeID = H5Dget_type(profID); if (typeID == FAIL) { sprintf(errbuf,"Cannot get data type ID.\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (prname != NULL) free(prname); if (namebuf != NULL) free(namebuf); if (profdata.name != NULL ) free(profdata.name); return(FAIL); } btypeID = H5Tget_super(typeID); if (btypeID == FAIL) { sprintf(errbuf,"Cannot get base data type ID.\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (prname != NULL) free(prname); if (namebuf != NULL) free(namebuf); if (profdata.name != NULL ) free(profdata.name); return(FAIL); } /* ------------------------------------------ */ /* Call "classID[i] = H5Tget_class(btypeID);" */ /* to get dataset (VL) data type class ID */ /* ------------------------------------------ */ classID[i] = H5Tget_class(btypeID); if (classID[i] == H5T_NO_CLASS) { sprintf(errbuf,"Cannot get data type class ID.\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (prname != NULL) free(prname); if (namebuf != NULL) free(namebuf); if (profdata.name != NULL ) free(profdata.name); return(FAIL); } status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf,"Cannot release data type ID.\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (prname != NULL) free(prname); if (namebuf != NULL) free(namebuf); if (profdata.name != NULL ) free(profdata.name); return(FAIL); } } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(profID); if (status == FAIL) { sprintf(errbuf,"Cannot release dataset ID.\n"); H5Epush(__FILE__, "HE5_PRinquire", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (prname != NULL) free(prname); if (namebuf != NULL) free(namebuf); if (profdata.name != NULL ) free(profdata.name); return(FAIL); } /* Go to next list entry, find next comma, ... */ /* ------------------------------------------- */ strcpy(namebuf, comma + 1); comma = strchr(namebuf, ','); if (prname != NULL) free(prname); i++; } free(namebuf); } free(profdata.name); return(nProf); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRinfo | | | | DESCRIPTION: Retrieves information about specified profile. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | swathID hid_t swath ID | | profname char Profile name | | | | OUTPUTS: | | rank[] int Profile/dataset rank array | | dims[] hsize_t dimension size array | | maxdims[] hsize_t max. dimension size array | | ntype[] hid_t Array of profile base numtype IDs | | dimlist char Dimension list | | maxdimlist char Maximum Dimension List | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | 8/30/00 A. Muslimov Original development | | Sep 00 A. Muslimov Modified to change the group from "Data Fields" to | | "Profile Fields". | | Dec 00 A. Muslimov Updated to set up "dimlist" and "maxdimlist" strings| | using metadata. | | May 03 S. Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PRinfo(hid_t swathID, const char *profname, int *rank, hsize_t dims[], hsize_t maxdims[], hid_t *ntype, char *dimlist, char *maxdimlist) { herr_t status = FAIL; /* Return status variable */ herr_t statmeta = FAIL; /* EHgetmetavalue return status */ int i = 0; /* Loop index */ long idx = FAIL; /* Swath index */ long ndims = 0; /* Number of dimensions */ hid_t groupID = FAIL; /* "Profile Fields" group ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t profID = FAIL; /* Profile dataset ID */ hid_t typeID = FAIL; /* Dataset type ID */ hid_t spaceID = FAIL; /* Dataset space ID */ hid_t btypeID = FAIL; /* Base data type ID */ H5T_class_t classid = H5T_NO_CLASS; /* data type class ID */ size_t slen[HE5_DTSETRANKMAX]; /* Length of each entry in parsed string */ char *metabuf = (char *)NULL; /* Ptr to structural metadata (SM) */ char *metaptrs[2] = {NULL,NULL}; /* Ptrs to the begining and end of SM */ char utlstr[HE5_HDFE_UTLBUFSIZE]; /* Utility string */ char *ptr[HE5_DTSETRANKMAX]; /* String pointers for parsed string */ char dimstr[HE5_HDFE_DIMBUFSIZE]; /* Individual dimension entry string */ char maxdimstr[HE5_HDFE_DIMBUFSIZE];/* Individual max. dimension entry string */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ CHECKPOINTER(profname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get "Profile Fields" group ID */ /* ----------------------------- */ groupID = HE5_SWXSwath[idx].prof_id; /* Open specified profile dataset */ /* ------------------------------ */ profID = H5Dopen(groupID, profname); if (profID == FAIL) { sprintf(errbuf,"Cannot open \"%s\" profile.\n", profname); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data space ID */ /* ----------------- */ spaceID = H5Dget_space(profID); if (spaceID == FAIL) { sprintf(errbuf,"Cannot get data space ID.\n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get dataset rank */ /* ---------------- */ *rank = H5Sget_simple_extent_dims(spaceID, dims, maxdims); if (*rank == FAIL) { sprintf(errbuf,"Cannot get rank of \"%s\" profile.\n", profname); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (ntype != (hid_t *)NULL) { /* Get data type ID */ /* ---------------- */ typeID = H5Dget_type(profID); if (typeID == FAIL) { sprintf(errbuf,"Cannot get data type ID.\n"); H5Epush(__FILE__, "HE5_PR0info", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get base data type ID */ /* --------------------- */ btypeID = H5Tget_super(typeID); if (btypeID == FAIL) { sprintf(errbuf,"Cannot get base data type ID.\n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data type class ID */ /* ---------------------- */ classid = H5Tget_class(btypeID); if (classid == H5T_NO_CLASS) { sprintf(errbuf,"Cannot get data type class ID.\n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get base number type ID */ /* ----------------------- */ *ntype = HE5_EHdtype2numtype(btypeID); if (*ntype == FAIL) { sprintf(errbuf,"Cannot get base number type ID.\n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf,"Cannot release data type ID.\n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Release data space ID */ /* --------------------- */ status = H5Sclose(spaceID); if (status == FAIL) { sprintf(errbuf,"Cannot release data space ID.\n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(profID); if (status == FAIL) { sprintf(errbuf,"Cannot release dataset ID.\n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get pointers to "Profile Fields" section within SM */ /* -------------------------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid,HE5_SWXSwath[idx].swname,"s","ProfileField",metaptrs); if ( metabuf == NULL ) { status = FAIL; sprintf(errbuf, "Cannot get pointer to metabuf.\n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } sprintf(utlstr, "%s%s%s", "\"", profname, "\"\n"); metaptrs[0] = strstr(metaptrs[0], utlstr); /* If profile is found in "Profile Fields" group */ /* --------------------------------------------- */ if (metaptrs[0] < metaptrs[1] && metaptrs[0] != NULL) { /* Get "DimList" string, trim off "(" and ")" */ /* ------------------------------------------ */ statmeta = HE5_EHgetmetavalue(metaptrs, "DimList", utlstr); if (statmeta == SUCCEED) { memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); utlstr[strlen(utlstr) - 2] = 0; /* Initialize slen[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) slen[ i ] = 0; /* Parse trimmed "DimList" string and get rank */ /* ------------------------------------------- */ ndims = HE5_EHparsestr(utlstr, ',', ptr, slen); /*------------------------------------------------------------------------------*/ /* Metadata-based rank info (redundant) */ /*------------------------------------------------------------------------------*/ /* *rank = HE5_EHlong2int(ndims); */ /* if (*rank == FAIL) */ /* { */ /* sprintf(errbuf, "Cannot convert from \"long\" to \"int\" data type. \n"); */ /* H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); */ /* if (metabuf != NULL) free(metabuf); */ /* HE5_EHprint(errbuf, __FILE__, __LINE__); */ /* return(FAIL); */ /* } */ /*------------------------------------------------------------------------------*/ } else { status = FAIL; sprintf(errbuf, "The \"DimList\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATASET, H5E_SEEKERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* If "DimList" IS REQUESTED ... */ /* ----------------------------- */ if (dimlist != NULL) { strcpy(dimstr,""); strcpy(dimlist,""); /* * Copy each entry in DimList and remove leading and trailing quotes. * Get dimension sizes and concatenate dimension names to dimension list. */ for (i = 0; i < ndims; i++) { memmove(dimstr, ptr[i] + 1, slen[i] - 2); dimstr[slen[i] - 2] = 0; if (i > 0) { strcat(dimlist,","); } strcat(dimlist, dimstr); } } /* If "MaxdimList" IS REQUESTED ... */ /* -------------------------------------- */ if(maxdimlist != NULL) { strcpy(utlstr,""); statmeta = HE5_EHgetmetavalue(metaptrs,"MaxdimList", utlstr); if (statmeta == SUCCEED) { memmove(utlstr, utlstr + 1, strlen(utlstr) - 2); utlstr[strlen(utlstr) - 2] = 0; ndims = HE5_EHparsestr(utlstr,',', ptr, slen); } else { status = FAIL; sprintf(errbuf, "The \"MaxdimList\" string not found in metadata. \n"); H5Epush(__FILE__, "HE5_PRinfo", __LINE__, H5E_DATASET, H5E_SEEKERROR, errbuf); if (metabuf != NULL) free(metabuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } strcpy(maxdimstr,""); strcpy(maxdimlist,""); for (i = 0; i < ndims; i++) { memmove(maxdimstr, ptr[i] + 1, slen[i] - 2); maxdimstr[slen[i] - 2] = 0; if (maxdimlist != NULL) { if (i > 0) { strcat(maxdimlist,","); } strcat(maxdimlist, maxdimstr); } } } } if (metabuf != NULL) free(metabuf); COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRwritegrpattr | | | | DESCRIPTION: Writes/updates attribute associated with the "Profile Fields" | | group in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | attrname char attribute name | | numtype hid_t attribute dataset datatype ID | | count[] hsize_t Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PRwritegrpattr(hid_t swathID, const char *attrname, hid_t numtype, hsize_t count[], void *datbuf) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ProfFieldsGrpID = FAIL; /* "Profile Fields" group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t numbertype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { numbertype = numtype; } /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRwritegrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Profile Fields" group ID and call HE5_EHattr to perform I/O */ /* ---------------------------------------------------------------- */ ProfFieldsGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, "Profile Fields"); if(ProfFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Profile Fields\" group ID. \n"); H5Epush(__FILE__, "HE5_PRwritegrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(ProfFieldsGrpID, attrname, numbertype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write attribute \"%s\"to the \"Profile Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_PRwritegrpattr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(ProfFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Profile Fields\" group ID. \n"); H5Epush(__FILE__, "HE5_PRwritegrpattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRreadgrpattr | | | | DESCRIPTION: Reads attribute from the "Profile Fields" group in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PRreadgrpattr(hid_t swathID, const char *attrname, void * datbuf) { herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ntype = FAIL; /* Data type ID */ hid_t ProfFieldsGrpID = FAIL; /* "Profile Fields" group ID */ long idx = FAIL; /* Swath index */ hsize_t count[] = { 0 }; /* # of attribute elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRreadgrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Profile Fields" group ID and call HE5_EHattr to perform I/O */ /* ----------------------------------------------------------------- */ ProfFieldsGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, "Profile Fields"); if(ProfFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Profile Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_PRreadgrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattr(ProfFieldsGrpID,attrname,ntype,count,"r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read attribute \"%s\" from the \"Profile Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_PRreadgrpattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(ProfFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Profile Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_PRreadgrpattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRgrpattrinfo | | | | DESCRIPTION: Retrieves information about attributes in "Profile Fields" | | group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | attrname const char* attribute name | | | | OUTPUTS: | | ntype hid_t data type ID | | count hsize_t Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PRgrpattrinfo(hid_t swathID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL; /* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t ProfFieldsGrpID = FAIL; /* "Profile Fields" group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRgrpattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Profile Fields" group ID and call HE5_EHattrinfo */ /* ----------------------------------------------------- */ ProfFieldsGrpID = H5Gopen(HE5_SWXSwath[idx].sw_id, "Profile Fields"); if(ProfFieldsGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Profile Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_PRgrpattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_EHattrinfo(ProfFieldsGrpID,attrname,ntype,count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about attribute \"%s\" in the \"Profile Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_PRgrpattrinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(ProfFieldsGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Profile Fields\" group ID.\n"); H5Epush(__FILE__, "HE5_PRgrpattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRinqgrpattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Profile Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Profile Fields"| | group. | | | | INPUTS: | | swath ID hid_t swath structure ID | | | | OUTPUTS: | | attrnames char Attribute names in "Profile Fields" | | group (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_PRinqgrpattrs(hid_t swathID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ long idx = FAIL; /* Swath index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ char *grpname = (char *)NULL; /* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRinqgrpattrs", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PRinqgrpattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/SWATHS/"); strcat(grpname, HE5_SWXSwath[idx].swname); strcat(grpname,"/Profile Fields"); /* search group with grpname for the number of attributes */ /* ------------------------------------------------------ */ nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot find the attributes. \n"); H5Epush(__FILE__, "HE5_PRinqgrpattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWsetalias | | | | DESCRIPTION: Defines alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | swathID hid_t swath ID | | fieldname char Original field name | | | | OUTPUTS: | | aliaslist char List of aliases for the field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Sep 00 A. Muslimov Original development | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWsetalias(hid_t swathID, char *fieldname, const char *aliaslist) { herr_t status = FAIL; /* return status variable */ int fldgroup = FAIL; /* Field group flag */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* Swath index */ char *buf = NULL; /* Pointer to temporary buffer */ char *comma = NULL; /* Pointer to comma */ char *aliasname = NULL; /* Pointer to the alias name */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); CHECKPOINTER(aliaslist); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWsetalias", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWsetalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Find out the field group */ /* ------------------------ */ fldgroup = HE5_SWfldsrch(swathID,fieldname,NULL,NULL,NULL,NULL); if (fldgroup == HE5_HDFE_GEOGROUP) groupID = HE5_SWXSwath[idx].geo_id; else if (fldgroup == HE5_HDFE_DATAGROUP) groupID = HE5_SWXSwath[idx].data_id; else if (fldgroup == HE5_HDFE_PROFGROUP) groupID = HE5_SWXSwath[idx].prof_id; else { sprintf(errbuf, "Cannot find \"%s\" field in swath. \n", fieldname); H5Epush(__FILE__, "HE5_SWsetalias", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for temporary buffer */ /* ------------------------------------ */ buf = (char *)calloc(strlen(aliaslist)+64, sizeof(char)); if (buf == NULL) { sprintf(errbuf, "Cannot alocate memory for \"buf\". \n"); H5Epush(__FILE__, "HE5_SWsetalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Make a list like "name1,name2,name3," */ /* ------------------------------------- */ strcpy(buf,aliaslist); strcat(buf,","); /* Find first comma and make pointer pointing to it */ /* ------------------------------------------------ */ comma = strchr(buf, ','); while(comma != NULL) { /* Allocate memory for individual entry */ /* ------------------------------------ */ aliasname = (char *)calloc(comma-buf+1, sizeof(char)); if (aliasname == NULL) { sprintf(errbuf, "Cannot alocate memory for \"aliasname\". \n"); H5Epush(__FILE__, "HE5_SWsetalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (buf != NULL) free(buf); return(FAIL); } /* Pick up an individual entry and put it to the "aliasname" */ /* --------------------------------------------------------- */ memmove(aliasname,buf,comma-buf); /* Create a symbolic link for a specified object */ /* --------------------------------------------- */ status = H5Glink(groupID, H5G_LINK_SOFT, fieldname, aliasname); if (status == FAIL) { sprintf(errbuf, "Cannot create an alias \"%s\" for \"%s\" field. \n", aliasname, fieldname); H5Epush(__FILE__, "HE5_SWsetalias", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (aliasname != NULL) free(aliasname); if (buf != NULL) free(buf); return(FAIL); } /* Go to the next name entry */ /* ------------------------- */ strcpy(buf,comma+1); comma = strchr(buf, ','); if (aliasname != NULL) free(aliasname); } if (buf != NULL) free(buf); COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdropalias | | | | DESCRIPTION: Removes the alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | swathID hid_t swath ID | | aliasname char alias name to remove | | fldgroup int Field group flag | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Sep 00 A. Muslimov Original development | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWdropalias(hid_t swathID, int fldgroup, const char *aliasname) { herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(aliasname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWdropalias", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWdropalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get Group ID */ /* ------------ */ if (fldgroup == HE5_HDFE_GEOGROUP) groupID = HE5_SWXSwath[idx].geo_id; else if (fldgroup == HE5_HDFE_DATAGROUP) groupID = HE5_SWXSwath[idx].data_id; else if (fldgroup == HE5_HDFE_PROFGROUP) groupID = HE5_SWXSwath[idx].prof_id; else { sprintf(errbuf, "Invalid input group flag. \n"); H5Epush(__FILE__, "HE5_SWdropalias", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Destroy a symbolic link */ /* ----------------------- */ status = H5Gunlink(groupID, aliasname); if (status == FAIL) { sprintf(errbuf, "Cannot remove alias named \"%s\". \n", aliasname); H5Epush(__FILE__, "HE5_SWdropalias", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqdfldalias | | | | DESCRIPTION: Retrieves the number of fields & aliases and string length of| | fields & aliases list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfldalias long Number of fields & aliases in "Data | | Fields" group. | | INPUTS: | | swathID hid_t swath structure ID | | | | OUTPUTS: | | fldalias char* Fields & aliases names in "Data Fields" | | group (Comma-separated list) | | strbufsize long* Fields & aliases name list string length| | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqdfldalias(hid_t swathID, char *fldalias, long *strbufsize) { long nfldalias = FAIL; /* Number of fields & aliases (return) */ long idx = FAIL; /* Swath index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ char *grpname = (char *)NULL; /* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqdfldalias", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_SWinqdfldalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Can not allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/SWATHS/"); strcat(grpname, HE5_SWXSwath[idx].swname); strcat(grpname,"/Data Fields"); /* search group with grpname for the number of fields & aliases */ /* ------------------------------------------------------------ */ nfldalias = HE5_EHdatasetcat(fid, grpname, fldalias, strbufsize); if ( nfldalias < 0 ) { sprintf(errbuf, "Cannot find the fields & aliases. \n"); H5Epush(__FILE__, "HE5_SWinqdfldalias", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } else { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWinqdfldalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return (nfldalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqgfldalias | | | | DESCRIPTION: Retrieves the number of fields & aliases and string length of| | fields & aliases list in "Geolocation Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfldalias long Number of fields & aliases in "Geo- | | location Fields" group. | | INPUTS: | | swathID hid_t swath structure ID | | | | OUTPUTS: | | fldalias char* Fields & aliases names in "Geolocation | | Fields" group (Comma-separated list) | | strbufsize long* Fields & aliases name list string length| | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqgfldalias(hid_t swathID, char *fldalias, long *strbufsize) { long nfldalias = FAIL; /* Number of fields & aliases (return) */ long idx = FAIL; /* Swath index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ char *grpname = (char *)NULL; /* Group name string */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWinqgfldalias", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char) ); if( grpname == NULL) { H5Epush(__FILE__, "HE5_SWinqgfldalias", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Can not allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/SWATHS/"); strcat(grpname, HE5_SWXSwath[idx].swname); strcat(grpname,"/Geolocation Fields"); /* search group with grpname for the number of fields & aliases */ /* ------------------------------------------------------------ */ nfldalias = HE5_EHdatasetcat(fid, grpname, fldalias, strbufsize); if ( nfldalias < 0 ) { sprintf(errbuf, "Cannot find the fields & aliases. \n"); H5Epush(__FILE__, "HE5_SWinqgfldalias", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); } if (grpname != NULL) free(grpname); } else { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWinqgfldalias", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return (nfldalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWaliasinfo | | | | DESCRIPTION: Retrieves information about field aliases | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | swathID hid_t swath ID | | aliasname char alias name | | fldgroup int Field group flag | | | | OUTPUTS: | | length int Buffer size | | buffer char Buffer with original field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Sep 00 A. Muslimov Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWaliasinfo(hid_t swathID, int fldgroup, const char *aliasname, int *length, char *buffer) { herr_t status = FAIL; /* return status variable */ int type = FAIL; /* type-value of an object */ size_t size = 0; /* Size of the name buffer */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* Swath index */ H5G_stat_t *statbuf = (H5G_stat_t *)NULL; /* pointer to a structure */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ CHECKPOINTER(aliasname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWaliasinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWaliasinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the group ID */ /* ---------------- */ if (fldgroup == HE5_HDFE_GEOGROUP) groupID = HE5_SWXSwath[idx].geo_id; else if (fldgroup == HE5_HDFE_DATAGROUP) groupID = HE5_SWXSwath[idx].data_id; else if (fldgroup == HE5_HDFE_PROFGROUP) groupID = HE5_SWXSwath[idx].prof_id; else { sprintf(errbuf, "Invalid input group flag. \n"); H5Epush(__FILE__, "HE5_SWaliasinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (buffer == NULL) { /* Get the string length of a "real" name */ /* -------------------------------------- */ statbuf = (H5G_stat_t *)calloc(1, sizeof(H5G_stat_t)); if (statbuf == NULL) { sprintf(errbuf, "Cannot allocate memory for \"statbuf\". \n"); H5Epush(__FILE__, "HE5_SWaliasinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the Object Info */ /* ------------------- */ status = H5Gget_objinfo(groupID, aliasname, 0, statbuf); if (status == FAIL) { sprintf(errbuf, "Cannot get information about \"%s\" alias. \n", aliasname); H5Epush(__FILE__, "HE5_SWaliasinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* LINK name length with a null terminator */ /* --------------------------------------- */ size = statbuf->linklen; /* Object type (dataset, link, etc) */ /* -------------------------------- */ type = statbuf->type; /* Make sure that the object is a LINK */ /* ----------------------------------- */ if (type != H5G_LINK) { sprintf(errbuf,"The object named \"%s\" is not a symbolic link.\n", aliasname); H5Epush(__FILE__, "HE5_SWaliasinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *length = (int)size; if ( statbuf != (H5G_stat_t *)NULL ) free(statbuf); } if (buffer != NULL) { size = (size_t)*length; /* Get the "real" name by an "alias" */ /* --------------------------------- */ status = H5Gget_linkval(groupID, aliasname, size, buffer); if (status == FAIL) { sprintf(errbuf,"Cannot get the real name for the alias named \"%s\".\n", aliasname); H5Epush(__FILE__, "HE5_SWaliasinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } COMPLETION: return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgetaliaslist | | | | DESCRIPTION: Retrieves the number of aliases and the list of aliases in | | swath | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nalias long number of aliases in swath | | | | INPUTS: | | swathID hid_t swath structure ID | | fldgroup int field group flag (geo or data) | | | | OUTPUTS: | | aliaslist char* list of aliases (comma-separated list) | | strbufsize long* length of aliases list | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 05 S.Zhao Original development | | Mar 06 Abe Taaheri Added code to get alias strbufsize only when user | | passes aliaslist as NULL pointer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWgetaliaslist(hid_t swathID, int fldgroup, char *aliaslist, long *strbufsize) { long nalias = FAIL; /* Number of aliases (return) */ long idx = FAIL; /* Swath index */ herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ char *fieldlist = (char *)NULL; /* List of fields */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ long fldstrbuf = FAIL; /* Buffer size for fields */ long nflds = FAIL; /* Number of fields */ long nfldalias = FAIL; /* Number of fields & aliases */ char *fldalias = (char *)NULL; /* List of fields & aliases */ long fldaliasbuf = FAIL; /* Buffer size for fields & aliases */ char *buff = (char *)NULL; /* Pointer to temporary buffer */ char *comma = (char *)NULL; /* Pointer to comma */ char *comma1 = (char *)NULL; /* Pointer to comma */ char *nameptr = (char *)NULL; /* Pointer to each name */ char *tmpbuf = (char *)NULL; /* Pointer to temp buffer */ long nameflag = FAIL; /* Name flag */ /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWgetaliaslist", &fid, &gid, &idx); if(status == SUCCEED ) { /* If aliaslist and strbufsize desired */ /* ----------------------------------- */ if (fldgroup == HE5_HDFE_DATAGROUP) { /* Call "HE5_SWnentries" routine to get number of Data fields */ /* ---------------------------------------------------------- */ nflds = HE5_SWnentries(swathID, HE5_HDFE_NENTDFLD, &fldstrbuf); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for fields list buffer */ /* -------------------------------------- */ fieldlist = (char *) calloc(fldstrbuf+6, sizeof(char)); if(fieldlist == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call "HE5_SWinqdatafields" routine to get the list of Data fields */ /* --------------------------------------------------------- */ nflds = HE5_SWinqdatafields(swathID, fieldlist, NULL, NULL); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the list of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); return(FAIL); } /* Call "HE5_SWinqdfldalias" routine to get number of fields & aliases */ /* --------------------------------------------------------- */ nfldalias = HE5_SWinqdfldalias(swathID, NULL, &fldaliasbuf); if (nfldalias == FAIL) { sprintf(errbuf, "Cannot get the number of fields & aliases in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); return(FAIL); } /* Allocate memory for fields & aliases list buffer */ /* ------------------------------------------------ */ fldalias = (char *) calloc(fldaliasbuf+6, sizeof(char)); if(fldalias == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); return(FAIL); } /* Call "HE5_SWinqdfldalias" routine to get the list of fields & aliases */ /* ----------------------------------------------------------- */ nfldalias = HE5_SWinqdfldalias(swathID, fldalias, &fldaliasbuf); if (nfldalias == FAIL) { sprintf(errbuf, "Cannot get the list of fields & aliases in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); free(fldalias); return(FAIL); } } else if (fldgroup == HE5_HDFE_GEOGROUP) { /* Call "HE5_SWnentries" routine to get number of Geolocation fields */ /* --------------------------------------------------------- */ nflds = HE5_SWnentries(swathID, HE5_HDFE_NENTGFLD, &fldstrbuf); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Geolocation Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for fields list buffer */ /* -------------------------------------- */ fieldlist = (char *) calloc(fldstrbuf+6, sizeof(char)); if(fieldlist == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call "HE5_SWinqgeofields" routine to get the list of Geolocation fields */ /* -------------------------------------------------- */ nflds = HE5_SWinqgeofields(swathID, fieldlist, NULL, NULL); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the list of fields in \"Geolocation Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); return(FAIL); } /* Call "HE5_SWinqgfldalias" routine to get number of fields & aliases */ /* --------------------------------------------------------- */ nfldalias = HE5_SWinqgfldalias(swathID, NULL, &fldaliasbuf); if (nfldalias == FAIL) { sprintf(errbuf, "Cannot get the number of fields & aliases in \"Geolocation Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); return(FAIL); } /* Allocate memory for fields & aliases list buffer */ /* ------------------------------------------------ */ fldalias = (char *) calloc(fldaliasbuf+6, sizeof(char)); if(fldalias == NULL) { sprintf(errbuf,"Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); return(FAIL); } /* Call "HE5_SWinqgfldalias" routine to get the list of fields & aliases */ /* ----------------------------------------------------------- */ nfldalias = HE5_SWinqgfldalias(swathID, fldalias, &fldaliasbuf); if (nfldalias == FAIL) { sprintf(errbuf, "Cannot get the list of fields & aliases in \"Geolocation Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fieldlist); free(fldalias); return(FAIL); } } else { sprintf(errbuf, "Invalid input group flag. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *strbufsize = strlen(fldalias) - strlen(fieldlist); if (*strbufsize <= 0) { sprintf(errbuf, "Cannot find the aliases.\n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); return(FAIL); } else { nalias = 0; /* Allocate memory for temporary buffer */ /* ------------------------------------ */ buff = (char *)calloc(strlen(fldalias)+6, sizeof(char)); if (buff == NULL) { sprintf(errbuf, "Cannot allocate memory for \"buff\". \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); return(FAIL); } /* Allocate memory for aliases */ /* --------------------------- */ tmpbuf = (char *)calloc(*strbufsize+6, sizeof(char)); if (tmpbuf == NULL) { sprintf(errbuf, "Cannot allocate memory for \"tmpbuf\". \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); if(buff != NULL) free(buff); return(FAIL); } strcpy(buff, fldalias); strcat(buff, ","); strcat(fieldlist, ","); /* Find first comma and make pointer pointing to it */ /* ------------------------------------------------ */ comma = strchr(buff, ','); while(comma != NULL) { /* Allocate memory for individual entry */ /* ------------------------------------ */ nameptr = (char *)calloc(comma-buff+6, sizeof(char)); if (nameptr == NULL) { sprintf(errbuf,"Cannot allocate memory for \"nameptr\". \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); if(buff != NULL) free(buff); if(tmpbuf != NULL) free(tmpbuf); return(FAIL); } /* Pick up an individual entry and put it to the "nameptr" */ /* ------------------------------------------------------- */ memmove(nameptr,buff,comma-buff); strcat(nameptr, ","); nameflag = (strstr(fieldlist,nameptr) == NULL) ? 1 : 0; if (nameflag == 1) { comma1 = strchr(tmpbuf, ','); if(comma1 == NULL) strcpy(tmpbuf, nameptr); else strcat(tmpbuf, nameptr); nalias++; } strcpy(buff,comma+1); comma = strchr(buff, ','); if (nameptr != NULL) free(nameptr); } } if(aliaslist == NULL)/* just return buffersize and number of aliases */ { if(nalias > 0 ) { if (fieldlist != NULL) free(fieldlist); if (fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return (nalias); } else { sprintf(errbuf, "Cannot find the aliases.\n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return(FAIL); } } else { if(nalias > 0 ) { strncpy(aliaslist, tmpbuf, *strbufsize-1); aliaslist[*strbufsize-1] = '\0'; } else { sprintf(errbuf, "Cannot find the aliases.\n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if(fieldlist != NULL) free(fieldlist); if(fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return(FAIL); } } } else { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslist", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (fieldlist != NULL) free(fieldlist); if (fldalias != NULL) free(fldalias); if (buff != NULL) free(buff); if (tmpbuf != NULL) free(tmpbuf); return (nalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWfldrename | | | | DESCRIPTION: Changes the field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | swathID hid_t swath ID | | oldfieldname char Original field name | | | | OUTPUTS: | | newfieldname char New field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Sep 00 A. Muslimov Original development | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWfldrename(hid_t swathID, char *oldfieldname, const char *newfieldname) { herr_t status = FAIL; /* Return status variable */ int fldgroup = FAIL; /* Field group flag */ int k; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ hid_t groupID = FAIL; /* Field group ID */ long idx = FAIL; /* Swath index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(oldfieldname); CHECKNAME(newfieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWfldrename", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWfldrename", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Find out the field group */ /* ------------------------ */ fldgroup = HE5_SWfldsrch(swathID,oldfieldname,NULL,NULL,NULL,NULL); if (fldgroup == HE5_HDFE_GEOGROUP) groupID = HE5_SWXSwath[idx].geo_id; else if (fldgroup == HE5_HDFE_DATAGROUP) groupID = HE5_SWXSwath[idx].data_id; else if (fldgroup == HE5_HDFE_PROFGROUP) groupID = HE5_SWXSwath[idx].prof_id; else { sprintf(errbuf, "Error returning field group flag. \n"); H5Epush(__FILE__, "HE5_SWfldrename", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Rename the field */ /* ---------------- */ status = H5Gmove(groupID, oldfieldname, newfieldname); if (status == FAIL) { sprintf(errbuf, "Cannot change the field name from \"%s\" to \"%s\". \n", oldfieldname, newfieldname); H5Epush(__FILE__, "HE5_SWfldrename", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Update Table */ /* ------------ */ if (fldgroup == HE5_HDFE_DATAGROUP) { for (k = 0; k < HE5_SWXSwath[idx].nDFLD; k++) { if (strcmp(HE5_SWXSwath[idx].ddataset[k].name, oldfieldname) == 0 ) strcpy(HE5_SWXSwath[idx].ddataset[k].name, newfieldname); } } if (fldgroup == HE5_HDFE_GEOGROUP) { for(k = 0; k < HE5_SWXSwath[idx].nGFLD; k++) { if (strcmp(HE5_SWXSwath[idx].gdataset[k].name, oldfieldname) == 0 ) strcpy(HE5_SWXSwath[idx].gdataset[k].name, newfieldname); } } if (fldgroup == HE5_HDFE_PROFGROUP) { for(k = 0; k < HE5_SWXSwath[idx].nPROF; k++) { if (strcmp(HE5_SWXSwath[idx].pdataset[k].name, oldfieldname) == 0 ) strcpy(HE5_SWXSwath[idx].pdataset[k].name, newfieldname); } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWmountexternal | | | | DESCRIPTION: Mounts external data file onto "Data Fields", "Profile | | Fields", or "Geolocation Fields" group. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | extfID hid_t External file ID | | | | INPUTS: | | swathID hid_t swath ID | | fldgroup int Group flag | | extfilename char External File Name | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Sep 00 A. Muslimov Original development | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_SWmountexternal(hid_t swathID, int fldgroup, const char *extfilename) { hid_t extfID = FAIL; /* External file ID (return) */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ herr_t status = FAIL; /* Return status variable */ long idx = FAIL; /* Swath index */ char grpname[HE5_HDFE_NAMBUFSIZE];/* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ HE5_LOCK; CHECKNAME(extfilename); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWmountexternal", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWmountexternal", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/SWATHS/"); strcat(grpname, HE5_SWXSwath[idx].swname); if (fldgroup == HE5_HDFE_DATAGROUP) strcat(grpname,"/Data Fields"); if (fldgroup == HE5_HDFE_PROFGROUP) strcat(grpname,"/Profile Fields"); if (fldgroup == HE5_HDFE_GEOGROUP) strcat(grpname,"/Geolocation Fields"); /* Open external data file */ /* ----------------------- */ extfID = H5Fopen(extfilename, H5F_ACC_RDONLY, H5P_DEFAULT); if ( extfID == FAIL ) { sprintf(errbuf, "Cannot open external file named \"%s\". \n", extfilename); H5Epush(__FILE__, "HE5_SWmountexternal", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Mount external file */ /* ------------------- */ status = H5Fmount(fid, grpname, extfID, H5P_DEFAULT); if ( status == FAIL ) { sprintf(errbuf, "Cannot mount external file onto \"%s\" group. \n", grpname); H5Epush(__FILE__, "HE5_SWmountexternal", __LINE__, H5E_FILE, H5E_MOUNT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(extfID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: SWunmount | | | | DESCRIPTION: Unmounts external data file from "Data Fields", "Profile | | Fields", or "Geolocation Fields" group. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | swathID hid_t swath ID | | fldgroup int Group flag | | fileID hid_t ID of file to be unmounted | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Sep 00 A. Muslimov Original development | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWunmount(hid_t swathID, int fldgroup, hid_t fileID) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ long idx = FAIL; /* Swath index */ char grpname[HE5_HDFE_NAMBUFSIZE];/* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ HE5_LOCK; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWunmount", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWunmount", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/SWATHS/"); strcat(grpname, HE5_SWXSwath[idx].swname); if (fldgroup == HE5_HDFE_DATAGROUP) strcat(grpname,"/Data Fields"); if (fldgroup == HE5_HDFE_PROFGROUP) strcat(grpname,"/Profile Fields"); if (fldgroup == HE5_HDFE_GEOGROUP) strcat(grpname,"/Geolocation Fields"); status = H5Funmount(fid, grpname); if ( status == FAIL ) { sprintf(errbuf, "Cannot unmount external file from \"%s\" group. \n", grpname); H5Epush(__FILE__, "HE5_SWunmount", __LINE__, H5E_FILE, H5E_MOUNT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Fclose(fileID); if ( status == FAIL ) { sprintf(errbuf, "Cannot close external file. \n"); H5Epush(__FILE__, "HE5_SWunmount", __LINE__, H5E_FILE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWreadexternal | | | | DESCRIPTION: Reads external dataset | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | status herr_t Return status | | | | INPUTS: | | swathID hid_t swath ID | | fldgroup int Group flag | | fieldname char Field name to read | | | | OUTPUTS: | | buffer void Output data bufer | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Sep 00 A. Muslimov Original development | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWreadexternal(hid_t swathID, int fldgroup, const char *fieldname, void *buffer) { herr_t status = FAIL;/* return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "SWATHS" group ID */ hid_t groupID = FAIL;/* Group ID */ hid_t datasetID = FAIL;/* Dataset ID */ hid_t typeID = FAIL;/* File data type ID */ hid_t mtypeID = FAIL;/* Memory datatype ID */ long idx = FAIL;/* Swath index */ char grpname[HE5_HDFE_NAMBUFSIZE];/* Group name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWreadexternal", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_SWreadexternal", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/SWATHS/"); strcat(grpname, HE5_SWXSwath[idx].swname); if (fldgroup == HE5_HDFE_DATAGROUP) strcat(grpname,"/Data Fields"); if (fldgroup == HE5_HDFE_PROFGROUP) strcat(grpname,"/Profile Fields"); if (fldgroup == HE5_HDFE_GEOGROUP) strcat(grpname,"/Geolocation Fields"); /* Open the group containing mounted file */ /* ---------------------------------------- */ groupID = H5Gopen(fid, grpname); if ( groupID == FAIL ) { sprintf(errbuf, "Cannot open group containing mounted file. \n"); H5Epush(__FILE__, "HE5_SWreadexternal", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Open the dataset */ /* ---------------- */ datasetID = H5Dopen(groupID, fieldname); if ( datasetID == FAIL ) { sprintf(errbuf, "Cannot open mounted dataset. \n"); H5Epush(__FILE__, "HE5_SWreadexternal", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the data type ID */ /* -------------------- */ typeID = H5Dget_type(datasetID); if ( typeID == FAIL ) { sprintf(errbuf, "Cannot get the data type ID of mounted dataset. \n"); H5Epush(__FILE__, "HE5_SWreadexternal", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get memory data type ID */ /* ----------------------- */ mtypeID = HE5_EHdtype2mtype(typeID); if (mtypeID == FAIL) { sprintf(errbuf, "Cannot convert to memory data type.") ; H5Epush(__FILE__, "HE5_SWreadexternal", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Read the mounted dataset */ /* ------------------------ */ status = H5Dread(datasetID, mtypeID, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer); if ( status == FAIL ) { sprintf(errbuf, "Cannot read mounted data.") ; H5Epush(__FILE__, "HE5_SWreadexternal", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(typeID); if ( status == FAIL ) { sprintf(errbuf, "Cannot release data type ID.") ; H5Epush(__FILE__, "HE5_SWreadexternal", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(datasetID); if ( status == FAIL ) { sprintf(errbuf, "Cannot release dataset ID.") ; H5Epush(__FILE__, "HE5_SWreadexternal", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the group ID */ /* -------------------- */ status = H5Gclose(groupID); if ( status == FAIL ) { sprintf(errbuf, "Cannot release group ID.") ; H5Epush(__FILE__, "HE5_SWreadexternal", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWsetextdata | | | | DESCRIPTION: Sets external data files. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t swath structure ID | | filelist const char* list of external files | | offset off_t array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size hsize_t array of sizes (in bytes) reserved in | | the file for the data. | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 01 A.Muslimov Original development. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWsetextdata(hid_t swathID, const char *filelist, off_t offset[], hsize_t size[]) { herr_t status = FAIL; /* return status variable */ int i; /* Loop index */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ long idx = FAIL; /* Swath index */ char *namebuf = (char *)NULL;/* File list buffer */ char *filename = (char *)NULL;/* File name buffer */ char *comma = (char *)NULL;/* Pointer to comma */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(filelist); CHECKPOINTER(offset); CHECKPOINTER(size); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWsetextdata", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for valid swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWsetextdata", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get current dataset creation property list */ /* ------------------------------------------ */ if( HE5_SWXSwath[idx].plist == FAIL) HE5_SWXSwath[idx].plist = H5Pcreate(H5P_DATASET_CREATE); /* Allocate space for namebuf, copy dimlist into it, & append comma */ /* ---------------------------------------------------------------- */ namebuf = (char *)calloc(strlen(filelist) + 64, sizeof(char)); if(namebuf == NULL) { H5Epush(__FILE__, "HE5_SWsetextdata", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory."); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* ******************************************************************** * C H E C K T H E C O N T E N T O F filelist S T R I N G * ******************************************************************** */ strcpy(namebuf, filelist); strcat(namebuf, ","); /* Find comma */ /* ---------- */ comma = strchr(namebuf, ','); i = 0; /* Parse the list of file names */ /* ---------------------------- */ while (comma != NULL) { /* Allocate memory for filename buffer */ /* ----------------------------------- */ filename = (char *) calloc(comma - namebuf + 1, sizeof(char)); if (filename == NULL) { sprintf(errbuf, "Cannot allocate memory for filename. \n") ; H5Epush(__FILE__, "HE5_SWsetextdata", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(namebuf); return(FAIL); } /* Copy file list entry to filename */ /* -------------------------------- */ memmove(filename, namebuf, comma - namebuf); filename[comma-namebuf] = 0; /* Set the property list */ /* --------------------- */ status = H5Pset_external(HE5_SWXSwath[idx].plist, filename, offset[i], size[i]); if(status == FAIL) { sprintf(errbuf,"Cannot set external dataset property list.\n"); H5Epush(__FILE__, "HE5_SWsetextdata", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(namebuf); free(filename); return(status); } /* Go to next file entry, find next comma, ... */ /* ============================================ */ strcpy(namebuf, comma + 1); comma = strchr(namebuf, ','); if (filename != NULL) free(filename); i++; } if (namebuf != NULL) free(namebuf); COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgetextdata | | | | DESCRIPTION: Gets external data files information. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfiles int number of external files SUCCEED, | | (-1) FAIL | | INPUTS: | | swathID hid_t swath structure ID | | fieldname char* External field name | | | | OUTPUTS: | | namelength size_t Length of each name entry | | filelist char* List of file names | | offset off_t array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size hsize_t array of sizes (in bytes) reserved in | | the file for the data. | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 01 A.Muslimov Original development. | | Sep 01 A. Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWgetextdata(hid_t swathID, char *fieldname, size_t namelength, char *filelist, off_t offset[], hsize_t size[]) { int nfiles = FAIL; /* Number of ext. files */ int i; /* Loop index */ size_t slen = 0; /* String length */ herr_t status = FAIL; /* return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "HDFEOS" group ID */ hid_t fieldID = FAIL; /* Data field ID */ hid_t plist = FAIL; /* Property list ID */ off_t off = 0; /* Offset of data segment */ hsize_t sz = 0; /* Size of data segment */ long idx = FAIL; /* Swath index */ char *filename = (char *)NULL;/* File name buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(fieldname); /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_SWgetextdata", &fid, &gid, &idx); if(status == FAIL) { sprintf(errbuf,"Checking for valid swath ID failed.\n"); H5Epush(__FILE__, "HE5_SWgetextdata", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check out the field group and get field ID */ /* ------------------------------------------ */ HE5_SWfldsrch(swathID,fieldname,&fieldID,NULL,NULL,NULL); if( fieldID == FAIL ) { sprintf(errbuf, "Cannot get the field ID for the \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetextdata", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the property list ID */ /* ------------------------ */ plist = H5Dget_create_plist(fieldID); if ( plist == FAIL ) { sprintf(errbuf, "Cannot get the property list ID for the \"%s\" data field.\n", fieldname); H5Epush(__FILE__, "HE5_SWgetextdata", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the number of external files */ /* -------------------------------- */ nfiles = H5Pget_external_count(plist); if ( nfiles < 0 ) { sprintf(errbuf, "Cannot get the number of external files.\n"); H5Epush(__FILE__, "HE5_SWgetextdata", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for file name */ /* ----------------------------- */ filename = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char)); if(filename == NULL) { H5Epush(__FILE__, "HE5_SWgetextdata", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory."); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(filelist,""); /* Loop through all external files */ /* ------------------------------- */ for (i = 0; i < nfiles; i++) { strcpy(filename,""); /* Get the file name, offset, and size */ /* ----------------------------------- */ status = H5Pget_external(plist, i, namelength, filename, &off, &sz); if( status == FAIL) { sprintf(errbuf,"Cannot get information about external file.\n"); H5Epush(__FILE__, "HE5_SWgetextdata", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filename); return(FAIL); } offset[i] = off; size[i] = sz; strcat(filelist, filename); /* Append comma */ /* ------------ */ if (nfiles > 1 && i < nfiles - 1) strcat(filelist,","); } slen = strlen(filelist); filelist[slen] = 0; if (filename != NULL) free(filename); /* Release property list ID */ /* ------------------------ */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release property list ID.\n"); H5Epush(__FILE__, "HE5_SWgetextdata", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: HE5_UNLOCK; return (nfiles); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWindexinfo | | | | DESCRIPTION: Returns indices of a subsetted region | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | regionID hid_t Region ID | | object char* field name | | | | OUTPUTS: | | rank int* field rank | | dimlist char* field dimension list | | indices hsize_t* indices of region for along track dim. | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | June 04 S.Zhao Original development | | Oct 11 Abe Taaheri Modified correcting indicies for fields with | | ranks larger than 2 | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWindexinfo(hid_t regionID, char *object, int *rank, char *dimlist, hsize_t *indices[HE5_DTSETRANKMAX]) { herr_t status = FAIL; /* routine return status variable */ int j,k, fi, gi; /* loop index */ hid_t *nt = (hid_t *)NULL; /* number types */ hsize_t dims[HE5_DTSETRANKMAX];/* Dimension array */ char tempdimlist[HE5_HDFE_DIMBUFSIZE];/* Dimension list */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error buffer */ long index0, index1; CHECKPOINTER(object); /* Check for valid region ID */ /* ------------------------- */ if (regionID < 0 || regionID >= HE5_NSWATHREGN) { status = FAIL; sprintf(errbuf, "Invalid Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWindexinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check for active region ID */ /* -------------------------- */ if (HE5_SWXRegion[regionID] == 0) { status = FAIL; sprintf(errbuf, "Inactive Region ID: %d.\n", regionID); H5Epush(__FILE__, "HE5_SWindexinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Initialize dims[] array */ /* ----------------------- */ for (k = 0; k < HE5_DTSETRANKMAX; k++) dims[k] = 0; /* Allocate memory for nt variable */ /* ------------------------------- */ nt = (hid_t *)calloc(1, sizeof(hid_t)); if(nt == (hid_t *)NULL) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_SWindexinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get field info for given object */ /* -------------------------- */ status = HE5_SWfieldinfo(HE5_SWXRegion[regionID]->swathID, object, rank, dims, nt, tempdimlist, NULL); if (status != SUCCEED) { sprintf(errbuf, "Field \"%s\" not found.\n", object); H5Epush(__FILE__, "HE5_SWindexinfo", __LINE__, H5E_ARGS, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(nt); return(FAIL); } strcpy(dimlist, tempdimlist); /* Find out Field indicies corresponding to the 1st and 2nd indicies of * Longitude (which automatically will be the same for Latitude or * Colatitude) field. For 2 or multi-dimansional fields, other than * Longitude, Latitude (or Colatitude) it is important to know these * indicies. */ status = HE5_SWllmapedidxinfo(HE5_SWXRegion[regionID]->swathID,object,&index0,&index1); if (status != SUCCEED) { sprintf(errbuf, "Field \"%s\" not found.\n", object); H5Epush(__FILE__, "HE5_SWindexinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* index0 is field index correcponding to the 0 index of Longitude */ /* index1 is field index correcponding to the 1 index of Longitude */ /* Vertical Subset or regular subset */ /* --------------------------------- */ for (j = 0; j < *rank; j++) { if(j == index0) { gi = 0; fi = index0; } else if(j == index1) { gi = 1; fi = index1; } else { if (j 7) gi = 7; } else { gi = j; } fi = j; } if (HE5_SWXRegion[regionID]->StartVertical[gi] == FAIL) { if (HE5_SWXRegion[regionID]->StartRegion[gi] == 0) { indices[fi][0] = 0; } else { indices[fi][0] = HE5_EHlong2hsize(HE5_SWXRegion[regionID]->StartRegion[gi]); } } else { if (HE5_SWXRegion[regionID]->StartVertical[gi] == 0) { indices[fi][0] = 0; } else { indices[fi][0] = HE5_EHlong2hsize(HE5_SWXRegion[regionID]->StartVertical[gi]); } } if (HE5_SWXRegion[regionID]->StopVertical[gi] == FAIL) { if (HE5_SWXRegion[regionID]->StopRegion[gi] == 0) { indices[fi][1] = dims[fi] - 1; } else { indices[fi][1] = HE5_EHlong2hsize(HE5_SWXRegion[regionID]->StopRegion[gi]); } } else { if (HE5_SWXRegion[regionID]->StopVertical[gi] == 0) { indices[fi][1] = dims[fi] - 1; } else { indices[fi][1] = HE5_EHlong2hsize(HE5_SWXRegion[regionID]->StopVertical[gi]); } } } free(nt); COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWllmapedidxinfo | | | | DESCRIPTION: Returns indices of a subsetted region | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t Swath ID | | object char* field name | | | | | | OUTPUTS: | | indices long 0th and 1st indices of the field | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 11 Abe Taaheri Original development, | | Jan 12 AT Fixed problem with preventing memcpy to use | | unacceptable pointrs for ptr and ptr2 | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWllmapedidxinfo(hid_t swathID, char *object, long *index0, long *index1) { herr_t status = -1; /* routine return status variable */ herr_t statMap = -1; /* Status from SWmapinfo */ char dimlist[HE5_HDFE_DIMBUFSIZE];/* Dimension list */ char maxdimlist[HE5_HDFE_DIMBUFSIZE];/* Dimension list*/ int i,j,k, iDim; /* loop index */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error buffer */ hid_t nt, ntype; /* number types */ hsize_t dims[HE5_DTSETRANKMAX]; /* Dimension array */ int rank; char dimname0[HE5_HDFE_DIMBUFSIZE],dimname1[HE5_HDFE_DIMBUFSIZE]; char geodim[HE5_HDFE_DIMBUFSIZE]; /* Geolocation field dimension list */ char maxgeodim[HE5_HDFE_DIMBUFSIZE];/* Geolocation field max dimension list */ char geodimbuf[HE5_HDFE_DIMBUFSIZE];/* Geolocation field dimension list */ long nDim; /* Number of dimensions */ long mDim; /* Number of dimensions */ size_t slen[HE5_DTSETRANKMAX],slen2[HE5_DTSETRANKMAX]; /* String length array */ char *ptr[HE5_DTSETRANKMAX],*ptr2[HE5_DTSETRANKMAX]; /* String pointer array */ hsize_t dumdims[HE5_DTSETRANKMAX]; /* Dimensions from SWfieldinfo */ unsigned found = 0; /* Found flag */ char utlbuf[HE5_HDFE_DIMBUFSIZE]; /* Utility buffer */ long incr; /* Mapping increment */ hsize_t dummy; /* Dummy variable */ long dum; /* Dummy variable */ long *idxmap = NULL; /* Pointer to index mapping array */ hsize_t idxMapElem = -1; /* Number of index map elements */ long index[HE5_DTSETRANKMAX]; long maxrank = HE5_DTSETRANKMAX; /* Get data field info */ /* ------------------- */ status = HE5_SWfieldinfo(swathID, object, &rank, dims, &ntype, dimlist, maxdimlist); if (status != 0) { status = -FAIL; sprintf(errbuf,"Cannot get information about \"%s\" field. \n", object); H5Epush(__FILE__, "HE5_SWllmapedidxinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = HE5_SWfieldinfo(swathID, "Longitude", &rank, dumdims, &nt, geodim, maxgeodim); if (status != 0) { sprintf(errbuf, "Field \"%s\" not found.\n", "Longitude"); H5Epush(__FILE__, "HE5_SWllmapedidxinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get "Track" (first) Dimension from geo dimlist */ /* ---------------------------------------------- */ for(iDim=0; iDim C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortdimlist, dimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_SWdefgfld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } if (fortmaxdimlist != NULL) { /* Allocate space for C order maximum dimension list */ /* ------------------------------------------------- */ maxdimlist = (char *)calloc(strlen(fortmaxdimlist) + 1, sizeof(char)); if(maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for maxdimlist.\n"); H5Epush(__FILE__, "HE5_SWdefgfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimlist); free(errbuf); return(FAIL); } /* Reverse entries in maximum dimension list (FORTRAN -> C) */ /* -------------------------------------------------------- */ status = HE5_EHrevflds(fortmaxdimlist, maxdimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in maximum dimension list.\n"); H5Epush(__FILE__, "HE5_SWdefgfld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(maxdimlist); return(FAIL); } } else { maxdimlist = NULL; } SwathID = (hid_t)swathID; /* Call Define Field routine */ /* ------------------------- */ status = HE5_SWdefinefield(SwathID, "Geolocation Fields", fieldname, dimlist, maxdimlist, numbertype, merge); if(status == FAIL) { sprintf(errbuf,"Error calling HE5_SWdefinefield() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWdefgfld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); if (maxdimlist !=NULL) free(maxdimlist); return(FAIL); } free(dimlist); if (maxdimlist !=NULL) free(maxdimlist); free(errbuf); ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefdfld | | | | | | DESCRIPTION: Defines data field within swath structure (FORTRAN) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID int swath structure ID | | fieldname char fieldname | | fortdimlist char Dimension list (comma-separated list) | | FORTRAN dimesion order | | fortmaxdimlist char Max Dimension list (FORTRAN order) | | numbertype int field type | | merge int merge code | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Sep 00 A.Muslimov Updated to reflect most recent data type changes. | | Nov 00 A.Muslimov Updated to reverse order of "fortmaxdimlist"entries.| | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdefdfld(int swathID, char *fieldname, char *fortdimlist, char *fortmaxdimlist, int numtype, int merge) { int ret = SUCCEED;/* (int) return status variable */ herr_t status = SUCCEED;/* routine return status variable */ hid_t SwathID = FAIL; /* HDF5 type swath ID */ hid_t numbertype = FAIL; /* HDF5 type data type ID */ char *dimlist = (char *)NULL;/* Dimension list (C order) */ char *maxdimlist= (char *)NULL;/* Max. dimension list (C) */ char *errbuf = (char *)NULL;/* error message buffer */ SwathID = (hid_t)swathID; numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { H5Epush(__FILE__, "HE5_SWdefdfld", __LINE__, H5E_DATATYPE, H5E_BADVALUE, "Cannot convert datatype for FORTRAN wrapper."); HE5_EHprint("Error: Cannot convert datatype for FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } if(strcmp(fortmaxdimlist,"") == 0) fortmaxdimlist = NULL; /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWdefdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *)calloc(strlen(fortdimlist) + 1, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for dimlist.\n"); H5Epush(__FILE__, "HE5_SWdefdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortdimlist, dimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_SWdefdfld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } if (fortmaxdimlist != NULL) { /* Allocate space for C order max. dim. list */ /* ----------------------------------------- */ maxdimlist = (char *)calloc(strlen(fortmaxdimlist) + 1, sizeof(char)); if(maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for maxdimlist.\n"); H5Epush(__FILE__, "HE5_SWdefdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimlist); free(errbuf); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortmaxdimlist, maxdimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in maximum dimension list.\n"); H5Epush(__FILE__, "HE5_SWdefdfld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(maxdimlist); return(FAIL); } } else { maxdimlist = NULL; } /* Call Define Field routine */ /* ------------------------- */ status = HE5_SWdefinefield(SwathID, "Data Fields", fieldname, dimlist, maxdimlist, numbertype, merge); if(status == FAIL) { sprintf(errbuf,"Cannot define \"%s\" field.\n", fieldname); H5Epush(__FILE__, "HE5_SWdefdfld", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); if (maxdimlist!=NULL) free(maxdimlist); return(FAIL); } free(dimlist); if (maxdimlist != NULL) free(maxdimlist); free(errbuf); ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefcompF (FORTRAN wrapper) | | | | DESCRIPTION: Defines compression type and parameters | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | compcode int compression code | | compparm int compression parameters | | | | OUTPUTS: | | None | | | | NOTES: Before calling this function, storage must be CHUNKED | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdefcompF(int SwathID, int compcode, int *compparm) { int ret = FAIL; /* routine return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ swathID = (hid_t)SwathID; status = HE5_SWdefcomp(swathID, compcode, compparm); if(status == FAIL) { sprintf(errbuf,"Error calling SWdefcomp() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWdefcompF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefchunkF | | | | DESCRIPTION: FORTRAN wrapper for SWdefchunk | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | ndims int rank of a dataset | | *dim long pointer to the array containing sizes | | of each dimension of a chunk | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================== | | 8/13/99 A.Muslimov Changed the return type of SWdefchunk from intn | | to herr_t. Checked the statuses for H5P... calls.| | May 00 D.Wynne Updated to reflect datatype changes in Library | | Aug 00 A.Muslimov Updated to reflect data type changes. | | Jan 01 A.Muslimov Added proper FORTRAN to C dimension order | | conversion. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdefchunkF(int SwathID, int ndims, long *dim) { int ret = FAIL; /* return status */ int j = 0; /* Loop index */ herr_t status = FAIL; /* return status */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hsize_t *tempdims = (hsize_t *)NULL;/* Temporary variable */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffer */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWdefchunkF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ tempdims = (hsize_t *)calloc(ndims, sizeof(hsize_t)); if(tempdims == NULL) { sprintf(errbuf,"Cannot allocate memory for tempdims.\n"); H5Epush(__FILE__, "HE5_SWdefchunkF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Change from FORTRAN to C dimension order */ /* ---------------------------------------- */ for (j = 0; j < ndims; j++) tempdims[j] = (hsize_t)dim[ndims - 1 - j]; swathID = (hid_t)SwathID; status = HE5_SWdefchunk(swathID, ndims, tempdims); if(status == FAIL) { sprintf(errbuf,"Error calling SWdefchunk() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWdefchunkF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(tempdims); return(FAIL); } free(tempdims); free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWcompinfoF (FORTRAN wrapper) | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None Return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int None Swath Object ID | | compcode int | | compparm int | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWcompinfoF(int SwathID, char *fieldname, int *compcode, int compparm[]) { int ret = FAIL; /* Return status variable */ herr_t status = FAIL; /* Return status variable */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; status = HE5_SWcompinfo(swathID, fieldname, compcode, compparm); if (status == FAIL) { sprintf(errbuf , "Compression information for \"%s\" not found.\n", fieldname); H5Epush(__FILE__, "HE5_SWcompinfoF", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwrcharfld | | | | DESCRIPTION: Writes data to a character string field (FORTRAN wrapper | | around SWwritefield) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char fieldname | | elemlen int each element length in array of string | | numelem int number of elements in declared buffer | | array | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | | | OUTPUTS: | | data void data buffer for write | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao For an array of character string dataset. | | Jun 04 S.Zhao Added one more argument (numelem). | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWwrcharfld(int SwathID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *data) { int ret = SUCCEED; /* int return status variable */ int i; /* Loop index */ int rank = 0; /* Field rank */ herr_t status = SUCCEED; /* routine return status variable */ hid_t ntype[1] = {FAIL}; /* Field numbertypes */ hid_t swathID = FAIL; /* HDF-EOS swath ID */ hssize_t *start = (hssize_t *)NULL;/* Pointer to start array (C order) */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ hsize_t *stride = (hsize_t *)NULL; /* Pointer to stride array (C order) */ hsize_t *edge = (hsize_t *)NULL; /* Pointer to edge array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char **strdatabuf = NULL; /* string data buffer */ int nelem = 0; /* number of elements in array of str*/ int strsize = 0; /* each str length in array of str */ char *blankPtr = (char *)NULL; /* pointer to blank character */ char *tmpString = (char *)NULL; /* pointer to temp string */ int attr = 0; /* attribute value */ hsize_t count[1]; /* number of attribute elements */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } swathID = (hid_t)SwathID; /* Initialize dims[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Get field info */ /* --------------- */ status = HE5_SWfieldinfo(swathID, fieldname, &rank, dims, ntype, NULL, NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_SWwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_SWwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(errbuf); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_SWwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } strsize = elemlen; nelem = dims[0]; tmpString = (char *)calloc(1,strsize+1); if(tmpString == NULL) { sprintf(errbuf,"Cannot allocate memory for tmpString.\n"); H5Epush(__FILE__, "HE5_SWwrcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } strdatabuf = (char **)malloc(nelem*sizeof(char *)); for (i = 0; i C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } myedge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(myedge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_SWwrfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } /* get maxdims for the field */ status = HE5_SWflddiminfo(swathID, fieldname, &rank, dims, maxdims); /* see if we need first to extend data dimensions for unlimited dimensions */ for (i = 0; i < rank; i++) { if( dims[i] == maxdims[i] ) append = FALSE; else if ( (dims[i] < maxdims[i]) || (maxdims[i] == H5S_UNLIMITED)) { append = TRUE; break; } } unlimdim = i; if(append == FALSE) { for (i = 0; i < rank; i++) { if(edge[i] > dims[i]) myedge[i] = dims[i]; else myedge[i] = edge[i]; } } else { for (i = 0; i < rank; i++) { myedge[i] = edge[i]; } } if((append == TRUE) && (edge[unlimdim] > dims[unlimdim])) { hssize_t newstart[8]; hsize_t newedge[8]; for (i = 0; i < rank; i++) { newstart[i]=start[i]; newedge[i] = edge[i]; } newstart[unlimdim]=edge[unlimdim]-1; newedge[unlimdim] = 1; status = HE5_SWwrrdfield(swathID, fieldname, "w", newstart, stride, newedge,data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_SWwrfld", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(myedge); free(errbuf); return(FAIL); } else { for (i = 0; i < rank; i++) { dims[i]=edge[i]; } } } status = HE5_SWwrrdfield(swathID, fieldname, "w", start, stride, myedge,data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_SWwrfld", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(myedge); free(errbuf); return(FAIL); } free(start); free(stride); free(edge); free(myedge); free(errbuf); } else { sprintf(errbuf, "Error calling HE5_SWfieldinfo() from FORTRAN wrapper. \n") ; H5Epush(__FILE__, "HE5_SWwrfld", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwrattr | | | | DESCRIPTION: FORTRAN wrapper for Writes/updates attribute in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | attrname char* attribute name | | numtype int attribute HDF numbertype | | fortcount[] long Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 99 Abe Taaheri Modified data types | | Aug 00 A.Muslimov Modified to conform to HDF5 data types | | Nov 02 S.Zhao Modified to get the size of a string attribute. | | Mar 04 S.Zhao Modified for a character string attribute. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWwrattr(int SwathID, char *attrname, int numtype, long fortcount[], void * datbuf) { int ret = FAIL;/* int return status variable */ int rank = 1; /* Note: It is assumed that fortcout has just */ /* one element to agree with EHattr function */ int i; /* Loop index */ hid_t swathID = FAIL;/* HDF-EOS Swath ID */ hid_t numbertype = FAIL;/* HDF5 data type ID */ herr_t status = FAIL;/* routine return status variable */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count array (C order)*/ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { H5Epush(__FILE__, "HE5_SWwrattr", __LINE__, H5E_DATATYPE, H5E_BADVALUE, "Error calling HE5_EHconvdatatype() from FORTRAN wrapper."); HE5_EHprint("Error: Error calling HE5_EHconvdatatype() from FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWwrattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for "count" array */ /* --------------------------------- */ count = (hsize_t *)calloc(rank, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_SWwrattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { count[i] = (hsize_t)fortcount[rank - 1 - i]; } swathID = (hid_t)SwathID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of attribute elements.\n"); H5Epush(__FILE__, "HE5_SWwrattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_SWwrattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; /* Call SWwriteattr() */ /* ------------------ */ status = HE5_SWwriteattr(swathID, attrname, numbertype, count, tempbuf); if( status == FAIL) { sprintf(errbuf,"Cannot write data to the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_SWwrattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { /* Call SWwriteattr() */ /* ------------------ */ status = HE5_SWwriteattr(swathID, attrname, numbertype, count, datbuf); if( status == FAIL) { sprintf(errbuf,"Cannot write data to the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_SWwrattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWsetfill (FORTRAN wrapper) | | | | DESCRIPTION: Sets fill value for the specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char* field name | | fillval void* fill value | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWsetfill(int SwathID, char *fieldname, int numtype, void *fillval) { int ret = FAIL;/* int return status variable */ herr_t status = FAIL;/* return status variable */ hid_t numbertype = FAIL;/* HDF5 data tyope ID */ hid_t swathID = FAIL;/* HDF5 Swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWsetfill", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } swathID = (hid_t)SwathID; status = HE5_SWsetfillvalue(swathID, fieldname, numbertype, fillval); if (status == FAIL) { sprintf(errbuf,"Cannot set fill value for the field \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_SWsetfill", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgetfill (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves fill value for a specified field. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | fieldname char* field name | | | | OUTPUTS: | | fillval void* fill value | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWgetfill(int SwathID, char *fieldname, void *fillval) { int ret = FAIL;/* routine return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t swathID = FAIL;/* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; status = HE5_SWgetfillvalue(swathID, fieldname, fillval); if (status == FAIL) { sprintf(errbuf,"Cannot get fill value for the field \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_SWgetfill", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWrdfld | | | | DESCRIPTION: Reads data from field (FORTRAN wrapper around SWreadfield) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char fieldname | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | buffer void data buffer for read | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 99 Abe Taaheri Modified for HDF5 | | May 00 D.Wynne Updated to reflect data type changes | | Aug 00 A.Muslimov Updated to conform to HDF5 data types | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWrdfld(int SwathID, char *fieldname, long fortstart[], long fortstride[], long fortedge[], void *buffer) { int ret = SUCCEED; /* routine return status variable */ int i = 0; /* Loop index */ int rank = 0; /* Field rank */ hid_t ntype[1] = {FAIL}; /* Field number types */ hid_t swathID = FAIL; /* Swath HDF5 type ID */ herr_t status = SUCCEED; /* routine return status variable */ hssize_t *start = (hssize_t *)NULL;/* Pointer to start array (C order) */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ hsize_t *stride = (hsize_t *)NULL; /* Pointer to stride array (C order) */ hsize_t *edge = (hsize_t *)NULL; /* Pointer to edge array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWrdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } swathID = (hid_t)SwathID; /* Initialize dims[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Get field info */ /* -------------- */ status = HE5_SWfieldinfo(swathID, fieldname, &rank, dims, ntype, NULL,NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_SWrdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_SWrdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(errbuf); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_SWrdfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } /* Read data from the field */ /* ------------------------ */ status = HE5_SWwrrdfield(swathID, fieldname, "r", start, stride, edge, buffer); if (status == FAIL) { sprintf(errbuf, "Cannot read data from the \"%s\" field.",fieldname) ; H5Epush(__FILE__, "HE5_SWrdfld", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } free(start); free(stride); free(edge); free(errbuf); } else { sprintf(errbuf, "Fieldname \"%s\" does not exist.",fieldname) ; H5Epush(__FILE__, "HE5_SWrdfld", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); status = FAIL; } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWrdcharfld | | | | DESCRIPTION: Reads data from a character string field (FORTRAN wrapper | | around SWreadfield) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char fieldname | | elemlen int each element length in array of string | | numelem int number of elements in declared buffer | | array | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | buffer void data buffer for read | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 04 S.Zhao For an array of character string dataset. | | Jun 04 S.Zhao Added two more arguments (elemlen and numelem). | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWrdcharfld(int SwathID, char *fieldname, int elemlen, int numelem, long fortstart[], long fortstride[], long fortedge[], void *buffer) { int ret = SUCCEED; /* routine return status variable */ int i = 0; /* Loop index */ int rank = 0; /* Field rank */ hid_t ntype[1] = {FAIL}; /* Field number types */ hid_t swathID = FAIL; /* Swath HDF5 type ID */ herr_t status = SUCCEED; /* routine return status variable */ hssize_t *start = (hssize_t *)NULL;/* Pointer to start array (C order) */ hsize_t dims[HE5_DTSETRANKMAX]; /* Field dimensions */ hsize_t *stride = (hsize_t *)NULL; /* Pointer to stride array (C order) */ hsize_t *edge = (hsize_t *)NULL; /* Pointer to edge array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char **strdatabuf = NULL; /* string data buffer */ int stlen = 0; /* whole string array length */ int nelem = 0; /* number of elements in array of str*/ int strsize = 0; /* each str length in array of str */ int attr = 0; /* attribute value */ int j = 0; /* Loop index */ int num_elem_passed_out; int numread; /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWrdcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } swathID = (hid_t)SwathID; /* Initialize dims[] array */ /* ----------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Get field info */ /* -------------- */ status = HE5_SWfieldinfo(swathID, fieldname, &rank, dims, ntype, NULL,NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_SWrdcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_SWrdcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(errbuf); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_SWrdcharfld", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } status = HE5_SWreadlocattr(swathID, fieldname, "StringLengthAttribute", &attr); if (status == FAIL) { sprintf(errbuf, "Cannot read attribute from the field \"%s\".",fieldname) ; H5Epush(__FILE__, "HE5_SWrdcharfld", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } if(elemlen < attr ) { sprintf(errbuf, "Element length passed in is not correct. Should be same as in declration"); H5Epush(__FILE__, "HE5_SWrdcharfld", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(errbuf); return(FAIL); } strsize = attr; stlen = dims[0] * strsize; nelem = stlen / strsize; strdatabuf = (char **)malloc(nelem*sizeof(char *)); for (i = 0; i C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { count[i] = (hsize_t)fortcount[rank - 1 - i]; } swathID = (hid_t)SwathID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of local attribute elements.\n"); H5Epush(__FILE__, "HE5_SWwrlattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_SWwrlattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; /* Write local attribute buffer */ /* ---------------------------- */ status = HE5_SWwritelocattr(swathID, fieldname, attrname, numbertype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write local attribute value.\n"); H5Epush(__FILE__, "HE5_SWwrlattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { /* Write local attribute buffer */ /* ---------------------------- */ status = HE5_SWwritelocattr(swathID, fieldname, attrname, numbertype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write local attribute value.\n"); H5Epush(__FILE__, "HE5_SWwrlattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWrdlattr (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute associated with a specified field in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char fieldname | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWrdlattr(int SwathID, char *fieldname, char *attrname, void *datbuf) { int ret = FAIL;/* return status variable */ herr_t status = FAIL;/* return status variable */ hid_t swathID = FAIL;/* HDF5 type Swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; status = HE5_SWreadlocattr(swathID,fieldname, attrname, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" associated wth the \"%s\" field.\n", attrname,fieldname); H5Epush(__FILE__, "HE5_SWrdlattr", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqmapsF (FORTRAN wrapper) | | | | DESCRIPTION: Returns dimension mappings and offsets and increments | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nMap long Number of dimension mappings | | | | INPUTS: | | SwathID int swath structure ID | | | | OUTPUTS: | | dimmaps char dimension mappings (comma-separated) | | offset long array of offsets | | increment long array of increments | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqmapsF(int SwathID, char *dimmaps, long offset[], long increment[]) { long nMap = FAIL;/* Number of mappings */ hid_t swathID = FAIL;/* HDF-EOS swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; /* Call HE5_SWinqmaps */ /* ------------------ */ nMap = HE5_SWinqmaps(swathID, dimmaps, offset, increment); if(nMap == FAIL) { sprintf(errbuf,"Error calling SWinqmaps() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWinqmapsF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nMap); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqimapsF | | | | DESCRIPTION: Returns indexed mappings and index sizes | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nMap long Number of indexed dimension mappings | | | | INPUTS: | | SwathID int swath structure ID | | | | OUTPUTS: | | idxmaps char indexed dimension mappings | | (comma-separated) | | idxsizes long Number of elements in each mapping | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 00 D.Wynne Original Version | | Aug 00 A.Muslimov Modified to conform to HDF5 data type | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqimapsF(int SwathID, char *idxmaps, long idxsizes[]) { int i = 0; /* Loop index */ hid_t swathID = FAIL;/* HDF5 type swath ID */ long nmaps = FAIL;/* Number of index maps */ long strbufsize = 0; /* Buffer size for length of string */ hsize_t *tidxsizes = (hsize_t *)NULL;/* Size of mapping */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ swathID = (hid_t)SwathID; /* Get the number of index maps */ /* ---------------------------- */ nmaps = HE5_SWnentries(swathID, 2, &strbufsize); if(nmaps == FAIL) { sprintf(errbuf,"Error calling SWnentries() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWinqimapsF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate space for index sizes */ /* ------------------------------ */ tidxsizes = (hsize_t *)calloc(nmaps, sizeof(hsize_t)); if(tidxsizes == NULL) { sprintf(errbuf,"Cannot allocate memory for tidxsizes.\n"); H5Epush(__FILE__, "HE5_SWinqimapsF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Retrieve the list of maps and the sizes */ /* --------------------------------------- */ nmaps = HE5_SWinqidxmaps(swathID, idxmaps, tidxsizes); if(nmaps == FAIL) { sprintf(errbuf,"Error calling SWinqidxmaps() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWinqimapsF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(tidxsizes); return(FAIL); } /* Convert data type */ /* ------------------ */ for(i = 0; i < nmaps; i++) idxsizes[i] = (long)tidxsizes[i]; free(tidxsizes); return(nmaps); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqdimsF | | | | DESCRIPTION: Returns dimension names and values defined in swath structure | | (FORTRAN Wrapper) | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nDim long Number of defined dimensions | | | | INPUTS: | | SwathID int swath structure ID | | | | OUTPUTS: | | dimnames char Dimension names (comma-separated) | | dims long Dimension values | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 00 D.Wynne Original Version | | Aug 00 A.Muslimov Modified to conform to HDF5 data type | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqdimsF(int SwathID, char *dimnames, long dims[]) { int i = 0; /* Loop index */ hid_t swathID = FAIL;/* HDF5 type swath ID */ long nDim = FAIL;/* (return) number of dimensions */ long strbufsize = 0; /* String size variable */ hsize_t *tdims = (hsize_t *)NULL;/* Dimension variable */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; nDim = HE5_SWnentries(swathID, 0, &strbufsize); if(nDim == FAIL) { sprintf(errbuf,"Error calling SWnentries() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWinqdimsF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } tdims = (hsize_t *)calloc(nDim, sizeof(hsize_t)); if(tdims == NULL) { sprintf(errbuf,"Cannot allocate memory for tdims.\n"); H5Epush(__FILE__, "HE5_SWinqdimsF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nDim = HE5_SWinqdims(swathID, dimnames, tdims); if(nDim == FAIL) { sprintf(errbuf,"Error calling HE5_SWinqdims() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWinqdimsF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(tdims); return(FAIL); } /* Convert data type */ /* ----------------- */ for(i = 0; i < nDim; i++) dims[i] = (long)tdims[i]; free(tdims); return (nDim); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqgflds (FORTRAN wrapper) | | | | DESCRIPTION: Inquires about geo fields in swath | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nflds long Number of geo fields in swath | | | | INPUTS: | | SwathID int Swath structure ID | | | | OUTPUTS: | | fieldlist char Field names (comma-separated) | | rank int Array of ranks | | ntype int number types | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqgflds(int SwathID, char *fieldlist, int rank[], int ntype[]) { long nflds = FAIL; /* Number of Geo fields */ long i; /* Loop index */ hid_t swathID = FAIL; /* HDF5 data type ID */ hid_t *dtype = (hid_t *)NULL; /* Data type */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ swathID = (hid_t)SwathID; /* Call "HE5_SWinqgeofields" routine to get number of fields */ /* ----------------------------------------------------- */ nflds = HE5_SWinqgeofields(swathID, fieldlist, NULL, NULL); if (nflds == FAIL) { sprintf(errbuf, "Cannot get information about fields in \"Geolocation Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWinqgflds", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } dtype = (hid_t *)calloc(nflds,sizeof(hid_t)); if (dtype == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_SWinqgflds", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nflds = HE5_SWinqgeofields(swathID, fieldlist, rank, dtype); if (nflds == FAIL) { sprintf(errbuf, "Cannot get information about fields in \"Geolocation Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWinqgflds", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dtype); return(FAIL); } for (i = 0; i < nflds; i++) ntype[i] = (int)dtype[i]; free(dtype); return (nflds); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqdflds (FORTRAN wrapper) | | | | DESCRIPTION: Inquires about data fields in swath | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nflds long Number of data fields in swath | | | | INPUTS: | | SwathID int Swath structure ID | | | | OUTPUTS: | | fieldlist char Field names (comma-separated) | | rank int Array of ranks | | ntype int number types | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqdflds(int SwathID, char *fieldlist, int rank[], int ntype[]) { long nflds = FAIL; /* Number of Data fields */ long i; /* Looop index */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hid_t *dtype = (hid_t *)NULL; /* Data type */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ swathID = (hid_t)SwathID; /* Call "HE5_SWinqdatafields" routine to get number of fields */ /* ------------------------------------------------------ */ nflds = HE5_SWinqdatafields(swathID, fieldlist, NULL, NULL); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWinqdflds", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } dtype = (hid_t *)calloc(nflds, sizeof(hid_t)); if (dtype == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_SWinqdflds", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nflds = HE5_SWinqdatafields(swathID, fieldlist, rank, dtype); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in \"Data Fields\" group. \n"); H5Epush(__FILE__, "HE5_SWinqdflds", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dtype); return(FAIL); } for (i = 0; i < nflds; i++) ntype[i] = (int)dtype[i]; free(dtype); return(nflds); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdiminfoF | | | | DESCRIPTION: FORTRAN wrapper for SWdiminfo to Retrieve size of specified | | dimension. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size long None Size of dimension | | | | INPUTS: | | SwathID int None swath structure ID | | dimname char* None Dimension name | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/21/99 A.Muslimov In the call to EHmetagroup() replaced the argument | | gid by fid. | | Oct 99 Abe Taaheri Added to convert hsize_t to integer | | Aug 00 A.Muslimov Modified to conform to HDF5 data type | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWdiminfoF(int SwathID, char *dimname) { long size = 0; /* dimension size (return) */ hid_t swathID = FAIL; /* HDF5 data type ID */ hsize_t tsize = 0; /* size variable */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ swathID = (hid_t)SwathID; tsize = HE5_SWdiminfo(swathID, dimname); if (tsize == 0) { sprintf(errbuf, "Error calling SWdiminfo() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_SWdiminfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } size = (long)tsize; return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWmapinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Returns dimension mapping information | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | geodim char geolocation dimension name | | datadim char data dimension name | | | | OUTPUTS: | | offset long mapping offset | | increment long mapping increment | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWmapinfoF(int SwathID, char *geodim, char *datadim, long *offset, long *increment) { int ret = FAIL; /* routine return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t swathID = FAIL; /* HDF-EOS swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Initialize return values */ /* ------------------------ */ *offset = FAIL; *increment = FAIL; swathID = (hid_t)SwathID; status = HE5_SWmapinfo(swathID, geodim, datadim, offset, increment); if (status == FAIL) { sprintf(errbuf, "Cannot get mapping information.") ; H5Epush(__FILE__, "HE5_SWmapinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgmapinfo (FORTRAN wrapper) | | | | DESCRIPTION: Returns mapping information for dimension | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int 2 for indexed mapping, 1 for regular | | mapping, 0 if the dimension is not | | and (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | geodim char geolocation dimension name | | | | OUTPUTS: | | NONE | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWgmapinfo(int SwathID, char *geodim) { int ret = FAIL; /* Return status variable */ herr_t status = FAIL; /* Return status variable */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; status = HE5_SWgeomapinfo(swathID, geodim); if (status == FAIL) { sprintf(errbuf, "Cannot get geolocation mapping information.") ; H5Epush(__FILE__, "HE5_SWgmapinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWfldinfoF | | | | DESCRIPTION: FORTRAN wrapper arount SWfieldinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure id | | fieldname char name of field | | | | OUTPUTS: | | rank long rank of field (# of dims) | | dims long field dimensions | | ntype int field number type | | fortdimlist char field dimension list (FORTRAN order) | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 99 Abe Taaheri Modified for HDF5 | | Aug 00 A.Muslimov Updated to conform to the HDF5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWfldinfoF(int SwathID, char *fieldname, int *rank, long dims[], int *ntype, char *fortdimlist, char *fortmaxdimlist) { int ret = SUCCEED; /* routine return status variable */ int j = 0; /* Loop Index */ herr_t status = SUCCEED; /* routine return status variable */ hid_t swathID = FAIL; /* HDF5 type data type ID */ hid_t dtype[1] = {FAIL}; /* Data type */ hsize_t tempdims[HE5_DTSETRANKMAX];/* Dimension sizes array */ hsize_t swap = 0; /* Temporary dimension size */ char *errbuf = (char *)NULL; /* error message buffer */ /* Dimension lists in C order */ /* -------------------------- */ char *dimlist = (char *)NULL; char *maxdimlist = (char *)NULL; /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWfldinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ maxdimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); dimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(dimlist == NULL || maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for input list.\n"); H5Epush(__FILE__, "HE5_SWfldinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } swathID = (hid_t)SwathID; /* Initialize tempdims[] array */ /* --------------------------- */ for ( j = 0; j < HE5_DTSETRANKMAX; j++) tempdims[ j ] = 0; /* Get field info */ /* -------------- */ status = HE5_SWfieldinfo(swathID, fieldname, rank, tempdims, dtype, dimlist, maxdimlist); if (status == SUCCEED) { for (j = 0; j < *rank / 2; j++) { swap = tempdims[*rank - 1 - j]; tempdims[*rank - 1 - j] = tempdims[j]; tempdims[j] = swap; } /* change the datatype */ /* ------------------- */ for (j = 0; j < *rank; j++) dims[j] = (long)tempdims[j]; /* Reverse order of dimensions entries in dimension list */ /* ----------------------------------------------------- */ if(fortdimlist != (char *)NULL) { status = HE5_EHrevflds(dimlist, fortdimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_SWfldinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(maxdimlist); return(FAIL); } } if(fortmaxdimlist != (char *)NULL) { status = HE5_EHrevflds(maxdimlist, fortmaxdimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in maximum dimension list.\n"); H5Epush(__FILE__, "HE5_SWfldinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); free(maxdimlist); return(FAIL); } } } *ntype = (int)dtype[0]; free(maxdimlist); free(dimlist); free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWchunkinfoF | | | | DESCRIPTION: FORTRAN wrapper for SWchunkinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char* name of field | | | | OUTPUTS: | | ndims int* rank of a dataset | | dims long the array containing sizes | | of each dimension of a chunk | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================ | | Dec 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWchunkinfoF(int SwathID, char *fieldname, int *ndims, long dims[]) { int ret = FAIL; /* return status */ int j = 0; /* Loop index */ herr_t status = FAIL; /* return status */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hsize_t tempdims[HE5_DTSETRANKMAX]; /* Temporary dimension sizes array */ hsize_t swap = 0; /* Temporary dimension size */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffer */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWchunkinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Initialize tempdims[] array */ /* --------------------------- */ for ( j = 0; j < HE5_DTSETRANKMAX; j++) tempdims[ j ] = 0; swathID = (hid_t)SwathID; status = HE5_SWchunkinfo(swathID, fieldname, ndims, tempdims); if(status == FAIL) { sprintf(errbuf,"Error calling SWchunkinfo() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWchunkinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } for (j = 0; j < *ndims / 2; j++) { swap = tempdims[*ndims - 1 - j]; tempdims[*ndims - 1 - j] = tempdims[j]; tempdims[j] = swap; } for (j = 0; j < *ndims; j++) dims[j] = (long)tempdims[j]; free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWidxmapinfoF | | | | DESCRIPTION: Returns indexed mapping information | | (FORTRAN Wrapper) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | size long Number of index values (sz of geo dim) | | | | INPUTS: | | SwathID int swath structure id | | geodim char geolocation dimension name | | datadim char data dimension name | | | | OUTPUTS: | | index long array of index values | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 00 D.Wynne Original Version | | Aug 00 A.Muslimov Updated to conform to HDF5 data types | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWidxmapinfoF(int SwathID, char *geodim, char *datadim, long index[]) { long size = FAIL; /* routine return status variable */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hsize_t gsize = 0; /* Temporary size variable */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; gsize = HE5_SWidxmapinfo(swathID, geodim, datadim, index); if (gsize == 0) { sprintf(errbuf, "Error calling SWidxmapinfo() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_SWidxmapinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } size = (long)gsize; return(size); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwrgattr | | | | DESCRIPTION: FORTRAN wrapper to Write/update group attribute in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | attrname char* group attribute name | | numtype int group attribute HDF numbertype | | fortcount[] long Number of group attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | It is assumed that fortcout has just one element to agree | | with EHattr() call. | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 00 D.Wynne Original Programmer | | Aug 00 A.Muslimov Updated to reflect most recent data type changes. | | Nov 02 S.Zhao Modified to get the size of a string attribute. | | Mar 04 S.Zhao Modified for a character string attribute. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWwrgattr(int SwathID, char *attrname, int numtype, long fortcount[], void *datbuf) { int ret = FAIL; /* (int) return status variable */ int rank = 1; /* Rank variable */ int i; /* Loop index */ herr_t status = FAIL; /* routine return status variable */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ hid_t numbertype = FAIL; /* HDF5 data type ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWwrgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Get HDF5 data type ID */ /* --------------------- */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID.\n"); H5Epush(__FILE__, "HE5_SWwrgattr", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } count = (hsize_t *)calloc(rank, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_SWwrgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) count[i] = (hsize_t)fortcount[rank - 1 - i]; swathID = (hid_t)SwathID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of group attribute elements.\n"); H5Epush(__FILE__, "HE5_SWwrgattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_SWwrgattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; status = HE5_SWwritegrpattr(swathID, attrname, numbertype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_SWwrgattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { status = HE5_SWwritegrpattr(swathID, attrname, numbertype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_SWwrgattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwrgeogattr | | | | DESCRIPTION: FORTRAN wrapper to write/update the "Geolocation Fields" group| | attribute in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | attrname char* group attribute name | | numtype int group attribute HDF numbertype | | fortcount[] long Number of group attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | It is assumed that fortcout has just one element to agree | | with EHattr() call. | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | Mar 04 S.Zhao Modified for a character string attribute. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWwrgeogattr(int SwathID, char *attrname, int numtype, long fortcount[], void *datbuf) { int ret = FAIL; /* (int) return status variable */ int rank = 1; /* Rank variable */ int i; /* Loop index */ herr_t status = FAIL; /* routine return status variable */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ hid_t numbertype = FAIL; /* HDF5 data type ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWwrgeogattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Get HDF5 data type ID */ /* --------------------- */ numbertype = HE5_EHconvdatatype(numtype); if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID.\n"); H5Epush(__FILE__, "HE5_SWwrgeogattr", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } count = (hsize_t *)calloc(rank, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_SWwrgeogattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) count[i] = (hsize_t)fortcount[rank - 1 - i]; swathID = (hid_t)SwathID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of group attribute elements.\n"); H5Epush(__FILE__, "HE5_SWwrgeogattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_SWwrgeogattr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; status = HE5_SWwritegeogrpattr(swathID, attrname, numbertype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_SWwrgeogattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { status = HE5_SWwritegeogrpattr(swathID, attrname, numbertype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_SWwrgeogattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWatinfo | | | | DESCRIPTION: FORTRAN wrapper for SWattrinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | attrname char* attribute name | | | | OUTPUTS: | | numbertype int attribute HDF numbertype | | fortcount long Number of attribute elements | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/28/99 A.Muslimov Changed the type of return value from intn | | to herr_t. | | Oct 99 Abe Taaheri Added for HDF5 | | May 00 D.Wynne Updated to reflect datatype changes | | Aug 00 A.Muslimov Updated to reflect yet another datatype changes | | | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_SWatinfo(int SwathID, char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type class ID */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ hsize_t *count = (hsize_t *)NULL; /* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *) calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_SWatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *) calloc(1, sizeof(hid_t)); if(ntype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_SWatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } swathID = (hid_t)SwathID; status = HE5_SWattrinfo(swathID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_SWatinfo", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(ntype); return(FAIL); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgatinfo | | | | DESCRIPTION: FORTRAN wrapper for SWgrpattrinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | attrname char* attribute name | | | | OUTPUTS: | | numbertype int attribute HDF numbertype | | fortcount long Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/28/99 A.Muslimov Changed the type of return value from intn | | to herr_t. | | Oct 99 Abe Taaheri Added for HDF5 | | May 00 D.Wynne Updated to reflect datatype changes | | Aug 00 A.Muslimov Updated to reflect yet another datatype changes | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_SWgatinfo(int SwathID, char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type class ID */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWgatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_SWgatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if( ntype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_SWgatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } swathID = (hid_t)SwathID; status = HE5_SWgrpattrinfo(swathID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about group attribute.\n"); H5Epush(__FILE__, "HE5_SWgatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(ntype); return(FAIL); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgeogatinfo | | | | DESCRIPTION: FORTRAN wrapper for SWgeogrpattrinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | attrname char* attribute name | | | | OUTPUTS: | | numbertype int attribute HDF numbertype | | fortcount long Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_SWgeogatinfo(int SwathID, char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type class ID */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWgeogatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_SWgeogatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if( ntype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_SWgeogatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } swathID = (hid_t)SwathID; status = HE5_SWgeogrpattrinfo(swathID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about group attribute.\n"); H5Epush(__FILE__, "HE5_SWgeogatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(ntype); return(FAIL); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqgattrs (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Data Fields" | | group. | | INPUTS: | | SwathID int swath structure ID | | | | OUTPUTS: | | attrnames char Attribute names in "Data Fields" group | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqgattrs(int SwathID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; nattr = HE5_SWinqgrpattrs(swathID, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_SWinqgattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqgeogattrs (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Geolocation Fields" group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Geolocation | | Fields" group | | INPUTS: | | SwathID int swath structure ID | | | | OUTPUTS: | | attrnames char Attribute names in "Geolocation Fields" | | group (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqgeogattrs(int SwathID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; nattr = HE5_SWinqgeogrpattrs(swathID, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_SWinqgeogattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqattrsF (FORTRAN wrapper) | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in swath struct | | | | INPUTS: | | SwathID int Swath structure ID | | | | OUTPUTS: | | attrnames char Attribute names in swath struct | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqattrsF(int SwathID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; nattr = HE5_SWinqattrs(swathID, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_SWinqattrsF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWlatinfo | | | | DESCRIPTION: FORTRAN wrapper for SWlocattrinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char* field name name | | | | OUTPUTS: | | attrname char* attribute name | | numbertype int attribute HDF numbertype | | fortcount long Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 9/28/99 A.Muslimov Changed the type of return value from intn | | to herr_t. | | Oct 99 Abe Taaheri Added for HDF5 | | May 00 D.Wynne Updated to reflect datatype changes | | Aug 00 A.Muslimov Updated to reflect yet another datatype changes | | | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_SWlatinfo(int SwathID, char *fieldname, char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type class ID */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWlatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_SWlatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if( ntype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_SWlatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } swathID = (hid_t)SwathID; status = HE5_SWlocattrinfo(swathID, fieldname, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about local attribute.\n"); H5Epush(__FILE__, "HE5_SWlatinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(ntype); return(FAIL); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqlattrs (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified field in the | | "Data Fields" group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Data Fields" | | group. | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char field name | | | | OUTPUTS: | | attrnames char Attribute names in "Data Fields" group | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqlattrs(int SwathID, char *fieldname, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; nattr = HE5_SWinqlocattrs(swathID, fieldname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_SWinqlattrs", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWidtype | | | | DESCRIPTION: Inquires about geo/data fields in swath | | (FORTRAN Wrapper) | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int | | fieldname char * | | attrname char * | | fieldgroup int | | | | OUTPUTS: | | Type int | | Class int | | Order int | | size long | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 99 D.Wynne Original Programmer | | Dec 99 A.Muslimov Changed the status data type from hid_t to int . | | Feb 00 A.Muslimov Added error checking after the function calls. | | Mar 00 A.Muslimov Updated to include Group/Local Attributes options. | | May 00 A.Muslimov Replaced 'H5T_class_t' type by 'int' data type. | | Aug 00 A.Muslimov Updated to reflect most recent data type changes. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWidtype(int SwathID, char *fieldname, char *attrname, int fieldgroup, int *Type, int *Class, int *Order, long *size) { int ret = FAIL; /* (int) status variable */ herr_t status = FAIL; /* return status variable */ size_t *tsize = (size_t *)NULL; /* data size variable */ hid_t *typeID = (hid_t *)NULL; /* HDF5 Data type ID */ hid_t swathID = FAIL; /* HDF5 type swath ID */ H5T_class_t *classID = (H5T_class_t *)NULL;/* Data type class ID */ H5T_order_t *order = (H5T_order_t *)NULL;/* Byte order of datatype */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } typeID = (hid_t *)calloc(1, sizeof(hid_t)); if(typeID == NULL) { sprintf(errbuf,"Cannot allocate memory for typeID.\n"); H5Epush(__FILE__, "HE5_SWidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } tsize = (size_t *)calloc(1, sizeof(size_t)); if(tsize == NULL) { sprintf(errbuf,"Cannot allocate memory for tsize.\n"); H5Epush(__FILE__, "HE5_SWidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); return(FAIL); } classID = (H5T_class_t *)calloc(1, sizeof(H5T_class_t)); if(classID == (H5T_class_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for classID.\n"); H5Epush(__FILE__, "HE5_SWidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); return(FAIL); } order = (H5T_order_t *)calloc(1, sizeof(H5T_order_t)); if(order == (H5T_order_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for order.\n"); H5Epush(__FILE__, "HE5_SWidtype", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); free(classID); return(FAIL); } swathID = (hid_t)SwathID; /* Get data type information */ /* ------------------------- */ status = HE5_SWinqdatatype(swathID, fieldname, attrname, fieldgroup, typeID, classID, order, tsize); if(status == FAIL) { sprintf(errbuf,"Cannot get information about data type.\n"); H5Epush(__FILE__, "HE5_SWidtype", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); free(classID); free(order); return(FAIL); } *Type = (int)(*typeID); *Class = (int)(*classID); *Order = (int)(*order); *size = (long)(*tsize); free(errbuf); free(typeID); free(classID); free(order); free(tsize); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefboxreg (FORTRAN wrapper) | | | | DESCRIPTION: Finds swath cross tracks within area of interest and returns | | region ID | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | RegionID int Region ID | | | | INPUTS: | | SwathID int Swath structure ID | | cornerlon double dec deg Longitude of opposite corners of box | | cornerlat double dec deg Latitude of opposite corners of box | | mode int Search mode | | HDFE_MIDPOINT - Use midpoint of Xtrack | | HDFE_ENDPOINT - Use endpoints of Xtrack | | HDFE_ANYPOINT - Use all points of Xtrack| | | | OUTPUTS: | | None | | | | NOTES: | | | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdefboxreg(int SwathID, double cornerlon[], double cornerlat[], int mode) { int RegionID = FAIL;/* Region ID (return) */ hid_t swathID = FAIL;/* HDF5 type swath ID */ hid_t regionID = FAIL;/* HDF5 type region ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error buffer string */ swathID = (hid_t)SwathID; regionID = HE5_SWdefboxregion(swathID, cornerlon, cornerlat, mode); if (regionID == FAIL) { sprintf(errbuf,"Cannot define box region.\n"); H5Epush(__FILE__, "HE5_SWdefboxreg", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } RegionID = (int)regionID; return(RegionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefvrtreg | | | | DESCRIPTION: FORTRAN wrapper arount HE5_SWdefvrtregion | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | RegionID int Region ID | | | | INPUTS: | | SwathID int Swath structure ID | | RegionID int Region ID | | vertObj char Vertical object to subset | | range double Vertical subsetting range | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 99 Abe Taaheri Modified for HDF5 | | Aug 00 A.Muslimov Updated to reflect data type changes. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdefvrtreg(int SwathID, int RegionID, char *vertObj, double fortrange[]) { hid_t swathID = FAIL; /* HDF5 type swath ID */ hid_t regionID = FAIL; /* HDF5 type region ID */ double range[2] = {0.,0.}; /* range (C) array */ char utlbuf[16]; /* Utility buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Copy first four character of vertObj to utlbuf */ /* ---------------------------------------------- */ memcpy(utlbuf, vertObj, 4); utlbuf[4] = 0; /* If subsetting on dimension elements convert FORTRAN indices to C */ /* ---------------------------------------------------------------- */ if (strcmp(utlbuf, "DIM:") == 0) { range[0] = fortrange[0] - 1; range[1] = fortrange[1] - 1; } else { range[0] = fortrange[0]; range[1] = fortrange[1]; } swathID = (hid_t)SwathID; regionID = (hid_t)RegionID; /* Call HE5_SWdefvrtregion */ /* ------------------- */ regionID = HE5_SWdefvrtregion(swathID, regionID, vertObj, range); if (regionID == FAIL) { sprintf(errbuf,"Cannot define vertical region.\n"); H5Epush(__FILE__, "HE5_SWdefvrtreg", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } RegionID = (int)regionID; return(RegionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWreginfo | | | | DESCRIPTION: FORTRAN wrapper around SWregioninfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | RegionID int Region ID | | fieldname char Fieldname | | | | | | OUTPUTS: | | nunmbertype int field number type | | rank int field rank | | dims long dimensions of field region | | (FORTRAN order) | | size long size in bytes of field region | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 99 Abe Taaheri Modified for HDF5 | | Aug 00 A.Muslimov Updated to reflect data type changes. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWreginfo(int SwathID, int RegionID, char *fieldname, int *numbertype, int *rank, long dims[], long *size) { int ret = FAIL;/* (int) Return status variable */ int j = 0; /* Loop index */ hid_t swathID = FAIL;/* HDF5 type swath ID */ hid_t regionID = FAIL;/* HDF5 type region ID */ herr_t status = FAIL;/* routine return status variable */ hid_t *ntype = (hid_t *)NULL;/* number types */ size_t *tsize = (size_t *)NULL; hsize_t swap = 0; /* Temporary swap variable */ hsize_t tempdims[HE5_DTSETRANKMAX]; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error buffer string */ swathID = (hid_t)SwathID; regionID = (hid_t)RegionID; tsize = (size_t *)calloc(1, sizeof(size_t)); if (tsize == NULL) { sprintf(errbuf,"Cannot allocate memory for tsize.\n"); H5Epush(__FILE__, "HE5_SWreginfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if (ntype == NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_SWreginfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(tsize); return(FAIL); } /* Initialize tempdims[] array */ /* --------------------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) tempdims[ j ] = 0; /* Call SWregioninfo */ /* ----------------- */ status = HE5_SWregioninfo(swathID, regionID, fieldname, ntype, rank, tempdims, tsize); if (status == FAIL) { sprintf(errbuf,"Cannot get information about region.\n"); H5Epush(__FILE__, "HE5_SWreginfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(tsize); free(ntype); return(FAIL); } /* Change dimensions to FORTRAN order */ /* ---------------------------------- */ for (j = 0; j < *rank / 2; j++) { swap = tempdims[*rank - 1 - j]; tempdims[*rank - 1 - j] = tempdims[j]; tempdims[j] = swap; } /* cast dimension sizes */ /* -------------------- */ for (j = 0; j < *rank; j++) dims[j] = (long)tempdims[j]; *size = (long)(*tsize); *numbertype = (int)(*ntype); free(tsize); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWextreg (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves data from specified region. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | RegionID int Region ID | | fieldname char Fieldname | | externalflag int External geolocation fields flag | | HDFE_INTERNAL (0) | | HDFE_EXTERNAL (1) | | | | OUTPUTS: | | buffer void Data buffer containing subsetted region | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov Updated to reflect data type changes. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWextreg(int SwathID, int RegionID, char *fieldname, int externalflag, void *buffer) { int ret = FAIL; /* routine return status variable */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hid_t regionID = FAIL; /* HDF5 type region ID */ herr_t status = FAIL; /* routine return status variable */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ swathID = (hid_t)SwathID; regionID = (hid_t)RegionID; status = HE5_SWextractregion(swathID, regionID, fieldname, externalflag, buffer); if (status == FAIL) { sprintf(errbuf,"Cannot extract region data.\n"); H5Epush(__FILE__, "HE5_SWextreg", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdeftmeper (FORTRAN wrapper) | | | | DESCRIPTION: Finds swath cross tracks observed during time period and | | returns period ID | | | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | PeriodID int Period ID | | | | INPUTS: | | SwathID int Swath structure ID | | starttime double TAI sec Start of time period | | stoptime doubel TAI sec Stop of time period | | mode int Search mode | | HDFE_MIDPOINT - Use midpoint of Xtrack | | HDFE_ENDPOINT - Use endpoints of Xtrack | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov Updated to reflect data type changes. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdeftmeper(int SwathID, double starttime, double stoptime, int mode) { int PeriodID = FAIL; /* Period ID (return) */ hid_t periodID = FAIL; /* HDF5 type Period ID */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; periodID = HE5_SWdeftimeperiod(swathID, starttime, stoptime, mode); if (periodID == FAIL) { sprintf(errbuf,"Cannot define time period.\n"); H5Epush(__FILE__, "HE5_SWdeftmeper", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } PeriodID = (int)periodID; return(PeriodID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWperinfo | | | | DESCRIPTION: FORTRAN wrapper around SWperiodinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | PeriodID int Period ID | | fieldname char Fieldname | | | | | | OUTPUTS: | | nunmbertype int field number type | | rank int field rank | | dims long dimensions of field region | | (FORTRAN order) | | size long size in bytes of field region | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 99 Abe Taaheri Modified for HDF5 | | Aug 00 A.Muslimov Updated to reflect data type changes. | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWperinfo(int SwathID, int PeriodID, char *fieldname, int *numbertype,int *rank, long dims[], long *size) { int ret = SUCCEED;/* routine return status variable */ int j = 0; /* Loop index */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hid_t periodID = FAIL; /* HDF5 type period ID */ hid_t *ntype = (hid_t *)NULL;/* number types */ herr_t status = SUCCEED;/* routine return status variable */ size_t *tsize = (size_t *)NULL; hsize_t swap = 0; /* Temporary swap variable */ hsize_t tempdims[HE5_DTSETRANKMAX]; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_timeflag = 1; swathID = (hid_t)SwathID; periodID = (hid_t)PeriodID; tsize = (size_t *)calloc(1, sizeof(size_t)); if (tsize == NULL) { sprintf(errbuf,"Cannot allocate memory for tsize.\n"); H5Epush(__FILE__, "HE5_SWperinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if (ntype == NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_SWperinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(tsize); return(FAIL); } /* Initialize tempdims[] array */ /* --------------------------- */ for (j = 0; j < HE5_DTSETRANKMAX; j++) tempdims[ j ] = 0; /* Call SWregioninfo */ /* ----------------- */ status = HE5_SWregioninfo(swathID, periodID, fieldname, ntype, rank, tempdims, tsize); if (status == FAIL) { sprintf(errbuf,"Cannot get information about region.\n"); H5Epush(__FILE__, "HE5_SWperinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(tsize); free(ntype); return(FAIL); } /* Change dimensions to FORTRAN order */ /* ---------------------------------- */ for (j = 0; j < *rank / 2; j++) { swap = tempdims[*rank - 1 - j]; tempdims[*rank - 1 - j] = tempdims[j]; tempdims[j] = swap; } for (j = 0; j < *rank; j++) dims[j] = (long)tempdims[j]; *size = (long)(*tsize); *numbertype = (int)(*ntype); free(tsize); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdupreg (FORTRAN wrapper) | | | | DESCRIPTION: Duplicates a region | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | NewregionID int New region ID | | | | INPUTS: | | OldregionID int Old region ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdupreg(int OldregionID) { int NewregionID = FAIL;/* New region ID (return) */ hid_t newregionID = FAIL;/* New region ID */ hid_t oldregionID = FAIL;/* Old region ID */ oldregionID = (hid_t)OldregionID; newregionID = HE5_SWdupregion(oldregionID); if(newregionID == FAIL) { H5Epush(__FILE__, "HE5_SWdupreg", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot duplicate region."); HE5_EHprint("Error: Cannot duplicate region, occured", __FILE__, __LINE__); return(FAIL); } NewregionID = (int)newregionID; return(NewregionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWupscene (FORTRAN wrapper) | | | | DESCRIPTION: Updates the StartRegion and StopRegion values | | for a specified region. This function is for Landsat. | | The start and stop values must be set to the beginning | | and the end of a scene, fixed scene subsetting. | | | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | RegionID int Region ID | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWupscene(int SwathID, int RegionID) { int ret = FAIL;/* routine return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t swathID = FAIL;/* HDF5 type swath ID */ hid_t regionID = FAIL;/* HDF5 type region ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; regionID = (hid_t)RegionID; status = HE5_SWupdatescene(swathID, regionID); if (status == FAIL) { sprintf(errbuf, "Cannot update scene.\n"); H5Epush(__FILE__, "HE5_SWupscene", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWregidx | | | | DESCRIPTION: Finds swath cross tracks within area of interest and returns | | region index and region ID (FORTRAN Wrapper) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | RegionID int Region ID | | | | INPUTS: | | SwathID int Swath structure ID | | cornerlon double dec deg Longitude of opposite corners of box | | cornerlat double dec deg Latitude of opposite corners of box | | mode int Search mode | | HDFE_MIDPOINT - Use midpoint of Xtrack | | HDFE_ENDPOINT - Use endpoints of Xtrack | | HDFE_ANYPOINT - Use all points of Xtrack| | | | OUTPUTS: | | geodim char geolocation track dimension | | idxrange long indices of region for along track dim. | | | | NOTES: | | | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 00 D.Wynne Original Programmer | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWregidx(int SwathID, double cornerlon[], double cornerlat[], int mode, char *geodim, long idxrange[]) { int i = 0; /* Loop index */ int RegionID = SUCCEED; /* Region ID */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hid_t regionID = FAIL; /* HDF5 type region ID */ hsize_t range[2] = {0, 0}; /* Index range array */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ swathID = (hid_t)SwathID; regionID = HE5_SWregionindex(swathID, cornerlon, cornerlat, mode, geodim, range); if (regionID == FAIL) { sprintf(errbuf, "Cannot get the region indices.\n"); H5Epush(__FILE__, "HE5_SWregidx", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } for(i = 0; i < 2; i++) idxrange[i] = HE5_EHhsize2long(range[i]); RegionID = (int)regionID; return(RegionID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWextper (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves data from specified period. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | PeriodID int Period ID | | fieldname char Fieldname | | externalflag int External geolocation fields flag: | | | | HDFE_INTERNAL (0) | | HDFE_EXTERNAL (1) | | OUTPUTS: | | buffer void Data buffer containing subsetted region | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWextper(int SwathID, int PeriodID, char *fieldname, int externalflag, void *buffer) { int ret = FAIL; /* return status variable */ herr_t status = FAIL; /* return status variable */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hid_t periodID = FAIL; /* HDF5 type period ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_timeflag = 1; swathID = (hid_t)SwathID; periodID = (hid_t)PeriodID; /* Call SWextractregion routine */ /* ---------------------------- */ status = HE5_SWextractregion(swathID, periodID, fieldname, externalflag, (char *)buffer); if (status == FAIL) { sprintf(errbuf, "Cannot extract the period.\n"); H5Epush(__FILE__, "HE5_SWextper", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWupimap (FORTRAN wrapper) | | | | DESCRIPTION: Updates the map index for a specified region. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nout long return Number of elements in output | | index array if SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | RegionID int Region ID | | indexin long array of index values | | | | OUTPUTS: | | indexout long array of index values | | indicies long array of start and stop in region | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWupimap(int SwathID, int RegionID, long indexin[], long indexout[], long indicies[]) { long nout = FAIL;/* # of elements in output array (return) */ hid_t regionID = FAIL;/* HDF5 type region ID */ hid_t swathID = FAIL;/* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error buffer */ swathID = (hid_t)SwathID; regionID = (hid_t)RegionID; nout = HE5_SWupdateidxmap(swathID, regionID, indexin, indexout, indicies); if (nout == FAIL) { sprintf(errbuf, "Failed to update index mapping.\n"); H5Epush(__FILE__, "HE5_SWupimap", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nout); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqswathF (FORTRAN wrapper) | | | | DESCRIPTION: Returns number and names of swath structures in file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nSwath long Number of swath structures in file | | | | INPUTS: | | filename char HDF-EOS filename | | | | OUTPUTS: | | swathlist char List of swath names (comma-separated) | | strbufsize long Length of swathlist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | July 00 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqswathF(char *filename, char *swathlist, long *strbufsize) { long nSwath = FAIL;/* Number of swath structures in file */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ nSwath = HE5_SWinqswath(filename, swathlist, strbufsize); if ( nSwath < 0 ) { sprintf(errbuf,"Cannot get information about Swath."); H5Epush(__FILE__, "HE5_SWinqswathF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nSwath); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWnentriesF (FORTRAN wrapper) | | | | DESCRIPTION: Returns number of entries and string buffer size | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nEntries long Number of entries | | | | INPUTS: | | SwathID int Swath structure ID | | entrycode int Entry code | | | | OUTPUTS: | | strbufsize long Length of comma-separated list | | (Does not include null-terminator | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 00 A.Muslimov | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWnentriesF(int SwathID, int entrycode, long *strbufsize) { long nEntries = FAIL; /* Number of entries */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ swathID = (hid_t)SwathID; nEntries = HE5_SWnentries(swathID, entrycode, strbufsize); if (nEntries < 0) { sprintf(errbuf,"Failed to get number of entries in a swath."); H5Epush(__FILE__, "HE5_SWnentriesF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nEntries); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRdefineF (FORTRAN wrapper) | | | | DESCRIPTION: Defines "Profile" dataset within a specified Swath, under the| | "Data Fields" group. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status (0) SUCCEED (-1) | | FAIL | | INPUTS: | | SwathID int Swath ID | | profilename char Profile/dataset name | | fortdimlist char Dim. list (comma-separated list) | | FORTRAN dimesion order | | fortmaxdimlist char Max Dim. list (FORTRAN order) | | profile/dataset | | ntype int Base datatype ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Aug 00 A.Muslimov Original development. | | Dec 00 A.Muslimov Updated to add "fortdimlist" and "fortmaxdimlist" | | inputs. | | May 01 C.Praderas Continued development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PRdefineF(int SwathID, char *profilename, char *fortdimlist, char *fortmaxdimlist, int ntype) { int ret = FAIL;/* return status variable */ herr_t status = FAIL;/* return status variable */ hid_t swathID = FAIL;/* HDF5 type swath ID */ hid_t dtypeID = FAIL;/* HDF5 type data type ID */ char *dimlist = (char *)NULL; /* Dimension list (C order) */ char *maxdimlist = (char *)NULL; /* Max. dimension list (C) */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; dtypeID = HE5_EHconvdatatype(ntype); if(dtypeID == FAIL) { H5Epush(__FILE__, "HE5_PRdefineF", __LINE__, H5E_DATATYPE, H5E_BADVALUE, "Cannot convert datatype for FORTRAN wrapper."); HE5_EHprint("Error: Cannot convert datatype for FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } if(strcmp(fortmaxdimlist,"") == 0) fortmaxdimlist = NULL; /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *)calloc(strlen(fortdimlist) + 1, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for dimlist.\n"); H5Epush(__FILE__, "HE5_PRdefineF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortdimlist, dimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_PRdefineF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimlist); return(FAIL); } if (fortmaxdimlist != NULL) { /* Allocate space for C order max. dim. list */ /* ----------------------------------------- */ maxdimlist = (char *)calloc(strlen(fortmaxdimlist) + 1, sizeof(char)); if(maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for maxdimlist.\n"); H5Epush(__FILE__, "HE5_PRdefineF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimlist); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortmaxdimlist, maxdimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in maximum dimension list.\n"); H5Epush(__FILE__, "HE5_PRdefineF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimlist); free(maxdimlist); return(FAIL); } } else { maxdimlist = NULL; } /* Define specified profile */ /* ------------------------ */ status = HE5_PRdefine(swathID, profilename, dimlist, maxdimlist, dtypeID); if (status == FAIL) { sprintf(errbuf,"Cannot define \"%s\" profile.\n", profilename); H5Epush(__FILE__, "HE5_PRdefineF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimlist); if (maxdimlist!=NULL) free(maxdimlist); return(FAIL); } free(dimlist); if (maxdimlist != NULL) free(maxdimlist); ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRwriteF (FORTRAN wrapper) | | | | DESCRIPTION: Writes data into the "Profile" dataset within a Swath. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status (0) SUCCEED (-1) | | FAIL | | INPUTS: | | Swath_ID int Swath ID | | profilename char Name of Profile dataset | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | | | buffer void Data buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Aug 00 A.Muslimov Original development | | Dec 00 A.Muslimov Updated to add "start", "stride", and "edge" | | parameters. | | May 01 C.Praderas Continued development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PRwriteF(int SwathID, char *profilename, long fortstart[], long fortstride[], long fortedge[], long size, long len[], void *buffer) { int ret = FAIL; /* return status variable */ int rank = 0; /* Profile rank */ int i; /* Loop index */ int nelmnts = 0; /* Number of elements in Profile */ /* field */ long begin_offset = 0; /* Used in storing to VL buffer */ long end_offset = 0; /* " " */ long length = 0; /* " " */ long idx = FAIL; /* Swath index */ herr_t status = FAIL; /* return status variable */ hid_t groupID = FAIL; /* "Profile Fields" group ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t profID = FAIL; /* Profile dataset ID */ hid_t typeID = FAIL; /* Dataset type ID */ hid_t btypeID = FAIL; /* Base data type ID */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hssize_t *start = (hssize_t *)NULL; /* Ptr to start array (C order) */ hsize_t dims[HE5_DTSETRANKMAX]; /* Profile dimensions */ hsize_t maxdims[HE5_DTSETRANKMAX]; /* Profile maximum dimensions */ hsize_t *stride = (hsize_t *)NULL; /* Ptr to stride array (C order) */ hsize_t *edge = (hsize_t *)NULL; /* Ptr to edge array (C order) */ size_t dsize = 0; /* Data size variable */ size_t btype_size = 0; /* Size of base datatype */ char *buffer_char=NULL; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hvl_t *profile_buffer; /*Data buffer for the profile */ dsize = (size_t)size; swathID = (hid_t)SwathID; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get "Profile Fields" group ID */ /* ----------------------------- */ groupID = HE5_SWXSwath[idx].prof_id; /* Open specified profile dataset */ /* ------------------------------ */ profID = H5Dopen(groupID, profilename); if (profID == FAIL) { sprintf(errbuf,"Cannot open \"%s\" profile.\n", profilename); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data type ID */ /* ---------------- */ typeID = H5Dget_type(profID); if (typeID == FAIL) { sprintf(errbuf,"Cannot get data type ID.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get base data type ID */ /* --------------------- */ btypeID = H5Tget_super(typeID); if (btypeID == FAIL) { sprintf(errbuf,"Cannot get base data type ID.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get size of base data type */ /* -------------------------- */ btype_size = H5Tget_size(btypeID); if (btype_size == FAIL) { sprintf(errbuf,"Cannot get size of base data type.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf,"Cannot release data type ID.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(profID); if (status == FAIL) { sprintf(errbuf,"Cannot release dataset ID.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Initialize dims[]/maxdims[] arrays */ /* ---------------------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) { dims[ i ] = 0; maxdims[ i ] = 0; } /* Get profile rank */ /* ----------------- */ status = HE5_PRinfo(swathID, profilename, &rank, dims, maxdims, NULL, NULL, NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } /* Determine number of elements in Profile Field */ /* --------------------------------------------- */ nelmnts = 0; for (i = 0; i < rank; i++) { nelmnts = (int)fortedge[i] + nelmnts; } buffer_char = (char *)calloc(size*btype_size,1); if(buffer_char == NULL) { sprintf(errbuf,"Cannot allocate memory for buffer_char.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); return(FAIL); } memmove(buffer_char, buffer, size*btype_size); profile_buffer = (hvl_t *)calloc(nelmnts, sizeof(hvl_t)); if(profile_buffer == NULL) { sprintf(errbuf,"Cannot allocate memory for profile_buffer.\n"); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(buffer_char); return(FAIL); } begin_offset = 0; end_offset = -1; for (i = 0; i < nelmnts; i++) { profile_buffer[i].p = malloc(len[i]*((long)btype_size)); begin_offset = end_offset + 1; end_offset = begin_offset + len[i]*((long)btype_size) - 1; length = end_offset - begin_offset + 1; memmove(profile_buffer[i].p, &buffer_char[begin_offset], length); profile_buffer[i].len = (size_t)len[i]; } free(buffer_char); /* Write data buffer to the profile dataset */ /* ----------------------------------------- */ status = HE5_PRwrite(swathID, profilename, start, stride, edge, dsize, profile_buffer); if ( status == FAIL ) { sprintf(errbuf, "Cannot write data to \"%s\" profile. \n", profilename); H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); free(edge); free(profile_buffer); return(FAIL); } free(start); free(stride); free(edge); free(profile_buffer); } else { sprintf(errbuf, "Error calling HE5_PRinfo() from FORTRAN wrapper. \n") ; H5Epush(__FILE__, "HE5_PRwriteF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRreadF (FORTRAN wrapper) | | | | DESCRIPTION: Reads data from the profile dataset. | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status (0) SUCCEED (-1) | | FAIL | | INPUTS: | | SwathID int Swath ID | | profilename char Name of profile/dataset | | fortstart long start array | | fortstride long stride array | | fortedge long edge array | | len long lengths of each element in the | | profile field | | | | OUTPUTS: | | buffer_output void Data buffer | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Aug 00 A.Muslimov Original development | | Dec 00 A.Muslimov Updated to add "start", "stride", and "edge" | | parameters. | | May 01 C.Praderas Continued development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PRreadF(int SwathID, char *profilename, long fortstart[], long fortstride[], long fortedge[],long len[], void *buffer_output) { int ret = FAIL; /* Status variable */ int rank = FAIL; /* Rank of dataset */ int i; /* Loop index */ long num_prof_elmnts = 0; /* number of elements in profile */ long profile_datasize = 0; /* Size (in bytes) of Prof Field */ long begin_offset = 0; /* Used in storing to VL buffer */ long end_offset = 0; /* " " */ long length = 0; /* " " */ long idx = FAIL; /* Swath index */ herr_t status = FAIL; /* Status variable */ hid_t swathID = FAIL; /* HDF5-type swath ID */ hid_t groupID = FAIL; /* "Profile Fields" group ID */ hid_t gid = FAIL; /* "SWATHS" group ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t profID = FAIL; /* Profile dataset ID */ hid_t typeID = FAIL; /* Dataset type ID */ hid_t btypeID = FAIL; /* Base data type ID */ hssize_t *start = (hssize_t *)NULL;/* Start array (C order) */ hsize_t *stride = (hsize_t *)NULL; /* Stride array (C order) */ hsize_t *edge = (hsize_t *)NULL; /* Edge array (C order) */ hsize_t dims[HE5_DTSETRANKMAX]; /* Profile dimensions */ hsize_t maxdims[HE5_DTSETRANKMAX]; /* Profile max.dims */ size_t btype_size = 0; /* Size of base datatype */ size_t vltype_size = 0; /* Size of variable length */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ char *buffer_char=NULL; hvl_t *buffer; /* Buffer to read outt data from profile */ swathID = (hid_t)SwathID; /* Get HDF-EOS file ID, "HDFEOS" group ID and Swath index */ /* ------------------------------------------------------ */ status = HE5_SWchkswid(swathID, "HE5_PRinfo", &fid, &gid, &idx); if ( status == FAIL ) { sprintf(errbuf, "Checking for swath ID failed. \n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get "Profile Fields" group ID */ /* ----------------------------- */ groupID = HE5_SWXSwath[idx].prof_id; /* Open specified profile dataset */ /* ------------------------------ */ profID = H5Dopen(groupID, profilename); if (profID == FAIL) { sprintf(errbuf,"Cannot open \"%s\" profile.\n", profilename); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data type ID */ /* ---------------- */ typeID = H5Dget_type(profID); if (typeID == FAIL) { sprintf(errbuf,"Cannot get data type ID.\n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get size of variable length data type (Profile field) */ /* ----------------------------------------------------- */ vltype_size = H5Tget_size(typeID); if (vltype_size == FAIL) { sprintf(errbuf,"Cannot get size of variable length data type.\n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get base data type ID */ /* --------------------- */ btypeID = H5Tget_super(typeID); if (btypeID == FAIL) { sprintf(errbuf,"Cannot get base data type ID.\n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get size of base data type */ /* -------------------------- */ btype_size = H5Tget_size(btypeID); if (btype_size == FAIL) { sprintf(errbuf,"Cannot get size of base data type.\n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf,"Cannot release data type ID.\n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release dataset ID */ /* ------------------ */ status = H5Dclose(profID); if (status == FAIL) { sprintf(errbuf,"Cannot release dataset ID.\n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Initialize dims[]/maxdims[] arrays */ /* ---------------------------------- */ for ( i = 0; i < HE5_DTSETRANKMAX; i++) { dims[ i ] = 0; maxdims[ i ] = 0; } /* Get profile rank */ /* ----------------- */ status = HE5_PRinfo(swathID, profilename, &rank, dims, maxdims, NULL, NULL, NULL); if (status != FAIL) { start = (hssize_t *)calloc(rank, sizeof(hssize_t)); if(start == NULL) { sprintf(errbuf,"Cannot allocate memory for start.\n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } stride = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(stride == NULL) { sprintf(errbuf,"Cannot allocate memory for stride.\n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); return(FAIL); } edge = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(edge == NULL) { sprintf(errbuf,"Cannot allocate memory for edge.\n"); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(start); free(stride); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) { start[i] = (hssize_t)fortstart[rank - 1 - i]; stride[i] = (hsize_t)fortstride[rank - 1 - i]; edge[i] = (hsize_t)fortedge[rank - 1 - i]; } /* Allocate space for buffer */ /* ------------------------- */ buffer = (hvl_t *) calloc(fortedge[0],sizeof(hvl_t)); if ( buffer == NULL ) { H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for read buffer.\n"); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Read the data from profile dataset */ /* ----------------------------------- */ status = HE5_PRread(swathID, profilename, start, stride, edge, buffer); if ( status == FAIL ) { sprintf(errbuf, "Cannot read data from \"%s\" profile. \n", profilename); H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(buffer); return(FAIL); } free(start); free(stride); free(edge); } else { sprintf(errbuf, "Error calling HE5_PRinfo() from FORTRAN wrapper. \n") ; H5Epush(__FILE__, "HE5_PRreadF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; } /* Calculate the number of elements in the profile field */ /* ----------------------------------------------------- */ for( i=0; i C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) count[i] = (hsize_t)fortcount[rank - 1 - i]; swathID = (hid_t)SwathID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of group attribute elements.\n"); H5Epush(__FILE__, "HE5_PRwrgattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_PRwrgattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; status = HE5_PRwritegrpattr(swathID, attrname, numbertype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_PRwrgattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { status = HE5_PRwritegrpattr(swathID, attrname, numbertype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_PRwrgattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRrdgattrF (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute from the "Profile Fields" group in a swath. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PRrdgattrF(int SwathID, char *attrname, void *datbuf) { int ret = FAIL; /* (int) return status */ herr_t status = FAIL; /* return status variable */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ swathID = (hid_t)SwathID; status = HE5_PRreadgrpattr(swathID,attrname,datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read attribute \"%s\" from the \"Profile Fields\" group.\n", attrname); H5Epush(__FILE__, "HE5_PRrdgattrF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRgattrinfoF | | | | DESCRIPTION: FORTRAN wrapper for PRgrpattrinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | attrname char* attribute name | | | | OUTPUTS: | | numbertype int attribute HDF numbertype | | fortcount long Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | | | -----------------------------------------------------------------------------*/ int HE5_PRgattrinfoF(int SwathID, char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type class ID */ hid_t swathID = FAIL; /* HDF5 type Swath ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PRgattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_PRgattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if( ntype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_PRgattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } swathID = (hid_t)SwathID; status = HE5_PRgrpattrinfo(swathID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about group attribute.\n"); H5Epush(__FILE__, "HE5_PRgattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(ntype); return(FAIL); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PRinqgattrsF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Profile Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in "Profile Fields"| | group. | | | | INPUTS: | | SwathID int swath structure ID | | | | OUTPUTS: | | attrnames char Attribute names in "Profile Fields" | | group (Comma-separated list) | | strbufsize long Attributes name list string length | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_PRinqgattrsF(int SwathID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; nattr = HE5_PRinqgrpattrs(swathID, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_PRinqgattrsF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWsetaliasF (FORTRAN wrapper) | | | | DESCRIPTION: Defines alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | SwathID int swath ID | | fieldname char Original field name | | | | OUTPUTS: | | fortaliaslist char Comma separated list of aliases for| | the field name | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Oct 00 A. Muslimov Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWsetaliasF(int SwathID, char *fieldname, char *fortaliaslist) { int ret = FAIL;/* (int)Return status variable */ herr_t status = FAIL;/* return status variable */ hid_t swathID = FAIL;/* HDF5 type swath ID */ char *aliaslist = NULL;/* C-order list of aliases */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; /* Allocate space for C order alias list */ /* ------------------------------------- */ aliaslist = (char *)calloc(strlen(fortaliaslist) + 1, sizeof(char)); if(aliaslist == NULL) { sprintf(errbuf,"Cannot allocate memory for aliaslist.\n"); H5Epush(__FILE__, "HE5_SWsetaliasF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Reverse entries in alias list (FORTRAN -> C) */ /* -------------------------------------------- */ status = HE5_EHrevflds(fortaliaslist, aliaslist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in alias list.\n"); H5Epush(__FILE__, "HE5_SWsetaliasF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(aliaslist); return(FAIL); } /* Call SWsetalias() */ /* ----------------- */ status = HE5_SWsetalias(swathID, fieldname, aliaslist); if ( status == FAIL ) { sprintf(errbuf, "Error calling SWsetalias() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_SWsetaliasF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(aliaslist); return(FAIL); } free(aliaslist); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdropaliasF (FORTRAN wrapper) | | | | DESCRIPTION: Removes the alias for a specified field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | SwathID int swath ID | | aliasname char alias name to remove | | fldgroup int Field group flag | | | | OUTPUTS: | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Oct 00 A. Muslimov Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdropaliasF(int SwathID, int fldgroup, char *aliasname) { int ret = FAIL;/* (int)Return status variable */ herr_t status = FAIL;/* return status variable */ hid_t swathID = FAIL;/* HDF5 type Swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; status = HE5_SWdropalias(swathID, fldgroup, aliasname); if(status == FAIL) { sprintf(errbuf,"Error calling SWdropalias() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWdropaliasF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqdfldaliasF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of fields & aliases and string length of| | fields & aliases list in "Data Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfldalias long Number of fields & aliases in "Data | | Fields" group. | | | | INPUTS: | | SwathID int swath structure ID | | | | OUTPUTS: | | fldalias char* Fields & aliases names in "Data Fields" | | group (Comma-separated list) | | strbufsize long* Fields & aliases name list string length| | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Mar 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqdfldaliasF(int SwathID, char *fldalias, long *strbufsize) { long nfldalias = FAIL; /* Number of fields & aliases (return) */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; nfldalias = HE5_SWinqdfldalias(swathID, fldalias, strbufsize); if ( nfldalias < 0 ) { sprintf(errbuf, "Cannot retrieve the fields & aliases. \n"); H5Epush(__FILE__, "HE5_SWinqdfldaliasF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nfldalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqgfldaliasF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of fields & aliases and string length of| | fields & aliases list in "Geolocation Fields" group | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfldalias long Number of fields & aliases in "Geo- | | location Fields" group. | | | | INPUTS: | | SwathID int swath structure ID | | | | OUTPUTS: | | fldalias char* Fields & aliases names in "Geolocation | | Fields" group (Comma-separated list) | | strbufsize long* Fields & aliases name list string length| | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 03 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqgfldaliasF(int SwathID, char *fldalias, long *strbufsize) { long nfldalias = FAIL; /* Number of fields & aliases (return) */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; nfldalias = HE5_SWinqgfldalias(swathID, fldalias, strbufsize); if ( nfldalias < 0 ) { sprintf(errbuf, "Cannot retrieve the fields & aliases. \n"); H5Epush(__FILE__, "HE5_SWinqgfldaliasF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nfldalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWaliasinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves information about field aliases | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | SwathID int swath ID | | aliasname char alias name | | fldgroup int Field group flag | | | | OUTPUTS: | | length int Buffer size | | buffer char Buffer with original field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Oct 00 A. Muslimov Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWaliasinfoF(int SwathID, int fldgroup, char *aliasname, int *length, char *buffer) { int ret = FAIL;/* (int) return status variable */ herr_t status = FAIL;/* return status variable */ hid_t swathID = FAIL;/* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; status = HE5_SWaliasinfo(swathID, fldgroup, aliasname, length, buffer); if(status == FAIL) { sprintf(errbuf,"Error calling SWaliasinfo() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWaliasinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWfldrenameF (FORTRAN wrapper) | | | | DESCRIPTION: Changes the field name | | | | | | Return Value Type Units Description | | ============ =========== ========= ================================= | | ret int Return status | | | | INPUTS: | | SwathID int swath ID | | oldfieldname char Original field name | | | | OUTPUTS: | | newfieldname char New field name | | | | NOTES: | | None | | | | | | Date Programmer Description | | ======= ============ ================================================= | | Oct 00 A. Muslimov Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWfldrenameF(int SwathID, char *oldfieldname, char *newfieldname) { int ret = FAIL;/* (int)Return status variable */ herr_t status = FAIL;/* return status variable */ hid_t swathID = FAIL;/* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; status = HE5_SWfldrename(swathID, oldfieldname, newfieldname); if(status == FAIL) { sprintf(errbuf,"Error calling SWfldrename() from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWfldrenameF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdefcomchunkF (FORTRAN wrapper) | | | | DESCRIPTION: Defines compression type and parameters and sets chunking | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int Swath structure ID | | compcode int compression code | | compparm int compression parameters | | rank int rank of a dataset | | *dim long pointer to the array containing sizes | | of each dimension of a chunk | | | | OUTPUTS: | | None | | | | NOTES: | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 00 A.Muslimov Original version. | | Jan 01 A.Muslimov Added proper FORTRAN to C dimension order conversion| | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdefcomchunkF(int SwathID, int compcode, int *compparm, int rank, long *dim) { int ret = FAIL; /* return status */ int j = 0; /* Loop index */ herr_t status = FAIL; /* return status */ hsize_t *tempdims = (hsize_t *)NULL;/* Temporary variable */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWdefcomchunkF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ tempdims = (hsize_t *)calloc(rank, sizeof(hsize_t)); if(tempdims == (hsize_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for tempdims.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunkF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Change from FORTRAN to C dimension order */ /* ---------------------------------------- */ for (j = 0; j < rank; j++) tempdims[j] = (hsize_t)dim[ rank - 1 - j ]; swathID = (hid_t)SwathID; /* Call HE5_SWdefcomchunk() */ /* ------------------------ */ status = HE5_SWdefcomchunk(swathID, compcode, compparm, rank, tempdims); if (status == FAIL) { sprintf(errbuf, "Error calling HE5_SWdefcomchunk from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWdefcomchunkF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(tempdims); return(FAIL); } free(tempdims); free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWsetextdataF (FORTRAN wrapper) | | | | DESCRIPTION: Sets external data files. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fortfilelist char* list of external files (FORTRAN order) | | offset long array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size long array of sizes (in bytes) reserved in | | the file for the data. | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 01 A.Muslimov Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWsetextdataF(int SwathID, char *fortfilelist, long offset[], long size[]) { int ret = FAIL; /* return status variable */ herr_t status = FAIL; /* Return status variable */ hid_t swathID = FAIL; /* Swath HDF5 type ID */ off_t *off = (off_t *)NULL; /* Array of data offsets */ long nentries = 0; /* Number of list entries */ long i; /* Loop index */ hsize_t *sz = (hsize_t *)NULL;/* Array of data sizes */ char *filelist = (char *)NULL; /* Files list (C order) */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Allocate space for C order file list */ /* ------------------------------------ */ filelist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(filelist == NULL) { sprintf(errbuf,"Cannot allocate memory for input list.\n"); H5Epush(__FILE__, "HE5_SWsetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Reverse entries in input list */ /* ----------------------------- */ status = HE5_EHrevflds(fortfilelist, filelist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in file list.\n"); H5Epush(__FILE__, "HE5_SWsetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); return(FAIL); } /* Parse the list of entries to get number of files */ /* ------------------------------------------------ */ nentries = HE5_EHparsestr(filelist, ',', NULL, NULL); if(nentries <= 0) { sprintf(errbuf,"Cannot parse the input list/input list is empty.\n"); H5Epush(__FILE__, "HE5_SWsetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); return(FAIL); } /* Allocate space for offset array */ /* ------------------------------- */ off = (off_t *)calloc(nentries, sizeof(off_t)); if(off == (off_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for input offset array.\n"); H5Epush(__FILE__, "HE5_SWsetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); return(FAIL); } /* Allocate space for size array */ /* ----------------------------- */ sz = (hsize_t *)calloc(nentries, sizeof(hsize_t)); if(sz == (hsize_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for input size array.\n"); H5Epush(__FILE__, "HE5_SWsetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); return(FAIL); } /* Copy the elements of input arrays */ /* --------------------------------- */ for (i = 0; i < nentries; i++) { off[ nentries - 1 - i ] = (off_t)offset[ i ]; sz[ nentries - 1 - i ] = (hsize_t)size[ i ]; } swathID = (hid_t)SwathID; /* Call the C function */ /* ------------------- */ status = HE5_SWsetextdata(swathID, filelist, off, sz); if (status == FAIL) { sprintf(errbuf, "Error calling HE5_SWsetextdata from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWsetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); free(sz); return(FAIL); } if (filelist != NULL) free(filelist); if (off != NULL) free(off); if (sz != NULL) free(sz); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgetextdataF (FORTRAN wrapper) | | | | DESCRIPTION: Gets external data files information. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfiles int number of external files SUCCEED, | | (-1) FAIL | | INPUTS: | | SwathID int swath structure ID | | fieldname char* External field name | | | | OUTPUTS: | | namelength long Length of each name entry | | fortfilelist char* List of file names (FORTRAN order) | | offset long array of offsets (in bytes) from the | | beginning of the file to the location | | in the file where the data starts | | size long array of sizes (in bytes) reserved in | | the file for the data. | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 01 A.Muslimov Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWgetextdataF(int SwathID, char *fieldname, long namelength, char *fortfilelist, long offset[], long size[]) { int nfiles = FAIL; /* number of files (return) */ int i; /* Loop index */ herr_t status = FAIL; /* Return status variable */ hid_t swathID = FAIL; /* Swath HDF5 type ID */ off_t *off = (off_t *)NULL; /* Array of data offsets */ hsize_t *sz = (hsize_t *)NULL;/* Array of sizes */ size_t nmlen = 0; /* Each entry string length */ char *filelist = (char *)NULL; /* Files list (C order) */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ /* Allocate space for C order output file list */ /* ------------------------------------------- */ filelist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(filelist == NULL) { sprintf(errbuf,"Cannot allocate memory for output list.\n"); H5Epush(__FILE__, "HE5_SWgetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate space for offset array */ /* ------------------------------- */ off = (off_t *)calloc(HE5_FLDNUMBERMAX , sizeof(off_t)); if(off == (off_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for input offset array.\n"); H5Epush(__FILE__, "HE5_SWgetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); return(FAIL); } /* Allocate space for size array */ /* ----------------------------- */ sz = (hsize_t *)calloc(HE5_FLDNUMBERMAX, sizeof(hsize_t)); if(sz == (hsize_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for input size array.\n"); H5Epush(__FILE__, "HE5_SWgetextdataF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); return(FAIL); } swathID = (hid_t)SwathID; nmlen = (size_t)namelength; /* Call the C function */ /* ------------------- */ nfiles = HE5_SWgetextdata(swathID, fieldname, nmlen, filelist, off, sz); if (nfiles == FAIL) { sprintf(errbuf, "Error calling HE5_SWgetextdata from FORTRAN wrapper.\n"); H5Epush(__FILE__, "HE5_SWgetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); free(sz); return(FAIL); } /* Reverse entries in output list */ /* ----------------------------- */ status = HE5_EHrevflds(filelist, fortfilelist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in output file list.\n"); H5Epush(__FILE__, "HE5_SWgetextdataF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(filelist); free(off); free(sz); return(FAIL); } /* Populate the output arrays */ /* -------------------------- */ for (i = 0; i < nfiles; i++) { offset[ nfiles - 1 - i ] = (long)off[ i ]; size[ nfiles - 1 - i ] = (long)sz[ i ]; } if (filelist != NULL) free(filelist); if (off != NULL) free(off); if (sz != NULL) free(sz); return(nfiles); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWindexinfoF | | | | DESCRIPTION: FORTRAN wrapper around SWindexinfo | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | RegionID int Region ID | | object char* field name | | | | OUTPUTS: | | rank int* field rank | | fortdimlist char* field dimension list | | fortindices long* indices of region for along track dim. | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | June 04 S.Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWindexinfoF(int RegionID, char *object, int *rank, char *fortdimlist, long *fortindices) { int ret = FAIL; /* (int) Return status variable */ int i, j; /* Loop index */ hid_t regionID = FAIL; /* HDF5 type region ID */ herr_t status = FAIL; /* routine return status variable */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ hsize_t *indices[HE5_DTSETRANKMAX]; hsize_t swap = 0; /* Temporary dimension size */ /* Dimension lists in C order */ /* -------------------------- */ char *dimlist = (char *)NULL; /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for input list.\n"); H5Epush(__FILE__, "HE5_SWindexinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } for (i = 0; i < HE5_DTSETRANKMAX; i++) { indices[i] = (hsize_t *)malloc(2*sizeof(hsize_t)); } regionID = (hid_t)RegionID; /* Call SWindexinfo */ /* ---------------- */ status = HE5_SWindexinfo(regionID, object, rank, dimlist, indices); if (status == FAIL) { sprintf(errbuf,"Cannot get information about indices.\n"); H5Epush(__FILE__, "HE5_SWindexinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimlist); for (i = 0; i < HE5_DTSETRANKMAX; i++) { free(indices[i]); indices[i] = NULL; } return(FAIL); } /* Reverse order of dimensions entries in dimension list */ /* ----------------------------------------------------- */ if(fortdimlist != (char *)NULL) { status = HE5_EHrevflds(dimlist, fortdimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_SWindexinfoF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dimlist); for (i = 0; i < HE5_DTSETRANKMAX; i++) { free(indices[i]); indices[i] = NULL; } return(FAIL); } } for (j = 0; j < *rank / 2; j++) { for (i = 0; i < 2; i++) { swap = indices[*rank - 1 - j][i]; indices[*rank - 1 - j][i] = indices[j][i]; indices[j][i] = swap; } } for (j = 0; j < *rank; j++) { for (i = 0; i < 2; i++) { fortindices[j*2+i] = (long)indices[j][i]; } } for (i = 0; i < HE5_DTSETRANKMAX; i++) { free(indices[i]); indices[i] = NULL; } free(dimlist); dimlist = NULL; ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwrdmeta | | | | DESCRIPTION: Defines structural metadata for pre-existing data | | field within swath structure (FORTRAN) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char fieldname | | fortdimlist char Dimension list (comma-separated list) | | FORTRAN dimesion order | | mvalue int field type | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 05 S. Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWwrdmeta(int SwathID, char *fieldname, char *fortdimlist, int mvalue) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hid_t numbertype = FAIL; /* HDF5 type data type ID */ char *dimlist = (char *)NULL; /* Dimension list (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ swathID = (hid_t)SwathID; numbertype = HE5_EHconvdatatype(mvalue); if(numbertype == FAIL) { H5Epush(__FILE__, "HE5_SWwrdmeta", __LINE__, H5E_DATATYPE, H5E_BADVALUE, "Cannot convert datatype for FORTRAN wrapper."); HE5_EHprint("Error: Cannot convert datatype for FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWwrdmeta", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *) calloc(strlen(fortdimlist) + 1, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for dimlist.\n"); H5Epush(__FILE__, "HE5_SWwrdmeta", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortdimlist, dimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_SWwrdmeta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } /* Call Write Metadata routine */ /* --------------------------- */ status = HE5_SWwritedatameta(swathID, fieldname, dimlist, numbertype); if(status == FAIL) { sprintf(errbuf,"Cannot write \"%s\" field metadata.\n", fieldname); H5Epush(__FILE__, "HE5_SWwrdmeta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } free(dimlist); free(errbuf); ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwrgmeta | | | | DESCRIPTION: Defines structural metadata for pre-existing geolocation | | field within swath structure (FORTRAN) | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | SwathID int swath structure ID | | fieldname char fieldname | | fortdimlist char Dimension list (comma-separated list) | | FORTRAN dimesion order | | mvalue int field type | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 05 S. Zhao Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWwrgmeta(int SwathID, char *fieldname, char *fortdimlist, int mvalue) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t swathID = FAIL; /* HDF5 type swath ID */ hid_t numbertype = FAIL; /* HDF5 type data type ID */ char *dimlist = (char *)NULL; /* Dimension list (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ swathID = (hid_t)SwathID; numbertype = HE5_EHconvdatatype(mvalue); if(numbertype == FAIL) { H5Epush(__FILE__, "HE5_SWwrgmeta", __LINE__, H5E_DATATYPE, H5E_BADVALUE, "Cannot convert datatype for FORTRAN wrapper."); HE5_EHprint("Error: Cannot convert datatype for FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_SWwrgmeta", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate space for C order dimension list */ /* ----------------------------------------- */ dimlist = (char *) calloc(strlen(fortdimlist) + 1, sizeof(char)); if(dimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for dimlist.\n"); H5Epush(__FILE__, "HE5_SWwrgmeta", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse entries in dimension list (FORTRAN -> C) */ /* ------------------------------------------------ */ status = HE5_EHrevflds(fortdimlist, dimlist); if(status == FAIL) { sprintf(errbuf,"Cannot reverse entries in dimension list.\n"); H5Epush(__FILE__, "HE5_SWwrgmeta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } /* Call Write Metadata routine */ /* --------------------------- */ status = HE5_SWwritegeometa(swathID, fieldname, dimlist, numbertype); if(status == FAIL) { sprintf(errbuf,"Cannot write \"%s\" field metadata.\n", fieldname); H5Epush(__FILE__, "HE5_SWwrgmeta", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(dimlist); return(FAIL); } free(dimlist); free(errbuf); ret = (int)status; return (ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgetaliaslistF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of aliases and aliases list in swath | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nalias long number of aliases | | | | INPUTS: | | SwathID int swath structure ID | | fldgroup int field group flag (geo or data) | | | | OUTPUTS: | | aliaslist char* list of aliases (comma-separated list) | | strbufsize long* length of aliases list | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Jul 05 S.Zhao Original development | | Dec 05 T.Roegner NCR 44092 - Added CYGWIN capability | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWgetaliaslistF(int SwathID, int fldgroup, char *aliaslist, long *strbufsize) { long nalias = FAIL; /* Number of aliases (return) */ hid_t swathID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swathID = (hid_t)SwathID; nalias = HE5_SWgetaliaslist(swathID, fldgroup, aliaslist, strbufsize); if (nalias < 0) { sprintf(errbuf, "Cannot retrieve the aliases. \n"); H5Epush(__FILE__, "HE5_SWgetaliaslistF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nalias); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWsetdimscaleF (FORTRAN wrapper) | | | | DESCRIPTION: Defines a dimension scale for a fields dimension in a SW | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swID int SW structure ID | | fieldname char field name | | dimname char dim name | | dim long Dimemsion value | | numbertype_in int dim scale data type such as DFNT_INT32, | | DFNT_FLOAT64, DFNT_FLOAT32, etc. | | data void data buffer for write | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWsetdimscaleF(int SwathID, char *fieldname, char *dimname, long dim, int numbertype_in, void * data) { herr_t status; hid_t swID; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ swID = (hid_t)SwathID; status = HE5_SWsetdimscale(swID, fieldname, dimname, (hsize_t) dim, (hid_t) numbertype_in, data); if (status < 0) { sprintf(errbuf, "Cannot set dimension scale %s for field %s. \n", dimname, fieldname); H5Epush(__FILE__, "HE5_SWsetdimscaleF", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWgetdimscaleF (FORTRAN wrapper) | | | | DESCRIPTION: Get dimension scale for a dimension of a field in a SW | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return databuffsize SUCCEED, (-1) FAIL | | | | INPUTS: | | swID int SWATH structure ID | | fieldname char field name | | dimname char dim name | | | | | | OUTPUTS: | | dimsize long dimension size | | ntype int number type | | databuff void data buffer for read | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Programmer | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWgetdimscaleF(int SwathID, char *fieldname, char *dimname, long *dimsize, int *ntype, void * databuff) { hsize_t databuffsize =(hsize_t)FAIL; /* Size of buffer */ hid_t swID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ hsize_t ds; hid_t numtype; swID = (hid_t)SwathID; databuffsize = HE5_SWgetdimscale(swID, fieldname, dimname, &ds, &numtype, databuff); *dimsize = (long) ds; *ntype = (int) numtype; if ( databuffsize < 0 ) { sprintf(errbuf,"Cannot get dimension scale %s for field %s. \n", dimname, fieldname); H5Epush(__FILE__, "HE5_SWgetdimscaleF", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((long)databuffsize); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWreaddscaleattrF (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute associated with a dimension scale field | | from a SW. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swID int None HDF-EOS type SWATH ID | | fieldname char field name | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Jun 10 Abe Taaheri Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWreaddscaleattrF(int SwathID, char *fieldname, char *attrname, void *datbuf) { herr_t status = FAIL; /* return status */ hid_t swID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ swID = (hid_t)SwathID; status = HE5_SWreaddscaleattr(swID, fieldname, attrname, datbuf); if ( status < 0 ) { sprintf(errbuf,"Cannot read attribute %s for dimension scale %s. \n", attrname, fieldname); H5Epush(__FILE__, "HE5_SWreaddscaleattrF", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWwritedscaleattrF (FORTRAN wrapper) | | | | DESCRIPTION: Writes/updates attribute associated with a dimension scale | | field in a SW. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swID int SWATH structure ID | | fieldname char* dimension scale SDS name | | attrname char* attribute name | | numtype int attribute datatype ID | | count[] long Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWwritedscaleattrF(int SwathID, char *fieldname, char *attrname, int numtype, long count[], void *datbuf) { herr_t status = FAIL; /* return status */ hid_t swID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ hsize_t fort_count[HE5_FLDNUMBERMAX]; swID = (hid_t)SwathID; fort_count[0] = (hsize_t)count[0]; status = HE5_SWwritedscaleattr(swID, fieldname, attrname, (hid_t)numtype, fort_count, datbuf); if ( status < 0 ) { sprintf(errbuf,"Cannot write attribute %s for dimension scale %s. \n", attrname, fieldname); H5Epush(__FILE__, "HE5_SWwritedscaleattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWdscaleattrinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves information about dimension scale attribute | | (attribute associated with a specified dimension scale field) | | in a SW. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swID int None HDF-EOS type SWATH ID | | fieldname char* field name | | attrname char* attribute name | | | | OUTPUTS: | | ntype int attribute data type ID | | fortcount long Number of attribute elements | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | May 10 Abe Taaheri Original Development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_SWdscaleattrinfoF(int SwathID, char *fieldname, char *attrname, int *ntype, long *fortcount) { herr_t status = FAIL; /* return status */ hid_t swID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ hsize_t *count = (hsize_t *)NULL; /* C-order count array */ hid_t *dtype = (hid_t *)NULL; /* Data type class ID */ swID = (hid_t)SwathID; dtype = (hid_t *)calloc(1, sizeof(hid_t)); if(dtype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for \"dtype\".\n"); H5Epush(__FILE__, "HE5_SWdscaleattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if(count == NULL) { sprintf(errbuf,"Cannot allocate memory for \"count\".\n"); H5Epush(__FILE__, "HE5_SWdscaleattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dtype); return(FAIL); } count[0] = 0; status = HE5_SWdscaleattrinfo(swID, fieldname, attrname, dtype, count); if ( status == FAIL) { sprintf(errbuf, "Cannot retrieve attribute info for the %s dimension scale. \n", fieldname); H5Epush(__FILE__, "HE5_SWdscaleattrinfoF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(dtype); return(FAIL); } *fortcount = (long)(*count); *ntype = (int)(*dtype); free(count); free(dtype); return((int)status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWinqdscaleattrsF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list associated with a specified dimension scale | | in a SW. | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long number of attributes (-1 if fails) | | | | INPUTS: | | swID int None HDF-EOS type SWATH ID | | fieldname char dimension scale name | | attrnames char attribute name(s) | | | | OUTPUTS: | | strbufsize long String length of attribute (in bytes) | | | | NOTES: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | June 10 Abe Taaheri Original development. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_SWinqdscaleattrsF(int SwathID, char *fieldname, char *attrnames, long *strbufsize) { long status = FAIL; /* return status */ hid_t swID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Buffer for error message */ swID = (hid_t)SwathID; status = HE5_SWinqdscaleattrs(swID, fieldname, attrnames, strbufsize); if ( status == FAIL ) { sprintf(errbuf, "Cannot find the attribute %s for dimension scale %s. \n",attrnames,fieldname); H5Epush(__FILE__, "HE5_SWinqdscaleattrsF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_SWflddiminfo | | | | DESCRIPTION: This functions returns dims and maxdims | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | swathID hid_t None HDF-EOS type swath ID | | fieldname char* fieldname | | | | OUTPUTS: | | rank int field rank | | dims hsize_t dimensions of field | | maxdims hsize_t max dimensions of field | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Sep 11 Abe Taaheri Added support for unlimited dimension adjustment | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_SWflddiminfo(int SwathID, char *fieldname, int *rank, hsize_t dims[], hsize_t maxdims[]) { herr_t status = FAIL; /* return status */ hid_t swID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Buffer for error message */ hid_t ntype[1] = {FAIL}; /* Field numbertypes */ char *dimlist = (char *)NULL; /* Dimension list in C order */ char *maxdimlist = (char *)NULL; /* max Dimension list in C order */ char *dimbuf = (char *)NULL; /* Dimension buffer */ char *comma = (char *)NULL; /* Pointer to comma */ char *dimcheck = (char *)NULL; /* Dimension check buffer */ hsize_t dimsize = 0; /* Dimension size */ int maxrank = 0; /* max dim rank */ int i = 0; /* Loop index */ int foundAllDim = 1; /* found all dimensions flag */ int first = 1; /* first entry flag */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ swID = (hid_t)SwathID; /* Allocate space for C order dimension list */ /* ----------------------------------------- */ maxdimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); dimlist = (char *)calloc(HE5_HDFE_UTLBUFSIZE, sizeof(char)); if(dimlist == NULL || maxdimlist == NULL) { sprintf(errbuf,"Cannot allocate memory for input list.\n"); H5Epush(__FILE__, "HE5_SWflddiminfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get field info */ /* --------------- */ status = HE5_SWfieldinfo(swID, fieldname, rank, dims, ntype, dimlist, maxdimlist); if ( status == FAIL ) { sprintf(errbuf, "Error calling HE5_SWfieldinfo. \n") ; H5Epush(__FILE__, "HE5_SWflddiminfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate space for dimbuf, copy maxdimlist into it, & append comma */ /* ------------------------------------------------------------------ */ if(maxdimlist != NULL) { dimbuf = (char *) calloc(strlen(maxdimlist) + 64, sizeof(char)); if(dimbuf == NULL) { H5Epush(__FILE__, "HE5_SWflddiminfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Copy "maxdimlist" to "dimbuf", & append comma */ /* --------------------------------------------- */ strcpy(dimbuf, maxdimlist); strcat(dimbuf, ","); /* Find comma */ /* ---------- */ comma = strchr(dimbuf, ','); /* * Loop through entries in dimension list to make sure they are * defined in swath */ while (comma != NULL) { /* Copy dimension list entry to dimcheck */ /* ------------------------------------- */ dimcheck = (char *) calloc(comma - dimbuf + 1, sizeof(char)); if(dimcheck == NULL) { H5Epush(__FILE__, "HE5_SWflddiminfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory. \n"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(dimbuf); free(dimlist); free(maxdimlist); return(FAIL); } memmove(dimcheck, dimbuf, comma - dimbuf); /* Get dimension size */ /* ------------------ */ dimsize = HE5_SWdiminfo(swID, dimcheck); if ( (dimsize > 0) || (dimsize == H5S_UNLIMITED) ) { maxdims[maxrank] = dimsize; maxrank++; } else { /* * If dimension list entry not found - set error return * status, append name to utility buffer for error report */ status = FAIL; foundAllDim = 0; if (first == 1) strcpy(utlbuf, dimcheck); else { strcat(utlbuf, ","); strcat(utlbuf, dimcheck); } first = 0; } /* * Go to next dimension entry, find next comma, & free up * dimcheck buffer */ strcpy(dimbuf, comma + 1); comma = strchr(dimbuf, ','); free(dimcheck); } free(dimbuf); free(dimlist); free(maxdimlist); /* If no dimensions found, report error */ /* ------------------------------------ */ if (foundAllDim == 0) { status = FAIL; sprintf(errbuf, "Dimension(s) \"%s\" not found for \"%s\" field. \n", utlbuf, fieldname); H5Epush(__FILE__, "HE5_SWflddiminfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } /* If maxrank !=rank then report error */ /* ------------------------------------ */ if ( maxrank != *rank ) { status = FAIL; sprintf(errbuf,"Dimension rank doesn't match Max dimension rank.\n"); H5Epush(__FILE__, "HE5_SWflddiminfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return (status); } } /* "maxlist == NULL" ==> maxdims[]= dims[] */ /* ---------------------------------------- */ else { for(i = 0; i < *rank; i++ ) maxdims[ i ] = dims[ i ]; } return (status); } #ifndef _gridID_cplusplus /* HDF types used in FORTRAN bindings */ #if defined(DEC_ALPHA) || defined(IRIX) || defined(UNICOS) || defined(LINUX64) || defined(IA64) || defined(MACINTOSH) || defined(MACINTEL) || defined(IBM6000) || defined(CYGWIN) #define INT32 INT #define INT32V INTV #define PINT32 PINT #else #define INT32 LONG #define INT32V LONGV #define PINT32 PLONG #endif /* File/Swath access routines */ FCALLSCFUN2(INT, HE5_SWopenF, HE5_SWOPEN, he5_swopen, STRING, INT) FCALLSCFUN2(INT, HE5_SWcreateF, HE5_SWCREATE, he5_swcreate, INT, STRING) FCALLSCFUN2(INT, HE5_SWattachF, HE5_SWATTACH, he5_swattach, INT, STRING) FCALLSCFUN1(INT, HE5_SWdetachF, HE5_SWDETACH, he5_swdetach, INT) FCALLSCFUN1(INT, HE5_SWcloseF, HE5_SWCLOSE, he5_swclose, INT) /* Definition routines */ FCALLSCFUN3(INT, HE5_SWdefdimF, HE5_SWDEFDIM, he5_swdefdim, INT, STRING, LONG) FCALLSCFUN5(INT, HE5_SWdefdimmapF, HE5_SWDEFMAP, he5_swdefmap, INT, STRING, STRING, LONG, LONG) FCALLSCFUN4(INT, HE5_SWdefidxmapF, HE5_SWDEFIMAP, he5_swdefimap, INT, STRING, STRING, LONGV) FCALLSCFUN6(INT, HE5_SWdefgfld, HE5_SWDEFGFLD, he5_swdefgfld, INT, STRING, STRING, STRING, INT, INT) FCALLSCFUN6(INT, HE5_SWdefdfld, HE5_SWDEFDFLD, he5_swdefdfld, INT, STRING, STRING, STRING, INT, INT) FCALLSCFUN3(INT, HE5_SWdefcompF, HE5_SWDEFCOMP, he5_swdefcomp, INT, INT, PINT) FCALLSCFUN3(INT, HE5_SWdefchunkF, HE5_SWDEFCHUNK, he5_swdefchunk, INT, INT, PLONG) FCALLSCFUN5(INT, HE5_SWdefcomchunkF, HE5_SWDEFCOMCH, he5_swdefcomch, INT, INT, PINT, INT, PLONG) FCALLSCFUN5(LONG, HE5_SWupimap, HE5_SWUPIMAP, he5_swupimap, INT, INT, LONGV, LONGV, LONGV) FCALLSCFUN3(INT, HE5_SWfldrenameF, HE5_SWFLDRNM, he5_swfldrnm, INT, STRING, STRING) /* I/O routines */ FCALLSCFUN6(INT, HE5_SWwrfld, HE5_SWWRFLD, he5_swwrfld, INT, STRING, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN8(INT, HE5_SWwrcharfld, HE5_SWWRCHARFLD, he5_swwrcharfld, INT, STRING, INT, INT, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN6(INT, HE5_SWrdfld, HE5_SWRDFLD, he5_swrdfld, INT, STRING, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN8(INT, HE5_SWrdcharfld, HE5_SWRDCHARFLD, he5_swrdcharfld, INT, STRING, INT, INT, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN5(INT, HE5_SWwrattr, HE5_SWWRATTR, he5_swwrattr,INT,STRING,INT,LONGV,PVOID) FCALLSCFUN5(INT, HE5_SWwrgattr, HE5_SWWRGATTR, he5_swwrgattr, INT, STRING, INT, LONGV,PVOID) FCALLSCFUN5(INT, HE5_SWwrgeogattr, HE5_SWWRGEOGATTR, he5_swwrgeogattr, INT, STRING, INT, LONGV,PVOID) FCALLSCFUN6(INT, HE5_SWwrlattr, HE5_SWWRLATTR, he5_swwrlattr, INT, STRING,STRING,INT,LONGV,PVOID) FCALLSCFUN3(INT, HE5_SWrdattr, HE5_SWRDATTR, he5_swrdattr, INT, STRING, PVOID) FCALLSCFUN3(INT, HE5_SWrdgattr, HE5_SWRDGATTR, he5_swrdgattr,INT,STRING,PVOID) FCALLSCFUN3(INT, HE5_SWrdgeogattr, HE5_SWRDGEOGATTR, he5_swrdgeogattr,INT,STRING,PVOID) FCALLSCFUN4(INT, HE5_SWrdlattr, HE5_SWRDLATTR, he5_swrdlattr,INT,STRING,STRING,PVOID) FCALLSCFUN4(INT, HE5_SWsetfill, HE5_SWSETFILL, he5_swsetfill, INT, STRING, INT, PVOID) FCALLSCFUN3(INT, HE5_SWgetfill, HE5_SWGETFILL, he5_swgetfill, INT, STRING, PVOID) FCALLSCFUN3(INT, HE5_SWsetaliasF, HE5_SWSETALIAS, he5_swsetalias, INT, STRING, STRING) FCALLSCFUN3(INT, HE5_SWdropaliasF, HE5_SWDRPALIAS, he5_swdrpalias, INT, INT, STRING) FCALLSCFUN4(INT, HE5_SWwrdmeta, HE5_SWWRDMETA, he5_swwrdmeta, INT, STRING, STRING, INT) FCALLSCFUN4(INT, HE5_SWwrgmeta, HE5_SWWRGMETA, he5_swwrgmeta, INT, STRING, STRING, INT) /* Inquiry routines */ FCALLSCFUN3(LONG, HE5_SWinqswathF, HE5_SWINQSWATH, he5_swinqswath, STRING, PSTRING,PLONG) FCALLSCFUN3(LONG, HE5_SWnentriesF, HE5_SWNENTRIES, he5_swnentries,INT,INT,PLONG) FCALLSCFUN2(LONG, HE5_SWdiminfoF, HE5_SWNDIMINFO, he5_swdiminfo, INT, STRING) FCALLSCFUN5(INT, HE5_SWmapinfoF, HE5_SWNMAPINFO, he5_swmapinfo,INT,STRING,STRING,PLONG,PLONG) FCALLSCFUN2(INT, HE5_SWgmapinfo, HE5_SWGMAPINFO, he5_swgmapinfo,INT,STRING) FCALLSCFUN7(INT, HE5_SWfldinfoF, HE5_SWFLDINFO, he5_swfldinfo,INT,STRING,PINT,LONGV,PINT,PSTRING,PSTRING) FCALLSCFUN4(LONG, HE5_SWidxmapinfoF, HE5_SWIMAPINFO, he5_swimapinfo,INT,STRING,STRING,LONGV) FCALLSCFUN4(LONG, HE5_SWinqmapsF, HE5_SWINQMAPS, he5_swinqmaps,INT,PSTRING,LONGV,LONGV) FCALLSCFUN3(LONG, HE5_SWinqimapsF, HE5_SWINQIMAPS, he5_swinqimaps,INT,PSTRING,LONGV) FCALLSCFUN3(LONG, HE5_SWinqdimsF, HE5_SWINQDIMS, he5_swinqdims,INT,PSTRING,LONGV) FCALLSCFUN4(LONG, HE5_SWinqgflds, HE5_SWINQGFLDS, he5_swinqgflds, INT,PSTRING, INTV, INTV) FCALLSCFUN4(LONG, HE5_SWinqdflds, HE5_SWINQDFLDS, he5_swinqdflds, INT,PSTRING, INTV, INTV) FCALLSCFUN4(INT, HE5_SWatinfo, HE5_SWATTRINFO, he5_swattrinfo, INT, STRING, PINT, PLONG) FCALLSCFUN4(INT, HE5_SWgatinfo, HE5_SWGATTRINFO, he5_swgattrinfo, INT, STRING, PINT, PLONG) FCALLSCFUN4(INT, HE5_SWgeogatinfo, HE5_SWGEOGATTRINFO, he5_swgeogattrinfo, INT, STRING, PINT, PLONG) FCALLSCFUN5(INT, HE5_SWlatinfo, HE5_SWLATTRINFO, he5_swlattrinfo, INT, STRING, STRING, PINT, PLONG) FCALLSCFUN4(INT, HE5_SWcompinfoF, HE5_SWCOMPINFO, he5_swcompinfo, INT, STRING,PINT, INTV) FCALLSCFUN3(LONG, HE5_SWinqattrsF, HE5_SWINQATTRS, he5_swinqattrs,INT,PSTRING,PLONG) FCALLSCFUN4(LONG, HE5_SWinqlattrs, HE5_SWINQLATTRS, he5_swinqlattrs,INT,STRING,PSTRING,PLONG) FCALLSCFUN3(LONG, HE5_SWinqgattrs, HE5_SWINQGATTRS, he5_swinqgattrs,INT,PSTRING,PLONG) FCALLSCFUN3(LONG, HE5_SWinqgeogattrs, HE5_SWINQGEOGATTRS, he5_swinqgeogattrs,INT,PSTRING,PLONG) FCALLSCFUN7(INT, HE5_SWreginfo, HE5_SWREGINFO, he5_swreginfo,INT,INT,STRING,PINT,PINT,LONGV,PLONG) FCALLSCFUN7(INT, HE5_SWperinfo, HE5_SWPERINFO, he5_swperinfo,INT,INT,STRING,PINT,PINT,LONGV,PLONG) FCALLSCFUN8(INT, HE5_SWidtype, HE5_SWIDTYPEF, he5_swidtype, INT,STRING,STRING,INT,PINT,PINT,PINT,PLONG) FCALLSCFUN5(INT, HE5_SWaliasinfoF, HE5_SWALIASINFO, he5_swaliasinfo, INT, INT, STRING, PINT, STRING) FCALLSCFUN3(LONG, HE5_SWinqdfldaliasF, HE5_SWINQDFLDALIAS, he5_swinqdfldalias,INT,PSTRING,PLONG) FCALLSCFUN3(LONG, HE5_SWinqgfldaliasF, HE5_SWINQGFLDALIAS, he5_swinqgfldalias,INT,PSTRING,PLONG) FCALLSCFUN4(INT, HE5_SWchunkinfoF, HE5_SWCHUNKINFO, he5_swchunkinfo,INT,STRING,PINT,LONGV) FCALLSCFUN4(LONG, HE5_SWgetaliaslistF, HE5_SWGETALIASLIST, he5_swgetaliaslist,INT,INT,PSTRING,PLONG) /* Subsetting routines */ FCALLSCFUN4(INT, HE5_SWdefboxreg, HE5_SWDEFBOXREG, he5_swdefboxreg, INT, DOUBLEV, DOUBLEV, INT) FCALLSCFUN4(INT, HE5_SWdefvrtreg, HE5_SWDEFVRTREG, he5_swdefvrtreg,INT,INT,STRING,DOUBLEV) FCALLSCFUN5(INT, HE5_SWextreg, HE5_SWEXTREG, he5_swextreg, INT, INT, STRING, INT, PVOID) FCALLSCFUN4(INT, HE5_SWdeftmeper, HE5_SWDEFTMEPER, he5_swdeftmeper,INT,DOUBLE,DOUBLE,INT) FCALLSCFUN1(INT, HE5_SWdupreg, HE5_SWDUPREG, he5_swdupreg, INT) FCALLSCFUN2(INT, HE5_SWupscene, HE5_SWUPSCENE, he5_swupscene,INT, INT) FCALLSCFUN6(INT, HE5_SWregidx, HE5_SWREGIDX, he5_swregidx,INT,DOUBLEV,DOUBLEV,INT,PSTRING,LONGV) FCALLSCFUN5(INT, HE5_SWextper, HE5_SWEXTPER, he5_swextper,INT,INT,STRING,INT,PVOID) FCALLSCFUN5(INT, HE5_SWindexinfoF, HE5_SWINDEXINFOF, he5_swindexinfof,INT,STRING,PINT,PSTRING,PLONG) /* PROFILE INTERFACE */ FCALLSCFUN5(INT, HE5_PRdefineF, HE5_PRDEFINE, he5_prdefine, INT, STRING, STRING, STRING, INT) FCALLSCFUN8(INT, HE5_PRwriteF, HE5_PRWRITE, he5_prwrite, INT, STRING, LONGV, LONGV, LONGV, LONG, LONGV, PVOID) FCALLSCFUN7(INT, HE5_PRreadF, HE5_PRREAD, he5_prread, INT, STRING, LONGV, LONGV, LONGV, LONGV, PVOID) FCALLSCFUN4(LONG, HE5_PRinquireF, HE5_PRINQIRE, he5_prinquire, INT, STRING, PINT, PINT) FCALLSCFUN8(INT, HE5_PRinfoF, HE5_PRINFO, he5_prinfo,INT,STRING,PINT,LONGV,LONGV,PINT,PSTRING,PSTRING) FCALLSCFUN5(INT, HE5_PRwrgattrF, HE5_PRWRGATTR, he5_prwrgattr, INT, STRING, INT, LONGV,PVOID) FCALLSCFUN3(INT, HE5_PRrdgattrF, HE5_PRRDGATTR, he5_prrdgattr,INT,STRING,PVOID) FCALLSCFUN4(INT, HE5_PRgattrinfoF, HE5_PRGATTRINFO, he5_prgattrinfo, INT, STRING, PINT, PLONG) FCALLSCFUN3(LONG, HE5_PRinqgattrsF, HE5_PRINQGATTRS, he5_prinqgattrs,INT,PSTRING,PLONG) FCALLSCFUN6(INT, HE5_SWsetdimscaleF, HE5_SWSETDIMSCALE, he5_swsetdimscale,INT,STRING,STRING,LONG,INT,PVOID) FCALLSCFUN6(LONG, HE5_SWgetdimscaleF, HE5_SWGETDIMSCALE, he5_swgetdimscale,INT,STRING,STRING,PLONG,PINT,PVOID) FCALLSCFUN4(INT, HE5_SWreaddscaleattrF,HE5_SWREADDSCALEATTR, he5_swreaddscaleattr,INT,STRING,STRING,PVOID) FCALLSCFUN6(INT, HE5_SWwritedscaleattrF, HE5_SWWRITEDSCALEATTR, he5_swwritedscaleattr,INT,STRING,STRING,INT,LONGV,PVOID) FCALLSCFUN5(INT, HE5_SWdscaleattrinfoF, HE5_SWDSCALEATTRINFO, he5_swdscaleattrinfo,INT,STRING,STRING,PINT,PLONG) FCALLSCFUN4(INT, HE5_SWinqdscaleattrsF, HE5_SWINQDSCALATTRS, he5_swinqdscaleattrs,INT,STRING,STRING,PLONG) /* EXTERNAL DATA FILE INTERFACE */ FCALLSCFUN4(INT, HE5_SWsetextdataF, HE5_SWSETXDAT, he5_swsetxdat,INT,STRING,LONGV,LONGV) FCALLSCFUN6(INT, HE5_SWgetextdataF, HE5_SWGETXDAT, he5_swgetxdat,INT,STRING,LONG,PSTRING,LONGV,LONGV) #endif hdf-eos5-5.1.14+dfsg.1/src/Makefile.in0000644000175000017500000003774712024715435020305 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # HDF-EOS5 src Makefile.am SOURCES = $(libhe5_hdfeos_la_SOURCES) srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/include.am subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/HE5_config.h CONFIG_CLEAN_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libhe5_hdfeos_la_LIBADD = am_libhe5_hdfeos_la_OBJECTS = EHapi.lo GDapi.lo PTapi.lo SWapi.lo \ TSapi.lo ZAapi.lo libhe5_hdfeos_la_OBJECTS = $(am_libhe5_hdfeos_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -DH5_USE_16_API LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -DH5_USE_16_API CCLD = $(CC) LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libhe5_hdfeos_la_SOURCES) DIST_SOURCES = $(libhe5_hdfeos_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F2CFORTRAN_32PTR_CONDITIONAL_FALSE = @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@ F2CFORTRAN_32PTR_CONDITIONAL_TRUE = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@ F2CFORTRAN_90_CONDITIONAL_FALSE = @F2CFORTRAN_90_CONDITIONAL_FALSE@ F2CFORTRAN_90_CONDITIONAL_TRUE = @F2CFORTRAN_90_CONDITIONAL_TRUE@ F2CFORTRAN_CONDITIONAL_FALSE = @F2CFORTRAN_CONDITIONAL_FALSE@ F2CFORTRAN_CONDITIONAL_TRUE = @F2CFORTRAN_CONDITIONAL_TRUE@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ # Set LDFLAGS to allow the HDF-EOS library to use extern variables from # HDF5 LDFLAGS = -Wl,-single_module LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SZIP_ENCODER_CONDITIONAL_FALSE = @SZIP_ENCODER_CONDITIONAL_FALSE@ SZIP_ENCODER_CONDITIONAL_TRUE = @SZIP_ENCODER_CONDITIONAL_TRUE@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la # Boilerplate definitions INCLUDES = -I$(top_srcdir)/include/ # Build HDF-EOS5 lib_LTLIBRARIES = libhe5_hdfeos.la # Source files for library libhe5_hdfeos_la_SOURCES = EHapi.c GDapi.c PTapi.c SWapi.c TSapi.c ZAapi.c all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libhe5_hdfeos.la: $(libhe5_hdfeos_la_OBJECTS) $(libhe5_hdfeos_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libhe5_hdfeos_la_LDFLAGS) $(libhe5_hdfeos_la_OBJECTS) $(libhe5_hdfeos_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EHapi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GDapi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PTapi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SWapi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TSapi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ZAapi.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/src/make_exclude_list0000755000175000017500000000041112024715435021621 0ustar amckinstryamckinstryhdfeos5/lib/sun5 hdfeos5/lib/sun5.8 hdfeos5/lib/dec hdfeos5/lib/hp hdfeos5/lib/ibm hdfeos5/lib/linux hdfeos5/lib/sgi32 hdfeos5/lib/sgi64 hdfeos5/lib/irix65 hdfeos5/make_exclude_list hdfeos5/install hdfeos5/testdrivers hdfeos5/landsat_test hdfeos5/lost+found hdf-eos5-5.1.14+dfsg.1/src/Makefile_CM0000755000175000017500000000324312024715435020242 0ustar amckinstryamckinstry # Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its documentation # for any purpose without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both that copyright notice and # this permission notice appear in supporting documentation. # ## Template Makefile. See instructions in Makefile.instr ## CSCI = hdfeos5 include $(SUBSYSTOP)/make/make.options ##############CUSTOM DEFINITIONS ######################################## ##############END OF CUSTOM DEFINITIONS################################## CXXSRCFILES = CSRCFILES = EHapi.c PTapi.c TSapi.c SWapi.c GDapi.c ZAapi.c HFILES = HE5_HdfEosDef.h cfortHdf.h OBJFILES = EHapi.o PTapi.o TSapi.o SWapi.o GDapi.o ZAapi.o LIBFILES = $(LIBDIR)/libhe5_hdfeos.a BINFILES = all: libhe5_hdfeos.a libhe5_hdfeos.a: EHapi.o TSapi.o PTapi.o SWapi.o GDapi.o ZAapi.o ${AR} $@ $? EHapi.o : EHapi.c ${CC} ${INCLUDE} -c Ehapi.c -o EHapi.o TSapi.o : TSapi.c ${CC} ${INCLUDE} -c TSapi.c -o TSapi.o PTapi.o : PTapi.c ${CC} ${INCLUDE} -c PTapi.c -o PTapi.o SWapi.o : SWapi.c ${CC} ${INCLUDE} -c SWapi.c -o SWapi.o GDapi.o : GDapi.c ${CC} ${INCLUDE} -c GDapi.c -o GDapi.o ZAapi.o : ZAapi.c ${CC} ${INCLUDE} -c ZAapi.c -o ZAapi.o ##############End of build target definitions############################ CLEANFILES = $(OBJFILES) $(LIBFILES) $(BINFILES) INSHFILES = $(HFILES) INSLIBFILES = $(LIBFILES) INSBINFILES = LABELFILES = $(LIBFILES) TESTSUBDIRS = test include $(SUBSYSTOP)/make/make.targets hdf-eos5-5.1.14+dfsg.1/src/TSapi.c0000755000175000017500000003207212024715435017411 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 2001 Emergent IT Inc. and Raytheon Systems Company | | | | Permission to use, modify, and distribute this software and its | | documentation for any purpose without fee is hereby granted, provided | | that the above copyright notice appear in all copies and that both that | | copyright notice and this permission notice appear in supporting | | documentation. | ---------------------------------------------------------------------------- */ #include #ifdef _HDFEOS5_THREADSAFE /* Global Variable definition */ /* -------------------------- */ pthread_once_t HE5_HDFE_TS_FirstInit = PTHREAD_ONCE_INIT; #endif /*---------------------------------------------------------------------------- | BEGIN_PROLOG | | | | FUNCTION: HE5_TSinitfirst | | | | DESCRIPTION : This function initializes the mutex, once per run. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: None | | | | | | OUTPUTS: | | | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ =============================================== | | 08/21/01 A.Muslimov Original development. | | 08/27/01 A.Muslimov Added appropriate error handlings. | | | | END_PROLOG | ----------------------------------------------------------------------------*/ void HE5_TSinitfirst(void) { #ifdef _HDFEOS5_THREADSAFE herr_t status = FAIL; char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Initialize Global Mutex Variable */ /* -------------------------------- */ GlobalMutex.MasterThread = (pthread_t *)NULL; /* Initialize mutex with default value */ /* ----------------------------------- */ status = pthread_mutex_init(&GlobalMutex.Lock, NULL); if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Failed to initialize the mutex.\n"); H5Epush(__FILE__, "HE5_TSinitfirst", __LINE__, H5E_FUNC, H5E_BADVALUE, errbuf); } /* Initialize condition variable with default attribute */ /* ---------------------------------------------------- */ status = pthread_cond_init(&GlobalMutex.CondVar, NULL); if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Failed to initialize the condition variable.\n"); H5Epush(__FILE__, "HE5_TSinitfirst", __LINE__, H5E_FUNC, H5E_BADVALUE, errbuf); } GlobalMutex.LockCount = 0; #endif } /*---------------------------------------------------------------------------- | BEGIN_PROLOG | | | | FUNCTION: HE5_TSmutexlock | | | | DESCRIPTION : This function locks the mutex. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t none Return status variable | | | | INPUTS: | | Mutex struct Input data structure | | | | | | OUTPUTS: | | | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ =============================================== | | 08/21/01 A.Muslimov Original development. | | 08/27/01 A.Muslimov Added appropriate error handlings. | | | | END_PROLOG | ----------------------------------------------------------------------------*/ herr_t HE5_TSmutexlock(HE5_HDFE_MutexStruct *Mutex) { herr_t status = SUCCEED; #ifdef _HDFEOS5_THREADSAFE char errbuf[HE5_HDFE_ERRBUFSIZE]; #ifdef _HDFEOS5_THREADSAFE_DEBUG time_t lockTime; #endif status = FAIL; /* Initialize the mutex */ /* -------------------- */ HE5_FIRST_THREAD_INIT /* Check the initialization */ /* ------------------------ */ if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Failed to initialize the mutex.\n"); H5Epush(__FILE__, "HE5_TSmutexlock", __LINE__, H5E_FUNC, H5E_BADVALUE, errbuf); return(status); } #ifdef _HDFEOS5_THREADSAFE_DEBUG time(&lockTime); printf("Attempt to lock mutex ... Time = %lf \n", (double)lockTime); #endif /* Lock the mutex */ /* -------------- */ status = pthread_mutex_lock(&Mutex->Lock); if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Failed to lock the mutex.\n"); H5Epush(__FILE__, "HE5_TSmutexlock", __LINE__, H5E_FUNC, H5E_BADVALUE, errbuf); return(status); } /* Find out if the mutex is locked and who owns the lock */ /* ----------------------------------------------------- */ if (Mutex->MasterThread && pthread_equal(pthread_self(), *Mutex->MasterThread)){ /* already owned by self -- increment count */ /* ---------------------------------------- */ Mutex->LockCount++; } else if (!Mutex->MasterThread) { /* No one else has locked it -- set owner and get lock */ /* --------------------------------------------------- */ Mutex->MasterThread = (pthread_t *)malloc(sizeof(pthread_t)); if (Mutex->MasterThread == (pthread_t *)NULL) { status = FAIL; sprintf(errbuf, "Cannot allocate memory for master thread ID.\n"); H5Epush(__FILE__, "HE5_TSmutexlock", __LINE__, H5E_RESOURCE, H5E_BADRANGE, errbuf); return(status); } *Mutex->MasterThread = pthread_self(); Mutex->LockCount = 1; } else { /* if already locked by someone else */ /* --------------------------------- */ for (;;) { status = pthread_cond_wait(&Mutex->CondVar, &Mutex->Lock); if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Failed to block the thread on condition variable.\n"); H5Epush(__FILE__, "HE5_TSmutexlock", __LINE__, H5E_FUNC, H5E_BADVALUE, errbuf); return(status); } if (!Mutex->MasterThread) { Mutex->MasterThread = (pthread_t *)malloc(sizeof(pthread_t)); if (Mutex->MasterThread == (pthread_t *)NULL) { status = FAIL; sprintf(errbuf, "Cannot allocate memory for master thread ID.\n"); H5Epush(__FILE__, "HE5_TSmutexlock", __LINE__, H5E_RESOURCE, H5E_BADRANGE, errbuf); return(status); } #ifdef _HDFEOS5_THREADSAFE_DEBUG time(&lockTime); printf("Locking mutex ... Time = %lf \n", (double)lockTime); #endif *Mutex->MasterThread = pthread_self(); Mutex->LockCount = 1; break; } } } /* Unlock the mutex */ /* ---------------- */ status = pthread_mutex_unlock(&Mutex->Lock); if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Failed to unlock the mutex.\n"); H5Epush(__FILE__, "HE5_TSmutexlock", __LINE__, H5E_FUNC, H5E_BADVALUE, errbuf); } #ifdef _HDFEOS5_THREADSAFE_DEBUG time(&lockTime); printf("Locking mutex ... Time = %lf \n", (double)lockTime); #endif #endif return(status); } /*---------------------------------------------------------------------------- | BEGIN_PROLOG | | | | FUNCTION: HE5_TSmutexunlock | | | | DESCRIPTION : This function unlocks the mutex. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t Return status variable | | | | INPUTS: | | Mutex struct data structure | | | | | | OUTPUTS: | | | | None | | | | NOTES: | | | | Date Programmer Description | | ======== ============ =============================================== | | 08/21/01 A.Muslimov Original development. | | 08/27/01 A.Muslimov Added appropriate error handlings. | | | | END_PROLOG | ----------------------------------------------------------------------------*/ herr_t HE5_TSmutexunlock(HE5_HDFE_MutexStruct *Mutex) { herr_t status = SUCCEED; #ifdef _HDFEOS5_THREADSAFE char errbuf[HE5_HDFE_ERRBUFSIZE]; #ifdef _HDFEOS5_THREADSAFE_DEBUG time_t unlockTime; #endif status = FAIL; /* Lock the mutex */ /* -------------- */ status = pthread_mutex_lock(&Mutex->Lock); if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Failed to unlock the mutex.\n"); H5Epush(__FILE__, "HE5_TSmutexunlock", __LINE__, H5E_FUNC, H5E_BADVALUE, errbuf); return(status); } Mutex->LockCount--; if (Mutex->LockCount == 0) { free(Mutex->MasterThread); Mutex->MasterThread = NULL; status = pthread_cond_signal(&Mutex->CondVar); if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Failed to unblock the thread blocked on a condition variable.\n"); H5Epush(__FILE__, "HE5_TSmutexunlock", __LINE__, H5E_FUNC, H5E_BADVALUE, errbuf); return(status); } } /* Unlock the mutex */ /* ---------------- */ status = pthread_mutex_unlock(&Mutex->Lock); if (status != SUCCEED) { status = FAIL; sprintf(errbuf, "Failed to unlock the mutex.\n"); H5Epush(__FILE__, "HE5_TSmutexunlock", __LINE__, H5E_FUNC, H5E_BADVALUE, errbuf); } #ifdef _HDFEOS5_THREADSAFE_DEBUG time(&unlockTime); printf("Unlocking mutex ... Time = %lf \n", (double)unlockTime); #endif #endif return(status); } hdf-eos5-5.1.14+dfsg.1/src/Makefile0000755000175000017500000000465312024715435017671 0ustar amckinstryamckinstry# Copyright (C) 1996 Hughes and Applied Research Corporation # # Permission to use, modify, and distribute this software and its # documentation for any purpose without fee is hereby granted, provided that # the above copyright notice appear in all copies and that both that copyright # notice and this permission notice appear in supporting documentation. # # Makefile # # Makefile for field build of HDFEOS # # The following environment variables must be defined: # # Flags: # AR library archiving program and flags (e.g.: ar -r) # CC C language compiler (e.g.: cc) # CFHFLAGS C compiler flags and cfortran.h switches # (e.g.: -Xa -O -DsunFortan) # RANLIB ranlib program (e.g. ranlib) # # Directories: # HDFEOS5_INC HDF-EOS include directory ($HDFEOS5_HOME/include) # HDFEOS5_LIB HDF-EOS library directory ($HDFEOS5_HOME/lib/$BRAND) # HDFEOS5_OBJ HDF-EOS object directory ($HDFEOS5_HOME/obj/$BRAND) # force make program to use bourne shell SHELL=/bin/sh # define remove utility RM = rm -f AR = ar -r # define C preprocessor symbols DFLAGS = -D$(HDFSYS) -DHDFVIEWPLUGIN # location of include files need to compile source code IFLAGS = -I. -I$(HDFEOS5_INC) -I$(HDF5INC) # object files needed to build library LIBOFILES = \ $(HDFEOS5_OBJ)/EHapi.o \ $(HDFEOS5_OBJ)/TSapi.o \ $(HDFEOS5_OBJ)/PTapi.o \ $(HDFEOS5_OBJ)/GDapi.o \ $(HDFEOS5_OBJ)/SWapi.o \ $(HDFEOS5_OBJ)/ZAapi.o # default target, this just builds the hdfeos5 library all: @if [ "$(BRAND)" = "sun4" ] ; then \ $(MAKE) $(MFLAGS) $(HDFEOS5_LIB)/libhe5_hdfeos.a ranlib; \ else \ $(MAKE) $(MFLAGS) $(HDFEOS5_LIB)/libhe5_hdfeos.a; \ fi $(HDFEOS5_LIB)/libhe5_hdfeos.a: $(LIBOFILES) $(AR) $@ $? ranlib: $(RANLIB) $(HDFEOS5_LIB)/libhe5_hdfeos.a install: @echo "no binaries to move" @echo "don't worry" clean: $(RM) *.o $(HDFEOS5_OBJ)/*.o $(HDFEOS5_OBJ)/EHapi.o : EHapi.c $(CC) $(CFHFLAGS) $(DFLAGS) $(IFLAGS) -c $? -o $@ $(HDFEOS5_OBJ)/TSapi.o : TSapi.c $(CC) $(CFHFLAGS) $(DFLAGS) $(IFLAGS) -c $? -o $@ $(HDFEOS5_OBJ)/PTapi.o : PTapi.c $(CC) $(CFHFLAGS) $(DFLAGS) $(IFLAGS) -c $? -o $@ $(HDFEOS5_OBJ)/SWapi.o : SWapi.c $(CC) $(CFHFLAGS) $(DFLAGS) $(IFLAGS) -c $? -o $@ $(HDFEOS5_OBJ)/GDapi.o : GDapi.c $(CC) $(CFHFLAGS) $(DFLAGS) $(IFLAGS) -c $? -o $@ $(HDFEOS5_OBJ)/ZAapi.o : ZAapi.c $(CC) $(CFHFLAGS) $(DFLAGS) $(IFLAGS) -c $? -o $@ .c.o: $(MAKE) $(MFLAGS) $(HDFEOS5_OBJ)/$@ hdf-eos5-5.1.14+dfsg.1/src/PTapi.c0000755000175000017500000205622612024715435017417 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | | | | Permission to use, modify, and distribute this software and its | | documentation for any purpose without fee is hereby granted, provided | | that the above copyright notice appear in all copies and that both that | | copyright notice and this permission notice appear in supporting | | documentation. | ---------------------------------------------------------------------------- */ #include /*#define HE5_PTIDOFFSET 1342177282*/ /* (2**27)*10+2 */ /*modified HE5_PTIDOFFSET to the same value as HE5_GRIDOFFSET, HE5_SWIDOFFSET, HE5_ZAIDOFFSET, i.e. 671088642, for HDF-EOS5 version 2.11 */ #define HE5_PTIDOFFSET 671088642 /* (2**26)*10 + 2 */ #define HE5_NPOINT 64 #define HE5_NPOINTREGN 256 #define HE5_NRECS 1 struct HE5_pointStructure { int active; /* Flag: if file is active or not */ hid_t fid; /* HDF-EOS file ID */ hid_t pt_id; /* Specified Point group ID */ hid_t data_id; /* "Data" group ID */ hid_t link_id; /* "Linkage" group ID */ HE5_DTSinfo level[HE5_DTSETRANKMAX]; /* Level ID and name */ char ptname[HE5_OBJNAMELENMAX]; /* Point name */ }; struct HE5_pointStructure HE5_PTXPoint[HE5_NPOINT]; typedef struct { HE5_DTSinfo level[HE5_DTSETRANKMAX]; int nlevels; } pack; typedef struct { LONGLONG back; } bckptr; typedef struct { LONGLONG begin; LONGLONG extent; } fwdptr; struct HE5_pointRegion { hid_t fid; hid_t pointID; hsize_t nrec[HE5_DTSETRANKMAX]; hssize_t *recPtr[HE5_DTSETRANKMAX]; }; struct HE5_pointRegion *HE5_PTXRegion[HE5_NPOINTREGN]; /* Point Prototypes (internal routines) */ static herr_t HE5_PTchkptid(hid_t pointID, const char *routname, hid_t *fid, hid_t *gid, long *idx); static herr_t HE5_PTfexist(hid_t dataID, const char *fldname, size_t *size, int *rank, size_t dims[], hid_t *dtype ); herr_t HE5_PTlinkinfo(hid_t, hid_t, int level, char *mode, char *linkfield); static herr_t HE5_PTwrbckptr(hid_t pointID, int level); static herr_t HE5_PTrdbckptr(hid_t pointID, int level, void *buffer) ; static herr_t HE5_PTwrfwdptr(hid_t pointID, int level); static herr_t HE5_PTrdfwdptr(hid_t pointID, int level, void *buffer); static herr_t HE5_PTwritesetup(hid_t pointID, int level, hssize_t *nrec); static hid_t HE5_PTrecnum(hid_t pointID, int level, int minlevel, int maxlevel, hsize_t nrec, hssize_t recs[]); hid_t HE5_PTopenlevel(hid_t loc_id, const char *name, void *opdata); int HE5_PTgetdtypesize(hid_t levelID, int i); herr_t HE5_PTgetlevelname_fromSM(hid_t pointID, int level, char *LevelName); /* FORTRAN wrappers */ /* ================ */ /* File/Point access routine */ int HE5_PTopenF(char *filename, uintn Flags); int HE5_PTcreateF(int FileID, char *pointname); int HE5_PTattachF(int FileID, char *pointname); int HE5_PTdetachF(int pointID); int HE5_PTcloseF(int FileID); /* Definition routines */ int HE5_PTdeflevelF(int pointID, const char *levelname, int rank[], char *fieldlist, long *dim_sizes, int dtype[], int array[]); int HE5_PTdeflinkageF(int pointID, char *parent, char *child, char *linkfield); /* I/O routines */ int HE5_PTreadlevelF(int pointID, int level, char *fieldname, int ntype, void *datbuf); int HE5_PTupdatelevelF(int pointID, int level, char *fieldlist, long nrec, long recs[], int ntype, void *data); int HE5_PTwritelevelF(int pointID, int level, long count[], char *fieldname, int ntype, void *data); int HE5_PTwriteattrF(int pointID, const char *attrname, int ntype, long fortcount[], void *datbuf); int HE5_PTwritegrpattrF(int pointID, const char *attrname, int ntype, long fortcount[], void * datbuf); int HE5_PTwritelocattrF(int pointID, const char *levelname, const char *attrname, int ntype, long count[],void * datbuf); int HE5_PTreadattrF(int pointID, const char *attrname, void *datbuf); int HE5_PTreadgrpattrF(int pointID, const char *attrname, void *datbuf); int HE5_PTreadlocattrF(int pointID, const char *levelname, const char *attrname, void *datbuf); int HE5_PTwrbckptrF(int pointID, int level); int HE5_PTwrfwdptrF(int pointID, int level); /* Inquiry routines */ int HE5_PTnrecsF(int pointID, int level); int HE5_PTnlevelsF(hid_t pointID); int HE5_PTnfieldsF(int pointID, int level, char *fieldlist, long *strbufsize); int HE5_PTlevelindxF(int pointID, const char *levelname); int HE5_PTgetlevelnameF(int pointID, int level, char *levelname, long *strbufsize); int HE5_PTbcklinkinfoF(int pointID, int level, char *linkfield); int HE5_PTfwdlinkinfoF(int pointID, int level, char *linkfield); int HE5_PTlevelinfoF(int pointID, int level, char *levelname, int rank[], char *fieldlist, long *dim_sizes, long *datasize, long offset[], int dtype[]); int HE5_PTinqdatatypeF(int pointID, char *fieldname, char *attrname, int fieldgroup, int *Type, int *Class, int *Order, long *size); int HE5_PTinqpointF(const char *filename, char *pointlist, long *strbufsize); int HE5_PTattrinfoF(int pointID, const char *attrname, int *numbertype, long *fortcount); int HE5_PTgrpattrinfoF(int pointID, const char *attrname, int *numbertype, long *fortcount); int HE5_PTlocattrinfoF(int pointID, const char *levelname, const char *attrname, int *numbertype, long *fortcount); long HE5_PTinqattrsF(int pointID, char *attrnames, long *strbufsize); long HE5_PTinqgrpattrsF(int pointID, char *attrnames, long *strbufsize); long HE5_PTinqlocattrsF(int pointID, const char *levelname, char *attrnames, long *strbufsize); int HE5_PTnumtypeinfoF(int pointID, int level, int numtype[]); /* Fortran Wrapper Utility Routines */ static int HE5_PTfort2c(long dims[], int rank, int datatype, void *inputfortbuf, void *outputfortbuf); static int HE5_PTc2fort(long dims[], int rank, int datatype, void *inputfortbuf, void *outputfortbuf); /* Fortran Wrappers (internal routines) */ static int HE5_PTgetfort_order(long *dims, int dim_index, long *c_index, int rank, long *P, long *coeffs, long *n); static herr_t HE5_PTreadlevel_f(hid_t pointID, int level, char *fieldname, hid_t dtype, void *datbuf); static herr_t HE5_PTwritelevel_f(hid_t pointID, int level, hsize_t count[], char *fieldname, int ntype, hid_t dtype, void *data); static herr_t HE5_PTupdatelevel_f(hid_t pointID, int level, char *fieldlist, hsize_t nrec, hssize_t recs[], int ntype, hid_t dtype, void *data); /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTopen | | | | DESCRIPTION: Opens an HDF file and returns file ID. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | fid hid_t HDF-EOS file ID | | | | INPUTS: | | filename char Point Filename | | flags uintn Access Code | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.20.99 A. Muslimov | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_PTopen(const char *filename, uintn flags) { hid_t fid = FAIL;/* HDF-EOS file ID */ /* Call HE5_EHopen to open file */ /* ---------------------------- */ fid = HE5_EHopen(filename,flags, H5P_DEFAULT ); return (fid); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTcreate | | | | DESCRIPTION: Creates a new point structure and returns point ID. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | pointID hid_t Point structure ID | | | | INPUTS: | | fid hid_t HDF-EOS File ID | | pointname char Point structure name | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | =========== ============ ============================================ | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | 12/13/99 A.Muslimov Added proper error handlings after the function| | calls. Replace a call EHattrcat() by | | EHdatasetcat(). | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_PTcreate(hid_t fid, const char *pointname) { hid_t pointID = FAIL;/* HDF-EOS point ID (return value) */ herr_t status = FAIL;/* routine return status variable */ int i, j; /* Loop indices */ int npointopen = 0; /* # of point structures open */ int rank = 1; /* rank of a data space */ uintn access = 99; /* Read/Write file access code */ unsigned int zerobuf[HE5_DTSETRANKMAX];/* "Level Written" buffer */ hid_t HDFfid = FAIL;/* HDF file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ hid_t pt_id = FAIL;/* HDF5 object point ID */ hid_t data_id = FAIL;/* Data group ID */ hid_t link_id = FAIL;/* Linkage group ID */ hid_t lvwr_id = FAIL;/* "LevelWritten" ID */ hid_t sid = FAIL;/* Data space ID */ hid_t POINTS_ID = FAIL;/* "POINTS" group ID */ long nPoint = 0; /* Point counter */ hsize_t count = HE5_DTSETRANKMAX; char errbuf[HE5_HDFE_ERRBUFSIZE]; /* error message buffer */ char utlbuf[HE5_HDFE_UTLBUFSIZE]; /* Utility buffer */ char utlbuf2[HE5_HDFE_UTLBUFSIZE];/* Utility buffer 2 */ HE5_LOCK; CHECKNAME(pointname); for (i = 0; i < HE5_DTSETRANKMAX; i++) zerobuf[ i ] = 0; /* Check HDF-EOS file ID */ /* --------------------- */ status = HE5_EHchkfid(fid, pointname, &HDFfid, &gid, &access); if (status == FAIL) { sprintf(errbuf, "Checking file ID failed.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Check pointname for length */ /* -------------------------- */ if ( strlen(pointname) > HE5_OBJNAMELENMAX) { sprintf(errbuf, "Pointname \"%s\" must be less than %d characters.\n", pointname, HE5_OBJNAMELENMAX); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Determine number of points currently opened */ /* ------------------------------------------- */ for (i = 0; i < HE5_NPOINT; i++) npointopen += HE5_PTXPoint[i].active; if(npointopen < HE5_NPOINT) { /* Probe , check if "POINTS" group exist*/ H5E_BEGIN_TRY { POINTS_ID = H5Gopen(gid, "POINTS"); } H5E_END_TRY; /* Group "POINTS" not exist*/ if(POINTS_ID == FAIL) { nPoint = 0; /* create the POINTS group*/ POINTS_ID = H5Gcreate(gid,"POINTS",0); if (POINTS_ID == FAIL) { sprintf(errbuf, "Cannot create \"POINTS\" group.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Group "POINTS" exist */ else { /* Probe , check if pointname group exist*/ H5E_BEGIN_TRY{ pt_id = H5Gopen(POINTS_ID, pointname); } H5E_END_TRY; if( pt_id == FAIL) { /* Get the number of points in "POINTS" group*/ nPoint= HE5_EHdatasetcat(fid, "/HDFEOS/POINTS", NULL,NULL); if (nPoint == FAIL) { sprintf(errbuf,"Cannot retrieve the number of points."); H5Epush(__FILE__, "HE5_PTcreate",__LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(POINTS_ID); free(errbuf); return(FAIL); } } else { sprintf(errbuf, "Point \"%s\" already exists.", pointname); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_BTREE, H5E_EXISTS, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = H5Gclose(POINTS_ID); return(FAIL); } } /* pointname not exist, will create it! */ /* Create pointname group under "POINTS"*/ pt_id = H5Gcreate( POINTS_ID, pointname , 0); if (pt_id == FAIL) { sprintf(errbuf, "Cannot create \"%s\" group.\n", pointname); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create LevelWritten attribute */ sid = H5Screate_simple(rank, &count, 0); if (sid == FAIL) { sprintf(errbuf, "Cannot create data space ID.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } lvwr_id = H5Acreate(pt_id, "_LevelWritten", H5T_NATIVE_UINT, sid, H5P_DEFAULT); if (lvwr_id == FAIL) { sprintf(errbuf, "Cannot create \"_LevelWritten\" attribute.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Write "LevelWriten" attribute*/ status = H5Awrite(lvwr_id, H5T_NATIVE_UINT, zerobuf); if (status == FAIL) { sprintf(errbuf, "Cannot wtrite data to the \"_LevelWritten\" attribute.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Sclose(sid); if (status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Aclose(lvwr_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the \"_LevelWritten\" attribute ID.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ATTR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create Data Records group */ data_id = H5Gcreate( pt_id, "Data", 0); if (data_id == FAIL) { sprintf(errbuf, "Cannot create \"Data\" group.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create Linkage Records group */ link_id = H5Gcreate( pt_id, "Linkage", 0); if (link_id == FAIL) { sprintf(errbuf, "Cannot create \"Linkage\" group.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Establish Point in Structural MetaData Block */ sprintf(utlbuf, "%s%li%s%s%s","\tGROUP=POINT_", nPoint + 1,"\n\t\tPointName=\"", pointname, "\"\n"); strcat(utlbuf, "\t\tGROUP=Level\n"); strcat(utlbuf, "\t\tEND_GROUP=Level\n"); strcat(utlbuf, "\t\tGROUP=LevelLink\n"); strcat(utlbuf, "\t\tEND_GROUP=LevelLink\n"); sprintf(utlbuf2, "%s%li%s","\tEND_GROUP=POINT_", nPoint + 1, "\n"); strcat(utlbuf, utlbuf2); status = HE5_EHinsertmeta(fid, pointname, "p", 1003L, utlbuf, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot insert metadata for the \"%s\" point.\n", pointname); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Gclose(POINTS_ID); if (status == FAIL) { sprintf(errbuf, "Cannot release the \"POINTS\" group ID.\n"); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Assign pointID # & Load point and PTXPoint table entries */ for (i = 0; i < HE5_NPOINT; i++) { if (HE5_PTXPoint[ i ].active == 0) { pointID = i + HE5_PTIDOFFSET; HE5_PTXPoint[i].active = 1; HE5_PTXPoint[i].fid = fid; HE5_PTXPoint[i].pt_id = pt_id; HE5_PTXPoint[i].link_id = link_id; HE5_PTXPoint[i].data_id = data_id; strcpy(HE5_PTXPoint[ i ].ptname, pointname); for(j = 0; j < HE5_DTSETRANKMAX; j++) { HE5_PTXPoint[ i ].level[j].ID = FAIL; HE5_PTXPoint[ i ].level[j].name = NULL; } break; } } } else { /* Too many files opened */ pointID = FAIL; sprintf(errbuf, "\nNo more than %d points may be open simutaneously", HE5_NPOINT); H5Epush(__FILE__, "HE5_PTcreate", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } COMPLETION: HE5_UNLOCK; return (pointID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTchkptid | | | | DESCRIPTION: Checks for valid pointID and returns file ID, group ID, | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | routname char Name of routine calling PTchkptid | | | | OUTPUTS: | | fid hid_t File ID | | gid hid_t group ID | | idx long Point index | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_PTchkptid(hid_t pointID, const char *routname, hid_t *fid, hid_t *gid, long *idx) { herr_t status = SUCCEED;/* routine return status variable */ hid_t HDFfid = FAIL; /* HDF-EOS file ID */ hid_t idOffset = HE5_PTIDOFFSET;/* Point ID offset */ uintn access = 77; /* Read/Write access code */ char message1[] = "Invalid point ID: %d in routine \"%s\". ID must be >= %li and < %li.\n"; char message2[] = "Point ID %d in routine \"%s\" not active.\n"; char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ /* Check for valid point ID */ /* ------------------------ */ if (pointID < idOffset || pointID >= (HE5_NPOINT + idOffset) ) { status = FAIL; sprintf(errbuf, message1, pointID, routname, idOffset, (long)(HE5_NPOINT + idOffset) ); H5Epush(__FILE__, "HE5_PTchkptid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* Check for active point ID */ /* ------------------------- */ if (HE5_PTXPoint[pointID % idOffset].active == 0) { status = FAIL; sprintf(errbuf, message2, pointID, routname); H5Epush(__FILE__, "HE5_PTchkptid", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else { /* Get file and Point key */ /* ----------------------- */ *idx = (long)(pointID % idOffset); /* Get HDF-EOS file & "HDFEOS" group IDs */ /* -------------------------------------- */ *fid = HE5_PTXPoint[*idx].fid; status = HE5_EHchkfid(*fid,"", &HDFfid, gid, &access); } } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTattach | | | | DESCRIPTION: Attaches to an existing point data set. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | pointID hid_t point structure ID | | | | INPUTS: | | fid hid_t HDF-EOS file ID | | pointname char point structure name | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 2/24/00 A.Muslimov Added error checkings and made cleanings. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | 02/01/06 Abe Taaheri Added getting level names from Structure Metadata | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hid_t HE5_PTattach(hid_t fid, const char *pointname) { hid_t pointID = FAIL; /* Point ID (return value) */ hid_t idOffset = HE5_PTIDOFFSET;/* Point ID offset */ hid_t HDFfid = FAIL; /* HDF file ID */ hid_t gid = FAIL; /* "POINTS" group ID */ hid_t data_id = FAIL; /* "Data" group ID */ hid_t link_id = FAIL; /* "Linkage" group ID */ hid_t pt_id = FAIL; /* Point group ID */ hid_t i,j; /* Loop index */ hid_t emptyslot = FAIL; /* Spare Point index */ int npointopen = 0; /* # of point structures opened */ int nlevels = 0; /* Number of levels in point */ int idx = FAIL;/* Return iteration index */ herr_t status = FAIL;/* routine return status variable */ uintn acs = 77; /* Access code */ pack tmpdata; /* Temporary pack structure */ char *grpname = (char *)NULL;/* group name */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ char LevelName[HE5_HDFE_UTLBUFSIZE]; char tempname[HE5_HDFE_UTLBUFSIZE]; hid_t tempid; HE5_LOCK; CHECKPOINTER(pointname); /* Check HDF-EOS file ID, get back HDF file ID and access code */ /* ----------------------------------------------------------- */ status = HE5_EHchkfid(fid, pointname, &HDFfid, &gid, &acs); if (status == SUCCEED) { /* Determine number of points currently opened */ /* ------------------------------------------- */ for (i = 0; i < HE5_NPOINT; i++) npointopen += HE5_PTXPoint[i].active; if (npointopen < HE5_NPOINT) { grpname = (char *)calloc( (strlen(pointname)+40), sizeof(char)); if( grpname == NULL ) { sprintf(errbuf, "Cannot allocate memory.\n"); H5Epush(__FILE__, "HE5_PTattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } strcpy( grpname, "/HDFEOS/POINTS/"); strcat( grpname, pointname); /* Try to open the Point group */ /* =========================== */ H5E_BEGIN_TRY{ pt_id = H5Gopen( HDFfid, grpname ); } H5E_END_TRY; if( pt_id == FAIL ) { sprintf(errbuf, "Point:\"%s\" does not exist within HDF-EOS file.\n",pointname) ; H5Epush(__FILE__, "HE5_PTattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Attach to "Data" group */ /* ---------------------- */ data_id = H5Gopen( pt_id, "Data"); if( data_id == FAIL ) { sprintf(errbuf, "Cannot open the \"Data\" group in \"%s\" Point", pointname) ; H5Epush(__FILE__, "HE5_PTattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Attach to "Linkage" group */ /* ------------------------- */ link_id = H5Gopen( pt_id, "Linkage"); if( link_id == FAIL ) { sprintf(errbuf, "Cannot open the \"Linkage\" group in \"%s\" Point", pointname) ; H5Epush(__FILE__, "HE5_PTattach", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } /* Setup External Arrays */ /* ---------------------- */ for (i = 0; i < HE5_NPOINT; i++) { /* Find empty entry in array */ /* ------------------------- */ if (HE5_PTXPoint[i].active == 0) { pointID = i + idOffset; HE5_PTXPoint[ i ].active = 1; HE5_PTXPoint[ i ].fid = fid; HE5_PTXPoint[ i ].pt_id = pt_id; HE5_PTXPoint[ i ].data_id = data_id; HE5_PTXPoint[ i ].link_id = link_id; strcpy(HE5_PTXPoint[ i ].ptname, pointname); break; } } emptyslot = i; /* Initialize the members of external arrays */ /* ========================================= */ for( i = 0; i < HE5_DTSETRANKMAX; i++ ) { HE5_PTXPoint[ emptyslot ].level[ i ].ID = FAIL; HE5_PTXPoint[ emptyslot ].level[ i ].name = NULL; tmpdata.level[ i ].name = NULL; tmpdata.level[ i ].ID = FAIL; } tmpdata.nlevels = 0; /* ---------------------------------------------------- */ /* Loop throuhgh the group "/HDFEOS/POINTS/../Data" to */ /* get the number of levels and level name list */ /* ---------------------------------------------------- */ strcat(grpname,"/Data"); idx = H5Giterate(data_id, grpname , NULL, HE5_PTopenlevel, &tmpdata); if ( idx == FAIL ) { sprintf(errbuf, "Iteration of \"HE5_EHobj_info()\" operation failed.") ; H5Epush(__FILE__, "HE5_PTattach", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(grpname); return(FAIL); } free( grpname ); nlevels = tmpdata.nlevels; /* sort levels using structure metadata to set from 0 to nlevels */ /* ==================================== */ for(i=0; i < nlevels; i++ ) { status = HE5_PTgetlevelname_fromSM(pointID, i, LevelName); if ( status == FAIL ) { sprintf(errbuf, "Failed to get LevelName for the Level_%d.",i) ; H5Epush(__FILE__, "HE5_PTattach", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Remove double quotes */ /* -------------------- */ memmove(LevelName, LevelName + 1, strlen(LevelName) - 2); LevelName[strlen(LevelName) - 2] = 0; /* replace if needed for sorting */ /* ------------------------------*/ for(j=i; j < nlevels; j++) { if(strcmp(tmpdata.level[j].name,LevelName) == 0) { strcpy(tempname, tmpdata.level[i].name); tempid = tmpdata.level[ i ].ID; strcpy(tmpdata.level[i].name, tmpdata.level[j].name); tmpdata.level[ i ].ID = tmpdata.level[ j ].ID; strcpy(tmpdata.level[j].name, tempname); tmpdata.level[ j ].ID = tempid; break; } } } /* Set the data for the PTXPoint array */ /* ==================================== */ for( i = 0; i < nlevels; i++ ) { HE5_PTXPoint[ emptyslot ].level[ i ].name = (char *)calloc( (strlen(tmpdata.level[i].name)+1), sizeof(char)); if ( HE5_PTXPoint[ emptyslot ].level[ i ].name == NULL ) { sprintf(errbuf, "Cannot allocate memory for the name.") ; H5Epush(__FILE__, "HE5_PTattach", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if ( tmpdata.level[ i ].name != NULL ) free(tmpdata.level[ i ].name); return(FAIL); } strcpy(HE5_PTXPoint[ emptyslot ].level[ i ].name, tmpdata.level[ i ].name); if ( tmpdata.level[ i ].name != NULL ) free(tmpdata.level[ i ].name); HE5_PTXPoint[ emptyslot ].level[ i ].ID = tmpdata.level[ i ].ID; } } else { /* Too many Points opened */ /* --------------------- */ pointID = FAIL; sprintf(errbuf,"No more than %d points may be open simutaneously", HE5_NPOINT); H5Epush(__FILE__, "HE5_PTattach", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } COMPLETION: HE5_UNLOCK; return(pointID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTdetach | | | | DESCRIPTION: Releases a point data set and frees memory. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t None point structure ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/26/99 A. Muslimov Changed the type of fid from int32_t to hid_t. | | Feb,2000 A.Muslimov Fixed bug-prone release of IDs. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTdetach(hid_t pointID) { herr_t status = FAIL;/* routine return status variable */ int j, k; /* Loop indices */ int nlevels = 0; /* Number of levels in point */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ long idx = FAIL;/* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ HE5_LOCK; /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTdetach", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTdetach", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if(nlevels == FAIL) { sprintf(errbuf, "Cannot retrieve the number of levels. \n"); H5Epush(__FILE__, "HE5_PTdetach", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* close Point level datasets */ /* -------------------------- */ for (j = 0; j < nlevels; j++) { if ( HE5_PTXPoint[ idx ].level[ j ].ID > 0 ) { status = H5Dclose(HE5_PTXPoint[ idx ].level[ j ].ID); if(status == FAIL) { sprintf(errbuf, "Cannot release the level dataset ID\n"); H5Epush(__FILE__, "HE5_PTdetach", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } } /* close Point "Data" group */ /* -------------------------- */ if ( HE5_PTXPoint[ idx ].data_id > 0 ) { status = H5Gclose(HE5_PTXPoint[ idx ].data_id); if(status == FAIL) { sprintf(errbuf, "Cannot release the group \"Data\" group ID \n"); H5Epush(__FILE__, "HE5_PTdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* close Point "Linkage" group */ /* --------------------------- */ if ( HE5_PTXPoint[idx].link_id > 0 ) { status = H5Gclose(HE5_PTXPoint[ idx ].link_id); if(status == FAIL) { sprintf(errbuf, "Cannot release the group \"Linkage\" group ID\n"); H5Epush(__FILE__, "HE5_PTdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* close the Point group */ /* --------------------- */ if ( HE5_PTXPoint[ idx ].pt_id > 0 ) { status = H5Gclose(HE5_PTXPoint[ idx ].pt_id); if(status == FAIL) { sprintf(errbuf, "Cannot release the Point group ID\n"); H5Epush(__FILE__, "HE5_PTdetach", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Clear entries from external arrays */ /* ---------------------------------- */ HE5_PTXPoint[ idx ].active = 0; HE5_PTXPoint[ idx ].fid = FAIL; HE5_PTXPoint[ idx ].data_id = FAIL; HE5_PTXPoint[ idx ].link_id = FAIL; HE5_PTXPoint[ idx ].pt_id = FAIL; for (j = 0; j < nlevels; j++) { HE5_PTXPoint[ idx ].level[ j ].ID = FAIL; if ( HE5_PTXPoint[ idx ].level[ j ].name != NULL ) free(HE5_PTXPoint[ idx ].level[ j ].name); } /* Free Region Pointers */ /* -------------------- */ for (k = 0; k < HE5_NPOINTREGN; k++) { if (HE5_PTXRegion[ k ] != NULL && HE5_PTXRegion[ k ]->pointID == pointID) { for (j = 0; j < HE5_DTSETRANKMAX; j++) { if (HE5_PTXRegion[ k ]->recPtr[ j ] != NULL) { free(HE5_PTXRegion[ k ]->recPtr[ j ]); } } free(HE5_PTXRegion[ k ]); HE5_PTXRegion[ k ] = NULL; } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTclose | | | | DESCRIPTION: Closes HDF-EOS file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | fid hid_t None File ID | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7/20/99 A.Muslimov | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTclose(hid_t fid) { herr_t status = FAIL;/* routine return status variable */ /* Call HE5_EHclose to perform file close */ /* -------------------------------------- */ status = HE5_EHclose(fid); return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTnrecs | | | | DESCRIPTION: Returns the number of records in a level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nrec hsize_t Number of records in level | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/13/99 A.Muslimov Added proper error handlings after the function| | calls. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ hsize_t HE5_PTnrecs(hid_t pointID, int level) { hsize_t nrec = 1; /* Number of records in level (return value) */ herr_t status = FAIL;/* routine return status variable */ int i; /* loop index */ int nlevels = 0; /* Number of levels in point */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "POINTS" group ID */ hid_t space = FAIL; /* data space ID */ hid_t ID = FAIL; /* Level dataset ID */ long idx = FAIL; /* Point Index */ unsigned int zerobuf[HE5_DTSETRANKMAX]; char errbuf[HE5_HDFE_ERRBUFSIZE]; /* error message buffer */ for (i = 0; i < HE5_DTSETRANKMAX; i++) zerobuf[ i ] = 0; /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTnrecs", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTnrecs", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if (nlevels == 0) { sprintf(errbuf, "No Levels Defined for point ID: %d\n", pointID); H5Epush(__FILE__, "HE5_PTnrecs", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } else if (nlevels <= level) { /* Report error if level # to large */ /* -------------------------------- */ sprintf(errbuf, "Only %d levels Defined for point ID: %d\n", nlevels, pointID); H5Epush(__FILE__, "HE5_PTnrecs", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } /* Get level dataset ID and number of records */ /* ------------------------------------------ */ ID = HE5_PTXPoint[idx].level[level].ID; space = H5Dget_space(ID); if (space == FAIL) { sprintf(errbuf, "Cannot get the data space ID.\n"); H5Epush(__FILE__, "HE5_PTnrecs", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } nrec = H5Sget_simple_extent_npoints(space); if (nrec == 0) { sprintf(errbuf, "Cannot get the number of records.\n"); H5Epush(__FILE__, "HE5_PTnrecs", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } status = H5Sclose(space); if (status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_PTnrecs", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } /* If nrec = 1 check whether actual data has been written */ /* ------------------------------------------------------ */ if (nrec == 1) { /* read "_LevelWritten" Attribute */ /* ------------------------------- */ status = HE5_PTreadattr(pointID,"_LevelWritten", zerobuf); if (status == FAIL) { sprintf(errbuf, "Cannot read the \"_LevelWritten\" attribute.\n"); H5Epush(__FILE__, "HE5_PTnrecs", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(0); } /* If level not yet written then reset nrec to 0 */ /* --------------------------------------------- */ if ( zerobuf[level] == 0) nrec = 0; } return(nrec); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTnlevels | | | | DESCRIPTION: Returns the number of levels in a point data set. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nlevels int Number of levels in point structure | | | | INPUTS: | | pointID hid_t point structure ID | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTnlevels(hid_t pointID) { int nlevels = FAIL; /* Number of levels in point (return value) */ herr_t status = SUCCEED;/* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "POINTS" group ID */ long idx = FAIL; /* Point index */ char *grpname = (char *)NULL;/* Group name string buffer */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTnlevels", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *) calloc( (strlen(HE5_PTXPoint[idx].ptname)+40),sizeof(char)); if( grpname == NULL) { H5Epush(__FILE__, "HE5_PTnlevels", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Can not allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Build the "grpname" string */ /* --------------------------- */ strcpy(grpname,"/HDFEOS/POINTS/"); strcat(grpname, HE5_PTXPoint[idx].ptname); strcat(grpname,"/Data"); /* Get number of levels (Number of entries) in Data group */ /* ------------------------------------------------------ */ nlevels = (int)HE5_EHdatasetcat(HE5_PTXPoint[idx].fid, grpname, NULL, NULL); free(grpname); } return(nlevels); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTfexist | | | | DESCRIPTION: Verify if field exist in a compound datatype and return | | the member data information | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | dataID hid_t Level dataset ID | | fldname char Field name | | | | OUTPUTS: | | size size_t Field data size (bytes) | | rank int Field rank | | dims[] size_t Array of field dimension sizes | | dtype hid_t Field data type ID | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Oct 00 A.Muslimov Changed the interface. | | Mar 01 A.Muslimov Updated to reflect introduction of ARRAY class. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static int HE5_PTfexist(hid_t dataID, const char *fldname, size_t *size, int *rank, size_t dims[], hid_t *dtype ) { int exist = FAIL; /* return flag value */ int i, j; /* loop indices */ herr_t status = FAIL; /* Return status variable */ hid_t typeID = FAIL; /* data type ID */ hsize_t dim_size[HE5_DTSETRANKMAX];/* array of dime. sizes */ HE5_CmpDTSinfo *info; /* Compound dataset info structure */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ CHECKPOINTER(fldname); /* Allocate memory for info structure */ /* ---------------------------------- */ info = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); if (info == (HE5_CmpDTSinfo *)NULL) { sprintf(errbuf, "Cannot allocate memory for info structure.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get level dataset type ID */ /* -------------------------- */ typeID = H5Dget_type(dataID); if (typeID == FAIL) { sprintf(errbuf, "Cannot get data type.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(info); return(FAIL); } /* Initialize dim_size[] array */ /* --------------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dim_size[i] = 0; /* Reset the flag */ /* -------------- */ exist = 0; /* get the number of members in compound datatype */ /* ---------------------------------------------- */ info->nfields = H5Tget_nmembers( typeID ); for( i = 0; i < info->nfields; i++ ) { /* Get member name */ /* --------------- */ info->fieldname[i] = H5Tget_member_name(typeID, i); if (info->fieldname[i] == NULL) { sprintf(errbuf, "Cannot get the field name.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (info != NULL) free(info); return(FAIL); } /* Loop through all fields */ /* ----------------------- */ if( strncmp(info->fieldname[i], fldname, strlen(fldname)) == 0 ) { exist = 1; /* Get field disk data type */ /* ------------------------ */ info->dtype[i] = H5Tget_member_type(typeID, i); if (info->dtype[i] == FAIL) { sprintf(errbuf, "Cannot get the field data type.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (info->fieldname[i] != NULL) free(info->fieldname[i]); if (info != NULL) free(info); return(FAIL); } /* Get field data type */ /* ------------------- */ if (dtype != NULL) *dtype = info->dtype[i]; /* Get field data size */ /* ------------------- */ if (size != NULL) { /* Get the field disk data size (in bytes) */ /* --------------------------------------- */ *size = H5Tget_size(info->dtype[i]); if (*size == 0) { sprintf(errbuf, "Cannot get the field size.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (info->fieldname[i] != NULL) free(info->fieldname[i]); if (info != NULL) free(info); return(FAIL); } } /* Get the field rank and dimension sizes */ /* -------------------------------------- */ if (rank != NULL && dims != NULL) { /* Get field data class */ /* -------------------- */ info->dclass[i] = H5Tget_class(info->dtype[i]); if (info->dclass[i] == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the field class.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (info->fieldname[i] != NULL) free(info->fieldname[i]); if (info != NULL) free(info); return(FAIL); } /* Get the rank and "array" flag */ /* ----------------------------- */ if (info->dclass[i] == H5T_ARRAY) { /* Get the field rank */ /* ------------------ */ *rank = H5Tget_array_ndims(info->dtype[i]); if (*rank == FAIL) { sprintf(errbuf, "Cannot get the field rank.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (info->fieldname[i] != NULL) free(info->fieldname[i]); if (info != NULL) free(info); return(FAIL); } /* Get the field dimension sizes */ /* ----------------------------- */ status = H5Tget_array_dims(info->dtype[i],dim_size, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot get the field dimension sizes.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (info->fieldname[i] != NULL) free(info->fieldname[i]); if (info != NULL) free(info); return(FAIL); } for (j = 0; j < *rank; j++) dims[j] = dim_size[j]; } else /* scalar */ { *rank = 1; dims[0] = 1; } } /* Release field type ID */ /* --------------------- */ status = H5Tclose(info->dtype[i]); if (status == FAIL) { sprintf(errbuf, "Cannot release data type ID.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (info->fieldname[i] != NULL) free(info->fieldname[i]); if (info != NULL) free(info); return(FAIL); } } /* Release pointers to the name buffers */ /* ------------------------------------ */ if (info->fieldname[i] != NULL) free(info->fieldname[i]); } if (info != NULL) free(info); /* Release ID */ /* ---------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release data type ID.\n"); H5Epush(__FILE__, "HE5_PTfexist", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } COMPLETION: return(exist); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTnfields | | | | DESCRIPTION: Returns number of fields defined in a level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nflds int Number of fields in a level | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | | | OUTPUTS: | | strbufsize long String length of fieldlist | | fieldlist char Coma separated list of fields | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | 12/16/99 A.Muslimov Added appropriate error handlings after the | | function calls. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTnfields(hid_t pointID, int level, char *fieldlist, long *strbufsize) { int nflds = FAIL;/* Number of fields in a list (return) */ int nlevels = 0; /* Number of levels in point */ int i; /* Loop index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t levelID = FAIL;/* Level dataset ID */ hid_t tid = FAIL;/* Data type ID */ long idx = FAIL;/* Point index */ size_t strsize = 0; /* String length */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ char *fldname = (char *)NULL; /* pointer to field name */ char *fldlist = (char *)NULL; /* pointer to field list */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTnfields", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if (nlevels == 0) { status = FAIL; sprintf(errbuf, "No Levels Defined for point ID: %d\n", pointID); H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } else if (nlevels <= level) { /* Report error if level # too large */ /* --------------------------------- */ status = FAIL; sprintf(errbuf, "Only %d levels Defined for point ID: %d\n", nlevels, pointID); H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get level dataset ID */ /* --------------------- */ levelID = HE5_PTXPoint[idx].level[level].ID; /* Get Compound dataset datatype ID */ /* -------------------------------- */ tid = H5Dget_type(levelID); if (tid == FAIL) { sprintf(errbuf, "Cannot get the compound data type ID. \n"); H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get number of fields( or number of members of compound type) */ /* ------------------------------------------------------------ */ nflds = H5Tget_nmembers(tid); if (nflds == FAIL) { sprintf(errbuf, "Cannot get the number of fields in compound data type. \n"); H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory */ /* --------------- */ fldname = (char *)calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char)); if( fldname == NULL) { H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory."); HE5_EHprint("Error: Cannot allocate memory, occured", __FILE__, __LINE__); return(FAIL); } /* Get field list, field list size */ /* ------------------------------- */ for( i = 0; i < nflds; i++ ) { fldname = H5Tget_member_name(tid, i); if (fldname == NULL ) { sprintf(errbuf, "Cannot get the compound data field name. \n"); H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fldname); return(FAIL); } strsize = strsize + strlen(fldname) + 1 ; if( i == 0 ) { fldlist = (char *) calloc( strsize, sizeof(char)); if( fldlist == NULL) { H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); nflds = FAIL; free(fldname); break; } strcpy(fldlist,fldname); } else { fldlist= (char *)realloc(fldlist, sizeof(char)* strsize); if( fldlist==NULL) { H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); free(fldname); nflds = FAIL; break; } strcat(fldlist,","); strcat(fldlist,fldname); } if (fldname != NULL) free(fldname); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(tid); if (status == FAIL ) { sprintf(errbuf, "Cannot release the compound data type ID. \n"); H5Epush(__FILE__, "HE5_PTnfields", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fldlist); return(status); } /* Return fieldlist string size */ /* ---------------------------- */ if ( strbufsize != NULL ) { *strbufsize = (long)strlen(fldlist); } /* Also return a coma separated list of fields */ /* ------------------------------------------- */ if(fieldlist != NULL) strcpy(fieldlist, fldlist); free(fldlist); return(nflds); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTgetlevelname | | | | DESCRIPTION: Returns level name | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | | | | | OUTPUTS: | | levelname char Level name | | strbufsize long String length of fieldlist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTgetlevelname(hid_t pointID, int level, char *levelname, long *strbufsize) { herr_t status = FAIL;/* routine return status variable */ int nlevels = 0; /* Number of levels in point */ hid_t fid = FAIL;/* HDF-EOS file id */ hid_t gid = FAIL;/* "POINTS" group ID */ long idx = FAIL;/* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTgetlevelname", &fid, &gid, &idx); if (status == SUCCEED) { /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if (nlevels == 0) { status = FAIL; sprintf(errbuf, "No Levels Defined for point ID: %d\n", pointID); H5Epush(__FILE__, "HE5_PTgetlevelname", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } else if (nlevels <= level) { /* Report error if level # to large */ /* -------------------------------- */ status = FAIL; sprintf(errbuf, "Only %d levels Defined for point ID: %d\n", nlevels, pointID); H5Epush(__FILE__, "HE5_PTgetlevelname", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } if (status == SUCCEED) { /* Get level name */ /* -------------- */ *strbufsize = (long)strlen(HE5_PTXPoint[ idx ].level[ level ].name); /* Return levelname if requested */ /* ----------------------------- */ if (levelname != NULL) strcpy(levelname,HE5_PTXPoint[ idx ].level[ level ].name) ; } } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTopenlevel | | | | DESCRIPTION: Returns level ID and name | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | | | OUTPUTS: | | | | NOTES: | | | | | | Date Programmer Description | | ======= ========== ============== | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTopenlevel(hid_t loc_id, const char *name, void *opdata) { int i = 0; pack *ptr; ptr = (pack *)opdata; if( name != NULL ) { i = ptr->nlevels; if( ptr->level[i].name == NULL && ptr->level[i].ID == FAIL ) { ptr->level[i].name = (char *)calloc((strlen(name) + 1), sizeof(char)); strcpy( ptr->level[i].name, name ); ptr->level[i].ID = H5Dopen( loc_id, name ); } ptr->nlevels ++ ; } return 0; } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTdeflevel | | | | DESCRIPTION: Defines a level within the point data set. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | levelname char name of level | | levelinfo HE5_CmpDTSinfo Pointer to the structure containing | | information about level dataset | | | | OUTPUTS: | | None | | | | NOTES: Metadata block needs to be developed | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 00 A.Muslimov Revised and recoded. | | Mar 00 A.Muslimov Modified to reflect changes in HDF5 library: | | H5Tinsert_array should be replaced by two calls | | H5Tarray_create() and H5Tinsert(). | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | May 05 S.Zhao Added HE5_EHdtype2numtype() and HE5_EHhid2hsize() | | functions calls. | | Feb 06 Abe Taaheri Added support for H5T_STRING | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTdeflevel(hid_t pointID, const char *levelname, HE5_CmpDTSinfo *levelinfo) { herr_t status = FAIL;/* routine return status variable */ int i, j; /* Loop indices */ int nlevels = FAIL;/* Number of levels in point */ int rank = 1; /* Dataset rank */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ hid_t dtsID = FAIL;/* Dataset ID */ hid_t space = FAIL;/* dataspace ID */ hid_t tid = FAIL;/* compound datatype ID */ hid_t fwdtid = FAIL;/* compound datatype ID */ hid_t bcktid = FAIL;/* compound datatype ID */ hid_t plist = FAIL;/* property list ID */ hid_t tempid = FAIL;/* temporary ID */ hid_t xfrlist = FAIL;/* Xfer property list ID */ hid_t arr_id = FAIL;/* Array datatype ID */ long idx = FAIL;/* Point index */ hsize_t dim = 1;/* Dimension size */ hsize_t dims[HE5_DTSETRANKMAX];/* Array of dimension sizes */ hsize_t chunkdim[1] = {HE5_NRECS};/* Record chunk size */ hsize_t maxdim = H5S_UNLIMITED;/* Max. dimension size */ hsize_t dum = 0;/* dummy variable */ hsize_t metadata[2]={0,0};/* Metadata input array */ hid_t ntype = FAIL; /* number type ID */ fwdptr ForwardData;/* Structure for forward pointer dataset */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ int order; HE5_LOCK; CHECKNAME(levelname); CHECKPOINTER(levelinfo); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTdeflevel", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check levelname for length */ /* -------------------------- */ if ( strlen(levelname) > HE5_OBJNAMELENMAX) { sprintf(errbuf, "Levelname \"%s\" more than %d characters.\n", levelname, HE5_OBJNAMELENMAX); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Initialize Forward Pointer buffer */ /* --------------------------------- */ ForwardData.begin = FAIL; ForwardData.extent = FAIL; /* Get number of levels in points */ /* ------------------------------ */ nlevels = HE5_PTnlevels(pointID); if(nlevels == FAIL) { sprintf(errbuf, "Cannot retrieve the number of levels\n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create dataspace with rank=1, dim=1(1 record), unlimited */ /* -------------------------------------------------------- */ space = H5Screate_simple(rank, &dim, &maxdim); if (space == FAIL) { sprintf(errbuf, "Cannot create the data space. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create and modify dataset property, enable chunking */ /* --------------------------------------------------- */ plist = H5Pcreate(H5P_DATASET_CREATE); if (plist == FAIL) { sprintf(errbuf, "Cannot create a property list ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Enable chunking */ /* --------------- */ status = H5Pset_chunk(plist, rank, chunkdim); if (status == FAIL ) { sprintf(errbuf, "Cannot set chunking. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Create the memory compound data type */ /* ------------------------------------ */ tid = H5Tcreate(H5T_COMPOUND, levelinfo->datasize); if (tid == FAIL) { sprintf(errbuf, "Cannot create the data type ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Add members to the compound data type */ /* ------------------------------------- */ for (i = 0; i < levelinfo->nfields; i++) { /* Check if the field is an array */ /* ------------------------------ */ if (levelinfo->array[i] == TRUE) { for (j = 0; j < levelinfo->rank[i]; j++) dims[j] = (hsize_t)levelinfo->dims[i][j]; /* Create array datatypes */ /* ---------------------- */ arr_id = H5Tarray_create(levelinfo->dtype[i], levelinfo->rank[i], (const hsize_t *)dims, NULL); if (arr_id == FAIL) { sprintf(errbuf, "Cannot create \"array\" datatype. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Add array field */ /* --------------- */ status = H5Tinsert(tid,levelinfo->fieldname[i], levelinfo->offset[i], arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"array\" element. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(arr_id); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Add atomic field */ /* ---------------- */ status = H5Tinsert(tid,levelinfo->fieldname[i], levelinfo->offset[i],levelinfo->dtype[i]); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"array\" element. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } /* Create (appendible) dataset for the level */ /* ----------------------------------------- */ dtsID = H5Dcreate(HE5_PTXPoint[idx].data_id, levelname, tid, space, plist); if (dtsID == FAIL) { sprintf(errbuf, "Cannot create the dataset. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Extend the dataset */ /* ------------------ */ status = H5Dextend(dtsID, &dim); if (status == FAIL ) { sprintf(errbuf, "Cannot extend the dataset. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(tid); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(space); if (status == FAIL ) { sprintf(errbuf, "Cannot release data space ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the property list ID */ /* ---------------------------- */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release a property list ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Store dataset ID and name in external array */ /* ------------------------------------------- */ HE5_PTXPoint[idx].level[nlevels].ID = dtsID; HE5_PTXPoint[idx].level[nlevels].name = (char *)calloc((strlen(levelname)+1), sizeof(char)); strcpy(HE5_PTXPoint[idx].level[nlevels].name, levelname); /* If previous levels exist ... */ /* ---------------------------- */ if (nlevels > 0) { /* Create dataspace with rank=1, dim=1(1 record), unlimited */ space = H5Screate_simple(rank, &dim, &maxdim); if (space == FAIL) { sprintf(errbuf, "Cannot create the data space. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create property list */ /* -------------------- */ plist = H5Pcreate(H5P_DATASET_CREATE); if (plist == FAIL) { sprintf(errbuf, "Cannot create a property list ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Enable chunking */ /* --------------- */ status = H5Pset_chunk(plist,rank, chunkdim); if (status == FAIL ) { sprintf(errbuf, "Cannot set chunking. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create compound data type */ /* ------------------------- */ bcktid = H5Tcreate(H5T_COMPOUND, sizeof(bckptr)); if (bcktid == FAIL) { sprintf(errbuf, "Cannot create a compound datatype. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Add back pointer data member */ /* ---------------------------- */ status = H5Tinsert(bcktid,"BCKPOINTER", HOFFSET(bckptr, back), H5T_NATIVE_LLONG); if (status == FAIL ) { sprintf(errbuf, "Cannot add a new member named \"BCKPOINTER\"to a compound datatype. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Set name of BCKPOINTER dataset */ /* ------------------------------ */ sprintf(utlbuf, "%s%d%s%d", "BCKPOINTER:", nlevels, "->", nlevels - 1); /* Create (appendible) compound dataset */ /* ------------------------------------ */ tempid = H5Dcreate(HE5_PTXPoint[idx].link_id, utlbuf, bcktid, space, plist); if (tempid == FAIL) { sprintf(errbuf, "Cannot create the dataset. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Extend the dataset */ /* ------------------ */ status = H5Dextend(tempid, &dim); if (status == FAIL ) { sprintf(errbuf, "Cannot extend the dataset. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(bcktid); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(space); if (status == FAIL ) { sprintf(errbuf, "Cannot release the data space ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(tempid); if (status == FAIL ) { sprintf(errbuf, "Cannot release the dataset ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Setup Forward Pointer dataset */ /* ----------------------------- */ /* Set name of FWDPOINTER dataset */ /* ------------------------------ */ sprintf(utlbuf, "%s%d%s%d", "FWDPOINTER:", nlevels - 1,"->", nlevels); /* Create dataspace with rank=1, dim=1(1 record), unlimited */ /* -------------------------------------------------------- */ space = H5Screate_simple(rank, &dim, &maxdim); if (space == FAIL) { sprintf(errbuf, "Cannot create the data space ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create the memory data type */ /* --------------------------- */ fwdtid = H5Tcreate(H5T_COMPOUND, sizeof(fwdptr)); if (fwdtid == FAIL) { sprintf(errbuf, "Cannot create a compound datatype. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Insert "BEGIN" data member to the dataset */ /* ----------------------------------------- */ status = H5Tinsert(fwdtid,"BEGIN", HOFFSET(fwdptr, begin), H5T_NATIVE_LLONG); if (status == FAIL) { sprintf(errbuf, "Cannot add a new member named \"BEGIN\"to a compound datatype. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Insert "EXTENT" data member to the dataset */ /* ------------------------------------------ */ status = H5Tinsert(fwdtid,"EXTENT", HOFFSET(fwdptr, extent), H5T_NATIVE_LLONG); if (status == FAIL ) { sprintf(errbuf, "Cannot add a new member named \"EXTENT\"to a compound datatype. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create (appendible) dataset */ /* --------------------------- */ tempid = H5Dcreate(HE5_PTXPoint[idx].link_id, utlbuf, fwdtid, space, plist); if (tempid == FAIL) { sprintf(errbuf, "Cannot create the dataset. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Extend the dataset */ /* ------------------ */ status = H5Dextend(tempid, &dim); if (status == FAIL ) { sprintf(errbuf, "Cannot extend the dataset. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Create X-fer property list */ /* -------------------------- */ xfrlist = H5Pcreate(H5P_DATASET_XFER); if (xfrlist == FAIL) { sprintf(errbuf, "Cannot create x-fer property list ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Set type conversion and background buffer */ /* ----------------------------------------- */ status = H5Pset_buffer(xfrlist,sizeof(fwdptr), NULL, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot set the buffer. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Write out buffer (with -1 fill value) to establish dataset */ /* --------------------------------------------------------- */ status = H5Dwrite(tempid, fwdtid, H5S_ALL, H5S_ALL, xfrlist, &ForwardData); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the dataset. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(fwdtid); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Release the data space ID */ /* ------------------------- */ status = H5Sclose(space); if (status == FAIL) { sprintf(errbuf, "Cannot release the data space ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Release the property list ID */ /* ---------------------------- */ status = H5Pclose(plist); if (status == FAIL ) { sprintf(errbuf, "Cannot release the property list ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Release the x-ferproperty list ID */ /* --------------------------------- */ status = H5Pclose(xfrlist); if (status == FAIL ) { sprintf(errbuf, "Cannot release the property list ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(tempid); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } } /* ************************************************************** * M E T A D A T A S E C T I O N * ************************************************************** */ /* Insert Point Level metadata */ /* --------------------------- */ status = HE5_EHinsertmeta(fid , HE5_PTXPoint[idx].ptname, "p", 10L, (char *)levelname, &dum); if (status == FAIL) { sprintf(errbuf, "Cannot insert Point Level metadata \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } for (i = 0; i < levelinfo->nfields; i++) { /* Concatenate fieldname with level name */ /* ------------------------------------- */ memmove(utlbuf, levelinfo->fieldname[i], strlen(levelinfo->fieldname[i])); utlbuf[strlen(levelinfo->fieldname[i])] = 0; strcat(utlbuf, ":"); strcat(utlbuf, levelname); /* Load ntype and field order into metadata input array */ /* ---------------------------------------------------- */ levelinfo->dclass[i] = H5Tget_class(levelinfo->dtype[i]); /* If datatype class is H5T_STRING, then the field is string type */ if (levelinfo->dclass[i] == H5T_STRING) { ntype = HE5T_CHARSTRING; } else { ntype = HE5_EHdtype2numtype(levelinfo->dtype[ i ]); } if (ntype == FAIL) { sprintf(errbuf, "Cannot get the number type ID. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (ntype == 0) { metadata[0] = 0; } else { metadata[0] = HE5_EHhid2hsize(ntype); if (metadata[0] == 0) { sprintf(errbuf, "Cannot convert \"hid_t\" to \"hsize_t\" data type. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } if (levelinfo->array[i] == TRUE) { order = levelinfo->rank[i]; metadata[1] = order; } else { metadata[1] = 1; } /* Set field order (change order = 0 to order = 1) for scalars*/ /* ---------------------------------------------------------- */ if (metadata[1] == 0) { metadata[1] = 1; } /* Insert point field metadata */ /* --------------------------- */ status = HE5_EHinsertmeta(fid, HE5_PTXPoint[idx].ptname, "p", 11L, utlbuf, metadata); if (status == FAIL) { sprintf(errbuf, "Cannot insert Point Field metadata \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return status; } } COMPLETION: HE5_UNLOCK; return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTdeflinkage | | | | DESCRIPTION: Defines link field between two (adjacent) levels. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | parent char parent level name | | child char child level name | | linkfield char linkage field name | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================== | | 12/13/99 A.Muslimov Added proper error handlings after the function | | calls. In the call EHinsertmeta() replaced gid | | by fid. | | 1/06/00 A.Muslimov Changed datatype of "dum" from int32_t to hsize_t| | to make a call to EHinsertmeta() successfull. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Oct 00 A.Muslimov Modified to reflect changes in HE5_PTfexist(). | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTdeflinkage(hid_t pointID, char *parent, char *child, char *linkfield) { herr_t status = FAIL;/* routine return status variable */ int i; /* Loop index */ int nlevels = FAIL;/* Number of levels in point */ int foundParent = FAIL;/* Found parent level flag */ int foundChild = FAIL;/* Found child level flag */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t dtsid = FAIL;/* Dataset ID */ long idx = FAIL;/* Point index */ hsize_t dum = 0;/* dammy variable */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char *mess = "Linkage Field \"%s\" not found in Parent Level: \"%s\".\n"; char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ HE5_LOCK; CHECKPOINTER(parent); CHECKPOINTER(child); CHECKPOINTER(linkfield); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTdeflinkage", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTdeflinkage", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get number of levels in point */ /* ----------------------------- */ nlevels = HE5_PTnlevels(pointID); if(nlevels == FAIL) { sprintf(errbuf, "Cannot retrieve the number of levels\n"); H5Epush(__FILE__, "HE5_PTdeflinkage", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* For all levels ... */ /* ------------------ */ for (i = 0; i < nlevels; i++) { /* Get level data ID and name */ /* -------------------------- */ dtsid = HE5_PTXPoint[idx].level[i].ID; strcpy(utlbuf, HE5_PTXPoint[idx].level[i].name); /* If equal to parent level name ... */ /* --------------------------------- */ if (strcmp(utlbuf, parent) == 0) { /* Set found parent flag */ /* --------------------- */ foundParent = i; /* Check if linkfield exists in parent level */ if (HE5_PTfexist(dtsid,linkfield,NULL,NULL,NULL,NULL) == 1 ) { break; } else { /* ... else report error */ /* --------------------- */ status = FAIL; sprintf(errbuf, mess, linkfield, parent); H5Epush(__FILE__, "HE5_PTdeflinkage", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); break; } } } /* For all levels ... */ /* ------------------ */ for (i = 0; i < nlevels; i++) { /* Get level ID and name */ /* -------------------------- */ dtsid = HE5_PTXPoint[idx].level[i].ID; strcpy(utlbuf, HE5_PTXPoint[idx].level[i].name); /* If equal to child level name ... */ /* -------------------------------- */ if (strcmp(utlbuf, child) == 0) { /* Set found child flag */ /* -------------------- */ foundChild = i; /* Check if linkfield exists in patent level */ if (HE5_PTfexist(dtsid,linkfield,NULL,NULL,NULL,NULL) == 1 ) { break; } else { /* ... else report error */ /* --------------------- */ status = FAIL; sprintf(errbuf, mess, linkfield, parent); H5Epush(__FILE__, "HE5_PTdeflinkage", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); break; } } } /* Report parent level not found if relevant */ /* ----------------------------------------- */ if (foundParent == FAIL) { status = FAIL; sprintf(errbuf, "Parent Level: \"%s\" not found.\n", parent); H5Epush(__FILE__, "HE5_PTdeflinkage", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Report child level not found if relevant */ /* ---------------------------------------- */ if (foundChild == FAIL) { status = FAIL; sprintf(errbuf, "Child Level: \"%s\" not found.\n", child); H5Epush(__FILE__, "HE5_PTdeflinkage", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check that parent and child levels are adjacent */ /* ----------------------------------------------- */ if (foundParent != FAIL && foundChild != FAIL && foundChild - foundParent != 1) { status = FAIL; sprintf(errbuf, "Parent/Child Levels not adjacent \"%s/%s\".\n", parent, child); H5Epush(__FILE__, "HE5_PTdeflinkage", __LINE__, H5E_BTREE, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Insert linkage info in structural metadata */ /* ------------------------------------------ */ sprintf(utlbuf, "%s%s%s%s%s", parent, "/", child, ":", linkfield); status = HE5_EHinsertmeta(fid, HE5_PTXPoint[idx].ptname, "p", 12L, utlbuf, &dum); if(status == FAIL) { sprintf(errbuf, "Cannot insert metadata for the \"%s\" point\n", HE5_PTXPoint[idx].ptname); H5Epush(__FILE__, "HE5_PTdeflinkage", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwritesetup | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t HDFEOS point ID | | level int level number (0 - based) | | | | OUTPUTS: | | nrec hssize_t Number of current records | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/26/99 A.Muslimov Added a new variable count to pass as a 4th argument| | to PTwriteattr(). | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Oct 00 A.Muslimov Modified to reflect chages in other interfaces. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_PTwritesetup(hid_t pointID, int level, hssize_t *nrec) { herr_t status = FAIL;/* routine return status variable */ int i; /* loop index */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ long idx = FAIL;/* Point index */ unsigned int zerobuf[HE5_DTSETRANKMAX]; hsize_t count[HE5_DTSETRANKMAX];/* # of attribute elements */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* error messge buffer */ HE5_LOCK; for (i = 0; i < HE5_DTSETRANKMAX; i++) { zerobuf[ i ] = 0; count[ i ] = 0; } /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTwritesetup", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTwritesetup", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get current number of records */ /* ----------------------------- */ *nrec = (hssize_t)HE5_PTnrecs(pointID, level); if (*nrec == 0) { /* Read "_LevelWritten" Attribute */ /* ------------------------------- */ status = HE5_PTreadattr(pointID,"_LevelWritten", zerobuf); if (status == FAIL) { sprintf(errbuf, "Cannot read the attribute \"_LevelWritten\". \n"); H5Epush(__FILE__, "HE5_PTwritesetup", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* If level not yet written then write it */ /* -------------------------------------- */ if ( zerobuf[level] == 0) { zerobuf[ level ] = 1; count[ level ] = 1; /* Write "1" to "_LevelWritten" record for this level */ /* -------------------------------------------------- */ status = HE5_PTwriteattr(pointID, "_LevelWritten", H5T_NATIVE_UINT, count, zerobuf); if (status == FAIL) { sprintf(errbuf, "Cannot write record to the attribute \"_LevelWritten\". \n"); H5Epush(__FILE__, "HE5_PTwritesetup", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwritelevel | | | | DESCRIPTION: Writes full records to a level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | count[] hsize_t Number of records to write | | size size_t Data size (bytes) to write | | data void data buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ========== ============ ============================================= | | 12/13/99 A.Muslimov Added proper error handlings after the function | | calls. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Oct 00 A.Muslimov Changed the interface to make it consistent with| | writing data to compound dataset. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | 02/01/06 Abe Taaheri use the same pointID for both HE5_PTwrbckptr & | | HE5_PTwrfwdptr calls | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTwritelevel(hid_t pointID, int level, hsize_t count[], size_t *size, void *data) { herr_t status = FAIL;/* routine return status variable */ int nlevels = FAIL;/* Number of levels in point */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t dataID = FAIL;/* dataset ID */ hid_t typeID = FAIL;/* data type ID */ hid_t xfer_list = FAIL;/* Property list ID */ long idx = FAIL;/* Point index */ hssize_t nrec = FAIL;/* Current number of records */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t savePointID; HE5_LOCK; CHECKPOINTER(count); CHECKPOINTER(size); CHECKPOINTER(data); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTwritelevel", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for file ID failed. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the current number of records */ /* --------------------------------- */ status = HE5_PTwritesetup(pointID, level, &nrec); if(status == FAIL) { sprintf(errbuf, "Cannot retrieve the current number of records\n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if(nlevels == FAIL) { sprintf(errbuf, "Cannot retrieve the number of levels\n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Report error if no levels (dataset) defined */ /* ------------------------------------------- */ if (nlevels == 0) { status = FAIL; sprintf(errbuf, "No Levels Defined for point ID: %d\n", pointID); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } else if (nlevels < level) { /* Report error if level # to large */ /* -------------------------------- */ status = FAIL; sprintf(errbuf, "Only %d levels Defined for point ID: %d\n", nlevels, pointID); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the level dataset ID */ /* ------------------------- */ dataID = HE5_PTXPoint[idx].level[level].ID; /* Extend the dataset size */ /* ----------------------- */ status = H5Dextend(dataID, count); if (status == FAIL) { sprintf(errbuf, "Cannot extend the dataset. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the datatype ID */ /* ------------------- */ H5Eset_auto(NULL, NULL); typeID = H5Dget_type(dataID); if (typeID == FAIL) { sprintf(errbuf, "Cannot get data type ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create the property list */ /* ------------------------ */ xfer_list = H5Pcreate(H5P_DATASET_XFER); if (xfer_list == FAIL) { sprintf(errbuf, "Cannot create the property list ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Set type conversion and background buffer */ /* ----------------------------------------- */ status = H5Pset_buffer(xfer_list, *size, NULL, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot set type conversion and background buffer. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Write data to the dataset */ /* ------------------------- */ status = H5Dwrite(dataID, typeID, H5S_ALL, H5S_ALL, xfer_list, data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the dataset. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(xfer_list); if (status == FAIL) { sprintf(errbuf, "Cannot release the property list ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if (level > 0) { savePointID = pointID; /* Write BackPointers */ /* ------------------ */ status = HE5_PTwrbckptr(pointID, level); if (status == FAIL) { sprintf(errbuf, "Cannot write back pointer records. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Write FwdPointers */ /* ----------------- */ status = HE5_PTwrfwdptr(savePointID, level - 1); if (status == FAIL) { sprintf(errbuf, "Cannot write forward pointer records. \n"); H5Epush(__FILE__, "HE5_PTwritelevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwriteattr | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | attrname char attribute name | | numtype hid_t attribute HDF numbertype | | count hsize_t Number of attribute elements | | wrcode char Read/Write Code "w/r" | | datbuf void I/O buffer | | | | OUTPUTS: | | datbuf | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTwriteattr(hid_t pointID, const char *attrname, hid_t numtype, hsize_t count[],void * datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ long idx = FAIL;/* Point index */ hid_t ntype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ ntype = HE5_EHconvdatatype(numtype); if(ntype == FAIL) { ntype = numtype; } /* Check Point ID */ /* -------------- */ status = HE5_PTchkptid(pointID, "HE5_PTwriteattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Perform Attribute I/O */ /* --------------------- */ status = HE5_EHattr(HE5_PTXPoint[idx].pt_id, attrname, ntype, count,"w", datbuf); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTreadattr | | | | DESCRIPTION: Reads attribute from a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTreadattr(hid_t pointID, const char *attrname, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t tid = FAIL;/* Data type ID */ hid_t gid = FAIL;/* POINTS group ID */ hsize_t count[] = {0}; /* Number of elements */ long idx = FAIL;/* Point index */ HE5_LOCK; CHECKPOINTER(attrname); /* Check Point ID */ /* -------------- */ status = HE5_PTchkptid(pointID, "HE5_PTreadattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get attribute group ID and call EHattr to perform I/O */ /* ------------------------------------------------------ */ status = HE5_EHattr(HE5_PTXPoint[idx].pt_id, attrname, tid, count, "r", datbuf); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTlevelinfo | | | | DESCRIPTION: Returns information about a given level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | | | | | OUTPUTS: | | info HE5_CmpDTSinfo Structure containing information about | | specified level. | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Oct 00 A.Muslimov Changed the interface. | | Aug 04 S.Zhao Added the number type for a field in a point level. | | Feb 06 Abe Taaheri Added support for STRING fields and size of || structure | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTlevelinfo(hid_t pointID, int level, HE5_CmpDTSinfo *info) { herr_t status = SUCCEED; /* routine return status variable */ int nlevels = 0; /* Number of levels in point */ int i, j; /* Loop indices */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t levelID = FAIL; /* data ID */ hid_t gid = FAIL; /* "POINTS" group ID */ hid_t typeID = FAIL; /* Data type ID */ hid_t btypeID = FAIL; /* Base Data type ID */ hid_t mdt = FAIL; /* Member data type ID */ hsize_t dims[HE5_DTSETRANKMAX];/* Array of dimension sizes */ long idx = FAIL; /* Point index */ size_t *size = (size_t *)NULL;/* data size (bytes) */ size_t *order = (size_t *)NULL;/* data byte order */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTlevelinfo", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf, "Checking for Point ID failed. \n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Initialize the members of a structure */ /* ------------------------------------- */ info->nfields = FAIL; info->datasize = 0; for (i = 0; i < HE5_FLDNUMBERMAX; i++) { info->rank[i] = FAIL; info->array[i] = FALSE; info->offset[i] = FAIL; info->dtype[i] = FAIL; info->numtype[i] = FAIL; info->dclass[i] = H5T_NO_CLASS; for (j = 0; j < HE5_DTSETRANKMAX; j++) info->dims[i][j] = 0; } /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if (nlevels == 0) { sprintf(errbuf, "No Levels Defined for point ID: %d\n", pointID); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if (nlevels < level) { /* Report error if level # to large */ /* -------------------------------- */ sprintf(errbuf, "Only %d levels Defined for point ID: %d\n", nlevels, pointID); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data ID of point level */ /* -------------------------- */ levelID = HE5_PTXPoint[idx].level[level].ID; /* Get compound datatype id */ /* ------------------------ */ typeID = H5Dget_type(levelID); if (typeID == FAIL) { sprintf(errbuf, "Cannot get the datatype ID for a level.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get number of fields */ /* -------------------- */ info->nfields = H5Tget_nmembers(typeID); if (info->nfields == FAIL) { sprintf(errbuf, "Cannot get the number of fields for a level.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for "size" variable */ /* ----------------------------------- */ size = (size_t *)calloc(info->nfields, sizeof(size_t)); if (size == (size_t *)NULL) { sprintf(errbuf, "Cannot allocate memory for the size variable.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for "order" variable */ /* ----------------------------------- */ order = (size_t *)calloc(info->nfields, sizeof(size_t)); if (order == (size_t *)NULL) { sprintf(errbuf, "Cannot allocate memory for the order variable.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(size); return(FAIL); } /* Loop through all data members */ /* ----------------------------- */ for( i = 0; i < info->nfields; i++) { size[i] = 0; /* Get member name */ /* --------------- */ info->fieldname[i] = H5Tget_member_name(typeID, i); if (info->fieldname[i] == NULL) { sprintf(errbuf, "Cannot get the field name.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } /* Get member type */ /*---------------- */ mdt = H5Tget_member_type(typeID, i); if (mdt == FAIL) { sprintf(errbuf, "Cannot get the field type.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } /* Get field data class */ /* -------------------- */ info->dclass[i] = H5Tget_class(mdt); if (info->dclass[i] == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the field class.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } /* Get the rank and "array" flag */ /* ----------------------------- */ if (info->dclass[i] == H5T_ARRAY) { /* Get the field rank */ /* ------------------ */ info->rank[i] = H5Tget_array_ndims(mdt); if (info->rank[i] == FAIL) { sprintf(errbuf, "Cannot get the field rank.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } /* The field is an array */ /* --------------------- */ info->array[i] = TRUE; /* Get the field dimension sizes */ /* ----------------------------- */ status = H5Tget_array_dims(mdt, dims, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot get the field dimension sizes.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } /* Set the field dimension sizes */ /* ----------------------------- */ for (j = 0; j < info->rank[i]; j++) info->dims[i][j] = dims[j]; /* Get the field base data type ID */ /* ------------------------------- */ btypeID = H5Tget_super(mdt); if (btypeID == FAIL) { sprintf(errbuf, "Cannot get the field base data type ID.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } /* Set the field data type */ /* ----------------------- */ info->dtype[i] = btypeID; /* Set the field number type */ /* ------------------------- */ info->numtype[i] = HE5_EHdtype2numtype(info->dtype[i]); if (info->numtype[i] == FAIL) { sprintf(errbuf, "Cannot get the number type ID.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } /* Get the field data size */ /* ----------------------- */ size[i] = H5Tget_size(btypeID); if (size[i] == 0) { sprintf(errbuf, "Cannot get the field data size.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(btypeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the field data type ID.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } } else { /* Set the scalar field parameters */ /* ------------------------------- */ info->rank[i] = 1; info->array[i] = FALSE; info->dims[i][0] = 1; info->dtype[i] = mdt; if (info->dclass[i] == H5T_STRING) { info->numtype[i] = HE5T_CHARSTRING; } else { info->numtype[i] = HE5_EHdtype2numtype(info->dtype[i]); } if (info->numtype[i] == FAIL) { sprintf(errbuf, "Cannot get the number type ID.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } /* Get the scalar field data size */ /* ------------------------------ */ size[i] = H5Tget_size(mdt); if (size[i] == 0) { sprintf(errbuf, "Cannot release the field data size.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } } /* Calculate the field order */ /* ------------------------- */ order[i] = 1; for (j = 0; j < info->rank[i]; j++) order[i] *= info->dims[i][j]; /* Calculate the data size in memory */ /* --------------------------------- */ /* Note: info->datasize += size[i]*order[i]; calculates structure size exactly, but it causes problem with PTreadlevel, where padded size of structure may be needed. For example the following structure for Sensor level typedef struct { char name[32]; float lat; float lon; float alt; unsigned short int id; } Sensor; has exact size of 46 bytes, but padded size is 48, which is needed for " datasize = (hsize_t)(dtsinfo.datasize);" in the PTreadlevel routine. So instead of info->datasize += size[i]*order[i] we will use H5Tget_size(typeID) which gets padded size of level structue */ /*info->datasize += size[i]*order[i];*/ info->datasize = H5Tget_size(typeID); /* Release the field data type ID */ /* ------------------------------ */ status = H5Tclose(mdt); if (status == FAIL) { sprintf(errbuf, "Cannot release the field data type ID.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (size != NULL) free(size); if (order != NULL) free(order); return(FAIL); } } /* Calculate field unalligned offsets */ /* ---------------------------------- */ info->offset[0] = 0; for (i = 1; i < info->nfields; i++) info->offset[i] = info->offset[i-1]+(off_t)(size[i-1]*order[i-1]); if (size != NULL) free(size); if (order != NULL) free(order); /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_PTlevelinfo", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTreadlevel | | | | DESCRIPTION: Reads data from the specified fields and records of a level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | inStruct HE5_CmpDTSinfo Input data structure containing infor- | | mation about compound dataset to read. | | size size_t Memory size (bytes) of data structure to| | read data into. | | | | OUTPUTS: | | datbuf Data buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Apr 00 A.Muslimov Changed type of 'slen' from long to size_t. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Oct 00 A.Muslimov Changed the interface. | | Mar 00 A.Muslimov Modified to reflect changes in HDF5 library: | | H5Tinsert_array should be replaced by two calls | | H5Tarray_create() and H5Tinsert(). | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | Feb 06 Abe Taaheri Modified for getting datasize only, | | Correction for setting datasize in xfer_list, | | Support for STRING fields, | | and using correct datatypes | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTreadlevel(hid_t pointID, int level, HE5_CmpDTSinfo *inStruct, size_t *size, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ int nlevels = 0; /* Number of levels in point */ int i, j; /* Loop indices */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t dataID = FAIL;/* dataset ID */ hid_t xfer_list = FAIL;/* Property list ID */ hid_t typeID = FAIL;/* compound datatype ID */ hid_t arr_id = FAIL;/* Array datatype ID */ hsize_t dims[HE5_DTSETRANKMAX];/* Array of dimension sizes */ hsize_t datasize = 0;/* Size (bytes) of a dataset to read */ long idx = FAIL;/* Point index */ HE5_CmpDTSinfo dtsinfo;/* Structure to read information about level */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t cdatatype = FAIL; /* return data type ID */ int dtypesize = FAIL; hid_t mytypeID = FAIL; /* compound datatype ID */ hid_t mdt = FAIL; /* Member data type ID */ int jjj = 0; int jj = 0; int result = 99; HE5_LOCK; CHECKPOINTER(inStruct); CHECKPOINTER(size); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTreadlevel", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf, "Checking for the point ID failed.\n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Get number of levels in point */ /* ----------------------------- */ nlevels = HE5_PTnlevels(pointID); if (nlevels == 0) { status = FAIL; sprintf(errbuf, "No Levels Defined for point ID: %d\n", pointID); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } else if (nlevels < level) { /* Report error if level # to large */ /* -------------------------------- */ status = FAIL; sprintf(errbuf, "Only %d levels Defined for point ID: %d\n", nlevels, pointID); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_FILE, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get level dataset ID */ /* ------------------ */ dataID = HE5_PTXPoint[idx].level[level].ID; /* Create property list */ /* -------------------- */ xfer_list = H5Pcreate(H5P_DATASET_XFER); if (xfer_list == FAIL) { sprintf(errbuf, "Cannot create the property list. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_PTlevelinfo() */ /* ---------------------- */ status = HE5_PTlevelinfo(pointID, level, &dtsinfo); if (status == FAIL) { sprintf(errbuf, "Cannot get the level information. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the dataset size */ /* -------------------- */ datasize = (hsize_t)(dtsinfo.datasize); /* If user only wants to get the size of datbuf so that he/she can allocate enough memory for datbuf, user will pass datbuf as NULL. In this case return here with the required size. */ if(datbuf == NULL) { *size = datasize; return(SUCCEED); } /* Set the buffer */ /* -------------- */ status = H5Pset_buffer(xfer_list, dtsinfo.datasize, NULL, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot set the read buffer. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create Compound datatype */ /* ------------------------ */ typeID = H5Tcreate(H5T_COMPOUND, *size); if (typeID == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create the compound data type.\n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Add members of a compound datatype to read */ /* ------------------------------------------ */ for ( i = 0; i < inStruct->nfields; i++) { for( jj = 0; jj fieldname[i],dtsinfo.fieldname[jj]); if( result == 0 ) { jjj = jj; result = 99; } } jj = jjj; inStruct->numtype[i]=dtsinfo.numtype[jj]; /* Check if the member is an array */ /* ------------------------------- */ if ( inStruct->array[i] == TRUE) { for (j = 0; j < inStruct->rank[i]; j++) dims[j] = (hsize_t)(inStruct->dims[i][j]); /* Create array datatype */ /* --------------------- */ /*arr_id = H5Tarray_create(inStruct->dtype[i], inStruct->rank[i], (const hsize_t *)dims, NULL);*/ cdatatype = HE5_EHconvdatatype(inStruct->numtype[i]); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ if(cdatatype == FAIL) { cdatatype = inStruct->numtype[i]; } arr_id = H5Tarray_create(cdatatype, inStruct->rank[i], (const hsize_t *)dims, NULL); if (arr_id == FAIL) { sprintf(errbuf, "Cannot create \"array\" datatype. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Add array field */ /* --------------- */ status = H5Tinsert(typeID, inStruct->fieldname[i], inStruct->offset[i], arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"array\" element. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(arr_id); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Add atomic field */ /* ---------------- */ if(inStruct->dclass[i] == H5T_STRING) { /* Get compound datatype id */ /* ------------------------ */ mytypeID = H5Dget_type(dataID); mdt = H5Tget_member_type(mytypeID, i); dtypesize = H5Tget_size(mdt); status = H5Tclose(mdt); if (status == FAIL) { sprintf(errbuf, "Cannot release the field data type ID.\n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } arr_id = H5Tcopy(H5T_C_S1); H5Tset_size(arr_id,dtypesize); H5Tset_strpad(arr_id, H5T_STR_NULLPAD); status = H5Tinsert(typeID, inStruct->fieldname[i], inStruct->offset[i],arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot insert atomic data element. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Tclose(arr_id); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { cdatatype = HE5_EHconvdatatype(inStruct->numtype[i]); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ if(cdatatype == FAIL) { cdatatype = inStruct->numtype[i]; } if(inStruct->nfields == 1) { status = H5Tinsert(typeID, inStruct->fieldname[i], 0,cdatatype ); } else { status = H5Tinsert(typeID, inStruct->fieldname[i], inStruct->offset[i],cdatatype ); } if (status == FAIL) { sprintf(errbuf, "Cannot insert atomic data element.\n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } } /* Release pointers to the name buffers */ /* ------------------------------------ */ for (i = 0; i < dtsinfo.nfields; i++) { if (dtsinfo.fieldname[i] != NULL) free(dtsinfo.fieldname[i]); } /* Read out the level fields */ /* ------------------------- */ status = H5Dread(dataID, typeID, H5S_ALL, H5S_ALL, xfer_list, datbuf); if (status == FAIL) { sprintf(errbuf, "Cannot read the level dataset. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the property list ID */ /* ---------------------------- */ status = H5Pclose(xfer_list); if (status == FAIL) { sprintf(errbuf, "Cannot release the property list ID. \n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_PTreadlevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqdatatype | | | | DESCRIPTION: Inquires about datasets in Point | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t | | fieldname char * | | attrname char * | | fieldgroup int | | | | OUTPUTS: | | dtype hid_t | | classID H5T_class_t | | Order H5T_order_t | | size size_t | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Oct 99 D.Wynne Original Programmer | | Dec 99 A.Muslimov Modified for Point interface. | | May 00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | Jun 00 A.Muslimov Updated to include Group/Local Attributes options. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Oct 00 A.Muslimov Added missing H5Tclose() calls and error handlings. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTinqdatatype(hid_t pointID, const char *fieldname, const char *attrname, int fieldgroup, hid_t *dtype, H5T_class_t *classID, H5T_order_t *Order, size_t *size) { herr_t status = FAIL; /* return status variable */ hid_t datasetid = FAIL; /* dataset ID */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "POINTS" group ID */ hid_t attr = FAIL; /* attribute ID */ hid_t fldgroup = FAIL; /* "field group" flag */ long idx = FAIL; /* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Check for valid point id */ /* ======================== */ status = HE5_PTchkptid(pointID, "HE5_PTinqdatatype", &fid, &gid, &idx); if(status == SUCCEED) { if(fieldgroup == HE5_HDFE_DATAGROUP) fldgroup = HE5_PTXPoint[idx].data_id; else if(fieldgroup == HE5_HDFE_ATTRGROUP) fldgroup = HE5_PTXPoint[idx].pt_id; else if(fieldgroup == HE5_HDFE_GRPATTRGROUP) fldgroup = HE5_PTXPoint[idx].data_id; else if(fieldgroup == HE5_HDFE_LOCATTRGROUP) fldgroup = HE5_PTXPoint[idx].data_id; else { sprintf(errbuf, "Group \"%d\" unknown.\n", fieldgroup); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_FUNC, H5E_BADVALUE , errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HDF 5 routines */ /* =================== */ if(fieldgroup == HE5_HDFE_DATAGROUP) { datasetid = H5Dopen(fldgroup, fieldname); if(datasetid == FAIL) { sprintf(errbuf, "Cannot open the dataset \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *dtype = H5Dget_type(datasetid); if(*dtype == FAIL) { sprintf(errbuf, "Cannot get the datatype ID for \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classID = H5Tget_class(*dtype); if(*classID == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classID != H5T_COMPOUND) { *Order = H5Tget_order(*dtype); if(*Order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the datatype byte order for \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } if (*classID == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*dtype); if(*size == 0) { sprintf(errbuf, "Cannot get the datatype size for \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Tclose(*dtype); if(status == FAIL) { sprintf(errbuf, "Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Dclose(datasetid); if(status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID.\n"); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else if(fieldgroup == HE5_HDFE_ATTRGROUP || fieldgroup == HE5_HDFE_GRPATTRGROUP) { attr = H5Aopen_name(fldgroup, attrname); if(attr == FAIL) { sprintf(errbuf, "Cannot open the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *dtype = H5Aget_type(attr); if(*dtype == FAIL) { sprintf(errbuf, "Cannot get the datatype ID for \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classID = H5Tget_class(*dtype); if(*classID == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classID != H5T_COMPOUND) { *Order = H5Tget_order(*dtype); if(*Order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the datatype byte order for \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } if (*classID == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*dtype); if(*size == 0) { sprintf(errbuf, "Cannot get the datatype size for \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Tclose(*dtype); if(status == FAIL) { sprintf(errbuf, "Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Aclose(attr); if(status == FAIL) { sprintf(errbuf, "Cannot release the attribute dataset ID.\n"); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else if(fieldgroup == HE5_HDFE_LOCATTRGROUP) { datasetid = H5Dopen(fldgroup, fieldname); if(datasetid == FAIL) { sprintf(errbuf, "Cannot open the dataset \"%s\".\n", fieldname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } attr = H5Aopen_name(datasetid, attrname); if(attr == FAIL) { sprintf(errbuf, "Cannot open the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *dtype = H5Aget_type(attr); if(*dtype == FAIL) { sprintf(errbuf, "Cannot get the datatype ID for \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } *classID = H5Tget_class(*dtype); if(*classID == H5T_NO_CLASS) { sprintf(errbuf, "Cannot get the data type class ID for \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } if (*classID != H5T_COMPOUND) { *Order = H5Tget_order(*dtype); if(*Order == H5T_ORDER_ERROR) { sprintf(errbuf, "Cannot get the datatype byte order for \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } if (*classID == H5T_STRING) { *size = 1; } else { *size = H5Tget_size(*dtype); if(*size == 0) { sprintf(errbuf, "Cannot get the datatype size for \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } status = H5Tclose(*dtype); if(status == FAIL) { sprintf(errbuf, "Cannot release the datatype ID.\n"); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Aclose(attr); if(status == FAIL) { sprintf(errbuf, "Cannot release the attribute dataset ID.\n"); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Dclose(datasetid); if(status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID.\n"); H5Epush(__FILE__, "HE5_PTinqdatatype", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqpoint | | | | DESCRIPTION: Returns number and names of point structures in file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nPoint int Number of point structures in file | | | | INPUTS: | | filename char HDF-EOS filename | | | | OUTPUTS: | | pointlist char List of point names (comma-separated) | | strbufsize long Length of pointlist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTinqpoint(const char *filename, char *pointlist, long *strbufsize) { int nPoint = FAIL;/* Number of point structures in file */ herr_t status = FAIL;/* status variable */ CHECKPOINTER(filename); /* Call EHinquire */ /* -------------- */ nPoint = (int)HE5_EHinquire(filename, "/HDFEOS/POINTS", pointlist, strbufsize); COMPLETION: return (nPoint); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTattrinfo | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | attrname char attribute name | | | | OUTPUTS: | | ntype hid_t attribute data type ID | | count hsize_t Number of attribute elements | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | 5/11/00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTattrinfo(hid_t pointID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ long idx = FAIL;/* Point index */ CHECKPOINTER(attrname); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get attribute group ID and call EHattrinfo */ status = HE5_EHattrinfo( HE5_PTXPoint[idx].pt_id, attrname, ntype, count); } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqattrs | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in point struct | | | | INPUTS: | | point ID hid_t point structure ID | | | | OUTPUTS: | | attrnames char Attribute names in point struct | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_PTinqattrs(hid_t pointID, char *attrnames, long *strbufsize) { long nattr = FAIL;/* Number of attributes (return) */ long idx = FAIL;/* Point index */ herr_t status = FAIL;/* routine return status variable */ hid_t gid = FAIL;/* "POINTS" group ID */ hid_t fid = FAIL;/* HDF-EOS file ID */ char *grpname = NULL;/* Group name string buffer */ status = HE5_PTchkptid(pointID, "HE5_PTinqattrs", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *) calloc( (strlen(HE5_PTXPoint[idx].ptname)+40), sizeof(char)); if( grpname == NULL) { H5Epush(__FILE__, "HE5_PTinqattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/POINTS/"); strcat(grpname, HE5_PTXPoint[idx].ptname); /* search group with grpname for the number of attrs */ nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); free(grpname); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwritegrpattr | | | | DESCRIPTION: Writes/updates attribute associated with the "Data" group | | in a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | attrname char attribute name | | numtype hid_t attribute data type ID | | count hsize_t Number of attribute elements | | wrcode char Read/Write Code "w/r" | | datbuf void I/O buffer | | | | OUTPUTS: | | datbuf | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTwritegrpattr(hid_t pointID, const char *attrname, hid_t numtype, hsize_t count[],void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ hid_t DataGrpID = FAIL;/* "Data" group ID */ long idx = FAIL;/* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t ntype; HE5_LOCK; CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ ntype = HE5_EHconvdatatype(numtype); if(ntype == FAIL) { ntype = numtype; } /* Check Point ID */ /* -------------- */ status = HE5_PTchkptid(pointID, "HE5_PTwritegrpattr", &fid, &gid, &idx); if (status == SUCCEED) { DataGrpID = H5Gopen(HE5_PTXPoint[idx].pt_id, "Data"); if(DataGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTwritegrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Perform Attribute I/O */ /* --------------------- */ status = HE5_EHattr(DataGrpID, attrname, ntype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\"to the \"Data\" group.\n", attrname); H5Epush(__FILE__, "HE5_PTwritegrpattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTwritegrpattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTreadgrpattr | | | | DESCRIPTION: Reads attribute associated with the "Data" group from a point.| | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTreadgrpattr(hid_t pointID, const char *attrname, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t ntype = FAIL;/* Data type ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t DataGrpID = FAIL;/* "Data" group ID */ hsize_t count[] = {0}; /* Number of attribute elements */ long idx = FAIL;/* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(attrname); /* Check Point ID */ /* -------------- */ status = HE5_PTchkptid(pointID, "HE5_PTreadgrpattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data" group ID */ /* -------------------- */ DataGrpID = H5Gopen(HE5_PTXPoint[idx].pt_id, "Data"); if(DataGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTreadgrpattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattr to perform I/O */ /* --------------------------- */ status = HE5_EHattr(DataGrpID, attrname, ntype, count, "r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" from the \"Data\" group.\n", attrname); H5Epush(__FILE__, "HE5_PTreadgrpattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTreadgrpattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTgrpattrinfo | | | | DESCRIPTION: Retrieves information about attributes in "Data" group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | attrname char attribute name | | | | OUTPUTS: | | ntype hid_t attribute data type ID | | count hsize_t Number of attribute elements | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov | | May 00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTgrpattrinfo(hid_t pointID, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ hid_t DataGrpID = FAIL;/* "Data" group ID */ long idx = FAIL;/* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(attrname); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTgrpattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data" group ID */ /* --------------------- */ DataGrpID = H5Gopen(HE5_PTXPoint[idx].pt_id, "Data"); if(DataGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTgrpattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_EHattrinfo */ /* ------------------- */ status = HE5_EHattrinfo(DataGrpID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" in the \"Data\" group.\n", attrname); H5Epush(__FILE__, "HE5_PTgrpattrinfo", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTgrpattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqgrpattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Data" group | | | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in point struct | | | | INPUTS: | | point ID hid_t point structure ID | | | | OUTPUTS: | | attrnames char Attribute names in point struct | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_PTinqgrpattrs(hid_t pointID, char *attrnames, long *strbufsize) { long nattr = FAIL;/* Number of attributes (return) */ long idx = FAIL;/* Point index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ char *grpname = NULL;/* Buffer for a group name */ status = HE5_PTchkptid(pointID, "HE5_PTinqgrpattrs", &fid, &gid, &idx); if(status == SUCCEED ) { grpname = (char *) calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char)); if( grpname == NULL) { H5Epush(__FILE__, "HE5_PTinqgrpattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(grpname,"/HDFEOS/POINTS/"); strcat(grpname, HE5_PTXPoint[idx].ptname); strcat(grpname,"/Data"); /* search group with grpname for the number of attrs */ /* ------------------------------------------------- */ nattr = HE5_EHattrcat(fid, grpname, attrnames, strbufsize); free(grpname); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwritelocattr | | | | DESCRIPTION: Writes/updates attribute associated with the a specified | | level in a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | levelname char level name | | attrname char attribute name | | numtype hid_t attribute data type ID | | count hsize_t Number of attribute elements | | wrcode char Read/Write Code "w/r" | | datbuf void I/O buffer | | | | OUTPUTS: | | datbuf | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTwritelocattr(hid_t pointID, const char *levelname, const char *attrname, hid_t numtype, hsize_t count[],void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ hid_t DataGrpID = FAIL;/* "Data" group ID */ hid_t levelID = FAIL;/* Level-related dataset ID */ long idx = FAIL;/* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ hid_t ntype; HE5_LOCK; CHECKPOINTER(levelname); CHECKNAME(attrname); CHECKPOINTER(count); CHECKPOINTER(datbuf); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ ntype = HE5_EHconvdatatype(numtype); if(ntype == FAIL) { ntype = numtype; } /* Check Point ID */ /* -------------- */ status = HE5_PTchkptid(pointID, "HE5_PTwritelocattr", &fid, &gid, &idx); if (status == SUCCEED) { DataGrpID = H5Gopen(HE5_PTXPoint[idx].pt_id, "Data"); if(DataGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTwritelocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get level ID */ /* ------------- */ levelID = H5Dopen(DataGrpID, levelname); if(levelID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" level dataset ID.\n", levelname); H5Epush(__FILE__, "HE5_PTwritelocattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Perform Attribute I/O */ /* --------------------- */ status = HE5_EHattr(levelID, attrname, ntype, count,"w", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write Attribute \"%s\"to the \"%s\" level.\n", attrname,levelname); H5Epush(__FILE__, "HE5_PTwritelocattr", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Dclose(levelID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" level dataset ID.\n", levelname); H5Epush(__FILE__, "HE5_PTwritelocattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTwritelocattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTreadlocattr | | | | DESCRIPTION: Reads attribute associated with a specified level in a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | levelname char level name | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTreadlocattr(hid_t pointID, const char *levelname, const char *attrname, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t ntype = FAIL;/* Data type ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t DataGrpID = FAIL;/* "Data" group ID */ hid_t levelID = FAIL;/* Level-related dataset ID */ hsize_t count[] = {0}; /* Number of attribute elements */ long idx = FAIL;/* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_LOCK; CHECKPOINTER(levelname); CHECKPOINTER(attrname); /* Check Point ID */ /* -------------- */ status = HE5_PTchkptid(pointID, "HE5_PTreadlocattr", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data" group ID */ /* -------------------- */ DataGrpID = H5Gopen(HE5_PTXPoint[idx].pt_id, "Data"); if(DataGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTreadlocattr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get level ID */ /* ------------- */ levelID = H5Dopen(DataGrpID, levelname); if(levelID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" level dataset ID.\n", levelname); H5Epush(__FILE__, "HE5_PTreadlocattr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattr to perform I/O */ /* --------------------------- */ status = HE5_EHattr(levelID, attrname, ntype, count, "r", datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" from the \"%s\" level.\n", attrname, levelname); H5Epush(__FILE__, "HE5_PTreadlocattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Dclose(levelID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" level dataset ID.\n", levelname); H5Epush(__FILE__, "HE5_PTreadlocattr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTreadlocattr", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: HE5_UNLOCK; return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTlocattrinfo | | | | DESCRIPTION: Retrieves information about attributes in associated with a | | specified level in a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | levelname char level name | | attrname char attribute name | | | | OUTPUTS: | | ntype hid_t attribute data type ID | | count hsize_t Number of attribute elements | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov | | May 00 A.Muslimov Changed 'H5T_class_t' type to 'int' data type. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Feb 03 S.Zhao Changed the type of 'ntype' from an H5T_class_t to | | an hid_t. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTlocattrinfo(hid_t pointID, const char *levelname, const char *attrname, hid_t *ntype, hsize_t *count) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ hid_t DataGrpID = FAIL;/* "Data" group ID */ hid_t levelID = FAIL;/* Level-related dataset ID */ long idx = FAIL;/* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(levelname); CHECKPOINTER(attrname); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTlocattrinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Get "Data" group ID */ /* --------------------- */ DataGrpID = H5Gopen(HE5_PTXPoint[idx].pt_id, "Data"); if(DataGrpID == FAIL) { sprintf(errbuf,"Cannot open the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTlocattrinfo", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get level ID */ /* ------------- */ levelID = H5Dopen(DataGrpID, levelname); if(levelID == FAIL) { sprintf(errbuf,"Cannot open the \"%s\" level dataset ID.\n", levelname); H5Epush(__FILE__, "HE5_PTlocattrinfo", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call EHattrinfo */ /* --------------- */ status = HE5_EHattrinfo(levelID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot retrieve information about Attribute \"%s\" in the \"%s\" level.\n", attrname,levelname); H5Epush(__FILE__, "HE5_PTlocattrinfo", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Dclose(levelID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"%s\" level dataset ID.\n", levelname); H5Epush(__FILE__, "HE5_PTlocattrinfo", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = H5Gclose(DataGrpID); if(status == FAIL) { sprintf(errbuf,"Cannot release the \"Data\" group ID.\n"); H5Epush(__FILE__, "HE5_PTlocattrinfo", __LINE__, H5E_OHDR, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } COMPLETION: return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqlocattrs | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list from a specified level in a point. | | | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in a level | | | | INPUTS: | | point ID hid_t point structure ID | | levelname char level name | | | | OUTPUTS: | | attrnames char Attribute names in a level | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Feb 00 A.Muslimov | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_PTinqlocattrs(hid_t pointID, const char *levelname, char *attrnames, long *strbufsize) { long nattr = FAIL;/* Number of attributes (return) */ long idx = FAIL;/* Point index */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* HDFEOS group ID */ char *dtsname = NULL;/* Buffer for a dataset name */ CHECKPOINTER(levelname); status = HE5_PTchkptid(pointID, "HE5_PTinqlocattrs", &fid, &gid, &idx); if(status == SUCCEED ) { dtsname = (char *) calloc(HE5_HDFE_NAMBUFSIZE, sizeof(char)); if( dtsname == NULL) { H5Epush(__FILE__, "HE5_PTinqlocattrs", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory"); HE5_EHprint("Error: Can not allocate memory, occured", __FILE__, __LINE__); return(FAIL); } strcpy(dtsname,"/HDFEOS/POINTS/"); strcat(dtsname, HE5_PTXPoint[idx].ptname); strcat(dtsname,"/Data/"); strcat(dtsname,levelname); /* search group with grpname for the number of attrs */ /* ------------------------------------------------- */ nattr = HE5_EHattrcat(fid, dtsname, attrnames, strbufsize); free(dtsname); } COMPLETION: return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTlinkinfo | | | | DESCRIPTION: Returns ("bck/fwd") linkage info | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | mode char mode ("+/-") | | linkfield char linkage field | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 8/26/99 A.Muslimov Changed the return type from intn to int . | | 12/13/99 A.Muslimov Added proper error handlings after the function | | calls. Added a call to PTchkptid(), and replaced | | the parameter "gid" by "fid" in the call to | | EHmetagroup(). | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTlinkinfo(hid_t pointID, hid_t gid, int level, char *mode, char *linkfield) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t pID = FAIL; /* Point ID - offset */ hid_t idOffset = HE5_PTIDOFFSET; /* Point ID offset */ long idx = FAIL; /* Point index */ char *metabuf = NULL; /* Pointer to SM */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to begin/end of SM */ char name1[HE5_HDFE_NAMBUFSIZE]; /* Name string 1 */ char name2[HE5_HDFE_NAMBUFSIZE]; /* Name string 2 */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error messg buffer */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTfwdlinkinfo", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTfwdlinkinfo", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Compute "reduced" point ID */ /* -------------------------- */ pID = pointID % idOffset; /* Get level link structural metadata */ /* ---------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_PTXPoint[pID].ptname, "p","LevelLink", metaptrs); if (metabuf == NULL ) { status = FAIL; sprintf(errbuf, "Cannot get pointer to metadata buffer for the \"%s\" point. \n", HE5_PTXPoint[pID].ptname); H5Epush(__FILE__, "HE5_PTfwdlinkinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } if (strcmp(mode, "-") == 0) { /* If back link get names of previous & current levels */ /* --------------------------------------------------- */ strcpy(name1, HE5_PTXPoint[pID].level[level - 1].name); strcpy(name2, HE5_PTXPoint[pID].level[level].name); } else { /* If fwd link get names of current & following levels */ /* --------------------------------------------------- */ strcpy(name1, HE5_PTXPoint[pID].level[level].name); strcpy(name2, HE5_PTXPoint[pID].level[level+1].name); } /* Search for parent name entry */ /* ---------------------------- */ sprintf(utlbuf, "%s%s", "\t\t\t\tParent=\"", name1); metaptrs[0] = strstr(metaptrs[0], utlbuf); /* If name found within linkage metadata ... */ /* ----------------------------------------- */ if (metaptrs[0] < metaptrs[1] || metaptrs[0] == NULL) { /* Get Linkage Field */ /* ----------------- */ status = HE5_EHgetmetavalue(metaptrs, "LinkField", linkfield); if (status == FAIL ) { sprintf(errbuf, "Cannot get \"LinkField\" metavalue for the \"%s\" point. \n", HE5_PTXPoint[pID].ptname); H5Epush(__FILE__, "HE5_PTfwdlinkinfo", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(metabuf); return(status); } /* Remove double quotes */ /* -------------------- */ memmove(linkfield, linkfield + 1, strlen(linkfield) - 2); linkfield[strlen(linkfield) - 2] = 0; } else { /* If not found return error status */ /* -------------------------------- */ status = FAIL; } free(metabuf); return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTbcklinkinfo | | | | DESCRIPTION: Returns link field to previous level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | linkfield char linkage field | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTbcklinkinfo(hid_t pointID, int level, char *linkfield) { herr_t status = SUCCEED;/* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* "POINTS" group ID */ long idx = FAIL; /* Point index */ char *mess = "No Back Linkage Defined between levels: %d and %d.\n"; char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTfwdlinkinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Check that level is within bounds for backlink info */ if (level > 0 && level < HE5_PTnlevels(pointID)) { status = HE5_PTlinkinfo(pointID, gid, level, "-", linkfield); if (status == FAIL) { sprintf( errbuf, mess, level, level - 1); H5Epush(__FILE__, "HE5_PTbcklinkinfo", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { status = FAIL; sprintf( errbuf, mess, level, level - 1); H5Epush(__FILE__, "HE5_PTbcklinkinfo", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTfwdlinkinfo | | | | DESCRIPTION: Returns link field to following level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | linkfield char linkage field | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTfwdlinkinfo(hid_t pointID, int level, char *linkfield) { herr_t status = SUCCEED;/* routine return status variable */ hid_t fid = FAIL; /* HDF-EOS file id */ hid_t gid = FAIL; /* "POINTS" group ID */ long idx = FAIL; /* Point index */ char *mess = "No Forward Linkage Defined between levels: %d and %d.\n"; char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTfwdlinkinfo", &fid, &gid, &idx); if (status == SUCCEED) { /* Check that level is within bounds for fwdlink info */ if (level >= 0 && level < HE5_PTnlevels(pointID) - 1) { status = HE5_PTlinkinfo(pointID, gid, level, "+", linkfield); if (status == FAIL) { sprintf( errbuf, mess, level, level + 1); H5Epush(__FILE__, "HE5_PTfwdlinkinfo", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } else { status = FAIL; sprintf( errbuf, mess, level, level + 1); H5Epush(__FILE__, "HE5_PTfwdlinkinfo", __LINE__, H5E_IO, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTlevelindx | | | | DESCRIPTION: Returns index number for a named level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | n int Level number (0 - based) | | | | INPUTS: | | pointID hid_t point structure ID | | levelname char point level name | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTlevelindx(hid_t pointID, const char *levelname) { int level = FAIL;/* Level corresponding to levelname (RETURN) */ int nlevels = FAIL;/* Number of levels in point */ herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "POINTS" group ID */ long idx = FAIL;/* Point index */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ CHECKPOINTER(levelname); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTlevelindx", &fid, &gid, &idx); if (status == SUCCEED) { /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if(nlevels == FAIL) { sprintf(errbuf, "Cannot get the number of levels in point.\n"); H5Epush(__FILE__, "HE5_PTlevelindx", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else if(nlevels == 0) { sprintf(errbuf, "There are no levels in point.\n"); H5Epush(__FILE__, "HE5_PTlevelindx", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } else { /* Loop through all levels in point */ /* -------------------------------- */ for (level = 0; level < nlevels; level++) { /* If it matches input levelname then exit loop */ /* -------------------------------------------- */ if (strcmp(HE5_PTXPoint[ idx ].level[ level ].name, levelname) == 0) break; } } } /* Levelname not found so set error status */ /* --------------------------------------- */ if (level == nlevels) level = FAIL; COMPLETION: return(level); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwrbckptr | | | | DESCRIPTION: Writes back pointer records | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level index (0 - based) | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 00 A.Muslimov Changed the interface. | | Mar 00 A.Muslimov Modified to reflect changes in HDF5 library: | | H5Tinsert_array should be replaced by two calls | | H5Tarray_create() and H5Tinsert(). | | Sep 04 S.Zhao Changed "long long" to "LONGLONG" for Windows. | | Feb 06 Abe Taaheri Support for STRING fields, | | | | END_PROLOG | ----------------------------------------------------------------------------*/ static herr_t HE5_PTwrbckptr(hid_t pointID, int level) { herr_t status = FAIL;/* routine return status variable */ int TypeFlag = FAIL;/* Data type Flag */ int k; /* Loop index */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "POINTS" group ID */ hid_t link_id = FAIL;/* "Linkage" group ID */ hid_t bckid = FAIL;/* "BACKPOINTER" dataset ID */ hid_t typeID = FAIL;/* Data type ID */ hid_t tid = FAIL;/* Data type ID */ hid_t fldtype = FAIL;/* Field data type ID */ hid_t xfer_list= FAIL;/* Property list ID */ hid_t dataID_curr = FAIL;/* current level dataset ID */ hid_t dataID_prev = FAIL;/* previous level dataset ID */ hid_t arr_id = FAIL;/* Array datatype ID */ size_t datasize = 0; /* Input data size parameter */ long idx = FAIL;/* Point index */ LONGLONG j; /* Loop indices */ hsize_t count[1] = {0}; /* Number of elements to write */ hsize_t nrecPrev = 0; /* Number of records in previous level */ hsize_t nrecCurr = 0; /* Number of records in current level */ hsize_t dims[HE5_DTSETRANKMAX];/* Data member dimension */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char *mess = "No Linkage Defined between levels: %d and %d.\n"; char errbuf[HE5_HDFE_ERRBUFSIZE];/* buffer for error message */ bckptr *bck = (bckptr *)NULL;/* struct to write bckpointer data to */ HE5_CmpDTSinfo currLevel; /* structure for current level information */ /* Data buffers */ /* ------------------------- */ int *intFldCurr; int *intFldPrev; float *fltFldCurr; float *fltFldPrev; double *dblFldCurr; double *dblFldPrev; long *lngFldCurr; long *lngFldPrev; char *chrFldCurr; char *chrFldPrev; int string_size; hid_t cdatatype = FAIL; hid_t fldnumtype; /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTwrbckptr", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check the level number */ /* ---------------------- */ if (level <= 0) { sprintf(errbuf, "Passed wrong level number. Level should be > 0. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get Back-Linkage Field (copy into utlbuf) */ /* ----------------------------------------- */ status = HE5_PTbcklinkinfo(pointID, level, utlbuf); if (status == FAIL) { sprintf(errbuf, mess, level, level - 1); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get number of fields in Current level */ /* ------------------------------------- */ status = HE5_PTlevelinfo(pointID, level, &currLevel); if (status == FAIL) { sprintf(errbuf, "Cannot get information about current level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Initialize dims[] array */ /* ----------------------- */ for (k = 0; k < HE5_DTSETRANKMAX; k++) dims[ k ] = 0; /* Get current level dataset ID */ /* ---------------------------- */ dataID_curr = HE5_PTXPoint[idx].level[level].ID; /* Get the field data type and number of elements (for char ) */ /* ---------------------------------------------------------- */ for (k = 0; k < currLevel.nfields; k++) { if (memcmp(currLevel.fieldname[k], utlbuf, strlen(utlbuf)) == 0) { fldtype = currLevel.dtype[k]; fldnumtype = currLevel.numtype[k]; dims[0] = (hsize_t)(currLevel.dims[k][0]); if(currLevel.dclass[k] == H5T_STRING) { TypeFlag = 5; string_size = HE5_PTgetdtypesize(dataID_curr, k); if (string_size == FAIL) { sprintf(errbuf,"Cannot get member datatype size.\n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else { cdatatype = HE5_EHconvdatatype(currLevel.numtype[k]); /* if numtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use numtype itself */ if(cdatatype == FAIL) { cdatatype = currLevel.numtype[k]; } if(H5Tequal(cdatatype, H5T_NATIVE_INT)) TypeFlag = 1; else if(H5Tequal(cdatatype, H5T_NATIVE_LONG)) TypeFlag = 2; else if(H5Tequal(cdatatype, H5T_NATIVE_FLOAT)) TypeFlag = 3; else if(H5Tequal(cdatatype, H5T_NATIVE_DOUBLE)) TypeFlag = 4; else if(H5Tequal(cdatatype, H5T_NATIVE_CHAR)) TypeFlag = 0; } } /* Deallocate memory */ /* ----------------- */ if (currLevel.fieldname[k] != NULL) free(currLevel.fieldname[k]); } /* Get number of records in current level */ /* -------------------------------------- */ nrecCurr = HE5_PTnrecs(pointID,level); if (nrecCurr == 0) { sprintf(errbuf, "No records in current level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get number of records in previous level */ /* --------------------------------------- */ nrecPrev = HE5_PTnrecs(pointID,level-1); if (nrecPrev == 0) { sprintf(errbuf, "No records in previous level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for bckpointer dataset */ /* -------------------------------------- */ bck = (bckptr *)calloc(nrecCurr, sizeof(bckptr)); if (bck == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get previous level dataset ID */ /* ----------------------------- */ dataID_prev = HE5_PTXPoint[idx].level[level-1].ID; /* Get ID of Linkage group */ /* ------------------------ */ link_id = HE5_PTXPoint[idx].link_id; /* Get data buffer containing link field records in current level */ /* -------------------------------------------------------------- */ switch (TypeFlag) { case 5: /* string type field */ { datasize = (size_t)(dims[0] * sizeof(char)); chrFldCurr = (char *)calloc(nrecCurr, string_size); if (chrFldCurr == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } chrFldPrev = (char *)calloc(nrecPrev, string_size); if (chrFldPrev == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(chrFldCurr); free(bck); return(FAIL); } /* Create Compound datatype */ /* ------------------------ */ tid = H5Tcreate(H5T_COMPOUND, string_size); if (tid == FAIL) { sprintf(errbuf, "Cannot create Compound datatype. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(chrFldCurr); free(chrFldPrev); free(bck); return(FAIL); } /* Create array datatype */ /* --------------------- */ arr_id = H5Tcopy(H5T_C_S1); if (arr_id == FAIL) { sprintf(errbuf, "Cannot create array data type. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } H5Tset_size(arr_id,string_size); H5Tset_strpad(arr_id, H5T_STR_NULLPAD); /* Add array field */ /* --------------- */ status = H5Tinsert(tid, utlbuf, 0, arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot add array data field. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } /* Read the link field data from Current level */ /* ------------------------------------------- */ status = H5Dread(dataID_curr, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, chrFldCurr); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from current level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } /* Read the link field data from Previous level */ /* -------------------------------------------- */ status = H5Dread(dataID_prev, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, chrFldPrev); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from previous level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } /* Release datatype ID */ /* -------------------- */ status = H5Tclose(arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the array datatype ID. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } /* Loop through input records */ /* -------------------------- */ for (k = 0; k < nrecCurr; k++){ for (j = 0; j < nrecPrev; j++){ if (strcmp((chrFldCurr + (k*string_size)), (chrFldPrev + (j*string_size))) == 0) { bck[k].back = j; break; } } } free(chrFldCurr); free(chrFldPrev); } break; case 0: { datasize = (size_t)(dims[0] * sizeof(char)); chrFldCurr = (char *)calloc(nrecCurr, datasize); if (chrFldCurr == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } chrFldPrev = (char *)calloc(nrecPrev, datasize); if (chrFldPrev == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(chrFldCurr); free(bck); return(FAIL); } /* Create Compound datatype */ /* ------------------------ */ tid = H5Tcreate(H5T_COMPOUND, datasize); if (tid == FAIL) { sprintf(errbuf, "Cannot create Compound datatype. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(chrFldCurr); free(chrFldPrev); free(bck); return(FAIL); } /* Create array datatype */ /* --------------------- */ /*arr_id = H5Tarray_create(HE5_EHdtype2mtype(fldtype), 1, dims, NULL);*/ cdatatype = HE5_EHconvdatatype(fldnumtype); /* if fldnumtype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use fldnumtype itself */ if(cdatatype == FAIL) { cdatatype = fldnumtype; } arr_id = H5Tarray_create(cdatatype, 1, dims, NULL); if (arr_id == FAIL) { sprintf(errbuf, "Cannot create array data type. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } /* Add array field */ /* --------------- */ status = H5Tinsert(tid, utlbuf, 0, arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot add array data field. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } /* Read the link field data from Current level */ /* ------------------------------------------- */ status = H5Dread(dataID_curr, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, chrFldCurr); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from current level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } /* Read the link field data from Previous level */ /* -------------------------------------------- */ status = H5Dread(dataID_prev, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, chrFldPrev); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from previous level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } /* Release datatype ID */ /* -------------------- */ status = H5Tclose(arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot release the array datatype ID. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(chrFldCurr); free(chrFldPrev); return(FAIL); } /* Loop through input records */ /* -------------------------- */ for (k = 0; k < nrecCurr; k++){ for (j = 0; j < nrecPrev; j++){ if (memcmp(chrFldCurr+k*datasize, chrFldPrev+j*datasize, dims[0]) == 0) { bck[k].back = j; break; } } } free(chrFldCurr); free(chrFldPrev); } break; case 1: { intFldCurr = (int *)calloc(nrecCurr, sizeof(int)); intFldPrev = (int *)calloc(nrecPrev, sizeof(int)); /* Create Compound datatype */ /* ------------------------ */ tid = H5Tcreate(H5T_COMPOUND, sizeof(int)); if (tid == FAIL) { sprintf(errbuf, "Cannot create Compound datatype. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(intFldCurr); free(intFldPrev); free(bck); return(FAIL); } /* Insert data member */ /* ------------------ */ status = H5Tinsert(tid, utlbuf, 0, HE5_EHdtype2mtype(fldtype)); if (status == FAIL) { sprintf(errbuf, "Cannot insert data member. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(intFldCurr); free(intFldPrev); return(FAIL); } /* Read the link field data from Current level */ /* ------------------------------------------- */ status = H5Dread(dataID_curr, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, intFldCurr); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from current level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(intFldCurr); free(intFldPrev); return(FAIL); } /* Read the link field data from Previous level */ /* -------------------------------------------- */ status = H5Dread(dataID_prev, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, intFldPrev); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from previous level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(intFldCurr); free(intFldPrev); return(FAIL); } /* Loop through input records */ /* -------------------------- */ for (k = 0; k < nrecCurr; k++){ for (j = 0; j < nrecPrev; j++){ if (intFldCurr[k] == intFldPrev[j]) { bck[k].back = j; break; } } } free(intFldCurr); free(intFldPrev); } break; case 2: { lngFldCurr = (long *)calloc(nrecCurr, sizeof(long)); lngFldPrev = (long *)calloc(nrecPrev, sizeof(long)); /* Create Compound datatype */ /* ------------------------ */ tid = H5Tcreate(H5T_COMPOUND, sizeof(long)); if (tid == FAIL) { sprintf(errbuf, "Cannot create Compound datatype. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(lngFldCurr); free(lngFldPrev); free(bck); return(FAIL); } /* Insert data member */ /* ------------------ */ status = H5Tinsert(tid, utlbuf, 0, HE5_EHdtype2mtype(fldtype)); if (status == FAIL) { sprintf(errbuf, "Cannot insert data member. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(lngFldCurr); free(lngFldPrev); return(FAIL); } /* Read the link field data from Current level */ /* ------------------------------------------- */ status = H5Dread(dataID_curr, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, lngFldCurr); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from current level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(lngFldCurr); free(lngFldPrev); return(FAIL); } /* Read the link field data from Previous level */ /* -------------------------------------------- */ status = H5Dread(dataID_prev, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, lngFldPrev); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from previous level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(lngFldCurr); free(lngFldPrev); return(FAIL); } /* Loop through input records */ /* -------------------------- */ for (k = 0; k < nrecCurr; k++){ for (j = 0; j < nrecPrev; j++){ if (lngFldCurr[k] == lngFldPrev[j]) { bck[k].back = j; break; } } } free(lngFldCurr); free(lngFldPrev); } break; case 3: { fltFldCurr = (float *)calloc(nrecCurr, sizeof(float)); fltFldPrev = (float *)calloc(nrecPrev, sizeof(float)); /* Create Compound datatype */ /* ------------------------ */ tid = H5Tcreate(H5T_COMPOUND, sizeof(float)); if (tid == FAIL) { sprintf(errbuf, "Cannot create Compound datatype. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fltFldCurr); free(fltFldPrev); free(bck); return(FAIL); } /* Insert data member */ /* ------------------ */ status = H5Tinsert(tid, utlbuf, 0, HE5_EHdtype2mtype(fldtype)); if (status == FAIL) { sprintf(errbuf, "Cannot insert data member. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(fltFldCurr); free(fltFldPrev); return(FAIL); } /* Read the link field data from Current level */ /* ------------------------------------------- */ status = H5Dread(dataID_curr, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, fltFldCurr); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from current level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(fltFldCurr); free(fltFldPrev); return(FAIL); } /* Read the link field data from Previous level */ /* -------------------------------------------- */ status = H5Dread(dataID_prev, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, fltFldPrev); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from previous level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(fltFldCurr); free(fltFldPrev); return(FAIL); } /* Loop through input records */ /* -------------------------- */ for (k = 0; k < nrecCurr; k++){ for (j = 0; j < nrecPrev; j++){ if (fltFldCurr[k] == fltFldPrev[j]) { bck[k].back = j; break; } } } free(fltFldCurr); free(fltFldPrev); } break; case 4: { dblFldCurr = (double *)calloc(nrecCurr, sizeof(double)); dblFldPrev = (double *)calloc(nrecPrev, sizeof(double)); /* Create Compound datatype */ /* ------------------------ */ tid = H5Tcreate(H5T_COMPOUND, sizeof(double)); if (tid == FAIL) { sprintf(errbuf, "Cannot create Compound datatype. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(dblFldCurr); free(dblFldPrev); free(bck); return(FAIL); } /* Insert data member */ /* ------------------ */ status = H5Tinsert(tid, utlbuf, 0, HE5_EHdtype2mtype(fldtype)); if (status == FAIL) { sprintf(errbuf, "Cannot insert data member. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(dblFldCurr); free(dblFldPrev); return(FAIL); } /* Read the link field data from Current level */ /* ------------------------------------------- */ status = H5Dread(dataID_curr, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dblFldCurr); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from current level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(dblFldCurr); free(dblFldPrev); return(FAIL); } /* Read the link field data from Previous level */ /* -------------------------------------------- */ status = H5Dread(dataID_prev, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dblFldPrev); if (status == FAIL) { sprintf(errbuf, "Cannot read link field from previous level. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); free(dblFldCurr); free(dblFldPrev); return(FAIL); } /* Loop through input records */ /* -------------------------- */ for (k = 0; k < nrecCurr; k++){ for (j = 0; j < nrecPrev; j++){ if (dblFldCurr[k] == dblFldPrev[j]) { bck[k].back = j; break; } } } free(dblFldCurr); free(dblFldPrev); } break; default: { sprintf(errbuf, "Link record datatype is not supported. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } } /* Release datatype ID */ /* -------------------- */ status = H5Tclose(tid); if (status == FAIL) { sprintf(errbuf, "Cannot release the datatype ID. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Get ID of BCKPOINTER data */ /* -------------------------- */ sprintf(utlbuf, "%s%d%s%d", "BCKPOINTER:", level, "->", level - 1); /* Open "BCKPOINTER" dataset */ /* ------------------------- */ bckid = H5Dopen(link_id, utlbuf); if (bckid == FAIL) { sprintf(errbuf, "Cannot open the \"BCKPOINTER\" dataset. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } datasize = (size_t)sizeof(bckptr); count[0] = (hsize_t)nrecCurr; /* Extend BCKPOINTER dataset */ /* -------------------------- */ status = H5Dextend(bckid, count); if (status == FAIL) { sprintf(errbuf, "Cannot extend the \"BCKPOINTER\" dataset. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Get datatype ID of BCKPOINTER data */ /* ----------------------------------- */ typeID = H5Dget_type(bckid); if (typeID == FAIL) { sprintf(errbuf, "Cannot get the datatype of \"BCKPOINTER\" dataset. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Create the property list */ /* -------------------------- */ xfer_list = H5Pcreate(H5P_DATASET_XFER); if (xfer_list == FAIL) { sprintf(errbuf, "Cannot create the property list. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Set buffer */ /* ----------- */ status = H5Pset_buffer(xfer_list, datasize, NULL, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot set the buffer. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Write back pointer values to "BCKPOINTER" dataset */ /* ------------------------------------------------- */ status = H5Dwrite(bckid, typeID, H5S_ALL,H5S_ALL, xfer_list, bck); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the \"BCKPOINTER\" dataset. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Release dataset ID */ /* ------------------- */ status = H5Dclose(bckid); if (status == FAIL) { sprintf(errbuf, "Cannot release the dataset ID. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Release datatype ID */ /* -------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the datatype ID. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Release property list ID */ /* ------------------------- */ status = H5Pclose(xfer_list); if (status == FAIL) { sprintf(errbuf, "Cannot release the property list ID. \n"); H5Epush(__FILE__, "HE5_PTwrbckptr", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } free(bck); return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTrdbckptr | | | | DESCRIPTION: Reads back pointers | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level index (0 - based) | | | | OUTPUTS: | | buffer void Data buffer | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | 12/20/99 A. Muslimov Added proper error handlings after the function | | calls. Made some minor (mostly cosmetic) changes. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Nov 00 A.Muslimov Changed the interface. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_PTrdbckptr(hid_t pointID, int level, void *buffer) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t bckid = FAIL;/* "BACKPOINTER" dataset ID */ hid_t typeID = FAIL;/* Data type ID */ hid_t link_id = FAIL;/* "Linkage" group ID */ long idx = FAIL;/* Point index */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char *mess = "No Linkage Defined between levels: %d and %d.\n"; char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTrdbckptr", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTrdbckptr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check the level number */ /* ---------------------- */ if (level <= 0) { sprintf(errbuf, "Passed wrong level number. Level should be > 0. \n"); H5Epush(__FILE__, "HE5_PTrdbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get Back-Linkage Field */ /* ---------------------- */ status = HE5_PTbcklinkinfo(pointID, level, utlbuf); if (status == FAIL) { sprintf(errbuf, mess, level, level - 1); H5Epush(__FILE__, "HE5_PTrdbckptr", __LINE__, H5E_OHDR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get ID of "Linkage" group */ /* ------------------------ */ link_id = HE5_PTXPoint[idx].link_id; /* Get ID of BCKPOINTER data */ /* -------------------------- */ sprintf(utlbuf, "%s%d%s%d","BCKPOINTER:", level, "->", level - 1); /* READ THE "BCKPOINTER" DATASET */ /* ----------------------------- */ /* Open the "BCKPOINTER" dataset */ /* ----------------------------- */ bckid = H5Dopen(link_id, utlbuf); if (bckid == FAIL) { sprintf(errbuf,"Cannot open the \"BCKPOINTER\" dataset. \n"); H5Epush(__FILE__, "HE5_PTrdbckptr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create Compound datatype */ /* ------------------------ */ typeID = H5Tcreate(H5T_COMPOUND, sizeof(bckptr)); if (typeID == FAIL) { sprintf(errbuf,"Cannot create the Compound datatype. \n"); H5Epush(__FILE__, "HE5_PTrdbckptr", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Insert data member */ /* ------------------ */ status = H5Tinsert(typeID,"BCKPOINTER",HOFFSET(bckptr, back),H5T_NATIVE_LLONG); if (status == FAIL) { sprintf(errbuf,"Cannot insert data member to \"BCKPOINTER\" dataset. \n"); H5Epush(__FILE__, "HE5_PTrdbckptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Read the data from the dataset */ /* ------------------------------ */ status = H5Dread(bckid, typeID, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer); if (status == FAIL) { sprintf(errbuf,"Cannot read data from the \"BCKPOINTER\" dataset. \n"); H5Epush(__FILE__, "HE5_PTrdbckptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* release dataset ID */ /* ------------------ */ status = H5Dclose(bckid); if (status == FAIL) { sprintf(errbuf,"Cannot release the dataset ID. \n"); H5Epush(__FILE__, "HE5_PTrdbckptr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* release datatype ID */ /* ------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf,"Cannot release the datatype ID. \n"); H5Epush(__FILE__, "HE5_PTrdbckptr", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwrfwdptr | | | | DESCRIPTION: Write forward pointer records | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level index (0 - based) | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/20/99 A. Muslimov Added proper error handlings after the function | | calls. Corrected memory management stuff. Made | | some minor (mostly cosmetic) changes. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Nov 00 A.Muslimov Changed the interface. | | Sept 04 S.Zhao Changed "long long" to "LONGLONG" for Windows. | | Feb 06 Abe Taaheri Support for STRING fields and setting pointers to -1| | values when the records in child level is not | | monotonic | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_PTwrfwdptr(hid_t pointID, int level) { herr_t status = FAIL; /* routine return status variable */ int FORWARD = TRUE; /* Forward pointer flag */ int nlevels = 0; /* Number of levels in point */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t gid = FAIL; /* POINTS group ID */ hid_t fwdID = FAIL; /* "FORWARD" pointer data set ID */ hid_t typeID = FAIL; /* Data type ID */ hid_t link_id = FAIL; /* "Linkage" group ID */ long idx = FAIL; /* Point index */ LONGLONG max = 0; /* Maximun back pointer value */ LONGLONG i, j, k; /* Loop indices */ LONGLONG start = 0; /* Loop index */ LONGLONG nrec = 0; /* # of records in FWDPOINTER dataset */ /* hsize_t nrec = 0;*/ /* # of records in FWDPOINTER dataset */ hsize_t count = 0; /* Size of the fwdpointer dataset */ bckptr *bck = (bckptr *)NULL;/* Struct for bckpointer dataset */ fwdptr *fwd = (fwdptr *)NULL;/* Struct for fwdpointer dataset */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTwrfwdptr", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get number of levels in point */ /* ----------------------------- */ nlevels = HE5_PTnlevels(pointID); /* Get number of records in following level */ /* ---------------------------------------- */ nrec = (level < nlevels - 1) ? (LONGLONG)HE5_PTnrecs(pointID, level + 1) : 0; /* If records exist in current and following level... */ /* -------------------------------------------------- */ if ((int)HE5_PTnrecs(pointID, level) > 0 && (int)nrec > 0) { /* Allocate memory */ /* --------------- */ bck = (bckptr *)calloc((int)nrec, sizeof(bckptr)); if (bck == (bckptr *)NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = HE5_PTrdbckptr(pointID, level + 1, bck); if (status == FAIL ) { sprintf(errbuf, "Cannot read the back pointer. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Find Max BackPointer value */ /* -------------------------- */ max = bck[0].back; for (i = 1; i < nrec; i++) { if (bck[i].back > max) { max = bck[i].back; } } /* Allocate memory for fwdpointer struct */ /* ------------------------------------- */ fwd = (fwdptr *)calloc((int)max + 1, sizeof(fwdptr)); if(fwd == (fwdptr *)NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(bck); return(FAIL); } /* Get ID of "Linkage" group */ /* ------------------------- */ link_id = HE5_PTXPoint[idx].link_id; /* Get ID of FWDPOINTER dataset */ /* ---------------------------- */ sprintf(utlbuf, "%s%d%s%d", "FWDPOINTER:", level, "->", level+1); /* Open FWDPOINTER dataset */ /* ----------------------- */ fwdID = H5Dopen(link_id, utlbuf); if (fwdID == FAIL) { sprintf(errbuf, "Cannot open the dataset. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fwd); free(bck); return(FAIL); } count = (hsize_t)max + 1; /* Extend the dataset size */ /* ----------------------- */ status = H5Dextend(fwdID, &count); if (status == FAIL) { sprintf(errbuf, "Cannot extend the dataset.\n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fwd); free(bck); return(FAIL); } /* Get dataset FWDPOINT:?->? datatype */ /* ---------------------------------- */ typeID = H5Dget_type(fwdID); if (typeID == FAIL) { sprintf(errbuf, "Cannot get the data type ID. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(fwd); free(bck); return(FAIL); } /* Set the values for the forward pointers */ /* --------------------------------------- */ /* Fill Fwd Ptr buffers with -1 */ /* ---------------------------- */ for ( k = 0; k <= max; k++) { fwd[k].begin = (LONGLONG)FAIL; fwd[k].extent = (LONGLONG)FAIL; } /* Set forward pointer flag to 1 (TRUE) */ /* ----------------------------- */ FORWARD = TRUE; /* Loop through all records */ /* ------------------------ */ for (j = 0; j < nrec; j++) { /* If fwd extent entry not yet written for rec[j] ... */ /* ----------------------------------------------- */ if (fwd[bck[j].back].extent == (LONGLONG)FAIL) { /* Set fwd begin to (possible) beginning of sequence */ /* -------------------------------------------- */ fwd[bck[j].back].begin = (LONGLONG)j; /* Set fwd extent to initial value of sequence */ /* ------------------------------------- */ fwd[bck[j].back].extent = (LONGLONG)j; } else { /* If numbers in sequence ... */ /* -------------------------- */ if ((LONGLONG)j - fwd[bck[j].back].extent == 1) { /* Set Buf1 to current value of sequence */ /* ------------------------------------- */ fwd[bck[j].back].extent = (LONGLONG)j; } else { /* Back pointers in following level not monotonic */ /* ---------------------------------*/ /* Set begin begin and extent for first record in Forward pointer to Fail */ /* -------------------------------------- */ fwd[0].begin = (LONGLONG)FAIL; fwd[0].extent = (LONGLONG)FAIL; /* also set to fail other elemets */ fwd[bck[j].back].begin = (LONGLONG)FAIL; fwd[bck[j].back].extent = (LONGLONG)FAIL; /* Set forward pointer flag to 0 */ /* ----------------------------- */ FORWARD = FALSE; break; } } } /* Although setting to (-1,-1) of first forward pointer record for non-monotonic backward pointers is good enough for knowing this fact, let's put -1 in rest of the records for making output in hdf file less confusing */ if((fwd[0].begin == (LONGLONG)FAIL) && (fwd[0].extent == (LONGLONG)FAIL)) { for ( k = 1; k <= max; k++) { fwd[k].begin = (LONGLONG)FAIL; fwd[k].extent = (LONGLONG)FAIL; } } /* Back pointers in following level are monotonic */ /* ---------------------------------------------- */ if (FORWARD == TRUE) { for (k = 0; k <= max; k++) { fwd[k].begin = fwd[k].begin; fwd[k].extent = fwd[k].extent - fwd[k].begin + 1; } } /* Write data to the "FWDPOINTER" */ /* ------------------------------ */ status = H5Dwrite(fwdID, typeID, H5S_ALL, H5S_ALL, H5P_DEFAULT, fwd); if (status == FAIL ) { sprintf(errbuf, "Cannot write data to the dataset. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fwd != NULL) free(fwd); if (bck != NULL) free(bck); return(FAIL); } if (bck != NULL) free(bck); if (fwd != NULL) free(fwd); /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(fwdID); if (status == FAIL ) { sprintf(errbuf, "Cannot release the dataset ID. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(typeID); if (status == FAIL ) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptr", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTrdfwdptr | | | | DESCRIPTION: Read forward pointer records | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level index (0 - based) | | | | | | OUTPUTS: | | buffer void Data buffer | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | 12/20/99 A. Muslimov Added proper error handlings after the function | | calls. Made some minor (mostly cosmetic) changes. | | 7.18.99 A.Muslimov Unmasked hdf5 data types. | | Nov 00 A.Muslimov Changed the interface. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_PTrdfwdptr(hid_t pointID, int level, void *buffer) { herr_t status = FAIL;/* routine return status variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t link_id = FAIL;/* Linkage group ID */ hid_t fwdID = FAIL;/* FWDPOINTER dataset ID */ hid_t typeID = FAIL;/* FWDPOINTER dataset datatype ID */ long idx = FAIL;/* Point index */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* error message buffer */ fwdptr fwd; /* Tmp FWDPOINTER struct dataset */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTrdfwdptr", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get ID of Linkage group */ /* ------------------------ */ link_id = HE5_PTXPoint[idx].link_id; /* Get name string of FWDPOINTER dataset */ /* ------------------------------------- */ sprintf(utlbuf, "%s%d%s%d", "FWDPOINTER:", level, "->", level + 1); /* Open the "FWDPOINTER" dataset */ /* ----------------------------- */ fwdID = H5Dopen(link_id, utlbuf); if (fwdID == FAIL) { sprintf(errbuf, "Cannot open the dataset \"%s\". \n", utlbuf); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the (Compound) dataset type ID */ /* ---------------------------------- */ typeID = H5Dget_type(fwdID); if (typeID == FAIL) { sprintf(errbuf, "Cannot get the data type ID. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Create (Compound) datatype */ /* -------------------------- */ typeID = H5Tcreate(H5T_COMPOUND, sizeof(fwdptr)); if (typeID == FAIL) { sprintf(errbuf, "Cannot create compound datatype. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Insert "BEGIN" data member */ /* -------------------------- */ status = H5Tinsert(typeID, "BEGIN", HOFFSET(fwdptr, begin), H5T_NATIVE_LLONG); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"BEGIN\" data member. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Insert "EXTENT" data member */ /* --------------------------- */ status = H5Tinsert(typeID, "EXTENT", HOFFSET(fwdptr, extent), H5T_NATIVE_LLONG); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"EXTENT\" data member. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Read BEGIN & EXTENT fields in first record */ /* ------------------------------------------ */ status = H5Dread(fwdID, typeID, H5S_ALL, H5S_ALL, H5P_DEFAULT, &fwd); if (status == FAIL) { sprintf(errbuf, "Cannot read \"FWDPOINTER\" dataset. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Check if first record is not a garbage */ /* -------------------------------------- */ if (fwd.begin == FAIL || fwd.extent == FAIL) { /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(fwdID); if (status == FAIL) { sprintf(errbuf, "Cannot release dataset ID. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release datatype ID. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(FAIL); } /* Read BEGIN & EXTENT fields for all records */ /* ------------------------------------------ */ status = H5Dread(fwdID, typeID, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer); if (status == FAIL) { sprintf(errbuf, "Cannot read \"FWDPOINTER\" dataset. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the dataset ID */ /* ---------------------- */ status = H5Dclose(fwdID); if (status == FAIL) { sprintf(errbuf, "Cannot release dataset ID. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_DATASET, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release datatype ID. \n"); H5Epush(__FILE__, "HE5_PTrdfwdptr", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTupdatelevel | | | | DESCRIPTION: Updates the specified fields and records of a level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | fieldlist char fieldlist to read (comma-separated) | | nrec hsize_t Number of records to read | | recs hssize_t array of record numbers to read | | data void data buffer | | | | OUTPUTS: | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Nov 00 A.Muslimov Changed the interface. | | Mar 01 A.Muslimov Updated to reflect changes in the HDF5 library. | | 09/13/01 A.Muslimov Added mutex "lock"/"unlock" calls. | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTupdatelevel(hid_t pointID, int level, char *fieldlist, hsize_t nrec, hssize_t recs[], void *data) { herr_t status = FAIL;/* routine return status variable */ int nlevels = 0; /* Number of levels in point */ int rank = 1; /* Rank of compound dataset */ int j; /* Loop index */ long idx = FAIL;/* Point index */ long nfields = 0; /* Number of fields in fieldlist */ long i; /* Loop inde x */ long dum = FAIL;/* Dummy variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "POINTS" group ID */ hid_t dataID = FAIL;/* Dataset ID */ hid_t dspace = FAIL;/* Disk data space ID */ hid_t mspace = FAIL;/* Memory data space ID */ hid_t typeID = FAIL;/* Data type ID */ hsize_t nallrec = 0; /* Number of records in Point */ hsize_t dims[1] = {0}; /* member dimensions in dataset */ hsize_t *coord = NULL;/* Coordinates of elemnts to update */ size_t datasize = 0; /* Data size (bytes) of each record */ size_t slen[HE5_HDFE_DIMBUFSIZE]; /* String length array */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char *pntr[HE5_HDFE_DIMBUFSIZE]; /* String pointer array */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_CmpDTSinfo info; /* Structure with the dataset information */ HE5_LOCK; CHECKPOINTER(data); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTupdatelevel", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if (nlevels == 0) { status = FAIL; sprintf(errbuf, "No Levels Defined for point.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } else if (nlevels < level) { status = FAIL; sprintf(errbuf, "Only %d levels defined for the point. \n", nlevels); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get dataset ID */ /* -------------- */ dataID = HE5_PTXPoint[idx].level[level].ID; /* Initialize slen[] array */ /* ----------------------- */ for (j = 0; j < HE5_HDFE_DIMBUFSIZE; j++) slen[ j ] = 0; /* Parse field list */ /* ---------------- */ nfields = HE5_EHparsestr(fieldlist, ',', pntr, slen); /* Check that all fields in list exist in level */ /* -------------------------------------------- */ for (i = 0; i < nfields; i++) { memmove(utlbuf, pntr[i], slen[i]); utlbuf[slen[i]] = 0; if (HE5_PTfexist(dataID, utlbuf, NULL, NULL, NULL, NULL) != 1) { status = FAIL; sprintf(errbuf, "Field: \"%s\" does not exist.\n", utlbuf); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Check input records to update */ /* ----------------------------- */ if( nrec == 0 || recs == NULL ) { /* Get neumber of records in level */ /* ------------------------------- */ nallrec = HE5_PTnrecs(pointID, level); if (nallrec == 0) { sprintf(errbuf, "Cannot retrieve number of records in Point. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_PTlevelinfo() */ /* ---------------------- */ status = HE5_PTlevelinfo(pointID, level, &info); if (status == FAIL) { sprintf(errbuf, "Cannot get the level information. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the dataset size */ /* -------------------- */ datasize = info.datasize; /* Release pointers to the name buffers */ /* ------------------------------------ */ for (j = 0; j < info.nfields; j++) { if (info.fieldname[j] != NULL) free(info.fieldname[j]); } /* Update all records in level */ /* --------------------------- */ status = HE5_PTwritelevel(pointID, level, &nallrec, &datasize, data); if (status == FAIL) { sprintf(errbuf, "Cannot write updated data to the level. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } else if( nrec > 0 && recs != NULL ) { /* Get dataset space and datatype */ /* ------------------------------ */ dspace = H5Dget_space(dataID); if (dspace == FAIL) { sprintf(errbuf, "Cannot get the data space ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get data type ID */ /* ---------------- */ typeID = H5Dget_type(dataID); if (typeID == FAIL) { sprintf(errbuf, "Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } dims[0] = nrec; /* Create the memory data space */ /* ---------------------------- */ mspace = H5Screate_simple(rank, dims, NULL); if (mspace == FAIL) { sprintf(errbuf, "Cannot create the data space.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory */ /* --------------- */ coord = (hsize_t *)calloc(nrec, sizeof(hsize_t)); if (coord == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Loop through all records to update */ /* ---------------------------------- */ for (i = 0; i < nrec; i++) coord[i] = (hsize_t)recs[i]; /* Select elements to update */ /* ------------------------- */ status = H5Sselect_elements(dspace, H5S_SELECT_SET, nrec, (const hsize_t *)coord); if (status == FAIL) { sprintf(errbuf, "Cannot select elements.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(coord); return(FAIL); } /* Update selected records */ /* ----------------------- */ status = H5Dwrite(dataID, typeID, mspace, dspace, H5P_DEFAULT, data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(coord); return(FAIL); } /* Release memory */ /* -------------- */ free(coord); /* Release data space ID */ /* --------------------- */ status = H5Sclose(mspace); if (status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* --------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(dspace); if (status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Update Pointers to Previous Level */ /* -------------------------------- */ if (level > 0) { /* Store back linkage field in utlbuf */ /* ---------------------------------- */ status = HE5_PTbcklinkinfo(pointID, level, utlbuf); if (status == FAIL) { sprintf(errbuf, "Cannot get backward linkage information.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Check whether back linkage field is in fieldlist */ /* ------------------------------------------------ */ dum = HE5_EHstrwithin(utlbuf, fieldlist, ','); if (dum != FAIL) { /* Back pointers to previous level */ /* ------------------------------- */ status = HE5_PTwrbckptr(pointID, level); if (status == FAIL) { sprintf(errbuf, "Cannot write backward pointer.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Forward pointers from previous level */ /* ------------------------------------ */ status = HE5_PTwrfwdptr(pointID, level - 1); if (status == FAIL) { sprintf(errbuf, "Cannot write forward pointer.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } /* Update Pointers to Next Level */ /* ---------------------------- */ if (level < HE5_PTnlevels(pointID) - 1 && dum != FAIL) { /* Store forward linkage field in utlbuf */ /* ------------------------------------- */ status = HE5_PTfwdlinkinfo(pointID, level, utlbuf); if (status == FAIL) { sprintf(errbuf, "Cannot get forward linkage information.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Check whether forward linkage field is in fieldlist */ /* --------------------------------------------------- */ dum = HE5_EHstrwithin(utlbuf, fieldlist, ','); if (dum != FAIL) { /* Back pointers from next level */ /* ----------------------------- */ status = HE5_PTwrbckptr(pointID, level + 1); if (status == FAIL) { sprintf(errbuf, "Cannot write backward pointer.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Forward pointers to next level */ /* ------------------------------ */ status = HE5_PTwrfwdptr(pointID, level); if (status == FAIL) { sprintf(errbuf, "Cannot write forward pointer.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } COMPLETION: HE5_UNLOCK; return(status); } /* ***************************************************************************** | | | F O R T R A N 7 7 W R A P P E R S | | | ***************************************************************************** */ /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTopenF (FORTRAN wrapper) | | | | DESCRIPTION: Opens or creates HDF file in order to create, read, or write | | a grid. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | FileID int None HDF-EOS file ID | | | | INPUTS: | | | | filename char* None Filename | | Flags uintn Access Code | | | | OUTPUTS: | | None | | | | NOTES: | | | | HDF5 Library Functions Called: | | | | None | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | 3/12/02 A.Muslimov Added more "Flags" options for core metadata. | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTopenF(char *filename, uintn Flags) { hid_t fid = FAIL;/* hdf5 type file ID */ int FileID = FAIL;/* Return file ID */ uintn flags = 9999;/* HDF5 file access code */ char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTopenF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Set up the file access flag */ /* --------------------------- */ if (Flags == HE5F_ACC_RDWR || Flags == HDF5_ACC_RDWR) flags = H5F_ACC_RDWR; else if (Flags == HE5F_ACC_RDONLY || Flags == HDF5_ACC_RDONLY) flags = H5F_ACC_RDONLY; else if (Flags == HE5F_ACC_TRUNC || Flags == HDF5_ACC_CREATE) flags = H5F_ACC_TRUNC; else { sprintf(errbuf, "File access flag is not supported. \n"); H5Epush(__FILE__, "HE5_PTopenF", __LINE__, H5E_ARGS, H5E_UNSUPPORTED, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Call HE5_PTopen to perform file access */ /* -------------------------------------- */ fid = HE5_PTopen(filename,flags); if(fid == FAIL) { sprintf(errbuf, "Error calling HE5_PTopen() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_PTopenF", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } FileID = (int)fid; free(errbuf); return(FileID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTcreateF (FORTRAN wrapper) | | | | DESCRIPTION: Creates a new point structure and returns point ID. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | pointID int Point structure ID | | | | INPUTS: | | FileID int None HDF-EOS file id | | pointname char Point structure name | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTcreateF(int FileID, char *pointname) { int PointID = FAIL;/* point ID (return value) */ hid_t pointID = FAIL;/* HDF5 type point ID */ hid_t fid = FAIL;/* HDF5 type file ID */ char *errbuf = (char *)NULL; /* Buffer for error message */ errbuf = (char *)calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char) ); if (errbuf == NULL) { H5Epush(__FILE__, "HE5_PTcreateF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } fid = (hid_t)FileID; pointID = HE5_PTcreate(fid, pointname); if (pointID == FAIL) { sprintf(errbuf, "Error calling HE5_PTcreate() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_PTcreateF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); PointID = (int)pointID; return(PointID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTattachF (FORTRAN wrapper) | | | | DESCRIPTION: Attaches to an existing grid within the file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | pointID int point structure ID | | | | INPUTS: | | FileID int HDF-EOS file ID | | pointname char point structure name | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTattachF(int FileID, char *pointname) { int PointID = FAIL; /* Return value of the Point ID */ hid_t pointID = FAIL; /* HDF5 type Point ID */ hid_t fid = FAIL; /* HDF5 type file ID */ char *errbuf = (char *)NULL;/* Buffer for error message */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTattachF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } fid = (hid_t)FileID; pointID = HE5_PTattach(fid, pointname); if(pointID == FAIL) { sprintf(errbuf, "Error calling HE5_PTattach() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_PTattachF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); PointID = (int)pointID; return(PointID); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTdetachF (FORTRAN wrapper) | | | | DESCRIPTION: Detaches from grid interface and performs file housekeeping. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | PointID int None point structure ID | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTdetachF(int PointID) { int ret = FAIL;/* (int) Return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t pointID = FAIL;/* HDF5 type point ID */ char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTdetachF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } pointID = (hid_t)PointID; status = HE5_PTdetach(pointID); if(status == FAIL) { sprintf(errbuf, "Error calling HE5_PTdetach() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_PTdetachF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTcloseF (FORTRAN wrapper) | | | | DESCRIPTION: Closes file. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int None return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | | | FileID int HDF-EOS type file ID | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTcloseF(int FileID) { int ret = FAIL;/* (int) return status variable */ hid_t fid = FAIL;/* HDF5 type file ID */ herr_t status = FAIL;/* routine return status variable */ char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTcloseF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } fid = (hid_t)FileID; /* Call HE5_PTclose to perform file close */ /* -------------------------------------- */ status = HE5_PTclose(fid); if(status == FAIL) { sprintf(errbuf, "Error calling HE5_PTclose() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_PTcloseF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } free(errbuf); ret = (int)status; return(ret); } /* Definition routines */ /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTdeflevelF (FORTRAN wrapper) | | | | DESCRIPTION: Defines a level within the point data set. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | levelname char name of level | | rank int Rank of Fields | | fieldlist char Fieldlist to read (comma-separated) | | dim_sizes void Sizes of field dimensions | | datasize long Datasize of compound structure | | offset long Offsets of each of the fields | | dtype int Datatypes of each of the fields | | array int array flag identifier | | | | | | | | | | OUTPUTS: | | None | | | | NOTES: Metadata block needs to be developed | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTdeflevelF(int pointID, const char *levelname, int rank[], char *fieldlist, long *dim_sizes, int dtype[], int array[]) { herr_t status = FAIL;/* routine return status variable */ int ret = FAIL;/* (int) Return status variable */ int i, j, k = 0; hid_t PointID = FAIL; HE5_CmpDTSinfo dtsinfo; long nfields = FAIL; long max_rank = 0; long nelements_field = 0; long *datatype_size = (long *)NULL; long *datasize_field = (long *)NULL; long *offset = (long *)NULL; long datasize = 0; size_t slen[HE5_HDFE_DIMBUFSIZE]; char *errbuf = (char *)NULL; /* Error message buffer */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char *pntr[HE5_HDFE_DIMBUFSIZE]; /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTdeflevelF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Parse field list */ /* ---------------- */ nfields = HE5_EHparsestr(fieldlist, ',', pntr, slen); /* Set up level data structure */ /* --------------------------- */ dtsinfo.nfields = (int)nfields; /* Calculate maximum rank of all the fields */ /* ---------------------------------------- */ for( i = 0; i < nfields; i++ ) { if( rank[i] > max_rank ) max_rank = rank[i]; } /* Load dimension array (2-d fortran dimension array is in fortran order) */ /* ----------------------------------------------------------------------- */ for( i = 0; i < max_rank; i++ ) { for( j = 0; j < nfields; j++ ) { k = i * (int)nfields + j; dtsinfo.dims[j][i] = (size_t)dim_sizes[k]; } } /* Store fieldname in level data structure */ /* --------------------------------------- */ for (i = 0; i < nfields; i++) { dtsinfo.fieldname[i] = (char *)calloc(HE5_HDFE_NAMBUFSIZE,sizeof(char)); memmove(utlbuf, pntr[i], slen[i]); utlbuf[slen[i]] = '\0'; memmove(dtsinfo.fieldname[i], utlbuf, slen[i]+1); } datatype_size = (long *)calloc(nfields,sizeof(long)); datasize_field = (long *)calloc(nfields,sizeof(long)); offset = (long *)calloc(nfields,sizeof(long)); for( i = 0; i < nfields; i++) { switch( dtype[i] ) { case HE5T_NATIVE_INT: { datatype_size[i] = sizeof(int); } break; case HE5T_NATIVE_FLOAT: { datatype_size[i] = sizeof(float); } break; case HE5T_NATIVE_DOUBLE: { datatype_size[i] = sizeof(double); } break; case HE5T_NATIVE_CHAR: { datatype_size[i] = sizeof(char); } break; case HE5T_NATIVE_LONG: { datatype_size[i] = sizeof(long); } break; default: break; } nelements_field = 0; for( j = 0; j < rank[i]; j++ ) { nelements_field = nelements_field + (long)dtsinfo.dims[i][j]; } datasize_field[i] = nelements_field*datatype_size[i]; } offset[0] = 0; datasize = datasize_field[0]; for( i = 1; i < nfields; i++) { offset[i] = offset[i-1] + datasize_field[i-1]; datasize = datasize + datasize_field[i]; } for( i = 0; i < nfields; i++ ) { dtsinfo.array[i] = array[i]; dtsinfo.rank[i] = rank[i]; dtsinfo.offset[i] = (off_t)offset[i]; dtsinfo.dtype[i] = HE5_EHconvdatatype(dtype[i]); /* if dtype[i] is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use dtype[i] itself */ if(dtsinfo.dtype[i] == FAIL) { dtsinfo.dtype[i] = dtype[i]; } } dtsinfo.datasize = (size_t)datasize; PointID = (hid_t)pointID; /* Call HE5_PTdeflevel() */ /* --------------------- */ status = HE5_PTdeflevel(PointID, levelname, &dtsinfo); if (status == FAIL ) { sprintf(errbuf, "Call to HE5_PTdeflevel() failed. \n"); H5Epush(__FILE__, "HE5_PTdeflevel", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } /* Free up space */ /* ------------- */ for (i = 0; i < nfields; i++ ) free(dtsinfo.fieldname[i]); free(errbuf); free(datatype_size); free(datasize_field); free(offset); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTdeflinkageF (FORTRAN wrapper) | | | | DESCRIPTION: Defines link field between two (adjacent) levels. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | parent char parent level name | | child char child level name | | linkfield char linkage field name | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ========= ============ ============================================== | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTdeflinkageF(int pointID, char *parent, char *child, char *linkfield) { int ret = FAIL;/* (int) Return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t PointID = FAIL;/* hdf5 type file ID */ char *errbuf = NULL;/* Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTdeflinkageF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } PointID = (hid_t)pointID; /* Call HE5_PTdeflinkage */ /* -------------------------------------- */ status = HE5_PTdeflinkage(PointID, parent, child, linkfield); if(status == FAIL) { sprintf(errbuf, "Error calling HE5_PTdeflinkageF() from FORTRAN wrapper. \n"); H5Epush(__FILE__, "HE5_PTdeflinkageF", __LINE__, H5E_FILE, H5E_CANTOPENFILE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; free(errbuf); return(ret); } /* I/O routines */ /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTreadlevelF (FORTRAN wrapper) | | | | DESCRIPTION: Reads data from the specified fields and records of a level. | | Reads only one field at a time | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | fieldname char Name of field | | ntype int HDF numbertype of field datatype | | size int Memory size (bytes) of field being | | read. | | | | OUTPUTS: | | datbuf void Data buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTreadlevelF(int pointID, int level, char *fieldname, int ntype, void *datbuf) { int ret = FAIL;/* (int) return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t ptID = FAIL; hid_t dtype = FAIL;/* HDF5 type data type ID */ char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTcloseF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } dtype = HE5_EHconvdatatype(ntype); /* if ntype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ if(dtype == FAIL) { dtype = ntype; } ptID = (hid_t)pointID; /* Call HE5_PTreadlevel_f to read data */ /* ----------------------------------- */ status = HE5_PTreadlevel_f(ptID, level, fieldname, dtype, datbuf); if (status == FAIL) { sprintf(errbuf, "Reading data failed.\n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTreadlevel_f | | | | DESCRIPTION: Reads data from the specified fields and records of a level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | fieldname char Name of field | | ntype int HDF numbertype of field datatype | | dtype hid_t datatype ID of field | | | | OUTPUTS: | | datbuf Data buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_PTreadlevel_f(hid_t pointID, int level, char *fieldname, hid_t dtype, void *datbuf) { herr_t status = FAIL;/* routine return status variable */ int nlevels = 0; /* Number of levels in point */ int i, j; /* Loop index */ int ii = 0; int nflds = FAIL; int result = 99; int field_size = 0; int rank = 0; size_t datatype_size = 0; hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t dataID = FAIL;/* dataset ID */ hid_t xfer_list = FAIL;/* Property list ID */ hid_t typeID = FAIL;/* compound datatype ID */ hid_t arr_id = FAIL;/* Array datatype ID */ hid_t mtype = FAIL;/* Memory data type ID */ hsize_t dims[HE5_DTSETRANKMAX];/* Array of dimension sizes */ hsize_t datasize = 0;/* Size (bytes) of a dataset to read */ long idx = FAIL;/* Point index */ HE5_CmpDTSinfo dtsinfo;/* Structure to read information about level*/ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTreadlevel_f", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf, "Checking for the point ID failed.\n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Initialize dims[] array */ /* ----------------------- */ for (i = 0; i < HE5_DTSETRANKMAX; i++) dims[ i ] = 0; /* Get number of levels in point */ /* ----------------------------- */ nlevels = HE5_PTnlevels(pointID); if (nlevels == 0) { status = FAIL; sprintf(errbuf, "No Levels Defined for point ID: %d\n", pointID); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } else if (nlevels < level) { /* Report error if level # to large */ /* -------------------------------- */ status = FAIL; sprintf(errbuf, "Only %d levels Defined for point ID: %d\n", nlevels, pointID); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_FILE, H5E_SEEKERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get level dataset ID */ /* ------------------ */ dataID = HE5_PTXPoint[idx].level[level].ID; /* Create property list */ /* -------------------- */ xfer_list = H5Pcreate(H5P_DATASET_XFER); if (xfer_list == FAIL) { sprintf(errbuf, "Cannot create the property list. \n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Call HE5_PTlevelinfo() */ /* ---------------------- */ status = HE5_PTlevelinfo(pointID, level, &dtsinfo); if (status == FAIL) { sprintf(errbuf, "Cannot get the level information. \n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the dataset size */ /* -------------------- */ datasize = (hsize_t)(dtsinfo.datasize); /* Set the buffer */ /* -------------- */ status = H5Pset_buffer(xfer_list, datasize, NULL, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot set the read buffer. \n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nflds = dtsinfo.nfields; /* Check that field does exist */ /* --------------------------- */ if (HE5_PTfexist(dataID, fieldname, NULL, NULL, NULL, NULL) != 1) { status = FAIL; sprintf(errbuf, "Field: \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Find index of fieldname in the compound datatype */ /* ------------------------------------------------ */ for( i = 0; i < nflds; i++ ) { result = strcmp(fieldname,dtsinfo.fieldname[i]); if( result == 0 ) { ii = i; result = 99; } } i = ii; /* Calculate the data size of the field */ /* ------------------------------------ */ rank = dtsinfo.rank[i]; field_size = 1; for( j=0; j < rank; j++ ) field_size = (int)(field_size*dtsinfo.dims[i][j]); mtype = HE5_EHdtype2mtype(dtype); datatype_size = H5Tget_size(mtype); field_size = field_size*((int)datatype_size); /* Create Compound datatype */ /* ------------------------ */ typeID = H5Tcreate(H5T_COMPOUND, field_size); /* field_size is size of the entire field */ if (typeID == FAIL) { status = FAIL; sprintf(errbuf, "Cannot create the compound data type.\n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Add members of a compound datatype to read */ /* ------------------------------------------ */ /* Check if the member is an array */ /* ------------------------------- */ if ( dtsinfo.array[i] == TRUE) { for (j = 0; j < dtsinfo.rank[i]; j++) dims[j] = (hsize_t)(dtsinfo.dims[i][j]); /* Create array datatype */ /* --------------------- */ arr_id = H5Tarray_create(dtype, dtsinfo.rank[i], (const hsize_t *)dims, NULL); if (arr_id == FAIL) { sprintf(errbuf, "Cannot create \"array\" datatype. \n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Add array field */ /* --------------- */ status = H5Tinsert(typeID, dtsinfo.fieldname[i], 0, arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"array\" element. \n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(arr_id); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID. \n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { status = H5Tinsert(typeID, dtsinfo.fieldname[i], 0,dtype); /* Add atomic field */ /* ---------------- */ if (status == FAIL) { sprintf(errbuf, "Cannot insert \"array\" element. \n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Release pointers to the name buffers */ /* ------------------------------------ */ for (i = 0; i < dtsinfo.nfields; i++) { if (dtsinfo.fieldname[i] != NULL) free(dtsinfo.fieldname[i]); } /* Read out the level fields */ /* ------------------------- */ status = H5Dread(dataID, typeID, H5S_ALL, H5S_ALL, xfer_list, datbuf); if (status == FAIL) { sprintf(errbuf, "Cannot read the level dataset. \n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_DATASET, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the property list ID */ /* ---------------------------- */ status = H5Pclose(xfer_list); if (status == FAIL) { sprintf(errbuf, "Cannot release the property list ID. \n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the datatype ID */ /* ----------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_PTreadlevel_f", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwritelevelF (FORTRAN wrapper) | | | | DESCRIPTION: Writes full records to a level. | | Writes only one field at a time. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | fieldname char Name of field | | count[] long Number of records to write | | ntype int HDF numbertype of field datatype | | data void data buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ========== ============ ============================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTwritelevelF(int pointID, int level, long count[], char *fieldname, int ntype, void *data) { herr_t status = FAIL;/* routine return status variable */ int ret = FAIL;/* (int) return status variable */ hid_t ptID = FAIL; hid_t dtype = FAIL;/* HDF5 type data type ID */ hsize_t count_t1[1] = {0}; char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTcloseF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } dtype = HE5_EHconvdatatype(ntype); /* if ntype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ if(dtype == FAIL) { dtype = ntype; } ptID = (hid_t)pointID; count_t1[0] = (hsize_t)count[0]; /* WRITE data */ /* ---------- */ status = HE5_PTwritelevel_f(ptID, level, count_t1, fieldname, ntype, dtype, data); if (status == FAIL) { sprintf(errbuf, "Cannot write updated data to the level. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwritelevel_f | | | | DESCRIPTION: Writes full records to a level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | count[] hsize_t Number of records to write | | fieldname char Name of field | | ntype int HDF numbertype of field datatype | | dtype hid_t datatype ID of field | | data void data buffer | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ========== ============ ============================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_PTwritelevel_f(hid_t pointID, int level, hsize_t count[], char *fieldname, int ntype, hid_t dtype, void *data) { herr_t status = FAIL;/* routine return status variable */ int nlevels = FAIL;/* Number of levels in point */ int i,j; /* Loop index */ int ii = 0; int nflds = 0; int result = 99; int datatype_size = 0; int field_size = 0; int rank = 0; int err_xfer = FALSE; hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* POINTS group ID */ hid_t dataID = FAIL;/* dataset ID */ hid_t typeID = FAIL;/* data type ID */ hid_t xfer_list = FAIL;/* Property list ID */ hid_t arr_id = FAIL;/* Array datatype ID */ long idx = FAIL;/* Point index */ size_t orig_size = 0; hssize_t nrec = FAIL;/* Current number of records */ hsize_t dims[HE5_DTSETRANKMAX];/* Array of dimension sizes */ hsize_t orig_size_t = 0; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_CmpDTSinfo infolevel; /* Level information data structure */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTwritelevel_f", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for file ID failed. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the current number of records */ /* --------------------------------- */ status = HE5_PTwritesetup(pointID, level, &nrec); if(status == FAIL) { sprintf(errbuf, "Cannot retrieve the current number of records\n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if(nlevels == FAIL) { sprintf(errbuf, "Cannot retrieve the number of levels\n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Report error if no levels (dataset) defined */ /* ------------------------------------------- */ if (nlevels == 0) { status = FAIL; sprintf(errbuf, "No Levels Defined for point ID: %d\n", pointID); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } else if (nlevels < level) { /* Report error if level # to large */ /* -------------------------------- */ status = FAIL; sprintf(errbuf, "Only %d levels Defined for point ID: %d\n", nlevels, pointID); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get the level dataset ID */ /* ------------------------- */ dataID = HE5_PTXPoint[idx].level[level].ID; /* Extend the dataset size */ /* ----------------------- */ status = H5Dextend(dataID, count); if (status == FAIL) { sprintf(errbuf, "Cannot extend the dataset. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Get the datatype ID */ /* ------------------- */ typeID = H5Dget_type(dataID); /* need to get the size of the orig compound datatype */ orig_size = H5Tget_size(typeID); status = H5Tclose(typeID); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } status = HE5_PTlevelinfo(pointID, level, &infolevel); if (status == FAIL) { sprintf(errbuf, "Cannot get the level information. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Check that field does exist */ /* --------------------------- */ if (HE5_PTfexist(dataID, fieldname, NULL, NULL, NULL, NULL) != 1) { status = FAIL; sprintf(errbuf, "Field: \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Find index of fieldname in the compound datatype */ /* ------------------------------------------------ */ nflds = infolevel.nfields; for( i = 0; i < nflds; i++ ) { result = strcmp(fieldname,infolevel.fieldname[i]); if( result == 0 ) { ii = i; result = 99; } } i = ii; /* Calculate the data size of the field */ /* ------------------------------------ */ rank = infolevel.rank[i]; field_size = 1; for( j=0; j < rank; j++ ) field_size = (int)(field_size*infolevel.dims[i][j]); switch( ntype ) { case HE5T_NATIVE_INT: { datatype_size = sizeof(int); } break; case HE5T_NATIVE_FLOAT: { datatype_size = sizeof(float); } break; case HE5T_NATIVE_DOUBLE: { datatype_size = sizeof(double); } break; case HE5T_NATIVE_CHAR: { datatype_size = sizeof(char); } break; case HE5T_NATIVE_LONG: { datatype_size = sizeof(long); } break; default: break; } field_size = field_size*datatype_size; /* Create Compound datatype */ /* ------------------------ */ typeID = H5Tcreate(H5T_COMPOUND, field_size); /* field_size is size of the entire field */ if (typeID == FAIL) { sprintf(errbuf, "Cannot get data type ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Add members to the compound data type */ /* ------------------------------------- */ /* Check if the field is an array */ /* ------------------------------ */ if (infolevel.array[i] == TRUE) { for (j = 0; j < infolevel.rank[i]; j++) dims[j] = (hsize_t)infolevel.dims[i][j]; /* Create array datatypes */ /* ---------------------- */ arr_id = H5Tarray_create(dtype, infolevel.rank[i], (const hsize_t *)dims, NULL); if (arr_id == FAIL) { sprintf(errbuf, "Cannot create \"array\" datatype. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Add array field */ /* --------------- */ status = H5Tinsert(typeID,infolevel.fieldname[i], 0, arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"array\" element. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(arr_id); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Add atomic field */ /* ---------------- */ status = H5Tinsert(typeID,infolevel.fieldname[i], 0,dtype); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"array\" element. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } /* Release pointers to the name buffers */ /* ------------------------------------ */ for (j = 0; j < infolevel.nfields; j++) { if (infolevel.fieldname[j] != NULL) free(infolevel.fieldname[j]); } /* Create the property list */ /* ------------------------ */ xfer_list = H5Pcreate(H5P_DATASET_XFER); if (xfer_list == FAIL) { sprintf(errbuf, "Cannot create the property list ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Set type conversion and background buffer */ /* ----------------------------------------- */ orig_size_t = (hsize_t)orig_size; status = H5Pset_buffer(xfer_list, orig_size_t, NULL, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot set type conversion and background buffer. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Preserve partially initialized fields to the compound datatypes */ /* --------------------------------------------------------------- */ err_xfer = H5Pget_preserve(xfer_list); if (err_xfer == FAIL) { sprintf(errbuf, "Cannot get X-fer property list ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } err_xfer = H5Pset_preserve(xfer_list, 1); if (err_xfer == FAIL) { sprintf(errbuf, "Cannot set X-fer property list ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } err_xfer = H5Pget_preserve(xfer_list); if (err_xfer == FAIL) { sprintf(errbuf, "Cannot get X-fer property list ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Write data to the dataset */ /* ------------------------- */ status = H5Dwrite(dataID, typeID, H5S_ALL, H5S_ALL, xfer_list, data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the dataset. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release data type ID */ /* -------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Release property list ID */ /* ------------------------ */ status = H5Pclose(xfer_list); if (status == FAIL) { sprintf(errbuf, "Cannot release the property list ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_PLIST, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } return (status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwrbckptrF (FORTRAN wrapper) | | | | DESCRIPTION: Writes back pointer records | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | level int level index (0 - based) | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTwrbckptrF(int pointID, int level) { int ret = FAIL;/* (int) Return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t PointID = FAIL;/* HDF5 type point ID */ char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTwrbckptrF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } PointID = (hid_t)pointID; status = HE5_PTwrbckptr(PointID, level); if (status == FAIL) { sprintf(errbuf, "Cannot write back pointer records. \n"); H5Epush(__FILE__, "HE5_PTwrbckptrF", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwrfwdptrF (FORTRAN wrapper) | | | | DESCRIPTION: Write foward pointer records | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | level int level index (0 - based) | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTwrfwdptrF(int pointID, int level) { int ret = FAIL;/* (int) Return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t PointID = FAIL;/* HDF5 type point ID */ char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTwrfwdptrF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } PointID = (hid_t)pointID; status = HE5_PTwrfwdptr(PointID, level - 1); if (status == FAIL) { sprintf(errbuf, "Cannot write back pointer records. \n"); H5Epush(__FILE__, "HE5_PTwrfwdptrF", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTupdatelevelF (FORTRAN wrapper) | | | | DESCRIPTION: Updates the specified field and records of a level. | | Only updates one field at a time. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | fieldlist char fieldlist (of one field) | | nrec long number of records to update | | recs[] long array of record numbers to update | | ntype int HDF numbertype of field datatype | | data void data buffer | | | | OUTPUTS: | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTupdatelevelF(int pointID, int level, char *fieldlist, long nrec, long recs[], int ntype, void *data) { herr_t status = FAIL; hid_t PointID = FAIL; hid_t dtype = FAIL; /* HDF5 type data type ID */ hsize_t nrec_t = 0; hssize_t *recs_t; int i; int ret = FAIL; char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTcloseF", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(ret); } dtype = HE5_EHconvdatatype(ntype); /* if ntype is HE5 numbertype, rather than H5 numbertype, then convert it, otherwise use ntype itself */ if(dtype == FAIL) { dtype = ntype; } PointID = (hid_t)pointID; nrec_t = (hsize_t)nrec; recs_t = (hssize_t *)calloc(nrec, sizeof(hssize_t)); for( i = 0; i < nrec; i++ ) recs_t[i] = (hssize_t)recs[i]; /* Call HE5_PTupdatelevel_f() */ /* -------------------------- */ status = HE5_PTupdatelevel_f(PointID, level, fieldlist, nrec_t, recs_t, ntype, dtype, data); if (status == FAIL) { sprintf(errbuf, "Trouble calling HE5_PTupdatelevel_f(). \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (recs_t != NULL) free(recs_t); } free(errbuf); if (recs_t != NULL) free(recs_t); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTupdatelevel_f | | | | DESCRIPTION: Updates the specified field and records of a level. | | Only updates one field at a time. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | fieldlist char fieldlist (of one field) | | nrec hsize_t Number of records to update | | recs[] hssize_t array of record numbers to update | | ntype int HDF numbertype of field datatype | | dtype hid_t datatype ID of field | | data void data buffer | | | | OUTPUTS: | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static herr_t HE5_PTupdatelevel_f(hid_t pointID, int level, char *fieldlist, hsize_t nrec, hssize_t recs[], int ntype, hid_t dtype, void *data) { herr_t status = FAIL;/* routine return status variable */ int j; /* Loop index */ int nlevels = 0; /* Number of levels in point */ int rank = 1; /* Rank of compound dataset */ int ii = 0; int nflds = 0; int result = 99; int datatype_size = 0; int field_size = 0; int field_rank = 0; int err_xfer = FALSE; long i; /* Loop index */ long idx = FAIL;/* Point index */ long nfields = 0; /* Number of fields in fieldlist */ long dum = FAIL;/* Dummy variable */ hid_t fid = FAIL;/* HDF-EOS file ID */ hid_t gid = FAIL;/* "POINTS" group ID */ hid_t dataID = FAIL;/* Dataset ID */ hid_t dspace = FAIL;/* Disk data space ID */ hid_t mspace = FAIL;/* Memory data space ID */ hid_t typeID = FAIL;/* Data type ID */ hid_t arr_id = FAIL;/* Array datatype ID */ hid_t xfer_list = FAIL;/* Property list ID */ hsize_t nallrec = 0; /* Number of records in Point */ hsize_t dims_1[1] = {0}; /* member dimensions in dataset */ hsize_t *coord = NULL;/* Coordinates of elemnts to update */ hsize_t dims[HE5_DTSETRANKMAX];/* Array of dimension sizes */ hsize_t orig_size_t = 0; size_t orig_size = 0; size_t slen[HE5_HDFE_DIMBUFSIZE]; /* String length array */ char *fieldname = (char *)NULL; /* Field name buffer */ char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char *pntr[HE5_HDFE_DIMBUFSIZE]; /* String pointer array */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ HE5_CmpDTSinfo info; /* Structure with the dataset information */ HE5_CmpDTSinfo infolevel; /* Level information data structure */ /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTupdatelevel_f", &fid, &gid, &idx); if (status == FAIL) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(pointID); if (nlevels == 0) { status = FAIL; sprintf(errbuf, "No Levels Defined for point.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } else if (nlevels < level) { status = FAIL; sprintf(errbuf, "Only %d levels defined for the point. \n", nlevels); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Get dataset ID */ /* -------------- */ dataID = HE5_PTXPoint[idx].level[level].ID; /* Initialize slen[] array */ /* ----------------------- */ for (j = 0; j < HE5_HDFE_DIMBUFSIZE; j++) slen[ j ] = 0; /* Parse field list */ /* ---------------- */ nfields = HE5_EHparsestr(fieldlist, ',', pntr, slen); if( nfields != 1 ) { status = FAIL; sprintf(errbuf, "Should be only one field specified in fieldlist...nfields is not equal to 1 \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } else { fieldname = (char *)calloc(HE5_HDFE_NAMBUFSIZE,sizeof(char)); memmove(utlbuf, pntr[0], slen[0]); utlbuf[slen[0]] = '\0'; memmove(fieldname, utlbuf, slen[0]+1); } /* Check that all fields in list exist in level */ /* -------------------------------------------- */ for (i = 0; i < nfields; i++) { memmove(utlbuf, pntr[i], slen[i]); utlbuf[slen[i]] = 0; if (HE5_PTfexist(dataID, utlbuf, NULL, NULL, NULL, NULL) != 1) { status = FAIL; sprintf(errbuf, "Field: \"%s\" does not exist.\n", utlbuf); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fieldname != NULL) free(fieldname); return(status); } } /* Check input records to update */ /* ----------------------------- */ if( nrec == 0 || recs == NULL ) { /* Get neumber of records in level */ /* ------------------------------- */ nallrec = HE5_PTnrecs(pointID, level); if (nallrec == 0) { sprintf(errbuf, "Cannot retrieve number of records in Point. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fieldname != NULL) free(fieldname); return(FAIL); } /* Call HE5_PTlevelinfo() */ /* ---------------------- */ status = HE5_PTlevelinfo(pointID, level, &info); if (status == FAIL) { sprintf(errbuf, "Cannot get the level information. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fieldname != NULL) free(fieldname); return(FAIL); } /* Release pointers to the name buffers */ /* ------------------------------------ */ for (j = 0; j < info.nfields; j++) { if (info.fieldname[j] != NULL) free(info.fieldname[j]); } /* Update all records in level */ /* --------------------------- */ /* USE "writelevel_f" routine which works on ONE FIELD at a time */ /* ------------------------------------------------------------- */ status = HE5_PTwritelevel_f(pointID, level, &nallrec, fieldname, ntype, dtype, data); if (status == FAIL) { sprintf(errbuf, "Cannot write updated data to the level. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fieldname != NULL) free(fieldname); return(FAIL); } if (fieldname != NULL) free(fieldname); } else if( nrec > 0 && recs != NULL ) { /* Get dataset space and datatype */ /* ------------------------------ */ dspace = H5Dget_space(dataID); if (dspace == FAIL) { sprintf(errbuf, "Cannot get the data space ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASPACE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fieldname != NULL) free(fieldname); return(FAIL); } /* Get data type ID */ /* ---------------- */ typeID = H5Dget_type(dataID); if (typeID == FAIL) { sprintf(errbuf, "Cannot get the data type ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fieldname != NULL) free(fieldname); return(FAIL); } /* Get the size of the original compound datatype */ /* ---------------------------------------------- */ orig_size = H5Tget_size(typeID); status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fieldname != NULL) free(fieldname); return(FAIL); } status = HE5_PTlevelinfo(pointID, level, &infolevel); if (status == FAIL) { sprintf(errbuf, "Cannot get the level information. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fieldname != NULL) free(fieldname); return(FAIL); } /* Check that field does exist */ /* --------------------------- */ if (HE5_PTfexist(dataID, fieldname, NULL, NULL, NULL, NULL) != 1) { status = FAIL; sprintf(errbuf, "Field: \"%s\" does not exist.\n", fieldname); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_BTREE, H5E_NOTFOUND, errbuf ); HE5_EHprint(errbuf, __FILE__, __LINE__); if (fieldname != NULL) free(fieldname); return(status); } /* Find index of fieldname in the compound datatype */ /* ------------------------------------------------ */ nflds = infolevel.nfields; for( i = 0; i < nflds; i++ ) { result = strcmp(fieldname,infolevel.fieldname[i]); if( result == 0 ) { ii = (int)i; result = 99; } } i = ii; /* Calculate the data size of the field */ /* ------------------------------------ */ field_rank = infolevel.rank[i]; field_size = 1; for( j=0; j < field_rank; j++ ) field_size = (int)(field_size*infolevel.dims[i][j]); switch( ntype ) { case HE5T_NATIVE_INT: { datatype_size = sizeof(int); } break; case HE5T_NATIVE_FLOAT: { datatype_size = sizeof(float); } break; case HE5T_NATIVE_DOUBLE: { datatype_size = sizeof(double); } break; case HE5T_NATIVE_CHAR: { datatype_size = sizeof(char); } break; case HE5T_NATIVE_LONG: { datatype_size = sizeof(long); } break; default: break; } field_size = field_size*datatype_size; /* Create Compound datatype */ /* ------------------------ */ typeID = H5Tcreate(H5T_COMPOUND, field_size); /* field_size is size of the entire field */ if (typeID == FAIL) { sprintf(errbuf, "Cannot get data type ID. \n"); H5Epush(__FILE__, "HE5_PTwritelevel_f", __LINE__, H5E_DATATYPE, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Free previously allocated space */ /* ------------------------------- */ if (fieldname != NULL) free(fieldname); /* Add members to the compound data type */ /* ------------------------------------- */ /* Check if the field is an array */ /* ------------------------------ */ if (infolevel.array[i] == TRUE) { for (j = 0; j < infolevel.rank[i]; j++) dims[j] = (hsize_t)infolevel.dims[i][j]; /* Create array datatypes */ /* ---------------------- */ arr_id = H5Tarray_create(dtype, infolevel.rank[i], (const hsize_t *)dims, NULL); if (arr_id == FAIL) { sprintf(errbuf, "Cannot create \"array\" datatype. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Add array field */ /* --------------- */ status = H5Tinsert(typeID,infolevel.fieldname[i], 0, arr_id); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"array\" element. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release the data type ID */ /* ------------------------ */ status = H5Tclose(arr_id); if (status == FAIL ) { sprintf(errbuf, "Cannot release data type ID. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } } else { /* Add atomic field */ /* ---------------- */ status = H5Tinsert(typeID,infolevel.fieldname[i], 0,dtype); if (status == FAIL) { sprintf(errbuf, "Cannot insert \"array\" element. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Release pointers to the name buffers */ /* ------------------------------------ */ for (j = 0; j < infolevel.nfields; j++) { if (infolevel.fieldname[j] != NULL) free(infolevel.fieldname[j]); } /* Preserve partially initialized fields of the compound datatypes */ /* --------------------------------------------------------------- */ /* Create the property list */ /* ------------------------ */ xfer_list = H5Pcreate(H5P_DATASET_XFER); if (xfer_list == FAIL) { sprintf(errbuf, "Cannot create the property list ID. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_PLIST, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Set type conversion and background buffer */ /* ----------------------------------------- */ orig_size_t = (hsize_t)orig_size; status = H5Pset_buffer(xfer_list, orig_size_t, NULL, NULL); if (status == FAIL) { sprintf(errbuf, "Cannot set type conversion and background buffer. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } err_xfer = H5Pget_preserve(xfer_list); if (err_xfer == FAIL) { sprintf(errbuf, "Cannot get X-fer property list ID. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } err_xfer = H5Pset_preserve(xfer_list, 1); if (err_xfer == FAIL) { sprintf(errbuf, "Cannot set X-fer property list ID. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } err_xfer = H5Pget_preserve(xfer_list); if (err_xfer == FAIL) { sprintf(errbuf, "Cannot get X-fer property list ID. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } dims_1[0] = nrec; /* Create the memory data space */ /* ---------------------------- */ mspace = H5Screate_simple(rank, dims_1, NULL); if (mspace == FAIL) { sprintf(errbuf, "Cannot create the data space.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory */ /* --------------- */ coord = (hsize_t *)calloc(nrec, sizeof(hsize_t)); if (coord == NULL) { sprintf(errbuf, "Cannot allocate memory. \n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Loop through all records to update */ /* ---------------------------------- */ for (i = 0; i < nrec; i++) coord[i] = (hsize_t)recs[i]; /* Select elements to update */ /* ------------------------- */ status = H5Sselect_elements(dspace, H5S_SELECT_SET, nrec, (const hsize_t *)coord); if (status == FAIL) { sprintf(errbuf, "Cannot select elements.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(coord); return(FAIL); } /* Update selected records */ /* ----------------------- */ status = H5Dwrite(dataID, typeID, mspace, dspace, xfer_list, data); if (status == FAIL) { sprintf(errbuf, "Cannot write data to the dataset.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(coord); return(FAIL); } /* Release memory */ /* -------------- */ free(coord); /* Release data space ID */ /* --------------------- */ status = H5Sclose(mspace); if (status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data type ID */ /* --------------------- */ status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Release data space ID */ /* --------------------- */ status = H5Sclose(dspace); if (status == FAIL) { sprintf(errbuf, "Cannot release the data space ID.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASPACE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } /* Update Pointers to Previous Level */ /* -------------------------------- */ if (level > 0) { /* Store back linkage field in utlbuf */ /* ---------------------------------- */ status = HE5_PTbcklinkinfo(pointID, level, utlbuf); if (status == FAIL) { sprintf(errbuf, "Cannot get backward linkage information.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Check whether back linkage field is in fieldlist */ /* ------------------------------------------------ */ dum = HE5_EHstrwithin(utlbuf, fieldlist, ','); if (dum != FAIL) { /* Back pointers to previous level */ /* ------------------------------- */ status = HE5_PTwrbckptr(pointID, level); if (status == FAIL) { sprintf(errbuf, "Cannot write backward pointer.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Forward pointers from previous level */ /* ------------------------------------ */ status = HE5_PTwrfwdptr(pointID, level - 1); if (status == FAIL) { sprintf(errbuf, "Cannot write forward pointer.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } /* Update Pointers to Next Level */ /* ---------------------------- */ if (level < HE5_PTnlevels(pointID) - 1 && dum != FAIL) { /* Store forward linkage field in utlbuf */ /* ------------------------------------- */ status = HE5_PTfwdlinkinfo(pointID, level, utlbuf); if (status == FAIL) { sprintf(errbuf, "Cannot get forward linkage information.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Check whether forward linkage field is in fieldlist */ /* --------------------------------------------------- */ dum = HE5_EHstrwithin(utlbuf, fieldlist, ','); if (dum != FAIL) { /* Back pointers from next level */ /* ----------------------------- */ status = HE5_PTwrbckptr(pointID, level + 1); if (status == FAIL) { sprintf(errbuf, "Cannot write backward pointer.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Forward pointers to next level */ /* ------------------------------ */ status = HE5_PTwrfwdptr(pointID, level); if (status == FAIL) { sprintf(errbuf, "Cannot write forward pointer.\n"); H5Epush(__FILE__, "HE5_PTupdatelevel_f", __LINE__, H5E_DATASET, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } } } return(status); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwriteattrF (FORTRAN wrapper) | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | attrname char attribute name | | ntype int attribute HDF numbertype | | fortcount long Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTwriteattrF(int pointID, const char *attrname, int ntype, long fortcount[], void *datbuf) { int ret = FAIL;/* int return status variable */ int rank = 1; /* Note: It is assumed that fortcout has just */ /* one element to agree with EHattr function */ int i; /* Loop index */ hid_t PointID = FAIL;/* HDF-EOS Swath ID */ hid_t numbertype = FAIL;/* HDF5 data type ID */ herr_t status = FAIL;/* routine return status variable */ hsize_t *count = (hsize_t *)NULL; /* Pointer to count array (C order)*/ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ numbertype = HE5_EHconvdatatype(ntype); if(numbertype == FAIL) { H5Epush(__FILE__, "HE5_PTwriteattrF", __LINE__, H5E_DATATYPE, H5E_BADVALUE, "Error calling HE5_EHconvdatatype() from FORTRAN wrapper."); HE5_EHprint("Error: Error calling HE5_EHconvdatatype() from FORTRAN wrapper, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffers */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTwriteattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Allocate memory for "count" array */ count = (hsize_t *)calloc(rank, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_PTwriteattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) count[i] = (hsize_t)fortcount[rank - 1 - i]; PointID = (hid_t)pointID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of attribute elements.\n"); H5Epush(__FILE__, "HE5_PTwriteattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_PTwriteattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; /* Call PTwriteattr() */ /* ------------------ */ status = HE5_PTwriteattr(PointID, attrname, numbertype, count, tempbuf); if( status == FAIL) { sprintf(errbuf,"Cannot write data to the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTwriteattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { /* Call PTwriteattr() */ /* ------------------ */ status = HE5_PTwriteattr(PointID, attrname, numbertype, count, datbuf); if( status == FAIL) { sprintf(errbuf,"Cannot write data to the attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTwriteattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwritegrpattrF (FORTRAN wrapper) | | | | DESCRIPTION: Writes/updates attribute associated with the "Data" group | | in a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | attrname char attribute name | | ntype int attribute HDF numbertype | | fortcount long Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTwritegrpattrF(int pointID, const char *attrname, int ntype, long fortcount[], void * datbuf) { int ret = FAIL; /* (int) return status variable */ int rank = 1; /* Rank variable */ int i; /* Loop index */ herr_t status = FAIL; /* routine return status variable */ hid_t PointID = FAIL; /* HDF5 type Swath ID */ hid_t numbertype = FAIL; /* HDF5 data type ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count array (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char *)calloc(HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTwritegrpattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Get HDF5 data type ID */ /* --------------------- */ numbertype = HE5_EHconvdatatype(ntype); if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 type data type ID.\n"); H5Epush(__FILE__, "HE5_PTwritegrpattrF", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } count = (hsize_t *)calloc(rank, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_PTwritegrpattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) count[i] = (hsize_t)fortcount[rank - 1 - i]; PointID = (hid_t)pointID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of group attribute elements.\n"); H5Epush(__FILE__, "HE5_PTwritegrpattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_PTwritegrpattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; status = HE5_PTwritegrpattr(PointID, attrname, numbertype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_PTwritegrpattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { status = HE5_PTwritegrpattr(PointID, attrname, numbertype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write group attribute value.\n"); H5Epush(__FILE__, "HE5_PTwritegrpattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTwritelocattrF (FORTRAN wrapper) | | | | DESCRIPTION: Writes/updates attribute associated with the a specified | | level in a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | levelname char level name | | attrname char attribute name | | ntype int attribute HDF numbertype | | fortcount long Number of attribute elements | | datbuf void I/O buffer | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTwritelocattrF(int pointID, const char *levelname, const char *attrname, int ntype, long fortcount[],void * datbuf) { int ret = FAIL; /* routine return status variable */ int rank = 1; /* Note: It is assumed that fortcout has just */ /* one element to agree with EHattr function */ int i = 0; herr_t status = FAIL; /* routine return status variable */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count array (C order) */ hid_t PointID = FAIL; /* Swath HDF5 type ID */ hid_t numbertype = FAIL; /* HDF5 dta type ID */ char *errbuf = (char *)NULL; /* error message buffer */ char *tempbuf = (char *)NULL; /* temp buffer */ /* Get HDF5 type data type ID */ /* -------------------------- */ numbertype = HE5_EHconvdatatype(ntype); if(numbertype == FAIL) { sprintf(errbuf,"Cannot convert to HDF5 data type ID.\n"); H5Epush(__FILE__, "HE5_PTwritelocattrF", __LINE__, H5E_DATATYPE, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTwritelocattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(rank, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_PTwritelocattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } /* Reverse order of dimensions (FORTRAN -> C) */ /* ------------------------------------------ */ for (i = 0; i < rank; i++) count[i] = (hsize_t)fortcount[rank - 1 - i]; PointID = (hid_t)pointID; if ((numbertype == HE5T_CHARSTRING) || (numbertype == H5T_NATIVE_CHAR) || (numbertype == H5T_C_S1)) { if (strlen(datbuf) < count[0]) { sprintf(errbuf,"Size of databuf is less than the number of local attribute elements.\n"); H5Epush(__FILE__, "HE5_PTwritelocattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } /* Allocate memory for temp buffer */ /* ------------------------------- */ tempbuf = (char * )calloc((count[0]+1), sizeof(char)); if(tempbuf == NULL) { sprintf(errbuf,"Cannot allocate memory for temp buffer.\n"); H5Epush(__FILE__, "HE5_PTwritelocattrF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } strncpy(tempbuf, datbuf, count[0]); tempbuf[count[0]] = '\0'; /* Write local attribute buffer */ /* ---------------------------- */ status = HE5_PTwritelocattr(PointID, levelname, attrname, numbertype, count, tempbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write local attribute value.\n"); H5Epush(__FILE__, "HE5_PTwritelocattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); free(tempbuf); return(FAIL); } free(count); free(errbuf); free(tempbuf); } else { /* Write local attribute buffer */ /* ---------------------------- */ status = HE5_PTwritelocattr(PointID, levelname, attrname, numbertype, count, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot write local attribute value.\n"); H5Epush(__FILE__, "HE5_PTwritelocattrF", __LINE__, H5E_ATTR, H5E_WRITEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(count); free(errbuf); return(FAIL); } free(count); free(errbuf); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTreadattrF (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute from a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTreadattrF(int pointID, const char *attrname, void *datbuf) { int ret = FAIL;/* routine return status variable */ herr_t status = FAIL;/* routine return status variable */ hid_t PointID = FAIL;/* HDF-EOS point ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ PointID = (hid_t)pointID; /* Read the attribute buffer */ /* ------------------------- */ status = HE5_PTreadattr(PointID, attrname, datbuf); if ( status == FAIL ) { sprintf(errbuf, "Cannot read the attribute value. \n"); H5Epush(__FILE__, "HE5_PTreadattr", __LINE__, H5E_ATTR, H5E_READERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTreadgrpattrF (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute associated with the "Data" group from a point.| | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTreadgrpattrF(int pointID, const char *attrname, void *datbuf) { int ret = FAIL; /* (int) return status */ herr_t status = FAIL; /* return status variable */ hid_t PointID = FAIL; /* HDF5 type Point ID */ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* Error message buffer */ PointID = (hid_t)pointID; status = HE5_PTreadgrpattr(PointID,attrname,datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Group Attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTreadgrpattr", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTreadlocattrF (FORTRAN wrapper) | | | | DESCRIPTION: Reads attribute associated with a specified level in a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | levelname char level name | | attrname char attribute name | | | | OUTPUTS: | | datbuf void I/O buffer | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTreadlocattrF(int pointID, const char *levelname, const char *attrname, void *datbuf) { int ret = FAIL;/* return status variable */ herr_t status = FAIL;/* return status variable */ hid_t PointID = FAIL;/* HDF5 type Point ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ PointID = (hid_t)pointID; status = HE5_PTreadlocattr( PointID, levelname, attrname, datbuf); if(status == FAIL) { sprintf(errbuf,"Cannot read Attribute \"%s\" associated wth the \"%s\" level.\n", attrname,levelname); H5Epush(__FILE__, "HE5_PTreadlocattr", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTc2fort | | | | DESCRIPTION: Translates a buffer in Fortran order into a buffer in | | 'C' order. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | dims[] long Dimensions of Fortran array | | rank int Rank of Fortran array | | datatype int Datatype of Fortran array | | inputfortbuf void input data buffer (Fortran array) | | | | OUTPUTS: | | outputfortbuf void output data buffer (Fortran array) | | | | NOTES: | | | | | | Date Programmer Description | | ========== ============ ============================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static int HE5_PTc2fort(long dims[], int rank, int datatype, void *inputfortbuf, void *outputfortbuf) { herr_t status = FAIL;/* routine return status variable */ int ret = FAIL;/* (int) return status variable */ int i = 0; int dim_index = 0; long *c_index = (long *)NULL; long *coeffs = (long *)NULL; long *n1 = (long *)NULL; long *fort_order_buf = (long *)NULL; long num_elements1 = 0; long num_elements2 = 0; int *databuf1_int = (int *)NULL; int *databuf2_int = (int *)NULL; float *databuf1_float = (float *)NULL; float *databuf2_float = (float *)NULL; double *databuf1_double = (double *)NULL; double *databuf2_double = (double *)NULL; char *databuf1_char = (char *)NULL; char *databuf2_char = (char *)NULL; long *databuf1_long = (long *)NULL; long *databuf2_long = (long *)NULL; char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTc2fort", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Calculate the number of elements in the array */ /* --------------------------------------------- */ num_elements1 = 1; for( i=0; i < rank; i++ ) num_elements1 = dims[i]*num_elements1; /* Set up arguments for call to HE5_PTgetfort_order() */ /* -------------------------------------------------- */ /* Initialize c_index array */ /* ------------------------ */ c_index = (long *) calloc(rank, sizeof(long)); for( i=0; i< rank; i++ ) c_index[i] = 0; /* Initialize coeffs array */ /* ----------------------- */ coeffs = (long *) calloc(rank, sizeof(long)); for( i=0; i< rank; i++ ) coeffs[i] = 0; coeffs[0] = 1; /* Initialize n1 variable */ /* ---------------------- */ n1 = (long *) calloc(1,sizeof(long)); *n1 = 0; dim_index = 1; /* Initialize fort_order_buf */ /* ------------------------- */ fort_order_buf = (long *) calloc(num_elements1,sizeof(long)); status = HE5_PTgetfort_order(dims, dim_index, c_index, rank, fort_order_buf, coeffs, n1); if (status == FAIL) { sprintf(errbuf, "Call to HE5_PTgetfort_order() failed.\n"); H5Epush(__FILE__, "HE5_PTc2fort", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(fort_order_buf); return(status); } num_elements2 = *n1; /* Check num_elements2 against num_elements1 */ /* ----------------------------------------- */ if( num_elements1 != num_elements2 ) { sprintf(errbuf, "Error with number of elements processed by HE5_PTgetfort_order or HE5_ptc2fort.\n"); H5Epush(__FILE__, "HE5_PTc2fort", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(fort_order_buf); return(FAIL); } switch( datatype ) { case HE5T_NATIVE_INT: { databuf1_int = (int *) calloc(num_elements1,sizeof(int)); memmove(databuf1_int,inputfortbuf,num_elements1*sizeof(int)); databuf2_int = (int *) calloc(num_elements1,sizeof(int)); /* Create the Fortran ordered buffer from the hash list */ /* and the C buffer */ /* ---------------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_int[fort_order_buf[i]] = databuf1_int[i]; } memmove(outputfortbuf,databuf2_int,num_elements1*sizeof(int)); free(databuf1_int); free(databuf2_int); } break; case HE5T_NATIVE_FLOAT: { databuf1_float = (float *) calloc(num_elements1,sizeof(float)); memmove(databuf1_float,inputfortbuf,num_elements1*sizeof(float)); databuf2_float = (float *) calloc(num_elements1,sizeof(float)); /* Create the Fortran ordered buffer from the hash list */ /* and the C buffer */ /* ---------------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_float[fort_order_buf[i]] = databuf1_float[i]; } memmove(outputfortbuf,databuf2_float,num_elements1*sizeof(float)); free(databuf1_float); free(databuf2_float); } break; case HE5T_NATIVE_DOUBLE: { databuf1_double = (double *) calloc(num_elements1,sizeof(double)); memmove(databuf1_double,inputfortbuf,num_elements1*sizeof(double)); databuf2_double = (double *) calloc(num_elements1,sizeof(double)); /* Create the Fortran ordered buffer from the hash list */ /* and the C buffer */ /* ---------------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_double[fort_order_buf[i]] = databuf1_double[i]; } memmove(outputfortbuf,databuf2_double,num_elements1*sizeof(double)); free(databuf1_double); free(databuf2_double); } break; case HE5T_NATIVE_CHAR: { databuf1_char = (char *) calloc(num_elements1,sizeof(char)); memmove(databuf1_char,inputfortbuf,num_elements1*sizeof(char)); databuf2_char = (char *) calloc(num_elements1,sizeof(char)); /* Create the Fortran ordered buffer from the hash list */ /* and the C buffer */ /* ---------------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_char[fort_order_buf[i]] = databuf1_char[i]; } memmove(outputfortbuf,databuf2_char,num_elements1*sizeof(char)); free(databuf1_char); free(databuf2_char); } break; case HE5T_NATIVE_LONG: { databuf1_long = (long *) calloc(num_elements1,sizeof(long)); memmove(databuf1_long,inputfortbuf,num_elements1*sizeof(long)); databuf2_long = (long *) calloc(num_elements1,sizeof(long)); /* Create the Fortran ordered buffer from the hash list */ /* and the C buffer */ /* ---------------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_long[fort_order_buf[i]] = databuf1_long[i]; } memmove(outputfortbuf,databuf2_long,num_elements1*sizeof(long)); free(databuf1_long); free(databuf2_long); } break; default: { sprintf(errbuf, "Bad datatype value in call to HE5_PTc2fort. \n"); H5Epush(__FILE__, "HE5_PTc2fort", __LINE__, H5E_ARGS, H5E_BADVALUE,errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; } break; } /* Free up space */ /* ------------- */ free(c_index); free(coeffs); free(n1); free(fort_order_buf); free(errbuf); status = 0; ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTfort2c | | | | DESCRIPTION: Translates a buffer in Fortran order into a buffer in | | 'C' order. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | dims[] long Dimensions of Fortran array | | rank int Rank of Fortran array | | datatype int Datatype of Fortran array | | inputfortbuf void input data buffer (Fortran array) | | | | OUTPUTS: | | outputfortbuf void output data buffer (Fortran array) | | | | NOTES: | | | | | | Date Programmer Description | | ========== ============ ============================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static int HE5_PTfort2c(long dims[], int rank, int datatype, void *inputfortbuf, void *outputfortbuf) { herr_t status = FAIL;/* routine return status variable */ int ret = FAIL;/* (int) return status variable */ int i = 0; int dim_index = 0; long *c_index = (long *)NULL; long *coeffs = (long *)NULL; long *n1 = (long *)NULL; long *fort_order_buf = (long *)NULL; long num_elements1 = 0; long num_elements2 = 0; int *databuf1_int = (int *)NULL; int *databuf2_int = (int *)NULL; float *databuf1_float = (float *)NULL; float *databuf2_float = (float *)NULL; double *databuf1_double = (double *)NULL; double *databuf2_double = (double *)NULL; char *databuf1_char = (char *)NULL; char *databuf2_char = (char *)NULL; long *databuf1_long = (long *)NULL; long *databuf2_long = (long *)NULL; char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTfort2c", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Calculate the number of elements in the array */ /* --------------------------------------------- */ num_elements1 = 1; for( i=0; i < rank; i++ ) { num_elements1 = dims[i]*num_elements1; } /* Set up arguments for call to HE5_PTgetfort_order() */ /* -------------------------------------------------- */ /* Initialize c_index array */ /* ------------------------ */ c_index = (long *) calloc(rank, sizeof(long)); for( i=0; i< rank; i++ ) c_index[i] = 0; /* Initialize coeffs array */ /* ----------------------- */ coeffs = (long *) calloc(rank, sizeof(long)); for( i=0; i< rank; i++ ) coeffs[i] = 0; coeffs[0] = 1; /* Initialize n1 variable */ /* ---------------------- */ n1 = (long *) calloc(1,sizeof(long)); *n1 = 0; dim_index = 1; /* Initialize fort_order_buf */ /* ------------------------- */ fort_order_buf = (long *) calloc(num_elements1,sizeof(long)); status = HE5_PTgetfort_order(dims, dim_index, c_index, rank, fort_order_buf, coeffs, n1); if (status == FAIL) { sprintf(errbuf, "Call to HE5_PTgetfort_order() failed.\n"); H5Epush(__FILE__, "HE5_PTfort2c", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(fort_order_buf); return(status); } num_elements2 = *n1; /* Check num_elements2 against num_elements1 */ /* ----------------------------------------- */ if( num_elements1 != num_elements2 ) { sprintf(errbuf, "Error with number of elements processed by HE5_PTgetfort_order or HE5_ptfort2c.\n"); H5Epush(__FILE__, "HE5_PTfort2c", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(fort_order_buf); return(FAIL); } switch( datatype ) { case HE5T_NATIVE_INT: { databuf1_int = (int *) calloc(num_elements1,sizeof(int)); memmove(databuf1_int,inputfortbuf,num_elements1*sizeof(int)); databuf2_int = (int *) calloc(num_elements1,sizeof(int)); /* Create the c ordered buffer from the hash list */ /* ---------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_int[i] = databuf1_int[fort_order_buf[i]]; } memmove(outputfortbuf,databuf2_int,num_elements1*sizeof(int)); free(databuf1_int); free(databuf2_int); } break; case HE5T_NATIVE_FLOAT: { databuf1_float = (float *) calloc(num_elements1,sizeof(float)); memmove(databuf1_float,inputfortbuf,num_elements1*sizeof(float)); databuf2_float = (float *) calloc(num_elements1,sizeof(float)); /* Create the c ordered buffer from the hash list */ /* ---------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_float[i] = databuf1_float[fort_order_buf[i]]; } memmove(outputfortbuf,databuf2_float,num_elements1*sizeof(float)); free(databuf1_float); free(databuf2_float); } break; case HE5T_NATIVE_DOUBLE: { databuf1_double = (double *) calloc(num_elements1,sizeof(double)); memmove(databuf1_double,inputfortbuf,num_elements1*sizeof(double)); databuf2_double = (double *) calloc(num_elements1,sizeof(double)); /* Create the c ordered buffer from the hash list */ /* ---------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_double[i] = databuf1_double[fort_order_buf[i]]; } memmove(outputfortbuf,databuf2_double,num_elements1*sizeof(double)); free(databuf1_double); free(databuf2_double); } break; case HE5T_NATIVE_CHAR: { databuf1_char = (char *) calloc(num_elements1,sizeof(char)); memmove(databuf1_char,inputfortbuf,num_elements1*sizeof(char)); databuf2_char = (char *) calloc(num_elements1,sizeof(char)); /* Create the c ordered buffer from the hash list */ /* ---------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_char[i] = databuf1_char[fort_order_buf[i]]; } memmove(outputfortbuf,databuf2_char,num_elements1*sizeof(char)); free(databuf1_char); free(databuf2_char); } break; case HE5T_NATIVE_LONG: { databuf1_long = (long *) calloc(num_elements1,sizeof(long)); memmove(databuf1_long,inputfortbuf,num_elements1*sizeof(long)); databuf2_long = (long *) calloc(num_elements1,sizeof(long)); /* Create the c ordered buffer from the hash list */ /* ---------------------------------------------- */ for( i = 0; i < num_elements1; i++ ) { databuf2_long[i] = databuf1_long[fort_order_buf[i]]; } memmove(outputfortbuf,databuf2_long,num_elements1*sizeof(long)); free(databuf1_long); free(databuf2_long); } break; default: { sprintf(errbuf, "Bad datatype value in call to HE5_PTfort2c. \n"); H5Epush(__FILE__, "HE5_PTfort2c", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); status = FAIL; } break; } /* Free up space */ /* ------------- */ free(c_index); free(coeffs); free(n1); free(fort_order_buf); free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTgetfort_order | | | | DESCRIPTION: Translates a buffer in Fortran order into a buffer in | | 'C' order. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | dims long Dimensions of Fortran array | | dim_index int Current dimension in recursive iteration| | c_index Changing coeffiencients in equation to | | calculate fortran order | | rank int Rank of Fortran array | | coeffs long Constant coefficients in equation to | | calculate fortran order | | | | n long number of elements processed which | | will equal num_elemnts in array | | | | OUTPUTS: | | P long buffer containing Fortran ordering | | | | NOTES: This program is called recursively, once for each of the | | dimensions in the fortran array. Values in c_index and coeffs | | are calculated during each of the recursive calls. Values in | | P are calculated in the last recursive call. | | | | | | | | Date Programmer Description | | ========== ============ ============================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ static int HE5_PTgetfort_order(long *dims, int dim_index, long *c_index, int rank, long *P, long *coeffs, long *n) { herr_t status = FAIL;/* routine return status variable */ int ret = FAIL;/* (int) return status variable */ int i = 0; int j = 0; int k = 0; int l = 0; int dim_index_tt = 0; long K1 = 0; long P1 = 0; char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error message buffer */ /* ---------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTgetfort_order", __LINE__, H5E_FILE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } K1 = 1; for( i = 0; i < dim_index; i++ ) { K1 = dims[i]*K1; } if( dim_index < rank ) { coeffs[dim_index] = K1; dim_index_tt = dim_index; dim_index = dim_index + 1; for( k = 0; k < dims[dim_index_tt-1]; k++ ) { c_index[dim_index_tt-1] = k; status = HE5_PTgetfort_order( dims, dim_index, c_index, rank, P, coeffs, n); if (status == FAIL) { sprintf(errbuf, "Call to HE5_PTgetfort_order() failed.\n"); H5Epush(__FILE__, "HE5_PTgetfort_order", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(status); } } } else { for( l = 0; l < dims[dim_index-1]; l++ ) { P1 = 0; c_index[dim_index-1] = l; for( j = 0; j < rank ; j++ ) { P1 = (coeffs[j])*(c_index[j]) + P1; } P[*n] = P1; *n = *n+1; } } free(errbuf); status = 0; ret = (int)status; return(ret); } /* Inquiry routines */ /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTnrecsF (FORTRAN wrapper) | | | | DESCRIPTION: Returns the number of records in a level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nallrec int Number of records in level | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTnrecsF(int pointID, int level) { hid_t PointID = FAIL;/* HDF5 type point ID */ hsize_t nallrec = 0; /* Number of records in Point */ char *errbuf = (char *)NULL;/*Error message buffer */ PointID = (hid_t)pointID; /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTnrecsF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } nallrec = HE5_PTnrecs(PointID, level); if(nallrec == 0) { sprintf(errbuf, "No records in current level. \n"); H5Epush(__FILE__, "HE5_PTnrecsF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); return((int)nallrec); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTnlevelsF (FORTRAN wrapper) | | | | DESCRIPTION: Returns the number of levels in a point data set. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nlevels int Number of levels in point structure | | | | INPUTS: | | pointID int point structure ID | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTnlevelsF(hid_t pointID) { hid_t PointID = FAIL;/* HDF5 type point ID */ int nlevels = 0; /* Number of levels in point */ char *errbuf = (char *)NULL;/*Error message buffer */ PointID = (hid_t)pointID; /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTnlevelsF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Get number of levels */ /* -------------------- */ nlevels = HE5_PTnlevels(PointID); if(nlevels == FAIL) { sprintf(errbuf, "Cannot retrieve the number of levels. \n"); H5Epush(__FILE__, "HE5_PTnlevelsF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); return((int)nlevels); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTnfieldsF (FORTRAN wrapper) | | | | DESCRIPTION: Returns number of fields defined in a level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nfields int Number of fields in a level | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | | | OUTPUTS: | | strbufsize long String length of fieldlist | | fieldlist char Coma separated list of fields | | NOTES: | | | | | | Date Programmer Description | | ======== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTnfieldsF(int pointID, int level, char *fieldlist, long *strbufsize) { hid_t PointID = FAIL;/* HDF5 type point ID */ int nfields = 0; /* Number of fields in the level of the point*/ char *errbuf = (char *)NULL;/*Error message buffer */ PointID = (hid_t)pointID; /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTnfieldsF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } /* Get number of fields and fieldlist */ /* ---------------------------------- */ nfields = HE5_PTnfields(PointID, level, fieldlist, strbufsize); if(nfields == 0) { sprintf(errbuf, "Cannot retrieve the number of fields. \n"); H5Epush(__FILE__, "HE5_PTnfieldsF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); return((int)nfields); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTlevelindxF (FORTRAN wrapper) | | | | DESCRIPTION: Returns index number for a named level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | n int Level number (0 - based) | | | | INPUTS: | | pointID in point structure ID | | levelname char point level name | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTlevelindxF(int pointID, const char *levelname) { hid_t PointID = FAIL;/* HDF5 type point ID */ int index = FAIL; char *errbuf = (char *)NULL;/*Error message buffer */ PointID = (hid_t)pointID; /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTlevelindxF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } PointID = (hid_t)pointID; /* Get index of named Level */ /* ---------------------------------- */ index = HE5_PTlevelindx(PointID, levelname); if(index == FAIL) { sprintf(errbuf, "Cannot retrieve the Level Index. \n"); H5Epush(__FILE__, "HE5_PTlevelindxF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); return(index); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTgetlevelnameF (FORTRAN wrapper) | | | | DESCRIPTION: Returns level name | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | | | | | OUTPUTS: | | levelname char Level name | | strbufsize long String length of fieldlist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTgetlevelnameF(int pointID, int level, char *levelname, long *strbufsize) { int ret = FAIL; herr_t status = FAIL;/* routine return status variable */ hid_t PointID = FAIL; char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTgetlevelnameF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(ret); } PointID = (hid_t)pointID; /* Get index of named Level */ /* ---------------------------------- */ status = HE5_PTgetlevelname( PointID, level, levelname, strbufsize); if(status == FAIL) { sprintf(errbuf, "Cannot retrieve the Level Name. \n"); H5Epush(__FILE__, "HE5_PTgetlevelnameF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTbcklinkinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Returns link field to previous level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | linkfield char linkage field | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTbcklinkinfoF(int pointID, int level, char *linkfield) { int ret = FAIL; herr_t status = FAIL;/* routine return status variable */ hid_t PointID = FAIL;/* HDF5 type point ID */ char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTbcklinkinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(ret); } PointID = (hid_t)pointID; status = HE5_PTbcklinkinfo( PointID, level, linkfield); if(status == FAIL) { sprintf(errbuf, "Error in Fortran Wrapper HE5_PTbcklinkinfoF(). \n"); H5Epush(__FILE__, "HE5_PTbcklinkinfoF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTfwdlinkinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Returns link field to following level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | linkfield char linkage field | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTfwdlinkinfoF(int pointID, int level, char *linkfield) { int ret = FAIL; herr_t status = FAIL;/* routine return status variable */ hid_t PointID = FAIL;/* HDF5 type point ID */ char *errbuf = (char *)NULL;/*Error message buffer */ /* Allocate memory for error buffer */ /* -------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTfwdlinkinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory to error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(ret); } PointID = (hid_t)pointID; status = HE5_PTfwdlinkinfo( PointID, level, linkfield); if(status == FAIL) { sprintf(errbuf, "Error in Fortran Wrapper HE5_PTfwdlinkinfoF(). \n"); H5Epush(__FILE__, "HE5_PTfwdlinkinfoF", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } free(errbuf); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTlevelinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Returns information about a given level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | | | | | OUTPUTS: | | levelname char Name of Level | | rank int Rank of Fields | | fieldlist char Fieldlist to read (comma-separated) | | dim_sizes Sizes of field dimensions | | datasize long Datasize of compound structure | | offset long Offsets of each of the fields | | dtype int Datatypes of each of the fields | | | | | | | | | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTlevelinfoF(int pointID, int level, char *levelname, int rank[], char *fieldlist, long *dim_sizes, long *datasize, long offset[], int dtype[]) { herr_t status = FAIL;/* routine return status variable */ hid_t PointID = FAIL; HE5_CmpDTSinfo dtsinfo; int ret = FAIL;/* (int) Return status variable */ int i, j, k = 0; long nfields = FAIL; long max_rank = 0; long strbufsize = 0; char errbuf[HE5_HDFE_ERRBUFSIZE]; /* error message buffer */ PointID = (hid_t)pointID; /* Call HE5_PTlevelinfo to get information structure */ /* ------------------------------------------------- */ status = HE5_PTlevelinfo(PointID, level, &dtsinfo); if (status == FAIL) { sprintf(errbuf, "Call to HE5_PTlevelinfo failed.\n"); H5Epush(__FILE__, "HE5_PTlevelinfoF", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nfields = (long)dtsinfo.nfields; *datasize = (long)dtsinfo.datasize; /* Release pointers to the name buffers */ /* ------------------------------------ */ for (j = 0; j < dtsinfo.nfields; j++) { if (dtsinfo.fieldname[j] != NULL) free(dtsinfo.fieldname[j]); } /* Get the levelname */ /* ----------------- */ status = HE5_PTgetlevelname(PointID, level, levelname, &strbufsize); if (status == FAIL) { sprintf(errbuf, "Call to HE5_PTgetlevelname failed.\n"); H5Epush(__FILE__, "HE5_PTlevelinfoF", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } for( i = 0; i < nfields; i++ ) { rank[i] = dtsinfo.rank[i]; offset[i] = (long)dtsinfo.offset[i]; dtype[i] = (int)dtsinfo.dtype[i]; } /* Get fieldlist (output from HE5_PTnfields) */ /* ----------------------------------------- */ HE5_PTnfields(pointID, level, fieldlist, &strbufsize); /* Do work to store dimensions in level data structure */ /* --------------------------------------------------- */ /* Calculate maximum rank */ /* ---------------------- */ for( i = 0; i < nfields; i++ ) { if( rank[i] > max_rank ) max_rank = (long)rank[i]; } /* Load dimension arrays (2-d fortran dimension array is in fortran order) */ /* ----------------------------------------------------------------------- */ for( i = 0; i < max_rank; i++ ) { for( j = 0; j < nfields; j++ ) { k = j * (int)max_rank + i; dim_sizes[k] = (long)dtsinfo.dims[j][i] ; } } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqdatatype (FORTRAN wrapper) | | | | DESCRIPTION: Inquires about datasets in Point | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | fieldname char * Name of field | | attrname char * Name of attribute | | fieldgroup int Field group flag | | | | OUTPUTS: | | dtype int Datatype flag | | class int Class ID | | Order int | | size long | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTinqdatatypeF(int pointID, char *fieldname, char *attrname, int fieldgroup, int *Type, int *Class, int *Order, long *size) { int ret = FAIL; /* (int) status variable */ herr_t status = FAIL; /* return status variable */ size_t *tsize = (size_t *)NULL; /* data size variable */ hid_t *typeID = (hid_t *)NULL; /* HDF5 Data type ID */ hid_t PointID = FAIL; /* HDF5 type Point ID */ H5T_class_t *classID = (H5T_class_t *)NULL;/* Data type class ID */ H5T_order_t *order = (H5T_order_t *)NULL;/* Byte order of datatype */ char *errbuf = (char *)NULL; /* error message buffer */ /* Change Fortran character '0' to NULL */ /* (still works with '0' */ /* ------------------------------------ */ if( *fieldname == '0' ) { *fieldname = (char)NULL; } if( *attrname == '0' ) { *attrname = (char)NULL; } /* Allocate memory for error message buffers */ /* ----------------------------------------- */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } typeID = (hid_t *)calloc(1, sizeof(hid_t)); if(typeID == NULL) { sprintf(errbuf,"Cannot allocate memory for typeID.\n"); H5Epush(__FILE__, "HE5_PTinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } tsize = (size_t *)calloc(1, sizeof(size_t)); if(tsize == NULL) { sprintf(errbuf,"Cannot allocate memory for tsize.\n"); H5Epush(__FILE__, "HE5_PTinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); return(FAIL); } classID = (H5T_class_t *)calloc(1, sizeof(H5T_class_t)); if(classID == (H5T_class_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for classID.\n"); H5Epush(__FILE__, "HE5_PTinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); return(FAIL); } order = (H5T_order_t *)calloc(1, sizeof(H5T_order_t)); if(order == (H5T_order_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for order.\n"); H5Epush(__FILE__, "HE5_PTinqdatatypeF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(typeID); free(tsize); free(classID); return(FAIL); } PointID = (hid_t)pointID; /* Get data type information */ /* ------------------------- */ status = HE5_PTinqdatatype(PointID, fieldname, attrname, fieldgroup, typeID, classID, order, tsize); if(status == FAIL) { sprintf(errbuf,"Cannot get information about data type.\n"); H5Epush(__FILE__, "HE5_PTinqdatatypeF", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } *Type = (int)(*typeID); *Class = (int)(*classID); *Order = (int)(*order); *size = (long)(*tsize); free(errbuf); free(typeID); free(classID); free(order); free(tsize); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqpointF (FORTRAN wrapper) | | | | DESCRIPTION: Returns number and names of point structures in file | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nPoint int Number of point structures in file | | | | INPUTS: | | filename char HDF-EOS filename | | | | OUTPUTS: | | pointlist char List of point names (comma-separated) | | strbufsize long Length of pointlist | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTinqpointF(const char *filename, char *pointlist, long *strbufsize) { int npoint = FAIL; long nPoint = FAIL;/* Number of point structures in file (return) */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ nPoint = HE5_PTinqpoint( filename, pointlist, strbufsize); if ( nPoint < 0 ) { sprintf(errbuf, "Cannot retrieve the list of Point names. \n"); H5Epush(__FILE__, "HE5_PTinqpointF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } npoint = (int)nPoint; return(npoint); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTattrinfoF (FORTRAN wrapper) | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | attrname char attribute name | | | | OUTPUTS: | | ntype int Data type of attribute | | count int Number of attribute elements | | | | | | | | NOTES: | | | | | | Date Programmer Description | | ======= ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTattrinfoF(int pointID, const char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type class ID */ hid_t PointID = FAIL; /* HDF5 type Point ID */ hsize_t *count = (hsize_t *)NULL; /* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *) calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_PTattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *) calloc(1, sizeof(hid_t)); if(ntype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_PTattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } PointID = (hid_t)pointID; status = HE5_PTattrinfo(PointID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about attribute \"%s\".\n", attrname); H5Epush(__FILE__, "HE5_PTattrinfoF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTgrpattrinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves information about attributes in "Data" group. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | attrname char attribute name | | | | OUTPUTS: | | ntype int Data type of attribute | | fortcount long Number of attribute elements | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTgrpattrinfoF(int pointID, const char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type class ID */ hid_t PointID = FAIL; /* HDF5 type Point ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTgrpattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_PTgrpattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if( ntype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_PTgrpattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } PointID = (hid_t)pointID; status = HE5_PTgrpattrinfo(PointID, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about group attribute.\n"); H5Epush(__FILE__, "HE5_PTgrpattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTlocattrinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves information about attributes in associated with a | | specified level in a point. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | levelname char level name | | attrname char attribute name | | | | OUTPUTS: | | ntype int Data type of attribute | | count long Number of attribute elements | | | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTlocattrinfoF(int pointID, const char *levelname, const char *attrname, int *numbertype, long *fortcount) { int ret = FAIL; /* (int) return status variable */ herr_t status = FAIL; /* routine return status variable */ hid_t *ntype = (hid_t *)NULL; /* Data type class ID */ hid_t PointID = FAIL; /* HDF5 type Point ID */ hsize_t *count = (hsize_t *)NULL;/* Pointer to count (C order) */ char *errbuf = (char *)NULL; /* error message buffer */ /* Allocate memory for error message buffers */ errbuf = (char * )calloc( HE5_HDFE_ERRBUFSIZE, sizeof(char)); if(errbuf == NULL) { H5Epush(__FILE__, "HE5_PTlocattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, "Cannot allocate memory for error buffer."); HE5_EHprint("Error: Cannot allocate memory for error buffer, occured", __FILE__, __LINE__); return(FAIL); } count = (hsize_t *)calloc(1, sizeof(hsize_t)); if( count == NULL) { sprintf(errbuf,"Cannot allocate memory for count.\n"); H5Epush(__FILE__, "HE5_PTlocattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); return(FAIL); } ntype = (hid_t *)calloc(1, sizeof(hid_t)); if( ntype == (hid_t *)NULL) { sprintf(errbuf,"Cannot allocate memory for ntype.\n"); H5Epush(__FILE__, "HE5_PTlocattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(errbuf); free(count); return(FAIL); } PointID = (hid_t)pointID; status = HE5_PTlocattrinfo(PointID, levelname, attrname, ntype, count); if(status == FAIL) { sprintf(errbuf,"Cannot get information about local attribute.\n"); H5Epush(__FILE__, "HE5_PTlocattrinfoF", __LINE__, H5E_RESOURCE, H5E_NOSPACE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } *fortcount = (long)(*count); *numbertype = (int)(*ntype); free(errbuf); free(count); free(ntype); ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqattrsF (FORTRAN wrapper) | | | | DESCRIPTION: | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in point struct | | | | INPUTS: | | point ID int point structure ID | | | | OUTPUTS: | | attrnames char Attribute names in point struct | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_PTinqattrsF(int pointID, char *attrnames, long *strbufsize) { long nattr = FAIL;/* Number of attributes (return) */ hid_t PointID = FAIL;/* HDF5 type Point ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ char *attrnames_t = (char *)NULL; char buffer[1] = {'0'}; char buffer1[1] = {'1'}; int result = 1; PointID = (hid_t)pointID; /* Change Fortran character '0' to NULL if needed */ /* ---------------------------------------------- */ buffer1[0] = attrnames[0]; result = memcmp(buffer1,buffer,sizeof(buffer)); if( memcmp(buffer1,buffer,sizeof(buffer)) == 0 ) { result = 0; } if( result == 0 ) nattr = HE5_PTinqattrs(PointID, attrnames_t, strbufsize); if( result != 0 ) nattr = HE5_PTinqattrs(PointID, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_PTinqattrsF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqgrpattrsF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list in "Data" group | | | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in point struct | | | | INPUTS: | | point ID int point structure ID | | | | OUTPUTS: | | attrnames char Attribute names in point struct | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | OUTPUTS: | | None | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_PTinqgrpattrsF(int pointID, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes (return) */ hid_t PointID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ char *attrnames_t = (char *)NULL; char buffer[1] = {'0'}; char buffer1[1] = {'1'}; int result = 1; PointID = (hid_t)pointID; /* Change Fortran character '0' to NULL if needed */ /* ---------------------------------------------- */ buffer1[0] = attrnames[0]; result = memcmp(buffer1,buffer,sizeof(buffer)); if( memcmp(buffer1,buffer,sizeof(buffer)) == 0 ) { result = 0; } if( result == 0 ) nattr = HE5_PTinqgrpattrs(PointID, attrnames_t, strbufsize); if( result != 0 ) nattr = HE5_PTinqgrpattrs(PointID, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_PTinqgrpattrsF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return(nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTinqlocattrsF (FORTRAN wrapper) | | | | DESCRIPTION: Retrieves the number of attributes and string length of | | attribute list from a specified level in a point. | | | | | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | nattr long Number of attributes in a level | | | | INPUTS: | | point ID int point structure ID | | levelname char level name | | | | OUTPUTS: | | attrnames char Attribute names in a level | | (Comma-separated list) | | strbufsize long Attributes name list string length | | | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/01/01 C.Praderas Initial coding | | | | END_PROLOG | -----------------------------------------------------------------------------*/ long HE5_PTinqlocattrsF(int pointID, const char *levelname, char *attrnames, long *strbufsize) { long nattr = FAIL; /* Number of attributes */ hid_t PointID = FAIL; /* HDF5 type swath ID */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ char *attrnames_t = (char *)NULL; char buffer[1] = {'0'}; char buffer1[1] = {'1'}; int result = 1; PointID = (hid_t)pointID; /* Change Fortran character '0' to NULL if needed */ /* ---------------------------------------------- */ buffer1[0] = attrnames[0]; result = memcmp(buffer1,buffer,sizeof(buffer)); if( memcmp(buffer1,buffer,sizeof(buffer)) == 0 ) { result = 0; } if( result == 0 ) nattr = HE5_PTinqlocattrs(PointID, levelname, attrnames_t, strbufsize); if( result != 0 ) nattr = HE5_PTinqlocattrs(PointID, levelname, attrnames, strbufsize); if ( nattr < 0 ) { sprintf(errbuf, "Cannot retrieve the attributes. \n"); H5Epush(__FILE__, "HE5_PTinqlocattrsF", __LINE__, H5E_ATTR, H5E_NOTFOUND, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); } return (nattr); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTnumtypeinfoF (FORTRAN wrapper) | | | | DESCRIPTION: Returns the number type about a given level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status int return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID int point structure ID | | level int level number (0 - based) | | | | | | OUTPUTS: | | numtype int Number types of each of the fields | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Aug 04 S.Zhao Original development | | Dec 05 T.Roegner NCR 44092 - Added CYGWIN capability | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTnumtypeinfoF(int pointID, int level, int numtype[]) { herr_t status = FAIL;/* routine return status variable */ hid_t PointID = FAIL;/* HDF-EOS Point ID */ HE5_CmpDTSinfo dtsinfo; int ret = FAIL;/* (int) Return status variable */ int i = 0; long nfields = FAIL;/* Number of fields in the level*/ char errbuf[HE5_HDFE_ERRBUFSIZE]; /* error message buffer */ PointID = (hid_t)pointID; /* Call HE5_PTlevelinfo to get information structure */ /* ------------------------------------------------- */ status = HE5_PTlevelinfo(PointID, level, &dtsinfo); if (status == FAIL) { sprintf(errbuf, "Call to HE5_PTlevelinfo failed.\n"); H5Epush(__FILE__, "HE5_PTnumtypeinfoF", __LINE__, H5E_ARGS, H5E_BADRANGE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } nfields = (long)dtsinfo.nfields; for( i = 0; i < nfields; i++ ) { numtype[i] = (int)dtsinfo.numtype[i]; } ret = (int)status; return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTgetdtypesize | | | | DESCRIPTION: Returns size of datatype for a member in a given level. | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | ret int return size if SUCCEED, (-1) FAIL | | | | INPUTS: | | levelID hid_t level dataset ID | | fieldnum int member number in the level | | structure (0 - based) | | | | | | OUTPUTS: | | None | | | | NOTES: | | | | Date Programmer Description | | ====== ============ ================================================= | | Dec 05 Abe Taaheri Original development | | | | END_PROLOG | -----------------------------------------------------------------------------*/ int HE5_PTgetdtypesize(hid_t levelID, int i) { hid_t typeID = FAIL; /* compound datatype ID */ hid_t mdt = FAIL; /* Member data type ID */ int ret = FAIL; char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error message buffer */ int status; typeID = H5Dget_type(levelID); mdt = H5Tget_member_type(typeID, i); ret = H5Tget_size(mdt); if (ret == FAIL) { sprintf(errbuf, "Cannot get the size of member daat type ID.\n"); H5Epush(__FILE__, "HE5_PTgetdtypesize", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Tclose(mdt); if (status == FAIL) { sprintf(errbuf, "Cannot release the field data type ID.\n"); H5Epush(__FILE__, "HE5_PTgetdtypesize", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } status = H5Tclose(typeID); if (status == FAIL) { sprintf(errbuf, "Cannot release the data type ID.\n"); H5Epush(__FILE__, "HE5_PTgetdtypesize", __LINE__, H5E_DATATYPE, H5E_CLOSEERROR, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(FAIL); } return(ret); } /*----------------------------------------------------------------------------| | BEGIN_PROLOG | | | | FUNCTION: HE5_PTgetlevelname_fromSM | | | | DESCRIPTION: Returns name of a given level from Structure Metadata | | | | | | Return Value Type Units Description | | ============ ====== ========= ===================================== | | status herr_t return status (0) SUCCEED, (-1) FAIL | | | | INPUTS: | | pointID hid_t point structure ID | | level int level number (0 - based) | | | | OUTPUTS: | | LevelName char string Name for rquested level obtained from | | Structure Metadata | | | | NOTES: | | | | | | Date Programmer Description | | ====== ============ ================================================= | | 12/28/05 Abe Taaheri created . | | | | END_PROLOG | -----------------------------------------------------------------------------*/ herr_t HE5_PTgetlevelname_fromSM(hid_t pointID, int level, char *LevelName) { herr_t status = FAIL; /* Return status variable */ hid_t fid = FAIL; /* HDF-EOS file ID */ hid_t pID = FAIL; /* Point ID - offset */ hid_t gid = FAIL; hid_t idOffset = HE5_PTIDOFFSET; /* Point ID offset */ long idx = FAIL; /* Point index */ char *metabuf = NULL; /* Pointer to SM */ char *metaptrs[2]={NULL,NULL}; /* Ptrs to begin/end of SM */ char name1[HE5_HDFE_NAMBUFSIZE]; /* Name string 1 */ char level_subgroupname[HE5_HDFE_NAMBUFSIZE]; char utlbuf[HE5_HDFE_UTLBUFSIZE];/* Utility buffer */ char errbuf[HE5_HDFE_ERRBUFSIZE];/* Error messg buffer */ strcpy(LevelName,""); /* Check for valid point ID */ /* ------------------------ */ status = HE5_PTchkptid(pointID, "HE5_PTgetlevelname_fromSM", &fid, &gid, &idx); if (status == FAIL ) { sprintf(errbuf, "Checking for point ID failed. \n"); H5Epush(__FILE__, "HE5_PTgetlevelname_fromSM", __LINE__, H5E_FUNC, H5E_CANTINIT, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Compute "reduced" point ID */ /* -------------------------- */ pID = pointID % idOffset; /* construct level's group name */ /* -------------------------- */ sprintf(level_subgroupname, "Level_%d", level); /* Get specific level's structural metadata */ /* ---------------------------------- */ metabuf = (char *)HE5_EHmetagroup(fid, HE5_PTXPoint[pID].ptname, "p", level_subgroupname, metaptrs); if (metabuf == NULL ) { status = FAIL; sprintf(errbuf, "Cannot get pointer to metadata buffer for the \"%s\" point. \n", HE5_PTXPoint[pID].ptname); H5Epush(__FILE__, "HE5_PTgetlevelname_fromSM", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); return(status); } /* Search for LevelName= entry */ /* ---------------------------- */ status = HE5_EHgetmetavalue(metaptrs, "LevelName", LevelName); if (status == FAIL ) { sprintf(errbuf, "Cannot get \"LevelName\" metavalue for the \"%s\" point. \n", HE5_PTXPoint[pID].ptname); H5Epush(__FILE__, "HE5_PTgetlevelname_fromSM", __LINE__, H5E_ARGS, H5E_BADVALUE, errbuf); HE5_EHprint(errbuf, __FILE__, __LINE__); free(metabuf); return(status); } free(metabuf); return(status); } #ifndef __cplusplus /* HDF types used in FORTRAN bindings */ #if defined(DEC_ALPHA) || defined(IRIX) || defined(UNICOS) || defined(LINUX64) || defined(IA64) || defined(MACINTOSH) || defined(MACINTEL) || defined(IBM6000) || defined(CYGWIN) #define INT32 INT #define INT32V INTV #define PINT32 PINT #else #define INT32 LONG #define INT32V LONGV #define PINT32 PLONG #endif /* File/Point access routines */ FCALLSCFUN2(INT, HE5_PTopenF, HE5_PTOPEN, he5_ptopen, STRING, INT) FCALLSCFUN2(INT, HE5_PTcreateF, HE5_PTCREATE, he5_ptcreate, INT, STRING) FCALLSCFUN2(INT, HE5_PTattachF, HE5_PTATTACH, he5_ptattach, INT, STRING) FCALLSCFUN1(INT, HE5_PTdetachF, HE5_PTDETACH, he5_ptdetach, INT) FCALLSCFUN1(INT, HE5_PTcloseF, HE5_PTCLOSE, he5_ptclose, INT) /* Definition routines */ FCALLSCFUN7(INT, HE5_PTdeflevelF,HE5_PTDEFLEVEL, he5_ptdeflevel, INT, STRING, INTV, STRING, PLONG, INTV, INTV) FCALLSCFUN4(INT, HE5_PTdeflinkageF,HE5_PTDEFLINKAGE, he5_ptdeflinkage, INT, STRING, STRING, STRING) /* I/O routines */ FCALLSCFUN5(INT, HE5_PTreadlevelF,HE5_PTREADLEVEL, he5_ptreadlevel, INT, INT, STRING, INT, PVOID) FCALLSCFUN7(INT, HE5_PTupdatelevelF, HE5_PTUPDATELEVEL, he5_ptupdatelevel, INT, INT, STRING, LONG, LONGV, INT, PVOID) FCALLSCFUN6(INT, HE5_PTwritelevelF, HE5_PTWRITELEVEL, he5_ptwritelevel, INT, INT, LONGV, STRING, INT, PVOID) FCALLSCFUN5(INT, HE5_PTwriteattrF, HE5_PTWRITEATTR, he5_ptwriteattr, INT, STRING, INT, LONGV, PVOID) FCALLSCFUN5(INT, HE5_PTwritegrpattrF, HE5_PTWRITEGRPATTR, he5_ptwritegrpattr, INT, STRING, INT, LONGV, PVOID) FCALLSCFUN6(INT, HE5_PTwritelocattrF, HE5_PTWRITELOCATTR, he5_ptwritelocattr, INT, STRING, STRING, INT, LONGV, PVOID) FCALLSCFUN3(INT, HE5_PTreadattrF, HE5_PTREADATTR, he5_ptreadattr, INT, STRING, PVOID) FCALLSCFUN3(INT, HE5_PTreadgrpattrF, HE5_PTREADGRPATTR, he5_ptreadgrpattr, INT, STRING, PVOID) FCALLSCFUN4(INT, HE5_PTreadlocattrF, HE5_PTREADLOCATTR, he5_ptreadlocattr, INT, STRING, STRING, PVOID) FCALLSCFUN2(INT, HE5_PTwrbckptrF, HE5_PTWRBCKPTR, he5_ptwrbckptr, INT, INT) FCALLSCFUN2(INT, HE5_PTwrfwdptrF, HE5_PTWRFWDPTR, he5_ptwrfwdptr, INT, INT) /* Point inquiry routines */ FCALLSCFUN2(INT, HE5_PTnrecsF,HE5_PTNRECS, he5_ptnrecs, INT, INT) FCALLSCFUN1(INT, HE5_PTnlevelsF,HE5_PTNLEVELS, he5_ptnlevels, INT) FCALLSCFUN4(INT, HE5_PTnfieldsF,HE5_PTNFIELDS, he5_ptnfields, INT, INT, PSTRING, PLONG) FCALLSCFUN2(INT, HE5_PTlevelindxF,HE5_PTLEVELINDX, he5_ptlevelindx, INT, PSTRING) FCALLSCFUN4(INT, HE5_PTgetlevelnameF,HE5_PTGETLEVELNAME, he5_ptgetlevelname, INT, INT, PSTRING, PLONG) FCALLSCFUN3(INT, HE5_PTbcklinkinfoF,HE5_PTBCKLINKINFO, he5_bcklinkinfo, INT, INT, PSTRING) FCALLSCFUN3(INT, HE5_PTfwdlinkinfoF,HE5_PTFWDLINKINFO, he5_fwdlinkinfo, INT, INT, PSTRING) FCALLSCFUN9(INT, HE5_PTlevelinfoF, HE5_PTLEVELINFO, he5_ptlevelinfo, INT, INT, PSTRING, INTV, PSTRING, PLONG, PLONG, LONGV, INTV) FCALLSCFUN8(INT, HE5_PTinqdatatypeF, HE5_PTINQDATATYPE, he5_ptinqdatatype, INT, PSTRING, PSTRING, INT, PINT, PINT, PINT, PLONG) FCALLSCFUN3(INT, HE5_PTinqpointF,HE5_PTINQPOINT, he5_inqpoint, PSTRING, PSTRING, PLONG) FCALLSCFUN4(INT, HE5_PTattrinfoF,HE5_PTATTRINFO, he5_ptattrinfo, INT, PSTRING, PINT, PLONG) FCALLSCFUN4(INT, HE5_PTgrpattrinfoF,HE5_PTGRPATTRINFO, he5_ptgrpattrinfo, INT, PSTRING, PINT, PLONG) FCALLSCFUN5(INT, HE5_PTlocattrinfoF,HE5_PTLOCATTRINFO, he5_ptlocattrinfo, INT, PSTRING, PSTRING, PINT, PLONG) FCALLSCFUN3(LONG, HE5_PTinqattrsF,HE5_PTINQATTRS, he5_ptinqattrs, INT, PSTRING, PLONG) FCALLSCFUN3(LONG, HE5_PTinqgrpattrsF,HE5_PTINQGRPATTRS, he5_ptinqgrpattrs, INT, PSTRING, PLONG) FCALLSCFUN4(LONG, HE5_PTinqlocattrsF,HE5_PTINQLOCATTRS, he5_ptinqlocattrs, INT, PSTRING, PSTRING, PLONG) FCALLSCFUN3(INT, HE5_PTnumtypeinfoF, HE5_PTNUMTYPEINFO, he5_ptnumtypeinfo, INT, INT, INTV) /* Point utility routines */ FCALLSCFUN5(LONG, HE5_PTc2fort,HE5_PTC2FORT, he5_ptc2fort, LONGV, INT, INT, PVOID, PVOID) FCALLSCFUN5(LONG, HE5_PTfort2c,HE5_PTFORT2C, he5_ptfort2c, LONGV, INT, INT, PVOID, PVOID) #endif hdf-eos5-5.1.14+dfsg.1/Makefile0000755000175000017500000002564312024715435017104 0ustar amckinstryamckinstry#---------------------------------------------------------------------------- # file: makefile for HDF-EOS5 (for internal ECS usage only) # # environment: requires environment established by the ECS .buildrc file # # environment variables dependencies: # MAKECMD make command to be run on make files # ARCH architecture (i.e. hardware/os type) # # # author: Guru Tej S. Khalsa / Space Applications Corp. # Abe Taaheri / Emergent Information Technologies, Inc. # # history: # 10-Nov-1997 GTSK Initital version # 11-Apr-2001 AT modified for HDFEOS5 and HDF5 # 19-Jul-2001 DaW Modified because it broke the Build # 05-Apr-2004 AT Modified for DAAC Linux Delivery # # # notes: # 1) This file is only for use by ECS Configuration Management (CM) # personnel and software. This file should not be distributed # as part of the standard HDF-EOS5 delivery. #---------------------------------------------------------------------------- # define shell to be used (use ksh so we can use the "." command) SHELL=/bin/ksh # define MAKE to be equivalant to $(MAKECMD) MAKE=$(MAKECMD) # define the location of the HDF-EOS5 STAGE area HE_STAGE=/ecs/formal/STAGE/hdfeos5 # define the location of the standard HDF-EOS5 development area HE_HOME=/ecs/hdfeos5 # define HDF5 base directory #HE_ENV=$(ARCH) # define the location of tar files TAR_HOME=$(HE_HOME)/install HDF_BASE=/ecs/cots/hdf # define current HDF version CURRENT_HDF4=HDF4.2r3 CURRENT_HDF=hdf5-1.8.3 CURRENT_SZIP=szip-2.1 # define SDP Toolkit home directory TK_HOME=/ecs/formal/TOOLKIT # name of tar files for delivery HDFEOS5_SOURCE_TAR=HDF-EOS5.1.14.tar HDFEOS5_TESTDRIVERS_TAR=HDF-EOS5.1.14_TESTDRIVERS.tar # define the default compiler optimization level OPT_LVL=-g # define default target default: @echo "This file is for use by ECS Configuration Management processes only." # define a target to build BOTH variations (or "flavors") of HDF-EOS5 # for a given "brand" (i.e. architecture type) full: opt debug # define a target to build the "debug" variation (or "flavor") of HDF-EOS5 # for a given "brand" (i.e. architecture type) ("debug" means the library # will be compiled for use in a souce code debugger) debug: @$(MAKE) flavor_dir FLAVOR=$@ @export use_flavor=1; $(MAKE) $(TARGET) OPT_LVL=-g FLAVOR=$@ # define a target to build the "optimized" variation (or "flavor") of # HDF-EOS5 for a given "brand" (i.e. architecture type) ("optimized" means the # library will be optimized for execution speed by the compiler) opt: @$(MAKE) flavor_dir FLAVOR=$@ @export use_flavor=1; $(MAKE) $(TARGET) OPT_LVL=-O FLAVOR=$@ # define standard CM targets # NOTE: The standard targets defined by ECS CM are: # BuildImake, ProductHs, ProductLibs, LastPass, Deliver # # Here the above targets are shadowed by the targets: # BuildImake2, ProductHs2, ProductLibs2, LastPass2, Deliver2 # respectively. The original targets only call the target # HE_ENV which sets up the HDF-EOS5 environment and then # builds the shadow target. # For SGI 32 Falvor build or linux 12 Falvor build these targets # renamed to FL_...... BuildImake: @$(MAKE) $(MFLAGS) HE_ENV TARGET=$@2 BuildImake2: @echo "No Imakefile to build." ProductHs: @$(MAKE) $(MFLAGS) HE_ENV TARGET=$@2 ProductHs2: @echo "No header files to generate or promote." ProductLibs: @$(MAKE) $(MFLAGS) HE_ENV TARGET=$@2 ProductLibs2: @if [ ! -e $(HDFEOS5_HOME)/lib/$(ARCH) ] ; then \ cd $(HDFEOS5_HOME)/lib; \ ln -s `basename $(HDFEOS5_LIB)` $(ARCH);\ fi @cd $(HDFEOS5_HOME)/src; $(MAKE) $(MFLAGS) all @cd $(TK_HOME)/src/GCT/freeware; $(MAKE) $(MFLAGS) gctp5 LastPass: @$(MAKE) $(MFLAGS) HE_ENV TARGET=$@2 LastPass2: @if [ ! -e $(HDFEOS5_HOME)/bin/$(ARCH) ] ; then \ cd $(HDFEOS5_HOME)/bin; \ ln -s `basename $(HDFEOS5_BIN)` $(ARCH);\ fi @cd $(HDFEOS5_HOME)/util; $(MAKE) $(MFLAGS) all # @echo "No utilites to build." FL_BuildImake: @$(MAKE) $(MFLAGS) FL_HE_ENV TARGET=$@2 FL_BuildImake2: @echo "No Imakefile to build." FL_ProductHs: @$(MAKE) $(MFLAGS) FL_HE_ENV TARGET=$@2 FL_ProductHs2: @echo "No header files to generate or promote." FL_ProductLibs: @$(MAKE) $(MFLAGS) FL_HE_ENV TARGET=$@2 FL_ProductLibs2: @if [ ! -e $(HDFEOS5_HOME)/lib/$(ARCH) ] ; then \ cd $(HDFEOS5_HOME)/lib; \ ln -s `basename $(HDFEOS5_LIB)` $(ARCH);\ fi @cd $(HDFEOS5_HOME)/src; $(MAKE) $(MFLAGS) all @cd $(TK_HOME)/src/GCT/freeware; $(MAKE) $(MFLAGS) gctp5 FL_LastPass: @$(MAKE) $(MFLAGS) FL_HE_ENV TARGET=$@2 FL_LastPass2: @if [ ! -e $(HDFEOS5_HOME)/bin/$(ARCH) ] ; then \ cd $(HDFEOS5_HOME)/bin; \ ln -s `basename $(HDFEOS5_BIN)` $(ARCH);\ fi @cd $(HDFEOS5_HOME)/util; $(MAKE) $(MFLAGS) all # @echo "No utilites to build." Deliver: @$(MAKE) $(MFLAGS) HE_ENV TARGET=$@2 Deliver2: # cp -rf /ecs/hdfeos/gctp . # chmod 0755 gctp/src/* gctp/include/* tar cvfX $(TAR_HOME)/$(HDFEOS5_SOURCE_TAR) $(HE_HOME)/make_exclude_list -C /ecs hdfeos5 tar cvfX $(TAR_HOME)/$(HDFEOS5_TESTDRIVERS_TAR) $(HE_HOME)/testdrivers/make_exclude_list -C /ecs hdfeos5/testdrivers DaacDeliver: @if [ $(ARCH) = "sgi6n32" ] ; then \ for arch in sgi6n32 sgi6 ; do \ for targ in FL_ProductHs FL_ProductLibs FL_LastPass ; do \ $(MAKECMD) full TARGET=$$targ ARCH=$$arch; \ done; \ done; \ elif [ $(ARCH) = "irix65" ] ; then \ for arch in sgi6n32 sgi6 ; do \ for targ in FL_ProductHs FL_ProductLibs FL_LastPass ; do \ $(MAKECMD) full TARGET=$$targ ARCH=$$arch; \ done; \ done; \ else \ for targ in FL_ProductHs FL_ProductLibs FL_LastPass ; do \ $(MAKECMD) full TARGET=$$targ; \ done; \ fi LinuxDaacDeliver: @if [ $(ARCH) = "linux" ] ; then \ for arch in linux ; do \ for targ in FL_ProductHs FL_ProductLibs FL_LastPass ; do \ $(MAKECMD) full TARGET=$$targ ARCH=$$arch; \ done ; \ done ; \ fi # this is a special target used to establish the HDF-EOS5 environment FL_HE_ENV: @case $(ARCH) in \ hp10) brand=hp; ;; \ sgi6n32) brand=sgi32; sgi_mode=n32; ;; \ irix65) brand=irix65; sgi_mode=65 ;; \ sgi6) brand=sgi64; sgi_mode=64; ;; \ sun5.5) brand=sun5; ;; \ sun5.8) brand=sun5.8; ;; \ linux) LINUX_BRAND=linux; brand=$(ARCH) ;; \ *) brand=$(ARCH); ;; \ esac; \ postfix=""; \ opt_flag=-O; \ case $(FLAVOR) in \ *debug) \ opt_flag=-g; \ postfix=_debug; \ ;; \ esac; \ HDFEOS5_HOME=$(HE_HOME); \ LNX_COMP_FLAG="-m32"; \ export LNX_COMP_FLAG; \ opt_flag=$(OPT_LVL); \ export HDFEOS5_HOME sgi_mode opt_flag LINUX_BRAND; \ . $(HE_HOME)/bin/$${brand}$$postfix/hdfeos_env.ksh; \ MAKE="$(MAKECMD)"; \ AR='ar r'; \ HDF5INC=$(HDF_BASE)/$$brand/$(CURRENT_HDF)/include; \ HDF5LIB=$(HDF_BASE)/$$brand/$(CURRENT_HDF)/lib \ PGSINC=$(TK_HOME)/include; \ SZIPLIB=$(HDF_BASE)/$${brand}/$(CURRENT_SZIP)/lib; \ SZIPINC=$(HDF_BASE)/$${brand}/$(CURRENT_SZIP)/include; \ export MAKE AR HDF5INC PGSINC SZIPINC SZIPLIB HDF5LIB; \ HDFINC=$(HDF_BASE)/$$brand/$(CURRENT_HDF4)/include; \ HDFLIB=$(HDF_BASE)/$$brand/$(CURRENT_HDF4)/lib \ export HDFINC HDFLIB; \ $(MAKE) $(MFLAGS) $(TARGET) HE_ENV: @case $(ARCH) in \ hp10) brand=hp; ;; \ sgi6n32) brand=sgi32; sgi_mode=n32; ;; \ irix65) brand=irix65; sgi_mode=65 ;; \ sgi6) brand=sgi64; sgi_mode=64; ;; \ sun5.5) brand=sun5; ;; \ sun5.8) brand=sun5.8; ;; \ linux) LINUX_BRAND=linux; brand=$(ARCH) ;; \ *) brand=$(ARCH); ;; \ esac; \ HDFEOS5_HOME=$(HE_HOME); \ opt_flag=$(OPT_LVL); \ export HDFEOS5_HOME sgi_mode opt_flag LINUX_BRAND; \ . $(HE_HOME)/bin/tmp/hdfeos_env.ksh.tmp; \ if [ $(ARCH) = "linux" ] ; then \ CC="gcc -m32"; \ export CC; \ LNX_COMP_FLAG="-m32"; \ export LNX_COMP_FLAG; \ fi; \ MAKE="$(MAKECMD)"; \ AR='ar r'; \ HDF5INC=$(HDF_BASE)/$$brand/$(CURRENT_HDF)/include; \ HDF5LIB=$(HDF_BASE)/$$brand/$(CURRENT_HDF)/lib \ PGSINC=$(TK_HOME)/include; \ SZIPLIB=$(HDF_BASE)/$${brand}/$(CURRENT_SZIP)/lib; \ SZIPINC=$(HDF_BASE)/$${brand}/$(CURRENT_SZIP)/include; \ export MAKE AR HDF5INC PGSINC SZIPINC SZIPLIB HDF5LIB; \ HDFINC=$(HDF_BASE)/$$brand/$(CURRENT_HDF4)/include; \ HDFLIB=$(HDF_BASE)/$$brand/$(CURRENT_HDF4)/lib \ export HDFINC HDFLIB; \ $(MAKE) $(MFLAGS) $(TARGET) flavor_dir: @sgi_mode=sgi32; \ LNX_COMP_FLAG="-m32"; \ export LNX_COMP_FLAG; \ opt_flag=-O; \ postfix=""; \ case $(FLAVOR) in \ *debug) \ opt_flag=-g; \ postfix=_debug; \ ;; \ esac; \ case $(ARCH) in \ hp10) \ brand=hp; \ ;; \ sgi6n32) \ brand=sgi32; \ sgi_mode=n32; \ ;; \ irix65) \ brand=irix65; \ sgi_mode=65; \ ;; \ sgi6) \ brand=sgi64; \ sgi_mode=64; \ ;; \ sun5.5) \ brand=sun5; \ ;; \ sun5.8) \ brand=sun5.8; \ ;; \ *) \ brand=$(ARCH); \ ;; \ esac; \ he_obj=$(HE_HOME)/obj/$${brand}$$postfix; \ he_lib=$(HE_HOME)/lib/$${brand}$$postfix; \ he_bin=$(HE_HOME)/bin/$${brand}$$postfix; \ tmpdir=$(HE_HOME)/bin/tmp; \ if [ ! -d $$he_obj ] ; then \ mkdir $$he_obj; \ fi; \ if [ ! -d $$he_lib ] ; then \ mkdir $$he_lib; \ fi; \ if [ ! -d $$he_bin ] ; then \ mkdir $$he_bin; \ fi; \ hdf5lib=$(HDF_BASE)/$${brand}/$(CURRENT_HDF)/lib; \ hdf5inc=$(HDF_BASE)/$${brand}/$(CURRENT_HDF)/include; \ sziplib=$(HDF_BASE)/$${brand}/$(CURRENT_SZIP)/lib; \ szipinc=$(HDF_BASE)/$${brand}/$(CURRENT_SZIP)/include; \ if [ ! -f $$he_bin/hdfeos_env.csh ] ; then \ cd $$he_bin; \ echo "setenv HDFEOS5_HOME $(HE_HOME)" > hdfeos_env.csh; \ echo "setenv HDF5LIB $$hdf5lib" >> hdfeos_env.csh; \ echo "setenv HDF5INC $$hdf5inc" >> hdfeos_env.csh; \ echo "setenv SZIPLIB $$sziplib" >> hdfeos_env.csh; \ echo "setenv SZIPINC $$szipinc" >> hdfeos_env.csh; \ echo "set sgi_mode=$$sgi_mode" >> hdfeos_env.csh; \ echo "set opt_flag=$$opt_flag" >> hdfeos_env.csh; \ echo "set use_flavor=1" >> hdfeos_env.csh; \ sed "s^LNX_CMP_FLAG^$$LNX_COMP_FLAG^" \ $$tmpdir/hdfeos_env.csh.tmp >> hdfeos_env.csh; \ fi; \ if [ ! -f $$he_bin/hdfeos_env.ksh ] ; then \ cd $$he_bin; \ echo "HDFEOS5_HOME=$(HE_HOME)" > hdfeos_env.ksh; \ echo "HDF5LIB=$$hdf5lib" >> hdfeos_env.ksh; \ echo "HDF5INC=$$hdf5inc" >> hdfeos_env.ksh; \ echo "SZIPLIB=$$sziplib" >> hdfeos_env.ksh; \ echo "SZIPINC=$$szipinc" >> hdfeos_env.ksh; \ echo "sgi_mode=$$sgi_mode" >> hdfeos_env.ksh; \ echo "opt_flag=$$opt_flag" >> hdfeos_env.ksh; \ echo "use_flavor=1" >> hdfeos_env.ksh; \ sed "s^LNX_CMP_FLAG^$$LNX_COMP_FLAG^" \ $$tmpdir/hdfeos_env.ksh.tmp >> hdfeos_env.ksh; \ fi hdf-eos5-5.1.14+dfsg.1/testdrivers/0000755000175000017500000000000012024715435020005 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/testdrivers/Makefile.am0000644000175000017500000000070512024715435022043 0ustar amckinstryamckinstry# testdrivers top-level Makefile.am # The testdrivers directory should be placed in the HDF-EOS5 directory; # this file should be located at hdfeos5/testdrivers/Makefile.am # Include boilerplate definitions (from HDF-EOS5 configuration) include $(top_srcdir)/config/include.am # Only recurse into the threads directory if threads are being used. if THREADSAFE_CONDITIONAL SUBDIRS=swath grid point za threads else SUBDIRS=swath grid point za endif hdf-eos5-5.1.14+dfsg.1/testdrivers/za/0000755000175000017500000000000012024715435020417 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/testdrivers/za/Makefile.am0000644000175000017500000000156012024715435022455 0ustar amckinstryamckinstry# testdrivers/za Makefile.am # Boilerplate definitions include $(top_srcdir)/config/include.am # Link against HDF-EOS5 and libGCTP libraries INCLUDES=-I$(top_srcdir)/include LDADD=$(LIBHDFEOS5) $(LIBGCTP) # Programs to build when user types 'make check' check_PROGRAMS = TestZa TestAlias if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL check_PROGRAMS += testza32 testza32_SOURCES = testza32.f else check_PROGRAMS += testza64 testza64_SOURCES = testza64.f endif endif # When user types 'make check', run programs above as tests. TEST_SEQUENCES=test_c if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL TEST_SEQUENCES+=test_32f else TEST_SEQUENCES+=test_64f endif endif test_c: $(check_PROGRAMS) ./TestZa ./TestAlias test_32f: $(check_PROGRAMS) ./testza32 test_64f: $(check_PROGRAMS) ./testza64 check-local: $(TEST_SEQUENCES) .PHONY: $(TEST_SEQUENCES) hdf-eos5-5.1.14+dfsg.1/testdrivers/za/hdfeos5.inc0000644000175000017500000003511312024715435022452 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 11, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines ! * ========================================================== ! * Contents: ! * HDFEOS5 data type tags ! * HDFEOS5 logical constants ! * HDFEOS5 file access tags ! * HDFEOS5/GCTP library codes ! * ! * =========================================================== ! HDFEOS5 DATA TYPE TAGS ! ======================= integer HE5T_NATIVE_INT integer HE5T_NATIVE_UINT integer HE5T_NATIVE_SHORT integer HE5T_NATIVE_USHORT integer HE5T_NATIVE_SCHAR integer HE5T_NATIVE_UCHAR integer HE5T_NATIVE_LONG integer HE5T_NATIVE_ULONG integer HE5T_NATIVE_LLONG integer HE5T_NATIVE_ULLONG integer HE5T_NATIVE_FLOAT integer HE5T_NATIVE_REAL integer HE5T_NATIVE_DOUBLE integer HE5T_NATIVE_LDOUBLE integer HE5T_NATIVE_INT8 integer HE5T_NATIVE_UINT8 integer HE5T_NATIVE_INT16 integer HE5T_NATIVE_UINT16 integer HE5T_NATIVE_INT32 integer HE5T_NATIVE_UINT32 integer HE5T_NATIVE_INT64 integer HE5T_NATIVE_UINT64 integer HE5T_NATIVE_B8 integer HE5T_NATIVE_B16 integer HE5T_NATIVE_B32 integer HE5T_NATIVE_B64 integer HE5T_NATIVE_HSIZE integer HE5T_NATIVE_HERR integer HE5T_NATIVE_HBOOL integer HE5T_STD_I8BE integer HE5T_STD_I8LE integer HE5T_STD_I16BE integer HE5T_STD_I16LE integer HE5T_STD_I32BE integer HE5T_STD_I32LE integer HE5T_STD_I64BE integer HE5T_STD_I64LE integer HE5T_STD_U8BE integer HE5T_STD_U8LE integer HE5T_STD_U16BE integer HE5T_STD_U16LE integer HE5T_STD_U32BE integer HE5T_STD_U32LE integer HE5T_STD_U64BE integer HE5T_STD_U64LE integer HE5T_STD_B8BE integer HE5T_STD_B8LE integer HE5T_STD_B16BE integer HE5T_STD_B16LE integer HE5T_STD_B32BE integer HE5T_STD_B32LE integer HE5T_STD_B64BE integer HE5T_STD_B64LE integer HE5T_IEEE_F32BE integer HE5T_IEEE_F32LE integer HE5T_IEEE_F64BE integer HE5T_IEEE_F64LE integer HE5T_NATIVE_CHAR integer HE5T_CHARSTRING parameter(HE5T_NATIVE_INT = 0) parameter(HE5T_NATIVE_UINT = 1) parameter(HE5T_NATIVE_SHORT = 2) parameter(HE5T_NATIVE_USHORT = 3) parameter(HE5T_NATIVE_SCHAR = 4) parameter(HE5T_NATIVE_UCHAR = 5) parameter(HE5T_NATIVE_LONG = 6) parameter(HE5T_NATIVE_ULONG = 7) parameter(HE5T_NATIVE_LLONG = 8) parameter(HE5T_NATIVE_ULLONG = 9) parameter(HE5T_NATIVE_FLOAT =10) parameter(HE5T_NATIVE_REAL =10) parameter(HE5T_NATIVE_DOUBLE =11) parameter(HE5T_NATIVE_LDOUBLE =12) parameter(HE5T_NATIVE_INT8 =13) parameter(HE5T_NATIVE_UINT8 =14) parameter(HE5T_NATIVE_INT16 =15) parameter(HE5T_NATIVE_UINT16 =16) parameter(HE5T_NATIVE_INT32 =17) parameter(HE5T_NATIVE_UINT32 =18) parameter(HE5T_NATIVE_INT64 =19) parameter(HE5T_NATIVE_UINT64 =20) parameter(HE5T_NATIVE_B8 =21) parameter(HE5T_NATIVE_B16 =22) parameter(HE5T_NATIVE_B32 =23) parameter(HE5T_NATIVE_B64 =24) parameter(HE5T_NATIVE_HSIZE =25) parameter(HE5T_NATIVE_HERR =26) parameter(HE5T_NATIVE_HBOOL =27) parameter(HE5T_STD_I8BE =28) parameter(HE5T_STD_I8LE =29) parameter(HE5T_STD_I16BE =30) parameter(HE5T_STD_I16LE =31) parameter(HE5T_STD_I32BE =32) parameter(HE5T_STD_I32LE =33) parameter(HE5T_STD_I64BE =34) parameter(HE5T_STD_I64LE =35) parameter(HE5T_STD_U8BE =36) parameter(HE5T_STD_U8LE =37) parameter(HE5T_STD_U16BE =38) parameter(HE5T_STD_U16LE =39) parameter(HE5T_STD_U32BE =40) parameter(HE5T_STD_U32LE =41) parameter(HE5T_STD_U64BE =42) parameter(HE5T_STD_U64LE =43) parameter(HE5T_STD_B8BE =44) parameter(HE5T_STD_B8LE =45) parameter(HE5T_STD_B16BE =46) parameter(HE5T_STD_B16LE =47) parameter(HE5T_STD_B32BE =48) parameter(HE5T_STD_B32LE =49) parameter(HE5T_STD_B64BE =50) parameter(HE5T_STD_B64LE =51) parameter(HE5T_IEEE_F32BE =52) parameter(HE5T_IEEE_F32LE =53) parameter(HE5T_IEEE_F64BE =54) parameter(HE5T_IEEE_F64LE =55) parameter(HE5T_NATIVE_CHAR =56) parameter(HE5T_CHARSTRING =57) integer HE5S_UNLIMITED_F parameter(HE5S_UNLIMITED_F = -1) ! HDFEOS5 FILE ACCESS TAGS ! ======================== integer HE5F_ACC_RDWR integer HE5F_ACC_RDONLY integer HE5F_ACC_TRUNC parameter(HE5F_ACC_RDWR = 100) parameter(HE5F_ACC_RDONLY = 101) parameter(HE5F_ACC_TRUNC = 102) ! TOOLKIT FILE ACCESS TAGS ! ======================== integer HDF4_ACC_RDONLY integer HDF4_ACC_RDWR integer HDF4_ACC_CREATE integer HDF5_ACC_RDONLY integer HDF5_ACC_RDWR integer HDF5_ACC_CREATE parameter(HDF4_ACC_RDONLY = 1) parameter(HDF4_ACC_RDWR = 3) parameter(HDF4_ACC_CREATE = 4) parameter(HDF5_ACC_RDONLY = 11) parameter(HDF5_ACC_RDWR = 13) parameter(HDF5_ACC_CREATE = 14) ! HDFEOS5 MERGE CODES ! ==================== integer HE5_HDFE_NOMERGE integer HE5_HDFE_AUTOMERGE parameter(HE5_HDFE_NOMERGE =0) parameter(HE5_HDFE_AUTOMERGE =1) ! HDFEOS5 XXentries CODES ! ======================= integer HE5_HDFE_NENTDIM integer HE5_HDFE_NENTMAP integer HE5_HDFE_NENTIMAP integer HE5_HDFE_NENTGFLD integer HE5_HDFE_NENTDFLD parameter(HE5_HDFE_NENTDIM =0) parameter(HE5_HDFE_NENTMAP =1) parameter(HE5_HDFE_NENTIMAP =2) parameter(HE5_HDFE_NENTGFLD =3) parameter(HE5_HDFE_NENTDFLD =4) ! HDFEOS5 ANGLE CONVERSION CODES ! ============================== integer HE5_HDFE_RAD_DEG integer HE5_HDFE_DEG_RAD integer HE5_HDFE_DMS_DEG integer HE5_HDFE_DEG_DMS integer HE5_HDFE_RAD_DMS integer HE5_HDFE_DMS_RAD parameter(HE5_HDFE_RAD_DEG =0) parameter(HE5_HDFE_DEG_RAD =1) parameter(HE5_HDFE_DMS_DEG =2) parameter(HE5_HDFE_DEG_DMS =3) parameter(HE5_HDFE_RAD_DMS =4) parameter(HE5_HDFE_DMS_RAD =5) ! HDFEOS5 SWATH SUBSET CODES ! ========================== integer HE5_HDFE_MIDPOINT integer HE5_HDFE_ENDPOINT integer HE5_HDFE_ANYPOINT integer HE5_HDFE_INTERNAL integer HE5_HDFE_EXTERNAL integer HE5_HDFE_NOPREVSUB parameter(HE5_HDFE_MIDPOINT =0) parameter(HE5_HDFE_ENDPOINT =1) parameter(HE5_HDFE_ANYPOINT =2) parameter(HE5_HDFE_INTERNAL =0) parameter(HE5_HDFE_EXTERNAL =1) parameter(HE5_HDFE_NOPREVSUB =-1) ! HDFEOS5 GRID ORIGIN CODES ! ========================= integer HE5_HDFE_GD_UL integer HE5_HDFE_GD_UR integer HE5_HDFE_GD_LL integer HE5_HDFE_GD_LR parameter(HE5_HDFE_GD_UL =0) parameter(HE5_HDFE_GD_UR =1) parameter(HE5_HDFE_GD_LL =2) parameter(HE5_HDFE_GD_LR =3) ! HDFEOS5 PIXEL REGISTRATION CODES ! ================================ integer HE5_HDFE_CENTER integer HE5_HDFE_CORNER parameter(HE5_HDFE_CENTER =0) parameter(HE5_HDFE_CORNER =1) ! HDFEOS5 GCTP PROJECTION CODES ! ============================= integer HE5_GCTP_GEO integer HE5_GCTP_UTM integer HE5_GCTP_SPCS integer HE5_GCTP_ALBERS integer HE5_GCTP_LAMCC integer HE5_GCTP_MERCAT integer HE5_GCTP_PS integer HE5_GCTP_POLYC integer HE5_GCTP_EQUIDC integer HE5_GCTP_TM integer HE5_GCTP_STEREO integer HE5_GCTP_LAMAZ integer HE5_GCTP_AZMEQD integer HE5_GCTP_GNOMON integer HE5_GCTP_ORTHO integer HE5_GCTP_GVNSP integer HE5_GCTP_SNSOID integer HE5_GCTP_EQRECT integer HE5_GCTP_MILLER integer HE5_GCTP_VGRINT integer HE5_GCTP_HOM integer HE5_GCTP_ROBIN integer HE5_GCTP_SOM integer HE5_GCTP_ALASKA integer HE5_GCTP_GOOD integer HE5_GCTP_MOLL integer HE5_GCTP_IMOLL integer HE5_GCTP_HAMMER integer HE5_GCTP_WAGIV integer HE5_GCTP_WAGVII integer HE5_GCTP_OBLEQA integer HE5_GCTP_ISINUS parameter(HE5_GCTP_GEO =0) parameter(HE5_GCTP_UTM =1) parameter(HE5_GCTP_SPCS =2) parameter(HE5_GCTP_ALBERS =3) parameter(HE5_GCTP_LAMCC =4) parameter(HE5_GCTP_MERCAT =5) parameter(HE5_GCTP_PS =6) parameter(HE5_GCTP_POLYC =7) parameter(HE5_GCTP_EQUIDC =8) parameter(HE5_GCTP_TM =9) parameter(HE5_GCTP_STEREO =10) parameter(HE5_GCTP_LAMAZ =11) parameter(HE5_GCTP_AZMEQD =12) parameter(HE5_GCTP_GNOMON =13) parameter(HE5_GCTP_ORTHO =14) parameter(HE5_GCTP_GVNSP =15) parameter(HE5_GCTP_SNSOID =16) parameter(HE5_GCTP_EQRECT =17) parameter(HE5_GCTP_MILLER =18) parameter(HE5_GCTP_VGRINT =19) parameter(HE5_GCTP_HOM =20) parameter(HE5_GCTP_ROBIN =21) parameter(HE5_GCTP_SOM =22) parameter(HE5_GCTP_ALASKA =23) parameter(HE5_GCTP_GOOD =24) parameter(HE5_GCTP_MOLL =25) parameter(HE5_GCTP_IMOLL =26) parameter(HE5_GCTP_HAMMER =27) parameter(HE5_GCTP_WAGIV =28) parameter(HE5_GCTP_WAGVII =29) parameter(HE5_GCTP_OBLEQA =30) parameter(HE5_GCTP_ISINUS =99) ! HDFEOS5 TILIND/COMPRESSION CODES ! ================================ integer HE5_HDFE_NOTILE integer HE5_HDFE_TILE integer HE5_HDFE_COMP_NONE integer HE5_HDFE_COMP_RLE integer HE5_HDFE_COMP_NBIT integer HE5_HDFE_COMP_SKPHUFF integer HE5_HDFE_COMP_DEFLATE integer HE5_HDFE_COMP_SZIP_CHIP integer HE5_HDFE_COMP_SZIP_K13 integer HE5_HDFE_COMP_SZIP_EC integer HE5_HDFE_COMP_SZIP_NN integer HE5_HDFE_COMP_SZIP_K13orEC integer HE5_HDFE_COMP_SZIP_K13orNN integer HE5_HDFE_COMP_SHUF_DEFLATE integer HE5_HDFE_COMP_SHUF_SZIP_CHIP integer HE5_HDFE_COMP_SHUF_SZIP_K13 integer HE5_HDFE_COMP_SHUF_SZIP_EC integer HE5_HDFE_COMP_SHUF_SZIP_NN integer HE5_HDFE_COMP_SHUF_SZIP_K13orEC integer HE5_HDFE_COMP_SHUF_SZIP_K13orNN parameter(HE5_HDFE_NOTILE =0) parameter(HE5_HDFE_TILE =1) parameter(HE5_HDFE_COMP_NONE =0) parameter(HE5_HDFE_COMP_RLE =1) parameter(HE5_HDFE_COMP_NBIT =2) parameter(HE5_HDFE_COMP_SKPHUFF =3) parameter(HE5_HDFE_COMP_DEFLATE =4) parameter(HE5_HDFE_COMP_SZIP_CHIP =5) parameter(HE5_HDFE_COMP_SZIP_K13 =6) parameter(HE5_HDFE_COMP_SZIP_EC =7) parameter(HE5_HDFE_COMP_SZIP_NN =8) parameter(HE5_HDFE_COMP_SZIP_K13orEC =9) parameter(HE5_HDFE_COMP_SZIP_K13orNN =10) parameter(HE5_HDFE_COMP_SHUF_DEFLATE =11) parameter(HE5_HDFE_COMP_SHUF_SZIP_CHIP =12) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13 =13) parameter(HE5_HDFE_COMP_SHUF_SZIP_EC =14) parameter(HE5_HDFE_COMP_SHUF_SZIP_NN =15) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orEC =16) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orNN =17) ! HDFEOS5 GROUP CODES ! =================== integer HE5_HDFE_GEOGROUP integer HE5_HDFE_DATAGROUP integer HE5_HDFE_ATTRGROUP integer HE5_HDFE_GRPATTRGROUP integer HE5_HDFE_LOCATTRGROUP integer HE5_HDFE_PROFGROUP integer HE5_HDFE_PROFGRPATTRGROUP integer HE5_HDFE_GEOGRPATTRGROUP parameter(HE5_HDFE_GEOGROUP =0) parameter(HE5_HDFE_DATAGROUP =1) parameter(HE5_HDFE_ATTRGROUP =2) parameter(HE5_HDFE_GRPATTRGROUP =3) parameter(HE5_HDFE_LOCATTRGROUP =4) parameter(HE5_HDFE_PROFGROUP =5) parameter(HE5_HDFE_PROFGRPATTRGROUP =6) parameter(HE5_HDFE_GEOGRPATTRGROUP =7) hdf-eos5-5.1.14+dfsg.1/testdrivers/za/testza64.f0000755000175000017500000015202412024715435022261 0ustar amckinstryamckinstry!---------------------------------------------------------------------------- ! Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | !---------------------------------------------------------------------------- ! testza64.f | ! In this program we create, define and write a simple za hdfeos file | ! using the za interface | !---------------------------------------------------------------------------- program testza64 implicit none include 'hdfeos5.inc' integer status integer index1 integer index2 integer zafid integer zaid integer zaid2 integer rank integer n, nt integer dtype integer classid integer order integer rdattr(4) integer global_attr(4) integer compparm(5) integer cnkrank integer rdcompparm(5) integer compcode integer ntyped(4) integer rnkd(4) integer he5_zaopen integer he5_zacreate integer he5_zaattach integer he5_zadefdim integer he5_zadefine integer he5_zadefchunk integer he5_zadefcomp integer he5_zasetfill integer he5_zawrattr integer he5_zawrlattr integer he5_zawrite integer he5_zaread integer he5_zawrgattr integer he5_zardattr integer he5_zardgattr integer he5_zardlattr integer he5_zainfo integer he5_zacompinfo integer he5_zaattrinfo integer he5_zagattrinfo integer he5_zalattrinfo integer he5_zagetfill integer he5_zaidtype integer he5_zadetach integer he5_zaclose integer*8 he5_zainqza integer*8 he5_zanentries integer*8 he5_zainqdims integer*8 he5_zadiminfo integer*8 he5_zainqattrs integer*8 he5_zainqgattrs integer*8 he5_zainqlattrs integer*8 he5_zainquire integer*8 size integer*8 strbufsize integer*8 ndims integer*8 chunkdims(1) integer*8 start(2) integer*8 stride(2) integer*8 dataedge(2) integer*8 istart(2) integer*8 iedge(2) integer*8 dedge(2) integer*8 sd_start(2) integer*8 sd_stride(2) integer*8 sd_edge(2) integer*8 rd_start(2) integer*8 rd_stride(2) integer*8 rd_edge(2) integer*8 dimsize integer*8 nattr integer*8 nza integer*8 nmaps integer*8 strbufsz2 integer*8 nflds integer*8 count(1) integer*8 zero integer*8 dims(2) integer*8 dims2(3) integer*8 sddims(2) integer*8 dim1 integer*8 dim2 integer*8 dim3 integer*8 dim4 real grpattr(3) real locattr(3) real rdgnlattr(3) real ray1(100,40) real ray2(40,100) real ray4(40,100) real ray3(40,40) real temp(40,100) real raycnt real fillvalue real rdfilval real tempbuf(4200) character*(256) dimname character*(256) fieldlist character*(256) attrlist character*(256) zalist character*(256) dimens character*(256) maxdims dim1 = 30 dim2 = 40 dim3 = 50 dim4 = 100 count(1) = 3 compparm(1) = 6 compparm(2) = 0 compparm(3) = 0 compparm(4) = 0 compparm(5) = 0 cnkrank = 1 chunkdims(1) = 10 rdcompparm(1) = 1 rdcompparm(2) = 1 rdcompparm(3) = 1 rdcompparm(4) = 1 rdcompparm(5) = 1 compcode = -1 raycnt = -799.0 global_attr(1)= 11 global_attr(2)= 33 global_attr(3)= 66 global_attr(4)= 99 grpattr(1) = 21.7 grpattr(2) = 24.3 grpattr(3) = 26.3 locattr(3) = 21.7 locattr(2) = 24.3 locattr(1) = 26.3 start(1) = 10 start(2) = 10 stride(1) = 1 stride(2) = 1 sd_start(1) = 0 sd_start(2) = 0 sd_stride(1) = 1 sd_stride(2) = 1 sd_edge(1) = 100 sd_edge(2) = 40 rd_start(1) = 0 rd_start(2) = 0 rd_stride(1) = 1 rd_stride(2) = 1 rd_edge(1) = 40 rd_edge(2) = 100 dataedge(1) = 20 dataedge(2) = 50 istart(1) = 0 istart(2) = 0 iedge(1) = 30 iedge(2) = 30 dedge(1) = 40 dedge(2) = 40 rank = 2 fillvalue = 16.0 zero = 0 ! ! This section of the program just fills some arrays with data that will be ! used later in the program ! do 110 index1=1,100 do 100 index2=1,40 ray1(index1, index2)=raycnt ray2(index2, index1)=raycnt + 1.0 ray4(index2,index1) = raycnt raycnt = raycnt +1. 100 continue 110 continue do 170 index1=1,40 do 160 index2=1,40 ray3(index1, index2)=raycnt raycnt = raycnt+1.25 160 continue 170 continue 230 format('********Error unexpected**********') 240 format('***********Passed Test*********') open(unit=1, file="testza.txt", status = "UNKNOWN") write(*,*)'Testing he5_za FORTRAN 77 interface' write(*,*)'======================================' write(1,*)'Testing he5_za FORTRAN 77 interface' write(1,*)'======================================' write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zaopen ! write(*,*)'Testing he5_zaopen ' write(*,*)'=====================' write(1,*)'Testing he5_zaopen ' write(1,*)'=====================' zafid=he5_zaopen('za.he5',HE5F_ACC_TRUNC) if (zafid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' zafid= he5_zaopen("za.he5",HE5F_ACC_TRUNC)' write(*,*)' Value returned by he5_zaopen ', zafid write(1,*)' zafid= he5_zaopen("za.he5",HE5F_ACC_TRUNC)' write(1,*)' Value returned by he5_zaopen ', zafid endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zacreate ! write(1,27) write(*,*)'Testing he5_zacreate ' write(*,*)'=====================' write(1,*)'Testing he5_zacreate ' write(1,*)'=====================' zaid=he5_zacreate(zafid,'Simplef') if (zaid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid=he5_zacreate(zafid, "Simplef")' write(*,*)'Value returned by he5_zacreate ', zaid write(1,*)'zaid= he5_zacreate(zafid, "Simplef")' write(1,*)'Value returned by he5_zacreate ', zaid endif write(*,*)' ' write(1,*)' ' zaid2=he5_zacreate(zafid,'Indexedf') if (zaid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid2= he5_zacreate(zafid, "Indexedf")' write(*,*)'Value returned by he5_zacreate ', zaid2 write(1,*)'zaid2= he5_zacreate(zafid, "Indexedf")' write(1,*)'Value returned by he5_zacreate ', zaid2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadefdim ! write(1,27) write(*,*)'Testing he5_zadefdim ' write(*,*)'=====================' write(1,*)'Testing he5_zadefdim ' write(1,*)'=====================' status=he5_zadefdim(zaid,'DataTrack',dim4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_zadefdim(zaid, "DataTrack", 100)' write(*,*)' Value returned by he5_zadefdim ',status write(1,*)' status= he5_zadefdim(zaid, "DataTrack", 100)' write(1,*)' Value returned by he5_zadefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefdim(zaid,'DataXtrack',dim2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_zadefdim(zaid, "DataXtrack", 40)' write(*,*)' Value returned by he5_zadefdim ',status write(1,*)' status= he5_zadefdim(zaid, "DataXtrack", 40)' write(1,*)' Value returned by he5_zadefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefdim(zaid2,'DataTrack',dim2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_zadefdim(zaid2, "DataTrack", 40)' write(*,*)' Value returned by he5_zadefdim ', status write(1,*)' status= he5_zadefdim(zaid2, "DataTrack", 40)' write(1,*)' Value returned by he5_zadefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_zadefdim(zaid2,'DataXtrack',dim2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_zadefdim(zaid2, "DataXtrack", 40)' write(*,*)' Value returned by he5_zadefdim ', status write(1,*)' status= he5_zadefdim(zaid2, "DataXtrack", 40)' write(1,*)' Value returned by he5_zadefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_zadefdim(zaid2,'Timedim',dim2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define dimension Timedim ' write(*,*)' Value returned by he5_zadefdim ', status write(1,*)'Define dimension Timedim ' write(1,*)' Value returned by he5_zadefdim ', status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadefine ! write(1,27) write(*,*)'Testing he5_zadefine ' write(*,*)'=====================' write(1,*)'Testing he5_zadefine ' write(1,*)'=====================' status=he5_zadefine(zaid,'SideA','DataXtrack,DataTrack', 1' ', HE5T_NATIVE_FLOAT) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field SideA ' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'Define data field SideA ' write(1,*)'Value returned by he5_zadefine ',status write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zasetfill ! write(1,27) write(*,*)'Testing he5_zasetfill ' write(*,*)'=====================' write(1,*)'Testing he5_zasetfill ' write(1,*)'=====================' status= he5_zasetfill(zaid,'Temperature', 1HE5T_NATIVE_FLOAT, fillvalue) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zasetfill(zaid,"Temperature", 1HE5T_NATIVE_FLOAT, fillvalue)' write(*,*)'Value returned by he5_zasetfill ',status write(1,*)'status=he5_zasetfill(zaid,"Temperature", 1HE5T_NATIVE_FLOAT, fillvalue)' write(1,*)'Value returned by he5_zasetfill ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefine(zaid,'Temperature', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field Temperature ' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'Define data field Temperature ' write(1,*)'Value returned by he5_zadefine ',status write(*,*)' ' write(1,*)' ' endif status= he5_zasetfill(zaid,'Conduction', 1HE5T_NATIVE_FLOAT,fillvalue) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zasetfill(zaid,"Conduction", 1HE5T_NATIVE_FLOAT,fillvalue)' write(*,*)'Value returned by he5_zasetfill ',status write(1,*)'status=he5_zasetfill(zaid,"Conduction", 1HE5T_NATIVE_FLOAT,fillvalue)' write(1,*)'Value returned by he5_zasetfill ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefine(zaid,'Conduction', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadefine(zaid,"Conduction", 1"DataXtrack,DataTrack","",HE5T_NATIVE_FLOAT)' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'status= he5_zadefine(zaid,"Conduction", 1"DataXtrack,DataTrack","",HE5T_NATIVE_FLOAT)' write(1,*)'Value returned by he5_zadefine ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefine(zaid2,'Sensor1', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zadefine(zaid2, "Sensor1", 1"DataTrack,DataXtrack","",HE5T_NATIVE_FLOAT)' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'status= he5_zadefine(zaid2, "Sensor1", 1"DataTrack,DataXtrack","",HE5T_NATIVE_FLOAT)' write(1,*)'Value returned by he5_zadefine ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadefchunk ! write(1,27) write(*,*)'Testing he5_zadefchunk' write(*,*)'======================' write(1,*)'Testing he5_zadefchunk' write(1,*)'======================' status=he5_zadefchunk(zaid,cnkrank,chunkdims) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadefchunk(zaid, cnkrank, chunkdims)' write(*,*)'Value returned by he5_zadefchunk ',status write(1,*)'status= he5_zadefchunk(zaid, cnkrank, chunkdims)' write(1,*)'Value returned by he5_zadefchunk ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadefcomp ! write(1,27) write(*,*)'Testing he5_zadefcomp' write(*,*)'=====================' write(1,*)'Testing he5_zadefcomp' write(1,*)'=====================' status=he5_zadefcomp(zaid,HE5_HDFE_COMP_DEFLATE,compparm) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadefcomp(zaid,HE5_HDFE_COMP_DEFLATE, 1compparm)' write(*,*)'Value returned by he5_zadefcomp ',status write(1,*)'status= he5_zadefcomp(zaid,HE5_HDFE_COMP_DEFLATE, 1compparm)' write(1,*)'Value returned by he5_zadefcomp ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefine(zaid,'CompChunk','DataTrack', 1' ',HE5T_NATIVE_FLOAT) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field CompChunk ' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'Define data field CompChunk ' write(1,*)'Value returned by he5_zadefine ',status write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zadetach ! write(1,27) write(*,*)'Testing he5_zadetach ' write(*,*)'=====================' write(1,*)'Testing he5_zadetach ' write(1,*)'=====================' status=he5_zadetach(zaid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadetach(zaid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid2)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid2)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' zaid=he5_zaattach(zafid,'Simplef') if (zaid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid= he5_zaattach(zafid, "Simplef")' write(*,*)'Value returned by he5_zaattach ',zaid write(1,*)'zaid= he5_zaattach(zafid, "Simplef")' write(1,*)'Value returned by he5_zaattach ',zaid endif write(*,*)' ' write(1,*)' ' zaid2=he5_zaattach(zafid,'Indexedf') if (zaid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(*,*)'Value returned by he5_zaattach ',zaid2 write(1,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(1,*)'Value returned by he5_zaattach ',zaid2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadetach ! write(1,27) write(*,*)'Testing he5_zadetach ' write(*,*)'=====================' write(1,*)'Testing he5_zadetach ' write(1,*)'=====================' status= he5_zadetach(zaid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid2)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid2)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zaclose(zafid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaclose(zafid)' write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' zafid=he5_zaopen('za.he5',HE5F_ACC_RDWR) if (zafid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zafid=he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_zaopen ',zafid write(1,*)'zafid=he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_zaopen ',zafid endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zaattach ! write(1,27) write(*,*)'Testing he5_zaattach ' write(*,*)'=====================' write(1,*)'Testing he5_zaattach ' write(1,*)'=====================' zaid=he5_zaattach(zafid,'Simplef') if (zaid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid= he5_zaattach(zafid, "Simplef")' write(*,*)'Value returned by he5_zaattach ',zaid write(1,*)'zaid= he5_zaattach(zafid, "Simplef")' write(1,*)'Value returned by he5_zaattach ',zaid endif write(*,*)' ' write(1,*)' ' zaid2=he5_zaattach(zafid,'Indexedf') if (zaid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(*,*)'Value returned by he5_zaattach ',zaid2 write(1,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(1,*)'Value returned by he5_zaattach ',zaid2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zawrite ! write(1,27) write(*,*)'Testing he5_zawrite ' write(*,*)'===================' write(1,*)'Testing he5_zawrite ' write(1,*)'===================' status=he5_zawrite(zaid,'SideA',sd_start,stride, 1rd_edge, ray4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Write data field SideA ' write(*,*)'Value returned by he5_zawrite ',status write(1,*)'Write data field SideA ' write(1,*)'Value returned by he5_zawrite ',status endif write(*,*)' ' write(1,*)' ' status=he5_zawrite(zaid,'Temperature',start,stride, 1dataedge, ray4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrite(zaid,"Temperature",start, 1stride,dataedge, ray1)' write(*,*)'Value returned by he5_zawrite ',status write(1,*)'status=he5_zawrite(zaid,"Temperature",start, 1stride,dataedge, ray1)' write(1,*)'Value returned by he5_zawrite ',status endif write(*,*)' ' write(1,*)' ' status=he5_zawrite(zaid,'Conduction',start,stride, 1dataedge, ray2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrite(zaid,"Conduction",start, 1stride,dataedge, ray2)' write(*,*)'Value returned by he5_zawrite ',status write(1,*)'status=he5_zawrite(zaid,"Conduction",start, 1stride,dataedge, ray2)' write(1,*)'Value returned by he5_zawrite ',status endif write(*,*)' ' write(1,*)' ' iedge(1)=40 iedge(2)=40 status=he5_zawrite(zaid2,'Sensor1',istart,stride, 1iedge,ray3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zawrite(zaid2, "Sensor1", 1istart, stride, iedge, ray3)' write(*,*)'Value returned by he5_zawrite ',status write(1,*)'status= he5_zawrite(zaid2, "Sensor1", 1istart, stride, iedge, ray3)' write(1,*)'Value returned by he5_zawrite ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zawrlattr ! write(1,27) write(*,*)'Testing he5_zawrlattr, Local Attribute ' write(*,*)'================================== ' write(1,*)'Testing he5_zawrlattr, Local Attribute ' write(1,*)'================================== ' status=he5_zawrlattr(zaid2,'Sensor1','local', 1HE5T_NATIVE_FLOAT,count,locattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrlattr(zaid2,"Sensor1","local", 1HE5T_NATIVE_FLOAT,count,locattr)' write(*,*)'Value returned by he5_zawrlattr ',status write(1,*)'status=he5_zawrlattr(zaid2,"Sensor1", "local", 1HE5T_NATIVE_FLOAT,count,locattr)' write(1,*)'Value returned by he5_zawrlattr ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zawrattr ! count(1) = 4 write(1,27) write(*,*)'Testing he5_zawrattr, Global Attribute ' write(*,*)'====================================== ' write(1,*)'Testing he5_zawrattr, Global Attribute ' write(1,*)'======================================= ' status=he5_zawrattr(zaid,'Drift',HE5T_NATIVE_INT,count, 1global_attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrattr(zaid, "Drift", 1HE5T_NATIVE_INT, count, global_attr)' write(*,*)'Value returned by he5_zawrattr ',status write(1,*)'status=he5_zawrattr(zaid, "Drift", 1HE5T_NATIVE_INT, count, global_attr)' write(1,*)'Value returned by he5_zawrattr ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zawrgattr ! count(1) = 3 write(1,27) write(*,*)'Testing he5_zawrgattr, Group Attribute ' write(*,*)'====================================== ' write(1,*)'Testing he5_zawrgattr, Group Attribute ' write(1,*)'====================================== ' status=he5_zawrgattr(zaid,'group',HE5T_NATIVE_FLOAT, 1count,grpattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrgattr(zaid, "group", 1HE5T_NATIVE_FLOAT,count,grpgattr)' write(*,*)'Value returned by he5_zawrgattr ',status write(1,*)'status=he5_zawrgattr(zaid, "group", 1HE5T_NATIVE_FLOAT,count,grpattr)' write(1,*)'Value returned by he5_zawrgattr ',status endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid2)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid2)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zaclose ! write(1,27) write(*,*)'Testing he5_zaclose ' write(*,*)'===================' write(1,*)'Testing he5_zaclose ' write(1,*)'===================' status= he5_zaclose(zafid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' zafid= he5_zaopen('za.he5',HE5F_ACC_RDWR) if (zafid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_zaopen ', zafid write(1,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_zaopen ', zafid endif write(*,*)' ' write(1,*)' ' zaid= he5_zaattach(zafid,'Simplef') if (zaid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid= he5_zaattach(zafid, "Simplef")' write(*,*)'Value returned by he5_zaattach ',zaid write(1,*)'zaid= he5_zaattach(zafid, "Simplef")' write(1,*)'Value returned by he5_zaattach ',zaid endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zaclose(zafid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaclose(zafid)' write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' zafid= he5_zaopen('za.he5',HE5F_ACC_RDWR) if (zafid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_zaopen ',zafid write(1,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_zaopen ',zafid endif write(*,*)' ' write(1,*)' ' zaid=he5_zaattach(zafid,'Simplef') if (zaid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid= he5_zaattach(zafid, "Simplef")' write(*,*)'Value returned by he5_zaattach ',zaid write(1,*)'zaid= he5_zaattach(zafid, "Simplef")' write(1,*)'Value returned by he5_zaattach ',zaid endif write(*,*)' ' write(1,*)' ' zaid2=he5_zaattach(zafid,'Indexedf') if (zaid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(*,*)'Value returned by he5_zaattach ',zaid2 write(1,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(1,*)'Value returned by he5_zaattach ',zaid2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zanentries ! write(1,27) write(*,*)'Testing he5_zanentries ' write(*,*)'=====================' write(1,*)'Testing he5_zanentries ' write(1,*)'=====================' nmaps=he5_zanentries(zaid,1,strbufsize) if (nmaps .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nmaps= he5_zanentries(zaid, 1, strbufsize)' write(*,*)'Number of dimension mappings ',nmaps write(*,*)'Size of strbufsize ',strbufsize write(1,*)'nmaps= he5_zanentries(zaid, 1, strbufsize)' write(1,*)'Number of dimension mappings ',nmaps write(1,*)'Size of strbufsize ',strbufsize endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqdims ! write(1,27) write(*,*)'Testing he5_zainqdims ' write(*,*)'=====================' write(1,*)'Testing he5_zainqdims ' write(1,*)'=====================' ndims=he5_zainqdims(zaid,dimname,dims) if (ndims .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'ndims= he5_zainqdims(zaid, dimname, dims)' write(*,*)'Number of dimesions ',ndims write(*,*)'Names of dimensions ',dimname write(*,*)'Size of dimensions ',dims write(1,*)'ndims= he5_zainqdims(zaid, dimname, dims)' write(1,*)'Number of dimesions ',ndims write(1,*)'Names of dimensions ',dimname write(1,*)'Size of dimensions ',dims endif write(*,*)' ' write(1,*)' ' ndims= he5_zainqdims(zaid2, dimname, dims2) if (ndims .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'ndims=he5_zainqdims(zaid2,dimname,dims2)' write(*,*)'Number of dimesions ',ndims write(*,*)'Names of dimensions ',dimname write(*,*)'Size of dimensions ',dims2 write(1,*)'ndims=he5_zainqdims(zaid2,dimname,dims2)' write(1,*)'Number of dimesions ',ndims write(1,*)'Names of dimensions ',dimname write(1,*)'Size of dimensions ',dims2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainquire ! write(1,27) write(*,*)'Testing he5_zainquire ' write(*,*)'======================' write(1,*)'Testing he5_zainquire ' write(1,*)'======================' nflds=he5_zainquire(zaid,fieldlist,rnkd,ntyped) if (nflds .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nflds=he5_zainquire(zaid,fieldlist,rnkd,ntyped)' write(*,*)'Number of data fields in za ',nflds write(*,*)'Names of data fields ',fieldlist write(*,*)'Rank of fields ',rnkd write(*,*)'Number type of fields ',ntyped write(1,*)'nflds=he5_zainquire(zaid,fieldlist,rnkd,ntyped)' write(1,*)'Number of data fields in za ',nflds write(1,*)'Names of data fields ',fieldlist write(1,*)'Rank of fields ',rnkd write(1,*)'Number type of fields ',ntyped endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadiminfo ! write(1,27) write(*,*)'Testing he5_zadiminfo ' write(*,*)'=====================' write(1,*)'Testing he5_zadiminfo ' write(1,*)'=====================' dimsize= he5_zadiminfo(zaid,'DataTrack') if (dimsize .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'dimsize= he5_zadiminfo(zaid, "DataTrack")' write(*,*)'Size of dimension DataTrack ',dimsize write(1,*)'dimsize= he5_zadiminfo(zaid, "DataTrack")' write(1,*)'Size of dimension DataTrack ',dimsize write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zaread ! write(1,27) write(*,*)'Testing he5_zaread ' write(*,*)'===================' write(1,*)'Testing he5_zaread ' write(1,*)'===================' rd_start(1)=0 rd_start(2)=0 rd_stride(1)=1 rd_stride(2)=1 rd_edge(1)=40 rd_edge(2)=100 status= he5_zaread(zaid,'Conduction',rd_start, 1rd_stride,rd_edge,temp) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_zaread ',status write(*,*)'status= he5_zaread(zaid, "Conduction", 1rd_start,rd_stride, rd_edge, temp)' write(1,*)'status= he5_zaread(zaid, "Conduction", 1rd_start,rd_stride, rd_edge, temp)' write(1,*)'Value returned by he5_zaread ',status do 190 index1=10,15 do 180 index2=10,15 write(*,*)'value of conduction ',temp(index1,index2) write(1,*)'value of conduction ',temp(index1,index2) 180 continue 190 continue endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainfo ! write(1,27) write(*,*)'Testing he5_zainfo ' write(*,*)'=====================' write(1,*)'Testing he5_zainfo ' write(1,*)'=====================' status=he5_zainfo(zaid,'SideA',rank,sddims,nt, 1dimens,maxdims) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zainfo(zaid, "SideA", 1rank, sddims, nt, dimens, maxdims)' write(*,*)'Value returned by he5_zainfo ',status write(*,*)'Rank of field sideA ',rank write(*,*)'dimension list of field sideA ',dimens write(*,*)'Size of sideA dimensions ',sddims write(*,*)'number type of field sideA ',nt write(1,*)'status= he5_zainfo(zaid, "SideA", 1rank, sddims, nt, dimens, maxdims)' write(1,*)'Value returned by he5_zainfo ',status write(1,*)'Rank of field sideA ',rank write(1,*)'dimension list of field sideA ',dimens write(1,*)'Size of sideA dimensions ',sddims write(1,*)'number type of field sideA ',nt endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqattrs ! write(1,27) write(*,*)'Testing he5_zainqattrs Global attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_zainqattrs Global attributes ' write(1,*)'==================================== ' nattr = he5_zainqattrs(zaid,attrlist,strbufsz2) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Number of global attributes in za ',nattr write(*,*)'Attribute list of za ',attrlist write(1,*)'Number of global attributes in za ',nattr write(1,*)'Attribute list of za ',attrlist write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zaattrinfo ! write(1,27) write(*,*)'Testing he5_zaattrinfo Global attribute' write(*,*)'=======================================' write(1,*)'Testing he5_zaattrinfo Global attribute' write(1,*)'=======================================' status= he5_zaattrinfo(zaid, attrlist, n, size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zaattrinfo(zaid,attrlist,n,size)' write(*,*)'Value returned by he5_zaattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'status=he5_zaattrinfo(zaid,attrlist,n,size)' write(1,*)'Value returned by he5_zaattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zardattr ! write(1,27) write(*,*)'Testing he5_zardattr, Global attribute ' write(*,*)'======================================' write(1,*)'Testing he5_zardattr, Global attribute ' write(1,*)'======================================' status= he5_zardattr(zaid, attrlist, rdattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zardattr(zaid,attrlist,rdattr)' write(*,*)'Value returned by he5_zardattr ',status write(*,*)'attribute ',rdattr write(1,*)'status=he5_zardattr(zaid,attrlist,rdattr)' write(1,*)'Value returned by he5_zardattr ',status write(1,*)'attribute ',rdattr endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqgattrs ! write(1,27) write(*,*)'Testing he5_zainqgattrs Group attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_zainqgattrs Group attributes ' write(1,*)'==================================== ' nattr = he5_zainqgattrs(zaid,attrlist,strbufsz2) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Number of group attributes in za ',nattr write(*,*)'Attribute list of za ',attrlist write(1,*)'Number of group attributes in za ',nattr write(1,*)'Attribute list of za ',attrlist write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zagattrinfo ! write(1,27) write(*,*)'Testing he5_zagattrinfo Group attribute' write(*,*)'=======================================' write(1,*)'Testing he5_zagattrinfo Group attribute' write(1,*)'=======================================' status= he5_zagattrinfo(zaid, attrlist, n, size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zagattrinfo(zaid,attrlist,n,size)' write(*,*)'Value returned by he5_zagattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'status=he5_zagattrinfo(zaid,attrlist,n,size)' write(1,*)'Value returned by he5_zagattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zardgattr ! write(1,27) write(*,*)'Testing he5_zardgattr, Group attribute ' write(*,*)'======================================' write(1,*)'Testing he5_zardgattr, Group attribute ' write(1,*)'======================================' status= he5_zardgattr(zaid,'group',rdgnlattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zardgattr(zaid,attrlist,rdgnlattr)' write(*,*)'Value returned by he5_zardgattr ',status write(*,*)'attribute ',rdgnlattr write(1,*)'status=he5_zardgattr(zaid,attrlist,rdgnlattr)' write(1,*)'Value returned by he5_zardgattr ',status write(1,*)'attribute ',rdgnlattr endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqlattrs ! write(1,27) write(*,*)'Testing he5_zainqlattrs Local attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_zainqlattrs Local attributes ' write(1,*)'==================================== ' nattr=he5_zainqlattrs(zaid2,'Sensor1',attrlist,strbufsz2) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zainqlattrs(... "Sensor1" ...)' write(*,*)'Number of local attributes in field ',nattr write(*,*)'Attribute list of field ',attrlist write(1,*)'zainqlattrs(... "Sensor1" ...)' write(1,*)'Number of local attributes in field ',nattr write(1,*)'Attribute list of field ',attrlist write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zalattrinfo ! write(1,27) write(*,*)'Testing he5_zalattrinfo Local attribute' write(*,*)'=======================================' write(1,*)'Testing he5_zalattrinfo Local attribute' write(1,*)'=======================================' status=he5_zalattrinfo(zaid2,'Sensor1','local',n,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zalattrinfo(... "Sensor1" ...)' write(*,*)'Value returned by he5_zalattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'zalattrinfo(... "Sensor1" ...)' write(1,*)'Value returned by he5_zalattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zaidtype ! write(1,27) write(*,*)'Testing he5_zaidtype, Inquire Datatype ' write(*,*)'=======================================' write(1,*)'Testing he5_zaidtype, Inquire Datatype ' write(1,*)'=======================================' status= he5_zaidtype(zaid2,'Sensor1','local', 1HE5_HDFE_LOCATTRGROUP,dtype,classid, order, size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaidtype(zaid2,"Sensor1","local", 1HE5_HDFE_LOCATTRGROUP,dtype, classid, order, size)' write(*,*)'Value returned by he5_zaidtype ',status write(*,*)'Datatype of local attribute ',dtype write(*,*)'Class id and order ',classid, order write(*,*)'Size of attribute ',size write(1,*)'status= he5_zaidtype(zaid2,"Sensor1","local", 1HE5_HDFE_LOCATTRGROUP,dtype, classid, order, size)' write(1,*)'Value returned by he5_zaidtype ',status write(1,*)'Datatype of local attribute ',dtype write(1,*)'Class id and order ',classid, order write(1,*)'Size of attribute ',size endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zardlattr ! write(1,27) write(*,*)'Testing he5_zardlattr, Local attribute ' write(*,*)'======================================' write(1,*)'Testing he5_zardlattr, Local attribute ' write(1,*)'======================================' status=he5_zardlattr(zaid2,'Sensor1','local',rdgnlattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zardlattr(zaid2,"Sensor1","local", 1rdgnlattr)' write(*,*)'Value returned by he5_zardlattr ',status write(*,*)'attribute ',rdgnlattr write(1,*)'status=he5_zardlattr(zaid2,"Sensor1","local", 1rdgnlattr)' write(1,*)'Value returned by he5_zardlattr ',status write(1,*)'attribute ',rdgnlattr endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zagetfill ! write(1,27) write(*,*)'Testing he5_zagetfill ' write(*,*)'=====================' write(1,*)'Testing he5_zagetfill ' write(1,*)'=====================' status= he5_zagetfill(zaid,'Conduction', rdfilval) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zagetfill(zaid,"Conduction",rdfilval)' write(*,*)'Value returned by he5_zagetfill ',status write(*,*)'Value of fill ',rdfilval write(1,*)'status=he5_zagetfill(zaid,"Conduction",rdfilval)' write(1,*)'Value returned by he5_zagetfill ',status write(1,*)'Value of fill ',rdfilval endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zacompinfo ! write(1,27) write(*,*)'Testing he5_zacompinfo ' write(*,*)'=======================' write(1,*)'Testing he5_zacompinfo ' write(1,*)'=======================' status=he5_zacompinfo(zaid,'CompChunk',compcode,rdcompparm) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zacompinfo(zaid,"CompChunk",compcode, 1rdcompparm)' write(*,*)'Status returned by he5_zacompinfo ',status write(*,*)'Compression code ',compcode write(*,*)'Compression parameter ',rdcompparm(1) write(1,*)'status=he5_zacompinfo(zaid,"CompChunk",compcode, 1rdcompparm)' write(1,*)'Status returned by he5_zacompinfo ',status write(1,*)'Compression code ',compcode write(1,*)'Compression parameter ',rdcompparm(1) endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid2)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid2)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zaclose(zafid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaclose(zafid)' write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' zafid= he5_zaopen('za.he5',HE5F_ACC_RDWR) if (zafid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_zaopen ',zafid write(1,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_zaopen ',zafid endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqza ! write(1,27) write(*,*)'Testing he5_zainqza ' write(*,*)'======================' write(1,*)'Testing he5_zainqza ' write(1,*)'======================' nza=he5_zainqza('za.he5',zalist,strbufsz2) if (nza .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Retrieve information on zas in 1file za.he5' write(*,*)'Number of zas in file ', nza write(*,*)'List of zas ',zalist write(1,*)'Retrieve information on zas in 1file za.he5' write(1,*)'Number of zas in file ', nza write(1,*)'List of zas ',zalist endif write(*,*)' ' write(1,*)' ' status= he5_zaclose(zafid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaclose(zafid)' write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' close(unit=1) 27 format(' ') stop end hdf-eos5-5.1.14+dfsg.1/testdrivers/za/testza32.f0000755000175000017500000014764212024715435022266 0ustar amckinstryamckinstry!---------------------------------------------------------------------------- ! Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company | !---------------------------------------------------------------------------- ! testza32.f | ! In this program we create, define and write a simple za hdfeos file | ! using the za interface | !---------------------------------------------------------------------------- program testza32 implicit none include 'hdfeos5.inc' integer index1, index2, status integer rank, n, dtype, classid, order integer rdattr(4), global_attr(4) integer compparm(5), cnkrank integer rdcompparm(5), compcode integer he5_zaopen, he5_zacreate integer zafid, zaid, zaid2 integer he5_zadefdim, he5_zadetach integer he5_zadefine integer he5_zaclose integer he5_zasetfill, he5_zawrlattr, he5_zawrattr integer he5_zawrite, he5_zawrgattr integer he5_zaread, he5_zainfo integer he5_zaattrinfo, he5_zardattr integer he5_zagattrinfo, he5_zardgattr, he5_zardlattr integer he5_zalattrinfo, he5_zagetfill, he5_zaidtype integer he5_zadefchunk, he5_zadefcomp, he5_zacompinfo integer rnkd(4), ntyped(4), nt integer he5_zaattach integer*4 he5_zainqza, he5_zanentries integer*4 he5_zainqdims, he5_zadiminfo integer*4 he5_zainqattrs, he5_zainqgattrs integer*4 he5_zainqlattrs, he5_zainquire integer*4 size, strbufsize, ndims, chunkdims(1) integer*4 start(2), stride(2), dataedge(2) integer*4 istart(2),iedge(2),dedge(2) integer*4 sd_start(2), sd_stride(2), sd_edge(2) integer*4 rd_start(2), rd_stride(2), rd_edge(2) integer*4 dimsize integer*4 nattr, nza, nmaps integer*4 strbufsz2, nflds integer*4 count(1) integer*4 dims(2),dims2(3),sddims(2) integer*4 dim1, dim2, dim3, dim4 real grpattr(3), locattr(3), rdgnlattr(3) real ray1(100,40), ray2(40,100) real ray4(40,100) real ray3(40,40), temp(40,100) real raycnt real fillvalue, rdfilval character*(256) dimname, fieldlist character*(256) attrlist, zalist character*(256) dimens, maxdims dim1 = 30 dim2 = 40 dim3 = 50 dim4 = 100 count(1) = 3 compparm(1) = 6 compparm(2) = 0 compparm(3) = 0 compparm(4) = 0 compparm(5) = 0 cnkrank = 1 chunkdims(1) = 10 rdcompparm(1) = 1 rdcompparm(2) = 1 rdcompparm(3) = 1 rdcompparm(4) = 1 rdcompparm(5) = 1 compcode = -1 raycnt = -799.0 global_attr(1)= 11 global_attr(2)= 33 global_attr(3)= 66 global_attr(4)= 99 grpattr(1) = 21.7 grpattr(2) = 24.3 grpattr(3) = 26.3 locattr(3) = 21.7 locattr(2) = 24.3 locattr(1) = 26.3 start(1) = 10 start(2) = 10 stride(1) = 1 stride(2) = 1 sd_start(1) = 0 sd_start(2) = 0 sd_stride(1) = 1 sd_stride(2) = 1 sd_edge(1) = 100 sd_edge(2) = 40 rd_start(1) = 0 rd_start(2) = 0 rd_stride(1) = 1 rd_stride(2) = 1 rd_edge(1) = 40 rd_edge(2) = 100 dataedge(1) = 20 dataedge(2) = 50 istart(1) = 0 istart(2) = 0 iedge(1) = 30 iedge(2) = 30 dedge(1) = 40 dedge(2) = 40 rank = 2 fillvalue = 16.0 ! ! This section of the program just fills some arrays with data that will be ! used later in the program ! do 110 index1=1,100 do 100 index2=1,40 ray1(index1, index2)=raycnt ray2(index2, index1)=raycnt + 1.0 ray4(index2,index1) = raycnt raycnt = raycnt +1. 100 continue 110 continue do 170 index1=1,40 do 160 index2=1,40 ray3(index1, index2)=raycnt raycnt = raycnt+1.25 160 continue 170 continue 230 format('********Error unexpected**********') 240 format('***********Passed Test*********') open(unit=1, file="testza.txt", status = "UNKNOWN") write(*,*)'Testing he5_za FORTRAN 77 interface' write(*,*)'======================================' write(1,*)'Testing he5_za FORTRAN 77 interface' write(1,*)'======================================' write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zaopen ! write(*,*)'Testing he5_zaopen ' write(*,*)'=====================' write(1,*)'Testing he5_zaopen ' write(1,*)'=====================' zafid=he5_zaopen('za.he5',HE5F_ACC_TRUNC) if (zafid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_TRUNC)' write(*,*)'Value returned by he5_zaopen ', zafid write(1,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_TRUNC)' write(1,*)'Value returned by he5_zaopen ', zafid endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zacreate ! write(1,27) write(*,*)'Testing he5_zacreate ' write(*,*)'=====================' write(1,*)'Testing he5_zacreate ' write(1,*)'=====================' zaid=he5_zacreate(zafid,'Simplef') if (zaid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid=he5_zacreate(zafid, "Simplef")' write(*,*)'Value returned by he5_zacreate ', zaid write(1,*)'zaid= he5_zacreate(zafid, "Simplef")' write(1,*)'Value returned by he5_zacreate ', zaid endif write(*,*)' ' write(1,*)' ' zaid2=he5_zacreate(zafid,'Indexedf') if (zaid2 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' zaid2= he5_zacreate(zafid, "Indexedf")' write(*,*)' Value returned by he5_zacreate ', zaid2 write(1,*)' zaid2= he5_zacreate(zafid, "Indexedf")' write(1,*)' Value returned by he5_zacreate ', zaid2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadefdim ! write(1,27) write(*,*)'Testing he5_zadefdim ' write(*,*)'=====================' write(1,*)'Testing he5_zadefdim ' write(1,*)'=====================' status=he5_zadefdim(zaid,'DataTrack',dim4) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_zadefdim(zaid, "DataTrack", 100)' write(*,*)' Value returned by he5_zadefdim ',status write(1,*)' status= he5_zadefdim(zaid, "DataTrack", 100)' write(1,*)' Value returned by he5_zadefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefdim(zaid,'DataXtrack',dim2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_zadefdim(zaid, "DataXtrack", 40)' write(*,*)' Value returned by he5_zadefdim ',status write(1,*)' status= he5_zadefdim(zaid, "DataXtrack", 40)' write(1,*)' Value returned by he5_zadefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefdim(zaid2,'DataTrack',dim2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_zadefdim(zaid2, "DataTrack", 40)' write(*,*)' Value returned by he5_zadefdim ', status write(1,*)' status= he5_zadefdim(zaid2, "DataTrack", 40)' write(1,*)' Value returned by he5_zadefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_zadefdim(zaid2,'DataXtrack',dim2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_zadefdim(zaid2, "DataXtrack", 40)' write(*,*)' Value returned by he5_zadefdim ', status write(1,*)' status= he5_zadefdim(zaid2, "DataXtrack", 40)' write(1,*)' Value returned by he5_zadefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_zadefdim(zaid2,'Timedim',dim2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define dimension Timedim ' write(*,*)' Value returned by he5_zadefdim ', status write(1,*)'Define dimension Timedim ' write(1,*)' Value returned by he5_zadefdim ', status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadefine ! write(1,27) write(*,*)'Testing he5_zadefine ' write(*,*)'=====================' write(1,*)'Testing he5_zadefine ' write(1,*)'=====================' status=he5_zadefine(zaid,'SideA','DataXtrack,DataTrack', 1' ', HE5T_NATIVE_FLOAT) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field SideA ' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'Define data field SideA ' write(1,*)'Value returned by he5_zadefine ',status write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zasetfill ! write(1,27) write(*,*)'Testing he5_zasetfill ' write(*,*)'=====================' write(1,*)'Testing he5_zasetfill ' write(1,*)'=====================' status= he5_zasetfill(zaid,'Temperature', 1HE5T_NATIVE_FLOAT, fillvalue) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zasetfill(zaid,"Temperature", 1HE5T_NATIVE_FLOAT, fillvalue)' write(*,*)'Value returned by he5_zasetfill ',status write(1,*)'status=he5_zasetfill(zaid,"Temperature", 1HE5T_NATIVE_FLOAT, fillvalue)' write(1,*)'Value returned by he5_zasetfill ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefine(zaid,'Temperature', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field Temperature ' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'Define data field Temperature ' write(1,*)'Value returned by he5_zadefine ',status write(*,*)' ' write(1,*)' ' endif status= he5_zasetfill(zaid,'Conduction', 1HE5T_NATIVE_FLOAT,fillvalue) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zasetfill(zaid,"Conduction", 1HE5T_NATIVE_FLOAT,fillvalue)' write(*,*)'Value returned by he5_zasetfill ',status write(1,*)'status=he5_zasetfill(zaid,"Conduction", 1HE5T_NATIVE_FLOAT,fillvalue)' write(1,*)'Value returned by he5_zasetfill ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefine(zaid,'Conduction', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadefine(zaid,"Conduction", 1"DataXtrack,DataTrack","",HE5T_NATIVE_FLOAT)' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'status= he5_zadefine(zaid,"Conduction", 1"DataXtrack,DataTrack","",HE5T_NATIVE_FLOAT)' write(1,*)'Value returned by he5_zadefine ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefine(zaid2,'Sensor1', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zadefine(zaid2, "Sensor1", 1"DataTrack,DataXtrack","",HE5T_NATIVE_FLOAT)' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'status= he5_zadefine(zaid2, "Sensor1", 1"DataTrack,DataXtrack","",HE5T_NATIVE_FLOAT)' write(1,*)'Value returned by he5_zadefine ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadefchunk ! write(1,27) write(*,*)'Testing he5_zadefchunk' write(*,*)'======================' write(1,*)'Testing he5_zadefchunk' write(1,*)'======================' status=he5_zadefchunk(zaid,cnkrank,chunkdims) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadefchunk(zaid, cnkrank, chunkdims)' write(*,*)'Value returned by he5_zadefchunk ',status write(1,*)'status= he5_zadefchunk(zaid, cnkrank, chunkdims)' write(1,*)'Value returned by he5_zadefchunk ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadefcomp ! write(1,27) write(*,*)'Testing he5_zadefcomp' write(*,*)'=====================' write(1,*)'Testing he5_zadefcomp' write(1,*)'=====================' status=he5_zadefcomp(zaid,HE5_HDFE_COMP_DEFLATE,compparm) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadefcomp(zaid,HE5_HDFE_COMP_DEFLATE, 1compparm)' write(*,*)'Value returned by he5_zadefcomp ',status write(1,*)'status= he5_zadefcomp(zaid,HE5_HDFE_COMP_DEFLATE, 1compparm)' write(1,*)'Value returned by he5_zadefcomp ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadefine(zaid,'CompChunk','DataTrack', 1' ',HE5T_NATIVE_FLOAT) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field CompChunk ' write(*,*)'Value returned by he5_zadefine ',status write(1,*)'Define data field CompChunk ' write(1,*)'Value returned by he5_zadefine ',status write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zadetach ! write(1,27) write(*,*)'Testing he5_zadetach ' write(*,*)'=====================' write(1,*)'Testing he5_zadetach ' write(1,*)'=====================' status=he5_zadetach(zaid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status=he5_zadetach(zaid2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid2)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid2)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' zaid=he5_zaattach(zafid,'Simplef') if (zaid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid= he5_zaattach(zafid, "Simplef")' write(*,*)'Value returned by he5_zaattach ',zaid write(1,*)'zaid= he5_zaattach(zafid, "Simplef")' write(1,*)'Value returned by he5_zaattach ',zaid endif write(*,*)' ' write(1,*)' ' zaid2=he5_zaattach(zafid,'Indexedf') if (zaid2 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(*,*)'Value returned by he5_zaattach ',zaid2 write(1,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(1,*)'Value returned by he5_zaattach ',zaid2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadetach ! write(1,27) write(*,*)'Testing he5_zadetach ' write(*,*)'=====================' write(1,*)'Testing he5_zadetach ' write(1,*)'=====================' status= he5_zadetach(zaid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid2)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid2)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status=he5_zaclose(zafid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaclose(zafid)' write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' zafid=he5_zaopen('za.he5',HE5F_ACC_RDWR) if (zafid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zafid=he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_zaopen ',zafid write(1,*)'zafid=he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_zaopen ',zafid endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zaattach ! write(1,27) write(*,*)'Testing he5_zaattach ' write(*,*)'=====================' write(1,*)'Testing he5_zaattach ' write(1,*)'=====================' zaid=he5_zaattach(zafid,'Simplef') if (zaid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid= he5_zaattach(zafid, "Simplef")' write(*,*)'Value returned by he5_zaattach ',zaid write(1,*)'zaid= he5_zaattach(zafid, "Simplef")' write(1,*)'Value returned by he5_zaattach ',zaid endif write(*,*)' ' write(1,*)' ' zaid2=he5_zaattach(zafid,'Indexedf') if (zaid2 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(*,*)'Value returned by he5_zaattach ',zaid2 write(1,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(1,*)'Value returned by he5_zaattach ',zaid2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zawrite ! write(1,27) write(*,*)'Testing he5_zawrite ' write(*,*)'===================' write(1,*)'Testing he5_zawrite ' write(1,*)'===================' status=he5_zawrite(zaid,'SideA',sd_start,stride, 1rd_edge, ray4) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Write data field SideA ' write(*,*)'Value returned by he5_zawrite ',status write(1,*)'Write data field SideA ' write(1,*)'Value returned by he5_zawrite ',status endif write(*,*)' ' write(1,*)' ' status=he5_zawrite(zaid,'Temperature',start,stride, 1dataedge, ray4) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrite(zaid,"Temperature",start, 1stride,dataedge, ray1)' write(*,*)'Value returned by he5_zawrite ',status write(1,*)'status=he5_zawrite(zaid,"Temperature",start, 1stride,dataedge, ray1)' write(1,*)'Value returned by he5_zawrite ',status endif write(*,*)' ' write(1,*)' ' status=he5_zawrite(zaid,'Conduction',start,stride, 1dataedge, ray2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrite(zaid,"Conduction",start, 1stride,dataedge, ray2)' write(*,*)'Value returned by he5_zawrite ',status write(1,*)'status=he5_zawrite(zaid,"Conduction",start, 1stride,dataedge, ray2)' write(1,*)'Value returned by he5_zawrite ',status endif write(*,*)' ' write(1,*)' ' iedge(1)=40 iedge(2)=40 status=he5_zawrite(zaid2,'Sensor1',istart,stride, 1iedge,ray3) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zawrite(zaid2, "Sensor1", 1istart, stride, iedge, ray3)' write(*,*)'Value returned by he5_zawrite ',status write(1,*)'status= he5_zawrite(zaid2, "Sensor1", 1istart, stride, iedge, ray3)' write(1,*)'Value returned by he5_zawrite ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zawrlattr ! write(1,27) write(*,*)'Testing he5_zawrlattr, Local Attribute ' write(*,*)'================================== ' write(1,*)'Testing he5_zawrlattr, Local Attribute ' write(1,*)'================================== ' status=he5_zawrlattr(zaid2,'Sensor1','local', 1HE5T_NATIVE_FLOAT,count,locattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrlattr(zaid2,"Sensor1","local", 1HE5T_NATIVE_FLOAT,count,locattr)' write(*,*)'Value returned by he5_zawrlattr ',status write(1,*)'status=he5_zawrlattr(zaid2,"Sensor1", "local", 1HE5T_NATIVE_FLOAT,count,locattr)' write(1,*)'Value returned by he5_zawrlattr ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zawrattr ! count(1) = 4 write(1,27) write(*,*)'Testing he5_zawrattr, Global Attribute ' write(*,*)'====================================== ' write(1,*)'Testing he5_zawrattr, Global Attribute ' write(1,*)'======================================= ' status=he5_zawrattr(zaid,'Drift',HE5T_NATIVE_INT,count, 1global_attr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrattr(zaid, "Drift", 1HE5T_NATIVE_INT, count, global_attr)' write(*,*)'Value returned by he5_zawrattr ',status write(1,*)'status=he5_zawrattr(zaid, "Drift", 1HE5T_NATIVE_INT, count, global_attr)' write(1,*)'Value returned by he5_zawrattr ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zawrgattr ! count(1) = 3 write(1,27) write(*,*)'Testing he5_zawrgattr, Group Attribute ' write(*,*)'====================================== ' write(1,*)'Testing he5_zawrgattr, Group Attribute ' write(1,*)'====================================== ' status=he5_zawrgattr(zaid,'group',HE5T_NATIVE_FLOAT, 1count,grpattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zawrgattr(zaid, "group", 1HE5T_NATIVE_FLOAT,count,grpgattr)' write(*,*)'Value returned by he5_zawrgattr ',status write(1,*)'status=he5_zawrgattr(zaid, "group", 1HE5T_NATIVE_FLOAT,count,grpattr)' write(1,*)'Value returned by he5_zawrgattr ',status endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid2)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid2)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zaclose ! write(1,27) write(*,*)'Testing he5_zaclose ' write(*,*)'===================' write(1,*)'Testing he5_zaclose ' write(1,*)'===================' status= he5_zaclose(zafid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' zafid= he5_zaopen('za.he5',HE5F_ACC_RDWR) if (zafid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_zaopen ', zafid write(1,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_zaopen ', zafid endif write(*,*)' ' write(1,*)' ' zaid= he5_zaattach(zafid,'Simplef') if (zaid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid= he5_zaattach(zafid, "Simplef")' write(*,*)'Value returned by he5_zaattach ',zaid write(1,*)'zaid= he5_zaattach(zafid, "Simplef")' write(1,*)'Value returned by he5_zaattach ',zaid endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zaclose(zafid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaclose(zafid)' write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' zafid= he5_zaopen('za.he5',HE5F_ACC_RDWR) if (zafid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_zaopen ',zafid write(1,*)'zafid= he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_zaopen ',zafid endif write(*,*)' ' write(1,*)' ' zaid=he5_zaattach(zafid,'Simplef') if (zaid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid= he5_zaattach(zafid, "Simplef")' write(*,*)'Value returned by he5_zaattach ',zaid write(1,*)'zaid= he5_zaattach(zafid, "Simplef")' write(1,*)'Value returned by he5_zaattach ',zaid endif write(*,*)' ' write(1,*)' ' zaid2=he5_zaattach(zafid,'Indexedf') if (zaid2 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(*,*)'Value returned by he5_zaattach ',zaid2 write(1,*)'zaid2= he5_zaattach(zafid, "Indexedf")' write(1,*)'Value returned by he5_zaattach ',zaid2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zanentries ! write(1,27) write(*,*)'Testing he5_zanentries ' write(*,*)'=====================' write(1,*)'Testing he5_zanentries ' write(1,*)'=====================' nmaps=he5_zanentries(zaid,1,strbufsize) if (nmaps .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nmaps= he5_zanentries(zaid, 1, strbufsize)' write(*,*)'Number of dimension mappings ',nmaps write(*,*)'Size of strbufsize ',strbufsize write(1,*)'nmaps= he5_zanentries(zaid, 1, strbufsize)' write(1,*)'Number of dimension mappings ',nmaps write(1,*)'Size of strbufsize ',strbufsize endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqdims ! write(1,27) write(*,*)'Testing he5_zainqdims ' write(*,*)'=====================' write(1,*)'Testing he5_zainqdims ' write(1,*)'=====================' ndims=he5_zainqdims(zaid,dimname,dims) if (ndims .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'ndims= he5_zainqdims(zaid, dimname, dims)' write(*,*)'Number of dimesions ',ndims write(*,*)'Names of dimensions ',dimname write(*,*)'Size of dimensions ',dims write(1,*)'ndims= he5_zainqdims(zaid, dimname, dims)' write(1,*)'Number of dimesions ',ndims write(1,*)'Names of dimensions ',dimname write(1,*)'Size of dimensions ',dims endif write(*,*)' ' write(1,*)' ' ndims= he5_zainqdims(zaid2, dimname, dims2) if (ndims .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'ndims=he5_zainqdims(zaid2,dimname,dims2)' write(*,*)'Number of dimesions ',ndims write(*,*)'Names of dimensions ',dimname write(*,*)'Size of dimensions ',dims2 write(1,*)'ndims=he5_zainqdims(zaid2,dimname,dims2)' write(1,*)'Number of dimesions ',ndims write(1,*)'Names of dimensions ',dimname write(1,*)'Size of dimensions ',dims2 endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainquire ! write(1,27) write(*,*)'Testing he5_zainquire ' write(*,*)'======================' write(1,*)'Testing he5_zainquire ' write(1,*)'======================' nflds=he5_zainquire(zaid,fieldlist,rnkd,ntyped) if (nflds .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nflds=he5_zainquire(zaid,fieldlist,rnkd,ntyped)' write(*,*)'Number of data fields in za ',nflds write(*,*)'Names of data fields ',fieldlist write(*,*)'Rank of fields ',rnkd write(*,*)'Number type of fields ',ntyped write(1,*)'nflds=he5_zainquire(zaid,fieldlist,rnkd,ntyped)' write(1,*)'Number of data fields in za ',nflds write(1,*)'Names of data fields ',fieldlist write(1,*)'Rank of fields ',rnkd write(1,*)'Number type of fields ',ntyped endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zadiminfo ! write(1,27) write(*,*)'Testing he5_zadiminfo ' write(*,*)'=====================' write(1,*)'Testing he5_zadiminfo ' write(1,*)'=====================' dimsize= he5_zadiminfo(zaid,'DataTrack') if (dimsize .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'dimsize= he5_zadiminfo(zaid, "DataTrack")' write(*,*)'Size of dimension DataTrack ',dimsize write(1,*)'dimsize= he5_zadiminfo(zaid, "DataTrack")' write(1,*)'Size of dimension DataTrack ',dimsize write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zaread ! write(1,27) write(*,*)'Testing he5_zaread ' write(*,*)'===================' write(1,*)'Testing he5_zaread ' write(1,*)'===================' rd_start(1)=0 rd_start(2)=0 rd_stride(1)=1 rd_stride(2)=1 rd_edge(1)=40 rd_edge(2)=100 status= he5_zaread(zaid,'Conduction',rd_start, 1rd_stride,rd_edge,temp) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_zaread ',status write(*,*)'status= he5_zaread(zaid, "Conduction", 1rd_start,rd_stride, rd_edge, temp)' write(1,*)'status= he5_zaread(zaid, "Conduction", 1rd_start,rd_stride, rd_edge, temp)' write(1,*)'Value returned by he5_zaread ',status do 190 index1=10,15 do 180 index2=10,15 write(*,*)'value of conduction ',temp(index1,index2) write(1,*)'value of conduction ',temp(index1,index2) 180 continue 190 continue endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainfo ! write(1,27) write(*,*)'Testing he5_zainfo ' write(*,*)'=====================' write(1,*)'Testing he5_zainfo ' write(1,*)'=====================' status=he5_zainfo(zaid,'SideA',rank,sddims,nt, 1dimens,maxdims) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zainfo(zaid, "SideA", 1rank, sddims, nt, dimens, maxdims)' write(*,*)'Value returned by he5_zainfo ',status write(*,*)'Rank of field sideA ',rank write(*,*)'dimension list of field sideA ',dimens write(*,*)'Size of sideA dimensions ',sddims write(*,*)'number type of field sideA ',nt write(1,*)'status= he5_zainfo(zaid, "SideA", 1rank, sddims, nt, dimens, maxdims)' write(1,*)'Value returned by he5_zainfo ',status write(1,*)'Rank of field sideA ',rank write(1,*)'dimension list of field sideA ',dimens write(1,*)'Size of sideA dimensions ',sddims write(1,*)'number type of field sideA ',nt endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqattrs ! write(1,27) write(*,*)'Testing he5_zainqattrs Global attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_zainqattrs Global attributes ' write(1,*)'==================================== ' nattr = he5_zainqattrs(zaid,attrlist,strbufsz2) if (nattr .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Number of global attributes in za ',nattr write(*,*)'Attribute list of za ',attrlist write(1,*)'Number of global attributes in za ',nattr write(1,*)'Attribute list of za ',attrlist write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zaattrinfo ! write(1,27) write(*,*)'Testing he5_zaattrinfo Global attribute' write(*,*)'=======================================' write(1,*)'Testing he5_zaattrinfo Global attribute' write(1,*)'=======================================' status= he5_zaattrinfo(zaid, attrlist, n, size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zaattrinfo(zaid,attrlist,n,size)' write(*,*)'Value returned by he5_zaattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'status=he5_zaattrinfo(zaid,attrlist,n,size)' write(1,*)'Value returned by he5_zaattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zardattr ! write(1,27) write(*,*)'Testing he5_zardattr, Global attribute ' write(*,*)'======================================' write(1,*)'Testing he5_zardattr, Global attribute ' write(1,*)'======================================' status= he5_zardattr(zaid, attrlist, rdattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zardattr(zaid,attrlist,rdattr)' write(*,*)'Value returned by he5_zardattr ',status write(*,*)'attribute ',rdattr write(1,*)'status=he5_zardattr(zaid,attrlist,rdattr)' write(1,*)'Value returned by he5_zardattr ',status write(1,*)'attribute ',rdattr endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqgattrs ! write(1,27) write(*,*)'Testing he5_zainqgattrs Group attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_zainqgattrs Group attributes ' write(1,*)'==================================== ' nattr = he5_zainqgattrs(zaid,attrlist,strbufsz2) if (nattr .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Number of group attributes in za ',nattr write(*,*)'Attribute list of za ',attrlist write(1,*)'Number of group attributes in za ',nattr write(1,*)'Attribute list of za ',attrlist write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zagattrinfo ! write(1,27) write(*,*)'Testing he5_zagattrinfo Group attribute' write(*,*)'=======================================' write(1,*)'Testing he5_zagattrinfo Group attribute' write(1,*)'=======================================' status= he5_zagattrinfo(zaid, attrlist, n, size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zagattrinfo(zaid,attrlist,n,size)' write(*,*)'Value returned by he5_zagattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'status=he5_zagattrinfo(zaid,attrlist,n,size)' write(1,*)'Value returned by he5_zagattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zardgattr ! write(1,27) write(*,*)'Testing he5_zardgattr, Group attribute ' write(*,*)'======================================' write(1,*)'Testing he5_zardgattr, Group attribute ' write(1,*)'======================================' status= he5_zardgattr(zaid,'group',rdgnlattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zardgattr(zaid,attrlist,rdgnlattr)' write(*,*)'Value returned by he5_zardgattr ',status write(*,*)'attribute ',rdgnlattr write(1,*)'status=he5_zardgattr(zaid,attrlist,rdgnlattr)' write(1,*)'Value returned by he5_zardgattr ',status write(1,*)'attribute ',rdgnlattr endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqlattrs ! write(1,27) write(*,*)'Testing he5_zainqlattrs Local attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_zainqlattrs Local attributes ' write(1,*)'==================================== ' nattr=he5_zainqlattrs(zaid2,'Sensor1',attrlist,strbufsz2) if (nattr .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zainqlattrs(... "Sensor1" ...)' write(*,*)'Number of local attributes in field ',nattr write(*,*)'Attribute list of field ',attrlist write(1,*)'zainqlattrs(... "Sensor1" ...)' write(1,*)'Number of local attributes in field ',nattr write(1,*)'Attribute list of field ',attrlist write(*,*)' ' write(1,*)' ' endif ! Test Case -- he5_zalattrinfo ! write(1,27) write(*,*)'Testing he5_zalattrinfo Local attribute' write(*,*)'=======================================' write(1,*)'Testing he5_zalattrinfo Local attribute' write(1,*)'=======================================' status=he5_zalattrinfo(zaid2,'Sensor1','local',n,size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zalattrinfo(... "Sensor1" ...)' write(*,*)'Value returned by he5_zalattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'zalattrinfo(... "Sensor1" ...)' write(1,*)'Value returned by he5_zalattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zaidtype ! write(1,27) write(*,*)'Testing he5_zaidtype, Inquire Datatype ' write(*,*)'=======================================' write(1,*)'Testing he5_zaidtype, Inquire Datatype ' write(1,*)'=======================================' status= he5_zaidtype(zaid2,'Sensor1','local', 1HE5_HDFE_LOCATTRGROUP,dtype,classid, order, size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaidtype(zaid2,"Sensor1","local", 1HE5_HDFE_LOCATTRGROUP,dtype, classid, order, size)' write(*,*)'Value returned by he5_zaidtype ',status write(*,*)'Datatype of local attribute ',dtype write(*,*)'Class id and order ',classid, order write(*,*)'Size of attribute ',size write(1,*)'status= he5_zaidtype(zaid2,"Sensor1","local", 1HE5_HDFE_LOCATTRGROUP,dtype, classid, order, size)' write(1,*)'Value returned by he5_zaidtype ',status write(1,*)'Datatype of local attribute ',dtype write(1,*)'Class id and order ',classid, order write(1,*)'Size of attribute ',size endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zardlattr ! write(1,27) write(*,*)'Testing he5_zardlattr, Local attribute ' write(*,*)'======================================' write(1,*)'Testing he5_zardlattr, Local attribute ' write(1,*)'======================================' status=he5_zardlattr(zaid2,'Sensor1','local',rdgnlattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zardlattr(zaid2,"Sensor1","local", 1rdgnlattr)' write(*,*)'Value returned by he5_zardlattr ',status write(*,*)'attribute ',rdgnlattr write(1,*)'status=he5_zardlattr(zaid2,"Sensor1","local", 1rdgnlattr)' write(1,*)'Value returned by he5_zardlattr ',status write(1,*)'attribute ',rdgnlattr endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zagetfill ! write(1,27) write(*,*)'Testing he5_zagetfill ' write(*,*)'=====================' write(1,*)'Testing he5_zagetfill ' write(1,*)'=====================' status= he5_zagetfill(zaid,'Conduction', rdfilval) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zagetfill(zaid,"Conduction",rdfilval)' write(*,*)'Value returned by he5_zagetfill ',status write(*,*)'Value of fill ',rdfilval write(1,*)'status=he5_zagetfill(zaid,"Conduction",rdfilval)' write(1,*)'Value returned by he5_zagetfill ',status write(1,*)'Value of fill ',rdfilval endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zacompinfo ! write(1,27) write(*,*)'Testing he5_zacompinfo ' write(*,*)'=======================' write(1,*)'Testing he5_zacompinfo ' write(1,*)'=======================' status=he5_zacompinfo(zaid,'CompChunk',compcode,rdcompparm) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_zacompinfo(zaid,"CompChunk",compcode, 1rdcompparm)' write(*,*)'Status returned by he5_zacompinfo ',status write(*,*)'Compression code ',compcode write(*,*)'Compression parameter ',rdcompparm(1) write(1,*)'status=he5_zacompinfo(zaid,"CompChunk",compcode, 1rdcompparm)' write(1,*)'Status returned by he5_zacompinfo ',status write(1,*)'Compression code ',compcode write(1,*)'Compression parameter ',rdcompparm(1) endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zadetach(zaid2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zadetach(zaid2)' write(*,*)'Value returned by he5_zadetach ',status write(1,*)'status= he5_zadetach(zaid2)' write(1,*)'Value returned by he5_zadetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_zaclose(zafid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaclose(zafid)' write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' zafid=he5_zaopen('za.he5',HE5F_ACC_RDWR) if (zafid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'zafid=he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_zaopen ',zafid write(1,*)'zafid=he5_zaopen("za.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_zaopen ',zafid endif write(*,*)' ' write(1,*)' ' ! Test Case -- he5_zainqza ! write(1,27) write(*,*)'Testing he5_zainqza ' write(*,*)'======================' write(1,*)'Testing he5_zainqza ' write(1,*)'======================' nza=he5_zainqza('za.he5',zalist,strbufsz2) if (nza .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Retrieve information on zas in 1file za.he5' write(*,*)'Number of zas in file ', nza write(*,*)'List of zas ',zalist write(1,*)'Retrieve information on zas in 1file za.he5' write(1,*)'Number of zas in file ', nza write(1,*)'List of zas ',zalist endif write(*,*)' ' write(1,*)' ' status=he5_zaclose(zafid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_zaclose(zafid)' write(*,*)'Value returned by he5_zaclose ',status write(1,*)'status= he5_zaclose(zafid)' write(1,*)'Value returned by he5_zaclose ',status endif write(*,*)' ' write(1,*)' ' close(unit=1) 27 format(' ') stop end hdf-eos5-5.1.14+dfsg.1/testdrivers/za/TestZa.c0000755000175000017500000023345712024715435022016 0ustar amckinstryamckinstry#include #include #define BUFSIZE 256 #define RANK1 1 #define RANK2 2 int main(int argc, char *argv[]) { FILE *fp; herr_t status = FAIL; int i = 0; int Verbosity = 4; int comp_level[ 5 ] = { 0, 0, 0, 0, 0 }; int level[ 5 ] = { 0, 0, 0, 0, 0 }; int rank = 1; int AttrVal[ 4 ] = {1,2,3,4}; int AttrValOut[ 4 ] = {0,0,0,0}; int errcnt = 0; int comp_code = 0; int code = 0; int *RankPtr = (int *)NULL; int inarray[10] = {1,2,3,4,5,6,7,8,9,10}; int return_val = FAIL; hid_t ZAid_simple = FAIL; hid_t ZAid_index = FAIL; hid_t zafidc_simple = FAIL; hid_t dtype = FAIL; hid_t ntype[20]; long number = FAIL; long strbufsize = FAIL; long *DimListPtr = (long *)NULL; hssize_t tstart[ 2 ] = { 0, 0 }; hsize_t ndims = 0; hsize_t Dims[8] = {0,0,0,0,0,0,0,0}; hsize_t dims[ 2 ] = { 2, 2 }; hsize_t chunk_dims[ 2 ] = { 0, 0 }; hsize_t tedge[ 2 ] = { 1, 1 }; hsize_t stride[ 2 ] = { 1, 1 }; hssize_t inq_start[ 2 ] = { 0, 0 }; hsize_t inq_stride[ 2 ] = { 1, 1 }; hsize_t inq_edge[ 2 ] = { 1, 1 }; hsize_t *CountPtr = (hsize_t *)NULL; hsize_t CurrentSize[1] = { 4 }; double TempData[10][4] = { { 100., 101., 102., 103. }, { 110., 111., 112., 113. }, { 200., 201., 202., 203. }, { 210., 211., 212., 213. }, { 300., 301., 302., 303. }, { 310., 311., 312., 313. }, { 400., 401., 402., 403. }, { 410., 411., 412., 413. }, { 500., 501., 502., 503. }, { 510., 511., 512., 513. } } ; double CondData[10][4] = { { 10., 20., 30., 40. }, { 11., 21., 31., 41. }, { 12., 22., 32., 42. }, { 13., 23., 33., 43. }, { 14., 24., 34., 44. }, { 15., 25., 35., 45. }, { 16., 26., 36., 46. }, { 17., 27., 37., 47. }, { 18., 28., 38., 48. }, { 19., 29., 39., 49. } } ; double TempDataOut[10][4]; double fillvalue2 = -1.11111; double InqDoubleFillValue = -1.1111; char *FieldListPtr; char *DimNamePtr; char *ObjNamesPtr; char DimList[200]; /* ******************************************************************************** * Get comand-line argument (Verbosity) * ******************************************************************************** */ for (i = 1; i < argc; i++) { if ((argc > i + 1) && ((HDstrcmp(argv[i], "-verbose") == 0) || (HDstrcmp(argv[i], "-v") == 0))) { if (argv[i + 1][0] == 'l') Verbosity = 4; else if (argv[i + 1][0] == 'm') Verbosity = 6; else if (argv[i + 1][0] == 'h') Verbosity = 10; else Verbosity = atoi(argv[i + 1]); } } /* --------------------------------- */ MESSAGE(11,fp=fopen("TestZa.txt","w");); MESSAGE(4,printf("Testing ZA C interface \n");); MESSAGE(4,printf("=========================\n\n");); MESSAGE(11,fprintf(fp,"Testing ZA C interface \n");); MESSAGE(11,fprintf(fp,"=========================\n\n");); /* ********************************************************************************* * Testing HE5_ZAopen * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_ZAopen... \n");); MESSAGE(4,printf("\t===================== \n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAopen... \n");); MESSAGE(11,fprintf(fp,"\t===================== \n");); zafidc_simple = HE5_ZAopen("SimpleZa.he5",H5F_ACC_TRUNC); if (zafidc_simple == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully opened the za file ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully opened the za file ****\n");); } /* ********************************************************************************* * Testing HE5_ZAcreate * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_ZAcreate... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAcreate... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); MESSAGE(6,printf("\t\tCreating za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\tCreating za SIMPLE \n");); ZAid_simple = HE5_ZAcreate(zafidc_simple,"SIMPLE"); if (ZAid_simple == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully created the za SIMPLE ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully created the za SIMPLE ****\n");); } /* ********************************************************************************* * Testing HE5_ZAcreate * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_ZAcreate... \n");); MESSAGE(4,printf("\t=======================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAcreate... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); MESSAGE(6,printf("\t\tCreating za INDEX \n");); MESSAGE(11,fprintf(fp,"\t\tCreating za INDEX \n");); ZAid_index = HE5_ZAcreate(zafidc_simple,"INDEX"); if (ZAid_index == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully created the za INDEX ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully created the za INDEX ****\n");); } /* ********************************************************************************* * Testing HE5_ZAdefdim * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_ZAdefdim... \n");); MESSAGE(4,printf("\t=======================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAdefdim... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); MESSAGE(4,printf("\t\n");); MESSAGE(6,printf("\t\tSetting up dimensions for za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tSetting up dimensions for za SIMPLE \n");); /* ------------------------------------- ZA SIMPLE --------------------------------- --------------------- D e f i n i n g d i m e n s i o n DataTrack ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension DataTrack in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension DataTrack in za SIMPLE \n");); status = HE5_ZAdefdim(ZAid_simple, "DataTrack", 10); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAdefdim(ZAid_simple, \"DataTrack\", 10);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAdefdim(ZAid_simple, \"DataTrack\", 10);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n DataXtrack ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension DataXtrack in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension DataXtrack in za SIMPLE \n");); status = HE5_ZAdefdim(ZAid_simple, "DataXtrack", 4); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAdefdim(ZAid_simple, \"DataXtrack\", 4);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAdefdim(ZAid_simple, \"DataXtrack\", 4);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n "Unlim" ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension \"Unlim\" in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension \"Unlim\" in za SIMPLE \n");); status = HE5_ZAdefdim(ZAid_simple, "Unlim", H5S_UNLIMITED); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAdefdim(ZAid_simple, \"Unlim\", H5S_UNLIMITED);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAdefdim(ZAid_simple, \"Unlim\", H5S_UNLIMITED);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefdim %d\n", status);); } MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tSetting up dimensions for za INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tSetting up dimensions for za INDEX \n");); /* ---------------------------------- ZA INDEX ------------------------------------- --------------------- D e f i n i n g d i m e n s i o n TrackDim ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension TrackDim for za INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension TrackDim for za INDEX \n");); status = HE5_ZAdefdim(ZAid_index, "TrackDim", 8); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAdefdim(ZAid_index, \"TrackDim\", 8);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAdefdim(ZAid_index, \"TrackDim\", 8);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n XtrackDim ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension XtrackDim for za INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension TrackDim for za INDEX \n");); status = HE5_ZAdefdim(ZAid_index, "XtrackDim", 8); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAdefdim(ZAid_index, \"XtrackDim\", 8);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAdefdim(ZAid_index, \"XtrackDim\", 8);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefdim %d\n", status);); } /* ********************************************************************************* * Testing HE5_ZAsetfillvalue * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_ZAsetfillvalue... \n");); MESSAGE(4,printf("\t=============================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAsetfillvalue... \n");); MESSAGE(11,fprintf(fp,"\t=============================\n");); /* --------- S e t t i n g F i l l v a l u e f o r T e m p e r a t u r e -------- */ fillvalue2 = -777.; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tSetting fill value for field Temperature in za SIMPLE\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tSetting fill value for field Temperature in za SIMPLE\n");); status = HE5_ZAsetfillvalue(ZAid_simple, "Temperature", H5T_NATIVE_DOUBLE, &fillvalue2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAsetfillvalue(ZAid_simple,\"Temperature\", &fillvalue2);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAsetfillvalue for field Temperature %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAsetfillvalue(ZAid_simple,\"Temperature\", &fillvalue2);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAsetfillvalue for field Temperature %d\n", status);); } /* ********************************************************************************* * Testing HE5_ZAdefine * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_ZAdefine... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAdefine... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining data fields for za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data fields for za SIMPLE \n");); /* ---------------------------- ZA SIMPLE --------------------------- --------------- D e f i n i n g T e m p e r a t u r e -------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining data field Temperature\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data field Temperature\n");); status = HE5_ZAdefine(ZAid_simple, "Temperature", "DataTrack,DataXtrack", NULL,H5T_NATIVE_DOUBLE); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");) MESSAGE(10,printf("\t\tstatus=HE5_ZAdefine(ZAid_simple,\"Temperature\",NULL, H5T_NATIVE_DOUBLE ,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefine %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAdefine(ZAid_simple,\"Temperature\",NULL, H5T_NATIVE_DOUBLE ,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefine %d\n", status);); } /* ---------------------------------- Defining Appendable field "Count" --------------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining appendable data field Count\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining appendable data field Count\n");); /* -------------------- D e f i n i n g c h u n k i n g --------------------- */ chunk_dims[ 0 ] = 10; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining chunking for za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining chunking for za SIMPLE \n");); status = HE5_ZAdefchunk(ZAid_simple,RANK1,chunk_dims); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAdefchunk(ZAid_simple,RANK1,chunk_dims);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefchunk %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAdefchunk(ZAid_simple,RANK1,chunk_dims);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefchunk %d\n",status);); } /* --------------- D e f i n i n g c o m p r e s s i o n s c h e m e -------------- ___________________________________________________________________ | | | HE5_HDFE_COMP_NONE 0 | | HE5_HDFE_COMP_RLE 1 | | HE5_HDFE_COMP_NBIT 2 | | HE5_HDFE_COMP_SKPHUFF 3 | | HE5_HDFE_COMP_DEFLATE 4 | | HE5_HDFE_COMP_SZIP_CHIP 5 | | HE5_HDFE_COMP_SZIP_K13 6 | | HE5_HDFE_COMP_SZIP_EC 7 | | HE5_HDFE_COMP_SZIP_NN 8 | | HE5_HDFE_COMP_SZIP_K13orEC 9 | | HE5_HDFE_COMP_SZIP_K13orNN 10 | | HE5_HDFE_COMP_SHUF_DEFLATE 11 | | HE5_HDFE_COMP_SHUF_SZIP_CHIP 12 | | HE5_HDFE_COMP_SHUF_SZIP_K13 13 | | HE5_HDFE_COMP_SHUF_SZIP_EC 14 | | HE5_HDFE_COMP_SHUF_SZIP_NN 15 | | HE5_HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HE5_HDFE_COMP_SHUF_SZIP_K13orNN 17 | |_________________________________________________________________| */ comp_code = 4; /* --------------- D e f i n i n g c o m p r e s s i o n l e v e l -------------- */ comp_level[ 0 ] = 6; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining compression parameters for za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining compression parameters for za SIMPLE \n");); status = HE5_ZAdefcomp(ZAid_simple,comp_code,comp_level); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAdefcomp(ZAid_simple,comp_code, comp_level);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefcomp %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAdefcomp(ZAid_simple,comp_code, comp_level);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefcomp %d\n",status);); } /* --------------- D e f i n i n g C o u n t -------------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining data field Count\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data field Count\n");); status = HE5_ZAdefine(ZAid_simple, "Count", "DataTrack","Unlim", H5T_NATIVE_INT); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAdefine(ZAid_simple, \"Count\",\"DataTrack\",\"Unlim\",H5T_NATIVE_INT,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefine %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAdefine(ZAid_simple,\"Count\",\"DataTrack\",\"Unlim\",H5T_NATIVE_INT,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefine %d\n", status);); } /* ********************************************************************************* * Testing HE5_ZAdefcomp * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_ZAdefcomp... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAdefcomp... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); /* -------------------- D e f i n i n g c h u n k i n g --------------------- */ chunk_dims[ 0 ] = 5 ; chunk_dims[ 1 ] = 2 ; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining chunking for za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining chunking for za SIMPLE \n");); status = HE5_ZAdefchunk(ZAid_simple,RANK2,chunk_dims); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAdefchunk(ZAid_simple,RANK2,chunk_dims);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefchunk %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAdefchunk(ZAid_simple,RANK2,chunk_dims);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefchunk %d\n",status);); } /* --------------- D e f i n i n g c o m p r e s s i o n s c h e m e -------------- ___________________________________________________________________ | | | HE5_HDFE_COMP_NONE 0 | | HE5_HDFE_COMP_RLE 1 | | HE5_HDFE_COMP_NBIT 2 | | HE5_HDFE_COMP_SKPHUFF 3 | | HE5_HDFE_COMP_DEFLATE 4 | | HE5_HDFE_COMP_SZIP_CHIP 5 | | HE5_HDFE_COMP_SZIP_K13 6 | | HE5_HDFE_COMP_SZIP_EC 7 | | HE5_HDFE_COMP_SZIP_NN 8 | | HE5_HDFE_COMP_SZIP_K13orEC 9 | | HE5_HDFE_COMP_SZIP_K13orNN 10 | | HE5_HDFE_COMP_SHUF_DEFLATE 11 | | HE5_HDFE_COMP_SHUF_SZIP_CHIP 12 | | HE5_HDFE_COMP_SHUF_SZIP_K13 13 | | HE5_HDFE_COMP_SHUF_SZIP_EC 14 | | HE5_HDFE_COMP_SHUF_SZIP_NN 15 | | HE5_HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HE5_HDFE_COMP_SHUF_SZIP_K13orNN 17 | |_________________________________________________________________| */ comp_code = 4; /* --------------- D e f i n i n g c o m p r e s s i o n l e v e l -------------- */ comp_level[ 0 ] = 6; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining compression parameters for za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining compression parameters for za SIMPLE \n");); status = HE5_ZAdefcomp(ZAid_simple,comp_code,comp_level); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAdefcomp(ZAid_simple,comp_code, comp_level);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefcomp %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAdefcomp(ZAid_simple,comp_code, comp_level);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefcomp %d\n",status);); } /* --------------- D e f i n i n g C o n d u c t i o n -------------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining data field Conduction\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data field Conduction\n");); status = HE5_ZAdefine(ZAid_simple, "Conduction", "DataTrack,DataXtrack", NULL, H5T_NATIVE_DOUBLE); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAdefine(ZAid_simple, \"Conduction\",\"DataTrack,DataXtrack\",NULL,H5T_NATIVE_DOUBLE,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAdefine %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAdefine(ZAid_simple,\"Conduction\",\"DataTrack,DataXtrack\",NULL,H5T_NATIVE_DOUBLE,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAdefine %d\n", status);); } /* ********************************************************************************* * Testing HE5_ZAwrite * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAwrite... \n");); MESSAGE(4,printf("\t====================== \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAwrite... \n");); MESSAGE(11,fprintf(fp,"\t====================== \n");); /* -------------------------------- ZA SIMPLE ------------------------- --------- W r i t i n g T e m p e r a t u r e i n a z a -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Temperature in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Temperature in za SIMPLE \n");); tstart[ 0 ] = 0; tstart[ 1 ] = 0; tedge[ 0 ] = 10; tedge[ 1 ] = 4; status = HE5_ZAwrite(ZAid_simple, "Temperature", tstart, NULL, tedge, TempData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAwrite(ZAid_simple,\"Temperature\", tstart,stride, tedge, TempData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAwrite %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAwrite(ZAid_simple,\"Temperature\", tstart, stride, tedge, TempData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAwrite %d\n",status);); } /* --------- W r i t i n g C o n d u c t i o n i n a z a -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Conduction in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Conduction in za SIMPLE \n");); status = HE5_ZAwrite(ZAid_simple, "Conduction", tstart, NULL, tedge, CondData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAwrite(ZAid_simple, \"Conduction\",tstart, stride, tedge, CondData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAwrite for field Conduction in za SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAwrite(ZAid_simple,\"Conduction\", tstart, stride, tedge, CondData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAwrite for field Conduction in za SIMPLE %d\n",status);); } /* --------- W r i t i n g C o u n t i n a z a -------- */ tstart[0] = 0; tedge[0] = 40; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Count in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Count in za SIMPLE \n");); status = HE5_ZAwrite(ZAid_simple, "Count", tstart, NULL, tedge, inarray); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAwrite(ZAid_simple, \"Count\",tstart, NULL, tedge, inarray);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_ZAwrite for field Count in za SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAwrite(ZAid_simple,\"Count\", tstart, stride, NULL, inarray);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_ZAwrite for field Conduction in za SIMPLE %d\n",status);); } /* ********************************************************************************* * Testing HE5_ZAwriteattr * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAwriteattr... \n");); MESSAGE(4,printf("\t==========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAwriteattr... \n");); MESSAGE(11,fprintf(fp,"\t==========================\n");); /* --------- W r i t i n g " D r i f t " i n a z a -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting attribute Drift in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting attribute Drift in za SIMPLE \n");); status = HE5_ZAwriteattr(ZAid_simple,"Drift",H5T_NATIVE_INT,CurrentSize,AttrVal); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAwriteattr(ZAid_simple, \"Drift\",H5T_NATIVE_INT, 4, AttrVal);\n");); MESSAGE(8,printf("\t\tValue returned by ZAwriteattr for attribute Drift in za SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAwriteattr(ZAid_simple, \"Drift\",H5T_NATIVE_INT, 4, AttrVal);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by ZAwriteattr for attribute Drift in za SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\t Attribute element Value to write \n");); MESSAGE(11,printf("\t\t Attribute element Value to write \n");); for( i = 0; i < 4 ; i++ ) { MESSAGE(11,fprintf(fp,"\t\t %d %d \n",i+1,AttrVal[ i ] );); MESSAGE(11,printf("\t\t %d %d \n", i+1,AttrVal[ i ] );); } } /* ********************************************************************************* * Testing HE5_ZAreadattr * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAreadattr... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAreadattr... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); /* --------- R e a d i n g " D r i f t " a t t r i b u t e -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tReading attribute Drift from za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tReading attribute Drift from za SIMPLE \n");); status = HE5_ZAreadattr(ZAid_simple,"Drift", AttrValOut); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAreadattr(ZAid_simple,\"Drift\", AttrValOut);\n");); MESSAGE(8,printf("\t\tValue returned by ZAreadattr for attribute Drift in za SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAreadattr(ZAid_simple,\"Drift\", AttrValOut);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by ZAreadattr for attribute Drift in za SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\t Attribute elements read \n");); MESSAGE(8,printf("\t\t Attribute elements read \n");); MESSAGE(8,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); for( i = 0; i < 4 ; i++ ) { MESSAGE(11,fprintf(fp,"\t\t %d \n", AttrValOut[ i ] );); MESSAGE(8,printf("\t\t %d \n", AttrValOut[ i ] );); } } /* ********************************************************************************* * Testing HE5_ZAnentries * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAnentries... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAnentries... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); /* ----- R e t r i e v e # o f d i m e n s i o n s i n a z a ----- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve number of dimensions in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve number of dimensions in za SIMPLE \n");); number = HE5_ZAnentries(ZAid_simple,0,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_ZAnentries(ZAid_simple,0,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of dimensions %li\n",number);); MESSAGE(8,printf("\t\tString size of dimension entries: %li (bytes)\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_ZAnentries(ZAid_simple,0,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of dimensions %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tString size of dimension entries: %li (bytes)\n",strbufsize);); } /* ********************************************************************************* * Testing HE5_ZAinqdims * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAinqdims... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAinqdims... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); DimNamePtr = (char *)calloc( 1, strbufsize+1); /* ----- R e t r i e v e d i m e n s i o n l i s t f o r a z a ----- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve the dimension information for za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve the dimension information for za SIMPLE \n");); number = HE5_ZAinqdims(ZAid_simple,DimNamePtr,Dims); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(8,printf("\t\tnumber=HE5_ZAinqdims(ZAid_simple,DimNamePtr,DimListPtr);\n");); MESSAGE(8,printf("\t\tDimension list: \n");); MESSAGE(8,printf("\t\t %s\n",DimNamePtr);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_ZAinqdims(ZAid_simple,DimNamePtr,DimListPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tDimension list: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n",DimNamePtr);); MESSAGE(8,printf("\t\tDimension sizes: \n");); MESSAGE(11,fprintf(fp,"\t\tDimension sizes: \n");); for (i = 0; i < number; i++) { MESSAGE(8,printf("\t\t %lu\n",(unsigned long)Dims[i]);); MESSAGE(11,fprintf(fp,"\t\t %lu\n",(unsigned long)Dims[i]);); } } free(DimNamePtr); DimNamePtr = NULL; /* ********************************************************************************* * Testing HE5_ZAinquire * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAinquire... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAinquire... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about Data fields in za SIMPLE\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about Data fields in za SIMPLE\n");); number = HE5_ZAnentries(ZAid_simple,4,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_ZAnentries(ZAid_simple,4,&strbufsize);\n");); MESSAGE(8,printf("\t\tValue (number of data fields) returned by ZAnentries %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_ZAnentries(ZAid_simple,4,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tValue (number of data fields) returned by ZAnentries %li\n",number);); } RankPtr = (int *)calloc(number, sizeof(int)); FieldListPtr = (char *)calloc( BUFSIZE, sizeof(char)); MESSAGE(6,printf("\t\tRetrieve the Data fields in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve the Data fields in za SIMPLE \n");); number = HE5_ZAinquire(ZAid_simple,FieldListPtr,RankPtr,ntype); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_ZAinquire(ZAid_simple,FieldListPtr,RankPtr,ntype);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_ZAinquire(ZAid_simple,FieldListPtr,RankPtr,ntype);\n");); MESSAGE(8,printf("\t\tList of Data fields:\n");); MESSAGE(8,printf("\t\t %s\n",FieldListPtr);); MESSAGE(11,fprintf(fp,"\t\tList of Data fields:\n");); MESSAGE(11,fprintf(fp,"\t\t %s\n",FieldListPtr);); MESSAGE(8,printf("\t\tRanks: Data types:\n");); MESSAGE(11,fprintf(fp,"\t\tRanks: Data types:\n");); for (i = 0; i < number; i++) { MESSAGE(8,printf("\t\t %d %d\n", RankPtr[i], ntype[i]);); MESSAGE(11,fprintf(fp,"\t\t %d %d\n", RankPtr[i], ntype[i]);); } } free(RankPtr); free(FieldListPtr); /* ********************************************************************************* * Testing HE5_ZAdiminfo... * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAdiminfo... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAdiminfo... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about DataXtrack dimension in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about DataXtrack dimension in za SIMPLE \n");); ndims = HE5_ZAdiminfo(ZAid_simple,"DataXtrack"); if ( ndims == 0) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tndims=HE5_ZAdiminfo(ZAid_simple,\"DataXtrack\");\n");); MESSAGE(8,printf("\t\tSize of dimension DataXtrack: %lu \n",(unsigned long)ndims);); MESSAGE(11,fprintf(fp,"\t\tndims=HE5_ZAdiminfo(ZAid_simple,\"DataXtrack\");\n");); MESSAGE(11,fprintf(fp,"\t\tSize of dimension DataXtrack: %lu \n",(unsigned long)ndims);); } /* ********************************************************************************* * Testing HE5_ZAread * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAread... \n");); MESSAGE(4,printf("\t===================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAread... \n");); MESSAGE(11,fprintf(fp,"\t===================== \n");); inq_start[0] = 0; inq_start[1] = 0; inq_stride[0] = 1; inq_stride[1] = 1; inq_edge[0] = 10; inq_edge[1] = 4; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tReading data from field \"Temperature\" in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tReading data from field \"Temperature\" in za SIMPLE\n");); number = HE5_ZAread(ZAid_simple,"Temperature",inq_start,inq_stride,inq_edge,TempDataOut); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_ZAread(ZAid_simple,\"Temperature\",inq_start,inq_stride,inq_edge,TempDataOut);\n");); MESSAGE(8,printf("\t\tstatus return from call to ZAread %li\n", number );); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_ZAread(ZAid_simple,\"Temperature\",inq_start,inq_stride,inq_edge,TempDataOut);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus return from call to ZAread %li\n", number );); MESSAGE(8,printf("\t\tThe values of data field \"Temperature\":\n");); MESSAGE(11,fprintf(fp,"\t\tThe values of data field \"Temperature\":\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(8,printf("\n");); for (i = 0; i < 10; i++) { MESSAGE(8,printf("\t\t %lf %lf %lf %lf \n",TempDataOut[i][0],TempDataOut[i][1],TempDataOut[i][2],TempDataOut[i][3] );); MESSAGE(11,fprintf(fp,"\t\t %lf %lf %lf %lf \n",TempDataOut[i][0],TempDataOut[i][1],TempDataOut[i][2],TempDataOut[i][3] );); } } /* ********************************************************************************* * Testing HE5_ZAinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAinfo... \n");); MESSAGE(4,printf("\t===================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAinfo... \n");); MESSAGE(11,fprintf(fp,"\t===================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about field \"Temperature\" in za SIMPLE e\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about field \"Temperature\" in za SIMPLE \n");); status = HE5_ZAinfo(ZAid_simple,"Temperature",&rank,dims,&dtype,DimList,NULL); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAinfo(ZAid_simple,\"Temperature\",&rank,dims,&dtype,DimList,NULL);\n");); MESSAGE(8,printf("\t\tstatus returned by ZAfieldinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAinfo(ZAid_simple,\"Temperature\",&rank,dims,&dtype,DimList,NULL);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by ZAfieldinfo %d\n",status);); MESSAGE(8,printf("\t\tRank: %d Data type: %d\n",rank, dtype);); MESSAGE(8,printf("\t\tDimension list: %s\n",DimList);); MESSAGE(11,fprintf(fp,"\t\tRank: %d Data type: %d\n",rank, dtype);); MESSAGE(11,fprintf(fp,"\t\tDimension list: %s\n",DimList);); MESSAGE(8,printf("\t\tDimension sizes:\n");); MESSAGE(11,fprintf(fp,"\t\tDimension sizes:\n");); for (i = 0; i < rank; i++) { MESSAGE(8,printf("\t\t %lu\n",(unsigned long)dims[i]);); MESSAGE(11,fprintf(fp,"\t\t %lu\n",(unsigned long)dims[i]);); } } /* ********************************************************************************* * Testing HE5_ZAinqattrs * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAinqattrs... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAinqattrs... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about attributes defined in za INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about attributes defined in za INDEX \n");); number = HE5_ZAinqattrs(ZAid_simple, NULL, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_ZAinqattrs(ZAid_simple, NULL, &strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_ZAinqattrs(ZAid_simple, NULL, &strbufsize);\n");); MESSAGE(8,printf("\t\tValue (number of attributes) returned by ZAinqattrs %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tValue (number of attributes) returned by ZAinqattrs %li\n",number);); MESSAGE(8,printf("\t\tString length of attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of attribute list: %li\n",strbufsize);); } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve more information about attributes defined in za INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve more information about attributes defined in za INDEX \n");); ObjNamesPtr = (char *)calloc( BUFSIZE, sizeof(char)); number = HE5_ZAinqattrs(ZAid_simple, ObjNamesPtr, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_ZAinqattrs(ZAid_simple, ObjNamesPtr, &strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_ZAinqattrs(ZAid_simple, ObjNamesPtr,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of attributes returned by ZAinqattr %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tNumber of attributes returned by ZAinqattr %li\n",number);); MESSAGE(8,printf("\t\tAttribute list:\n");); MESSAGE(8,printf("\t\t %s\n", ObjNamesPtr);); MESSAGE(11,fprintf(fp,"\t\tAttribute list: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n", ObjNamesPtr);); MESSAGE(8,printf("\t\tString length of attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of attribute list: %li\n",strbufsize);); } free(ObjNamesPtr); ObjNamesPtr = NULL; /* ********************************************************************************* * Testing HE5_ZAattrinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAattrinfo... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAattrinfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); CountPtr = (hsize_t *)calloc(1, sizeof(hsize_t)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about attribute \"Drift\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about attribute \"Drift\" \n");); status=HE5_ZAattrinfo(ZAid_simple,"Drift",&dtype,CountPtr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAattrinfo(ZAid_simple,\"Drift\",&dtype,CountPtr);\n");); MESSAGE(8,printf("\t\tstatus returned by ZAattrinfo %d\n",status);); MESSAGE(6,printf("\t\tData type Number of attribute elements:\n");); MESSAGE(6,printf("\t\t %d %d\n", dtype,(int)*CountPtr);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAattrinfo(ZAid_simple,\"Drift\",&dtype,CountPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tStaus returned by ZAattrinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tData type Number of attribute elements:\n");); MESSAGE(11,fprintf(fp,"\t\t %d %d\n", dtype,(int)*CountPtr);); } free(CountPtr); /* ********************************************************************************* * Testing HE5_ZAcompinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAcompinfo... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAcompinfo... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve Compression information for field \"Temperature\"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve Compression information for field \"Temperature\"\n");); status = HE5_ZAcompinfo(ZAid_simple,"Temperature",&code,level); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(8,printf("\t\tCompression scheme Compression level\n");); MESSAGE(8,printf("\t\t %d, %d\n", code, level[0]);); MESSAGE(11,fprintf(fp,"\t\tCompression scheme Compression level\n");); MESSAGE(11,fprintf(fp,"\t\t %d, %d\n", code, level[0]);); } code = - 8; level[ 0 ] = - 8; MESSAGE(4,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(6,printf("\t\tRetrieve Compression information for field \"Conduction\"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve Compression information for field \"Conduction\"\n");); status = HE5_ZAcompinfo(ZAid_simple,"Conduction",&code,level); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(8,printf("\t\tCompression scheme Compression level\n");); MESSAGE(8,printf("\t\t %d, %d\n", code, level[0]);); MESSAGE(11,fprintf(fp,"\t\tCompression scheme Compression level\n");); MESSAGE(11,fprintf(fp,"\t\t %d, %d\n", code, level[0]);); } /* ********************************************************************************* * Testing HE5_ZAgetfillvalue * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAgetfillvalue... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAgetfillvalue... \n");); MESSAGE(11,fprintf(fp,"\t============================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tGet fill value for field \"Temperature\"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tGet fill value for field \"Temperature\"\n");); status = HE5_ZAgetfillvalue(ZAid_simple,"Temperature",&InqDoubleFillValue); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAgetfillvalue(ZAid_simple,\"Temperature\",&InqDoubleFillValue);\n");); MESSAGE(8,printf("\t\tstatus returned by ZAgetfillvalue %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAgetfillvalue(ZAid_simple,\"Temperature\", &InqDoubleFillValue)\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by ZAgetfillvalue %d\n",status);); MESSAGE(8,printf("\t\tFill value for field \"Temperature\":\n");); MESSAGE(8,printf("\n");); MESSAGE(8,printf("\t\t \"%lf\" \n", InqDoubleFillValue);); MESSAGE(11,fprintf(fp,"\t\tFill value for field \"Temperature\":\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t \"%lf\" \n",InqDoubleFillValue);); } /* ********************************************************************************* * Testing HE5_ZAdetach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDetaching from za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from za SIMPLE \n");); status = HE5_ZAdetach(ZAid_simple); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAdetach(ZAid_simple);\n");); MESSAGE(8,printf("\t\tstatus returned by ZAdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAdetach(ZAid_simple);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by ZAdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_ZAattach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAattach... \n");); MESSAGE(4,printf("\t=======================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAattach... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); ZAid_simple = HE5_ZAattach(zafidc_simple,"SIMPLE"); if (ZAid_simple == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully attached to the za SIMPLE ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully attached to the za SIMPLE ****\n");); } /* ********************************************************************************* * Testing Appending data to the field * ********************************************************************************* */ tstart[0] = 30; tedge[0] = 10; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting extended data to the field Count in za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting extended data to the field Count in za SIMPLE \n");); status = HE5_ZAwrite(ZAid_simple, "Count", tstart, NULL, tedge, inarray); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAwrite(ZAid_simple, \"Count\",tstart, NULL, tedge, inarray);\n");); MESSAGE(8,printf("\t\tValue returned by ZAwrite for field Count in za SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAwrite(ZAid_simple,\"Count\", tstart, stride, NULL, inarray);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by ZAwrite for field Conduction in za SIMPLE %d\n",status);); } /* ********************************************************************************* * Testing HE5_ZAinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAinfo... \n");); MESSAGE(4,printf("\t===================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAinfo... \n");); MESSAGE(11,fprintf(fp,"\t===================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about field \"Count\" in za SIMPLE e\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about field \"Count\" in za SIMPLE \n");); status = HE5_ZAinfo(ZAid_simple,"Count",&rank,dims, &dtype,NULL,DimList); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_ZAinfo(ZAid_simple,\"Count\",&rank,dims,&dtype,NULL,DimList);\n");); MESSAGE(8,printf("\t\tstatus returned by ZAfieldinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_ZAinfo(ZAid_simple,\"Count\",&rank,dims, &dtype,NULL,DimList);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by ZAfieldinfo %d\n",status);); MESSAGE(8,printf("\t\tRank: %d Data type: %d\n",rank, dtype);); MESSAGE(8,printf("\t\tMaximum Dimension list: %s\n",DimList);); MESSAGE(11,fprintf(fp,"\t\tRank: %d Data type: %d\n",rank, dtype);); MESSAGE(11,fprintf(fp,"\t\tMaximum Dimension list: %s\n",DimList);); MESSAGE(8,printf("\t\tDimension sizes:\n");); MESSAGE(11,fprintf(fp,"\t\tDimension sizes:\n");); for (i = 0; i < rank; i++) { MESSAGE(8,printf("\t\t %lu\n",(unsigned long)dims[i]);); MESSAGE(11,fprintf(fp,"\t\t %lu\n",(unsigned long)dims[i]);); } } /* ********************************************************************************* * Testing HE5_ZAdetach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDetaching from za SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from za SIMPLE \n");); status = HE5_ZAdetach(ZAid_simple); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_ZAdetach(ZAid_simple);\n");); MESSAGE(8,printf("\t\tstatus returned by ZAdetach for za SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_ZAdetach(ZAid_simple);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by ZAdetach for za SIMPLE%d\n",status);); } /* ********************************************************************************* * Testing HE5_ZAclose * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_ZAclose... \n");); MESSAGE(4,printf("\t====================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_ZAclose... \n");); MESSAGE(11,fprintf(fp,"\t====================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tClosing the file SimpleZa.he5\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tClosing the file SimpleZa.he5\n");); status = HE5_ZAclose(zafidc_simple); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully clossed the SimpleZa.he5 file ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully clossed the SimpleZa.he5 file ****\n");); } /* ********************************************************************************* * Testing ZAopen * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting ZAopen... \n");); MESSAGE(4,printf("\t=================\n");); MESSAGE(11,fprintf(fp,"\tTesting ZAopen... \n");); MESSAGE(11,fprintf(fp,"\t=================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tOpening the file SimpleZa.he5\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tOpening the file SimpleZa.he5\n");); zafidc_simple = HE5_ZAopen("SimpleZa.he5",H5F_ACC_RDWR); if (zafidc_simple == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully opened the za file ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully opened the za file ****\n");); } /* ********************************************************************************* * Testing ZAinqza * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting ZAinqza... \n");); MESSAGE(4,printf("\t=================\n");); MESSAGE(11,fprintf(fp,"\tTesting ZAinqza... \n");); MESSAGE(11,fprintf(fp,"\t=================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving general information about objects within the file\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving general information about objects within the file\n");); number = HE5_ZAinqza("SimpleZa.he5",NULL,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber = HE5_ZAinqza(\"SimpleZa.he5\",NULL,&strbufsize);\n");); MESSAGE(8,printf("\t\tValue returned by ZAinqza %li\n", number);); MESSAGE(8,printf("\t\tString length returned by ZAinqza %li\n", strbufsize);); MESSAGE(11,fprintf(fp,"\t\tnumber = HE5_ZAinqza(\"SimpleZa.he5\",NULL,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by ZAinqza %li\n", number);); MESSAGE(11,fprintf(fp,"\t\tStringlength returned by ZAinqza %li\n", strbufsize);); } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tContinue ...\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tContinue ...\n");); ObjNamesPtr = (char *)calloc(strbufsize+1, sizeof(char ) ); number = HE5_ZAinqza("SimpleZa.he5",ObjNamesPtr,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber = HE5_ZAinqza(\"SimpleZa.he5\",ObjNamesPtr,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of za objects: %li\n", number);); MESSAGE(8,printf("\t\tList of za objects: %s\n", ObjNamesPtr);); MESSAGE(11,fprintf(fp,"\t\tnumber = HE5_ZAinqza(\"SimpleZa.he5\",ObjNamesPtr,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of za objecys: %li\n", number);); MESSAGE(11,fprintf(fp,"\t\tList of za objects: %s\n", ObjNamesPtr);); } free(ObjNamesPtr); /* ********************************************************************************* * Testing ZAclose * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting ZAclose... \n");); MESSAGE(4,printf("\t====================== \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting ZAclose... \n");); MESSAGE(11,fprintf(fp,"\t====================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tClosing the file SimpleZa.he5\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tClosing the file SimpleZa.he5\n");); status = HE5_ZAclose(zafidc_simple); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\tSuccessfully clossed the SimpleZa.he5 file \n");); MESSAGE(11,fprintf(fp,"\t\tSuccessfully clossed the SimpleZa.he5 file \n");); MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t ........... End of Testing. \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t ............. End of Testing. \n");); } if (errcnt == 0) { MESSAGE(11,printf("\n");); MESSAGE(11,printf("\n");); MESSAGE(11,printf("\t\t A L L T E S T S P A S S E D \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t A L L T E S T S P A S S E D \n");); return_val = 0; } else { MESSAGE(11,printf("\n");); MESSAGE(11,printf("\n");); MESSAGE(11,printf("\t\t%d T E S T S F A I L E D \n",errcnt);); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t%d T E S T S F A I L E D \n",errcnt);); return_val = 1; } MESSAGE(11,fclose(fp);); return return_val; } hdf-eos5-5.1.14+dfsg.1/testdrivers/za/Makefile.sgi320000644000175000017500000000172612024715435023013 0ustar amckinstryamckinstry COMPILER = cc LINKER = cc CC = $(COMPILER) LD = $(LINKER) # for SUN #CFLAGS = -g -Xa -DsunFortran -DSUN #LFLAGS = -g -Xa -DsunFortran -DSUN # for sgi32 CFLAGS = -g -n32 -xansi -D_POSIX_SOURCE LFLAGS = -g -n32 -xansi -D_POSIX_SOURCE # for sgi64 #CFLAGS = -g -64 -xansi -D_POSIX_SOURCE #LFLAGS = -g -64 -xansi -D_POSIX_SOURCE INCLUDE = -I. -I$(HDFEOS5_INC) -I$(HDF5INC) -I$(JPEGINC) -I$(ZLIBINC) -I$(SZIPINC) LIBRARYPATHS = -L$(HDF5LIB) -L$(HDFEOS5_LIB) -L$(JPEGLIB) -L$(ZLIBLIB) -L$(SZIPLIB) # for SUN #LIBRARIES = -lhe5_hdfeos $(HDF5LIB)/libhdf5.a -lGctp -ljpeg -lz -lsz -lpthread -lm -lnsl # for other platforms LIBRARIES = -lhe5_hdfeos $(HDF5LIB)/libhdf5.a -lGctp -ljpeg -lz -lsz -lpthread -lm OBJECTS = TestZa.o TestAlias.o PROGRAMS = TestZa TestAlias all: ${PROGRAMS} cleano ${PROGRAMS}: ${OBJECTS} ${CC} ${LFLAGS} -o $@ ${OBJECTS} ${LIBRARYPATHS} ${LIBRARIES} .c.o: ${CC} ${CFLAGS} -c ${INCLUDE} $< clean: rm *.o ${PROGRAMS} cleano: rm *.o hdf-eos5-5.1.14+dfsg.1/testdrivers/za/Makefile.in0000644000175000017500000004212112024715435022464 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # testdrivers/za Makefile.am SOURCES = TestAlias.c TestZa.c $(testza32_SOURCES) $(testza64_SOURCES) srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/include.am check_PROGRAMS = TestZa$(EXEEXT) TestAlias$(EXEEXT) $(am__EXEEXT_1) \ $(am__EXEEXT_2) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_1 = testza32 @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_2 = testza64 @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_3 = test_32f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_4 = test_64f subdir = testdrivers/za ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/HE5_config.h CONFIG_CLEAN_FILES = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_1 = testza32$(EXEEXT) @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_2 = testza64$(EXEEXT) TestAlias_SOURCES = TestAlias.c TestAlias_OBJECTS = TestAlias.$(OBJEXT) TestAlias_LDADD = $(LDADD) am__DEPENDENCIES_1 = $(top_builddir)/src/libhe5_hdfeos.la am__DEPENDENCIES_2 = $(top_builddir)/gctp/src/libGctp.la TestAlias_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) TestZa_SOURCES = TestZa.c TestZa_OBJECTS = TestZa.$(OBJEXT) TestZa_LDADD = $(LDADD) TestZa_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__testza32_SOURCES_DIST = testza32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_testza32_OBJECTS = testza32.$(OBJEXT) testza32_OBJECTS = $(am_testza32_OBJECTS) testza32_LDADD = $(LDADD) testza32_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__testza64_SOURCES_DIST = testza64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_testza64_OBJECTS = testza64.$(OBJEXT) testza64_OBJECTS = $(am_testza64_OBJECTS) testza64_LDADD = $(LDADD) testza64_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --mode=compile --tag=F77 $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --mode=link --tag=F77 $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = TestAlias.c TestZa.c $(testza32_SOURCES) $(testza64_SOURCES) DIST_SOURCES = TestAlias.c TestZa.c $(am__testza32_SOURCES_DIST) \ $(am__testza64_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F2CFORTRAN_32PTR_CONDITIONAL_FALSE = @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@ F2CFORTRAN_32PTR_CONDITIONAL_TRUE = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@ F2CFORTRAN_90_CONDITIONAL_FALSE = @F2CFORTRAN_90_CONDITIONAL_FALSE@ F2CFORTRAN_90_CONDITIONAL_TRUE = @F2CFORTRAN_90_CONDITIONAL_TRUE@ F2CFORTRAN_CONDITIONAL_FALSE = @F2CFORTRAN_CONDITIONAL_FALSE@ F2CFORTRAN_CONDITIONAL_TRUE = @F2CFORTRAN_CONDITIONAL_TRUE@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SZIP_ENCODER_CONDITIONAL_FALSE = @SZIP_ENCODER_CONDITIONAL_FALSE@ SZIP_ENCODER_CONDITIONAL_TRUE = @SZIP_ENCODER_CONDITIONAL_TRUE@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la # Boilerplate definitions # Link against HDF-EOS5 and libGCTP libraries INCLUDES = -I$(top_srcdir)/include LDADD = $(LIBHDFEOS5) $(LIBGCTP) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@testza32_SOURCES = testza32.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@testza64_SOURCES = testza64.f # When user types 'make check', run programs above as tests. TEST_SEQUENCES = test_c $(am__append_3) $(am__append_4) all: all-am .SUFFIXES: .SUFFIXES: .c .f .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testdrivers/za/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign testdrivers/za/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done TestAlias$(EXEEXT): $(TestAlias_OBJECTS) $(TestAlias_DEPENDENCIES) @rm -f TestAlias$(EXEEXT) $(LINK) $(TestAlias_LDFLAGS) $(TestAlias_OBJECTS) $(TestAlias_LDADD) $(LIBS) TestZa$(EXEEXT): $(TestZa_OBJECTS) $(TestZa_DEPENDENCIES) @rm -f TestZa$(EXEEXT) $(LINK) $(TestZa_LDFLAGS) $(TestZa_OBJECTS) $(TestZa_LDADD) $(LIBS) testza32$(EXEEXT): $(testza32_OBJECTS) $(testza32_DEPENDENCIES) @rm -f testza32$(EXEEXT) $(F77LINK) $(testza32_LDFLAGS) $(testza32_OBJECTS) $(testza32_LDADD) $(LIBS) testza64$(EXEEXT): $(testza64_OBJECTS) $(testza64_DEPENDENCIES) @rm -f testza64$(EXEEXT) $(F77LINK) $(testza64_LDFLAGS) $(testza64_OBJECTS) $(testza64_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestAlias.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestZa.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-local check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am check-local clean \ clean-checkPROGRAMS clean-generic clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am test_c: $(check_PROGRAMS) ./TestZa ./TestAlias test_32f: $(check_PROGRAMS) ./testza32 test_64f: $(check_PROGRAMS) ./testza64 check-local: $(TEST_SEQUENCES) .PHONY: $(TEST_SEQUENCES) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/testdrivers/za/TestAlias.c0000755000175000017500000002367412024715435022473 0ustar amckinstryamckinstry/* ****************************************************************** * File: TestAlias.c * * * * Date: Aug 2002 * * Purpose: Testing ZA interfacing routines * ****************************************************************** */ #include #define FILENAME "Alias.he5" #define RANK 2 int main() { herr_t status = FAIL; int i, j; int rank = FAIL; int length = 0; int attr[1] = {2000}; int fieldgroup = FAIL; int comp_level[5] = { 0,0,0,0,0 }; int comp_code; int level[5] = {0,0,0,00}, code = 0; int *fldrank = (int *)NULL; int return_val = FAIL; H5T_class_t dtype = H5T_NO_CLASS; hid_t dtype1 = FAIL; H5T_order_t order = H5T_ORDER_ERROR; hid_t ntype[3] = {FAIL, FAIL, FAIL}; long nattr = FAIL; long nfldalias = FAIL; long strbufsize = FAIL; long nflds = FAIL; long nalias = FAIL; hid_t ZAid = FAIL, zafid = FAIL; hid_t datatype = FAIL; float data[ 20 ][ 10 ]; float out_buffer[ 20 ][ 10 ]; float fillvalue = -777.777; float out_fillvalue = -1.; size_t size = 0; hssize_t start[ 2 ] = { 0, 0 }; hsize_t count[ 2 ] = { 5, 5}; hsize_t nelem = 0; hsize_t dims[8] = {0, 0, 0, 0, 0, 0, 0, 0}; hsize_t chunk_dims[ 2 ]; char dimlist[80]; char maxdimlist[80]; char *namebuf, attrlist[80]; char fldlist[80]; char fldalias[80]; char aliaslist[80]; /* ***************************************************************************** * Open/Create the ZA "Test_1" * ***************************************************************************** */ zafid = HE5_ZAopen(FILENAME, H5F_ACC_TRUNC); printf("ZA file ID = %d\n", zafid); ZAid = HE5_ZAcreate(zafid,"Test_1"); printf("ZA ID = %d\n", ZAid); /* ***************************************************************************** * Define Dimensions * ***************************************************************************** */ status = HE5_ZAdefdim(ZAid,"DataTrack", 20); printf("status returned by HE5_ZAdefdim = %d\n", status); status = HE5_ZAdefdim(ZAid,"DataXtrack", 10); printf("status returned by HE5_ZAdefdim = %d\n", status); chunk_dims[ 0 ] = 10; chunk_dims[ 1 ] = 5; comp_code = 4; comp_level[0] = 6; status = HE5_ZAdefcomchunk(ZAid, comp_code, comp_level, RANK, chunk_dims); printf("status returned by HE5_ZAdefcomchunk = %d\n", status); status = HE5_ZAsetfillvalue(ZAid, "Temperature", H5T_NATIVE_FLOAT, &fillvalue); printf("status returned by HE5_ZAsetfillvalue = %d\n", status); status = HE5_ZAdefine(ZAid,"Temperature", "DataTrack,DataXtrack", NULL, H5T_NATIVE_FLOAT); printf("status returned by HE5_ZAdefine = %d\n", status); /* ***************************************************************************** * Write data to the field "Temperature" * ***************************************************************************** */ for ( i = 0; i < 20; i++ ) for( j = 0; j < 10; j++ ) data[ i ][ j ] = 1.e0 + i + 5.e-2 * j ; status = HE5_ZAwrite(ZAid,"Temperature", start, NULL, count, data ); printf("status returned by HE5_ZAwrite = %d\n", status); /* Set aliases for field "Temperature" */ /* ----------------------------------- */ status = HE5_ZAsetalias(ZAid,"Temperature","T,Tmp,Temp,L2gpValue"); printf("status returned by HE5_ZAsetalias = %d\n", status); strcpy(fldalias,""); nfldalias = HE5_ZAinqfldalias(ZAid, fldalias, &strbufsize); printf("Number of fields & aliases is: %li\n", nfldalias); printf("Fields & aliases list: %s \n", fldalias); printf("Length of fields & aliases list: %li \n", strbufsize); strcpy(aliaslist,""); nalias = HE5_ZAgetaliaslist(ZAid, HE5_HDFE_DATAGROUP, aliaslist, &strbufsize); printf("Number of aliases is: %li\n", nalias); printf("Aliases list: %s \n", aliaslist); printf("Length of aliases list: %li \n", strbufsize); /* Get information about alias "Temp" */ /* ---------------------------------- */ status = HE5_ZAaliasinfo(ZAid, HE5_HDFE_DATAGROUP, "Temp", &length, NULL); if (status == SUCCEED) printf("Name length: %d \n", length); namebuf = (char *)calloc(length, sizeof(char)); /* Get the actual name of the field "Temp" */ /* --------------------------------------- */ status = HE5_ZAaliasinfo(ZAid, HE5_HDFE_DATAGROUP, "Temp", &length, namebuf); if (status == SUCCEED) printf("Original field name: %s \n", namebuf); free(namebuf); /* Remove alias "Tmp" from the alias list */ /* -------------------------------------- */ status = HE5_ZAdropalias(ZAid, HE5_HDFE_DATAGROUP, "Tmp"); printf("status returned by HE5_ZAdropalias = %d\n", status); /* Remove alias "Temp" from the alias list */ /* --------------------------------------- */ status = HE5_ZAdropalias(ZAid, HE5_HDFE_DATAGROUP, "Temp"); printf("status returned by HE5_ZAdropalias = %d\n", status); /* Get information about alias "L2gpValue" */ /* ---------------------------------------- */ status = HE5_ZAaliasinfo(ZAid, HE5_HDFE_DATAGROUP, "L2gpValue", &length, NULL); if (status == SUCCEED) printf("Name length: %d \n", length); namebuf = (char *)calloc(length, sizeof(char)); /* Get the actual name of the field "L2gpValue" */ /* -------------------------------------------- */ status = HE5_ZAaliasinfo(ZAid, HE5_HDFE_DATAGROUP, "L2gpValue", &length, namebuf); if (status == SUCCEED) printf("Original field name: %s \n", namebuf); free(namebuf); count[0] = 20; count[1] = 10; /* Read the data from the field calling it by alias */ /* ------------------------------------------------ */ status = HE5_ZAread(ZAid,"L2gpValue", start, NULL, count, out_buffer); printf("status returned by HE5_ZAread = %d\n", status); printf("Data from \"L2gpValue\" field: \n"); for ( i = 0; i < 20; i++ ) for( j = 0; j < 10; j++ ) printf("%f \n", out_buffer[ i ][ j ]); /* Write local attribute to "L2gpValue" */ /* ------------------------------------ */ count[0] = 1; status = HE5_ZAwritelocattr(ZAid, "L2gpValue", "LocalAttribute", H5T_NATIVE_INT, count, attr); printf("status returned by HE5_ZAwritelocattr = %d\n", status); status = HE5_ZAdetach(ZAid); printf("status returned by HE5_ZAdetach = %d\n", status); ZAid = HE5_ZAattach(zafid,"Test_1"); printf("ZA ID returned by HE5_ZAattach = %d\n", ZAid); printf("Local Attributes:\n"); nattr = HE5_ZAinqlocattrs(ZAid, "L2gpValue", NULL, &strbufsize); printf("Number of attributes: %li \n", nattr); printf("Length of attribute list: %li \n", strbufsize); strcpy(attrlist,""); nattr = HE5_ZAinqlocattrs(ZAid, "L2gpValue", attrlist, &strbufsize); printf("Attribute list: %s \n", attrlist); printf("Local Attribute:\n"); status = HE5_ZAlocattrinfo(ZAid,"T", "LocalAttribute",&dtype1, &nelem); printf("Data type: %d\n", dtype1); printf("Number of elements: %lu \n", (unsigned long)nelem); status = HE5_ZAinfo(ZAid, "L2gpValue", &rank, dims, &dtype1, dimlist, maxdimlist); if (status != FAIL) { printf("Field rank: %d \n", rank); printf("Dimension Sizes: \n"); for ( i = 0; i < rank; i++) { printf(" %lu \n", (unsigned long)dims[i]); } printf("Data type ID: %d \n", dtype1); printf("DimList string: %s \n", dimlist); printf("MaxdimList string: %s \n", maxdimlist); } fieldgroup = HE5_HDFE_DATAGROUP; status = HE5_ZAinqdatatype(ZAid, "T", NULL, fieldgroup, &datatype, &dtype, &order, &size); printf("status returned by HE5_ZAinqdatatype = %d \n", status); if (status != FAIL) { printf("Data type ID: %d \n", datatype); printf("Data type class ID: %d \n", dtype); printf("Byte order: %d \n", order); printf("Data size (bytes): %d \n", (int)size); } status = HE5_ZAcompinfo(ZAid,"L2gpValue", &code, level); printf("status returned by HE5_ZAcompinfo = %d\n", status); if (status != FAIL) { printf("Compression Information: \n"); printf("Compression code: %d \n", code); printf("Compression level: %d \n", level[0]); } status = HE5_ZAgetfillvalue(ZAid,"L2gpValue",&out_fillvalue); printf("status returned by HE5_ZAgetfillvalue = %d\n", status); printf("The fill value: %f\n", out_fillvalue); status = HE5_ZAdetach(ZAid); printf("status returned by HE5_ZAdetach = %d\n", status); ZAid = HE5_ZAattach(zafid,"Test_1"); printf("ZA ID returned by HE5_ZAattach = %d\n", ZAid); nflds = HE5_ZAnentries(ZAid,4,&strbufsize); printf("Value returned by HE5_ZAnentries = %li\n", nflds); if (nflds != FAIL) { fldrank = (int *)calloc(nflds, sizeof(int)); nflds = FAIL; nflds = HE5_ZAinquire(ZAid,fldlist,fldrank,ntype); printf("Value returned by HE5_ZAinquire = %li \n", nflds); if (nflds != FAIL) { printf("List of fields: %s \n", fldlist); for (i = 0; i < nflds; i++) printf("Field rank, class ID: %d, %d \n",fldrank[i],ntype[i]); } free(fldrank); } status = HE5_ZAdetach(ZAid); printf("status returned by HE5_ZAdetach = %d\n", status); status = HE5_ZAclose(zafid); printf("status returned by HE5_ZAclose = %d\n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/testdrivers/za/hdfeos5_64.inc0000644000175000017500000000101512024715435022755 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5_64.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 19, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines on 64 ! * bit platforms ! * ========================================================== ! * Contents: ! * ! * ! * =========================================================== integer*8 HE5S_UNLIMITED_F_64 parameter(HE5S_UNLIMITED_F_64 = -1) hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/0000755000175000017500000000000012024715435020732 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/testdrivers/grid/Makefile.am0000644000175000017500000000241212024715435022765 0ustar amckinstryamckinstry# testdrivers/grid Makefile.am # Boilerplate definitions include $(top_srcdir)/config/include.am # Link against HDF-EOS5 include files and both the HDF-EOS5 and libGCTP # libraries INCLUDES=-I$(top_srcdir)/include LDADD=$(LIBHDFEOS5) $(LIBGCTP) # Build TestGrid. Since no sources are listed, build it from TestGrid.c check_PROGRAMS = TestGrid if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL check_PROGRAMS += testgrid32 if SZIP_ENCODER_CONDITIONAL testgrid32_SOURCES = testgrid_szip32.f else testgrid32_SOURCES = testgrid32.f endif else check_PROGRAMS += testgrid64 if SZIP_ENCODER_CONDITIONAL testgrid64_SOURCES = testgrid_szip64.f else testgrid64_SOURCES = testgrid64.f endif endif endif # Run TestGrid as a test when the user types 'make check' TEST_SEQUENCES=test_c VERBOSE_TEST_SEQUENCES=test_c_verbose if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL TEST_SEQUENCES+=test_32f VERBOSE_TEST_SEQUENCES+=test_32f else TEST_SEQUENCES+=test_64f VERBOSE_TEST_SEQUENCES+=test_64f endif endif test_c: $(check_PROGRAMS) ./TestGrid test_c_verbose: $(check_PROGRAMS) ./TestGrid -v h test_32f: $(check_PROGRAMS) ./testgrid32 test_64f: $(check_PROGRAMS) ./testgrid64 check-local: $(TEST_SEQUENCES) verbose_check: $(VERBOSE_TEST_SEQUENCES) .PHONY: $(TEST_SEQUENCES) hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/hdfeos5.inc0000644000175000017500000003511312024715435022765 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 11, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines ! * ========================================================== ! * Contents: ! * HDFEOS5 data type tags ! * HDFEOS5 logical constants ! * HDFEOS5 file access tags ! * HDFEOS5/GCTP library codes ! * ! * =========================================================== ! HDFEOS5 DATA TYPE TAGS ! ======================= integer HE5T_NATIVE_INT integer HE5T_NATIVE_UINT integer HE5T_NATIVE_SHORT integer HE5T_NATIVE_USHORT integer HE5T_NATIVE_SCHAR integer HE5T_NATIVE_UCHAR integer HE5T_NATIVE_LONG integer HE5T_NATIVE_ULONG integer HE5T_NATIVE_LLONG integer HE5T_NATIVE_ULLONG integer HE5T_NATIVE_FLOAT integer HE5T_NATIVE_REAL integer HE5T_NATIVE_DOUBLE integer HE5T_NATIVE_LDOUBLE integer HE5T_NATIVE_INT8 integer HE5T_NATIVE_UINT8 integer HE5T_NATIVE_INT16 integer HE5T_NATIVE_UINT16 integer HE5T_NATIVE_INT32 integer HE5T_NATIVE_UINT32 integer HE5T_NATIVE_INT64 integer HE5T_NATIVE_UINT64 integer HE5T_NATIVE_B8 integer HE5T_NATIVE_B16 integer HE5T_NATIVE_B32 integer HE5T_NATIVE_B64 integer HE5T_NATIVE_HSIZE integer HE5T_NATIVE_HERR integer HE5T_NATIVE_HBOOL integer HE5T_STD_I8BE integer HE5T_STD_I8LE integer HE5T_STD_I16BE integer HE5T_STD_I16LE integer HE5T_STD_I32BE integer HE5T_STD_I32LE integer HE5T_STD_I64BE integer HE5T_STD_I64LE integer HE5T_STD_U8BE integer HE5T_STD_U8LE integer HE5T_STD_U16BE integer HE5T_STD_U16LE integer HE5T_STD_U32BE integer HE5T_STD_U32LE integer HE5T_STD_U64BE integer HE5T_STD_U64LE integer HE5T_STD_B8BE integer HE5T_STD_B8LE integer HE5T_STD_B16BE integer HE5T_STD_B16LE integer HE5T_STD_B32BE integer HE5T_STD_B32LE integer HE5T_STD_B64BE integer HE5T_STD_B64LE integer HE5T_IEEE_F32BE integer HE5T_IEEE_F32LE integer HE5T_IEEE_F64BE integer HE5T_IEEE_F64LE integer HE5T_NATIVE_CHAR integer HE5T_CHARSTRING parameter(HE5T_NATIVE_INT = 0) parameter(HE5T_NATIVE_UINT = 1) parameter(HE5T_NATIVE_SHORT = 2) parameter(HE5T_NATIVE_USHORT = 3) parameter(HE5T_NATIVE_SCHAR = 4) parameter(HE5T_NATIVE_UCHAR = 5) parameter(HE5T_NATIVE_LONG = 6) parameter(HE5T_NATIVE_ULONG = 7) parameter(HE5T_NATIVE_LLONG = 8) parameter(HE5T_NATIVE_ULLONG = 9) parameter(HE5T_NATIVE_FLOAT =10) parameter(HE5T_NATIVE_REAL =10) parameter(HE5T_NATIVE_DOUBLE =11) parameter(HE5T_NATIVE_LDOUBLE =12) parameter(HE5T_NATIVE_INT8 =13) parameter(HE5T_NATIVE_UINT8 =14) parameter(HE5T_NATIVE_INT16 =15) parameter(HE5T_NATIVE_UINT16 =16) parameter(HE5T_NATIVE_INT32 =17) parameter(HE5T_NATIVE_UINT32 =18) parameter(HE5T_NATIVE_INT64 =19) parameter(HE5T_NATIVE_UINT64 =20) parameter(HE5T_NATIVE_B8 =21) parameter(HE5T_NATIVE_B16 =22) parameter(HE5T_NATIVE_B32 =23) parameter(HE5T_NATIVE_B64 =24) parameter(HE5T_NATIVE_HSIZE =25) parameter(HE5T_NATIVE_HERR =26) parameter(HE5T_NATIVE_HBOOL =27) parameter(HE5T_STD_I8BE =28) parameter(HE5T_STD_I8LE =29) parameter(HE5T_STD_I16BE =30) parameter(HE5T_STD_I16LE =31) parameter(HE5T_STD_I32BE =32) parameter(HE5T_STD_I32LE =33) parameter(HE5T_STD_I64BE =34) parameter(HE5T_STD_I64LE =35) parameter(HE5T_STD_U8BE =36) parameter(HE5T_STD_U8LE =37) parameter(HE5T_STD_U16BE =38) parameter(HE5T_STD_U16LE =39) parameter(HE5T_STD_U32BE =40) parameter(HE5T_STD_U32LE =41) parameter(HE5T_STD_U64BE =42) parameter(HE5T_STD_U64LE =43) parameter(HE5T_STD_B8BE =44) parameter(HE5T_STD_B8LE =45) parameter(HE5T_STD_B16BE =46) parameter(HE5T_STD_B16LE =47) parameter(HE5T_STD_B32BE =48) parameter(HE5T_STD_B32LE =49) parameter(HE5T_STD_B64BE =50) parameter(HE5T_STD_B64LE =51) parameter(HE5T_IEEE_F32BE =52) parameter(HE5T_IEEE_F32LE =53) parameter(HE5T_IEEE_F64BE =54) parameter(HE5T_IEEE_F64LE =55) parameter(HE5T_NATIVE_CHAR =56) parameter(HE5T_CHARSTRING =57) integer HE5S_UNLIMITED_F parameter(HE5S_UNLIMITED_F = -1) ! HDFEOS5 FILE ACCESS TAGS ! ======================== integer HE5F_ACC_RDWR integer HE5F_ACC_RDONLY integer HE5F_ACC_TRUNC parameter(HE5F_ACC_RDWR = 100) parameter(HE5F_ACC_RDONLY = 101) parameter(HE5F_ACC_TRUNC = 102) ! TOOLKIT FILE ACCESS TAGS ! ======================== integer HDF4_ACC_RDONLY integer HDF4_ACC_RDWR integer HDF4_ACC_CREATE integer HDF5_ACC_RDONLY integer HDF5_ACC_RDWR integer HDF5_ACC_CREATE parameter(HDF4_ACC_RDONLY = 1) parameter(HDF4_ACC_RDWR = 3) parameter(HDF4_ACC_CREATE = 4) parameter(HDF5_ACC_RDONLY = 11) parameter(HDF5_ACC_RDWR = 13) parameter(HDF5_ACC_CREATE = 14) ! HDFEOS5 MERGE CODES ! ==================== integer HE5_HDFE_NOMERGE integer HE5_HDFE_AUTOMERGE parameter(HE5_HDFE_NOMERGE =0) parameter(HE5_HDFE_AUTOMERGE =1) ! HDFEOS5 XXentries CODES ! ======================= integer HE5_HDFE_NENTDIM integer HE5_HDFE_NENTMAP integer HE5_HDFE_NENTIMAP integer HE5_HDFE_NENTGFLD integer HE5_HDFE_NENTDFLD parameter(HE5_HDFE_NENTDIM =0) parameter(HE5_HDFE_NENTMAP =1) parameter(HE5_HDFE_NENTIMAP =2) parameter(HE5_HDFE_NENTGFLD =3) parameter(HE5_HDFE_NENTDFLD =4) ! HDFEOS5 ANGLE CONVERSION CODES ! ============================== integer HE5_HDFE_RAD_DEG integer HE5_HDFE_DEG_RAD integer HE5_HDFE_DMS_DEG integer HE5_HDFE_DEG_DMS integer HE5_HDFE_RAD_DMS integer HE5_HDFE_DMS_RAD parameter(HE5_HDFE_RAD_DEG =0) parameter(HE5_HDFE_DEG_RAD =1) parameter(HE5_HDFE_DMS_DEG =2) parameter(HE5_HDFE_DEG_DMS =3) parameter(HE5_HDFE_RAD_DMS =4) parameter(HE5_HDFE_DMS_RAD =5) ! HDFEOS5 SWATH SUBSET CODES ! ========================== integer HE5_HDFE_MIDPOINT integer HE5_HDFE_ENDPOINT integer HE5_HDFE_ANYPOINT integer HE5_HDFE_INTERNAL integer HE5_HDFE_EXTERNAL integer HE5_HDFE_NOPREVSUB parameter(HE5_HDFE_MIDPOINT =0) parameter(HE5_HDFE_ENDPOINT =1) parameter(HE5_HDFE_ANYPOINT =2) parameter(HE5_HDFE_INTERNAL =0) parameter(HE5_HDFE_EXTERNAL =1) parameter(HE5_HDFE_NOPREVSUB =-1) ! HDFEOS5 GRID ORIGIN CODES ! ========================= integer HE5_HDFE_GD_UL integer HE5_HDFE_GD_UR integer HE5_HDFE_GD_LL integer HE5_HDFE_GD_LR parameter(HE5_HDFE_GD_UL =0) parameter(HE5_HDFE_GD_UR =1) parameter(HE5_HDFE_GD_LL =2) parameter(HE5_HDFE_GD_LR =3) ! HDFEOS5 PIXEL REGISTRATION CODES ! ================================ integer HE5_HDFE_CENTER integer HE5_HDFE_CORNER parameter(HE5_HDFE_CENTER =0) parameter(HE5_HDFE_CORNER =1) ! HDFEOS5 GCTP PROJECTION CODES ! ============================= integer HE5_GCTP_GEO integer HE5_GCTP_UTM integer HE5_GCTP_SPCS integer HE5_GCTP_ALBERS integer HE5_GCTP_LAMCC integer HE5_GCTP_MERCAT integer HE5_GCTP_PS integer HE5_GCTP_POLYC integer HE5_GCTP_EQUIDC integer HE5_GCTP_TM integer HE5_GCTP_STEREO integer HE5_GCTP_LAMAZ integer HE5_GCTP_AZMEQD integer HE5_GCTP_GNOMON integer HE5_GCTP_ORTHO integer HE5_GCTP_GVNSP integer HE5_GCTP_SNSOID integer HE5_GCTP_EQRECT integer HE5_GCTP_MILLER integer HE5_GCTP_VGRINT integer HE5_GCTP_HOM integer HE5_GCTP_ROBIN integer HE5_GCTP_SOM integer HE5_GCTP_ALASKA integer HE5_GCTP_GOOD integer HE5_GCTP_MOLL integer HE5_GCTP_IMOLL integer HE5_GCTP_HAMMER integer HE5_GCTP_WAGIV integer HE5_GCTP_WAGVII integer HE5_GCTP_OBLEQA integer HE5_GCTP_ISINUS parameter(HE5_GCTP_GEO =0) parameter(HE5_GCTP_UTM =1) parameter(HE5_GCTP_SPCS =2) parameter(HE5_GCTP_ALBERS =3) parameter(HE5_GCTP_LAMCC =4) parameter(HE5_GCTP_MERCAT =5) parameter(HE5_GCTP_PS =6) parameter(HE5_GCTP_POLYC =7) parameter(HE5_GCTP_EQUIDC =8) parameter(HE5_GCTP_TM =9) parameter(HE5_GCTP_STEREO =10) parameter(HE5_GCTP_LAMAZ =11) parameter(HE5_GCTP_AZMEQD =12) parameter(HE5_GCTP_GNOMON =13) parameter(HE5_GCTP_ORTHO =14) parameter(HE5_GCTP_GVNSP =15) parameter(HE5_GCTP_SNSOID =16) parameter(HE5_GCTP_EQRECT =17) parameter(HE5_GCTP_MILLER =18) parameter(HE5_GCTP_VGRINT =19) parameter(HE5_GCTP_HOM =20) parameter(HE5_GCTP_ROBIN =21) parameter(HE5_GCTP_SOM =22) parameter(HE5_GCTP_ALASKA =23) parameter(HE5_GCTP_GOOD =24) parameter(HE5_GCTP_MOLL =25) parameter(HE5_GCTP_IMOLL =26) parameter(HE5_GCTP_HAMMER =27) parameter(HE5_GCTP_WAGIV =28) parameter(HE5_GCTP_WAGVII =29) parameter(HE5_GCTP_OBLEQA =30) parameter(HE5_GCTP_ISINUS =99) ! HDFEOS5 TILIND/COMPRESSION CODES ! ================================ integer HE5_HDFE_NOTILE integer HE5_HDFE_TILE integer HE5_HDFE_COMP_NONE integer HE5_HDFE_COMP_RLE integer HE5_HDFE_COMP_NBIT integer HE5_HDFE_COMP_SKPHUFF integer HE5_HDFE_COMP_DEFLATE integer HE5_HDFE_COMP_SZIP_CHIP integer HE5_HDFE_COMP_SZIP_K13 integer HE5_HDFE_COMP_SZIP_EC integer HE5_HDFE_COMP_SZIP_NN integer HE5_HDFE_COMP_SZIP_K13orEC integer HE5_HDFE_COMP_SZIP_K13orNN integer HE5_HDFE_COMP_SHUF_DEFLATE integer HE5_HDFE_COMP_SHUF_SZIP_CHIP integer HE5_HDFE_COMP_SHUF_SZIP_K13 integer HE5_HDFE_COMP_SHUF_SZIP_EC integer HE5_HDFE_COMP_SHUF_SZIP_NN integer HE5_HDFE_COMP_SHUF_SZIP_K13orEC integer HE5_HDFE_COMP_SHUF_SZIP_K13orNN parameter(HE5_HDFE_NOTILE =0) parameter(HE5_HDFE_TILE =1) parameter(HE5_HDFE_COMP_NONE =0) parameter(HE5_HDFE_COMP_RLE =1) parameter(HE5_HDFE_COMP_NBIT =2) parameter(HE5_HDFE_COMP_SKPHUFF =3) parameter(HE5_HDFE_COMP_DEFLATE =4) parameter(HE5_HDFE_COMP_SZIP_CHIP =5) parameter(HE5_HDFE_COMP_SZIP_K13 =6) parameter(HE5_HDFE_COMP_SZIP_EC =7) parameter(HE5_HDFE_COMP_SZIP_NN =8) parameter(HE5_HDFE_COMP_SZIP_K13orEC =9) parameter(HE5_HDFE_COMP_SZIP_K13orNN =10) parameter(HE5_HDFE_COMP_SHUF_DEFLATE =11) parameter(HE5_HDFE_COMP_SHUF_SZIP_CHIP =12) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13 =13) parameter(HE5_HDFE_COMP_SHUF_SZIP_EC =14) parameter(HE5_HDFE_COMP_SHUF_SZIP_NN =15) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orEC =16) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orNN =17) ! HDFEOS5 GROUP CODES ! =================== integer HE5_HDFE_GEOGROUP integer HE5_HDFE_DATAGROUP integer HE5_HDFE_ATTRGROUP integer HE5_HDFE_GRPATTRGROUP integer HE5_HDFE_LOCATTRGROUP integer HE5_HDFE_PROFGROUP integer HE5_HDFE_PROFGRPATTRGROUP integer HE5_HDFE_GEOGRPATTRGROUP parameter(HE5_HDFE_GEOGROUP =0) parameter(HE5_HDFE_DATAGROUP =1) parameter(HE5_HDFE_ATTRGROUP =2) parameter(HE5_HDFE_GRPATTRGROUP =3) parameter(HE5_HDFE_LOCATTRGROUP =4) parameter(HE5_HDFE_PROFGROUP =5) parameter(HE5_HDFE_PROFGRPATTRGROUP =6) parameter(HE5_HDFE_GEOGRPATTRGROUP =7) hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/testgrid64.f0000755000175000017500000023644712024715435023123 0ustar amckinstryamckinstryc---------------------------------------------------------------------------- c Copyright (C) 2000 Emergent IT Inc. and Raytheon Systems Company | c---------------------------------------------------------------------------- c testgrid64.f | c In this program we create, define and write a simple grid hdfeos file | c using the grid interface | c---------------------------------------------------------------------------- program testgrid64 implicit none include 'hdfeos5.inc' integer status, i, ii integer compparm(5) integer gdfid, gdfid2, gdid_utm, gdid2 integer zonecode, pixregcode, orgcode integer attr(4), iattr(4), gattr(4), lattr(4) integer spherecode, zero integer regionid, regionid2 integer dtype, classid, order integer he5_gdopen, he5_gdcreate integer he5_gdattach, he5_gddetach integer he5_gdclose, he5_gddefproj integer he5_gddefdim, he5_gdinqdatatype integer he5_gddeftle, he5_gddeffld integer he5_gdsetfill, he5_gdwrfld integer he5_gdwrattr, he5_gdwrgattr integer he5_gdwrlattr, he5_gdorginfo integer he5_gddefcomp, he5_gdinqflds integer he5_gdprojinfo integer he5_gdrdfld, he5_gdattrinfo integer he5_gdgatinfo integer he5_gdlatinfo, he5_gdrdattr integer he5_gdrdgattr, he5_gdrdlattr integer he5_gdreginfo, he5_gddeftmeper integer he5_gddefvrtreg integer he5_gddeforigin, he5_gddefpreg integer he5_gdinqdims, he5_gdgetfill integer he5_gdgridinfo, he5_gdcompinfo integer he5_gdfldinfo, he5_gddefboxreg integer he5_gdgetpix, he5_gddupreg integer he5_gdpreginfo, he5_gdextreg integer rnk(8), numtype(8) integer zcode, scode, nflds integer*4 ntype integer*4 nt, rk integer*4 periodid integer*4 lstatus, n, one integer*4 index1 integer*4 index2 integer*4 dimsizes(2) integer*4 lat(40,50) integer*4 latcnt integer*4 lon(40,50) integer*4 loncnt integer*4 he5_gdinqgrid, he5_gddiminfo integer*4 he5_gdnentries integer*4 he5_gdinqattrs, he5_gdinqgattrs integer*4 he5_gdinqlattrs integer*4 pcode integer*8 xdim, ydim integer*8 testdim1, testdim2, hghtdim, conduction integer*8 timedim, convection, setcount(1) integer*8 start(2) integer*8 stride(2) integer*8 edge(2) integer*8 start1d, stride1d, edge1d integer*8 tiledims(2) integer*8 count, nlonlat integer*8 size integer*8 rowval(5), colval(5) integer*8 xdimsize, ydimsize integer*8 he5_gdgetpixval, he5_gdinterpolate integer*8 strbufsize integer*8 dims(8) real fillvalue, ifillv real*4 ray3(250) real*4 utmray(60,80), georay(60,80) real*4 utmhght(80) real*4 hghtinit real*4 utmcnt, geocnt real*4 raycnt, ray3cnt real*4 tempray(60,80) real*4 datbuf(4800) real*4 fldval(5) real*8 starttime, stoptime real*8 range(2) real*8 projparm(16), pparm(16) real*8 uplft(2), lowrgt(2) real*8 iuplft(2), ilrgt(2) real*8 interval(5,2) real*8 lonval(5), latval(5) real*8 utmtmeray(4800) real*8 tmeinit real*8 upleftpt(2), lowrtpt(2),corlon(2),corlat(2) character*80 grdnames, dimname, fldlist, attrlist character*80 compcodestring, maxdimname index1 = 0 index2 = 0 dimsizes(1) = 40 dimsizes(2) = 100 compparm(1) = 0 compparm(2) = 0 compparm(3) = 0 compparm(4) = 0 compparm(5) = 0 fillvalue = 1996.0 raycnt = -799.0 ray3cnt = -19.5 attr(1) = 11 attr(2) = 33 attr(3) = 55 attr(4) = 77 utmcnt=-799.0 geocnt=2001.0 hghtinit = 323.0 tmeinit = 35232487.2d0 starttime = 35233000.8d0 stoptime = 35435050.9d0 range(1) = 352.8d0 range(2) = 400.9d0 lonval(1) = -122.0d0 latval(1) = -68.0d0 lonval(2) = -122.5d0 latval(2) = -68.0d0 lonval(3) = -123.0d0 latval(3) = -68.0d0 lonval(4) = -123.5d0 latval(4) = -68.0d0 lonval(5) = -124.0d0 latval(5) = -68.0d0 tiledims(1) = 16 tiledims(2) = 15 latcnt = 38.0 loncnt = 78.0 zero = 0 one = 1 c c This section of the program just fills some arrays with data that we will c use later in the program c do 70 index1=1,60 do 80 index2=1,80 utmray(index2,index1) = utmcnt georay(index2,index1) = geocnt utmcnt = utmcnt + .4 geocnt = geocnt + .2 80 continue 70 continue do 30 index1=1,250 ray3(index1) = ray3cnt ray3cnt = ray3cnt + .1 30 continue do 32 index1=1,80 utmhght(index1) = hghtinit hghtinit = hghtinit + 2.75 32 continue do 34 index1=1,4800 utmtmeray(index1) = tmeinit tmeinit = tmeinit + 70.7 34 continue do 50 index1=1,50 do 60 index2=1,40 lat(index2,index1) = latcnt lon(index2,index1) = loncnt loncnt = loncnt - 0.1 60 continue latcnt = latcnt + 0.1 loncnt = 78.0 50 continue 230 format('********Error unexpected**********') 231 format('********Error Expected************') 240 format('***********Passed Test*********') open(unit=10,file='testgrid.txt', status = "UNKNOWN") write(*,*)'Testing Grid FORTRAN 77 interface ' write(*,*)'==================================' write(10,*)'Testing Grid FORTRAN 77 interface ' write(10,*)'==================================' write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdopen c write(10,*)'Testing he5_gdopen... ' write(10,*)'======================' write(*,*)'Testing he5_gdopen... ' write(*,*)'======================' gdfid2 = he5_gdopen("grid2.he5",HE5F_ACC_TRUNC) if (gdfid2 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdfid2 = he5_gdopen("grid2.he5",HE5F_ACC_TRUNC)' write(10,*)'Value returned by gdopen ', gdfid2 write(*,*)'gdfid2 = he5_gdopen("grid2.he5",HE5F_ACC_TRUNC)' write(*,*)'Value returned by gdopen ', gdfid2 endif write(*,*)' ' write(10,*)' ' gdfid = he5_gdopen('grid.he5',HE5F_ACC_TRUNC) if (gdfid .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'Opening file grid.he5' write(10,*)'Opening file grid.he5' write(10,*) 'gdfid = he5_gdopen("grid.he5",HE5F_ACC_TRUNC)' write(10,*) 'File id returned from gdopen ', gdfid write(*,*) 'gdfid = he5_gdopen("grid.he5",HE5F_ACC_TRUNC)' write(*,*) 'File id returned from gdopen ', gdfid endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdcreate c write(10,27) write(10,*)'Testing he5_gdcreate... ' write(10,*)'========================' write(*,*)'Testing he5_gdcreate... ' write(*,*)'========================' xdim = 60 ydim = 80 uplft(1) = 353299.39125d0 uplft(2) = -7100284.64348d0 lowrgt(1) = 603434.52148d0 lowrgt(2) = -7991341.17870d0 gdid2 = he5_gdcreate(gdfid2, 'UTMGrid2', 1xdim, ydim, uplft, lowrgt) if (gdid2 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*) 'Create UTMGrid2' write(*,*)'gdid2 = he5_gdcreate(gdfid2, "UTMGrid2", 1xdim, ydim, uplft, lowrgt)' write(10,*) 'Value returned by gdcreate ', gdid2 write(*,*) 'Create UTMGrid2' write(10,*)'gdid2 = he5_gdcreate(gdfid2, "UTMGrid2", 1xdim, ydim, uplft, lowrgt)' write(*,*) 'Value returned by gdcreate ', gdid2 endif gdid_utm = he5_gdcreate(gdfid, 'UTMGrid', xdim, ydim, 1uplft, lowrgt) if (gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Creating UTMGrid' write(*,*)'Creating UTMGrid' write(*,*)'gdid_utm= he5_gdcreate(gdfid,"UTMGrid",xdim, 1ydim,uplft,lowrgt)' write(10,*)'gdid_utm= he5_gdcreate(gdfid,"UTMGrid",xdim, 1ydim,uplft,lowrgt)' write(10,*)'UTM grid id returned from gdcreate ',gdid_utm write(*,*)'UTM grid id returned from gdcreate ',gdid_utm endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefproj c write(10,27) write(10,*)'Testing he5_gddefproj... ' write(10,*)'========================' write(*,*)'Testing he5_gddefproj... ' write(*,*)'========================' zonecode = 10 spherecode = 0 do 120 index1=1,16 projparm(index1)=0 120 continue status = he5_gddefproj(gdid_utm,HE5_GCTP_UTM,zonecode, 1spherecode,projparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Defining UTM projection' write(*,*)'Defining UTM projection' write(*,*)'status= he5_gddefproj(gdid_utm,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'status= he5_gddefproj(gdid_utm,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'Returned value from gddefproj ', status write(*,*)'Returned value from gddefproj ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddefproj(gdid2,HE5_GCTP_UTM,zonecode, 1spherecode,projparm) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Defining UTM' write(10,*)'status = he5_gddefproj(gdid2,HE5_GCTP_UTM, 1zonecode,spherecode,projparm)' write(10,*)'Value returned by gddefproj ', status write(*,*)'Defining UTM' write(*,*)'status = he5_gddefproj(gdid2,HE5_GCTP_UTM, 1zonecode,spherecode,projparm)' write(*,*)'Value returned by gddefproj ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefpreg c write(10,27) write(10,*)'Testing he5_gddefpreg... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefpreg... ' write(*,*)'==========================' status = he5_gddefpreg(gdid_utm, HE5_HDFE_CORNER) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddefpreg(gdid_utm, 1HE5_HDFE_CORNER)' write(10,*)'status = he5_gddefpreg(gdid_utm, 1HE5_HDFE_CORNER)' write(10,*)'Returned from gddefpreg ', status write(*,*)'Returned from gddefpreg ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddeforigin c write(10,27) write(10,*)'Testing he5_gddeforigin... ' write(10,*)'==========================' write(*,*)'Testing he5_gddeforigin... ' write(*,*)'==========================' status = he5_gddeforigin(gdid_utm,HE5_HDFE_GD_UL) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddeforigin(gdid_utm, 1HE5_HDFE_GD_UL)' write(*,*)'Value of status from gddeforigin ',status write(10,*)'status = he5_gddeforigin(gdid_utm, 1HE5_HDFE_GD_UL)' write(10,*)'Value of status from gddeforigin ',status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefdim c write(10,27) write(10,*)'Testing he5_gddefdim... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefdim... ' write(*,*)'==========================' testdim1 = 40 status = he5_gddefdim(gdid2,'TestDim1',testdim1) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid2,"TestDim1",40)' write(10,*)'Value returned by gddefdim ', status write(*,*)'status = he5_gddefdim(gdid2,"TestDim1",40)' write(*,*)'Value returned by gddefdim ', status endif write(10,*)' ' write(*,*)' ' testdim2 = 25 status = he5_gddefdim(gdid2, 'TestDim2', testdim2) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid2,"TestDim2",25)' write(10,*)'Value returned by gddefdim ', status write(*,*)'status = he5_gddefdim(gdid2,"TestDim2",25)' write(*,*)'Value returned by gddefdim ', status endif write(10,*)' ' write(*,*)' ' conduction = 250 status = he5_gddefdim(gdid_utm, 'Conduction', conduction) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid_utm, 1"Conduction",250)' write(10,*)'Returned value from gddefdim ', status write(*,*)'status = he5_gddefdim(gdid_utm, 1"Conduction", 250)' write(*,*)'Returned value from gddefdim ', status endif write(10,*)' ' write(*,*)' ' timedim = 4800 status = he5_gddefdim(gdid_utm,'Timedim',timedim) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid_utm, 1"Timedim",4800)' write(10,*)'Status returned by call to gddefdim ',status write(*,*)'status = he5_gddefdim(gdid_utm, 1"Timedim",4800)' write(*,*)'Status returned by call to gddefdim ',status endif write(10,*)' ' write(*,*)' ' hghtdim = 80 status = he5_gddefdim(gdid_utm,'Hghtdim',hghtdim) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid_utm,"Hghtdim",80)' write(10,*)'Status returned by call to gddefdim ',status write(*,*)'status = he5_gddefdim(gdid_utm,"Hghtdim",80)' write(*,*)'Status returned by call to gddefdim ',status endif write(10,*)' ' write(*,*)' ' convection = 60 status = he5_gddefdim(gdid_utm,'Convection',convection) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define dimension Convection ' write(10,*)'status = he5_gddefdim(gdid_utm, 1"Convection",60)' write(10,*)'Status returned by call to gddefdim ',status write(*,*)'Define dimension Convection ' write(*,*)'status = he5_gddefdim(gdid_utm, 1"Convection",60)' write(*,*)'Status returned by call to gddefdim ',status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddetach c write(10,27) write(10,*)'Testing he5_gddetach... ' write(10,*)'=======================' write(*,*)'Testing he5_gddetach... ' write(*,*)'=======================' status = he5_gddetach(gdid2) if(status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid2)' write(10,*)'Value returned by gddetach ', status write(*,*)'status = he5_gddetach(gdid2)' write(*,*)'Value returned by gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned value from gddetach ', status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Returned value from gddetach ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdattach c write(10,27) write(10,*)'Testing he5_gdattach... ' write(10,*)'==========================' write(*,*)'Testing he5_gdattach... ' write(*,*)'==========================' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if(gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid_utm=he5_gdattach(gdfid,"UTMGrid")' write(10,*)'Handle returned from gdattach ',gdid_utm write(*,*)'gdid_utm=he5_gdattach(gdfid,"UTMGrid")' write(*,*)'Handle returned from gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' gdid2 = he5_gdattach(gdfid2, 'UTMGrid2') if(gdid2 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid2=he5_gdattach(gdfid2, "UTMGrid2")' write(10,*)'Value returned by gdattach ', gdid2 write(*,*)'gdid2=he5_gdattach(gdfid2, "UTMGrid2")' write(*,*)'Value returned by gdattach ', gdid2 endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddeffld c write(10,27) write(10,*)'Testing he5_gddeffld... ' write(10,*)'==========================' write(*,*)'Testing he5_gddeffld... ' write(*,*)'==========================' status= he5_gddeffld(gdid2,"tempfield","TestDim2,TestDim1", 1" ",HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "tempfield"' write(10,*)'status= he5_gddeffld(gdid2,"tempfield", 1"TestDim2,TestDim1"," ",HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(10,*)'Value returned by gddeffld ', status write(*,*)'Define: "tempfield"' write(*,*)'status= he5_gddeffld(gdid2,"tempfield", 1"TestDim2,TestDim1","",HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(*,*)'Value returned by gddeffld ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'Time','Timedim'," ", 1HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Time' write(10,*)'status= he5_gddeffld(gdid_utm,"Time","Timedim", 1"",HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to gddeffld ',status write(*,*)' Define field Time' write(*,*)'status= he5_gddeffld(gdid_utm,"Time","Timedim", 1"",HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to gddeffld ',status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'Height','Hghtdim'," ", 1HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Height' write(10,*)'status= he5_gddeffld(gdid_utm,"Height", 1"Hghtdim","",HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to gddeffld ',status write(*,*)' Define field Height' write(*,*)'status= he5_gddeffld(gdid_utm,"Height","Hghtdim", 1"",HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to gddeffld ',status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddeftle c write(10,27) write(10,*)'Testing he5_gddeftle... ' write(10,*)'=======================' write(*,*)'Testing he5_gddeftle... ' write(*,*)'=======================' status = he5_gddeftle(gdid_utm,HE5_HDFE_TILE,2,tiledims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define tiling dimensions ' write(10,*)'status = he5_gddeftle(gdid_utm, 1HE5_HDFE_TILE,2,tiledims)' write(10,*)'Status returned by call to gddeftle ',status write(*,*)'Status returned by call to gddeftle ',status write(*,*)'status = he5_gddeftle(gdid_utm, 1HE5_HDFE_TILE,2,tiledims)' write(*,*)'Define tiling dimensions ' endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'SideB','YDim,Convection', 1" ",HE5T_NATIVE_INT, HE5_HDFE_NOMERGE) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define field that will be tiled ' write(10,*)'status= he5_gddeffld(gdid_utm,"SideB", 1"YDim,Convection"," ",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to gddeffld ',status write(*,*)'Define field that will be tiled ' write(*,*)'status= he5_gddeffld(gdid_utm,"SideB", 1"YDim,Convection","",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to gddeffld ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned value from gddetach ', status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Returned value from gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if (gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdattach(gdfid,"UTMGrid")' write(10,*)'Returned value from gdattach ', status write(*,*)'status = he5_gddetach(gdfid,"UTMGrid")' write(*,*)'Returned value from gdattach ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'Grounding','Conduction', 1" ",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Grounding"' write(10,*)'status= he5_gddeffld(gdid_utm,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HE5_HDF_NOMERGE)' write(10,*)'Value returned by gddeffld ', status write(*,*)'Define: "Grounding"' write(*,*)'status= he5_gddeffld(gdid_utm,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HE5_HDF_NOMERGE)' write(*,*)'Value returned by gddeffld ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefcomp c write(10,27) write(10,*)'Testing he5_gddefcomp... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefcomp... ' write(*,*)'==========================' tiledims(1) = 16 tiledims(2) = 15 status = he5_gddeftle(gdid_utm,HE5_HDFE_TILE,2,tiledims) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'Setup Tiling dimensions ' write(*,*)'Required when using compression' endif write(10,*)' ' write(*,*)' ' status = he5_gddefcomp(gdid_utm,HE5_HDFE_COMP_DEFLATE, compparm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Setup compression mode' write(10,*)'status = he5_gddefcomp(gdid_utm, 1HE5_HDFE_COMP_DEFLATE, compparm)' write(10,*)'Status returned by call to gddefcomp ',status write(*,*)'Setup compression mode' write(*,*)'status = he5_gddefcomp(gdid_utm, 1HE5_HDFE_COMP_DEFLATE, compparm)' write(*,*)'Status returned by call to gddefcomp ',status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,"Voltage","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,0) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Voltage"' write(10,*)'status = he5_gddeffld(gdid_utm,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from gddeffld ', status write(*,*)'Define: "Voltage"' write(*,*)'status = he5_gddeffld(gdid_utm,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from gddeffld ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdsetfill c write(10,27) write(10,*)'Testing he5_gdsetfill... ' write(10,*)'========================' write(*,*)'Testing he5_gdsetfill... ' write(*,*)'=========================' status = he5_gdsetfill(gdid_utm, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Testing he5_gdsetfill' write(10,*)'status = he5_gdsetfill(gdid_utm, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(10,*)'Returned from gdsetfill ', status write(*,*)'Testing he5_gdsetfill' write(*,*)'status = he5_gdsetfill(gdid_utm, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(*,*)'Returned from gdsetfill ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,"Drift","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Drift"' write(10,*)'status= he5_gddeffld(gdid_utm,"Drift","YDim,XDim", 1"",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from gddeffld ', status write(*,*)'Define: "Drift"' write(*,*)'status= he5_gddeffld(gdid_utm,"Drift","YDim,XDim", 1"",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from gddeffld ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'Impedance','YDim,XDim'," ", 1HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Impedance"' write(10,*)'status= he5_gddeffld(gdid_utm,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from gddeffld ', status write(*,*)'Define: "Impedance"' write(*,*)'status= he5_gddeffld(gdid_utm,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from gddeffld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(*,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned value from gddetach ', status write(*,*)'Returned value from gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if(gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'Handle returned from gdattach ', gdid_utm write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Handle returned from gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdwrfld c write(10,27) write(10,*)'Testing he5_gdwrfld... ' write(10,*)'======================' write(*,*)'Testing he5_gdwrfld... ' write(*,*)'======================' start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid_utm,"Voltage",start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Voltage ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Voltage",start, 1stride,edge,utmray)' write(10,*)'Status returned by gdwrfield ', status write(*,*)'Write to field Voltage ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Voltage",start, 1stride,edge,utmray)' write(*,*)'Status returned by gdwrfield ', status endif write(10,*)' ' write(*,*)' ' start(1) = 10 start(2) = 10 edge(1) = 10 edge(2) = 10 status=he5_gdwrfld(gdid_utm,'Drift',start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Drift ' write(10,*)'status=he5_gdwrfld(gdid_utm,"Drift",start, 1stride,edge,utmray)' write(10,*)'Status returned from gdwrfld ', status write(*,*)'Write to field Drift ' write(*,*)'status = he5_gdwrfld(gdid_utm,"Drift",start, 1stride,edge,utmray)' write(*,*)'Status returned from gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start(1) = 0 start(2) = 0 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid_utm, 'Impedance', start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Impedance ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Impedance",start, 1stride,edge,utmray)' write(10,*)'Returned from gdwrfld ', status write(*,*)'Write to field Impedance ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Impedance",start, 1stride,edge,utmray)' write(*,*)'Returned from gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=4800 status= he5_gdwrfld(gdid_utm,'Time',start1d,stride1d, 1edge1d,utmtmeray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Time ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Time",start1d, 1stride1d,edge1d,utmtmeray)' write(10,*)'Status returned by call to gdwrfld ',status write(*,*)'Write to field Time ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Time",start1d,stride1d, 1edge1d,utmtmeray)' write(*,*)'Status returned by call to gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=80 status= he5_gdwrfld(gdid_utm,'Height',start1d,stride1d, 1edge1d,utmhght) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Height ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Height",start1d, 1stride1d,edge1d,utmhght)' write(10,*)'Status returned by call to gdwrfld ',status write(*,*)'Write to field Height ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Height",start1d, 1stride1d,edge1d,utmhght)' write(*,*)'Status returned by call to gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=250 status= he5_gdwrfld(gdid_utm,'Grounding',start1d, 1stride1d,edge1d,ray3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Grounding ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(10,*)'Value returned by gdwrfld ', status write(*,*)'Write to field Grounding ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(*,*)'Value returned by gdwrfld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Value of status returned by gddetach ',status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Value of status returned by gddetach ',status endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'Grid id returned by gdattach ',gdid_utm write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Grid id returned by gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdwrattr c write(10,27) write(10,*)'Testing he5_gdwrattr... Global attribute ' write(10,*)'==================================== ' write(*,*)'Testing he5_gdwrattr... Global attribute ' write(*,*)'==================================== ' setcount(1) = 4 status = he5_gdwrattr(gdid_utm, 'Resistance', HE5T_NATIVE_INT, 1setcount, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status= he5_gdwrattr(gdid_utm,"Resistance", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from gdwrattr ', status write(*,*)'status= he5_gdwrattr(gdid_utm,"Resistance", 1HE5T_NATIVE_FLOAT, 4, attr)' write(*,*)'Returned from gdwrattr ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdwrgattr c write(10,27) write(10,*)'Testing he5_gdwrgattr... Group attribute ' write(10,*)'==================================== ' write(*,*)'Testing he5_gdwrgattr... Group attribute ' write(*,*)'==================================== ' attr(1) = 22 attr(2) = 44 attr(3) = 66 attr(4) = 88 status = he5_gdwrgattr(gdid_utm, 'group', HE5T_NATIVE_INT, 1setcount, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status= he5_gdwrgattr(gdid_utm,"group", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from gdwrgattr ', status write(*,*)'status= he5_gdwrgattr(gdid_utm,"group", 1HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from gdwrgattr ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdwrlattr c write(10,27) write(10,*)'Testing he5_gdwrlattr... Local attribute ' write(10,*)'======================================== ' write(*,*)'Testing he5_gdwrlattr... Local attribute ' write(*,*)'======================================== ' attr(1) = 12 attr(2) = 34 attr(3) = 56 attr(4) = 78 status = he5_gdwrlattr(gdid_utm,"Grounding", "local", 1HE5T_NATIVE_INT,setcount, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status= he5_gdwrlattr(gdid_utm,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from gdwrlattr ', status write(*,*)'status= he5_gdwrlattr(gdid_utm,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from gdwrlattr ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned from gddetach ', status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Returned from gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid2) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid2)' write(10,*)'Value returned by gddetach ', status write(*,*)'status = he5_gddetach(gdid2)' write(*,*)'Value returned by gddetach ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdclose c write(10,27) write(10,*)'Testing he5_gdclose... ' write(10,*)'==========================' write(*,*)'Testing he5_gdclose... ' write(*,*)'==========================' status = he5_gdclose(gdfid2) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdclose(gdfid2)' write(10,*)'Value returned by gdclose ', status write(*,*)'status = he5_gdclose(gdfid2)' write(*,*)'Value returned by gdclose ', status endif write(10,*)' ' write(*,*)' ' status = he5_gdclose(gdfid) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdclose(gdfid)' write(10,*)'Returned from gdclose ', status write(*,*)'status = he5_gdclose(gdfid)' write(*,*)'Returned from gdclose ', status endif write(10,*)' ' write(*,*)' ' gdfid = he5_gdopen('grid.he5',HE5F_ACC_RDWR) if (gdfid .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR)' write(10,*)'gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR)' write(*,*)'Grid file id returned by gdopen ',gdfid write(10,*)'Grid file id returned by gdopen ',gdfid endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if (gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Grid id returned by gdattach ',gdid_utm write(10,*)'Grid id returned by gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqgrid c write(10,27) write(10,*)'Testing he5_gdinqgrid... ' write(10,*)'==========================' write(*,*)'Testing he5_gdinqgrid... ' write(*,*)'==========================' lstatus = he5_gdinqgrid('grid.he5',grdnames,strbufsize) if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqgrid("grid.he5",grdnames, 1strbufsize)' write(*,*)'Names of grids ',grdnames write(*,*)'Number of grids ',lstatus write(*,*)'Size of names of grids ',strbufsize write(10,*)'lstatus = he5_gdinqgrid("grid.he5",grdnames, 1strbufsize)' write(10,*)'Names of grids ',grdnames write(10,*)'Number of grids ',lstatus write(10,*)'Size of names of grids ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdorginfo c write(10,27) write(10,*)'Testing he5_gdorginfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdorginfo... ' write(*,*)'==========================' status = he5_gdorginfo(gdid_utm, orgcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdorginfo(gdid_utm, orgcode)' write(10,*)'lstatus = he5_gdorginfo(gdid_utm, orgcode)' write(*,*)'Value returned by gdorginfo ',status write(10,*)'Value returned by gdorginfo ',status write(*,*)'Origin code value ',orgcode write(10,*)'Origin code value ',orgcode endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdpreginfo c write(10,27) write(10,*)'Testing he5_gdpreginfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdpreginfo... ' write(*,*)'==========================' status = he5_gdpreginfo(gdid_utm, pixregcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdpreginfo(gdid_utm, pixregcode)' write(10,*)'status = he5_gdpreginfo(gdid_utm, pixregcode)' write(*,*)'Value returned by gdpreginfo ',status write(10,*)'Value returned by gdpreginfo ',status write(*,*)'Pixel reg code ',pixregcode write(10,*)'Pixel reg code ',pixregcode endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqdims c write(10,27) write(10,*)'Testing he5_gdinqdims... ' write(10,*)'==========================' write(*,*)'Testing he5_gdinqdims... ' write(*,*)'==========================' status = he5_gdinqdims(gdid_utm, dimname, dims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdims(gdid_utm, dimname, dims)' write(*,*)'Number of dimensions ',status write(*,*)'Dimensions in grid UTM ',dimname write(*,*)'Size of dimensions ' write(10,*)'status = he5_gdinqdims(gdid_utm, dimname, dims)' write(10,*)'Number of dimensions ',status write(10,*)'Dimensions in grid UTM ',dimname write(10,*)'Size of dimensions ' do 130 i=1,status write(*,*)' ',dims(i) write(10,*)' ',dims(i) 130 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddiminfo c write(10,27) write(10,*)'Testing he5_gddiminfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gddiminfo... ' write(*,*)'==========================' lstatus = he5_gddiminfo(gdid_utm, 'Conduction') if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus=he5_gddiminfo(gdid_utm,"Conduction")' write(*,*)'Size of dimension Conduction ',lstatus write(10,*)'lstatus=he5_gddiminfo(gdid_utm,"Conduction")' write(10,*)'Size of dimension Conduction ',lstatus endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgridinfo c write(10,27) write(10,*)'Testing he5_gdgridinfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdgridinfo... ' write(*,*)'==========================' status= he5_gdgridinfo(gdid_utm,xdimsize,ydimsize, 1upleftpt,lowrtpt) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status= he5_gdgridinfo(gdid_utm,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(*,*)'Status returned by gdgridinfo ',status write(*,11)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(*,12)'Upper left pt ',upleftpt(1),' ',upleftpt(2) write(*,12)'Lower right pt ',lowrtpt(1),' ',lowrtpt(2) write(10,*)'status= he5_gdgridinfo(gdid_utm,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(10,*)'Value returned by gdgridinfo ',status write(10,*)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(10,*)'Upper left pt ',upleftpt(1),upleftpt(2) write(10,*)'Lower right pt ',lowrtpt(1),lowrtpt(2) endif write(10,*)' ' write(*,*)' ' 11 format(a,i2,a,i2) 12 format(a,f14.5,a,f14.5) c Test Case -- he5_gdprojinfo c write(10,27) write(10,*)'Testing he5_gdprojinfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdprojinfo... ' write(*,*)'==========================' status = he5_gdprojinfo(gdid_utm,pcode,zcode,scode,pparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdprojinfo(gdid_utm,pcode, 1zcode,scode,pparm)' write(*,*)'Status returned by gdprojinfo ',status write(*,*)'Projection code ',pcode, ' Zone code ',zcode write(*,*)'Sphere code ',scode write(10,*)'status = he5_gdprojinfo(gdid_utm,pcode, 1zcode,scode,pparm)' write(10,*)'Value returned by gdprojinfo ',status write(10,*)'Projection code ',pcode, ' Zone code ',zcode write(10,*)'Sphere code ',scode do 140 i=1,16 write(*,55)' ',pparm(i) write(10,55)' ',pparm(i) 140 continue endif 55 format(a,f5.2) write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdcompinfo c write(10,27) write(10,*)'Testing he5_gdcompinfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdcompinfo... ' write(*,*)'==========================' status = he5_gdcompinfo(gdid_utm,'Voltage', 1compcodestring,compparm) if (status .lt. zero) then else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdcompinfo(gdid_utm,"Voltage", 1compcode,compparm)' write(10,*)'Compression info for field Voltage' write(10,*)'Comp code ',compcodestring write(10,*)'Compression parameters ',compparm write(*,*)'status = he5_gdcompinfo(gdid_utm,"Voltage", 1compcode,compparm)' write(*,*)'Compression info for field Voltage' write(*,*)'Comp code ',compcodestring write(*,*)'Compression parameters ',compparm endif c Test Case -- he5_gdinqflds c write(10,27) write(10,*)'Testing he5_gdinqflds... ' write(10,*)'========================' write(*,*)'Testing he5_gdinqflds... ' write(*,*)'========================' nflds = he5_gdinqflds(gdid_utm,fldlist,rnk,numtype) if (nflds .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'nflds = he5_gdinqflds(gdid_utm, 1fldlist,rnk,numtype)' write(*,*)'Number of fields ',nflds write(10,*)'nflds = he5_gdinqflds(gdid_utm, 1fldlist,rnk,numtype)' write(10,*)'Number of fields ',nflds if (nflds .ne. 0) then write(*,*)'Fields ',fldlist write(10,*)'Fields ',fldlist do 150 i=1,nflds write(*,*)'Rank and type ',rnk(i), ' ',numtype(i) write(10,*)'Rank and type ',rnk(i), ' ',numtype(i) 150 continue endif endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdfldinfo c write(10,27) write(10,*)'Testing he5_gdfldinfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdfldinfo... ' write(*,*)'==========================' status = he5_gdfldinfo(gdid_utm, 'Drift', rnk, dims, 1numtype, dimname, maxdimname) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdfldinfo(gdid_utm, "Drift", 1rnk, dims, numtype, dimname, maxdimname)' write(*,*)'Value returned by gdfldinfo for field Drift ', 1status write(*,*)'Drift rank ',rnk(1) write(*,*)'Dimensions ',dims(1),' ',dims(2) write(*,*)'Number type of field ',numtype(1) write(*,*)'Dimension names ',dimname write(10,*)'status = he5_gdfldinfo(gdid_utm, "Drift", 1rnk, dims, numtype, dimname, maxdimname)' write(10,*)'Value returned by gdfldinfo for field Drift ', 1status write(10,*)'Drift rank ',rnk(1) endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdrdfld c write(10,27) write(10,*)'Testing he5_gdrdfld... ' write(10,*)'==========================' write(*,*)'Testing he5_gdrdfld... ' write(*,*)'==========================' start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 edge(1) = 80 edge(2) = 60 status = he5_gdrdfld(gdid_utm,'Drift',start,stride,edge,tempray) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdfld(gdid_utm,"Drift", 1start,stride,edge,tempray)' write(*,*)'Value returned by gdrdfld ',status write(10,*)'status = he5_gdrdfld(gdid_utm,"Drift", 1start,stride,edge,tempray)' write(10,*)'Value returned by gdrdfld ',status do 65 ii=1,6 do 66 i=1,5 write(10,*)'Field value at ',ii,' ',i,' ', 1tempray(ii,i) write(*,*)'Field value at ',ii,' ',i,' ', 1tempray(ii,i) 66 continue 65 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdnentries c write(10,27) write(10,*)'Testing he5_gdnentries... ' write(10,*)'==========================' write(*,*)'Testing he5_gdnentries... ' write(*,*)'==========================' n=he5_gdnentries(gdid_utm,HE5_HDFE_NENTDIM,strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid_utm, 1HE5_HDFE_NENTDIM, strbufsize)' write(*,*)'Number of dimensions ', n write(*,*)'Size of Dimension string ',strbufsize write(10,*)'n = he5_gdnentries(gdid_utm, 1HE5_HDFE_NENTDIM, strbufsize)' write(10,*)'Number of dimensions ', n write(10,*)'Size of Dimension string ',strbufsize endif n = he5_gdnentries(gdid_utm,HE5_HDFE_NENTDFLD,strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid_utm, 1HE5_HDFE_NENTDFLD,strbufsize)' write(*,*)'Number of data fields ',n write(*,*)'Size of Field string ',strbufsize write(10,*)'n = he5_gdnentries(gdid_utm, 1HDFE_NENTDFLD,strbufsize)' write(10,*)'Number of data fields ',n write(10,*)'Size of Field string ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdattrinfo c write(10,27) write(10,*)'Testing he5_gdattrinfo, Global attribute' write(10,*)'============================================' write(*,*)'Testing he5_gdattrinfo, Global attribute' write(*,*)'============================================' status = he5_gdattrinfo(gdid_utm,'Resistance',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdattrinfo(gdid_utm,"Resistance", 1ntype,count)' write(*,*)'Value returned by gdattrinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdattrinfo(gdid_utm,"Resistance", 1ntype,count)' write(10,*)'Value returned by gdattrinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgatinfo c write(10,27) write(10,*)'Testing he5_gdgatinfo, Group attribute' write(10,*)'============================================' write(*,*)'Testing he5_gdgatinfo, Group attribute' write(*,*)'============================================' status = he5_gdgatinfo(gdid_utm,'group',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgatinfo(gdid_utm,"group", 1ntype,count)' write(*,*)'Value returned by gdgatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdgatinfo(gdid_utm,"group", 1ntype,count)' write(10,*)'Value returned by gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdlatinfo c write(10,27) write(10,*)'Testing he5_gdlatinfo, Local attribute' write(10,*)'======================================' write(*,*)'Testing he5_gdlatinfo, Local attribute' write(*,*)'======================================' status = he5_gdlatinfo(gdid_utm,"Grounding","local", 1ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdlatinfo(gdid_utm,"Grounding", 1"local",ntype,count)' write(*,*)'Value returned by gdlatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdlatinfo(gdid_utm,"Grounding", 1"local",ntype,count)' write(10,*)'Value returned by gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdrdattr c write(10,27) write(10,*)'Testing he5_gdrdattr, Global attribute' write(10,*)'======================================' write(*,*)'Testing he5_gdrdattr, Global attribute' write(*,*)'======================================' status = he5_gdrdattr(gdid_utm,'Resistance',iattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdattr(gdid_utm,"Resistance", 1iattr)' write(*,*)'Value returned by gdrdattr ',status write(10,*)'status = he5_gdrdattr(gdid_utm,"Resistance", 1iattr)' write(10,*)'Value returned by gdrdattr ',status do 67 i=1,count write(10,*)'Attribute value ',iattr(i) write(*,*)'Attribute value ',iattr(i) 67 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdrdgattr c write(10,27) write(10,*)'Testing he5_gdrdgattr, Group attribute ' write(10,*)'======================================' write(*,*)'Testing he5_gdrdgattr, Group attribute' write(*,*)'======================================' status = he5_gdrdgattr(gdid_utm,'group',gattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdgattr(gdid_utm,"group", 1gattr)' write(*,*)'Value returned by gdrdgattr ',status write(10,*)'status = he5_gdrdgattr(gdid_utm,"group", 1gattr)' write(10,*)'Value returned by gdrdgattr ',status do 68 i=1,count write(10,*)'Attribute value ',gattr(i) write(*,*)'Attribute value ',gattr(i) 68 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqdatatype c write(10,27) write(10,*)'Testing he5_gdinqdatatype ' write(10,*)'=============================' write(*,*)'Testing he5_gdinqdatatype' write(*,*)'=============================' status = he5_gdinqdatatype(gdid_utm,"Grounding","local", 1HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdatatype(gdid_utm,"Grounding", 1"local",HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(*,*)'Data type of attribute ',dtype write(*,*)'Class id of attribute ',classid write(*,*)'Order of attribute ',order write(*,*)'Size of attribute ',size write(10,*)'status = he5_gdinqdatatype(gdid_utm,"Grounding", 1"local", HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(10,*)'Data type of attribute ',dtype write(10,*)'Class id of attribute ',classid write(10,*)'Order of attribute ',order write(10,*)'Size of attribute ',size endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdrdlattr c write(10,27) write(10,*)'Testing he5_gdrdlattr, Local attribute ' write(10,*)'======================================' write(*,*)'Testing he5_gdrdlattr, Local attribute' write(*,*)'======================================' status = he5_gdrdlattr(gdid_utm,'Grounding', 1'local',lattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdlattr(gdid_utm,"Grounding", 1"local",lattr)' write(*,*)'Value returned by gdrdlattr ',status write(10,*)'status = he5_gdrdlattr(gdid_utm,"Grounding", 1"local",lattr)' write(10,*)'Value returned by gdrdlattr ',status do 69 i=1,count write(10,*)'Attribute value ',lattr(i) write(*,*)'Attribute value ',lattr(i) 69 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqattrs c write(10,27) write(10,*)'Testing he5_gdinqattrs, Global attribute' write(10,*)'========================================' write(*,*)'Testing he5_gdinqattrs, Global attribute' write(*,*)'========================================' lstatus = he5_gdinqattrs(gdid_utm, attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqattrs(gdid_utm, 1attrlist,strbufsize)' write(*,*)'Value returned by gdinqattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqattrs(gdid_utm, 1attrlist,strbufsize)' write(10,*)'Value returned by gdinqattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqgattrs c write(10,27) write(10,*)'Testing he5_gdinqgattrs, Group attribute' write(10,*)'============================================' write(*,*)'Testing he5_gdinqgattrs, Group attribute' write(*,*)'============================================' lstatus = he5_gdinqgattrs(gdid_utm,attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqgattrs(gdid_utm, 1attrlist,strbufsize)' write(*,*)'Value returned by gdinqgattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqgattrs(gdid_utm, 1attrlist,strbufsize)' write(10,*)'Value returned by gdinqgattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqlattrs c write(10,27) write(10,*)'Testing he5_gdinqlattrs, Local attribute' write(10,*)'========================================' write(*,*)'Testing he5_gdinqlattrs, Local attribute' write(*,*)'========================================' lstatus = he5_gdinqlattrs(gdid_utm,"Grounding",attrlist, 1strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqlattrs(gdid_utm,"Grounding", 1attrlist,strbufsize)' write(*,*)'Value returned by gdinqlattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqlattrs(gdid_utm,"Grounding", 1attrlist, strbufsize)' write(10,*)'Value returned by gdinqlattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgetfill c write(10,27) write(10,*)'Testing he5_gdgetfill... ' write(10,*)'=======================' write(*,*)'Testing he5_gdgetfill... ' write(*,*)'========================' status = he5_gdgetfill(gdid_utm,'Drift',ifillv) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgetfill(gdid_utm,"Drift", 1ifillv)' write(*,*)'Value returned by gdgetfill ',status write(*,*)'Fill value ',ifillv write(10,*)'status = he5_gdgetfill(gdid_utm,"Drift", 1ifillv)' write(10,*)'Value returned by gdgetfill ',status write(10,*)'Fill value ',ifillv endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefboxreg c write(10,27) write(10,*)'Testing he5_gddefboxreg... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefboxreg... ' write(*,*)'==========================' corlon(1)=-126.0 corlon(2)=-121.5 corlat(1)=-70.0 corlat(2)=-65.0 regionid = he5_gddefboxreg(gdid_utm,corlon,corlat) if (regionid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'regionid = he5_gddefboxreg(gdid_utm, 1corlon,corlat)' write(*,*)'Region id returned by gddefboxreg ',regionid write(10,*)'regionid = he5_gddefboxreg(gdid_utm, 1corlon,corlat)' write(10,*)'Region id returned by gddefboxreg ',regionid endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdreginfo c write(10,27) write(10,*)'Testing he5_gdreginfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdreginfo... ' write(*,*)'==========================' status = he5_gdreginfo(gdid_utm,regionid,'Impedance',nt,rk, 1dims,size,iuplft,ilrgt) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdreginfo(gdid_utm,regionid, 1"Impedance",nt, rk,dims,size,iuplft,ilrgt)' write(*,*)'Value returned by gdreginfo ',status write(*,*)'Number type of region ',nt write(*,*)'Rank of region ',rk write(*,*)'Size of region ',size write(*,11)'Dimensions of region ',dims(1),' ',dims(2) write(*,12)'Upper left point of region ',iuplft(1),' ', 1iuplft(2) write(*,12)'Lower right point of region ',ilrgt(1),' ', 1ilrgt(2) write(10,*)'status = he5_gdreginfo(gdid_utm,regionid, 1"Impedance",nt,rk,dims,size,iuplft,ilrgt)' write(10,*)'Value returned by gdreginfo ',status write(10,*)'Number type of region ',nt write(10,*)'Rank of region ',rk write(10,*)'Size of region ',size write(10,11)'Dimensions of region ',dims(1),' ',dims(2) write(10,12)'Upper left point of region ',iuplft(1),' ', 1iuplft(2) write(10,12)'Lower right point of region ',ilrgt(1),' ', 1ilrgt(2) endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdextreg c write(10,27) write(10,*)'Testing he5_gdextreg... ' write(10,*)'==========================' write(*,*)'Testing he5_gdextreg... ' write(*,*)'==========================' status = he5_gdextreg(gdid_utm,regionid,'Impedance',datbuf) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdextreg(gdid_utm,regionid, 1"Impedance",datbuf)' write(*,*)'Value returned by gdextreg ',status write(10,*)'status = he5_gdextreg(gdid_utm,regionid, 1"Impedance",datbuf)' write(10,*)'Value returned by gdextreg ',status do 175 i=100,150 write(*,*)'Value of region ',datbuf(i) write(10,*)'Value of region ',datbuf(i) 175 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddeftmeper c write(10,27) write(10,*)'Testing he5_gddeftmeper... ' write(10,*)'==========================' write(*,*)'Testing he5_gddeftmeper... ' write(*,*)'==========================' periodid = he5_gddeftmeper(gdid_utm,HE5_HDFE_NOPREVSUB, 1starttime,stoptime) if (periodid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'periodid = he5_gddeftmeper(gdid_utm, 1HE5_HDFE_NOPREVSUB,starttime,stoptime)' write(10,*)'Define a time period ' write(10,*)'Period id returned by gddeftmeper ',periodid write(*,*)'periodid = he5_gddeftmeper(gdid_utm, 1HE5_HDFE_NOPREVSUB,starttime,stoptime)' write(*,*)'Define a time period ' write(*,*)'Period id returned by gddeftmeper ',periodid endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefvrtreg c write(10,27) write(10,*)'Testing he5_gddefvrtreg... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefvrtreg... ' write(*,*)'==========================' regionid = he5_gddefvrtreg(gdid_utm,HE5_HDFE_NOPREVSUB, 1'Height',range) if (regionid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid = he5_gddefvrtreg(gdid_utm, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(10,*)'Define a vertical region ' write(10,*)'Region id returned by gddefvrtreg ',regionid write(*,*)'regionid = he5_gddefvrtreg(gdid_utm, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(*,*)'Define a vertical region ' write(*,*)'Region id returned by gddefvrtreg ',regionid endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddupreg c write(10,27) write(10,*)'Testing he5_gddupreg... ' write(10,*)'=======================' write(*,*)'Testing he5_gddupreg... ' write(*,*)'=======================' regionid2 = he5_gddupreg(regionid) if (regionid2 .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid2 = he5_gddupreg(regionid)' write(10,*)'Generate a new region id ' write(10,*)'New region id ',regionid2 write(*,*)'regionid2 = he5_gddupreg(regionid)' write(*,*)'Generate a new region id ' write(*,*)'New region id ',regionid2 endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgetpix c write(10,27) write(10,*)'Testing he5_gdgetpix... ' write(10,*)'==========================' write(*,*)'Testing he5_gdgetpix... ' write(*,*)'==========================' nlonlat = 5 status= he5_gdgetpix(gdid_utm,nlonlat,lonval, 1latval,rowval,colval) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdgetpix(gdid_utm,5,lonval, 1latval,rowval,colval)' write(10,*)'Retrieve pixel row. column values ' write(*,*)'status = he5_gdgetpix(gdid_utm,5,lonval,latval, 1rowval,colval)' write(*,*)'Retrieve pixel row. column values ' do 37 i=1,5 write(10,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) write(*,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) 37 continue endif 5 format(a,f6.1,a,f6.1,a,a,i2,a,i2) write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgetpixval c write(10,27) write(10,*)'Testing he5_gdgetpixval... ' write(10,*)'==========================' write(*,*)'Testing he5_gdgetpixval... ' write(*,*)'==========================' nlonlat = 5 size= he5_gdgetpixval(gdid_utm,nlonlat,rowval,colval, 1"Voltage",fldval) if (size .le. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus = he5_gdgetpixval(gdid_utm,5,rowval, 1colval,"Voltage",fldval)' write(10,*)'Retrieve pixel values for specific locations ' write(*,*)'lstatus = he5_gdgetpixval(gdid_utm,5,rowval, 1colval,"Voltage",fldval)' write(*,*)'Retrieve pixel values for specific locations ' do i=1,5 write(10,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) write(*,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) enddo endif 17 format(a8,i2,a1,i2,a1,a12,f9.3) write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinterpolate c write(10,27) write(10,*)'Testing he5_gdinterpolate... ' write(10,*)'==========================' write(*,*)'Testing he5_gdinterpolate... ' write(*,*)'==========================' nlonlat = 5 size= he5_gdinterpolate(gdid_utm,nlonlat,lonval,latval, 1'Voltage',interval) if (size .le. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus= he5_gdinterpolate(gdid_utm,5,lonval, 1latval,"Voltage",interval)' write(10,*)'Interpolate 5 values for field Voltage ' write(*,*)'lstatus= he5_gdinterpolate(gdid_utm,5,lonval, 1latval,"Voltage",interval)' write(*,*)'Interpolate 5 values for field Voltage ' write(*,*)'Status returned by call to gdinterpolate ',lstatus do i=1,5 write(*,4)'Interpolated value ',interval(i,1) write(10,4)'Interpolated value ',interval(i,1) enddo endif 4 format(a,f9.3) write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Value returned by gddetach ',status write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Value returned by gddetach ',status endif status = he5_gdclose(gdfid) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdclose(gdfid)' write(*,*)'Returned from gdclose ', status write(10,*)'status = he5_gdclose(gdfid)' write(10,*)'Returned from gdclose ', status endif close(unit=10) 27 format(' ') stop end hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/testgrid_szip32.f0000755000175000017500000041143612024715435024154 0ustar amckinstryamckinstryc---------------------------------------------------------------------------- c Copyright (C) 2000 Emergent IT Inc. and Raytheon Systems Company | c---------------------------------------------------------------------------- c testgrid32.f | c In this program we create, define and write a simple grid hdfeos file | c using the grid interface | c---------------------------------------------------------------------------- program testgrid32 implicit none include 'hdfeos5.inc' integer zero integer rnk(8), numtype(8) integer zcode, scode, nflds integer regionid, regionid2, regionid3, regionid4 integer dtype, classid, order integer status, i, ii integer compparm(5) integer gdfid, gdfid2, gdfid3, gdid_utm, gdid2, gdid3 integer zonecode, pixregcode, orgcode integer attr(4), iattr(4), gattr(4), lattr(4) integer spherecode integer he5_gdopen, he5_gdcreate integer he5_gdclose, he5_gddefproj integer he5_gddeftle, he5_gddeffld integer he5_gdwrattr, he5_gdwrgattr integer he5_gddefcomp, he5_gdinqflds integer he5_gdrdfld, he5_gdattrinfo integer he5_gdlatinfo, he5_gdrdattr integer he5_gdreginfo, he5_gddeftmeper integer he5_gddeforigin, he5_gddefpreg integer he5_gdgridinfo, he5_gdcompinfo integer he5_gdgetpix, he5_gddupreg integer he5_gdattach, he5_gddetach integer he5_gddefdim, he5_gdinqdatatype integer he5_gdsetfill, he5_gdwrfld integer he5_gdwrlattr, he5_gdorginfo integer he5_gdprojinfo, he5_gdgatinfo integer he5_gdrdgattr, he5_gdrdlattr integer he5_gddefvrtreg integer he5_gdinqdims, he5_gdgetfill integer he5_gdfldinfo, he5_gddefboxreg integer he5_gdpreginfo, he5_gdextreg integer nt(4), rk(4) integer*4 xdim, ydim integer*4 he5_gdinqgrid, he5_gddiminfo integer*4 he5_gdinqattrs, he5_gdinqgattrs integer*4 he5_gdgetpixval, he5_gdinterpolate integer*4 he5_gdnentries, he5_gdinqlattrs integer*4 index1 integer*4 index2 integer*4 dimsizes(2) integer*4 tiledims(2), tilecords(2) integer*4 ntype, count integer*4 rowval(5), colval(5) integer*4 lat(40,50) integer*4 latcnt integer*4 lon(40,50) integer*4 loncnt integer*4 lstatus, n, one integer*4 size integer*4 start(2) integer*4 stride(2) integer*4 edge(2) integer*4 start1d, stride1d, edge1d integer*4 periodid integer*4 strbufsize, pcode integer*4 xdimsize, ydimsize integer*4 dims(32) real fillvalue, ifillv real*4 fldval(5) real*4 ray3(250) real*4 utmray(60,80), georay(60,80) real*4 utmhght(80) real*4 hghtinit real*4 utmcnt, geocnt real*4 raycnt, ray3cnt real*4 tempray(60,80) real*4 datbuf(4800) real*8 starttime, stoptime real*8 range(2) real*8 projparm(16), pparm(16) real*8 uplft(2), lowrgt(2) real*8 iuplft(2), ilrgt(2) real*8 interval(5,2) real*8 lonval(5), latval(5) real*8 upleftpt(2), lowrtpt(2),corlon(2),corlat(2) real*8 utmtmeray(4800) real*8 tmeinit character*80 grdnames, dimname, fldlist, attrlist character*80 compcodestring, maxdimname index1 = 0 index2 = 0 dimsizes(1) = 40 dimsizes(2) = 100 compparm(1) = 6 compparm(2) = 0 compparm(3) = 0 compparm(4) = 0 compparm(5) = 0 fillvalue = 1996.0 raycnt = -799.0 ray3cnt = -19.5 attr(1) = 11 attr(2) = 33 attr(3) = 55 attr(4) = 77 utmcnt = -799.0 geocnt = 2001.0 hghtinit = 323.0 tmeinit = 35232487.2d0 starttime = 35233000.8d0 stoptime = 35435050.9d0 range(1) = 352.8d0 range(2) = 400.9d0 lonval(1) = -122.0d0 latval(1) = -68.0d0 lonval(2) = -122.5d0 latval(2) = -68.0d0 lonval(3) = -123.0d0 latval(3) = -68.0d0 lonval(4) = -123.5d0 latval(4) = -68.0d0 lonval(5) = -124.0d0 latval(5) = -68.0d0 tiledims(1) = 16 tiledims(2) = 15 tilecords(1)= 0 tilecords(2)= 0 latcnt = 38.0 loncnt = 78.0 one = 1 zero = 0 c c This section of the program just fills some arrays with data that we will c use later in the program c do 70 index1=1,60 do 80 index2=1,80 utmray(index2,index1) = utmcnt georay(index2,index1) = geocnt utmcnt = utmcnt + .4 geocnt = geocnt + .2 80 continue 70 continue do 30 index1=1,250 ray3(index1) = ray3cnt ray3cnt = ray3cnt + .1 30 continue do 32 index1=1,80 utmhght(index1) = hghtinit hghtinit = hghtinit + 2.75 32 continue do 34 index1=1,4800 utmtmeray(index1) = tmeinit tmeinit = tmeinit + 70.7 34 continue do 50 index1=1,50 do 60 index2=1,40 lat(index2,index1) = latcnt lon(index2,index1) = loncnt loncnt = loncnt - 0.1 60 continue latcnt = latcnt + 0.1 loncnt = 78.0 50 continue 230 format('********Error unexpected**********') 231 format('********Error Expected************') 240 format('***********Passed Test*********') open(unit=10,file='testgridf_hdfeos5.txt',status="UNKNOWN") write(*,*)'Testing Grid FORTRAN 77 interface ' write(*,*)'==================================' write(10,*)'Testing Grid FORTRAN 77 interface ' write(10,*)'==================================' write(10,*)' ' write(*,*)' ' c Test Case -- gdopen c write(10,*)'Testing gdopen... ' write(10,*)'==================' write(*,*)'Testing gdopen... ' write(*,*)'==================' gdfid2 = he5_gdopen("grid2.he5",HE5F_ACC_TRUNC) if (gdfid2 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdfid2 = he5_gdopen(grid2.he5",HE5F_ACC_TRUNC)' write(10,*)'Value returned by he5_gdopen ', gdfid2 write(*,*)'gdfid2 = he5_gdopen(grid2.he5",HE5F_ACC_TRUNC)' write(*,*)'Value returned by he5_gdopen ', gdfid2 endif write(*,*)' ' write(10,*)' ' gdfid3 = he5_gdopen("grid3.he5",HE5F_ACC_TRUNC) if (gdfid3 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdfid3 = he5_gdopen(grid3.he5",HE5F_ACC_TRUNC)' write(10,*)'Value returned by he5_gdopen ', gdfid3 write(*,*)'gdfid3 = he5_gdopen(grid3.he5",HE5F_ACC_TRUNC)' write(*,*)'Value returned by he5_gdopen ', gdfid3 endif write(*,*)' ' write(10,*)' ' gdfid = he5_gdopen('grid.he5',HE5F_ACC_TRUNC) if (gdfid .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'Opening file grid.he5' write(10,*)'Opening file grid.he5' write(10,*) 'gdfid = he5_gdopen("grid.he5",HE5F_ACC_TRUNC)' write(10,*) 'File id returned from he5_gdopen ', gdfid write(*,*) 'gdfid = he5_gdopen("grid.he5",HE5F_ACC_TRUNC)' write(*,*) 'File id returned from he5_gdopen ', gdfid endif write(10,*)' ' write(*,*)' ' c Test Case -- gdcreate c write(10,27) write(10,*)'Testing gdcreate... ' write(10,*)'==================' write(*,*)'Testing gdcreate... ' write(*,*)'==================' xdim = 60 ydim = 80 uplft(1) = 353299.39125d0 uplft(2) = -7100284.64348d0 lowrgt(1) = 603434.52148d0 lowrgt(2) = -7991341.17870d0 gdid2 = he5_gdcreate(gdfid2, 'UTMGrid2', xdim, 1ydim, uplft, lowrgt) if (gdid2 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*) 'Create UTMGrid2' write(*,*)'gdid2 = he5_gdcreate(gdfid2, "UTMGrid2", 1xdim, ydim, uplft, lowrgt)' write(10,*) 'Value returned by he5_gdcreate ', gdid2 write(*,*) 'Create UTMGrid2' write(10,*)'gdid2 = he5_gdcreate(gdfid2, "UTMGrid2", 1xdim, ydim, uplft, lowrgt)' write(*,*) 'Value returned by he5_gdcreate ', gdid2 endif gdid3 = he5_gdcreate(gdfid3, 'UTMGrid3', xdim, 1ydim, uplft, lowrgt) if (gdid3 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*) 'Create UTMGrid3' write(*,*)'gdid3 = he5_gdcreate(gdfid3, "UTMGrid3", 1xdim, ydim, uplft, lowrgt)' write(10,*) 'Value returned by he5_gdcreate ', gdid3 write(*,*) 'Create UTMGrid3' write(10,*)'gdid3 = he5_gdcreate(gdfid3, "UTMGrid3", 1xdim, ydim, uplft, lowrgt)' write(*,*) 'Value returned by he5_gdcreate ', gdid3 endif gdid_utm = he5_gdcreate(gdfid, 'UTMGrid', xdim, 1ydim, uplft, lowrgt) if (gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Creating UTMGrid' write(*,*)'Creating UTMGrid' write(*,*)'gdid_utm=he5_gdcreate(gdfid,"UTMGrid", 1xdim,ydim,uplft,lowrgt)' write(10,*)'gdid_utm=he5_gdcreate(gdfid,"UTMGrid", 1xdim,ydim,uplft,lowrgt)' write(10,*)'UTM grid id returned from he5_gdcreate ', 1gdid_utm write(*,*)'UTM grid id returned from he5_gdcreate ', 1gdid_utm endif write(10,*)' ' write(*,*)' ' c Test Case -- gddefproj c write(10,27) write(10,*)'Testing gddefproj... ' write(10,*)'==================' write(*,*)'Testing gddefproj... ' write(*,*)'==================' zonecode = 10 spherecode = 0 do 120 index1=1,16 projparm(index1)=0 120 continue status = he5_gddefproj(gdid_utm,HE5_GCTP_UTM,zonecode, 1spherecode,projparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Defining UTM projection' write(*,*)'Defining UTM projection' write(*,*)'status=he5_gddefproj(gdid_utm,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'status=he5_gddefproj(gdid_utm,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'Returned value from he5_gddefproj ', status write(*,*)'Returned value from he5_gddefproj ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddefproj(gdid3,HE5_GCTP_UTM,zonecode, 1spherecode,projparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Defining UTM projection' write(*,*)'Defining UTM projection' write(*,*)'status=he5_gddefproj(gdid3,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'status=he5_gddefproj(gdid3,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'Returned value from he5_gddefproj ', status write(*,*)'Returned value from he5_gddefproj ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddefproj(gdid2,HE5_GCTP_UTM,zonecode, 1spherecode,projparm) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Defining UTM' write(10,*)'status = he5_gddefproj(gdid2,HE5_GCTP_UTM, 1zonecode,spherecode,projparm)' write(10,*)'Value returned by he5_gddefproj ', status write(*,*)'Defining UTM' write(*,*)'status = he5_gddefproj(gdid2,HE5_GCTP_UTM, 1zonecode,spherecode,projparm)' write(*,*)'Value returned by he5_gddefproj ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- gddefpreg c write(10,27) write(10,*)'Testing gddefpreg... ' write(10,*)'==================' write(*,*)'Testing gddefpreg... ' write(*,*)'==================' status = he5_gddefpreg(gdid_utm, HE5_HDFE_CORNER) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddefpreg(gdid_utm, 1HE5_HDFE_CORNER)' write(10,*)'status = he5_gddefpreg(gdid_utm, 1HE5_HDFE_CORNER)' write(10,*)'Returned from he5_gddefpreg ', status write(*,*)'Returned from he5_gddefpreg ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddefpreg(gdid3, HE5_HDFE_CORNER) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddefpreg(gdid3, 1HE5_HDFE_CORNER)' write(10,*)'status = he5_gddefpreg(gdid3, 1HE5_HDFE_CORNER)' write(10,*)'Returned from he5_gddefpreg ', status write(*,*)'Returned from he5_gddefpreg ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- gddeforigin c write(10,27) write(10,*)'Testing gddeforigin... ' write(10,*)'==================' write(*,*)'Testing gddeforigin... ' write(*,*)'==================' status = he5_gddeforigin(gdid_utm, HE5_HDFE_GD_UL) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddeforigin(gdid_utm, 1HE5_HDFE_GD_UL)' write(*,*)'Value of status from he5_gddeforigin ', 1status write(10,*)'status = he5_gddeforigin(gdid_utm, 1HE5_HDFE_GD_UL)' write(10,*)'Value of status from he5_gddeforigin ', 1status endif write(10,*)' ' write(*,*)' ' status = he5_gddeforigin(gdid3, HE5_HDFE_GD_UL) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddeforigin(gdid3, 1HE5_HDFE_GD_UL)' write(*,*)'Value of status from he5_gddeforigin ', 1status write(10,*)'status = he5_gddeforigin(gdid3, 1HE5_HDFE_GD_UL)' write(10,*)'Value of status from he5_gddeforigin ', 1status endif write(10,*)' ' write(*,*)' ' c Test Case -- gddefdim c write(10,27) write(10,*)'Testing gddefdim... ' write(10,*)'==================' write(*,*)'Testing gddefdim... ' write(*,*)'==================' status = he5_gddefdim(gdid2, 'TestDim1', 40) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid2, "TestDim1", 40)' write(10,*)'Value returned by he5_gddefdim ', status write(*,*)'status = he5_gddefdim(gdid2, "TestDim1", 40)' write(*,*)'Value returned by he5_gddefdim ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddefdim(gdid2, 'TestDim2', 25) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid2, "TestDim2", 25)' write(10,*)'Value returned by he5_gddefdim ', status write(*,*)'status = he5_gddefdim(gdid2, "TestDim2", 25)' write(*,*)'Value returned by he5_gddefdim ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddefdim(gdid_utm, 'Conduction', 250) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gddefdim(gdid_utm,"Conduction",250)' write(10,*)'Returned value from he5_gddefdim ',status write(*,*)'status=he5_gddefdim(gdid_utm,"Conduction",250)' write(*,*)'Returned value from he5_gddefdim ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddefdim(gdid_utm,'Timedim',4800) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid_utm,"Timedim",4800)' write(10,*)'Status returned by call to he5_gddefdim ',status write(*,*)'status = he5_gddefdim(gdid_utm,"Timedim",4800)' write(*,*)'Status returned by call to he5_gddefdim ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddefdim(gdid_utm,'Hghtdim',80) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid_utm,"Hghtdim",80)' write(10,*)'Status returned by call to he5_gddefdim ',status write(*,*)'status = he5_gddefdim(gdid_utm,"Hghtdim",80)' write(*,*)'Status returned by call to he5_gddefdim ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddefdim(gdid_utm,'Convection',60) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define dimension Convection ' write(10,*)'status = he5_gddefdim(gdid_utm,"Convection",60)' write(10,*)'Status returned by call to he5_gddefdim ',status write(*,*)'Define dimension Convection ' write(*,*)'status = he5_gddefdim(gdid_utm,"Convection",60)' write(*,*)'Status returned by call to he5_gddefdim ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddefdim(gdid3, 'Conduction', 250) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gddefdim(gdid3,"Conduction",250)' write(10,*)'Returned value from he5_gddefdim ',status write(*,*)'status=he5_gddefdim(gdid3,"Conduction",250)' write(*,*)'Returned value from he5_gddefdim ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddefdim(gdid3,'Timedim',4800) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid3,"Timedim",4800)' write(10,*)'Status returned by call to he5_gddefdim ',status write(*,*)'status = he5_gddefdim(gdid3,"Timedim",4800)' write(*,*)'Status returned by call to he5_gddefdim ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddefdim(gdid3,'Hghtdim',80) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid3,"Hghtdim",80)' write(10,*)'Status returned by call to he5_gddefdim ',status write(*,*)'status = he5_gddefdim(gdid3,"Hghtdim",80)' write(*,*)'Status returned by call to he5_gddefdim ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddefdim(gdid3,'Convection',60) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define dimension Convection ' write(10,*)'status = he5_gddefdim(gdid3,"Convection",60)' write(10,*)'Status returned by call to he5_gddefdim ',status write(*,*)'Define dimension Convection ' write(*,*)'status = he5_gddefdim(gdid3,"Convection",60)' write(*,*)'Status returned by call to he5_gddefdim ',status endif write(10,*)' ' write(*,*)' ' c Test Case -- gddetach c write(10,27) write(10,*)'Testing gddetach... ' write(10,*)'==================' write(*,*)'Testing gddetach... ' write(*,*)'==================' status = he5_gddetach(gdid2) if(status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid2)' write(10,*)'Value returned by he5_gddetach ', status write(*,*)'status = he5_gddetach(gdid2)' write(*,*)'Value returned by he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned value from he5_gddetach ', status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Returned value from he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Returned value from he5_gddetach ', status write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Returned value from he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- gdattach c write(10,27) write(10,*)'Testing gdattach... ' write(10,*)'==================' write(*,*)'Testing gdattach... ' write(*,*)'==================' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if(gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'Handle returned from he5_gdattach ', gdid_utm write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Handle returned from he5_gdattach ', gdid_utm endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if(gdid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid3 = he5_gdattach(gdfid3, "UTMGrid3")' write(10,*)'Handle returned from he5_gdattach ', gdid3 write(*,*)'gdid3 = he5_gdattach(gdfid3, "UTMGrid3")' write(*,*)'Handle returned from he5_gdattach ', gdid3 endif write(10,*)' ' write(*,*)' ' gdid2 = he5_gdattach(gdfid2, 'UTMGrid2') if(gdid2 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid2 = he5_gdattach(gdfid2, "UTMGrid2")' write(10,*)'Value returned by he5_gdattach ', gdid2 write(*,*)'gdid2 = he5_gdattach(gdfid2, "UTMGrid2")' write(*,*)'Value returned by he5_gdattach ', gdid2 endif write(10,*)' ' write(*,*)' ' c Test Case -- gddeffld c write(10,27) write(10,*)'Testing gddeffld... ' write(10,*)'==================' write(*,*)'Testing gddeffld... ' write(*,*)'==================' status=he5_gddeffld(gdid2,"tempfield","TestDim2,TestDim1","", 1HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "tempfield"' write(10,*)'status=he5_gddeffld(gdid2,"tempfield", 1"TestDim2,TestDim1","",HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(10,*)'Value returned by he5_gddeffld ', status write(*,*)'Define: "tempfield"' write(*,*)'status=he5_gddeffld(gdid2,"tempfield", 1"TestDim2,TestDim1","",HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(*,*)'Value returned by he5_gddeffld ', status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid_utm,'Time','Timedim',"", 1HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Time' write(10,*)'status=he5_gddeffld(gdid_utm,"Time","Timedim","", 1HE5T_NATIVE_DOUBLE,HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to he5_gddeffld ',status write(*,*)' Define field Time' write(*,*)'status=he5_gddeffld(gdid_utm,"Time","Timedim","", 1HE5T_NATIVE_DOUBLE,HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to he5_gddeffld ',status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid_utm,'Height','Hghtdim',"", 1HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Height' write(10,*)'status=he5_gddeffld(gdid_utm,"Height","Hghtdim","", 1HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to he5_gddeffld ',status write(*,*)' Define field Height' write(*,*)'status=he5_gddeffld(gdid_utm,"Height","Hghtdim","", 1HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to he5_gddeffld ',status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid3,'Time','Timedim',"", 1HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Time' write(10,*)'status=he5_gddeffld(gdid3,"Time","Timedim","", 1HE5T_NATIVE_DOUBLE,HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to he5_gddeffld ',status write(*,*)' Define field Time' write(*,*)'status=he5_gddeffld(gdid3,"Time","Timedim","", 1HE5T_NATIVE_DOUBLE,HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to he5_gddeffld ',status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid3,'Height','Hghtdim',"", 1HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Height' write(10,*)'status=he5_gddeffld(gdid3,"Height","Hghtdim","", 1HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to he5_gddeffld ',status write(*,*)' Define field Height' write(*,*)'status=he5_gddeffld(gdid3,"Height","Hghtdim","", 1HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to he5_gddeffld ',status endif write(10,*)' ' write(*,*)' ' c Test Case -- gddeftle c write(10,27) write(10,*)'Testing gddeftle... ' write(10,*)'==================' write(*,*)'Testing gddeftle... ' write(*,*)'==================' status = he5_gddeftle(gdid_utm,HE5_HDFE_TILE,2,tiledims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define tiling dimensions ' write(10,*)'status = he5_gddeftle(gdid_utm, 1HE5_HDFE_TILE,2,tiledims)' write(10,*)'Status returned by call to he5_gddeftle ',status write(*,*)'Status returned by call to he5_gddeftle ',status write(*,*)'status = he5_gddeftle(gdid_utm, 1HE5_HDFE_TILE,2,tiledims)' write(*,*)'Define tiling dimensions ' endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid_utm,'SideB','YDim,Convection',"", 1HE5T_NATIVE_INT,HE5_HDFE_NOMERGE) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define field that will be tiled ' write(10,*)'status=he5_gddeffld(gdid_utm,"SideB", 1"YDim,Convection","",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to he5_gddeffld ',status write(*,*)'Define field that will be tiled ' write(*,*)'status=he5_gddeffld(gdid_utm,"SideB", 1"YDim,Convection","",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to he5_gddeffld ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned value from he5_gddetach ', status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Returned value from he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if (gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdattach(gdfid,"UTMGrid")' write(10,*)'Returned value from he5_gdattach ', status write(*,*)'status = he5_gddetach(gdfid,"UTMGrid")' write(*,*)'Returned value from he5_gdattach ', status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid_utm,'Grounding','Conduction',"", 1HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Grounding"' write(10,*)'status=he5_gddeffld(gdid_utm,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HDF_NOMERGE)' write(10,*)'Value returned by he5_gddeffld ', status write(*,*)'Define: "Grounding"' write(*,*)'status=he5_gddeffld(gdid_utm,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HDF_NOMERGE)' write(*,*)'Value returned by he5_gddeffld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddeftle(gdid3,HE5_HDFE_TILE,2,tiledims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define tiling dimensions ' write(10,*)'status = he5_gddeftle(gdid3, 1HE5_HDFE_TILE,2,tiledims)' write(10,*)'Status returned by call to he5_gddeftle ',status write(*,*)'Status returned by call to he5_gddeftle ',status write(*,*)'status = he5_gddeftle(gdid3, 1HE5_HDFE_TILE,2,tiledims)' write(*,*)'Define tiling dimensions ' endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid3,'SideB','YDim,Convection',"", 1HE5T_NATIVE_INT,HE5_HDFE_NOMERGE) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define field that will be tiled ' write(10,*)'status=he5_gddeffld(gdid3,"SideB", 1"YDim,Convection","",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to he5_gddeffld ',status write(*,*)'Define field that will be tiled ' write(*,*)'status=he5_gddeffld(gdid3,"SideB", 1"YDim,Convection","",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to he5_gddeffld ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Returned value from he5_gddetach ', status write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Returned value from he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if (gdid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdattach(gdfid3,"UTMGrid3")' write(10,*)'Returned value from he5_gdattach ', status write(*,*)'status = he5_gddetach(gdfid3,"UTMGrid3")' write(*,*)'Returned value from he5_gdattach ', status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid3,'Grounding','Conduction',"", 1HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Grounding"' write(10,*)'status=he5_gddeffld(gdid3,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HDF_NOMERGE)' write(10,*)'Value returned by he5_gddeffld ', status write(*,*)'Define: "Grounding"' write(*,*)'status=he5_gddeffld(gdid3,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HDF_NOMERGE)' write(*,*)'Value returned by he5_gddeffld ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- gddefcomp c write(10,27) write(10,*)'Testing gddefcomp... ' write(10,*)'==================' write(*,*)'Testing gddefcomp... ' write(*,*)'==================' tiledims(1) = 16 tiledims(2) = 15 status = he5_gddeftle(gdid_utm,HE5_HDFE_TILE,2,tiledims) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'Setup Tiling dimensions ' write(*,*)'Required when using compression' endif write(10,*)' ' write(*,*)' ' status = he5_gddefcomp(gdid_utm, 1HE5_HDFE_COMP_DEFLATE, compparm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Setup compression mode' write(10,*)'status = he5_gddefcomp(gdid_utm, 1HE5_HDFE_COMP_DEFLATE,compparm)' write(10,*)'Status returned by call to he5_gddefcomp ',status write(*,*)'Setup compression mode' write(*,*)'status = he5_gddefcomp(gdid_utm, 1HE5_HDFE_COMP_DEFLATE, compparm)' write(*,*)'Status returned by call to he5_gddefcomp ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddeffld(gdid_utm,"Voltage","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Voltage"' write(10,*)'status = he5_gddeffld(gdid_utm,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from he5_gddeffld ', status write(*,*)'Define: "Voltage"' write(*,*)'status = he5_gddeffld(gdid_utm,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from he5_gddeffld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddeftle(gdid3,HE5_HDFE_TILE,2,tiledims) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'Setup Tiling dimensions ' write(*,*)'Required when using compression' endif write(10,*)' ' write(*,*)' ' status = he5_gddefcomp(gdid3, 1HE5_HDFE_COMP_SHUF_SZIP_K13orEC, compparm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Setup compression mode' write(10,*)'status = he5_gddefcomp(gdid3, 1HE5_HDFE_COMP_SHUF_SZIP_K13orEC,compparm)' write(10,*)'Status returned by call to he5_gddefcomp ',status write(*,*)'Setup compression mode' write(*,*)'status = he5_gddefcomp(gdid3, 1HE5_HDFE_COMP_SHUF_SZIP_K13orEC,compparm)' write(*,*)'Status returned by call to he5_gddefcomp ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddeffld(gdid3,"Voltage","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Voltage"' write(10,*)'status = he5_gddeffld(gdid3,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from he5_gddeffld ', status write(*,*)'Define: "Voltage"' write(*,*)'status = he5_gddeffld(gdid3,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from he5_gddeffld ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- gdsetfill c write(10,27) write(10,*)'Testing gdsetfill... ' write(10,*)'==================' write(*,*)'Testing gdsetfill... ' write(*,*)'==================' status = he5_gdsetfill(gdid_utm, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Testing gdsetfill' write(10,*)'status = he5_gdsetfill(gdid_utm, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(10,*)'Returned from he5_gdsetfill ', status write(*,*)'Testing gdsetfill' write(*,*)'status = he5_gdsetfill(gdid_utm, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(*,*)'Returned from he5_gdsetfill ', status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid_utm,"Drift","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Drift"' write(10,*)'status=he5_gddeffld(gdid_utm,"Drift", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from he5_gddeffld ', status write(*,*)'Define: "Drift"' write(*,*)'status=he5_gddeffld(gdid_utm,"Drift", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from he5_gddeffld ', status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid_utm,"Impedance","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Impedance"' write(10,*)'status=he5_gddeffld(gdid_utm,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from he5_gddeffld ', status write(*,*)'Define: "Impedance"' write(*,*)'status=he5_gddeffld(gdid_utm,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from he5_gddeffld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(*,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned value from he5_gddetach ', status write(*,*)'Returned value from he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if(gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'Handle returned from he5_gdattach ', gdid_utm write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Handle returned from he5_gdattach ', gdid_utm endif write(10,*)' ' write(*,*)' ' status = he5_gdsetfill(gdid3, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Testing gdsetfill' write(10,*)'status = he5_gdsetfill(gdid3, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(10,*)'Returned from he5_gdsetfill ', status write(*,*)'Testing gdsetfill' write(*,*)'status = he5_gdsetfill(gdid3, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(*,*)'Returned from he5_gdsetfill ', status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid3,"Drift","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Drift"' write(10,*)'status=he5_gddeffld(gdid3,"Drift", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from he5_gddeffld ', status write(*,*)'Define: "Drift"' write(*,*)'status=he5_gddeffld(gdid3,"Drift", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from he5_gddeffld ', status endif write(10,*)' ' write(*,*)' ' status=he5_gddeffld(gdid3,"Impedance","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Impedance"' write(10,*)'status=he5_gddeffld(gdid3,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from he5_gddeffld ', status write(*,*)'Define: "Impedance"' write(*,*)'status=he5_gddeffld(gdid3,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from he5_gddeffld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(*,*)'status = he5_gddetach(gdid3)' write(10,*)'Returned value from he5_gddetach ', status write(*,*)'Returned value from he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if(gdid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid3 = he5_gdattach(gdfid, "UTMGrid3")' write(10,*)'Handle returned from he5_gdattach ', gdid3 write(*,*)'gdid3 = he5_gdattach(gdfid, "UTMGrid3")' write(*,*)'Handle returned from he5_gdattach ', gdid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- gdwrfld c write(10,27) write(10,*)'Testing gdwrfld... ' write(10,*)'==================' write(*,*)'Testing gdwrfld... ' write(*,*)'==================' start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid_utm, "Voltage", start, stride, 1edge, utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Voltage ' write(10,*)'status=he5_gdwrfld(gdid_utm,"Voltage",start, 1stride,edge,utmray)' write(10,*)'Status returned by he5_gdwrfield ', status write(*,*)'Write to field Voltage ' write(*,*)'status=he5_gdwrfld(gdid_utm,"Voltage",start, 1stride,edge,utmray)' write(*,*)'Status returned by he5_gdwrfield ', status endif write(10,*)' ' write(*,*)' ' start(1) = 10 start(2) = 10 edge(1) = 10 edge(2) = 10 status = he5_gdwrfld(gdid_utm, 'Drift', start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Drift ' write(10,*)'status = he5_gdwrfld(gdid_utm,"Drift",start, 1stride,edge,utmray)' write(10,*)'Status returned from he5_gdwrfld ', status write(*,*)'Write to field Drift ' write(*,*)'status = he5_gdwrfld(gdid_utm,"Drift",start, 1stride,edge,utmray)' write(*,*)'Status returned from he5_gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start(1) = 0 start(2) = 0 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid_utm, 'Impedance', start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Impedance ' write(10,*)'status=he5_gdwrfld(gdid_utm,"Impedance",start, 1stride,edge,utmray)' write(10,*)'Returned from he5_gdwrfld ', status write(*,*)'Write to field Impedance ' write(*,*)'status=he5_gdwrfld(gdid_utm,"Impedance",start, 1stride,edge,utmray)' write(*,*)'Returned from he5_gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=4800 status=he5_gdwrfld(gdid_utm,'Time',start1d,stride1d, 1edge1d,utmtmeray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Time ' write(10,*)'status=he5_gdwrfld(gdid_utm,"Time",start1d, 1stride1d,edge1d,utmtmeray)' write(10,*)'Status returned by call to he5_gdwrfld ',status write(*,*)'Write to field Time ' write(*,*)'status=he5_gdwrfld(gdid_utm,"Time",start1d, 1stride1d,edge1d,utmtmeray)' write(*,*)'Status returned by call to he5_gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=80 status=he5_gdwrfld(gdid_utm,'Height',start1d,stride1d, 1edge1d,utmhght) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Height ' write(10,*)'status=he5_gdwrfld(gdid_utm,"Height",start1d, 1stride1d,edge1d,utmhght)' write(10,*)'Status returned by call to he5_gdwrfld ',status write(*,*)'Write to field Height ' write(*,*)'status=he5_gdwrfld(gdid_utm,"Height",start1d, 1stride1d,edge1d,utmhght)' write(*,*)'Status returned by call to he5_gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=250 status=he5_gdwrfld(gdid_utm,'Grounding',start1d,stride1d, 1edge1d,ray3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Grounding ' write(10,*)'status=he5_gdwrfld(gdid_utm,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(10,*)'Value returned by he5_gdwrfld ', status write(*,*)'Write to field Grounding ' write(*,*)'status=he5_gdwrfld(gdid_utm,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(*,*)'Value returned by he5_gdwrfld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Value of status returned by he5_gddetach ', 1status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Value of status returned by he5_gddetach ', 1status endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'Grid id returned by he5_gdattach ',gdid_utm write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Grid id returned by he5_gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid3, "Voltage", start, stride, 1edge, utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Voltage ' write(10,*)'status=he5_gdwrfld(gdid3,"Voltage",start, 1stride,edge,utmray)' write(10,*)'Status returned by he5_gdwrfield ', status write(*,*)'Write to field Voltage ' write(*,*)'status=he5_gdwrfld(gdid3,"Voltage",start, 1stride,edge,utmray)' write(*,*)'Status returned by he5_gdwrfield ', status endif write(10,*)' ' write(*,*)' ' start(1) = 10 start(2) = 10 edge(1) = 10 edge(2) = 10 status = he5_gdwrfld(gdid3, 'Drift', start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Drift ' write(10,*)'status = he5_gdwrfld(gdid3,"Drift",start, 1stride,edge,utmray)' write(10,*)'Status returned from he5_gdwrfld ', status write(*,*)'Write to field Drift ' write(*,*)'status = he5_gdwrfld(gdid3,"Drift",start, 1stride,edge,utmray)' write(*,*)'Status returned from he5_gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start(1) = 0 start(2) = 0 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid3, 'Impedance', start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Impedance ' write(10,*)'status=he5_gdwrfld(gdid3,"Impedance",start, 1stride,edge,utmray)' write(10,*)'Returned from he5_gdwrfld ', status write(*,*)'Write to field Impedance ' write(*,*)'status=he5_gdwrfld(gdid3,"Impedance",start, 1stride,edge,utmray)' write(*,*)'Returned from he5_gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=4800 status=he5_gdwrfld(gdid3,'Time',start1d,stride1d, 1edge1d,utmtmeray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Time ' write(10,*)'status=he5_gdwrfld(gdid3,"Time",start1d, 1stride1d,edge1d,utmtmeray)' write(10,*)'Status returned by call to he5_gdwrfld ',status write(*,*)'Write to field Time ' write(*,*)'status=he5_gdwrfld(gdid3,"Time",start1d, 1stride1d,edge1d,utmtmeray)' write(*,*)'Status returned by call to he5_gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=80 status=he5_gdwrfld(gdid3,'Height',start1d,stride1d, 1edge1d,utmhght) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Height ' write(10,*)'status=he5_gdwrfld(gdid3,"Height",start1d, 1stride1d,edge1d,utmhght)' write(10,*)'Status returned by call to he5_gdwrfld ',status write(*,*)'Write to field Height ' write(*,*)'status=he5_gdwrfld(gdid3,"Height",start1d, 1stride1d,edge1d,utmhght)' write(*,*)'Status returned by call to he5_gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=250 status=he5_gdwrfld(gdid3,'Grounding',start1d,stride1d, 1edge1d,ray3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Grounding ' write(10,*)'status=he5_gdwrfld(gdid3,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(10,*)'Value returned by he5_gdwrfld ', status write(*,*)'Write to field Grounding ' write(*,*)'status=he5_gdwrfld(gdid3,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(*,*)'Value returned by he5_gdwrfld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Value of status returned by he5_gddetach ', 1status write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Value of status returned by he5_gddetach ', 1status endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid3 = he5_gdattach(gdfid, "UTMGrid3")' write(10,*)'Grid id returned by he5_gdattach ',gdid3 write(*,*)'gdid3 = he5_gdattach(gdfid, "UTMGrid3")' write(*,*)'Grid id returned by he5_gdattach ',gdid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- gdwrattr c write(10,27) write(10,*)'Testing gdwrattr... Global attribute ' write(10,*)'==================================== ' write(*,*)'Testing gdwrattr... Global attribute ' write(*,*)'==================================== ' status = he5_gdwrattr(gdid_utm, 'Resistance', 1HE5T_NATIVE_INT, 4, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdwrattr(gdid_utm,"Resistance", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from he5_gdwrattr ', status write(*,*)'status=he5_gdwrattr(gdid_utm,"Resistance", 1HE5T_NATIVE_FLOAT, 4, attr)' write(*,*)'Returned from he5_gdwrattr ', status endif write(10,*)' ' write(*,*)' ' status = he5_gdwrattr(gdid3, 'Resistance', 1HE5T_NATIVE_INT, 4, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdwrattr(gdid3,"Resistance", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from he5_gdwrattr ', status write(*,*)'status=he5_gdwrattr(gdid3,"Resistance", 1HE5T_NATIVE_FLOAT, 4, attr)' write(*,*)'Returned from he5_gdwrattr ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- gdwrgattr c write(10,27) write(10,*)'Testing gdwrgattr... Group attribute ' write(10,*)'==================================== ' write(*,*)'Testing gdwrgattr... Group attribute ' write(*,*)'==================================== ' attr(1) = 22 attr(2) = 44 attr(3) = 66 attr(4) = 88 status = he5_gdwrgattr(gdid_utm, 'group', 1HE5T_NATIVE_INT, 4, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdwrgattr(gdid_utm,"group", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from he5_gdwrgattr ', status write(*,*)'status=he5_gdwrgattr(gdid_utm,"group", 1HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from he5_gdwrgattr ', status endif write(10,*)' ' write(*,*)' ' attr(1) = 22 attr(2) = 44 attr(3) = 66 attr(4) = 88 status = he5_gdwrgattr(gdid3, 'group', 1HE5T_NATIVE_INT, 4, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdwrgattr(gdid3,"group", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from he5_gdwrgattr ', status write(*,*)'status=he5_gdwrgattr(gdid3,"group", 1HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from he5_gdwrgattr ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- gdwrlattr c write(10,27) write(10,*)'Testing gdwrlattr... Local attribute ' write(10,*)'==================================== ' write(*,*)'Testing gdwrlattr... Local attribute ' write(*,*)'==================================== ' attr(1) = 12 attr(2) = 34 attr(3) = 56 attr(4) = 78 status = he5_gdwrlattr(gdid_utm,"Grounding", "local", 1HE5T_NATIVE_INT, 4, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdwrlattr(gdid_utm,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from he5_gdwrlattr ', status write(*,*)'status=he5_gdwrlattr(gdid_utm,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from he5_gdwrlattr ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned from he5_gddetach ', status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Returned from he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gdwrlattr(gdid3,"Grounding", "local", 1HE5T_NATIVE_INT, 4, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdwrlattr(gdid3,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from he5_gdwrlattr ', status write(*,*)'status=he5_gdwrlattr(gdid3,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from he5_gdwrlattr ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Returned from he5_gddetach ', status write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Returned from he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid2) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid2)' write(10,*)'Value returned by he5_gddetach ', status write(*,*)'status = he5_gddetach(gdid2)' write(*,*)'Value returned by he5_gddetach ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- gdclose c write(10,27) write(10,*)'Testing gdclose... ' write(10,*)'==================' write(*,*)'Testing gdclose... ' write(*,*)'==================' status = he5_gdclose(gdfid2) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdclose(gdfid2)' write(10,*)'Value returned by he5_gdclose ', status write(*,*)'status = he5_gdclose(gdfid2)' write(*,*)'Value returned by he5_gdclose ', status endif write(10,*)' ' write(*,*)' ' status = he5_gdclose(gdfid3) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdclose(gdfid3)' write(10,*)'Value returned by he5_gdclose ', status write(*,*)'status = he5_gdclose(gdfid3)' write(*,*)'Value returned by he5_gdclose ', status endif write(10,*)' ' write(*,*)' ' status = he5_gdclose(gdfid) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdclose(gdfid)' write(10,*)'Returned from he5_gdclose ', status write(*,*)'status = he5_gdclose(gdfid)' write(*,*)'Returned from he5_gdclose ', status endif write(10,*)' ' write(*,*)' ' gdfid = he5_gdopen('grid.he5',HE5F_ACC_RDWR) if (gdfid .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR)' write(10,*)'gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR)' write(*,*)'Grid file id returned by he5_gdopen ',gdfid write(10,*)'Grid file id returned by he5_gdopen ',gdfid endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if (gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Grid id returned by he5_gdattach ',gdid_utm write(10,*)'Grid id returned by he5_gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' gdfid3 = he5_gdopen('grid3.he5',HE5F_ACC_RDWR) if (gdfid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdfid3 = he5_gdopen("grid3.he5",HE5F_ACC_RDWR)' write(10,*)'gdfid3 = he5_gdopen("grid3.he5",HE5F_ACC_RDWR)' write(*,*)'Grid file id returned by he5_gdopen ',gdfid write(10,*)'Grid file id returned by he5_gdopen ',gdfid endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if (gdid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdid3 = he5_gdattach(gdfid3, "UTMGrid3")' write(10,*)'gdid3 = he5_gdattach(gdfid, "UTMGrid3")' write(*,*)'Grid id returned by he5_gdattach ',gdid3 write(10,*)'Grid id returned by he5_gdattach ',gdid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- gdinqgrid c write(10,27) write(10,*)'Testing gdinqgrid... ' write(10,*)'==================' write(*,*)'Testing gdinqgrid... ' write(*,*)'==================' lstatus = he5_gdinqgrid('grid.he5',grdnames,strbufsize) if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus=he5_gdinqgrid("grid.he5", 1grdnames,strbufsize)' write(*,*)'Names of grids ',grdnames write(*,*)'Number of grids ',lstatus write(*,*)'Size of names of grids ',strbufsize write(10,*)'lstatus=he5_gdinqgrid("grid.he5", 1grdnames,strbufsize)' write(10,*)'Names of grids ',grdnames write(10,*)'Number of grids ',lstatus write(10,*)'Size of names of grids ',strbufsize endif write(10,*)' ' write(*,*)' ' lstatus = he5_gdinqgrid('grid3.he5',grdnames,strbufsize) if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus=he5_gdinqgrid("grid3.he5", 1grdnames,strbufsize)' write(*,*)'Names of grids ',grdnames write(*,*)'Number of grids ',lstatus write(*,*)'Size of names of grids ',strbufsize write(10,*)'lstatus=he5_gdinqgrid("grid3.he5", 1grdnames,strbufsize)' write(10,*)'Names of grids ',grdnames write(10,*)'Number of grids ',lstatus write(10,*)'Size of names of grids ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- gdorginfo c write(10,27) write(10,*)'Testing gdorginfo... ' write(10,*)'==================' write(*,*)'Testing gdorginfo... ' write(*,*)'==================' status = he5_gdorginfo(gdid_utm, orgcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdorginfo(gdid_utm, orgcode)' write(10,*)'lstatus = he5_gdorginfo(gdid_utm, orgcode)' write(*,*)'Value returned by he5_gdorginfo ',status write(10,*)'Value returned by he5_gdorginfo ',status write(*,*)'Origin code value ',orgcode write(10,*)'Origin code value ',orgcode endif write(10,*)' ' write(*,*)' ' status = he5_gdorginfo(gdid3, orgcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdorginfo(gdid3, orgcode)' write(10,*)'lstatus = he5_gdorginfo(gdid3, orgcode)' write(*,*)'Value returned by he5_gdorginfo ',status write(10,*)'Value returned by he5_gdorginfo ',status write(*,*)'Origin code value ',orgcode write(10,*)'Origin code value ',orgcode endif write(10,*)' ' write(*,*)' ' c Test Case -- gdpreginfo c write(10,27) write(10,*)'Testing gdpreginfo... ' write(10,*)'==================' write(*,*)'Testing gdpreginfo... ' write(*,*)'==================' status = he5_gdpreginfo(gdid_utm, pixregcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdpreginfo(gdid_utm, pixregcode)' write(10,*)'status = he5_gdpreginfo(gdid_utm, pixregcode)' write(*,*)'Value returned by he5_gdpreginfo ',status write(10,*)'Value returned by he5_gdpreginfo ',status write(*,*)'Pixel reg code ',pixregcode write(10,*)'Pixel reg code ',pixregcode endif write(10,*)' ' write(*,*)' ' status = he5_gdpreginfo(gdid3, pixregcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdpreginfo(gdid3, pixregcode)' write(10,*)'status = he5_gdpreginfo(gdid3, pixregcode)' write(*,*)'Value returned by he5_gdpreginfo ',status write(10,*)'Value returned by he5_gdpreginfo ',status write(*,*)'Pixel reg code ',pixregcode write(10,*)'Pixel reg code ',pixregcode endif write(10,*)' ' write(*,*)' ' c Test Case -- gdinqdims c write(10,27) write(10,*)'Testing gdinqdims... ' write(10,*)'==================' write(*,*)'Testing gdinqdims... ' write(*,*)'==================' status = he5_gdinqdims(gdid_utm, dimname, dims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdims(gdid_utm, dimname, dims)' write(*,*)'Number of dimensions ',status write(*,*)'Dimensions in grid UTM ',dimname write(*,*)'Size of dimensions ' write(10,*)'status = he5_gdinqdims(gdid_utm, dimname, dims)' write(10,*)'Number of dimensions ',status write(10,*)'Dimensions in grid UTM ',dimname write(10,*)'Size of dimensions ' do 130 i=1,status write(*,*)' ',dims(i) write(10,*)' ',dims(i) 130 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdinqdims(gdid3, dimname, dims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdims(gdid3, dimname, dims)' write(*,*)'Number of dimensions ',status write(*,*)'Dimensions in grid UTM ',dimname write(*,*)'Size of dimensions ' write(10,*)'status = he5_gdinqdims(gdid3, dimname, dims)' write(10,*)'Number of dimensions ',status write(10,*)'Dimensions in grid UTM ',dimname write(10,*)'Size of dimensions ' do 131 i=1,status write(*,*)' ',dims(i) write(10,*)' ',dims(i) 131 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- gddiminfo c write(10,27) write(10,*)'Testing gddiminfo... ' write(10,*)'==================' write(*,*)'Testing gddiminfo... ' write(*,*)'==================' lstatus = he5_gddiminfo(gdid_utm, 'Conduction') if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gddiminfo(gdid_utm, "Conduction")' write(*,*)'Size of dimension Conduction ',lstatus write(10,*)'lstatus = he5_gddiminfo(gdid_utm, "Conduction")' write(10,*)'Size of dimension Conduction ',lstatus endif write(10,*)' ' write(*,*)' ' lstatus = he5_gddiminfo(gdid3, 'Conduction') if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gddiminfo(gdid3, "Conduction")' write(*,*)'Size of dimension Conduction ',lstatus write(10,*)'lstatus = he5_gddiminfo(gdid3, "Conduction")' write(10,*)'Size of dimension Conduction ',lstatus endif write(10,*)' ' write(*,*)' ' c Test Case -- gdgridinfo c write(10,27) write(10,*)'Testing gdgridinfo... ' write(10,*)'==================' write(*,*)'Testing gdgridinfo... ' write(*,*)'==================' status=he5_gdgridinfo(gdid_utm,xdimsize,ydimsize, 1upleftpt,lowrtpt) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdgridinfo(gdid_utm,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(*,*)'Status returned by he5_gdgridinfo ',status write(*,11)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(*,12)'Upper left pt ',upleftpt(1),' ',upleftpt(2) write(*,12)'Lower right pt ',lowrtpt(1),' ',lowrtpt(2) write(10,*)'status=he5_gdgridinfo(gdid_utm,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(10,*)'Value returned by he5_gdgridinfo ',status write(10,*)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(10,*)'Upper left pt ',upleftpt(1),upleftpt(2) write(10,*)'Lower right pt ',lowrtpt(1),lowrtpt(2) endif write(10,*)' ' write(*,*)' ' 11 format(a,i2,a,i2) 12 format(a,f14.5,a,f14.5) status=he5_gdgridinfo(gdid3,xdimsize,ydimsize, 1upleftpt,lowrtpt) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdgridinfo(gdid3,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(*,*)'Status returned by he5_gdgridinfo ',status write(*,11)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(*,12)'Upper left pt ',upleftpt(1),' ',upleftpt(2) write(*,12)'Lower right pt ',lowrtpt(1),' ',lowrtpt(2) write(10,*)'status=he5_gdgridinfo(gdid3,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(10,*)'Value returned by he5_gdgridinfo ',status write(10,*)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(10,*)'Upper left pt ',upleftpt(1),upleftpt(2) write(10,*)'Lower right pt ',lowrtpt(1),lowrtpt(2) endif write(10,*)' ' write(*,*)' ' c Test Case -- gdprojinfo c write(10,27) write(10,*)'Testing gdprojinfo... ' write(10,*)'==================' write(*,*)'Testing gdprojinfo... ' write(*,*)'==================' status = he5_gdprojinfo(gdid_utm,pcode,zcode,scode,pparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdprojinfo(gdid_utm,pcode,zcode, 1scode,pparm)' write(*,*)'Status returned by he5_gdprojinfo ',status write(*,*)'Projection code ',pcode, ' Zone code ',zcode write(*,*)'Sphere code ',scode write(10,*)'status=he5_gdprojinfo(gdid_utm,pcode,zcode, 1scode,pparm)' write(10,*)'Value returned by he5_gdprojinfo ',status write(10,*)'Projection code ',pcode, ' Zone code ',zcode write(10,*)'Sphere code ',scode do 140 i=1,16 write(*,55)' ',pparm(i) write(10,55)' ',pparm(i) 140 continue endif 55 format(a,f5.2) write(10,*)' ' write(*,*)' ' status = he5_gdprojinfo(gdid3,pcode,zcode,scode,pparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdprojinfo(gdid3,pcode,zcode, 1scode,pparm)' write(*,*)'Status returned by he5_gdprojinfo ',status write(*,*)'Projection code ',pcode, ' Zone code ',zcode write(*,*)'Sphere code ',scode write(10,*)'status=he5_gdprojinfo(gdid3,pcode,zcode, 1scode,pparm)' write(10,*)'Value returned by he5_gdprojinfo ',status write(10,*)'Projection code ',pcode, ' Zone code ',zcode write(10,*)'Sphere code ',scode do 141 i=1,16 write(*,55)' ',pparm(i) write(10,55)' ',pparm(i) 141 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- gdcompinfo c write(10,27) write(10,*)'Testing gdcompinfo... ' write(10,*)'==================' write(*,*)'Testing gdcompinfo... ' write(*,*)'==================' status = he5_gdcompinfo(gdid_utm,'Voltage', 1compcodestring,compparm) if (status .lt. zero) then else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdcompinfo(gdid_utm,"Voltage", 1compcode,compparm)' write(10,*)'Compression info for field Voltage' write(10,*)'Comp code ',compcodestring write(10,*)'Compression parameters ',compparm write(*,*)'status=he5_gdcompinfo(gdid_utm,"Voltage", 1compcode,compparm)' write(*,*)'Compression info for field Voltage' write(*,*)'Comp code ',compcodestring write(*,*)'Compression parameters ',compparm endif status = he5_gdcompinfo(gdid3,'Voltage', 1compcodestring,compparm) if (status .lt. zero) then else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdcompinfo(gdid3,"Voltage", 1compcode,compparm)' write(10,*)'Compression info for field Voltage' write(10,*)'Comp code ',compcodestring write(10,*)'Compression parameters ',compparm write(*,*)'status=he5_gdcompinfo(gdid3,"Voltage", 1compcode,compparm)' write(*,*)'Compression info for field Voltage' write(*,*)'Comp code ',compcodestring write(*,*)'Compression parameters ',compparm endif c Test Case -- gdinqflds c write(10,27) write(10,*)'Testing gdinqflds... ' write(10,*)'==================' write(*,*)'Testing gdinqflds... ' write(*,*)'==================' nflds = he5_gdinqflds(gdid_utm,fldlist,rnk,numtype) if (nflds .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'nflds = he5_gdinqflds(gdid_utm,fldlist, 1rnk,numtype)' write(*,*)'Number of fields ',nflds write(10,*)'nflds = he5_gdinqflds(gdid_utm,fldlist, 1rnk,numtype)' write(10,*)'Number of fields ',nflds if (nflds .ne. 0) then write(*,*)'Fields ',fldlist write(10,*)'Fields ',fldlist do 150 i=1,nflds write(*,*)'Rank and type ',rnk(i), ' ', numtype(i) write(10,*)'Rank and type ',rnk(i), ' ', numtype(i) 150 continue endif endif write(10,*)' ' write(*,*)' ' nflds = he5_gdinqflds(gdid3,fldlist,rnk,numtype) if (nflds .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'nflds = he5_gdinqflds(gdid3,fldlist, 1rnk,numtype)' write(*,*)'Number of fields ',nflds write(10,*)'nflds = he5_gdinqflds(gdid3,fldlist, 1rnk,numtype)' write(10,*)'Number of fields ',nflds if (nflds .ne. 0) then write(*,*)'Fields ',fldlist write(10,*)'Fields ',fldlist do 151 i=1,nflds write(*,*)'Rank and type ',rnk(i), ' ', numtype(i) write(10,*)'Rank and type ',rnk(i), ' ', numtype(i) 151 continue endif endif write(10,*)' ' write(*,*)' ' c Test Case -- gdfldinfo c write(10,27) write(10,*)'Testing gdfldinfo... ' write(10,*)'==================' write(*,*)'Testing gdfldinfo... ' write(*,*)'==================' status=he5_gdfldinfo(gdid_utm,'Drift',rnk,dims,numtype, 1dimname,maxdimname) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdfldinfo(gdid_utm,"Drift",rnk,dims, 1numtype, dimname, maxdimname)' write(*,*)'Value returned by he5_gdfldinfo for field 1Drift ',status write(*,*)'Drift rank ',rnk(1) write(*,*)'Dimensions ',dims(1),' ',dims(2) write(*,*)'Number type of field ',numtype(1) write(*,*)'Dimension names ',dimname write(10,*)'status=he5_gdfldinfo(gdid_utm,"Drift",rnk,dims, 1numtype, dimname, maxdimname)' write(10,*)'Value returned by he5_gdfldinfo for field 1Drift ',status write(10,*)'Drift rank ',rnk(1) endif write(10,*)' ' write(*,*)' ' status=he5_gdfldinfo(gdid3,'Drift',rnk,dims,numtype, 1dimname,maxdimname) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdfldinfo(gdid3,"Drift",rnk,dims, 1numtype, dimname, maxdimname)' write(*,*)'Value returned by he5_gdfldinfo for field 1Drift ',status write(*,*)'Drift rank ',rnk(1) write(*,*)'Dimensions ',dims(1),' ',dims(2) write(*,*)'Number type of field ',numtype(1) write(*,*)'Dimension names ',dimname write(10,*)'status=he5_gdfldinfo(gdid3,"Drift",rnk,dims, 1numtype, dimname, maxdimname)' write(10,*)'Value returned by he5_gdfldinfo for field 1Drift ',status write(10,*)'Drift rank ',rnk(1) endif write(10,*)' ' write(*,*)' ' c Test Case -- gdrdfld c write(10,27) write(10,*)'Testing gdrdfld... ' write(10,*)'==================' write(*,*)'Testing gdrdfld... ' write(*,*)'==================' start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 edge(1) = 80 edge(2) = 60 status = he5_gdrdfld(gdid_utm,'Drift',start,stride,edge, 1tempray) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdfld(gdid_utm,"Drift",start, 1stride,edge,tempray)' write(*,*)'Value returned by he5_gdrdfld ',status write(10,*)'status = he5_gdrdfld(gdid_utm,"Drift",start, 1stride,edge,tempray)' write(10,*)'Value returned by he5_gdrdfld ',status do 65 ii=1,6 do 66 i=1,5 write(10,*)'Field value at ',ii,' ',i,' ',tempray(ii,i) write(*,*)'Field value at ',ii,' ',i,' ',tempray(ii,i) 66 continue 65 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdrdfld(gdid3,'Drift',start,stride,edge, 1tempray) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdfld(gdid3,"Drift",start, 1stride,edge,tempray)' write(*,*)'Value returned by he5_gdrdfld ',status write(10,*)'status = he5_gdrdfld(gdid3,"Drift",start, 1stride,edge,tempray)' write(10,*)'Value returned by he5_gdrdfld ',status do 75 ii=1,6 do 76 i=1,5 write(10,*)'Field value at ',ii,' ',i,' ',tempray(ii,i) write(*,*)'Field value at ',ii,' ',i,' ',tempray(ii,i) 76 continue 75 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- gdnentries c write(10,27) write(10,*)'Testing gdnentries... ' write(10,*)'==================' write(*,*)'Testing gdnentries... ' write(*,*)'==================' n = he5_gdnentries(gdid_utm, HE5_HDFE_NENTDIM, strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid_utm, 1HE5_HDFE_NENTDIM, strbufsize)' write(*,*)'Number of dimensions ', n write(*,*)'Size of Dimension string ',strbufsize write(10,*)'n = he5_gdnentries(gdid_utm, 1HE5_HDFE_NENTDIM, strbufsize)' write(10,*)'Number of dimensions ', n write(10,*)'Size of Dimension string ',strbufsize endif n = he5_gdnentries(gdid_utm,HE5_HDFE_NENTDFLD,strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid_utm,HE5_HDFE_NENTDFLD, 1strbufsize)' write(*,*)'Number of data fields ',n write(*,*)'Size of Field string ',strbufsize write(10,*)'n = he5_gdnentries(gdid_utm,HE5_HDFE_NENTDFLD, 1strbufsize)' write(10,*)'Number of data fields ',n write(10,*)'Size of Field string ',strbufsize endif write(10,*)' ' write(*,*)' ' n = he5_gdnentries(gdid3, HE5_HDFE_NENTDIM, strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid3, 1HE5_HDFE_NENTDIM, strbufsize)' write(*,*)'Number of dimensions ', n write(*,*)'Size of Dimension string ',strbufsize write(10,*)'n = he5_gdnentries(gdid3, 1HE5_HDFE_NENTDIM, strbufsize)' write(10,*)'Number of dimensions ', n write(10,*)'Size of Dimension string ',strbufsize endif n = he5_gdnentries(gdid3,HE5_HDFE_NENTDFLD,strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid3,HE5_HDFE_NENTDFLD, 1strbufsize)' write(*,*)'Number of data fields ',n write(*,*)'Size of Field string ',strbufsize write(10,*)'n = he5_gdnentries(gdid3,HE5_HDFE_NENTDFLD, 1strbufsize)' write(10,*)'Number of data fields ',n write(10,*)'Size of Field string ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- gdattrinfo c write(10,27) write(10,*)'Testing gdattrinfo, Global attribute' write(10,*)'====================================' write(*,*)'Testing gdattrinfo, Global attribute' write(*,*)'====================================' status = he5_gdattrinfo(gdid_utm,'Resistance',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdattrinfo(gdid_utm,"Resistance", 1ntype,count)' write(*,*)'Value returned by he5_gdattrinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status=he5_gdattrinfo(gdid_utm,"Resistance", 1ntype,count)' write(10,*)'Value returned by he5_gdattrinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' status = he5_gdattrinfo(gdid3,'Resistance',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdattrinfo(gdid3,"Resistance", 1ntype,count)' write(*,*)'Value returned by he5_gdattrinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status=he5_gdattrinfo(gdid3,"Resistance", 1ntype,count)' write(10,*)'Value returned by he5_gdattrinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' c Test Case -- gdgatinfo c write(10,27) write(10,*)'Testing gdgatinfo, Group attribute' write(10,*)'====================================' write(*,*)'Testing gdgatinfo, Group attribute' write(*,*)'====================================' status = he5_gdgatinfo(gdid_utm,'group',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgatinfo(gdid_utm,"group", 1ntype,count)' write(*,*)'Value returned by he5_gdgatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdgatinfo(gdid_utm,"group", 1ntype,count)' write(10,*)'Value returned by he5_gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' status = he5_gdgatinfo(gdid3,'group',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgatinfo(gdid3,"group", 1ntype,count)' write(*,*)'Value returned by he5_gdgatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdgatinfo(gdid3,"group", 1ntype,count)' write(10,*)'Value returned by he5_gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' c Test Case -- gdlatinfo c write(10,27) write(10,*)'Testing gdlatinfo, Local attribute' write(10,*)'====================================' write(*,*)'Testing gdlatinfo, Local attribute' write(*,*)'====================================' status = he5_gdlatinfo(gdid_utm,"Grounding","local",ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdlatinfo(gdid_utm,"Grounding", 1"local",ntype,count)' write(*,*)'Value returned by he5_gdlatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdlatinfo(gdid_utm,"Grounding", 1"local",ntype,count)' write(10,*)'Value returned by he5_gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' status = he5_gdlatinfo(gdid3,"Grounding","local",ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdlatinfo(gdid3,"Grounding", 1"local",ntype,count)' write(*,*)'Value returned by he5_gdlatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdlatinfo(gdid3,"Grounding", 1"local",ntype,count)' write(10,*)'Value returned by he5_gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' c Test Case -- gdrdattr c write(10,27) write(10,*)'Testing gdrdattr, Global attribute' write(10,*)'==================================' write(*,*)'Testing gdrdattr, Global attribute' write(*,*)'==================================' status = he5_gdrdattr(gdid_utm,'Resistance',iattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdattr(gdid_utm,"Resistance",iattr)' write(*,*)'Value returned by he5_gdrdattr ',status write(10,*)'status = he5_gdrdattr(gdid_utm,"Resistance",iattr)' write(10,*)'Value returned by he5_gdrdattr ',status do 67 i=1,count write(10,*)'Attribute value ',iattr(i) write(*,*)'Attribute value ',iattr(i) 67 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdrdattr(gdid3,'Resistance',iattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdattr(gdid3,"Resistance",iattr)' write(*,*)'Value returned by he5_gdrdattr ',status write(10,*)'status = he5_gdrdattr(gdid3,"Resistance",iattr)' write(10,*)'Value returned by he5_gdrdattr ',status do 77 i=1,count write(10,*)'Attribute value ',iattr(i) write(*,*)'Attribute value ',iattr(i) 77 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- gdrdgattr c write(10,27) write(10,*)'Testing gdrdgattr, Group attribute ' write(10,*)'==================================' write(*,*)'Testing gdrdgattr, Group attribute' write(*,*)'=================================' status = he5_gdrdgattr(gdid_utm,'group',gattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdgattr(gdid_utm,"group",gattr)' write(*,*)'Value returned by he5_gdrdgattr ',status write(10,*)'status = he5_gdrdgattr(gdid_utm,"group",gattr)' write(10,*)'Value returned by he5_gdrdgattr ',status do 68 i=1,count write(10,*)'Attribute value ',gattr(i) write(*,*)'Attribute value ',gattr(i) 68 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdrdgattr(gdid3,'group',gattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdgattr(gdid3,"group",gattr)' write(*,*)'Value returned by he5_gdrdgattr ',status write(10,*)'status = he5_gdrdgattr(gdid3,"group",gattr)' write(10,*)'Value returned by he5_gdrdgattr ',status do 78 i=1,count write(10,*)'Attribute value ',gattr(i) write(*,*)'Attribute value ',gattr(i) 78 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- gdinqdatatype c write(10,27) write(10,*)'Testing gdinqdatatype ' write(10,*)'=====================' write(*,*)'Testing gdinqdatatype' write(*,*)'=====================' status = he5_gdinqdatatype(gdid_utm,"Grounding","local", 1HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdatatype(gdid_utm,"Grounding", 1"local",HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(*,*)'Data type of attribute ',dtype write(*,*)'Class id of attribute ',classid write(*,*)'Order of attribute ',order write(*,*)'Size of attribute ',size write(10,*)'status =he5_gdinqdatatype(gdid_utm,"Grounding", 1"local",HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(10,*)'Data type of attribute ',dtype write(10,*)'Class id of attribute ',classid write(10,*)'Order of attribute ',order write(10,*)'Size of attribute ',size endif write(10,*)' ' write(*,*)' ' status = he5_gdinqdatatype(gdid3,"Grounding","local", 1HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdatatype(gdid3,"Grounding", 1"local",HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(*,*)'Data type of attribute ',dtype write(*,*)'Class id of attribute ',classid write(*,*)'Order of attribute ',order write(*,*)'Size of attribute ',size write(10,*)'status =he5_gdinqdatatype(gdid3,"Grounding", 1"local",HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(10,*)'Data type of attribute ',dtype write(10,*)'Class id of attribute ',classid write(10,*)'Order of attribute ',order write(10,*)'Size of attribute ',size endif write(10,*)' ' write(*,*)' ' c Test Case -- gdrdlattr c write(10,27) write(10,*)'Testing gdrdlattr, Local attribute ' write(10,*)'==================================' write(*,*)'Testing gdrdlattr, Local attribute' write(*,*)'=================================' status = he5_gdrdlattr(gdid_utm,"Grounding","local",lattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdrdlattr(gdid_utm,"Grounding", 1"local",lattr)' write(*,*)'Value returned by he5_gdrdlattr ',status write(10,*)'status=he5_gdrdlattr(gdid_utm,"Grounding", 1"local",lattr)' write(10,*)'Value returned by he5_gdrdlattr ',status do 69 i=1,count write(10,*)'Attribute value ',lattr(i) write(*,*)'Attribute value ',lattr(i) 69 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdrdlattr(gdid3,"Grounding","local",lattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdrdlattr(gdid3,"Grounding", 1"local",lattr)' write(*,*)'Value returned by he5_gdrdlattr ',status write(10,*)'status=he5_gdrdlattr(gdid3,"Grounding", 1"local",lattr)' write(10,*)'Value returned by he5_gdrdlattr ',status do 79 i=1,count write(10,*)'Attribute value ',lattr(i) write(*,*)'Attribute value ',lattr(i) 79 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- gdinqattrs c write(10,27) write(10,*)'Testing gdinqattrs, Global attribute' write(10,*)'====================================' write(*,*)'Testing gdinqattrs, Global attribute' write(*,*)'====================================' lstatus = he5_gdinqattrs(gdid_utm, attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqattrs(gdid_utm, 1attrlist,strbufsize)' write(*,*)'Value returned by he5_gdinqattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqattrs(gdid_utm, 1attrlist,strbufsize)' write(10,*)'Value returned by he5_gdinqattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' lstatus = he5_gdinqattrs(gdid3, attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqattrs(gdid3, 1attrlist,strbufsize)' write(*,*)'Value returned by he5_gdinqattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqattrs(gdid3, 1attrlist,strbufsize)' write(10,*)'Value returned by he5_gdinqattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- gdinqgattrs c write(10,27) write(10,*)'Testing gdinqgattrs, Group attribute' write(10,*)'====================================' write(*,*)'Testing gdinqgattrs, Group attribute' write(*,*)'====================================' lstatus = he5_gdinqgattrs(gdid_utm, attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqgattrs(gdid_utm, 1attrlist,strbufsize)' write(*,*)'Value returned by he5_gdinqgattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqgattrs(gdid_utm, 1attrlist,strbufsize)' write(10,*)'Value returned by he5_gdinqgattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' lstatus = he5_gdinqgattrs(gdid3, attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqgattrs(gdid3, 1attrlist,strbufsize)' write(*,*)'Value returned by he5_gdinqgattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqgattrs(gdid3, 1attrlist,strbufsize)' write(10,*)'Value returned by he5_gdinqgattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- gdinqlattrs c write(10,27) write(10,*)'Testing gdinqlattrs, Local attribute' write(10,*)'====================================' write(*,*)'Testing gdinqlattrs, Local attribute' write(*,*)'====================================' lstatus = he5_gdinqlattrs(gdid_utm,"Grounding", 1attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqlattrs(gdid_utm,"Grounding", 1attrlist,strbufsize)' write(*,*)'Value returned by he5_gdinqlattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqlattrs(gdid_utm,"Grounding", 1attrlist,strbufsize)' write(10,*)'Value returned by he5_gdinqlattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' lstatus = he5_gdinqlattrs(gdid3,"Grounding", 1attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqlattrs(gdid3,"Grounding", 1attrlist,strbufsize)' write(*,*)'Value returned by he5_gdinqlattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqlattrs(gdid3,"Grounding", 1attrlist,strbufsize)' write(10,*)'Value returned by he5_gdinqlattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- gdgetfill c write(10,27) write(10,*)'Testing gdgetfill... ' write(10,*)'==================' write(*,*)'Testing gdgetfill... ' write(*,*)'==================' status = he5_gdgetfill(gdid_utm,'Drift',ifillv) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgetfill(gdid_utm,"Drift",ifillv)' write(*,*)'Value returned by he5_gdgetfill ',status write(*,*)'Fill value ',ifillv write(10,*)'status = he5_gdgetfill(gdid_utm,"Drift",ifillv)' write(10,*)'Value returned by he5_gdgetfill ',status write(10,*)'Fill value ',ifillv endif write(10,*)' ' write(*,*)' ' status = he5_gdgetfill(gdid3,'Drift',ifillv) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgetfill(gdid3,"Drift",ifillv)' write(*,*)'Value returned by he5_gdgetfill ',status write(*,*)'Fill value ',ifillv write(10,*)'status = he5_gdgetfill(gdid3,"Drift",ifillv)' write(10,*)'Value returned by he5_gdgetfill ',status write(10,*)'Fill value ',ifillv endif write(10,*)' ' write(*,*)' ' c Test Case -- gddefboxreg c write(10,27) write(10,*)'Testing gddefboxreg... ' write(10,*)'==================' write(*,*)'Testing gddefboxreg... ' write(*,*)'==================' corlon(1)=-126.0 corlon(2)=-121.5 corlat(1)=-70.0 corlat(2)=-65.0 regionid = he5_gddefboxreg(gdid_utm,corlon,corlat) if (regionid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'regionid = he5_gddefboxreg(gdid_utm,corlon,corlat)' write(*,*)'Region id returned by he5_gddefboxreg ',regionid write(10,*)'regionid = he5_gddefboxreg(gdid_utm,corlon,corlat)' write(10,*)'Region id returned by he5_gddefboxreg ',regionid endif write(10,*)' ' write(*,*)' ' regionid3 = he5_gddefboxreg(gdid3,corlon,corlat) if (regionid3 .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'regionid3 = he5_gddefboxreg(gdid3,corlon,corlat)' write(*,*)'Region id returned by he5_gddefboxreg ',regionid3 write(10,*)'regionid3 = he5_gddefboxreg(gdid3,corlon,corlat)' write(10,*)'Region id returned by he5_gddefboxreg ',regionid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- gdreginfo c write(10,27) write(10,*)'Testing gdreginfo... ' write(10,*)'==================' write(*,*)'Testing gdreginfo... ' write(*,*)'==================' status = he5_gdreginfo(gdid_utm,regionid,"Impedance",nt,rk, 1dims,size,iuplft,ilrgt) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdreginfo(gdid_utm,regionid, 1"Impedance",nt,rk,dims,size,iuplft,ilrgt)' write(*,*)'Value returned by he5_gdreginfo ',status write(*,*)'Number type of region ',nt write(*,*)'Rank of region ',rk write(*,*)'Size of region ',size write(*,11)'Dimensions of region',dims(1),' ',dims(2) write(*,12)'Upper left point of region ', 1iuplft(1),' ',iuplft(2) write(*,12)'Lower right point of region ',ilrgt(1),' ',ilrgt(2) write(10,*)'status = he5_gdreginfo(gdid_utm,regionid, 1"Impedance",nt,rk,dims,size,iuplft,ilrgt)' write(10,*)'Value returned by he5_gdreginfo ',status write(10,*)'Number type of region ',nt write(10,*)'Rank of region ',rk write(10,*)'Size of region ',size write(10,11)'Dimensions of region',dims(1),' ',dims(2) write(10,12)'Upper left point of region ', 1iuplft(1),' ',iuplft(2) write(10,12)'Lower right point of region ', 1ilrgt(1),' ',ilrgt(2) endif write(10,*)' ' write(*,*)' ' status = he5_gdreginfo(gdid3,regionid3,"Impedance",nt,rk, 1dims,size,iuplft,ilrgt) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdreginfo(gdid3,regionid3,"Impedance", 1nt,rk,dims,size,iuplft,ilrgt)' write(*,*)'Value returned by he5_gdreginfo ',status write(*,*)'Number type of region ',nt write(*,*)'Rank of region ',rk write(*,*)'Size of region ',size write(*,11)'Dimensions of region',dims(1),' ',dims(2) write(*,12)'Upper left point of region ', 1iuplft(1),' ',iuplft(2) write(*,12)'Lower right point of region ',ilrgt(1),' ',ilrgt(2) write(10,*)'status = he5_gdreginfo(gdid3,regionid3, 1"Impedance",nt,rk,dims,size,iuplft,ilrgt)' write(10,*)'Value returned by he5_gdreginfo ',status write(10,*)'Number type of region ',nt write(10,*)'Rank of region ',rk write(10,*)'Size of region ',size write(10,11)'Dimensions of region',dims(1),' ',dims(2) write(10,12)'Upper left point of region ', 1iuplft(1),' ',iuplft(2) write(10,12)'Lower right point of region ', 1ilrgt(1),' ',ilrgt(2) endif write(10,*)' ' write(*,*)' ' c Test Case -- gdextreg c write(10,27) write(10,*)'Testing gdextreg... ' write(10,*)'==================' write(*,*)'Testing gdextreg... ' write(*,*)'==================' status = he5_gdextreg(gdid_utm,regionid,'Impedance',datbuf) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdextreg(gdid_utm,regionid, 1"Impedance",datbuf)' write(*,*)'Value returned by he5_gdextreg ',status write(10,*)'status=he5_gdextreg(gdid_utm, 1regionid,"Impedance",datbuf)' write(10,*)'Value returned by he5_gdextreg ',status do 175 i=100,150 write(*,*)'Value of region ',datbuf(i) write(10,*)'Value of region ',datbuf(i) 175 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdextreg(gdid3,regionid3,'Impedance',datbuf) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status=he5_gdextreg(gdid3,regionid3, 1"Impedance",datbuf)' write(*,*)'Value returned by he5_gdextreg ',status write(10,*)'status=he5_gdextreg(gdid3, 1regionid,"Impedance",datbuf)' write(10,*)'Value returned by he5_gdextreg ',status do 185 i=100,150 write(*,*)'Value of region ',datbuf(i) write(10,*)'Value of region ',datbuf(i) 185 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- gddeftmeper c write(10,27) write(10,*)'Testing gddeftmeper... ' write(10,*)'==================' write(*,*)'Testing gddeftmeper... ' write(*,*)'==================' periodid = he5_gddeftmeper(gdid_utm, 1HE5_HDFE_NOPREVSUB,starttime,stoptime) if (periodid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'periodid = he5_gddeftmeper(gdid_utm, 1HE5_HDFE_NOPREVSUB,starttime,stoptime)' write(10,*)'Define a time period ' write(10,*)'Period id returned by he5_gddeftmeper ',periodid write(*,*)'periodid = he5_gddeftmeper(gdid_utm, 1HE5_HDFE_NOPREVSUB,starttime,stoptime)' write(*,*)'Define a time period ' write(*,*)'Period id returned by he5_gddeftmeper ',periodid endif write(10,*)' ' write(*,*)' ' periodid = he5_gddeftmeper(gdid3, 1HE5_HDFE_NOPREVSUB,starttime,stoptime) if (periodid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'periodid = he5_gddeftmeper(gdid3,HE5_HDFE_NOPREVSUB, 1starttime,stoptime)' write(10,*)'Define a time period ' write(10,*)'Period id returned by he5_gddeftmeper ',periodid write(*,*)'periodid = he5_gddeftmeper(gdid3,HE5_HDFE_NOPREVSUB, 1starttime,stoptime)' write(*,*)'Define a time period ' write(*,*)'Period id returned by he5_gddeftmeper ',periodid endif write(10,*)' ' write(*,*)' ' c Test Case -- gddefvrtreg c write(10,27) write(10,*)'Testing gddefvrtreg... ' write(10,*)'==================' write(*,*)'Testing gddefvrtreg... ' write(*,*)'==================' regionid = he5_gddefvrtreg(gdid_utm, 1HE5_HDFE_NOPREVSUB,'Height',range) if (regionid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid = he5_gddefvrtreg(gdid_utm, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(10,*)'Define a vertical region ' write(10,*)'Region id returned by he5_gddefvrtreg ',regionid write(*,*)'regionid = he5_gddefvrtreg(gdid_utm, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(*,*)'Define a vertical region ' write(*,*)'Region id returned by he5_gddefvrtreg ',regionid endif write(10,*)' ' write(*,*)' ' regionid3 = he5_gddefvrtreg(gdid3, 1HE5_HDFE_NOPREVSUB,'Height',range) if (regionid3 .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid3 = he5_gddefvrtreg(gdid3, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(10,*)'Define a vertical region ' write(10,*)'Region id returned by he5_gddefvrtreg ',regionid3 write(*,*)'regionid3 = he5_gddefvrtreg(gdid3, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(*,*)'Define a vertical region ' write(*,*)'Region id returned by he5_gddefvrtreg ',regionid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- gddupreg c write(10,27) write(10,*)'Testing gddupreg... ' write(10,*)'==================' write(*,*)'Testing gddupreg... ' write(*,*)'==================' regionid2 = he5_gddupreg(regionid) if (regionid2 .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid2 = he5_gddupreg(regionid)' write(10,*)'Generate a new region id ' write(10,*)'New region id ',regionid2 write(*,*)'regionid2 = he5_gddupreg(regionid)' write(*,*)'Generate a new region id ' write(*,*)'New region id ',regionid2 endif write(10,*)' ' write(*,*)' ' regionid4 = he5_gddupreg(regionid3) if (regionid4 .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid4 = he5_gddupreg(regionid3)' write(10,*)'Generate a new region id ' write(10,*)'New region id ',regionid4 write(*,*)'regionid4 = he5_gddupreg(regionid3)' write(*,*)'Generate a new region id ' write(*,*)'New region id ',regionid4 endif write(10,*)' ' write(*,*)' ' c Test Case -- gdgetpix c write(10,27) write(10,*)'Testing gdgetpix... ' write(10,*)'==================' write(*,*)'Testing gdgetpix... ' write(*,*)'==================' status = he5_gdgetpix(gdid_utm,5,lonval,latval,rowval,colval) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdgetpix(gdid_utm,5,lonval, 1latval,rowval,colval)' write(10,*)'Retrieve pixel row. column values ' write(*,*)'status = he5_gdgetpix(gdid_utm,5,lonval,latval, 1rowval,colval)' write(*,*)'Retrieve pixel row. column values ' do 37 i=1,5 write(10,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) write(*,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) 37 continue endif 5 format(a,f6.1,a,f6.1,a,a,i2,a,i2) write(10,*)' ' write(*,*)' ' status = he5_gdgetpix(gdid3,5,lonval,latval,rowval,colval) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status=he5_gdgetpix(gdid3,5,lonval, 1latval,rowval,colval)' write(10,*)'Retrieve pixel row. column values ' write(*,*)'status = he5_gdgetpix(gdid3,5,lonval,latval, 1rowval,colval)' write(*,*)'Retrieve pixel row. column values ' do 47 i=1,5 write(10,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) write(*,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) 47 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- gdgetpixval c write(10,27) write(10,*)'Testing gdgetpixval... ' write(10,*)'==================' write(*,*)'Testing gdgetpixval... ' write(*,*)'==================' lstatus = he5_gdgetpixval(gdid_utm,5,rowval, 1colval,"Voltage",fldval) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus = he5_gdgetpixval(gdid_utm,5,rowval,colval, 1"Voltage",fldval)' write(10,*)'Retrieve pixel values for specific locations ' write(*,*)'lstatus = he5_gdgetpixval(gdid_utm,5,rowval,colval, 1"Voltage",fldval)' write(*,*)'Retrieve pixel values for specific locations ' do 42 i=1,5 write(10,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) write(*,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) 42 continue endif 17 format(a8,i2,a1,i2,a1,a12,f9.3) write(10,*)' ' write(*,*)' ' lstatus = he5_gdgetpixval(gdid3,5,rowval, 1colval,"Voltage",fldval) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus = he5_gdgetpixval(gdid3,5,rowval,colval, 1"Voltage",fldval)' write(10,*)'Retrieve pixel values for specific locations ' write(*,*)'lstatus = he5_gdgetpixval(gdid3,5,rowval,colval, 1"Voltage",fldval)' write(*,*)'Retrieve pixel values for specific locations ' do 52 i=1,5 write(10,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) write(*,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) 52 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- gdinterpolate c write(10,27) write(10,*)'Testing gdinterpolate... ' write(10,*)'==================' write(*,*)'Testing gdinterpolate... ' write(*,*)'==================' lstatus=he5_gdinterpolate(gdid_utm,5,lonval,latval, 1'Voltage',interval) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus=he5_gdinterpolate(gdid_utm,5,lonval,latval, 1"Voltage",interval)' write(10,*)'Interpolate 5 values for field Voltage ' write(*,*)'lstatus=he5_gdinterpolate(gdid_utm,5,lonval,latval, 1"Voltage",interval)' write(*,*)'Interpolate 5 values for field Voltage ' write(*,*)'Status returned by call to he5_gdinterpolate ', 1lstatus do 38 index1=1,5 write(*,4)'Interpolated value ',interval(index1,1) write(10,4)'Interpolated value ',interval(index1,1) 38 continue endif 4 format(a,f9.3) write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Value returned by he5_gddetach ',status write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Value returned by he5_gddetach ',status endif lstatus=he5_gdinterpolate(gdid3,5,lonval,latval, 1'Voltage',interval) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus=he5_gdinterpolate(gdid3,5,lonval,latval, 1"Voltage",interval)' write(10,*)'Interpolate 5 values for field Voltage ' write(*,*)'lstatus=he5_gdinterpolate(gdid3,5,lonval,latval, 1"Voltage",interval)' write(*,*)'Interpolate 5 values for field Voltage ' write(*,*)'Status returned by call to he5_gdinterpolate ', 1lstatus do 48 index1=1,5 write(*,4)'Interpolated value ',interval(index1,1) write(10,4)'Interpolated value ',interval(index1,1) 48 continue endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Value returned by he5_gddetach ',status write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Value returned by he5_gddetach ',status endif status = he5_gdclose(gdfid) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdclose(gdfid)' write(*,*)'Returned from he5_gdclose ', status write(10,*)'status = he5_gdclose(gdfid)' write(10,*)'Returned from he5_gdclose ', status endif status = he5_gdclose(gdfid3) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdclose(gdfid3)' write(*,*)'Returned from he5_gdclose ', status write(10,*)'status = he5_gdclose(gdfid3)' write(10,*)'Returned from he5_gdclose ', status endif close(unit=10) 27 format(' ') stop end hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/Makefile.sgi320000644000175000017500000000170312024715435023321 0ustar amckinstryamckinstry COMPILER = cc LINKER = cc CC = $(COMPILER) LD = $(LINKER) # for SUN #CFLAGS = -g -Xa -DsunFortran -DSUN #LFLAGS = -g -Xa -DsunFortran -DSUN # for sgi32 CFLAGS = -g -n32 -xansi -D_POSIX_SOURCE LFLAGS = -g -n32 -xansi -D_POSIX_SOURCE # for sgi64 #CFLAGS = -g -64 -xansi -D_POSIX_SOURCE #LFLAGS = -g -64 -xansi -D_POSIX_SOURCE INCLUDE = -I. -I$(HDFEOS5_INC) -I$(HDF5INC) -I$(JPEGINC) -I$(ZLIBINC) -I$(SZIPINC) LIBRARYPATHS = -L$(HDF5LIB) -L$(HDFEOS5_LIB) -L$(JPEGLIB) -L$(ZLIBLIB) -L$(SZIPLIB) # for SUN #LIBRARIES = -lhe5_hdfeos $(HDF5LIB)/libhdf5.a -lGctp -ljpeg -lz -lsz -lpthread -lm -lnsl # for other platforms LIBRARIES = -lhe5_hdfeos $(HDF5LIB)/libhdf5.a -lGctp -ljpeg -lz -lsz -lpthread -lm OBJECTS = TestGrid.o PROGRAMS = TestGrid all: ${PROGRAMS} cleano ${PROGRAMS}: ${OBJECTS} ${CC} ${LFLAGS} -o $@ ${OBJECTS} ${LIBRARYPATHS} ${LIBRARIES} .c.o: ${CC} ${CFLAGS} -c ${INCLUDE} $< clean: rm *.o ${PROGRAMS} cleano: rm *.o hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/Makefile.in0000644000175000017500000004350512024715435023006 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # testdrivers/grid Makefile.am SOURCES = TestGrid.c $(testgrid32_SOURCES) $(testgrid64_SOURCES) srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/include.am check_PROGRAMS = TestGrid$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_1 = testgrid32 @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_2 = testgrid64 @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_3 = test_32f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_4 = test_32f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_5 = test_64f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_6 = test_64f subdir = testdrivers/grid ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/HE5_config.h CONFIG_CLEAN_FILES = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_1 = testgrid32$(EXEEXT) @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_2 = testgrid64$(EXEEXT) TestGrid_SOURCES = TestGrid.c TestGrid_OBJECTS = TestGrid.$(OBJEXT) TestGrid_LDADD = $(LDADD) am__DEPENDENCIES_1 = $(top_builddir)/src/libhe5_hdfeos.la am__DEPENDENCIES_2 = $(top_builddir)/gctp/src/libGctp.la TestGrid_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__testgrid32_SOURCES_DIST = testgrid32.f testgrid_szip32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_FALSE@am_testgrid32_OBJECTS = testgrid32.$(OBJEXT) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_TRUE@am_testgrid32_OBJECTS = testgrid_szip32.$(OBJEXT) testgrid32_OBJECTS = $(am_testgrid32_OBJECTS) testgrid32_LDADD = $(LDADD) testgrid32_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__testgrid64_SOURCES_DIST = testgrid64.f testgrid_szip64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_FALSE@am_testgrid64_OBJECTS = testgrid64.$(OBJEXT) @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_TRUE@am_testgrid64_OBJECTS = testgrid_szip64.$(OBJEXT) testgrid64_OBJECTS = $(am_testgrid64_OBJECTS) testgrid64_LDADD = $(LDADD) testgrid64_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --mode=compile --tag=F77 $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --mode=link --tag=F77 $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = TestGrid.c $(testgrid32_SOURCES) $(testgrid64_SOURCES) DIST_SOURCES = TestGrid.c $(am__testgrid32_SOURCES_DIST) \ $(am__testgrid64_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F2CFORTRAN_32PTR_CONDITIONAL_FALSE = @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@ F2CFORTRAN_32PTR_CONDITIONAL_TRUE = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@ F2CFORTRAN_90_CONDITIONAL_FALSE = @F2CFORTRAN_90_CONDITIONAL_FALSE@ F2CFORTRAN_90_CONDITIONAL_TRUE = @F2CFORTRAN_90_CONDITIONAL_TRUE@ F2CFORTRAN_CONDITIONAL_FALSE = @F2CFORTRAN_CONDITIONAL_FALSE@ F2CFORTRAN_CONDITIONAL_TRUE = @F2CFORTRAN_CONDITIONAL_TRUE@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SZIP_ENCODER_CONDITIONAL_FALSE = @SZIP_ENCODER_CONDITIONAL_FALSE@ SZIP_ENCODER_CONDITIONAL_TRUE = @SZIP_ENCODER_CONDITIONAL_TRUE@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la # Boilerplate definitions # Link against HDF-EOS5 include files and both the HDF-EOS5 and libGCTP # libraries INCLUDES = -I$(top_srcdir)/include LDADD = $(LIBHDFEOS5) $(LIBGCTP) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_FALSE@testgrid32_SOURCES = testgrid32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_TRUE@testgrid32_SOURCES = testgrid_szip32.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_FALSE@testgrid64_SOURCES = testgrid64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@@SZIP_ENCODER_CONDITIONAL_TRUE@testgrid64_SOURCES = testgrid_szip64.f # Run TestGrid as a test when the user types 'make check' TEST_SEQUENCES = test_c $(am__append_3) $(am__append_5) VERBOSE_TEST_SEQUENCES = test_c_verbose $(am__append_4) \ $(am__append_6) all: all-am .SUFFIXES: .SUFFIXES: .c .f .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testdrivers/grid/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign testdrivers/grid/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done TestGrid$(EXEEXT): $(TestGrid_OBJECTS) $(TestGrid_DEPENDENCIES) @rm -f TestGrid$(EXEEXT) $(LINK) $(TestGrid_LDFLAGS) $(TestGrid_OBJECTS) $(TestGrid_LDADD) $(LIBS) testgrid32$(EXEEXT): $(testgrid32_OBJECTS) $(testgrid32_DEPENDENCIES) @rm -f testgrid32$(EXEEXT) $(F77LINK) $(testgrid32_LDFLAGS) $(testgrid32_OBJECTS) $(testgrid32_LDADD) $(LIBS) testgrid64$(EXEEXT): $(testgrid64_OBJECTS) $(testgrid64_DEPENDENCIES) @rm -f testgrid64$(EXEEXT) $(F77LINK) $(testgrid64_LDFLAGS) $(testgrid64_OBJECTS) $(testgrid64_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestGrid.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-local check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am check-local clean \ clean-checkPROGRAMS clean-generic clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am test_c: $(check_PROGRAMS) ./TestGrid test_c_verbose: $(check_PROGRAMS) ./TestGrid -v h test_32f: $(check_PROGRAMS) ./testgrid32 test_64f: $(check_PROGRAMS) ./testgrid64 check-local: $(TEST_SEQUENCES) verbose_check: $(VERBOSE_TEST_SEQUENCES) .PHONY: $(TEST_SEQUENCES) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/testgrid_szip64.f0000755000175000017500000041303712024715435024160 0ustar amckinstryamckinstryc---------------------------------------------------------------------------- c Copyright (C) 2000 Emergent IT Inc. and Raytheon Systems Company | c---------------------------------------------------------------------------- c testgrid64.f | c In this program we create, define and write a simple grid hdfeos file | c using the grid interface | c---------------------------------------------------------------------------- program testgrid64 implicit none include 'hdfeos5.inc' integer status, i, ii integer compparm(5) integer gdfid, gdfid2, gdfid3, gdid_utm, gdid2, gdid3 integer zonecode, pixregcode, orgcode integer attr(4), iattr(4), gattr(4), lattr(4) integer spherecode, zero integer regionid, regionid2, regionid3, regionid4 integer dtype, classid, order integer he5_gdopen, he5_gdcreate integer he5_gdattach, he5_gddetach integer he5_gdclose, he5_gddefproj integer he5_gddefdim, he5_gdinqdatatype integer he5_gddeftle, he5_gddeffld integer he5_gdsetfill, he5_gdwrfld integer he5_gdwrattr, he5_gdwrgattr integer he5_gdwrlattr, he5_gdorginfo integer he5_gddefcomp, he5_gdinqflds integer he5_gdprojinfo integer he5_gdrdfld, he5_gdattrinfo integer he5_gdgatinfo integer he5_gdlatinfo, he5_gdrdattr integer he5_gdrdgattr, he5_gdrdlattr integer he5_gdreginfo, he5_gddeftmeper integer he5_gddefvrtreg integer he5_gddeforigin, he5_gddefpreg integer he5_gdinqdims, he5_gdgetfill integer he5_gdgridinfo, he5_gdcompinfo integer he5_gdfldinfo, he5_gddefboxreg integer he5_gdgetpix, he5_gddupreg integer he5_gdpreginfo, he5_gdextreg integer rnk(8), numtype(8) integer zcode, scode, nflds integer*4 ntype integer*4 nt, rk integer*4 periodid integer*4 lstatus, n, one integer*4 index1 integer*4 index2 integer*4 dimsizes(2) integer*4 lat(40,50) integer*4 latcnt integer*4 lon(40,50) integer*4 loncnt integer*4 he5_gdinqgrid, he5_gddiminfo integer*4 he5_gdnentries integer*4 he5_gdinqattrs, he5_gdinqgattrs integer*4 he5_gdinqlattrs integer*4 pcode integer*8 xdim, ydim integer*8 testdim1, testdim2, hghtdim, conduction integer*8 timedim, convection, setcount(1) integer*8 start(2) integer*8 stride(2) integer*8 edge(2) integer*8 start1d, stride1d, edge1d integer*8 tiledims(2) integer*8 count, nlonlat integer*8 size integer*8 rowval(5), colval(5) integer*8 xdimsize, ydimsize integer*8 he5_gdgetpixval, he5_gdinterpolate integer*8 strbufsize integer*8 dims(8) real fillvalue, ifillv real*4 ray3(250) real*4 utmray(60,80), georay(60,80) real*4 utmhght(80) real*4 hghtinit real*4 utmcnt, geocnt real*4 raycnt, ray3cnt real*4 tempray(60,80) real*4 datbuf(4800) real*4 fldval(5) real*8 starttime, stoptime real*8 range(2) real*8 projparm(16), pparm(16) real*8 uplft(2), lowrgt(2) real*8 iuplft(2), ilrgt(2) real*8 interval(5,2) real*8 lonval(5), latval(5) real*8 utmtmeray(4800) real*8 tmeinit real*8 upleftpt(2), lowrtpt(2),corlon(2),corlat(2) character*80 grdnames, dimname, fldlist, attrlist character*80 compcodestring, maxdimname index1 = 0 index2 = 0 dimsizes(1) = 40 dimsizes(2) = 100 compparm(1) = 6 compparm(2) = 0 compparm(3) = 0 compparm(4) = 0 compparm(5) = 0 fillvalue = 1996.0 raycnt = -799.0 ray3cnt = -19.5 attr(1) = 11 attr(2) = 33 attr(3) = 55 attr(4) = 77 utmcnt=-799.0 geocnt=2001.0 hghtinit = 323.0 tmeinit = 35232487.2d0 starttime = 35233000.8d0 stoptime = 35435050.9d0 range(1) = 352.8d0 range(2) = 400.9d0 lonval(1) = -122.0d0 latval(1) = -68.0d0 lonval(2) = -122.5d0 latval(2) = -68.0d0 lonval(3) = -123.0d0 latval(3) = -68.0d0 lonval(4) = -123.5d0 latval(4) = -68.0d0 lonval(5) = -124.0d0 latval(5) = -68.0d0 tiledims(1) = 16 tiledims(2) = 15 latcnt = 38.0 loncnt = 78.0 zero = 0 one = 1 c c This section of the program just fills some arrays with data that we will c use later in the program c do 70 index1=1,60 do 80 index2=1,80 utmray(index2,index1) = utmcnt georay(index2,index1) = geocnt utmcnt = utmcnt + .4 geocnt = geocnt + .2 80 continue 70 continue do 30 index1=1,250 ray3(index1) = ray3cnt ray3cnt = ray3cnt + .1 30 continue do 32 index1=1,80 utmhght(index1) = hghtinit hghtinit = hghtinit + 2.75 32 continue do 34 index1=1,4800 utmtmeray(index1) = tmeinit tmeinit = tmeinit + 70.7 34 continue do 50 index1=1,50 do 60 index2=1,40 lat(index2,index1) = latcnt lon(index2,index1) = loncnt loncnt = loncnt - 0.1 60 continue latcnt = latcnt + 0.1 loncnt = 78.0 50 continue 230 format('********Error unexpected**********') 231 format('********Error Expected************') 240 format('***********Passed Test*********') open(unit=10,file='testgrid.txt', status = "UNKNOWN") write(*,*)'Testing Grid FORTRAN 77 interface ' write(*,*)'==================================' write(10,*)'Testing Grid FORTRAN 77 interface ' write(10,*)'==================================' write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdopen c write(10,*)'Testing he5_gdopen... ' write(10,*)'======================' write(*,*)'Testing he5_gdopen... ' write(*,*)'======================' gdfid2 = he5_gdopen("grid2.he5",HE5F_ACC_TRUNC) if (gdfid2 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdfid2 = he5_gdopen("grid2.he5",HE5F_ACC_TRUNC)' write(10,*)'Value returned by gdopen ', gdfid2 write(*,*)'gdfid2 = he5_gdopen("grid2.he5",HE5F_ACC_TRUNC)' write(*,*)'Value returned by gdopen ', gdfid2 endif write(*,*)' ' write(10,*)' ' gdfid3 = he5_gdopen("grid3.he5",HE5F_ACC_TRUNC) if (gdfid3 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdfid3 = he5_gdopen("grid3.he5",HE5F_ACC_TRUNC)' write(10,*)'Value returned by gdopen ', gdfid3 write(*,*)'gdfid3 = he5_gdopen("grid3.he5",HE5F_ACC_TRUNC)' write(*,*)'Value returned by gdopen ', gdfid3 endif write(*,*)' ' write(10,*)' ' gdfid = he5_gdopen('grid.he5',HE5F_ACC_TRUNC) if (gdfid .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'Opening file grid.he5' write(10,*)'Opening file grid.he5' write(10,*) 'gdfid = he5_gdopen("grid.he5",HE5F_ACC_TRUNC)' write(10,*) 'File id returned from gdopen ', gdfid write(*,*) 'gdfid = he5_gdopen("grid.he5",HE5F_ACC_TRUNC)' write(*,*) 'File id returned from gdopen ', gdfid endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdcreate c write(10,27) write(10,*)'Testing he5_gdcreate... ' write(10,*)'========================' write(*,*)'Testing he5_gdcreate... ' write(*,*)'========================' xdim = 60 ydim = 80 uplft(1) = 353299.39125d0 uplft(2) = -7100284.64348d0 lowrgt(1) = 603434.52148d0 lowrgt(2) = -7991341.17870d0 gdid2 = he5_gdcreate(gdfid2, 'UTMGrid2', 1xdim, ydim, uplft, lowrgt) if (gdid2 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*) 'Create UTMGrid2' write(*,*)'gdid2 = he5_gdcreate(gdfid2, "UTMGrid2", 1xdim, ydim, uplft, lowrgt)' write(10,*) 'Value returned by gdcreate ', gdid2 write(*,*) 'Create UTMGrid2' write(10,*)'gdid2 = he5_gdcreate(gdfid2, "UTMGrid2", 1xdim, ydim, uplft, lowrgt)' write(*,*) 'Value returned by gdcreate ', gdid2 endif gdid3 = he5_gdcreate(gdfid3, 'UTMGrid3', 1xdim, ydim, uplft, lowrgt) if (gdid3 .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*) 'Create UTMGrid3' write(*,*)'gdid3 = he5_gdcreate(gdfid3, "UTMGrid3", 1xdim, ydim, uplft, lowrgt)' write(10,*) 'Value returned by gdcreate ', gdid3 write(*,*) 'Create UTMGrid3' write(10,*)'gdid3 = he5_gdcreate(gdfid3, "UTMGrid3", 1xdim, ydim, uplft, lowrgt)' write(*,*) 'Value returned by gdcreate ', gdid3 endif gdid_utm = he5_gdcreate(gdfid, 'UTMGrid', xdim, ydim, 1uplft, lowrgt) if (gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Creating UTMGrid' write(*,*)'Creating UTMGrid' write(*,*)'gdid_utm= he5_gdcreate(gdfid,"UTMGrid",xdim, 1ydim,uplft,lowrgt)' write(10,*)'gdid_utm= he5_gdcreate(gdfid,"UTMGrid",xdim, 1ydim,uplft,lowrgt)' write(10,*)'UTM grid id returned from gdcreate ',gdid_utm write(*,*)'UTM grid id returned from gdcreate ',gdid_utm endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefproj c write(10,27) write(10,*)'Testing he5_gddefproj... ' write(10,*)'========================' write(*,*)'Testing he5_gddefproj... ' write(*,*)'========================' zonecode = 10 spherecode = 0 do 120 index1=1,16 projparm(index1)=0 120 continue status = he5_gddefproj(gdid_utm,HE5_GCTP_UTM,zonecode, 1spherecode,projparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Defining UTM projection' write(*,*)'Defining UTM projection' write(*,*)'status= he5_gddefproj(gdid_utm,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'status= he5_gddefproj(gdid_utm,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'Returned value from gddefproj ', status write(*,*)'Returned value from gddefproj ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddefproj(gdid3,HE5_GCTP_UTM,zonecode, 1spherecode,projparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Defining UTM projection' write(*,*)'Defining UTM projection' write(*,*)'status= he5_gddefproj(gdid3,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'status= he5_gddefproj(gdid3,HE5_GCTP_UTM, 1zonecode,spherecode, projparm)' write(10,*)'Returned value from gddefproj ', status write(*,*)'Returned value from gddefproj ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddefproj(gdid2,HE5_GCTP_UTM,zonecode, 1spherecode,projparm) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Defining UTM' write(10,*)'status = he5_gddefproj(gdid2,HE5_GCTP_UTM, 1zonecode,spherecode,projparm)' write(10,*)'Value returned by gddefproj ', status write(*,*)'Defining UTM' write(*,*)'status = he5_gddefproj(gdid2,HE5_GCTP_UTM, 1zonecode,spherecode,projparm)' write(*,*)'Value returned by gddefproj ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefpreg c write(10,27) write(10,*)'Testing he5_gddefpreg... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefpreg... ' write(*,*)'==========================' status = he5_gddefpreg(gdid_utm, HE5_HDFE_CORNER) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddefpreg(gdid_utm, 1HE5_HDFE_CORNER)' write(10,*)'status = he5_gddefpreg(gdid_utm, 1HE5_HDFE_CORNER)' write(10,*)'Returned from gddefpreg ', status write(*,*)'Returned from gddefpreg ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddefpreg(gdid3, HE5_HDFE_CORNER) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddefpreg(gdid3, 1HE5_HDFE_CORNER)' write(10,*)'status = he5_gddefpreg(gdid3, 1HE5_HDFE_CORNER)' write(10,*)'Returned from gddefpreg ', status write(*,*)'Returned from gddefpreg ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddeforigin c write(10,27) write(10,*)'Testing he5_gddeforigin... ' write(10,*)'==========================' write(*,*)'Testing he5_gddeforigin... ' write(*,*)'==========================' status = he5_gddeforigin(gdid_utm,HE5_HDFE_GD_UL) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddeforigin(gdid_utm, 1HE5_HDFE_GD_UL)' write(*,*)'Value of status from gddeforigin ',status write(10,*)'status = he5_gddeforigin(gdid_utm, 1HE5_HDFE_GD_UL)' write(10,*)'Value of status from gddeforigin ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddeforigin(gdid3,HE5_HDFE_GD_UL) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddeforigin(gdid3, 1HE5_HDFE_GD_UL)' write(*,*)'Value of status from gddeforigin ',status write(10,*)'status = he5_gddeforigin(gdid3, 1HE5_HDFE_GD_UL)' write(10,*)'Value of status from gddeforigin ',status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefdim c write(10,27) write(10,*)'Testing he5_gddefdim... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefdim... ' write(*,*)'==========================' testdim1 = 40 status = he5_gddefdim(gdid2,'TestDim1',testdim1) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid2,"TestDim1",40)' write(10,*)'Value returned by gddefdim ', status write(*,*)'status = he5_gddefdim(gdid2,"TestDim1",40)' write(*,*)'Value returned by gddefdim ', status endif write(10,*)' ' write(*,*)' ' testdim2 = 25 status = he5_gddefdim(gdid2, 'TestDim2', testdim2) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid2,"TestDim2",25)' write(10,*)'Value returned by gddefdim ', status write(*,*)'status = he5_gddefdim(gdid2,"TestDim2",25)' write(*,*)'Value returned by gddefdim ', status endif write(10,*)' ' write(*,*)' ' conduction = 250 status = he5_gddefdim(gdid_utm, 'Conduction', conduction) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid_utm, 1"Conduction",250)' write(10,*)'Returned value from gddefdim ', status write(*,*)'status = he5_gddefdim(gdid_utm, 1"Conduction", 250)' write(*,*)'Returned value from gddefdim ', status endif write(10,*)' ' write(*,*)' ' timedim = 4800 status = he5_gddefdim(gdid_utm,'Timedim',timedim) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid_utm, 1"Timedim",4800)' write(10,*)'Status returned by call to gddefdim ',status write(*,*)'status = he5_gddefdim(gdid_utm, 1"Timedim",4800)' write(*,*)'Status returned by call to gddefdim ',status endif write(10,*)' ' write(*,*)' ' hghtdim = 80 status = he5_gddefdim(gdid_utm,'Hghtdim',hghtdim) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid_utm,"Hghtdim",80)' write(10,*)'Status returned by call to gddefdim ',status write(*,*)'status = he5_gddefdim(gdid_utm,"Hghtdim",80)' write(*,*)'Status returned by call to gddefdim ',status endif write(10,*)' ' write(*,*)' ' convection = 60 status = he5_gddefdim(gdid_utm,'Convection',convection) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define dimension Convection ' write(10,*)'status = he5_gddefdim(gdid_utm, 1"Convection",60)' write(10,*)'Status returned by call to gddefdim ',status write(*,*)'Define dimension Convection ' write(*,*)'status = he5_gddefdim(gdid_utm, 1"Convection",60)' write(*,*)'Status returned by call to gddefdim ',status endif write(10,*)' ' write(*,*)' ' conduction = 250 status = he5_gddefdim(gdid3, 'Conduction', conduction) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid3, 1"Conduction",250)' write(10,*)'Returned value from gddefdim ', status write(*,*)'status = he5_gddefdim(gdid3, 1"Conduction", 250)' write(*,*)'Returned value from gddefdim ', status endif write(10,*)' ' write(*,*)' ' timedim = 4800 status = he5_gddefdim(gdid3,'Timedim',timedim) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid3, 1"Timedim",4800)' write(10,*)'Status returned by call to gddefdim ',status write(*,*)'status = he5_gddefdim(gdid3, 1"Timedim",4800)' write(*,*)'Status returned by call to gddefdim ',status endif write(10,*)' ' write(*,*)' ' hghtdim = 80 status = he5_gddefdim(gdid3,'Hghtdim',hghtdim) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddefdim(gdid3,"Hghtdim",80)' write(10,*)'Status returned by call to gddefdim ',status write(*,*)'status = he5_gddefdim(gdid3,"Hghtdim",80)' write(*,*)'Status returned by call to gddefdim ',status endif write(10,*)' ' write(*,*)' ' convection = 60 status = he5_gddefdim(gdid3,'Convection',convection) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define dimension Convection ' write(10,*)'status = he5_gddefdim(gdid3, 1"Convection",60)' write(10,*)'Status returned by call to gddefdim ',status write(*,*)'Define dimension Convection ' write(*,*)'status = he5_gddefdim(gdid3, 1"Convection",60)' write(*,*)'Status returned by call to gddefdim ',status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddetach c write(10,27) write(10,*)'Testing he5_gddetach... ' write(10,*)'=======================' write(*,*)'Testing he5_gddetach... ' write(*,*)'=======================' status = he5_gddetach(gdid2) if(status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid2)' write(10,*)'Value returned by gddetach ', status write(*,*)'status = he5_gddetach(gdid2)' write(*,*)'Value returned by gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned value from gddetach ', status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Returned value from gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Returned value from gddetach ', status write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Returned value from gddetach ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdattach c write(10,27) write(10,*)'Testing he5_gdattach... ' write(10,*)'==========================' write(*,*)'Testing he5_gdattach... ' write(*,*)'==========================' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if(gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid_utm=he5_gdattach(gdfid,"UTMGrid")' write(10,*)'Handle returned from gdattach ',gdid_utm write(*,*)'gdid_utm=he5_gdattach(gdfid,"UTMGrid")' write(*,*)'Handle returned from gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' gdid2 = he5_gdattach(gdfid2, 'UTMGrid2') if(gdid2 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid2=he5_gdattach(gdfid2, "UTMGrid2")' write(10,*)'Value returned by gdattach ', gdid2 write(*,*)'gdid2=he5_gdattach(gdfid2, "UTMGrid2")' write(*,*)'Value returned by gdattach ', gdid2 endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if(gdid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid3=he5_gdattach(gdfid3, "UTMGrid3")' write(10,*)'Value returned by gdattach ', gdid3 write(*,*)'gdid3=he5_gdattach(gdfid3, "UTMGrid3")' write(*,*)'Value returned by gdattach ', gdid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddeffld c write(10,27) write(10,*)'Testing he5_gddeffld... ' write(10,*)'==========================' write(*,*)'Testing he5_gddeffld... ' write(*,*)'==========================' status= he5_gddeffld(gdid2,"tempfield","TestDim2,TestDim1", 1" ",HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "tempfield"' write(10,*)'status= he5_gddeffld(gdid2,"tempfield", 1"TestDim2,TestDim1"," ",HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(10,*)'Value returned by gddeffld ', status write(*,*)'Define: "tempfield"' write(*,*)'status= he5_gddeffld(gdid2,"tempfield", 1"TestDim2,TestDim1","",HE5T_NATIVE_FLOAT,HE5_HDFE_NOMERGE)' write(*,*)'Value returned by gddeffld ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'Time','Timedim'," ", 1HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Time' write(10,*)'status= he5_gddeffld(gdid_utm,"Time","Timedim", 1"",HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to gddeffld ',status write(*,*)' Define field Time' write(*,*)'status= he5_gddeffld(gdid_utm,"Time","Timedim", 1"",HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to gddeffld ',status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'Height','Hghtdim'," ", 1HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Height' write(10,*)'status= he5_gddeffld(gdid_utm,"Height", 1"Hghtdim","",HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to gddeffld ',status write(*,*)' Define field Height' write(*,*)'status= he5_gddeffld(gdid_utm,"Height","Hghtdim", 1"",HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to gddeffld ',status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid3,'Time','Timedim'," ", 1HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Time' write(10,*)'status= he5_gddeffld(gdid3,"Time","Timedim", 1"",HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to gddeffld ',status write(*,*)' Define field Time' write(*,*)'status= he5_gddeffld(gdid3,"Time","Timedim", 1"",HE5T_NATIVE_DOUBLE, HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to gddeffld ',status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid3,'Height','Hghtdim'," ", 1HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)' Define field Height' write(10,*)'status= he5_gddeffld(gdid3,"Height", 1"Hghtdim","",HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to gddeffld ',status write(*,*)' Define field Height' write(*,*)'status= he5_gddeffld(gdid3,"Height","Hghtdim", 1"",HE5T_NATIVE_FLOAT, HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to gddeffld ',status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddeftle c write(10,27) write(10,*)'Testing he5_gddeftle... ' write(10,*)'=======================' write(*,*)'Testing he5_gddeftle... ' write(*,*)'=======================' status = he5_gddeftle(gdid_utm,HE5_HDFE_TILE,2,tiledims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define tiling dimensions ' write(10,*)'status = he5_gddeftle(gdid_utm, 1HE5_HDFE_TILE,2,tiledims)' write(10,*)'Status returned by call to gddeftle ',status write(*,*)'Status returned by call to gddeftle ',status write(*,*)'status = he5_gddeftle(gdid_utm, 1HE5_HDFE_TILE,2,tiledims)' write(*,*)'Define tiling dimensions ' endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'SideB','YDim,Convection', 1" ",HE5T_NATIVE_INT, HE5_HDFE_NOMERGE) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define field that will be tiled ' write(10,*)'status= he5_gddeffld(gdid_utm,"SideB", 1"YDim,Convection"," ",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to gddeffld ',status write(*,*)'Define field that will be tiled ' write(*,*)'status= he5_gddeffld(gdid_utm,"SideB", 1"YDim,Convection","",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to gddeffld ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned value from gddetach ', status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Returned value from gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if (gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdattach(gdfid,"UTMGrid")' write(10,*)'Returned value from gdattach ', status write(*,*)'status = he5_gddetach(gdfid,"UTMGrid")' write(*,*)'Returned value from gdattach ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'Grounding','Conduction', 1" ",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Grounding"' write(10,*)'status= he5_gddeffld(gdid_utm,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HE5_HDF_NOMERGE)' write(10,*)'Value returned by gddeffld ', status write(*,*)'Define: "Grounding"' write(*,*)'status= he5_gddeffld(gdid_utm,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HE5_HDF_NOMERGE)' write(*,*)'Value returned by gddeffld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddeftle(gdid3,HE5_HDFE_TILE,2,tiledims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define tiling dimensions ' write(10,*)'status = he5_gddeftle(gdid3, 1HE5_HDFE_TILE,2,tiledims)' write(10,*)'Status returned by call to gddeftle ',status write(*,*)'Status returned by call to gddeftle ',status write(*,*)'status = he5_gddeftle(gdid3, 1HE5_HDFE_TILE,2,tiledims)' write(*,*)'Define tiling dimensions ' endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid3,'SideB','YDim,Convection', 1" ",HE5T_NATIVE_INT, HE5_HDFE_NOMERGE) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define field that will be tiled ' write(10,*)'status= he5_gddeffld(gdid3,"SideB", 1"YDim,Convection"," ",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(10,*)'Status returned by call to gddeffld ',status write(*,*)'Define field that will be tiled ' write(*,*)'status= he5_gddeffld(gdid3,"SideB", 1"YDim,Convection","",HE5T_NATIVE_INT,HE5_HDFE_NOMERGE)' write(*,*)'Status returned by call to gddeffld ',status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Returned value from gddetach ', status write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Returned value from gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if (gdid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdattach(gdfid3,"UTMGrid3")' write(10,*)'Returned value from gdattach ', status write(*,*)'status = he5_gddetach(gdfid3,"UTMGrid3")' write(*,*)'Returned value from gdattach ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid3,'Grounding','Conduction', 1" ",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Grounding"' write(10,*)'status= he5_gddeffld(gdid3,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HE5_HDF_NOMERGE)' write(10,*)'Value returned by gddeffld ', status write(*,*)'Define: "Grounding"' write(*,*)'status= he5_gddeffld(gdid3,"Grounding", 1"Conduction","",HE5T_NATIVE_FLOAT,HE5_HDF_NOMERGE)' write(*,*)'Value returned by gddeffld ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefcomp c write(10,27) write(10,*)'Testing he5_gddefcomp... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefcomp... ' write(*,*)'==========================' tiledims(1) = 16 tiledims(2) = 15 status = he5_gddeftle(gdid_utm,HE5_HDFE_TILE,2,tiledims) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'Setup Tiling dimensions ' write(*,*)'Required when using compression' endif write(10,*)' ' write(*,*)' ' status = he5_gddefcomp(gdid_utm,HE5_HDFE_COMP_DEFLATE, compparm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Setup compression mode' write(10,*)'status = he5_gddefcomp(gdid_utm, 1HE5_HDFE_COMP_DEFLATE, compparm)' write(10,*)'Status returned by call to gddefcomp ',status write(*,*)'Setup compression mode' write(*,*)'status = he5_gddefcomp(gdid_utm, 1HE5_HDFE_COMP_DEFLATE, compparm)' write(*,*)'Status returned by call to gddefcomp ',status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,"Voltage","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,0) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Voltage"' write(10,*)'status = he5_gddeffld(gdid_utm,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from gddeffld ', status write(*,*)'Define: "Voltage"' write(*,*)'status = he5_gddeffld(gdid_utm,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from gddeffld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddeftle(gdid3,HE5_HDFE_TILE,2,tiledims) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'Setup Tiling dimensions ' write(*,*)'Required when using compression' endif write(10,*)' ' write(*,*)' ' status = he5_gddefcomp(gdid3, 1HE5_HDFE_COMP_SHUF_SZIP_K13orEC, compparm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Setup compression mode' write(10,*)'status = he5_gddefcomp(gdid3, 1HE5_HDFE_COMP_SHUF_SZIP_K13orEC,compparm)' write(10,*)'Status returned by call to gddefcomp ',status write(*,*)'Setup compression mode' write(*,*)'status = he5_gddefcomp(gdid3, 1HE5_HDFE_COMP_SHUF_SZIP_K13orEC,compparm)' write(*,*)'Status returned by call to gddefcomp ',status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid3,"Voltage","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,0) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Voltage"' write(10,*)'status = he5_gddeffld(gdid3,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from gddeffld ', status write(*,*)'Define: "Voltage"' write(*,*)'status = he5_gddeffld(gdid3,"Voltage", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from gddeffld ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdsetfill c write(10,27) write(10,*)'Testing he5_gdsetfill... ' write(10,*)'========================' write(*,*)'Testing he5_gdsetfill... ' write(*,*)'=========================' status = he5_gdsetfill(gdid_utm, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Testing he5_gdsetfill' write(10,*)'status = he5_gdsetfill(gdid_utm, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(10,*)'Returned from gdsetfill ', status write(*,*)'Testing he5_gdsetfill' write(*,*)'status = he5_gdsetfill(gdid_utm, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(*,*)'Returned from gdsetfill ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,"Drift","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Drift"' write(10,*)'status= he5_gddeffld(gdid_utm,"Drift","YDim,XDim", 1"",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from gddeffld ', status write(*,*)'Define: "Drift"' write(*,*)'status= he5_gddeffld(gdid_utm,"Drift","YDim,XDim", 1"",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from gddeffld ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid_utm,'Impedance','YDim,XDim'," ", 1HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Impedance"' write(10,*)'status= he5_gddeffld(gdid_utm,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from gddeffld ', status write(*,*)'Define: "Impedance"' write(*,*)'status= he5_gddeffld(gdid_utm,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from gddeffld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(*,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned value from gddetach ', status write(*,*)'Returned value from gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if(gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'Handle returned from gdattach ', gdid_utm write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Handle returned from gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' status = he5_gdsetfill(gdid3, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Testing he5_gdsetfill' write(10,*)'status = he5_gdsetfill(gdid3, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(10,*)'Returned from gdsetfill ', status write(*,*)'Testing he5_gdsetfill' write(*,*)'status = he5_gdsetfill(gdid3, "Drift", 1HE5T_NATIVE_FLOAT, fillvalue)' write(*,*)'Returned from gdsetfill ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid3,"Drift","YDim,XDim"," ", 1HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Drift"' write(10,*)'status= he5_gddeffld(gdid3,"Drift","YDim,XDim", 1"",HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from gddeffld ', status write(*,*)'Define: "Drift"' write(*,*)'status= he5_gddeffld(gdid3,"Drift","YDim,XDim", 1"",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from gddeffld ', status endif write(10,*)' ' write(*,*)' ' status= he5_gddeffld(gdid3,'Impedance','YDim,XDim'," ", 1HE5T_NATIVE_FLOAT, HE5_HDFE_AUTOMERGE) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Define: "Impedance"' write(10,*)'status= he5_gddeffld(gdid3,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(10,*)'Value returned from gddeffld ', status write(*,*)'Define: "Impedance"' write(*,*)'status= he5_gddeffld(gdid3,"Impedance", 1"YDim,XDim","",HE5T_NATIVE_FLOAT,HE5_HDFE_AUTOMERGE)' write(*,*)'Value returned from gddeffld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if(status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(*,*)'status = he5_gddetach(gdid3)' write(10,*)'Returned value from gddetach ', status write(*,*)'Returned value from gddetach ', status endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if(gdid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid3 = he5_gdattach(gdfid3, "UTMGrid3")' write(10,*)'Handle returned from gdattach ', gdid3 write(*,*)'gdid3 = he5_gdattach(gdfid3, "UTMGrid3")' write(*,*)'Handle returned from gdattach ',gdid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdwrfld c write(10,27) write(10,*)'Testing he5_gdwrfld... ' write(10,*)'======================' write(*,*)'Testing he5_gdwrfld... ' write(*,*)'======================' start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid_utm,"Voltage",start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Voltage ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Voltage",start, 1stride,edge,utmray)' write(10,*)'Status returned by gdwrfield ', status write(*,*)'Write to field Voltage ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Voltage",start, 1stride,edge,utmray)' write(*,*)'Status returned by gdwrfield ', status endif write(10,*)' ' write(*,*)' ' start(1) = 10 start(2) = 10 edge(1) = 10 edge(2) = 10 status=he5_gdwrfld(gdid_utm,'Drift',start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Drift ' write(10,*)'status=he5_gdwrfld(gdid_utm,"Drift",start, 1stride,edge,utmray)' write(10,*)'Status returned from gdwrfld ', status write(*,*)'Write to field Drift ' write(*,*)'status = he5_gdwrfld(gdid_utm,"Drift",start, 1stride,edge,utmray)' write(*,*)'Status returned from gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start(1) = 0 start(2) = 0 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid_utm, 'Impedance', start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Impedance ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Impedance",start, 1stride,edge,utmray)' write(10,*)'Returned from gdwrfld ', status write(*,*)'Write to field Impedance ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Impedance",start, 1stride,edge,utmray)' write(*,*)'Returned from gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=4800 status= he5_gdwrfld(gdid_utm,'Time',start1d,stride1d, 1edge1d,utmtmeray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Time ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Time",start1d, 1stride1d,edge1d,utmtmeray)' write(10,*)'Status returned by call to gdwrfld ',status write(*,*)'Write to field Time ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Time",start1d,stride1d, 1edge1d,utmtmeray)' write(*,*)'Status returned by call to gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=80 status= he5_gdwrfld(gdid_utm,'Height',start1d,stride1d, 1edge1d,utmhght) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Height ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Height",start1d, 1stride1d,edge1d,utmhght)' write(10,*)'Status returned by call to gdwrfld ',status write(*,*)'Write to field Height ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Height",start1d, 1stride1d,edge1d,utmhght)' write(*,*)'Status returned by call to gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=250 status= he5_gdwrfld(gdid_utm,'Grounding',start1d, 1stride1d,edge1d,ray3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Grounding ' write(10,*)'status= he5_gdwrfld(gdid_utm,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(10,*)'Value returned by gdwrfld ', status write(*,*)'Write to field Grounding ' write(*,*)'status= he5_gdwrfld(gdid_utm,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(*,*)'Value returned by gdwrfld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Value of status returned by gddetach ',status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Value of status returned by gddetach ',status endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'Grid id returned by gdattach ',gdid_utm write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Grid id returned by gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid3,"Voltage",start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Voltage ' write(10,*)'status= he5_gdwrfld(gdid3,"Voltage",start, 1stride,edge,utmray)' write(10,*)'Status returned by gdwrfield ', status write(*,*)'Write to field Voltage ' write(*,*)'status= he5_gdwrfld(gdid3,"Voltage",start, 1stride,edge,utmray)' write(*,*)'Status returned by gdwrfield ', status endif write(10,*)' ' write(*,*)' ' start(1) = 10 start(2) = 10 edge(1) = 10 edge(2) = 10 status=he5_gdwrfld(gdid3,'Drift',start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Drift ' write(10,*)'status=he5_gdwrfld(gdid3,"Drift",start, 1stride,edge,utmray)' write(10,*)'Status returned from gdwrfld ', status write(*,*)'Write to field Drift ' write(*,*)'status = he5_gdwrfld(gdid3,"Drift",start, 1stride,edge,utmray)' write(*,*)'Status returned from gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start(1) = 0 start(2) = 0 edge(1) = 80 edge(2) = 60 status = he5_gdwrfld(gdid3, 'Impedance', start,stride, 1edge,utmray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Impedance ' write(10,*)'status= he5_gdwrfld(gdid3,"Impedance",start, 1stride,edge,utmray)' write(10,*)'Returned from gdwrfld ', status write(*,*)'Write to field Impedance ' write(*,*)'status= he5_gdwrfld(gdid3,"Impedance",start, 1stride,edge,utmray)' write(*,*)'Returned from gdwrfld ', status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=4800 status= he5_gdwrfld(gdid3,'Time',start1d,stride1d, 1edge1d,utmtmeray) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Time ' write(10,*)'status= he5_gdwrfld(gdid3,"Time",start1d, 1stride1d,edge1d,utmtmeray)' write(10,*)'Status returned by call to gdwrfld ',status write(*,*)'Write to field Time ' write(*,*)'status= he5_gdwrfld(gdid3,"Time",start1d,stride1d, 1edge1d,utmtmeray)' write(*,*)'Status returned by call to gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=80 status= he5_gdwrfld(gdid3,'Height',start1d,stride1d, 1edge1d,utmhght) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Height ' write(10,*)'status= he5_gdwrfld(gdid3,"Height",start1d, 1stride1d,edge1d,utmhght)' write(10,*)'Status returned by call to gdwrfld ',status write(*,*)'Write to field Height ' write(*,*)'status= he5_gdwrfld(gdid3,"Height",start1d, 1stride1d,edge1d,utmhght)' write(*,*)'Status returned by call to gdwrfld ',status endif write(10,*)' ' write(*,*)' ' start1d=0 stride1d=1 edge1d=250 status= he5_gdwrfld(gdid3,'Grounding',start1d, 1stride1d,edge1d,ray3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'Write to field Grounding ' write(10,*)'status= he5_gdwrfld(gdid3,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(10,*)'Value returned by gdwrfld ', status write(*,*)'Write to field Grounding ' write(*,*)'status= he5_gdwrfld(gdid3,"Grounding",start1d, 1stride1d,edge1d,ray3)' write(*,*)'Value returned by gdwrfld ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Value of status returned by gddetach ',status write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Value of status returned by gddetach ',status endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'gdid3 = he5_gdattach(gdfid3, "UTMGrid3")' write(10,*)'Grid id returned by gdattach ',gdid3 write(*,*)'gdid3 = he5_gdattach(gdfid3, "UTMGrid3")' write(*,*)'Grid id returned by gdattach ',gdid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdwrattr c write(10,27) write(10,*)'Testing he5_gdwrattr... Global attribute ' write(10,*)'==================================== ' write(*,*)'Testing he5_gdwrattr... Global attribute ' write(*,*)'==================================== ' setcount(1) = 4 status = he5_gdwrattr(gdid_utm, 'Resistance', HE5T_NATIVE_INT, 1setcount, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status= he5_gdwrattr(gdid_utm,"Resistance", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from gdwrattr ', status write(*,*)'status= he5_gdwrattr(gdid_utm,"Resistance", 1HE5T_NATIVE_FLOAT, 4, attr)' write(*,*)'Returned from gdwrattr ', status endif write(10,*)' ' write(*,*)' ' setcount(1) = 4 status = he5_gdwrattr(gdid3, 'Resistance', HE5T_NATIVE_INT, 1setcount, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status= he5_gdwrattr(gdid3,"Resistance", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from gdwrattr ', status write(*,*)'status= he5_gdwrattr(gdid3,"Resistance", 1HE5T_NATIVE_FLOAT, 4, attr)' write(*,*)'Returned from gdwrattr ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdwrgattr c write(10,27) write(10,*)'Testing he5_gdwrgattr... Group attribute ' write(10,*)'==================================== ' write(*,*)'Testing he5_gdwrgattr... Group attribute ' write(*,*)'==================================== ' attr(1) = 22 attr(2) = 44 attr(3) = 66 attr(4) = 88 status = he5_gdwrgattr(gdid_utm, 'group', HE5T_NATIVE_INT, 1setcount, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status= he5_gdwrgattr(gdid_utm,"group", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from gdwrgattr ', status write(*,*)'status= he5_gdwrgattr(gdid_utm,"group", 1HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from gdwrgattr ', status endif write(10,*)' ' write(*,*)' ' status = he5_gdwrgattr(gdid3, 'group', HE5T_NATIVE_INT, 1setcount, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status= he5_gdwrgattr(gdid3,"group", 1HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from gdwrgattr ', status write(*,*)'status= he5_gdwrgattr(gdid3,"group", 1HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from gdwrgattr ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdwrlattr c write(10,27) write(10,*)'Testing he5_gdwrlattr... Local attribute ' write(10,*)'======================================== ' write(*,*)'Testing he5_gdwrlattr... Local attribute ' write(*,*)'======================================== ' attr(1) = 12 attr(2) = 34 attr(3) = 56 attr(4) = 78 status = he5_gdwrlattr(gdid_utm,"Grounding", "local", 1HE5T_NATIVE_INT,setcount, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status= he5_gdwrlattr(gdid_utm,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from gdwrlattr ', status write(*,*)'status= he5_gdwrlattr(gdid_utm,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from gdwrlattr ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Returned from gddetach ', status write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Returned from gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gdwrlattr(gdid3,"Grounding", "local", 1HE5T_NATIVE_INT,setcount, attr) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status= he5_gdwrlattr(gdid3,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(10,*)'Returned from gdwrlattr ', status write(*,*)'status= he5_gdwrlattr(gdid3,"Grounding", 1"local",HE5T_NATIVE_INT, 4, attr)' write(*,*)'Returned from gdwrlattr ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Returned from gddetach ', status write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Returned from gddetach ', status endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid2) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gddetach(gdid2)' write(10,*)'Value returned by gddetach ', status write(*,*)'status = he5_gddetach(gdid2)' write(*,*)'Value returned by gddetach ', status endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdclose c write(10,27) write(10,*)'Testing he5_gdclose... ' write(10,*)'==========================' write(*,*)'Testing he5_gdclose... ' write(*,*)'==========================' status = he5_gdclose(gdfid2) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdclose(gdfid2)' write(10,*)'Value returned by gdclose ', status write(*,*)'status = he5_gdclose(gdfid2)' write(*,*)'Value returned by gdclose ', status endif write(10,*)' ' write(*,*)' ' status = he5_gdclose(gdfid3) if (status .lt. zero) then write(*,231) write(10,231) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdclose(gdfid3)' write(10,*)'Value returned by gdclose ', status write(*,*)'status = he5_gdclose(gdfid3)' write(*,*)'Value returned by gdclose ', status endif write(10,*)' ' write(*,*)' ' status = he5_gdclose(gdfid) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdclose(gdfid)' write(10,*)'Returned from gdclose ', status write(*,*)'status = he5_gdclose(gdfid)' write(*,*)'Returned from gdclose ', status endif write(10,*)' ' write(*,*)' ' gdfid = he5_gdopen('grid.he5',HE5F_ACC_RDWR) if (gdfid .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR)' write(10,*)'gdfid = he5_gdopen("grid.he5",HE5F_ACC_RDWR)' write(*,*)'Grid file id returned by gdopen ',gdfid write(10,*)'Grid file id returned by gdopen ',gdfid endif write(10,*)' ' write(*,*)' ' gdid_utm = he5_gdattach(gdfid, 'UTMGrid') if (gdid_utm .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(10,*)'gdid_utm = he5_gdattach(gdfid, "UTMGrid")' write(*,*)'Grid id returned by gdattach ',gdid_utm write(10,*)'Grid id returned by gdattach ',gdid_utm endif write(10,*)' ' write(*,*)' ' gdfid3 = he5_gdopen('grid3.he5',HE5F_ACC_RDWR) if (gdfid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdfid3 = he5_gdopen("grid3.he5",HE5F_ACC_RDWR)' write(10,*)'gdfid3 = he5_gdopen("grid3.he5",HE5F_ACC_RDWR)' write(*,*)'Grid file id returned by gdopen ',gdfid3 write(10,*)'Grid file id returned by gdopen ',gdfid3 endif write(10,*)' ' write(*,*)' ' gdid3 = he5_gdattach(gdfid3, 'UTMGrid3') if (gdid3 .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'gdid3 = he5_gdattach(gdfid3, "UTMGrid3")' write(10,*)'gdid3 = he5_gdattach(gdfid3, "UTMGrid3")' write(*,*)'Grid id returned by gdattach ',gdid3 write(10,*)'Grid id returned by gdattach ',gdid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqgrid c write(10,27) write(10,*)'Testing he5_gdinqgrid... ' write(10,*)'==========================' write(*,*)'Testing he5_gdinqgrid... ' write(*,*)'==========================' lstatus = he5_gdinqgrid('grid.he5',grdnames,strbufsize) if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqgrid("grid.he5",grdnames, 1strbufsize)' write(*,*)'Names of grids ',grdnames write(*,*)'Number of grids ',lstatus write(*,*)'Size of names of grids ',strbufsize write(10,*)'lstatus = he5_gdinqgrid("grid.he5",grdnames, 1strbufsize)' write(10,*)'Names of grids ',grdnames write(10,*)'Number of grids ',lstatus write(10,*)'Size of names of grids ',strbufsize endif write(10,*)' ' write(*,*)' ' lstatus = he5_gdinqgrid('grid3.he5',grdnames,strbufsize) if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqgrid("grid3.he5",grdnames, 1strbufsize)' write(*,*)'Names of grids ',grdnames write(*,*)'Number of grids ',lstatus write(*,*)'Size of names of grids ',strbufsize write(10,*)'lstatus = he5_gdinqgrid("grid3.he5",grdnames, 1strbufsize)' write(10,*)'Names of grids ',grdnames write(10,*)'Number of grids ',lstatus write(10,*)'Size of names of grids ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdorginfo c write(10,27) write(10,*)'Testing he5_gdorginfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdorginfo... ' write(*,*)'==========================' status = he5_gdorginfo(gdid_utm, orgcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdorginfo(gdid_utm, orgcode)' write(10,*)'lstatus = he5_gdorginfo(gdid_utm, orgcode)' write(*,*)'Value returned by gdorginfo ',status write(10,*)'Value returned by gdorginfo ',status write(*,*)'Origin code value ',orgcode write(10,*)'Origin code value ',orgcode endif write(10,*)' ' write(*,*)' ' status = he5_gdorginfo(gdid3, orgcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdorginfo(gdid3, orgcode)' write(10,*)'lstatus = he5_gdorginfo(gdid3, orgcode)' write(*,*)'Value returned by gdorginfo ',status write(10,*)'Value returned by gdorginfo ',status write(*,*)'Origin code value ',orgcode write(10,*)'Origin code value ',orgcode endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdpreginfo c write(10,27) write(10,*)'Testing he5_gdpreginfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdpreginfo... ' write(*,*)'==========================' status = he5_gdpreginfo(gdid_utm, pixregcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdpreginfo(gdid_utm, pixregcode)' write(10,*)'status = he5_gdpreginfo(gdid_utm, pixregcode)' write(*,*)'Value returned by gdpreginfo ',status write(10,*)'Value returned by gdpreginfo ',status write(*,*)'Pixel reg code ',pixregcode write(10,*)'Pixel reg code ',pixregcode endif write(10,*)' ' write(*,*)' ' status = he5_gdpreginfo(gdid3, pixregcode) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdpreginfo(gdid3, pixregcode)' write(10,*)'status = he5_gdpreginfo(gdid3, pixregcode)' write(*,*)'Value returned by gdpreginfo ',status write(10,*)'Value returned by gdpreginfo ',status write(*,*)'Pixel reg code ',pixregcode write(10,*)'Pixel reg code ',pixregcode endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqdims c write(10,27) write(10,*)'Testing he5_gdinqdims... ' write(10,*)'==========================' write(*,*)'Testing he5_gdinqdims... ' write(*,*)'==========================' status = he5_gdinqdims(gdid_utm, dimname, dims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdims(gdid_utm, dimname, dims)' write(*,*)'Number of dimensions ',status write(*,*)'Dimensions in grid UTM ',dimname write(*,*)'Size of dimensions ' write(10,*)'status = he5_gdinqdims(gdid_utm, dimname, dims)' write(10,*)'Number of dimensions ',status write(10,*)'Dimensions in grid UTM ',dimname write(10,*)'Size of dimensions ' do 130 i=1,status write(*,*)' ',dims(i) write(10,*)' ',dims(i) 130 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdinqdims(gdid3, dimname, dims) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdims(gdid3, dimname, dims)' write(*,*)'Number of dimensions ',status write(*,*)'Dimensions in grid UTM ',dimname write(*,*)'Size of dimensions ' write(10,*)'status = he5_gdinqdims(gdid3, dimname, dims)' write(10,*)'Number of dimensions ',status write(10,*)'Dimensions in grid UTM ',dimname write(10,*)'Size of dimensions ' do 131 i=1,status write(*,*)' ',dims(i) write(10,*)' ',dims(i) 131 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddiminfo c write(10,27) write(10,*)'Testing he5_gddiminfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gddiminfo... ' write(*,*)'==========================' lstatus = he5_gddiminfo(gdid_utm, 'Conduction') if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus=he5_gddiminfo(gdid_utm,"Conduction")' write(*,*)'Size of dimension Conduction ',lstatus write(10,*)'lstatus=he5_gddiminfo(gdid_utm,"Conduction")' write(10,*)'Size of dimension Conduction ',lstatus endif write(10,*)' ' write(*,*)' ' lstatus = he5_gddiminfo(gdid3, 'Conduction') if (lstatus .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus=he5_gddiminfo(gdid3,"Conduction")' write(*,*)'Size of dimension Conduction ',lstatus write(10,*)'lstatus=he5_gddiminfo(gdid3,"Conduction")' write(10,*)'Size of dimension Conduction ',lstatus endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgridinfo c write(10,27) write(10,*)'Testing he5_gdgridinfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdgridinfo... ' write(*,*)'==========================' status= he5_gdgridinfo(gdid_utm,xdimsize,ydimsize, 1upleftpt,lowrtpt) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status= he5_gdgridinfo(gdid_utm,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(*,*)'Status returned by gdgridinfo ',status write(*,11)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(*,12)'Upper left pt ',upleftpt(1),' ',upleftpt(2) write(*,12)'Lower right pt ',lowrtpt(1),' ',lowrtpt(2) write(10,*)'status= he5_gdgridinfo(gdid_utm,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(10,*)'Value returned by gdgridinfo ',status write(10,*)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(10,*)'Upper left pt ',upleftpt(1),upleftpt(2) write(10,*)'Lower right pt ',lowrtpt(1),lowrtpt(2) endif write(10,*)' ' write(*,*)' ' 11 format(a,i2,a,i2) 12 format(a,f14.5,a,f14.5) status= he5_gdgridinfo(gdid3,xdimsize,ydimsize, 1upleftpt,lowrtpt) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status= he5_gdgridinfo(gdid3,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(*,*)'Status returned by gdgridinfo ',status write(*,11)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(*,12)'Upper left pt ',upleftpt(1),' ',upleftpt(2) write(*,12)'Lower right pt ',lowrtpt(1),' ',lowrtpt(2) write(10,*)'status= he5_gdgridinfo(gdid3,xdimsize, 1ydimsize,upleftpt,lowrtpt)' write(10,*)'Value returned by gdgridinfo ',status write(10,*)'X dim size ',xdimsize, ' Y dim size ',ydimsize write(10,*)'Upper left pt ',upleftpt(1),upleftpt(2) write(10,*)'Lower right pt ',lowrtpt(1),lowrtpt(2) endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdprojinfo c write(10,27) write(10,*)'Testing he5_gdprojinfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdprojinfo... ' write(*,*)'==========================' status = he5_gdprojinfo(gdid_utm,pcode,zcode,scode,pparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdprojinfo(gdid_utm,pcode, 1zcode,scode,pparm)' write(*,*)'Status returned by gdprojinfo ',status write(*,*)'Projection code ',pcode, ' Zone code ',zcode write(*,*)'Sphere code ',scode write(10,*)'status = he5_gdprojinfo(gdid_utm,pcode, 1zcode,scode,pparm)' write(10,*)'Value returned by gdprojinfo ',status write(10,*)'Projection code ',pcode, ' Zone code ',zcode write(10,*)'Sphere code ',scode do 140 i=1,16 write(*,55)' ',pparm(i) write(10,55)' ',pparm(i) 140 continue endif 55 format(a,f5.2) write(10,*)' ' write(*,*)' ' status = he5_gdprojinfo(gdid3,pcode,zcode,scode,pparm) if (status .lt. zero) then write(*,230) write(10,230) else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdprojinfo(gdid3,pcode, 1zcode,scode,pparm)' write(*,*)'Status returned by gdprojinfo ',status write(*,*)'Projection code ',pcode, ' Zone code ',zcode write(*,*)'Sphere code ',scode write(10,*)'status = he5_gdprojinfo(gdid3,pcode, 1zcode,scode,pparm)' write(10,*)'Value returned by gdprojinfo ',status write(10,*)'Projection code ',pcode, ' Zone code ',zcode write(10,*)'Sphere code ',scode do 141 i=1,16 write(*,55)' ',pparm(i) write(10,55)' ',pparm(i) 141 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdcompinfo c write(10,27) write(10,*)'Testing he5_gdcompinfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdcompinfo... ' write(*,*)'==========================' status = he5_gdcompinfo(gdid_utm,'Voltage', 1compcodestring,compparm) if (status .lt. zero) then else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdcompinfo(gdid_utm,"Voltage", 1compcode,compparm)' write(10,*)'Compression info for field Voltage' write(10,*)'Comp code ',compcodestring write(10,*)'Compression parameters ',compparm write(*,*)'status = he5_gdcompinfo(gdid_utm,"Voltage", 1compcode,compparm)' write(*,*)'Compression info for field Voltage' write(*,*)'Comp code ',compcodestring write(*,*)'Compression parameters ',compparm endif status = he5_gdcompinfo(gdid3,'Voltage', 1compcodestring,compparm) if (status .lt. zero) then else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdcompinfo(gdid3,"Voltage", 1compcode,compparm)' write(10,*)'Compression info for field Voltage' write(10,*)'Comp code ',compcodestring write(10,*)'Compression parameters ',compparm write(*,*)'status = he5_gdcompinfo(gdid3,"Voltage", 1compcode,compparm)' write(*,*)'Compression info for field Voltage' write(*,*)'Comp code ',compcodestring write(*,*)'Compression parameters ',compparm endif c Test Case -- he5_gdinqflds c write(10,27) write(10,*)'Testing he5_gdinqflds... ' write(10,*)'========================' write(*,*)'Testing he5_gdinqflds... ' write(*,*)'========================' nflds = he5_gdinqflds(gdid_utm,fldlist,rnk,numtype) if (nflds .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'nflds = he5_gdinqflds(gdid_utm, 1fldlist,rnk,numtype)' write(*,*)'Number of fields ',nflds write(10,*)'nflds = he5_gdinqflds(gdid_utm, 1fldlist,rnk,numtype)' write(10,*)'Number of fields ',nflds if (nflds .ne. 0) then write(*,*)'Fields ',fldlist write(10,*)'Fields ',fldlist do 150 i=1,nflds write(*,*)'Rank and type ',rnk(i), ' ',numtype(i) write(10,*)'Rank and type ',rnk(i), ' ',numtype(i) 150 continue endif endif write(10,*)' ' write(*,*)' ' nflds = he5_gdinqflds(gdid3,fldlist,rnk,numtype) if (nflds .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'nflds = he5_gdinqflds(gdid3, 1fldlist,rnk,numtype)' write(*,*)'Number of fields ',nflds write(10,*)'nflds = he5_gdinqflds(gdid3, 1fldlist,rnk,numtype)' write(10,*)'Number of fields ',nflds if (nflds .ne. 0) then write(*,*)'Fields ',fldlist write(10,*)'Fields ',fldlist do 151 i=1,nflds write(*,*)'Rank and type ',rnk(i), ' ',numtype(i) write(10,*)'Rank and type ',rnk(i), ' ',numtype(i) 151 continue endif endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdfldinfo c write(10,27) write(10,*)'Testing he5_gdfldinfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdfldinfo... ' write(*,*)'==========================' status = he5_gdfldinfo(gdid_utm, 'Drift', rnk, dims, 1numtype, dimname, maxdimname) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdfldinfo(gdid_utm, "Drift", 1rnk, dims, numtype, dimname, maxdimname)' write(*,*)'Value returned by gdfldinfo for field Drift ', 1status write(*,*)'Drift rank ',rnk(1) write(*,*)'Dimensions ',dims(1),' ',dims(2) write(*,*)'Number type of field ',numtype(1) write(*,*)'Dimension names ',dimname write(10,*)'status = he5_gdfldinfo(gdid_utm, "Drift", 1rnk, dims, numtype, dimname, maxdimname)' write(10,*)'Value returned by gdfldinfo for field Drift ', 1status write(10,*)'Drift rank ',rnk(1) endif write(10,*)' ' write(*,*)' ' status = he5_gdfldinfo(gdid3, 'Drift', rnk, dims, 1numtype, dimname, maxdimname) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdfldinfo(gdid3, "Drift", 1rnk, dims, numtype, dimname, maxdimname)' write(*,*)'Value returned by gdfldinfo for field Drift ', 1status write(*,*)'Drift rank ',rnk(1) write(*,*)'Dimensions ',dims(1),' ',dims(2) write(*,*)'Number type of field ',numtype(1) write(*,*)'Dimension names ',dimname write(10,*)'status = he5_gdfldinfo(gdid3, "Drift", 1rnk, dims, numtype, dimname, maxdimname)' write(10,*)'Value returned by gdfldinfo for field Drift ', 1status write(10,*)'Drift rank ',rnk(1) endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdrdfld c write(10,27) write(10,*)'Testing he5_gdrdfld... ' write(10,*)'==========================' write(*,*)'Testing he5_gdrdfld... ' write(*,*)'==========================' start(1) = 0 start(2) = 0 stride(1) = 1 stride(2) = 1 edge(1) = 80 edge(2) = 60 status = he5_gdrdfld(gdid_utm,'Drift',start,stride,edge,tempray) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdfld(gdid_utm,"Drift", 1start,stride,edge,tempray)' write(*,*)'Value returned by gdrdfld ',status write(10,*)'status = he5_gdrdfld(gdid_utm,"Drift", 1start,stride,edge,tempray)' write(10,*)'Value returned by gdrdfld ',status do 65 ii=1,6 do 66 i=1,5 write(10,*)'Field value at ',ii,' ',i,' ', 1tempray(ii,i) write(*,*)'Field value at ',ii,' ',i,' ', 1tempray(ii,i) 66 continue 65 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdrdfld(gdid3,'Drift',start,stride,edge,tempray) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdfld(gdid3,"Drift", 1start,stride,edge,tempray)' write(*,*)'Value returned by gdrdfld ',status write(10,*)'status = he5_gdrdfld(gdid3,"Drift", 1start,stride,edge,tempray)' write(10,*)'Value returned by gdrdfld ',status do 75 ii=1,6 do 76 i=1,5 write(10,*)'Field value at ',ii,' ',i,' ', 1tempray(ii,i) write(*,*)'Field value at ',ii,' ',i,' ', 1tempray(ii,i) 76 continue 75 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdnentries c write(10,27) write(10,*)'Testing he5_gdnentries... ' write(10,*)'==========================' write(*,*)'Testing he5_gdnentries... ' write(*,*)'==========================' n=he5_gdnentries(gdid_utm,HE5_HDFE_NENTDIM,strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid_utm, 1HE5_HDFE_NENTDIM, strbufsize)' write(*,*)'Number of dimensions ', n write(*,*)'Size of Dimension string ',strbufsize write(10,*)'n = he5_gdnentries(gdid_utm, 1HE5_HDFE_NENTDIM, strbufsize)' write(10,*)'Number of dimensions ', n write(10,*)'Size of Dimension string ',strbufsize endif n = he5_gdnentries(gdid_utm,HE5_HDFE_NENTDFLD,strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid_utm, 1HE5_HDFE_NENTDFLD,strbufsize)' write(*,*)'Number of data fields ',n write(*,*)'Size of Field string ',strbufsize write(10,*)'n = he5_gdnentries(gdid_utm, 1HDFE_NENTDFLD,strbufsize)' write(10,*)'Number of data fields ',n write(10,*)'Size of Field string ',strbufsize endif write(10,*)' ' write(*,*)' ' n=he5_gdnentries(gdid3,HE5_HDFE_NENTDIM,strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid3, 1HE5_HDFE_NENTDIM, strbufsize)' write(*,*)'Number of dimensions ', n write(*,*)'Size of Dimension string ',strbufsize write(10,*)'n = he5_gdnentries(gdid3, 1HE5_HDFE_NENTDIM, strbufsize)' write(10,*)'Number of dimensions ', n write(10,*)'Size of Dimension string ',strbufsize endif n = he5_gdnentries(gdid3,HE5_HDFE_NENTDFLD,strbufsize) if (n .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'n = he5_gdnentries(gdid3, 1HE5_HDFE_NENTDFLD,strbufsize)' write(*,*)'Number of data fields ',n write(*,*)'Size of Field string ',strbufsize write(10,*)'n = he5_gdnentries(gdid3, 1HDFE_NENTDFLD,strbufsize)' write(10,*)'Number of data fields ',n write(10,*)'Size of Field string ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdattrinfo c write(10,27) write(10,*)'Testing he5_gdattrinfo, Global attribute' write(10,*)'============================================' write(*,*)'Testing he5_gdattrinfo, Global attribute' write(*,*)'============================================' status = he5_gdattrinfo(gdid_utm,'Resistance',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdattrinfo(gdid_utm,"Resistance", 1ntype,count)' write(*,*)'Value returned by gdattrinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdattrinfo(gdid_utm,"Resistance", 1ntype,count)' write(10,*)'Value returned by gdattrinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' status = he5_gdattrinfo(gdid3,'Resistance',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdattrinfo(gdid3,"Resistance", 1ntype,count)' write(*,*)'Value returned by gdattrinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdattrinfo(gdid3,"Resistance", 1ntype,count)' write(10,*)'Value returned by gdattrinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgatinfo c write(10,27) write(10,*)'Testing he5_gdgatinfo, Group attribute' write(10,*)'============================================' write(*,*)'Testing he5_gdgatinfo, Group attribute' write(*,*)'============================================' status = he5_gdgatinfo(gdid_utm,'group',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgatinfo(gdid_utm,"group", 1ntype,count)' write(*,*)'Value returned by gdgatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdgatinfo(gdid_utm,"group", 1ntype,count)' write(10,*)'Value returned by gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' status = he5_gdgatinfo(gdid3,'group',ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgatinfo(gdid3,"group", 1ntype,count)' write(*,*)'Value returned by gdgatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdgatinfo(gdid3,"group", 1ntype,count)' write(10,*)'Value returned by gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdlatinfo c write(10,27) write(10,*)'Testing he5_gdlatinfo, Local attribute' write(10,*)'======================================' write(*,*)'Testing he5_gdlatinfo, Local attribute' write(*,*)'======================================' status = he5_gdlatinfo(gdid_utm,"Grounding","local", 1ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdlatinfo(gdid_utm,"Grounding", 1"local",ntype,count)' write(*,*)'Value returned by gdlatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdlatinfo(gdid_utm,"Grounding", 1"local",ntype,count)' write(10,*)'Value returned by gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' status = he5_gdlatinfo(gdid3,"Grounding","local", 1ntype,count) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdlatinfo(gdid3,"Grounding", 1"local",ntype,count)' write(*,*)'Value returned by gdlatinfo ',status write(*,*)'Number type of attribute ',ntype write(*,*)'Number of total bytes in attribute ',count write(10,*)'status = he5_gdlatinfo(gdid3,"Grounding", 1"local",ntype,count)' write(10,*)'Value returned by gdgatinfo ',status write(10,*)'Number type of attribute ',ntype write(10,*)'Number of total bytes in attribute ',count endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdrdattr c write(10,27) write(10,*)'Testing he5_gdrdattr, Global attribute' write(10,*)'======================================' write(*,*)'Testing he5_gdrdattr, Global attribute' write(*,*)'======================================' status = he5_gdrdattr(gdid_utm,'Resistance',iattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdattr(gdid_utm,"Resistance", 1iattr)' write(*,*)'Value returned by gdrdattr ',status write(10,*)'status = he5_gdrdattr(gdid_utm,"Resistance", 1iattr)' write(10,*)'Value returned by gdrdattr ',status do 67 i=1,count write(10,*)'Attribute value ',iattr(i) write(*,*)'Attribute value ',iattr(i) 67 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdrdattr(gdid3,'Resistance',iattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdattr(gdid3,"Resistance", 1iattr)' write(*,*)'Value returned by gdrdattr ',status write(10,*)'status = he5_gdrdattr(gdid3,"Resistance", 1iattr)' write(10,*)'Value returned by gdrdattr ',status do 77 i=1,count write(10,*)'Attribute value ',iattr(i) write(*,*)'Attribute value ',iattr(i) 77 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdrdgattr c write(10,27) write(10,*)'Testing he5_gdrdgattr, Group attribute ' write(10,*)'======================================' write(*,*)'Testing he5_gdrdgattr, Group attribute' write(*,*)'======================================' status = he5_gdrdgattr(gdid_utm,'group',gattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdgattr(gdid_utm,"group", 1gattr)' write(*,*)'Value returned by gdrdgattr ',status write(10,*)'status = he5_gdrdgattr(gdid_utm,"group", 1gattr)' write(10,*)'Value returned by gdrdgattr ',status do 68 i=1,count write(10,*)'Attribute value ',gattr(i) write(*,*)'Attribute value ',gattr(i) 68 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdrdgattr(gdid3,'group',gattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdgattr(gdid3,"group", 1gattr)' write(*,*)'Value returned by gdrdgattr ',status write(10,*)'status = he5_gdrdgattr(gdid3,"group", 1gattr)' write(10,*)'Value returned by gdrdgattr ',status do 78 i=1,count write(10,*)'Attribute value ',gattr(i) write(*,*)'Attribute value ',gattr(i) 78 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqdatatype c write(10,27) write(10,*)'Testing he5_gdinqdatatype ' write(10,*)'=============================' write(*,*)'Testing he5_gdinqdatatype' write(*,*)'=============================' status = he5_gdinqdatatype(gdid_utm,"Grounding","local", 1HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdatatype(gdid_utm,"Grounding", 1"local",HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(*,*)'Data type of attribute ',dtype write(*,*)'Class id of attribute ',classid write(*,*)'Order of attribute ',order write(*,*)'Size of attribute ',size write(10,*)'status = he5_gdinqdatatype(gdid_utm,"Grounding", 1"local", HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(10,*)'Data type of attribute ',dtype write(10,*)'Class id of attribute ',classid write(10,*)'Order of attribute ',order write(10,*)'Size of attribute ',size endif write(10,*)' ' write(*,*)' ' status = he5_gdinqdatatype(gdid3,"Grounding","local", 1HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdinqdatatype(gdid3,"Grounding", 1"local",HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(*,*)'Data type of attribute ',dtype write(*,*)'Class id of attribute ',classid write(*,*)'Order of attribute ',order write(*,*)'Size of attribute ',size write(10,*)'status = he5_gdinqdatatype(gdid3,"Grounding", 1"local", HE5_HDFE_LOCATTRGROUP,dtype,classid,order,size)' write(10,*)'Data type of attribute ',dtype write(10,*)'Class id of attribute ',classid write(10,*)'Order of attribute ',order write(10,*)'Size of attribute ',size endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdrdlattr c write(10,27) write(10,*)'Testing he5_gdrdlattr, Local attribute ' write(10,*)'======================================' write(*,*)'Testing he5_gdrdlattr, Local attribute' write(*,*)'======================================' status = he5_gdrdlattr(gdid_utm,'Grounding', 1'local',lattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdlattr(gdid_utm,"Grounding", 1"local",lattr)' write(*,*)'Value returned by gdrdlattr ',status write(10,*)'status = he5_gdrdlattr(gdid_utm,"Grounding", 1"local",lattr)' write(10,*)'Value returned by gdrdlattr ',status do 69 i=1,count write(10,*)'Attribute value ',lattr(i) write(*,*)'Attribute value ',lattr(i) 69 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdrdlattr(gdid3,'Grounding', 1'local',lattr) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdrdlattr(gdid3,"Grounding", 1"local",lattr)' write(*,*)'Value returned by gdrdlattr ',status write(10,*)'status = he5_gdrdlattr(gdid3,"Grounding", 1"local",lattr)' write(10,*)'Value returned by gdrdlattr ',status do 79 i=1,count write(10,*)'Attribute value ',lattr(i) write(*,*)'Attribute value ',lattr(i) 79 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqattrs c write(10,27) write(10,*)'Testing he5_gdinqattrs, Global attribute' write(10,*)'========================================' write(*,*)'Testing he5_gdinqattrs, Global attribute' write(*,*)'========================================' lstatus = he5_gdinqattrs(gdid_utm, attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqattrs(gdid_utm, 1attrlist,strbufsize)' write(*,*)'Value returned by gdinqattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqattrs(gdid_utm, 1attrlist,strbufsize)' write(10,*)'Value returned by gdinqattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' lstatus = he5_gdinqattrs(gdid3, attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqattrs(gdid3, 1attrlist,strbufsize)' write(*,*)'Value returned by gdinqattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqattrs(gdid3, 1attrlist,strbufsize)' write(10,*)'Value returned by gdinqattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqgattrs c write(10,27) write(10,*)'Testing he5_gdinqgattrs, Group attribute' write(10,*)'============================================' write(*,*)'Testing he5_gdinqgattrs, Group attribute' write(*,*)'============================================' lstatus = he5_gdinqgattrs(gdid_utm,attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqgattrs(gdid_utm, 1attrlist,strbufsize)' write(*,*)'Value returned by gdinqgattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqgattrs(gdid_utm, 1attrlist,strbufsize)' write(10,*)'Value returned by gdinqgattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' lstatus = he5_gdinqgattrs(gdid3,attrlist,strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqgattrs(gdid3, 1attrlist,strbufsize)' write(*,*)'Value returned by gdinqgattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqgattrs(gdid3, 1attrlist,strbufsize)' write(10,*)'Value returned by gdinqgattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinqlattrs c write(10,27) write(10,*)'Testing he5_gdinqlattrs, Local attribute' write(10,*)'========================================' write(*,*)'Testing he5_gdinqlattrs, Local attribute' write(*,*)'========================================' lstatus = he5_gdinqlattrs(gdid_utm,"Grounding",attrlist, 1strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqlattrs(gdid_utm,"Grounding", 1attrlist,strbufsize)' write(*,*)'Value returned by gdinqlattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqlattrs(gdid_utm,"Grounding", 1attrlist, strbufsize)' write(10,*)'Value returned by gdinqlattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' lstatus = he5_gdinqlattrs(gdid3,"Grounding",attrlist, 1strbufsize) if (lstatus .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'lstatus = he5_gdinqlattrs(gdid3,"Grounding", 1attrlist,strbufsize)' write(*,*)'Value returned by gdinqlattrs ',lstatus write(*,*)'List of attributes ',attrlist write(*,*)'Length of attrlist in bytes ',strbufsize write(10,*)'lstatus = he5_gdinqlattrs(gdid3,"Grounding", 1attrlist, strbufsize)' write(10,*)'Value returned by gdinqlattrs ',lstatus write(10,*)'List of attributes ',attrlist write(10,*)'Length of attrlist in bytes ',strbufsize endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgetfill c write(10,27) write(10,*)'Testing he5_gdgetfill... ' write(10,*)'=======================' write(*,*)'Testing he5_gdgetfill... ' write(*,*)'========================' status = he5_gdgetfill(gdid_utm,'Drift',ifillv) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgetfill(gdid_utm,"Drift", 1ifillv)' write(*,*)'Value returned by gdgetfill ',status write(*,*)'Fill value ',ifillv write(10,*)'status = he5_gdgetfill(gdid_utm,"Drift", 1ifillv)' write(10,*)'Value returned by gdgetfill ',status write(10,*)'Fill value ',ifillv endif write(10,*)' ' write(*,*)' ' status = he5_gdgetfill(gdid3,'Drift',ifillv) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdgetfill(gdid3,"Drift", 1ifillv)' write(*,*)'Value returned by gdgetfill ',status write(*,*)'Fill value ',ifillv write(10,*)'status = he5_gdgetfill(gdid3,"Drift", 1ifillv)' write(10,*)'Value returned by gdgetfill ',status write(10,*)'Fill value ',ifillv endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefboxreg c write(10,27) write(10,*)'Testing he5_gddefboxreg... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefboxreg... ' write(*,*)'==========================' corlon(1)=-126.0 corlon(2)=-121.5 corlat(1)=-70.0 corlat(2)=-65.0 regionid = he5_gddefboxreg(gdid_utm,corlon,corlat) if (regionid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'regionid = he5_gddefboxreg(gdid_utm, 1corlon,corlat)' write(*,*)'Region id returned by gddefboxreg ',regionid write(10,*)'regionid = he5_gddefboxreg(gdid_utm, 1corlon,corlat)' write(10,*)'Region id returned by gddefboxreg ',regionid endif write(10,*)' ' write(*,*)' ' regionid3 = he5_gddefboxreg(gdid3,corlon,corlat) if (regionid3 .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'regionid3 = he5_gddefboxreg(gdid3, 1corlon,corlat)' write(*,*)'Region id returned by gddefboxreg ',regionid3 write(10,*)'regionid3 = he5_gddefboxreg(gdid3, 1corlon,corlat)' write(10,*)'Region id returned by gddefboxreg ',regionid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdreginfo c write(10,27) write(10,*)'Testing he5_gdreginfo... ' write(10,*)'==========================' write(*,*)'Testing he5_gdreginfo... ' write(*,*)'==========================' status = he5_gdreginfo(gdid_utm,regionid,'Impedance',nt,rk, 1dims,size,iuplft,ilrgt) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdreginfo(gdid_utm,regionid, 1"Impedance",nt, rk,dims,size,iuplft,ilrgt)' write(*,*)'Value returned by gdreginfo ',status write(*,*)'Number type of region ',nt write(*,*)'Rank of region ',rk write(*,*)'Size of region ',size write(*,11)'Dimensions of region ',dims(1),' ',dims(2) write(*,12)'Upper left point of region ',iuplft(1),' ', 1iuplft(2) write(*,12)'Lower right point of region ',ilrgt(1),' ', 1ilrgt(2) write(10,*)'status = he5_gdreginfo(gdid_utm,regionid, 1"Impedance",nt,rk,dims,size,iuplft,ilrgt)' write(10,*)'Value returned by gdreginfo ',status write(10,*)'Number type of region ',nt write(10,*)'Rank of region ',rk write(10,*)'Size of region ',size write(10,11)'Dimensions of region ',dims(1),' ',dims(2) write(10,12)'Upper left point of region ',iuplft(1),' ', 1iuplft(2) write(10,12)'Lower right point of region ',ilrgt(1),' ', 1ilrgt(2) endif write(10,*)' ' write(*,*)' ' status = he5_gdreginfo(gdid3,regionid3,'Impedance',nt,rk, 1dims,size,iuplft,ilrgt) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdreginfo(gdid3,regionid3, 1"Impedance",nt, rk,dims,size,iuplft,ilrgt)' write(*,*)'Value returned by gdreginfo ',status write(*,*)'Number type of region ',nt write(*,*)'Rank of region ',rk write(*,*)'Size of region ',size write(*,11)'Dimensions of region ',dims(1),' ',dims(2) write(*,12)'Upper left point of region ',iuplft(1),' ', 1iuplft(2) write(*,12)'Lower right point of region ',ilrgt(1),' ', 1ilrgt(2) write(10,*)'status = he5_gdreginfo(gdid3,regionid3, 1"Impedance",nt,rk,dims,size,iuplft,ilrgt)' write(10,*)'Value returned by gdreginfo ',status write(10,*)'Number type of region ',nt write(10,*)'Rank of region ',rk write(10,*)'Size of region ',size write(10,11)'Dimensions of region ',dims(1),' ',dims(2) write(10,12)'Upper left point of region ',iuplft(1),' ', 1iuplft(2) write(10,12)'Lower right point of region ',ilrgt(1),' ', 1ilrgt(2) endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdextreg c write(10,27) write(10,*)'Testing he5_gdextreg... ' write(10,*)'==========================' write(*,*)'Testing he5_gdextreg... ' write(*,*)'==========================' status = he5_gdextreg(gdid_utm,regionid,'Impedance',datbuf) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdextreg(gdid_utm,regionid, 1"Impedance",datbuf)' write(*,*)'Value returned by gdextreg ',status write(10,*)'status = he5_gdextreg(gdid_utm,regionid, 1"Impedance",datbuf)' write(10,*)'Value returned by gdextreg ',status do 175 i=100,150 write(*,*)'Value of region ',datbuf(i) write(10,*)'Value of region ',datbuf(i) 175 continue endif write(10,*)' ' write(*,*)' ' status = he5_gdextreg(gdid3,regionid3,'Impedance',datbuf) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdextreg(gdid3,regionid3, 1"Impedance",datbuf)' write(*,*)'Value returned by gdextreg ',status write(10,*)'status = he5_gdextreg(gdid3,regionid3, 1"Impedance",datbuf)' write(10,*)'Value returned by gdextreg ',status do 176 i=100,150 write(*,*)'Value of region ',datbuf(i) write(10,*)'Value of region ',datbuf(i) 176 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddeftmeper c write(10,27) write(10,*)'Testing he5_gddeftmeper... ' write(10,*)'==========================' write(*,*)'Testing he5_gddeftmeper... ' write(*,*)'==========================' periodid = he5_gddeftmeper(gdid_utm,HE5_HDFE_NOPREVSUB, 1starttime,stoptime) if (periodid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'periodid = he5_gddeftmeper(gdid_utm, 1HE5_HDFE_NOPREVSUB,starttime,stoptime)' write(10,*)'Define a time period ' write(10,*)'Period id returned by gddeftmeper ',periodid write(*,*)'periodid = he5_gddeftmeper(gdid_utm, 1HE5_HDFE_NOPREVSUB,starttime,stoptime)' write(*,*)'Define a time period ' write(*,*)'Period id returned by gddeftmeper ',periodid endif write(10,*)' ' write(*,*)' ' periodid = he5_gddeftmeper(gdid3,HE5_HDFE_NOPREVSUB, 1starttime,stoptime) if (periodid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'periodid = he5_gddeftmeper(gdid3, 1HE5_HDFE_NOPREVSUB,starttime,stoptime)' write(10,*)'Define a time period ' write(10,*)'Period id returned by gddeftmeper ',periodid write(*,*)'periodid = he5_gddeftmeper(gdid3, 1HE5_HDFE_NOPREVSUB,starttime,stoptime)' write(*,*)'Define a time period ' write(*,*)'Period id returned by gddeftmeper ',periodid endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddefvrtreg c write(10,27) write(10,*)'Testing he5_gddefvrtreg... ' write(10,*)'==========================' write(*,*)'Testing he5_gddefvrtreg... ' write(*,*)'==========================' regionid = he5_gddefvrtreg(gdid_utm,HE5_HDFE_NOPREVSUB, 1'Height',range) if (regionid .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid = he5_gddefvrtreg(gdid_utm, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(10,*)'Define a vertical region ' write(10,*)'Region id returned by gddefvrtreg ',regionid write(*,*)'regionid = he5_gddefvrtreg(gdid_utm, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(*,*)'Define a vertical region ' write(*,*)'Region id returned by gddefvrtreg ',regionid endif write(10,*)' ' write(*,*)' ' regionid3 = he5_gddefvrtreg(gdid3,HE5_HDFE_NOPREVSUB, 1'Height',range) if (regionid3 .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid3 = he5_gddefvrtreg(gdid3, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(10,*)'Define a vertical region ' write(10,*)'Region id returned by gddefvrtreg ',regionid3 write(*,*)'regionid3 = he5_gddefvrtreg(gdid3, 1HE5_HDFE_NOPREVSUB,"Height",range)' write(*,*)'Define a vertical region ' write(*,*)'Region id returned by gddefvrtreg ',regionid3 endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gddupreg c write(10,27) write(10,*)'Testing he5_gddupreg... ' write(10,*)'=======================' write(*,*)'Testing he5_gddupreg... ' write(*,*)'=======================' regionid2 = he5_gddupreg(regionid) if (regionid2 .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid2 = he5_gddupreg(regionid)' write(10,*)'Generate a new region id ' write(10,*)'New region id ',regionid2 write(*,*)'regionid2 = he5_gddupreg(regionid)' write(*,*)'Generate a new region id ' write(*,*)'New region id ',regionid2 endif write(10,*)' ' write(*,*)' ' regionid4 = he5_gddupreg(regionid3) if (regionid4 .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'regionid4 = he5_gddupreg(regionid3)' write(10,*)'Generate a new region id ' write(10,*)'New region id ',regionid4 write(*,*)'regionid4 = he5_gddupreg(regionid3)' write(*,*)'Generate a new region id ' write(*,*)'New region id ',regionid4 endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgetpix c write(10,27) write(10,*)'Testing he5_gdgetpix... ' write(10,*)'==========================' write(*,*)'Testing he5_gdgetpix... ' write(*,*)'==========================' nlonlat = 5 status= he5_gdgetpix(gdid_utm,nlonlat,lonval, 1latval,rowval,colval) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdgetpix(gdid_utm,5,lonval, 1latval,rowval,colval)' write(10,*)'Retrieve pixel row. column values ' write(*,*)'status = he5_gdgetpix(gdid_utm,5,lonval,latval, 1rowval,colval)' write(*,*)'Retrieve pixel row. column values ' do 37 i=1,5 write(10,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) write(*,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) 37 continue endif 5 format(a,f6.1,a,f6.1,a,a,i2,a,i2) write(10,*)' ' write(*,*)' ' status= he5_gdgetpix(gdid3,nlonlat,lonval, 1latval,rowval,colval) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'status = he5_gdgetpix(gdid3,5,lonval, 1latval,rowval,colval)' write(10,*)'Retrieve pixel row. column values ' write(*,*)'status = he5_gdgetpix(gdid3,5,lonval,latval, 1rowval,colval)' write(*,*)'Retrieve pixel row. column values ' do 47 i=1,5 write(10,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) write(*,5)'Pixel position lon lat ',lonval(i),' ', 1latval(i),' ','Row Column ',rowval(i),' ',colval(i) 47 continue endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdgetpixval c write(10,27) write(10,*)'Testing he5_gdgetpixval... ' write(10,*)'==========================' write(*,*)'Testing he5_gdgetpixval... ' write(*,*)'==========================' nlonlat = 5 size= he5_gdgetpixval(gdid_utm,nlonlat,rowval,colval, 1"Voltage",fldval) if (size .le. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus = he5_gdgetpixval(gdid_utm,5,rowval, 1colval,"Voltage",fldval)' write(10,*)'Retrieve pixel values for specific locations ' write(*,*)'lstatus = he5_gdgetpixval(gdid_utm,5,rowval, 1colval,"Voltage",fldval)' write(*,*)'Retrieve pixel values for specific locations ' do i=1,5 write(10,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) write(*,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) enddo endif 17 format(a8,i2,a1,i2,a1,a12,f9.3) write(10,*)' ' write(*,*)' ' size= he5_gdgetpixval(gdid3,nlonlat,rowval,colval, 1"Voltage",fldval) if (size .le. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus = he5_gdgetpixval(gdid3,5,rowval, 1colval,"Voltage",fldval)' write(10,*)'Retrieve pixel values for specific locations ' write(*,*)'lstatus = he5_gdgetpixval(gdid3,5,rowval, 1colval,"Voltage",fldval)' write(*,*)'Retrieve pixel values for specific locations ' do i=1,5 write(10,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) write(*,17)'Row Col ',rowval(i),' ',colval(i),' ', 1'Pixel Value ',fldval(i) enddo endif write(10,*)' ' write(*,*)' ' c Test Case -- he5_gdinterpolate c write(10,27) write(10,*)'Testing he5_gdinterpolate... ' write(10,*)'==========================' write(*,*)'Testing he5_gdinterpolate... ' write(*,*)'==========================' nlonlat = 5 size= he5_gdinterpolate(gdid_utm,nlonlat,lonval,latval, 1'Voltage',interval) if (size .le. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus= he5_gdinterpolate(gdid_utm,5,lonval, 1latval,"Voltage",interval)' write(10,*)'Interpolate 5 values for field Voltage ' write(*,*)'lstatus= he5_gdinterpolate(gdid_utm,5,lonval, 1latval,"Voltage",interval)' write(*,*)'Interpolate 5 values for field Voltage ' write(*,*)'Status returned by call to gdinterpolate ',lstatus do i=1,5 write(*,4)'Interpolated value ',interval(i,1) write(10,4)'Interpolated value ',interval(i,1) enddo endif 4 format(a,f9.3) write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid_utm) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddetach(gdid_utm)' write(*,*)'Value returned by gddetach ',status write(10,*)'status = he5_gddetach(gdid_utm)' write(10,*)'Value returned by gddetach ',status endif size= he5_gdinterpolate(gdid3,nlonlat,lonval,latval, 1'Voltage',interval) if (size .le. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(10,*)'lstatus= he5_gdinterpolate(gdid3,5,lonval, 1latval,"Voltage",interval)' write(10,*)'Interpolate 5 values for field Voltage ' write(*,*)'lstatus= he5_gdinterpolate(gdid3,5,lonval, 1latval,"Voltage",interval)' write(*,*)'Interpolate 5 values for field Voltage ' write(*,*)'Status returned by call to gdinterpolate ',lstatus do i=1,5 write(*,4)'Interpolated value ',interval(i,1) write(10,4)'Interpolated value ',interval(i,1) enddo endif write(10,*)' ' write(*,*)' ' status = he5_gddetach(gdid3) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gddetach(gdid3)' write(*,*)'Value returned by gddetach ',status write(10,*)'status = he5_gddetach(gdid3)' write(10,*)'Value returned by gddetach ',status endif status = he5_gdclose(gdfid) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdclose(gdfid)' write(*,*)'Returned from gdclose ', status write(10,*)'status = he5_gdclose(gdfid)' write(10,*)'Returned from gdclose ', status endif status = he5_gdclose(gdfid3) if (status .lt. zero) then write(10,*)'**********Error unexpected***********' write(*,*)'**********Error unexpected***********' else write(*,*)' ' write(*,240) write(10,*)' ' write(10,240) write(*,*)'status = he5_gdclose(gdfid3)' write(*,*)'Returned from gdclose ', status write(10,*)'status = he5_gdclose(gdfid3)' write(10,*)'Returned from gdclose ', status endif close(unit=10) 27 format(' ') stop end hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/TestGrid.c0000755000175000017500000077423712024715435022652 0ustar amckinstryamckinstry/* *********************************************************** * FILENAME: TestGrid.c * * * * PURPOSE: To test HDF-EOS v.3 Grid interface * * * * Author: * * A. Muslimov /Emergent IT Inc. * * Adura Adekunjo /L3 Comm. EER corp * * Shen Zhao L-3 Comm. GSI * * * * History: * * August 1999 AM Initial version * * 11-Apr-2001 AM Updated * * 02-Dec-2004 AA Updated with testdrivers for * * some new functions (NCR 41197) * * April 2005 SZ Added the EASE grid test case * * * * * *********************************************************** */ #include #include #define BUFSIZE 256 int main(int argc, char *argv[]) { FILE *fp; herr_t status = FAIL; hid_t gdfidc_simple = FAIL; hid_t GDid_UTM3 = FAIL; hid_t GDid_UTM = FAIL; hid_t GDid_GEO = FAIL; hid_t GDid_POLAR_N = FAIL; hid_t GDid_POLAR_S = FAIL; hid_t GDid_IGOODE = FAIL; hid_t GDid_SOM = FAIL; hid_t GDid_LAMAZ = FAIL; hid_t GDid_HOM = FAIL; hid_t GDid_LAMCON = FAIL; hid_t GDid_TM = FAIL; hid_t GDid_POLY = FAIL; hid_t GDid_IS = FAIL; hid_t GDid_MERCAT = FAIL; hid_t GDid_ALBERS = FAIL; hid_t RegionID = FAIL; hid_t PeriodID = FAIL; hid_t NewRegionID = FAIL; hid_t datatype = FAIL; hid_t dtype = FAIL; hid_t return_val = FAIL; int i, j; int Verbosity = 4; int errcnt = 0; int ZoneCode; int SphereCode; int proj_code = FAIL; int z_code = FAIL; int s_code = FAIL; int origin_code = FAIL; int pixreg_code = FAIL; int fieldgroup = FAIL; int *rank; int Rank = FAIL; int tilerank, tilecode; int compcode = 4; int compparm[5] = { 0, 0, 0, 0, 0}; int Attr[4]; int grpattr[3] = {3,7,11}; int gattrvalOut[3] = {0,0,0}; int Attr_out[4] = {-1,-1,-1,-1}; int ndim = FAIL; int nflds = FAIL; hid_t *ntype1; hid_t *ntype; H5T_class_t classid = H5T_NO_CLASS; H5T_order_t order = H5T_ORDER_ERROR; long list_size = FAIL; long strbufsize = FAIL; long *RowVal; long *ColVal; long BufSize = FAIL; long NumPix; long index = 0; long xdim = 0; long ydim = 0; long number = FAIL; float attr[4] = {1.1,2.2,3.3,4.4}; float attrvalOut[4] = { 0, 0, 0, 0}; float fillvalue = -1.11111; float fillvalue_inq = -1.111111; float cnt_UTM = -799.0; float cnt_LAMCON = -134.5; float cnt_time = 35232487.2; float *Buffer_UTM; float *Buffer_LAMCON; float *Buffer_mercat; float *time; float *DatBuf; float *VoltDataOut; float veg[200][120]; double uplft[2] = {0, 0}; double lowrgt[2] = {0, 0}; double *ProjParm; double uplft_out[2] = {-1., -1.}; double lowrgt_out[2] = {-1., -1.}; double *ProjParm_out; double CorLon[2]; double CorLat[2]; double StartTime; double StopTime; double LonVal[5]; double LatVal[5]; double *DatBuf2; char *str_buf; char *str_buf2; char *ObjNamesPtr; hssize_t start[2] = { 0, 0 }; hsize_t ndims = 0; hsize_t CurrentSize[1] = { 0 }; hsize_t stride[2] = { 1, 1 }; hsize_t edge[2] = {1, 1 }; hsize_t dims[8] = {0, 0, 0, 0, 0, 0, 0, 0 }; hsize_t tiledims[8]; hsize_t count; hsize_t *CountPtr = (hsize_t *)NULL; hsize_t Gsize[1] = { 3 }; size_t size = 0; hid_t GDid_EASE = FAIL; long index1 = 0; long index2 = 0; long xdim_ease = 1383; long ydim_ease = 586; float easecnt = 2001.0; /*float easeray[1383][586]; float easeray2[1383][586];*/ float *easeray; float *easeray2; double rcord[4], scord[4]; int npnts; long xdimsize,ydimsize; double longitude[4], latitude[4]; /* ******************************************************************************** * Get comand-line argument (Verbosity) * ******************************************************************************** */ for (i = 1; i < argc; i++) { if ((argc > i + 1) && ((HDstrcmp(argv[i], "-verbose") == 0) || (HDstrcmp(argv[i], "-v") == 0))) { if (argv[i + 1][0] == 'l') Verbosity = 4; else if (argv[i + 1][0] == 'm') Verbosity = 6; else if (argv[i + 1][0] == 'h') Verbosity = 10; else Verbosity = atoi(argv[i + 1]); } } /* Allocate memory for arrays */ Buffer_UTM = (float *)calloc( 4800, sizeof(float) ); Buffer_LAMCON = (float *)calloc( 60021, sizeof(float) ); Buffer_mercat = (float *)calloc( 60021, sizeof(float) ); time = (float *)calloc( 4800, sizeof(float) ); str_buf = (char *)calloc( 256, sizeof(char ) ); str_buf2 = (char *)calloc( 256, sizeof(char ) ); ProjParm_out = (double *)calloc( 16, sizeof(double) ); for ( i = 0; i < 16; i++) { ProjParm_out[ i ] = -0.99999; } ProjParm = (double *)calloc( 16, sizeof(double) ); /* Populate arrays */ while( index < 4800 ) { Buffer_UTM[ index ] = cnt_UTM; cnt_UTM += (float)0.4; index++; } index = 0; while( index < 60021 ) { Buffer_LAMCON[ index ] = cnt_LAMCON; cnt_LAMCON += 0.04; index++; } index = 0; while( index < 60021 ) { Buffer_mercat[ index ] = cnt_LAMCON; cnt_LAMCON += 0.2; index++; } index = 0; while(index < 4800) { time[ index ] = cnt_time; cnt_time += 70.7; index++; } /* index1 = 0; index2 = 0; while(index1 < xdim_ease) { while(index2 < ydim_ease) { easeray[index1][index2] = easecnt; index2++; easecnt = easecnt + 0.2; } index1++; index2 = 0; } index1 = 0; index2 = 0; while(index1 < xdim_ease) { while(index2 < ydim_ease) { easeray2[index1][index2] = easecnt; index2++; easecnt = easecnt - .9; } index1++; index2 = 0; }*/ index1=0; index2=0; xdim_ease =1383; ydim_ease = 586; easeray = (float *) malloc(1383 * 586 * sizeof(float)); for (index1=0; index19) printf(" Call to HDF routine: %15s at line %4d in %s returned %ld \n",where,(int)__LINE__,__FILE__,(long)ret);\ if(ret == val) {printf("*** UNEXPECTED RETURN from %s is %ld at line %4d in %s\n", where, (long)ret, (int)__LINE__,__FILE__); num_errs++;} \ } while(0) /* Used to make certain a return value _is_ a value */ #define VERIFY(x, val, where) \ do {if (Verbosity>9) printf(" Call to HDF routine: %15s at line %4d in %s had value %ld \n",where,(int)__LINE__,__FILE__,(long)x);\ if(x != val) {printf("*** UNEXPECTED VALUE from %s is %ld at line %4d in %s\n", where, (long)x,(int)__LINE__,__FILE__); num_errs++;} \ } while(0) #define RESULT(a) \ do { \ if (Verbosity>8) printf(" Call to HDF routine: %15s at line %4d in %s returned %ld \n",a,(int)__LINE__,__FILE__,(long)ret); \ if (Verbosity>9) HEprint(stdout,0); \ if(ret == FAIL) {printf("*** UNEXPECTED RETURN from %s is %ld at line %4d in %s\n", a, (long)ret,(int)__LINE__,__FILE__); num_errs++;} \ } while(0) #define MESSAGE(v,a) {if (Verbosity>=v) {a}} #endif /* _TUTILS_H */ hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/TestAlias.c0000755000175000017500000002114112024715435022771 0ustar amckinstryamckinstry#include #define FILENAME "Alias.h5" #define RANK 2 main() { herr_t status = FAIL; int i, j; int rank = FAIL; int length = 0; int attr[1] = {2000}; int fieldgroup = FAIL; H5T_class_t dtype = H5T_NO_CLASS; hid_t dtype1 = FAIL; H5T_order_t order = H5T_ORDER_ERROR; long nattr = FAIL; long strbufsize = FAIL; long nfldalias = FAIL; long nalias = FAIL; hid_t GDid = FAIL, gdfid = FAIL; hid_t datatype = FAIL; float out_buffer[ 200 ][ 120 ]; float fillvalue = -777.777; float out_fillvalue = -1.; size_t size = 0; hssize_t start[ 3 ]; hsize_t edge[ 3 ]; hsize_t count[3]; hsize_t nelem = 0; hsize_t dims[8] = {0, 0, 0, 0, 0, 0, 0, 0}; char dimlist[80]; char maxdimlist[80]; char *namebuf, attrlist[80]; int zonecode, spherecode; long xdim, ydim; double projparm[16], uplft[2], lowrgt[2]; int tilerank, compcode = 16; int compparm[5] = {0, 0, 0, 0, 0}; hsize_t tiledims[8]; float veg[200][120]; char fldalias[80]; char aliaslist[80]; /* Fill veg array */ for (i = 0; i < 200; i++) for (j = 0; j < 120; j++) veg[i][j] = (float)(10+i); /* ***************************************************************************** * Open/Create the Grid "UTMGrid" * ***************************************************************************** */ gdfid = HE5_GDopen(FILENAME, H5F_ACC_TRUNC); printf("Grid file ID = %d\n", gdfid); zonecode = 40; spherecode = 0; /* Upper Left and Lower Right points in meters */ /* ------------------------------------------- */ uplft[0] = 210584.50041; uplft[1] = 3322395.95445; lowrgt[0] = 813931.10959; lowrgt[1] = 2214162.53278; xdim = 120; ydim = 200; GDid = HE5_GDcreate(gdfid, "UTMGrid", xdim, ydim, uplft, lowrgt); printf("Grid ID returned by HE5_GDcreate : %d \n", GDid); status = HE5_GDdefproj(GDid, HE5_GCTP_UTM, zonecode, spherecode, projparm); printf("status returned by HE5_GDdefproj(...\"HE5_GCTP_UTM\"...) : %d \n", status); status = HE5_GDsetfillvalue(GDid, "Vegetation", H5T_NATIVE_FLOAT, &fillvalue); printf("Status returned by HE5_GDsetfillvalue(...,\"Vegetation\",...) : %d \n", status); /* Define appendable field "Vegetation" */ tilerank = 2; tiledims[0] = 100; tiledims[1] = 60; compparm[0] = 8; status = HE5_GDdeftile(GDid,HE5_HDFE_TILE,tilerank,tiledims); printf("Status returned by HE5_GDdeftile(): %d\n", status); status = HE5_GDdefcomp(GDid,compcode, compparm); printf("Status returned by HE5_GDdefcomp(): %d\n", status); status = HE5_GDdeffield(GDid, "Vegetation", "YDim,XDim",NULL,H5T_NATIVE_FLOAT, 0); printf("Status returned by HE5_GDdeffield(\"Vegetation\"): %d\n", status); start[0] = 0; start[1] = 0; edge[0] = 200; edge[1] = 120; status = HE5_GDwritefield(GDid, "Vegetation", start, NULL, edge, veg); printf("Status returned by HE5_GDwritefield() : %d \n", status); /* Set aliases for field "Pollution" */ /* --------------------------------- */ status = HE5_GDsetalias(GDid,"Vegetation","Temp,Vege,L2gpValue,ZZZ"); printf("status returned by HE5_GDsetalias = %d\n", status); strcpy(fldalias,""); nfldalias = HE5_GDinqfldalias(GDid, fldalias, &strbufsize); printf("Number of fields & aliases is: %li\n", nfldalias); printf("Fields & aliases list: %s \n", fldalias); printf("Length of fields & aliases list: %li \n", strbufsize); strcpy(aliaslist,""); nalias = HE5_GDgetaliaslist(GDid, HE5_HDFE_DATAGROUP, aliaslist, &strbufsize); printf("Number of aliases is: %li\n", nalias); printf("Aliases list: %s \n", aliaslist); printf("Length of aliases list: %li \n", strbufsize); /* Get information about alias "Vege" */ /* ---------------------------------- */ status = HE5_GDaliasinfo(GDid, HE5_HDFE_DATAGROUP, "Vege", &length, NULL); if (status == SUCCEED) printf("Name length: %d \n", length); namebuf = (char *)calloc(length, sizeof(char)); /* Get the actual name of the field "Vege" */ /* --------------------------------------- */ status = HE5_GDaliasinfo(GDid, HE5_HDFE_DATAGROUP, "Vege", &length, namebuf); if (status == SUCCEED) printf("Original field name: %s \n", namebuf); free(namebuf); /* Remove alias "Temp" from the alias list */ /* --------------------------------------- */ status = HE5_GDdropalias(GDid, HE5_HDFE_DATAGROUP, "Temp"); printf("status returned by HE5_GDdropalias = %d\n", status); /* Get information about alias "L2gpValue" */ /* ---------------------------------------- */ status = HE5_GDaliasinfo(GDid, HE5_HDFE_DATAGROUP, "L2gpValue", &length, NULL); if (status == SUCCEED) printf("Name length: %d \n", length); namebuf = (char *)calloc(length, sizeof(char)); /* Get the actual name of the field "L2gpValue" */ /* -------------------------------------------- */ status = HE5_GDaliasinfo(GDid, HE5_HDFE_DATAGROUP, "L2gpValue", &length, namebuf); if (status == SUCCEED) printf("Original field name: %s \n", namebuf); free(namebuf); edge[0] = 200; edge[1] = 100; /* Read the data from the field calling it by alias */ /* ------------------------------------------------ */ status = HE5_GDreadfield(GDid,"L2gpValue", start, NULL, edge, out_buffer); printf("status returned by HE5_GDreadfield = %d\n", status); printf("Data from \"L2gpValue\" field: \n"); for ( i = 0; i < 5; i++ ) for( j = 0; j < 10; j++ ) printf("%f \n", out_buffer[ i ][ j ]); /* Write local attribute to "L2gpValue" */ /* ------------------------------------ */ count[0] = 1; status = HE5_GDwritelocattr(GDid, "L2gpValue", "LocalAttribute", H5T_NATIVE_INT, count, attr); printf("status returned by HE5_GDwritelocattr = %d\n", status); status = HE5_GDdetach(GDid); printf("status returned by HE5_GDdetach = %d\n", status); GDid = HE5_GDattach(gdfid,"UTMGrid"); printf("Grid ID returned by HE5_GDattach = %d\n", GDid); printf("Local Attributes:\n"); nattr = HE5_GDinqlocattrs(GDid, "L2gpValue", NULL, &strbufsize); printf("Number of attributes: %li \n", nattr); printf("Length of attribute list: %li \n", strbufsize); strcpy(attrlist,""); nattr = HE5_GDinqlocattrs(GDid, "L2gpValue", attrlist, &strbufsize); printf("Attribute list: %s \n", attrlist); printf("Local Attribute:\n"); status = HE5_GDlocattrinfo(GDid,"ZZZ", "LocalAttribute",&dtype1, &nelem); printf("Data type: %d\n", dtype1); printf("Number of elements: %lu \n", (unsigned long)nelem); status = HE5_GDfieldinfo(GDid, "L2gpValue", &rank, dims, &dtype1, dimlist, maxdimlist); printf("Status returned by HE5_GDfieldinfo = %d\n", status); if (status != FAIL) { printf("Field rank: %d \n", rank); printf("Dimension Sizes: \n"); for ( i = 0; i < rank; i++) { printf(" %lu \n", (unsigned long)dims[i]); } printf("Number type ID: %d \n", dtype1); printf("DimList string: %s \n", dimlist); printf("MaxdimList string: %s \n", maxdimlist); } fieldgroup = HE5_HDFE_DATAGROUP; status = HE5_GDinqdatatype(GDid, "ZZZ", NULL, fieldgroup, &datatype, &dtype, &order, &size); printf("status returned by HE5_GDinqdatatype = %d \n", status); if (status != FAIL) { printf("Data type ID: %d \n", datatype); printf("Data type class ID: %d \n", dtype); printf("Byte order: %d \n", order); printf("Data size (bytes): %d \n", (int)size); } status = HE5_GDcompinfo(GDid,"L2gpValue", &compcode, compparm); printf("status returned by HE5_GDcompinfo = %d\n", status); if (status != FAIL) { printf("Compression Information: \n"); printf("Compression code: %d \n", compcode); printf("Compression level: %d \n", compparm[0]); } status = HE5_GDgetfillvalue(GDid,"L2gpValue",&out_fillvalue); printf("status returned by HE5_GDgetfillvalue = %d\n", status); printf("The fill value: %f\n", out_fillvalue); status = HE5_GDdetach(GDid); printf("status returned by HE5_GDdetach = %d\n", status); status = HE5_GDclose(gdfid); printf("status returned by HE5_GDclose = %d\n", status); } hdf-eos5-5.1.14+dfsg.1/testdrivers/grid/hdfeos5_64.inc0000644000175000017500000000101512024715435023270 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5_64.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 19, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines on 64 ! * bit platforms ! * ========================================================== ! * Contents: ! * ! * ! * =========================================================== integer*8 HE5S_UNLIMITED_F_64 parameter(HE5S_UNLIMITED_F_64 = -1) hdf-eos5-5.1.14+dfsg.1/testdrivers/README0000755000175000017500000000605412024715435020675 0ustar amckinstryamckinstry============================================================================== FILE: README UPDATED: 06/20/01 A.M. Aug 02 S.Z ============================================================================== These files are provided as an aid to the user for examples in how to use the HDF-EOS library. The test drivers have been run on every platform supported by the Toolkit. Platforms supported by the Toolkit are listed in the README file located in doc directory. NOTE: YOU MUST HAVE ALL OF THE TEXT DATA FILES IN THE SAME DIRECTORY AS YOUR POINT TEST DRIVERS. THEY WILL CRASH WITHOUT THEM ! THESE DATA FILES ARE: fixedBuoy0.txt fixedBuoy1s.txt floatBuoy1.txt fixedBuoy1.txt floatBuoy0.txt simple.txt DRIVER(S) PLATFORM(S) ========= =========== TestSwath.c C on all supported platforms TestGrid.c TestPoint.c TestZa.c TestProfile.c TestAlias.c testswath32.f FORTRAN 77 on all supported platforms testgrid32.f FORTRAN 90 on SGI for 32-bit testpoint32.f testza32.f testswath64.f FORTRAN 90 on SGI for 64-bit testgrid64.f testpoint64.f testza64.f COMPILING TEST DRIVERS ====================== Below are samples of how the test driver can be compilied and linked to create executables. The HDFSYS flag is set by the user. The list below gives what it should be for each supported platform: PLATFORM HDFSYS FLAG ======== =========== Dec DEC_ALPHA Sgi IRIX Sgi Power Chall. SGI64 Ibm IBM6000 Sun Solaris 2.5 SUN5 Hp HP9000 Linux LINUX ============================================================================== Swath/Point/ZA ------------------------------------------------------------------------------ cc -DHDFSYS -o filename.o -I$HDFINC -I$HDFEOS_INC -c filename.c cc -DHDFSYS -o filename filename.o -L$HDFLIB -L$HDFEOS_LIB \ -lhe5_hdfeos -lhdf5 -lnsl -lm NOTE: substitute "filename" with the name of a driver, AND THE ORDER OF THE LIBRARIES IS IMPORTANT. IN ADDITION: NOTICE THAT WE POINT TO BOTH STANDARD HDF AND HDFEOS LIBRARIES. THE "-lnsl" FLAG IS REQUIRED FOR THE SUN PLATFORMS ONLY ============================================================================== Grid ------------------------------------------------------------------------------ cc -DHDFSYS -o filename.o -I$HDFINC -I$HDFEOS_INC -c filename.c cc -DHDFSYS -o filename filename.o -L$HDFLIB -L$HDFEOS_LIB \ -lhe5_hdfeos -lGctp -lhdf5 -lnsl -lm NOTE: ON LINUX PLATFORM YOU ALSO NEED "-lz" NOTE: subsitute "filename" with the name of a driver, AND THE ORDER OF THE LIBRARIES IS IMPORTANT. IN ADDITION: NOTICE THAT THE GCTP LIBRARY IS SECOND IN THE LIBRARY LIST. ALSO: YOU NEED TO POINT TO WHERE THE GEOLIB LIBRARY IS LOCATED ON YOUR SYSTEM. THE "-lnsl" FLAG IS REQUIRED FOR THE SUN PLATFORMS ONLY ============================================================================== hdf-eos5-5.1.14+dfsg.1/testdrivers/Make_Test0000755000175000017500000001143412024715435021612 0ustar amckinstryamckinstry#-------------------------------------------------------------------------# # # # COPYRIGHT[copyright mark] 2000, Raytheon System Company, its vendors, # # and suppliers. ALL RIGHTS RESERVED. # # # #-------------------------------------------------------------------------# #---------------------------------------------------------------------------- # file: makefile for HDF-EOS testdrivers # # # author: Abe Taaheri # # history: # 04 Jan-2006 AT Initial version # 12 Dec 2006 AT Duplicated makefile with different name so that # we could exclude makefile in testdriver directory # for avoiding conflict with the automake makfile generation #---------------------------------------------------------------------------- # force make to use the 'sh' shell SHELL = /bin/ksh # name of remove utility MAKE=$(MAKECMD) RM= /bin/rm RMFLAGS= -f CFLAGS_SUN= -DSUN5 FFLAGS_SUN= -DSUN5 CFLAGS_HP11= -Aa -Ae -DHP9000 -Dunix FFLAGS_HP11= -Aa -Ae -DHP9000 -Dunix CFLAGS_HP10= -Aa -Ae -DHP9000 -Dunix FFLAGS_HP10= -Aa -Ae -DHP9000 -Dunix CFLAGS_DEC= -DDEC_ALPHA -Dunix FFLAGS_DEC= -DDEC_ALPHA -Dunix CFLAGS_IBM= -DIBM6000 -Dunix FFLAGS_IBM= -DIBM6000 -Dunix CFLAGS_ALL= -D$(HDFSYS) FFLAGS_ALL= -D$(HDFSYS) CFLAGS_SGIn32= -n32 -mips3 -DIRIX -Dunix FFLAGS_SGIn32= -n32 -mips3 -DIRIX -Dunix CFLAGS_SGI64= -64 -mips4 -DSGI64 -Dunix FFLAGS_SGI64= -64 -mips4 -DSGI64 -Dunix CFLAGS_IRX65= -64 -mips4 -DSGI64 -Dunix FFLAGS_IRX65= -64 -mips4 -DSGI64 -Dunix CFLAGS_LINUX= -O2 -ansi -Df2cFortran FFLAGS_LINUX= -O2 -ansi -fno-second-underscore CSUNLIB= -lnsl -lsocket FSUNLIB= -lnsl -lsocket CHP10LIB= FHP10LIB= CHP11LIB= -lnsl FHP11LIB= -lnsl CLINUXLIB= FLINUXLIB= CALLLIB= FALLLIB= all: select_brand select_brand: @if [ $(BRAND) = "sun5.8" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_SUN)"; \ FFLAGS="$(FFLAGS_SUN)"; \ CEXTRAL="$(CSUNLIB)"; \ FEXTRAL="$(FSUNLIB)"; \ elif [ $(BRAND) = "sun5.9" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_SUN)"; \ FFLAGS="$(FFLAGS_SUN)"; \ CEXTRAL="$(CSUNLIB)"; \ FEXTRAL="$(FSUNLIB)"; \ elif [ $(BRAND) = "sun5.10" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_SUN)"; \ FFLAGS="$(FFLAGS_SUN)"; \ CEXTRAL="$(CSUNLIB)"; \ FEXTRAL="$(FSUNLIB)"; \ elif [ $(BRAND) = "hp" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_HP10)"; \ FFLAGS="$(FFLAGS_HP10)"; \ CEXTRAL="$(CHP10LIB)"; \ FEXTRAL="$(FHP10LIB)"; \ elif [ $(BRAND) = "hp11" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_HP11)"; \ FFLAGS="$(FFLAGS_HP11)"; \ CEXTRAL="$(CHP11LIB)"; \ FEXTRAL="$(FHP11LIB)"; \ elif [ $(BRAND) = "dec" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_ALL)"; \ FFLAGS="$(FFLAGS_ALL)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ elif [ $(BRAND) = "ibm" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_ALL)"; \ FFLAGS="$(FFLAGS_ALL)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ elif [ $(BRAND) = "irix65" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_SGI65)"; \ FFLAGS="$(FFLAGS_SGI65)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ elif [ $(BRAND) = "linux" ] ; then \ CC="gcc -m32"; \ F77="g77 -m32"; \ CFLAGS="$(CFLAGS_LINUX)"; \ FFLAGS="$(FFLAGS_LINUX)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ elif [ $(BRAND) = "linux32" ] ; then \ CC="gcc -m32"; \ F77="g77 -m32"; \ CFLAGS="$(CFLAGS_LINUX)"; \ FFLAGS="$(FFLAGS_LINUX)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ elif [ $(BRAND) = "linux64" ] ; then \ CC="gcc"; \ F77="g77"; \ CFLAGS="$(CFLAGS_LINUX)"; \ FFLAGS="$(FFLAGS_LINUX)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ elif [ $(BRAND) = "sgi32" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_SGIn32)"; \ FFLAGS="$(FFLAGS_SGIn32)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ elif [ $(BRAND) = "sgi64" ] ; then \ CC="cc"; \ F77="f77"; \ CFLAGS="$(CFLAGS_SGI64)"; \ FFLAGS="$(FFLAGS_SGI64)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ elif [ $(BRAND) = "macintosh" ] ; then \ CC="gcc"; \ F77="$(F77)"; \ CFLAGS="$(CFLAGS_ALL)"; \ FFLAGS="$(FFLAGS_ALL)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ elif [ $(BRAND) = "macintel" ] ; then \ CC="gcc"; \ F77="$(F77)"; \ CFLAGS="$(CFLAGS_ALL)"; \ FFLAGS="$(FFLAGS_ALL)"; \ CEXTRAL="$(CALLLIB)"; \ FEXTRAL="$(FALLLIB)"; \ else \ echo " The brand $(BRAND) is not supported. " ; \ echo " Set the env. vriable BRAND to a supported one then make this makefile"; \ fi ; \ RM="$(RM)";\ RMFLAGS="$(RMFLAGS)";\ export CC F77 CFLAGS FFLAGS FEXTRAL;\ export CEXTRAL RMFLAGS RM;\ make -f make.com; hdf-eos5-5.1.14+dfsg.1/testdrivers/make.com0000644000175000017500000001002312024715435021416 0ustar amckinstryamckinstryINCDIR = -I$(HDFINC) -I$(HDF5INC) -I$(HDFEOS5_INC) LIBDIR = -L$(HDFLIB) -L$(HDF5LIB) -L$(HDFEOS5_LIB) -lhe5_hdfeos -lGctp $(HDF5LIB)/libhdf5_hl.a $(HDF5LIB)/libhdf5.a -ljpeg -lz $(SZIPLIB)/libsz.a -lm default all: @if [ $(BRAND) = "sgi64" ] || [ $(BRAND) = "linux64" ] ; then \ echo " "; echo " "; \ echo " ---- Making *.c and *.f testdrivers in swath directory ----"; \ cd swath; \ $(CC) $(CFLAGS) -o TestSwath.o $(INCDIR) -c TestSwath.c; \ $(CC) $(CFLAGS) -o TestSwath_c TestSwath.o $(LIBDIR) $(CEXTRAL); \ $(CC) $(CFLAGS) -o TestProfile.o $(INCDIR) -c TestProfile.c; \ $(CC) $(CFLAGS) -o TestProfile_c TestProfile.o $(LIBDIR) $(CEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ $(F77) $(FFLAGS) -o testswath64.o $(INCDIR) -c testswath64.f; \ $(F77) $(FFLAGS) -o testswath64_f testswath64.o $(LIBDIR) $(FEXTRAL); \ $(RM) $(RMFLAGS) *.o; echo " "; echo " "; \ echo " ---- Making *.c and *.f testdrivers in grid directory ----"; \ cd ../grid; $(CC) $(CFLAGS) -o TestGrid.o $(INCDIR) -c TestGrid.c; \ $(CC) $(CFLAGS) -o TestGrid_c TestGrid.o $(LIBDIR) $(CEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ $(F77) $(FFLAGS) -o testgrid64.o $(INCDIR) -c testgrid64.f; \ $(F77) $(FFLAGS) -o testgrid64_f testgrid64.o $(LIBDIR) $(FEXTRAL); \ $(RM) $(RMFLAGS) *.o; echo " "; echo " "; \ echo " ---- Making *.c and *.f testdrivers in point directory ----"; \ cd ../point; $(CC) $(CFLAGS) -o TestPoint.o $(INCDIR) -c TestPoint.c; \ $(CC) $(CFLAGS) -o TestPoint_c TestPoint.o $(LIBDIR) $(CEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ $(F77) $(FFLAGS) -o testpoint64.o $(INCDIR) -c testpoint64.f; \ $(F77) $(FFLAGS) -o testpoint64_f testpoint64.o $(LIBDIR) $(FEXTRAL); \ $(RM) $(RMFLAGS) *.o;echo " "; echo " "; \ echo " ---- Making *.c and *.f testdrivers in za directory ----"; \ cd ../za; $(CC) $(CFLAGS) -o TestZa.o $(INCDIR) -c TestZa.c; \ $(CC) $(CFLAGS) -o TestAlias.o $(INCDIR) -c TestAlias.c; \ $(CC) $(CFLAGS) -o TestZa_c TestZa.o $(LIBDIR) $(CEXTRAL); \ $(CC) $(CFLAGS) -o TestAlias_c TestAlias.o $(LIBDIR) $(CEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ $(F77) $(FFLAGS) -o testza64.o $(INCDIR) -c testza64.f; \ $(F77) $(FFLAGS) -o testza64_f testza64.o $(LIBDIR) $(FEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ else \ echo " "; echo " "; \ echo " ---- Making *.c and *.f testdrivers in swath directory ----"; \ cd swath; \ $(CC) $(CFLAGS) -o TestSwath.o $(INCDIR) -c TestSwath.c; \ $(CC) $(CFLAGS) -o TestSwath_c TestSwath.o $(LIBDIR) $(CEXTRAL); \ $(CC) $(CFLAGS) -o TestProfile.o $(INCDIR) -c TestProfile.c; \ $(CC) $(CFLAGS) -o TestProfile_c TestProfile.o $(LIBDIR) $(CEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ $(F77) $(FFLAGS) -o testswath32.o $(INCDIR) -c testswath32.f; \ $(F77) $(FFLAGS) -o testswath32_f testswath32.o $(LIBDIR) $(FEXTRAL); \ $(RM) $(RMFLAGS) *.o; echo " "; echo " "; \ echo " ---- Making *.c and *.f testdrivers in grid directory ----"; \ cd ../grid; $(CC) $(CFLAGS) -o TestGrid.o $(INCDIR) -c TestGrid.c; \ $(CC) $(CFLAGS) -o TestGrid_c TestGrid.o $(LIBDIR) $(CEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ $(F77) $(FFLAGS) -o testgrid32.o $(INCDIR) -c testgrid32.f; \ $(F77) $(FFLAGS) -o testgrid32_f testgrid32.o $(LIBDIR) $(FEXTRAL); \ $(RM) $(RMFLAGS) *.o; echo " "; echo " "; \ echo " ---- Making *.c and *.f testdrivers in point directory ----"; \ cd ../point; $(CC) $(CFLAGS) -o TestPoint.o $(INCDIR) -c TestPoint.c; \ $(CC) $(CFLAGS) -o TestPoint_c TestPoint.o $(LIBDIR) $(CEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ $(F77) $(FFLAGS) -o testpoint32.o $(INCDIR) -c testpoint32.f; \ $(F77) $(FFLAGS) -o testpoint32_f testpoint32.o $(LIBDIR) $(FEXTRAL); \ $(RM) $(RMFLAGS) *.o;echo " "; echo " "; \ echo " ---- Making *.c and *.f testdrivers in za directory ----"; \ cd ../za; $(CC) $(CFLAGS) -o TestZa.o $(INCDIR) -c TestZa.c; \ $(CC) $(CFLAGS) -o TestAlias.o $(INCDIR) -c TestAlias.c; \ $(CC) $(CFLAGS) -o TestZa_c TestZa.o $(LIBDIR) $(CEXTRAL); \ $(CC) $(CFLAGS) -o TestAlias_c TestAlias.o $(LIBDIR) $(CEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ $(F77) $(FFLAGS) -o testza32.o $(INCDIR) -c testza32.f; \ $(F77) $(FFLAGS) -o testza32_f testza32.o $(LIBDIR) $(FEXTRAL); \ $(RM) $(RMFLAGS) *.o; \ fi ; hdf-eos5-5.1.14+dfsg.1/testdrivers/Makefile.in0000644000175000017500000003510612024715435022057 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # testdrivers top-level Makefile.am # The testdrivers directory should be placed in the HDF-EOS5 directory; # this file should be located at hdfeos5/testdrivers/Makefile.am srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/include.am subdir = testdrivers ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/HE5_config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = swath grid point za threads DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la @THREADSAFE_CONDITIONAL_FALSE@SUBDIRS = swath grid point za # Include boilerplate definitions (from HDF-EOS5 configuration) # Only recurse into the threads directory if threads are being used. @THREADSAFE_CONDITIONAL_TRUE@SUBDIRS = swath grid point za threads all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testdrivers/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign testdrivers/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/0000755000175000017500000000000012024715435021133 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/testdrivers/swath/Makefile.am0000644000175000017500000000201012024715435023160 0ustar amckinstryamckinstry# testdrivers/swath Makefile.am # Boilerplate definitions include $(top_srcdir)/config/include.am # Link against HDF-EOS5 library INCLUDES=-I$(top_srcdir)/include LDADD=$(LIBHDFEOS5) # Build TestSwath from TestSwath.c check_PROGRAMS = TestSwath if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL check_PROGRAMS += testswath32 testswath32_SOURCES = testswath32.f else check_PROGRAMS += testswath64 testswath64_SOURCES = testswath64.f endif endif # Run TestSwath when user types 'make check' TEST_SEQUENCES=test_c VERBOSE_TEST_SEQUENCES=test_c_verbose if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL TEST_SEQUENCES+=test_32f VERBOSE_TEST_SEQUENCES+=test_32f else TEST_SEQUENCES+=test_64f VERBOSE_TEST_SEQUENCES+=test_64f endif endif test_c: $(check_PROGRAMS) ./TestSwath test_c_verbose: $(check_PROGRAMS) ./TestSwath -v h test_32f: $(check_PROGRAMS) ./testswath32 test_64f: $(check_PROGRAMS) ./testswath64 check-local: $(TEST_SEQUENCES) verbose_check: $(VERBOSE_TEST_SEQUENCES) .PHONY: $(TEST_SEQUENCES) hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/hdfeos5.inc0000644000175000017500000003511312024715435023166 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 11, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines ! * ========================================================== ! * Contents: ! * HDFEOS5 data type tags ! * HDFEOS5 logical constants ! * HDFEOS5 file access tags ! * HDFEOS5/GCTP library codes ! * ! * =========================================================== ! HDFEOS5 DATA TYPE TAGS ! ======================= integer HE5T_NATIVE_INT integer HE5T_NATIVE_UINT integer HE5T_NATIVE_SHORT integer HE5T_NATIVE_USHORT integer HE5T_NATIVE_SCHAR integer HE5T_NATIVE_UCHAR integer HE5T_NATIVE_LONG integer HE5T_NATIVE_ULONG integer HE5T_NATIVE_LLONG integer HE5T_NATIVE_ULLONG integer HE5T_NATIVE_FLOAT integer HE5T_NATIVE_REAL integer HE5T_NATIVE_DOUBLE integer HE5T_NATIVE_LDOUBLE integer HE5T_NATIVE_INT8 integer HE5T_NATIVE_UINT8 integer HE5T_NATIVE_INT16 integer HE5T_NATIVE_UINT16 integer HE5T_NATIVE_INT32 integer HE5T_NATIVE_UINT32 integer HE5T_NATIVE_INT64 integer HE5T_NATIVE_UINT64 integer HE5T_NATIVE_B8 integer HE5T_NATIVE_B16 integer HE5T_NATIVE_B32 integer HE5T_NATIVE_B64 integer HE5T_NATIVE_HSIZE integer HE5T_NATIVE_HERR integer HE5T_NATIVE_HBOOL integer HE5T_STD_I8BE integer HE5T_STD_I8LE integer HE5T_STD_I16BE integer HE5T_STD_I16LE integer HE5T_STD_I32BE integer HE5T_STD_I32LE integer HE5T_STD_I64BE integer HE5T_STD_I64LE integer HE5T_STD_U8BE integer HE5T_STD_U8LE integer HE5T_STD_U16BE integer HE5T_STD_U16LE integer HE5T_STD_U32BE integer HE5T_STD_U32LE integer HE5T_STD_U64BE integer HE5T_STD_U64LE integer HE5T_STD_B8BE integer HE5T_STD_B8LE integer HE5T_STD_B16BE integer HE5T_STD_B16LE integer HE5T_STD_B32BE integer HE5T_STD_B32LE integer HE5T_STD_B64BE integer HE5T_STD_B64LE integer HE5T_IEEE_F32BE integer HE5T_IEEE_F32LE integer HE5T_IEEE_F64BE integer HE5T_IEEE_F64LE integer HE5T_NATIVE_CHAR integer HE5T_CHARSTRING parameter(HE5T_NATIVE_INT = 0) parameter(HE5T_NATIVE_UINT = 1) parameter(HE5T_NATIVE_SHORT = 2) parameter(HE5T_NATIVE_USHORT = 3) parameter(HE5T_NATIVE_SCHAR = 4) parameter(HE5T_NATIVE_UCHAR = 5) parameter(HE5T_NATIVE_LONG = 6) parameter(HE5T_NATIVE_ULONG = 7) parameter(HE5T_NATIVE_LLONG = 8) parameter(HE5T_NATIVE_ULLONG = 9) parameter(HE5T_NATIVE_FLOAT =10) parameter(HE5T_NATIVE_REAL =10) parameter(HE5T_NATIVE_DOUBLE =11) parameter(HE5T_NATIVE_LDOUBLE =12) parameter(HE5T_NATIVE_INT8 =13) parameter(HE5T_NATIVE_UINT8 =14) parameter(HE5T_NATIVE_INT16 =15) parameter(HE5T_NATIVE_UINT16 =16) parameter(HE5T_NATIVE_INT32 =17) parameter(HE5T_NATIVE_UINT32 =18) parameter(HE5T_NATIVE_INT64 =19) parameter(HE5T_NATIVE_UINT64 =20) parameter(HE5T_NATIVE_B8 =21) parameter(HE5T_NATIVE_B16 =22) parameter(HE5T_NATIVE_B32 =23) parameter(HE5T_NATIVE_B64 =24) parameter(HE5T_NATIVE_HSIZE =25) parameter(HE5T_NATIVE_HERR =26) parameter(HE5T_NATIVE_HBOOL =27) parameter(HE5T_STD_I8BE =28) parameter(HE5T_STD_I8LE =29) parameter(HE5T_STD_I16BE =30) parameter(HE5T_STD_I16LE =31) parameter(HE5T_STD_I32BE =32) parameter(HE5T_STD_I32LE =33) parameter(HE5T_STD_I64BE =34) parameter(HE5T_STD_I64LE =35) parameter(HE5T_STD_U8BE =36) parameter(HE5T_STD_U8LE =37) parameter(HE5T_STD_U16BE =38) parameter(HE5T_STD_U16LE =39) parameter(HE5T_STD_U32BE =40) parameter(HE5T_STD_U32LE =41) parameter(HE5T_STD_U64BE =42) parameter(HE5T_STD_U64LE =43) parameter(HE5T_STD_B8BE =44) parameter(HE5T_STD_B8LE =45) parameter(HE5T_STD_B16BE =46) parameter(HE5T_STD_B16LE =47) parameter(HE5T_STD_B32BE =48) parameter(HE5T_STD_B32LE =49) parameter(HE5T_STD_B64BE =50) parameter(HE5T_STD_B64LE =51) parameter(HE5T_IEEE_F32BE =52) parameter(HE5T_IEEE_F32LE =53) parameter(HE5T_IEEE_F64BE =54) parameter(HE5T_IEEE_F64LE =55) parameter(HE5T_NATIVE_CHAR =56) parameter(HE5T_CHARSTRING =57) integer HE5S_UNLIMITED_F parameter(HE5S_UNLIMITED_F = -1) ! HDFEOS5 FILE ACCESS TAGS ! ======================== integer HE5F_ACC_RDWR integer HE5F_ACC_RDONLY integer HE5F_ACC_TRUNC parameter(HE5F_ACC_RDWR = 100) parameter(HE5F_ACC_RDONLY = 101) parameter(HE5F_ACC_TRUNC = 102) ! TOOLKIT FILE ACCESS TAGS ! ======================== integer HDF4_ACC_RDONLY integer HDF4_ACC_RDWR integer HDF4_ACC_CREATE integer HDF5_ACC_RDONLY integer HDF5_ACC_RDWR integer HDF5_ACC_CREATE parameter(HDF4_ACC_RDONLY = 1) parameter(HDF4_ACC_RDWR = 3) parameter(HDF4_ACC_CREATE = 4) parameter(HDF5_ACC_RDONLY = 11) parameter(HDF5_ACC_RDWR = 13) parameter(HDF5_ACC_CREATE = 14) ! HDFEOS5 MERGE CODES ! ==================== integer HE5_HDFE_NOMERGE integer HE5_HDFE_AUTOMERGE parameter(HE5_HDFE_NOMERGE =0) parameter(HE5_HDFE_AUTOMERGE =1) ! HDFEOS5 XXentries CODES ! ======================= integer HE5_HDFE_NENTDIM integer HE5_HDFE_NENTMAP integer HE5_HDFE_NENTIMAP integer HE5_HDFE_NENTGFLD integer HE5_HDFE_NENTDFLD parameter(HE5_HDFE_NENTDIM =0) parameter(HE5_HDFE_NENTMAP =1) parameter(HE5_HDFE_NENTIMAP =2) parameter(HE5_HDFE_NENTGFLD =3) parameter(HE5_HDFE_NENTDFLD =4) ! HDFEOS5 ANGLE CONVERSION CODES ! ============================== integer HE5_HDFE_RAD_DEG integer HE5_HDFE_DEG_RAD integer HE5_HDFE_DMS_DEG integer HE5_HDFE_DEG_DMS integer HE5_HDFE_RAD_DMS integer HE5_HDFE_DMS_RAD parameter(HE5_HDFE_RAD_DEG =0) parameter(HE5_HDFE_DEG_RAD =1) parameter(HE5_HDFE_DMS_DEG =2) parameter(HE5_HDFE_DEG_DMS =3) parameter(HE5_HDFE_RAD_DMS =4) parameter(HE5_HDFE_DMS_RAD =5) ! HDFEOS5 SWATH SUBSET CODES ! ========================== integer HE5_HDFE_MIDPOINT integer HE5_HDFE_ENDPOINT integer HE5_HDFE_ANYPOINT integer HE5_HDFE_INTERNAL integer HE5_HDFE_EXTERNAL integer HE5_HDFE_NOPREVSUB parameter(HE5_HDFE_MIDPOINT =0) parameter(HE5_HDFE_ENDPOINT =1) parameter(HE5_HDFE_ANYPOINT =2) parameter(HE5_HDFE_INTERNAL =0) parameter(HE5_HDFE_EXTERNAL =1) parameter(HE5_HDFE_NOPREVSUB =-1) ! HDFEOS5 GRID ORIGIN CODES ! ========================= integer HE5_HDFE_GD_UL integer HE5_HDFE_GD_UR integer HE5_HDFE_GD_LL integer HE5_HDFE_GD_LR parameter(HE5_HDFE_GD_UL =0) parameter(HE5_HDFE_GD_UR =1) parameter(HE5_HDFE_GD_LL =2) parameter(HE5_HDFE_GD_LR =3) ! HDFEOS5 PIXEL REGISTRATION CODES ! ================================ integer HE5_HDFE_CENTER integer HE5_HDFE_CORNER parameter(HE5_HDFE_CENTER =0) parameter(HE5_HDFE_CORNER =1) ! HDFEOS5 GCTP PROJECTION CODES ! ============================= integer HE5_GCTP_GEO integer HE5_GCTP_UTM integer HE5_GCTP_SPCS integer HE5_GCTP_ALBERS integer HE5_GCTP_LAMCC integer HE5_GCTP_MERCAT integer HE5_GCTP_PS integer HE5_GCTP_POLYC integer HE5_GCTP_EQUIDC integer HE5_GCTP_TM integer HE5_GCTP_STEREO integer HE5_GCTP_LAMAZ integer HE5_GCTP_AZMEQD integer HE5_GCTP_GNOMON integer HE5_GCTP_ORTHO integer HE5_GCTP_GVNSP integer HE5_GCTP_SNSOID integer HE5_GCTP_EQRECT integer HE5_GCTP_MILLER integer HE5_GCTP_VGRINT integer HE5_GCTP_HOM integer HE5_GCTP_ROBIN integer HE5_GCTP_SOM integer HE5_GCTP_ALASKA integer HE5_GCTP_GOOD integer HE5_GCTP_MOLL integer HE5_GCTP_IMOLL integer HE5_GCTP_HAMMER integer HE5_GCTP_WAGIV integer HE5_GCTP_WAGVII integer HE5_GCTP_OBLEQA integer HE5_GCTP_ISINUS parameter(HE5_GCTP_GEO =0) parameter(HE5_GCTP_UTM =1) parameter(HE5_GCTP_SPCS =2) parameter(HE5_GCTP_ALBERS =3) parameter(HE5_GCTP_LAMCC =4) parameter(HE5_GCTP_MERCAT =5) parameter(HE5_GCTP_PS =6) parameter(HE5_GCTP_POLYC =7) parameter(HE5_GCTP_EQUIDC =8) parameter(HE5_GCTP_TM =9) parameter(HE5_GCTP_STEREO =10) parameter(HE5_GCTP_LAMAZ =11) parameter(HE5_GCTP_AZMEQD =12) parameter(HE5_GCTP_GNOMON =13) parameter(HE5_GCTP_ORTHO =14) parameter(HE5_GCTP_GVNSP =15) parameter(HE5_GCTP_SNSOID =16) parameter(HE5_GCTP_EQRECT =17) parameter(HE5_GCTP_MILLER =18) parameter(HE5_GCTP_VGRINT =19) parameter(HE5_GCTP_HOM =20) parameter(HE5_GCTP_ROBIN =21) parameter(HE5_GCTP_SOM =22) parameter(HE5_GCTP_ALASKA =23) parameter(HE5_GCTP_GOOD =24) parameter(HE5_GCTP_MOLL =25) parameter(HE5_GCTP_IMOLL =26) parameter(HE5_GCTP_HAMMER =27) parameter(HE5_GCTP_WAGIV =28) parameter(HE5_GCTP_WAGVII =29) parameter(HE5_GCTP_OBLEQA =30) parameter(HE5_GCTP_ISINUS =99) ! HDFEOS5 TILIND/COMPRESSION CODES ! ================================ integer HE5_HDFE_NOTILE integer HE5_HDFE_TILE integer HE5_HDFE_COMP_NONE integer HE5_HDFE_COMP_RLE integer HE5_HDFE_COMP_NBIT integer HE5_HDFE_COMP_SKPHUFF integer HE5_HDFE_COMP_DEFLATE integer HE5_HDFE_COMP_SZIP_CHIP integer HE5_HDFE_COMP_SZIP_K13 integer HE5_HDFE_COMP_SZIP_EC integer HE5_HDFE_COMP_SZIP_NN integer HE5_HDFE_COMP_SZIP_K13orEC integer HE5_HDFE_COMP_SZIP_K13orNN integer HE5_HDFE_COMP_SHUF_DEFLATE integer HE5_HDFE_COMP_SHUF_SZIP_CHIP integer HE5_HDFE_COMP_SHUF_SZIP_K13 integer HE5_HDFE_COMP_SHUF_SZIP_EC integer HE5_HDFE_COMP_SHUF_SZIP_NN integer HE5_HDFE_COMP_SHUF_SZIP_K13orEC integer HE5_HDFE_COMP_SHUF_SZIP_K13orNN parameter(HE5_HDFE_NOTILE =0) parameter(HE5_HDFE_TILE =1) parameter(HE5_HDFE_COMP_NONE =0) parameter(HE5_HDFE_COMP_RLE =1) parameter(HE5_HDFE_COMP_NBIT =2) parameter(HE5_HDFE_COMP_SKPHUFF =3) parameter(HE5_HDFE_COMP_DEFLATE =4) parameter(HE5_HDFE_COMP_SZIP_CHIP =5) parameter(HE5_HDFE_COMP_SZIP_K13 =6) parameter(HE5_HDFE_COMP_SZIP_EC =7) parameter(HE5_HDFE_COMP_SZIP_NN =8) parameter(HE5_HDFE_COMP_SZIP_K13orEC =9) parameter(HE5_HDFE_COMP_SZIP_K13orNN =10) parameter(HE5_HDFE_COMP_SHUF_DEFLATE =11) parameter(HE5_HDFE_COMP_SHUF_SZIP_CHIP =12) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13 =13) parameter(HE5_HDFE_COMP_SHUF_SZIP_EC =14) parameter(HE5_HDFE_COMP_SHUF_SZIP_NN =15) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orEC =16) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orNN =17) ! HDFEOS5 GROUP CODES ! =================== integer HE5_HDFE_GEOGROUP integer HE5_HDFE_DATAGROUP integer HE5_HDFE_ATTRGROUP integer HE5_HDFE_GRPATTRGROUP integer HE5_HDFE_LOCATTRGROUP integer HE5_HDFE_PROFGROUP integer HE5_HDFE_PROFGRPATTRGROUP integer HE5_HDFE_GEOGRPATTRGROUP parameter(HE5_HDFE_GEOGROUP =0) parameter(HE5_HDFE_DATAGROUP =1) parameter(HE5_HDFE_ATTRGROUP =2) parameter(HE5_HDFE_GRPATTRGROUP =3) parameter(HE5_HDFE_LOCATTRGROUP =4) parameter(HE5_HDFE_PROFGROUP =5) parameter(HE5_HDFE_PROFGRPATTRGROUP =6) parameter(HE5_HDFE_GEOGRPATTRGROUP =7) hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/testswath64.f0000755000175000017500000024633512024715435023522 0ustar amckinstryamckinstryc---------------------------------------------------------------------------- c Copyright (C) 2000 Emergent IT Inc. and Raytheon Systems Company | c---------------------------------------------------------------------------- c testswath64.f | c In this program we create, define and write a simple swath hdfeos file | c using the swath interface | c---------------------------------------------------------------------------- program testswath64 implicit none include 'hdfeos5.inc' integer status integer index1 integer index2 integer swfid integer swid integer swid2 integer rank integer n, nt integer dtype integer classid integer order integer rdattr(4) integer global_attr(4) integer compparm(5) integer cnkrank integer rdcompparm(5) integer compcode integer regionid integer regionid2 integer regionid3 integer ntype(5) integer rnk(5) integer ntyped(5) integer rnkd(5) integer he5_swopen integer he5_swcreate integer he5_swattach integer he5_swdefdim integer he5_swdefgfld integer he5_swdefdfld integer he5_swdefmap integer he5_swdefchunk integer he5_swdefcomp integer he5_swsetfill integer he5_swwrattr integer he5_swdefimap integer he5_swwrlattr integer he5_swwrfld integer he5_swrdfld integer he5_swwrgattr integer he5_swrdattr integer he5_swrdgattr integer he5_swrdlattr integer he5_swdefvrtreg integer he5_swdefboxreg integer he5_swdeftmeper integer he5_swgmapinfo integer he5_swfldinfo integer he5_swcompinfo integer he5_swmapinfo integer he5_swattrinfo integer he5_swgattrinfo integer he5_swreginfo integer he5_swextreg integer he5_swregidx integer he5_swperinfo integer he5_swextper integer he5_swlattrinfo integer he5_swgetfill integer he5_swidtype integer he5_swdupreg integer he5_swdetach integer he5_swclose integer*8 he5_swupimap integer*8 he5_swinqswath integer*8 he5_swnentries integer*8 he5_swinqmaps integer*8 he5_swinqimaps integer*8 he5_swinqdims integer*8 he5_swdiminfo integer*8 he5_swimapinfo integer*8 he5_swinqattrs integer*8 he5_swinqgattrs integer*8 he5_swinqlattrs integer*8 he5_swinqgflds integer*8 he5_swinqdflds integer*8 size integer*8 strbufsize integer*8 ndims integer*8 chunkdims(1) integer*8 start(2) integer*8 stride(2) integer*8 dataedge(2) integer*8 geoedge(2) integer*8 geostart(2) integer*8 istart(2) integer*8 iedge(2) integer*8 dedge(2) integer*8 sd_start(2) integer*8 sd_stride(2) integer*8 sd_edge(2) integer*8 rd_start(2) integer*8 rd_stride(2) integer*8 rd_edge(2) integer*8 indexmap(30) integer*8 dimsize integer*8 nattr integer*8 nswath integer*8 idxsz integer*8 nmaps integer*8 tstart(1) integer*8 tstride(1) integer*8 tedge(1) integer*8 strbufsz2 integer*8 nflds integer*8 idxrange(2) integer*8 count(1) integer*8 offset integer*8 inc integer*8 status4 integer*8 zero integer*8 ndxmap(2) integer*8 dims(5) integer*8 latdims(2) integer*8 upidxmap(50) integer*8 idxmap(50) integer*8 dim1 integer*8 dim2 integer*8 dim3 integer*8 dim4 real grpattr(3) real locattr(3) real rdgnlattr(3) real ray1(100,40) real ray2(40,100) real lat(40,50) real lon(40,50) real ray4(40,100) real ray3(40,40) real temp(40,100) real idxlat(30,30) real idxlon(30,30) real latcnt real loncnt real raycnt real idxlatcnt real idxloncnt real fillvalue real rdfilval real tempbuf(4200) real*8 cornerlon(2) real*8 cornerlat(2) real*8 twodtime(40,50) real*8 onedtime(40) real*8 range(2) real*8 tmcnt real*8 starttime real*8 endtime character*(256) geodim character*(256) idxdimmap character*(256) dimmap character*(256) dimname character*(256) fieldlist character*(256) attrlist character*(256) swathlist character*(256) dimens character*(256) maxdims dim1 = 30 dim2 = 40 dim3 = 50 dim4 = 100 count(1) = 3 compparm(1) = 6 compparm(2) = 0 compparm(3) = 0 compparm(4) = 0 compparm(5) = 0 cnkrank = 1 chunkdims(1) = 10 rdcompparm(1) = 1 rdcompparm(2) = 1 rdcompparm(3) = 1 rdcompparm(4) = 1 rdcompparm(5) = 1 compcode = -1 raycnt = -799.0 tmcnt = 46353400.0d0 starttime = 46353450.0d0 endtime = 46500000.0d0 range(1) = 46353450.0d0 range(2) = 46500000.0d0 latcnt = 39.8 loncnt = 78.0 global_attr(1)= 11 global_attr(2)= 33 global_attr(3)= 66 global_attr(4)= 99 grpattr(1) = 21.7 grpattr(2) = 24.3 grpattr(3) = 26.3 locattr(3) = 21.7 locattr(2) = 24.3 locattr(1) = 26.3 start(1) = 10 start(2) = 10 tstart(1) = 0 tstride(1) = 1 tedge(1) = 40 geostart(1) = 0 geostart(2) = 0 stride(1) = 1 stride(2) = 1 sd_start(1) = 0 sd_start(2) = 0 sd_stride(1) = 1 sd_stride(2) = 1 sd_edge(1) = 100 sd_edge(2) = 40 rd_start(1) = 0 rd_start(2) = 0 rd_stride(1) = 1 rd_stride(2) = 1 rd_edge(1) = 40 rd_edge(2) = 100 dataedge(1) = 20 dataedge(2) = 50 geoedge(1) = 40 geoedge(2) = 50 idxlatcnt = 39.8 idxloncnt = 78.0 istart(1) = 0 istart(2) = 0 iedge(1) = 30 iedge(2) = 30 dedge(1) = 40 dedge(2) = 40 rank = 2 fillvalue = 16.0 cornerlon(1) = 75.0 cornerlon(2) = 78.0 cornerlat(1) = 38.0 cornerlat(2) = 39.8 indexmap(1) = 1 indexmap(2) = 2 indexmap(3) = 3 indexmap(4) = 4 indexmap(5) = 6 indexmap(6) = 7 indexmap(7) = 8 indexmap(8) = 9 indexmap(9) = 11 indexmap(10) = 12 indexmap(11) = 13 indexmap(12) = 14 indexmap(13) = 16 indexmap(14) = 17 indexmap(15) = 18 indexmap(16) = 19 indexmap(17) = 21 indexmap(18) = 22 indexmap(19) = 23 indexmap(20) = 24 indexmap(21) = 26 indexmap(22) = 27 indexmap(23) = 28 indexmap(24) = 29 indexmap(25) = 31 indexmap(26) = 32 indexmap(27) = 33 indexmap(28) = 34 indexmap(29) = 36 indexmap(30) = 37 zero = 0 c c This section of the program just fills some arrays with data that will be c used later in the program c do 110 index1=1,100 do 100 index2=1,40 ray1(index1, index2)=raycnt ray2(index2, index1)=raycnt + 1.0 ray4(index2,index1) = raycnt raycnt = raycnt +1. 100 continue 110 continue do 130 index1=1,40 do 120 index2=1,50 lat(index1, index2)=latcnt lon(index1, index2)=loncnt twodtime(index1,index2)=tmcnt loncnt=loncnt-.1 tmcnt=tmcnt+5.0 120 continue onedtime(index1)=tmcnt latcnt=latcnt-0.1 loncnt = 78.0 130 continue do 150 index1=1,30 do 140 index2=1,30 idxlat(index1, index2)=idxlatcnt idxlon(index1, index2)=idxloncnt idxloncnt=idxloncnt-.1 140 continue idxlatcnt=idxlatcnt-.1 idxloncnt=78.0 150 continue do 170 index1=1,40 do 160 index2=1,40 ray3(index1, index2)=raycnt raycnt = raycnt+1.25 160 continue 170 continue do 987 index1=1,50 idxmap(index1)=zero upidxmap(index1)=zero 987 continue 230 format('********Error unexpected**********') 240 format('***********Passed Test*********') open(unit=1, file="testswath.txt", status = "UNKNOWN") write(*,*)'Testing he5_swath FORTRAN 77 interface' write(*,*)'======================================' write(1,*)'Testing he5_swath FORTRAN 77 interface' write(1,*)'======================================' write(*,*)' ' write(1,*)' ' c Test Case -- he5_swopen c write(*,*)'Testing he5_swopen ' write(*,*)'=====================' write(1,*)'Testing he5_swopen ' write(1,*)'=====================' swfid=he5_swopen('swath.he5',HE5F_ACC_TRUNC) if (swfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' swfid= he5_swopen("swath.he5",HE5F_ACC_TRUNC)' write(*,*)' Value returned by he5_swopen ', swfid write(1,*)' swfid= he5_swopen("swath.he5",HE5F_ACC_TRUNC)' write(1,*)' Value returned by he5_swopen ', swfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swcreate c write(1,27) write(*,*)'Testing he5_swcreate ' write(*,*)'=====================' write(1,*)'Testing he5_swcreate ' write(1,*)'=====================' swid=he5_swcreate(swfid,'Simplef') if (swid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid=he5_swcreate(swfid, "Simplef")' write(*,*)'Value returned by he5_swcreate ', swid write(1,*)'swid= he5_swcreate(swfid, "Simplef")' write(1,*)'Value returned by he5_swcreate ', swid endif write(*,*)' ' write(1,*)' ' swid2=he5_swcreate(swfid,'Indexedf') if (swid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid2= he5_swcreate(swfid, "Indexedf")' write(*,*)'Value returned by he5_swcreate ', swid2 write(1,*)'swid2= he5_swcreate(swfid, "Indexedf")' write(1,*)'Value returned by he5_swcreate ', swid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefdim c write(1,27) write(*,*)'Testing he5_swdefdim ' write(*,*)'=====================' write(1,*)'Testing he5_swdefdim ' write(1,*)'=====================' status=he5_swdefdim(swid,'DataTrack',dim4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid, "DataTrack", 100)' write(*,*)' Value returned by he5_swdefdim ',status write(1,*)' status= he5_swdefdim(swid, "DataTrack", 100)' write(1,*)' Value returned by he5_swdefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid,'DataXtrack',dim2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid, "DataXtrack", 40)' write(*,*)' Value returned by he5_swdefdim ',status write(1,*)' status= he5_swdefdim(swid, "DataXtrack", 40)' write(1,*)' Value returned by he5_swdefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid,'GeoTrack',dim3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid, "GeoTrack", 50)' write(*,*)' Value returned by he5_swdefdim ',status write(1,*)' status= he5_swdefdim(swid, "GeoTrack", 50)' write(1,*)' Value returned by he5_swdefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid,'GeoXtrack',dim2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid, "GeoXtrack", 40)' write(*,*)' Value returned by he5_swdefdim ',status write(1,*)' status= he5_swdefdim(swid, "GeoXtrack", 40)' write(1,*)' Value returned by he5_swdefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'DataTrack',dim2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid2, "DataTrack", 40)' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)' status= he5_swdefdim(swid2, "DataTrack", 40)' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'DataXtrack',dim2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid2, "DataXtrack", 40)' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)' status= he5_swdefdim(swid2, "DataXtrack", 40)' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'GeoTrack',dim1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid2, "GeoTrack", 30)' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)' status= he5_swdefdim(swid2, "GeoTrack", 30)' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'GeoXtrack',dim1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid2, "GeoXtrack", 30)' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)' status= he5_swdefdim(swid2, "GeoXtrack", 30)' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'Timedim',dim2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define dimension Timedim ' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)'Define dimension Timedim ' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefgfld c write(1,27) write(*,*)'Testing he5_swdefgfld ' write(*,*)'=====================' write(1,*)'Testing he5_swdefgfld ' write(1,*)'=====================' status=he5_swdefgfld(swid,'Latitude','GeoXtrack,GeoTrack', 1' ',HE5T_NATIVE_FLOAT,0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefgfld(swid,"Latitude", 1"GeoXtrack,GeoTrack"," ", HE5T_NATIVE_FLOAT, 0)' write(1,*)'status= he5_swdefgfld(swid,"Latitude", 1"GeoXtrack,GeoTrack"," ", HE5T_NATIVE_FLOAT, 0)' write(1,*)'Value returned by he5_swdefgfld ',status write(*,*)'Value returned by he5_swdefgfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid,'Longitude','GeoXtrack,GeoTrack', 1' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swdefgfld ',status write(1,*)'Value returned by he5_swdefgfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid2,'Latitude','GeoXtrack,GeoTrack', 1' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swdefgfld ', status write(1,*)'Value returned by he5_swdefgfld ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid2,'Longitude','GeoXtrack,GeoTrack', 1' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swdefgfld ', status write(1,*)'Value returned by he5_swdefgfld ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid2,'Time','Timedim',' ', 1HE5T_NATIVE_DOUBLE, 0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define field Time for swath Indexedf ' write(*,*)'Status returned from call to he5_swdefgfld ',status write(1,*)'Define field Time for swath Indexedf ' write(1,*)'Status returned from call to he5_swdefgfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid,'Time','GeoXtrack,GeoTrack', 1' ', HE5T_NATIVE_DOUBLE, 0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefgfld(swid, "Time","GeoXtrack,GeoTrack", 1"",HE5T_NATIVE_DOUBLE, 0)' write(*,*)'Value returned by he5_swdefgfld ',status write(1,*)'status= he5_swdefgfld(swid, "Time","GeoXtrack,GeoTrack", 1"",HE5T_NATIVE_DOUBLE, 0)' write(1,*)'Value returned by he5_swdefgfld ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefdfld c write(1,27) write(*,*)'Testing he5_swdefdfld ' write(*,*)'=====================' write(1,*)'Testing he5_swdefdfld ' write(1,*)'=====================' status=he5_swdefdfld(swid,'SideA','DataXtrack,DataTrack', 1' ', HE5T_NATIVE_FLOAT, 0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field SideA ' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'Define data field SideA ' write(1,*)'Value returned by he5_swdefdfld ',status write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swsetfill c write(1,27) write(*,*)'Testing he5_swsetfill ' write(*,*)'=====================' write(1,*)'Testing he5_swsetfill ' write(1,*)'=====================' status= he5_swsetfill(swid,'Temperature', 1HE5T_NATIVE_FLOAT, fillvalue) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swsetfill(swid,"Temperature", 1HE5T_NATIVE_FLOAT, fillvalue)' write(*,*)'Value returned by he5_swsetfill ',status write(1,*)'status=he5_swsetfill(swid,"Temperature", 1HE5T_NATIVE_FLOAT, fillvalue)' write(1,*)'Value returned by he5_swsetfill ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdfld(swid,'Temperature', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field Temperature ' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'Define data field Temperature ' write(1,*)'Value returned by he5_swdefdfld ',status write(*,*)' ' write(1,*)' ' endif status= he5_swsetfill(swid,'Conduction', 1HE5T_NATIVE_FLOAT,fillvalue) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swsetfill(swid,"Conduction", 1HE5T_NATIVE_FLOAT,fillvalue)' write(*,*)'Value returned by he5_swsetfill ',status write(1,*)'status=he5_swsetfill(swid,"Conduction", 1HE5T_NATIVE_FLOAT,fillvalue)' write(1,*)'Value returned by he5_swsetfill ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdfld(swid,'Conduction', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT,0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefdfld(swid,"Conduction", 1"DataXtrack,DataTrack","",HE5T_NATIVE_FLOAT, 0)' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'status= he5_swdefdfld(swid,"Conduction", 1"DataXtrack,DataTrack","",HE5T_NATIVE_FLOAT, 0)' write(1,*)'Value returned by he5_swdefdfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdfld(swid2,'Sensor1', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swdefdfld(swid2, "Sensor1", 1"DataTrack,DataXtrack","",HE5T_NATIVE_FLOAT, 0)' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'status= he5_swdefdfld(swid2, "Sensor1", 1"DataTrack,DataXtrack","",HE5T_NATIVE_FLOAT, 0)' write(1,*)'Value returned by he5_swdefdfld ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefchunk c write(1,27) write(*,*)'Testing he5_swdefchunk' write(*,*)'======================' write(1,*)'Testing he5_swdefchunk' write(1,*)'======================' status=he5_swdefchunk(swid,cnkrank,chunkdims) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefchunk(swid, cnkrank, chunkdims)' write(*,*)'Value returned by he5_swdefchunk ',status write(1,*)'status= he5_swdefchunk(swid, cnkrank, chunkdims)' write(1,*)'Value returned by he5_swdefchunk ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefcomp c write(1,27) write(*,*)'Testing he5_swdefcomp' write(*,*)'=====================' write(1,*)'Testing he5_swdefcomp' write(1,*)'=====================' status=he5_swdefcomp(swid,HE5_HDFE_COMP_DEFLATE,compparm) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefcomp(swid,HE5_HDFE_COMP_DEFLATE, 1compparm)' write(*,*)'Value returned by he5_swdefcomp ',status write(1,*)'status= he5_swdefcomp(swid,HE5_HDFE_COMP_DEFLATE, 1compparm)' write(1,*)'Value returned by he5_swdefcomp ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdfld(swid,'CompChunk','GeoTrack', 1' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field CompChunk ' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'Define data field CompChunk ' write(1,*)'Value returned by he5_swdefdfld ',status write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swdetach c write(1,27) write(*,*)'Testing he5_swdetach ' write(*,*)'=====================' write(1,*)'Testing he5_swdetach ' write(1,*)'=====================' status=he5_swdetach(swid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdetach(swid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid2)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid2)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' swid=he5_swattach(swfid,'Simplef') if (swid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid= he5_swattach(swfid, "Simplef")' write(*,*)'Value returned by he5_swattach ',swid write(1,*)'swid= he5_swattach(swfid, "Simplef")' write(1,*)'Value returned by he5_swattach ',swid endif write(*,*)' ' write(1,*)' ' swid2=he5_swattach(swfid,'Indexedf') if (swid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid2= he5_swattach(swfid, "Indexedf")' write(*,*)'Value returned by he5_swattach ',swid2 write(1,*)'swid2= he5_swattach(swfid, "Indexedf")' write(1,*)'Value returned by he5_swattach ',swid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefmap c write(1,27) write(*,*)'Testing he5_swdefmap ' write(*,*)'=====================' write(1,*)'Testing he5_swdefmap ' write(1,*)'=====================' offset = 0 inc = 2 status=he5_swdefmap(swid,'GeoTrack','DataTrack', 1offset,inc) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefmap(swid,"GeoTrack", 1"DataTrack", offset, inc)' write(*,*)'Value returned by he5_swdefmap ',status write(1,*)'status= he5_swdefmap(swid,"GeoTrack", 1"DataTrack", offset, inc)' write(1,*)'Value returned by he5_swdefmap ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefimap c write(1,27) write(*,*)'Testing he5_swdefimap ' write(*,*)'=====================' write(1,*)'Testing he5_swdefimap ' write(1,*)'=====================' status=he5_swdefimap(swid2,'GeoTrack','DataTrack',indexmap) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefimap(swid2, "GeoTrack", 1"DataTrack",indexmap)' write(*,*)'Value returned by he5_swdefimap ',status write(1,*)'status= he5_swdefimap(swid2, "GeoTrack", 1"DataTrack",indexmap)' write(1,*)'Value returned by he5_swdefimap ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefimap(swid2,'GeoXtrack','DataXtrack', 1indexmap) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swdefimap(swid2, "GeoXtrack", 1"DataXtrack",indexmap)' write(*,*)'Value returned by he5_swdefimap ',status write(1,*)'status=he5_swdefimap(swid2, "GeoXtrack", 1"DataXtrack",indexmap)' write(1,*)'Value returned by he5_swdefimap ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdetach c write(1,27) write(*,*)'Testing he5_swdetach ' write(*,*)'=====================' write(1,*)'Testing he5_swdetach ' write(1,*)'=====================' status= he5_swdetach(swid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid2)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid2)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swclose(swfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swclose(swfid)' write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' swfid=he5_swopen('swath.he5',HE5F_ACC_RDWR) if (swfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swfid=he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_swopen ',swfid write(1,*)'swfid=he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_swopen ',swfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swattach c write(1,27) write(*,*)'Testing he5_swattach ' write(*,*)'=====================' write(1,*)'Testing he5_swattach ' write(1,*)'=====================' swid=he5_swattach(swfid,'Simplef') if (swid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid= he5_swattach(swfid, "Simplef")' write(*,*)'Value returned by he5_swattach ',swid write(1,*)'swid= he5_swattach(swfid, "Simplef")' write(1,*)'Value returned by he5_swattach ',swid endif write(*,*)' ' write(1,*)' ' swid2=he5_swattach(swfid,'Indexedf') if (swid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid2= he5_swattach(swfid, "Indexedf")' write(*,*)'Value returned by he5_swattach ',swid2 write(1,*)'swid2= he5_swattach(swfid, "Indexedf")' write(1,*)'Value returned by he5_swattach ',swid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swwrfld c write(1,27) write(*,*)'Testing he5_swwrfld ' write(*,*)'===================' write(1,*)'Testing he5_swwrfld ' write(1,*)'===================' status=he5_swwrfld(swid,'SideA',sd_start,stride, 1rd_edge, ray4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Write data field SideA ' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'Write data field SideA ' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Temperature',start,stride, 1dataedge, ray4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrfld(swid,"Temperature",start, 1stride,dataedge, ray1)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status=he5_swwrfld(swid,"Temperature",start, 1stride,dataedge, ray1)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Conduction',start,stride, 1dataedge, ray2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrfld(swid,"Conduction",start, 1stride,dataedge, ray2)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status=he5_swwrfld(swid,"Conduction",start, 1stride,dataedge, ray2)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Latitude',geostart,stride, 1geoedge,lat) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swwrfld(swid, "Latitude", geostart, 1stride, geoedge, lat)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid, "Latitude", geostart, 1stride, geoedge, lat)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Longitude',geostart,stride, 1geoedge,lon) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swwrfld(swid,"Longitude",geostart, 1stride,geoedge, lon)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid,"Longitude",geostart, 1stride,geoedge, lon)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Time',geostart,stride,geoedge, 1twodtime) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrfld(swid,"Time",geostart,stride, 1geoedge, twodtime)' write(*,*)'Value returned by he5_swwrfld for Time ',status write(1,*)'status= he5_swwrfld(swid, "Time", geostart, stride, 1geoedge, twodtime)' write(1,*)'Value returned by he5_swwrfld for Time ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid2,'Latitude',istart,stride, 1iedge,idxlat) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swwrfld(swid2,"Latitude", 1istart,stride,iedge,idxlat)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid2,"Latitude", 1istart,stride,iedge,lat)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid2,'Longitude',istart,stride, 1iedge,idxlon) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrfld(swid2,"Longitude", 1istart,stride,iedge,idxlon)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid2,"Longitude", 1istart,stride,iedge,idxlon)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid2,'Time',tstart,tstride, 1tedge,onedtime) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Write field Time ' write(*,*)'Status returned by he5_swwrfld ',status write(1,*)'Write field Time ' write(1,*)'Status returned by he5_swwrfld ',status write(*,*)' ' write(1,*)' ' endif iedge(1)=40 iedge(2)=40 status=he5_swwrfld(swid2,'Sensor1',istart,stride, 1iedge,ray3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swwrfld(swid2, "Sensor1", 1istart, stride, iedge, ray3)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid2, "Sensor1", 1istart, stride, iedge, ray3)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swwrlattr c write(1,27) write(*,*)'Testing he5_swwrlattr, Local Attribute ' write(*,*)'================================== ' write(1,*)'Testing he5_swwrlattr, Local Attribute ' write(1,*)'================================== ' status=he5_swwrlattr(swid2,'Sensor1','local', 1HE5T_NATIVE_FLOAT,count,locattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrlattr(swid2,"Sensor1","local", 1HE5T_NATIVE_FLOAT,count,locattr)' write(*,*)'Value returned by he5_swwrlattr ',status write(1,*)'status=he5_swwrlattr(swid2,"Sensor1", "local", 1HE5T_NATIVE_FLOAT,count,locattr)' write(1,*)'Value returned by he5_swwrlattr ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swwrattr c count(1) = 4 write(1,27) write(*,*)'Testing he5_swwrattr, Global Attribute ' write(*,*)'====================================== ' write(1,*)'Testing he5_swwrattr, Global Attribute ' write(1,*)'======================================= ' status=he5_swwrattr(swid,'Drift',HE5T_NATIVE_INT,count, 1global_attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrattr(swid, "Drift", 1HE5T_NATIVE_INT, count, global_attr)' write(*,*)'Value returned by he5_swwrattr ',status write(1,*)'status=he5_swwrattr(swid, "Drift", 1HE5T_NATIVE_INT, count, global_attr)' write(1,*)'Value returned by he5_swwrattr ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swwrgattr c count(1) = 3 write(1,27) write(*,*)'Testing he5_swwrgattr, Group Attribute ' write(*,*)'====================================== ' write(1,*)'Testing he5_swwrgattr, Group Attribute ' write(1,*)'====================================== ' status=he5_swwrgattr(swid,'group',HE5T_NATIVE_FLOAT, 1count,grpattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrgattr(swid, "group", 1HE5T_NATIVE_FLOAT,count,grpgattr)' write(*,*)'Value returned by he5_swwrgattr ',status write(1,*)'status=he5_swwrgattr(swid, "group", 1HE5T_NATIVE_FLOAT,count,grpattr)' write(1,*)'Value returned by he5_swwrgattr ',status endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid2)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid2)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swclose c write(1,27) write(*,*)'Testing he5_swclose ' write(*,*)'===================' write(1,*)'Testing he5_swclose ' write(1,*)'===================' status= he5_swclose(swfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' swfid= he5_swopen('swath.he5',HE5F_ACC_RDWR) if (swfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_swopen ', swfid write(1,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_swopen ', swfid endif write(*,*)' ' write(1,*)' ' swid= he5_swattach(swfid,'Simplef') if (swid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid= he5_swattach(swfid, "Simplef")' write(*,*)'Value returned by he5_swattach ',swid write(1,*)'swid= he5_swattach(swfid, "Simplef")' write(1,*)'Value returned by he5_swattach ',swid endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swclose(swfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swclose(swfid)' write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' swfid= he5_swopen('swath.he5',HE5F_ACC_RDWR) if (swfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_swopen ',swfid write(1,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_swopen ',swfid endif write(*,*)' ' write(1,*)' ' swid=he5_swattach(swfid,'Simplef') if (swid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid= he5_swattach(swfid, "Simplef")' write(*,*)'Value returned by he5_swattach ',swid write(1,*)'swid= he5_swattach(swfid, "Simplef")' write(1,*)'Value returned by he5_swattach ',swid endif write(*,*)' ' write(1,*)' ' swid2=he5_swattach(swfid,'Indexedf') if (swid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid2= he5_swattach(swfid, "Indexedf")' write(*,*)'Value returned by he5_swattach ',swid2 write(1,*)'swid2= he5_swattach(swfid, "Indexedf")' write(1,*)'Value returned by he5_swattach ',swid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefvrtreg c write(1,27) write(*,*)'Testing he5_swdefvrtreg' write(*,*)'=======================' write(1,*)'Testing he5_swdefvrtreg' write(1,*)'=======================' regionid=he5_swdefvrtreg(swid2,HE5_HDFE_NOPREVSUB,'Time',range) if (regionid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define region id for field Time ' write(*,*)'Region id returned by he5_swdefvrtreg ', 1regionid write(1,*)'Define region id for field Time ' write(1,*)'Region id returned by he5_swdefvrtreg ', 1regionid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swnentries c write(1,27) write(*,*)'Testing he5_swnentries ' write(*,*)'=====================' write(1,*)'Testing he5_swnentries ' write(1,*)'=====================' nmaps=he5_swnentries(swid,1,strbufsize) if (nmaps .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nmaps= he5_swnentries(swid, 1, strbufsize)' write(*,*)'Number of dimension mappings ',nmaps write(*,*)'Size of strbufsize ',strbufsize write(1,*)'nmaps= he5_swnentries(swid, 1, strbufsize)' write(1,*)'Number of dimension mappings ',nmaps write(1,*)'Size of strbufsize ',strbufsize endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqmaps c write(1,27) write(*,*)'Testing he5_swinqmaps ' write(*,*)'=====================' write(1,*)'Testing he5_swinqmaps ' write(1,*)'=====================' offset = -1 inc = -1 nmaps=he5_swinqmaps(swid, dimmap, offset, inc) if (nmaps .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nmaps=he5_swinqmaps(swid,dimmap,offset,inc)' write(*,*)'Dimension mappings ',dimmap write(*,*)'offset ',offset write(*,*)'increment ',inc write(1,*)'nmaps=he5_swinqmaps(swid,dimmap,offset,inc)' write(1,*)'Dimension mappings ',dimmap write(1,*)'offset ',offset write(1,*)'increment ',inc endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swgmapinfo c write(1,27) write(*,*)'Testing he5_swgmapinfo ' write(*,*)'======================' write(1,*)'Testing he5_swgmapinfo ' write(1,*)'======================' status = he5_swgmapinfo(swid2,'GeoTrack') if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status = he5_swgmapinfo(swid2, "GeoTrack")' write(1,*)'status = he5_swgmapinfo(swid2, "GeoTrack")' write(*,*)'Status returned by he5_swgmapinfo ',status write(1,*)'Status returned by he5_swgmapinfo ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqimaps c write(1,27) write(*,*)'Testing he5_swinqimaps ' write(*,*)'=====================' write(1,*)'Testing he5_swinqimaps ' write(1,*)'=====================' nmaps=he5_swinqimaps(swid2, idxdimmap, ndxmap) if (nmaps .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nmaps=he5_swinqimaps(swid2,idxdimmap,ndxmap)' write(*,*)'Number of indexed mappings ',nmaps write(*,*)'Indexed Dimension mappings ',idxdimmap write(*,*)'Index size ',ndxmap write(1,*)'nmaps=he5_swinqimaps(swid2,idxdimmap,ndxmap)' write(1,*)'Number of indexed mappings ',nmaps write(1,*)'Indexed Dimension mappings ',idxdimmap write(1,*)'Index size ',ndxmap endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqdims c write(1,27) write(*,*)'Testing he5_swinqdims ' write(*,*)'=====================' write(1,*)'Testing he5_swinqdims ' write(1,*)'=====================' ndims=he5_swinqdims(swid,dimname,dims) if (ndims .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'ndims= he5_swinqdims(swid, dimname, dims)' write(*,*)'Number of dimesions ',ndims write(*,*)'Names of dimensions ',dimname write(*,*)'Size of dimensions ',dims write(1,*)'ndims= he5_swinqdims(swid, dimname, dims)' write(1,*)'Number of dimesions ',ndims write(1,*)'Names of dimensions ',dimname write(1,*)'Size of dimensions ',dims endif write(*,*)' ' write(1,*)' ' ndims= he5_swinqdims(swid2, dimname, dims) if (ndims .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'ndims=he5_swinqdims(swid2,dimname,dims)' write(*,*)'Number of dimesions ',ndims write(*,*)'Names of dimensions ',dimname write(*,*)'Size of dimensions ',dims write(1,*)'ndims=he5_swinqdims(swid2,dimname,dims)' write(1,*)'Number of dimesions ',ndims write(1,*)'Names of dimensions ',dimname write(1,*)'Size of dimensions ',dims endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqgflds c write(1,27) write(*,*)'Testing he5_swinqgflds ' write(*,*)'======================' write(1,*)'Testing he5_swinqgflds ' write(1,*)'======================' nflds= he5_swinqgflds(swid,fieldlist,rnk,ntype) if (nflds .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nflds=he5_swinqgflds(swid,fieldlist,rnk,ntype)' write(*,*)'Number of geolocation fields in swath ',nflds write(*,*)'Names of geolocation fields ',fieldlist write(*,*)'Rank of fields ',rnk write(*,*)'Number type of fields ',ntype write(1,*)'nflds=he5_swinqgflds(swid,fieldlist,rnk,ntype)' write(1,*)'Number of geolocation fields in swath ',nflds write(1,*)'Names of geolocation fields ',fieldlist write(1,*)'Rank of fields ',rnk write(1,*)'Number type of fields ',ntype endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqdflds c write(1,27) write(*,*)'Testing he5_swinqdflds ' write(*,*)'======================' write(1,*)'Testing he5_swinqdflds ' write(1,*)'======================' nflds=he5_swinqdflds(swid,fieldlist,rnkd,ntyped) if (nflds .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nflds=he5_swinqdflds(swid,fieldlist,rnkd,ntyped)' write(*,*)'Number of data fields in swath ',nflds write(*,*)'Names of data fields ',fieldlist write(*,*)'Rank of fields ',rnkd write(*,*)'Number type of fields ',ntyped write(1,*)'nflds=he5_swinqdflds(swid,fieldlist,rnkd,ntyped)' write(1,*)'Number of data fields in swath ',nflds write(1,*)'Names of data fields ',fieldlist write(1,*)'Rank of fields ',rnkd write(1,*)'Number type of fields ',ntyped endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdiminfo c write(1,27) write(*,*)'Testing he5_swdiminfo ' write(*,*)'=====================' write(1,*)'Testing he5_swdiminfo ' write(1,*)'=====================' dimsize= he5_swdiminfo(swid,'DataTrack') if (dimsize .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'dimsize= he5_swdiminfo(swid, "DataTrack")' write(*,*)'Size of dimension DataTrack ',dimsize write(1,*)'dimsize= he5_swdiminfo(swid, "DataTrack")' write(1,*)'Size of dimension DataTrack ',dimsize write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swrdfld c write(1,27) write(*,*)'Testing he5_swrdfld ' write(*,*)'===================' write(1,*)'Testing he5_swrdfld ' write(1,*)'===================' rd_start(1)=0 rd_start(2)=0 rd_stride(1)=1 rd_stride(2)=1 rd_edge(1)=40 rd_edge(2)=100 status= he5_swrdfld(swid,'Conduction',rd_start, 1rd_stride,rd_edge,temp) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swrdfld ',status write(*,*)'status= he5_swrdfld(swid, "Conduction", 1rd_start,rd_stride, rd_edge, temp)' write(1,*)'status= he5_swrdfld(swid, "Conduction", 1rd_start,rd_stride, rd_edge, temp)' write(1,*)'Value returned by he5_swrdfld ',status do 190 index1=10,15 do 180 index2=10,15 write(*,*)'value of conduction ',temp(index1,index2) write(1,*)'value of conduction ',temp(index1,index2) 180 continue 190 continue endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swfldinfo c write(1,27) write(*,*)'Testing he5_swfldinfo ' write(*,*)'=====================' write(1,*)'Testing he5_swfldinfo ' write(1,*)'=====================' status=he5_swfldinfo(swid,'Latitude',rank,latdims,nt, 1dimens,maxdims) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swfldinfo(swid, "Latitude", 1rank, latdims, nt, dimens, maxdims)' write(*,*)'Value returned by he5_swfldinfo ',status write(*,*)'Rank of field latitude ',rank write(*,*)'dimension list of field latitude ',dimens write(*,*)'Size of latitude dimensions ',latdims write(*,*)'number type of field latitude ',nt write(1,*)'status= he5_swfldinfo(swid, "Latitude", 1rank, latdims, nt, dimens, maxdims)' write(1,*)'Value returned by he5_swfldinfo ',status write(1,*)'Rank of field latitude ',rank write(1,*)'dimension list of field latitude ',dimens write(1,*)'Size of latitude dimensions ',latdims write(1,*)'number type of field latitude ',nt endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swmapinfo c write(1,27) write(*,*)'Testing he5_swmapinfo ' write(*,*)'=====================' write(1,*)'Testing he5_swmapinfo ' write(1,*)'=====================' status=he5_swmapinfo(swid,'GeoTrack','DataTrack',offset,inc) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swmapinfo(swid,"GeoTrack","DataTrack", 1offset,inc)' write(*,*)'Value returned by he5_swmapinfo ',status write(*,*)'Offset ',offset,' Increment ',inc write(1,*)'status=he5_swmapinfo(swid,"GeoTrack","DataTrack", 1offset,inc)' write(1,*)'Value returned by he5_swmapinfo ',status write(1,*)'Offset ',offset,' Increment ',inc endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swimapinfo c write(1,27) write(*,*)'Testing he5_swimapinfo ' write(*,*)'======================' write(1,*)'Testing he5_swimapinfo ' write(1,*)'======================' status4=he5_swimapinfo(swid2,'GeoXtrack','DataXtrack',idxmap) if (status4 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status4= he5_swimapinfo(swid2,"GeoXtrack", 1"DataXtrack", idxmap)' write(*,*)'Value returned by he5_swimapinfo ',status4 do 980 index1=1,30 write(*,*)' Value of index array ',idxmap(index1) write(1,*)' Value of index array ',idxmap(index1) 980 continue write(1,*)'status4= he5_swimapinfo(swid2, "GeoXtrack", 1"DataXtrack",idxmap)' write(1,*)'Value returned by he5_swimapinfo ',status4 write(1,*)'Indexed map values ',idxmap endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqattrs c write(1,27) write(*,*)'Testing he5_swinqattrs Global attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_swinqattrs Global attributes ' write(1,*)'==================================== ' nattr = he5_swinqattrs(swid,attrlist,strbufsz2) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Number of global attributes in swath ',nattr write(*,*)'Attribute list of swath ',attrlist write(1,*)'Number of global attributes in swath ',nattr write(1,*)'Attribute list of swath ',attrlist write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swattrinfo c write(1,27) write(*,*)'Testing he5_swattrinfo Global attribute' write(*,*)'=======================================' write(1,*)'Testing he5_swattrinfo Global attribute' write(1,*)'=======================================' status= he5_swattrinfo(swid, attrlist, n, size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swattrinfo(swid,attrlist,n,size)' write(*,*)'Value returned by he5_swattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'status=he5_swattrinfo(swid,attrlist,n,size)' write(1,*)'Value returned by he5_swattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swrdattr c write(1,27) write(*,*)'Testing he5_swrdattr, Global attribute ' write(*,*)'======================================' write(1,*)'Testing he5_swrdattr, Global attribute ' write(1,*)'======================================' status= he5_swrdattr(swid, attrlist, rdattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swrdattr(swid,attrlist,rdattr)' write(*,*)'Value returned by he5_swrdattr ',status write(*,*)'attribute ',rdattr write(1,*)'status=he5_swrdattr(swid,attrlist,rdattr)' write(1,*)'Value returned by he5_swrdattr ',status write(1,*)'attribute ',rdattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqgattrs c write(1,27) write(*,*)'Testing he5_swinqgattrs Group attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_swinqgattrs Group attributes ' write(1,*)'==================================== ' nattr = he5_swinqgattrs(swid,attrlist,strbufsz2) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Number of group attributes in swath ',nattr write(*,*)'Attribute list of swath ',attrlist write(1,*)'Number of group attributes in swath ',nattr write(1,*)'Attribute list of swath ',attrlist write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swgattrinfo c write(1,27) write(*,*)'Testing he5_swgattrinfo Group attribute' write(*,*)'=======================================' write(1,*)'Testing he5_swgattrinfo Group attribute' write(1,*)'=======================================' status= he5_swgattrinfo(swid, attrlist, n, size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swgattrinfo(swid,attrlist,n,size)' write(*,*)'Value returned by he5_swgattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'status=he5_swgattrinfo(swid,attrlist,n,size)' write(1,*)'Value returned by he5_swgattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swrdgattr c write(1,27) write(*,*)'Testing he5_swrdgattr, Group attribute ' write(*,*)'======================================' write(1,*)'Testing he5_swrdgattr, Group attribute ' write(1,*)'======================================' status= he5_swrdgattr(swid,'group',rdgnlattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swrdgattr(swid,attrlist,rdgnlattr)' write(*,*)'Value returned by he5_swrdgattr ',status write(*,*)'attribute ',rdgnlattr write(1,*)'status=he5_swrdgattr(swid,attrlist,rdgnlattr)' write(1,*)'Value returned by he5_swrdgattr ',status write(1,*)'attribute ',rdgnlattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqlattrs c write(1,27) write(*,*)'Testing he5_swinqlattrs Local attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_swinqlattrs Local attributes ' write(1,*)'==================================== ' nattr=he5_swinqlattrs(swid2,'Sensor1',attrlist,strbufsz2) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swinqlattrs(... "Sensor1" ...)' write(*,*)'Number of local attributes in field',nattr write(*,*)'Attribute list of field ',attrlist write(1,*)'swinqlattrs(... "Sensor1" ...)' write(1,*)'Number of local attributes in field',nattr write(1,*)'Attribute list of field ',attrlist write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swlattrinfo c write(1,27) write(*,*)'Testing he5_swlattrinfo Local attribute' write(*,*)'=======================================' write(1,*)'Testing he5_swlattrinfo Local attribute' write(1,*)'=======================================' status=he5_swlattrinfo(swid2,'Sensor1','local',n,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swlattrinfo(... "Sensor1" ...)' write(*,*)'Value returned by he5_swlattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'swlattrinfo(... "Sensor1" ...)' write(1,*)'Value returned by he5_swlattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swidtype c write(1,27) write(*,*)'Testing he5_swidtype, Inquire Datatype ' write(*,*)'=======================================' write(1,*)'Testing he5_swidtype, Inquire Datatype ' write(1,*)'=======================================' status= he5_swidtype(swid2,'Sensor1','local', 1HE5_HDFE_LOCATTRGROUP,dtype,classid, order, size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swidtype(swid2,"Sensor1","local", 1HE5_HDFE_LOCATTRGROUP,dtype, classid, order, size)' write(*,*)'Value returned by he5_swidtype ',status write(*,*)'Datatype of local attribute ',dtype write(*,*)'Class id and order ',classid, order write(*,*)'Size of attribute ',size write(1,*)'status= he5_swidtype(swid2,"Sensor1","local", 1HE5_HDFE_LOCATTRGROUP,dtype, classid, order, size)' write(1,*)'Value returned by he5_swidtype ',status write(1,*)'Datatype of local attribute ',dtype write(1,*)'Class id and order ',classid, order write(1,*)'Size of attribute ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swrdlattr c write(1,27) write(*,*)'Testing he5_swrdlattr, Local attribute ' write(*,*)'======================================' write(1,*)'Testing he5_swrdlattr, Local attribute ' write(1,*)'======================================' status=he5_swrdlattr(swid2,'Sensor1','local',rdgnlattr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swrdlattr(swid2,"Sensor1","local", 1rdgnlattr)' write(*,*)'Value returned by he5_swrdlattr ',status write(*,*)'attribute ',rdgnlattr write(1,*)'status=he5_swrdlattr(swid2,"Sensor1","local", 1rdgnlattr)' write(1,*)'Value returned by he5_swrdlattr ',status write(1,*)'attribute ',rdgnlattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swgetfill c write(1,27) write(*,*)'Testing he5_swgetfill ' write(*,*)'=====================' write(1,*)'Testing he5_swgetfill ' write(1,*)'=====================' status= he5_swgetfill(swid,'Conduction', rdfilval) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swgetfill(swid,"Conduction",rdfilval)' write(*,*)'Value returned by he5_swgetfill ',status write(*,*)'Value of fill ',rdfilval write(1,*)'status=he5_swgetfill(swid,"Conduction",rdfilval)' write(1,*)'Value returned by he5_swgetfill ',status write(1,*)'Value of fill ',rdfilval endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefboxreg c write(1,27) write(*,*)'Testing he5_swdefboxreg ' write(*,*)'=======================' write(1,*)'Testing he5_swdefboxreg ' write(1,*)'=======================' regionid= he5_swdefboxreg(swid, cornerlon, cornerlat, 1HE5_HDFE_ENDPOINT) if (regionid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'regionid= he5_swdefboxreg(swid,cornerlon, 1cornerlat, HE5_HDFE_ENDPOINT)' write(*,*)'Value returned by he5_swdefboxreg ',regionid write(1,*)'regionid= he5_swdefboxreg(swid, cornerlon, 1cornerlat, HE5_HDFE_ENDPOINT)' write(1,*)'Value returned by he5_swdefboxreg ',regionid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swregidx c write(1,27) write(*,*)'Testing he5_swregidx ' write(*,*)'====================' write(1,*)'Testing he5_swregidx ' write(1,*)'====================' regionid3=he5_swregidx(swid, cornerlon, cornerlat, 1HE5_HDFE_ENDPOINT, geodim, idxrange) if (regionid3 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'regionid3= he5_swregidx(swid, cornerlon, 1cornerlat, HE5_HDFE_ENDPOINT, geodim, idxrange)' write(*,*)'Region ID returned by he5_swregdex ',regionid3 write(*,*)'Geodim of region ',geodim write(*,*)'indicies of region ',idxrange(1),idxrange(2) write(1,*)'regionid3= he5_swregidx(swid, cornerlon, 1cornerlat, HE5_HDFE_ENDPOINT, geodim, idxrange)' write(1,*)'Region ID returned by he5_swregdex ',regionid3 write(1,*)'Geodim of region ',geodim write(1,*)'indicies of region ',idxrange(1),idxrange(2) endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdupreg c write(1,27) write(*,*)'Testing he5_swdupreg ' write(*,*)'=====================' write(1,*)'Testing he5_swdupreg ' write(1,*)'=====================' regionid2= he5_swdupreg(regionid) if (regionid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Duplicate region id information ' write(*,*)'Region ID returned by he5_swdupreg ',regionid2 write(1,*)'Duplicate region id information ' write(1,*)'Region ID returned by he5_swdupreg ',regionid2 write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swreginfo c write(1,27) write(*,*)'Testing he5_swreginfo ' write(*,*)'=====================' write(1,*)'Testing he5_swreginfo ' write(1,*)'=====================' status=he5_swreginfo(swid,regionid,'Temperature',nt,rank, 1dims,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swreginfo(swid,regionid,"Temperature", 1nt, rank, dims, size)' write(*,*)'Value returned by he5_swreginfo ',status write(*,*)'Number type of region ',nt,' Rank of region ',rank write(*,*)'Dimensions of region ',dims(1),' ',dims(2) write(*,*)'Value of size ',size write(1,*)'status=he5_swreginfo(swid,regionid,"Temperature", 1nt, rank, dims, size)' write(1,*)'Value returned by he5_swreginfo ',status write(1,*)'Number type of region ',nt,' Rank of region ',rank write(1,*)'Value of size ',size write(1,*)'Dimensions of region ',dims(1),' ',dims(2) endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swextreg c write(1,27) write(*,*)'Testing he5_swextreg ' write(*,*)'=====================' write(1,*)'Testing he5_swextreg ' write(1,*)'=====================' status=he5_swextreg(swid,regionid,'Temperature', 1HE5_HDFE_INTERNAL, tempbuf) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status = he5_swextreg(swid, regionid, 1"Temperature", HE5_HDFE_INTERNAL, tempbuf)' write(*,*)'Value returned by he5_swextreg ', status write(1,*)'status = he5_swextreg(swid, regionid, 1"Temperature", HE5_HDFE_INTERNAL,tempbuf)' write(1,*)'Value returned by he5_swextreg ', status do 210 index1=100,115 write(*,*)'region value at position ',tempbuf(index1) write(1,*)'region value at position ',tempbuf(index1) 210 continue endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdeftmeper c write(1,27) write(*,*)'Testing he5_swdeftmeper ' write(*,*)'=====================' write(1,*)'Testing he5_swdeftmeper ' write(1,*)'=====================' regionid = he5_swdeftmeper(swid, starttime, endtime, 1HE5_HDFE_ENDPOINT) if (regionid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'regionid= he5_swdeftmeper(swid, starttime, 1endtime, HE5_HDFE_ENDPOINT)' write(*,*)'Value returned by he5_swdeftmeper ',regionid write(1,*)'regionid= he5_swdeftmeper(swid, starttime, 1endtime, HE5_HDFE_ENDPOINT)' write(1,*)'Value returned by he5_swdeftmeper ',regionid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swperinfo c write(1,27) write(*,*)'Testing he5_swperinfo ' write(*,*)'=====================' write(1,*)'Testing he5_swperinfo ' write(1,*)'=====================' status = he5_swperinfo(swid,regionid,'Temperature',nt,rank, 1dims,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status = he5_swperinfo(swid, regionid, 1"Temperature",nt, rank, dims, size)' write(*,*)'Value returned by he5_swperinfo ',status write(*,*)'Rank of field ',rank,' Number type of region ',nt write(*,*)'Dimensions of region ',dims(1),' ',dims(2) write(*,*)'Value of size ',size write(1,*)'status = he5_swperinfo(swid, regionid, 1"Temperature",nt, rank, dims, size)' write(1,*)'Value returned by he5_swperinfo ',status write(1,*)'Rank of field ',rank,' Number type of region ',nt write(1,*)'Dimensions of region ',dims(1),' ',dims(2) write(1,*)'Value of size ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swextper c write(1,27) write(*,*)'Testing he5_swextper ' write(*,*)'====================' write(1,*)'Testing he5_swextper ' write(1,*)'====================' status= he5_swextper(swid,regionid,'Temperature', 1HE5_HDFE_INTERNAL,tempbuf) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swextper(swid, regionid, 1"Temperature", HE5_HDFE_INTERNAL, tempbuf)' write(*,*)'Value returned by he5_swextper swath ',status write(1,*)'status= he5_swextper(swid, regionid, 1"Temperature", HE5_HDFE_INTERNAL, tempbuf) ' write(1,*)'Value returned by he5_swextper swath ',status do 220 index1=1000,1015 write(*,*)'region value at position ',tempbuf(index1) write(1,*)'region value at position ',tempbuf(index1) 220 continue endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swupimap c write(1,27) write(*,*)'Testing he5_swupimap ' write(*,*)'=====================' write(1,*)'Testing he5_swupimap ' write(1,*)'=====================' idxsz=he5_swupimap(swid2,regionid,idxmap,upidxmap,ndxmap) if (idxsz .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Size of index array in region ',idxsz write(1,*)'Size of index array in region ',idxsz write(*,*)'Indicies of updated index ',ndxmap(1),ndxmap(2) write(1,*)'Indicies of updated index ',ndxmap(1),ndxmap(2) do 380 index1=1,idxsz write(*,*)' Value of index array ',upidxmap(index1) write(1,*)' Value of index array ',upidxmap(index1) 380 continue endif c Test Case -- he5_swcompinfo c write(1,27) write(*,*)'Testing he5_swcompinfo ' write(*,*)'=======================' write(1,*)'Testing he5_swcompinfo ' write(1,*)'=======================' status=he5_swcompinfo(swid,'CompChunk',compcode,rdcompparm) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swcompinfo(swid,"CompChunk",compcode, 1rdcompparm)' write(*,*)'Status returned by he5_swcompinfo ',status write(*,*)'Compression code ',compcode write(*,*)'Compression parameter ',rdcompparm(1) write(1,*)'status=he5_swcompinfo(swid,"CompChunk",compcode, 1rdcompparm)' write(1,*)'Status returned by he5_swcompinfo ',status write(1,*)'Compression code ',compcode write(1,*)'Compression parameter ',rdcompparm(1) endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid2)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid2)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swclose(swfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swclose(swfid)' write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' swfid= he5_swopen('swath.he5',HE5F_ACC_RDWR) if (swfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_swopen ',swfid write(1,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_swopen ',swfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqswath c write(1,27) write(*,*)'Testing he5_swinqswath ' write(*,*)'======================' write(1,*)'Testing he5_swinqswath ' write(1,*)'======================' nswath=he5_swinqswath('swath.he5',swathlist,strbufsz2) if (nswath .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Retrieve information on swaths in 1file swath.he5' write(*,*)'Number of swaths in file ', nswath write(*,*)'List of swaths ',swathlist write(1,*)'Retrieve information on swaths in 1file swath.he5' write(1,*)'Number of swaths in file ', nswath write(1,*)'List of swaths ',swathlist endif write(*,*)' ' write(1,*)' ' status= he5_swclose(swfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swclose(swfid)' write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' close(unit=1) 27 format(' ') stop end hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/Makefile.sgi320000644000175000017500000000171512024715435023525 0ustar amckinstryamckinstry COMPILER = cc LINKER = cc CC = $(COMPILER) LD = $(LINKER) # for SUN #CFLAGS = -g -Xa -DsunFortran -DSUN #LFLAGS = -g -Xa -DsunFortran -DSUN # for sgi32 CFLAGS = -g -n32 -xansi -D_POSIX_SOURCE LFLAGS = -g -n32 -xansi -D_POSIX_SOURCE # for sgi64 #CFLAGS = -g -64 -xansi -D_POSIX_SOURCE #LFLAGS = -g -64 -xansi -D_POSIX_SOURCE INCLUDE = -I. -I$(HDFEOS5_INC) -I$(HDF5INC) -I$(JPEGINC) -I$(ZLIBINC) -I$(SZIPINC) LIBRARYPATHS = -L$(HDF5LIB) -L$(HDFEOS5_LIB) -L$(JPEGLIB) -L$(ZLIBLIB) -L$(SZIPLIB) # for SUN #LIBRARIES = -lhe5_hdfeos $(HDF5LIB)/libhdf5.a -lGctp -ljpeg -lz -lsz -lpthread -lm -lnsl # for other platforms LIBRARIES = -lhe5_hdfeos $(HDF5LIB)/libhdf5.a -lGctp -ljpeg -lz -lsz -lpthread -lm OBJECTS = TestSwath.o PROGRAMS = TestSwath all: ${PROGRAMS} cleano ${PROGRAMS}: ${OBJECTS} ${CC} ${LFLAGS} -o $@ ${OBJECTS} ${LIBRARYPATHS} ${LIBRARIES} # rm *.o .c.o: ${CC} ${CFLAGS} -c ${INCLUDE} $< clean: rm *.o ${PROGRAMS} cleano: rm *.o hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/Makefile.in0000644000175000017500000004176012024715435023210 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # testdrivers/swath Makefile.am SOURCES = TestSwath.c $(testswath32_SOURCES) $(testswath64_SOURCES) srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/include.am check_PROGRAMS = TestSwath$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_1 = testswath32 @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_2 = testswath64 @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_3 = test_32f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_4 = test_32f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_5 = test_64f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_6 = test_64f subdir = testdrivers/swath ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/HE5_config.h CONFIG_CLEAN_FILES = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_1 = testswath32$(EXEEXT) @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_2 = testswath64$(EXEEXT) TestSwath_SOURCES = TestSwath.c TestSwath_OBJECTS = TestSwath.$(OBJEXT) TestSwath_LDADD = $(LDADD) am__DEPENDENCIES_1 = $(top_builddir)/src/libhe5_hdfeos.la TestSwath_DEPENDENCIES = $(am__DEPENDENCIES_1) am__testswath32_SOURCES_DIST = testswath32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_testswath32_OBJECTS = testswath32.$(OBJEXT) testswath32_OBJECTS = $(am_testswath32_OBJECTS) testswath32_LDADD = $(LDADD) testswath32_DEPENDENCIES = $(am__DEPENDENCIES_1) am__testswath64_SOURCES_DIST = testswath64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_testswath64_OBJECTS = testswath64.$(OBJEXT) testswath64_OBJECTS = $(am_testswath64_OBJECTS) testswath64_LDADD = $(LDADD) testswath64_DEPENDENCIES = $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --mode=compile --tag=F77 $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --mode=link --tag=F77 $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = TestSwath.c $(testswath32_SOURCES) $(testswath64_SOURCES) DIST_SOURCES = TestSwath.c $(am__testswath32_SOURCES_DIST) \ $(am__testswath64_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F2CFORTRAN_32PTR_CONDITIONAL_FALSE = @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@ F2CFORTRAN_32PTR_CONDITIONAL_TRUE = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@ F2CFORTRAN_90_CONDITIONAL_FALSE = @F2CFORTRAN_90_CONDITIONAL_FALSE@ F2CFORTRAN_90_CONDITIONAL_TRUE = @F2CFORTRAN_90_CONDITIONAL_TRUE@ F2CFORTRAN_CONDITIONAL_FALSE = @F2CFORTRAN_CONDITIONAL_FALSE@ F2CFORTRAN_CONDITIONAL_TRUE = @F2CFORTRAN_CONDITIONAL_TRUE@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SZIP_ENCODER_CONDITIONAL_FALSE = @SZIP_ENCODER_CONDITIONAL_FALSE@ SZIP_ENCODER_CONDITIONAL_TRUE = @SZIP_ENCODER_CONDITIONAL_TRUE@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la # Boilerplate definitions # Link against HDF-EOS5 library INCLUDES = -I$(top_srcdir)/include LDADD = $(LIBHDFEOS5) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@testswath32_SOURCES = testswath32.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@testswath64_SOURCES = testswath64.f # Run TestSwath when user types 'make check' TEST_SEQUENCES = test_c $(am__append_3) $(am__append_5) VERBOSE_TEST_SEQUENCES = test_c_verbose $(am__append_4) \ $(am__append_6) all: all-am .SUFFIXES: .SUFFIXES: .c .f .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testdrivers/swath/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign testdrivers/swath/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done TestSwath$(EXEEXT): $(TestSwath_OBJECTS) $(TestSwath_DEPENDENCIES) @rm -f TestSwath$(EXEEXT) $(LINK) $(TestSwath_LDFLAGS) $(TestSwath_OBJECTS) $(TestSwath_LDADD) $(LIBS) testswath32$(EXEEXT): $(testswath32_OBJECTS) $(testswath32_DEPENDENCIES) @rm -f testswath32$(EXEEXT) $(F77LINK) $(testswath32_LDFLAGS) $(testswath32_OBJECTS) $(testswath32_LDADD) $(LIBS) testswath64$(EXEEXT): $(testswath64_OBJECTS) $(testswath64_DEPENDENCIES) @rm -f testswath64$(EXEEXT) $(F77LINK) $(testswath64_LDFLAGS) $(testswath64_OBJECTS) $(testswath64_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSwath.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-local check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am check-local clean \ clean-checkPROGRAMS clean-generic clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am test_c: $(check_PROGRAMS) ./TestSwath test_c_verbose: $(check_PROGRAMS) ./TestSwath -v h test_32f: $(check_PROGRAMS) ./testswath32 test_64f: $(check_PROGRAMS) ./testswath64 check-local: $(TEST_SEQUENCES) verbose_check: $(VERBOSE_TEST_SEQUENCES) .PHONY: $(TEST_SEQUENCES) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/TestProfile.c0000755000175000017500000003155712024715435023555 0ustar amckinstryamckinstry/* ---------------------------------------------------------------------------- | Copyright (C) 1999 Emergent IT Inc. and Raytheon Systems Company | ---------------------------------------------------------------------------- */ #include #define XDIM1 50 #define XDIM2 70 #define XDIM3 90 #define YDIM1 2000 #define YDIM2 2250 #define YDIM3 2360 int main() { herr_t status = FAIL; int i, j; int rank = 1; int *rank_out; int comp_level[5] = { 0,0,0,0,0 }; int comp_code; int level[ 5 ] = { 0, 0, 0, 0, 0 }; int code = 0; unsigned int fill_value_1 = 1313, fill_out_1 = 0; float fill_value_2 = -1.1111, fill_out_2 = -1.; double fill_value_3 = -3.3333, fill_out_3 = -1.; long nprof = FAIL; H5T_class_t class = H5T_NO_CLASS; H5T_class_t *class_out; H5T_order_t order = H5T_ORDER_ERROR; hid_t *numtype; hid_t swfid = FAIL; hid_t SWid = FAIL; hid_t ntype = FAIL; hssize_t start[1]; hsize_t stride[1], edge[1]; hsize_t dims[1] = {XDIM1}; hsize_t dims_out[XDIM1] ={0,0,0,0}; hsize_t maxdims_out[XDIM1] ={0,0,0,0}; hsize_t chunk_dims[ 1 ]; size_t datasize; hvl_t buffer1[XDIM1]; hvl_t buffer2[XDIM2]; hvl_t buffer3[XDIM3]; hvl_t buffer_out[XDIM1]; char profnames[HE5_HDFE_NAMBUFSIZE]; char dimlist[HE5_HDFE_NAMBUFSIZE]; char maxdimlist[HE5_HDFE_NAMBUFSIZE]; swfid = HE5_SWopen("SimpleProfile.h5", H5F_ACC_TRUNC); printf("file ID ===> %d \n", swfid); SWid = HE5_SWcreate(swfid, "TestSwath_1"); printf("Swath ID ===> %d \n", SWid); status = HE5_SWdefdim(SWid, "Unlim", H5S_UNLIMITED); printf("status ===> %d\n", status); status = HE5_SWdefdim(SWid, "ProfDimOne", 50); printf("status ===> %d\n", status); status = HE5_SWdefdim(SWid, "ProfDimTwo", 70); printf("status ===> %d\n", status); status = HE5_SWdefdim(SWid, "ProfDimThree", 90); printf("status ===> %d\n", status); /* Populate data buffer 1 */ /* ---------------------- */ datasize = 0; for (i = 0; i < XDIM1; i++) { buffer1[i].p = (hvl_t *)malloc( YDIM1 * sizeof(unsigned int)); buffer1[i].len = YDIM1; datasize += (buffer1[i].len * sizeof(unsigned int)); for ( j = 0; j < YDIM1; j++) ((unsigned int *)buffer1[i].p)[j] = i; } chunk_dims[ 0 ] = 10; /* ***************************************************************************** * Define Compression/chunking * ***************************************************************************** */ comp_code = 4; /* *--------------------------------------------------------------------------- * the compression schemes (comp_code) currently supported are * * * * HE5_HDFE_COMP_NONE 0 * * HE5_HDFE_COMP_RLE 1 * * HE5_HDFE_COMP_NBIT 2 * * HE5_HDFE_COMP_SKPHUFF 3 * * HE5_HDFE_COMP_DEFLATE 4 * * HE5_HDFE_COMP_SZIP_CHIP 5 * * HE5_HDFE_COMP_SZIP_K13 6 * * HE5_HDFE_COMP_SZIP_EC 7 * * HE5_HDFE_COMP_SZIP_NN 8 * * HE5_HDFE_COMP_SZIP_K13orEC 9 * * HE5_HDFE_COMP_SZIP_K13orNN 10 * * HE5_HDFE_COMP_SHUF_DEFLATE 11 * * HE5_HDFE_COMP_SHUF_SZIP_CHIP 12 * * HE5_HDFE_COMP_SHUF_SZIP_K13 13 * * HE5_HDFE_COMP_SHUF_SZIP_EC 14 * * HE5_HDFE_COMP_SHUF_SZIP_NN 15 * * HE5_HDFE_COMP_SHUF_SZIP_K13orEC 16 * * HE5_HDFE_COMP_SHUF_SZIP_K13orNN 17 * * * *--------------------------------------------------------------------------- */ comp_level[0] = 6; status = HE5_SWdefcomchunk(SWid, comp_code, comp_level, rank, chunk_dims); printf("status ===> %d\n", status); /* Define profile structure "Profile_1" */ /* ------------------------------------ */ status = HE5_PRdefine(SWid, "Profile_1", "ProfDimOne","Unlim", H5T_NATIVE_UINT); printf("status ===> %d \n", status); /* Set fill value */ /* -------------- */ status = HE5_SWsetfillvalue(SWid,"Profile_1", H5T_NATIVE_UINT, &fill_value_1); printf("status ===> %d \n", status); /* Write data to profile */ /* --------------------- */ start[0] = 0; edge[0] = 50; status = HE5_PRwrite(SWid, "Profile_1", start, NULL, edge, datasize, buffer1); printf("status ===> %d \n", status); /* Read data from profile to "buffer_out" */ /* -------------------------------------- */ start[0] = 0; edge[0] = 50; status = HE5_PRread(SWid, "Profile_1", start, NULL, edge, buffer_out); printf("status ===> %d \n", status); /* Display some elements of profile data */ /* ------------------------------------- */ for (i = 0; i < 10; i++) { printf("\tThe %d-th element length is %d \n", i, (unsigned int)buffer_out[i].len); for (j = buffer_out[i].len-10; j < buffer_out[i].len; j++) printf("\t\t %d \n", ((unsigned int *)buffer_out[i].p)[j]); } /* Free up memory */ /* -------------- */ status = HE5_PRreclaimspace(SWid, "Profile_1", buffer_out); printf("status ===> %d \n", status); /* Populate data buffer 2 */ /* ---------------------- */ datasize = 0; for (i = 0; i < XDIM2; i++) { buffer2[i].p = (hvl_t *)malloc( YDIM2 * sizeof(float)); buffer2[i].len = YDIM2; datasize += (YDIM2 * sizeof(float)); for ( j = 0; j < YDIM2; j++) ((unsigned int *)buffer2[i].p)[j] = 2.325 * i + 0.01 * j; } /* Define profile structure "Profile_2" */ /* ------------------------------------ */ status = HE5_PRdefine(SWid, "Profile_2", "ProfDimTwo", NULL, H5T_NATIVE_FLOAT); printf("status ===> %d \n", status); /* Set fill value */ /* -------------- */ status = HE5_SWsetfillvalue(SWid,"Profile_2", H5T_NATIVE_FLOAT, &fill_value_2); printf("status ===> %d \n", status); /* Write data to profile */ /* --------------------- */ start[0] = 0; edge[0] = 70; status = HE5_PRwrite(SWid, "Profile_2", start, NULL, edge, datasize, buffer2); printf("status ===> %d \n", status); datasize = 0; for (i = 0; i < XDIM3; i++) { buffer3[i].p = (hvl_t *)malloc( YDIM3 * sizeof(double)); buffer3[i].len = YDIM3; datasize += (buffer3[i].len * sizeof(double)); for ( j = 0; j < YDIM3; j++) ((unsigned int *)buffer3[i].p)[j] = (j+1)/1.e5; } /* Define profile structure "Profile_3" */ /* ------------------------------------ */ status = HE5_PRdefine(SWid, "Profile_3", "ProfDimThree", NULL, H5T_NATIVE_DOUBLE); printf("status ===> %d \n", status); /* Set fill value */ /* -------------- */ status = HE5_SWsetfillvalue(SWid,"Profile_3", H5T_NATIVE_DOUBLE, &fill_value_3); printf("status ===> %d \n", status); /* Write data to profile */ /* --------------------- */ start[0] = 0; edge[0] = 90; status = HE5_PRwrite(SWid, "Profile_3", start, NULL, edge, datasize, buffer3); printf("status ===> %d \n", status); /* Detach from a swath */ /* ------------------- */ status = HE5_SWdetach(SWid); printf("status ===> %d \n", status); /* Reaattach to the swath */ /* ---------------------- */ SWid = HE5_SWattach(swfid, "TestSwath_1"); printf("Swath ID ===> %d \n", SWid); /* Inquire about profile structures in a swath */ /* ------------------------------------------- */ nprof = HE5_PRinquire(SWid, profnames, NULL, NULL); printf("There are %li profiles in swath. \n", nprof); if(nprof > 0) { rank_out = (int *)calloc(nprof, sizeof(int)); class_out = (H5T_class_t *)calloc(nprof, sizeof(H5T_class_t)); nprof = HE5_PRinquire(SWid, profnames, rank_out, class_out); printf("Profile names: \"%s\" \n", profnames); for (i = 0; i < nprof; i++) printf("profile #%d rank: %d base class: %d\n", i+1, rank_out[i], class_out[i]); free(rank_out); free(class_out); } rank_out = (int *)calloc(1, sizeof(int)); numtype = (hid_t *)calloc(1, sizeof(hid_t)); /* Get information about specified profile */ /* --------------------------------------- */ status = HE5_PRinfo(SWid, "Profile_1", rank_out, dims_out, maxdims_out, numtype, NULL, NULL); if (status == SUCCEED) { printf("Profile_1:\n"); printf("rank: %d number type: %d \n", rank_out[0], numtype[0]); for (i = 0; i < rank_out[0]; i++) printf("dimension #%d size: %d maximum size: %d\n", i+1, (int)dims_out[i], (int)maxdims_out[i]); } status = HE5_PRinfo(SWid, "Profile_1", rank_out, dims_out, maxdims_out, numtype, dimlist, maxdimlist); if (status == SUCCEED) { printf("Profile_1:\n"); printf("DimList: %s MaxDimList: %s \n", dimlist, maxdimlist); } status = HE5_PRinfo(SWid, "Profile_2", rank_out, dims_out, maxdims_out, numtype, NULL, NULL); if (status == SUCCEED) { printf("Profile_2:\n"); printf("rank: %d number type: %d \n", rank_out[0], numtype[0]); for (i = 0; i < rank_out[0]; i++) printf("dimension #%d size: %d maximum size: %d\n", i+1, (int)dims_out[i], (int)maxdims_out[i]); } strcpy(dimlist,""); strcpy(maxdimlist,""); status = HE5_PRinfo(SWid, "Profile_2", rank_out, dims_out, maxdims_out, numtype, dimlist, maxdimlist); if (status == SUCCEED) { printf("Profile_2:\n"); printf("DimList: %s MaxDimList: %s \n", dimlist, maxdimlist); } status = HE5_PRinfo(SWid, "Profile_3", rank_out, dims_out, maxdims_out, numtype, NULL, NULL); if (status == SUCCEED) { printf("Profile_3:\n"); printf("rank: %d number type: %d \n", rank_out[0], numtype[0]); for (i = 0; i < rank_out[0]; i++) printf("dimension #%d size: %d maximum size: %d\n", i+1, (int)dims_out[i], (int)maxdims_out[i]); } strcpy(dimlist,""); strcpy(maxdimlist,""); status = HE5_PRinfo(SWid, "Profile_3", rank_out, dims_out, maxdims_out, numtype, dimlist, maxdimlist); if (status == SUCCEED) { printf("Profile_3:\n"); printf("DimList: %s MaxDimList: %s \n", dimlist, maxdimlist); } free(rank_out); free(numtype); /* Inquire profile data type information */ /* ------------------------------------- */ status = HE5_SWinqdatatype(SWid, "Profile_1", NULL, HE5_HDFE_PROFGROUP, &ntype, &class, &order, &datasize); if (status == SUCCEED) printf("Profile_1: class: %d order: %d size: %d (bytes) \n", class, order, (int)datasize); status = HE5_SWinqdatatype(SWid, "Profile_2", NULL, HE5_HDFE_PROFGROUP, &ntype, &class, &order, &datasize); if (status == SUCCEED) printf("Profile_2: class: %d order: %d size: %d (bytes) \n", class, order, (int)datasize); status = HE5_SWinqdatatype(SWid, "Profile_3", NULL, HE5_HDFE_PROFGROUP, &ntype, &class, &order, &datasize); if (status == SUCCEED) printf("Profile_3: class: %d order: %d size: %d (bytes) \n", class, order, (int)datasize); /* Retrieve fill values for profiles */ /* --------------------------------- */ status = HE5_SWgetfillvalue(SWid, "Profile_1", &fill_out_1); if (status == SUCCEED) printf("Profile_1: fill value = %d \n", fill_out_1); status = HE5_SWgetfillvalue(SWid, "Profile_2", &fill_out_2); if (status == SUCCEED) printf("Profile_2: fill value = %f \n", fill_out_2); status = HE5_SWgetfillvalue(SWid, "Profile_3", &fill_out_3); if (status == SUCCEED) printf("Profile_3: fill value = %f \n", fill_out_3); status = HE5_SWcompinfo(SWid,"Profile_1",&code,level); if (status == SUCCEED) printf("Profile_1: COMPRESSION: code = %d level = %d \n", code, level[0]); code = FAIL; level[0] = FAIL; status = HE5_SWcompinfo(SWid,"Profile_2",&code,level); if (status == SUCCEED) printf("Profile_2: COMPRESSION: code = %d level = %d \n", code, level[0]); code = FAIL; level[0] = FAIL; status = HE5_SWcompinfo(SWid,"Profile_3",&code,level); if (status == SUCCEED) printf("Profile_3: COMPRESSION: code = %d level = %d \n", code, level[0]); /* Detach from swath */ /* ----------------- */ status = HE5_SWdetach(SWid); printf("status ===> %d \n", status); /* Close HDF-EOS file */ /* ------------------ */ status = HE5_SWclose(swfid); printf("status ===> %d \n", status); return 0; } hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/TestSwath.c0000755000175000017500000070311512024715435023237 0ustar amckinstryamckinstry/* *********************************************************** * FILENAME: TestSwath.c * * * * PURPOSE: To test HDF-EOS v.3 Swath interface * * * * Author: * * A. Muslimov /Emergent IT Inc. * * Adura Adekunjo /L3 Comm. EER corp * * * * History: * * August 1999 AM Initial version * * 13-Oct-2000 AM Updated * * 02-Dec-2004 AA Updated with testdrivers for * * some new functions (NCR 41197) * * * * * *********************************************************** */ #include #include #define BUFSIZE 256 #define RANK1 1 #define RANK2 2 int main(int argc, char *argv[]) { FILE *fp; herr_t status = FAIL; int i = 0; int j = 0; int attr3[4] = {100, 200, 300, 400}; int attr3Out[4] = { 0, 0, 0, 0 }; int Verbosity = 4; int comp_level[ 5 ] = { 0, 0, 0, 0, 0 }; int level[ 5 ] = { 0, 0, 0, 0, 0 }; int rank = 1; int AttrVal[ 4 ] = {1,2,3,4}; int GattrVal[ 4 ] = {4,3,2,1}; int AttrValOut[ 4 ] = {0,0,0,0}; int GattrValOut[ 4 ] = {0,0,0,0}; int errcnt = 0; int comp_code = 0; int code = 0; int chunk_rank; int rank2 = 0; int rank3 = 0; int *RankPtr = (int *)NULL; int inarray[10] = {1,2,3,4,5,6,7,8,9,10}; int fieldgroup = FAIL; int return_val = FAIL; hid_t SWid_simple = FAIL; hid_t SWid_index = FAIL; hid_t swfidc_simple = FAIL; hid_t PeriodID = FAIL; hid_t RegionID = FAIL; hid_t OldRegionID = FAIL; hid_t datatype = FAIL; hid_t dtype = FAIL; hid_t dtype1 = FAIL; hid_t ntype[20]; H5T_class_t classid = H5T_NO_CLASS; H5T_order_t order = H5T_ORDER_ERROR; long number = FAIL; long strbufsize = FAIL; long *DimListPtr = (long *)NULL; long *OffsetPtr = (long *)NULL; long *IncremPtr = (long *)NULL; long *IndexMap = (long *)NULL; long IdxMapSize = FAIL; long Indices[2] = {0L, 0L}; long *UpdateIdx_1 = (long *)NULL; size_t *size = (size_t *)NULL; size_t datasize = 0; size_t Size = 0; hssize_t start[ 1 ] = { 0 }; hssize_t tstart[ 2 ] = { 0, 0 }; hsize_t ndims = 0; hsize_t nmaps = 0; hsize_t *SizePtr; hsize_t Dims[8] = {0,0,0,0,0,0,0,0}; hsize_t dims[ 2 ] = { 2, 2 }; hsize_t chunk_dims[ 2 ] = { 0, 0 }; hsize_t chunk_dim[ 8 ] = { 0,0,0,0,0,0,0,0}; hsize_t tedge[ 2 ] = { 1, 1 }; hsize_t edge[ 1 ] = { 1 }; hsize_t stride[ 2 ] = { 1, 1 }; hssize_t inq_start[ 2 ] = { 0, 0 }; hsize_t inq_stride[ 2 ] = { 1, 1 }; hsize_t inq_edge[ 2 ] = { 1, 1 }; hsize_t *CountPtr = (hsize_t *)NULL; hsize_t CurrentSize[1] = { 4 }; hsize_t count[1]; hsize_t *indices[8]; double TempData[10][4] = { { 100., 101., 102., 103. }, { 110., 111., 112., 113. }, { 200., 201., 202., 203. }, { 210., 211., 212., 213. }, { 300., 301., 302., 303. }, { 310., 311., 312., 313. }, { 400., 401., 402., 403. }, { 410., 411., 412., 413. }, { 500., 501., 502., 503. }, { 510., 511., 512., 513. } } ; double LongData[5][4] = { { 100., 102., 104., 106. }, { 100., 102., 104., 106. }, { 100., 102., 104., 106. }, { 100., 102., 104., 106. }, { 100., 102., 104., 106. } } ; double LatData[5][4] = { { 24., 24., 24., 24. }, { 23., 23., 23., 23. }, { 22., 22., 22., 22. }, { 21., 21., 21., 21. }, { 20., 20., 20., 20. } } ; double CondData[10][4] = { { 10., 20., 30., 40. }, { 11., 21., 31., 41. }, { 12., 22., 32., 42. }, { 13., 23., 33., 43. }, { 14., 24., 34., 44. }, { 15., 25., 35., 45. }, { 16., 26., 36., 46. }, { 17., 27., 37., 47. }, { 18., 28., 38., 48. }, { 19., 29., 39., 49. } } ; double Range[2]; double CornerLon[2]; double CornerLat[2]; double *BufferPtr; double StartTime = 0.0; double StopTime = 0.0; double *TimeData; double *TimeDataOut; double TempDataOut[10][4]; double fillvalue2 = -1.11111; double InqDoubleFillValue = -1.1111; float IndexedData[8][8]; float FakeValue = 100.; float IndexedLatData[6][6]; float FakeLat = 60.; float IndexedLonData[6][6]; float FakeLon = 80.; float *BufferFloatPtr; float fillvalue = -1.11111; float InqFloatFillValue = -1.111111; float GfattrVal = 3.14; float GfattrValOut; hvl_t buffer[4]; /* Buffer to write data to the profile */ hvl_t buffer_out[4];/* Buffer to read out data from profile */ char *FieldListPtr; char *DimNamePtr; char *DimMapListPtr; char *ObjNamesPtr; char DimList[200]; char *dimlist; /* ******************************************************************************** * Get comand-line argument (Verbosity) * ******************************************************************************** */ for (i = 1; i < argc; i++) { if ((argc > i + 1) && ((HDstrcmp(argv[i], "-verbose") == 0) || (HDstrcmp(argv[i], "-v") == 0))) { if (argv[i + 1][0] == 'l') Verbosity = 4; else if (argv[i + 1][0] == 'm') Verbosity = 6; else if (argv[i + 1][0] == 'h') Verbosity = 10; else Verbosity = atoi(argv[i + 1]); } } /* ----- Generate Data Arrays ----- */ i = 0; j = 0; while( i < 8 ) { while( j < 8 ) { IndexedData[ i ][ j ] = FakeValue; j++; FakeValue+=0.1; } i++; j = 0; } /* -------------------------------- */ i = 0; j = 0; while( i < 6 ) { while( j < 6 ) { IndexedLatData[ i ][ j ] = FakeLat; IndexedLonData[ i ][ j ] = FakeLon; FakeLon-=0.1; j++; } FakeLat-= 0.1; FakeLon = 80.; i++; j = 0; } IndexMap = (long *)calloc(6, sizeof(long)); IndexMap[0] = 1L; IndexMap[1] = 2L; IndexMap[2] = 3L; IndexMap[3] = 5L; IndexMap[4] = 6L; IndexMap[5] = 7L; /* Allocate memory for and populate data buffer */ datasize = 0; for (i = 0; i < 4; i++) { buffer[i].p = (hvl_t *)malloc( 25 *(i+1)* sizeof(unsigned int)); buffer[i].len = 25 * (i+1); /* calculate the data buffer size (bytes) */ datasize += buffer[i].len * sizeof(unsigned int); for ( j = 0; j < 25 * (i+1); j++) ((unsigned int *)buffer[i].p)[j] = (i+1)*1000 + j; } /* --------------------------------- */ MESSAGE(11,fp=fopen("TestSwath.txt","w");); MESSAGE(4,printf("Testing Swath C interface \n");); MESSAGE(4,printf("=========================\n\n");); MESSAGE(11,fprintf(fp,"Testing Swath C interface \n");); MESSAGE(11,fprintf(fp,"=========================\n\n");); /* ********************************************************************************* * Testing HE5_SWopen * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_SWopen... \n");); MESSAGE(4,printf("\t===================== \n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWopen... \n");); MESSAGE(11,fprintf(fp,"\t===================== \n");); swfidc_simple = HE5_SWopen("SimpleSwath.h5",H5F_ACC_TRUNC); if (swfidc_simple == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully opened the swath file ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully opened the swath file ****\n");); } /* ********************************************************************************* * Testing HE5_SWcreate * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_SWcreate... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWcreate... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); MESSAGE(6,printf("\t\tCreating swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\tCreating swath SIMPLE \n");); SWid_simple = HE5_SWcreate(swfidc_simple,"SIMPLE"); if (SWid_simple == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully created the swath SIMPLE ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully created the swath SIMPLE ****\n");); } /* ********************************************************************************* * Testing HE5_SWcreate * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_SWcreate... \n");); MESSAGE(4,printf("\t=======================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWcreate... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); MESSAGE(6,printf("\t\tCreating swath INDEX \n");); MESSAGE(11,fprintf(fp,"\t\tCreating swath INDEX \n");); SWid_index = HE5_SWcreate(swfidc_simple,"INDEX"); if (SWid_index == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully created the swath INDEX ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully created the swath INDEX ****\n");); } /* ********************************************************************************* * Testing HE5_SWdefdim * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_SWdefdim... \n");); MESSAGE(4,printf("\t=======================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdefdim... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); MESSAGE(4,printf("\t\n");); MESSAGE(6,printf("\t\tSetting up dimensions for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tSetting up dimensions for swath SIMPLE \n");); /* ------------------------------------- Swath SIMPLE --------------------------------- --------------------- D e f i n i n g d i m e n s i o n DataTrack ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension DataTrack in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension DataTrack in swath SIMPLE \n");); status = HE5_SWdefdim(SWid_simple, "DataTrack", 10); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdim(SWid_simple, \"DataTrack\", 10);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdim(SWid_simple, \"DataTrack\", 10);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n DataXtrack ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension DataXtrack in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension DataXtrack in swath SIMPLE \n");); status = HE5_SWdefdim(SWid_simple, "DataXtrack", 4); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdim(SWid_simple, \"DataXtrack\", 4);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdim(SWid_simple, \"DataXtrack\", 4);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n Geotrack ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension GeoTrack for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension GeoTrack for swath SIMPLE \n");); status = HE5_SWdefdim(SWid_simple, "GeoTrack", 5); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdim(SWid_simple, \"GeoTrack\", 5);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdim(SWid_simple, \"GeoTrack\", 5);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n GeoXtrack ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension GeoXtrack for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension GeoXtrack for swath SIMPLE \n");); status = HE5_SWdefdim(SWid_simple, "GeoXtrack", 4); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdim(SWid_simple, \"GeoXtrack\", 4);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdim(SWid_simple, \"GeoXtrack\", 4);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n "Unlim" ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension \"Unlim\" in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension \"Unlim\" in swath SIMPLE \n");); status = HE5_SWdefdim(SWid_simple, "Unlim", H5S_UNLIMITED); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdim(SWid_simple, \"Unlim\", H5S_UNLIMITED);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdim(SWid_simple, \"Unlim\", H5S_UNLIMITED);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdim %d\n", status);); } MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tSetting up dimensions for swath INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tSetting up dimensions for swath INDEX \n");); /* ---------------------------------- Swath INDEX ------------------------------------- --------------------- D e f i n i n g d i m e n s i o n TrackDim ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension TrackDim for swath INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension TrackDim for swath INDEX \n");); status = HE5_SWdefdim(SWid_index, "TrackDim", 8); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdim(SWid_index, \"TrackDim\", 8);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdim(SWid_index, \"TrackDim\", 8);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n XtrackDim ---------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension XtrackDim for swath INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension TrackDim for swath INDEX \n");); status = HE5_SWdefdim(SWid_index, "XtrackDim", 8); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdim(SWid_index, \"XtrackDim\", 8);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdim(SWid_index, \"XtrackDim\", 8);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n GeoDim ------------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension GeoDim for swath INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension GeoDim for swath INDEX \n");); status = HE5_SWdefdim(SWid_index, "GeoDim", 6); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdim(SWid_index, \"GeoDim\", 6);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdim(SWid_index, \"GeoDim\", 6);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdim %d\n", status);); } /* --------------------- D e f i n i n g d i m e n s i o n GeoXDim ------------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension GeoXDim for swath INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension GeoXDim for swath INDEX \n");); status = HE5_SWdefdim(SWid_index, "GeoXDim", 6); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdim(SWid_index, \"GeoXDim\", 6);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdim %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdim(SWid_index, \"GeoXDim\", 6);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdim %d\n", status);); } /* ********************************************************************************* * Testing HE5_SWdefdimmap * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_SWdefdimmap... \n");); MESSAGE(4,printf("\t==========================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdefdimmap... \n");); MESSAGE(11,fprintf(fp,"\t==========================\n");); MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining dimension maps for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining dimension maps for swath SIMPLE \n");); /* ---------- D e f i n i n g T r a c k D i m. M a p p i n g ---------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining track dimension mapping\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining track dimension mapping\n");); status = HE5_SWdefdimmap(SWid_simple, "GeoTrack", "DataTrack", 0, 2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdimmap(SWid_simple, \"GeoTrack\",\"DataTrack\", 0, 2);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdimmap %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdimmap(SWid_simple,\"GeoTrack\", \"DataTrack\", 0, 2);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdimmap %d\n",status);); } /* ---- D e f i n i n g C r o s s T r a c k D i m. M a p p i n g ---- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining cross track dimension mapping\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining cross track dimension mapping\n");); status = HE5_SWdefdimmap(SWid_simple, "GeoXtrack", "DataXtrack", 0, 1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdimmap(SWid_simple, \"GeoXtrack\",\"DataXtrack\", 0, 1);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdimmap %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdimmap(SWid_simple,\"GeoXtrack\", \"DataXtrack\", 0, 1);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdimmap %d\n",status);); } /* ---- D e f i n i n g G e o T r a c k / G e o X t r a c k D i m. M a p p i n g ---- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining GeoTrack / GeoXtrack dimension mapping\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining GeoTrack / GeoXtrack dimension mapping\n");); status = HE5_SWdefdimmap(SWid_simple, "GeoTrack", "GeoXtrack", 0, 1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdimmap(SWid_simple, \"GeoTrack\",\"GeoXtrack\", 0, 1);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdimmap %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdimmap(SWid_simple,\"GeoTrack\", \"GeoXtrack\", 0, 1);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdimmap %d\n",status);); } /* --------- D e f i n i n g G e o T r a c k / G e o T r a c k D i m. M a p p i n g ------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining Geo track / Geo track dimension mapping\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining Geo track / Geo track dimension mapping\n");); status = HE5_SWdefdimmap(SWid_simple, "GeoTrack", "GeoTrack", 0, 1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefdimmap(SWid_simple, \"GeoTrack\",\"GeoTrack\", 0, 1);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdimmap %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefdimmap(SWid_simple,\"GeoTrack\", \"GeoTrack\", 0, 1);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdimmap %d\n",status);); } /* ********************************************************************************* * Testing HE5_SWdefidxmap * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_SWdefidxmap... \n");); MESSAGE(4,printf("\t=================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdefidxmap... \n");); MESSAGE(11,fprintf(fp,"\t=================\n");); MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining indexed mapping relationships for swath INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining indexed mapping relationships for swath INDEX \n");); /* ------- D e f i n i n g G e o D i m / T r a c k D i m M a p p i n g ------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining GeoDim/TrackDim mapping\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining GeoDim/TrackDim mapping\n");); status = HE5_SWdefidxmap(SWid_index, "GeoDim", "TrackDim", IndexMap); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefidxmap(SWid_index, \"GeoDim\",\"TrackDim\", IndexMap);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefidxmap %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefidxmap(SWid_index,\"GeoDim\", \"TrackDim\", IndexMap);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefidxmap %d\n",status);); } /* ------- D e f i n i n g G e o X D i m / X t r a c k D i m M a p p i n g ------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining GeoXDim/XtrackDim mapping\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining GeoXDim/XtrackDim mapping\n");); status = HE5_SWdefidxmap(SWid_index, "GeoXDim", "XtrackDim", IndexMap); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdefidxmap(SWid_index, \"GeoXDim\",\"XtrackDim\", IndexMap);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefidxmap %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdefidxmap(SWid_index,\"GeoXDim\", \"XtrackDim\", IndexMap);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefidxmap %d\n",status);); } free(IndexMap); /* ********************************************************************************* * Testing HE5_SWsetfillvalue * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_SWsetfillvalue... \n");); MESSAGE(4,printf("\t=============================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWsetfillvalue... \n");); MESSAGE(11,fprintf(fp,"\t=============================\n");); /* --------- S e t t i n g F i l l v a l u e f o r T e m p e r a t u r e -------- */ fillvalue2 = -777.; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tSetting fill value for field Temperature in swath SIMPLE\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tSetting fill value for field Temperature in swath SIMPLE\n");); status = HE5_SWsetfillvalue(SWid_simple, "Temperature", H5T_NATIVE_DOUBLE, &fillvalue2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWsetfillvalue(SWid_simple,\"Temperature\", &fillvalue2);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWsetfillvalue for field Temperature %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWsetfillvalue(SWid_simple,\"Temperature\", &fillvalue2);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWsetfillvalue for field Temperature %d\n", status);); } /* ********************************************************************************* * Testing HE5_SWdefdatafield * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_SWdefdatafield... \n");); MESSAGE(4,printf("\t=============================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdefdatafield... \n");); MESSAGE(11,fprintf(fp,"\t=============================\n");); MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining data fields for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data fields for swath SIMPLE \n");); /* ---------------------------- Swath SIMPLE --------------------------- --------------- D e f i n i n g T e m p e r a t u r e -------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining data field Temperature\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data field Temperature\n");); status = HE5_SWdefdatafield(SWid_simple, "Temperature", "DataTrack,DataXtrack", NULL,H5T_NATIVE_DOUBLE , 0); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");) MESSAGE(10,printf("\t\tstatus=HE5_SWdefdatafield(SWid_simple,\"Temperature\",NULL, H5T_NATIVE_DOUBLE ,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdatafield %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefdatafield(SWid_simple,\"Temperature\",NULL, H5T_NATIVE_DOUBLE ,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdatafield %d\n", status);); } /* ---------------------------------- Defining Appendable field "Count" --------------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining appendable data field Count\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining appendable data field Count\n");); /* -------------------- D e f i n i n g c h u n k i n g --------------------- */ chunk_dims[ 0 ] = 10; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining chunking for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining chunking for swath SIMPLE \n");); status = HE5_SWdefchunk(SWid_simple,RANK1,chunk_dims); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefchunk(SWid_simple,RANK1,chunk_dims);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefchunk %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefchunk(SWid_simple,RANK1,chunk_dims);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefchunk %d\n",status);); } /* --------------- D e f i n i n g c o m p r e s s i o n s c h e m e -------------- ___________________________________________________________________ | | | HE5_HDFE_COMP_NONE 0 | | HE5_HDFE_COMP_RLE 1 | | HE5_HDFE_COMP_NBIT 2 | | HE5_HDFE_COMP_SKPHUFF 3 | | HE5_HDFE_COMP_DEFLATE 4 | | HE5_HDFE_COMP_SZIP_CHIP 5 | | HE5_HDFE_COMP_SZIP_K13 6 | | HE5_HDFE_COMP_SZIP_EC 7 | | HE5_HDFE_COMP_SZIP_NN 8 | | HE5_HDFE_COMP_SZIP_K13orEC 9 | | HE5_HDFE_COMP_SZIP_K13orNN 10 | | HE5_HDFE_COMP_SHUF_DEFLATE 11 | | HE5_HDFE_COMP_SHUF_SZIP_CHIP 12 | | HE5_HDFE_COMP_SHUF_SZIP_K13 13 | | HE5_HDFE_COMP_SHUF_SZIP_EC 14 | | HE5_HDFE_COMP_SHUF_SZIP_NN 15 | | HE5_HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HE5_HDFE_COMP_SHUF_SZIP_K13orNN 17 | |_________________________________________________________________| */ comp_code = 16; /* --------------- D e f i n i n g c o m p r e s s i o n l e v e l -------------- */ comp_level[ 0 ] = 8; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining compression parameters for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining compression parameters for swath SIMPLE \n");); #ifdef H5_HAVE_FILTER_SZIP if(HE5_szip_can_encode() == 1) { status = HE5_SWdefcomp(SWid_simple,comp_code,comp_level); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefcomp(SWid_simple,comp_code, comp_level);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefcomp %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefcomp(SWid_simple,comp_code, comp_level);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefcomp %d\n",status);); } } else printf("No szip encoder provided, the szip compression test is be skipped.\n"); #else printf("No szip library available, the szip compression test is be skipped.\n"); #endif /* --------------- D e f i n i n g C o u n t -------------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining data field Count\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data field Count\n");); status = HE5_SWdefdatafield(SWid_simple, "Count", "DataTrack","Unlim", H5T_NATIVE_INT, 0); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefdatafield(SWid_simple, \"Count\",\"DataTrack\",\"Unlim\",H5T_NATIVE_INT,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdatafield %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefdatafield(SWid_simple,\"Count\",\"DataTrack\",\"Unlim\",H5T_NATIVE_INT,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdatafield %d\n", status);); } /* ***************************************************************************** * Testing HE5_PRdefine * ***************************************************************************** */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_PRdefine... \n");); MESSAGE(4,printf("\t=======================\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PRdefine... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining profile for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining profile for swath SIMPLE \n");); status = HE5_PRdefine(SWid_simple,"Profile-2000", "DataXtrack", NULL, H5T_NATIVE_UINT); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");) MESSAGE(10,printf("\t\tstatus=HE5_PRdefine(SWid_simple,\"Profile-2000\", \"DataXtrack\", NULL, H5T_NATIVE_UINT);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_PRdefine %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_PRdefine(SWid_simple,\"Profile-2000\", \"DataXtrack\", NULL, H5T_NATIVE_UINT);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_PRdefine %d\n", status);); } MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining data fields for swath INDEX \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data fields for swath INDEX \n");); /* ------------------------------- Swath INDEX --------------------------- */ /* --------- S e t t i n g F i l l v a l u e f o r I n d e x e d D a t a -------- */ fillvalue = -555.; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tSetting fill value for field Indexed_Data in swath INDEX\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tSetting fill value for field Indexed_Data in swath INDEX\n");); status = HE5_SWsetfillvalue(SWid_index, "Indexed_Data", H5T_NATIVE_FLOAT, &fillvalue); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWsetfillvalue(SWid_index,\"Indexed_Data\", &fillvalue);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWsetfillvalue for field Indexed_Data%d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWsetfillvalue(SWid_index,\"Indexed_Data\", &fillvalue);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWsetfillvalue for field Indexed_Data %d\n", status);); } /* --------------- D e f i n i n g I n d e x e d _ D a t a ----------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining data field Indexed_Data\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data field Indexed_Data\n");); status = HE5_SWdefdatafield(SWid_index, "Indexed_Data", "TrackDim,XtrackDim", NULL,H5T_NATIVE_FLOAT, 0); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");) MESSAGE(10,printf("\t\tstatus=HE5_SWdefdatafield(SWid_index,\"Indexed_Data\",NULL, H5T_NATIVE_FLOAT,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdatafield %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefdatafield(SWid_index,\"Indexed_Data\",NULL, H5T_NATIVE_FLOAT,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdatafield %d\n", status);); } /* ********************************************************************************* * Testing HE5_SWdefcomp * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_SWdefcomp... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdefcomp... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); /* -------------------- D e f i n i n g c h u n k i n g --------------------- */ chunk_dims[ 0 ] = 5 ; chunk_dims[ 1 ] = 2 ; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining chunking for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining chunking for swath SIMPLE \n");); status = HE5_SWdefchunk(SWid_simple,RANK2,chunk_dims); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefchunk(SWid_simple,RANK2,chunk_dims);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefchunk %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefchunk(SWid_simple,RANK2,chunk_dims);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefchunk %d\n",status);); } /* --------------- D e f i n i n g c o m p r e s s i o n s c h e m e -------------- ___________________________________________________________________ | | | HE5_HDFE_COMP_NONE 0 | | HE5_HDFE_COMP_RLE 1 | | HE5_HDFE_COMP_NBIT 2 | | HE5_HDFE_COMP_SKPHUFF 3 | | HE5_HDFE_COMP_DEFLATE 4 | | HE5_HDFE_COMP_SZIP_CHIP 5 | | HE5_HDFE_COMP_SZIP_K13 6 | | HE5_HDFE_COMP_SZIP_EC 7 | | HE5_HDFE_COMP_SZIP_NN 8 | | HE5_HDFE_COMP_SZIP_K13orEC 9 | | HE5_HDFE_COMP_SZIP_K13orNN 10 | | HE5_HDFE_COMP_SHUF_DEFLATE 11 | | HE5_HDFE_COMP_SHUF_SZIP_CHIP 12 | | HE5_HDFE_COMP_SHUF_SZIP_K13 13 | | HE5_HDFE_COMP_SHUF_SZIP_EC 14 | | HE5_HDFE_COMP_SHUF_SZIP_NN 15 | | HE5_HDFE_COMP_SHUF_SZIP_K13orEC 16 | | HE5_HDFE_COMP_SHUF_SZIP_K13orNN 17 | |_________________________________________________________________| */ comp_code = 16; /* --------------- D e f i n i n g c o m p r e s s i o n l e v e l -------------- */ comp_level[ 0 ] = 2; MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining compression parameters for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining compression parameters for swath SIMPLE \n");); #ifdef H5_HAVE_FILTER_SZIP if(HE5_szip_can_encode() == 1) { status = HE5_SWdefcomp(SWid_simple,comp_code,comp_level); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test (SZIP) **********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefcomp(SWid_simple,comp_code, comp_level);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefcomp %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefcomp(SWid_simple,comp_code, comp_level);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefcomp %d\n",status);); } } else printf("No szip encoder provided, the szip compression test is be skipped.\n"); #else printf("No szip library available, the szip compression test is be skipped.\n"); #endif /* --------------- D e f i n i n g C o n d u c t i o n -------------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining data field Conduction\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining data field Conduction\n");); status = HE5_SWdefdatafield(SWid_simple, "Conduction", "DataTrack,DataXtrack", NULL, H5T_NATIVE_DOUBLE, 0); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefdatafield(SWid_simple, \"Conduction\",\"DataTrack,DataXtrack\",NULL,H5T_NATIVE_DOUBLE,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefdatafield %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefdatafield(SWid_simple,\"Conduction\",\"DataTrack,DataXtrack\",NULL,H5T_NATIVE_DOUBLE,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefdatafield %d\n", status);); } /* ********************************************************************************* * Testing HE5_SWdefgeofield * ********************************************************************************* */ MESSAGE(4,printf("\t\n");); MESSAGE(4,printf("\tTesting HE5_SWdefgeofield... \n");); MESSAGE(4,printf("\t============================ \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdefgeofield... \n");); MESSAGE(11,fprintf(fp,"\t============================ \n");); /* --------------------------- Swath SIMPLE ------------------------------------- */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining geolocation fields for swath SIMPLE\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining geolocation fields for swath SIMPLE\n");); /* T I M E */ MESSAGE(6,printf("\t\n");); MESSAGE(6,printf("\t\tDefining geolocation field Time\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tDefining geolocation field Time\n");); status = HE5_SWdefgeofield(SWid_simple,"Time","GeoTrack",NULL,H5T_NATIVE_DOUBLE,0); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefgeofield(SWid_simple,\"Time\",\"GeoTrack\",NULL,H5T_NATIVE_DOUBLE,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefgeofield %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefgeofield(SWid_simple,\"Time\",\"GeoTrack\",NULL,H5T_NATIVE_DOUBLE,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefgeofield %d\n",status);); } /* L A T I T U D E */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining geolocation field Latitude\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining geolocation field Latitude\n");); status = HE5_SWdefgeofield(SWid_simple, "Latitude", "GeoTrack,GeoXtrack",NULL,H5T_NATIVE_DOUBLE,0); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefgeofield(SWid_simple,\"Latitude\",\"GeoTrack,GeoXtrack\", NULL, H5T_NATIVE_DOUBLE, 0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefgeofield %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefgeofield(SWid_simple,\"Latitude\",\"GeoTrack,GeoXtrack\", NULL, H5T_NATIVE_DOUBLE, 0 );\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefgeofield %d\n",status);); } /* L O N G I T U D E */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining geolocation field Longitude\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining geolocation field Longitude\n");); status = HE5_SWdefgeofield(SWid_simple, "Longitude","GeoTrack,GeoXtrack",NULL,H5T_NATIVE_DOUBLE,0 ); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefgeofield(SWid_simple,\"Longitude\",\"GeoTrack,GeoXtrack\",NULL,H5T_NATIVE_DOUBLE,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefgeofield %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefgeofield(SWid_simple,\"Longitude\",\"GeoTrack,GeoXtrack\",NULL,H5T_NATIVE_DOUBLE,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefgeofield %d\n",status);); } /* -------------------------------- Swath INDEX ------------------------------------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining geolocation fields for swath INDEX\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining geolocation fields for swath INDEX\n");); /* L A T I T U D E */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining geolocation field Latitude\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining geolocation field Latitude\n");); status = HE5_SWdefgeofield(SWid_index,"Latitude","GeoDim,GeoXDim",NULL,H5T_NATIVE_FLOAT,0); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefgeofield(SWid_index,\"Latitude\",\"GeoDim,GeoXDim\",NULL,H5T_NATIVE_FLOAT,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefgeofield %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefgeofield(SWid_index,\"Latitude\",\"GeoDim,GeoXDim\",NULL,H5T_NATIVE_FLOAT,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefgeofield %d\n",status);); } /* L O N G I T U D E */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining geolocation field Longitude\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining geolocation field Longitude\n");); status = HE5_SWdefgeofield(SWid_index,"Longitude","GeoDim,GeoXDim",NULL,H5T_NATIVE_FLOAT,0); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWdefgeofield(SWid_index,\"Longitude\",\"GeoDim,GeoXDim\",NULL,H5T_NATIVE_FLOAT,0);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWdefgeofield %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWdefgeofield(SWid_index,\"Longitude\",\"GeoDim,GeoXDim\",NULL,H5T_NATIVE_FLOAT,0);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWdefgeofield %d\n",status);); } /* ********************************************************************************* * Testing HE5_SWwritefield * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWwritefield... \n");); MESSAGE(4,printf("\t===========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWwritefield... \n");); MESSAGE(11,fprintf(fp,"\t===========================\n");); /* -------------------------------- Swath SIMPLE ------------------------- --------- W r i t i n g T i m e i n a s w a t h -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Time in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Time in swath SIMPLE \n");); TimeData = (double *)calloc( 5, sizeof( double)); for ( i = 0; i < 5; i++ ) { TimeData[ i ] = 5.e7 + 5.e6 * i ; } tstart[ 0 ] = 0; tedge[ 0 ] = 5; status = HE5_SWwritefield(SWid_simple,"Time", tstart, NULL, tedge, TimeData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_simple,\"Time\", tstart,NULL, tedge, TimeData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWwritefield %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Time\", tstart,NULL, tedge, TimeData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWwritefield %d\n",status);); } free( TimeData ); TimeData = NULL; /* --------- W r i t i n g T e m p e r a t u r e i n a s w a t h -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Temperature in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Temperature in swath SIMPLE \n");); tstart[ 0 ] = 0; tstart[ 1 ] = 0; tedge[ 0 ] = 10; tedge[ 1 ] = 4; status = HE5_SWwritefield(SWid_simple, "Temperature", tstart, NULL, tedge, TempData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_simple,\"Temperature\", tstart,stride, tedge, TempData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWwritefield %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Temperature\", tstart, stride, tedge, TempData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWwritefield %d\n",status);); } /* --------- W r i t i n g C o n d u c t i o n i n a s w a t h -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Conduction in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Conduction in swath SIMPLE \n");); status = HE5_SWwritefield(SWid_simple, "Conduction", tstart, NULL, tedge, CondData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_simple, \"Conduction\",tstart, stride, tedge, CondData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWwritefield for field Conduction in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Conduction\", tstart, stride, tedge, CondData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWwritefield for field Conduction in swath SIMPLE %d\n",status);); } /* --------- W r i t i n g L o n g i t u d e / L a t i t u d e i n a s w a t h -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Longitude in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Longitude in swath SIMPLE \n");); tedge[0] = 5; status = HE5_SWwritefield(SWid_simple, "Longitude", tstart, NULL, tedge, LongData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_simple, \"Longitude\",tstart, NULL, tedge, LongData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWwritefield for field Longitude in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Longitude\", tstart, NULL, tedge, LongData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWwritefield for field Conduction in swath SIMPLE %d\n",status);); } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Latitude in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Latitude in swath SIMPLE \n");); status = HE5_SWwritefield(SWid_simple, "Latitude", tstart, NULL, tedge, LatData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_simple, \"Latitude\",tstart, NULL, tedge, LatData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWwritefield for field Latitude in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Latitude\", tstart, NULL, tedge, LatData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWwritefield for field latitude in swath SIMPLE %d\n",status);); } /* --------- W r i t i n g C o u n t i n a s w a t h -------- */ tstart[0] = 0; tedge[0] = 10; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Count in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Count in swath SIMPLE \n");); status = HE5_SWwritefield(SWid_simple, "Count", tstart, NULL, tedge, inarray); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_simple, \"Count\",tstart, NULL, tedge, inarray);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWwritefield for field Count in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Count\", tstart, stride, NULL, inarray);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWwritefield for field Conduction in swath SIMPLE %d\n",status);); } /* ************************************************************************** * Testing HE5_PRwrite * ************************************************************************** */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_PRwrite... \n");); MESSAGE(4,printf("\t======================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PRwrite... \n");); MESSAGE(11,fprintf(fp,"\t======================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting profile \"Profile-2000\" in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting profile \"Profile-2000\" in swath SIMPLE \n");); edge[ 0 ] = 4; status = HE5_PRwrite(SWid_simple, "Profile-2000", start, NULL, edge, datasize, buffer); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PRwrite(SWid_simple, \"Profile-2000\", start, NULL, edge, datasize, buffer);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_PRwrite in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PRwrite(SWid_simple,\"Profile-2000\", start, NULL, edge, datasize, buffer);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_PRwrite in swath SIMPLE %d\n",status);); } /* -------------------------------- Swath INDEX ----------------------------------- ------- W r i t i n g I n d e x e d _ D a t a i n a s w a t h -------- */ tstart[ 0 ] = 0; tstart[ 1 ] = 0; tedge[ 0 ] = 8; tedge[ 1 ] = 4; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Indexed_Data in swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Indexed_Data in swath INDEX \n");); status = HE5_SWwritefield(SWid_index, "Indexed_Data", tstart, NULL, tedge, IndexedData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_index, \"Indexed_Data\",tstart,NULL,tedge,IndexedData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWwritefield for field Indexed_Data in swath INDEX %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Indexed_Data\",tstart,NULL,tedge,IndexedData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWwritefield for field Indexed_Data in swath INDEX %d\n",status);); } /* ------- W r i t i n g L a t i t u d e / L o n g i t u d e i n a s w a t h -------- */ tstart[ 0 ] = 0; tstart[ 1 ] = 0; tedge[ 0 ] = 6; tedge[ 1 ] = 6; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Latitude in swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Latitude in swath INDEX \n");); status = HE5_SWwritefield(SWid_index, "Latitude", tstart, NULL, tedge, IndexedLatData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_index, \"Latitude\",tstart,NULL,tedge,IndexedLatData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWwritefield for field Latitude in swath INDEX %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Latitude\",tstart,NULL,tedge,IndexedLatData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWwritefield for field Latitude in swath INDEX %d\n",status);); } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting field Longitude in swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting field Longitude in swath INDEX \n");); status = HE5_SWwritefield(SWid_index, "Longitude", tstart, NULL, tedge, IndexedLonData); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_index, \"Longitude\",tstart,NULL,tedge,IndexedLonData);\n");); MESSAGE(8,printf("\t\tValue returned by HE5_SWwritefield for field Longitude in swath INDEX %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Longitude\",tstart,NULL,tedge,IndexedLonData);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_SWwritefield for field Longitude in swath INDEX %d\n",status);); } /* ********************************************************************************* * Testing HE5_SWwriteattr * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWwriteattr... \n");); MESSAGE(4,printf("\t==========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWwriteattr... \n");); MESSAGE(11,fprintf(fp,"\t==========================\n");); /* --------- W r i t i n g " D r i f t " i n a s w a t h -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting attribute Drift in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting attribute Drift in swath SIMPLE \n");); status = HE5_SWwriteattr(SWid_simple,"Drift",H5T_NATIVE_INT,CurrentSize,AttrVal); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwriteattr(SWid_simple, \"Drift\",H5T_NATIVE_INT, 4, AttrVal);\n");); MESSAGE(8,printf("\t\tValue returned by SWwriteattr for attribute Drift in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwriteattr(SWid_simple, \"Drift\",H5T_NATIVE_INT, 4, AttrVal);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWwriteattr for attribute Drift in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\t Attribute element Value to write \n");); MESSAGE(11,printf("\t\t Attribute element Value to write \n");); for( i = 0; i < 4 ; i++ ) { MESSAGE(11,fprintf(fp,"\t\t %d %d \n",i+1,AttrVal[ i ] );); MESSAGE(11,printf("\t\t %d %d \n", i+1,AttrVal[ i ] );); } } /* ********************************************************************************* * Testing HE5_SWwritegrpattr * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWwritegrpattr... \n");); MESSAGE(4,printf("\t==========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWwritegrpattr... \n");); MESSAGE(11,fprintf(fp,"\t==========================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting attribute GroupAttribute in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting attribute GroupAttribute in swath SIMPLE \n");); status = HE5_SWwritegrpattr(SWid_simple,"GroupAttribute",H5T_NATIVE_INT,CurrentSize,GattrVal); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritegrpattr(SWid_simple, \"GroupAttribute\",H5T_NATIVE_INT, 4,GattrVal);\n");); MESSAGE(8,printf("\t\tValue returned by SWwritegrpattr for attribute GroupAttribute in swath SIMPLE %d \n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritegrpattr(SWid_simple, \"GroupAttribute\",H5T_NATIVE_INT, 4, GattrVal);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWwritegrpattr for attribute GroupAttribute in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\t Attribute element Value to write \n");); MESSAGE(11,printf("\t\t Attribute element Value to write \n");); for( i = 0; i < 4 ; i++ ) { MESSAGE(11,fprintf(fp,"\t\t %d %d \n",i+1,GattrVal[ i ] );); MESSAGE(11,printf("\t\t %d %d \n", i+1,GattrVal[ i ] );); } } /* ********************************************************************************* * Testing HE5_SWwritegeogrpattr * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWwritegeogrpattr... \n");); MESSAGE(4,printf("\t==========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWwritegeogrpattr... \n");); MESSAGE(11,fprintf(fp,"\t==========================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting attribute ScalarFloat in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting attribute ScalarFloat in swath SIMPLE \n");); count[0] = 1; status = HE5_SWwritegeogrpattr(SWid_simple,"ScalarFloat",H5T_NATIVE_FLOAT,count,&GfattrVal); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritegeogrpattr(SWid_simple, \"ScalarFloat\",H5T_NATIVE_FLOAT, 4,GfattrVal);\n");); MESSAGE(8,printf("\t\tValue returned by SWwritegeogrpattr for attribute ScalarFloat in swath SIMPLE %d \n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritegeogrpattr(SWid_simple, \"ScalarFloat\",H5T_NATIVE_FLOAT, 4, GfattrVal);\n");) ; MESSAGE(11,fprintf(fp,"\t\tValue returned by SWwritegeogrpattr for attribute ScalarFloat in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\t Attribute element Value to write \n");); MESSAGE(11,printf("\t\t Attribute element Value to write \n");); } /* ********************************************************************************* * Testing HE5_SWdefvrtregion * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdefvrtregion... \n");); MESSAGE(4,printf("\t=============================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdefvrtregion... \n");); MESSAGE(11,fprintf(fp,"\t=============================\n");); Range[ 0 ] = 5.5e7; Range[ 1 ] = 6.5e7; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining vert region Time \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining vert region Time \n");); RegionID = HE5_SWdefvrtregion(SWid_simple,HE5_HDFE_NOPREVSUB,"Time",Range); if (RegionID == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(8,printf("\t\tRegion ID returned by SWdefvrtregion = %d\n",RegionID);); MESSAGE(11,fprintf(fp,"\t\tRegion ID returned by SWdefvrtregion = %d\n",RegionID);); } /* ********************************************************************************* * Testing HE5_SWreadfield * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWreadfield... \n");); MESSAGE(4,printf("\t==========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWreadfield... \n");); MESSAGE(11,fprintf(fp,"\t==========================\n");); /* --------- R e a d i n g T i m e f r o m a s w a t h -------- */ tstart[ 0 ] = 0; tedge[ 0 ] = 5; TimeDataOut = (double *)calloc( 5, sizeof( double )); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tReading field Time from swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tReading field Time from swath SIMPLE \n");); status = HE5_SWreadfield(SWid_simple,"Time",tstart,NULL,tedge,TimeDataOut); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWreadfield(SWid_simple,\"Time\",tstart,NULL,tedge,TimeDataOut);\n");); MESSAGE(8,printf("\t\tstatus returned by SWreadfield %d\n", status );); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWreadfield(SWid_simple,\"Time\",tstart,NULL,tedge,TimeDataOut);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWreadfield %d\n", status );); MESSAGE(8,printf("\t\tFirst five values of \"Time\" field read\n");); MESSAGE(11,fprintf(fp,"\t\tFirst five values of \"Time\" field read\n");); MESSAGE(8,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); for( i = 0; i < 5 ; i++) { MESSAGE(8,printf("\t\t %lf\n", TimeDataOut[i]);); MESSAGE(11,fprintf(fp,"\t\t %lf\n", TimeDataOut[i]);); } } free(TimeDataOut); TimeDataOut = NULL; /* ********************************************************************************* * Testing HE5_PRread * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_PRread... \n");); MESSAGE(4,printf("\t=====================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PRread... \n");); MESSAGE(11,fprintf(fp,"\t=====================\n");); start[0] = 0; edge[0] = 4; status = HE5_PRread(SWid_simple, "Profile-2000", start, NULL, edge, buffer_out); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_PRread(SWid_simple, \"Profile-2000\", start, NULL, edge, buffer_out);\n");); MESSAGE(8,printf("\t\tstatus returned by HE5_PRread %d\n", status );); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_PRread(SWid_simple,\"Profile-2000\", start, NULL, edge, buffer_out);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by HE5_PRread %d\n", status );); MESSAGE(8,printf("\t\tThe first two elements of \"Profile-2000\" data read\n");); MESSAGE(11,fprintf(fp,"\t\tThe firdt two elements of \"Profile-2000\" data read\n");); MESSAGE(8,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); } for (i = 0; i < 4; i++) { MESSAGE(8,printf("\t\tThe %d-th element length is %d \n", i, (unsigned)buffer_out[i].len);); MESSAGE(11,fprintf(fp,"\t\tThe %d-th element length is %d \n", i, (unsigned)buffer_out[i].len);); for (j = 0; j < 2; j++) { MESSAGE(8,printf("\t\t %d \n", ((unsigned int *)buffer_out[i].p)[j]);); MESSAGE(11,fprintf(fp,"\t\t %d \n", ((unsigned int *)buffer_out[i].p)[j]);); } } MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tReclaiming the space ... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tReclaiming the space ... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); status = HE5_PRreclaimspace(SWid_simple, "Profile-2000", buffer_out); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_PRreclaimspace(SWid_simple, \"Profile-2000\", buffer_out);\n");); MESSAGE(8,printf("\t\tstatus returned by HE5_PRreclaimspace %d\n", status );); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_PRreclaimspace(SWid_simple,\"Profile-2000\", buffer_out);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by HE5_PRreclaimspace %d\n", status );); } /* ********************************************************************************* * Testing HE5_SWreadattr * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWreadattr... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWreadattr... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); /* --------- R e a d i n g " D r i f t " a t t r i b u t e -------- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tReading attribute Drift from swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tReading attribute Drift from swath SIMPLE \n");); status = HE5_SWreadattr(SWid_simple,"Drift", AttrValOut); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWreadattr(SWid_simple,\"Drift\", AttrValOut);\n");); MESSAGE(8,printf("\t\tValue returned by SWreadattr for attribute Drift in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWreadattr(SWid_simple,\"Drift\", AttrValOut);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWreadattr for attribute Drift in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\t Attribute elements read \n");); MESSAGE(8,printf("\t\t Attribute elements read \n");); MESSAGE(8,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); for( i = 0; i < 4 ; i++ ) { MESSAGE(11,fprintf(fp,"\t\t %d \n", AttrValOut[ i ] );); MESSAGE(8,printf("\t\t %d \n", AttrValOut[ i ] );); } } /* ********************************************************************************* * Testing HE5_SWreadgrpattr * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWreadgrpattr... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWreadgrpattr... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tReading attribute GroupAttribute from swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tReading attribute GroupAttribute from swath SIMPLE \n");); status = HE5_SWreadgrpattr(SWid_simple,"GroupAttribute", GattrValOut); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("Group attribute values:\n");); for (i = 0; i < 4; i++) MESSAGE(4,printf("\t\t %d \n", GattrValOut[ i ] );); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWreadgrpattr(SWid_simple,\"GroupAttribute\", GattrValOut);\n");); MESSAGE(8,printf("\t\tValue returned by SWreadgrpattr for attribute GroupAttribute in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWreadgrpattr(SWid_simple,\"GroupAttribute\", GattrValOut);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWreadgrpattr for attribute GroupAttribute in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\t Attribute elements read \n");); MESSAGE(8,printf("\t\t Attribute elements read \n");); MESSAGE(8,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); for( i = 0; i < 4 ; i++ ) { MESSAGE(11,fprintf(fp,"\t\t %d \n", GattrValOut[ i ] );); MESSAGE(8,printf("\t\t %d \n", GattrValOut[ i ] );); } } /* ********************************************************************************* * Testing HE5_SWreadgeogrpattr * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWreadgeogrpattr... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWreadgeogrpattr... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tReading attribute ScalarFloat from swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tReading attribute ScalarFloat from swath SIMPLE \n");); status = HE5_SWreadgeogrpattr(SWid_simple,"ScalarFloat", &GfattrValOut); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("Geolocation fields group attribute values:\n");); MESSAGE(4,printf("\t\t %f \n", GfattrValOut );); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWreadgeogrpattr(SWid_simple,\"GroupAttribute\", GattrValOut);\n");); MESSAGE(8,printf("\t\tValue returned by SWreadgeogrpattr for attribute GroupAttribute in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWreadgeogrpattr(SWid_simple,\"GroupAttribute\", GattrValOut);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWreadgeogrpattr for attribute GroupAttribute in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\t Attribute elements read \n");); MESSAGE(8,printf("\t\t Attribute elements read \n");); MESSAGE(8,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(8,printf("\t\t %f \n", GfattrValOut);); } /* ********************************************************************************* * Testing HE5_SWnentries * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWnentries... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWnentries... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); /* ----- R e t r i e v e # o f d i m e n s i o n s i n a s w a t h ----- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve number of dimensions in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve number of dimensions in swath SIMPLE \n");); number = HE5_SWnentries(SWid_simple,0,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWnentries(SWid_simple,0,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of dimensions %li\n",number);); MESSAGE(8,printf("\t\tString size of dimension entries: %li (bytes)\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWnentries(SWid_simple,0,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of dimensions %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tString size of dimension entries: %li (bytes)\n",strbufsize);); } /* ********************************************************************************* * Testing HE5_SWinqdims * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqdims... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqdims... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); DimNamePtr = (char *)calloc( 1, strbufsize+1); /* ----- R e t r i e v e d i m e n s i o n l i s t f o r a s w a t h ----- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve the dimension information for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve the dimension information for swath SIMPLE \n");); number = HE5_SWinqdims(SWid_simple,DimNamePtr,Dims); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(8,printf("\t\tnumber=HE5_SWinqdims(SWid_simple,DimNamePtr,DimListPtr);\n");); MESSAGE(8,printf("\t\tDimension list: \n");); MESSAGE(8,printf("\t\t %s\n",DimNamePtr);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqdims(SWid_simple,DimNamePtr,DimListPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tDimension list: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n",DimNamePtr);); MESSAGE(8,printf("\t\tDimension sizes: \n");); MESSAGE(11,fprintf(fp,"\t\tDimension sizes: \n");); for (i = 0; i < number; i++) { MESSAGE(8,printf("\t\t %lu\n",(unsigned long)Dims[i]);); MESSAGE(11,fprintf(fp,"\t\t %lu\n",(unsigned long)Dims[i]);); } } free(DimNamePtr); DimNamePtr = NULL; /* ********************************************************************************* * Testing HE5_SWinqmaps * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqmaps... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqmaps... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); /* -- R e t r i e v e d i m e n s i o n m a p p i n g s i n a s w a t h -- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve dimension mappings for swath SIMPLE\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve dimension mappings for swath SIMPLE\n");); number = HE5_SWnentries(SWid_simple,1,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWnentries(SWid_simple,1,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of dimension mappings %li\n",number);); MESSAGE(8,printf("\t\tSize of dimension mapping entries %li (bytes)\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWnentries(SWid_simple,1,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of dimension mappings %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tSize of dimension mapping entries %li (bytes)\n",strbufsize);); } /* -- R e t r i e v e g e o l o c a t i o n r e l a t i o n s f o r a s w a t h -- */ OffsetPtr = (long *)calloc(number, sizeof(long)); IncremPtr = (long *)calloc(number, sizeof(long)); DimMapListPtr = (char *)calloc( BUFSIZE, sizeof(char)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve geolocation relations for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve geolocation relations for swath SIMPLE \n");); number = HE5_SWinqmaps(SWid_simple,DimMapListPtr,OffsetPtr,IncremPtr); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqmaps(SWid_simple,DimMapListPtr,OffsetPtr,IncremPtr);\n");); MESSAGE(8,printf("\t\tNumber of maps %li\n", number);); MESSAGE(6,printf("\t\tGeolocation relations: \n");); MESSAGE(6,printf("\t\t %s\n",DimMapListPtr);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqmaps(SWid_simple,DimMapListPtr,OffsetPtr,IncremPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of maps %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tGeolocation relations: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n",DimMapListPtr);); MESSAGE(6,printf("\t\t Offset Increment \n");); MESSAGE(11,fprintf(fp,"\t\t Offset Increment \n");); for (i = 0; i < number; i++) { MESSAGE(6,printf("\t\t %li %li \n",OffsetPtr[i], IncremPtr[i]);); MESSAGE(11,fprintf(fp,"\t\t %li %li \n",OffsetPtr[i], IncremPtr[i]);); } } free(OffsetPtr); free(IncremPtr); free(DimMapListPtr); OffsetPtr = NULL; IncremPtr = NULL; DimMapListPtr = NULL; /* -- R e t r i e v e t h e I n d e x d i m e n s i o n m a p p i n g s -- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve the Index dimension mappings for swath SIMPLE\n");); MESSAGE(11,fprintf(fp,"\n"); ); MESSAGE(11,fprintf(fp,"\t\tRetrieve the Index dimension mappings for swath SIMPLE\n"); ); number = HE5_SWnentries(SWid_simple,2,&strbufsize); if ( number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWnentries(SWid_simple,2,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of Indexed mappings %li\n",number);); MESSAGE(8,printf("\t\tSize of index mapping entries: %li (bytes)\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWnentries(SWid_simple,2,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of Indexed mappings %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tSize of index mapping entries: %li (bytes)\n",strbufsize);); } /* ********************************************************************************* * Testing HE5_SWinqgeofields * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqgeofields... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqgeofields... \n");); MESSAGE(11,fprintf(fp,"\t============================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about Geolocation fields in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about Geolocation fields in swath SIMPLE \n");); number = HE5_SWnentries(SWid_simple,3,&strbufsize); if ( number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWnentries(SWid_simple,3,&strbufsize);\n");); MESSAGE(8,printf("\t\tValue (number of geo fields) returned by SWnentries %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWnentries(SWid_simple,3,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tValue (number of geo fields) returned by SWnentries %li\n",number);); } /* -- R e t r i e v e g e o l o c a t i o n f i e l d s i n a s w a t h -- */ RankPtr = (int *)calloc( number, sizeof(int)); FieldListPtr = (char *)calloc( BUFSIZE, sizeof(char)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve more information about Geolocation fields\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve more information about Geolocation fields\n");); number = HE5_SWinqgeofields(SWid_simple,FieldListPtr,RankPtr,ntype); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqgeofields(SWid_simple,FieldListPtr,RankPtr,ntype);\n");); MESSAGE(8,printf("\t\tList of Geolocation fields:\n");); MESSAGE(8,printf("\t\t %s\n",FieldListPtr);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqgeofields(SWid_simple,FieldListPtr,RankPtr,ntype);\n");); MESSAGE(11,fprintf(fp,"\t\tList of Geolocation fields:\n");); MESSAGE(11,fprintf(fp,"\t\t %s\n",FieldListPtr);); MESSAGE(8,printf("\t\tRanks: Data types:\n");); MESSAGE(11,fprintf(fp,"\t\tRanks: Data types:\n");); for (i = 0; i < number; i++) { MESSAGE(8,printf("\t\t %d %d\n", RankPtr[i], ntype[i]);); MESSAGE(11,fprintf(fp,"\t\t %d %d\n", RankPtr[i], ntype[i]);); } } free(RankPtr); RankPtr = NULL; /* ********************************************************************************* * Testing HE5_SWinqdatafields * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqdatafields... \n");); MESSAGE(4,printf("\t============================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqdatafields... \n");); MESSAGE(11,fprintf(fp,"\t============================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about Data fields in swath SIMPLE\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about Data fields in swath SIMPLE\n");); number = HE5_SWnentries(SWid_simple,4,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWnentries(SWid_simple,4,&strbufsize);\n");); MESSAGE(8,printf("\t\tValue (number of data fields) returned by SWnentries %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWnentries(SWid_simple,4,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tValue (number of data fields) returned by SWnentries %li\n",number);); } RankPtr = (int *)calloc(number, sizeof(int)); MESSAGE(6,printf("\t\tRetrieve the Data fields in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve the Data fields in swath SIMPLE \n");); number = HE5_SWinqdatafields(SWid_simple,FieldListPtr,RankPtr,ntype); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqdatafields(SWid_simple,FieldListPtr,RankPtr,ntype);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqdatafields(SWid_simple,FieldListPtr,RankPtr,ntype);\n");); MESSAGE(8,printf("\t\tList of Data fields:\n");); MESSAGE(8,printf("\t\t %s\n",FieldListPtr);); MESSAGE(11,fprintf(fp,"\t\tList of Data fields:\n");); MESSAGE(11,fprintf(fp,"\t\t %s\n",FieldListPtr);); MESSAGE(8,printf("\t\tRanks: Data types:\n");); MESSAGE(11,fprintf(fp,"\t\tRanks: Data types:\n");); for (i = 0; i < number; i++) { MESSAGE(8,printf("\t\t %d %d\n", RankPtr[i], ntype[i]);); MESSAGE(11,fprintf(fp,"\t\t %d %d\n", RankPtr[i], ntype[i]);); } } free(RankPtr); free(FieldListPtr); /* ********************************************************************************* * Testing HE5_SWwritelocattr * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_SWwritelocattr... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWwritelocattr... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting attribute \"LocaAttribute\" to the field \"Count\" \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tWriting attribute \"LocalAttribute\" to the \"Count\" \n");); count[0] = 4; status = HE5_SWwritelocattr(SWid_simple, "Count", "LocalAttribute",H5T_NATIVE_INT, count, attr3); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus =HE5_SWwritelocattr(SWid_simple, \"Count\", \"LocalAttribute\",H5T_NATIVE_INT, count, attr3); \n"); ); MESSAGE(8,printf("\t\tStatus returned by HE5_GDwritelocattr() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritelocattr(SWid_simple, \"Count\", \"LocalAttribute\",H5T_NATIVE_INT, count, attr3);\ n");) MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_SWwritelocattr() %d\n",status);); } /* ********************************************************************************* * Testing HE5_SWreadlocattr * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWreadlocattr... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWreadlocattr... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tReading attribute LocalAttribute from Count field \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tReading attribute LocalAttribute from Count field \n");); status = HE5_SWreadlocattr(SWid_simple, "Count", "LocalAttribute", attr3Out); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWreadlocattr(SWid_simple,\"Count\", \"LocalAttribute\", attr3Out);\n");); MESSAGE(8,printf("\t\tValue returned by SWreadlocattr for attribute LocalAttribute in field Count %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWreadlocattr(SWid_simple,\"Count\", \"LocalAttribute\", attr3Out);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWreadlocattr for attribute LocalAttribute in field Count %d\n",status);); MESSAGE(11,fprintf(fp,"\t\t Attribute elements read \n");); MESSAGE(8,printf("\t\t Attribute elements read \n");); MESSAGE(8,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); for( i = 0; i < 4 ; i++ ) { MESSAGE(11,fprintf(fp,"\t\t %d \n", attr3Out[ i ] );); MESSAGE(8,printf("\t\t %d \n", attr3Out[ i ] );); } } /* ********************************************************************************* * Testing HE5_SWinqdatatype * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_SWinqdatatype... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqdatatype... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving information about field data in a grid\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\t Retrieving information about field data in a grid\n");); fieldgroup = HE5_HDFE_ATTRGROUP; status = HE5_SWinqdatatype(SWid_simple, NULL, "Drift", fieldgroup, &datatype, &classid, &order, &Size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\tdatatype: %d \n", (int)datatype);); MESSAGE(4,printf("\tclass ID: %d \n", (int)classid);); MESSAGE(4,printf("\torder: %d \n", (int)order);); MESSAGE(4,printf("\tsize: %d \n", (int)Size);); */ } fieldgroup = HE5_HDFE_GRPATTRGROUP; status = HE5_SWinqdatatype(SWid_simple, NULL, "GroupAttribute", fieldgroup, &datatype, &classid, &order, &Size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\tdatatype: %d \n", (int)datatype);); MESSAGE(4,printf("\tclass ID: %d \n", (int)classid);); MESSAGE(4,printf("\torder: %d \n", (int)order);); MESSAGE(4,printf("\tsize: %d \n", (int)Size);); */ } fieldgroup = HE5_HDFE_LOCATTRGROUP; status = HE5_SWinqdatatype(SWid_simple, "Count", "LocalAttribute", fieldgroup, &datatype, &classid, &order, &Size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\tdatatype: %d \n", (int)datatype);); MESSAGE(4,printf("\tclass ID: %d \n", (int)classid);); MESSAGE(4,printf("\torder: %d \n", (int)order);); MESSAGE(4,printf("\tsize: %d \n", (int)Size);); */ } /* ********************************************************************************* * Testing HE5_SWdiminfo... * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdiminfo... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdiminfo... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about DataXtrack dimension in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about DataXtrack dimension in swath SIMPLE \n");); ndims = HE5_SWdiminfo(SWid_simple,"DataXtrack"); if ( ndims == 0) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tndims=HE5_SWdiminfo(SWid_simple,\"DataXtrack\");\n");); MESSAGE(8,printf("\t\tSize of dimension DataXtrack: %lu \n",(unsigned long)ndims);); MESSAGE(11,fprintf(fp,"\t\tndims=HE5_SWdiminfo(SWid_simple,\"DataXtrack\");\n");); MESSAGE(11,fprintf(fp,"\t\tSize of dimension DataXtrack: %lu \n",(unsigned long)ndims);); } /* ********************************************************************************* * Testing HE5_SWreadfield * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWreadfield... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWreadfield... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); inq_start[0] = 0; inq_start[1] = 0; inq_stride[0] = 1; inq_stride[1] = 1; inq_edge[0] = 10; inq_edge[1] = 4; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tReading data from field \"Temperature\" in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tReading data from field \"Temperature\" in swath SIMPLE\n");); number = HE5_SWreadfield(SWid_simple,"Temperature",inq_start,inq_stride,inq_edge,TempDataOut); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWreadfield(SWid_simple,\"Temperature\",inq_start,inq_stride,inq_edge,TempDataOut);\n");); MESSAGE(8,printf("\t\tstatus return from call to SWreadfield %li\n", number );); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWreadfield(SWid_simple,\"Temperature\",inq_start,inq_stride,inq_edge,TempDataOut);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus return from call to SWreadfield %li\n", number );); MESSAGE(8,printf("\t\tThe values of data field \"Temperature\":\n");); MESSAGE(11,fprintf(fp,"\t\tThe values of data field \"Temperature\":\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(8,printf("\n");); for (i = 0; i < 10; i++) { MESSAGE(8,printf("\t\t %lf %lf %lf %lf \n",TempDataOut[i][0],TempDataOut[i][1],TempDataOut[i][2],TempDataOut[i][3] );); MESSAGE(11,fprintf(fp,"\t\t %lf %lf %lf %lf \n",TempDataOut[i][0],TempDataOut[i][1],TempDataOut[i][2],TempDataOut[i][3] );); } } /* ********************************************************************************* * Testing HE5_SWfieldinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWfieldinfo... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWfieldinfo... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about field \"Temperature\" in swath SIMPLE e\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about field \"Temperature\" in swath SIMPLE \n");); status = HE5_SWfieldinfo(SWid_simple,"Temperature",&rank,dims,&dtype1,DimList,NULL); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWfieldinfo(SWid_simple,\"Temperature\",&rank,dims,&dtype1,DimList,NULL);\n");); MESSAGE(8,printf("\t\tstatus returned by SWfieldinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWfieldinfo(SWid_simple,\"Temperature\",&rank,dims,&dtype1,DimList,NULL);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWfieldinfo %d\n",status);); MESSAGE(8,printf("\t\tRank: %d Data type: %d\n",rank, dtype1);); MESSAGE(8,printf("\t\tDimension list: %s\n",DimList);); MESSAGE(11,fprintf(fp,"\t\tRank: %d Data type: %d\n",rank, dtype1);); MESSAGE(11,fprintf(fp,"\t\tDimension list: %s\n",DimList);); MESSAGE(8,printf("\t\tDimension sizes:\n");); MESSAGE(11,fprintf(fp,"\t\tDimension sizes:\n");); for (i = 0; i < rank; i++) { MESSAGE(8,printf("\t\t %lu\n",(unsigned long)dims[i]);); MESSAGE(11,fprintf(fp,"\t\t %lu\n",(unsigned long)dims[i]);); } } /* ********************************************************************************* * Testing HE5_SWinqmaps * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqmaps... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqmaps... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about dimension mapping from swath SIMPLE\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about dimension mapping from swath SIMPLE\n");); number = HE5_SWnentries(SWid_simple,1,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWnentries(SWid_simple,1,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of dimension mappings %li\n",number);); MESSAGE(8,printf("\t\tSize of dimension mapping entries: %li (bytes)\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWnentries(SWid_simple,1,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of dimension mappings %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tSize of dimension mapping entries: %li (bytes)\n",strbufsize);); } OffsetPtr = (long *)calloc(number, sizeof(long)); IncremPtr = (long *)calloc(number, sizeof(long)); DimMapListPtr = (char *)calloc( BUFSIZE, sizeof(char)); MESSAGE(6,printf("\t\tRetrieve the geolocation relations for swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve the geolocation relations for swath SIMPLE \n");); number=HE5_SWinqmaps(SWid_simple,DimMapListPtr,OffsetPtr,IncremPtr); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqmaps(SWid_simple,DimMapListPtr,OffsetPtr,IncremPtr);\n");); MESSAGE(8,printf("\t\tNumber of mappings in swath SIMPLE %li\n",number);); MESSAGE(6,printf("\t\tGeolocation relations: \n");); MESSAGE(6,printf("\t\t %s\n",DimMapListPtr);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqmaps(SWid_simple,DimMapListPtr,OffsetPtr,IncremPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of mappings in swath SIMPLE %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tGeolocation relations: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n",DimMapListPtr);); MESSAGE(6,printf("\t\t Offset Increment \n");); MESSAGE(11,fprintf(fp,"\t\t Offset Increment \n");); for (i = 0; i < number; i++) { MESSAGE(6,printf("\t\t %li %li \n",OffsetPtr[i], IncremPtr[i]);); MESSAGE(11,fprintf(fp,"\t\t %li %li \n",OffsetPtr[i], IncremPtr[i]);); } } /* ********************************************************************************* * Testing HE5_SWmapinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWmapinfo... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWmapinfo... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve offset and increment for geolocation mapping\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve offset and increment for geolocation mapping\n");); status = HE5_SWmapinfo(SWid_simple,"GeoTrack","DataTrack",OffsetPtr,IncremPtr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWmapinfo(SWid_simple,\"GeoTrack\",\"DataTrack\",OffsetPtr,IncremPtr);\n");); MESSAGE(8,printf("\t\tstatus returned by SWmapinfo %d\n",status);); MESSAGE(8,printf("\t\tOffset %li, Increment %li\n",*OffsetPtr,*IncremPtr);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWmapinfo(SWid_simple,\"GeoTrack\",\"DataTrack\",OffsetPtr,IncremPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWmapinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tOffset %li, Increment %li\n",*OffsetPtr,*IncremPtr);); } free(OffsetPtr); free(IncremPtr); free(DimMapListPtr); OffsetPtr = NULL; IncremPtr = NULL; DimMapListPtr = NULL; /* ********************************************************************************* * Testing HE5_SWgeomapinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWgeomapinfo... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWgeomapinfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); /* Swath SIMPLE */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving type of dimension mapping for dimension \"GeoTrack\"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving type of dimension mapping for dimension \"GeoTrack\"\n");); MESSAGE(8,printf("\n");); MESSAGE(8,printf("\t\t(NOTE: 2 - indexed mapping, 1 - regular mapping)\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t(NOTE: 2 - indexed mapping, 1 - regular mapping)\n");); status = HE5_SWgeomapinfo(SWid_simple,"GeoTrack"); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWgeomapinfo(SWid_simple,\"GeoTrack\",\"DataTrack\");\n");); MESSAGE(8,printf("\t\tValue returned by SWgeomapinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWgeomapinfo(SWid_simple,\"GeoTrack\",\"DataTrack\");\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWgeomapinfo %d\n",status);); } /* Swath INDEX */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving type of dimension mapping for dimension \"GeoDim\"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving type of dimension mapping for dimension \"GeoDim\"\n");); status = HE5_SWgeomapinfo(SWid_index,"GeoDim"); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWgeomapinfo(SWid_index,\"GeoDim\");\n");); MESSAGE(8,printf("\t\tValue returned by SWgeomapinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWmapinfo(SWid_index,\"GeoDim\");\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWgeomapinfo %d\n",status);); } /* ********************************************************************************* * Testing HE5_SWgetfillvalue * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWgetfillvalue... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWgetfillvalue... \n");); MESSAGE(11,fprintf(fp,"\t============================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tGet fill value for the field \"Indexed_Data\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tGet fill value for the field \"Indexed_Data\" \n");); status = HE5_SWgetfillvalue(SWid_index,"Indexed_Data",&InqFloatFillValue); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWgetfillvalue(SWid_index,\"Indexed_Data\",&InqFloatFillValue);\n");); MESSAGE(8,printf("\t\tstatus returned by SWgetfillvalue %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWgetfillvalue(SWid_index,\"Indexed_Data\", &InqFloatFillValue)\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWgetfillvalue %d\n",status);); MESSAGE(8,printf("\t\tFill value for field \"Indexed_Data\":\n");); MESSAGE(8,printf("\n");); MESSAGE(8,printf("\t\t \"%f\" \n", InqFloatFillValue);); MESSAGE(11,fprintf(fp,"\t\tFill value for field \"Indexed_Data\":\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t \"%f\" \n",InqFloatFillValue);); } /* ********************************************************************************* * Testing HE5_SWdetach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDetaching from swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from swath INDEX \n");); status = HE5_SWdetach(SWid_index); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdetach(SWid_index);\n");); MESSAGE(8,printf("\t\tstatus returned by SWdetach for swath INDEX %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdetach(SWid_index);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWdetach for swath INDEX%d\n",status);); } /* ********************************************************************************* * Testing HE5_SWinqattrs * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqattrs... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqattrs... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about attributes defined in swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about attributes defined in swath INDEX \n");); number = HE5_SWinqattrs(SWid_simple, NULL, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Testst**********\n");); /* MESSAGE(4,printf("\t\tNumber of attributes: %li \n", number);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqattrs(SWid_simple, NULL, &strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqattrs(SWid_simple, NULL, &strbufsize);\n");); MESSAGE(8,printf("\t\tValue (number of attributes) returned by SWinqattrs %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tValue (number of attributes) returned by SWinqattrs %li\n",number);); MESSAGE(8,printf("\t\tString length of attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of attribute list: %li\n",strbufsize);); } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve more information about attributes defined in swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve more information about attributes defined in swath INDEX \n");); ObjNamesPtr = (char *)calloc( BUFSIZE, sizeof(char)); number = HE5_SWinqattrs(SWid_simple, ObjNamesPtr, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\t\t Attribute list: %s \n", ObjNamesPtr);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqattrs(SWid_simple, ObjNamesPtr, &strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqattrs(SWid_simple, ObjNamesPtr,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of attributes returned by SWinqattr %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tNumber of attributes returned by SWinqattr %li\n",number);); MESSAGE(8,printf("\t\tAttribute list:\n");); MESSAGE(8,printf("\t\t %s\n", ObjNamesPtr);); MESSAGE(11,fprintf(fp,"\t\tAttribute list: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n", ObjNamesPtr);); MESSAGE(8,printf("\t\tString length of attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of attribute list: %li\n",strbufsize);); } free(ObjNamesPtr); ObjNamesPtr = NULL; /* ********************************************************************************* * Testing HE5_SWinqgrpattrs * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqgrpattrs... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqgrpattrs... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about group attributes defined in swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about group attributes defined in swath INDEX \n");) ; number = HE5_SWinqgrpattrs(SWid_simple, NULL, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Testst**********\n");); /* MESSAGE(4,printf("\t\tNumber of group attributes: %li \n", number);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqgrpattrs(SWid_simple, NULL, &strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqgrpattrs(SWid_simple, NULL, &strbufsize);\n");); MESSAGE(8,printf("\t\tValue (number of group attributes) returned by SWingrpqattrs %li\n",number);) ; MESSAGE(11,fprintf(fp,"\t\tValue (number of group attributes) returned by SWinqgrpattrs %li\n",number);) MESSAGE(8,printf("\t\tString length of group attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of group attribute list: %li\n",strbufsize);); } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve more information about group attributes defined in swath INDEX \n");) ; MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve more information about group attributes defined in swath INDEX \ n");); ObjNamesPtr = (char *)calloc( BUFSIZE, sizeof(char)); number = HE5_SWinqgrpattrs(SWid_simple, ObjNamesPtr, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\t\t Group Attribute list: %s \n", ObjNamesPtr);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqgrpattrs(SWid_simple, ObjNamesPtr, &strbufsize);\n");) ; MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqgrpattrs(SWid_simple, ObjNamesPtr,&strbufsize);\n" );); MESSAGE(8,printf("\t\tNumber of attributes returned by SWinqgrpattr %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tNumber of attributes returned by SWinqgrpattr %li\n",number);); MESSAGE(8,printf("\t\tGroup Attribute list:\n");); MESSAGE(8,printf("\t\t %s\n", ObjNamesPtr);); MESSAGE(11,fprintf(fp,"\t\tGroup Attribute list: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n", ObjNamesPtr);); MESSAGE(8,printf("\t\tString length of Group attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of Group attribute list: %li\n",strbufsize);); } free(ObjNamesPtr); ObjNamesPtr = NULL; /* ********************************************************************************* * Testing HE5_SWinqgeogrpattrs * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqgeogrpattrs... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqgeogrpattrs... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about group attributes defined in swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about group attributes defined in swath INDEX \n");); number = HE5_SWinqgeogrpattrs(SWid_simple, NULL, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Testst**********\n");); /* MESSAGE(4,printf("\t\tNumber of Geolocation fields group attributes: %li \n", number);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqgeogrpattrs(SWid_simple, NULL, &strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqgeogrpattrs(SWid_simple, NULL, &strbufsize);\n");); MESSAGE(8,printf("\t\tValue (number of group attributes) returned by SWingeogrpqattrs %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tValue (number of group attributes) returned by SWinqgeogrpattrs %li\n",number);); MESSAGE(8,printf("\t\tString length of group attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of group attribute list: %li\n",strbufsize);); } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve more information about group attributes defined in swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve more information about group attributes defined in swath INDEX \n");); ObjNamesPtr = (char *)calloc( BUFSIZE, sizeof(char)); number = HE5_SWinqgeogrpattrs(SWid_simple, ObjNamesPtr, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\t\t Geolocation field group Attribute list: %s \n", ObjNamesPtr);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqgeogrpattrs(SWid_simple, ObjNamesPtr, &strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqgeogrpattrs(SWid_simple, ObjNamesPtr,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of attributes returned by SWinqgeogrpattr %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tNumber of attributes returned by SWinqgeogrpattr %li\n",number);); MESSAGE(8,printf("\t\tGroup Attribute list:\n");); MESSAGE(8,printf("\t\t %s\n", ObjNamesPtr);); MESSAGE(11,fprintf(fp,"\t\tGroup Attribute list: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n", ObjNamesPtr);); MESSAGE(8,printf("\t\tString length of Group attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of Group attribute list: %li\n",strbufsize);); } free(ObjNamesPtr); ObjNamesPtr = NULL; /* ********************************************************************************* * Testing HE5_SWattrinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWattrinfo... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWattrinfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); CountPtr = (hsize_t *)calloc(1, sizeof(hsize_t)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about attribute \"Drift\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about attribute \"Drift\" \n");); status=HE5_SWattrinfo(SWid_simple,"Drift",&dtype,CountPtr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\t\tData type: %d\n", dtype);); MESSAGE(4,printf("\t\t Number of elements: %d \n", (int)*CountPtr);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWattrinfo(SWid_simple,\"Drift\",&dtype,CountPtr);\n");); MESSAGE(8,printf("\t\tstatus returned by SWattrinfo %d\n",status);); MESSAGE(6,printf("\t\tData type Number of attribute elements:\n");); MESSAGE(6,printf("\t\t %d %d\n", dtype,(int)*CountPtr);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWattrinfo(SWid_simple,\"Drift\",&dtype,CountPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tStaus returned by SWattrinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tData type Number of attribute elements:\n");); MESSAGE(11,fprintf(fp,"\t\t %d %d\n", dtype,(int)*CountPtr);); } free(CountPtr); /* ********************************************************************************* * Testing HE5_SWcompinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWcompinfo... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWcompinfo... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve Compression information for field \"Temperature\"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve Compression information for field \"Temperature\"\n");); status = HE5_SWcompinfo(SWid_simple,"Temperature",&code,level); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\t\t Compression scheme Compression level\n");); MESSAGE(4,printf("\t\t %d, %d\n", code, level[0]);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(8,printf("\t\tCompression scheme Compression level\n");); MESSAGE(8,printf("\t\t %d, %d\n", code, level[0]);); MESSAGE(11,fprintf(fp,"\t\tCompression scheme Compression level\n");); MESSAGE(11,fprintf(fp,"\t\t %d, %d\n", code, level[0]);); } code = - 8; level[ 0 ] = - 8; MESSAGE(4,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(6,printf("\t\tRetrieve Compression information for field \"Conduction\"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve Compression information for field \"Conduction\"\n");); status = HE5_SWcompinfo(SWid_simple,"Conduction",&code,level); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(8,printf("\t\tCompression scheme Compression level\n");); MESSAGE(8,printf("\t\t %d, %d\n", code, level[0]);); MESSAGE(11,fprintf(fp,"\t\tCompression scheme Compression level\n");); MESSAGE(11,fprintf(fp,"\t\t %d, %d\n", code, level[0]);); } /* ********************************************************************************* * Testing HE5_SWchunkinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWchunkinfo.... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWchunkinfo... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve Chunking information for field \"Count\"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve Compression information for field \"Count\"\n");); status = HE5_SWchunkinfo(SWid_simple,"Count",&chunk_rank,chunk_dim); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\t\t Count chunk rank: %d\n", chunk_rank);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(8,printf("\t\t Count chunk rank: %d\n", chunk_rank);); MESSAGE(11,fprintf(fp,"\t\t Count chunk rank: %d\n", chunk_rank );); } /* ********************************************************************************* * Testing HE5_SWgrpattrinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWgrpattrinfo... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWgrpattrinfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); CountPtr = (hsize_t *)calloc(1, sizeof(hsize_t)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about attribute \"GroupAttribute\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about attribute \"GroupAttribute\" \n");); status=HE5_SWgrpattrinfo(SWid_simple,"GroupAttribute",&dtype,CountPtr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\t\tData type: %d\n", dtype);); MESSAGE(4,printf("\t\t Number of elements: %d \n", (int)*CountPtr);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWgrpattrinfo(SWid_simple,\"GroupAttribute\",&dtype,CountPtr);\n");); MESSAGE(8,printf("\t\tstatus returned by SWgrpattrinfo %d\n",status);); MESSAGE(6,printf("\t\tData type Number of attribute elements:\n");); MESSAGE(6,printf("\t\t %d %d\n", dtype,(int)*CountPtr);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWgrpattrinfo(SWid_simple,\"GroupAttribute\",&dtype,CountPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tStaus returned by SWgrpattrinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tData type Number of attribute elements:\n");); MESSAGE(11,fprintf(fp,"\t\t %d %d\n", dtype,(int)*CountPtr);); } free(CountPtr); /* ******************************************************************************** * Testing HE5_SWgeogrpattrinfo * ******************************************************************************** */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWgeogrpattrinfo... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWgeogrpattrinfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); CountPtr = (hsize_t *)calloc(1, sizeof(hsize_t)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about attribute \"ScalarFloat\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about attribute \"ScalarFloat\" \n");); status=HE5_SWgeogrpattrinfo(SWid_simple,"ScalarFloat",&dtype,CountPtr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); /* MESSAGE(4,printf("\t\tData type: %d\n", dtype);); MESSAGE(4,printf("\t\t Number of elements: %d \n", (int)*CountPtr);); */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWgeogrpattrinfo(SWid_simple,\"ScalarFloat\",&dtype,CountPtr);\n");); MESSAGE(8,printf("\t\tstatus returned by SWgeogrpattrinfo %d\n",status);); MESSAGE(6,printf("\t\tData type Number of attribute elements:\n");); MESSAGE(6,printf("\t\t %d %d\n", dtype,(int)*CountPtr);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWgeogrpattrinfo(SWid_simple,\"ScalarFloat\",&dtype,CountPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tStaus returned by SWgeogrpattrinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tData type Number of attribute elements:\n");); MESSAGE(11,fprintf(fp,"\t\t %d %d\n", dtype,(int)*CountPtr);); } free(CountPtr); /* ********************************************************************************* * Testing HE5_SWgetfillvalue * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWgetfillvalue... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWgetfillvalue... \n");); MESSAGE(11,fprintf(fp,"\t============================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tGet fill value for field \"Temperature\"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tGet fill value for field \"Temperature\"\n");); status = HE5_SWgetfillvalue(SWid_simple,"Temperature",&InqDoubleFillValue); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWgetfillvalue(SWid_simple,\"Temperature\",&InqDoubleFillValue);\n");); MESSAGE(8,printf("\t\tstatus returned by SWgetfillvalue %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWgetfillvalue(SWid_simple,\"Temperature\", &InqDoubleFillValue)\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWgetfillvalue %d\n",status);); MESSAGE(8,printf("\t\tFill value for field \"Temperature\":\n");); MESSAGE(8,printf("\n");); MESSAGE(8,printf("\t\t \"%lf\" \n", InqDoubleFillValue);); MESSAGE(11,fprintf(fp,"\t\tFill value for field \"Temperature\":\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t \"%lf\" \n",InqDoubleFillValue);); } /* ********************************************************************************* * Testing HE5_SWdetach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDetaching from swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from swath SIMPLE \n");); status = HE5_SWdetach(SWid_simple); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdetach(SWid_simple);\n");); MESSAGE(8,printf("\t\tstatus returned by SWdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdetach(SWid_simple);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_SWattach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWattach... \n");); MESSAGE(4,printf("\t=======================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWattach... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); SWid_simple = HE5_SWattach(swfidc_simple,"SIMPLE"); if (SWid_simple == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully attached to the swath SIMPLE ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully attached to the swath SIMPLE ****\n");); } /* ********************************************************************************* * Testing Appending data to the field * ********************************************************************************* */ tstart[0] = 30; tedge[0] = 10; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting extended data to the field Count in swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting extended data to the field Count in swath SIMPLE \n");); status = HE5_SWwritefield(SWid_simple, "Count", tstart, NULL, tedge, inarray); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWwritefield(SWid_simple, \"Count\",tstart, NULL, tedge, inarray);\n");); MESSAGE(8,printf("\t\tValue returned by SWwritefield for field Count in swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWwritefield(SWid_simple,\"Count\", tstart, stride, NULL, inarray);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWwritefield for field Conduction in swath SIMPLE %d\n",status);); } /* ********************************************************************************* * Testing HE5_SWdeftimeperiod * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdeftimeperiod... \n");); MESSAGE(4,printf("\t============================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdeftimeperiod... \n");); MESSAGE(11,fprintf(fp,"\t============================== \n");); StartTime = 55000000.; StopTime = 65000000.; MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining time period for extraction\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining time period for extraction\n");); PeriodID = HE5_SWdeftimeperiod(SWid_simple,StartTime,StopTime,HE5_HDFE_MIDPOINT); if (PeriodID == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPeriodID=HE5_SWdeftimeperiod(SWid_simple,StartTime,StopTime,HE5_HDFE_MIDPOINT);\n");); MESSAGE(8,printf("\t\tPeriod ID returned by SWdeftimeperiod() %d\n",PeriodID);); MESSAGE(11,fprintf(fp,"\t\tPeriodID=HE5_SWdeftimeperiod(SWid_simple,StartTime,StopTime,HE5_HDFE_MIDPOINT);\n");); MESSAGE(11,fprintf(fp,"\t\tPeriod ID returned by SWdeftimeperiod() %d\n",PeriodID);); } /* ********************************************************************************* * Testing HE5_SWperiodinfo * ********************************************************************************* */ RankPtr = (int *)calloc(1, sizeof(int)); size = (size_t *)calloc(1, sizeof(size_t)); MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWperiodinfo... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWperiodinfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about the subsetted period\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about the subsetted period\n");); status = HE5_SWperiodinfo(SWid_simple,PeriodID,"Time",&dtype1,RankPtr,dims,size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWperiodinfo(SWid_simple,PeriodID,\"Time\",&dtype1,RankPtr,dims,size);\n");); MESSAGE(8,printf("\t\tstatus returned by SWperiodinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWperiodinfo(SWid_simple,PeriodID,\"Time\",&dtype1,RankPtr,dims,size);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWperiodinfo %d\n",status);); MESSAGE(6,printf("\t\tData type Rank \n");); MESSAGE(6,printf("\t\t %d %d \n", dtype1,*RankPtr);); MESSAGE(11,fprintf(fp,"\t\tData type Rank \n");); MESSAGE(11,fprintf(fp,"\t\t %d %d \n",dtype1,*RankPtr);); MESSAGE(6,printf("\t\tSize of subset period: %lu (bytes)\n",(unsigned long)*size);); MESSAGE(11,fprintf(fp,"\t\tSize of subset period: %lu (bytes)\n",(unsigned long)*size);); MESSAGE(6,printf("\t\tDimensions of subset period:\n");); MESSAGE(11,fprintf(fp,"\t\tDimensions of subset period:\n");); for (i = 0; i < *RankPtr; i++) { MESSAGE(6,printf("\t\t %d\n",(int)dims[i]);); MESSAGE(11,fprintf(fp,"\t\t %d\n",(int)dims[i]);); } } /* ********************************************************************************* * Testing HE5_SWextractperiod * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWextractperiod... \n");); MESSAGE(4,printf("\t============================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWextractperiod... \n");); MESSAGE(11,fprintf(fp,"\t============================== \n");); BufferPtr = ( double *)malloc( *size ); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRead data from the subsetted time period\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRead data from the subsetted time period\n");); status = HE5_SWextractperiod(SWid_simple,PeriodID,"Time",HE5_HDFE_INTERNAL,BufferPtr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWextractperiod(SWid_simple,PeriodID,\"Time\",HE5_HDFE_INTERNAL,BufferPtr);\n");); MESSAGE(8,printf("\t\tstatus returned by SWextractperiod %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWextractperiod(SWid_simple,PeriodID,\"Time\",HE5_HDFE_INTERNAL,BufferPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWextractperiod %d\n", status);); MESSAGE(8,printf("\t\n");); MESSAGE(8,printf("\t\tThe extracted values of \"Time\" field are: \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tThe extracted values of \"Time\" field are: \n");); for( i = 0; i < ( *size / sizeof(double) ); i++ ) { MESSAGE(8,printf("\t\t\t %lf\n", BufferPtr[i]);); MESSAGE(11,fprintf(fp,"\t\t\t %lf\n", BufferPtr[i]);); } } free(RankPtr); free(BufferPtr); RankPtr = NULL; BufferPtr = NULL; free(size); /* ********************************************************************************* * Testing HE5_SWattach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWattach... \n");); MESSAGE(4,printf("\t=======================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWattach... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); SWid_index = HE5_SWattach(swfidc_simple,"INDEX"); if (SWid_index == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully attached to the swath INDEX ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully attached to the swath INDEX ****\n");); } /* ********************************************************************************* * Testing HE5_SWlocattrinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWlocattrinfo... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWlocattrinfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); CountPtr = (hsize_t *)calloc(1, sizeof(hsize_t)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about attribute \"LocalAttribute\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about attribute \"LocalAttribute\" \n");); status=HE5_SWlocattrinfo(SWid_simple,"Count", "LocalAttribute",&dtype,CountPtr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWlocattrinfo(SWid_Simple, \"Count\", \"LocalAttribute\", &dtype,CountPtr);\n");); MESSAGE(8,printf("\t\tstatus returned by GDlocattrinfo %d\n",status);); MESSAGE(6,printf("\t\tData type Number of attribute elements:\n");); MESSAGE(6,printf("\t\t %d %d\n", dtype,(int)*CountPtr);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWlocattrinfo(SWid_simple, \"Count\", \"LocalAttribute\",&dtype,CountPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by SWlocattrinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tData type Number of attribute elements:\n");); MESSAGE(11,fprintf(fp,"\t\t %d %d\n", dtype,(int)*CountPtr);); } free(CountPtr); /* ********************************************************************************* * Testing HE5_SWnentries * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWnentries... \n");); MESSAGE(4,printf("\t=========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWnentries... \n");); MESSAGE(11,fprintf(fp,"\t=========================\n");); /* -- R e t r i e v e t h e I n d e x d i m e n s i o n m a p p i n g s -- */ MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about index dimension mapping in swath INDEX\n");); MESSAGE(11,fprintf(fp,"\n"); ); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about index dimension mapping in swath INDEX\n"); ); number = HE5_SWnentries(SWid_index,2,&strbufsize); if ( number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWnentries(SWid_index,2,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWnentries(SWid_index,2,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of index mappings: %li\n",number);); MESSAGE(8,printf("\t\tNumber of index mappings: %li\n",number);); MESSAGE(8,printf("\t\tString length of mapping list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of mapping list: %li\n",strbufsize);); } /* ********************************************************************************* * Testing HE5_SWinqidxmaps... * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqidxmaps... \n");); MESSAGE(4,printf("\t===========================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqidxmaps... \n");); MESSAGE(11,fprintf(fp,"\t===========================\n");); SizePtr = (hsize_t *)calloc(number, sizeof(hsize_t)); DimMapListPtr = (char *)calloc( BUFSIZE, sizeof(char)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve indexed mapping relations for swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve indexed mapping relations for swath INDEX \n");); number = HE5_SWinqidxmaps(SWid_index,DimMapListPtr,SizePtr); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqidxmaps(SWid_index,DimMapListPtr,SizePtr);\n");); MESSAGE(8,printf("\t\tNumber of maps: %li\n", number);); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqidxmaps(SWid_index,DimMapListPtr,SizePtr);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of maps: %li\n",number);); MESSAGE(6,printf("\t\tIndexed mapping list: \n");); MESSAGE(6,printf("\t\t %s\n",DimMapListPtr);); MESSAGE(11,fprintf(fp,"\t\tIndexed mapping list: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n",DimMapListPtr);); } free(SizePtr); free(DimMapListPtr); /* ********************************************************************************* * Testing HE5_SWinqlocattrs * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWinqlocattrs... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWinqlocattrs... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about attributes defined in Count field \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about attributes defined in Count \n");); number = HE5_SWinqlocattrs(SWid_simple, "Count", NULL, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqlocattrs(SWid_simple, \"Count\", NULL, &strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqlocattrs(SWid_simple, \"Count\", NULL, &strbufsize);\n");); MESSAGE(8,printf("\t\tValue (number of attributes) returned by SWinqlocattrs %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tValue (number of attributes) returned by SWinqlocattrs %li\n",number);); MESSAGE(8,printf("\t\tString length of attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of attribute list: %li\n",strbufsize);); } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve more information about attributes defined in Count field \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve more information about attributes defined in Count field \n");); ObjNamesPtr = (char *)calloc( BUFSIZE, sizeof(char)); number = HE5_SWinqlocattrs(SWid_simple, "Count", ObjNamesPtr, &strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber=HE5_SWinqlocattrs(SWid_simple, Count, ObjNamesPtr, &strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tnumber=HE5_SWinqlocattrs(SWid_simple, Count, ObjNamesPtr,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of attributes returned by SWinqlocattrs %li\n",number);); MESSAGE(11,fprintf(fp,"\t\tNumber of attributes returned by SWinqlocattr %li\n",number);); MESSAGE(8,printf("\t\tAttribute list:\n");); MESSAGE(8,printf("\t\t %s\n", ObjNamesPtr);); MESSAGE(11,fprintf(fp,"\t\tAttribute list: \n");); MESSAGE(11,fprintf(fp,"\t\t %s\n", ObjNamesPtr);); MESSAGE(8,printf("\t\tString length of attribute list: %li\n",strbufsize);); MESSAGE(11,fprintf(fp,"\t\tString length of attribute list: %li\n",strbufsize);); } free(ObjNamesPtr); ObjNamesPtr = NULL; /* ********************************************************************************* * Testing HE5_SWdiminfo... * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdiminfo... \n");); MESSAGE(4,printf("\t======================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdiminfo... \n");); MESSAGE(11,fprintf(fp,"\t======================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve size of dimension \"GeoDim\" in swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve size of dimension \"GeoDim\" in swath INDEX \n");); ndims = HE5_SWdiminfo(SWid_index,"GeoDim"); if ( ndims == 0) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tndims=HE5_SWdiminfo(SWid_index,\"GeoDim\");\n");); MESSAGE(8,printf("\t\tSize of dimension \"GeoDim\": %lu \n",(unsigned long)ndims);); MESSAGE(11,fprintf(fp,"\t\tndims=HE5_SWdiminfo(SWid_index,\"GeoDim\");\n");); MESSAGE(11,fprintf(fp,"\t\tSize of dimension \"GeoDim\": %lu\n",(unsigned long)ndims);); } /* ********************************************************************************* * Testing HE5_SWidxmapinfo * ********************************************************************************* */ OffsetPtr = (long *)calloc(100, sizeof(long)); MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWidxmapinfo... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWidxmapinfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve indexed array of \"GeoDim/TrackDim\" mapping\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve indexed array of \"GeoDim/TrackDim\" mapping\n");); nmaps = HE5_SWidxmapinfo(SWid_index,"GeoDim","TrackDim",OffsetPtr); if (nmaps == 0) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnmaps=HE5_SWidxmapinfo(SWid_index,\"GeoDim\",\"TrackDim\",OffsetPtr);\n");); MESSAGE(8,printf("\t\tSize of indexed array: %lu \n",(unsigned long)nmaps);); MESSAGE(11,fprintf(fp,"\t\tnmaps=HE5_SWidxmapinfo(SWid_index,\"GeoDim\",\"TrackDim\",OffsetPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tSize of indexed array: %lu \n",(unsigned long)nmaps);); MESSAGE(8,printf("\t\tEntry # Mapping offset\n");); MESSAGE(11,fprintf(fp,"\t\tEntry # Mapping offset\n");); for ( i = 0; i < nmaps; i++) { MESSAGE(8,printf("\t\t %d %li \n", i+1, OffsetPtr[i]);); MESSAGE(11,fprintf(fp,"\t\t %d %li \n", i+1, OffsetPtr[i]);); } } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve indexed array of \"GeoDim/XtrackDim\" mapping\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve indexed array of \"GeoDim/XtrackDim\" mapping\n");); nmaps = HE5_SWidxmapinfo(SWid_index,"GeoXDim","XtrackDim",OffsetPtr); if (nmaps == 0) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnmaps=HE5_SWidxmapinfo(SWid_index,\"GeoXDim\",\"XtrackDim\",OffsetPtr);\n");); MESSAGE(8,printf("\t\tSize of indexed array: %lu \n",(unsigned long)nmaps);); MESSAGE(11,fprintf(fp,"\t\tnmaps=HE5_SWidxmapinfo(SWid_index,\"GeoXDim\",\"XtrackDim\",OffsetPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tSize of indexed array: %lu\n",(unsigned long)nmaps);); MESSAGE(8,printf("\t\tEntry # Mapping offset\n");); MESSAGE(11,fprintf(fp,"\t\tEntry # Mapping offset\n");); for ( i = 0; i < nmaps; i++) { MESSAGE(8,printf("\t\t %d %li \n", i+1, OffsetPtr[i]);); MESSAGE(11,fprintf(fp,"\t\t %d %li \n", i+1, OffsetPtr[i]);); } } /* ********************************************************************************* * Testing HE5_SWindexinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWindexinfo... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWindexinfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve indices information about \"Longitude\" field\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve indicesinformation about \"Longitude\" field\n");); dimlist = (char *)calloc( BUFSIZE, sizeof(char)); for ( i = 0; i < 8; i++) { indices[i] = (hsize_t *) malloc(2*sizeof(hsize_t)); } status = HE5_SWindexinfo(RegionID, "Longitude", &rank3, dimlist, indices); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(4,printf("\n");); /* MESSAGE(4,printf("rank = %d\n", rank);); MESSAGE(4,printf("dimlist = %s\n", dimlist);); for ( i = 0; i < rank; i++) { for ( j = 0; j < 2; j++) { MESSAGE(4,printf("i = %d, j = %d, indices[i][j] = %lu\n", i, j, (unsigned long)indices[i][j]);); } } */ MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWindexinfo(RegionID, \"Longitude\", &rank3, dimlist, indices);\n");); MESSAGE(8,printf("\t\tstatus returned by SWindexinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWindexinfo(RegionID, \"Longitude\", &rank3, dimlist, indices);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWindexinfo %d\n",status);); MESSAGE(8,printf("rank = %d\n", rank);); MESSAGE(8,printf("dimlist = %s\n", dimlist);); MESSAGE(11,fprintf(fp,"\t\tRank: %d\n", rank);); MESSAGE(11,fprintf(fp,"\t\tDimension list: %s\n",dimlist);); for ( i = 0; i < rank; i++) { for ( j = 0; j < 2; j++) { MESSAGE(8,printf("i = %d, j = %d, indices[i][j] = %lu\n", i, j, (unsigned long)indices[i][j]);); MESSAGE(11,fprintf(fp,"\t\ti = %d, j = %d, indices[i][j] = %lu\n", i, j, (unsigned long)indices[i][j]);); } } } free(dimlist); dimlist = NULL; for (i = 0; i < 8; i++) { free(indices[i]); indices[i] = NULL; } /* ********************************************************************************* * Testing HE5_SWdetach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDetaching from swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from swath SIMPLE \n");); status = HE5_SWdetach(SWid_simple); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdetach(SWid_simple);\n");); MESSAGE(8,printf("\t\tstatus returned by SWdetach for swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdetach(SWid_simple);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWdetach for swath SIMPLE %d\n",status);); } /* ********************************************************************************* * Testing REGION SUBSETTING for swath INDEX * ********************************************************************************* */ CornerLon[ 0 ] = 79.7e0; CornerLat[ 0 ] = 59.5e0; CornerLon[ 1 ] = 80.e0; CornerLat[ 1 ] = 60.e0; MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdefboxregion... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdefboxregion... \n");); MESSAGE(11,fprintf(fp,"\t============================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining region to extract\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining region to extract\n");); RegionID = HE5_SWdefboxregion(SWid_index,CornerLon,CornerLat,HE5_HDFE_MIDPOINT); if (RegionID == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tRegionID=HE5_SWdefboxregion(SWid_index,CornerLon,CornerLat,mode);\n");); MESSAGE(8,printf("\t\tRegion ID returned by SWdefboxregion %d\n",RegionID);); MESSAGE(11,fprintf(fp,"\t\tRegionID=HE5_SWdefboxregion(SWid_index,CornerLon,CornerLat,mode);\n");); MESSAGE(11,fprintf(fp,"\t\tRegion ID returned by SWdefboxregion %d\n",RegionID);); } /* ********************************************************************************* * Testing HE5_SWregioninfo for swath INDEX * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWregioninfo... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWregioninfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); size = (size_t *)calloc(1, sizeof(size_t)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving information about defined region\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving information about defined region\n");); status = HE5_SWregioninfo(SWid_index,RegionID,"Indexed_Data",&dtype1,&rank2,dims,size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWregioninfo(SWid_index,RegionID,\"Indexed_Data\",&dtype1,RankPtr,dims,size);\n");); MESSAGE(8,printf("\t\tstatus returned by SWregioninfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWregioninfo(SWid_index,RegionID,\"Indexed_Data\",&dtype1,RankPtr,dims,size);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWregioninfo %d\n",status);); MESSAGE(6,printf("\t\tData type: Rank:\n");); MESSAGE(6,printf("\t\t %d %d\n",dtype1, rank2);); MESSAGE(11,fprintf(fp,"\t\tData type: Rank:\n");); MESSAGE(11,fprintf(fp,"\t\t %d %d\n",dtype1, rank2);); MESSAGE(6,printf("\t\tSize of region: %lu (bytes)\n",(unsigned long)*size);); MESSAGE(11,fprintf(fp,"\t\tSize of region: %lu (bytes)\n",(unsigned long)*size);); MESSAGE(6,printf("\t\tDimensions of subset region:\n");); MESSAGE(11,fprintf(fp,"\t\tDimensions of subset region:\n");); for (i = 0; i < rank2; i++) { MESSAGE(6,printf("\t\t %d\n",(int)dims[i]);); MESSAGE(11,fprintf(fp,"\t\t %d\n",(int)dims[i]);); } } /* ********************************************************************************* * Testing HE5_SWextractregion for swath INDEX * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWextractregion... \n");); MESSAGE(4,printf("\t============================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWextractregion... \n");); MESSAGE(11,fprintf(fp,"\t============================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tExtracting data from subset region\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tExtracting data from subset region\n");); BufferFloatPtr = (float *)malloc( *size ); status = HE5_SWextractregion(SWid_index,RegionID,"Indexed_Data",HE5_HDFE_INTERNAL,BufferFloatPtr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWextractregion(SWid_index,RegionID,\"Indexed_Data\",HE5_HDFE_INTERNAL,BufferFloatPtr);\n");); MESSAGE(8,printf("\t\tstatus returned by SWextractregion %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWextractregion(SWid_simple,OldRegionID,\"Indexed_Data\",HE5_HDFE_INTERNAL,BufferFloatPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWextractregion %d\n",status);); MESSAGE(10,printf("\t\t Extracted first 5 values:\n");); MESSAGE(11,fprintf(fp,"\t\t Extracted first 5 values:\n");); for (i = 0; i < 5; i++) { MESSAGE(10,printf("\t\t\t %f\n", BufferFloatPtr[i]);); MESSAGE(11,fprintf(fp,"\t\t\t %f\n", BufferFloatPtr[i]);); } } free(BufferFloatPtr); free(size); /* ********************************************************************************* * Testing HE5_SWupdateidxmap * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWupdateidxmap... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWupdateidxmap... \n");); MESSAGE(11,fprintf(fp,"\t============================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving indexed array for a specified region\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving indexed array for a specified region\n");); IdxMapSize = HE5_SWupdateidxmap(SWid_index,RegionID,OffsetPtr,NULL,Indices); if (IdxMapSize == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tIdxMapSize=HE5_SWupdateidxmap(SWid_index,RegionID,OffsetPtr,NULL,Indices);\n");); MESSAGE(8,printf("\t\tSize of updated indexed array: %li\n",IdxMapSize);); MESSAGE(11,fprintf(fp,"\t\tIdxMapSize=HE5_SWupdateidxmap(SWid_index,RegionID,OffsetPtr,NULL,Indices);\n");); MESSAGE(11,fprintf(fp,"\t\tSize of updated indexed array: %li\n",IdxMapSize);); } UpdateIdx_1 = (long *)calloc(IdxMapSize, sizeof(long)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tContinue ...\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tContinue ...\n");); IdxMapSize = HE5_SWupdateidxmap(SWid_index,RegionID,OffsetPtr,UpdateIdx_1,Indices); if (IdxMapSize == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tIdxMapSize=HE5_SWupdateidxmap(SWid_index,RegionID,OffsetPtr,UpdateIdx_1,Indices);\n");); MESSAGE(8,printf("\t\tSize of updated indexed array: %li\n",IdxMapSize);); MESSAGE(11,fprintf(fp,"\t\tIdxMapSize=HE5_SWupdateidxmap(SWid_index,RegionID,OffsetPtr,UpdateIdx_1,Indices);\n");); MESSAGE(11,fprintf(fp,"\t\tSize of updated indexed array: %li\n",IdxMapSize);); MESSAGE(8,printf("\t\tArray of indices of the data dimension to which each geolocation corresponds:\n");); MESSAGE(11,fprintf(fp,"\t\tArray of indices of the data dimension to which each geolocation corresponds:\n");); for (i = 0; i < IdxMapSize; i++) { MESSAGE(8,printf("\t\t %li\n", OffsetPtr[i]);); MESSAGE(11,fprintf(fp,"\t\t %li\n", OffsetPtr[i]);); } MESSAGE(8,printf("\t\t Array of indices of the data dimension to which each geolocation corresponds: \n");); MESSAGE(11,fprintf(fp,"\t\t Array of indices of the data dimension to which each geolocation corresponds: \n");); for (i = 0; i < IdxMapSize; i++) { MESSAGE(8,printf("\t\t %li \n", UpdateIdx_1[i]);); MESSAGE(11,fprintf(fp,"\t\t %li \n", UpdateIdx_1[i]);); } } free(OffsetPtr); free(UpdateIdx_1); /* ********************************************************************************* * Testing HE5_SWdetach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDetaching from swath INDEX \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from swath INDEX \n");); status = HE5_SWdetach(SWid_index); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdetach(SWid_index);\n");); MESSAGE(8,printf("\t\tstatus returned by SWdetach for swath INDEX %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdetach(SWid_index);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWdetach for swath INDEX %d\n",status);); } /* ********************************************************************************* * Testing HE5_SWattach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWattach... \n");); MESSAGE(4,printf("\t=======================\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWattach... \n");); MESSAGE(11,fprintf(fp,"\t=======================\n");); SWid_simple = HE5_SWattach(swfidc_simple,"SIMPLE"); if (SWid_simple == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully attached to the swath SIMPLE ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully attached to the swath SIMPLE ****\n");); } /* ********************************************************************************* * Testing REGION SUBSETTING for swath SIMPLE * ********************************************************************************* */ CornerLon[ 0 ] = 100.e0; CornerLat[ 0 ] = 20.e0; CornerLon[ 1 ] = 106.e0; CornerLat[ 1 ] = 24.e0; MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdefboxregion... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdefboxregion... \n");); MESSAGE(11,fprintf(fp,"\t============================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDefining region to extract\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDefining region to extract\n");); OldRegionID = HE5_SWdefboxregion(SWid_simple,CornerLon,CornerLat,HE5_HDFE_MIDPOINT); if (OldRegionID == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tOldRegionID=HE5_SWdefboxregion(SWid_simple,CornerLon,CornerLat,mode);\n");); MESSAGE(8,printf("\t\tRegion ID returned by SWdefboxregion() %d\n",OldRegionID);); MESSAGE(11,fprintf(fp,"\t\tOldRegionID=HE5_SWdefboxregion(SWid_simple,CornerLon,CornerLat,mode);\n");); MESSAGE(11,fprintf(fp,"\t\tRegion ID returned by SWdefboxregion() %d\n",OldRegionID);); } /* ********************************************************************************* * Testing HE5_SWregioninfo for swath SIMPLE * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWregioninfo... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWregioninfo... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); RankPtr = (int *)calloc(1, sizeof(int)); size = (size_t *)calloc(1, sizeof(size_t)); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving information about defined region\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving information about defined region\n");); status = HE5_SWregioninfo(SWid_simple,OldRegionID,"Temperature",&dtype1,RankPtr,dims,size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWregioninfo(SWid_simple,OldRegionID,\"Temperature\", &dtype1, RankPtr,dims,size);\n");); MESSAGE(8,printf("\t\tstatus returned by SWregioninfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWregioninfo(SWid_simple,OldRegionID,\"Temperature\", &dtype1,RankPtr,dims,size);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWregioninfo %d\n",status);); MESSAGE(6,printf("\t\tData type Rank\n");); MESSAGE(6,printf("\t\t %d %d \n", dtype1, *RankPtr);); MESSAGE(6,printf("\t\tSize of region: %lu (bytes)\n", (unsigned long)*size);); MESSAGE(11,fprintf(fp,"\t\tSize of region: %lu (bytes)\n", (unsigned long)*size);); MESSAGE(6,printf("\t\tDimensions of subset region:\n");); MESSAGE(11,fprintf(fp,"\t\tDimensions of subset region:\n");); for (i = 0; i < *RankPtr; i++) { MESSAGE(6,printf("\t\t %d\n",(int)dims[i]);); MESSAGE(11,fprintf(fp,"\t\t %d\n",(int)dims[i]);); } } /* ********************************************************************************* * Testing HE5_SWextractregion for swath SIMPLE * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWextractregion... \n");); MESSAGE(4,printf("\t============================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWextractregion... \n");); MESSAGE(11,fprintf(fp,"\t============================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tExtracting data from subset region\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tExtracting data from subset region\n");); BufferPtr = (double *)malloc( *size ); status = HE5_SWextractregion(SWid_simple,OldRegionID,"Temperature",HE5_HDFE_INTERNAL,BufferPtr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWextractregion(SWid_simple,OldRegionID,\"Temperature\",HE5_HDFE_INTERNAL,BufferPtr);\n");); MESSAGE(8,printf("\t\tstatus returned by SWextractregion() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWextractregion(SWid_simple,OldRegionID,\"Temperature\",HE5_HDFE_INTERNAL,BufferPtr);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWextractregion() %d\n",status);); MESSAGE(10,printf("\t\t Extracted values:\n");); MESSAGE(11,fprintf(fp,"\t\t Extracted values:\n");); for (i = 0; i < *size/ sizeof(double); i++) { MESSAGE(10,printf("\t\t\t %lf\n", BufferPtr[i]);); MESSAGE(11,fprintf(fp,"\t\t\t %lf\n", BufferPtr[i]);); } } free(RankPtr); free(BufferPtr); free(size); RankPtr = NULL; BufferPtr = NULL; /* ********************************************************************************* * Testing HE5_SWdupregion for swath SIMPLE * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdupregion... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdupregion... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDuplicate region id %d\n", OldRegionID);); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDuplicate region id %d\n", OldRegionID);); RegionID = HE5_SWdupregion(OldRegionID); if (RegionID == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tRegionID = HE5_SWdupregion(OldRegionID);\n");); MESSAGE(8,printf("\t\tRegion ID returned from call to SWdupregion %d\n",RegionID);); MESSAGE(11,fprintf(fp,"\t\tRegionID = HE5_SWdupregion(OldRegionID);\n");); MESSAGE(11,fprintf(fp,"\t\tRegion ID returned from call to SWdupregion %d\n",RegionID);); } /* ********************************************************************************* * Testing HE5_SWfieldinfo * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWfieldinfo... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWfieldinfo... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieve information about field \"Count\" in swath SIMPLE e\n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieve information about field \"Count\" in swath SIMPLE \n");); status = HE5_SWfieldinfo(SWid_simple,"Count",&rank,dims, &dtype1,NULL,DimList); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus=HE5_SWfieldinfo(SWid_simple,\"Count\",&rank,dims,&dtype1,NULL,DimList);\n");); MESSAGE(8,printf("\t\tstatus returned by SWfieldinfo %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus=HE5_SWfieldinfo(SWid_simple,\"Count\",&rank,dims, &dtype1,NULL,DimList);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWfieldinfo %d\n",status);); MESSAGE(8,printf("\t\tRank: %d Data type: %d\n",rank, dtype1);); MESSAGE(8,printf("\t\tMaximum Dimension list: %s\n",DimList);); MESSAGE(11,fprintf(fp,"\t\tRank: %d Data type: %d\n",rank, dtype1);); MESSAGE(11,fprintf(fp,"\t\tMaximum Dimension list: %s\n",DimList);); MESSAGE(8,printf("\t\tDimension sizes:\n");); MESSAGE(11,fprintf(fp,"\t\tDimension sizes:\n");); for (i = 0; i < rank; i++) { MESSAGE(8,printf("\t\t %lu\n",(unsigned long)dims[i]);); MESSAGE(11,fprintf(fp,"\t\t %lu\n",(unsigned long)dims[i]);); } } /* ********************************************************************************* * Testing HE5_SWdetach * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tDetaching from swath SIMPLE \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from swath SIMPLE \n");); status = HE5_SWdetach(SWid_simple); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_SWdetach(SWid_simple);\n");); MESSAGE(8,printf("\t\tstatus returned by SWdetach for swath SIMPLE %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_SWdetach(SWid_simple);\n");); MESSAGE(11,fprintf(fp,"\t\tstatus returned by SWdetach for swath SIMPLE%d\n",status);); } /* ********************************************************************************* * Testing HE5_SWclose * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_SWclose... \n");); MESSAGE(4,printf("\t====================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_SWclose... \n");); MESSAGE(11,fprintf(fp,"\t====================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tClosing the file SimpleSwath.h5\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tClosing the file SimpleSwath.h5\n");); status = HE5_SWclose(swfidc_simple); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully clossed the SimpleSwath.h5 file ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully clossed the SimpleSwath.h5 file ****\n");); } /* ********************************************************************************* * Testing SWopen * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting SWopen... \n");); MESSAGE(4,printf("\t=================\n");); MESSAGE(11,fprintf(fp,"\tTesting SWopen... \n");); MESSAGE(11,fprintf(fp,"\t=================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tOpening the file SimpleSwath.h5\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tOpening the file SimpleSwath.h5\n");); swfidc_simple = HE5_SWopen("SimpleSwath.h5",H5F_ACC_RDWR); if (swfidc_simple == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully opened the swath file ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully opened the swath file ****\n");); } /* ********************************************************************************* * Testing SWinqswath * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting SWinqswath... \n");); MESSAGE(4,printf("\t=================\n");); MESSAGE(11,fprintf(fp,"\tTesting SWinqswath... \n");); MESSAGE(11,fprintf(fp,"\t=================\n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving general information about objects within the file\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving general information about objects within the file\n");); number = HE5_SWinqswath("SimpleSwath.h5",NULL,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber = HE5_SWinqswath(\"SimpleSwath.h5\",NULL,&strbufsize);\n");); MESSAGE(8,printf("\t\tValue returned by SWinqswath %li\n", number);); MESSAGE(8,printf("\t\tString length returned by SWinqswath %li\n", strbufsize);); MESSAGE(11,fprintf(fp,"\t\tnumber = HE5_SWinqswath(\"SimpleSwath.h5\",NULL,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by SWinqswath %li\n", number);); MESSAGE(11,fprintf(fp,"\t\tStringlength returned by SWinqswath %li\n", strbufsize);); } MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tContinue ...\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tContinue ...\n");); ObjNamesPtr = (char *)calloc(strbufsize+1, sizeof(char ) ); number = HE5_SWinqswath("SimpleSwath.h5",ObjNamesPtr,&strbufsize); if (number == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnumber = HE5_SWinqswath(\"SimpleSwath.h5\",ObjNamesPtr,&strbufsize);\n");); MESSAGE(8,printf("\t\tNumber of swath objects: %li\n", number);); MESSAGE(8,printf("\t\tList of swath objects: %s\n", ObjNamesPtr);); MESSAGE(11,fprintf(fp,"\t\tnumber = HE5_SWinqswath(\"SimpleSwath.h5\",ObjNamesPtr,&strbufsize);\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of swath objecys: %li\n", number);); MESSAGE(11,fprintf(fp,"\t\tList of swath objects: %s\n", ObjNamesPtr);); } free(ObjNamesPtr); /* ********************************************************************************* * Testing SWclose * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting SWclose... \n");); MESSAGE(4,printf("\t====================== \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting SWclose... \n");); MESSAGE(11,fprintf(fp,"\t====================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tClosing the file SimpleSwath.h5\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tClosing the file SimpleSwath.h5\n");); status = HE5_SWclose(swfidc_simple); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\tSuccessfully clossed the SimpleSwath.h5 file \n");); MESSAGE(11,fprintf(fp,"\t\tSuccessfully clossed the SimpleSwath.h5 file \n");); MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t ........... End of Testing. \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t ............. End of Testing. \n");); } if (errcnt == 0) { MESSAGE(11,printf("\n");); MESSAGE(11,printf("\n");); MESSAGE(11,printf("\t\t A L L T E S T S P A S S E D \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t A L L T E S T S P A S S E D \n");); return_val = 0; } else { MESSAGE(11,printf("\n");); MESSAGE(11,printf("\n");); MESSAGE(11,printf("\t\t%d T E S T S F A I L E D \n",errcnt);); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t%d T E S T S F A I L E D \n",errcnt);); return_val = 1; } MESSAGE(11,fclose(fp);); return return_val; } hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/tutils.h0000755000175000017500000000466212024715435022643 0ustar amckinstryamckinstry/**************************************************************************** * NCSA HDF * * Software Development Group * * National Center for Supercomputing Applications * * University of Illinois at Urbana-Champaign * * 605 E. Springfield, Champaign IL 61820 * * * * For conditions of distribution and use, see the accompanying * * hdf/COPYING file. * * * ****************************************************************************/ /* tutils.h,v 1.12 1995/10/05 16:17:28 koziol Exp */ #ifndef _TUTILS_H #define _TUTILS_H /* Define these for use in all the tests */ #ifndef TESTMASTER extern #endif int num_errs #ifdef TESTMASTER = 0 #endif , Verbosity #ifdef TESTMASTER = 0 #endif ; #ifdef TEST_PC #define FAR far #else #ifndef FAR #define FAR /* */ #endif /* FAR */ #endif /* TEST_PC */ /* Use %ld to print the value because long could cover most cases. */ /* Used to make certain a return value _is_not_ a value */ #define CHECK(ret, val, where) \ do {if (Verbosity>9) printf(" Call to HDF routine: %15s at line %4d in %s returned %ld \n",where,(int)__LINE__,__FILE__,(long)ret);\ if(ret == val) {printf("*** UNEXPECTED RETURN from %s is %ld at line %4d in %s\n", where, (long)ret, (int)__LINE__,__FILE__); num_errs++;} \ } while(0) /* Used to make certain a return value _is_ a value */ #define VERIFY(x, val, where) \ do {if (Verbosity>9) printf(" Call to HDF routine: %15s at line %4d in %s had value %ld \n",where,(int)__LINE__,__FILE__,(long)x);\ if(x != val) {printf("*** UNEXPECTED VALUE from %s is %ld at line %4d in %s\n", where, (long)x,(int)__LINE__,__FILE__); num_errs++;} \ } while(0) #define RESULT(a) \ do { \ if (Verbosity>8) printf(" Call to HDF routine: %15s at line %4d in %s returned %ld \n",a,(int)__LINE__,__FILE__,(long)ret); \ if (Verbosity>9) HEprint(stdout,0); \ if(ret == FAIL) {printf("*** UNEXPECTED RETURN from %s is %ld at line %4d in %s\n", a, (long)ret,(int)__LINE__,__FILE__); num_errs++;} \ } while(0) #define MESSAGE(v,a) {if (Verbosity>=v) {a}} #endif /* _TUTILS_H */ hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/TestAlias.c0000755000175000017500000002412312024715435023175 0ustar amckinstryamckinstry/* ****************************************************************** * File: TestAlias.c * * * * Date: Oct 02, 2000 * * Programmer: A.Muslimov, Emergent Information Technologies,Inc * * Purpose: Testing Swath interfacing routines * ****************************************************************** */ #include #define FILENAME "Alias.h5" #define RANK 2 main() { herr_t status = FAIL; int i, j; int rank = FAIL; int length = 0; int attr[1] = {2000}; int fieldgroup = FAIL; int comp_level[5] = { 0,0,0,0,0 }; int comp_code; int level[5] = {0,0,0,0,0}, code = 0; int *fldrank = (int *)NULL; H5T_class_t dtype = H5T_NO_CLASS; hid_t dtype1 = FAIL; H5T_order_t order = H5T_ORDER_ERROR; hid_t ntype[3] = {FAIL,FAIL,FAIL}; long nattr = FAIL; long nfldalias = FAIL; long strbufsize = FAIL; long nflds = FAIL; long nalias = FAIL; hid_t SWid = FAIL, swfid = FAIL; hid_t datatype = FAIL; float data[ 20 ][ 10 ]; float out_buffer[ 20 ][ 10 ]; float fillvalue = -777.777; float out_fillvalue = -1.; size_t size = 0; hssize_t start[ 2 ] = { 0, 0 }; hsize_t count[ 2 ] = { 5, 5}; hsize_t nelem = 0; hsize_t dims[8] = {0, 0, 0, 0, 0, 0, 0, 0}; hsize_t chunk_dims[ 2 ]; char dimlist[80]; char maxdimlist[80]; char *namebuf, attrlist[80]; char fldlist[80]; char fldalias[80]; char aliaslist[80]; /* ***************************************************************************** * Open/Create the Swath "Test_1" * ***************************************************************************** */ swfid = HE5_SWopen(FILENAME, H5F_ACC_TRUNC); printf("Swath file ID = %d\n", swfid); SWid = HE5_SWcreate(swfid,"Test_1"); printf("Swath ID = %d\n", SWid); /* ***************************************************************************** * Define Dimensions * ***************************************************************************** */ status = HE5_SWdefdim(SWid,"DataTrack", 20); printf("status returned by HE5_SWdefdim = %d\n", status); status = HE5_SWdefdim(SWid,"DataXtrack", 10); printf("status returned by HE5_SWdefdim = %d\n", status); chunk_dims[ 0 ] = 10; chunk_dims[ 1 ] = 5; comp_code = 4; comp_level[0] = 6; status = HE5_SWdefcomchunk(SWid, comp_code, comp_level, RANK, chunk_dims); printf("status returned by HE5_SWdefcomchunk = %d\n", status); status = HE5_SWsetfillvalue(SWid, "Temperature", H5T_NATIVE_FLOAT, &fillvalue); printf("status returned by HE5_SWsetfillvalue = %d\n", status); status = HE5_SWdefdatafield(SWid,"Temperature", "DataTrack,DataXtrack", NULL, H5T_NATIVE_FLOAT, 0); printf("status returned by HE5_SWdefdatafield = %d\n", status); /* ***************************************************************************** * Write data to the field "Temperature" * ***************************************************************************** */ for ( i = 0; i < 20; i++ ) for( j = 0; j < 10; j++ ) data[ i ][ j ] = 1.e0 + i + 5.e-2 * j ; status = HE5_SWwritefield(SWid,"Temperature", start, NULL, count, data ); printf("status returned by HE5_SWwritefield = %d\n", status); /* Set aliases for field "Temperature" */ /* ----------------------------------- */ status = HE5_SWsetalias(SWid,"Temperature","T,Tmp,Temp,L2gpValue,ZZZ"); printf("status returned by HE5_SWsetalias = %d\n", status); strcpy(fldalias,""); nfldalias = HE5_SWinqdfldalias(SWid, fldalias, &strbufsize); printf("Number of fields & aliases is: %li\n", nfldalias); printf("Fields & aliases list: %s \n", fldalias); printf("Length of fields & aliases list: %li \n", strbufsize); strcpy(aliaslist,""); nalias = HE5_SWgetaliaslist(SWid, HE5_HDFE_DATAGROUP, aliaslist, &strbufsize); printf("Number of aliases is: %li\n", nalias); printf("Aliases list: %s \n", aliaslist); printf("Length of aliases list: %li \n", strbufsize); /* Get information about alias "Temp" */ /* ---------------------------------- */ status = HE5_SWaliasinfo(SWid, HE5_HDFE_DATAGROUP, "Temp", &length, NULL); if (status == SUCCEED) printf("Name length: %d \n", length); namebuf = (char *)calloc(length+1, sizeof(char)); /* Get the actual name of the field "Temp" */ /* --------------------------------------- */ status = HE5_SWaliasinfo(SWid, HE5_HDFE_DATAGROUP, "Temp", &length, namebuf); if (status == SUCCEED) printf("Original field name: %s \n", namebuf); free(namebuf); /* Remove alias "Tmp" from the alias list */ /* -------------------------------------- */ status = HE5_SWdropalias(SWid, HE5_HDFE_DATAGROUP, "Tmp"); printf("status returned by HE5_SWdropalias = %d\n", status); /* Remove alias "Temp" from the alias list */ /* --------------------------------------- */ status = HE5_SWdropalias(SWid, HE5_HDFE_DATAGROUP, "Temp"); printf("status returned by HE5_SWdropalias = %d\n", status); /* Get information about alias "L2gpValue" */ /* ---------------------------------------- */ status = HE5_SWaliasinfo(SWid, HE5_HDFE_DATAGROUP, "L2gpValue", &length, NULL); if (status == SUCCEED) printf("Name length: %d \n", length); namebuf = (char *)calloc(length+1, sizeof(char)); /* Get the actual name of the field "L2gpValue" */ /* -------------------------------------------- */ status = HE5_SWaliasinfo(SWid, HE5_HDFE_DATAGROUP, "L2gpValue", &length, namebuf); if (status == SUCCEED) printf("Original field name: %s \n", namebuf); free(namebuf); count[0] = 20; count[1] = 10; /* Read the data from the field calling it by alias */ /* ------------------------------------------------ */ status = HE5_SWreadfield(SWid,"L2gpValue", start, NULL, count, out_buffer); printf("status returned by HE5_SWreadfield = %d\n", status); printf("Data from \"L2gpValue\" field: \n"); for ( i = 0; i < 20; i++ ) for( j = 0; j < 10; j++ ) printf("%f \n", out_buffer[ i ][ j ]); /* Write local attribute to "L2gpValue" */ /* ------------------------------------ */ count[0] = 1; status = HE5_SWwritelocattr(SWid, "L2gpValue", "LocalAttribute", H5T_NATIVE_INT, count, attr); printf("status returned by HE5_SWwritelocattr = %d\n", status); status = HE5_SWdetach(SWid); printf("status returned by HE5_SWdetach = %d\n", status); SWid = HE5_SWattach(swfid,"Test_1"); printf("Swath ID returned by HE5_SWattach = %d\n", SWid); printf("Local Attributes:\n"); nattr = HE5_SWinqlocattrs(SWid, "L2gpValue", NULL, &strbufsize); printf("Number of attributes: %li \n", nattr); printf("Length of attribute list: %li \n", strbufsize); strcpy(attrlist,""); nattr = HE5_SWinqlocattrs(SWid, "L2gpValue", attrlist, &strbufsize); printf("Attribute list: %s \n", attrlist); printf("Local Attribute:\n"); status = HE5_SWlocattrinfo(SWid,"T", "LocalAttribute",&dtype1, &nelem); printf("Data type: %d\n", dtype1); printf("Number of elements: %lu \n", (unsigned long)nelem); status = HE5_SWfieldinfo(SWid, "L2gpValue", &rank, dims, &dtype1, dimlist, maxdimlist); printf("Status returned by HE5_SWfieldinfo = %d\n", status); if (status != FAIL) { printf("Field rank: %d \n", rank); printf("Dimension Sizes: \n"); for ( i = 0; i < rank; i++) { printf(" %lu \n", (unsigned long)dims[i]); } printf("Number type ID: %d \n", dtype1); printf("DimList string: %s \n", dimlist); printf("MaxdimList string: %s \n", maxdimlist); } fieldgroup = HE5_HDFE_DATAGROUP; status = HE5_SWinqdatatype(SWid, "T", NULL, fieldgroup, &datatype, &dtype, &order, &size); printf("status returned by HE5_SWinqdatatype = %d \n", status); if (status != FAIL) { printf("Data type ID: %d \n", datatype); printf("Data type class ID: %d \n", dtype); printf("Byte order: %d \n", order); printf("Data size (bytes): %d \n", (int)size); } status = HE5_SWcompinfo(SWid,"L2gpValue", &code, level); printf("status returned by HE5_SWcompinfo = %d\n", status); if (status != FAIL) { printf("Compression Information: \n"); printf("Compression code: %d \n", code); printf("Compression level: %d \n", level[0]); } status = HE5_SWgetfillvalue(SWid,"L2gpValue",&out_fillvalue); printf("status returned by HE5_SWgetfillvalue = %d\n", status); printf("The fill value: %f\n", out_fillvalue); status = HE5_SWdetach(SWid); printf("status returned by HE5_SWdetach = %d\n", status); SWid = HE5_SWattach(swfid,"Test_1"); printf("Swath ID returned by HE5_SWattach = %d\n", SWid); nflds = HE5_SWnentries(SWid,4,&strbufsize); printf("Value returned by HE5_SWnentries = %li\n", nflds); if (nflds != FAIL) { fldrank = (int *)calloc(nflds, sizeof(int)); nflds = FAIL; nflds = HE5_SWinqdatafields(SWid,fldlist,fldrank,ntype); printf("Value returned by HE5_SWinqdatafields = %li \n", nflds); if (nflds != FAIL) { printf("List of fields: %s \n", fldlist); for (i = 0; i < nflds; i++) printf("Field rank, number type ID: %d, %d \n",fldrank[i],ntype[i]); } free(fldrank); } status = HE5_SWdetach(SWid); printf("status returned by HE5_SWdetach = %d\n", status); status = HE5_SWclose(swfid); printf("status returned by HE5_SWclose = %d\n", status); } hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/testswath32.f0000755000175000017500000024263412024715435023513 0ustar amckinstryamckinstryc---------------------------------------------------------------------------- c Copyright (C) 2000 Emergent IT Inc. and Raytheon Systems Company | c---------------------------------------------------------------------------- c testswath32.f | c In this program we create, define and write a simple swath hdfeos file | c using the swath interface | c---------------------------------------------------------------------------- program testswath32 implicit none include 'hdfeos5.inc' integer index1, index2, status integer rank, n, dtype, classid, order integer rdattr(4), global_attr(4) integer compparm(5), cnkrank integer rdcompparm(5), compcode integer he5_swopen, he5_swcreate integer swfid, swid, swid2 integer he5_swdefdim, he5_swdetach integer he5_swdefgfld, he5_swdefdfld integer he5_swdefmap, he5_swclose, he5_swdefimap integer he5_swsetfill, he5_swwrlattr, he5_swwrattr integer he5_swwrfld, he5_swwrgattr, he5_swdefvrtreg integer he5_swgmapinfo, he5_swrdfld, he5_swfldinfo integer he5_swmapinfo, he5_swattrinfo, he5_swrdattr integer he5_swgattrinfo, he5_swrdgattr, he5_swrdlattr integer he5_swreginfo, he5_swextreg, he5_swregidx integer he5_swperinfo, he5_swextper integer he5_swlattrinfo, he5_swgetfill, he5_swidtype integer he5_swdefchunk, he5_swdefcomp, he5_swcompinfo integer regionid, regionid2, regionid3, he5_swupimap integer rnkd(4), ntyped(4), rnk(3), ntype(3), nt integer he5_swattach integer he5_swdefboxreg, he5_swdeftmeper, he5_swdupreg integer*4 he5_swinqswath, he5_swnentries, he5_swinqmaps integer*4 he5_swinqimaps, he5_swinqdims, he5_swdiminfo integer*4 he5_swimapinfo, he5_swinqattrs, he5_swinqgattrs integer*4 he5_swinqlattrs, he5_swinqgflds, he5_swinqdflds integer*4 size, strbufsize, ndims, chunkdims(1) integer*4 start(2), stride(2), dataedge(2), geoedge(2) integer*4 geostart(2),istart(2),iedge(2),dedge(2) integer*4 sd_start(2), sd_stride(2), sd_edge(2) integer*4 rd_start(2), rd_stride(2), rd_edge(2) integer*4 indexmap(30), dimsize integer*4 nattr, nswath, idxsz, nmaps integer*4 tstart(1),tstride(1),tedge(1) integer*4 strbufsz2, nflds, idxrange(2) integer*4 count(1), offset, inc, zero, status4 integer*4 ndxmap(2), dims(5),latdims(2) integer*4 idxmap(50), upidxmap(50) integer*4 dim1, dim2, dim3, dim4 real grpattr(3), locattr(3), rdgnlattr(3) real ray1(100,40), ray2(40,100) real lat(40,50), lon(40,50), ray4(40,100) real ray3(40,40), temp(40,100) real idxlat(30,30), idxlon(30,30) real latcnt, loncnt, raycnt, idxlatcnt, idxloncnt real fillvalue, rdfilval, tempbuf(4200) real*8 cornerlon(2),cornerlat(2) real*8 twodtime(40,50) real*8 onedtime(40) real*8 range(2) real*8 tmcnt, starttime, endtime character*(256) geodim character*(256) idxdimmap character*(256) dimmap, dimname, fieldlist character*(256) attrlist, swathlist character*(256) dimens, maxdims dim1 = 30 dim2 = 40 dim3 = 50 dim4 = 100 count(1) = 3 compparm(1) = 6 compparm(2) = 0 compparm(3) = 0 compparm(4) = 0 compparm(5) = 0 cnkrank = 1 chunkdims(1) = 10 rdcompparm(1) = 1 rdcompparm(2) = 1 rdcompparm(3) = 1 rdcompparm(4) = 1 rdcompparm(5) = 1 compcode = -1 raycnt = -799.0 tmcnt = 46353400.0d0 starttime = 46353450.0d0 endtime = 46500000.0d0 range(1) = 46353450.0d0 range(2) = 46500000.0d0 latcnt = 39.8 loncnt = 78.0 global_attr(1)= 11 global_attr(2)= 33 global_attr(3)= 66 global_attr(4)= 99 grpattr(1) = 21.7 grpattr(2) = 24.3 grpattr(3) = 26.3 locattr(3) = 21.7 locattr(2) = 24.3 locattr(1) = 26.3 start(1) = 10 start(2) = 10 tstart(1) = 0 tstride(1) = 1 tedge(1) = 40 geostart(1) = 0 geostart(2) = 0 stride(1) = 1 stride(2) = 1 sd_start(1) = 0 sd_start(2) = 0 sd_stride(1) = 1 sd_stride(2) = 1 sd_edge(1) = 100 sd_edge(2) = 40 rd_start(1) = 0 rd_start(2) = 0 rd_stride(1) = 1 rd_stride(2) = 1 rd_edge(1) = 40 rd_edge(2) = 100 dataedge(1) = 20 dataedge(2) = 50 geoedge(1) = 40 geoedge(2) = 50 idxlatcnt = 39.8 idxloncnt = 78.0 istart(1) = 0 istart(2) = 0 iedge(1) = 30 iedge(2) = 30 dedge(1) = 40 dedge(2) = 40 rank = 2 fillvalue = 16.0 cornerlon(1) = 75.0 cornerlon(2) = 78.0 cornerlat(1) = 38.0 cornerlat(2) = 39.8 indexmap(1) = 1 indexmap(2) = 2 indexmap(3) = 3 indexmap(4) = 4 indexmap(5) = 6 indexmap(6) = 7 indexmap(7) = 8 indexmap(8) = 9 indexmap(9) = 11 indexmap(10) = 12 indexmap(11) = 13 indexmap(12) = 14 indexmap(13) = 16 indexmap(14) = 17 indexmap(15) = 18 indexmap(16) = 19 indexmap(17) = 21 indexmap(18) = 22 indexmap(19) = 23 indexmap(20) = 24 indexmap(21) = 26 indexmap(22) = 27 indexmap(23) = 28 indexmap(24) = 29 indexmap(25) = 31 indexmap(26) = 32 indexmap(27) = 33 indexmap(28) = 34 indexmap(29) = 36 indexmap(30) = 37 zero = 0 c c This section of the program just fills some arrays with data that will be c used later in the program c do 110 index1=1,100 do 100 index2=1,40 ray1(index1, index2)=raycnt ray2(index2, index1)=raycnt + 1.0 ray4(index2,index1) = raycnt raycnt = raycnt +1. 100 continue 110 continue do 130 index1=1,40 do 120 index2=1,50 lat(index1, index2)=latcnt lon(index1, index2)=loncnt twodtime(index1,index2)=tmcnt loncnt=loncnt-.1 tmcnt=tmcnt+5.0 120 continue onedtime(index1)=tmcnt latcnt=latcnt-0.1 loncnt = 78.0 130 continue do 150 index1=1,30 do 140 index2=1,30 idxlat(index1, index2)=idxlatcnt idxlon(index1, index2)=idxloncnt idxloncnt=idxloncnt-.1 140 continue idxlatcnt=idxlatcnt-.1 idxloncnt=78.0 150 continue do 170 index1=1,40 do 160 index2=1,40 ray3(index1, index2)=raycnt raycnt = raycnt+1.25 160 continue 170 continue do 987 index1=1,50 idxmap(index1)=zero upidxmap(index1)=zero 987 continue 230 format('********Error unexpected**********') 240 format('***********Passed Test*********') open(unit=1, file="testswath.txt", status = "UNKNOWN") write(*,*)'Testing he5_swath FORTRAN 77 interface' write(*,*)'======================================' write(1,*)'Testing he5_swath FORTRAN 77 interface' write(1,*)'======================================' write(*,*)' ' write(1,*)' ' c Test Case -- he5_swopen c write(*,*)'Testing he5_swopen ' write(*,*)'=====================' write(1,*)'Testing he5_swopen ' write(1,*)'=====================' swfid=he5_swopen('swath.he5',HE5F_ACC_TRUNC) if (swfid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_TRUNC)' write(*,*)'Value returned by he5_swopen ', swfid write(1,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_TRUNC)' write(1,*)'Value returned by he5_swopen ', swfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swcreate c write(1,27) write(*,*)'Testing he5_swcreate ' write(*,*)'=====================' write(1,*)'Testing he5_swcreate ' write(1,*)'=====================' swid=he5_swcreate(swfid,'Simplef') if (swid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid=he5_swcreate(swfid, "Simplef")' write(*,*)'Value returned by he5_swcreate ', swid write(1,*)'swid= he5_swcreate(swfid, "Simplef")' write(1,*)'Value returned by he5_swcreate ', swid endif write(*,*)' ' write(1,*)' ' swid2=he5_swcreate(swfid,'Indexedf') if (swid2 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' swid2= he5_swcreate(swfid, "Indexedf")' write(*,*)' Value returned by he5_swcreate ', swid2 write(1,*)' swid2= he5_swcreate(swfid, "Indexedf")' write(1,*)' Value returned by he5_swcreate ', swid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefdim c write(1,27) write(*,*)'Testing he5_swdefdim ' write(*,*)'=====================' write(1,*)'Testing he5_swdefdim ' write(1,*)'=====================' status=he5_swdefdim(swid,'DataTrack',dim4) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid, "DataTrack", 100)' write(*,*)' Value returned by he5_swdefdim ',status write(1,*)' status= he5_swdefdim(swid, "DataTrack", 100)' write(1,*)' Value returned by he5_swdefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid,'DataXtrack',dim2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid, "DataXtrack", 40)' write(*,*)' Value returned by he5_swdefdim ',status write(1,*)' status= he5_swdefdim(swid, "DataXtrack", 40)' write(1,*)' Value returned by he5_swdefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid,'GeoTrack',dim3) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid, "GeoTrack", 50)' write(*,*)' Value returned by he5_swdefdim ',status write(1,*)' status= he5_swdefdim(swid, "GeoTrack", 50)' write(1,*)' Value returned by he5_swdefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid,'GeoXtrack',dim2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid, "GeoXtrack", 40)' write(*,*)' Value returned by he5_swdefdim ',status write(1,*)' status= he5_swdefdim(swid, "GeoXtrack", 40)' write(1,*)' Value returned by he5_swdefdim ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'DataTrack',dim2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid2, "DataTrack", 40)' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)' status= he5_swdefdim(swid2, "DataTrack", 40)' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'DataXtrack',dim2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid2, "DataXtrack", 40)' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)' status= he5_swdefdim(swid2, "DataXtrack", 40)' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'GeoTrack',dim1) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid2, "GeoTrack", 30)' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)' status= he5_swdefdim(swid2, "GeoTrack", 30)' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'GeoXtrack',dim1) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status= he5_swdefdim(swid2, "GeoXtrack", 30)' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)' status= he5_swdefdim(swid2, "GeoXtrack", 30)' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdim(swid2,'Timedim',dim2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define dimension Timedim ' write(*,*)' Value returned by he5_swdefdim ', status write(1,*)'Define dimension Timedim ' write(1,*)' Value returned by he5_swdefdim ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefgfld c write(1,27) write(*,*)'Testing he5_swdefgfld ' write(*,*)'=====================' write(1,*)'Testing he5_swdefgfld ' write(1,*)'=====================' status=he5_swdefgfld(swid,'Latitude','GeoXtrack,GeoTrack', 1' ',HE5T_NATIVE_FLOAT,0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefgfld(swid,"Latitude", 1"GeoXtrack,GeoTrack"," ", HE5T_NATIVE_FLOAT, 0)' write(1,*)'status= he5_swdefgfld(swid,"Latitude", 1"GeoXtrack,GeoTrack"," ", HE5T_NATIVE_FLOAT, 0)' write(1,*)'Value returned by he5_swdefgfld ',status write(*,*)'Value returned by he5_swdefgfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid,'Longitude','GeoXtrack,GeoTrack', 1' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swdefgfld ',status write(1,*)'Value returned by he5_swdefgfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid2,'Latitude','GeoXtrack,GeoTrack', 1' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swdefgfld ', status write(1,*)'Value returned by he5_swdefgfld ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid2,'Longitude','GeoXtrack,GeoTrack', 1' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swdefgfld ', status write(1,*)'Value returned by he5_swdefgfld ', status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid2,'Time','Timedim',' ', 1HE5T_NATIVE_DOUBLE, 0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define field Time for swath Indexedf ' write(*,*)'Status returned from call to he5_swdefgfld ',status write(1,*)'Define field Time for swath Indexedf ' write(1,*)'Status returned from call to he5_swdefgfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefgfld(swid,'Time','GeoXtrack,GeoTrack', 1' ', HE5T_NATIVE_DOUBLE, 0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefgfld(swid, "Time","GeoXtrack,GeoTrack", 1"",HE5T_NATIVE_DOUBLE, 0)' write(*,*)'Value returned by he5_swdefgfld ',status write(1,*)'status= he5_swdefgfld(swid, "Time","GeoXtrack,GeoTrack", 1"",HE5T_NATIVE_DOUBLE, 0)' write(1,*)'Value returned by he5_swdefgfld ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefdfld c write(1,27) write(*,*)'Testing he5_swdefdfld ' write(*,*)'=====================' write(1,*)'Testing he5_swdefdfld ' write(1,*)'=====================' status=he5_swdefdfld(swid,'SideA','DataXtrack,DataTrack', 1' ', HE5T_NATIVE_FLOAT, 0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field SideA ' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'Define data field SideA ' write(1,*)'Value returned by he5_swdefdfld ',status write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swsetfill c write(1,27) write(*,*)'Testing he5_swsetfill ' write(*,*)'=====================' write(1,*)'Testing he5_swsetfill ' write(1,*)'=====================' status= he5_swsetfill(swid,'Temperature', 1HE5T_NATIVE_FLOAT, fillvalue) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swsetfill(swid,"Temperature", 1HE5T_NATIVE_FLOAT, fillvalue)' write(*,*)'Value returned by he5_swsetfill ',status write(1,*)'status=he5_swsetfill(swid,"Temperature", 1HE5T_NATIVE_FLOAT, fillvalue)' write(1,*)'Value returned by he5_swsetfill ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdfld(swid,'Temperature', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field Temperature ' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'Define data field Temperature ' write(1,*)'Value returned by he5_swdefdfld ',status write(*,*)' ' write(1,*)' ' endif status= he5_swsetfill(swid,'Conduction', 1HE5T_NATIVE_FLOAT,fillvalue) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swsetfill(swid,"Conduction", 1HE5T_NATIVE_FLOAT,fillvalue)' write(*,*)'Value returned by he5_swsetfill ',status write(1,*)'status=he5_swsetfill(swid,"Conduction", 1HE5T_NATIVE_FLOAT,fillvalue)' write(1,*)'Value returned by he5_swsetfill ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdfld(swid,'Conduction', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT,0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefdfld(swid,"Conduction", 1"DataXtrack,DataTrack","",HE5T_NATIVE_FLOAT, 0)' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'status= he5_swdefdfld(swid,"Conduction", 1"DataXtrack,DataTrack","",HE5T_NATIVE_FLOAT, 0)' write(1,*)'Value returned by he5_swdefdfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdfld(swid2,'Sensor1', 1'DataXtrack,DataTrack',' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swdefdfld(swid2, "Sensor1", 1"DataTrack,DataXtrack","",HE5T_NATIVE_FLOAT, 0)' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'status= he5_swdefdfld(swid2, "Sensor1", 1"DataTrack,DataXtrack","",HE5T_NATIVE_FLOAT, 0)' write(1,*)'Value returned by he5_swdefdfld ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefchunk c write(1,27) write(*,*)'Testing he5_swdefchunk' write(*,*)'======================' write(1,*)'Testing he5_swdefchunk' write(1,*)'======================' status=he5_swdefchunk(swid,cnkrank,chunkdims) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefchunk(swid, cnkrank, chunkdims)' write(*,*)'Value returned by he5_swdefchunk ',status write(1,*)'status= he5_swdefchunk(swid, cnkrank, chunkdims)' write(1,*)'Value returned by he5_swdefchunk ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefcomp c write(1,27) write(*,*)'Testing he5_swdefcomp' write(*,*)'=====================' write(1,*)'Testing he5_swdefcomp' write(1,*)'=====================' status=he5_swdefcomp(swid,HE5_HDFE_COMP_DEFLATE,compparm) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefcomp(swid,HE5_HDFE_COMP_DEFLATE, 1compparm)' write(*,*)'Value returned by he5_swdefcomp ',status write(1,*)'status= he5_swdefcomp(swid,HE5_HDFE_COMP_DEFLATE, 1compparm)' write(1,*)'Value returned by he5_swdefcomp ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefdfld(swid,'CompChunk','GeoTrack', 1' ',HE5T_NATIVE_FLOAT, 0) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define data field CompChunk ' write(*,*)'Value returned by he5_swdefdfld ',status write(1,*)'Define data field CompChunk ' write(1,*)'Value returned by he5_swdefdfld ',status write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swdetach c write(1,27) write(*,*)'Testing he5_swdetach ' write(*,*)'=====================' write(1,*)'Testing he5_swdetach ' write(1,*)'=====================' status=he5_swdetach(swid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdetach(swid2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid2)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid2)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' swid=he5_swattach(swfid,'Simplef') if (swid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid= he5_swattach(swfid, "Simplef")' write(*,*)'Value returned by he5_swattach ',swid write(1,*)'swid= he5_swattach(swfid, "Simplef")' write(1,*)'Value returned by he5_swattach ',swid endif write(*,*)' ' write(1,*)' ' swid2=he5_swattach(swfid,'Indexedf') if (swid2 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid2= he5_swattach(swfid, "Indexedf")' write(*,*)'Value returned by he5_swattach ',swid2 write(1,*)'swid2= he5_swattach(swfid, "Indexedf")' write(1,*)'Value returned by he5_swattach ',swid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefmap c write(1,27) write(*,*)'Testing he5_swdefmap ' write(*,*)'=====================' write(1,*)'Testing he5_swdefmap ' write(1,*)'=====================' offset = 0 inc = 2 status=he5_swdefmap(swid,'GeoTrack','DataTrack',offset,inc) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefmap(swid,"GeoTrack", 1"DataTrack", offset, inc)' write(*,*)'Value returned by he5_swdefmap ',status write(1,*)'status= he5_swdefmap(swid,"GeoTrack", 1"DataTrack", offset, inc)' write(1,*)'Value returned by he5_swdefmap ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefimap c write(1,27) write(*,*)'Testing he5_swdefimap ' write(*,*)'=====================' write(1,*)'Testing he5_swdefimap ' write(1,*)'=====================' status=he5_swdefimap(swid2,'GeoTrack','DataTrack',indexmap) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdefimap(swid2, "GeoTrack", 1"DataTrack",indexmap)' write(*,*)'Value returned by he5_swdefimap ',status write(1,*)'status= he5_swdefimap(swid2, "GeoTrack", 1"DataTrack",indexmap)' write(1,*)'Value returned by he5_swdefimap ',status endif write(*,*)' ' write(1,*)' ' status=he5_swdefimap(swid2,'GeoXtrack','DataXtrack', 1indexmap) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swdefimap(swid2, "GeoXtrack", 1"DataXtrack",indexmap)' write(*,*)'Value returned by he5_swdefimap ',status write(1,*)'status=he5_swdefimap(swid2, "GeoXtrack", 1"DataXtrack",indexmap)' write(1,*)'Value returned by he5_swdefimap ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdetach c write(1,27) write(*,*)'Testing he5_swdetach ' write(*,*)'=====================' write(1,*)'Testing he5_swdetach ' write(1,*)'=====================' status= he5_swdetach(swid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid2)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid2)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status=he5_swclose(swfid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swclose(swfid)' write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' swfid=he5_swopen('swath.he5',HE5F_ACC_RDWR) if (swfid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swfid=he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_swopen ',swfid write(1,*)'swfid=he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_swopen ',swfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swattach c write(1,27) write(*,*)'Testing he5_swattach ' write(*,*)'=====================' write(1,*)'Testing he5_swattach ' write(1,*)'=====================' swid=he5_swattach(swfid,'Simplef') if (swid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid= he5_swattach(swfid, "Simplef")' write(*,*)'Value returned by he5_swattach ',swid write(1,*)'swid= he5_swattach(swfid, "Simplef")' write(1,*)'Value returned by he5_swattach ',swid endif write(*,*)' ' write(1,*)' ' swid2=he5_swattach(swfid,'Indexedf') if (swid2 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid2= he5_swattach(swfid, "Indexedf")' write(*,*)'Value returned by he5_swattach ',swid2 write(1,*)'swid2= he5_swattach(swfid, "Indexedf")' write(1,*)'Value returned by he5_swattach ',swid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swwrfld c write(1,27) write(*,*)'Testing he5_swwrfld ' write(*,*)'===================' write(1,*)'Testing he5_swwrfld ' write(1,*)'===================' status=he5_swwrfld(swid,'SideA',sd_start,stride, 1rd_edge, ray4) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Write data field SideA ' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'Write data field SideA ' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Temperature',start,stride, 1dataedge, ray4) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrfld(swid,"Temperature",start, 1stride,dataedge, ray1)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status=he5_swwrfld(swid,"Temperature",start, 1stride,dataedge, ray1)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Conduction',start,stride, 1dataedge, ray2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrfld(swid,"Conduction",start, 1stride,dataedge, ray2)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status=he5_swwrfld(swid,"Conduction",start, 1stride,dataedge, ray2)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Latitude',geostart,stride, 1geoedge,lat) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swwrfld(swid, "Latitude", geostart, 1stride, geoedge, lat)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid, "Latitude", geostart, 1stride, geoedge, lat)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Longitude',geostart,stride, 1geoedge,lon) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swwrfld(swid,"Longitude",geostart, 1stride,geoedge, lon)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid,"Longitude",geostart, 1stride,geoedge, lon)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid,'Time',geostart,stride,geoedge, 1twodtime) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrfld(swid,"Time",geostart,stride, 1geoedge, twodtime)' write(*,*)'Value returned by he5_swwrfld for Time ',status write(1,*)'status= he5_swwrfld(swid, "Time", geostart, stride, 1geoedge, twodtime)' write(1,*)'Value returned by he5_swwrfld for Time ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid2,'Latitude',istart,stride, 1iedge,idxlat) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swwrfld(swid2,"Latitude", 1istart,stride,iedge,idxlat)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid2,"Latitude", 1istart,stride,iedge,lat)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid2,'Longitude',istart,stride, 1iedge,idxlon) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrfld(swid2,"Longitude", 1istart,stride,iedge,idxlon)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid2,"Longitude", 1istart,stride,iedge,idxlon)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' status=he5_swwrfld(swid2,'Time',tstart,tstride, 1tedge,onedtime) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Write field Time ' write(*,*)'Status returned by he5_swwrfld ',status write(1,*)'Write field Time ' write(1,*)'Status returned by he5_swwrfld ',status write(*,*)' ' write(1,*)' ' endif iedge(1)=40 iedge(2)=40 status=he5_swwrfld(swid2,'Sensor1',istart,stride, 1iedge,ray3) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swwrfld(swid2, "Sensor1", 1istart, stride, iedge, ray3)' write(*,*)'Value returned by he5_swwrfld ',status write(1,*)'status= he5_swwrfld(swid2, "Sensor1", 1istart, stride, iedge, ray3)' write(1,*)'Value returned by he5_swwrfld ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swwrlattr c write(1,27) write(*,*)'Testing he5_swwrlattr, Local Attribute ' write(*,*)'================================== ' write(1,*)'Testing he5_swwrlattr, Local Attribute ' write(1,*)'================================== ' status=he5_swwrlattr(swid2,'Sensor1','local', 1HE5T_NATIVE_FLOAT,count,locattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrlattr(swid2,"Sensor1","local", 1HE5T_NATIVE_FLOAT,count,locattr)' write(*,*)'Value returned by he5_swwrlattr ',status write(1,*)'status=he5_swwrlattr(swid2,"Sensor1", "local", 1HE5T_NATIVE_FLOAT,count,locattr)' write(1,*)'Value returned by he5_swwrlattr ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swwrattr c count(1) = 4 write(1,27) write(*,*)'Testing he5_swwrattr, Global Attribute ' write(*,*)'====================================== ' write(1,*)'Testing he5_swwrattr, Global Attribute ' write(1,*)'======================================= ' status=he5_swwrattr(swid,'Drift',HE5T_NATIVE_INT,count, 1global_attr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrattr(swid, "Drift", 1HE5T_NATIVE_INT, count, global_attr)' write(*,*)'Value returned by he5_swwrattr ',status write(1,*)'status=he5_swwrattr(swid, "Drift", 1HE5T_NATIVE_INT, count, global_attr)' write(1,*)'Value returned by he5_swwrattr ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swwrgattr c count(1) = 3 write(1,27) write(*,*)'Testing he5_swwrgattr, Group Attribute ' write(*,*)'====================================== ' write(1,*)'Testing he5_swwrgattr, Group Attribute ' write(1,*)'====================================== ' status=he5_swwrgattr(swid,'group',HE5T_NATIVE_FLOAT, 1count,grpattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swwrgattr(swid, "group", 1HE5T_NATIVE_FLOAT,count,grpgattr)' write(*,*)'Value returned by he5_swwrgattr ',status write(1,*)'status=he5_swwrgattr(swid, "group", 1HE5T_NATIVE_FLOAT,count,grpattr)' write(1,*)'Value returned by he5_swwrgattr ',status endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid2)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid2)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swclose c write(1,27) write(*,*)'Testing he5_swclose ' write(*,*)'===================' write(1,*)'Testing he5_swclose ' write(1,*)'===================' status= he5_swclose(swfid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' swfid= he5_swopen('swath.he5',HE5F_ACC_RDWR) if (swfid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_swopen ', swfid write(1,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_swopen ', swfid endif write(*,*)' ' write(1,*)' ' swid= he5_swattach(swfid,'Simplef') if (swid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid= he5_swattach(swfid, "Simplef")' write(*,*)'Value returned by he5_swattach ',swid write(1,*)'swid= he5_swattach(swfid, "Simplef")' write(1,*)'Value returned by he5_swattach ',swid endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swclose(swfid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swclose(swfid)' write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' swfid= he5_swopen('swath.he5',HE5F_ACC_RDWR) if (swfid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_swopen ',swfid write(1,*)'swfid= he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_swopen ',swfid endif write(*,*)' ' write(1,*)' ' swid=he5_swattach(swfid,'Simplef') if (swid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid= he5_swattach(swfid, "Simplef")' write(*,*)'Value returned by he5_swattach ',swid write(1,*)'swid= he5_swattach(swfid, "Simplef")' write(1,*)'Value returned by he5_swattach ',swid endif write(*,*)' ' write(1,*)' ' swid2=he5_swattach(swfid,'Indexedf') if (swid2 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swid2= he5_swattach(swfid, "Indexedf")' write(*,*)'Value returned by he5_swattach ',swid2 write(1,*)'swid2= he5_swattach(swfid, "Indexedf")' write(1,*)'Value returned by he5_swattach ',swid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefvrtreg c write(1,27) write(*,*)'Testing he5_swdefvrtreg' write(*,*)'=======================' write(1,*)'Testing he5_swdefvrtreg' write(1,*)'=======================' regionid=he5_swdefvrtreg(swid2,HE5_HDFE_NOPREVSUB,'Time',range) if (regionid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Define region id for field Time ' write(*,*)'Region id returned by he5_swdefvrtreg ', 1regionid write(1,*)'Define region id for field Time ' write(1,*)'Region id returned by he5_swdefvrtreg ', 1regionid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swnentries c write(1,27) write(*,*)'Testing he5_swnentries ' write(*,*)'=====================' write(1,*)'Testing he5_swnentries ' write(1,*)'=====================' nmaps=he5_swnentries(swid,1,strbufsize) if (nmaps .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nmaps= he5_swnentries(swid, 1, strbufsize)' write(*,*)'Number of dimension mappings ',nmaps write(*,*)'Size of strbufsize ',strbufsize write(1,*)'nmaps= he5_swnentries(swid, 1, strbufsize)' write(1,*)'Number of dimension mappings ',nmaps write(1,*)'Size of strbufsize ',strbufsize endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqmaps c write(1,27) write(*,*)'Testing he5_swinqmaps ' write(*,*)'=====================' write(1,*)'Testing he5_swinqmaps ' write(1,*)'=====================' nmaps=he5_swinqmaps(swid, dimmap, offset, inc) if (nmaps .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nmaps=he5_swinqmaps(swid,dimmap,offset,inc)' write(*,*)'Dimension mappings ',dimmap write(*,*)'offset ',offset write(*,*)'increment ',inc write(1,*)'nmaps=he5_swinqmaps(swid,dimmap,offset,inc)' write(1,*)'Dimension mappings ',dimmap write(1,*)'offset ',offset write(1,*)'increment ',inc endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swgmapinfo c write(1,27) write(*,*)'Testing he5_swgmapinfo ' write(*,*)'======================' write(1,*)'Testing he5_swgmapinfo ' write(1,*)'======================' status = he5_swgmapinfo(swid2,'GeoTrack') if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status = he5_swgmapinfo(swid2, "GeoTrack")' write(1,*)'status = he5_swgmapinfo(swid2, "GeoTrack")' write(*,*)'Status returned by he5_swgmapinfo ',status write(1,*)'Status returned by he5_swgmapinfo ',status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqimaps c write(1,27) write(*,*)'Testing he5_swinqimaps ' write(*,*)'=====================' write(1,*)'Testing he5_swinqimaps ' write(1,*)'=====================' nmaps=he5_swinqimaps(swid2, idxdimmap, ndxmap) if (nmaps .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nmaps=he5_swinqimaps(swid2,idxdimmap,ndxmap)' write(*,*)'Number of indexed mappings ',nmaps write(*,*)'Indexed Dimension mappings ',idxdimmap write(*,*)'Index size ',ndxmap write(1,*)'nmaps=he5_swinqimaps(swid2,idxdimmap,ndxmap)' write(1,*)'Number of indexed mappings ',nmaps write(1,*)'Indexed Dimension mappings ',idxdimmap write(1,*)'Index size ',ndxmap endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqdims c write(1,27) write(*,*)'Testing he5_swinqdims ' write(*,*)'=====================' write(1,*)'Testing he5_swinqdims ' write(1,*)'=====================' ndims=he5_swinqdims(swid,dimname,dims) if (ndims .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'ndims= he5_swinqdims(swid, dimname, dims)' write(*,*)'Number of dimesions ',ndims write(*,*)'Names of dimensions ',dimname write(*,*)'Size of dimensions ',dims write(1,*)'ndims= he5_swinqdims(swid, dimname, dims)' write(1,*)'Number of dimesions ',ndims write(1,*)'Names of dimensions ',dimname write(1,*)'Size of dimensions ',dims endif write(*,*)' ' write(1,*)' ' ndims= he5_swinqdims(swid2, dimname, dims) if (ndims .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'ndims=he5_swinqdims(swid2,dimname,dims)' write(*,*)'Number of dimesions ',ndims write(*,*)'Names of dimensions ',dimname write(*,*)'Size of dimensions ',dims write(1,*)'ndims=he5_swinqdims(swid2,dimname,dims)' write(1,*)'Number of dimesions ',ndims write(1,*)'Names of dimensions ',dimname write(1,*)'Size of dimensions ',dims endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqgflds c write(1,27) write(*,*)'Testing he5_swinqgflds ' write(*,*)'======================' write(1,*)'Testing he5_swinqgflds ' write(1,*)'======================' nflds= he5_swinqgflds(swid,fieldlist,rnk,ntype) if (nflds .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nflds=he5_swinqgflds(swid,fieldlist,rnk,ntype)' write(*,*)'Number of geolocation fields in swath ',nflds write(*,*)'Names of geolocation fields ',fieldlist write(*,*)'Rank of fields ',rnk write(*,*)'Number type of fields ',ntype write(1,*)'nflds=he5_swinqgflds(swid,fieldlist,rnk,ntype)' write(1,*)'Number of geolocation fields in swath ',nflds write(1,*)'Names of geolocation fields ',fieldlist write(1,*)'Rank of fields ',rnk write(1,*)'Number type of fields ',ntype endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqdflds c write(1,27) write(*,*)'Testing he5_swinqdflds ' write(*,*)'======================' write(1,*)'Testing he5_swinqdflds ' write(1,*)'======================' nflds=he5_swinqdflds(swid,fieldlist,rnkd,ntyped) if (nflds .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'nflds=he5_swinqdflds(swid,fieldlist,rnkd,ntyped)' write(*,*)'Number of data fields in swath ',nflds write(*,*)'Names of data fields ',fieldlist write(*,*)'Rank of fields ',rnkd write(*,*)'Number type of fields ',ntyped write(1,*)'nflds=he5_swinqdflds(swid,fieldlist,rnkd,ntyped)' write(1,*)'Number of data fields in swath ',nflds write(1,*)'Names of data fields ',fieldlist write(1,*)'Rank of fields ',rnkd write(1,*)'Number type of fields ',ntyped endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdiminfo c write(1,27) write(*,*)'Testing he5_swdiminfo ' write(*,*)'=====================' write(1,*)'Testing he5_swdiminfo ' write(1,*)'=====================' dimsize= he5_swdiminfo(swid,'DataTrack') if (dimsize .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'dimsize= he5_swdiminfo(swid, "DataTrack")' write(*,*)'Size of dimension DataTrack ',dimsize write(1,*)'dimsize= he5_swdiminfo(swid, "DataTrack")' write(1,*)'Size of dimension DataTrack ',dimsize write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swrdfld c write(1,27) write(*,*)'Testing he5_swrdfld ' write(*,*)'===================' write(1,*)'Testing he5_swrdfld ' write(1,*)'===================' rd_start(1)=0 rd_start(2)=0 rd_stride(1)=1 rd_stride(2)=1 rd_edge(1)=40 rd_edge(2)=100 status= he5_swrdfld(swid,'Conduction',rd_start, 1rd_stride,rd_edge,temp) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Value returned by he5_swrdfld ',status write(*,*)'status= he5_swrdfld(swid, "Conduction", 1rd_start,rd_stride, rd_edge, temp)' write(1,*)'status= he5_swrdfld(swid, "Conduction", 1rd_start,rd_stride, rd_edge, temp)' write(1,*)'Value returned by he5_swrdfld ',status do 190 index1=10,15 do 180 index2=10,15 write(*,*)'value of conduction ',temp(index1,index2) write(1,*)'value of conduction ',temp(index1,index2) 180 continue 190 continue endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swfldinfo c write(1,27) write(*,*)'Testing he5_swfldinfo ' write(*,*)'=====================' write(1,*)'Testing he5_swfldinfo ' write(1,*)'=====================' status=he5_swfldinfo(swid,'Latitude',rank,latdims,nt, 1dimens,maxdims) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swfldinfo(swid, "Latitude", 1rank, latdims, nt, dimens, maxdims)' write(*,*)'Value returned by he5_swfldinfo ',status write(*,*)'Rank of field latitude ',rank write(*,*)'dimension list of field latitude ',dimens write(*,*)'Size of latitude dimensions ',latdims write(*,*)'number type of field latitude ',nt write(1,*)'status= he5_swfldinfo(swid, "Latitude", 1rank, latdims, nt, dimens, maxdims)' write(1,*)'Value returned by he5_swfldinfo ',status write(1,*)'Rank of field latitude ',rank write(1,*)'dimension list of field latitude ',dimens write(1,*)'Size of latitude dimensions ',latdims write(1,*)'number type of field latitude ',nt endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swmapinfo c write(1,27) write(*,*)'Testing he5_swmapinfo ' write(*,*)'=====================' write(1,*)'Testing he5_swmapinfo ' write(1,*)'=====================' status=he5_swmapinfo(swid,'GeoTrack','DataTrack',offset,inc) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swmapinfo(swid,"GeoTrack","DataTrack", 1offset,inc)' write(*,*)'Value returned by he5_swmapinfo ',status write(*,*)'Offset ',offset,' Increment ',inc write(1,*)'status=he5_swmapinfo(swid,"GeoTrack","DataTrack", 1offset,inc)' write(1,*)'Value returned by he5_swmapinfo ',status write(1,*)'Offset ',offset,' Increment ',inc endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swimapinfo c write(1,27) write(*,*)'Testing he5_swimapinfo ' write(*,*)'======================' write(1,*)'Testing he5_swimapinfo ' write(1,*)'======================' status4=he5_swimapinfo(swid2,'GeoXtrack','DataXtrack',idxmap) if (status4 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status4= he5_swimapinfo(swid2,"GeoXtrack", 1"DataXtrack", idxmap)' write(*,*)'Value returned by he5_swimapinfo ',status4 do 980 index1=1,30 write(*,*)' Value of index array ',idxmap(index1) write(1,*)' Value of index array ',idxmap(index1) 980 continue write(1,*)'status4= he5_swimapinfo(swid2, "GeoXtrack", 1"DataXtrack",idxmap)' write(1,*)'Value returned by he5_swimapinfo ',status4 write(1,*)'Indexed map values ',idxmap endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqattrs c write(1,27) write(*,*)'Testing he5_swinqattrs Global attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_swinqattrs Global attributes ' write(1,*)'==================================== ' nattr = he5_swinqattrs(swid,attrlist,strbufsz2) if (nattr .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Number of global attributes in swath ',nattr write(*,*)'Attribute list of swath ',attrlist write(1,*)'Number of global attributes in swath ',nattr write(1,*)'Attribute list of swath ',attrlist write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swattrinfo c write(1,27) write(*,*)'Testing he5_swattrinfo Global attribute' write(*,*)'=======================================' write(1,*)'Testing he5_swattrinfo Global attribute' write(1,*)'=======================================' status= he5_swattrinfo(swid, attrlist, n, size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swattrinfo(swid,attrlist,n,size)' write(*,*)'Value returned by he5_swattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'status=he5_swattrinfo(swid,attrlist,n,size)' write(1,*)'Value returned by he5_swattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swrdattr c write(1,27) write(*,*)'Testing he5_swrdattr, Global attribute ' write(*,*)'======================================' write(1,*)'Testing he5_swrdattr, Global attribute ' write(1,*)'======================================' status= he5_swrdattr(swid, attrlist, rdattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swrdattr(swid,attrlist,rdattr)' write(*,*)'Value returned by he5_swrdattr ',status write(*,*)'attribute ',rdattr write(1,*)'status=he5_swrdattr(swid,attrlist,rdattr)' write(1,*)'Value returned by he5_swrdattr ',status write(1,*)'attribute ',rdattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqgattrs c write(1,27) write(*,*)'Testing he5_swinqgattrs Group attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_swinqgattrs Group attributes ' write(1,*)'==================================== ' nattr = he5_swinqgattrs(swid,attrlist,strbufsz2) if (nattr .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Number of group attributes in swath ',nattr write(*,*)'Attribute list of swath ',attrlist write(1,*)'Number of group attributes in swath ',nattr write(1,*)'Attribute list of swath ',attrlist write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swgattrinfo c write(1,27) write(*,*)'Testing he5_swgattrinfo Group attribute' write(*,*)'=======================================' write(1,*)'Testing he5_swgattrinfo Group attribute' write(1,*)'=======================================' status= he5_swgattrinfo(swid, attrlist, n, size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swgattrinfo(swid,attrlist,n,size)' write(*,*)'Value returned by he5_swgattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'status=he5_swgattrinfo(swid,attrlist,n,size)' write(1,*)'Value returned by he5_swgattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swrdgattr c write(1,27) write(*,*)'Testing he5_swrdgattr, Group attribute ' write(*,*)'======================================' write(1,*)'Testing he5_swrdgattr, Group attribute ' write(1,*)'======================================' status= he5_swrdgattr(swid,'group',rdgnlattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swrdgattr(swid,attrlist,rdgnlattr)' write(*,*)'Value returned by he5_swrdgattr ',status write(*,*)'attribute ',rdgnlattr write(1,*)'status=he5_swrdgattr(swid,attrlist,rdgnlattr)' write(1,*)'Value returned by he5_swrdgattr ',status write(1,*)'attribute ',rdgnlattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqlattrs c write(1,27) write(*,*)'Testing he5_swinqlattrs Local attributes ' write(*,*)'==================================== ' write(1,*)'Testing he5_swinqlattrs Local attributes ' write(1,*)'==================================== ' nattr=he5_swinqlattrs(swid2,'Sensor1',attrlist,strbufsz2) if (nattr .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swinqlattrs(... "Sensor1" ...)' write(*,*)'Number of local attributes in field',nattr write(*,*)'Attribute list of field ',attrlist write(1,*)'swinqlattrs(... "Sensor1" ...)' write(1,*)'Number of local attributes in field',nattr write(1,*)'Attribute list of field ',attrlist write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swlattrinfo c write(1,27) write(*,*)'Testing he5_swlattrinfo Local attribute' write(*,*)'=======================================' write(1,*)'Testing he5_swlattrinfo Local attribute' write(1,*)'=======================================' status=he5_swlattrinfo(swid2,'Sensor1','local',n,size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swlattrinfo(... "Sensor1" ...)' write(*,*)'Value returned by he5_swlattrinfo ',status write(*,*)'Number type of attributes ',n,' Size ',size write(1,*)'swlattrinfo(... "Sensor1" ...)' write(1,*)'Value returned by he5_swlattrinfo ',status write(1,*)'Number type of attributes ',n,' Size ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swidtype c write(1,27) write(*,*)'Testing he5_swidtype, Inquire Datatype ' write(*,*)'=======================================' write(1,*)'Testing he5_swidtype, Inquire Datatype ' write(1,*)'=======================================' status= he5_swidtype(swid2,'Sensor1','local', 1HE5_HDFE_LOCATTRGROUP,dtype,classid, order, size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swidtype(swid2,"Sensor1","local", 1HE5_HDFE_LOCATTRGROUP,dtype, classid, order, size)' write(*,*)'Value returned by he5_swidtype ',status write(*,*)'Datatype of local attribute ',dtype write(*,*)'Class id and order ',classid, order write(*,*)'Size of attribute ',size write(1,*)'status= he5_swidtype(swid2,"Sensor1","local", 1HE5_HDFE_LOCATTRGROUP,dtype, classid, order, size)' write(1,*)'Value returned by he5_swidtype ',status write(1,*)'Datatype of local attribute ',dtype write(1,*)'Class id and order ',classid, order write(1,*)'Size of attribute ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swrdlattr c write(1,27) write(*,*)'Testing he5_swrdlattr, Local attribute ' write(*,*)'======================================' write(1,*)'Testing he5_swrdlattr, Local attribute ' write(1,*)'======================================' status=he5_swrdlattr(swid2,'Sensor1','local',rdgnlattr) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swrdlattr(swid2,"Sensor1","local", 1rdgnlattr)' write(*,*)'Value returned by he5_swrdlattr ',status write(*,*)'attribute ',rdgnlattr write(1,*)'status=he5_swrdlattr(swid2,"Sensor1","local", 1rdgnlattr)' write(1,*)'Value returned by he5_swrdlattr ',status write(1,*)'attribute ',rdgnlattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swgetfill c write(1,27) write(*,*)'Testing he5_swgetfill ' write(*,*)'=====================' write(1,*)'Testing he5_swgetfill ' write(1,*)'=====================' status= he5_swgetfill(swid,'Conduction', rdfilval) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swgetfill(swid,"Conduction",rdfilval)' write(*,*)'Value returned by he5_swgetfill ',status write(*,*)'Value of fill ',rdfilval write(1,*)'status=he5_swgetfill(swid,"Conduction",rdfilval)' write(1,*)'Value returned by he5_swgetfill ',status write(1,*)'Value of fill ',rdfilval endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdefboxreg c write(1,27) write(*,*)'Testing he5_swdefboxreg ' write(*,*)'=======================' write(1,*)'Testing he5_swdefboxreg ' write(1,*)'=======================' regionid= he5_swdefboxreg(swid, cornerlon, cornerlat, 1HE5_HDFE_ENDPOINT) if (regionid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'regionid= he5_swdefboxreg(swid,cornerlon, 1cornerlat, HE5_HDFE_ENDPOINT)' write(*,*)'Value returned by he5_swdefboxreg ',regionid write(1,*)'regionid= he5_swdefboxreg(swid, cornerlon, 1cornerlat, HE5_HDFE_ENDPOINT)' write(1,*)'Value returned by he5_swdefboxreg ',regionid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swregidx c write(1,27) write(*,*)'Testing he5_swregidx ' write(*,*)'====================' write(1,*)'Testing he5_swregidx ' write(1,*)'====================' idxrange(1)=0 idxrange(2)=0 regionid3=he5_swregidx(swid,cornerlon,cornerlat, 1HE5_HDFE_ENDPOINT,geodim,idxrange) if (regionid3 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'regionid3=he5_swregidx(swid,cornerlon, 1cornerlat,HE5_HDFE_ENDPOINT,geodim,idxrange)' write(*,*)'Region ID returned by he5_swregdex ',regionid3 write(*,*)'Geodim of region ',geodim write(*,*)'indicies of region ',idxrange(1),idxrange(2) write(1,*)'regionid3=he5_swregidx(swid, cornerlon, 1cornerlat, HE5_HDFE_ENDPOINT, geodim, idxrange)' write(1,*)'Region ID returned by he5_swregdex ',regionid3 write(1,*)'Geodim of region ',geodim write(1,*)'indicies of region ',idxrange(1),idxrange(2) endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdupreg c write(1,27) write(*,*)'Testing he5_swdupreg ' write(*,*)'=====================' write(1,*)'Testing he5_swdupreg ' write(1,*)'=====================' regionid2= he5_swdupreg(regionid) if (regionid2 .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Duplicate region id information ' write(*,*)'Region ID returned by he5_swdupreg ',regionid2 write(1,*)'Duplicate region id information ' write(1,*)'Region ID returned by he5_swdupreg ',regionid2 write(*,*)' ' write(1,*)' ' endif c Test Case -- he5_swreginfo c write(1,27) write(*,*)'Testing he5_swreginfo ' write(*,*)'=====================' write(1,*)'Testing he5_swreginfo ' write(1,*)'=====================' status=he5_swreginfo(swid,regionid,'Temperature',nt,rank, 1dims,size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swreginfo(swid,regionid,"Temperature", 1nt, rank, dims, size)' write(*,*)'Value returned by he5_swreginfo ',status write(*,*)'Number type of region ',nt,' Rank of region ',rank write(*,*)'Dimensions of region ',dims(1),' ',dims(2) write(*,*)'Value of size ',size write(1,*)'status=he5_swreginfo(swid,regionid,"Temperature", 1nt, rank, dims, size)' write(1,*)'Value returned by he5_swreginfo ',status write(1,*)'Number type of region ',nt,' Rank of region ',rank write(1,*)'Value of size ',size write(1,*)'Dimensions of region ',dims(1),' ',dims(2) endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swextreg c write(1,27) write(*,*)'Testing he5_swextreg ' write(*,*)'=====================' write(1,*)'Testing he5_swextreg ' write(1,*)'=====================' status=he5_swextreg(swid,regionid,'Temperature', 1HE5_HDFE_INTERNAL, tempbuf) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status = he5_swextreg(swid, regionid, 1"Temperature", HE5_HDFE_INTERNAL, tempbuf)' write(*,*)'Value returned by he5_swextreg ', status write(1,*)'status = he5_swextreg(swid, regionid, 1"Temperature", HE5_HDFE_INTERNAL,tempbuf)' write(1,*)'Value returned by he5_swextreg ', status do 210 index1=100,115 write(*,*)'region value at position ',tempbuf(index1) write(1,*)'region value at position ',tempbuf(index1) 210 continue endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swdeftmeper c write(1,27) write(*,*)'Testing he5_swdeftmeper ' write(*,*)'=====================' write(1,*)'Testing he5_swdeftmeper ' write(1,*)'=====================' regionid = he5_swdeftmeper(swid, starttime, endtime, 1HE5_HDFE_ENDPOINT) if (regionid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'regionid= he5_swdeftmeper(swid, starttime, 1endtime, HE5_HDFE_ENDPOINT)' write(*,*)'Value returned by he5_swdeftmeper ',regionid write(1,*)'regionid= he5_swdeftmeper(swid, starttime, 1endtime, HE5_HDFE_ENDPOINT)' write(1,*)'Value returned by he5_swdeftmeper ',regionid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swperinfo c write(1,27) write(*,*)'Testing he5_swperinfo ' write(*,*)'=====================' write(1,*)'Testing he5_swperinfo ' write(1,*)'=====================' status = he5_swperinfo(swid,regionid,'Temperature',nt,rank, 1dims,size) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status = he5_swperinfo(swid, regionid, 1"Temperature",nt, rank, dims, size)' write(*,*)'Value returned by he5_swperinfo ',status write(*,*)'Rank of field ',rank,' Number type of region ',nt write(*,*)'Dimensions of region ',dims(1),' ',dims(2) write(*,*)'Value of size ',size write(1,*)'status = he5_swperinfo(swid, regionid, 1"Temperature",nt, rank, dims, size)' write(1,*)'Value returned by he5_swperinfo ',status write(1,*)'Rank of field ',rank,' Number type of region ',nt write(1,*)'Dimensions of region ',dims(1),' ',dims(2) write(1,*)'Value of size ',size endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swextper c write(1,27) write(*,*)'Testing he5_swextper ' write(*,*)'====================' write(1,*)'Testing he5_swextper ' write(1,*)'====================' status= he5_swextper(swid,regionid,'Temperature', 1HE5_HDFE_INTERNAL,tempbuf) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swextper(swid, regionid, 1"Temperature", HE5_HDFE_INTERNAL, tempbuf)' write(*,*)'Value returned by he5_swextper swath ',status write(1,*)'status= he5_swextper(swid, regionid, 1"Temperature", HE5_HDFE_INTERNAL, tempbuf) ' write(1,*)'Value returned by he5_swextper swath ',status do 220 index1=1000,1015 write(*,*)'region value at position ',tempbuf(index1) write(1,*)'region value at position ',tempbuf(index1) 220 continue endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swupimap c write(1,27) write(*,*)'Testing he5_swupimap ' write(*,*)'=====================' write(1,*)'Testing he5_swupimap ' write(1,*)'=====================' idxsz=he5_swupimap(swid2,regionid,idxmap,upidxmap,ndxmap) if (idxsz .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Size of index array in region ',idxsz write(1,*)'Size of index array in region ',idxsz write(*,*)'Indicies of updated index ',ndxmap(1),ndxmap(2) write(1,*)'Indicies of updated index ',ndxmap(1),ndxmap(2) do 380 index1=1,idxsz write(*,*)' Value of index array ',upidxmap(index1) write(1,*)' Value of index array ',upidxmap(index1) 380 continue endif c Test Case -- he5_swcompinfo c write(1,27) write(*,*)'Testing he5_swcompinfo ' write(*,*)'=======================' write(1,*)'Testing he5_swcompinfo ' write(1,*)'=======================' status=he5_swcompinfo(swid,'CompChunk',compcode,rdcompparm) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status=he5_swcompinfo(swid,"CompChunk",compcode, 1rdcompparm)' write(*,*)'Status returned by he5_swcompinfo ',status write(*,*)'Compression code ',compcode write(*,*)'Compression parameter ',rdcompparm(1) write(1,*)'status=he5_swcompinfo(swid,"CompChunk",compcode, 1rdcompparm)' write(1,*)'Status returned by he5_swcompinfo ',status write(1,*)'Compression code ',compcode write(1,*)'Compression parameter ',rdcompparm(1) endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swdetach(swid2) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swdetach(swid2)' write(*,*)'Value returned by he5_swdetach ',status write(1,*)'status= he5_swdetach(swid2)' write(1,*)'Value returned by he5_swdetach ',status endif write(*,*)' ' write(1,*)' ' status= he5_swclose(swfid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swclose(swfid)' write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' swfid=he5_swopen('swath.he5',HE5F_ACC_RDWR) if (swfid .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'swfid=he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(*,*)'Value returned by he5_swopen ',swfid write(1,*)'swfid=he5_swopen("swath.he5",HE5F_ACC_RDWR)' write(1,*)'Value returned by he5_swopen ',swfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_swinqswath c write(1,27) write(*,*)'Testing he5_swinqswath ' write(*,*)'======================' write(1,*)'Testing he5_swinqswath ' write(1,*)'======================' nswath=he5_swinqswath('swath.he5',swathlist,strbufsz2) if (nswath .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'Retrieve information on swaths in 1file swath.he5' write(*,*)'Number of swaths in file ', nswath write(*,*)'List of swaths ',swathlist write(1,*)'Retrieve information on swaths in 1file swath.he5' write(1,*)'Number of swaths in file ', nswath write(1,*)'List of swaths ',swathlist endif write(*,*)' ' write(1,*)' ' status=he5_swclose(swfid) if (status .lt. 0) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)'status= he5_swclose(swfid)' write(*,*)'Value returned by he5_swclose ',status write(1,*)'status= he5_swclose(swfid)' write(1,*)'Value returned by he5_swclose ',status endif write(*,*)' ' write(1,*)' ' close(unit=1) 27 format(' ') stop end hdf-eos5-5.1.14+dfsg.1/testdrivers/swath/hdfeos5_64.inc0000644000175000017500000000101512024715435023471 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5_64.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 19, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines on 64 ! * bit platforms ! * ========================================================== ! * Contents: ! * ! * ! * =========================================================== integer*8 HE5S_UNLIMITED_F_64 parameter(HE5S_UNLIMITED_F_64 = -1) hdf-eos5-5.1.14+dfsg.1/testdrivers/threads/0000755000175000017500000000000012024715435021437 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/testdrivers/threads/Makefile.am0000644000175000017500000000123512024715435023474 0ustar amckinstryamckinstry# testdrivers/threads Makefile.am # Boilerplate definitions include $(top_srcdir)/config/include.am # Link against HDF-EOS5, libGCTP, and the pthread library. ## This directory shouldn't be built unless configure detects that the ## pthread library is present. INCLUDES=-I$(top_srcdir)/include LDADD=$(LIBHDFEOS5) $(LIBGCTP) pthread # Programs to build when user types 'make check'. # Each of these is build from a single *.c file. check_PROGRAMS = he5_gd_threads-1 he5_gd_threads-2 he5_pt_threads-1 \ he5_pt_threads-2 he5_sw_threads-1 he5_sw_threads-2 # Run all programs above as tests when the user types 'make check' TESTS = $(check_PROGRAMS) hdf-eos5-5.1.14+dfsg.1/testdrivers/threads/he5_sw_threads-1.c0000755000175000017500000001263612024715435024660 0ustar amckinstryamckinstry/* ********************************************************* * FILE: he5_sw_threads-1.c * * PURPOSE: To test thread-safe version of * * HDF-EOS5 Swath library * * Author: A. Muslimov, Emergent IT Inc. * * Date: Sep, 2001 * * Updated: Nov, 2001 * ********************************************************* */ #include #define NUM_THREADS 30 typedef struct ThreadInfo_tag { int threadNum; hid_t fid; hid_t swid; char swathName[81]; } ThreadInfo_t; void *HE5_SwathTest(void *arg); int main() { herr_t ret = SUCCEED; hid_t fid = FAIL; int loopCount; int status = FAIL; ThreadInfo_t threadInfo[NUM_THREADS]; pthread_t threadArray[NUM_THREADS]; pthread_attr_t threadAttr; /* Open HDF-EOS Swath file */ /* ----------------------- */ fid = HE5_SWopen("swath.h5",H5F_ACC_TRUNC); if (fid == FAIL) { printf( "*ERROR: unable to open \"swath.h5\" file. \n"); return (FAIL); } /* Execute the loop to the NUM_THREADS times */ /* to assign one function to each thread afterwards */ /* ------------------------------------------------ */ for (loopCount = 0; loopCount < NUM_THREADS; loopCount++) { threadInfo[loopCount].threadNum = loopCount+1; threadInfo[loopCount].fid = fid; threadInfo[loopCount].swid = FAIL; sprintf(threadInfo[loopCount].swathName,"SWATH_%d",loopCount); sleep(1); pthread_attr_init(&threadAttr); pthread_attr_setscope(&threadAttr,PTHREAD_SCOPE_SYSTEM); status = pthread_create(&threadArray[loopCount],&threadAttr,HE5_SwathTest,&threadInfo[loopCount]); if (status != 0) { printf("\nERROR: problem starting thread %d, error val: %d\n",loopCount,status); ret = FAIL; } pthread_join(threadArray[loopCount],NULL); } ret = HE5_SWclose(fid); if (ret == FAIL) { printf( "*ERROR: unable to close file. \n"); return (FAIL); } printf( "... successfully created %d swaths within \"swath.h5\" file. \n",loopCount); return(ret); } void *HE5_SwathTest(void *arg) { int j; herr_t status = FAIL; hssize_t start[3]; hsize_t count[3]; double *plane; double *outbuf; ThreadInfo_t *tag = (ThreadInfo_t *) arg; tag->swid = HE5_SWcreate(tag->fid,tag->swathName); if (tag->swid == FAIL) { printf( "*ERROR: unable to create %s swath. \n",tag->swathName); return (void *)NULL; } status = HE5_SWdefdim(tag->swid, "GeoTrack", 20); if (status == FAIL) { printf( "*ERROR: unable to define dimension for %s swath. \n",tag->swathName); return (void *)NULL; } status = HE5_SWdefdim(tag->swid, "GeoXtrack", 10); if (status == FAIL) { printf( "*ERROR: unable to define dimension for %s swath. \n",tag->swathName); return (void *)NULL; } status = HE5_SWdefdim(tag->swid, "Res2tr", 40); if (status == FAIL) { printf( "*ERROR: unable to define dimension for %s swath. \n",tag->swathName); return (void *)NULL; } status = HE5_SWdefdim(tag->swid, "Res2xtr", 20); if (status == FAIL) { printf( "*ERROR: unable to define dimension for %s swath. \n",tag->swathName); return (void *)NULL; } status = HE5_SWdefdim(tag->swid, "Bands", 15); if (status == FAIL) { printf( "*ERROR: unable to define dimension for %s swath. \n",tag->swathName); return (void *)NULL; } status = HE5_SWdefdatafield(tag->swid, "Spectra", "Bands,Res2tr,Res2xtr", NULL, H5T_NATIVE_DOUBLE, 0); if (status == FAIL) { printf( "*ERROR: unable to define data field for %s swath. \n",tag->swathName); return (void *)NULL; } plane = (double *)calloc(12000,sizeof(double)); if (plane == NULL) { printf( "*ERROR: unable to allocate memory. \n"); return (void *)NULL; } for (j = 0; j < 12000; j++) plane[j] = (double)j; start[0] = 0; count[0] = 15; start[1] = 0; count[1] = 40; start[2] = 0; count[2] = 20; status = HE5_SWwritefield(tag->swid, "Spectra", start, NULL, count, plane); if (status == FAIL) { printf( "*ERROR: unable to write data for \"Spectra\" field in %s swath. \n",tag->swathName); return (void *)NULL; } free(plane); status = HE5_SWdetach(tag->swid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s swath. \n",tag->swathName); return (void *)NULL; } tag->swid = HE5_SWattach(tag->fid,tag->swathName); if (tag->swid == FAIL) { printf( "*ERROR: unable to attach to %s swath. \n",tag->swathName); return (void *)NULL; } start[0] = 0; count[0] = 15; start[1] = 0; count[1] = 40; start[2] = 0; count[2] = 20; outbuf = (double *)calloc(12000, sizeof(double)); if (outbuf == NULL) { printf( "*ERROR: unable to allocate memory. \n"); return (void *)NULL; } status = HE5_SWreadfield(tag->swid, "Spectra", start, NULL, count, outbuf); if (status == FAIL) { printf( "*ERROR: unable to read data from \"Spectra\" field in %s swath. \n",tag->swathName); return (void *)NULL; } free(outbuf); status = HE5_SWdetach(tag->swid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s swath. \n",tag->swathName); return (void *)NULL; } return 0; } hdf-eos5-5.1.14+dfsg.1/testdrivers/threads/he5_pt_threads-2.c0000755000175000017500000001307512024715435024651 0ustar amckinstryamckinstry/* ********************************************************* * FILE: he5_pt_threads-2.c * * PURPOSE: To test thread-safe version of * * HDF-EOS5 Point library * * Author: A. Muslimov, Emergent IT Inc. * * Date: Sep, 2001 * * Updated: Nov, 2001 * ********************************************************* */ #include #define NUM_THREADS 30 typedef struct ThreadInfo_tag { int threadNum; hid_t fid; hid_t ptid; char pointName[81]; } ThreadInfo_t; void *HE5_PointTest(void *arg); int main() { herr_t ret = SUCCEED; hid_t fid = FAIL; int loopCount; int status = FAIL; ThreadInfo_t threadInfo[NUM_THREADS]; pthread_t threadArray[NUM_THREADS]; pthread_attr_t threadAttr; /* Open HDF-EOS Point file */ /* ----------------------- */ fid = HE5_PTopen("point.h5",H5F_ACC_RDWR); if (fid == FAIL) { printf( "*ERROR: unable to open \"point.h5\" file. \n"); return (FAIL); } /* Execute the loop to the NUM_THREADS times */ /* to assign one function to each thread afterwards */ /* ------------------------------------------------ */ for (loopCount = 0; loopCount < NUM_THREADS; loopCount++) { threadInfo[loopCount].threadNum = loopCount+1; threadInfo[loopCount].fid = fid; threadInfo[loopCount].ptid = FAIL; sprintf(threadInfo[loopCount].pointName,"POINT_%d",loopCount); sleep(1); pthread_attr_init(&threadAttr); pthread_attr_setscope(&threadAttr,PTHREAD_SCOPE_SYSTEM); status = pthread_create(&threadArray[loopCount],&threadAttr,HE5_PointTest,&threadInfo[loopCount]); if (status != 0) { printf("\nERROR: problem starting thread %d, error val: %d\n",loopCount,status); ret = FAIL; } pthread_join(threadArray[loopCount],NULL); } ret = HE5_PTclose(fid); if (ret == FAIL) { printf( "*ERROR: unable to close file. \n"); return (FAIL); } return(ret); } void *HE5_PointTest(void *arg) { herr_t status = FAIL; FILE *fp; int i; int n; int nflds = FAIL; hsize_t count[1]; size_t datasize = 0; double time; float conc[4]; char spc[8]; typedef struct { double Time; float Conc[4]; char Spc[8]; } CmpData_1; typedef struct { double time; float con[4]; char spec[8]; } Sensor; Sensor s[50]; HE5_CmpDTSinfo level; HE5_CmpDTSinfo inInfo; CmpData_1 datbuf_1[20]; ThreadInfo_t *tag = (ThreadInfo_t *) arg; printf(" \n"); printf("Starting thread %d\n",tag->threadNum); printf(" \n"); tag->ptid = HE5_PTattach(tag->fid,tag->pointName); if (tag->ptid == FAIL) { printf( "*ERROR: unable to attach to %s point. \n",tag->pointName); return (void *)NULL; } fp = fopen("simple.txt", "r"); n = 0; while(fscanf(fp, "%lf %f %f %f %f %s", &time, &conc[0], &conc[1], &conc[2], &conc[3], spc) != -1) { datbuf_1[n].Time = time; datbuf_1[n].Conc[0] = conc[0]; datbuf_1[n].Conc[1] = conc[1]; datbuf_1[n].Conc[2] = conc[2]; datbuf_1[n].Conc[3] = conc[3]; memmove(datbuf_1[n].Spc, spc, sizeof(char)*strlen(spc)); datbuf_1[n].Spc[strlen(spc)] = 0; n++; } fclose(fp); datasize = (size_t)sizeof(CmpData_1); count[0] = n; status = HE5_PTwritelevel(tag->ptid, 0, count, &datasize, datbuf_1); if (status == FAIL) { printf( "*ERROR: unable to write data to level. \n"); return (void *)NULL; } status = HE5_PTdetach(tag->ptid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s point. \n",tag->pointName); return (void *)NULL; } tag->ptid = HE5_PTattach(tag->fid,tag->pointName); if (tag->ptid == FAIL) { printf( "*ERROR: unable to attach to %s point. \n",tag->pointName); return (void *)NULL; } status = HE5_PTlevelinfo(tag->ptid, 0, &level); if (status == FAIL) { printf( "*ERROR: unable to get level info. \n"); return (void *)NULL; } nflds = level.nfields; datasize = (size_t)sizeof(Sensor); inInfo.nfields = nflds; inInfo.datasize = (size_t)sizeof(Sensor); inInfo.rank[0] = 1; inInfo.rank[1] = 1; inInfo.rank[2] = 1; inInfo.offset[0] = HOFFSET(Sensor, time); inInfo.offset[1] = HOFFSET(Sensor, con); inInfo.offset[2] = HOFFSET(Sensor, spec); inInfo.dtype[0] = H5T_NATIVE_DOUBLE; inInfo.dtype[1] = H5T_NATIVE_FLOAT; inInfo.dtype[2] = H5T_NATIVE_CHAR; inInfo.dclass[0] = H5T_NO_CLASS; inInfo.dclass[1] = H5T_NO_CLASS; inInfo.dclass[2] = H5T_NO_CLASS; inInfo.dims[0][0] = 1; inInfo.dims[1][0] = 4; inInfo.dims[2][0] = 8; inInfo.array[0] = 0; inInfo.array[1] = 1; inInfo.array[2] = 1; for( i = 0; i < nflds; i++) { inInfo.fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(inInfo.fieldname[i], level.fieldname[i]); } status = HE5_PTreadlevel(tag->ptid, 0, &inInfo, &datasize, s); if (status == FAIL) { printf( "*ERROR: unable to read data from level. \n"); return (void *)NULL; } for (i = 0; i < nflds; i++) if (inInfo.fieldname[i] != NULL) free(inInfo.fieldname[i]); status = HE5_PTdetach(tag->ptid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s point. \n",tag->pointName); return (void *)NULL; } return 0; } hdf-eos5-5.1.14+dfsg.1/testdrivers/threads/he5_gd_threads-2.c0000755000175000017500000001012412024715435024610 0ustar amckinstryamckinstry/* ********************************************************* * FILE: he5_gd_threads-2.c * * PURPOSE: To test thread-safe version of * * HDF-EOS5 Grid library * * Author: A. Muslimov, Emergent IT Inc. * * Date: Sep, 2001 * * Updated: Nov, 2001 * ********************************************************* */ #include #define NUM_THREADS 30 typedef struct ThreadInfo_tag { int threadNum; hid_t fid; hid_t gdid; char gridName[81]; } ThreadInfo_t; void *HE5_GridTest(void *arg); int main() { herr_t ret = SUCCEED; hid_t fid = FAIL; int loopCount; int status = FAIL; ThreadInfo_t threadInfo[NUM_THREADS]; pthread_t threadArray[NUM_THREADS]; pthread_attr_t threadAttr; /* Open HDF-EOS Grid file */ /* ---------------------- */ fid = HE5_GDopen("grid.h5",H5F_ACC_RDWR); if (fid == FAIL) { printf( "*ERROR: unable to open \"grid.h5\" file. \n"); return (FAIL); } /* Execute the loop to the NUM_THREADS times */ /* to assign one function to each thread afterwards */ /* ------------------------------------------------ */ for (loopCount = 0; loopCount < NUM_THREADS; loopCount++) { threadInfo[loopCount].threadNum = loopCount+1; threadInfo[loopCount].fid = fid; threadInfo[loopCount].gdid = FAIL; sprintf(threadInfo[loopCount].gridName,"UTMGrid_%d",loopCount); sleep(1); pthread_attr_init(&threadAttr); pthread_attr_setscope(&threadAttr,PTHREAD_SCOPE_SYSTEM); status = pthread_create(&threadArray[loopCount],&threadAttr,HE5_GridTest,&threadInfo[loopCount]); if (status != 0) { printf("\nERROR: problem starting thread %d, error val: %d\n",loopCount,status); ret = FAIL; } pthread_join(threadArray[loopCount],NULL); } ret = HE5_GDclose(fid); if (ret == FAIL) { printf( "*ERROR: unable to close file. \n"); return (FAIL); } return(ret); } void *HE5_GridTest(void *arg) { herr_t status = FAIL; int i; float *veg; float *veg_out; hssize_t start[3]; hsize_t edge[3]; ThreadInfo_t *tag = (ThreadInfo_t *) arg; veg = (float *)calloc(24000,sizeof(float)); if (veg == NULL) { printf( "*ERROR: unable to allocate memory. \n"); return (void *)NULL; } for (i = 0; i < 24000; i++) veg[i] = (float)i; printf(" \n"); printf("Starting thread %d\n",tag->threadNum); printf(" \n"); tag->gdid = HE5_GDattach(tag->fid,tag->gridName); if (tag->gdid == FAIL) { printf( "*ERROR: unable to attach to %s grid. \n",tag->gridName); return (void *)NULL; } start[0] = 0; start[1] = 0; edge[0] = 200; edge[1] = 120; status = HE5_GDwritefield(tag->gdid, "Vegetation", start, NULL, edge, veg); if (status == FAIL) { printf( "*ERROR calling HE5_GDwritefield(\"Vegetation\"). \n"); return (void *)NULL; } free(veg); status = HE5_GDdetach(tag->gdid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s grid. \n",tag->gridName); return (void *)NULL; } tag->gdid = HE5_GDattach(tag->fid,tag->gridName); if (tag->gdid == FAIL) { printf( "*ERROR: unable to attach to %s grid. \n",tag->gridName); return (void *)NULL; } veg_out = (float *)calloc(24000,sizeof(float)); if (veg_out == NULL) { printf( "*ERROR: unable to allocate memory. \n"); return (void *)NULL; } start[0] = 0; start[1] = 0; edge[0] = 200; edge[1] = 100; status = HE5_GDreadfield(tag->gdid,"Vegetation",start,NULL,edge,veg_out); if (status == FAIL) { printf( "*ERROR calling HE5_GDreadfield(\"Vegetation\"). \n"); return (void *)NULL; } free(veg_out); status = HE5_GDdetach(tag->gdid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s grid. \n",tag->gridName); return (void *)NULL; } return 0; } hdf-eos5-5.1.14+dfsg.1/testdrivers/threads/he5_sw_threads-2.c0000755000175000017500000001036112024715435024652 0ustar amckinstryamckinstry/* ********************************************************* * FILE: he5_sw_threads-2.c * * PURPOSE: To test thread-safe version of * * HDF-EOS5 Swath library * * Author: A. Muslimov, Emergent IT Inc. * * Date: Sep, 2001 * * Updated: Nov, 2001 * ********************************************************* */ #include #define NUM_THREADS 30 typedef struct ThreadInfo_tag { int threadNum; hid_t fid; hid_t swid; char swathName[81]; } ThreadInfo_t; void *HE5_SwathTest(void *arg); int main() { herr_t ret = SUCCEED; hid_t fid = FAIL; int loopCount; int status = FAIL; ThreadInfo_t threadInfo[NUM_THREADS]; pthread_t threadArray[NUM_THREADS]; pthread_attr_t threadAttr; /* Open HDF-EOS Swath file */ /* ----------------------- */ fid = HE5_SWopen("swath.h5",H5F_ACC_RDWR); if (fid == FAIL) { printf( "*ERROR: unable to open \"swath.h5\" file. \n"); return (FAIL); } /* Execute the loop to the NUM_THREADS times */ /* to assign one function to each thread afterwards */ /* ------------------------------------------------ */ for (loopCount = 0; loopCount < NUM_THREADS; loopCount++) { threadInfo[loopCount].threadNum = loopCount+1; threadInfo[loopCount].fid = fid; threadInfo[loopCount].swid = FAIL; sprintf(threadInfo[loopCount].swathName,"SWATH_%d",loopCount); sleep(1); pthread_attr_init(&threadAttr); pthread_attr_setscope(&threadAttr,PTHREAD_SCOPE_SYSTEM); status = pthread_create(&threadArray[loopCount],&threadAttr,HE5_SwathTest,&threadInfo[loopCount]); if (status != 0) { printf("\nERROR: problem starting thread %d, error val: %d\n",loopCount,status); ret = FAIL; } pthread_join(threadArray[loopCount],NULL); } ret = HE5_SWclose(fid); if (ret == FAIL) { printf( "*ERROR: unable to close file. \n"); return (FAIL); } return(ret); } void *HE5_SwathTest(void *arg) { int j; herr_t status = FAIL; hssize_t start[3]; hsize_t count[3]; double *plane; double *outbuf; ThreadInfo_t *tag = (ThreadInfo_t *) arg; printf("Starting thread %d\n",tag->threadNum); tag->swid = HE5_SWattach(tag->fid,tag->swathName); if (tag->swid == FAIL) { printf( "*ERROR: unable to attach to %s swath. \n",tag->swathName); return (void *)NULL; } plane = (double *)calloc(12000, sizeof(double)); if (plane == NULL) { printf( "*ERROR: unable to allocate memory. \n"); return (void *)NULL; } for (j = 0; j < 12000; j++) plane[j] = (double)j; start[0] = 0; count[0] = 15; start[1] = 0; count[1] = 40; start[2] = 0; count[2] = 20; status = HE5_SWwritefield(tag->swid, "Spectra", start, NULL, count, plane); if (status == FAIL) { printf( "*ERROR: unable to write data for \"Spectra\" field in %s swath. \n",tag->swathName); return (void *)NULL; } free(plane); status = HE5_SWdetach(tag->swid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s swath. \n",tag->swathName); return (void *)NULL; } tag->swid = HE5_SWattach(tag->fid,tag->swathName); if (tag->swid == FAIL) { printf( "*ERROR: unable to attach to %s swath. \n",tag->swathName); return (void *)NULL; } outbuf = (double *)calloc(12000, sizeof(double)); if (outbuf == NULL) { printf( "*ERROR: unable to allocate memory. \n"); return (void *)NULL; } start[0] = 0; count[0] = 15; start[1] = 0; count[1] = 40; start[2] = 0; count[2] = 20; status = HE5_SWreadfield(tag->swid, "Spectra", start, NULL, count, outbuf); if (status == FAIL) { printf( "*ERROR: unable to read data from \"Spectra\" field in %s swath. \n",tag->swathName); return (void *)NULL; } free(outbuf); status = HE5_SWdetach(tag->swid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s swath. \n",tag->swathName); return (void *)NULL; } return 0; } hdf-eos5-5.1.14+dfsg.1/testdrivers/threads/he5_gd_threads-1.c0000755000175000017500000001264112024715435024615 0ustar amckinstryamckinstry/* ********************************************************* * FILE: he5_gd_threads-1.c * * PURPOSE: To test thread-safe version of * * HDF-EOS5 Grid library * * Author: A. Muslimov, Emergent IT Inc. * * Date: Sep, 2001 * * Updated: Nov, 2001 * ********************************************************* */ #include #define NUM_THREADS 30 typedef struct ThreadInfo_tag { int threadNum; hid_t fid; hid_t gdid; char gridName[81]; int zonecode; int projcode; int spherecode; long xdim; long ydim; double uplft[2]; double lowrgt[2]; double projparm[16]; } ThreadInfo_t; void *HE5_GridTest(void *arg); int main() { herr_t ret = SUCCEED; hid_t fid = FAIL; int loopCount; int status = FAIL; ThreadInfo_t threadInfo[NUM_THREADS]; pthread_t threadArray[NUM_THREADS]; pthread_attr_t threadAttr; /* Open HDF-EOS Grid file */ /* ---------------------- */ fid = HE5_GDopen("grid.h5",H5F_ACC_TRUNC); if (fid == FAIL) { printf( "*ERROR: unable to open \"grid.h5\" file. \n"); return (FAIL); } /* Execute the loop to the NUM_THREADS times */ /* to assign one function to each thread afterwards */ /* ------------------------------------------------ */ for (loopCount = 0; loopCount < NUM_THREADS; loopCount++) { threadInfo[loopCount].threadNum = loopCount+1; threadInfo[loopCount].fid = fid; threadInfo[loopCount].gdid = FAIL; sprintf(threadInfo[loopCount].gridName,"UTMGrid_%d",loopCount); threadInfo[loopCount].zonecode = 40; threadInfo[loopCount].spherecode = 0; threadInfo[loopCount].uplft[0] = 210584.50041; threadInfo[loopCount].uplft[1] = 3322395.95445; threadInfo[loopCount].lowrgt[0] = 813931.10959; threadInfo[loopCount].lowrgt[1] = 2214162.53278; threadInfo[loopCount].xdim = 120; threadInfo[loopCount].ydim = 200; sleep(1); pthread_attr_init(&threadAttr); pthread_attr_setscope(&threadAttr,PTHREAD_SCOPE_SYSTEM); status = pthread_create(&threadArray[loopCount],&threadAttr,HE5_GridTest,&threadInfo[loopCount]); if (status != 0) { printf("\nERROR: problem starting thread %d, error val: %d\n",loopCount,status); ret = FAIL; } pthread_join(threadArray[loopCount],NULL); } ret = HE5_GDclose(fid); if (ret == FAIL) { printf( "*ERROR: unable to close file. \n"); return (FAIL); } printf( "... successfully created %d grids within \"grid.h5\" file. \n",loopCount); return(ret); } void *HE5_GridTest(void *arg) { herr_t status = FAIL; int i; float *veg; float *veg_out; hssize_t start[3]; hsize_t edge[3]; ThreadInfo_t *tag = (ThreadInfo_t *) arg; veg = (float *)calloc(24000,sizeof(float)); if (veg == NULL) { printf( "*ERROR: unable to allocate memory. \n"); return (void *)NULL; } for (i = 0; i < 24000; i++) veg[i] = (float)i; tag->gdid = HE5_GDcreate(tag->fid,tag->gridName,tag->xdim,tag->ydim,tag->uplft,tag->lowrgt); if (tag->gdid == FAIL) { printf( "*ERROR: unable to create %s grid. \n",tag->gridName); return (void *)NULL; } status = HE5_GDdefproj(tag->gdid, HE5_GCTP_UTM, tag->zonecode, tag->spherecode, tag->projparm); if (status == FAIL) { printf( "*ERROR calling HE5_GDdefproj(). \n"); return (void *)NULL; } status = HE5_GDdefdim(tag->gdid, "Time", 10); if (status == FAIL) { printf( "*ERROR calling HE5_GDdefdim(). \n"); return (void *)NULL; } status = HE5_GDdefdim(tag->gdid, "Unlim", H5S_UNLIMITED); if (status == FAIL) { printf( "*ERROR calling HE5_GDdefdim(). \n"); return (void *)NULL; } status = HE5_GDdeffield(tag->gdid, "Vegetation", "YDim,XDim", NULL, H5T_NATIVE_FLOAT, 0); if (status == FAIL) { printf( "*ERROR calling HE5_GDdeffield(\"Vegetation\"). \n"); return (void *)NULL; } start[0] = 0; start[1] = 0; edge[0] = 200; edge[1] = 120; status = HE5_GDwritefield(tag->gdid, "Vegetation", start, NULL, edge, veg); if (status == FAIL) { printf( "*ERROR calling HE5_GDwritefield(\"Vegetation\"). \n"); return (void *)NULL; } free(veg); status = HE5_GDdetach(tag->gdid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s grid. \n",tag->gridName); return (void *)NULL; } tag->gdid = HE5_GDattach(tag->fid,tag->gridName); if (tag->gdid == FAIL) { printf( "*ERROR: unable to attach to %s grid. \n",tag->gridName); return (void *)NULL; } veg_out = (float *)calloc(24000,sizeof(float)); if (veg_out == NULL) { printf( "*ERROR: unable to allocate memory. \n"); return (void *)NULL; } start[0] = 0; start[1] = 0; edge[0] = 200; edge[1] = 100; status = HE5_GDreadfield(tag->gdid,"Vegetation",start,NULL,edge,veg_out); if (status == FAIL) { printf( "*ERROR calling HE5_GDreadfield(\"Vegetation\"). \n"); return (void *)NULL; } free(veg_out); status = HE5_GDdetach(tag->gdid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s grid. \n",tag->gridName); return (void *)NULL; } return 0; } hdf-eos5-5.1.14+dfsg.1/testdrivers/threads/Makefile.sgi320000644000175000017500000000237512024715435024034 0ustar amckinstryamckinstry COMPILER = cc LINKER = cc CC = $(COMPILER) LD = $(LINKER) # for SUN #CFLAGS = -g -Xa -DsunFortran -DSUN -D_HDFEOS5_THREADSAFE #LFLAGS = -g -Xa -DsunFortran -DSUN -D_HDFEOS5_THREADSAFE # for sgi32 CFLAGS = -g -n32 -xansi -D_POSIX_SOURCE -D_HDFEOS5_THREADSAFE LFLAGS = -g -n32 -xansi -D_POSIX_SOURCE -D_HDFEOS5_THREADSAFE # for sgi64 #CFLAGS = -g -64 -xansi -D_POSIX_SOURCE -D_HDFEOS5_THREADSAFE #LFLAGS = -g -64 -xansi -D_POSIX_SOURCE -D_HDFEOS5_THREADSAFE INCLUDE = -I. -I$(HDFEOS5_INC) -I$(HDF5INC) -I$(JPEGINC) -I$(ZLIBINC) -I$(SZIPINC) LIBRARYPATHS = -L$(HDF5LIB) -L$(HDFEOS5_LIB) -L$(JPEGLIB) -L$(ZLIBLIB) -L$(SZIPLIB) # for SUN #LIBRARIES = -lhe5_hdfeos $(HDF5LIB)/libhdf5.a -lGctp -ljpeg -lz -lsz -lpthread -lm -lnsl # for other platforms LIBRARIES = -lhe5_hdfeos -lhdf5 -lGctp -ljpeg -lz -lsz -lpthread -lm OBJECTS = he5_gd_threads-1.o he5_gd_threads-2.o he5_pt_threads-1.o he5_pt_threads-2.o he5_sw_threads-1.o he5_sw_threads-2.o PROGRAMS = he5_gd_threads-1 he5_gd_threads-2 he5_pt_threads-1 he5_pt_threads-2 he5_sw_threads-1 he5_sw_threads-2 all: ${PROGRAMS} cleano ${PROGRAMS}: ${OBJECTS} ${CC} ${LFLAGS} -o $@ ${OBJECTS} ${LIBRARYPATHS} ${LIBRARIES} .c.o: ${CC} ${CFLAGS} -c ${INCLUDE} $< clean: rm *.o ${PROGRAMS} cleano: rm *.o hdf-eos5-5.1.14+dfsg.1/testdrivers/threads/Makefile.in0000644000175000017500000004710612024715435023514 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # testdrivers/threads Makefile.am SOURCES = he5_gd_threads-1.c he5_gd_threads-2.c he5_pt_threads-1.c he5_pt_threads-2.c he5_sw_threads-1.c he5_sw_threads-2.c srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/include.am check_PROGRAMS = he5_gd_threads-1$(EXEEXT) he5_gd_threads-2$(EXEEXT) \ he5_pt_threads-1$(EXEEXT) he5_pt_threads-2$(EXEEXT) \ he5_sw_threads-1$(EXEEXT) he5_sw_threads-2$(EXEEXT) subdir = testdrivers/threads ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/HE5_config.h CONFIG_CLEAN_FILES = he5_gd_threads_1_SOURCES = he5_gd_threads-1.c he5_gd_threads_1_OBJECTS = he5_gd_threads-1.$(OBJEXT) he5_gd_threads_1_LDADD = $(LDADD) am__DEPENDENCIES_1 = $(top_builddir)/src/libhe5_hdfeos.la am__DEPENDENCIES_2 = $(top_builddir)/gctp/src/libGctp.la he5_gd_threads_1_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) pthread he5_gd_threads_2_SOURCES = he5_gd_threads-2.c he5_gd_threads_2_OBJECTS = he5_gd_threads-2.$(OBJEXT) he5_gd_threads_2_LDADD = $(LDADD) he5_gd_threads_2_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) pthread he5_pt_threads_1_SOURCES = he5_pt_threads-1.c he5_pt_threads_1_OBJECTS = he5_pt_threads-1.$(OBJEXT) he5_pt_threads_1_LDADD = $(LDADD) he5_pt_threads_1_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) pthread he5_pt_threads_2_SOURCES = he5_pt_threads-2.c he5_pt_threads_2_OBJECTS = he5_pt_threads-2.$(OBJEXT) he5_pt_threads_2_LDADD = $(LDADD) he5_pt_threads_2_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) pthread he5_sw_threads_1_SOURCES = he5_sw_threads-1.c he5_sw_threads_1_OBJECTS = he5_sw_threads-1.$(OBJEXT) he5_sw_threads_1_LDADD = $(LDADD) he5_sw_threads_1_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) pthread he5_sw_threads_2_SOURCES = he5_sw_threads-2.c he5_sw_threads_2_OBJECTS = he5_sw_threads-2.$(OBJEXT) he5_sw_threads_2_LDADD = $(LDADD) he5_sw_threads_2_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) pthread DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = he5_gd_threads-1.c he5_gd_threads-2.c he5_pt_threads-1.c \ he5_pt_threads-2.c he5_sw_threads-1.c he5_sw_threads-2.c DIST_SOURCES = he5_gd_threads-1.c he5_gd_threads-2.c \ he5_pt_threads-1.c he5_pt_threads-2.c he5_sw_threads-1.c \ he5_sw_threads-2.c ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F2CFORTRAN_32PTR_CONDITIONAL_FALSE = @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@ F2CFORTRAN_32PTR_CONDITIONAL_TRUE = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@ F2CFORTRAN_90_CONDITIONAL_FALSE = @F2CFORTRAN_90_CONDITIONAL_FALSE@ F2CFORTRAN_90_CONDITIONAL_TRUE = @F2CFORTRAN_90_CONDITIONAL_TRUE@ F2CFORTRAN_CONDITIONAL_FALSE = @F2CFORTRAN_CONDITIONAL_FALSE@ F2CFORTRAN_CONDITIONAL_TRUE = @F2CFORTRAN_CONDITIONAL_TRUE@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SZIP_ENCODER_CONDITIONAL_FALSE = @SZIP_ENCODER_CONDITIONAL_FALSE@ SZIP_ENCODER_CONDITIONAL_TRUE = @SZIP_ENCODER_CONDITIONAL_TRUE@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la # Boilerplate definitions # Link against HDF-EOS5, libGCTP, and the pthread library. INCLUDES = -I$(top_srcdir)/include LDADD = $(LIBHDFEOS5) $(LIBGCTP) pthread # Run all programs above as tests when the user types 'make check' TESTS = $(check_PROGRAMS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testdrivers/threads/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign testdrivers/threads/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done he5_gd_threads-1$(EXEEXT): $(he5_gd_threads_1_OBJECTS) $(he5_gd_threads_1_DEPENDENCIES) @rm -f he5_gd_threads-1$(EXEEXT) $(LINK) $(he5_gd_threads_1_LDFLAGS) $(he5_gd_threads_1_OBJECTS) $(he5_gd_threads_1_LDADD) $(LIBS) he5_gd_threads-2$(EXEEXT): $(he5_gd_threads_2_OBJECTS) $(he5_gd_threads_2_DEPENDENCIES) @rm -f he5_gd_threads-2$(EXEEXT) $(LINK) $(he5_gd_threads_2_LDFLAGS) $(he5_gd_threads_2_OBJECTS) $(he5_gd_threads_2_LDADD) $(LIBS) he5_pt_threads-1$(EXEEXT): $(he5_pt_threads_1_OBJECTS) $(he5_pt_threads_1_DEPENDENCIES) @rm -f he5_pt_threads-1$(EXEEXT) $(LINK) $(he5_pt_threads_1_LDFLAGS) $(he5_pt_threads_1_OBJECTS) $(he5_pt_threads_1_LDADD) $(LIBS) he5_pt_threads-2$(EXEEXT): $(he5_pt_threads_2_OBJECTS) $(he5_pt_threads_2_DEPENDENCIES) @rm -f he5_pt_threads-2$(EXEEXT) $(LINK) $(he5_pt_threads_2_LDFLAGS) $(he5_pt_threads_2_OBJECTS) $(he5_pt_threads_2_LDADD) $(LIBS) he5_sw_threads-1$(EXEEXT): $(he5_sw_threads_1_OBJECTS) $(he5_sw_threads_1_DEPENDENCIES) @rm -f he5_sw_threads-1$(EXEEXT) $(LINK) $(he5_sw_threads_1_LDFLAGS) $(he5_sw_threads_1_OBJECTS) $(he5_sw_threads_1_LDADD) $(LIBS) he5_sw_threads-2$(EXEEXT): $(he5_sw_threads_2_OBJECTS) $(he5_sw_threads_2_DEPENDENCIES) @rm -f he5_sw_threads-2$(EXEEXT) $(LINK) $(he5_sw_threads_2_LDFLAGS) $(he5_sw_threads_2_OBJECTS) $(he5_sw_threads_2_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_threads-1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_gd_threads-2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_threads-1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_pt_threads-2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_threads-1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/he5_sw_threads-2.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list='$(TESTS)'; \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *" $$tst "*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ echo "XPASS: $$tst"; \ ;; \ *) \ echo "PASS: $$tst"; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *" $$tst "*) \ xfail=`expr $$xfail + 1`; \ echo "XFAIL: $$tst"; \ ;; \ *) \ failed=`expr $$failed + 1`; \ echo "FAIL: $$tst"; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ echo "SKIP: $$tst"; \ fi; \ done; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="All $$all tests passed"; \ else \ banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all tests failed"; \ else \ banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ skipped="($$skip tests were not run)"; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ echo "$$dashes"; \ echo "$$banner"; \ test -z "$$skipped" || echo "$$skipped"; \ test -z "$$report" || echo "$$report"; \ echo "$$dashes"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/testdrivers/threads/he5_pt_threads-1.c0000755000175000017500000001240512024715435024644 0ustar amckinstryamckinstry/* ********************************************************* * FILE: he5_pt_threads-1.c * * PURPOSE: To test thread-safe version of * * HDF-EOS5 Point library * * Author: A. Muslimov, Emergent IT Inc. * * Date: Sep, 2001 * * Updated: Nov, 2001 * ********************************************************* */ #include #define NUM_THREADS 30 typedef struct ThreadInfo_tag { int threadNum; hid_t fid; hid_t ptid; char pointName[81]; } ThreadInfo_t; void *HE5_PointTest(void *arg); int main() { herr_t ret = SUCCEED; hid_t fid = FAIL; int loopCount; int status = FAIL; ThreadInfo_t threadInfo[NUM_THREADS]; pthread_t threadArray[NUM_THREADS]; pthread_attr_t threadAttr; /* Open HDF-EOS Point file */ /* ----------------------- */ fid = HE5_PTopen("point.h5",H5F_ACC_TRUNC); if (fid == FAIL) { printf( "*ERROR: unable to open \"point.h5\" file. \n"); return (FAIL); } /* Execute the loop to the NUM_THREADS times */ /* to assign one function to each thread afterwards */ /* ------------------------------------------------ */ for (loopCount = 0; loopCount < NUM_THREADS; loopCount++) { threadInfo[loopCount].threadNum = loopCount+1; threadInfo[loopCount].fid = fid; threadInfo[loopCount].ptid = FAIL; sprintf(threadInfo[loopCount].pointName,"POINT_%d",loopCount); sleep(1); pthread_attr_init(&threadAttr); pthread_attr_setscope(&threadAttr,PTHREAD_SCOPE_SYSTEM); status = pthread_create(&threadArray[loopCount],&threadAttr,HE5_PointTest,&threadInfo[loopCount]); if (status != 0) { printf("\nERROR: problem starting thread %d, error val: %d\n",loopCount,status); ret = FAIL; } pthread_join(threadArray[loopCount],NULL); } ret = HE5_PTclose(fid); if (ret == FAIL) { printf( "*ERROR: unable to close file. \n"); return (FAIL); } printf( "... successfully created %d points within \"point.h5\" file. \n",loopCount); return(ret); } void *HE5_PointTest(void *arg) { herr_t status = FAIL; FILE *fp; int i; int n; hsize_t count[1]; size_t datasize = 0; double time; float conc[4]; char spc[8]; HE5_CmpDTSinfo *dtsinfo; typedef struct { double time; float concentr[4]; char spec[8]; } InputData1; typedef struct { double Time; float Conc[4]; char Spc[8]; } CmpData_1; CmpData_1 datbuf_1[20]; ThreadInfo_t *tag = (ThreadInfo_t *) arg; tag->ptid = HE5_PTcreate(tag->fid,tag->pointName); if (tag->ptid == FAIL) { printf( "*ERROR: unable to create %s point. \n",tag->pointName); return (void *)NULL; } dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); dtsinfo->nfields = 3; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->offset[0] = HOFFSET(InputData1, time); dtsinfo->offset[1] = HOFFSET(InputData1, concentr); dtsinfo->offset[2] = HOFFSET(InputData1, spec); dtsinfo->dtype[0] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[1] = H5T_NATIVE_FLOAT; dtsinfo->dtype[2] = H5T_NATIVE_CHAR; dtsinfo->array[0] = 0; dtsinfo->array[1] = 1; dtsinfo->array[2] = 1; for (i = 0; i < 3; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Time"); strcpy(dtsinfo->fieldname[1],"Concentration"); strcpy(dtsinfo->fieldname[2],"Species"); dtsinfo->dims[0][0] = 1; dtsinfo->dims[1][0] = 4; dtsinfo->dims[2][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData1); status = HE5_PTdeflevel(tag->ptid, "Sensor", dtsinfo); for (i = 0; i < 3; i++) { free(dtsinfo->fieldname[i]); dtsinfo->fieldname[i] = NULL; } free(dtsinfo); fp = fopen("simple.txt", "r"); n = 0; while(fscanf(fp, "%lf %f %f %f %f %s", &time, &conc[0], &conc[1], &conc[2], &conc[3], spc) != -1) { datbuf_1[n].Time = time; datbuf_1[n].Conc[0] = conc[0]; datbuf_1[n].Conc[1] = conc[1]; datbuf_1[n].Conc[2] = conc[2]; datbuf_1[n].Conc[3] = conc[3]; memmove(datbuf_1[n].Spc, spc, sizeof(char)*strlen(spc)); datbuf_1[n].Spc[strlen(spc)] = 0; n++; } fclose(fp); datasize = (size_t)sizeof(CmpData_1); count[0] = n; status = HE5_PTwritelevel(tag->ptid, 0, count, &datasize, datbuf_1); if (status == FAIL) { printf( "*ERROR: unable to write data to level. \n"); return (void *)NULL; } status = HE5_PTdetach(tag->ptid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s point. \n",tag->pointName); return (void *)NULL; } tag->ptid = HE5_PTattach(tag->fid,tag->pointName); if (tag->ptid == FAIL) { printf( "*ERROR: unable to attach to %s point. \n",tag->pointName); return (void *)NULL; } status = HE5_PTdetach(tag->ptid); if (status == FAIL) { printf( "*ERROR: unable to detach from %s point. \n",tag->pointName); return (void *)NULL; } return 0; } hdf-eos5-5.1.14+dfsg.1/testdrivers/point/0000755000175000017500000000000012024715435021136 5ustar amckinstryamckinstryhdf-eos5-5.1.14+dfsg.1/testdrivers/point/Makefile.am0000644000175000017500000000204512024715435023173 0ustar amckinstryamckinstry# testdrivers/point Makefile.am # Boilerplate definitions include $(top_srcdir)/config/include.am # Link against HDF-EOS5 and libGCTP INCLUDES=-I$(top_srcdir)/include LDADD=$(LIBHDFEOS5) $(LIBGCTP) # Build TestPoint from TestPoint.c check_PROGRAMS = TestPoint if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL check_PROGRAMS += testpoint32 testpoint32_SOURCES = testpoint32.f else check_PROGRAMS += testpoint64 testpoint64_SOURCES = testpoint64.f endif endif # Run TestPoint as a test when the user types 'make check' TEST_SEQUENCES=test_c VERBOSE_TEST_SEQUENCES=test_c_verbose if F2CFORTRAN_CONDITIONAL if F2CFORTRAN_32PTR_CONDITIONAL TEST_SEQUENCES+=test_32f VERBOSE_TEST_SEQUENCES+=test_32f else TEST_SEQUENCES+=test_64f VERBOSE_TEST_SEQUENCES+=test_64f endif endif test_c: $(check_PROGRAMS) ./TestPoint test_c_verbose: $(check_PROGRAMS) ./TestPoint -v h test_32f: $(check_PROGRAMS) ./testpoint32 test_64f: $(check_PROGRAMS) ./testpoint64 check-local: $(TEST_SEQUENCES) verbose_check: $(VERBOSE_TEST_SEQUENCES) .PHONY: $(TEST_SEQUENCES) hdf-eos5-5.1.14+dfsg.1/testdrivers/point/hdfeos5.inc0000644000175000017500000003511312024715435023171 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 11, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines ! * ========================================================== ! * Contents: ! * HDFEOS5 data type tags ! * HDFEOS5 logical constants ! * HDFEOS5 file access tags ! * HDFEOS5/GCTP library codes ! * ! * =========================================================== ! HDFEOS5 DATA TYPE TAGS ! ======================= integer HE5T_NATIVE_INT integer HE5T_NATIVE_UINT integer HE5T_NATIVE_SHORT integer HE5T_NATIVE_USHORT integer HE5T_NATIVE_SCHAR integer HE5T_NATIVE_UCHAR integer HE5T_NATIVE_LONG integer HE5T_NATIVE_ULONG integer HE5T_NATIVE_LLONG integer HE5T_NATIVE_ULLONG integer HE5T_NATIVE_FLOAT integer HE5T_NATIVE_REAL integer HE5T_NATIVE_DOUBLE integer HE5T_NATIVE_LDOUBLE integer HE5T_NATIVE_INT8 integer HE5T_NATIVE_UINT8 integer HE5T_NATIVE_INT16 integer HE5T_NATIVE_UINT16 integer HE5T_NATIVE_INT32 integer HE5T_NATIVE_UINT32 integer HE5T_NATIVE_INT64 integer HE5T_NATIVE_UINT64 integer HE5T_NATIVE_B8 integer HE5T_NATIVE_B16 integer HE5T_NATIVE_B32 integer HE5T_NATIVE_B64 integer HE5T_NATIVE_HSIZE integer HE5T_NATIVE_HERR integer HE5T_NATIVE_HBOOL integer HE5T_STD_I8BE integer HE5T_STD_I8LE integer HE5T_STD_I16BE integer HE5T_STD_I16LE integer HE5T_STD_I32BE integer HE5T_STD_I32LE integer HE5T_STD_I64BE integer HE5T_STD_I64LE integer HE5T_STD_U8BE integer HE5T_STD_U8LE integer HE5T_STD_U16BE integer HE5T_STD_U16LE integer HE5T_STD_U32BE integer HE5T_STD_U32LE integer HE5T_STD_U64BE integer HE5T_STD_U64LE integer HE5T_STD_B8BE integer HE5T_STD_B8LE integer HE5T_STD_B16BE integer HE5T_STD_B16LE integer HE5T_STD_B32BE integer HE5T_STD_B32LE integer HE5T_STD_B64BE integer HE5T_STD_B64LE integer HE5T_IEEE_F32BE integer HE5T_IEEE_F32LE integer HE5T_IEEE_F64BE integer HE5T_IEEE_F64LE integer HE5T_NATIVE_CHAR integer HE5T_CHARSTRING parameter(HE5T_NATIVE_INT = 0) parameter(HE5T_NATIVE_UINT = 1) parameter(HE5T_NATIVE_SHORT = 2) parameter(HE5T_NATIVE_USHORT = 3) parameter(HE5T_NATIVE_SCHAR = 4) parameter(HE5T_NATIVE_UCHAR = 5) parameter(HE5T_NATIVE_LONG = 6) parameter(HE5T_NATIVE_ULONG = 7) parameter(HE5T_NATIVE_LLONG = 8) parameter(HE5T_NATIVE_ULLONG = 9) parameter(HE5T_NATIVE_FLOAT =10) parameter(HE5T_NATIVE_REAL =10) parameter(HE5T_NATIVE_DOUBLE =11) parameter(HE5T_NATIVE_LDOUBLE =12) parameter(HE5T_NATIVE_INT8 =13) parameter(HE5T_NATIVE_UINT8 =14) parameter(HE5T_NATIVE_INT16 =15) parameter(HE5T_NATIVE_UINT16 =16) parameter(HE5T_NATIVE_INT32 =17) parameter(HE5T_NATIVE_UINT32 =18) parameter(HE5T_NATIVE_INT64 =19) parameter(HE5T_NATIVE_UINT64 =20) parameter(HE5T_NATIVE_B8 =21) parameter(HE5T_NATIVE_B16 =22) parameter(HE5T_NATIVE_B32 =23) parameter(HE5T_NATIVE_B64 =24) parameter(HE5T_NATIVE_HSIZE =25) parameter(HE5T_NATIVE_HERR =26) parameter(HE5T_NATIVE_HBOOL =27) parameter(HE5T_STD_I8BE =28) parameter(HE5T_STD_I8LE =29) parameter(HE5T_STD_I16BE =30) parameter(HE5T_STD_I16LE =31) parameter(HE5T_STD_I32BE =32) parameter(HE5T_STD_I32LE =33) parameter(HE5T_STD_I64BE =34) parameter(HE5T_STD_I64LE =35) parameter(HE5T_STD_U8BE =36) parameter(HE5T_STD_U8LE =37) parameter(HE5T_STD_U16BE =38) parameter(HE5T_STD_U16LE =39) parameter(HE5T_STD_U32BE =40) parameter(HE5T_STD_U32LE =41) parameter(HE5T_STD_U64BE =42) parameter(HE5T_STD_U64LE =43) parameter(HE5T_STD_B8BE =44) parameter(HE5T_STD_B8LE =45) parameter(HE5T_STD_B16BE =46) parameter(HE5T_STD_B16LE =47) parameter(HE5T_STD_B32BE =48) parameter(HE5T_STD_B32LE =49) parameter(HE5T_STD_B64BE =50) parameter(HE5T_STD_B64LE =51) parameter(HE5T_IEEE_F32BE =52) parameter(HE5T_IEEE_F32LE =53) parameter(HE5T_IEEE_F64BE =54) parameter(HE5T_IEEE_F64LE =55) parameter(HE5T_NATIVE_CHAR =56) parameter(HE5T_CHARSTRING =57) integer HE5S_UNLIMITED_F parameter(HE5S_UNLIMITED_F = -1) ! HDFEOS5 FILE ACCESS TAGS ! ======================== integer HE5F_ACC_RDWR integer HE5F_ACC_RDONLY integer HE5F_ACC_TRUNC parameter(HE5F_ACC_RDWR = 100) parameter(HE5F_ACC_RDONLY = 101) parameter(HE5F_ACC_TRUNC = 102) ! TOOLKIT FILE ACCESS TAGS ! ======================== integer HDF4_ACC_RDONLY integer HDF4_ACC_RDWR integer HDF4_ACC_CREATE integer HDF5_ACC_RDONLY integer HDF5_ACC_RDWR integer HDF5_ACC_CREATE parameter(HDF4_ACC_RDONLY = 1) parameter(HDF4_ACC_RDWR = 3) parameter(HDF4_ACC_CREATE = 4) parameter(HDF5_ACC_RDONLY = 11) parameter(HDF5_ACC_RDWR = 13) parameter(HDF5_ACC_CREATE = 14) ! HDFEOS5 MERGE CODES ! ==================== integer HE5_HDFE_NOMERGE integer HE5_HDFE_AUTOMERGE parameter(HE5_HDFE_NOMERGE =0) parameter(HE5_HDFE_AUTOMERGE =1) ! HDFEOS5 XXentries CODES ! ======================= integer HE5_HDFE_NENTDIM integer HE5_HDFE_NENTMAP integer HE5_HDFE_NENTIMAP integer HE5_HDFE_NENTGFLD integer HE5_HDFE_NENTDFLD parameter(HE5_HDFE_NENTDIM =0) parameter(HE5_HDFE_NENTMAP =1) parameter(HE5_HDFE_NENTIMAP =2) parameter(HE5_HDFE_NENTGFLD =3) parameter(HE5_HDFE_NENTDFLD =4) ! HDFEOS5 ANGLE CONVERSION CODES ! ============================== integer HE5_HDFE_RAD_DEG integer HE5_HDFE_DEG_RAD integer HE5_HDFE_DMS_DEG integer HE5_HDFE_DEG_DMS integer HE5_HDFE_RAD_DMS integer HE5_HDFE_DMS_RAD parameter(HE5_HDFE_RAD_DEG =0) parameter(HE5_HDFE_DEG_RAD =1) parameter(HE5_HDFE_DMS_DEG =2) parameter(HE5_HDFE_DEG_DMS =3) parameter(HE5_HDFE_RAD_DMS =4) parameter(HE5_HDFE_DMS_RAD =5) ! HDFEOS5 SWATH SUBSET CODES ! ========================== integer HE5_HDFE_MIDPOINT integer HE5_HDFE_ENDPOINT integer HE5_HDFE_ANYPOINT integer HE5_HDFE_INTERNAL integer HE5_HDFE_EXTERNAL integer HE5_HDFE_NOPREVSUB parameter(HE5_HDFE_MIDPOINT =0) parameter(HE5_HDFE_ENDPOINT =1) parameter(HE5_HDFE_ANYPOINT =2) parameter(HE5_HDFE_INTERNAL =0) parameter(HE5_HDFE_EXTERNAL =1) parameter(HE5_HDFE_NOPREVSUB =-1) ! HDFEOS5 GRID ORIGIN CODES ! ========================= integer HE5_HDFE_GD_UL integer HE5_HDFE_GD_UR integer HE5_HDFE_GD_LL integer HE5_HDFE_GD_LR parameter(HE5_HDFE_GD_UL =0) parameter(HE5_HDFE_GD_UR =1) parameter(HE5_HDFE_GD_LL =2) parameter(HE5_HDFE_GD_LR =3) ! HDFEOS5 PIXEL REGISTRATION CODES ! ================================ integer HE5_HDFE_CENTER integer HE5_HDFE_CORNER parameter(HE5_HDFE_CENTER =0) parameter(HE5_HDFE_CORNER =1) ! HDFEOS5 GCTP PROJECTION CODES ! ============================= integer HE5_GCTP_GEO integer HE5_GCTP_UTM integer HE5_GCTP_SPCS integer HE5_GCTP_ALBERS integer HE5_GCTP_LAMCC integer HE5_GCTP_MERCAT integer HE5_GCTP_PS integer HE5_GCTP_POLYC integer HE5_GCTP_EQUIDC integer HE5_GCTP_TM integer HE5_GCTP_STEREO integer HE5_GCTP_LAMAZ integer HE5_GCTP_AZMEQD integer HE5_GCTP_GNOMON integer HE5_GCTP_ORTHO integer HE5_GCTP_GVNSP integer HE5_GCTP_SNSOID integer HE5_GCTP_EQRECT integer HE5_GCTP_MILLER integer HE5_GCTP_VGRINT integer HE5_GCTP_HOM integer HE5_GCTP_ROBIN integer HE5_GCTP_SOM integer HE5_GCTP_ALASKA integer HE5_GCTP_GOOD integer HE5_GCTP_MOLL integer HE5_GCTP_IMOLL integer HE5_GCTP_HAMMER integer HE5_GCTP_WAGIV integer HE5_GCTP_WAGVII integer HE5_GCTP_OBLEQA integer HE5_GCTP_ISINUS parameter(HE5_GCTP_GEO =0) parameter(HE5_GCTP_UTM =1) parameter(HE5_GCTP_SPCS =2) parameter(HE5_GCTP_ALBERS =3) parameter(HE5_GCTP_LAMCC =4) parameter(HE5_GCTP_MERCAT =5) parameter(HE5_GCTP_PS =6) parameter(HE5_GCTP_POLYC =7) parameter(HE5_GCTP_EQUIDC =8) parameter(HE5_GCTP_TM =9) parameter(HE5_GCTP_STEREO =10) parameter(HE5_GCTP_LAMAZ =11) parameter(HE5_GCTP_AZMEQD =12) parameter(HE5_GCTP_GNOMON =13) parameter(HE5_GCTP_ORTHO =14) parameter(HE5_GCTP_GVNSP =15) parameter(HE5_GCTP_SNSOID =16) parameter(HE5_GCTP_EQRECT =17) parameter(HE5_GCTP_MILLER =18) parameter(HE5_GCTP_VGRINT =19) parameter(HE5_GCTP_HOM =20) parameter(HE5_GCTP_ROBIN =21) parameter(HE5_GCTP_SOM =22) parameter(HE5_GCTP_ALASKA =23) parameter(HE5_GCTP_GOOD =24) parameter(HE5_GCTP_MOLL =25) parameter(HE5_GCTP_IMOLL =26) parameter(HE5_GCTP_HAMMER =27) parameter(HE5_GCTP_WAGIV =28) parameter(HE5_GCTP_WAGVII =29) parameter(HE5_GCTP_OBLEQA =30) parameter(HE5_GCTP_ISINUS =99) ! HDFEOS5 TILIND/COMPRESSION CODES ! ================================ integer HE5_HDFE_NOTILE integer HE5_HDFE_TILE integer HE5_HDFE_COMP_NONE integer HE5_HDFE_COMP_RLE integer HE5_HDFE_COMP_NBIT integer HE5_HDFE_COMP_SKPHUFF integer HE5_HDFE_COMP_DEFLATE integer HE5_HDFE_COMP_SZIP_CHIP integer HE5_HDFE_COMP_SZIP_K13 integer HE5_HDFE_COMP_SZIP_EC integer HE5_HDFE_COMP_SZIP_NN integer HE5_HDFE_COMP_SZIP_K13orEC integer HE5_HDFE_COMP_SZIP_K13orNN integer HE5_HDFE_COMP_SHUF_DEFLATE integer HE5_HDFE_COMP_SHUF_SZIP_CHIP integer HE5_HDFE_COMP_SHUF_SZIP_K13 integer HE5_HDFE_COMP_SHUF_SZIP_EC integer HE5_HDFE_COMP_SHUF_SZIP_NN integer HE5_HDFE_COMP_SHUF_SZIP_K13orEC integer HE5_HDFE_COMP_SHUF_SZIP_K13orNN parameter(HE5_HDFE_NOTILE =0) parameter(HE5_HDFE_TILE =1) parameter(HE5_HDFE_COMP_NONE =0) parameter(HE5_HDFE_COMP_RLE =1) parameter(HE5_HDFE_COMP_NBIT =2) parameter(HE5_HDFE_COMP_SKPHUFF =3) parameter(HE5_HDFE_COMP_DEFLATE =4) parameter(HE5_HDFE_COMP_SZIP_CHIP =5) parameter(HE5_HDFE_COMP_SZIP_K13 =6) parameter(HE5_HDFE_COMP_SZIP_EC =7) parameter(HE5_HDFE_COMP_SZIP_NN =8) parameter(HE5_HDFE_COMP_SZIP_K13orEC =9) parameter(HE5_HDFE_COMP_SZIP_K13orNN =10) parameter(HE5_HDFE_COMP_SHUF_DEFLATE =11) parameter(HE5_HDFE_COMP_SHUF_SZIP_CHIP =12) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13 =13) parameter(HE5_HDFE_COMP_SHUF_SZIP_EC =14) parameter(HE5_HDFE_COMP_SHUF_SZIP_NN =15) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orEC =16) parameter(HE5_HDFE_COMP_SHUF_SZIP_K13orNN =17) ! HDFEOS5 GROUP CODES ! =================== integer HE5_HDFE_GEOGROUP integer HE5_HDFE_DATAGROUP integer HE5_HDFE_ATTRGROUP integer HE5_HDFE_GRPATTRGROUP integer HE5_HDFE_LOCATTRGROUP integer HE5_HDFE_PROFGROUP integer HE5_HDFE_PROFGRPATTRGROUP integer HE5_HDFE_GEOGRPATTRGROUP parameter(HE5_HDFE_GEOGROUP =0) parameter(HE5_HDFE_DATAGROUP =1) parameter(HE5_HDFE_ATTRGROUP =2) parameter(HE5_HDFE_GRPATTRGROUP =3) parameter(HE5_HDFE_LOCATTRGROUP =4) parameter(HE5_HDFE_PROFGROUP =5) parameter(HE5_HDFE_PROFGRPATTRGROUP =6) parameter(HE5_HDFE_GEOGRPATTRGROUP =7) hdf-eos5-5.1.14+dfsg.1/testdrivers/point/fixedBuoy1s.txt0000755000175000017500000000125012024715435024102 0ustar amckinstryamckinstry 83555918.7 0.7 24.21 A 84013712.3 0.7 20.35 A 84412971.8 3.6 20.41 A 84655020.8 3.2 21.79 A 84835587.2 3.6 20.38 A 84245234.1 1.7 24.52 I 84251741.0 1.4 20.98 I 84623981.3 4.0 23.91 I 85058206.4 1.3 22.98 I 83422000.0 1.1 21.63 P 83726878.2 2.7 23.83 P 83842994.7 4.3 22.63 P 84063571.3 2.8 20.84 P 84419483.0 1.8 22.01 P 84452408.0 3.4 23.20 P 84736992.5 4.6 23.61 P 84915081.1 5.1 20.10 P 84970587.0 1.1 24.63 P 85076367.6 2.7 22.62 P 85111729.5 1.0 22.01 P hdf-eos5-5.1.14+dfsg.1/testdrivers/point/fixedBuoy1.txt0000755000175000017500000000125012024715435023717 0ustar amckinstryamckinstry 83422000.0 1.1 21.63 P 83555918.7 0.7 24.21 A 83726878.2 2.7 23.83 P 83842994.7 4.3 22.63 P 84013712.3 0.7 20.35 A 84063571.3 2.8 20.84 P 84245234.1 1.7 24.52 I 84251741.0 1.4 20.98 I 84412971.8 3.6 20.41 A 84419483.0 1.8 22.01 P 84452408.0 3.4 23.20 P 84623981.3 4.0 23.91 I 84655020.8 3.2 21.79 A 84736992.5 4.6 23.61 P 84835587.2 3.6 20.38 A 84915081.1 5.1 20.10 P 84970587.0 1.1 24.63 P 85058206.4 1.3 22.98 I 85076367.6 2.7 22.62 P 85111729.5 1.0 22.01 P hdf-eos5-5.1.14+dfsg.1/testdrivers/point/floatBuoy1.txt0000755000175000017500000000273412024715435023735 0ustar amckinstryamckinstry 34532000.0 -56.795451 46.929101 3.5 22.74 A 34655930.8 -51.144523 39.393151 0.3 22.25 A 34761777.4 73.005232 4.068124 3.9 22.60 I 34924857.4 -51.289537 47.272357 0.6 24.23 A 35010197.1 -137.896588 -10.438813 3.1 23.24 P 35113965.3 70.943919 4.989471 3.7 21.05 I 35146430.0 -141.334164 -8.035026 0.9 23.16 P 35180802.9 -51.291848 47.940175 4.6 21.68 A 35286334.7 -141.921518 -9.133087 1.1 20.25 P 35359789.3 -139.960931 -11.797505 1.8 24.37 P 35510873.5 -56.995840 44.141150 3.7 23.12 A 35583198.0 73.083084 10.349487 3.0 24.63 I 35741969.4 -138.607937 -10.352329 4.3 24.05 P 35811504.6 -52.535794 38.967934 1.1 23.50 A 35890062.6 71.995167 6.438556 1.5 23.14 I 36015258.2 -51.100562 39.280490 1.9 20.31 A 36176650.2 -141.603094 -10.410025 2.9 21.33 P 36292709.9 -53.052534 44.477106 2.1 23.65 A 36307577.3 -53.937608 38.710016 5.0 20.06 A 36384294.9 -55.381183 41.246119 4.0 23.34 A 36576747.4 -141.588561 -9.158308 0.5 20.79 P 36725342.2 -51.199441 38.061798 2.4 20.01 A 36758333.4 -138.998487 -8.706307 0.3 22.07 P 36841499.9 72.256089 8.036737 3.9 24.41 I 37021357.5 -139.961167 -11.094212 0.6 23.02 P hdf-eos5-5.1.14+dfsg.1/testdrivers/point/TestPoint.c0000755000175000017500000032020012024715435023233 0ustar amckinstryamckinstry/* ********************************************************* * FILE: TestPoint.c * * PURPOSE: To test HDF-EOS v.5.1 Point interface * * Author: A. Muslimov, Emergent IT Inc. * * Date: June 2001 * ********************************************************* */ #include #include #define NAMEBUF_SIZE 100 /* Set up namebuf value in case the input file is in * a different directory and "srcdir" is set in the * environment. */ static void setup_namebuf(char *namebuf, char *filename) { char * srcdir; srcdir = getenv("srcdir"); if(srcdir != NULL && (strlen(srcdir) + strlen(filename) + 2) <= NAMEBUF_SIZE) { strcpy(namebuf, srcdir); strcat(namebuf, "/"); strcat(namebuf, filename); } else { strcpy(namebuf, filename); } } int main(int argc, char *argv[]) { FILE *fp; FILE *fp_in; herr_t status = FAIL; hid_t ptfid = FAIL; hid_t PTid1 = FAIL; hid_t PTid2 = FAIL; hid_t PTid3 = FAIL; hid_t datatype = FAIL; int CLLoop; int Verbosity = 4; int errcnt = 0; int i, j; int n; int date; int wgt; int IntAttr = 9999; int attr = 9999; int attr1[ 5 ] = { 1, 2, 3, 4, 5}; int attr2[ 5 ] = { 10, 20, 30, 40, 50}; int nflds = FAIL; int fieldgroup = FAIL; int return_val = FAIL; long nattr = FAIL; long strbufsize = FAIL; H5T_class_t classid = H5T_NO_CLASS; H5T_order_t order = H5T_ORDER_ERROR; typedef struct { double time; float concentr[4]; char spec[8]; } InputData1; typedef struct { char label[8]; double lon; double lat; int date; char id[8]; } InputData2; typedef struct { double time; float rain; float temp; char id[8]; } InputData3; typedef struct { char label[10]; int date; int weight; char id[8]; } InputData4; typedef struct { double time; double lon; double lat; float rain; float temp; char id[8]; } InputData5; typedef struct { double time; float con[4]; char spec[8]; } Sensor; hsize_t count[8]; hsize_t nrecs = 0; hsize_t nrec = 1; hssize_t recs[32]; size_t datasize = 0; size_t size = 0; float conc[4]; float rain; float temp; float flt = -7.5; double time; double lon; double lat; char spc[8]; char desc[16]; char id[ 2 ]; HE5_CmpDTSinfo level; HE5_CmpDTSinfo inInfo; HE5_CmpDTSinfo inInfo2; HE5_CmpDTSinfo *dtsinfo; InputData1 datbuf_1[20]; InputData2 datbuf_2[5]; InputData3 datbuf_3[25]; InputData4 datbuf_4[5]; InputData5 datbuf_5[30]; InputData1 buf_1; Sensor s[50]; double s1[50]; char namebuf[NAMEBUF_SIZE]; /* ******************************************************************************** * Get comand-line argument (Verbosity) * ******************************************************************************** */ for (CLLoop = 1; CLLoop < argc; CLLoop++) { if ((argc > CLLoop + 1) && ((HDstrcmp(argv[CLLoop], "-verbose") == 0) || (HDstrcmp(argv[CLLoop], "-v") == 0))) { if (argv[CLLoop + 1][0] == 'l') Verbosity = 4; else if (argv[CLLoop + 1][0] == 'm') Verbosity = 6; else if (argv[CLLoop + 1][0] == 'h') Verbosity = 10; else Verbosity = atoi(argv[CLLoop + 1]); } } setup_namebuf(namebuf, "TestPoint.txt"); MESSAGE(11,fp=fopen(namebuf,"w");); MESSAGE(4,printf("Testing Point C interface \n");); MESSAGE(4,printf("========================= \n\n");); MESSAGE(11,fprintf(fp,"Testing Point C interface \n");); MESSAGE(11,fprintf(fp,"========================= \n\n");); /* ********************************************************************************* * Testing PTopen * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_PTopen... \n");); MESSAGE(4,printf("\t===================== \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTopen... \n");); MESSAGE(11,fprintf(fp,"\t===================== \n");); ptfid = HE5_PTopen("SimplePoint.h5", H5F_ACC_TRUNC); if (ptfid == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully opened the point file ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully opened the point file ****\n");); } /* ********************************************************************************* * Testing HE5_PTcreate * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_PTcreate... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTcreate... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tCreating point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tCreating point \"Simple Point\" \n");); PTid1 = HE5_PTcreate(ptfid, "Simple Point"); if (PTid1 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully created the point \"Simple Point\" ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully created the point \"Simple Point\" ****\n");); } /* ********************************************************************************* * Testing HE5_PTcreate * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_PTcreate... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTcreate... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tCreating point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tCreating point \"FixedBuoy Point\" \n");); PTid2 = HE5_PTcreate(ptfid, "FixedBuoy Point"); if (PTid2 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully created the point \"FixedBuoy Point\" ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully created the point \"FixedBuoy Point\" ****\n");); } /* ********************************************************************************* * Testing HE5_PTcreate * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_PTcreate... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTcreate... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tCreating point \"FloatBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tCreating point \"FloatBuoy Point\" \n");); PTid3 = HE5_PTcreate(ptfid, "FloatBuoy Point"); if (PTid3 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully created the point \"FloatBuoy Point\" ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully created the point \"FloatBuoy Point\" ****\n");); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"Simple Point\" \n");); status = HE5_PTdetach(PTid1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"FixedBuoy Point\" \n");); status = HE5_PTdetach(PTid2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"FloatBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"FloatBuoy Point\" \n");); status = HE5_PTdetach(PTid3); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"Simple Point\" \n");); PTid1 = HE5_PTattach(ptfid, "Simple Point"); if (PTid1 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid1 = HE5_PTattach(ptfid, \"Simple Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid1);); MESSAGE(11,fprintf(fp,"\t\tPTid1 = HE5_PTattach(ptfid, \"Simple Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid1) ;); } dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data structure */ /* --------------------------- */ dtsinfo->nfields = 3; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->offset[0] = HOFFSET(InputData1, time); dtsinfo->offset[1] = HOFFSET(InputData1, concentr); dtsinfo->offset[2] = HOFFSET(InputData1, spec); dtsinfo->dtype[0] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[1] = H5T_NATIVE_FLOAT; dtsinfo->dtype[2] = H5T_NATIVE_CHAR; dtsinfo->array[0] = 0; dtsinfo->array[1] = 1; dtsinfo->array[2] = 1; for (i = 0; i < 3; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Time"); strcpy(dtsinfo->fieldname[1],"Concentration"); strcpy(dtsinfo->fieldname[2],"Species"); dtsinfo->dims[0][0] = 1; dtsinfo->dims[1][0] = 4; dtsinfo->dims[2][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData1); /* ********************************************************************************* * Testing HE5_PTdeflevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdeflevel... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdeflevel... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\t\tDefining level \"Sensor\" \n");); MESSAGE(11,fprintf(fp,"\t\tDefining level \"Sensor\" \n");); status = HE5_PTdeflevel(PTid1, "Sensor", dtsinfo); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); } for (i = 0; i < 3; i++) { free(dtsinfo->fieldname[i]); dtsinfo->fieldname[i] = NULL; } free(dtsinfo); /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"Simple Point\" \n");); status = HE5_PTdetach(PTid1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"FixedBuoy Point\" \n");); PTid2 = HE5_PTattach(ptfid, "FixedBuoy Point"); if (PTid2 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid2 = HE5_PTattach(ptfid, \"FixedBuoy Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid2);); MESSAGE(11,fprintf(fp,"\t\tPTid2 = HE5_PTattach(ptfid, \"FixedBuoy Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid2) ;); } dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data struvcture */ /* ---------------------------- */ dtsinfo->nfields = 5; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->rank[3] = 1; dtsinfo->rank[4] = 1; dtsinfo->array[0] = 1; dtsinfo->array[1] = 0; dtsinfo->array[2] = 0; dtsinfo->array[3] = 0; dtsinfo->array[4] = 1; dtsinfo->offset[0] = HOFFSET(InputData2, label); dtsinfo->offset[1] = HOFFSET(InputData2, lon); dtsinfo->offset[2] = HOFFSET(InputData2, lat); dtsinfo->offset[3] = HOFFSET(InputData2, date); dtsinfo->offset[4] = HOFFSET(InputData2, id); dtsinfo->dtype[0] = H5T_NATIVE_CHAR; dtsinfo->dtype[1] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[2] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[3] = H5T_NATIVE_INT; dtsinfo->dtype[4] = H5T_NATIVE_CHAR; for (i = 0; i < 5; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Label"); strcpy(dtsinfo->fieldname[1],"Longitude"); strcpy(dtsinfo->fieldname[2],"Latitude"); strcpy(dtsinfo->fieldname[3],"DeployDate"); strcpy(dtsinfo->fieldname[4],"ID"); dtsinfo->dims[0][0] = 8; dtsinfo->dims[1][0] = 1; dtsinfo->dims[2][0] = 1; dtsinfo->dims[3][0] = 1; dtsinfo->dims[4][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData2); /* ********************************************************************************* * Testing HE5_PTdeflevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdeflevel... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdeflevel... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\t\tDefining level \"Desc-Loc\" \n");); MESSAGE(11,fprintf(fp,"\t\tDefining level \"Desc-Loc\" \n");); status = HE5_PTdeflevel(PTid2, "Desc-Loc", dtsinfo); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); } for (i = 0; i < 5; i++) free(dtsinfo->fieldname[i]); free(dtsinfo); dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data structure */ /* --------------------------- */ dtsinfo->nfields = 4; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->rank[3] = 1; dtsinfo->array[0] = 0; dtsinfo->array[1] = 0; dtsinfo->array[2] = 0; dtsinfo->array[3] = 1; dtsinfo->offset[0] = HOFFSET(InputData3, time); dtsinfo->offset[1] = HOFFSET(InputData3, rain); dtsinfo->offset[2] = HOFFSET(InputData3, temp); dtsinfo->offset[3] = HOFFSET(InputData3, id); dtsinfo->dtype[0] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[1] = H5T_NATIVE_FLOAT; dtsinfo->dtype[2] = H5T_NATIVE_FLOAT; dtsinfo->dtype[3] = H5T_NATIVE_CHAR; for (i = 0; i < 4; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Time"); strcpy(dtsinfo->fieldname[1],"Rainfall"); strcpy(dtsinfo->fieldname[2],"Temperature"); strcpy(dtsinfo->fieldname[3],"ID"); dtsinfo->dims[0][0] = 1; dtsinfo->dims[1][0] = 1; dtsinfo->dims[2][0] = 1; dtsinfo->dims[3][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData3); /* ********************************************************************************* * Testing HE5_PTdeflevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdeflevel... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdeflevel... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\t\tDefining level \"Observations\" \n");); MESSAGE(11,fprintf(fp,"\t\tDefining level \"Observations\" \n");); status = HE5_PTdeflevel(PTid2, "Observations", dtsinfo); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); } for (i = 0; i < 4; i++) free(dtsinfo->fieldname[i]); free(dtsinfo); /* ********************************************************************************* * Testing HE5_PTdeflinkage * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdeflinkage... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdeflinkage... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\t\tDefining linkage between levels \"Desc-Loc\" and \"Observations\" \n");); MESSAGE(11,fprintf(fp,"\t\tDefining linkage between levels \"Desc-Loc\" and \"Observations\" \n");); status = HE5_PTdeflinkage(PTid2, "Desc-Loc", "Observations", "ID"); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdeflinkage();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdeflinkage() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdeflinkage();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdeflinkage() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"FixedBuoy Point\" \n");); status = HE5_PTdetach(PTid2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"FloatBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"FloatBuoy Point\" \n");); PTid3 = HE5_PTattach(ptfid, "FloatBuoy Point"); if (PTid3 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid3 = HE5_PTattach(ptfid, \"FloatBuoy Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid3);); MESSAGE(11,fprintf(fp,"\t\tPTid3 = HE5_PTattach(ptfid, \"FloatBuoy Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid3) ;); } dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data structure */ /* --------------------------- */ dtsinfo->nfields = 4; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->rank[3] = 1; dtsinfo->array[0] = 1; dtsinfo->array[1] = 0; dtsinfo->array[2] = 0; dtsinfo->array[3] = 1; dtsinfo->offset[0] = HOFFSET(InputData4, label); dtsinfo->offset[1] = HOFFSET(InputData4, date); dtsinfo->offset[2] = HOFFSET(InputData4, weight); dtsinfo->offset[3] = HOFFSET(InputData4, id); dtsinfo->dtype[0] = H5T_NATIVE_CHAR; dtsinfo->dtype[1] = H5T_NATIVE_INT; dtsinfo->dtype[2] = H5T_NATIVE_INT; dtsinfo->dtype[3] = H5T_NATIVE_CHAR; for (i = 0; i < 4; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Label"); strcpy(dtsinfo->fieldname[1],"DeployDate"); strcpy(dtsinfo->fieldname[2],"Weight"); strcpy(dtsinfo->fieldname[3],"ID"); dtsinfo->dims[0][0] = 8; dtsinfo->dims[1][0] = 1; dtsinfo->dims[2][0] = 1; dtsinfo->dims[3][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData4); /* ********************************************************************************* * Testing HE5_PTdeflevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdeflevel... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdeflevel... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\t\tDefining level \"Description\" \n");); MESSAGE(11,fprintf(fp,"\t\tDefining level \"Description\" \n");); status = HE5_PTdeflevel(PTid3, "Description", dtsinfo); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); } for (i = 0; i < 4; i++) free(dtsinfo->fieldname[i]); free(dtsinfo); dtsinfo = (HE5_CmpDTSinfo *)calloc(1, sizeof(HE5_CmpDTSinfo)); /* Set up level data structure */ /* --------------------------- */ dtsinfo->nfields = 6; dtsinfo->rank[0] = 1; dtsinfo->rank[1] = 1; dtsinfo->rank[2] = 1; dtsinfo->rank[3] = 1; dtsinfo->rank[4] = 1; dtsinfo->rank[5] = 1; dtsinfo->array[0] = 0; dtsinfo->array[1] = 0; dtsinfo->array[2] = 0; dtsinfo->array[3] = 0; dtsinfo->array[4] = 0; dtsinfo->array[5] = 1; dtsinfo->offset[0] = HOFFSET(InputData5, time); dtsinfo->offset[1] = HOFFSET(InputData5, lon); dtsinfo->offset[2] = HOFFSET(InputData5, lat); dtsinfo->offset[3] = HOFFSET(InputData5, rain); dtsinfo->offset[4] = HOFFSET(InputData5, temp); dtsinfo->offset[5] = HOFFSET(InputData5, id); dtsinfo->dtype[0] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[1] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[2] = H5T_NATIVE_DOUBLE; dtsinfo->dtype[3] = H5T_NATIVE_FLOAT; dtsinfo->dtype[4] = H5T_NATIVE_FLOAT; dtsinfo->dtype[5] = H5T_NATIVE_CHAR; for (i = 0; i < 6; i++) dtsinfo->fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(dtsinfo->fieldname[0],"Time"); strcpy(dtsinfo->fieldname[1],"Longitude"); strcpy(dtsinfo->fieldname[2],"Latitude"); strcpy(dtsinfo->fieldname[3],"Rainfall"); strcpy(dtsinfo->fieldname[4],"Temperature"); strcpy(dtsinfo->fieldname[5],"ID"); dtsinfo->dims[0][0] = 1; dtsinfo->dims[1][0] = 1; dtsinfo->dims[2][0] = 1; dtsinfo->dims[3][0] = 1; dtsinfo->dims[4][0] = 1; dtsinfo->dims[5][0] = 8; dtsinfo->datasize = (size_t)sizeof(InputData5); /* ********************************************************************************* * Testing HE5_PTdeflevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdeflevel... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdeflevel... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\t\tDefining level \"Measurements\" \n");); MESSAGE(11,fprintf(fp,"\t\tDefining level \"Measurements\" \n");); status = HE5_PTdeflevel(PTid3, "Measurements", dtsinfo); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdeflevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdeflevel() %d\n",status);); } for (i = 0; i < 6; i++) free(dtsinfo->fieldname[i]); free(dtsinfo); /* ********************************************************************************* * Testing HE5_PTdeflinkage * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdeflinkage... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdeflinkage... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\t\tDefining linkage between levels \"Description\" and \"Measurements\" \n");); MESSAGE(11,fprintf(fp,"\t\tDefining linkage between levels \"Description\" and \"Measurements\" \n");); status = HE5_PTdeflinkage(PTid3, "Description", "Measurements", "ID"); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdeflinkage();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdeflinkage() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdeflinkage();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdeflinkage() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"FloatBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"FloatBuoy Point\" \n");); status = HE5_PTdetach(PTid3); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"Simple Point\" \n");); PTid1 = HE5_PTattach(ptfid, "Simple Point"); if (PTid1 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid1 = HE5_PTattach(ptfid, \"Simple Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid1);); MESSAGE(11,fprintf(fp,"\t\tPTid1 = HE5_PTattach(ptfid, \"Simple Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid1) ;); } setup_namebuf(namebuf, "simple.txt"); fp_in = fopen(namebuf, "r"); n = 0; while(fscanf(fp_in, "%lf %f %f %f %f %s", &time, &conc[0], &conc[1], &conc[2], &conc[3], spc) != -1) { datbuf_1[n].time = time; datbuf_1[n].concentr[0] = conc[0]; datbuf_1[n].concentr[1] = conc[1]; datbuf_1[n].concentr[2] = conc[2]; datbuf_1[n].concentr[3] = conc[3]; memmove(datbuf_1[n].spec, spc, sizeof(char)*strlen(spc)); datbuf_1[n].spec[strlen(spc)] = 0; n++; } fclose(fp_in); datasize = (size_t)sizeof(InputData1); count[0] = n; /* ********************************************************************************* * Testing HE5_PTwritelevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwritelevel... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwritelevel... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting records to the point \"Simple Point\" level 0 \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting records to the point \"Simple Point\" level 0 \n");); status = HE5_PTwritelevel(PTid1, 0, count, &datasize, datbuf_1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"Simple Point\" \n");); status = HE5_PTdetach(PTid1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"FixedBuoy Point\" \n");); PTid2 = HE5_PTattach(ptfid, "FixedBuoy Point"); if (PTid2 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid2 = HE5_PTattach(ptfid, \"FixedBuoy Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid2);); MESSAGE(11,fprintf(fp,"\t\tPTid2 = HE5_PTattach(ptfid, \"FixedBuoy Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid2) ;); } setup_namebuf(namebuf, "fixedBuoy0.txt"); fp_in = fopen(namebuf, "r"); n = 0; while(fscanf(fp_in, "%s %lf %lf %d %s", desc, &lon, &lat, &date, id) != -1) { strcpy(datbuf_2[n].label, desc); datbuf_2[n].lon = lon; datbuf_2[n].lat = lat; datbuf_2[n].date = date; memmove(datbuf_2[n].id, id, sizeof(char)*strlen(id)); datbuf_2[n].id[strlen(id)] = 0; n++; } fclose(fp_in); datasize = (size_t)sizeof(InputData2); count[0] = n; /* ********************************************************************************* * Testing HE5_PTwritelevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwritelevel... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwritelevel... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting records to the point \"FixedBuoy Point\" level 0 \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting records to the point \"FixedBuoy Point\" level 0 \n");); status = HE5_PTwritelevel(PTid2, 0, count, &datasize, datbuf_2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); } setup_namebuf(namebuf, "fixedBuoy1.txt"); fp_in = fopen(namebuf, "r"); n = 0; while(fscanf(fp_in, "%lf %f %f %s", &time, &rain, &temp, id) != -1) { datbuf_3[n].time = time; datbuf_3[n].rain = rain; datbuf_3[n].temp = temp; memmove(datbuf_3[n].id, id, sizeof(char)*strlen(id)); datbuf_3[n].id[strlen(id)] = 0; n++; } fclose(fp_in); datasize = (size_t)sizeof(InputData3); count[0] = n; /* ********************************************************************************* * Testing HE5_PTwritelevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwritelevel... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwritelevel... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting records to the point \"FixedBuoy Point\" level 1 \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting records to the point \"FixedBuoy Point\" level 1 \n");); status = HE5_PTwritelevel(PTid2, 1, count, &datasize, datbuf_3); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTwriteattr * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwriteattr... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwriteattr... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting attribute to the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting attribute to the point \"FixedBuoy Point\" \n");); count[0] = 1; status = HE5_PTwriteattr(PTid2, "GlobalAttr_Integer", H5T_NATIVE_INT, count, &IntAttr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwriteattr();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwriteattr() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwriteattr();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwriteattr() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTwriteattr * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwriteattr... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwriteattr... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting attribute to the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting attribute to the point \"FixedBuoy Point\" \n");); count[0] = 1; status = HE5_PTwriteattr(PTid2, "GlobalAttribute_int", H5T_NATIVE_INT, count, &attr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwriteattr();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwriteattr() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwriteattr();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwriteattr() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTwritegrpattr * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwritegrpattr... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwritegrpattr... \n");); MESSAGE(11,fprintf(fp,"\t============================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting group attribute to the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting group attribute to the point \"FixedBuoy Point\" \n");); count[0] = 5; status = HE5_PTwritegrpattr(PTid2, "GroupAttribute", H5T_NATIVE_INT, count, attr1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwritegrpattr();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwritegrpattr() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwritegrpattr();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwritegrpattr() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTwritelocattr * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwritelocattr... \n");); MESSAGE(4,printf("\t============================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwritelocattr... \n");); MESSAGE(11,fprintf(fp,"\t============================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting local attribute to the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting local attribute to the point \"FixedBuoy Point\" \n");); status = HE5_PTwritelocattr(PTid2, "Observations", "LocalAttribute", H5T_NATIVE_INT, count, attr2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwritelocattr();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwritelocattr() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwritelocattr();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwritelocattr() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"FixedBuoy Point\" \n");); status = HE5_PTdetach(PTid2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"FloatBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"FloatBuoy Point\" \n");); PTid3 = HE5_PTattach(ptfid, "FloatBuoy Point"); if (PTid3 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid3 = HE5_PTattach(ptfid, \"FloatBuoy Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid3);); MESSAGE(11,fprintf(fp,"\t\tPTid3 = HE5_PTattach(ptfid, \"FloatBuoy Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid3) ;); } setup_namebuf(namebuf, "floatBuoy0.txt"); fp_in = fopen(namebuf, "r"); n = 0; while(fscanf(fp_in, "%s %d %d %s", desc, &date, &wgt, id) != -1) { strcpy(datbuf_4[n].label, desc); datbuf_4[n].date = date; datbuf_4[n].weight = wgt; memmove(datbuf_4[n].id, id, sizeof(char)*strlen(id)); datbuf_4[n].id[strlen(id)] = 0; n++; } fclose(fp_in); datasize = (size_t)sizeof(InputData4); count[0] = n; /* ********************************************************************************* * Testing HE5_PTwritelevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwritelevel... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwritelevel... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting records to the point \"FloatBuoy Point\" level 0 \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting records to the point \"FloatBuoy Point\" level 0 \n");); status = HE5_PTwritelevel(PTid3, 0, count, &datasize, datbuf_4); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); } setup_namebuf(namebuf, "floatBuoy1.txt"); fp_in = fopen(namebuf, "r"); n = 0; while(fscanf(fp_in, "%lf %lf %lf %f %f %s", &time, &lon, &lat, &rain, &temp, id) != -1) { datbuf_5[n].time = time; datbuf_5[n].lon = lon; datbuf_5[n].lat = lat; datbuf_5[n].rain = rain; datbuf_5[n].temp = temp; memmove(datbuf_5[n].id, id,sizeof(char)*strlen(id)); datbuf_5[n].id[strlen(id)] = 0; n++; } fclose(fp_in); datasize = (size_t)sizeof(InputData5); count[0] = n; /* ********************************************************************************* * Testing HE5_PTwritelevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwritelevel... \n");); MESSAGE(4,printf("\t=========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwritelevel... \n");); MESSAGE(11,fprintf(fp,"\t=========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting records to the point \"FloatBuoy Point\" level 1 \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting records to the point \"FloatBuoy Point\" level 1 \n");); status = HE5_PTwritelevel(PTid3, 1, count, &datasize, datbuf_5); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwritelevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwritelevel() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTwriteattr * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwriteattr... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwriteattr... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting attribute to the point \"FloatBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting attribute to the point \"FloatBuoy Point\" \n");); count[0] = 1; status = HE5_PTwriteattr(PTid3, "GlobalAttr", H5T_NATIVE_FLOAT, count, &flt); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwriteattr();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwriteattr() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwriteattr();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwriteattr() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTwriteattr * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTwriteattr... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTwriteattr... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tWriting attribute to the point \"FloatBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tWriting attribute to the point \"FloatBuoy Point\" \n");); count[0] = 1; status = HE5_PTwriteattr(PTid3, "GlobalAttribute_float", H5T_NATIVE_FLOAT, count, &flt); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTwriteattr();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTwriteattr() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTwriteattr();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTwriteattr() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"FloatBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"FloatBuoy Point\" \n");); status = HE5_PTdetach(PTid3); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTclose * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_PTclose... \n");); MESSAGE(4,printf("\t====================== \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTclose... \n");); MESSAGE(11,fprintf(fp,"\t====================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tClosing the file \"SimplePoint.h5\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tClosing the file \"SimplePoint.h5\" \n");); status = HE5_PTclose(ptfid); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\tSuccessfully clossed the \"SimplePoint.h5\" file \n");); MESSAGE(11,fprintf(fp,"\t\tSuccessfully clossed the \"SimplePoint.h5\" file \n");); } /* ********************************************************************************* * Testing HE5_PTopen * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTopen... \n");); MESSAGE(4,printf("\t===================== \n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTopen... \n");); MESSAGE(11,fprintf(fp,"\t===================== \n");); ptfid = HE5_PTopen("SimplePoint.h5",H5F_ACC_RDWR); if (ptfid == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully re-opened the point file ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully re-opened the point file ****\n");); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"Simple Point\" \n");); PTid1 = HE5_PTattach(ptfid, "Simple Point"); if (PTid1 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid1 = HE5_PTattach(ptfid, \"Simple Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid1);); MESSAGE(11,fprintf(fp,"\t\tPTid1 = HE5_PTattach(ptfid, \"Simple Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid1) ;); } /* ********************************************************************************* * Testing HE5_PTlevelinfo * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTlevelinfo... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTlevelinfo... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving level information for point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving level information for point \"Simple Point\" \n");); status = HE5_PTlevelinfo(PTid1, 0, &level); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { nflds = level.nfields; MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\t status = HE5_PTlevelinfo();\n");); MESSAGE(8,printf("\t\tValue returned by HE5_PTlevelinfo() %d\n", status);); MESSAGE(8,printf("\t\tNumber of fields in level: %d\n", nflds);); for (i = 0; i < nflds; i++) { MESSAGE(8,printf("Field name: %s \n", level.fieldname[i]);); MESSAGE(8,printf("Field rank: %d \n", level.rank[i]);); MESSAGE(8,printf("Field type ID: %d \n", level.dtype[i]);); for (j = 0; j < level.rank[i]; j++) MESSAGE(8,printf("Field dims: %d \n", (int)level.dims[i][j]);); MESSAGE(8,printf("Field class: %d \n", level.dclass[i]);); } MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTlevelinfo(); \n");); MESSAGE(11,fprintf(fp,"\t\tValue returned by HE5_PTlevelinfo() %d\n", status);); MESSAGE(11,fprintf(fp,"\t\tNumber of fields in level: %d\n", nflds);); for (i = 0; i < nflds; i++) { MESSAGE(11,fprintf(fp,"Field name: %s \n", level.fieldname[i]);); MESSAGE(11,fprintf(fp,"Field rank: %d \n", level.rank[i]);); MESSAGE(11,fprintf(fp,"Field type ID: %d \n", level.dtype[i]);); for (j = 0; j < level.rank[i]; j++) MESSAGE(11,fprintf(fp,"Field dims: %d \n", (int)level.dims[i][j]);); MESSAGE(11,fprintf(fp,"Field class: %d \n", level.dclass[i]);); } } /* ********************************************************************************* * Testing HE5_PTnrecs * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTnrecs... \n");); MESSAGE(4,printf("\t====================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTnrecs... \n");); MESSAGE(11,fprintf(fp,"\t====================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving number of records in level 0 in point \"Simple Point\' \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving number of records in level 0 in point \"Simple Point\" \n");); nrecs = HE5_PTnrecs(PTid1, 0); if (nrecs == 0) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tnrecs = HE5_PTnrecs();\n");); MESSAGE(8,printf("\t\tNumber of records returned by HE5_PTnrecs(): %lu \n",(unsigned long)nrecs);); MESSAGE(11,fprintf(fp,"\t\tnrecs = HE5_PTnrecs();\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of records returned by HE5_PTnrecs(): %lu \n", (unsigned long)nrecs);); } datasize = (size_t)sizeof(Sensor); inInfo.nfields = nflds; inInfo.datasize = (size_t)sizeof(Sensor); inInfo.rank[0] = 1; inInfo.rank[1] = 1; inInfo.rank[2] = 1; inInfo.offset[0] = HOFFSET(Sensor, time); inInfo.offset[1] = HOFFSET(Sensor, con); inInfo.offset[2] = HOFFSET(Sensor, spec); inInfo.dtype[0] = H5T_NATIVE_DOUBLE; inInfo.dtype[1] = H5T_NATIVE_FLOAT; inInfo.dtype[2] = H5T_NATIVE_CHAR; inInfo.dclass[0] = H5T_NO_CLASS; inInfo.dclass[1] = H5T_NO_CLASS; inInfo.dclass[2] = H5T_NO_CLASS; inInfo.dims[0][0] = 1; inInfo.dims[1][0] = 4; inInfo.dims[2][0] = 8; inInfo.array[0] = 0; inInfo.array[1] = 1; inInfo.array[2] = 1; for( i = 0; i < nflds; i++) { inInfo.fieldname[i] = (char *)calloc(64, sizeof(char)); strcpy(inInfo.fieldname[i], level.fieldname[i]); } /* ********************************************************************************* * Testing HE5_PTreadlevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTreadlevel... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTreadlevel... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving field values for point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving field values for point \"Simple Point\" \n");); status = HE5_PTreadlevel(PTid1, 0, &inInfo, &datasize, s); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTreadlevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTreadlevel() %d\n", status);); MESSAGE(8,printf("\n");); for (i = 0; i < nrecs; i++) { MESSAGE(8,printf("%lf %f %f %f %f %s\n", s[i].time, s[i].con[0], s[i].con[1],s[i].con[2], s[i].con[3], s[i].spec);); MESSAGE(11,fprintf(fp,"%lf %f %f %f %f %s\n", s[i].time, s[i].con[0], s[i].con[1],s[i].con[2], s[i].con[3], s[i].spec);); } } for (i = 0; i < nflds; i++) if (inInfo.fieldname[i] != NULL) free(inInfo.fieldname[i]); datasize = (size_t)sizeof(double); inInfo2.nfields = 1; inInfo2.datasize = (size_t)sizeof(double); inInfo2.rank[0] = 1; inInfo2.offset[0] = 0; inInfo2.dtype[0] = H5T_NATIVE_DOUBLE; inInfo2.dclass[0] = H5T_FLOAT; inInfo2.dims[0][0] = 1; inInfo2.array[0] = 0; inInfo2.fieldname[0] = (char *)calloc(64, sizeof(char)); strcpy(inInfo2.fieldname[0], level.fieldname[0]); /* ********************************************************************************* * Testing HE5_PTreadlevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTreadlevel... \n");); MESSAGE(4,printf("\t========================== \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTreadlevel... \n");); MESSAGE(11,fprintf(fp,"\t========================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving field values for point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving field values for point \"Simple Point\" \n");); status = HE5_PTreadlevel(PTid1, 0, &inInfo2, &datasize, s1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTreadlevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTreadlevel() %d\n", status);); MESSAGE(8,printf("\n");); for (i = 0; i < nrecs; i++) { MESSAGE(8,printf("%lf \n", s1[i]);); MESSAGE(11,fprintf(fp,"%lf \n", s1[i]);); } } if (inInfo2.fieldname[0] != NULL) free(inInfo2.fieldname[0]); for (i = 0; i < nflds; i++) if(level.fieldname[i] != NULL) free(level.fieldname[i]); /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"Simple Point\" \n");); status = HE5_PTdetach(PTid1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"FixedBuoy Point\" \n");); PTid2 = HE5_PTattach(ptfid, "FixedBuoy Point"); if (PTid2 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid2 = HE5_PTattach(ptfid, \"FixedBuoy Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid2);); MESSAGE(11,fprintf(fp,"\t\tPTid2 = HE5_PTattach(ptfid, \"FixedBuoy Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid2) ;); } /* ********************************************************************************* * Testing HE5_PTinqattrs * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTinqattrs... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTinqattrs... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tRetrieving the number of attributes in the point \"FixedBuoy Point\".\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tRetrieving the number of attributes in the point \"FixedBuoy Point\".\n");); nattr = HE5_PTinqattrs(PTid2, NULL, &strbufsize); if (nattr < 0) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(8,printf("\t\tnattr = HE5_PTinqattrs();\n");); MESSAGE(8,printf("\t\tNumber of attributes returned by HE5_PTinqattrs(): %li\n", nattr);); MESSAGE(8,printf("\t\tString length of the attribute list: %li\n", strbufsize);); MESSAGE(11,fprintf(fp,"\t\tnattr = HE5_PTinqattrs();\n");); MESSAGE(11,fprintf(fp,"\t\tNumber of attributes returned by HE5_PTinqattrs(): %li\n", nattr);); MESSAGE(11,fprintf(fp,"\t\tString length of the attribute list: %li\n", strbufsize);); } /* ********************************************************************************* * Testing HE5_PTreadattr * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTreadattr... \n");); MESSAGE(4,printf("\t========================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTreadattr... \n");); MESSAGE(11,fprintf(fp,"\t========================= \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tReading value of the attribute \"GlobalAttr_Integer\" in the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tReading value of the attribute \"GlobalAttr_Integer\" in the point \"FixedBuoy Point\" \n");); status = HE5_PTreadattr(PTid2, "GlobalAttr_Integer", &IntAttr); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTreadattr();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTreadattr() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTreadattr();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTreadattr() %d\n",status);); MESSAGE(8,printf("\n");); MESSAGE(8,printf("\t\t Attribute value reads\n");); MESSAGE(8,printf("\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t Attribute value reads\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(8,printf("\t\t %d\n", IntAttr);); MESSAGE(11,fprintf(fp,"\t\t %d\n", IntAttr);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"FixedBuoy Point\" \n");); status = HE5_PTdetach(PTid2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTclose * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_PTclose... \n");); MESSAGE(4,printf("\t====================== \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTclose... \n");); MESSAGE(11,fprintf(fp,"\t====================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tClosing the file \"SimplePoint.h5\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tClosing the file \"SimplePoint.h5\" \n");); status = HE5_PTclose(ptfid); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\tSuccessfully clossed the \"SimplePoint.h5\" file \n");); MESSAGE(11,fprintf(fp,"\t\tSuccessfully clossed the \"SimplePoint.h5\" file \n");); } /* ********************************************************************************* * Testing HE5_PTopen * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTopen... \n");); MESSAGE(4,printf("\t===================== \n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTopen... \n");); MESSAGE(11,fprintf(fp,"\t===================== \n");); ptfid = HE5_PTopen("SimplePoint.h5",H5F_ACC_RDWR); if (ptfid == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\t*** Successfully re-opened the point file ****\n");); MESSAGE(11,fprintf(fp,"\t\t*** Successfully re-opened the point file ****\n");); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"Simple Point\" \n");); PTid1 = HE5_PTattach(ptfid, "Simple Point"); if (PTid1 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid1 = HE5_PTattach(ptfid, \"Simple Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid1);); MESSAGE(11,fprintf(fp,"\t\tPTid1 = HE5_PTattach(ptfid, \"Simple Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid1) ;); } /* ********************************************************************************* * Testing HE5_PTupdatelevel * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTupdatelevel... \n");); MESSAGE(4,printf("\t============================ \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTupdatelevel... \n");); MESSAGE(11,fprintf(fp,"\t============================ \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tUpdating level \"Concentration\" in point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tUpdating level \"Concentration\" in point \"Simple Point\" \n");); recs[0] = 0; buf_1.time = 13131313.0; buf_1.concentr[0] = 1.11; buf_1.concentr[1] = 2.22; buf_1.concentr[2] = 3.33; buf_1.concentr[3] = 4.44; strcpy(buf_1.spec,"AM"); status = HE5_PTupdatelevel(PTid1, 0, "Concentration", nrec, recs, &buf_1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTupdatelevel();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTupdatelevel() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTupdatelevel();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTupdatelevel() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"Simple Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"Simple Point\" \n");); status = HE5_PTdetach(PTid1); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTattach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTattach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTattach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tAttaching to the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tAttaching to the point \"FixedBuoy Point\" \n");); PTid2 = HE5_PTattach(ptfid, "FixedBuoy Point"); if (PTid2 == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tPTid2 = HE5_PTattach(ptfid, \"FixedBuoy Point\");\n");); MESSAGE(8,printf("\t\tThe point ID returned by HE5_PTattach() %d\n",PTid2);); MESSAGE(11,fprintf(fp,"\t\tPTid2 = HE5_PTattach(ptfid, \"FixedBuoy Point\");\n");); MESSAGE(11,fprintf(fp,"\t\tThe point ID returned by HE5_PTattach() %d\n",PTid2) ;); } /* ********************************************************************************* * Testing HE5_PTinqdatatype * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTinqdatatype... \n");); MESSAGE(4,printf("\t============================ \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTinqdatatype... \n");); MESSAGE(11,fprintf(fp,"\t============================ \n");); MESSAGE(6,printf("\t\tInquiring datatype information for \"Observations\" \n");); MESSAGE(11,fprintf(fp,"\t\tInquiring datatype information for \"Observations\" \n");); fieldgroup = HE5_HDFE_DATAGROUP; status = HE5_PTinqdatatype(PTid2, "Observations", NULL, fieldgroup, &datatype, &classid, &order, &size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTinqdatatype();\n");); MESSAGE(8,printf("\t\tThe status returned by HE5_PTinqdatatype() %d\n",status);); MESSAGE(8,printf("\tdatatype: %d \n", (int)datatype);); MESSAGE(8,printf("\tclass ID: %d \n", (int)classid);); MESSAGE(8,printf("\tsize: %d \n", (int)size);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTinqdatatype();\n");); MESSAGE(11,fprintf(fp,"\t\tThe status returned by HE5_PTinqdatatype() %d\n",status) ;); MESSAGE(11,fprintf(fp,"\tdatatype: %d \n", (int)datatype);); MESSAGE(11,fprintf(fp,"\tclass ID: %d \n", (int)classid);); MESSAGE(11,fprintf(fp,"\tsize: %d \n", (int)size);); } fieldgroup = HE5_HDFE_ATTRGROUP; status = HE5_PTinqdatatype(PTid2, NULL, "GlobalAttribute_int", fieldgroup, &datatype, &classid, &order, &size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTinqdatatype();\n");); MESSAGE(8,printf("\t\tThe status returned by HE5_PTinqdatatype() %d\n",status);); MESSAGE(8,printf("\tdatatype: %d \n", (int)datatype);); MESSAGE(8,printf("\tclass ID: %d \n", (int)classid);); MESSAGE(8,printf("\torder: %d \n", (int)order);); MESSAGE(8,printf("\tsize: %d \n", (int)size);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTinqdatatype();\n");); MESSAGE(11,fprintf(fp,"\t\tThe status returned by HE5_PTinqdatatype() %d\n",status) ;); MESSAGE(11,fprintf(fp,"\tdatatype: %d \n", (int)datatype);); MESSAGE(11,fprintf(fp,"\tclass ID: %d \n", (int)classid);); MESSAGE(11,fprintf(fp,"\torder: %d \n", (int)order);); MESSAGE(11,fprintf(fp,"\tsize: %d \n", (int)size);); } fieldgroup = HE5_HDFE_GRPATTRGROUP; status = HE5_PTinqdatatype(PTid2, NULL, "GroupAttribute", fieldgroup, &datatype, &classid, &order, &size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTinqdatatype();\n");); MESSAGE(8,printf("\t\tThe status returned by HE5_PTinqdatatype() %d\n",status);); MESSAGE(8,printf("\tdatatype: %d \n", (int)datatype);); MESSAGE(8,printf("\tclass ID: %d \n", (int)classid);); MESSAGE(8,printf("\torder: %d \n", (int)order);); MESSAGE(8,printf("\tsize: %d \n", (int)size);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTinqdatatype();\n");); MESSAGE(11,fprintf(fp,"\t\tThe status returned by HE5_PTinqdatatype() %d\n",status) ;); MESSAGE(11,fprintf(fp,"\tdatatype: %d \n", (int)datatype);); MESSAGE(11,fprintf(fp,"\tclass ID: %d \n", (int)classid);); MESSAGE(11,fprintf(fp,"\torder: %d \n", (int)order);); MESSAGE(11,fprintf(fp,"\tsize: %d \n", (int)size);); } fieldgroup = HE5_HDFE_LOCATTRGROUP; status = HE5_PTinqdatatype(PTid2, "Observations", "LocalAttribute", fieldgroup, &datatype, &classid, &order, &size); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTinqdatatype();\n");); MESSAGE(8,printf("\t\tThe status returned by HE5_PTinqdatatype() %d\n",status);); MESSAGE(8,printf("\tdatatype: %d \n", (int)datatype);); MESSAGE(8,printf("\tclass ID: %d \n", (int)classid);); MESSAGE(8,printf("\torder: %d \n", (int)order);); MESSAGE(8,printf("\tsize: %d \n", (int)size);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTinqdatatype();\n");); MESSAGE(11,fprintf(fp,"\t\tThe status returned by HE5_PTinqdatatype() %d\n",status) ;); MESSAGE(11,fprintf(fp,"\tdatatype: %d \n", (int)datatype);); MESSAGE(11,fprintf(fp,"\tclass ID: %d \n", (int)classid);); MESSAGE(11,fprintf(fp,"\torder: %d \n", (int)order);); MESSAGE(11,fprintf(fp,"\tsize: %d \n", (int)size);); } /* ********************************************************************************* * Testing HE5_PTdetach * ********************************************************************************* */ MESSAGE(4,printf("\tTesting HE5_PTdetach... \n");); MESSAGE(4,printf("\t======================= \n");); MESSAGE(11,fprintf(fp,"\t\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTdetach... \n");); MESSAGE(11,fprintf(fp,"\t======================= \n");); MESSAGE(6,printf("\t\tDetaching from the point \"FixedBuoy Point\" \n");); MESSAGE(11,fprintf(fp,"\t\tDetaching from the point \"FixedBuoy Point\" \n");); status = HE5_PTdetach(PTid2); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t\t********Passed Test**********\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t********Passed Test**********\n");); MESSAGE(10,printf("\t\tstatus = HE5_PTdetach();\n");); MESSAGE(8,printf("\t\tStatus returned by HE5_PTdetach() %d\n",status);); MESSAGE(11,fprintf(fp,"\t\tstatus = HE5_PTdetach();\n");); MESSAGE(11,fprintf(fp,"\t\tStatus returned by HE5_PTdetach() %d\n",status);); } /* ********************************************************************************* * Testing HE5_PTclose * ********************************************************************************* */ MESSAGE(4,printf("\n");); MESSAGE(4,printf("\tTesting HE5_PTclose... \n");); MESSAGE(4,printf("\t====================== \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\tTesting HE5_PTclose... \n");); MESSAGE(11,fprintf(fp,"\t====================== \n");); MESSAGE(6,printf("\n");); MESSAGE(6,printf("\t\tClosing the file \"SimplePoint.h5\" \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\tClosing the file \"SimplePoint.h5\" \n");); status = HE5_PTclose(ptfid); if (status == FAIL) { MESSAGE(4,printf("\t\t********Error unexpected**********\n");); MESSAGE(11,fprintf(fp,"\t\t********Error unexpected**********\n");); errcnt++; } else { MESSAGE(4,printf("\t\tSuccessfully clossed the SimplePoint.h5 file \n");); MESSAGE(11,fprintf(fp,"\t\tSuccessfully clossed the SimplePoint.h5 file \n");); MESSAGE(4,printf("\n");); MESSAGE(4,printf("\t ........... End of Testing. \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t ............. End of Testing. \n");); } if (errcnt == 0) { MESSAGE(11,printf("\n");); MESSAGE(11,printf("\n");); MESSAGE(11,printf("\t\t A L L T E S T S P A S S E D \n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t A L L T E S T S P A S S E D \n");); return_val = 0; } else { MESSAGE(11,printf("\n");); MESSAGE(11,printf("\n");); MESSAGE(11,printf("\t\t%d T E S T S F A I L E D \n",errcnt);); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\n");); MESSAGE(11,fprintf(fp,"\t\t%d T E S T S F A I L E D \n",errcnt);); return_val = 1; } MESSAGE(11,fclose(fp);); return return_val; } hdf-eos5-5.1.14+dfsg.1/testdrivers/point/Makefile.sgi320000644000175000017500000000170612024715435023530 0ustar amckinstryamckinstry COMPILER = cc LINKER = cc CC = $(COMPILER) LD = $(LINKER) # for SUN #CFLAGS = -g -Xa -DsunFortran -DSUN #LFLAGS = -g -Xa -DsunFortran -DSUN # for sgi32 CFLAGS = -g -n32 -xansi -D_POSIX_SOURCE LFLAGS = -g -n32 -xansi -D_POSIX_SOURCE # for sgi64 #CFLAGS = -g -64 -xansi -D_POSIX_SOURCE #LFLAGS = -g -64 -xansi -D_POSIX_SOURCE INCLUDE = -I. -I$(HDFEOS5_INC) -I$(HDF5INC) -I$(JPEGINC) -I$(ZLIBINC) -I$(SZIPINC) LIBRARYPATHS = -L$(HDF5LIB) -L$(HDFEOS5_LIB) -L$(JPEGLIB) -L$(ZLIBLIB) -L$(SZIPLIB) # for SUN #LIBRARIES = -lhe5_hdfeos $(HDF5LIB)/libhdf5.a -lGctp -ljpeg -lz -lsz -lpthread -lm -lnsl # for other platforms LIBRARIES = -lhe5_hdfeos $(HDF5LIB)/libhdf5.a -lGctp -ljpeg -lz -lsz -lpthread -lm OBJECTS = TestPoint.o PROGRAMS = TestPoint all: ${PROGRAMS} cleano ${PROGRAMS}: ${OBJECTS} ${CC} ${LFLAGS} -o $@ ${OBJECTS} ${LIBRARYPATHS} ${LIBRARIES} .c.o: ${CC} ${CFLAGS} -c ${INCLUDE} $< clean: rm *.o ${PROGRAMS} cleano: rm *.o hdf-eos5-5.1.14+dfsg.1/testdrivers/point/Makefile.in0000644000175000017500000004221012024715435023202 0ustar amckinstryamckinstry# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # testdrivers/point Makefile.am SOURCES = TestPoint.c $(testpoint32_SOURCES) $(testpoint64_SOURCES) srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/include.am check_PROGRAMS = TestPoint$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_1 = testpoint32 @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_2 = testpoint64 @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_3 = test_32f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_4 = test_32f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_5 = test_64f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__append_6 = test_64f subdir = testdrivers/point ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/HE5_config.h CONFIG_CLEAN_FILES = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_1 = testpoint32$(EXEEXT) @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am__EXEEXT_2 = testpoint64$(EXEEXT) TestPoint_SOURCES = TestPoint.c TestPoint_OBJECTS = TestPoint.$(OBJEXT) TestPoint_LDADD = $(LDADD) am__DEPENDENCIES_1 = $(top_builddir)/src/libhe5_hdfeos.la am__DEPENDENCIES_2 = $(top_builddir)/gctp/src/libGctp.la TestPoint_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__testpoint32_SOURCES_DIST = testpoint32.f @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@am_testpoint32_OBJECTS = testpoint32.$(OBJEXT) testpoint32_OBJECTS = $(am_testpoint32_OBJECTS) testpoint32_LDADD = $(LDADD) testpoint32_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__testpoint64_SOURCES_DIST = testpoint64.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@am_testpoint64_OBJECTS = testpoint64.$(OBJEXT) testpoint64_OBJECTS = $(am_testpoint64_OBJECTS) testpoint64_LDADD = $(LDADD) testpoint64_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --mode=compile --tag=F77 $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --mode=link --tag=F77 $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = TestPoint.c $(testpoint32_SOURCES) $(testpoint64_SOURCES) DIST_SOURCES = TestPoint.c $(am__testpoint32_SOURCES_DIST) \ $(am__testpoint64_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F2CFORTRAN_32PTR_CONDITIONAL_FALSE = @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@ F2CFORTRAN_32PTR_CONDITIONAL_TRUE = @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@ F2CFORTRAN_90_CONDITIONAL_FALSE = @F2CFORTRAN_90_CONDITIONAL_FALSE@ F2CFORTRAN_90_CONDITIONAL_TRUE = @F2CFORTRAN_90_CONDITIONAL_TRUE@ F2CFORTRAN_CONDITIONAL_FALSE = @F2CFORTRAN_CONDITIONAL_FALSE@ F2CFORTRAN_CONDITIONAL_TRUE = @F2CFORTRAN_CONDITIONAL_TRUE@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INCLUDE_CONDITIONAL_FALSE = @INSTALL_INCLUDE_CONDITIONAL_FALSE@ INSTALL_INCLUDE_CONDITIONAL_TRUE = @INSTALL_INCLUDE_CONDITIONAL_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SZIP_ENCODER_CONDITIONAL_FALSE = @SZIP_ENCODER_CONDITIONAL_FALSE@ SZIP_ENCODER_CONDITIONAL_TRUE = @SZIP_ENCODER_CONDITIONAL_TRUE@ TESTDRIVERS_CONDITIONAL_FALSE = @TESTDRIVERS_CONDITIONAL_FALSE@ TESTDRIVERS_CONDITIONAL_TRUE = @TESTDRIVERS_CONDITIONAL_TRUE@ THREADSAFE_CONDITIONAL_FALSE = @THREADSAFE_CONDITIONAL_FALSE@ THREADSAFE_CONDITIONAL_TRUE = @THREADSAFE_CONDITIONAL_TRUE@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la LIBGCTP = $(top_builddir)/gctp/src/libGctp.la # Boilerplate definitions # Link against HDF-EOS5 and libGCTP INCLUDES = -I$(top_srcdir)/include LDADD = $(LIBHDFEOS5) $(LIBGCTP) @F2CFORTRAN_32PTR_CONDITIONAL_TRUE@@F2CFORTRAN_CONDITIONAL_TRUE@testpoint32_SOURCES = testpoint32.f @F2CFORTRAN_32PTR_CONDITIONAL_FALSE@@F2CFORTRAN_CONDITIONAL_TRUE@testpoint64_SOURCES = testpoint64.f # Run TestPoint as a test when the user types 'make check' TEST_SEQUENCES = test_c $(am__append_3) $(am__append_5) VERBOSE_TEST_SEQUENCES = test_c_verbose $(am__append_4) \ $(am__append_6) all: all-am .SUFFIXES: .SUFFIXES: .c .f .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/include.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testdrivers/point/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign testdrivers/point/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done TestPoint$(EXEEXT): $(TestPoint_OBJECTS) $(TestPoint_DEPENDENCIES) @rm -f TestPoint$(EXEEXT) $(LINK) $(TestPoint_LDFLAGS) $(TestPoint_OBJECTS) $(TestPoint_LDADD) $(LIBS) testpoint32$(EXEEXT): $(testpoint32_OBJECTS) $(testpoint32_DEPENDENCIES) @rm -f testpoint32$(EXEEXT) $(F77LINK) $(testpoint32_LDFLAGS) $(testpoint32_OBJECTS) $(testpoint32_LDADD) $(LIBS) testpoint64$(EXEEXT): $(testpoint64_OBJECTS) $(testpoint64_DEPENDENCIES) @rm -f testpoint64$(EXEEXT) $(F77LINK) $(testpoint64_LDFLAGS) $(testpoint64_OBJECTS) $(testpoint64_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestPoint.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-local check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am check-local clean \ clean-checkPROGRAMS clean-generic clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am test_c: $(check_PROGRAMS) ./TestPoint test_c_verbose: $(check_PROGRAMS) ./TestPoint -v h test_32f: $(check_PROGRAMS) ./testpoint32 test_64f: $(check_PROGRAMS) ./testpoint64 check-local: $(TEST_SEQUENCES) verbose_check: $(VERBOSE_TEST_SEQUENCES) .PHONY: $(TEST_SEQUENCES) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hdf-eos5-5.1.14+dfsg.1/testdrivers/point/testpoint64.f0000755000175000017500000033650612024715435023530 0ustar amckinstryamckinstry c---------------------------------------------------------------------------- c FILE: testpoint64.f c PURPOSE: To test HDF-EOS5 Point interface c Author: C. Praderas, Emergent IT Inc. c Date: June 2001 c---------------------------------------------------------------------------- program he5_pttestpoint64 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid1, ptid2, ptid3 integer ptid integer rank_1(3) integer rank_2(5) integer rank_3(4) integer rank_4(4) integer rank_5(6) integer dtype_1(3) integer dtype_2(5) integer dtype_3(4) integer dtype_4(4) integer dtype_5(6) integer array_1(3) integer array_2(5) integer array_3(4) integer array_4(4) integer array_5(6) integer i, zero integer rank integer datatype integer attr integer nflds integer level integer arr_rank integer dtype(3) integer nrecs integer nlevels integer attr1(5) integer attr2(5) integer ntype integer classid integer order integer fieldgroup integer rank_tt(3) integer dtype_tt(3) integer he5_ptopen integer he5_ptcreate integer he5_ptdetach integer he5_ptclose integer he5_ptattach integer he5_ptdeflevel integer he5_ptdeflinkage integer he5_ptwritelevel integer he5_ptfort2c integer he5_ptwrbckptr integer he5_ptwrfwdptr integer he5_ptwriteattr integer he5_ptreadlevel integer he5_ptlevelinfo integer he5_ptnrecs integer he5_ptnlevels integer he5_ptnfields integer he5_ptc2fort integer he5_ptinqattrs integer he5_ptreadattr integer he5_ptupdatelevel integer he5_ptwritegrpattr integer he5_ptwritelocattr integer he5_ptinqgrpattrs integer he5_ptinqlocattrs integer he5_ptattrinfo integer he5_ptgrpattrinfo integer he5_ptlocattrinfo integer he5_ptreadgrpattr integer he5_ptreadlocattr integer he5_ptinqdatatype integer*8 dims_1(3,1) integer*8 dims_2(5,1) integer*8 dims_3(4,1) integer*8 dims_4(4,1) integer*8 dims_5(6,1) integer*8 n integer*8 count(1) integer*8 dimens(2) integer*8 fortcount(8) integer*8 datasize integer*8 offset_tt(3) integer*8 dim_sizes_tt(3) integer*8 nattr integer*8 strbufsize integer*8 recs(32) integer*8 nrec integer*8 sz integer*8 size integer*4 date_tt integer*4 date(3) integer*4 date4_tt integer*4 date4(3) integer*4 wgt_tt integer*4 wgt(3) real*4 flt real*4 concentration_tt(4) real*4 conc(15,4) real*4 outconc(4,15) real*4 rain_tt real*4 rain(20) real*4 temp_tt real*4 temp(20) real*4 rain5_tt real*4 rain5(25) real*4 temp5_tt real*4 temp5(25) real*4 con(4,15) real*4 outcon(15,4) real*4 conc_tt(4) real*8 time_tt real*8 time(15) real*8 lon_tt real*8 lon(3) real*8 lat_tt real*8 lat(3) real*8 time3_tt real*8 time3(20) real*8 time5_tt real*8 time5(25) real*8 lon5_tt real*8 lon5(25) real*8 lat5_tt real*8 lat5(25) character*240 fieldlist1 character*240 fieldlist2 character*240 fieldlist3 character*240 fieldlist4 character*240 fieldlist5 character*80 levelname character*20 parent character*20 child character*20 linkfield character*80 fieldname character*80 attrname character*8 spc_tt character*8 spc(15) character*8 desc_tt character*8 desc(3) character*8 id_tt character*8 id(3) character*8 id3_tt character*8 id3(20) character*8 desc4_tt character*8 desc4(3) character*8 id4_tt character*8 id4(3) character*8 id5_tt character*8 id5(25) character*80 fieldname3(3) character*240 fieldlist character*240 attrlist character*8 spec(15) character*1 null_char_0 open(unit=1, file="testpoint.txt", status = "UNKNOWN") write(*,*)' ' write(1,*)' ' write(*,*)'Testing he5_ptath FORTRAN 77 interface' write(*,*)'======================================' write(1,*)'Testing he5_ptath FORTRAN 77 interface' write(1,*)'======================================' write(*,*)' ' write(1,*)' ' zero=0 c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_TRUNC) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_TRUNC)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_TRUNC)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptcreate c write(*,*)'Testing he5_ptcreate ' write(*,*)'=====================' write(1,*)'Testing he5_ptcreate ' write(1,*)'=====================' ptid1 = he5_ptcreate(ptfid, "Simple Point") if (ptid1 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid1 = he5_ptcreate(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptcreate ', ptid1 write(1,*)' ptid1 = he5_ptcreate(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptcreate ', ptid1 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptcreate c write(*,*)'Testing he5_ptcreate ' write(*,*)'=====================' write(1,*)'Testing he5_ptcreate ' write(1,*)'=====================' ptid2 = he5_ptcreate(ptfid, "FixedBuoy Point") if (ptid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid2 = he5_ptcreate(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptcreate ', ptid2 write(1,*)' ptid2 = he5_ptcreate(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptcreate ', ptid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptcreate c write(*,*)'Testing he5_ptcreate ' write(*,*)'=====================' write(1,*)'Testing he5_ptcreate ' write(1,*)'=====================' ptid3 = he5_ptcreate(ptfid, "FloatBuoy Point") if (ptid3 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid3 = he5_ptcreate(ptfid, "FloatBuoy Point")' write(*,*)' Value returned by he5_ptcreate ', ptid3 write(1,*)' ptid3 = he5_ptcreate(ptfid, "FloatBuoy Point")' write(1,*)' Value returned by he5_ptcreate ', ptid3 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid1)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid1)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid2)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid2)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid3)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid3)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "Simple Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Populate input information structure c ------------------------------------ levelname = 'Sensor' rank_1(1) = 1 rank_1(2) = 1 rank_1(3) = 1 fieldlist1 = 'Time,Concentration,Species' dtype_1(1) = HE5T_NATIVE_DOUBLE dtype_1(2) = HE5T_NATIVE_FLOAT dtype_1(3) = HE5T_NATIVE_CHAR array_1(1) = 0 array_1(2) = 1 array_1(3) = 1 dims_1(1,1) = 1 dims_1(2,1) = 4 dims_1(3,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'=====================' status = he5_ptdeflevel(ptid, levelname, rank_1, fieldlist1, 1dims_1, dtype_1, array_1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_1' write(*,*)' fieldlist1,dims_1, dtype_1, array_1)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_1' write(1,*)' fieldlist1,dims_1, dtype_1, array_1)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Populate input information structure c ------------------------------------ levelname = 'Desc-Loc' rank_2(1) = 1 rank_2(2) = 1 rank_2(3) = 1 rank_2(4) = 1 rank_2(5) = 1 fieldlist2 = 'Label,Longitude,Latitude,DeployDate,ID' dtype_2(1) = HE5T_NATIVE_CHAR dtype_2(2) = HE5T_NATIVE_DOUBLE dtype_2(3) = HE5T_NATIVE_DOUBLE dtype_2(4) = HE5T_NATIVE_INT dtype_2(5) = HE5T_NATIVE_CHAR array_2(1) = 1 array_2(2) = 0 array_2(3) = 0 array_2(4) = 0 array_2(5) = 1 dims_2(1,1) = 8 dims_2(2,1) = 1 dims_2(3,1) = 1 dims_2(4,1) = 1 dims_2(5,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'=====================' status = he5_ptdeflevel(ptid, levelname, rank_2, fieldlist2, 1dims_2, dtype_2, array_2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_2' write(*,*)' fieldlist2,dims_2, dtype_2, array_2)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_2' write(1,*)' fieldlist2,dims_2, dtype_2, array_2)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' c Populate input information structure c ------------------------------------ levelname = 'Observations' rank_3(1) = 1 rank_3(2) = 1 rank_3(3) = 1 rank_3(4) = 1 fieldlist3 = 'Time,Rainfall,Temperature,ID' dtype_3(1) = HE5T_NATIVE_DOUBLE dtype_3(2) = HE5T_NATIVE_FLOAT dtype_3(3) = HE5T_NATIVE_FLOAT dtype_3(4) = HE5T_NATIVE_CHAR array_3(1) = 0 array_3(2) = 0 array_3(3) = 0 array_3(4) = 1 dims_3(1,1) = 1 dims_3(2,1) = 1 dims_3(3,1) = 1 dims_3(4,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'======================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'======================' status = he5_ptdeflevel(ptid, levelname, rank_3, fieldlist3, 1dims_3, dtype_3, array_3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_3' write(*,*)' fieldlist3,dims_3, dtype_3, array_3)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_3' write(1,*)' fieldlist3,dims_3, dtype_3, array_3)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' parent = 'Desc-Loc' child = 'Observations' linkfield = 'ID' c Test Case -- he5_ptdeflinkage c write(*,*)'Testing he5_ptdeflinkage ' write(*,*)'========================' write(1,*)'Testing he5_ptdeflinkage ' write(1,*)'========================' status = he5_ptdeflinkage(ptid, parent, child, linkfield) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflinkage(ptid, parent, child,' write(*,*)' linkfield)' write(*,*)' Value returned by he5_ptdeflinkage ', status write(1,*)' status = he5_ptdeflinkage(ptid, parent, child,' write(1,*)' linkfield)' write(1,*)' Value returned by he5_ptdeflinkage ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FloatBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FloatBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FloatBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' levelname = 'Description' rank_4(1) = 1 rank_4(2) = 1 rank_4(3) = 1 rank_4(4) = 1 fieldlist4 = 'Label,DeployDate,Weight,ID' dtype_4(1) = HE5T_NATIVE_CHAR dtype_4(2) = HE5T_NATIVE_INT dtype_4(3) = HE5T_NATIVE_INT dtype_4(4) = HE5T_NATIVE_CHAR array_4(1) = 1 array_4(2) = 0 array_4(3) = 0 array_4(4) = 1 dims_4(1,1) = 8 dims_4(2,1) = 1 dims_4(3,1) = 1 dims_4(4,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'=====================' status = he5_ptdeflevel(ptid, levelname, rank_4, fieldlist4, 1dims_4, dtype_4, array_4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_4' write(*,*)' fieldlist4,dims_4, dtype_4, array_4)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_4' write(1,*)' fieldlist4,dims_4, dtype_4, array_4)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' levelname = 'Measurements' rank_5(1) = 1 rank_5(2) = 1 rank_5(3) = 1 rank_5(4) = 1 rank_5(5) = 1 rank_5(6) = 1 fieldlist5 = 'Time,Longitude,Latitude,Rainfall,Temperature,ID' dtype_5(1) = HE5T_NATIVE_DOUBLE dtype_5(2) = HE5T_NATIVE_DOUBLE dtype_5(3) = HE5T_NATIVE_DOUBLE dtype_5(4) = HE5T_NATIVE_FLOAT dtype_5(5) = HE5T_NATIVE_FLOAT dtype_5(6) = HE5T_NATIVE_CHAR array_5(1) = 0 array_5(2) = 0 array_5(3) = 0 array_5(4) = 0 array_5(5) = 0 array_5(6) = 1 dims_5(1,1) = 1 dims_5(2,1) = 1 dims_5(3,1) = 1 dims_5(4,1) = 1 dims_5(5,1) = 1 dims_5(6,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'=====================' status = he5_ptdeflevel(ptid, levelname, rank_5, fieldlist5, 1dims_5, dtype_5, array_5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_5' write(*,*)' fieldlist5,dims_5, dtype_5, array_5)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_5' write(1,*)' fieldlist5,dims_5, dtype_5, array_5)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' parent = 'Description' child = 'Measurements' linkfield = 'ID' c Test Case -- he5_ptdeflinkage c write(*,*)'Testing he5_ptdeflinkage ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflinkage ' write(1,*)'=====================' status = he5_ptdeflinkage(ptid, parent, child, linkfield) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflinkage(ptid, parent, child,' write(*,*)' linkfield)' write(*,*)' Value returned by he5_ptdeflinkage ', status write(1,*)' status = he5_ptdeflinkage(ptid, parent, child,' write(1,*)' linkfield)' write(1,*)' Value returned by he5_ptdeflinkage ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "Simple Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Read Simple Point c ----------------- open(unit=10, file='simple.txt', status='OLD') n = 0 do 10 i=1,1000 read(10, 110, end=100) time_tt, concentration_tt(1), 1 concentration_tt(2), 2 concentration_tt(3), 3 concentration_tt(4), 4 spc_tt time(i) = time_tt conc(i,1) = concentration_tt(1) conc(i,2) = concentration_tt(2) conc(i,3) = concentration_tt(3) conc(i,4) = concentration_tt(4) spc(i) = spc_tt n = n + 1 10 continue 100 close(unit=10) 110 format(F13.1,F6.2,F6.2,F6.2,F6.2,2X,A8) count(1) = n fieldname = 'Time' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, time) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, time)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, time)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c.....Convert array to 'C' order dimens(1) = 15 dimens(2) = 4 rank = 2 datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptfort2c c write(1,27) write(*,*)'Testing he5_ptfort2c ' write(*,*)'=====================' write(1,*)'Testing he5_ptfort2c ' write(1,*)'=====================' status = he5_ptfort2c(dimens, rank, datatype, conc, 1outconc) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptfort2c(dimens,rank,datatype,conc,' write(*,*)' outconc)' write(*,*)' Value returned by he5_ptfort2c ', status write(1,*)' status = he5_ptfort2c(dimens,rank,datatype,conc,' write(1,*)' outconc)' write(1,*)' Value returned by he5_ptfort2c ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Concentration' c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, outconc) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, outconc)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, outconc)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Species' datatype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, spc) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Read FixedBuoy Point c -------------------- open(unit=11, file='fixedBuoy0.txt', status='OLD') n = 0 do 20 i=1,1000 read(11, 210, end=200) desc_tt, lon_tt, lat_tt, date_tt, 1id_tt desc(i) = desc_tt lon(i) = lon_tt lat(i) = lat_tt date(i) = date_tt id(i) = id_tt n = n + 1 20 continue 200 close(unit=11) 210 format(A8,F13.7,F13.7,I7,1X,A8) count(1) = n fieldname = 'Label' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, desc) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, desc)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, desc)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Longitude' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, lon) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, lon)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, lon)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Latitude' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, lat) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, lat)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, lat)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'DeployDate' datatype = HE5T_NATIVE_INT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, date) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, date)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, date)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'ID' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, id) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, id)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, id)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c Read FixedBuoy Point - Level 1 c ------------------------------ open(unit=12, file='fixedBuoy1.txt', status='OLD') n = 0 do 30 i=1,1000 read(12, 310, end=300) time3_tt, rain_tt, temp_tt, id3_tt time3(i) = time3_tt rain(i) = rain_tt temp(i) = temp_tt id3(i) = id3_tt n = n + 1 30 continue 300 close(unit=12) 310 format(F13.2,F8.1,F8.2,3X,A8) count(1) = n fieldname = 'Time' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, time3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, time3)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, time3)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Rainfall' datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, rain) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, rain)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, rain)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Temperature' datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, temp) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, temp)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, temp)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'ID' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, id3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, id3)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, id3)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptwrbckptr c write(1,27) write(*,*)'Testing he5_ptwrbckptr ' write(*,*)'=====================' write(1,*)'Testing he5_ptwrbckptr ' write(1,*)'=====================' status = he5_ptwrbckptr(ptid,1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwrbckptr(ptid,1)' write(*,*)' Value returned by he5_ptwrbckptr ', status write(1,*)' status = he5_ptwrbckptr(ptid,1)' write(1,*)' Value returned by he5_ptwrbckptr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptwrfwdptr c write(1,27) write(*,*)'Testing he5_ptwrfwdptr ' write(*,*)'=====================' write(1,*)'Testing he5_ptwrfwdptr ' write(1,*)'=====================' status = he5_ptwrfwdptr(ptid,1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwrfwdptr(ptid,1)' write(*,*)' Value returned by he5_ptwrfwdptr ', status write(1,*)' status = he5_ptwrfwdptr(ptid,1)' write(1,*)' Value returned by he5_ptwrfwdptr ', status endif write(*,*)' ' write(1,*)' ' c Write attributes to "Fixed Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_int' ntype = HE5T_NATIVE_INT fortcount(1) = 1 attr = 9999 c Test Case -- he5_ptwriteattr c write(1,27) write(*,*)'Testing he5_ptwriteattr ' write(*,*)'=====================' write(1,*)'Testing he5_ptwriteattr ' write(1,*)'=====================' status = he5_ptwriteattr(ptid,attrname,ntype,fortcount, 1attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwriteattr(ptid,attrname,' write(*,*)' ntype,fortcount,attr)' write(*,*)' Value returned by he5_ptwriteattr ', status write(1,*)' status = he5_ptwriteattr(ptid,attrname,' write(1,*)' ntype,fortcount,attr)' write(1,*)' Value returned by he5_ptwriteattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FloatBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FloatBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FloatBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Read FloatBuoy Point - Level 0 c ------------------------------ open(unit=14, file='floatBuoy0.txt', status='OLD') n = 0 do 40 i=1,1000 read(14, 410, end=400) desc4_tt, date4_tt, wgt_tt, id4_tt desc4(i) = desc4_tt date4(i) = date4_tt wgt(i) = wgt_tt id4(i) = id4_tt n = n + 1 40 continue 400 close(unit=14) 410 format(A8,I8,I7,2X,A8) count(1) = n fieldname = 'Label' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, desc4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, desc4)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, desc4)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'DeployDate' datatype = HE5T_NATIVE_INT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, date4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, date4)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, date4)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Weight' datatype = HE5T_NATIVE_INT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, wgt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, wgt)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, wgt)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'ID' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, id4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, id4)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, id4)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c Read FixedBuoy Point - Level 1 c ------------------------------ open(unit=15, file='floatBuoy1.txt', status='OLD') n = 0 do 50 i=1,1000 read(15, 510, end=500) time5_tt, lon5_tt, lat5_tt, 1rain5_tt,temp5_tt,id5_tt time5(i) = time5_tt lon5(i) = lon5_tt lat5(i) = lat5_tt rain5(i) = rain5_tt temp5(i) = temp5_tt id5(i) = id5_tt n = n + 1 50 continue 500 close(unit=15) 510 format(F13.1,F13.6,F13.6,F8.1,F8.2,3X,A8) count(1) = n fieldname = 'Time' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, time5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, time5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, time5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Longitude' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, lon5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, lon5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, lon5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Latitude' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, lat5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, lat5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, lat5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Rainfall' datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, rain5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, rain5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, rain5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Temperature' datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, temp5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, temp5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, temp5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'ID' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, id5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, id5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, id5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptwrbckptr c write(*,*)'Testing he5_ptwrbckptr ' write(*,*)'======================' write(1,*)'Testing he5_ptwrbckptr ' write(1,*)'======================' status = he5_ptwrbckptr(ptid,1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwrbckptr(ptid,1)' write(*,*)' Value returned by he5_ptwrbckptr ', status write(1,*)' status = he5_ptwrbckptr(ptid,1)' write(1,*)' Value returned by he5_ptwrbckptr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptwrfwdptr c write(*,*)'Testing he5_ptwrfwdptr ' write(*,*)'======================' write(1,*)'Testing he5_ptwrfwdptr ' write(1,*)'======================' status = he5_ptwrfwdptr(ptid,1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwrfwdptr(ptid,1)' write(*,*)' Value returned by he5_ptwrfwdptr ', status write(1,*)' status = he5_ptwrfwdptr(ptid,1)' write(1,*)' Value returned by he5_ptwrfwdptr ', status endif write(*,*)' ' write(1,*)' ' c Write attributes to "Float Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_float' ntype = HE5T_NATIVE_FLOAT fortcount(1) = 1 flt = -7.5 c Test Case -- he5_ptwriteattr c write(*,*)'Testing he5_ptwriteattr ' write(*,*)'======================' write(1,*)'Testing he5_ptwriteattr ' write(1,*)'======================' status = he5_ptwriteattr(ptid,attrname, 1ntype,fortcount,flt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwriteattr(ptid,attrname,' write(*,*)' ntype,fortcount,flt)' write(*,*)' Value returned by he5_ptwriteattr ', status write(1,*)' status = he5_ptwriteattr(ptid,attrname,' write(1,*)' ntype,fortcount,flt)' write(1,*)' Value returned by he5_ptwriteattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "Simple Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Get level information c --------------------- level = 0 c Test Case -- he5_ptlevelinfo c write(*,*)'Testing he5_ptlevelinfo ' write(*,*)'=====================' write(1,*)'Testing he5_ptlevelinfo ' write(1,*)'=====================' status = he5_ptlevelinfo(ptid, level, levelname, rank_tt, 1fieldlist, dim_sizes_tt, datasize, offset_tt, dtype_tt) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status=he5_ptlevelinfo(ptid,level,levelname,' write(*,*)' rank_tt,fieldlist,dim_sizes_tt,' write(*,*)' datasize,offset_tt,dtype_tt)' write(*,*)' Value returned by he5_ptlevelinfo ', status write(1,*)' status=he5_ptlevelinfo(ptid,level,levelname,' write(1,*)' rank_tt,fieldlist,dim_sizes_tt,' write(1,*)' datasize,offset_tt,dtype_tt)' write(1,*)' Value returned by he5_ptlevelinfo ', status endif write(*,*)' ' write(1,*)' ' c Get the number of records in level c ---------------------------------- level = 0 c Test Case -- he5_ptnrecs c write(*,*)'Testing he5_ptnrecs ' write(*,*)'=====================' write(1,*)'Testing he5_ptnrecs ' write(1,*)'=====================' nrecs = he5_ptnrecs(ptid, level) if (nrecs .le. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nrecs = he5_ptnrecs(ptid, level)' write(*,*)' Value returned by he5_ptnrecs ', nrecs write(1,*)' nrecs = he5_ptnrecs(ptid, level)' write(1,*)' Value returned by he5_ptnrecs ', nrecs endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptnlevels c write(*,*)'Testing he5_ptnlevels ' write(*,*)'=====================' write(1,*)'Testing he5_ptnlevels ' write(1,*)'=====================' nlevels = he5_ptnlevels(ptid) if (nlevels .le. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nlevels = he5_ptnlevels(ptid)' write(*,*)' Value returned by he5_ptnlevels ', nlevels write(1,*)' nlevels = he5_ptnlevels(ptid)' write(1,*)' Value returned by he5_ptnlevels ', nlevels endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptnfields c write(*,*)'Testing he5_ptnfields ' write(*,*)'=====================' write(1,*)'Testing he5_ptnfields ' write(1,*)'=====================' nflds = he5_ptnfields(ptid, level, fieldlist, strbufsize) if (nflds .le. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nflds = he5_ptnfields(ptid, level,' write(*,*)' fieldlist, strbufsize)' write(*,*)' Value returned by he5_ptnfields ', nflds write(1,*)' nflds = he5_ptnfields(ptid, level,' write(1,*)' fieldlist, strbufsize)' write(1,*)' Value returned by he5_ptnfields ', nflds endif write(*,*)' ' write(1,*)' ' c Populate input information structure c ------------------------------------ dtype(1) = HE5T_NATIVE_DOUBLE dtype(2) = HE5T_NATIVE_FLOAT dtype(3) = HE5T_NATIVE_CHAR c Read the level data and print out c --------------------------------- fieldname3(1) = 'Time' c Test Case -- he5_ptreadlevel c write(*,*)'Testing he5_ptreadlevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptreadlevel ' write(1,*)'=====================' status = he5_ptreadlevel(ptid, 0, fieldname3(1), 1dtype(1), time) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(1),' write(*,*)' dtype(1), time)' write(*,*)' Value returned by he5_ptreadlevel ', status write(1,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(1),' write(1,*)' dtype(1), time)' write(1,*)' Value returned by he5_ptreadlevel ', status endif write(*,*)' ' write(1,*)' ' fieldname3(2) = 'Concentration' c Test Case -- he5_ptreadlevel c write(*,*)'Testing he5_ptreadlevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptreadlevel ' write(1,*)'=====================' status = he5_ptreadlevel(ptid, 0, fieldname3(2), 1dtype(2), con) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(2),' write(*,*)' dtype(2), con)' write(*,*)' Value returned by he5_ptreadlevel ', status write(1,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(2),' write(1,*)' dtype(2), con)' write(1,*)' Value returned by he5_ptreadlevel ', status endif write(*,*)' ' write(1,*)' ' c Convert 'C' array to Fortran order c ---------------------------------- dimens(1) = 15 dimens(2) = 4 arr_rank = 2 datatype = HE5T_NATIVE_FLOAT ccc status = he5_ptc2fort(dimens, arr_rank, datatype, con, ccc 1outcon) ccc write(*,*) 'Status returned by he5_ptc2fort(): ',status c Test Case -- he5_ptc2fort c write(1,27) write(*,*)'Testing he5_ptc2fort ' write(*,*)'=====================' write(1,*)'Testing he5_ptc2fort ' write(1,*)'=====================' status = he5_ptc2fort(dimens, arr_rank, datatype, con, 1outcon) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptc2fort(dimens,arr_rank,' write(*,*)' datatype,con,outcon)' write(*,*)' Value returned by he5_ptc2fort ', status write(1,*)' status = he5_ptc2fort(dimens,arr_rank,' write(1,*)' datatype,con,outcon)' write(1,*)' Value returned by he5_ptc2fort ', status endif write(*,*)' ' write(1,*)' ' fieldname3(3) = 'Species' c Test Case -- he5_ptreadlevel c write(*,*)'Testing he5_ptreadlevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptreadlevel ' write(1,*)'=====================' status = he5_ptreadlevel(ptid, 0, fieldname3(3), 1dtype(3), spec) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(3),' write(*,*)' dtype(3), spec)' write(*,*)' Value returned by he5_ptreadlevel ', status write(1,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(3),' write(1,*)' dtype(3), spec)' write(1,*)' Value returned by he5_ptreadlevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' attrname = 'GlobalAttribute_int' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) c Test Case -- he5_ptinqattrs c write(*,*)'Testing he5_ptinqattrs ' write(*,*)'======================' write(1,*)'Testing he5_ptinqattrs ' write(1,*)'======================' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize)' write(*,*)' Value returned by he5_ptinqattrs ', nattr write(1,*)' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize)' write(1,*)' Value returned by he5_ptinqattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptreadattr c write(*,*)'Testing he5_ptreadattr ' write(*,*)'======================' write(1,*)'Testing he5_ptreadattr ' write(1,*)'======================' status = he5_ptreadattr(ptid,attrname,attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadattr(ptid,attrname,attr)' write(*,*)' Value returned by he5_ptreadattr ', nattr write(1,*)' status = he5_ptreadattr(ptid,attrname,attr)' write(1,*)' Value returned by he5_ptreadattr ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "Simple Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' dtype(1) = HE5T_NATIVE_DOUBLE dtype(2) = HE5T_NATIVE_FLOAT dtype(3) = HE5T_NATIVE_CHAR nrec = 1 recs(1) = 0 level = 0 fieldname = 'Concentration' conc_tt(1) = 1.11 conc_tt(2) = 2.22 conc_tt(3) = 3.33 conc_tt(4) = 4.44 c Test Case -- he5_ptupdatelevel c write(*,*)'Testing he5_ptupdatelevel ' write(*,*)'=========================' write(1,*)'Testing he5_ptupdatelevel ' write(1,*)'=========================' status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(2), conc_tt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptupdatelevel(ptid, level,' write(*,*)' fieldname, nrec, recs,' write(*,*)' dtype(2), conc_tt)' write(*,*)' Value returned by he5_ptupdatelevel ', status write(1,*)' status = he5_ptupdatelevel(ptid, level,' write(1,*)' fieldname, nrec, recs,' write(1,*)' dtype(2), conc_tt)' write(1,*)' Value returned by he5_ptupdatelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Time' time_tt = 13131313.0 c Test Case -- he5_ptupdatelevel c write(*,*)'Testing he5_ptupdatelevel ' write(*,*)'=========================' write(1,*)'Testing he5_ptupdatelevel ' write(1,*)'=========================' status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(1), time_tt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptupdatelevel(ptid, level,' write(*,*)' fieldname, nrec, recs,' write(*,*)' dtype(1), time_tt)' write(*,*)' Value returned by he5_ptupdatelevel ', status write(1,*)' status = he5_ptupdatelevel(ptid, level,' write(1,*)' fieldname, nrec, recs,' write(1,*)' dtype(1), time_tt)' write(1,*)' Value returned by he5_ptupdatelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Species' spc_tt = 'AM' c Test Case -- he5_ptupdatelevel c write(*,*)'Testing he5_ptupdatelevel ' write(*,*)'=========================' write(1,*)'Testing he5_ptupdatelevel ' write(1,*)'=========================' status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(3), spc_tt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptupdatelevel(ptid, level,' write(*,*)' fieldname, nrec, recs,' write(*,*)' dtype(3), spc_tt)' write(*,*)' Value returned by he5_ptupdatelevel ', status write(1,*)' status = he5_ptupdatelevel(ptid, level,' write(1,*)' fieldname, nrec, recs,' write(1,*)' dtype(3), spc_tt)' write(1,*)' Value returned by he5_ptupdatelevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Write attributes to "Fixed Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_int' ntype = HE5T_NATIVE_INT fortcount(1) = 1 attr = 9999 c Test Case -- he5_ptwriteattr c write(*,*)'Testing he5_ptwriteattr ' write(*,*)'=======================' write(1,*)'Testing he5_ptwriteattr ' write(1,*)'=======================' status = he5_ptwriteattr(ptid,attrname,ntype,fortcount, 1attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwriteattr(ptid,attrname,' write(*,*)' ntype,fortcount,attr)' write(*,*)' Value returned by he5_ptwriteattr ', status write(1,*)' status = he5_ptwriteattr(ptid,attrname,' write(1,*)' ntype,fortcount,attr)' write(1,*)' Value returned by he5_ptwriteattr ', status endif write(*,*)' ' write(1,*)' ' attrname = 'GroupAttribute' ntype = HE5T_NATIVE_INT fortcount(1) = 5 attr1(1) = 1 attr1(2) = 2 attr1(3) = 3 attr1(4) = 4 attr1(5) = 5 c Test Case -- he5_ptwritegrpattr c write(*,*)'Testing he5_ptwritegrpattr ' write(*,*)'==========================' write(1,*)'Testing he5_ptwritegrpattr ' write(1,*)'==========================' status = he5_ptwritegrpattr(ptid,attrname,ntype,fortcount, 1attr1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritegrpattr(ptid,attrname,' write(*,*)' ntype,fortcount,attr1)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptwritegrpattr(ptid,attrname,' write(1,*)' ntype,fortcount,attr1)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' levelname = 'Observations' attrname = 'LocalAttribute' ntype = HE5T_NATIVE_INT fortcount(1) = 5 attr2(1) = 10 attr2(2) = 20 attr2(3) = 30 attr2(4) = 40 attr2(5) = 50 c Test Case -- he5_ptwritelocattr c write(*,*)'Testing he5_ptwritelocattr ' write(*,*)'==========================' write(1,*)'Testing he5_ptwritelocattr ' write(1,*)'==========================' status = he5_ptwritelocattr(ptid,levelname,attrname, 1ntype,fortcount,attr2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelocattr(ptid,' write(*,*)' levelname,attrname,ntype,' write(*,*)' fortcount,attr2)' write(*,*)' Value returned by he5_ptwritelocattr ', status write(1,*)' status = he5_ptwritelocattr(ptid,' write(1,*)' levelname,attrname,ntype,' write(1,*)' fortcount,attr2)' write(1,*)' Value returned by he5_ptwritelocattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' attrname = 'GlobalAttribute_float' ntype = HE5T_NATIVE_FLOAT fortcount(1) = 1 flt = -7.5 c Test Case -- he5_ptwriteattr c write(*,*)'Testing he5_ptwriteattr ' write(*,*)'=======================' write(1,*)'Testing he5_ptwriteattr ' write(1,*)'=======================' status = he5_ptwriteattr(ptid,attrname, 1ntype,fortcount,flt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwriteattr(ptid,attrname,' write(*,*)' ntype,fortcount,flt)' write(*,*)' Value returned by he5_ptwriteattr ', status write(1,*)' status = he5_ptwriteattr(ptid,attrname,' write(1,*)' ntype,fortcount,flt)' write(1,*)' Value returned by he5_ptwriteattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' null_char_0 = '0' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Global Attributes c ----------------- attrname = 'GlobalAttribute_int' print *,'Global Attribute: ' c Test Case -- he5_ptreadattr c write(*,*)'Testing he5_ptreadattr ' write(*,*)'======================' write(1,*)'Testing he5_ptreadattr ' write(1,*)'======================' status = he5_ptreadattr(ptid,attrname,attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadattr(ptid,attrname,attr)' write(*,*)' Value returned by he5_ptreadattr ', status write(1,*)' status = he5_ptreadattr(ptid,attrname,attr)' write(1,*)' Value returned by he5_ptreadattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqattrs c write(*,*)'Testing he5_ptinqattrs ' write(*,*)'======================' write(1,*)'Testing he5_ptinqattrs ' write(1,*)'======================' nattr = he5_ptinqattrs(ptid,null_char_0,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqattrs(ptid,' write(*,*)' null_char_0,strbufsize)' write(*,*)' Value returned by he5_ptinqattrs ', nattr write(1,*)' nattr = he5_ptinqattrs(ptid,' write(1,*)' null_char_0,strbufsize)' write(1,*)' Value returned by he5_ptinqattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqattrs c write(*,*)'Testing he5_ptinqattrs ' write(*,*)'======================' write(1,*)'Testing he5_ptinqattrs ' write(1,*)'======================' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize)' write(*,*)' Value returned by he5_ptinqattrs ', nattr write(1,*)' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize)' write(1,*)' Value returned by he5_ptinqattrs ', nattr endif write(*,*)' ' write(1,*)' ' attrname = 'GlobalAttribute_int' c Test Case -- he5_ptattrinfo c write(*,*)'Testing he5_ptattrinfo ' write(*,*)'======================' write(1,*)'Testing he5_ptattrinfo ' write(1,*)'======================' status = he5_ptattrinfo(ptid,attrname,ntype,sz) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptattrinfo(ptid,attrname,ntype,sz)' write(*,*)' Value returned by he5_ptattrinfo ', status write(1,*)' status = he5_ptattrinfo(ptid,attrname,ntype,sz)' write(1,*)' Value returned by he5_ptattrinfo ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattrinfo c write(*,*)'Testing he5_ptattrinfo ' write(*,*)'======================' write(1,*)'Testing he5_ptattrinfo ' write(1,*)'======================' status = he5_ptattrinfo(ptid,attrname,ntype,sz) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptattrinfo(ptid,attrname,ntype,sz)' write(*,*)' Value returned by he5_ptattrinfo ', status write(1,*)' status = he5_ptattrinfo(ptid,attrname,ntype,sz)' write(1,*)' Value returned by he5_ptattrinfo ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptreadattr c write(*,*)'Testing he5_ptreadattr ' write(*,*)'======================' write(1,*)'Testing he5_ptreadattr ' write(1,*)'======================' status = he5_ptreadattr(ptid,attrname,flt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadattr(ptid,attrname,flt)' write(*,*)' Value returned by he5_ptreadattr ', status write(1,*)' status = he5_ptreadattr(ptid,attrname,flt)' write(1,*)' Value returned by he5_ptreadattr ', status endif write(*,*)' ' write(1,*)' ' attrname = 'GroupAttribute' c Test Case -- he5_ptreadgrpattr c write(*,*)'Testing he5_ptreadgrpattr' write(*,*)'=========================' write(1,*)'Testing he5_ptreadgrpattr' write(1,*)'=========================' status = he5_ptreadgrpattr(ptid,attrname,attr1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadgrpattr(ptid,attrname,attr1)' write(*,*)' Value returned by he5_ptreadgrpattr ', status write(1,*)' status = he5_ptreadgrpattr(ptid,attrname,attr1)' write(1,*)' Value returned by he5_ptreadgrpattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqgrpattrs c write(*,*)'Testing he5_ptinqgrpattrs ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqgrpattrs ' write(1,*)'=========================' nattr = he5_ptinqgrpattrs(ptid,null_char_0,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqgrpattrs(ptid,' write(*,*)' null_char_0,strbufsize)' write(*,*)' Value returned by he5_ptinqgrpattrs ', nattr write(1,*)' nattr = he5_ptinqgrpattrs(ptid,' write(1,*)' null_char_0,strbufsize)' write(1,*)' Value returned by he5_ptinqgrpattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqgrpattrs c write(*,*)'Testing he5_ptinqgrpattrs ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqgrpattrs ' write(1,*)'=========================' nattr = he5_ptinqgrpattrs(ptid,attrlist,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqgrpattrs(ptid,' write(*,*)' attrlist,strbufsize)' write(*,*)' Value returned by he5_ptinqgrpattrs ', status write(1,*)' nattr = he5_ptinqgrpattrs(ptid,' write(1,*)' attrlist,strbufsize)' write(1,*)' Value returned by he5_ptinqgrpattrs ', status endif write(*,*)' ' write(1,*)' ' attrname = 'GroupAttribute' c Test Case -- he5_ptgrpattrinfo c write(*,*)'Testing he5_ptgrpattrinfo ' write(*,*)'=========================' write(1,*)'Testing he5_ptgrpattrinfo ' write(1,*)'=========================' status = he5_ptgrpattrinfo(ptid,attrname,ntype,sz) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptgrpattrinfo(ptid,' write(*,*)' attrname,ntype,sz)' write(*,*)' Value returned by he5_ptgrpattrinfo ', status write(1,*)' status = he5_ptgrpattrinfo(ptid,' write(1,*)' attrname,ntype,sz)' write(1,*)' Value returned by he5_ptgrpattrinfo ', status endif write(*,*)' ' write(1,*)' ' attrname = 'LocalAttribute' levelname = 'Observations' c Test Case -- he5_ptreadlocattr c write(*,*)'Testing he5_ptreadlocattr ' write(*,*)'=========================' write(1,*)'Testing he5_ptreadlocattr ' write(1,*)'=========================' status = he5_ptreadlocattr(ptid,levelname,attrname,attr2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadlocattr(ptid,' write(*,*)' levelname,attrname,attr2)' write(*,*)' Value returned by he5_ptreadlocattr ', status write(1,*)' status = he5_ptreadlocattr(ptid,' write(1,*)' levelname,attrname,attr2)' write(1,*)' Value returned by he5_ptreadlocattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqlocattrs c write(*,*)'Testing he5_ptinqlocattrs ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqlocattrs ' write(1,*)'=========================' nattr = he5_ptinqlocattrs(ptid,levelname,null_char_0,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqlocattrs(ptid,' write(*,*)' levelname,null_char_0,strbufsize)' write(*,*)' Value returned by he5_ptinqlocattrs ', nattr write(1,*)' nattr = he5_ptinqlocattrs(ptid,' write(1,*)' levelname,null_char_0,strbufsize)' write(1,*)' Value returned by he5_ptinqlocattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqlocattrs c write(*,*)'Testing he5_ptinqlocattrs ' write(*,*)'=====================' write(1,*)'Testing he5_ptinqlocattrs ' write(1,*)'=====================' nattr = he5_ptinqlocattrs(ptid,levelname,attrlist,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqlocattrs(ptid,' write(*,*)' levelname,attrlist,strbufsize)' write(*,*)' Value returned by he5_ptinqlocattrs ', nattr write(1,*)' nattr = he5_ptinqlocattrs(ptid,' write(1,*)' levelname,attrlist,strbufsize)' write(1,*)' Value returned by he5_ptinqlocattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptlocattrinfo c write(*,*)'Testing he5_ptlocattrinfo ' write(*,*)'=========================' write(1,*)'Testing he5_ptlocattrinfo ' write(1,*)'=========================' status = he5_ptlocattrinfo(ptid,levelname,attrname,ntype,sz) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptlocattrinfo(ptid,' write(*,*)' levelname,attrname,ntype,sz)' write(*,*)' Value returned by he5_ptlocattrinfo ', status write(1,*)' status = he5_ptlocattrinfo(ptid,' write(1,*)' levelname,attrname,ntype,sz)' write(1,*)' Value returned by he5_ptlocattrinfo ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' null_char_0 = '0' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' fieldgroup = HE5_HDFE_DATAGROUP fieldname = 'Observations' c Test Case -- he5_ptinqdatatype c write(*,*)'Testing he5_ptinqdatatype ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqdatatype ' write(1,*)'=========================' status = he5_ptinqdatatype(ptid,fieldname,null_char_0,fieldgroup, 1datatype,classid,order,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptinqdatatype(ptid,fieldname,' write(*,*)' null_char_0,fieldgroup,datatype,classid,' write(*,*)' order,size)' write(*,*)' Value returned by he5_ptinqdatatype ', status write(1,*)' status = he5_ptinqdatatype(ptid,fieldname,' write(1,*)' null_char_0,fieldgroup,datatype,classid,' write(1,*)' order,size)' write(1,*)' Value returned by he5_ptinqdatatype ', status endif write(*,*)' ' write(1,*)' ' fieldgroup = HE5_HDFE_ATTRGROUP attrname = 'GlobalAttribute_int' c Test Case -- he5_ptinqdatatype c write(*,*)'Testing he5_ptinqdatatype ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqdatatype ' write(1,*)'=========================' status = he5_ptinqdatatype(ptid,null_char_0,attrname,fieldgroup, 1datatype,classid,order,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptinqdatatype(ptid,null_char_0,' write(*,*)' attrname,fieldgroup,datatype,' write(*,*)' classid,order,size)' write(*,*)' Value returned by he5_ptinqdatatype ', status write(1,*)' status = he5_ptinqdatatype(ptid,null_char_0,' write(1,*)' attrname,fieldgroup,datatype,' write(1,*)' classid,order,size)' write(1,*)' Value returned by he5_ptinqdatatype ', status endif write(*,*)' ' write(1,*)' ' fieldgroup = HE5_HDFE_GRPATTRGROUP attrname = 'GroupAttribute' c Test Case -- he5_ptinqdatatype c write(*,*)'Testing he5_ptinqdatatype ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqdatatype ' write(1,*)'=========================' status = he5_ptinqdatatype(ptid,null_char_0,attrname,fieldgroup, 1datatype,classid,order,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptinqdatatype(ptid,null_char_0,' write(*,*)' attrname,fieldgroup,datatype,' write(*,*)' classid,order,size)' write(*,*)' Value returned by he5_ptinqdatatype ', status write(1,*)' status = he5_ptinqdatatype(ptid,null_char_0,' write(1,*)' attrname,fieldgroup,datatype,' write(1,*)' classid,order,size)' write(1,*)' Value returned by he5_ptinqdatatype ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Observations' fieldgroup = HE5_HDFE_LOCATTRGROUP attrname = 'LocalAttribute' c Test Case -- he5_ptinqdatatype c write(*,*)'Testing he5_ptinqdatatype ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqdatatype ' write(1,*)'=========================' status = he5_ptinqdatatype(ptid,fieldname,attrname,fieldgroup, 1datatype,classid,order,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptinqdatatype(ptid,fieldname,' write(*,*)' attrname,fieldgroup,datatype,' write(*,*)' classid,order,size)' write(*,*)' Value returned by he5_ptinqdatatype ', status write(1,*)' status = he5_ptinqdatatype(ptid,fieldname,' write(1,*)' attrname,fieldgroup,datatype,' write(1,*)' classid,order,size)' write(1,*)' Value returned by he5_ptinqdatatype ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' close(unit=1) 27 format(' ') 230 format('********Error unexpected**********') 240 format('***********Passed Test*********') stop end hdf-eos5-5.1.14+dfsg.1/testdrivers/point/simple.txt0000755000175000017500000000116612024715435023177 0ustar amckinstryamckinstry 46353400.0 2.98 3.99 2.63 1.41 CO 46572420.7 3.99 4.52 2.35 2.52 CO2 46853103.3 2.11 3.10 4.81 1.83 CO 47485493.4 3.39 3.02 3.09 3.90 CO2 48066418.5 2.06 4.49 1.67 1.74 O3 48474414.6 1.06 4.63 4.44 3.33 CO2 48866282.4 2.18 2.02 1.41 1.00 O3 49388188.2 3.73 2.00 2.30 1.46 O3 49858070.5 2.97 3.75 2.33 5.02 NOx 50370437.1 4.38 3.70 1.96 3.11 NOx 50515373.3 0.24 1.91 4.33 1.49 CO 51257471.8 3.62 1.40 0.48 2.32 CO2 51708197.8 3.53 3.16 2.01 1.56 O3 51859454.7 0.62 0.76 2.06 4.01 O3 52433289.8 1.68 1.35 1.71 4.06 O3 hdf-eos5-5.1.14+dfsg.1/testdrivers/point/tutils.h0000755000175000017500000000466212024715435022646 0ustar amckinstryamckinstry/**************************************************************************** * NCSA HDF * * Software Development Group * * National Center for Supercomputing Applications * * University of Illinois at Urbana-Champaign * * 605 E. Springfield, Champaign IL 61820 * * * * For conditions of distribution and use, see the accompanying * * hdf/COPYING file. * * * ****************************************************************************/ /* tutils.h,v 1.12 1995/10/05 16:17:28 koziol Exp */ #ifndef _TUTILS_H #define _TUTILS_H /* Define these for use in all the tests */ #ifndef TESTMASTER extern #endif int num_errs #ifdef TESTMASTER = 0 #endif , Verbosity #ifdef TESTMASTER = 0 #endif ; #ifdef TEST_PC #define FAR far #else #ifndef FAR #define FAR /* */ #endif /* FAR */ #endif /* TEST_PC */ /* Use %ld to print the value because long could cover most cases. */ /* Used to make certain a return value _is_not_ a value */ #define CHECK(ret, val, where) \ do {if (Verbosity>9) printf(" Call to HDF routine: %15s at line %4d in %s returned %ld \n",where,(int)__LINE__,__FILE__,(long)ret);\ if(ret == val) {printf("*** UNEXPECTED RETURN from %s is %ld at line %4d in %s\n", where, (long)ret, (int)__LINE__,__FILE__); num_errs++;} \ } while(0) /* Used to make certain a return value _is_ a value */ #define VERIFY(x, val, where) \ do {if (Verbosity>9) printf(" Call to HDF routine: %15s at line %4d in %s had value %ld \n",where,(int)__LINE__,__FILE__,(long)x);\ if(x != val) {printf("*** UNEXPECTED VALUE from %s is %ld at line %4d in %s\n", where, (long)x,(int)__LINE__,__FILE__); num_errs++;} \ } while(0) #define RESULT(a) \ do { \ if (Verbosity>8) printf(" Call to HDF routine: %15s at line %4d in %s returned %ld \n",a,(int)__LINE__,__FILE__,(long)ret); \ if (Verbosity>9) HEprint(stdout,0); \ if(ret == FAIL) {printf("*** UNEXPECTED RETURN from %s is %ld at line %4d in %s\n", a, (long)ret,(int)__LINE__,__FILE__); num_errs++;} \ } while(0) #define MESSAGE(v,a) {if (Verbosity>=v) {a}} #endif /* _TUTILS_H */ hdf-eos5-5.1.14+dfsg.1/testdrivers/point/fixedBuoy0.txt0000755000175000017500000000020712024715435023717 0ustar amckinstryamckinstryPacific -140.2520148 -10.3024294 891218 P Atlantic -54.8270879 43.1362228 900228 A Indian 71.7147412 7.4254709 900912 I hdf-eos5-5.1.14+dfsg.1/testdrivers/point/hdfeos5_64.inc0000644000175000017500000000101512024715435023474 0ustar amckinstryamckinstry! * ========================================================== ! * File: hdfeos5_64.inc ! * Author: A. Muslimov, Emergent Technology Services, Inc. ! * Date: March 19, 2002 ! * Purpose: Fortran header file for HDFEOS5 routines on 64 ! * bit platforms ! * ========================================================== ! * Contents: ! * ! * ! * =========================================================== integer*8 HE5S_UNLIMITED_F_64 parameter(HE5S_UNLIMITED_F_64 = -1) hdf-eos5-5.1.14+dfsg.1/testdrivers/point/floatBuoy0.txt0000755000175000017500000000012112024715435023720 0ustar amckinstryamckinstryPacific 901023 1200 P Atlantic 890419 2550 A Indian 900605 800 I hdf-eos5-5.1.14+dfsg.1/testdrivers/point/testpoint32.f0000755000175000017500000033632512024715435023522 0ustar amckinstryamckinstry c---------------------------------------------------------------------------- c FILE: testpoint32.f c PURPOSE: To test HDF-EOS5 Point interface c---------------------------------------------------------------------------- program he5_pttestpoint32 implicit none include 'hdfeos5.inc' integer status integer ptfid integer ptid1, ptid2, ptid3 integer ptid integer rank_1(3) integer rank_2(5) integer rank_3(4) integer rank_4(4) integer rank_5(6) integer dtype_1(3) integer dtype_2(5) integer dtype_3(4) integer dtype_4(4) integer dtype_5(6) integer array_1(3) integer array_2(5) integer array_3(4) integer array_4(4) integer array_5(6) integer i, zero integer rank integer datatype integer attr integer nflds integer level integer arr_rank integer dtype(3) integer nrecs integer nlevels integer attr1(5) integer attr2(5) integer ntype integer classid integer order integer fieldgroup integer he5_ptopen integer he5_ptcreate integer he5_ptdetach integer he5_ptclose integer he5_ptattach integer he5_ptdeflevel integer he5_ptdeflinkage integer he5_ptwritelevel integer he5_ptfort2c integer he5_ptwrbckptr integer he5_ptwrfwdptr integer he5_ptwriteattr integer he5_ptreadlevel integer he5_ptlevelinfo integer he5_ptnrecs integer he5_ptnlevels integer he5_ptnfields integer he5_ptc2fort integer he5_ptinqattrs integer he5_ptreadattr integer he5_ptupdatelevel integer he5_ptwritegrpattr integer he5_ptwritelocattr integer he5_ptinqgrpattrs integer he5_ptinqlocattrs integer he5_ptattrinfo integer he5_ptgrpattrinfo integer he5_ptlocattrinfo integer he5_ptreadgrpattr integer he5_ptreadlocattr integer he5_ptinqdatatype integer*4 dims_1(3,1) integer*4 dims_2(5,1) integer*4 dims_3(4,1) integer*4 dims_4(4,1) integer*4 dims_5(6,1) integer*4 n integer*4 count(1) integer*4 dimens(2) integer*4 fortcount(8) integer*4 date_tt integer*4 date(3) integer*4 date4_tt integer*4 date4(3) integer*4 wgt_tt integer*4 wgt(3) integer*4 datasize integer*4 rank_tt(3) integer*4 offset_tt(3) integer*4 dtype_tt(3) integer*4 dim_sizes_tt(3) integer*4 nattr integer*4 strbufsize integer*4 recs(32) integer*4 nrec integer*4 sz integer*4 size real*4 flt real*4 concentration_tt(4) real*4 conc(15,4) real*4 outconc(4,15) real*4 rain_tt real*4 rain(20) real*4 temp_tt real*4 temp(20) real*4 rain5_tt real*4 rain5(25) real*4 temp5_tt real*4 temp5(25) real*4 con(4,15) real*4 outcon(15,4) real*4 conc_tt(4) real*8 time_tt real*8 time(15) real*8 lon_tt real*8 lon(3) real*8 lat_tt real*8 lat(3) real*8 time3_tt real*8 time3(20) real*8 time5_tt real*8 time5(25) real*8 lon5_tt real*8 lon5(25) real*8 lat5_tt real*8 lat5(25) character*240 fieldlist1 character*240 fieldlist2 character*240 fieldlist3 character*240 fieldlist4 character*240 fieldlist5 character*80 levelname character*20 parent character*20 child character*20 linkfield character*80 fieldname character*80 attrname character*8 spc_tt character*8 spc(15) character*8 desc_tt character*8 desc(3) character*8 id_tt character*8 id(3) character*8 id3_tt character*8 id3(20) character*8 desc4_tt character*8 desc4(3) character*8 id4_tt character*8 id4(3) character*8 id5_tt character*8 id5(25) character*80 fieldname3(3) character*240 fieldlist character*240 attrlist character*8 spec(15) character*1 null_char_0 open(unit=1, file="testpoint.txt", status = "UNKNOWN") write(*,*)' ' write(1,*)' ' write(*,*)'Testing he5_ptath FORTRAN 77 interface' write(*,*)'======================================' write(1,*)'Testing he5_ptath FORTRAN 77 interface' write(1,*)'======================================' write(*,*)' ' write(1,*)' ' zero=0 c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_TRUNC) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_TRUNC)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_TRUNC)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptcreate c write(*,*)'Testing he5_ptcreate ' write(*,*)'=====================' write(1,*)'Testing he5_ptcreate ' write(1,*)'=====================' ptid1 = he5_ptcreate(ptfid, "Simple Point") if (ptid1 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid1 = he5_ptcreate(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptcreate ', ptid1 write(1,*)' ptid1 = he5_ptcreate(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptcreate ', ptid1 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptcreate c write(*,*)'Testing he5_ptcreate ' write(*,*)'=====================' write(1,*)'Testing he5_ptcreate ' write(1,*)'=====================' ptid2 = he5_ptcreate(ptfid, "FixedBuoy Point") if (ptid2 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid2 = he5_ptcreate(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptcreate ', ptid2 write(1,*)' ptid2 = he5_ptcreate(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptcreate ', ptid2 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptcreate c write(*,*)'Testing he5_ptcreate ' write(*,*)'=====================' write(1,*)'Testing he5_ptcreate ' write(1,*)'=====================' ptid3 = he5_ptcreate(ptfid, "FloatBuoy Point") if (ptid3 .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid3 = he5_ptcreate(ptfid, "FloatBuoy Point")' write(*,*)' Value returned by he5_ptcreate ', ptid3 write(1,*)' ptid3 = he5_ptcreate(ptfid, "FloatBuoy Point")' write(1,*)' Value returned by he5_ptcreate ', ptid3 endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid1)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid1)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid2)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid2)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid3)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid3)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "Simple Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Populate input information structure c ------------------------------------ levelname = 'Sensor' rank_1(1) = 1 rank_1(2) = 1 rank_1(3) = 1 fieldlist1 = 'Time,Concentration,Species' dtype_1(1) = HE5T_NATIVE_DOUBLE dtype_1(2) = HE5T_NATIVE_FLOAT dtype_1(3) = HE5T_NATIVE_CHAR array_1(1) = 0 array_1(2) = 1 array_1(3) = 1 dims_1(1,1) = 1 dims_1(2,1) = 4 dims_1(3,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'=====================' status = he5_ptdeflevel(ptid, levelname, rank_1, fieldlist1, 1dims_1, dtype_1, array_1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_1' write(*,*)' fieldlist1,dims_1, dtype_1, array_1)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_1' write(1,*)' fieldlist1,dims_1, dtype_1, array_1)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Populate input information structure c ------------------------------------ levelname = 'Desc-Loc' rank_2(1) = 1 rank_2(2) = 1 rank_2(3) = 1 rank_2(4) = 1 rank_2(5) = 1 fieldlist2 = 'Label,Longitude,Latitude,DeployDate,ID' dtype_2(1) = HE5T_NATIVE_CHAR dtype_2(2) = HE5T_NATIVE_DOUBLE dtype_2(3) = HE5T_NATIVE_DOUBLE dtype_2(4) = HE5T_NATIVE_INT dtype_2(5) = HE5T_NATIVE_CHAR array_2(1) = 1 array_2(2) = 0 array_2(3) = 0 array_2(4) = 0 array_2(5) = 1 dims_2(1,1) = 8 dims_2(2,1) = 1 dims_2(3,1) = 1 dims_2(4,1) = 1 dims_2(5,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'=====================' status = he5_ptdeflevel(ptid, levelname, rank_2, fieldlist2, 1dims_2, dtype_2, array_2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_2' write(*,*)' fieldlist2,dims_2, dtype_2, array_2)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_2' write(1,*)' fieldlist2,dims_2, dtype_2, array_2)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' c Populate input information structure c ------------------------------------ levelname = 'Observations' rank_3(1) = 1 rank_3(2) = 1 rank_3(3) = 1 rank_3(4) = 1 fieldlist3 = 'Time,Rainfall,Temperature,ID' dtype_3(1) = HE5T_NATIVE_DOUBLE dtype_3(2) = HE5T_NATIVE_FLOAT dtype_3(3) = HE5T_NATIVE_FLOAT dtype_3(4) = HE5T_NATIVE_CHAR array_3(1) = 0 array_3(2) = 0 array_3(3) = 0 array_3(4) = 1 dims_3(1,1) = 1 dims_3(2,1) = 1 dims_3(3,1) = 1 dims_3(4,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'======================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'======================' status = he5_ptdeflevel(ptid, levelname, rank_3, fieldlist3, 1dims_3, dtype_3, array_3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_3' write(*,*)' fieldlist3,dims_3, dtype_3, array_3)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_3' write(1,*)' fieldlist3,dims_3, dtype_3, array_3)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' parent = 'Desc-Loc' child = 'Observations' linkfield = 'ID' c Test Case -- he5_ptdeflinkage c write(*,*)'Testing he5_ptdeflinkage ' write(*,*)'========================' write(1,*)'Testing he5_ptdeflinkage ' write(1,*)'========================' status = he5_ptdeflinkage(ptid, parent, child, linkfield) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflinkage(ptid, parent, child,' write(*,*)' linkfield)' write(*,*)' Value returned by he5_ptdeflinkage ', status write(1,*)' status = he5_ptdeflinkage(ptid, parent, child,' write(1,*)' linkfield)' write(1,*)' Value returned by he5_ptdeflinkage ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FloatBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FloatBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FloatBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' levelname = 'Description' rank_4(1) = 1 rank_4(2) = 1 rank_4(3) = 1 rank_4(4) = 1 fieldlist4 = 'Label,DeployDate,Weight,ID' dtype_4(1) = HE5T_NATIVE_CHAR dtype_4(2) = HE5T_NATIVE_INT dtype_4(3) = HE5T_NATIVE_INT dtype_4(4) = HE5T_NATIVE_CHAR array_4(1) = 1 array_4(2) = 0 array_4(3) = 0 array_4(4) = 1 dims_4(1,1) = 8 dims_4(2,1) = 1 dims_4(3,1) = 1 dims_4(4,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'=====================' status = he5_ptdeflevel(ptid, levelname, rank_4, fieldlist4, 1dims_4, dtype_4, array_4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_4' write(*,*)' fieldlist4,dims_4, dtype_4, array_4)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_4' write(1,*)' fieldlist4,dims_4, dtype_4, array_4)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' levelname = 'Measurements' rank_5(1) = 1 rank_5(2) = 1 rank_5(3) = 1 rank_5(4) = 1 rank_5(5) = 1 rank_5(6) = 1 fieldlist5 = 'Time,Longitude,Latitude,Rainfall,Temperature,ID' dtype_5(1) = HE5T_NATIVE_DOUBLE dtype_5(2) = HE5T_NATIVE_DOUBLE dtype_5(3) = HE5T_NATIVE_DOUBLE dtype_5(4) = HE5T_NATIVE_FLOAT dtype_5(5) = HE5T_NATIVE_FLOAT dtype_5(6) = HE5T_NATIVE_CHAR array_5(1) = 0 array_5(2) = 0 array_5(3) = 0 array_5(4) = 0 array_5(5) = 0 array_5(6) = 1 dims_5(1,1) = 1 dims_5(2,1) = 1 dims_5(3,1) = 1 dims_5(4,1) = 1 dims_5(5,1) = 1 dims_5(6,1) = 8 c Test Case -- he5_ptdeflevel c write(1,27) write(*,*)'Testing he5_ptdeflevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflevel ' write(1,*)'=====================' status = he5_ptdeflevel(ptid, levelname, rank_5, fieldlist5, 1dims_5, dtype_5, array_5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflevel(ptid, levelname, rank_5' write(*,*)' fieldlist5,dims_5, dtype_5, array_5)' write(*,*)' Value returned by he5_ptdeflevel ', status write(1,*)' status = he5_ptdeflevel(ptid, levelname, rank_5' write(1,*)' fieldlist5,dims_5, dtype_5, array_5)' write(1,*)' Value returned by he5_ptdeflevel ', status endif write(*,*)' ' write(1,*)' ' parent = 'Description' child = 'Measurements' linkfield = 'ID' c Test Case -- he5_ptdeflinkage c write(*,*)'Testing he5_ptdeflinkage ' write(*,*)'=====================' write(1,*)'Testing he5_ptdeflinkage ' write(1,*)'=====================' status = he5_ptdeflinkage(ptid, parent, child, linkfield) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdeflinkage(ptid, parent, child,' write(*,*)' linkfield)' write(*,*)' Value returned by he5_ptdeflinkage ', status write(1,*)' status = he5_ptdeflinkage(ptid, parent, child,' write(1,*)' linkfield)' write(1,*)' Value returned by he5_ptdeflinkage ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "Simple Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Read Simple Point c ----------------- open(unit=10, file='simple.txt', status='OLD') n = 0 do 10 i=1,1000 read(10, 110, end=100) time_tt, concentration_tt(1), 1 concentration_tt(2), 2 concentration_tt(3), 3 concentration_tt(4), 4 spc_tt time(i) = time_tt conc(i,1) = concentration_tt(1) conc(i,2) = concentration_tt(2) conc(i,3) = concentration_tt(3) conc(i,4) = concentration_tt(4) spc(i) = spc_tt n = n + 1 10 continue 100 close(unit=10) 110 format(F13.1,F6.2,F6.2,F6.2,F6.2,2X,A8) count(1) = n fieldname = 'Time' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, time) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, time)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, time)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c.....Convert array to 'C' order dimens(1) = 15 dimens(2) = 4 rank = 2 datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptfort2c c write(1,27) write(*,*)'Testing he5_ptfort2c ' write(*,*)'=====================' write(1,*)'Testing he5_ptfort2c ' write(1,*)'=====================' status = he5_ptfort2c(dimens, rank, datatype, conc, 1outconc) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptfort2c(dimens,rank,datatype,conc,' write(*,*)' outconc)' write(*,*)' Value returned by he5_ptfort2c ', status write(1,*)' status = he5_ptfort2c(dimens,rank,datatype,conc,' write(1,*)' outconc)' write(1,*)' Value returned by he5_ptfort2c ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Concentration' c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, outconc) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, outconc)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, outconc)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Species' datatype = HE5T_NATIVE_CHAR status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, spc) write(*,*) 'Status returned by he5_ptwritelevel(): ',status c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Read FixedBuoy Point c -------------------- open(unit=11, file='fixedBuoy0.txt', status='OLD') n = 0 do 20 i=1,1000 read(11, 210, end=200) desc_tt, lon_tt, lat_tt, date_tt, 1id_tt desc(i) = desc_tt lon(i) = lon_tt lat(i) = lat_tt date(i) = date_tt id(i) = id_tt n = n + 1 20 continue 200 close(unit=11) 210 format(A8,F13.7,F13.7,I7,1X,A8) count(1) = n fieldname = 'Label' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, desc) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, desc)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, desc)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Longitude' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, lon) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, lon)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, lon)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Latitude' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, lat) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, lat)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, lat)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'DeployDate' datatype = HE5T_NATIVE_INT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, date) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, date)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, date)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'ID' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, id) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, id)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, id)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c Read FixedBuoy Point - Level 1 c ------------------------------ open(unit=12, file='fixedBuoy1.txt', status='OLD') n = 0 do 30 i=1,1000 read(12, 310, end=300) time3_tt, rain_tt, temp_tt, id3_tt time3(i) = time3_tt rain(i) = rain_tt temp(i) = temp_tt id3(i) = id3_tt n = n + 1 30 continue 300 close(unit=12) 310 format(F13.2,F8.1,F8.2,3X,A8) count(1) = n fieldname = 'Time' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, time3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, time3)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, time3)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Rainfall' datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, rain) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, rain)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, rain)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Temperature' datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, temp) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, temp)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, temp)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'ID' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, id3) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, id3)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, id3)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptwrbckptr c write(1,27) write(*,*)'Testing he5_ptwrbckptr ' write(*,*)'=====================' write(1,*)'Testing he5_ptwrbckptr ' write(1,*)'=====================' status = he5_ptwrbckptr(ptid,1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwrbckptr(ptid,1)' write(*,*)' Value returned by he5_ptwrbckptr ', status write(1,*)' status = he5_ptwrbckptr(ptid,1)' write(1,*)' Value returned by he5_ptwrbckptr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptwrfwdptr c write(1,27) write(*,*)'Testing he5_ptwrfwdptr ' write(*,*)'=====================' write(1,*)'Testing he5_ptwrfwdptr ' write(1,*)'=====================' status = he5_ptwrfwdptr(ptid,1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwrfwdptr(ptid,1)' write(*,*)' Value returned by he5_ptwrfwdptr ', status write(1,*)' status = he5_ptwrfwdptr(ptid,1)' write(1,*)' Value returned by he5_ptwrfwdptr ', status endif write(*,*)' ' write(1,*)' ' c Write attributes to "Fixed Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_int' ntype = HE5T_NATIVE_INT fortcount(1) = 1 attr = 9999 c Test Case -- he5_ptwriteattr c write(1,27) write(*,*)'Testing he5_ptwriteattr ' write(*,*)'=====================' write(1,*)'Testing he5_ptwriteattr ' write(1,*)'=====================' status = he5_ptwriteattr(ptid,attrname,ntype,fortcount, 1attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwriteattr(ptid,attrname,' write(*,*)' ntype,fortcount,attr)' write(*,*)' Value returned by he5_ptwriteattr ', status write(1,*)' status = he5_ptwriteattr(ptid,attrname,' write(1,*)' ntype,fortcount,attr)' write(1,*)' Value returned by he5_ptwriteattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FloatBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FloatBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FloatBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Read FloatBuoy Point - Level 0 c ------------------------------ open(unit=14, file='floatBuoy0.txt', status='OLD') n = 0 do 40 i=1,1000 read(14, 410, end=400) desc4_tt, date4_tt, wgt_tt, id4_tt desc4(i) = desc4_tt date4(i) = date4_tt wgt(i) = wgt_tt id4(i) = id4_tt n = n + 1 40 continue 400 close(unit=14) 410 format(A8,I8,I7,2X,A8) count(1) = n fieldname = 'Label' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, desc4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, desc4)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, desc4)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'DeployDate' datatype = HE5T_NATIVE_INT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, date4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, date4)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, date4)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Weight' datatype = HE5T_NATIVE_INT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, wgt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, wgt)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, wgt)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'ID' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 0, count, fieldname, 1datatype, id4) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,0,count,' write(*,*)' fieldname,datatype, id4)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,0,count,' write(1,*)' fieldname,datatype, id4)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c Read FixedBuoy Point - Level 1 c ------------------------------ open(unit=15, file='floatBuoy1.txt', status='OLD') n = 0 do 50 i=1,1000 read(15, 510, end=500) time5_tt, lon5_tt, lat5_tt, 1rain5_tt,temp5_tt,id5_tt time5(i) = time5_tt lon5(i) = lon5_tt lat5(i) = lat5_tt rain5(i) = rain5_tt temp5(i) = temp5_tt id5(i) = id5_tt n = n + 1 50 continue 500 close(unit=15) 510 format(F13.1,F13.6,F13.6,F8.1,F8.2,3X,A8) count(1) = n fieldname = 'Time' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, time5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, time5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, time5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Longitude' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, lon5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, lon5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, lon5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Latitude' datatype = HE5T_NATIVE_DOUBLE c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, lat5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, lat5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, lat5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Rainfall' datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, rain5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, rain5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, rain5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Temperature' datatype = HE5T_NATIVE_FLOAT c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, temp5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, temp5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, temp5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'ID' datatype = HE5T_NATIVE_CHAR c Test Case -- he5_ptwritelevel c write(1,27) write(*,*)'Testing he5_ptwritelevel ' write(*,*)'========================' write(1,*)'Testing he5_ptwritelevel ' write(1,*)'========================' status = he5_ptwritelevel(ptid, 1, count, fieldname, 1datatype, id5) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelevel(ptid,1,count,' write(*,*)' fieldname,datatype, id5)' write(*,*)' Value returned by he5_ptwritelevel ', status write(1,*)' status = he5_ptwritelevel(ptid,1,count,' write(1,*)' fieldname,datatype, id5)' write(1,*)' Value returned by he5_ptwritelevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptwrbckptr c write(*,*)'Testing he5_ptwrbckptr ' write(*,*)'======================' write(1,*)'Testing he5_ptwrbckptr ' write(1,*)'======================' status = he5_ptwrbckptr(ptid,1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwrbckptr(ptid,1)' write(*,*)' Value returned by he5_ptwrbckptr ', status write(1,*)' status = he5_ptwrbckptr(ptid,1)' write(1,*)' Value returned by he5_ptwrbckptr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptwrfwdptr c write(*,*)'Testing he5_ptwrfwdptr ' write(*,*)'======================' write(1,*)'Testing he5_ptwrfwdptr ' write(1,*)'======================' status = he5_ptwrfwdptr(ptid,1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwrfwdptr(ptid,1)' write(*,*)' Value returned by he5_ptwrfwdptr ', status write(1,*)' status = he5_ptwrfwdptr(ptid,1)' write(1,*)' Value returned by he5_ptwrfwdptr ', status endif write(*,*)' ' write(1,*)' ' c Write attributes to "Float Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_float' ntype = HE5T_NATIVE_FLOAT fortcount(1) = 1 flt = -7.5 c Test Case -- he5_ptwriteattr c write(*,*)'Testing he5_ptwriteattr ' write(*,*)'======================' write(1,*)'Testing he5_ptwriteattr ' write(1,*)'======================' status = he5_ptwriteattr(ptid,attrname, 1ntype,fortcount,flt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwriteattr(ptid,attrname,' write(*,*)' ntype,fortcount,flt)' write(*,*)' Value returned by he5_ptwriteattr ', status write(1,*)' status = he5_ptwriteattr(ptid,attrname,' write(1,*)' ntype,fortcount,flt)' write(1,*)' Value returned by he5_ptwriteattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "Simple Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Get level information c --------------------- level = 0 c Test Case -- he5_ptlevelinfo c write(*,*)'Testing he5_ptlevelinfo ' write(*,*)'=====================' write(1,*)'Testing he5_ptlevelinfo ' write(1,*)'=====================' status = he5_ptlevelinfo(ptid, level, levelname, rank_tt, 1fieldlist, dim_sizes_tt, datasize, offset_tt, dtype_tt) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status=he5_ptlevelinfo(ptid,level,levelname,' write(*,*)' rank_tt,fieldlist,dim_sizes_tt,' write(*,*)' datasize,offset_tt,dtype_tt)' write(*,*)' Value returned by he5_ptlevelinfo ', status write(1,*)' status=he5_ptlevelinfo(ptid,level,levelname,' write(1,*)' rank_tt,fieldlist,dim_sizes_tt,' write(1,*)' datasize,offset_tt,dtype_tt)' write(1,*)' Value returned by he5_ptlevelinfo ', status endif write(*,*)' ' write(1,*)' ' c Get the number of records in level c ---------------------------------- level = 0 c Test Case -- he5_ptnrecs c write(*,*)'Testing he5_ptnrecs ' write(*,*)'=====================' write(1,*)'Testing he5_ptnrecs ' write(1,*)'=====================' nrecs = he5_ptnrecs(ptid, level) if (nrecs .le. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nrecs = he5_ptnrecs(ptid, level)' write(*,*)' Value returned by he5_ptnrecs ', nrecs write(1,*)' nrecs = he5_ptnrecs(ptid, level)' write(1,*)' Value returned by he5_ptnrecs ', nrecs endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptnlevels c write(*,*)'Testing he5_ptnlevels ' write(*,*)'=====================' write(1,*)'Testing he5_ptnlevels ' write(1,*)'=====================' nlevels = he5_ptnlevels(ptid) if (nlevels .le. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nlevels = he5_ptnlevels(ptid)' write(*,*)' Value returned by he5_ptnlevels ', nlevels write(1,*)' nlevels = he5_ptnlevels(ptid)' write(1,*)' Value returned by he5_ptnlevels ', nlevels endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptnfields c write(*,*)'Testing he5_ptnfields ' write(*,*)'=====================' write(1,*)'Testing he5_ptnfields ' write(1,*)'=====================' nflds = he5_ptnfields(ptid, level, fieldlist, strbufsize) if (nflds .le. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nflds = he5_ptnfields(ptid, level,' write(*,*)' fieldlist, strbufsize)' write(*,*)' Value returned by he5_ptnfields ', nflds write(1,*)' nflds = he5_ptnfields(ptid, level,' write(1,*)' fieldlist, strbufsize)' write(1,*)' Value returned by he5_ptnfields ', nflds endif write(*,*)' ' write(1,*)' ' c Populate input information structure c ------------------------------------ dtype(1) = HE5T_NATIVE_DOUBLE dtype(2) = HE5T_NATIVE_FLOAT dtype(3) = HE5T_NATIVE_CHAR c Read the level data and print out c --------------------------------- fieldname3(1) = 'Time' c Test Case -- he5_ptreadlevel c write(*,*)'Testing he5_ptreadlevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptreadlevel ' write(1,*)'=====================' status = he5_ptreadlevel(ptid, 0, fieldname3(1), 1dtype(1), time) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(1),' write(*,*)' dtype(1), time)' write(*,*)' Value returned by he5_ptreadlevel ', status write(1,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(1),' write(1,*)' dtype(1), time)' write(1,*)' Value returned by he5_ptreadlevel ', status endif write(*,*)' ' write(1,*)' ' fieldname3(2) = 'Concentration' c Test Case -- he5_ptreadlevel c write(*,*)'Testing he5_ptreadlevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptreadlevel ' write(1,*)'=====================' status = he5_ptreadlevel(ptid, 0, fieldname3(2), 1dtype(2), con) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(2),' write(*,*)' dtype(2), con)' write(*,*)' Value returned by he5_ptreadlevel ', status write(1,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(2),' write(1,*)' dtype(2), con)' write(1,*)' Value returned by he5_ptreadlevel ', status endif write(*,*)' ' write(1,*)' ' c Convert 'C' array to Fortran order c ---------------------------------- dimens(1) = 15 dimens(2) = 4 arr_rank = 2 datatype = HE5T_NATIVE_FLOAT ccc status = he5_ptc2fort(dimens, arr_rank, datatype, con, ccc 1outcon) ccc write(*,*) 'Status returned by he5_ptc2fort(): ',status c Test Case -- he5_ptc2fort c write(1,27) write(*,*)'Testing he5_ptc2fort ' write(*,*)'=====================' write(1,*)'Testing he5_ptc2fort ' write(1,*)'=====================' status = he5_ptc2fort(dimens, arr_rank, datatype, con, 1outcon) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptc2fort(dimens,arr_rank,' write(*,*)' datatype,con,outcon)' write(*,*)' Value returned by he5_ptc2fort ', status write(1,*)' status = he5_ptc2fort(dimens,arr_rank,' write(1,*)' datatype,con,outcon)' write(1,*)' Value returned by he5_ptc2fort ', status endif write(*,*)' ' write(1,*)' ' fieldname3(3) = 'Species' c Test Case -- he5_ptreadlevel c write(*,*)'Testing he5_ptreadlevel ' write(*,*)'=====================' write(1,*)'Testing he5_ptreadlevel ' write(1,*)'=====================' status = he5_ptreadlevel(ptid, 0, fieldname3(3), 1dtype(3), spec) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(3),' write(*,*)' dtype(3), spec)' write(*,*)' Value returned by he5_ptreadlevel ', status write(1,*)' status = he5_ptreadlevel(ptid, 0, fieldname3(3),' write(1,*)' dtype(3), spec)' write(1,*)' Value returned by he5_ptreadlevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' attrname = 'GlobalAttribute_int' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) c Test Case -- he5_ptinqattrs c write(*,*)'Testing he5_ptinqattrs ' write(*,*)'======================' write(1,*)'Testing he5_ptinqattrs ' write(1,*)'======================' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize)' write(*,*)' Value returned by he5_ptinqattrs ', nattr write(1,*)' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize)' write(1,*)' Value returned by he5_ptinqattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptreadattr c write(*,*)'Testing he5_ptreadattr ' write(*,*)'======================' write(1,*)'Testing he5_ptreadattr ' write(1,*)'======================' status = he5_ptreadattr(ptid,attrname,attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadattr(ptid,attrname,attr)' write(*,*)' Value returned by he5_ptreadattr ', nattr write(1,*)' status = he5_ptreadattr(ptid,attrname,attr)' write(1,*)' Value returned by he5_ptreadattr ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "Simple Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "Simple Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' dtype(1) = HE5T_NATIVE_DOUBLE dtype(2) = HE5T_NATIVE_FLOAT dtype(3) = HE5T_NATIVE_CHAR nrec = 1 recs(1) = 0 level = 0 fieldname = 'Concentration' conc_tt(1) = 1.11 conc_tt(2) = 2.22 conc_tt(3) = 3.33 conc_tt(4) = 4.44 c Test Case -- he5_ptupdatelevel c write(*,*)'Testing he5_ptupdatelevel ' write(*,*)'=========================' write(1,*)'Testing he5_ptupdatelevel ' write(1,*)'=========================' status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(2), conc_tt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptupdatelevel(ptid, level,' write(*,*)' fieldname, nrec, recs,' write(*,*)' dtype(2), conc_tt)' write(*,*)' Value returned by he5_ptupdatelevel ', status write(1,*)' status = he5_ptupdatelevel(ptid, level,' write(1,*)' fieldname, nrec, recs,' write(1,*)' dtype(2), conc_tt)' write(1,*)' Value returned by he5_ptupdatelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Time' time_tt = 13131313.0 c Test Case -- he5_ptupdatelevel c write(*,*)'Testing he5_ptupdatelevel ' write(*,*)'=========================' write(1,*)'Testing he5_ptupdatelevel ' write(1,*)'=========================' status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(1), time_tt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptupdatelevel(ptid, level,' write(*,*)' fieldname, nrec, recs,' write(*,*)' dtype(1), time_tt)' write(*,*)' Value returned by he5_ptupdatelevel ', status write(1,*)' status = he5_ptupdatelevel(ptid, level,' write(1,*)' fieldname, nrec, recs,' write(1,*)' dtype(1), time_tt)' write(1,*)' Value returned by he5_ptupdatelevel ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Species' spc_tt = 'AM' c Test Case -- he5_ptupdatelevel c write(*,*)'Testing he5_ptupdatelevel ' write(*,*)'=========================' write(1,*)'Testing he5_ptupdatelevel ' write(1,*)'=========================' status = he5_ptupdatelevel(ptid, level, fieldname, nrec, 1recs, dtype(3), spc_tt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptupdatelevel(ptid, level,' write(*,*)' fieldname, nrec, recs,' write(*,*)' dtype(3), spc_tt)' write(*,*)' Value returned by he5_ptupdatelevel ', status write(1,*)' status = he5_ptupdatelevel(ptid, level,' write(1,*)' fieldname, nrec, recs,' write(1,*)' dtype(3), spc_tt)' write(1,*)' Value returned by he5_ptupdatelevel ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDWR) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDWR)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Write attributes to "Fixed Buoy Point" c -------------------------------------- attrname = 'GlobalAttribute_int' ntype = HE5T_NATIVE_INT fortcount(1) = 1 attr = 9999 c Test Case -- he5_ptwriteattr c write(*,*)'Testing he5_ptwriteattr ' write(*,*)'=======================' write(1,*)'Testing he5_ptwriteattr ' write(1,*)'=======================' status = he5_ptwriteattr(ptid,attrname,ntype,fortcount, 1attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwriteattr(ptid,attrname,' write(*,*)' ntype,fortcount,attr)' write(*,*)' Value returned by he5_ptwriteattr ', status write(1,*)' status = he5_ptwriteattr(ptid,attrname,' write(1,*)' ntype,fortcount,attr)' write(1,*)' Value returned by he5_ptwriteattr ', status endif write(*,*)' ' write(1,*)' ' attrname = 'GroupAttribute' ntype = HE5T_NATIVE_INT fortcount(1) = 5 attr1(1) = 1 attr1(2) = 2 attr1(3) = 3 attr1(4) = 4 attr1(5) = 5 c Test Case -- he5_ptwritegrpattr c write(*,*)'Testing he5_ptwritegrpattr ' write(*,*)'==========================' write(1,*)'Testing he5_ptwritegrpattr ' write(1,*)'==========================' status = he5_ptwritegrpattr(ptid,attrname,ntype,fortcount, 1attr1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritegrpattr(ptid,attrname,' write(*,*)' ntype,fortcount,attr1)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptwritegrpattr(ptid,attrname,' write(1,*)' ntype,fortcount,attr1)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' levelname = 'Observations' attrname = 'LocalAttribute' ntype = HE5T_NATIVE_INT fortcount(1) = 5 attr2(1) = 10 attr2(2) = 20 attr2(3) = 30 attr2(4) = 40 attr2(5) = 50 c Test Case -- he5_ptwritelocattr c write(*,*)'Testing he5_ptwritelocattr ' write(*,*)'==========================' write(1,*)'Testing he5_ptwritelocattr ' write(1,*)'==========================' status = he5_ptwritelocattr(ptid,levelname,attrname, 1ntype,fortcount,attr2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwritelocattr(ptid,' write(*,*)' levelname,attrname,ntype,' write(*,*)' fortcount,attr2)' write(*,*)' Value returned by he5_ptwritelocattr ', status write(1,*)' status = he5_ptwritelocattr(ptid,' write(1,*)' levelname,attrname,ntype,' write(1,*)' fortcount,attr2)' write(1,*)' Value returned by he5_ptwritelocattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' attrname = 'GlobalAttribute_float' ntype = HE5T_NATIVE_FLOAT fortcount(1) = 1 flt = -7.5 c Test Case -- he5_ptwriteattr c write(*,*)'Testing he5_ptwriteattr ' write(*,*)'=======================' write(1,*)'Testing he5_ptwriteattr ' write(1,*)'=======================' status = he5_ptwriteattr(ptid,attrname, 1ntype,fortcount,flt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptwriteattr(ptid,attrname,' write(*,*)' ntype,fortcount,flt)' write(*,*)' Value returned by he5_ptwriteattr ', status write(1,*)' status = he5_ptwriteattr(ptid,attrname,' write(1,*)' ntype,fortcount,flt)' write(1,*)' Value returned by he5_ptwriteattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' null_char_0 = '0' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' c Global Attributes c ----------------- attrname = 'GlobalAttribute_int' print *,'Global Attribute: ' c Test Case -- he5_ptreadattr c write(*,*)'Testing he5_ptreadattr ' write(*,*)'======================' write(1,*)'Testing he5_ptreadattr ' write(1,*)'======================' status = he5_ptreadattr(ptid,attrname,attr) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadattr(ptid,attrname,attr)' write(*,*)' Value returned by he5_ptreadattr ', status write(1,*)' status = he5_ptreadattr(ptid,attrname,attr)' write(1,*)' Value returned by he5_ptreadattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqattrs c write(*,*)'Testing he5_ptinqattrs ' write(*,*)'======================' write(1,*)'Testing he5_ptinqattrs ' write(1,*)'======================' nattr = he5_ptinqattrs(ptid,null_char_0,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqattrs(ptid,' write(*,*)' null_char_0,strbufsize)' write(*,*)' Value returned by he5_ptinqattrs ', nattr write(1,*)' nattr = he5_ptinqattrs(ptid,' write(1,*)' null_char_0,strbufsize)' write(1,*)' Value returned by he5_ptinqattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqattrs c write(*,*)'Testing he5_ptinqattrs ' write(*,*)'======================' write(1,*)'Testing he5_ptinqattrs ' write(1,*)'======================' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize)' write(*,*)' Value returned by he5_ptinqattrs ', nattr write(1,*)' nattr = he5_ptinqattrs(ptid,attrlist,strbufsize)' write(1,*)' Value returned by he5_ptinqattrs ', nattr endif write(*,*)' ' write(1,*)' ' attrname = 'GlobalAttribute_int' c Test Case -- he5_ptattrinfo c write(*,*)'Testing he5_ptattrinfo ' write(*,*)'======================' write(1,*)'Testing he5_ptattrinfo ' write(1,*)'======================' status = he5_ptattrinfo(ptid,attrname,ntype,sz) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptattrinfo(ptid,attrname,ntype,sz)' write(*,*)' Value returned by he5_ptattrinfo ', status write(1,*)' status = he5_ptattrinfo(ptid,attrname,ntype,sz)' write(1,*)' Value returned by he5_ptattrinfo ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattrinfo c write(*,*)'Testing he5_ptattrinfo ' write(*,*)'======================' write(1,*)'Testing he5_ptattrinfo ' write(1,*)'======================' status = he5_ptattrinfo(ptid,attrname,ntype,sz) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptattrinfo(ptid,attrname,ntype,sz)' write(*,*)' Value returned by he5_ptattrinfo ', status write(1,*)' status = he5_ptattrinfo(ptid,attrname,ntype,sz)' write(1,*)' Value returned by he5_ptattrinfo ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptreadattr c write(*,*)'Testing he5_ptreadattr ' write(*,*)'======================' write(1,*)'Testing he5_ptreadattr ' write(1,*)'======================' status = he5_ptreadattr(ptid,attrname,flt) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadattr(ptid,attrname,flt)' write(*,*)' Value returned by he5_ptreadattr ', status write(1,*)' status = he5_ptreadattr(ptid,attrname,flt)' write(1,*)' Value returned by he5_ptreadattr ', status endif write(*,*)' ' write(1,*)' ' attrname = 'GroupAttribute' c Test Case -- he5_ptreadgrpattr c write(*,*)'Testing he5_ptreadgrpattr' write(*,*)'=========================' write(1,*)'Testing he5_ptreadgrpattr' write(1,*)'=========================' status = he5_ptreadgrpattr(ptid,attrname,attr1) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadgrpattr(ptid,attrname,attr1)' write(*,*)' Value returned by he5_ptreadgrpattr ', status write(1,*)' status = he5_ptreadgrpattr(ptid,attrname,attr1)' write(1,*)' Value returned by he5_ptreadgrpattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqgrpattrs c write(*,*)'Testing he5_ptinqgrpattrs ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqgrpattrs ' write(1,*)'=========================' nattr = he5_ptinqgrpattrs(ptid,null_char_0,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqgrpattrs(ptid,' write(*,*)' null_char_0,strbufsize)' write(*,*)' Value returned by he5_ptinqgrpattrs ', nattr write(1,*)' nattr = he5_ptinqgrpattrs(ptid,' write(1,*)' null_char_0,strbufsize)' write(1,*)' Value returned by he5_ptinqgrpattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqgrpattrs c write(*,*)'Testing he5_ptinqgrpattrs ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqgrpattrs ' write(1,*)'=========================' nattr = he5_ptinqgrpattrs(ptid,attrlist,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqgrpattrs(ptid,' write(*,*)' attrlist,strbufsize)' write(*,*)' Value returned by he5_ptinqgrpattrs ', status write(1,*)' nattr = he5_ptinqgrpattrs(ptid,' write(1,*)' attrlist,strbufsize)' write(1,*)' Value returned by he5_ptinqgrpattrs ', status endif write(*,*)' ' write(1,*)' ' attrname = 'GroupAttribute' c Test Case -- he5_ptgrpattrinfo c write(*,*)'Testing he5_ptgrpattrinfo ' write(*,*)'=========================' write(1,*)'Testing he5_ptgrpattrinfo ' write(1,*)'=========================' status = he5_ptgrpattrinfo(ptid,attrname,ntype,sz) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptgrpattrinfo(ptid,' write(*,*)' attrname,ntype,sz)' write(*,*)' Value returned by he5_ptgrpattrinfo ', status write(1,*)' status = he5_ptgrpattrinfo(ptid,' write(1,*)' attrname,ntype,sz)' write(1,*)' Value returned by he5_ptgrpattrinfo ', status endif write(*,*)' ' write(1,*)' ' attrname = 'LocalAttribute' levelname = 'Observations' c Test Case -- he5_ptreadlocattr c write(*,*)'Testing he5_ptreadlocattr ' write(*,*)'=========================' write(1,*)'Testing he5_ptreadlocattr ' write(1,*)'=========================' status = he5_ptreadlocattr(ptid,levelname,attrname,attr2) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptreadlocattr(ptid,' write(*,*)' levelname,attrname,attr2)' write(*,*)' Value returned by he5_ptreadlocattr ', status write(1,*)' status = he5_ptreadlocattr(ptid,' write(1,*)' levelname,attrname,attr2)' write(1,*)' Value returned by he5_ptreadlocattr ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqlocattrs c write(*,*)'Testing he5_ptinqlocattrs ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqlocattrs ' write(1,*)'=========================' nattr = he5_ptinqlocattrs(ptid,levelname,null_char_0,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqlocattrs(ptid,' write(*,*)' levelname,null_char_0,strbufsize)' write(*,*)' Value returned by he5_ptinqlocattrs ', nattr write(1,*)' nattr = he5_ptinqlocattrs(ptid,' write(1,*)' levelname,null_char_0,strbufsize)' write(1,*)' Value returned by he5_ptinqlocattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptinqlocattrs c write(*,*)'Testing he5_ptinqlocattrs ' write(*,*)'=====================' write(1,*)'Testing he5_ptinqlocattrs ' write(1,*)'=====================' nattr = he5_ptinqlocattrs(ptid,levelname,attrlist,strbufsize) if (nattr .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' nattr = he5_ptinqlocattrs(ptid,' write(*,*)' levelname,attrlist,strbufsize)' write(*,*)' Value returned by he5_ptinqlocattrs ', nattr write(1,*)' nattr = he5_ptinqlocattrs(ptid,' write(1,*)' levelname,attrlist,strbufsize)' write(1,*)' Value returned by he5_ptinqlocattrs ', nattr endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptlocattrinfo c write(*,*)'Testing he5_ptlocattrinfo ' write(*,*)'=========================' write(1,*)'Testing he5_ptlocattrinfo ' write(1,*)'=========================' status = he5_ptlocattrinfo(ptid,levelname,attrname,ntype,sz) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptlocattrinfo(ptid,' write(*,*)' levelname,attrname,ntype,sz)' write(*,*)' Value returned by he5_ptlocattrinfo ', status write(1,*)' status = he5_ptlocattrinfo(ptid,' write(1,*)' levelname,attrname,ntype,sz)' write(1,*)' Value returned by he5_ptlocattrinfo ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' null_char_0 = '0' c Test Case -- he5_ptopen c write(*,*)'Testing he5_ptopen ' write(*,*)'=====================' write(1,*)'Testing he5_ptopen ' write(1,*)'=====================' ptfid = he5_ptopen('point.he5',HE5F_ACC_RDONLY) if (ptfid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(*,*)' Value returned by he5_ptopen ', ptfid write(1,*)' ptfid= he5_ptopen("point.he5",HE5F_ACC_RDONLY)' write(1,*)' Value returned by he5_ptopen ', ptfid endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptattach c write(1,27) write(*,*)'Testing he5_ptattach ' write(*,*)'=====================' write(1,*)'Testing he5_ptattach ' write(1,*)'=====================' ptid = he5_ptattach(ptfid, "FixedBuoy Point") if (ptid .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(*,*)' Value returned by he5_ptattach ', ptid write(1,*)' ptid = he5_ptattach(ptfid, "FixedBuoy Point")' write(1,*)' Value returned by he5_ptattach ', ptid endif write(*,*)' ' write(1,*)' ' fieldgroup = HE5_HDFE_DATAGROUP fieldname = 'Observations' c Test Case -- he5_ptinqdatatype c write(*,*)'Testing he5_ptinqdatatype ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqdatatype ' write(1,*)'=========================' status = he5_ptinqdatatype(ptid,fieldname,null_char_0,fieldgroup, 1datatype,classid,order,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptinqdatatype(ptid,fieldname,' write(*,*)' null_char_0,fieldgroup,datatype,classid,' write(*,*)' order,size)' write(*,*)' Value returned by he5_ptinqdatatype ', status write(1,*)' status = he5_ptinqdatatype(ptid,fieldname,' write(1,*)' null_char_0,fieldgroup,datatype,classid,' write(1,*)' order,size)' write(1,*)' Value returned by he5_ptinqdatatype ', status endif write(*,*)' ' write(1,*)' ' fieldgroup = HE5_HDFE_ATTRGROUP attrname = 'GlobalAttribute_int' c Test Case -- he5_ptinqdatatype c write(*,*)'Testing he5_ptinqdatatype ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqdatatype ' write(1,*)'=========================' status = he5_ptinqdatatype(ptid,null_char_0,attrname,fieldgroup, 1datatype,classid,order,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptinqdatatype(ptid,null_char_0,' write(*,*)' attrname,fieldgroup,datatype,' write(*,*)' classid,order,size)' write(*,*)' Value returned by he5_ptinqdatatype ', status write(1,*)' status = he5_ptinqdatatype(ptid,null_char_0,' write(1,*)' attrname,fieldgroup,datatype,' write(1,*)' classid,order,size)' write(1,*)' Value returned by he5_ptinqdatatype ', status endif write(*,*)' ' write(1,*)' ' fieldgroup = HE5_HDFE_GRPATTRGROUP attrname = 'GroupAttribute' c Test Case -- he5_ptinqdatatype c write(*,*)'Testing he5_ptinqdatatype ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqdatatype ' write(1,*)'=========================' status = he5_ptinqdatatype(ptid,null_char_0,attrname,fieldgroup, 1datatype,classid,order,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptinqdatatype(ptid,null_char_0,' write(*,*)' attrname,fieldgroup,datatype,' write(*,*)' classid,order,size)' write(*,*)' Value returned by he5_ptinqdatatype ', status write(1,*)' status = he5_ptinqdatatype(ptid,null_char_0,' write(1,*)' attrname,fieldgroup,datatype,' write(1,*)' classid,order,size)' write(1,*)' Value returned by he5_ptinqdatatype ', status endif write(*,*)' ' write(1,*)' ' fieldname = 'Observations' fieldgroup = HE5_HDFE_LOCATTRGROUP attrname = 'LocalAttribute' c Test Case -- he5_ptinqdatatype c write(*,*)'Testing he5_ptinqdatatype ' write(*,*)'=========================' write(1,*)'Testing he5_ptinqdatatype ' write(1,*)'=========================' status = he5_ptinqdatatype(ptid,fieldname,attrname,fieldgroup, 1datatype,classid,order,size) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptinqdatatype(ptid,fieldname,' write(*,*)' attrname,fieldgroup,datatype,' write(*,*)' classid,order,size)' write(*,*)' Value returned by he5_ptinqdatatype ', status write(1,*)' status = he5_ptinqdatatype(ptid,fieldname,' write(1,*)' attrname,fieldgroup,datatype,' write(1,*)' classid,order,size)' write(1,*)' Value returned by he5_ptinqdatatype ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptdetach c write(1,27) write(*,*)'Testing he5_ptdetach ' write(*,*)'=====================' write(1,*)'Testing he5_ptdetach ' write(1,*)'=====================' status = he5_ptdetach(ptid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptdetach(ptid)' write(*,*)' Value returned by he5_ptdetach ', status write(1,*)' status = he5_ptdetach(ptid)' write(1,*)' Value returned by he5_ptdetach ', status endif write(*,*)' ' write(1,*)' ' c Test Case -- he5_ptclose c write(*,*)'Testing he5_ptclose ' write(*,*)'=====================' write(1,*)'Testing he5_ptclose ' write(1,*)'=====================' status = he5_ptclose(ptfid) if (status .lt. zero) then write(*,230) write(1,230) else write(*,*)' ' write(*,240) write(1,*)' ' write(1,240) write(*,*)' status = he5_ptclose(ptfid)' write(*,*)' Value returned by he5_ptclose ', status write(1,*)' status = he5_ptclose(ptfid)' write(1,*)' Value returned by he5_ptclose ', status endif write(*,*)' ' write(1,*)' ' close(unit=1) 27 format(' ') 230 format('********Error unexpected**********') 240 format('***********Passed Test*********') stop end